diff --git a/pom.xml b/pom.xml
index bbbb8f995..461b38fc8 100644
--- a/pom.xml
+++ b/pom.xml
@@ -8,6 +8,7 @@
1.0-Final
samples/skywalking-auth
+ samples/skywalking-example
skywalking-collector
skywalking-server
skywalking-alarm
@@ -61,4 +62,4 @@
https://api.bintray.com/maven/wu-sheng/skywalking/com.ai.cloud.skywalking/;publish=1
-
\ No newline at end of file
+
diff --git a/samples/skywalking-example/example-dubbo/dubbo-impl/pom.xml b/samples/skywalking-example/example-dubbo/dubbo-impl/pom.xml
new file mode 100644
index 000000000..719cef063
--- /dev/null
+++ b/samples/skywalking-example/example-dubbo/dubbo-impl/pom.xml
@@ -0,0 +1,98 @@
+
+
+ example-dubbo
+ com.ai.cloud
+ 1.0-Final
+
+ 4.0.0
+
+ dubbo-impl
+ jar
+
+ dubbo-impl
+ http://maven.apache.org
+
+
+ UTF-8
+
+
+
+
+ com.ai.cloud
+ dubbo-interfaces
+ 1.0-Final
+
+
+ com.alibaba
+ dubbox
+ 2.8.4
+
+
+ org.javassist
+ javassist
+ 3.18.1-GA
+
+
+ com.101tec
+ zkclient
+ 0.7
+
+
+ org.springframework
+ spring-beans
+ 4.3.1.RELEASE
+
+
+ org.springframework
+ spring-tx
+ 4.3.1.RELEASE
+
+
+ org.apache.logging.log4j
+ log4j-core
+ 2.6.2
+
+
+ org.springframework
+ spring-jdbc
+ 4.3.1.RELEASE
+
+
+ org.apache.commons
+ commons-dbcp2
+ 2.1.1
+
+
+ org.mybatis
+ mybatis-spring
+ 1.3.0
+
+
+ org.springframework
+ spring-context
+ 4.3.1.RELEASE
+
+
+ com.h2database
+ h2
+ 1.4.192
+
+
+ org.mybatis
+ mybatis
+ 3.4.1
+
+
+ junit
+ junit
+ RELEASE
+ test
+
+
+ com.ai.cloud
+ skywalking-log4j-1.x-plugin
+ 1.0-Final
+
+
+
diff --git a/samples/skywalking-example/example-dubbo/dubbo-impl/src/main/java/com/ai/cloud/skywalking/sample/dubbo/impl/SampleDubboInterfaceImpl.java b/samples/skywalking-example/example-dubbo/dubbo-impl/src/main/java/com/ai/cloud/skywalking/sample/dubbo/impl/SampleDubboInterfaceImpl.java
new file mode 100644
index 000000000..0e32834b4
--- /dev/null
+++ b/samples/skywalking-example/example-dubbo/dubbo-impl/src/main/java/com/ai/cloud/skywalking/sample/dubbo/impl/SampleDubboInterfaceImpl.java
@@ -0,0 +1,22 @@
+package com.ai.cloud.skywalking.sample.dubbo.impl;
+
+import com.ai.cloud.skywalking.sample.dubbo.interfaces.SampleDubboInterface;
+import com.ai.cloud.skywalking.sample.service.inter.SampleServiceInterface;
+import com.alibaba.dubbo.config.annotation.Service;
+import org.apache.logging.log4j.LogManager;
+import org.apache.logging.log4j.Logger;
+import org.springframework.beans.factory.annotation.Autowired;
+
+@Service
+public class SampleDubboInterfaceImpl implements SampleDubboInterface {
+
+ private Logger logger = LogManager.getLogger(SampleDubboInterfaceImpl.class);
+
+ @Autowired
+ private SampleServiceInterface sampleServiceInterface;
+
+ public String callMethodByDubbox(String value) {
+ logger.info("Begin to call service method.");
+ return sampleServiceInterface.saveSampleTable1(value);
+ }
+}
diff --git a/samples/skywalking-example/example-dubbo/dubbo-impl/src/main/java/com/ai/cloud/skywalking/sample/mybatis/dao/Sampletable1Mapper.java b/samples/skywalking-example/example-dubbo/dubbo-impl/src/main/java/com/ai/cloud/skywalking/sample/mybatis/dao/Sampletable1Mapper.java
new file mode 100644
index 000000000..5be2a144f
--- /dev/null
+++ b/samples/skywalking-example/example-dubbo/dubbo-impl/src/main/java/com/ai/cloud/skywalking/sample/mybatis/dao/Sampletable1Mapper.java
@@ -0,0 +1,98 @@
+package com.ai.cloud.skywalking.sample.mybatis.dao;
+
+
+import com.ai.cloud.skywalking.sample.mybatis.model.Sampletable1;
+import com.ai.cloud.skywalking.sample.mybatis.model.Sampletable1Example;
+import org.apache.ibatis.annotations.Param;
+
+import java.util.List;
+
+public interface Sampletable1Mapper {
+ /**
+ * This method was generated by MyBatis Generator.
+ * This method corresponds to the database table PUBLIC.SAMPLETABLE1
+ *
+ * @mbggenerated Sun Jul 24 09:19:30 CST 2016
+ */
+ int countByExample(Sampletable1Example example);
+
+ /**
+ * This method was generated by MyBatis Generator.
+ * This method corresponds to the database table PUBLIC.SAMPLETABLE1
+ *
+ * @mbggenerated Sun Jul 24 09:19:30 CST 2016
+ */
+ int deleteByExample(Sampletable1Example example);
+
+ /**
+ * This method was generated by MyBatis Generator.
+ * This method corresponds to the database table PUBLIC.SAMPLETABLE1
+ *
+ * @mbggenerated Sun Jul 24 09:19:30 CST 2016
+ */
+ int deleteByPrimaryKey(String key1);
+
+ /**
+ * This method was generated by MyBatis Generator.
+ * This method corresponds to the database table PUBLIC.SAMPLETABLE1
+ *
+ * @mbggenerated Sun Jul 24 09:19:30 CST 2016
+ */
+ int insert(Sampletable1 record);
+
+ /**
+ * This method was generated by MyBatis Generator.
+ * This method corresponds to the database table PUBLIC.SAMPLETABLE1
+ *
+ * @mbggenerated Sun Jul 24 09:19:30 CST 2016
+ */
+ int insertSelective(Sampletable1 record);
+
+ /**
+ * This method was generated by MyBatis Generator.
+ * This method corresponds to the database table PUBLIC.SAMPLETABLE1
+ *
+ * @mbggenerated Sun Jul 24 09:19:30 CST 2016
+ */
+ List selectByExample(Sampletable1Example example);
+
+ /**
+ * This method was generated by MyBatis Generator.
+ * This method corresponds to the database table PUBLIC.SAMPLETABLE1
+ *
+ * @mbggenerated Sun Jul 24 09:19:30 CST 2016
+ */
+ Sampletable1 selectByPrimaryKey(String key1);
+
+ /**
+ * This method was generated by MyBatis Generator.
+ * This method corresponds to the database table PUBLIC.SAMPLETABLE1
+ *
+ * @mbggenerated Sun Jul 24 09:19:30 CST 2016
+ */
+ int updateByExampleSelective(@Param("record") Sampletable1 record, @Param("example") Sampletable1Example example);
+
+ /**
+ * This method was generated by MyBatis Generator.
+ * This method corresponds to the database table PUBLIC.SAMPLETABLE1
+ *
+ * @mbggenerated Sun Jul 24 09:19:30 CST 2016
+ */
+ int updateByExample(@Param("record") Sampletable1 record, @Param("example") Sampletable1Example example);
+
+ /**
+ * This method was generated by MyBatis Generator.
+ * This method corresponds to the database table PUBLIC.SAMPLETABLE1
+ *
+ * @mbggenerated Sun Jul 24 09:19:30 CST 2016
+ */
+ int updateByPrimaryKeySelective(Sampletable1 record);
+
+ /**
+ * This method was generated by MyBatis Generator.
+ * This method corresponds to the database table PUBLIC.SAMPLETABLE1
+ *
+ * @mbggenerated Sun Jul 24 09:19:30 CST 2016
+ */
+ int updateByPrimaryKey(Sampletable1 record);
+}
\ No newline at end of file
diff --git a/samples/skywalking-example/example-dubbo/dubbo-impl/src/main/java/com/ai/cloud/skywalking/sample/mybatis/dao/Sampletable2Mapper.java b/samples/skywalking-example/example-dubbo/dubbo-impl/src/main/java/com/ai/cloud/skywalking/sample/mybatis/dao/Sampletable2Mapper.java
new file mode 100644
index 000000000..8bf26360e
--- /dev/null
+++ b/samples/skywalking-example/example-dubbo/dubbo-impl/src/main/java/com/ai/cloud/skywalking/sample/mybatis/dao/Sampletable2Mapper.java
@@ -0,0 +1,98 @@
+package com.ai.cloud.skywalking.sample.mybatis.dao;
+
+
+import java.util.List;
+
+import com.ai.cloud.skywalking.sample.mybatis.model.Sampletable2;
+import com.ai.cloud.skywalking.sample.mybatis.model.Sampletable2Example;
+import org.apache.ibatis.annotations.Param;
+
+public interface Sampletable2Mapper {
+ /**
+ * This method was generated by MyBatis Generator.
+ * This method corresponds to the database table PUBLIC.SAMPLETABLE2
+ *
+ * @mbggenerated Sun Jul 24 09:26:38 CST 2016
+ */
+ int countByExample(Sampletable2Example example);
+
+ /**
+ * This method was generated by MyBatis Generator.
+ * This method corresponds to the database table PUBLIC.SAMPLETABLE2
+ *
+ * @mbggenerated Sun Jul 24 09:26:38 CST 2016
+ */
+ int deleteByExample(Sampletable2Example example);
+
+ /**
+ * This method was generated by MyBatis Generator.
+ * This method corresponds to the database table PUBLIC.SAMPLETABLE2
+ *
+ * @mbggenerated Sun Jul 24 09:26:38 CST 2016
+ */
+ int deleteByPrimaryKey(String key2);
+
+ /**
+ * This method was generated by MyBatis Generator.
+ * This method corresponds to the database table PUBLIC.SAMPLETABLE2
+ *
+ * @mbggenerated Sun Jul 24 09:26:38 CST 2016
+ */
+ int insert(Sampletable2 record);
+
+ /**
+ * This method was generated by MyBatis Generator.
+ * This method corresponds to the database table PUBLIC.SAMPLETABLE2
+ *
+ * @mbggenerated Sun Jul 24 09:26:38 CST 2016
+ */
+ int insertSelective(Sampletable2 record);
+
+ /**
+ * This method was generated by MyBatis Generator.
+ * This method corresponds to the database table PUBLIC.SAMPLETABLE2
+ *
+ * @mbggenerated Sun Jul 24 09:26:38 CST 2016
+ */
+ List selectByExample(Sampletable2Example example);
+
+ /**
+ * This method was generated by MyBatis Generator.
+ * This method corresponds to the database table PUBLIC.SAMPLETABLE2
+ *
+ * @mbggenerated Sun Jul 24 09:26:38 CST 2016
+ */
+ Sampletable2 selectByPrimaryKey(String key2);
+
+ /**
+ * This method was generated by MyBatis Generator.
+ * This method corresponds to the database table PUBLIC.SAMPLETABLE2
+ *
+ * @mbggenerated Sun Jul 24 09:26:38 CST 2016
+ */
+ int updateByExampleSelective(@Param("record") Sampletable2 record, @Param("example") Sampletable2Example example);
+
+ /**
+ * This method was generated by MyBatis Generator.
+ * This method corresponds to the database table PUBLIC.SAMPLETABLE2
+ *
+ * @mbggenerated Sun Jul 24 09:26:38 CST 2016
+ */
+ int updateByExample(@Param("record") Sampletable2 record, @Param("example") Sampletable2Example example);
+
+ /**
+ * This method was generated by MyBatis Generator.
+ * This method corresponds to the database table PUBLIC.SAMPLETABLE2
+ *
+ * @mbggenerated Sun Jul 24 09:26:38 CST 2016
+ */
+ int updateByPrimaryKeySelective(Sampletable2 record);
+
+ /**
+ * This method was generated by MyBatis Generator.
+ * This method corresponds to the database table PUBLIC.SAMPLETABLE2
+ *
+ * @mbggenerated Sun Jul 24 09:26:38 CST 2016
+ */
+ int updateByPrimaryKey(Sampletable2 record);
+}
\ No newline at end of file
diff --git a/samples/skywalking-example/example-dubbo/dubbo-impl/src/main/java/com/ai/cloud/skywalking/sample/mybatis/model/Sampletable1.java b/samples/skywalking-example/example-dubbo/dubbo-impl/src/main/java/com/ai/cloud/skywalking/sample/mybatis/model/Sampletable1.java
new file mode 100644
index 000000000..0717bd69d
--- /dev/null
+++ b/samples/skywalking-example/example-dubbo/dubbo-impl/src/main/java/com/ai/cloud/skywalking/sample/mybatis/model/Sampletable1.java
@@ -0,0 +1,63 @@
+package com.ai.cloud.skywalking.sample.mybatis.model;
+
+public class Sampletable1 {
+ /**
+ * This field was generated by MyBatis Generator.
+ * This field corresponds to the database column PUBLIC.SAMPLETABLE1.KEY1
+ *
+ * @mbggenerated Sun Jul 24 09:19:30 CST 2016
+ */
+ private String key1;
+
+ /**
+ * This field was generated by MyBatis Generator.
+ * This field corresponds to the database column PUBLIC.SAMPLETABLE1.VALUE1
+ *
+ * @mbggenerated Sun Jul 24 09:19:30 CST 2016
+ */
+ private String value1;
+
+ /**
+ * This method was generated by MyBatis Generator.
+ * This method returns the value of the database column PUBLIC.SAMPLETABLE1.KEY1
+ *
+ * @return the value of PUBLIC.SAMPLETABLE1.KEY1
+ * @mbggenerated Sun Jul 24 09:19:30 CST 2016
+ */
+ public String getKey1() {
+ return key1;
+ }
+
+ /**
+ * This method was generated by MyBatis Generator.
+ * This method sets the value of the database column PUBLIC.SAMPLETABLE1.KEY1
+ *
+ * @param key1 the value for PUBLIC.SAMPLETABLE1.KEY1
+ * @mbggenerated Sun Jul 24 09:19:30 CST 2016
+ */
+ public void setKey1(String key1) {
+ this.key1 = key1 == null ? null : key1.trim();
+ }
+
+ /**
+ * This method was generated by MyBatis Generator.
+ * This method returns the value of the database column PUBLIC.SAMPLETABLE1.VALUE1
+ *
+ * @return the value of PUBLIC.SAMPLETABLE1.VALUE1
+ * @mbggenerated Sun Jul 24 09:19:30 CST 2016
+ */
+ public String getValue1() {
+ return value1;
+ }
+
+ /**
+ * This method was generated by MyBatis Generator.
+ * This method sets the value of the database column PUBLIC.SAMPLETABLE1.VALUE1
+ *
+ * @param value1 the value for PUBLIC.SAMPLETABLE1.VALUE1
+ * @mbggenerated Sun Jul 24 09:19:30 CST 2016
+ */
+ public void setValue1(String value1) {
+ this.value1 = value1 == null ? null : value1.trim();
+ }
+}
\ No newline at end of file
diff --git a/samples/skywalking-example/example-dubbo/dubbo-impl/src/main/java/com/ai/cloud/skywalking/sample/mybatis/model/Sampletable1Example.java b/samples/skywalking-example/example-dubbo/dubbo-impl/src/main/java/com/ai/cloud/skywalking/sample/mybatis/model/Sampletable1Example.java
new file mode 100644
index 000000000..b0a826d48
--- /dev/null
+++ b/samples/skywalking-example/example-dubbo/dubbo-impl/src/main/java/com/ai/cloud/skywalking/sample/mybatis/model/Sampletable1Example.java
@@ -0,0 +1,442 @@
+package com.ai.cloud.skywalking.sample.mybatis.model;
+
+import java.util.ArrayList;
+import java.util.List;
+
+public class Sampletable1Example {
+ /**
+ * This field was generated by MyBatis Generator.
+ * This field corresponds to the database table PUBLIC.SAMPLETABLE1
+ *
+ * @mbggenerated Sun Jul 24 09:19:30 CST 2016
+ */
+ protected String orderByClause;
+
+ /**
+ * This field was generated by MyBatis Generator.
+ * This field corresponds to the database table PUBLIC.SAMPLETABLE1
+ *
+ * @mbggenerated Sun Jul 24 09:19:30 CST 2016
+ */
+ protected boolean distinct;
+
+ /**
+ * This field was generated by MyBatis Generator.
+ * This field corresponds to the database table PUBLIC.SAMPLETABLE1
+ *
+ * @mbggenerated Sun Jul 24 09:19:30 CST 2016
+ */
+ protected List oredCriteria;
+
+ /**
+ * This method was generated by MyBatis Generator.
+ * This method corresponds to the database table PUBLIC.SAMPLETABLE1
+ *
+ * @mbggenerated Sun Jul 24 09:19:30 CST 2016
+ */
+ public Sampletable1Example() {
+ oredCriteria = new ArrayList();
+ }
+
+ /**
+ * This method was generated by MyBatis Generator.
+ * This method corresponds to the database table PUBLIC.SAMPLETABLE1
+ *
+ * @mbggenerated Sun Jul 24 09:19:30 CST 2016
+ */
+ public void setOrderByClause(String orderByClause) {
+ this.orderByClause = orderByClause;
+ }
+
+ /**
+ * This method was generated by MyBatis Generator.
+ * This method corresponds to the database table PUBLIC.SAMPLETABLE1
+ *
+ * @mbggenerated Sun Jul 24 09:19:30 CST 2016
+ */
+ public String getOrderByClause() {
+ return orderByClause;
+ }
+
+ /**
+ * This method was generated by MyBatis Generator.
+ * This method corresponds to the database table PUBLIC.SAMPLETABLE1
+ *
+ * @mbggenerated Sun Jul 24 09:19:30 CST 2016
+ */
+ public void setDistinct(boolean distinct) {
+ this.distinct = distinct;
+ }
+
+ /**
+ * This method was generated by MyBatis Generator.
+ * This method corresponds to the database table PUBLIC.SAMPLETABLE1
+ *
+ * @mbggenerated Sun Jul 24 09:19:30 CST 2016
+ */
+ public boolean isDistinct() {
+ return distinct;
+ }
+
+ /**
+ * This method was generated by MyBatis Generator.
+ * This method corresponds to the database table PUBLIC.SAMPLETABLE1
+ *
+ * @mbggenerated Sun Jul 24 09:19:30 CST 2016
+ */
+ public List getOredCriteria() {
+ return oredCriteria;
+ }
+
+ /**
+ * This method was generated by MyBatis Generator.
+ * This method corresponds to the database table PUBLIC.SAMPLETABLE1
+ *
+ * @mbggenerated Sun Jul 24 09:19:30 CST 2016
+ */
+ public void or(Criteria criteria) {
+ oredCriteria.add(criteria);
+ }
+
+ /**
+ * This method was generated by MyBatis Generator.
+ * This method corresponds to the database table PUBLIC.SAMPLETABLE1
+ *
+ * @mbggenerated Sun Jul 24 09:19:30 CST 2016
+ */
+ public Criteria or() {
+ Criteria criteria = createCriteriaInternal();
+ oredCriteria.add(criteria);
+ return criteria;
+ }
+
+ /**
+ * This method was generated by MyBatis Generator.
+ * This method corresponds to the database table PUBLIC.SAMPLETABLE1
+ *
+ * @mbggenerated Sun Jul 24 09:19:30 CST 2016
+ */
+ public Criteria createCriteria() {
+ Criteria criteria = createCriteriaInternal();
+ if (oredCriteria.size() == 0) {
+ oredCriteria.add(criteria);
+ }
+ return criteria;
+ }
+
+ /**
+ * This method was generated by MyBatis Generator.
+ * This method corresponds to the database table PUBLIC.SAMPLETABLE1
+ *
+ * @mbggenerated Sun Jul 24 09:19:30 CST 2016
+ */
+ protected Criteria createCriteriaInternal() {
+ Criteria criteria = new Criteria();
+ return criteria;
+ }
+
+ /**
+ * This method was generated by MyBatis Generator.
+ * This method corresponds to the database table PUBLIC.SAMPLETABLE1
+ *
+ * @mbggenerated Sun Jul 24 09:19:30 CST 2016
+ */
+ public void clear() {
+ oredCriteria.clear();
+ orderByClause = null;
+ distinct = false;
+ }
+
+ /**
+ * This class was generated by MyBatis Generator.
+ * This class corresponds to the database table PUBLIC.SAMPLETABLE1
+ *
+ * @mbggenerated Sun Jul 24 09:19:30 CST 2016
+ */
+ protected abstract static class GeneratedCriteria {
+ protected List criteria;
+
+ protected GeneratedCriteria() {
+ super();
+ criteria = new ArrayList();
+ }
+
+ public boolean isValid() {
+ return criteria.size() > 0;
+ }
+
+ public List getAllCriteria() {
+ return criteria;
+ }
+
+ public List getCriteria() {
+ return criteria;
+ }
+
+ protected void addCriterion(String condition) {
+ if (condition == null) {
+ throw new RuntimeException("Value for condition cannot be null");
+ }
+ criteria.add(new Criterion(condition));
+ }
+
+ protected void addCriterion(String condition, Object value, String property) {
+ if (value == null) {
+ throw new RuntimeException("Value for " + property + " cannot be null");
+ }
+ criteria.add(new Criterion(condition, value));
+ }
+
+ protected void addCriterion(String condition, Object value1, Object value2, String property) {
+ if (value1 == null || value2 == null) {
+ throw new RuntimeException("Between values for " + property + " cannot be null");
+ }
+ criteria.add(new Criterion(condition, value1, value2));
+ }
+
+ public Criteria andKey1IsNull() {
+ addCriterion("KEY1 is null");
+ return (Criteria) this;
+ }
+
+ public Criteria andKey1IsNotNull() {
+ addCriterion("KEY1 is not null");
+ return (Criteria) this;
+ }
+
+ public Criteria andKey1EqualTo(String value) {
+ addCriterion("KEY1 =", value, "key1");
+ return (Criteria) this;
+ }
+
+ public Criteria andKey1NotEqualTo(String value) {
+ addCriterion("KEY1 <>", value, "key1");
+ return (Criteria) this;
+ }
+
+ public Criteria andKey1GreaterThan(String value) {
+ addCriterion("KEY1 >", value, "key1");
+ return (Criteria) this;
+ }
+
+ public Criteria andKey1GreaterThanOrEqualTo(String value) {
+ addCriterion("KEY1 >=", value, "key1");
+ return (Criteria) this;
+ }
+
+ public Criteria andKey1LessThan(String value) {
+ addCriterion("KEY1 <", value, "key1");
+ return (Criteria) this;
+ }
+
+ public Criteria andKey1LessThanOrEqualTo(String value) {
+ addCriterion("KEY1 <=", value, "key1");
+ return (Criteria) this;
+ }
+
+ public Criteria andKey1Like(String value) {
+ addCriterion("KEY1 like", value, "key1");
+ return (Criteria) this;
+ }
+
+ public Criteria andKey1NotLike(String value) {
+ addCriterion("KEY1 not like", value, "key1");
+ return (Criteria) this;
+ }
+
+ public Criteria andKey1In(List values) {
+ addCriterion("KEY1 in", values, "key1");
+ return (Criteria) this;
+ }
+
+ public Criteria andKey1NotIn(List values) {
+ addCriterion("KEY1 not in", values, "key1");
+ return (Criteria) this;
+ }
+
+ public Criteria andKey1Between(String value1, String value2) {
+ addCriterion("KEY1 between", value1, value2, "key1");
+ return (Criteria) this;
+ }
+
+ public Criteria andKey1NotBetween(String value1, String value2) {
+ addCriterion("KEY1 not between", value1, value2, "key1");
+ return (Criteria) this;
+ }
+
+ public Criteria andValue1IsNull() {
+ addCriterion("VALUE1 is null");
+ return (Criteria) this;
+ }
+
+ public Criteria andValue1IsNotNull() {
+ addCriterion("VALUE1 is not null");
+ return (Criteria) this;
+ }
+
+ public Criteria andValue1EqualTo(String value) {
+ addCriterion("VALUE1 =", value, "value1");
+ return (Criteria) this;
+ }
+
+ public Criteria andValue1NotEqualTo(String value) {
+ addCriterion("VALUE1 <>", value, "value1");
+ return (Criteria) this;
+ }
+
+ public Criteria andValue1GreaterThan(String value) {
+ addCriterion("VALUE1 >", value, "value1");
+ return (Criteria) this;
+ }
+
+ public Criteria andValue1GreaterThanOrEqualTo(String value) {
+ addCriterion("VALUE1 >=", value, "value1");
+ return (Criteria) this;
+ }
+
+ public Criteria andValue1LessThan(String value) {
+ addCriterion("VALUE1 <", value, "value1");
+ return (Criteria) this;
+ }
+
+ public Criteria andValue1LessThanOrEqualTo(String value) {
+ addCriterion("VALUE1 <=", value, "value1");
+ return (Criteria) this;
+ }
+
+ public Criteria andValue1Like(String value) {
+ addCriterion("VALUE1 like", value, "value1");
+ return (Criteria) this;
+ }
+
+ public Criteria andValue1NotLike(String value) {
+ addCriterion("VALUE1 not like", value, "value1");
+ return (Criteria) this;
+ }
+
+ public Criteria andValue1In(List values) {
+ addCriterion("VALUE1 in", values, "value1");
+ return (Criteria) this;
+ }
+
+ public Criteria andValue1NotIn(List values) {
+ addCriterion("VALUE1 not in", values, "value1");
+ return (Criteria) this;
+ }
+
+ public Criteria andValue1Between(String value1, String value2) {
+ addCriterion("VALUE1 between", value1, value2, "value1");
+ return (Criteria) this;
+ }
+
+ public Criteria andValue1NotBetween(String value1, String value2) {
+ addCriterion("VALUE1 not between", value1, value2, "value1");
+ return (Criteria) this;
+ }
+ }
+
+ /**
+ * This class was generated by MyBatis Generator.
+ * This class corresponds to the database table PUBLIC.SAMPLETABLE1
+ *
+ * @mbggenerated do_not_delete_during_merge Sun Jul 24 09:19:30 CST 2016
+ */
+ public static class Criteria extends GeneratedCriteria {
+
+ protected Criteria() {
+ super();
+ }
+ }
+
+ /**
+ * This class was generated by MyBatis Generator.
+ * This class corresponds to the database table PUBLIC.SAMPLETABLE1
+ *
+ * @mbggenerated Sun Jul 24 09:19:30 CST 2016
+ */
+ public static class Criterion {
+ private String condition;
+
+ private Object value;
+
+ private Object secondValue;
+
+ private boolean noValue;
+
+ private boolean singleValue;
+
+ private boolean betweenValue;
+
+ private boolean listValue;
+
+ private String typeHandler;
+
+ public String getCondition() {
+ return condition;
+ }
+
+ public Object getValue() {
+ return value;
+ }
+
+ public Object getSecondValue() {
+ return secondValue;
+ }
+
+ public boolean isNoValue() {
+ return noValue;
+ }
+
+ public boolean isSingleValue() {
+ return singleValue;
+ }
+
+ public boolean isBetweenValue() {
+ return betweenValue;
+ }
+
+ public boolean isListValue() {
+ return listValue;
+ }
+
+ public String getTypeHandler() {
+ return typeHandler;
+ }
+
+ protected Criterion(String condition) {
+ super();
+ this.condition = condition;
+ this.typeHandler = null;
+ this.noValue = true;
+ }
+
+ protected Criterion(String condition, Object value, String typeHandler) {
+ super();
+ this.condition = condition;
+ this.value = value;
+ this.typeHandler = typeHandler;
+ if (value instanceof List>) {
+ this.listValue = true;
+ } else {
+ this.singleValue = true;
+ }
+ }
+
+ protected Criterion(String condition, Object value) {
+ this(condition, value, null);
+ }
+
+ protected Criterion(String condition, Object value, Object secondValue, String typeHandler) {
+ super();
+ this.condition = condition;
+ this.value = value;
+ this.secondValue = secondValue;
+ this.typeHandler = typeHandler;
+ this.betweenValue = true;
+ }
+
+ protected Criterion(String condition, Object value, Object secondValue) {
+ this(condition, value, secondValue, null);
+ }
+ }
+}
\ No newline at end of file
diff --git a/samples/skywalking-example/example-dubbo/dubbo-impl/src/main/java/com/ai/cloud/skywalking/sample/mybatis/model/Sampletable2.java b/samples/skywalking-example/example-dubbo/dubbo-impl/src/main/java/com/ai/cloud/skywalking/sample/mybatis/model/Sampletable2.java
new file mode 100644
index 000000000..bdd57d31e
--- /dev/null
+++ b/samples/skywalking-example/example-dubbo/dubbo-impl/src/main/java/com/ai/cloud/skywalking/sample/mybatis/model/Sampletable2.java
@@ -0,0 +1,69 @@
+package com.ai.cloud.skywalking.sample.mybatis.model;
+
+public class Sampletable2 {
+ /**
+ *
+ * This field was generated by MyBatis Generator.
+ * This field corresponds to the database column PUBLIC.SAMPLETABLE2.KEY2
+ *
+ * @mbggenerated Sun Jul 24 09:26:38 CST 2016
+ */
+ private String key2;
+
+ /**
+ *
+ * This field was generated by MyBatis Generator.
+ * This field corresponds to the database column PUBLIC.SAMPLETABLE2.VALUE2
+ *
+ * @mbggenerated Sun Jul 24 09:26:38 CST 2016
+ */
+ private String value2;
+
+ /**
+ * This method was generated by MyBatis Generator.
+ * This method returns the value of the database column PUBLIC.SAMPLETABLE2.KEY2
+ *
+ * @return the value of PUBLIC.SAMPLETABLE2.KEY2
+ *
+ * @mbggenerated Sun Jul 24 09:26:38 CST 2016
+ */
+ public String getKey2() {
+ return key2;
+ }
+
+ /**
+ * This method was generated by MyBatis Generator.
+ * This method sets the value of the database column PUBLIC.SAMPLETABLE2.KEY2
+ *
+ * @param key2 the value for PUBLIC.SAMPLETABLE2.KEY2
+ *
+ * @mbggenerated Sun Jul 24 09:26:38 CST 2016
+ */
+ public void setKey2(String key2) {
+ this.key2 = key2 == null ? null : key2.trim();
+ }
+
+ /**
+ * This method was generated by MyBatis Generator.
+ * This method returns the value of the database column PUBLIC.SAMPLETABLE2.VALUE2
+ *
+ * @return the value of PUBLIC.SAMPLETABLE2.VALUE2
+ *
+ * @mbggenerated Sun Jul 24 09:26:38 CST 2016
+ */
+ public String getValue2() {
+ return value2;
+ }
+
+ /**
+ * This method was generated by MyBatis Generator.
+ * This method sets the value of the database column PUBLIC.SAMPLETABLE2.VALUE2
+ *
+ * @param value2 the value for PUBLIC.SAMPLETABLE2.VALUE2
+ *
+ * @mbggenerated Sun Jul 24 09:26:38 CST 2016
+ */
+ public void setValue2(String value2) {
+ this.value2 = value2 == null ? null : value2.trim();
+ }
+}
\ No newline at end of file
diff --git a/samples/skywalking-example/example-dubbo/dubbo-impl/src/main/java/com/ai/cloud/skywalking/sample/mybatis/model/Sampletable2Example.java b/samples/skywalking-example/example-dubbo/dubbo-impl/src/main/java/com/ai/cloud/skywalking/sample/mybatis/model/Sampletable2Example.java
new file mode 100644
index 000000000..f4d7e7381
--- /dev/null
+++ b/samples/skywalking-example/example-dubbo/dubbo-impl/src/main/java/com/ai/cloud/skywalking/sample/mybatis/model/Sampletable2Example.java
@@ -0,0 +1,443 @@
+package com.ai.cloud.skywalking.sample.mybatis.model;
+
+
+import java.util.ArrayList;
+import java.util.List;
+
+public class Sampletable2Example {
+ /**
+ * This field was generated by MyBatis Generator.
+ * This field corresponds to the database table PUBLIC.SAMPLETABLE2
+ *
+ * @mbggenerated Sun Jul 24 09:26:38 CST 2016
+ */
+ protected String orderByClause;
+
+ /**
+ * This field was generated by MyBatis Generator.
+ * This field corresponds to the database table PUBLIC.SAMPLETABLE2
+ *
+ * @mbggenerated Sun Jul 24 09:26:38 CST 2016
+ */
+ protected boolean distinct;
+
+ /**
+ * This field was generated by MyBatis Generator.
+ * This field corresponds to the database table PUBLIC.SAMPLETABLE2
+ *
+ * @mbggenerated Sun Jul 24 09:26:38 CST 2016
+ */
+ protected List oredCriteria;
+
+ /**
+ * This method was generated by MyBatis Generator.
+ * This method corresponds to the database table PUBLIC.SAMPLETABLE2
+ *
+ * @mbggenerated Sun Jul 24 09:26:38 CST 2016
+ */
+ public Sampletable2Example() {
+ oredCriteria = new ArrayList();
+ }
+
+ /**
+ * This method was generated by MyBatis Generator.
+ * This method corresponds to the database table PUBLIC.SAMPLETABLE2
+ *
+ * @mbggenerated Sun Jul 24 09:26:38 CST 2016
+ */
+ public void setOrderByClause(String orderByClause) {
+ this.orderByClause = orderByClause;
+ }
+
+ /**
+ * This method was generated by MyBatis Generator.
+ * This method corresponds to the database table PUBLIC.SAMPLETABLE2
+ *
+ * @mbggenerated Sun Jul 24 09:26:38 CST 2016
+ */
+ public String getOrderByClause() {
+ return orderByClause;
+ }
+
+ /**
+ * This method was generated by MyBatis Generator.
+ * This method corresponds to the database table PUBLIC.SAMPLETABLE2
+ *
+ * @mbggenerated Sun Jul 24 09:26:38 CST 2016
+ */
+ public void setDistinct(boolean distinct) {
+ this.distinct = distinct;
+ }
+
+ /**
+ * This method was generated by MyBatis Generator.
+ * This method corresponds to the database table PUBLIC.SAMPLETABLE2
+ *
+ * @mbggenerated Sun Jul 24 09:26:38 CST 2016
+ */
+ public boolean isDistinct() {
+ return distinct;
+ }
+
+ /**
+ * This method was generated by MyBatis Generator.
+ * This method corresponds to the database table PUBLIC.SAMPLETABLE2
+ *
+ * @mbggenerated Sun Jul 24 09:26:38 CST 2016
+ */
+ public List getOredCriteria() {
+ return oredCriteria;
+ }
+
+ /**
+ * This method was generated by MyBatis Generator.
+ * This method corresponds to the database table PUBLIC.SAMPLETABLE2
+ *
+ * @mbggenerated Sun Jul 24 09:26:38 CST 2016
+ */
+ public void or(Criteria criteria) {
+ oredCriteria.add(criteria);
+ }
+
+ /**
+ * This method was generated by MyBatis Generator.
+ * This method corresponds to the database table PUBLIC.SAMPLETABLE2
+ *
+ * @mbggenerated Sun Jul 24 09:26:38 CST 2016
+ */
+ public Criteria or() {
+ Criteria criteria = createCriteriaInternal();
+ oredCriteria.add(criteria);
+ return criteria;
+ }
+
+ /**
+ * This method was generated by MyBatis Generator.
+ * This method corresponds to the database table PUBLIC.SAMPLETABLE2
+ *
+ * @mbggenerated Sun Jul 24 09:26:38 CST 2016
+ */
+ public Criteria createCriteria() {
+ Criteria criteria = createCriteriaInternal();
+ if (oredCriteria.size() == 0) {
+ oredCriteria.add(criteria);
+ }
+ return criteria;
+ }
+
+ /**
+ * This method was generated by MyBatis Generator.
+ * This method corresponds to the database table PUBLIC.SAMPLETABLE2
+ *
+ * @mbggenerated Sun Jul 24 09:26:38 CST 2016
+ */
+ protected Criteria createCriteriaInternal() {
+ Criteria criteria = new Criteria();
+ return criteria;
+ }
+
+ /**
+ * This method was generated by MyBatis Generator.
+ * This method corresponds to the database table PUBLIC.SAMPLETABLE2
+ *
+ * @mbggenerated Sun Jul 24 09:26:38 CST 2016
+ */
+ public void clear() {
+ oredCriteria.clear();
+ orderByClause = null;
+ distinct = false;
+ }
+
+ /**
+ * This class was generated by MyBatis Generator.
+ * This class corresponds to the database table PUBLIC.SAMPLETABLE2
+ *
+ * @mbggenerated Sun Jul 24 09:26:38 CST 2016
+ */
+ protected abstract static class GeneratedCriteria {
+ protected List criteria;
+
+ protected GeneratedCriteria() {
+ super();
+ criteria = new ArrayList();
+ }
+
+ public boolean isValid() {
+ return criteria.size() > 0;
+ }
+
+ public List getAllCriteria() {
+ return criteria;
+ }
+
+ public List getCriteria() {
+ return criteria;
+ }
+
+ protected void addCriterion(String condition) {
+ if (condition == null) {
+ throw new RuntimeException("Value for condition cannot be null");
+ }
+ criteria.add(new Criterion(condition));
+ }
+
+ protected void addCriterion(String condition, Object value, String property) {
+ if (value == null) {
+ throw new RuntimeException("Value for " + property + " cannot be null");
+ }
+ criteria.add(new Criterion(condition, value));
+ }
+
+ protected void addCriterion(String condition, Object value1, Object value2, String property) {
+ if (value1 == null || value2 == null) {
+ throw new RuntimeException("Between values for " + property + " cannot be null");
+ }
+ criteria.add(new Criterion(condition, value1, value2));
+ }
+
+ public Criteria andKey2IsNull() {
+ addCriterion("KEY2 is null");
+ return (Criteria) this;
+ }
+
+ public Criteria andKey2IsNotNull() {
+ addCriterion("KEY2 is not null");
+ return (Criteria) this;
+ }
+
+ public Criteria andKey2EqualTo(String value) {
+ addCriterion("KEY2 =", value, "key2");
+ return (Criteria) this;
+ }
+
+ public Criteria andKey2NotEqualTo(String value) {
+ addCriterion("KEY2 <>", value, "key2");
+ return (Criteria) this;
+ }
+
+ public Criteria andKey2GreaterThan(String value) {
+ addCriterion("KEY2 >", value, "key2");
+ return (Criteria) this;
+ }
+
+ public Criteria andKey2GreaterThanOrEqualTo(String value) {
+ addCriterion("KEY2 >=", value, "key2");
+ return (Criteria) this;
+ }
+
+ public Criteria andKey2LessThan(String value) {
+ addCriterion("KEY2 <", value, "key2");
+ return (Criteria) this;
+ }
+
+ public Criteria andKey2LessThanOrEqualTo(String value) {
+ addCriterion("KEY2 <=", value, "key2");
+ return (Criteria) this;
+ }
+
+ public Criteria andKey2Like(String value) {
+ addCriterion("KEY2 like", value, "key2");
+ return (Criteria) this;
+ }
+
+ public Criteria andKey2NotLike(String value) {
+ addCriterion("KEY2 not like", value, "key2");
+ return (Criteria) this;
+ }
+
+ public Criteria andKey2In(List values) {
+ addCriterion("KEY2 in", values, "key2");
+ return (Criteria) this;
+ }
+
+ public Criteria andKey2NotIn(List values) {
+ addCriterion("KEY2 not in", values, "key2");
+ return (Criteria) this;
+ }
+
+ public Criteria andKey2Between(String value1, String value2) {
+ addCriterion("KEY2 between", value1, value2, "key2");
+ return (Criteria) this;
+ }
+
+ public Criteria andKey2NotBetween(String value1, String value2) {
+ addCriterion("KEY2 not between", value1, value2, "key2");
+ return (Criteria) this;
+ }
+
+ public Criteria andValue2IsNull() {
+ addCriterion("VALUE2 is null");
+ return (Criteria) this;
+ }
+
+ public Criteria andValue2IsNotNull() {
+ addCriterion("VALUE2 is not null");
+ return (Criteria) this;
+ }
+
+ public Criteria andValue2EqualTo(String value) {
+ addCriterion("VALUE2 =", value, "value2");
+ return (Criteria) this;
+ }
+
+ public Criteria andValue2NotEqualTo(String value) {
+ addCriterion("VALUE2 <>", value, "value2");
+ return (Criteria) this;
+ }
+
+ public Criteria andValue2GreaterThan(String value) {
+ addCriterion("VALUE2 >", value, "value2");
+ return (Criteria) this;
+ }
+
+ public Criteria andValue2GreaterThanOrEqualTo(String value) {
+ addCriterion("VALUE2 >=", value, "value2");
+ return (Criteria) this;
+ }
+
+ public Criteria andValue2LessThan(String value) {
+ addCriterion("VALUE2 <", value, "value2");
+ return (Criteria) this;
+ }
+
+ public Criteria andValue2LessThanOrEqualTo(String value) {
+ addCriterion("VALUE2 <=", value, "value2");
+ return (Criteria) this;
+ }
+
+ public Criteria andValue2Like(String value) {
+ addCriterion("VALUE2 like", value, "value2");
+ return (Criteria) this;
+ }
+
+ public Criteria andValue2NotLike(String value) {
+ addCriterion("VALUE2 not like", value, "value2");
+ return (Criteria) this;
+ }
+
+ public Criteria andValue2In(List values) {
+ addCriterion("VALUE2 in", values, "value2");
+ return (Criteria) this;
+ }
+
+ public Criteria andValue2NotIn(List values) {
+ addCriterion("VALUE2 not in", values, "value2");
+ return (Criteria) this;
+ }
+
+ public Criteria andValue2Between(String value1, String value2) {
+ addCriterion("VALUE2 between", value1, value2, "value2");
+ return (Criteria) this;
+ }
+
+ public Criteria andValue2NotBetween(String value1, String value2) {
+ addCriterion("VALUE2 not between", value1, value2, "value2");
+ return (Criteria) this;
+ }
+ }
+
+ /**
+ * This class was generated by MyBatis Generator.
+ * This class corresponds to the database table PUBLIC.SAMPLETABLE2
+ *
+ * @mbggenerated do_not_delete_during_merge Sun Jul 24 09:26:38 CST 2016
+ */
+ public static class Criteria extends GeneratedCriteria {
+
+ protected Criteria() {
+ super();
+ }
+ }
+
+ /**
+ * This class was generated by MyBatis Generator.
+ * This class corresponds to the database table PUBLIC.SAMPLETABLE2
+ *
+ * @mbggenerated Sun Jul 24 09:26:38 CST 2016
+ */
+ public static class Criterion {
+ private String condition;
+
+ private Object value;
+
+ private Object secondValue;
+
+ private boolean noValue;
+
+ private boolean singleValue;
+
+ private boolean betweenValue;
+
+ private boolean listValue;
+
+ private String typeHandler;
+
+ public String getCondition() {
+ return condition;
+ }
+
+ public Object getValue() {
+ return value;
+ }
+
+ public Object getSecondValue() {
+ return secondValue;
+ }
+
+ public boolean isNoValue() {
+ return noValue;
+ }
+
+ public boolean isSingleValue() {
+ return singleValue;
+ }
+
+ public boolean isBetweenValue() {
+ return betweenValue;
+ }
+
+ public boolean isListValue() {
+ return listValue;
+ }
+
+ public String getTypeHandler() {
+ return typeHandler;
+ }
+
+ protected Criterion(String condition) {
+ super();
+ this.condition = condition;
+ this.typeHandler = null;
+ this.noValue = true;
+ }
+
+ protected Criterion(String condition, Object value, String typeHandler) {
+ super();
+ this.condition = condition;
+ this.value = value;
+ this.typeHandler = typeHandler;
+ if (value instanceof List>) {
+ this.listValue = true;
+ } else {
+ this.singleValue = true;
+ }
+ }
+
+ protected Criterion(String condition, Object value) {
+ this(condition, value, null);
+ }
+
+ protected Criterion(String condition, Object value, Object secondValue, String typeHandler) {
+ super();
+ this.condition = condition;
+ this.value = value;
+ this.secondValue = secondValue;
+ this.typeHandler = typeHandler;
+ this.betweenValue = true;
+ }
+
+ protected Criterion(String condition, Object value, Object secondValue) {
+ this(condition, value, secondValue, null);
+ }
+ }
+}
\ No newline at end of file
diff --git a/samples/skywalking-example/example-dubbo/dubbo-impl/src/main/java/com/ai/cloud/skywalking/sample/service/impl/SampleServiceImpl.java b/samples/skywalking-example/example-dubbo/dubbo-impl/src/main/java/com/ai/cloud/skywalking/sample/service/impl/SampleServiceImpl.java
new file mode 100644
index 000000000..d5771af23
--- /dev/null
+++ b/samples/skywalking-example/example-dubbo/dubbo-impl/src/main/java/com/ai/cloud/skywalking/sample/service/impl/SampleServiceImpl.java
@@ -0,0 +1,51 @@
+package com.ai.cloud.skywalking.sample.service.impl;
+
+import com.ai.cloud.skywalking.sample.mybatis.dao.Sampletable1Mapper;
+import com.ai.cloud.skywalking.sample.mybatis.dao.Sampletable2Mapper;
+import com.ai.cloud.skywalking.sample.mybatis.model.Sampletable1;
+import com.ai.cloud.skywalking.sample.mybatis.model.Sampletable2;
+import com.ai.cloud.skywalking.sample.service.inter.SampleServiceInterface;
+import org.apache.logging.log4j.LogManager;
+import org.apache.logging.log4j.Logger;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
+
+import java.util.UUID;
+
+@Transactional
+@Service
+public class SampleServiceImpl implements SampleServiceInterface {
+
+ private Logger logger = LogManager.getLogger(SampleServiceImpl.class);
+
+ @Autowired
+ private Sampletable1Mapper sampletable1Mapper;
+
+ @Autowired
+ private Sampletable2Mapper sampletable2Mapper;
+
+ public String saveSampleTable1(String value) {
+ String generateKey = UUID.randomUUID().toString();
+ logger.info("Generate key : {}.", generateKey);
+ logger.info("Save to sampletable1");
+ sampletable1Mapper.insert(generateSampleObject1(generateKey,value));
+ logger.info("Save to sampletable2");
+ sampletable2Mapper.insert(generateSampleObject2(generateKey,value));
+ return generateKey;
+ }
+
+ private Sampletable2 generateSampleObject2(String generateKey, String value) {
+ Sampletable2 sampletable2 = new Sampletable2();
+ sampletable2.setKey2(generateKey);
+ sampletable2.setValue2(value);
+ return sampletable2;
+ }
+
+ private Sampletable1 generateSampleObject1(String generateKey, String value) {
+ Sampletable1 sampletable1 = new Sampletable1();
+ sampletable1.setKey1(generateKey);
+ sampletable1.setValue1(value);
+ return sampletable1;
+ }
+}
diff --git a/samples/skywalking-example/example-dubbo/dubbo-impl/src/main/java/com/ai/cloud/skywalking/sample/service/inter/SampleServiceInterface.java b/samples/skywalking-example/example-dubbo/dubbo-impl/src/main/java/com/ai/cloud/skywalking/sample/service/inter/SampleServiceInterface.java
new file mode 100644
index 000000000..27892f0f3
--- /dev/null
+++ b/samples/skywalking-example/example-dubbo/dubbo-impl/src/main/java/com/ai/cloud/skywalking/sample/service/inter/SampleServiceInterface.java
@@ -0,0 +1,6 @@
+package com.ai.cloud.skywalking.sample.service.inter;
+
+public interface SampleServiceInterface {
+
+ String saveSampleTable1(String value);
+}
diff --git a/samples/skywalking-example/example-dubbo/dubbo-impl/src/main/java/com/ai/cloud/skywalking/sample/util/DubboStart.java b/samples/skywalking-example/example-dubbo/dubbo-impl/src/main/java/com/ai/cloud/skywalking/sample/util/DubboStart.java
new file mode 100644
index 000000000..be6e9b501
--- /dev/null
+++ b/samples/skywalking-example/example-dubbo/dubbo-impl/src/main/java/com/ai/cloud/skywalking/sample/util/DubboStart.java
@@ -0,0 +1,19 @@
+package com.ai.cloud.skywalking.sample.util;
+
+import org.apache.logging.log4j.LogManager;
+import org.apache.logging.log4j.Logger;
+import org.springframework.context.support.ClassPathXmlApplicationContext;
+
+public class DubboStart {
+
+ private static Logger logger = LogManager.getLogger(DubboStart.class);
+
+ public static void main(String[] args) throws InterruptedException {
+ ClassPathXmlApplicationContext context = new ClassPathXmlApplicationContext("classpath*:spring-context.xml");
+ context.start();
+ logger.info("Dubbo started success.");
+ while (true){
+ Thread.sleep(60 * 60 * 1000);
+ }
+ }
+}
diff --git a/samples/skywalking-example/example-dubbo/dubbo-impl/src/main/resources/db/sql/create-db.sql b/samples/skywalking-example/example-dubbo/dubbo-impl/src/main/resources/db/sql/create-db.sql
new file mode 100644
index 000000000..e8d3b5150
--- /dev/null
+++ b/samples/skywalking-example/example-dubbo/dubbo-impl/src/main/resources/db/sql/create-db.sql
@@ -0,0 +1,11 @@
+CREATE TABLE PUBLIC.sampletable1
+(
+ key1 VARCHAR2(36) PRIMARY KEY,
+ value1 VARCHAR2(36) NOT NULL
+);
+
+CREATE TABLE PUBLIC.sampletable2
+(
+ key2 VARCHAR2(36) PRIMARY KEY,
+ value2 VARCHAR2(36) NOT NULL
+);
diff --git a/samples/skywalking-example/example-dubbo/dubbo-impl/src/main/resources/log4j.xml b/samples/skywalking-example/example-dubbo/dubbo-impl/src/main/resources/log4j.xml
new file mode 100644
index 000000000..55304ff73
--- /dev/null
+++ b/samples/skywalking-example/example-dubbo/dubbo-impl/src/main/resources/log4j.xml
@@ -0,0 +1,16 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/samples/skywalking-example/example-dubbo/dubbo-impl/src/main/resources/log4j2.xml b/samples/skywalking-example/example-dubbo/dubbo-impl/src/main/resources/log4j2.xml
new file mode 100644
index 000000000..91e20d37a
--- /dev/null
+++ b/samples/skywalking-example/example-dubbo/dubbo-impl/src/main/resources/log4j2.xml
@@ -0,0 +1,13 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/samples/skywalking-example/example-dubbo/dubbo-impl/src/main/resources/mybatis/Sampletable1Mapper.xml b/samples/skywalking-example/example-dubbo/dubbo-impl/src/main/resources/mybatis/Sampletable1Mapper.xml
new file mode 100644
index 000000000..9f520963a
--- /dev/null
+++ b/samples/skywalking-example/example-dubbo/dubbo-impl/src/main/resources/mybatis/Sampletable1Mapper.xml
@@ -0,0 +1,239 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ and ${criterion.condition}
+
+
+ and ${criterion.condition} #{criterion.value}
+
+
+ and ${criterion.condition} #{criterion.value} and #{criterion.secondValue}
+
+
+ and ${criterion.condition}
+
+ #{listItem}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ and ${criterion.condition}
+
+
+ and ${criterion.condition} #{criterion.value}
+
+
+ and ${criterion.condition} #{criterion.value} and #{criterion.secondValue}
+
+
+ and ${criterion.condition}
+
+ #{listItem}
+
+
+
+
+
+
+
+
+
+
+
+ KEY1, VALUE1
+
+
+
+
+
+ delete from PUBLIC.SAMPLETABLE1
+ where KEY1 = #{key1,jdbcType=VARCHAR}
+
+
+
+ delete from PUBLIC.SAMPLETABLE1
+
+
+
+
+
+
+ insert into PUBLIC.SAMPLETABLE1 (KEY1, VALUE1)
+ values (#{key1,jdbcType=VARCHAR}, #{value1,jdbcType=VARCHAR})
+
+
+
+ insert into PUBLIC.SAMPLETABLE1
+
+
+ KEY1,
+
+
+ VALUE1,
+
+
+
+
+ #{key1,jdbcType=VARCHAR},
+
+
+ #{value1,jdbcType=VARCHAR},
+
+
+
+
+
+
+ update PUBLIC.SAMPLETABLE1
+
+
+ KEY1 = #{record.key1,jdbcType=VARCHAR},
+
+
+ VALUE1 = #{record.value1,jdbcType=VARCHAR},
+
+
+
+
+
+
+
+
+ update PUBLIC.SAMPLETABLE1
+ set KEY1 = #{record.key1,jdbcType=VARCHAR},
+ VALUE1 = #{record.value1,jdbcType=VARCHAR}
+
+
+
+
+
+
+ update PUBLIC.SAMPLETABLE1
+
+
+ VALUE1 = #{value1,jdbcType=VARCHAR},
+
+
+ where KEY1 = #{key1,jdbcType=VARCHAR}
+
+
+
+ update PUBLIC.SAMPLETABLE1
+ set VALUE1 = #{value1,jdbcType=VARCHAR}
+ where KEY1 = #{key1,jdbcType=VARCHAR}
+
+
\ No newline at end of file
diff --git a/samples/skywalking-example/example-dubbo/dubbo-impl/src/main/resources/mybatis/Sampletable2Mapper.xml b/samples/skywalking-example/example-dubbo/dubbo-impl/src/main/resources/mybatis/Sampletable2Mapper.xml
new file mode 100644
index 000000000..36c9fa20d
--- /dev/null
+++ b/samples/skywalking-example/example-dubbo/dubbo-impl/src/main/resources/mybatis/Sampletable2Mapper.xml
@@ -0,0 +1,239 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ and ${criterion.condition}
+
+
+ and ${criterion.condition} #{criterion.value}
+
+
+ and ${criterion.condition} #{criterion.value} and #{criterion.secondValue}
+
+
+ and ${criterion.condition}
+
+ #{listItem}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ and ${criterion.condition}
+
+
+ and ${criterion.condition} #{criterion.value}
+
+
+ and ${criterion.condition} #{criterion.value} and #{criterion.secondValue}
+
+
+ and ${criterion.condition}
+
+ #{listItem}
+
+
+
+
+
+
+
+
+
+
+
+ KEY2, VALUE2
+
+
+
+
+
+ delete from PUBLIC.SAMPLETABLE2
+ where KEY2 = #{key2,jdbcType=VARCHAR}
+
+
+
+ delete from PUBLIC.SAMPLETABLE2
+
+
+
+
+
+
+ insert into PUBLIC.SAMPLETABLE2 (KEY2, VALUE2)
+ values (#{key2,jdbcType=VARCHAR}, #{value2,jdbcType=VARCHAR})
+
+
+
+ insert into PUBLIC.SAMPLETABLE2
+
+
+ KEY2,
+
+
+ VALUE2,
+
+
+
+
+ #{key2,jdbcType=VARCHAR},
+
+
+ #{value2,jdbcType=VARCHAR},
+
+
+
+
+
+
+ update PUBLIC.SAMPLETABLE2
+
+
+ KEY2 = #{record.key2,jdbcType=VARCHAR},
+
+
+ VALUE2 = #{record.value2,jdbcType=VARCHAR},
+
+
+
+
+
+
+
+
+ update PUBLIC.SAMPLETABLE2
+ set KEY2 = #{record.key2,jdbcType=VARCHAR},
+ VALUE2 = #{record.value2,jdbcType=VARCHAR}
+
+
+
+
+
+
+ update PUBLIC.SAMPLETABLE2
+
+
+ VALUE2 = #{value2,jdbcType=VARCHAR},
+
+
+ where KEY2 = #{key2,jdbcType=VARCHAR}
+
+
+
+ update PUBLIC.SAMPLETABLE2
+ set VALUE2 = #{value2,jdbcType=VARCHAR}
+ where KEY2 = #{key2,jdbcType=VARCHAR}
+
+
\ No newline at end of file
diff --git a/samples/skywalking-example/example-dubbo/dubbo-impl/src/main/resources/provider/dubbo-provider.xml b/samples/skywalking-example/example-dubbo/dubbo-impl/src/main/resources/provider/dubbo-provider.xml
new file mode 100644
index 000000000..b195734d3
--- /dev/null
+++ b/samples/skywalking-example/example-dubbo/dubbo-impl/src/main/resources/provider/dubbo-provider.xml
@@ -0,0 +1,15 @@
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/samples/skywalking-example/example-dubbo/dubbo-impl/src/main/resources/sky-walking.auth b/samples/skywalking-example/example-dubbo/dubbo-impl/src/main/resources/sky-walking.auth
new file mode 100644
index 000000000..9be01f6e3
--- /dev/null
+++ b/samples/skywalking-example/example-dubbo/dubbo-impl/src/main/resources/sky-walking.auth
@@ -0,0 +1,45 @@
+#skyWalking用户ID
+skywalking.user_id=123
+#skyWalking应用编码
+skywalking.application_code=skywalking-sample-dubbo
+#skywalking auth的环境变量名字
+skywalking.auth_system_env_name=SKYWALKING_RUN
+#skywalking数据编码
+skywalking.charset=UTF-8
+skywalking.auth_override=true
+
+#是否打印数据
+buriedpoint.printf=true
+#埋点异常的最大长度
+buriedpoint.max_exception_stack_length=4000
+#业务字段的最大长度
+buriedpoint.businesskey_max_length=300
+#过滤异常
+buriedpoint.exclusive_exceptions=java.lang.RuntimeException
+
+#最大发送者的连接数阀比例
+sender.connect_percent=100
+#发送服务端配置
+sender.servers_addr=127.0.0.1:34000
+#最大发送的副本数量
+sender.max_copy_num=2
+#发送的最大长度
+sender.max_send_length=20000
+#当没有Sender时,尝试获取sender的等待周期
+sender.retry_get_sender_wait_interval=2000
+
+#最大消费线程数
+consumer.max_consumer=0
+#消费者最大等待时间
+consumer.max_wait_time=5
+#发送失败等待时间
+consumer.consumer_fail_retry_wait_interval=50
+
+#每个Buffer的最大个数
+buffer.buffer_max_size=18000
+#Buffer池的最大长度
+buffer.pool_size=5
+
+#发送检查线程检查周期
+senderchecker.check_polling_time=200
+
diff --git a/samples/skywalking-example/example-dubbo/dubbo-impl/src/main/resources/spring-context.xml b/samples/skywalking-example/example-dubbo/dubbo-impl/src/main/resources/spring-context.xml
new file mode 100644
index 000000000..7affaf26a
--- /dev/null
+++ b/samples/skywalking-example/example-dubbo/dubbo-impl/src/main/resources/spring-context.xml
@@ -0,0 +1,33 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/samples/skywalking-example/example-dubbo/dubbo-impl/target/classes/db/sql/create-db.sql b/samples/skywalking-example/example-dubbo/dubbo-impl/target/classes/db/sql/create-db.sql
new file mode 100644
index 000000000..e8d3b5150
--- /dev/null
+++ b/samples/skywalking-example/example-dubbo/dubbo-impl/target/classes/db/sql/create-db.sql
@@ -0,0 +1,11 @@
+CREATE TABLE PUBLIC.sampletable1
+(
+ key1 VARCHAR2(36) PRIMARY KEY,
+ value1 VARCHAR2(36) NOT NULL
+);
+
+CREATE TABLE PUBLIC.sampletable2
+(
+ key2 VARCHAR2(36) PRIMARY KEY,
+ value2 VARCHAR2(36) NOT NULL
+);
diff --git a/samples/skywalking-example/example-dubbo/dubbo-impl/target/classes/log4j.xml b/samples/skywalking-example/example-dubbo/dubbo-impl/target/classes/log4j.xml
new file mode 100644
index 000000000..55304ff73
--- /dev/null
+++ b/samples/skywalking-example/example-dubbo/dubbo-impl/target/classes/log4j.xml
@@ -0,0 +1,16 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/samples/skywalking-example/example-dubbo/dubbo-impl/target/classes/log4j2.xml b/samples/skywalking-example/example-dubbo/dubbo-impl/target/classes/log4j2.xml
new file mode 100644
index 000000000..91e20d37a
--- /dev/null
+++ b/samples/skywalking-example/example-dubbo/dubbo-impl/target/classes/log4j2.xml
@@ -0,0 +1,13 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/samples/skywalking-example/example-dubbo/dubbo-impl/target/classes/mybatis/Sampletable1Mapper.xml b/samples/skywalking-example/example-dubbo/dubbo-impl/target/classes/mybatis/Sampletable1Mapper.xml
new file mode 100644
index 000000000..9f520963a
--- /dev/null
+++ b/samples/skywalking-example/example-dubbo/dubbo-impl/target/classes/mybatis/Sampletable1Mapper.xml
@@ -0,0 +1,239 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ and ${criterion.condition}
+
+
+ and ${criterion.condition} #{criterion.value}
+
+
+ and ${criterion.condition} #{criterion.value} and #{criterion.secondValue}
+
+
+ and ${criterion.condition}
+
+ #{listItem}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ and ${criterion.condition}
+
+
+ and ${criterion.condition} #{criterion.value}
+
+
+ and ${criterion.condition} #{criterion.value} and #{criterion.secondValue}
+
+
+ and ${criterion.condition}
+
+ #{listItem}
+
+
+
+
+
+
+
+
+
+
+
+ KEY1, VALUE1
+
+
+
+
+
+ delete from PUBLIC.SAMPLETABLE1
+ where KEY1 = #{key1,jdbcType=VARCHAR}
+
+
+
+ delete from PUBLIC.SAMPLETABLE1
+
+
+
+
+
+
+ insert into PUBLIC.SAMPLETABLE1 (KEY1, VALUE1)
+ values (#{key1,jdbcType=VARCHAR}, #{value1,jdbcType=VARCHAR})
+
+
+
+ insert into PUBLIC.SAMPLETABLE1
+
+
+ KEY1,
+
+
+ VALUE1,
+
+
+
+
+ #{key1,jdbcType=VARCHAR},
+
+
+ #{value1,jdbcType=VARCHAR},
+
+
+
+
+
+
+ update PUBLIC.SAMPLETABLE1
+
+
+ KEY1 = #{record.key1,jdbcType=VARCHAR},
+
+
+ VALUE1 = #{record.value1,jdbcType=VARCHAR},
+
+
+
+
+
+
+
+
+ update PUBLIC.SAMPLETABLE1
+ set KEY1 = #{record.key1,jdbcType=VARCHAR},
+ VALUE1 = #{record.value1,jdbcType=VARCHAR}
+
+
+
+
+
+
+ update PUBLIC.SAMPLETABLE1
+
+
+ VALUE1 = #{value1,jdbcType=VARCHAR},
+
+
+ where KEY1 = #{key1,jdbcType=VARCHAR}
+
+
+
+ update PUBLIC.SAMPLETABLE1
+ set VALUE1 = #{value1,jdbcType=VARCHAR}
+ where KEY1 = #{key1,jdbcType=VARCHAR}
+
+
\ No newline at end of file
diff --git a/samples/skywalking-example/example-dubbo/dubbo-impl/target/classes/mybatis/Sampletable2Mapper.xml b/samples/skywalking-example/example-dubbo/dubbo-impl/target/classes/mybatis/Sampletable2Mapper.xml
new file mode 100644
index 000000000..36c9fa20d
--- /dev/null
+++ b/samples/skywalking-example/example-dubbo/dubbo-impl/target/classes/mybatis/Sampletable2Mapper.xml
@@ -0,0 +1,239 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ and ${criterion.condition}
+
+
+ and ${criterion.condition} #{criterion.value}
+
+
+ and ${criterion.condition} #{criterion.value} and #{criterion.secondValue}
+
+
+ and ${criterion.condition}
+
+ #{listItem}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ and ${criterion.condition}
+
+
+ and ${criterion.condition} #{criterion.value}
+
+
+ and ${criterion.condition} #{criterion.value} and #{criterion.secondValue}
+
+
+ and ${criterion.condition}
+
+ #{listItem}
+
+
+
+
+
+
+
+
+
+
+
+ KEY2, VALUE2
+
+
+
+
+
+ delete from PUBLIC.SAMPLETABLE2
+ where KEY2 = #{key2,jdbcType=VARCHAR}
+
+
+
+ delete from PUBLIC.SAMPLETABLE2
+
+
+
+
+
+
+ insert into PUBLIC.SAMPLETABLE2 (KEY2, VALUE2)
+ values (#{key2,jdbcType=VARCHAR}, #{value2,jdbcType=VARCHAR})
+
+
+
+ insert into PUBLIC.SAMPLETABLE2
+
+
+ KEY2,
+
+
+ VALUE2,
+
+
+
+
+ #{key2,jdbcType=VARCHAR},
+
+
+ #{value2,jdbcType=VARCHAR},
+
+
+
+
+
+
+ update PUBLIC.SAMPLETABLE2
+
+
+ KEY2 = #{record.key2,jdbcType=VARCHAR},
+
+
+ VALUE2 = #{record.value2,jdbcType=VARCHAR},
+
+
+
+
+
+
+
+
+ update PUBLIC.SAMPLETABLE2
+ set KEY2 = #{record.key2,jdbcType=VARCHAR},
+ VALUE2 = #{record.value2,jdbcType=VARCHAR}
+
+
+
+
+
+
+ update PUBLIC.SAMPLETABLE2
+
+
+ VALUE2 = #{value2,jdbcType=VARCHAR},
+
+
+ where KEY2 = #{key2,jdbcType=VARCHAR}
+
+
+
+ update PUBLIC.SAMPLETABLE2
+ set VALUE2 = #{value2,jdbcType=VARCHAR}
+ where KEY2 = #{key2,jdbcType=VARCHAR}
+
+
\ No newline at end of file
diff --git a/samples/skywalking-example/example-dubbo/dubbo-impl/target/classes/provider/dubbo-provider.xml b/samples/skywalking-example/example-dubbo/dubbo-impl/target/classes/provider/dubbo-provider.xml
new file mode 100644
index 000000000..b195734d3
--- /dev/null
+++ b/samples/skywalking-example/example-dubbo/dubbo-impl/target/classes/provider/dubbo-provider.xml
@@ -0,0 +1,15 @@
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/samples/skywalking-example/example-dubbo/dubbo-impl/target/classes/sky-walking.auth b/samples/skywalking-example/example-dubbo/dubbo-impl/target/classes/sky-walking.auth
new file mode 100644
index 000000000..9be01f6e3
--- /dev/null
+++ b/samples/skywalking-example/example-dubbo/dubbo-impl/target/classes/sky-walking.auth
@@ -0,0 +1,45 @@
+#skyWalking用户ID
+skywalking.user_id=123
+#skyWalking应用编码
+skywalking.application_code=skywalking-sample-dubbo
+#skywalking auth的环境变量名字
+skywalking.auth_system_env_name=SKYWALKING_RUN
+#skywalking数据编码
+skywalking.charset=UTF-8
+skywalking.auth_override=true
+
+#是否打印数据
+buriedpoint.printf=true
+#埋点异常的最大长度
+buriedpoint.max_exception_stack_length=4000
+#业务字段的最大长度
+buriedpoint.businesskey_max_length=300
+#过滤异常
+buriedpoint.exclusive_exceptions=java.lang.RuntimeException
+
+#最大发送者的连接数阀比例
+sender.connect_percent=100
+#发送服务端配置
+sender.servers_addr=127.0.0.1:34000
+#最大发送的副本数量
+sender.max_copy_num=2
+#发送的最大长度
+sender.max_send_length=20000
+#当没有Sender时,尝试获取sender的等待周期
+sender.retry_get_sender_wait_interval=2000
+
+#最大消费线程数
+consumer.max_consumer=0
+#消费者最大等待时间
+consumer.max_wait_time=5
+#发送失败等待时间
+consumer.consumer_fail_retry_wait_interval=50
+
+#每个Buffer的最大个数
+buffer.buffer_max_size=18000
+#Buffer池的最大长度
+buffer.pool_size=5
+
+#发送检查线程检查周期
+senderchecker.check_polling_time=200
+
diff --git a/samples/skywalking-example/example-dubbo/dubbo-impl/target/classes/spring-context.xml b/samples/skywalking-example/example-dubbo/dubbo-impl/target/classes/spring-context.xml
new file mode 100644
index 000000000..7affaf26a
--- /dev/null
+++ b/samples/skywalking-example/example-dubbo/dubbo-impl/target/classes/spring-context.xml
@@ -0,0 +1,33 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/samples/skywalking-example/example-dubbo/dubbo-interfaces/pom.xml b/samples/skywalking-example/example-dubbo/dubbo-interfaces/pom.xml
new file mode 100644
index 000000000..1a0abdeb3
--- /dev/null
+++ b/samples/skywalking-example/example-dubbo/dubbo-interfaces/pom.xml
@@ -0,0 +1,23 @@
+
+
+ example-dubbo
+ com.ai.cloud
+ 1.0-Final
+
+ 4.0.0
+
+ dubbo-interfaces
+ jar
+
+ dubbo-interfaces
+ http://maven.apache.org
+
+
+ UTF-8
+
+
+
+
+
+
diff --git a/samples/skywalking-example/example-dubbo/dubbo-interfaces/src/main/java/com/ai/cloud/skywalking/sample/dubbo/interfaces/SampleDubboInterface.java b/samples/skywalking-example/example-dubbo/dubbo-interfaces/src/main/java/com/ai/cloud/skywalking/sample/dubbo/interfaces/SampleDubboInterface.java
new file mode 100644
index 000000000..1d7160af5
--- /dev/null
+++ b/samples/skywalking-example/example-dubbo/dubbo-interfaces/src/main/java/com/ai/cloud/skywalking/sample/dubbo/interfaces/SampleDubboInterface.java
@@ -0,0 +1,5 @@
+package com.ai.cloud.skywalking.sample.dubbo.interfaces;
+
+public interface SampleDubboInterface {
+ String callMethodByDubbox(String param1);
+}
diff --git a/samples/skywalking-example/example-dubbo/pom.xml b/samples/skywalking-example/example-dubbo/pom.xml
new file mode 100644
index 000000000..1822da887
--- /dev/null
+++ b/samples/skywalking-example/example-dubbo/pom.xml
@@ -0,0 +1,23 @@
+
+
+ skywalking-example
+ com.ai.cloud
+ 1.0-Final
+
+ 4.0.0
+
+ example-dubbo
+ pom
+
+ example-dubbo
+ http://maven.apache.org
+
+ dubbo-interfaces
+ dubbo-impl
+
+
+
+ UTF-8
+
+
diff --git a/samples/skywalking-example/example-web/pom.xml b/samples/skywalking-example/example-web/pom.xml
new file mode 100644
index 000000000..7f2bb2247
--- /dev/null
+++ b/samples/skywalking-example/example-web/pom.xml
@@ -0,0 +1,83 @@
+
+
+ skywalking-example
+ com.ai.cloud
+ 1.0-Final
+
+ 4.0.0
+ example-web
+ war
+ example-web Maven Webapp
+ http://maven.apache.org
+
+
+ org.springframework
+ spring-web
+ 4.3.1.RELEASE
+
+
+ org.springframework
+ spring-webmvc
+ 4.3.1.RELEASE
+
+
+ org.springframework
+ spring-context
+ 4.3.1.RELEASE
+
+
+ org.springframework
+ spring-core
+ 4.3.1.RELEASE
+
+
+ javax.servlet.jsp.jstl
+ jstl-api
+ 1.2
+
+
+ org.springframework
+ spring-beans
+ 4.3.1.RELEASE
+
+
+ javax.servlet
+ javax.servlet-api
+ 3.1.0
+
+
+ com.ai.cloud
+ dubbo-interfaces
+ 1.0-Final
+
+
+ com.alibaba
+ dubbox
+ 2.8.4
+
+
+ org.javassist
+ javassist
+ 3.18.1-GA
+
+
+ com.101tec
+ zkclient
+ 0.7
+
+
+ com.ai.cloud
+ skywalking-log4j-1.x-plugin
+ 1.0-Final
+
+
+ com.ai.cloud
+ skywalking-log4j-2.x-plugin
+ 1.0-Final
+
+
+
+ example-web
+
+
diff --git a/samples/skywalking-example/example-web/src/main/java/com/ai/cloud/skywalking/sample/web/controller/SampleWebController.java b/samples/skywalking-example/example-web/src/main/java/com/ai/cloud/skywalking/sample/web/controller/SampleWebController.java
new file mode 100644
index 000000000..628d06fd6
--- /dev/null
+++ b/samples/skywalking-example/example-web/src/main/java/com/ai/cloud/skywalking/sample/web/controller/SampleWebController.java
@@ -0,0 +1,28 @@
+package com.ai.cloud.skywalking.sample.web.controller;
+
+import com.ai.cloud.skywalking.sample.dubbo.interfaces.SampleDubboInterface;
+import org.apache.logging.log4j.LogManager;
+import org.apache.logging.log4j.Logger;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Controller;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.servlet.ModelAndView;
+
+import java.util.UUID;
+
+@Controller
+@RequestMapping("/sample")
+public class SampleWebController {
+ private Logger logger = LogManager.getLogger(SampleWebController.class);
+ @Autowired
+ private SampleDubboInterface sampleDubboInterface;
+
+ @RequestMapping("/normal")
+ public ModelAndView samplePath(){
+ logger.info("Start.....");
+ ModelAndView modelAndView = new ModelAndView("saveSuccess");
+ String generateKey = sampleDubboInterface.callMethodByDubbox(UUID.randomUUID().toString());
+ modelAndView.addObject("key",generateKey);
+ return modelAndView;
+ }
+}
diff --git a/samples/skywalking-example/example-web/src/main/resources/consumer/dubbo-consumer.xml b/samples/skywalking-example/example-web/src/main/resources/consumer/dubbo-consumer.xml
new file mode 100644
index 000000000..3751f4815
--- /dev/null
+++ b/samples/skywalking-example/example-web/src/main/resources/consumer/dubbo-consumer.xml
@@ -0,0 +1,12 @@
+
+
+
+
+
+
\ No newline at end of file
diff --git a/samples/skywalking-example/example-web/src/main/resources/log4j.properties b/samples/skywalking-example/example-web/src/main/resources/log4j.properties
new file mode 100644
index 000000000..93af71c78
--- /dev/null
+++ b/samples/skywalking-example/example-web/src/main/resources/log4j.properties
@@ -0,0 +1,9 @@
+log4j.rootLogger=DEBUG, A1
+#log4j.appender.A1=org.apache.log4j.FileAppender
+#log4j.appender.A1.File=${catalina.base}/logs/mvno_crm_all.log
+#log4j.appender.A1.layout=org.apache.log4j.PatternLayout
+#log4j.appender.A1.layout.ConversionPattern=%-d{yyyy-MM-dd HH:mm:ss.SSS} %c %n[%p] %n%m%n
+
+log4j.appender.A1=org.apache.log4j.ConsoleAppender
+log4j.appender.A1.layout=com.ai.cloud.skywalking.plugin.log.log4j.v1.x.TraceIdPatternLayout
+log4j.appender.A1.layout.ConversionPattern=%x %-d{yyyy-MM-dd HH:mm:ss.SSS} %c %n[%p] %n%m%n
diff --git a/samples/skywalking-example/example-web/src/main/resources/log4j2.xml b/samples/skywalking-example/example-web/src/main/resources/log4j2.xml
new file mode 100644
index 000000000..91e20d37a
--- /dev/null
+++ b/samples/skywalking-example/example-web/src/main/resources/log4j2.xml
@@ -0,0 +1,13 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/samples/skywalking-example/example-web/src/main/resources/sky-walking.auth b/samples/skywalking-example/example-web/src/main/resources/sky-walking.auth
new file mode 100644
index 000000000..9be01f6e3
--- /dev/null
+++ b/samples/skywalking-example/example-web/src/main/resources/sky-walking.auth
@@ -0,0 +1,45 @@
+#skyWalking用户ID
+skywalking.user_id=123
+#skyWalking应用编码
+skywalking.application_code=skywalking-sample-dubbo
+#skywalking auth的环境变量名字
+skywalking.auth_system_env_name=SKYWALKING_RUN
+#skywalking数据编码
+skywalking.charset=UTF-8
+skywalking.auth_override=true
+
+#是否打印数据
+buriedpoint.printf=true
+#埋点异常的最大长度
+buriedpoint.max_exception_stack_length=4000
+#业务字段的最大长度
+buriedpoint.businesskey_max_length=300
+#过滤异常
+buriedpoint.exclusive_exceptions=java.lang.RuntimeException
+
+#最大发送者的连接数阀比例
+sender.connect_percent=100
+#发送服务端配置
+sender.servers_addr=127.0.0.1:34000
+#最大发送的副本数量
+sender.max_copy_num=2
+#发送的最大长度
+sender.max_send_length=20000
+#当没有Sender时,尝试获取sender的等待周期
+sender.retry_get_sender_wait_interval=2000
+
+#最大消费线程数
+consumer.max_consumer=0
+#消费者最大等待时间
+consumer.max_wait_time=5
+#发送失败等待时间
+consumer.consumer_fail_retry_wait_interval=50
+
+#每个Buffer的最大个数
+buffer.buffer_max_size=18000
+#Buffer池的最大长度
+buffer.pool_size=5
+
+#发送检查线程检查周期
+senderchecker.check_polling_time=200
+
diff --git a/samples/skywalking-example/example-web/src/main/resources/spring-context.xml b/samples/skywalking-example/example-web/src/main/resources/spring-context.xml
new file mode 100644
index 000000000..82bef23a0
--- /dev/null
+++ b/samples/skywalking-example/example-web/src/main/resources/spring-context.xml
@@ -0,0 +1,25 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/samples/skywalking-example/example-web/src/main/webapp/WEB-INF/web.xml b/samples/skywalking-example/example-web/src/main/webapp/WEB-INF/web.xml
new file mode 100644
index 000000000..88f595761
--- /dev/null
+++ b/samples/skywalking-example/example-web/src/main/webapp/WEB-INF/web.xml
@@ -0,0 +1,39 @@
+
+
+ skywalking-example-web
+
+
+ springMVC
+ org.springframework.web.servlet.DispatcherServlet
+
+ contextConfigLocation
+ classpath*:spring-context.xml
+
+ 1
+
+
+ springMVC
+ /
+
+
+
+ encodingFilter
+ org.springframework.web.filter.CharacterEncodingFilter
+
+ encoding
+ UTF-8
+
+
+ forceEncoding
+ true
+
+
+
+ encodingFilter
+ /*
+
+
+
+
diff --git a/samples/skywalking-example/example-web/src/main/webapp/index.jsp b/samples/skywalking-example/example-web/src/main/webapp/index.jsp
new file mode 100644
index 000000000..c38169bb9
--- /dev/null
+++ b/samples/skywalking-example/example-web/src/main/webapp/index.jsp
@@ -0,0 +1,5 @@
+
+
+Hello World!
+
+
diff --git a/samples/skywalking-example/example-web/src/main/webapp/pages/saveSuccess.jsp b/samples/skywalking-example/example-web/src/main/webapp/pages/saveSuccess.jsp
new file mode 100644
index 000000000..839518beb
--- /dev/null
+++ b/samples/skywalking-example/example-web/src/main/webapp/pages/saveSuccess.jsp
@@ -0,0 +1,16 @@
+<%--
+ Created by IntelliJ IDEA.
+ User: xin
+ Date: 16/7/24
+ Time: 上午10:29
+ To change this template use File | Settings | File Templates.
+--%>
+<%@ page contentType="text/html;charset=UTF-8" language="java" %>
+
+
+ Success!!!
+
+
+ You have save success!!! KEY:${key}
+
+
diff --git a/samples/skywalking-example/example-web/target/classes/consumer/dubbo-consumer.xml b/samples/skywalking-example/example-web/target/classes/consumer/dubbo-consumer.xml
new file mode 100644
index 000000000..3751f4815
--- /dev/null
+++ b/samples/skywalking-example/example-web/target/classes/consumer/dubbo-consumer.xml
@@ -0,0 +1,12 @@
+
+
+
+
+
+
\ No newline at end of file
diff --git a/samples/skywalking-example/example-web/target/classes/log4j.properties b/samples/skywalking-example/example-web/target/classes/log4j.properties
new file mode 100644
index 000000000..93af71c78
--- /dev/null
+++ b/samples/skywalking-example/example-web/target/classes/log4j.properties
@@ -0,0 +1,9 @@
+log4j.rootLogger=DEBUG, A1
+#log4j.appender.A1=org.apache.log4j.FileAppender
+#log4j.appender.A1.File=${catalina.base}/logs/mvno_crm_all.log
+#log4j.appender.A1.layout=org.apache.log4j.PatternLayout
+#log4j.appender.A1.layout.ConversionPattern=%-d{yyyy-MM-dd HH:mm:ss.SSS} %c %n[%p] %n%m%n
+
+log4j.appender.A1=org.apache.log4j.ConsoleAppender
+log4j.appender.A1.layout=com.ai.cloud.skywalking.plugin.log.log4j.v1.x.TraceIdPatternLayout
+log4j.appender.A1.layout.ConversionPattern=%x %-d{yyyy-MM-dd HH:mm:ss.SSS} %c %n[%p] %n%m%n
diff --git a/samples/skywalking-example/example-web/target/classes/log4j2.xml b/samples/skywalking-example/example-web/target/classes/log4j2.xml
new file mode 100644
index 000000000..91e20d37a
--- /dev/null
+++ b/samples/skywalking-example/example-web/target/classes/log4j2.xml
@@ -0,0 +1,13 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/samples/skywalking-example/example-web/target/classes/sky-walking.auth b/samples/skywalking-example/example-web/target/classes/sky-walking.auth
new file mode 100644
index 000000000..9be01f6e3
--- /dev/null
+++ b/samples/skywalking-example/example-web/target/classes/sky-walking.auth
@@ -0,0 +1,45 @@
+#skyWalking用户ID
+skywalking.user_id=123
+#skyWalking应用编码
+skywalking.application_code=skywalking-sample-dubbo
+#skywalking auth的环境变量名字
+skywalking.auth_system_env_name=SKYWALKING_RUN
+#skywalking数据编码
+skywalking.charset=UTF-8
+skywalking.auth_override=true
+
+#是否打印数据
+buriedpoint.printf=true
+#埋点异常的最大长度
+buriedpoint.max_exception_stack_length=4000
+#业务字段的最大长度
+buriedpoint.businesskey_max_length=300
+#过滤异常
+buriedpoint.exclusive_exceptions=java.lang.RuntimeException
+
+#最大发送者的连接数阀比例
+sender.connect_percent=100
+#发送服务端配置
+sender.servers_addr=127.0.0.1:34000
+#最大发送的副本数量
+sender.max_copy_num=2
+#发送的最大长度
+sender.max_send_length=20000
+#当没有Sender时,尝试获取sender的等待周期
+sender.retry_get_sender_wait_interval=2000
+
+#最大消费线程数
+consumer.max_consumer=0
+#消费者最大等待时间
+consumer.max_wait_time=5
+#发送失败等待时间
+consumer.consumer_fail_retry_wait_interval=50
+
+#每个Buffer的最大个数
+buffer.buffer_max_size=18000
+#Buffer池的最大长度
+buffer.pool_size=5
+
+#发送检查线程检查周期
+senderchecker.check_polling_time=200
+
diff --git a/samples/skywalking-example/example-web/target/classes/spring-context.xml b/samples/skywalking-example/example-web/target/classes/spring-context.xml
new file mode 100644
index 000000000..82bef23a0
--- /dev/null
+++ b/samples/skywalking-example/example-web/target/classes/spring-context.xml
@@ -0,0 +1,25 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/samples/skywalking-example/example-web/target/example-web/META-INF/MANIFEST.MF b/samples/skywalking-example/example-web/target/example-web/META-INF/MANIFEST.MF
new file mode 100644
index 000000000..0c28c7975
--- /dev/null
+++ b/samples/skywalking-example/example-web/target/example-web/META-INF/MANIFEST.MF
@@ -0,0 +1,5 @@
+Manifest-Version: 1.0
+Built-By: xin
+Created-By: IntelliJ IDEA
+Build-Jdk: 1.8.0_91
+
diff --git a/samples/skywalking-example/example-web/target/example-web/WEB-INF/classes/consumer/dubbo-consumer.xml b/samples/skywalking-example/example-web/target/example-web/WEB-INF/classes/consumer/dubbo-consumer.xml
new file mode 100644
index 000000000..3751f4815
--- /dev/null
+++ b/samples/skywalking-example/example-web/target/example-web/WEB-INF/classes/consumer/dubbo-consumer.xml
@@ -0,0 +1,12 @@
+
+
+
+
+
+
\ No newline at end of file
diff --git a/samples/skywalking-example/example-web/target/example-web/WEB-INF/classes/log4j.properties b/samples/skywalking-example/example-web/target/example-web/WEB-INF/classes/log4j.properties
new file mode 100644
index 000000000..93af71c78
--- /dev/null
+++ b/samples/skywalking-example/example-web/target/example-web/WEB-INF/classes/log4j.properties
@@ -0,0 +1,9 @@
+log4j.rootLogger=DEBUG, A1
+#log4j.appender.A1=org.apache.log4j.FileAppender
+#log4j.appender.A1.File=${catalina.base}/logs/mvno_crm_all.log
+#log4j.appender.A1.layout=org.apache.log4j.PatternLayout
+#log4j.appender.A1.layout.ConversionPattern=%-d{yyyy-MM-dd HH:mm:ss.SSS} %c %n[%p] %n%m%n
+
+log4j.appender.A1=org.apache.log4j.ConsoleAppender
+log4j.appender.A1.layout=com.ai.cloud.skywalking.plugin.log.log4j.v1.x.TraceIdPatternLayout
+log4j.appender.A1.layout.ConversionPattern=%x %-d{yyyy-MM-dd HH:mm:ss.SSS} %c %n[%p] %n%m%n
diff --git a/samples/skywalking-example/example-web/target/example-web/WEB-INF/classes/log4j2.xml b/samples/skywalking-example/example-web/target/example-web/WEB-INF/classes/log4j2.xml
new file mode 100644
index 000000000..91e20d37a
--- /dev/null
+++ b/samples/skywalking-example/example-web/target/example-web/WEB-INF/classes/log4j2.xml
@@ -0,0 +1,13 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/samples/skywalking-example/example-web/target/example-web/WEB-INF/classes/sky-walking.auth b/samples/skywalking-example/example-web/target/example-web/WEB-INF/classes/sky-walking.auth
new file mode 100644
index 000000000..9be01f6e3
--- /dev/null
+++ b/samples/skywalking-example/example-web/target/example-web/WEB-INF/classes/sky-walking.auth
@@ -0,0 +1,45 @@
+#skyWalking用户ID
+skywalking.user_id=123
+#skyWalking应用编码
+skywalking.application_code=skywalking-sample-dubbo
+#skywalking auth的环境变量名字
+skywalking.auth_system_env_name=SKYWALKING_RUN
+#skywalking数据编码
+skywalking.charset=UTF-8
+skywalking.auth_override=true
+
+#是否打印数据
+buriedpoint.printf=true
+#埋点异常的最大长度
+buriedpoint.max_exception_stack_length=4000
+#业务字段的最大长度
+buriedpoint.businesskey_max_length=300
+#过滤异常
+buriedpoint.exclusive_exceptions=java.lang.RuntimeException
+
+#最大发送者的连接数阀比例
+sender.connect_percent=100
+#发送服务端配置
+sender.servers_addr=127.0.0.1:34000
+#最大发送的副本数量
+sender.max_copy_num=2
+#发送的最大长度
+sender.max_send_length=20000
+#当没有Sender时,尝试获取sender的等待周期
+sender.retry_get_sender_wait_interval=2000
+
+#最大消费线程数
+consumer.max_consumer=0
+#消费者最大等待时间
+consumer.max_wait_time=5
+#发送失败等待时间
+consumer.consumer_fail_retry_wait_interval=50
+
+#每个Buffer的最大个数
+buffer.buffer_max_size=18000
+#Buffer池的最大长度
+buffer.pool_size=5
+
+#发送检查线程检查周期
+senderchecker.check_polling_time=200
+
diff --git a/samples/skywalking-example/example-web/target/example-web/WEB-INF/classes/spring-context.xml b/samples/skywalking-example/example-web/target/example-web/WEB-INF/classes/spring-context.xml
new file mode 100644
index 000000000..82bef23a0
--- /dev/null
+++ b/samples/skywalking-example/example-web/target/example-web/WEB-INF/classes/spring-context.xml
@@ -0,0 +1,25 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/samples/skywalking-example/example-web/target/example-web/WEB-INF/web.xml b/samples/skywalking-example/example-web/target/example-web/WEB-INF/web.xml
new file mode 100644
index 000000000..88f595761
--- /dev/null
+++ b/samples/skywalking-example/example-web/target/example-web/WEB-INF/web.xml
@@ -0,0 +1,39 @@
+
+
+ skywalking-example-web
+
+
+ springMVC
+ org.springframework.web.servlet.DispatcherServlet
+
+ contextConfigLocation
+ classpath*:spring-context.xml
+
+ 1
+
+
+ springMVC
+ /
+
+
+
+ encodingFilter
+ org.springframework.web.filter.CharacterEncodingFilter
+
+ encoding
+ UTF-8
+
+
+ forceEncoding
+ true
+
+
+
+ encodingFilter
+ /*
+
+
+
+
diff --git a/samples/skywalking-example/example-web/target/example-web/index.jsp b/samples/skywalking-example/example-web/target/example-web/index.jsp
new file mode 100644
index 000000000..c38169bb9
--- /dev/null
+++ b/samples/skywalking-example/example-web/target/example-web/index.jsp
@@ -0,0 +1,5 @@
+
+
+Hello World!
+
+
diff --git a/samples/skywalking-example/example-web/target/example-web/pages/saveSuccess.jsp b/samples/skywalking-example/example-web/target/example-web/pages/saveSuccess.jsp
new file mode 100644
index 000000000..839518beb
--- /dev/null
+++ b/samples/skywalking-example/example-web/target/example-web/pages/saveSuccess.jsp
@@ -0,0 +1,16 @@
+<%--
+ Created by IntelliJ IDEA.
+ User: xin
+ Date: 16/7/24
+ Time: 上午10:29
+ To change this template use File | Settings | File Templates.
+--%>
+<%@ page contentType="text/html;charset=UTF-8" language="java" %>
+
+
+ Success!!!
+
+
+ You have save success!!! KEY:${key}
+
+
diff --git a/samples/skywalking-example/pom.xml b/samples/skywalking-example/pom.xml
new file mode 100644
index 000000000..7be95f7f8
--- /dev/null
+++ b/samples/skywalking-example/pom.xml
@@ -0,0 +1,33 @@
+
+ 4.0.0
+
+ com.ai.cloud
+ skywalking-example
+ 1.0-Final
+
+
+ example-web
+ example-dubbo
+
+ pom
+
+ skywalking-example
+ http://maven.apache.org
+
+
+ UTF-8
+
+
+
+
+ maven-compiler-plugin
+
+ 1.7
+ 1.7
+ ${project.build.sourceEncoding}
+
+
+
+
+