From 2189ce51900ab06d04c10e0d3c890cffcd0e305f Mon Sep 17 00:00:00 2001 From: wusheng Date: Tue, 26 Jul 2016 09:56:30 +0800 Subject: [PATCH] =?UTF-8?q?=E6=8F=90=E4=BE=9B=E4=B8=80=E4=B8=AATracingBoot?= =?UTF-8?q?strap=E7=9A=84=E5=AE=9E=E7=8E=B0=E6=96=B9=E5=BC=8F=E7=9A=84?= =?UTF-8?q?=E6=8C=87=E5=AF=BC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../skywalking/plugin/TracingBootstrap.java | 48 ++++++++++--------- 1 file changed, 25 insertions(+), 23 deletions(-) diff --git a/skywalking-collector/skywalking-api/src/main/java/com/ai/cloud/skywalking/plugin/TracingBootstrap.java b/skywalking-collector/skywalking-api/src/main/java/com/ai/cloud/skywalking/plugin/TracingBootstrap.java index d0f8e4b67..c63b28b65 100644 --- a/skywalking-collector/skywalking-api/src/main/java/com/ai/cloud/skywalking/plugin/TracingBootstrap.java +++ b/skywalking-collector/skywalking-api/src/main/java/com/ai/cloud/skywalking/plugin/TracingBootstrap.java @@ -2,42 +2,44 @@ package com.ai.cloud.skywalking.plugin; import com.ai.cloud.skywalking.logging.LogManager; import com.ai.cloud.skywalking.logging.Logger; +import com.ai.cloud.skywalking.plugin.interceptor.enhance.ClassEnhancePluginDefine; import java.lang.reflect.InvocationTargetException; import java.util.Arrays; +import java.util.Map; /** * 替代应用函数的main函数入口,确保在程序入口处运行
* 用于替代-javaagent的另一种模式
- * - * @author wusheng + * 主要用于插件的本地化调试与运行
* + * + * @author wusheng */ public class TracingBootstrap { - private static Logger logger = LogManager.getLogger(TracingBootstrap.class); + private static Logger logger = LogManager.getLogger(TracingBootstrap.class); - private TracingBootstrap() { - } + private TracingBootstrap() { + } - public static void main(String[] args) throws IllegalAccessException, - IllegalArgumentException, InvocationTargetException, - NoSuchMethodException, SecurityException, ClassNotFoundException { - if (args.length == 0) { - throw new RuntimeException( - "bootstrap failure. need args[0] to be main class."); - } + public static void main(String[] args) + throws IllegalAccessException, IllegalArgumentException, InvocationTargetException, NoSuchMethodException, + SecurityException, ClassNotFoundException { + if (args.length == 0) { + throw new RuntimeException("bootstrap failure. need args[0] to be main class."); + } - try { - PluginBootstrap bootstrap = new PluginBootstrap(); - bootstrap.loadPlugins(); - } catch (Throwable t) { - logger.error("PluginBootstrap start failure.", t); - } + PluginBootstrap bootstrap = new PluginBootstrap(); + Map pluginDefineMap = bootstrap.loadPlugins(); - String[] newArgs = Arrays.copyOfRange(args, 1, args.length); + for(String enhanceClassName : pluginDefineMap.keySet()){ + //init ctClass + //enhance class + } - - Class.forName(args[0]).getMethod("main", String[].class) - .invoke(null, new Object[]{newArgs}); - } + String[] newArgs = Arrays.copyOfRange(args, 1, args.length); + + + Class.forName(args[0]).getMethod("main", String[].class).invoke(null, new Object[] {newArgs}); + } }