public static PluginClassInjector from(PluginConfig pluginConfig, InstrumentEngine instrumentEngine, BootstrapCore bootstrapCore) {
        Objects.requireNonNull(pluginConfig, "pluginConfig");

        ClassInjector bootstrapClassLoaderHandler = new BootstrapClassLoaderHandler(pluginConfig, instrumentEngine);
        ClassInjector urlClassLoaderHandler = new URLClassLoaderHandler(pluginConfig);

        final DefineClass defineClass = instrumentEngine.getDefineClass();
        ClassInjector plainClassLoaderHandler = new PlainClassLoaderHandler(defineClass, pluginConfig);
        return new PluginClassInjector(bootstrapCore, bootstrapClassLoaderHandler, urlClassLoaderHandler, plainClassLoaderHandler);
    }
@author Jongho Moon
@author jaehong.kim
agent-module/profiler/src/main/java/com/navercorp/pinpoint/profiler/instrument/classloading/PluginClassInjector.java