@Override
        public byte[] doInTransform(Instrumentor instrumentor, ClassLoader classLoader, String className, Class<?> classBeingRedefined, ProtectionDomain protectionDomain, byte[] classfileBuffer) throws InstrumentException {
            final InstrumentClass target = instrumentor.getInstrumentClass(classLoader, className, classfileBuffer);
            // Add servlet information
            InstrumentMethod startMethod = null;
            if (target.hasDeclaredMethod("start")) {
                // Tomcat 6 - org.apache.catalina.loader.WebappLoader.start()
                startMethod = target.getDeclaredMethod("start");
            } else if (target.hasDeclaredMethod("startInternal")) {
                // Tomcat 7, 8 - org.apache.catalina.loader.WebappLoader.startInternal()
                startMethod = target.getDeclaredMethod("startInternal");
            }

            if (startMethod != null) {
                startMethod.addInterceptor(WebappLoaderStartInterceptor.class);
            }
            return target.toBytecode();
        }
@author Jongho Moon
@author jaehong.kim
agent-module/plugins/tomcat/src/main/java/com/navercorp/pinpoint/plugin/tomcat/TomcatPlugin.java