@Override
    public List<ProfilerPlugin> load(ClassLoader classLoader) {
        List<ProfilerPlugin> profilerPlugins = new ArrayList<>();
        ServiceLoader<ProfilerPlugin> serviceLoader = ServiceLoader.load(ProfilerPlugin.class, classLoader);
        for (ProfilerPlugin profilerPlugin : serviceLoader) {
            profilerPlugins.add(profilerPlugin);
        }
        return profilerPlugins;
    }
TODO Loading all plugins with a single class loader could cause class collisions.
Also, with current implementation, plugins can use dependencies by putting them in the plugin directory too.
But it can lead to dependency collision between plugins because they are loaded by a single class loader.
<p>
How can we prevent this?
A ClassLoader per plugin could do it but then we have to create "N of target class loader" x "N of plugin" class loaders.
It seems too much. For now, Just leave it as it is.

@author Jongho Moon <jongho.moon@navercorp.com>
@author emeroad
@author HyunGil Jeong
agent-module/plugins-loader/src/main/java/com/navercorp/pinpoint/loader/plugins/profiler/ProfilerPluginLoader.java