TtlAgent.java 1.1 KB
Newer Older
1
package com.alibaba.ttl.threadpool.agent;
2 3 4 5


import java.lang.instrument.ClassFileTransformer;
import java.lang.instrument.Instrumentation;
oldratlee's avatar
oldratlee 已提交
6
import java.util.logging.Logger;
7 8 9


/**
oldratlee's avatar
oldratlee 已提交
10
 * @author Jerry Lee (oldratlee at gmail dot com)
11
 * @see <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/instrument/package-summary.html">The mechanism for instrumentation</a>
oldratlee's avatar
oldratlee 已提交
12
 * @since 0.9.0
13
 */
S
smisger 已提交
14
public final class TtlAgent {
15
    private static final Logger logger = Logger.getLogger(TtlAgent.class.getName());
S
smisger 已提交
16 17 18 19 20
    
    private TtlAgent() {
    	throw new InstantiationError( "Must not instantiate this class" );
    }
    
21
    public static void premain(String agentArgs, Instrumentation inst) {
22
        logger.info("[TtlAgent.premain] begin, agentArgs: " + agentArgs);
23 24 25 26
        install(agentArgs, inst);
    }

    static void install(String agentArgs, Instrumentation inst) {
27
        logger.info("[TtlAgent.install] agentArgs: " + agentArgs + ", Instrumentation: " + inst);
28

29
        ClassFileTransformer transformer = new TtlTransformer();
30 31
        inst.addTransformer(transformer, true);

32
        logger.info("[TtlAgent.install] addTransformer success.");
33 34
    }
}