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


/**
10 11
 * TTL Java Agent.
 *
oldratlee's avatar
oldratlee 已提交
12
 * @author Jerry Lee (oldratlee at gmail dot com)
13
 * @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 已提交
14
 * @since 0.9.0
15
 */
S
smisger 已提交
16
public final class TtlAgent {
17
    private static final Logger logger = Logger.getLogger(TtlAgent.class.getName());
18

S
smisger 已提交
19
    private TtlAgent() {
20
        throw new InstantiationError("Must not instantiate this class");
S
smisger 已提交
21
    }
22

23
    public static void premain(String agentArgs, Instrumentation inst) {
24
        logger.info("[TtlAgent.premain] begin, agentArgs: " + agentArgs);
25 26 27 28
        install(agentArgs, inst);
    }

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

31
        ClassFileTransformer transformer = new TtlTransformer();
32 33
        inst.addTransformer(transformer, true);

34
        logger.info("[TtlAgent.install] addTransformer success.");
35 36
    }
}