@Override
        public byte[] doInTransform(Instrumentor instrumentor, ClassLoader loader, String className, Class<?> classBeingRedefined, ProtectionDomain protectionDomain, byte[] classfileBuffer) throws InstrumentException {
            InstrumentClass target = instrumentor.getInstrumentClass(loader, className, classfileBuffer);

            target.addGetter(HostNameGetter.class, HttpClient3Constants.FIELD_HOST_NAME);
            target.addGetter(PortNumberGetter.class, HttpClient3Constants.FIELD_PORT_NUMBER);
            target.addGetter(ProxyHostNameGetter.class, HttpClient3Constants.FIELD_PROXY_HOST_NAME);
            target.addGetter(ProxyPortNumberGetter.class, HttpClient3Constants.FIELD_PROXY_PORT_NUMBER);

            InstrumentMethod open = target.getDeclaredMethod("open");

            if (open != null) {
                open.addInterceptor(HttpConnectionOpenMethodInterceptor.class);
            }

            return target.toBytecode();
        }
@author netspider
@author emeroad
@author minwoo.jung
@author jaehong.kim
agent-module/plugins/httpclient3/src/main/java/com/navercorp/pinpoint/plugin/httpclient3/HttpClient3Plugin.java