private static boolean prepareJREInstrumentation()

in apm-sniffer/apm-agent-core/src/main/java/org/apache/skywalking/apm/agent/core/plugin/bootstrap/BootstrapInstrumentBoost.java [159:206]


    private static boolean prepareJREInstrumentation(PluginFinder pluginFinder,
        Map<String, byte[]> classesTypeMap) throws PluginException {
        TypePool typePool = TypePool.Default.of(BootstrapInstrumentBoost.class.getClassLoader());
        List<AbstractClassEnhancePluginDefine> bootstrapClassMatchDefines = pluginFinder.getBootstrapClassMatchDefine();
        for (AbstractClassEnhancePluginDefine define : bootstrapClassMatchDefines) {
            if (Objects.nonNull(define.getInstanceMethodsInterceptPoints())) {
                for (InstanceMethodsInterceptPoint point : define.getInstanceMethodsInterceptPoints()) {
                    if (point.isOverrideArgs()) {
                        generateDelegator(
                            classesTypeMap, typePool, define.getPluginName(),
                            INSTANCE_METHOD_WITH_OVERRIDE_ARGS_DELEGATE_TEMPLATE, point.getMethodsInterceptor()
                        );
                    } else {
                        generateDelegator(
                            classesTypeMap, typePool, define.getPluginName(),
                            INSTANCE_METHOD_DELEGATE_TEMPLATE, point.getMethodsInterceptor()
                        );
                    }
                }
            }

            if (Objects.nonNull(define.getConstructorsInterceptPoints())) {
                for (ConstructorInterceptPoint point : define.getConstructorsInterceptPoints()) {
                    generateDelegator(
                        classesTypeMap, typePool, define.getPluginName(),
                        CONSTRUCTOR_DELEGATE_TEMPLATE, point.getConstructorInterceptor()
                    );
                }
            }

            if (Objects.nonNull(define.getStaticMethodsInterceptPoints())) {
                for (StaticMethodsInterceptPoint point : define.getStaticMethodsInterceptPoints()) {
                    if (point.isOverrideArgs()) {
                        generateDelegator(
                            classesTypeMap, typePool, define.getPluginName(),
                            STATIC_METHOD_WITH_OVERRIDE_ARGS_DELEGATE_TEMPLATE, point.getMethodsInterceptor()
                        );
                    } else {
                        generateDelegator(
                            classesTypeMap, typePool, define.getPluginName(),
                            STATIC_METHOD_DELEGATE_TEMPLATE, point.getMethodsInterceptor()
                        );
                    }
                }
            }
        }
        return bootstrapClassMatchDefines.size() > 0;
    }