Update dubbo to latest version (#9)

diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml
new file mode 100644
index 0000000..dc5b7ec
--- /dev/null
+++ b/.github/workflows/ci.yml
@@ -0,0 +1,45 @@
+name: CI
+
+on: [ push ]
+
+jobs:
+  build:
+    runs-on: ubuntu-latest
+    timeout-minutes: 30
+
+    strategy:
+      matrix:
+        target: [ "dubbo-fastjson","dubbo-gson","dubbo-grpc","dubbo-hessianlite","dubbo-kryo","dubbo-native-hessian","dubbo-protobuf-json","dubbo-triple" ]
+    steps:
+      - uses: actions/checkout@v2
+      - name: Set up JDK 8
+        uses: actions/setup-java@v2
+        with:
+          java-version: '8'
+          distribution: 'adopt'
+      - name: Prepare base
+        run: mvn clean package -DskipTests=true -pl benchmark-base,client-base,server-base
+      - name: Start server
+        run: ./benchmark.sh ${{ matrix.target }}-server &
+      - name: Wait server ready
+        run: sleep 20
+      - name: Run benchmark
+        run: ./benchmark.sh -a "--warmupIterations=1 --warmupTime=1 --measurementIterations=1 --measurementTime=1" ${{ matrix.target }}-client > ${{ matrix.target }}-output.txt
+      - name: Kill jobs
+        run: jobs -p | grep -o -E '\s\d+\s' | xargs kill || true
+      - name: Save output
+        uses: actions/upload-artifact@v2
+        with:
+          name: ${{ matrix.target }}-output
+          path: ${{ matrix.target }}-output.txt
+
+  report:
+    needs: build
+    runs-on: ubuntu-latest
+    steps:
+      - uses: actions/download-artifact@v2
+        with:
+          path: reports
+      - name: Display structure of downloaded files
+        run: ls -R
+        working-directory: reports
diff --git a/.travis.yml b/.travis.yml
deleted file mode 100644
index e287f3e..0000000
--- a/.travis.yml
+++ /dev/null
@@ -1,12 +0,0 @@
-language: java
-
-jdk:
-  - openjdk8
-
-install: true
-
-script:
-  - mvn clean package -DskipTests=true -pl benchmark-base,client-base,server-base
-  - ./benchmark.sh dubbo-kryo-server &
-  - sleep 20
-  - ./benchmark.sh -a "--warmupIterations=1 --warmupTime=1 --measurementIterations=1 --measurementTime=3" dubbo-kryo-client
\ No newline at end of file
diff --git a/dubbo-triple-client/pom.xml b/dubbo-triple-client/pom.xml
new file mode 100644
index 0000000..f932725
--- /dev/null
+++ b/dubbo-triple-client/pom.xml
@@ -0,0 +1,55 @@
+<?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-benchmark</artifactId>
+        <groupId>org.apache.dubbo</groupId>
+        <version>1.0-SNAPSHOT</version>
+    </parent>
+    <modelVersion>4.0.0</modelVersion>
+
+    <artifactId>dubbo-triple-client</artifactId>
+
+    <properties>
+        <dubbo.version>3.0.0.preview</dubbo.version>
+    </properties>
+
+    <dependencies>
+        <dependency>
+            <groupId>org.apache.dubbo</groupId>
+            <artifactId>client-base</artifactId>
+            <version>${project.version}</version>
+        </dependency>
+    </dependencies>
+    <build>
+        <plugins>
+            <plugin>
+                <groupId>org.apache.maven.plugins</groupId>
+                <artifactId>maven-compiler-plugin</artifactId>
+                <configuration>
+                    <source>1.8</source>
+                    <target>1.8</target>
+                </configuration>
+            </plugin>
+            <plugin>
+                <groupId>org.apache.maven.plugins</groupId>
+                <artifactId>maven-dependency-plugin</artifactId>
+                <inherited>true</inherited>
+            </plugin>
+
+            <plugin>
+                <groupId>org.apache.maven.plugins</groupId>
+                <artifactId>maven-jar-plugin</artifactId>
+                <inherited>true</inherited>
+                <configuration>
+                    <archive>
+                        <manifest>
+                            <mainClass>org.apache.dubbo.benchmark.Client</mainClass>
+                        </manifest>
+                    </archive>
+                </configuration>
+            </plugin>
+        </plugins>
+    </build>
+</project>
diff --git a/dubbo-triple-client/src/main/resources/consumer.xml b/dubbo-triple-client/src/main/resources/consumer.xml
new file mode 100644
index 0000000..3574a66
--- /dev/null
+++ b/dubbo-triple-client/src/main/resources/consumer.xml
@@ -0,0 +1,12 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<beans xmlns="http://www.springframework.org/schema/beans"
+       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:dubbo="http://code.alibabatech.com/schema/dubbo"
+       xmlns:context="http://www.springframework.org/schema/context"
+       xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd http://code.alibabatech.com/schema/dubbo http://code.alibabatech.com/schema/dubbo/dubbo.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd">
+    <context:property-placeholder location="classpath:benchmark.properties" system-properties-mode="OVERRIDE"/>
+    <dubbo:application name="dubbo-triple-client"/>
+
+    <dubbo:reference id="userService" check="false" protocol="tri"
+                     interface="org.apache.dubbo.benchmark.service.UserService"
+                     url="tri://${server.host}:${server.port}"/>
+</beans>
diff --git a/dubbo-triple-server/pom.xml b/dubbo-triple-server/pom.xml
new file mode 100644
index 0000000..6e4b973
--- /dev/null
+++ b/dubbo-triple-server/pom.xml
@@ -0,0 +1,52 @@
+<?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-benchmark</artifactId>
+        <groupId>org.apache.dubbo</groupId>
+        <version>1.0-SNAPSHOT</version>
+    </parent>
+    <modelVersion>4.0.0</modelVersion>
+
+    <artifactId>dubbo-triple-server</artifactId>
+    <properties>
+        <dubbo.version>3.0.0.preview</dubbo.version>
+    </properties>
+
+    <dependencies>
+        <dependency>
+            <groupId>org.apache.dubbo</groupId>
+            <artifactId>server-base</artifactId>
+            <version>${project.version}</version>
+        </dependency>
+    </dependencies>
+    <build>
+        <plugins>
+            <plugin>
+                <groupId>org.apache.maven.plugins</groupId>
+                <artifactId>maven-compiler-plugin</artifactId>
+                <configuration>
+                    <source>1.8</source>
+                    <target>1.8</target>
+                </configuration>
+            </plugin>
+            <plugin>
+                <groupId>org.apache.maven.plugins</groupId>
+                <artifactId>maven-dependency-plugin</artifactId>
+            </plugin>
+
+            <plugin>
+                <groupId>org.apache.maven.plugins</groupId>
+                <artifactId>maven-jar-plugin</artifactId>
+                <configuration>
+                    <archive>
+                        <manifest>
+                            <mainClass>org.apache.dubbo.benchmark.Server</mainClass>
+                        </manifest>
+                    </archive>
+                </configuration>
+            </plugin>
+        </plugins>
+    </build>
+</project>
diff --git a/dubbo-triple-server/src/main/resources/provider.xml b/dubbo-triple-server/src/main/resources/provider.xml
new file mode 100644
index 0000000..e7c7448
--- /dev/null
+++ b/dubbo-triple-server/src/main/resources/provider.xml
@@ -0,0 +1,13 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<beans xmlns="http://www.springframework.org/schema/beans"
+       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:dubbo="http://code.alibabatech.com/schema/dubbo"
+       xmlns:context="http://www.springframework.org/schema/context"
+       xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd http://code.alibabatech.com/schema/dubbo http://code.alibabatech.com/schema/dubbo/dubbo.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd">
+    <context:property-placeholder location="classpath:benchmark.properties" system-properties-mode="OVERRIDE"/>
+    <dubbo:application name="dubbo-triple-server"/>
+
+    <dubbo:protocol name="tri" host="${server.host}" port="${server.port}"/>
+    <dubbo:registry address="N/A" />
+    <dubbo:service interface="org.apache.dubbo.benchmark.service.UserService" ref="userService" protocol="tri"/>
+    <bean id="userService" class="org.apache.dubbo.benchmark.service.UserServiceServerImpl"/>
+</beans>
diff --git a/pom.xml b/pom.xml
index 447b85a..07360b8 100644
--- a/pom.xml
+++ b/pom.xml
@@ -12,7 +12,7 @@
     <properties>
         <java.source>1.8</java.source>
         <java.target>1.8</java.target>
-        <dubbo.version>2.7.6</dubbo.version>
+        <dubbo.version>2.7.9</dubbo.version>
         <netty.version>4.1.25.Final</netty.version>
         <kryo.version>4.0.2</kryo.version>
         <kryo-serializers.version>0.42</kryo-serializers.version>
@@ -50,6 +50,8 @@
         <module>dubbo-pb-client</module>
         <module>dubbo-grpc-server</module>
         <module>dubbo-grpc-client</module>
+        <module>dubbo-triple-server</module>
+        <module>dubbo-triple-client</module>
 
     </modules>
 
@@ -216,4 +218,4 @@
             </plugin>
         </plugins>
     </build>
-</project>
\ No newline at end of file
+</project>