private void defineJarClass(ClassLoader classLoader, ClassLoaderAttachment attachment) {
        if (isDebug) {
            logger.debug("define Jar:{}", pluginConfig.getPluginJarURLExternalForm());
        }

        List<FileBinary> fileBinaryList = readJar();

        Map<String, SimpleClassMetadata> classEntryMap = parse(fileBinaryList);

        for (Map.Entry<String, SimpleClassMetadata> entry : classEntryMap.entrySet()) {
            final SimpleClassMetadata classMetadata = entry.getValue();
            if (meetsRequirement(classMetadata.getClassName(), classLoader)) {
                ClassLoadingChecker classLoadingChecker = new ClassLoadingChecker();
                classLoadingChecker.isFirstLoad(classMetadata.getClassName());
                define0(classLoader, attachment, classMetadata, classEntryMap, classLoadingChecker);
            }
        }
    }
@author Woonduk Kang(emeroad)
@author jaehong.kim
agent-module/profiler/src/main/java/com/navercorp/pinpoint/profiler/instrument/classloading/PlainClassLoaderHandler.java