调整工程结构
diff --git a/api/pom.xml b/api/pom.xml
new file mode 100644
index 0000000..2ce42f5
--- /dev/null
+++ b/api/pom.xml
@@ -0,0 +1,15 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project xmlns="http://maven.apache.org/POM/4.0.0"
+         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+    <parent>
+        <artifactId>dubbo-feature-test</artifactId>
+        <groupId>com.alibaba.dubbo</groupId>
+        <version>0.0.1-SNAPSHOT</version>
+    </parent>
+    <modelVersion>4.0.0</modelVersion>
+
+    <artifactId>api</artifactId>
+
+
+</project>
\ No newline at end of file
diff --git a/consumer-test/src/main/java/com/alibaba/dubbo/test/dto/Bait.java b/api/src/main/java/com/alibaba/dubbo/test/dto/Bait.java
similarity index 100%
rename from consumer-test/src/main/java/com/alibaba/dubbo/test/dto/Bait.java
rename to api/src/main/java/com/alibaba/dubbo/test/dto/Bait.java
diff --git a/consumer-test/src/main/java/com/alibaba/dubbo/test/dto/Bean.java b/api/src/main/java/com/alibaba/dubbo/test/dto/Bean.java
similarity index 78%
rename from consumer-test/src/main/java/com/alibaba/dubbo/test/dto/Bean.java
rename to api/src/main/java/com/alibaba/dubbo/test/dto/Bean.java
index 9ee7832..122ff90 100644
--- a/consumer-test/src/main/java/com/alibaba/dubbo/test/dto/Bean.java
+++ b/api/src/main/java/com/alibaba/dubbo/test/dto/Bean.java
@@ -10,6 +10,14 @@
 
     private String name;
 
+    public Bean() {
+    }
+
+    public Bean(int id, String name) {
+        this.id = id;
+        this.name = name;
+    }
+
     public int getId() {
         return id;
     }
@@ -25,4 +33,6 @@
     public void setName(String name) {
         this.name = name;
     }
+
+
 }
diff --git a/consumer-test/src/main/java/com/alibaba/dubbo/test/dto/Taste.java b/api/src/main/java/com/alibaba/dubbo/test/dto/Taste.java
similarity index 100%
rename from consumer-test/src/main/java/com/alibaba/dubbo/test/dto/Taste.java
rename to api/src/main/java/com/alibaba/dubbo/test/dto/Taste.java
diff --git a/consumer-test/src/main/java/com/alibaba/dubbo/test/service/AnnotateService.java b/api/src/main/java/com/alibaba/dubbo/test/service/AnnotateService.java
similarity index 100%
rename from consumer-test/src/main/java/com/alibaba/dubbo/test/service/AnnotateService.java
rename to api/src/main/java/com/alibaba/dubbo/test/service/AnnotateService.java
diff --git a/consumer-test/src/main/java/com/alibaba/dubbo/test/service/AsyncService.java b/api/src/main/java/com/alibaba/dubbo/test/service/AsyncService.java
similarity index 100%
rename from consumer-test/src/main/java/com/alibaba/dubbo/test/service/AsyncService.java
rename to api/src/main/java/com/alibaba/dubbo/test/service/AsyncService.java
diff --git a/consumer-test/src/main/java/com/alibaba/dubbo/test/service/CacheService.java b/api/src/main/java/com/alibaba/dubbo/test/service/CacheService.java
similarity index 100%
rename from consumer-test/src/main/java/com/alibaba/dubbo/test/service/CacheService.java
rename to api/src/main/java/com/alibaba/dubbo/test/service/CacheService.java
diff --git a/api/src/main/java/com/alibaba/dubbo/test/service/DemoService.java b/api/src/main/java/com/alibaba/dubbo/test/service/DemoService.java
new file mode 100644
index 0000000..f996324
--- /dev/null
+++ b/api/src/main/java/com/alibaba/dubbo/test/service/DemoService.java
@@ -0,0 +1,23 @@
+package com.alibaba.dubbo.test.service;
+
+import com.alibaba.dubbo.test.dto.Bean;
+
+import java.util.List;
+import java.util.Map;
+
+/**
+ * Created by ken.lj on 2017/9/24.
+ */
+public interface DemoService {
+    String testString(String str);
+
+    Bean testPojo(Bean bean);
+
+    List<Bean> testList(List<Bean> list);
+
+    Map<String, Object> testMap(Map<String, Object> map);
+
+    /*LocalDateTime testJava8Time(LocalDateTime instant);
+
+    ZonedDateTime testJava8Time(ZonedDateTime zonedDateTime);*/
+}
diff --git a/consumer-test/src/main/java/com/alibaba/dubbo/test/service/WSService.java b/api/src/main/java/com/alibaba/dubbo/test/service/WSService.java
similarity index 100%
rename from consumer-test/src/main/java/com/alibaba/dubbo/test/service/WSService.java
rename to api/src/main/java/com/alibaba/dubbo/test/service/WSService.java
diff --git a/consumer-test/src/main/java/com/alibaba/dubbo/test/service/chain/CatService.java b/api/src/main/java/com/alibaba/dubbo/test/service/chain/CatService.java
similarity index 100%
rename from consumer-test/src/main/java/com/alibaba/dubbo/test/service/chain/CatService.java
rename to api/src/main/java/com/alibaba/dubbo/test/service/chain/CatService.java
diff --git a/consumer-test/src/main/java/com/alibaba/dubbo/test/service/chain/DogService.java b/api/src/main/java/com/alibaba/dubbo/test/service/chain/DogService.java
similarity index 100%
rename from consumer-test/src/main/java/com/alibaba/dubbo/test/service/chain/DogService.java
rename to api/src/main/java/com/alibaba/dubbo/test/service/chain/DogService.java
diff --git a/consumer-test/src/main/java/com/alibaba/dubbo/test/service/chain/LionService.java b/api/src/main/java/com/alibaba/dubbo/test/service/chain/LionService.java
similarity index 100%
rename from consumer-test/src/main/java/com/alibaba/dubbo/test/service/chain/LionService.java
rename to api/src/main/java/com/alibaba/dubbo/test/service/chain/LionService.java
diff --git a/consumer-test/src/main/java/com/alibaba/dubbo/test/service/chain/MouseService.java b/api/src/main/java/com/alibaba/dubbo/test/service/chain/MouseService.java
similarity index 100%
rename from consumer-test/src/main/java/com/alibaba/dubbo/test/service/chain/MouseService.java
rename to api/src/main/java/com/alibaba/dubbo/test/service/chain/MouseService.java
diff --git a/consumer-test/pom.xml b/consumer-test/pom.xml
index ec8f558..7066bab 100644
--- a/consumer-test/pom.xml
+++ b/consumer-test/pom.xml
@@ -11,5 +11,44 @@
 
     <artifactId>consumer-test</artifactId>
 
-
+    <dependencies>
+        <dependency>
+            <groupId>com.alibaba.dubbo</groupId>
+            <artifactId>api</artifactId>
+            <version>${project.version}</version>
+        </dependency>
+        <dependency>
+            <groupId>org.springframework.boot</groupId>
+            <artifactId>spring-boot-starter-web</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>org.springframework.boot</groupId>
+            <artifactId>spring-boot-starter-test</artifactId>
+            <scope>test</scope>
+        </dependency>
+        <dependency>
+            <groupId>com.alibaba</groupId>
+            <artifactId>dubbo</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>io.netty</groupId>
+            <artifactId>netty-all</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>org.apache.zookeeper</groupId>
+            <artifactId>zookeeper</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>org.apache.curator</groupId>
+            <artifactId>curator-framework</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>org.apache.tomcat</groupId>
+            <artifactId>tomcat-juli</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>junit</groupId>
+            <artifactId>junit</artifactId>
+        </dependency>
+    </dependencies>
 </project>
\ No newline at end of file
diff --git a/consumer-test/src/main/java/com/alibaba/dubbo/test/ResultCollector.java b/consumer-test/src/main/java/com/alibaba/dubbo/test/ResultCollector.java
new file mode 100644
index 0000000..1e1c3d3
--- /dev/null
+++ b/consumer-test/src/main/java/com/alibaba/dubbo/test/ResultCollector.java
@@ -0,0 +1,9 @@
+package com.alibaba.dubbo.test;
+
+/**
+ * @author ken.lj
+ * @date 2017/10/11
+ */
+public class ResultCollector {
+
+}
diff --git a/consumer-test/src/main/java/com/alibaba/dubbo/test/service/DemoService.java b/consumer-test/src/main/java/com/alibaba/dubbo/test/service/DemoService.java
deleted file mode 100644
index 2c6869e..0000000
--- a/consumer-test/src/main/java/com/alibaba/dubbo/test/service/DemoService.java
+++ /dev/null
@@ -1,21 +0,0 @@
-package com.alibaba.dubbo.test.service;
-
-import com.alibaba.dubbo.test.dto.Bean;
-
-import java.util.List;
-import java.util.Map;
-
-/**
- * Created by ken.lj on 2017/9/24.
- */
-public interface DemoService {
-    String testString(String str);
-
-    boolean testPojo(Bean bean);
-
-    boolean testList(List<Bean> list);
-
-    boolean testMap(Map<String, Object> map);
-
-    Bean testResult(Bean bean);
-}
diff --git a/consumer-test/src/main/java/com/alibaba/dubbo/test/service/chain/impl/CatServiceImpl.java b/consumer-test/src/main/java/com/alibaba/dubbo/test/service/chain/impl/CatServiceImpl.java
deleted file mode 100644
index a6b57f5..0000000
--- a/consumer-test/src/main/java/com/alibaba/dubbo/test/service/chain/impl/CatServiceImpl.java
+++ /dev/null
@@ -1,28 +0,0 @@
-package com.alibaba.dubbo.test.service.chain.impl;
-
-import com.alibaba.dubbo.test.service.chain.CatService;
-import com.alibaba.dubbo.test.service.chain.MouseService;
-
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.stereotype.Service;
-
-/**
- * Created by ken.lj on 2017/9/8.
- */
-@Service("catService")
-public class CatServiceImpl implements CatService {
-
-    @Autowired
-    private MouseService mouseService;
-
-    @Override
-    public void eat(String master) {
-        System.out.println(master + " eat me.");
-        mouseService.eat("Cat");
-    }
-
-    @Override
-    public String getName() {
-        return "Tom Cat";
-    }
-}
diff --git a/consumer-test/src/main/java/com/alibaba/dubbo/test/service/chain/impl/DogServiceImpl.java b/consumer-test/src/main/java/com/alibaba/dubbo/test/service/chain/impl/DogServiceImpl.java
deleted file mode 100644
index ddae18a..0000000
--- a/consumer-test/src/main/java/com/alibaba/dubbo/test/service/chain/impl/DogServiceImpl.java
+++ /dev/null
@@ -1,32 +0,0 @@
-package com.alibaba.dubbo.test.service.chain.impl;
-
-import com.alibaba.dubbo.test.service.chain.CatService;
-import com.alibaba.dubbo.test.service.chain.DogService;
-import com.alibaba.dubbo.test.service.chain.MouseService;
-
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.stereotype.Service;
-
-/**
- * Created by ken.lj on 2017/9/8.
- */
-@Service("dogService")
-public class DogServiceImpl implements DogService {
-    @Autowired
-    private CatService catService;
-
-    @Autowired
-    private MouseService mouseService;
-
-    @Override
-    public void eat(String master) {
-        System.out.println(master + " eat me.");
-        catService.eat("cat");
-        mouseService.eat("mouse");
-    }
-
-    @Override
-    public String getName() {
-        return "Hachiko Dog";
-    }
-}
diff --git a/consumer-test/src/main/java/com/alibaba/dubbo/test/service/chain/impl/LionServiceImpl.java b/consumer-test/src/main/java/com/alibaba/dubbo/test/service/chain/impl/LionServiceImpl.java
deleted file mode 100644
index 9f7448c..0000000
--- a/consumer-test/src/main/java/com/alibaba/dubbo/test/service/chain/impl/LionServiceImpl.java
+++ /dev/null
@@ -1,37 +0,0 @@
-package com.alibaba.dubbo.test.service.chain.impl;
-
-import com.alibaba.dubbo.test.service.chain.CatService;
-import com.alibaba.dubbo.test.service.chain.DogService;
-import com.alibaba.dubbo.test.service.chain.LionService;
-import com.alibaba.dubbo.test.service.chain.MouseService;
-
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.stereotype.Service;
-
-/**
- * Created by ken.lj on 2017/9/8.
- */
-@Service("lionService")
-public class LionServiceImpl implements LionService {
-    @Autowired
-    private CatService catService;
-
-    @Autowired
-    private MouseService mouseService;
-
-    @Autowired
-    private DogService dogService;
-
-    @Override
-    public void eat(String master) {
-        System.out.println(master + " eat me.");
-        dogService.eat("dog");
-        catService.eat("cat");
-        mouseService.eat("mouse");
-    }
-
-    @Override
-    public String getName() {
-        return "Simba Lion";
-    }
-}
diff --git a/consumer-test/src/main/java/com/alibaba/dubbo/test/service/chain/impl/MouseServiceImpl.java b/consumer-test/src/main/java/com/alibaba/dubbo/test/service/chain/impl/MouseServiceImpl.java
deleted file mode 100644
index 715bea2..0000000
--- a/consumer-test/src/main/java/com/alibaba/dubbo/test/service/chain/impl/MouseServiceImpl.java
+++ /dev/null
@@ -1,21 +0,0 @@
-package com.alibaba.dubbo.test.service.chain.impl;
-
-import com.alibaba.dubbo.test.service.chain.MouseService;
-
-import org.springframework.stereotype.Service;
-
-/**
- * Created by ken.lj on 2017/9/8.
- */
-@Service("mouseService")
-public class MouseServiceImpl implements MouseService {
-    @Override
-    public void eat(String master) {
-        System.out.println(master + " eat me.");
-    }
-
-    @Override
-    public String getName() {
-        return "Mickey mouse";
-    }
-}
diff --git a/consumer-test/src/main/java/com/alibaba/dubbo/test/service/impl/AnnotateServiceImpl.java b/consumer-test/src/main/java/com/alibaba/dubbo/test/service/impl/AnnotateServiceImpl.java
deleted file mode 100644
index 276c652..0000000
--- a/consumer-test/src/main/java/com/alibaba/dubbo/test/service/impl/AnnotateServiceImpl.java
+++ /dev/null
@@ -1,17 +0,0 @@
-package com.alibaba.dubbo.test.service.impl;
-
-import com.alibaba.dubbo.config.annotation.Service;
-import com.alibaba.dubbo.test.service.AnnotateService;
-
-
-/**
- * Created by ken.lj on 2017/9/19.
- */
-@org.springframework.stereotype.Service
-@Service
-public class AnnotateServiceImpl implements AnnotateService {
-    @Override
-    public String sayHello() {
-        return "Hello";
-    }
-}
diff --git a/consumer-test/src/main/java/com/alibaba/dubbo/test/service/impl/AsycServiceImpl.java b/consumer-test/src/main/java/com/alibaba/dubbo/test/service/impl/AsycServiceImpl.java
deleted file mode 100644
index 377cb86..0000000
--- a/consumer-test/src/main/java/com/alibaba/dubbo/test/service/impl/AsycServiceImpl.java
+++ /dev/null
@@ -1,9 +0,0 @@
-package com.alibaba.dubbo.test.service.impl;
-
-import com.alibaba.dubbo.test.service.AsyncService;
-
-/**
- * Created by ken.lj on 2017/9/24.
- */
-public class AsycServiceImpl implements AsyncService {
-}
diff --git a/consumer-test/src/main/java/com/alibaba/dubbo/test/service/impl/CacheServiceImpl.java b/consumer-test/src/main/java/com/alibaba/dubbo/test/service/impl/CacheServiceImpl.java
deleted file mode 100644
index 5bcd175..0000000
--- a/consumer-test/src/main/java/com/alibaba/dubbo/test/service/impl/CacheServiceImpl.java
+++ /dev/null
@@ -1,9 +0,0 @@
-package com.alibaba.dubbo.test.service.impl;
-
-import com.alibaba.dubbo.test.service.CacheService;
-
-/**
- * Created by ken.lj on 2017/9/24.
- */
-public class CacheServiceImpl implements CacheService {
-}
diff --git a/consumer-test/src/main/java/com/alibaba/dubbo/test/service/impl/DemoServiceImpl.java b/consumer-test/src/main/java/com/alibaba/dubbo/test/service/impl/DemoServiceImpl.java
deleted file mode 100644
index 4f51e9e..0000000
--- a/consumer-test/src/main/java/com/alibaba/dubbo/test/service/impl/DemoServiceImpl.java
+++ /dev/null
@@ -1,37 +0,0 @@
-package com.alibaba.dubbo.test.service.impl;
-
-import com.alibaba.dubbo.test.dto.Bean;
-import com.alibaba.dubbo.test.service.DemoService;
-
-import java.util.List;
-import java.util.Map;
-
-/**
- * Created by ken.lj on 2017/9/24.
- */
-public class DemoServiceImpl implements DemoService {
-    @Override
-    public String testString(String str) {
-        return null;
-    }
-
-    @Override
-    public boolean testPojo(Bean bean) {
-        return false;
-    }
-
-    @Override
-    public boolean testList(List<Bean> list) {
-        return false;
-    }
-
-    @Override
-    public boolean testMap(Map<String, Object> map) {
-        return false;
-    }
-
-    @Override
-    public Bean testResult(Bean bean) {
-        return null;
-    }
-}
diff --git a/consumer-test/src/main/java/com/alibaba/dubbo/test/service/impl/WSServiceImpl.java b/consumer-test/src/main/java/com/alibaba/dubbo/test/service/impl/WSServiceImpl.java
deleted file mode 100644
index 7a1ad01..0000000
--- a/consumer-test/src/main/java/com/alibaba/dubbo/test/service/impl/WSServiceImpl.java
+++ /dev/null
@@ -1,9 +0,0 @@
-package com.alibaba.dubbo.test.service.impl;
-
-import com.alibaba.dubbo.test.service.WSService;
-
-/**
- * Created by ken.lj on 2017/9/24.
- */
-public class WSServiceImpl implements WSService {
-}
diff --git a/consumer-test/src/main/java/com/alibaba/dubbo/test/web/TestcaseController.java b/consumer-test/src/main/java/com/alibaba/dubbo/test/web/TestcaseController.java
index 74a9d61..78855de 100644
--- a/consumer-test/src/main/java/com/alibaba/dubbo/test/web/TestcaseController.java
+++ b/consumer-test/src/main/java/com/alibaba/dubbo/test/web/TestcaseController.java
@@ -1,14 +1,22 @@
 package com.alibaba.dubbo.test.web;
 
+import com.alibaba.dubbo.test.dto.Bean;
 import com.alibaba.dubbo.test.service.AnnotateService;
 import com.alibaba.dubbo.test.service.AsyncService;
 import com.alibaba.dubbo.test.service.CacheService;
 import com.alibaba.dubbo.test.service.DemoService;
 import com.alibaba.dubbo.test.service.WSService;
 
+import org.junit.Assert;
+import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.web.bind.annotation.RequestMapping;
 import org.springframework.web.bind.annotation.RestController;
 
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+
 /**
  * Created by ken.lj on 2017/9/25.
  */
@@ -16,14 +24,44 @@
 @RequestMapping("/testcase")
 public class TestcaseController {
 
+    @Autowired
     private DemoService demoService;
+    @Autowired
     private AsyncService asyncService;
+    @Autowired
     private CacheService cacheService;
+    @Autowired
     private WSService wsService;
+    @Autowired
     private AnnotateService annotateService;
 
     @RequestMapping("/all")
     public String testAll() {
+        String arg = "hello";
+        String retStr = demoService.testString(arg);
+        Assert.assertEquals(retStr, arg);
+
+        Bean bean1 = new Bean(1, "pojo1");
+        Bean retBean = demoService.testPojo(bean1);
+//        Assert.assertEquals(retBean, bean1);
+        Assert.assertNotNull(retBean);
+
+        List<Bean> list = new ArrayList<Bean>();
+        Bean bean2 = new Bean(2, "pojo2");
+        list.add(bean1);
+        list.add(bean2);
+        List<Bean> retList = demoService.testList(list);
+//        Assert.assertEquals(retList, list);
+        Assert.assertTrue(retList.size() == 2);
+
+        Map<String, Object> map = new HashMap<String, Object>();
+        map.put("key1", bean1);
+        map.put("key2", bean2);
+        Map<String, Object> retMap = demoService.testMap(map);
+//        Assert.assertEquals(retMap, map);
+        Assert.assertTrue(map.size() == 2);
+
+        // asyncService.test();
         return "all";
     }
 
@@ -48,4 +86,22 @@
     public String testAnnotate() {
         return "annotate";
     }
+
+   /* @RequestMapping("/java8time")
+    public String testJava8Time() {
+        LocalDateTime localDateTime = LocalDateTime.now();
+        LocalDateTime retInstant = demoService.testJava8Time(localDateTime);
+        System.out.println(localDateTime);
+        System.out.println(retInstant);
+        return "aaa";
+    }
+
+    @RequestMapping("/java8zoneddatetime")
+    public String testJava8Zoneddatetime() {
+        ZonedDateTime zonedDateTime = ZonedDateTime.now();
+        ZonedDateTime retZonedDateTime = demoService.testJava8Time(zonedDateTime);
+        System.out.println(zonedDateTime);
+        System.out.println(retZonedDateTime);
+        return "bbb";
+    }*/
 }
diff --git a/consumer-test/src/main/resources/dubbo-regression-provider.xml b/consumer-test/src/main/resources/dubbo-regression-provider.xml
deleted file mode 100644
index 1efb88e..0000000
--- a/consumer-test/src/main/resources/dubbo-regression-provider.xml
+++ /dev/null
@@ -1,41 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
- - Copyright 1999-2011 Alibaba Group.
- -  
- - Licensed under the Apache License, Version 2.0 (the "License");
- - you may not use this file except in compliance with the License.
- - You may obtain a copy of the License at
- -  
- -      http://www.apache.org/licenses/LICENSE-2.0
- -  
- - Unless required by applicable law or agreed to in writing, software
- - distributed under the License is distributed on an "AS IS" BASIS,
- - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- - See the License for the specific language governing permissions and
- - limitations under the License.
--->
-<beans xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-       xmlns:dubbo="http://code.alibabatech.com/schema/dubbo"
-       xmlns="http://www.springframework.org/schema/beans"
-       xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.5.xsd
-	http://code.alibabatech.com/schema/dubbo http://code.alibabatech.com/schema/dubbo/dubbo.xsd">
-
-    <dubbo:provider />
-
-    <dubbo:service interface="com.alibaba.dubbo.test.service.DemoService" ref="demoService"/>
-
-    <dubbo:service interface="com.alibaba.dubbo.test.service.AsyncService" ref="asyncService"/>
-
-    <dubbo:service interface="com.alibaba.dubbo.test.service.CacheService" ref="cacheService"/>
-
-    <dubbo:service interface="com.alibaba.dubbo.test.service.WSService" ref="wsService"/>
-
-    <dubbo:service interface="com.alibaba.dubbo.test.service.AnnotateService" ref="annotateService"/>
-
-    <bean id="demoService" class="com.alibaba.dubbo.test.service.impl.DemoServiceImpl" />
-    <bean id="asyncService" class="com.alibaba.dubbo.test.service.impl.AsycServiceImpl" />
-    <bean id="cacheService" class="com.alibaba.dubbo.test.service.impl.CacheServiceImpl" />
-    <bean id="wsService" class="com.alibaba.dubbo.test.service.impl.WSServiceImpl" />
-    <bean id="annotateService" class="com.alibaba.dubbo.test.service.impl.AnnotateServiceImpl" />
-
-</beans>
\ No newline at end of file
diff --git a/pom.xml b/pom.xml
index 573e05a..149ec32 100644
--- a/pom.xml
+++ b/pom.xml
@@ -9,6 +9,7 @@
 	<modules>
 		<module>provider-test</module>
 		<module>consumer-test</module>
+		<module>api</module>
 	</modules>
 	<packaging>pom</packaging>
 
@@ -44,32 +45,17 @@
 		<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
 	</properties>
 
+	<dependencyManagement>
 	<dependencies>
 		<dependency>
-			<groupId>org.springframework.boot</groupId>
-			<artifactId>spring-boot-starter-web</artifactId>
-		</dependency>
-
-		<dependency>
-			<groupId>org.springframework.boot</groupId>
-			<artifactId>spring-boot-starter-test</artifactId>
-			<scope>test</scope>
-		</dependency>
-		<dependency>
 			<groupId>com.alibaba</groupId>
 			<artifactId>dubbo</artifactId>
 			<version>2.5.6-SNAPSHOT</version>
-			<exclusions>
-				<exclusion>
-					<groupId>org.javassist</groupId>
-					<artifactId>javassist</artifactId>
-				</exclusion>
-			</exclusions>
 		</dependency>
 		<dependency>
-			<groupId>org.javassist</groupId>
-			<artifactId>javassist</artifactId>
-			<version>3.20.0-GA</version>
+			<groupId>io.netty</groupId>
+			<artifactId>netty-all</artifactId>
+			<version>4.0.35.Final</version>
 		</dependency>
 		<dependency>
 			<groupId>org.apache.zookeeper</groupId>
@@ -91,8 +77,8 @@
 			<artifactId>junit</artifactId>
 			<version>4.12</version>
 		</dependency>
-
 	</dependencies>
+	</dependencyManagement>
 
 	<profiles>
 		<profile>
diff --git a/provider-test/pom.xml b/provider-test/pom.xml
index 57aad19..bbf8208 100644
--- a/provider-test/pom.xml
+++ b/provider-test/pom.xml
@@ -11,5 +11,41 @@
 
     <artifactId>provider-test</artifactId>
 
+    <dependencies>
+        <dependency>
+            <groupId>com.alibaba.dubbo</groupId>
+            <artifactId>api</artifactId>
+            <version>${project.version}</version>
+        </dependency>
+        <dependency>
+            <groupId>org.springframework.boot</groupId>
+            <artifactId>spring-boot-starter</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>org.springframework.boot</groupId>
+            <artifactId>spring-boot-starter-test</artifactId>
+            <scope>test</scope>
+        </dependency>
+        <dependency>
+            <groupId>com.alibaba</groupId>
+            <artifactId>dubbo</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>io.netty</groupId>
+            <artifactId>netty-all</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>org.apache.zookeeper</groupId>
+            <artifactId>zookeeper</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>org.apache.curator</groupId>
+            <artifactId>curator-framework</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>junit</groupId>
+            <artifactId>junit</artifactId>
+        </dependency>
+    </dependencies>
 
 </project>
\ No newline at end of file
diff --git a/provider-test/src/main/java/com/alibaba/dubbo/test/dto/Bait.java b/provider-test/src/main/java/com/alibaba/dubbo/test/dto/Bait.java
deleted file mode 100644
index 6747ff2..0000000
--- a/provider-test/src/main/java/com/alibaba/dubbo/test/dto/Bait.java
+++ /dev/null
@@ -1,50 +0,0 @@
-package com.alibaba.dubbo.test.dto;
-
-import java.io.Serializable;
-
-/**
- * Created by ken.lj on 2017/9/8.
- */
-public class Bait implements Serializable {
-    private int id;
-
-    private boolean cook ;
-
-    private String taste;
-
-    Bait() {}
-
-    Bait(int id, String taste) {
-        this(id, false, taste);
-    }
-
-    Bait(int id, boolean cook, String taste) {
-        this.id = id;
-        this.cook = cook;
-        this.taste = taste;
-    }
-
-    public int getId() {
-        return id;
-    }
-
-    public void setId(int id) {
-        this.id = id;
-    }
-
-    public boolean isCook() {
-        return cook;
-    }
-
-    public void setCook(boolean cook) {
-        this.cook = cook;
-    }
-
-    public String getTaste() {
-        return taste;
-    }
-
-    public void setTaste(String taste) {
-        this.taste = taste;
-    }
-}
diff --git a/provider-test/src/main/java/com/alibaba/dubbo/test/dto/Bean.java b/provider-test/src/main/java/com/alibaba/dubbo/test/dto/Bean.java
deleted file mode 100644
index 9ee7832..0000000
--- a/provider-test/src/main/java/com/alibaba/dubbo/test/dto/Bean.java
+++ /dev/null
@@ -1,28 +0,0 @@
-package com.alibaba.dubbo.test.dto;
-
-import java.io.Serializable;
-
-/**
- * Created by ken.lj on 2017/9/24.
- */
-public class Bean implements Serializable {
-    private int id;
-
-    private String name;
-
-    public int getId() {
-        return id;
-    }
-
-    public void setId(int id) {
-        this.id = id;
-    }
-
-    public String getName() {
-        return name;
-    }
-
-    public void setName(String name) {
-        this.name = name;
-    }
-}
diff --git a/provider-test/src/main/java/com/alibaba/dubbo/test/dto/Taste.java b/provider-test/src/main/java/com/alibaba/dubbo/test/dto/Taste.java
deleted file mode 100644
index 04e072b..0000000
--- a/provider-test/src/main/java/com/alibaba/dubbo/test/dto/Taste.java
+++ /dev/null
@@ -1,7 +0,0 @@
-package com.alibaba.dubbo.test.dto;
-
-/**
- * Created by ken.lj on 2017/9/8.
- */
-public enum Taste {
-}
diff --git a/provider-test/src/main/java/com/alibaba/dubbo/test/service/AnnotateService.java b/provider-test/src/main/java/com/alibaba/dubbo/test/service/AnnotateService.java
deleted file mode 100644
index 9bdbaa1..0000000
--- a/provider-test/src/main/java/com/alibaba/dubbo/test/service/AnnotateService.java
+++ /dev/null
@@ -1,8 +0,0 @@
-package com.alibaba.dubbo.test.service;
-
-/**
- * Created by ken.lj on 2017/9/19.
- */
-public interface AnnotateService {
-    String sayHello();
-}
diff --git a/provider-test/src/main/java/com/alibaba/dubbo/test/service/AsyncService.java b/provider-test/src/main/java/com/alibaba/dubbo/test/service/AsyncService.java
deleted file mode 100644
index 37e3653..0000000
--- a/provider-test/src/main/java/com/alibaba/dubbo/test/service/AsyncService.java
+++ /dev/null
@@ -1,7 +0,0 @@
-package com.alibaba.dubbo.test.service;
-
-/**
- * Created by ken.lj on 2017/9/24.
- */
-public interface AsyncService {
-}
diff --git a/provider-test/src/main/java/com/alibaba/dubbo/test/service/CacheService.java b/provider-test/src/main/java/com/alibaba/dubbo/test/service/CacheService.java
deleted file mode 100644
index 4352f01..0000000
--- a/provider-test/src/main/java/com/alibaba/dubbo/test/service/CacheService.java
+++ /dev/null
@@ -1,7 +0,0 @@
-package com.alibaba.dubbo.test.service;
-
-/**
- * Created by ken.lj on 2017/9/24.
- */
-public interface CacheService {
-}
diff --git a/provider-test/src/main/java/com/alibaba/dubbo/test/service/DemoService.java b/provider-test/src/main/java/com/alibaba/dubbo/test/service/DemoService.java
deleted file mode 100644
index 2c6869e..0000000
--- a/provider-test/src/main/java/com/alibaba/dubbo/test/service/DemoService.java
+++ /dev/null
@@ -1,21 +0,0 @@
-package com.alibaba.dubbo.test.service;
-
-import com.alibaba.dubbo.test.dto.Bean;
-
-import java.util.List;
-import java.util.Map;
-
-/**
- * Created by ken.lj on 2017/9/24.
- */
-public interface DemoService {
-    String testString(String str);
-
-    boolean testPojo(Bean bean);
-
-    boolean testList(List<Bean> list);
-
-    boolean testMap(Map<String, Object> map);
-
-    Bean testResult(Bean bean);
-}
diff --git a/provider-test/src/main/java/com/alibaba/dubbo/test/service/WSService.java b/provider-test/src/main/java/com/alibaba/dubbo/test/service/WSService.java
deleted file mode 100644
index 626c5af..0000000
--- a/provider-test/src/main/java/com/alibaba/dubbo/test/service/WSService.java
+++ /dev/null
@@ -1,7 +0,0 @@
-package com.alibaba.dubbo.test.service;
-
-/**
- * Created by ken.lj on 2017/9/24.
- */
-public interface WSService {
-}
diff --git a/provider-test/src/main/java/com/alibaba/dubbo/test/service/chain/CatService.java b/provider-test/src/main/java/com/alibaba/dubbo/test/service/chain/CatService.java
deleted file mode 100644
index 7c4fcf2..0000000
--- a/provider-test/src/main/java/com/alibaba/dubbo/test/service/chain/CatService.java
+++ /dev/null
@@ -1,10 +0,0 @@
-package com.alibaba.dubbo.test.service.chain;
-
-/**
- * Created by ken.lj on 2017/9/8.
- */
-public interface CatService {
-    void eat(String master);
-
-    String getName();
-}
diff --git a/provider-test/src/main/java/com/alibaba/dubbo/test/service/chain/DogService.java b/provider-test/src/main/java/com/alibaba/dubbo/test/service/chain/DogService.java
deleted file mode 100644
index 74de994..0000000
--- a/provider-test/src/main/java/com/alibaba/dubbo/test/service/chain/DogService.java
+++ /dev/null
@@ -1,10 +0,0 @@
-package com.alibaba.dubbo.test.service.chain;
-
-/**
- * Created by ken.lj on 2017/9/8.
- */
-public interface DogService {
-    void eat(String master);
-
-    String getName();
-}
diff --git a/provider-test/src/main/java/com/alibaba/dubbo/test/service/chain/LionService.java b/provider-test/src/main/java/com/alibaba/dubbo/test/service/chain/LionService.java
deleted file mode 100644
index 60eb859..0000000
--- a/provider-test/src/main/java/com/alibaba/dubbo/test/service/chain/LionService.java
+++ /dev/null
@@ -1,10 +0,0 @@
-package com.alibaba.dubbo.test.service.chain;
-
-/**
- * Created by ken.lj on 2017/9/8.
- */
-public interface LionService {
-    void eat(String master);
-
-    String getName();
-}
diff --git a/provider-test/src/main/java/com/alibaba/dubbo/test/service/chain/MouseService.java b/provider-test/src/main/java/com/alibaba/dubbo/test/service/chain/MouseService.java
deleted file mode 100644
index 9898cc0..0000000
--- a/provider-test/src/main/java/com/alibaba/dubbo/test/service/chain/MouseService.java
+++ /dev/null
@@ -1,10 +0,0 @@
-package com.alibaba.dubbo.test.service.chain;
-
-/**
- * Created by ken.lj on 2017/9/8.
- */
-public interface MouseService {
-    void eat(String master);
-
-    String getName();
-}
diff --git a/provider-test/src/main/java/com/alibaba/dubbo/test/service/impl/AsycServiceImpl.java b/provider-test/src/main/java/com/alibaba/dubbo/test/service/impl/AsycServiceImpl.java
index 377cb86..4c6fd30 100644
--- a/provider-test/src/main/java/com/alibaba/dubbo/test/service/impl/AsycServiceImpl.java
+++ b/provider-test/src/main/java/com/alibaba/dubbo/test/service/impl/AsycServiceImpl.java
@@ -5,5 +5,5 @@
 /**
  * Created by ken.lj on 2017/9/24.
  */
-public class AsycServiceImpl implements AsyncService {
+public class AsycServiceImpl implements AsyncService{
 }
diff --git a/provider-test/src/main/java/com/alibaba/dubbo/test/service/impl/DemoServiceImpl.java b/provider-test/src/main/java/com/alibaba/dubbo/test/service/impl/DemoServiceImpl.java
index 4f51e9e..5d8b9ab 100644
--- a/provider-test/src/main/java/com/alibaba/dubbo/test/service/impl/DemoServiceImpl.java
+++ b/provider-test/src/main/java/com/alibaba/dubbo/test/service/impl/DemoServiceImpl.java
@@ -12,26 +12,32 @@
 public class DemoServiceImpl implements DemoService {
     @Override
     public String testString(String str) {
-        return null;
+        return str;
     }
 
     @Override
-    public boolean testPojo(Bean bean) {
-        return false;
+    public Bean testPojo(Bean bean) {
+        return bean;
     }
 
     @Override
-    public boolean testList(List<Bean> list) {
-        return false;
+    public List<Bean> testList(List<Bean> list) {
+        return list;
     }
 
     @Override
-    public boolean testMap(Map<String, Object> map) {
-        return false;
+    public Map<String, Object> testMap(Map<String, Object> map) {
+        return map;
+    }
+
+    /*@Override
+    public LocalDateTime testJava8Time(LocalDateTime instant) {
+        return instant;
     }
 
     @Override
-    public Bean testResult(Bean bean) {
-        return null;
-    }
+    public ZonedDateTime testJava8Time(ZonedDateTime zonedDateTime) {
+        return zonedDateTime;
+    }*/
+
 }
diff --git a/provider-test/src/main/resources/dubbo-common.xml b/provider-test/src/main/resources/dubbo-common.xml
index 099b2ce..38f5559 100644
--- a/provider-test/src/main/resources/dubbo-common.xml
+++ b/provider-test/src/main/resources/dubbo-common.xml
@@ -27,6 +27,6 @@
     <dubbo:registry client="curator" address="zookeeper://127.0.0.1:2181"/>
 
     <!-- 用dubbo协议在20880端口暴露服务 -->
-    <dubbo:protocol name="dubbo" port="-1"/>
+    <dubbo:protocol name="dubbo" port="-1" transporter="netty"/>
 
 </beans>
\ No newline at end of file
diff --git a/provider-test/src/main/resources/dubbo-regression-consumer.xml b/provider-test/src/main/resources/dubbo-regression-consumer.xml
deleted file mode 100644
index 19e79f3..0000000
--- a/provider-test/src/main/resources/dubbo-regression-consumer.xml
+++ /dev/null
@@ -1,35 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
- - Copyright 1999-2011 Alibaba Group.
- -  
- - Licensed under the Apache License, Version 2.0 (the "License");
- - you may not use this file except in compliance with the License.
- - You may obtain a copy of the License at
- -  
- -      http://www.apache.org/licenses/LICENSE-2.0
- -  
- - Unless required by applicable law or agreed to in writing, software
- - distributed under the License is distributed on an "AS IS" BASIS,
- - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- - See the License for the specific language governing permissions and
- - limitations under the License.
--->
-<beans xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-       xmlns:dubbo="http://code.alibabatech.com/schema/dubbo"
-       xmlns="http://www.springframework.org/schema/beans"
-       xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.5.xsd
-	http://code.alibabatech.com/schema/dubbo http://code.alibabatech.com/schema/dubbo/dubbo.xsd">
-    
-    <dubbo:consumer />
-
-    <dubbo:reference id="demoService" interface="com.alibaba.dubbo.test.service.DemoService" />
-
-    <dubbo:reference id="asyncService" interface="com.alibaba.dubbo.test.service.AsyncService" />
-
-    <dubbo:reference id="cacheService" interface="com.alibaba.dubbo.test.service.CacheService" />
-
-    <dubbo:reference id="wsService" interface="com.alibaba.dubbo.test.service.WSService" />
-
-    <dubbo:reference id="annotateService" interface="com.alibaba.dubbo.test.service.AnnotateService" />
-
-</beans>
\ No newline at end of file
diff --git a/provider-test/src/main/resources/dubbo-regression-provider.xml b/provider-test/src/main/resources/dubbo-regression-provider.xml
index 1efb88e..c22ffed 100644
--- a/provider-test/src/main/resources/dubbo-regression-provider.xml
+++ b/provider-test/src/main/resources/dubbo-regression-provider.xml
@@ -20,11 +20,11 @@
        xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.5.xsd
 	http://code.alibabatech.com/schema/dubbo http://code.alibabatech.com/schema/dubbo/dubbo.xsd">
 
-    <dubbo:provider />
+    <dubbo:provider delay="-1"/>
 
     <dubbo:service interface="com.alibaba.dubbo.test.service.DemoService" ref="demoService"/>
 
-    <dubbo:service interface="com.alibaba.dubbo.test.service.AsyncService" ref="asyncService"/>
+    <dubbo:service async="true" interface="com.alibaba.dubbo.test.service.AsyncService" ref="asyncService"/>
 
     <dubbo:service interface="com.alibaba.dubbo.test.service.CacheService" ref="cacheService"/>