private void addCommonEditors(final boolean traceProducer, final boolean traceConsumer) {
        if (!traceProducer && !traceConsumer) {
            return;
        }
        // Channels
        transformTemplate.transform("com.rabbitmq.client.impl.ChannelN", ChannelTransform.class);
        transformTemplate.transform("com.rabbitmq.client.impl.recovery.AutorecoveringChannel", ChannelTransform.class);
        // FrameHandler implementations for end point and remote address
        transformTemplate.transform("com.rabbitmq.client.impl.SocketFrameHandler", SocketFrameHandlerTransform.class);
        transformTemplate.transform("com.rabbitmq.client.impl.nio.SocketChannelFrameHandler", SocketChannelFrameHandlerTransform.class);
        // Envelope - for asynchrnous trace propagation for consumers
        transformTemplate.transform("com.rabbitmq.client.Envelope", EnvelopeTransform.class);
        // AMQCommand - for pinpoint header propagation
        transformTemplate.transform("com.rabbitmq.client.impl.AMQCommand", AMQCommandTransform.class);
    }
@author Jinkai.Ma
@author Jiaqi Feng
@author HyunGil Jeong
agent-module/plugins/rabbitmq/src/main/java/com/navercorp/pinpoint/plugin/rabbitmq/client/RabbitMQClientPlugin.java