@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.addField(AsyncContextAccessor.class);

            InstrumentMethod constructor = target.getConstructor("org.apache.hadoop.hbase.client.AsyncProcess$AsyncRequestFutureImpl", "org.apache.hadoop.hbase.client.MultiAction", "int", "org.apache.hadoop.hbase.ServerName", "java.util.Set");

            constructor.addScopedInterceptor(HbaseClientConstructorInterceptor.class, HbasePluginConstants.HBASE_CLIENT_SCOPE, ExecutionPolicy.INTERNAL);

            InstrumentMethod method = target.getDeclaredMethod("run");

            method.addInterceptor(HbaseClientRunInterceptor.class);

            return target.toBytecode();
        }
The type Hbase plugin.

@author Victor.Zxy
@version 1.8.1
@since 2018/10/12
agent-module/plugins/hbase/src/main/java/com/navercorp/pinpoint/plugin/hbase/HbasePlugin.java