Skip to content
Permalink
Browse files
Improve protobuf json (#269)
  • Loading branch information
kylixs committed Jan 21, 2021
1 parent f523abc commit 6679b82438c8b28f624cd51eccbfa3676eb218ef
Show file tree
Hide file tree
Showing 8 changed files with 99 additions and 175 deletions.
@@ -0,0 +1,25 @@
# Licensed to the Apache Software Foundation (ASF) under one
# or more contributor license agreements. See the NOTICE file
# distributed with this work for additional information
# regarding copyright ownership. The ASF licenses this file
# to you 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.

from: app-builtin-zookeeper.yml

props:
project_name: dubbo-samples-protobuf-json
project_dir: protobuf-json-serialization-demo
main_class: org.apache.dubbo.sample.protobuf.provider.ProviderStarter
zookeeper_port: 2181
dubbo_port: 20880

@@ -0,0 +1,6 @@

# Supported component versions of the test case

# Spring app
dubbo.version=2.7*, 3.*
spring.version=4.*, 5.*
@@ -19,28 +19,32 @@
<target.level>1.8</target.level>
<dubbo.version>2.7.7</dubbo.version>
<protobuf.java>3.6.0</protobuf.java>
<maven-compiler-plugin.version>3.7.0</maven-compiler-plugin.version>
<maven-failsafe-plugin.version>2.21.0</maven-failsafe-plugin.version>
<junit.version>4.12</junit.version>
<spring.version>4.3.16.RELEASE</spring.version>
<dubbo.port>20880</dubbo.port>
<zookeeper.port>2181</zookeeper.port>
</properties>

<dependencyManagement>
<dependencies>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-framework-bom</artifactId>
<version>${spring.version}</version>
<type>pom</type>
<scope>import</scope>
</dependency>
<dependency>
<groupId>org.apache.dubbo</groupId>
<artifactId>dubbo</artifactId>
<artifactId>dubbo-bom</artifactId>
<version>${dubbo.version}</version>
<type>pom</type>
<scope>import</scope>
</dependency>
<dependency>
<groupId>org.apache.dubbo</groupId>
<artifactId>dubbo-dependencies-zookeeper</artifactId>
<version>${dubbo.version}</version>
<type>pom</type>
</dependency>

<dependency>
<groupId>com.google.protobuf</groupId>
<artifactId>protobuf-java</artifactId>
@@ -53,20 +57,14 @@
<scope>test</scope>
</dependency>

<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-test</artifactId>
<version>${spring.version}</version>
<scope>test</scope>
</dependency>
</dependencies>
</dependencyManagement>
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>${maven-compiler-plugin.version}</version>
<version>3.7.0</version>
<configuration>
<source>${source.level}</source>
<target>${target.level}</target>
@@ -40,20 +40,20 @@
<dependency>
<groupId>org.apache.dubbo</groupId>
<artifactId>dubbo-dependencies-zookeeper</artifactId>
<version>${dubbo.version}</version>
<type>pom</type>
</dependency>
<dependency>
<groupId>org.apache.dubbo</groupId>
<artifactId>dubbo-dependencies-zookeeper</artifactId>
<version>${dubbo.version}</version>
<type>pom</type>
<artifactId>dubbo-metadata-definition-protobuf</artifactId>
</dependency>

<dependency>
<groupId>org.apache.dubbo</groupId>
<artifactId>dubbo-metadata-definition-protobuf</artifactId>
<version>${dubbo.version}</version>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>${junit.version}</version>
<scope>test</scope>
</dependency>

</dependencies>

<profiles>
@@ -0,0 +1,47 @@
/*
* Licensed to the Apache Software Foundation (ASF) under one or more
* contributor license agreements. See the NOTICE file distributed with
* this work for additional information regarding copyright ownership.
* The ASF licenses this file to You 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.
*/

package org.apache.dubbo.sample.protobuf;

import org.apache.dubbo.config.ApplicationConfig;
import org.apache.dubbo.config.ReferenceConfig;
import org.apache.dubbo.config.RegistryConfig;
import org.junit.Assert;
import org.junit.Test;

public class DubboProtobufJsonIT {

private static String zookeeperHost = System.getProperty("zookeeper.address", "127.0.0.1");

@Test
public void testGreeting() throws Exception {
ReferenceConfig<GoogleProtobufService> reference = new ReferenceConfig<>();
ApplicationConfig applicationConfig = new ApplicationConfig("first-dubbo-consumer");
applicationConfig.setQosEnable(false);
reference.setApplication(applicationConfig);
reference.setRegistry(new RegistryConfig("zookeeper://" + zookeeperHost + ":2181"));
reference.setInterface(GoogleProtobufService.class);
GoogleProtobufService service = reference.get();
GoogleProtobufBasic.GooglePBRequestType requestType = GoogleProtobufBasic.GooglePBRequestType.newBuilder()
.setString("some string from client")
.build();
GoogleProtobufBasic.GooglePBResponseType responseType = service.callGoogleProtobuf(requestType);
System.out.println(responseType.getString());
Assert.assertEquals("some string from client", responseType.getString());
}
}

@@ -32,7 +32,8 @@
* Date: 2019-10-01
*/
public class ProtobufSerialization implements Serialization {
private static final int CONTENT_TYPE_ID = 25;
//Serialization ID must less than SERIALIZATION_MASK and cannot be duplicated with other serializations
private static final int CONTENT_TYPE_ID = 30;

/**
* The content type id should not be changed in any circumstance!
@@ -28,17 +28,6 @@
<artifactId>dubbo-samples-protostuff-provider</artifactId>
<name>dubbo-samples-protostuff-provider</name>

<properties>
<docker-maven-plugin.version>0.30.0</docker-maven-plugin.version>
<jib-maven-plugin.version>1.2.0</jib-maven-plugin.version>
<maven-failsafe-plugin.version>2.21.0</maven-failsafe-plugin.version>
<image.name>${project.artifactId}:${dubbo.version}</image.name>
<java-image.name>openjdk:8</java-image.name>
<dubbo.port>20880</dubbo.port>
<zookeeper.port>2181</zookeeper.port>
<main-class>org.dubbo.samples.protostuff.provider.ProviderApp</main-class>
</properties>

<dependencies>
<dependency>
<groupId>com.alibaba</groupId>
@@ -95,137 +84,4 @@
</dependency>
</dependencies>

<profiles>
<profile>
<id>dubbo-integration-test</id>
<build>
<plugins>
<plugin>
<groupId>org.apache.dubbo</groupId>
<artifactId>dubbo-maven-address-plugin</artifactId>
<version>1.0-SNAPSHOT</version>
<executions>
<execution>
<goals>
<goal>local-address</goal>
</goals>
<configuration>
<localAddress>dubbo-local-address</localAddress>
</configuration>
<phase>initialize</phase>
</execution>
</executions>
</plugin>

<plugin>
<groupId>com.google.cloud.tools</groupId>
<artifactId>jib-maven-plugin</artifactId>
<version>${jib-maven-plugin.version}</version>
<configuration>
<from>
<image>${java-image.name}</image>
</from>
<to>
<image>${image.name}</image>
</to>
<container>
<mainClass>${main-class}</mainClass>
<environment>
<DUBBO_IP_TO_REGISTRY>${dubbo-local-address}</DUBBO_IP_TO_REGISTRY>
</environment>
<jvmFlags>
<jvmFlag>-Dzookeeper.address=${dubbo-local-address}</jvmFlag>
</jvmFlags>
</container>
</configuration>
<executions>
<execution>
<phase>package</phase>
<goals>
<goal>dockerBuild</goal>
</goals>
</execution>
</executions>
</plugin>

<plugin>
<groupId>io.fabric8</groupId>
<artifactId>docker-maven-plugin</artifactId>
<version>${docker-maven-plugin.version}</version>
<configuration>
<images>
<image>
<name>zookeeper:latest</name>
<run>
<ports>
<port>${zookeeper.port}:${zookeeper.port}</port>
</ports>
<wait>
<tcp>
<host>${dubbo-local-address}</host>
<ports>
<port>${zookeeper.port}</port>
</ports>
</tcp>
</wait>
</run>
</image>
<image>
<name>${image.name}</name>
<run>
<ports>
<port>${dubbo.port}:${dubbo.port}</port>
</ports>
<wait>
<time>20000</time>
<log>Spring Boot Application is await</log>
</wait>
</run>
</image>
</images>
</configuration>
<executions>
<execution>
<id>start</id>
<phase>pre-integration-test</phase>
<goals>
<goal>start</goal>
</goals>
</execution>
<execution>
<id>stop</id>
<phase>post-integration-test</phase>
<goals>
<goal>stop</goal>
</goals>
</execution>
</executions>
</plugin>

<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-failsafe-plugin</artifactId>
<version>${maven-failsafe-plugin.version}</version>
<executions>
<execution>
<goals>
<goal>integration-test</goal>
<goal>verify</goal>
</goals>
<configuration>
<systemPropertyVariables>
<zookeeper.address>${dubbo-local-address}</zookeeper.address>
</systemPropertyVariables>
<includes>
<include>**/*IT.java</include>
</includes>
</configuration>
</execution>
</executions>
</plugin>
</plugins>
</build>
</profile>
</profiles>

</project>
@@ -34,15 +34,6 @@
<spring-boot.version>2.1.1.RELEASE</spring-boot.version>
<dubbo.version>2.7.7</dubbo.version>
<protostuff.version>1.5.9</protostuff.version>
<docker-maven-plugin.version>0.30.0</docker-maven-plugin.version>
<jib-maven-plugin.version>1.2.0</jib-maven-plugin.version>
<maven-compiler-plugin.version>3.7.0</maven-compiler-plugin.version>
<maven-failsafe-plugin.version>2.21.0</maven-failsafe-plugin.version>
<image.name>${project.artifactId}:${dubbo.version}</image.name>
<java-image.name>openjdk:8</java-image.name>
<dubbo.port>20880</dubbo.port>
<zookeeper.port>2181</zookeeper.port>
<main-class>org.apache.dubbo.samples.annotation.AnnotationProviderBootstrap</main-class>
</properties>

<packaging>pom</packaging>
@@ -147,7 +138,7 @@
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>${maven-compiler-plugin.version}</version>
<version>3.7.0</version>
<configuration>
<source>${source.level}</source>
<target>${target.level}</target>

0 comments on commit 6679b82

Please sign in to comment.