From 2c050c05978412de5b7bd1d7e292421f501b1bf1 Mon Sep 17 00:00:00 2001 From: zhangxin10 Date: Mon, 21 Dec 2015 11:05:51 +0800 Subject: [PATCH] =?UTF-8?q?=E6=96=B0=E6=B7=BB=E5=8A=A0turnOn=E5=B1=9E?= =?UTF-8?q?=E6=80=A7=EF=BC=8C=E5=B9=B6=E6=8F=90=E4=BA=A4=E6=B5=8B=E8=AF=95?= =?UTF-8?q?=E7=B1=BB?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../skywalking/plugin/spring/TraceParser.java | 2 ++ .../plugin/spring/TracingEnhanceProcessor.java | 14 ++++++++++++++ .../spring/{test/AppTest01.java => TestBean.java} | 12 +++++------- .../src/test/resources/springConfig-common.xml | 6 +++--- 4 files changed, 24 insertions(+), 10 deletions(-) rename skywalking-sdk-plugin/spring-plugin/src/test/java/com/ai/cloud/skywalking/plugin/spring/{test/AppTest01.java => TestBean.java} (53%) diff --git a/skywalking-sdk-plugin/spring-plugin/src/main/java/com/ai/cloud/skywalking/plugin/spring/TraceParser.java b/skywalking-sdk-plugin/spring-plugin/src/main/java/com/ai/cloud/skywalking/plugin/spring/TraceParser.java index 56c7184a8..fcc6ad9d1 100644 --- a/skywalking-sdk-plugin/spring-plugin/src/main/java/com/ai/cloud/skywalking/plugin/spring/TraceParser.java +++ b/skywalking-sdk-plugin/spring-plugin/src/main/java/com/ai/cloud/skywalking/plugin/spring/TraceParser.java @@ -16,9 +16,11 @@ public class TraceParser implements BeanDefinitionParser { // 只能存在一个 throw new IllegalStateException("Duplicate spring bean id "); } + boolean turnOn = Boolean.parseBoolean(element.getAttribute("turnOn")); RootBeanDefinition rootBeanDefinition = new RootBeanDefinition(); rootBeanDefinition.setLazyInit(false); rootBeanDefinition.setBeanClass(TracingEnhanceProcessor.class); + rootBeanDefinition.getPropertyValues().addPropertyValue("turnOn", turnOn); parserContext.getRegistry().registerBeanDefinition(TRACE_APPLICATION_BEAN_NAME, rootBeanDefinition); return rootBeanDefinition; } diff --git a/skywalking-sdk-plugin/spring-plugin/src/main/java/com/ai/cloud/skywalking/plugin/spring/TracingEnhanceProcessor.java b/skywalking-sdk-plugin/spring-plugin/src/main/java/com/ai/cloud/skywalking/plugin/spring/TracingEnhanceProcessor.java index 9c9b8c7e3..ae1b51b6f 100644 --- a/skywalking-sdk-plugin/spring-plugin/src/main/java/com/ai/cloud/skywalking/plugin/spring/TracingEnhanceProcessor.java +++ b/skywalking-sdk-plugin/spring-plugin/src/main/java/com/ai/cloud/skywalking/plugin/spring/TracingEnhanceProcessor.java @@ -23,6 +23,16 @@ public class TracingEnhanceProcessor implements DisposableBean, BeanPostProcesso private final Set beanSet = new ConcurrentHashSet(); + private boolean turnOn; + + public boolean isTurnOn() { + return turnOn; + } + + public void setTurnOn(boolean turnOn) { + this.turnOn = turnOn; + } + @Override public void postProcessBeanFactory(ConfigurableListableBeanFactory beanFactory) throws BeansException { beanSet.addAll(applicationContext.getBeansOfType(TracingPattern.class).values()); @@ -71,6 +81,10 @@ public class TracingEnhanceProcessor implements DisposableBean, BeanPostProcesso @Override public Object postProcessAfterInitialization(Object bean, String beanName) throws BeansException { + if (!turnOn) { + return bean; + } + String packageName = bean.getClass().getPackage().getName(); String className = bean.getClass().getSimpleName(); TracingPattern matchClassBean = null; diff --git a/skywalking-sdk-plugin/spring-plugin/src/test/java/com/ai/cloud/skywalking/plugin/spring/test/AppTest01.java b/skywalking-sdk-plugin/spring-plugin/src/test/java/com/ai/cloud/skywalking/plugin/spring/TestBean.java similarity index 53% rename from skywalking-sdk-plugin/spring-plugin/src/test/java/com/ai/cloud/skywalking/plugin/spring/test/AppTest01.java rename to skywalking-sdk-plugin/spring-plugin/src/test/java/com/ai/cloud/skywalking/plugin/spring/TestBean.java index 768b2e98f..d61e6a1e5 100644 --- a/skywalking-sdk-plugin/spring-plugin/src/test/java/com/ai/cloud/skywalking/plugin/spring/test/AppTest01.java +++ b/skywalking-sdk-plugin/spring-plugin/src/test/java/com/ai/cloud/skywalking/plugin/spring/TestBean.java @@ -1,19 +1,17 @@ -package com.ai.cloud.skywalking.plugin.spring.test; +package com.ai.cloud.skywalking.plugin.spring; -import org.junit.Test; import org.springframework.context.support.ClassPathXmlApplicationContext; -public class AppTest01 { +public class TestBean { public void testPrintln(String value){ System.out.println(value); } - @Test - public void testBean(){ + public static void main(String[] args){ ClassPathXmlApplicationContext classPathXmlApplicationContext = new ClassPathXmlApplicationContext("classpath*:springConfig-common.xml"); - AppTest01 appTest01 = classPathXmlApplicationContext.getBean(AppTest01.class); - appTest01.testPrintln("Hello World"); + TestBean testBean = classPathXmlApplicationContext.getBean(TestBean.class); + testBean.testPrintln("Hello World"); } } diff --git a/skywalking-sdk-plugin/spring-plugin/src/test/resources/springConfig-common.xml b/skywalking-sdk-plugin/spring-plugin/src/test/resources/springConfig-common.xml index 4f29f58f8..ac9d3d9c4 100644 --- a/skywalking-sdk-plugin/spring-plugin/src/test/resources/springConfig-common.xml +++ b/skywalking-sdk-plugin/spring-plugin/src/test/resources/springConfig-common.xml @@ -8,10 +8,10 @@ http://cloud.asiainfo.com/schema/skywalking http://cloud.asiainfo.com/schema/skywalking/skywalking.xsd"> - + - + - + \ No newline at end of file