You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@dubbo.apache.org by li...@apache.org on 2019/07/01 11:23:28 UTC

[dubbo] branch 2.7.3-release updated: disable oraclejdk 11 task & fix ProtobufTypeBuilderTest (#4434)

This is an automated email from the ASF dual-hosted git repository.

liujun pushed a commit to branch 2.7.3-release
in repository https://gitbox.apache.org/repos/asf/dubbo.git


The following commit(s) were added to refs/heads/2.7.3-release by this push:
     new d66a2fa  disable oraclejdk 11 task & fix ProtobufTypeBuilderTest (#4434)
d66a2fa is described below

commit d66a2fa83270a8404df2e1ffbeb6e4799d697c49
Author: cvictory <sh...@gmail.com>
AuthorDate: Mon Jul 1 19:23:22 2019 +0800

    disable oraclejdk 11 task & fix ProtobufTypeBuilderTest (#4434)
---
 .travis.yml                                        |    1 -
 .../protobuf}/ProtobufTypeBuilderTest.java         |   12 +-
 .../definition/protobuf/model/GooglePB.java        | 3431 ++++++++++++++++++++
 .../protobuf/model/ServiceInterface.java           |   21 +
 4 files changed, 3459 insertions(+), 6 deletions(-)

diff --git a/.travis.yml b/.travis.yml
index e3821cb..18b9257 100644
--- a/.travis.yml
+++ b/.travis.yml
@@ -3,7 +3,6 @@ sudo: false # faster builds
 
 jdk:
   - openjdk11
-  - oraclejdk11
   - openjdk8
   - oraclejdk8
 
diff --git a/dubbo-serialization/dubbo-serialization-test/src/test/java/org/apache/dubbo/common/serialize/protobuf/support/ProtobufTypeBuilderTest.java b/dubbo-metadata-report/dubbo-metadata-definition-protobuf/src/test/java/org/apache/dubbo/metadata/definition/protobuf/ProtobufTypeBuilderTest.java
similarity index 90%
rename from dubbo-serialization/dubbo-serialization-test/src/test/java/org/apache/dubbo/common/serialize/protobuf/support/ProtobufTypeBuilderTest.java
rename to dubbo-metadata-report/dubbo-metadata-definition-protobuf/src/test/java/org/apache/dubbo/metadata/definition/protobuf/ProtobufTypeBuilderTest.java
index 0d59c08..3cdd79b 100644
--- a/dubbo-serialization/dubbo-serialization-test/src/test/java/org/apache/dubbo/common/serialize/protobuf/support/ProtobufTypeBuilderTest.java
+++ b/dubbo-metadata-report/dubbo-metadata-definition-protobuf/src/test/java/org/apache/dubbo/metadata/definition/protobuf/ProtobufTypeBuilderTest.java
@@ -14,13 +14,13 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.apache.dubbo.common.serialize.protobuf.support;
+package org.apache.dubbo.metadata.definition.protobuf;
 
-import org.apache.dubbo.common.serialize.protobuf.support.model.ServiceInterface;
 import org.apache.dubbo.metadata.definition.ServiceDefinitionBuilder;
 import org.apache.dubbo.metadata.definition.model.FullServiceDefinition;
 import org.apache.dubbo.metadata.definition.model.MethodDefinition;
 import org.apache.dubbo.metadata.definition.model.TypeDefinition;
+import org.apache.dubbo.metadata.definition.protobuf.model.ServiceInterface;
 
 import org.junit.jupiter.api.Test;
 
@@ -30,7 +30,9 @@ import static org.hamcrest.CoreMatchers.equalTo;
 import static org.hamcrest.CoreMatchers.is;
 import static org.hamcrest.MatcherAssert.assertThat;
 
-
+/**
+ * 2019-07-01
+ */
 public class ProtobufTypeBuilderTest {
     @Test
     public void testProtobufBuilder() {
@@ -62,8 +64,8 @@ public class ProtobufTypeBuilderTest {
         assertThat(propertiesMap.containsKey("msg"), is(true));
         assertThat(propertiesMap.get("msg").getType(), equalTo("com.google.protobuf.ByteString"));
         assertThat(propertiesMap.containsKey("phone"), is(true));
-        assertThat(propertiesMap.get("phone").getType(), equalTo("java.util.List<org.apache.dubbo.common.serialize.protobuf.support.model.GooglePB$PhoneNumber>"));
+        assertThat(propertiesMap.get("phone").getType(), equalTo("java.util.List<org.apache.dubbo.metadata.definition.protobuf.model.GooglePB$PhoneNumber>"));
         assertThat(propertiesMap.containsKey("doubleMap"), is(true));
-        assertThat(propertiesMap.get("doubleMap").getType(), equalTo("java.util.Map<java.lang.String, org.apache.dubbo.common.serialize.protobuf.support.model.GooglePB$PhoneNumber>"));
+        assertThat(propertiesMap.get("doubleMap").getType(), equalTo("java.util.Map<java.lang.String, org.apache.dubbo.metadata.definition.protobuf.model.GooglePB$PhoneNumber>"));
     }
 }
diff --git a/dubbo-metadata-report/dubbo-metadata-definition-protobuf/src/test/java/org/apache/dubbo/metadata/definition/protobuf/model/GooglePB.java b/dubbo-metadata-report/dubbo-metadata-definition-protobuf/src/test/java/org/apache/dubbo/metadata/definition/protobuf/model/GooglePB.java
new file mode 100644
index 0000000..d662339
--- /dev/null
+++ b/dubbo-metadata-report/dubbo-metadata-definition-protobuf/src/test/java/org/apache/dubbo/metadata/definition/protobuf/model/GooglePB.java
@@ -0,0 +1,3431 @@
+/*
+ * 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.
+ */
+// Generated by the protocol buffer compiler.  DO NOT EDIT!
+// source: GooglePB.proto
+
+package org.apache.dubbo.metadata.definition.protobuf.model;
+
+public final class GooglePB {
+  private GooglePB() {}
+  public static void registerAllExtensions(
+      com.google.protobuf.ExtensionRegistryLite registry) {
+  }
+
+  public static void registerAllExtensions(
+      com.google.protobuf.ExtensionRegistry registry) {
+    registerAllExtensions(
+        (com.google.protobuf.ExtensionRegistryLite) registry);
+  }
+  /**
+   * Protobuf enum {@code org.apache.dubbo.common.serialize.protobuf.model.PhoneType}
+   */
+  public enum PhoneType
+      implements com.google.protobuf.ProtocolMessageEnum {
+    /**
+     * <code>MOBILE = 0;</code>
+     */
+    MOBILE(0),
+    /**
+     * <code>HOME = 1;</code>
+     */
+    HOME(1),
+    /**
+     * <code>WORK = 2;</code>
+     */
+    WORK(2),
+    ;
+
+    /**
+     * <code>MOBILE = 0;</code>
+     */
+    public static final int MOBILE_VALUE = 0;
+    /**
+     * <code>HOME = 1;</code>
+     */
+    public static final int HOME_VALUE = 1;
+    /**
+     * <code>WORK = 2;</code>
+     */
+    public static final int WORK_VALUE = 2;
+
+
+    public final int getNumber() {
+      return value;
+    }
+
+    /**
+     * @deprecated Use {@link #forNumber(int)} instead.
+     */
+    @Deprecated
+    public static PhoneType valueOf(int value) {
+      return forNumber(value);
+    }
+
+    public static PhoneType forNumber(int value) {
+      switch (value) {
+        case 0: return MOBILE;
+        case 1: return HOME;
+        case 2: return WORK;
+        default: return null;
+      }
+    }
+
+    public static com.google.protobuf.Internal.EnumLiteMap<PhoneType>
+        internalGetValueMap() {
+      return internalValueMap;
+    }
+    private static final com.google.protobuf.Internal.EnumLiteMap<
+        PhoneType> internalValueMap =
+          new com.google.protobuf.Internal.EnumLiteMap<PhoneType>() {
+            public PhoneType findValueByNumber(int number) {
+              return PhoneType.forNumber(number);
+            }
+          };
+
+    public final com.google.protobuf.Descriptors.EnumValueDescriptor
+        getValueDescriptor() {
+      return getDescriptor().getValues().get(ordinal());
+    }
+    public final com.google.protobuf.Descriptors.EnumDescriptor
+        getDescriptorForType() {
+      return getDescriptor();
+    }
+    public static final com.google.protobuf.Descriptors.EnumDescriptor
+        getDescriptor() {
+      return GooglePB.getDescriptor().getEnumTypes().get(0);
+    }
+
+    private static final PhoneType[] VALUES = values();
+
+    public static PhoneType valueOf(
+        com.google.protobuf.Descriptors.EnumValueDescriptor desc) {
+      if (desc.getType() != getDescriptor()) {
+        throw new IllegalArgumentException(
+          "EnumValueDescriptor is not for this type.");
+      }
+      return VALUES[desc.getIndex()];
+    }
+
+    private final int value;
+
+    private PhoneType(int value) {
+      this.value = value;
+    }
+
+    // @@protoc_insertion_point(enum_scope:org.apache.dubbo.common.serialize.protobuf.model.PhoneType)
+  }
+
+  public interface PBRequestTypeOrBuilder extends
+      // @@protoc_insertion_point(interface_extends:org.apache.dubbo.common.serialize.protobuf.model.PBRequestType)
+      com.google.protobuf.MessageOrBuilder {
+
+    /**
+     * <code>optional double money = 1;</code>
+     */
+    boolean hasMoney();
+    /**
+     * <code>optional double money = 1;</code>
+     */
+    double getMoney();
+
+    /**
+     * <code>optional float cash = 2;</code>
+     */
+    boolean hasCash();
+    /**
+     * <code>optional float cash = 2;</code>
+     */
+    float getCash();
+
+    /**
+     * <code>optional int32 age = 3;</code>
+     */
+    boolean hasAge();
+    /**
+     * <code>optional int32 age = 3;</code>
+     */
+    int getAge();
+
+    /**
+     * <code>optional int64 num = 4;</code>
+     */
+    boolean hasNum();
+    /**
+     * <code>optional int64 num = 4;</code>
+     */
+    long getNum();
+
+    /**
+     * <code>optional bool sex = 5;</code>
+     */
+    boolean hasSex();
+    /**
+     * <code>optional bool sex = 5;</code>
+     */
+    boolean getSex();
+
+    /**
+     * <code>optional string name = 6;</code>
+     */
+    boolean hasName();
+    /**
+     * <code>optional string name = 6;</code>
+     */
+    String getName();
+    /**
+     * <code>optional string name = 6;</code>
+     */
+    com.google.protobuf.ByteString
+        getNameBytes();
+
+    /**
+     * <code>optional bytes msg = 7;</code>
+     */
+    boolean hasMsg();
+    /**
+     * <code>optional bytes msg = 7;</code>
+     */
+    com.google.protobuf.ByteString getMsg();
+
+    /**
+     * <code>repeated .org.apache.dubbo.common.serialize.protobuf.model.PhoneNumber phone = 8;</code>
+     */
+    java.util.List<PhoneNumber>
+        getPhoneList();
+    /**
+     * <code>repeated .org.apache.dubbo.common.serialize.protobuf.model.PhoneNumber phone = 8;</code>
+     */
+    GooglePB.PhoneNumber getPhone(int index);
+    /**
+     * <code>repeated .org.apache.dubbo.common.serialize.protobuf.model.PhoneNumber phone = 8;</code>
+     */
+    int getPhoneCount();
+    /**
+     * <code>repeated .org.apache.dubbo.common.serialize.protobuf.model.PhoneNumber phone = 8;</code>
+     */
+    java.util.List<? extends PhoneNumberOrBuilder>
+        getPhoneOrBuilderList();
+    /**
+     * <code>repeated .org.apache.dubbo.common.serialize.protobuf.model.PhoneNumber phone = 8;</code>
+     */
+    GooglePB.PhoneNumberOrBuilder getPhoneOrBuilder(
+            int index);
+
+    /**
+     * <code>map&lt;string, .org.apache.dubbo.common.serialize.protobuf.model.PhoneNumber&gt; doubleMap = 9;</code>
+     */
+    int getDoubleMapCount();
+    /**
+     * <code>map&lt;string, .org.apache.dubbo.common.serialize.protobuf.model.PhoneNumber&gt; doubleMap = 9;</code>
+     */
+    boolean containsDoubleMap(
+            String key);
+    /**
+     * Use {@link #getDoubleMapMap()} instead.
+     */
+    @Deprecated
+    java.util.Map<String, PhoneNumber>
+    getDoubleMap();
+    /**
+     * <code>map&lt;string, .org.apache.dubbo.common.serialize.protobuf.model.PhoneNumber&gt; doubleMap = 9;</code>
+     */
+    java.util.Map<String, PhoneNumber>
+    getDoubleMapMap();
+    /**
+     * <code>map&lt;string, .org.apache.dubbo.common.serialize.protobuf.model.PhoneNumber&gt; doubleMap = 9;</code>
+     */
+
+    GooglePB.PhoneNumber getDoubleMapOrDefault(
+            String key,
+            GooglePB.PhoneNumber defaultValue);
+    /**
+     * <code>map&lt;string, .org.apache.dubbo.common.serialize.protobuf.model.PhoneNumber&gt; doubleMap = 9;</code>
+     */
+
+    GooglePB.PhoneNumber getDoubleMapOrThrow(
+            String key);
+  }
+  /**
+   * Protobuf type {@code org.apache.dubbo.common.serialize.protobuf.model.PBRequestType}
+   */
+  public  static final class PBRequestType extends
+      com.google.protobuf.GeneratedMessageV3 implements
+      // @@protoc_insertion_point(message_implements:org.apache.dubbo.common.serialize.protobuf.model.PBRequestType)
+      PBRequestTypeOrBuilder {
+  private static final long serialVersionUID = 0L;
+    // Use PBRequestType.newBuilder() to construct.
+    private PBRequestType(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
+      super(builder);
+    }
+    private PBRequestType() {
+      money_ = 0D;
+      cash_ = 0F;
+      age_ = 0;
+      num_ = 0L;
+      sex_ = false;
+      name_ = "";
+      msg_ = com.google.protobuf.ByteString.EMPTY;
+      phone_ = java.util.Collections.emptyList();
+    }
+
+    @Override
+    public final com.google.protobuf.UnknownFieldSet
+    getUnknownFields() {
+      return this.unknownFields;
+    }
+    private PBRequestType(
+        com.google.protobuf.CodedInputStream input,
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      this();
+      int mutable_bitField0_ = 0;
+      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
+          com.google.protobuf.UnknownFieldSet.newBuilder();
+      try {
+        boolean done = false;
+        while (!done) {
+          int tag = input.readTag();
+          switch (tag) {
+            case 0:
+              done = true;
+              break;
+            default: {
+              if (!parseUnknownField(
+                  input, unknownFields, extensionRegistry, tag)) {
+                done = true;
+              }
+              break;
+            }
+            case 9: {
+              bitField0_ |= 0x00000001;
+              money_ = input.readDouble();
+              break;
+            }
+            case 21: {
+              bitField0_ |= 0x00000002;
+              cash_ = input.readFloat();
+              break;
+            }
+            case 24: {
+              bitField0_ |= 0x00000004;
+              age_ = input.readInt32();
+              break;
+            }
+            case 32: {
+              bitField0_ |= 0x00000008;
+              num_ = input.readInt64();
+              break;
+            }
+            case 40: {
+              bitField0_ |= 0x00000010;
+              sex_ = input.readBool();
+              break;
+            }
+            case 50: {
+              com.google.protobuf.ByteString bs = input.readBytes();
+              bitField0_ |= 0x00000020;
+              name_ = bs;
+              break;
+            }
+            case 58: {
+              bitField0_ |= 0x00000040;
+              msg_ = input.readBytes();
+              break;
+            }
+            case 66: {
+              if (!((mutable_bitField0_ & 0x00000080) == 0x00000080)) {
+                phone_ = new java.util.ArrayList<PhoneNumber>();
+                mutable_bitField0_ |= 0x00000080;
+              }
+              phone_.add(
+                  input.readMessage(GooglePB.PhoneNumber.PARSER, extensionRegistry));
+              break;
+            }
+            case 74: {
+              if (!((mutable_bitField0_ & 0x00000100) == 0x00000100)) {
+                doubleMap_ = com.google.protobuf.MapField.newMapField(
+                    DoubleMapDefaultEntryHolder.defaultEntry);
+                mutable_bitField0_ |= 0x00000100;
+              }
+              com.google.protobuf.MapEntry<String, PhoneNumber>
+              doubleMap__ = input.readMessage(
+                  DoubleMapDefaultEntryHolder.defaultEntry.getParserForType(), extensionRegistry);
+              doubleMap_.getMutableMap().put(
+                  doubleMap__.getKey(), doubleMap__.getValue());
+              break;
+            }
+          }
+        }
+      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
+        throw e.setUnfinishedMessage(this);
+      } catch (java.io.IOException e) {
+        throw new com.google.protobuf.InvalidProtocolBufferException(
+            e).setUnfinishedMessage(this);
+      } finally {
+        if (((mutable_bitField0_ & 0x00000080) == 0x00000080)) {
+          phone_ = java.util.Collections.unmodifiableList(phone_);
+        }
+        this.unknownFields = unknownFields.build();
+        makeExtensionsImmutable();
+      }
+    }
+    public static final com.google.protobuf.Descriptors.Descriptor
+        getDescriptor() {
+      return GooglePB.internal_static_org_apache_dubbo_common_serialize_protobuf_model_PBRequestType_descriptor;
+    }
+
+    @SuppressWarnings({"rawtypes"})
+    protected com.google.protobuf.MapField internalGetMapField(
+        int number) {
+      switch (number) {
+        case 9:
+          return internalGetDoubleMap();
+        default:
+          throw new RuntimeException(
+              "Invalid map field number: " + number);
+      }
+    }
+    protected FieldAccessorTable
+        internalGetFieldAccessorTable() {
+      return GooglePB.internal_static_org_apache_dubbo_common_serialize_protobuf_model_PBRequestType_fieldAccessorTable
+          .ensureFieldAccessorsInitialized(
+              GooglePB.PBRequestType.class, GooglePB.PBRequestType.Builder.class);
+    }
+
+    private int bitField0_;
+    public static final int MONEY_FIELD_NUMBER = 1;
+    private double money_;
+    /**
+     * <code>optional double money = 1;</code>
+     */
+    public boolean hasMoney() {
+      return ((bitField0_ & 0x00000001) == 0x00000001);
+    }
+    /**
+     * <code>optional double money = 1;</code>
+     */
+    public double getMoney() {
+      return money_;
+    }
+
+    public static final int CASH_FIELD_NUMBER = 2;
+    private float cash_;
+    /**
+     * <code>optional float cash = 2;</code>
+     */
+    public boolean hasCash() {
+      return ((bitField0_ & 0x00000002) == 0x00000002);
+    }
+    /**
+     * <code>optional float cash = 2;</code>
+     */
+    public float getCash() {
+      return cash_;
+    }
+
+    public static final int AGE_FIELD_NUMBER = 3;
+    private int age_;
+    /**
+     * <code>optional int32 age = 3;</code>
+     */
+    public boolean hasAge() {
+      return ((bitField0_ & 0x00000004) == 0x00000004);
+    }
+    /**
+     * <code>optional int32 age = 3;</code>
+     */
+    public int getAge() {
+      return age_;
+    }
+
+    public static final int NUM_FIELD_NUMBER = 4;
+    private long num_;
+    /**
+     * <code>optional int64 num = 4;</code>
+     */
+    public boolean hasNum() {
+      return ((bitField0_ & 0x00000008) == 0x00000008);
+    }
+    /**
+     * <code>optional int64 num = 4;</code>
+     */
+    public long getNum() {
+      return num_;
+    }
+
+    public static final int SEX_FIELD_NUMBER = 5;
+    private boolean sex_;
+    /**
+     * <code>optional bool sex = 5;</code>
+     */
+    public boolean hasSex() {
+      return ((bitField0_ & 0x00000010) == 0x00000010);
+    }
+    /**
+     * <code>optional bool sex = 5;</code>
+     */
+    public boolean getSex() {
+      return sex_;
+    }
+
+    public static final int NAME_FIELD_NUMBER = 6;
+    private volatile Object name_;
+    /**
+     * <code>optional string name = 6;</code>
+     */
+    public boolean hasName() {
+      return ((bitField0_ & 0x00000020) == 0x00000020);
+    }
+    /**
+     * <code>optional string name = 6;</code>
+     */
+    public String getName() {
+      Object ref = name_;
+      if (ref instanceof String) {
+        return (String) ref;
+      } else {
+        com.google.protobuf.ByteString bs =
+            (com.google.protobuf.ByteString) ref;
+        String s = bs.toStringUtf8();
+        if (bs.isValidUtf8()) {
+          name_ = s;
+        }
+        return s;
+      }
+    }
+    /**
+     * <code>optional string name = 6;</code>
+     */
+    public com.google.protobuf.ByteString
+        getNameBytes() {
+      Object ref = name_;
+      if (ref instanceof String) {
+        com.google.protobuf.ByteString b =
+            com.google.protobuf.ByteString.copyFromUtf8(
+                (String) ref);
+        name_ = b;
+        return b;
+      } else {
+        return (com.google.protobuf.ByteString) ref;
+      }
+    }
+
+    public static final int MSG_FIELD_NUMBER = 7;
+    private com.google.protobuf.ByteString msg_;
+    /**
+     * <code>optional bytes msg = 7;</code>
+     */
+    public boolean hasMsg() {
+      return ((bitField0_ & 0x00000040) == 0x00000040);
+    }
+    /**
+     * <code>optional bytes msg = 7;</code>
+     */
+    public com.google.protobuf.ByteString getMsg() {
+      return msg_;
+    }
+
+    public static final int PHONE_FIELD_NUMBER = 8;
+    private java.util.List<PhoneNumber> phone_;
+    /**
+     * <code>repeated .org.apache.dubbo.common.serialize.protobuf.model.PhoneNumber phone = 8;</code>
+     */
+    public java.util.List<PhoneNumber> getPhoneList() {
+      return phone_;
+    }
+    /**
+     * <code>repeated .org.apache.dubbo.common.serialize.protobuf.model.PhoneNumber phone = 8;</code>
+     */
+    public java.util.List<? extends PhoneNumberOrBuilder>
+        getPhoneOrBuilderList() {
+      return phone_;
+    }
+    /**
+     * <code>repeated .org.apache.dubbo.common.serialize.protobuf.model.PhoneNumber phone = 8;</code>
+     */
+    public int getPhoneCount() {
+      return phone_.size();
+    }
+    /**
+     * <code>repeated .org.apache.dubbo.common.serialize.protobuf.model.PhoneNumber phone = 8;</code>
+     */
+    public GooglePB.PhoneNumber getPhone(int index) {
+      return phone_.get(index);
+    }
+    /**
+     * <code>repeated .org.apache.dubbo.common.serialize.protobuf.model.PhoneNumber phone = 8;</code>
+     */
+    public GooglePB.PhoneNumberOrBuilder getPhoneOrBuilder(
+        int index) {
+      return phone_.get(index);
+    }
+
+    public static final int DOUBLEMAP_FIELD_NUMBER = 9;
+    private static final class DoubleMapDefaultEntryHolder {
+      static final com.google.protobuf.MapEntry<
+          String, PhoneNumber> defaultEntry =
+              com.google.protobuf.MapEntry
+              .<String, GooglePB.PhoneNumber>newDefaultInstance(
+                  GooglePB.internal_static_org_apache_dubbo_common_serialize_protobuf_model_PBRequestType_DoubleMapEntry_descriptor,
+                  com.google.protobuf.WireFormat.FieldType.STRING,
+                  "",
+                  com.google.protobuf.WireFormat.FieldType.MESSAGE,
+                  GooglePB.PhoneNumber.getDefaultInstance());
+    }
+    private com.google.protobuf.MapField<
+        String, PhoneNumber> doubleMap_;
+    private com.google.protobuf.MapField<String, PhoneNumber>
+    internalGetDoubleMap() {
+      if (doubleMap_ == null) {
+        return com.google.protobuf.MapField.emptyMapField(
+            DoubleMapDefaultEntryHolder.defaultEntry);
+      }
+      return doubleMap_;
+    }
+
+    public int getDoubleMapCount() {
+      return internalGetDoubleMap().getMap().size();
+    }
+    /**
+     * <code>map&lt;string, .org.apache.dubbo.common.serialize.protobuf.model.PhoneNumber&gt; doubleMap = 9;</code>
+     */
+
+    public boolean containsDoubleMap(
+        String key) {
+      if (key == null) { throw new NullPointerException(); }
+      return internalGetDoubleMap().getMap().containsKey(key);
+    }
+    /**
+     * Use {@link #getDoubleMapMap()} instead.
+     */
+    @Deprecated
+    public java.util.Map<String, PhoneNumber> getDoubleMap() {
+      return getDoubleMapMap();
+    }
+    /**
+     * <code>map&lt;string, .org.apache.dubbo.common.serialize.protobuf.model.PhoneNumber&gt; doubleMap = 9;</code>
+     */
+
+    public java.util.Map<String, PhoneNumber> getDoubleMapMap() {
+      return internalGetDoubleMap().getMap();
+    }
+    /**
+     * <code>map&lt;string, .org.apache.dubbo.common.serialize.protobuf.model.PhoneNumber&gt; doubleMap = 9;</code>
+     */
+
+    public GooglePB.PhoneNumber getDoubleMapOrDefault(
+        String key,
+        GooglePB.PhoneNumber defaultValue) {
+      if (key == null) { throw new NullPointerException(); }
+      java.util.Map<String, PhoneNumber> map =
+          internalGetDoubleMap().getMap();
+      return map.containsKey(key) ? map.get(key) : defaultValue;
+    }
+    /**
+     * <code>map&lt;string, .org.apache.dubbo.common.serialize.protobuf.model.PhoneNumber&gt; doubleMap = 9;</code>
+     */
+
+    public GooglePB.PhoneNumber getDoubleMapOrThrow(
+        String key) {
+      if (key == null) { throw new NullPointerException(); }
+      java.util.Map<String, PhoneNumber> map =
+          internalGetDoubleMap().getMap();
+      if (!map.containsKey(key)) {
+        throw new IllegalArgumentException();
+      }
+      return map.get(key);
+    }
+
+    private byte memoizedIsInitialized = -1;
+    public final boolean isInitialized() {
+      byte isInitialized = memoizedIsInitialized;
+      if (isInitialized == 1) return true;
+      if (isInitialized == 0) return false;
+
+      for (int i = 0; i < getPhoneCount(); i++) {
+        if (!getPhone(i).isInitialized()) {
+          memoizedIsInitialized = 0;
+          return false;
+        }
+      }
+      for (GooglePB.PhoneNumber item : getDoubleMapMap().values()) {
+        if (!item.isInitialized()) {
+          memoizedIsInitialized = 0;
+          return false;
+        }
+      }
+      memoizedIsInitialized = 1;
+      return true;
+    }
+
+    public void writeTo(com.google.protobuf.CodedOutputStream output)
+                        throws java.io.IOException {
+      if (((bitField0_ & 0x00000001) == 0x00000001)) {
+        output.writeDouble(1, money_);
+      }
+      if (((bitField0_ & 0x00000002) == 0x00000002)) {
+        output.writeFloat(2, cash_);
+      }
+      if (((bitField0_ & 0x00000004) == 0x00000004)) {
+        output.writeInt32(3, age_);
+      }
+      if (((bitField0_ & 0x00000008) == 0x00000008)) {
+        output.writeInt64(4, num_);
+      }
+      if (((bitField0_ & 0x00000010) == 0x00000010)) {
+        output.writeBool(5, sex_);
+      }
+      if (((bitField0_ & 0x00000020) == 0x00000020)) {
+        com.google.protobuf.GeneratedMessageV3.writeString(output, 6, name_);
+      }
+      if (((bitField0_ & 0x00000040) == 0x00000040)) {
+        output.writeBytes(7, msg_);
+      }
+      for (int i = 0; i < phone_.size(); i++) {
+        output.writeMessage(8, phone_.get(i));
+      }
+      com.google.protobuf.GeneratedMessageV3
+        .serializeStringMapTo(
+          output,
+          internalGetDoubleMap(),
+          DoubleMapDefaultEntryHolder.defaultEntry,
+          9);
+      unknownFields.writeTo(output);
+    }
+
+    public int getSerializedSize() {
+      int size = memoizedSize;
+      if (size != -1) return size;
+
+      size = 0;
+      if (((bitField0_ & 0x00000001) == 0x00000001)) {
+        size += com.google.protobuf.CodedOutputStream
+          .computeDoubleSize(1, money_);
+      }
+      if (((bitField0_ & 0x00000002) == 0x00000002)) {
+        size += com.google.protobuf.CodedOutputStream
+          .computeFloatSize(2, cash_);
+      }
+      if (((bitField0_ & 0x00000004) == 0x00000004)) {
+        size += com.google.protobuf.CodedOutputStream
+          .computeInt32Size(3, age_);
+      }
+      if (((bitField0_ & 0x00000008) == 0x00000008)) {
+        size += com.google.protobuf.CodedOutputStream
+          .computeInt64Size(4, num_);
+      }
+      if (((bitField0_ & 0x00000010) == 0x00000010)) {
+        size += com.google.protobuf.CodedOutputStream
+          .computeBoolSize(5, sex_);
+      }
+      if (((bitField0_ & 0x00000020) == 0x00000020)) {
+        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(6, name_);
+      }
+      if (((bitField0_ & 0x00000040) == 0x00000040)) {
+        size += com.google.protobuf.CodedOutputStream
+          .computeBytesSize(7, msg_);
+      }
+      for (int i = 0; i < phone_.size(); i++) {
+        size += com.google.protobuf.CodedOutputStream
+          .computeMessageSize(8, phone_.get(i));
+      }
+      for (java.util.Map.Entry<String, PhoneNumber> entry
+           : internalGetDoubleMap().getMap().entrySet()) {
+        com.google.protobuf.MapEntry<String, PhoneNumber>
+        doubleMap__ = DoubleMapDefaultEntryHolder.defaultEntry.newBuilderForType()
+            .setKey(entry.getKey())
+            .setValue(entry.getValue())
+            .build();
+        size += com.google.protobuf.CodedOutputStream
+            .computeMessageSize(9, doubleMap__);
+      }
+      size += unknownFields.getSerializedSize();
+      memoizedSize = size;
+      return size;
+    }
+
+    @Override
+    public boolean equals(final Object obj) {
+      if (obj == this) {
+       return true;
+      }
+      if (!(obj instanceof GooglePB.PBRequestType)) {
+        return super.equals(obj);
+      }
+      GooglePB.PBRequestType other = (GooglePB.PBRequestType) obj;
+
+      boolean result = true;
+      result = result && (hasMoney() == other.hasMoney());
+      if (hasMoney()) {
+        result = result && (
+            Double.doubleToLongBits(getMoney())
+            == Double.doubleToLongBits(
+                other.getMoney()));
+      }
+      result = result && (hasCash() == other.hasCash());
+      if (hasCash()) {
+        result = result && (
+            Float.floatToIntBits(getCash())
+            == Float.floatToIntBits(
+                other.getCash()));
+      }
+      result = result && (hasAge() == other.hasAge());
+      if (hasAge()) {
+        result = result && (getAge()
+            == other.getAge());
+      }
+      result = result && (hasNum() == other.hasNum());
+      if (hasNum()) {
+        result = result && (getNum()
+            == other.getNum());
+      }
+      result = result && (hasSex() == other.hasSex());
+      if (hasSex()) {
+        result = result && (getSex()
+            == other.getSex());
+      }
+      result = result && (hasName() == other.hasName());
+      if (hasName()) {
+        result = result && getName()
+            .equals(other.getName());
+      }
+      result = result && (hasMsg() == other.hasMsg());
+      if (hasMsg()) {
+        result = result && getMsg()
+            .equals(other.getMsg());
+      }
+      result = result && getPhoneList()
+          .equals(other.getPhoneList());
+      result = result && internalGetDoubleMap().equals(
+          other.internalGetDoubleMap());
+      result = result && unknownFields.equals(other.unknownFields);
+      return result;
+    }
+
+    @Override
+    public int hashCode() {
+      if (memoizedHashCode != 0) {
+        return memoizedHashCode;
+      }
+      int hash = 41;
+      hash = (19 * hash) + getDescriptor().hashCode();
+      if (hasMoney()) {
+        hash = (37 * hash) + MONEY_FIELD_NUMBER;
+        hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
+            Double.doubleToLongBits(getMoney()));
+      }
+      if (hasCash()) {
+        hash = (37 * hash) + CASH_FIELD_NUMBER;
+        hash = (53 * hash) + Float.floatToIntBits(
+            getCash());
+      }
+      if (hasAge()) {
+        hash = (37 * hash) + AGE_FIELD_NUMBER;
+        hash = (53 * hash) + getAge();
+      }
+      if (hasNum()) {
+        hash = (37 * hash) + NUM_FIELD_NUMBER;
+        hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
+            getNum());
+      }
+      if (hasSex()) {
+        hash = (37 * hash) + SEX_FIELD_NUMBER;
+        hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
+            getSex());
+      }
+      if (hasName()) {
+        hash = (37 * hash) + NAME_FIELD_NUMBER;
+        hash = (53 * hash) + getName().hashCode();
+      }
+      if (hasMsg()) {
+        hash = (37 * hash) + MSG_FIELD_NUMBER;
+        hash = (53 * hash) + getMsg().hashCode();
+      }
+      if (getPhoneCount() > 0) {
+        hash = (37 * hash) + PHONE_FIELD_NUMBER;
+        hash = (53 * hash) + getPhoneList().hashCode();
+      }
+      if (!internalGetDoubleMap().getMap().isEmpty()) {
+        hash = (37 * hash) + DOUBLEMAP_FIELD_NUMBER;
+        hash = (53 * hash) + internalGetDoubleMap().hashCode();
+      }
+      hash = (29 * hash) + unknownFields.hashCode();
+      memoizedHashCode = hash;
+      return hash;
+    }
+
+    public static GooglePB.PBRequestType parseFrom(
+        java.nio.ByteBuffer data)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      return PARSER.parseFrom(data);
+    }
+    public static GooglePB.PBRequestType parseFrom(
+        java.nio.ByteBuffer data,
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      return PARSER.parseFrom(data, extensionRegistry);
+    }
+    public static GooglePB.PBRequestType parseFrom(
+        com.google.protobuf.ByteString data)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      return PARSER.parseFrom(data);
+    }
+    public static GooglePB.PBRequestType parseFrom(
+        com.google.protobuf.ByteString data,
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      return PARSER.parseFrom(data, extensionRegistry);
+    }
+    public static GooglePB.PBRequestType parseFrom(byte[] data)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      return PARSER.parseFrom(data);
+    }
+    public static GooglePB.PBRequestType parseFrom(
+        byte[] data,
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      return PARSER.parseFrom(data, extensionRegistry);
+    }
+    public static GooglePB.PBRequestType parseFrom(java.io.InputStream input)
+        throws java.io.IOException {
+      return com.google.protobuf.GeneratedMessageV3
+          .parseWithIOException(PARSER, input);
+    }
+    public static GooglePB.PBRequestType parseFrom(
+        java.io.InputStream input,
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws java.io.IOException {
+      return com.google.protobuf.GeneratedMessageV3
+          .parseWithIOException(PARSER, input, extensionRegistry);
+    }
+    public static GooglePB.PBRequestType parseDelimitedFrom(java.io.InputStream input)
+        throws java.io.IOException {
+      return com.google.protobuf.GeneratedMessageV3
+          .parseDelimitedWithIOException(PARSER, input);
+    }
+    public static GooglePB.PBRequestType parseDelimitedFrom(
+        java.io.InputStream input,
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws java.io.IOException {
+      return com.google.protobuf.GeneratedMessageV3
+          .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
+    }
+    public static GooglePB.PBRequestType parseFrom(
+        com.google.protobuf.CodedInputStream input)
+        throws java.io.IOException {
+      return com.google.protobuf.GeneratedMessageV3
+          .parseWithIOException(PARSER, input);
+    }
+    public static GooglePB.PBRequestType parseFrom(
+        com.google.protobuf.CodedInputStream input,
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws java.io.IOException {
+      return com.google.protobuf.GeneratedMessageV3
+          .parseWithIOException(PARSER, input, extensionRegistry);
+    }
+
+    public Builder newBuilderForType() { return newBuilder(); }
+    public static Builder newBuilder() {
+      return DEFAULT_INSTANCE.toBuilder();
+    }
+    public static Builder newBuilder(GooglePB.PBRequestType prototype) {
+      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
+    }
+    public Builder toBuilder() {
+      return this == DEFAULT_INSTANCE
+          ? new Builder() : new Builder().mergeFrom(this);
+    }
+
+    @Override
+    protected Builder newBuilderForType(
+        BuilderParent parent) {
+      Builder builder = new Builder(parent);
+      return builder;
+    }
+    /**
+     * Protobuf type {@code org.apache.dubbo.common.serialize.protobuf.model.PBRequestType}
+     */
+    public static final class Builder extends
+        com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
+        // @@protoc_insertion_point(builder_implements:org.apache.dubbo.common.serialize.protobuf.model.PBRequestType)
+        GooglePB.PBRequestTypeOrBuilder {
+      public static final com.google.protobuf.Descriptors.Descriptor
+          getDescriptor() {
+        return GooglePB.internal_static_org_apache_dubbo_common_serialize_protobuf_model_PBRequestType_descriptor;
+      }
+
+      @SuppressWarnings({"rawtypes"})
+      protected com.google.protobuf.MapField internalGetMapField(
+          int number) {
+        switch (number) {
+          case 9:
+            return internalGetDoubleMap();
+          default:
+            throw new RuntimeException(
+                "Invalid map field number: " + number);
+        }
+      }
+      @SuppressWarnings({"rawtypes"})
+      protected com.google.protobuf.MapField internalGetMutableMapField(
+          int number) {
+        switch (number) {
+          case 9:
+            return internalGetMutableDoubleMap();
+          default:
+            throw new RuntimeException(
+                "Invalid map field number: " + number);
+        }
+      }
+      protected FieldAccessorTable
+          internalGetFieldAccessorTable() {
+        return GooglePB.internal_static_org_apache_dubbo_common_serialize_protobuf_model_PBRequestType_fieldAccessorTable
+            .ensureFieldAccessorsInitialized(
+                GooglePB.PBRequestType.class, GooglePB.PBRequestType.Builder.class);
+      }
+
+      // Construct using org.apache.dubbo.common.serialize.protobuf.model.GooglePB.PBRequestType.newBuilder()
+      private Builder() {
+        maybeForceBuilderInitialization();
+      }
+
+      private Builder(
+          BuilderParent parent) {
+        super(parent);
+        maybeForceBuilderInitialization();
+      }
+      private void maybeForceBuilderInitialization() {
+        if (com.google.protobuf.GeneratedMessageV3
+                .alwaysUseFieldBuilders) {
+          getPhoneFieldBuilder();
+        }
+      }
+      public Builder clear() {
+        super.clear();
+        money_ = 0D;
+        bitField0_ = (bitField0_ & ~0x00000001);
+        cash_ = 0F;
+        bitField0_ = (bitField0_ & ~0x00000002);
+        age_ = 0;
+        bitField0_ = (bitField0_ & ~0x00000004);
+        num_ = 0L;
+        bitField0_ = (bitField0_ & ~0x00000008);
+        sex_ = false;
+        bitField0_ = (bitField0_ & ~0x00000010);
+        name_ = "";
+        bitField0_ = (bitField0_ & ~0x00000020);
+        msg_ = com.google.protobuf.ByteString.EMPTY;
+        bitField0_ = (bitField0_ & ~0x00000040);
+        if (phoneBuilder_ == null) {
+          phone_ = java.util.Collections.emptyList();
+          bitField0_ = (bitField0_ & ~0x00000080);
+        } else {
+          phoneBuilder_.clear();
+        }
+        internalGetMutableDoubleMap().clear();
+        return this;
+      }
+
+      public com.google.protobuf.Descriptors.Descriptor
+          getDescriptorForType() {
+        return GooglePB.internal_static_org_apache_dubbo_common_serialize_protobuf_model_PBRequestType_descriptor;
+      }
+
+      public GooglePB.PBRequestType getDefaultInstanceForType() {
+        return GooglePB.PBRequestType.getDefaultInstance();
+      }
+
+      public GooglePB.PBRequestType build() {
+        GooglePB.PBRequestType result = buildPartial();
+        if (!result.isInitialized()) {
+          throw newUninitializedMessageException(result);
+        }
+        return result;
+      }
+
+      public GooglePB.PBRequestType buildPartial() {
+        GooglePB.PBRequestType result = new GooglePB.PBRequestType(this);
+        int from_bitField0_ = bitField0_;
+        int to_bitField0_ = 0;
+        if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
+          to_bitField0_ |= 0x00000001;
+        }
+        result.money_ = money_;
+        if (((from_bitField0_ & 0x00000002) == 0x00000002)) {
+          to_bitField0_ |= 0x00000002;
+        }
+        result.cash_ = cash_;
+        if (((from_bitField0_ & 0x00000004) == 0x00000004)) {
+          to_bitField0_ |= 0x00000004;
+        }
+        result.age_ = age_;
+        if (((from_bitField0_ & 0x00000008) == 0x00000008)) {
+          to_bitField0_ |= 0x00000008;
+        }
+        result.num_ = num_;
+        if (((from_bitField0_ & 0x00000010) == 0x00000010)) {
+          to_bitField0_ |= 0x00000010;
+        }
+        result.sex_ = sex_;
+        if (((from_bitField0_ & 0x00000020) == 0x00000020)) {
+          to_bitField0_ |= 0x00000020;
+        }
+        result.name_ = name_;
+        if (((from_bitField0_ & 0x00000040) == 0x00000040)) {
+          to_bitField0_ |= 0x00000040;
+        }
+        result.msg_ = msg_;
+        if (phoneBuilder_ == null) {
+          if (((bitField0_ & 0x00000080) == 0x00000080)) {
+            phone_ = java.util.Collections.unmodifiableList(phone_);
+            bitField0_ = (bitField0_ & ~0x00000080);
+          }
+          result.phone_ = phone_;
+        } else {
+          result.phone_ = phoneBuilder_.build();
+        }
+        result.doubleMap_ = internalGetDoubleMap();
+        result.doubleMap_.makeImmutable();
+        result.bitField0_ = to_bitField0_;
+        onBuilt();
+        return result;
+      }
+
+      public Builder clone() {
+        return (Builder) super.clone();
+      }
+      public Builder setField(
+          com.google.protobuf.Descriptors.FieldDescriptor field,
+          Object value) {
+        return (Builder) super.setField(field, value);
+      }
+      public Builder clearField(
+          com.google.protobuf.Descriptors.FieldDescriptor field) {
+        return (Builder) super.clearField(field);
+      }
+      public Builder clearOneof(
+          com.google.protobuf.Descriptors.OneofDescriptor oneof) {
+        return (Builder) super.clearOneof(oneof);
+      }
+      public Builder setRepeatedField(
+          com.google.protobuf.Descriptors.FieldDescriptor field,
+          int index, Object value) {
+        return (Builder) super.setRepeatedField(field, index, value);
+      }
+      public Builder addRepeatedField(
+          com.google.protobuf.Descriptors.FieldDescriptor field,
+          Object value) {
+        return (Builder) super.addRepeatedField(field, value);
+      }
+      public Builder mergeFrom(com.google.protobuf.Message other) {
+        if (other instanceof GooglePB.PBRequestType) {
+          return mergeFrom((GooglePB.PBRequestType)other);
+        } else {
+          super.mergeFrom(other);
+          return this;
+        }
+      }
+
+      public Builder mergeFrom(GooglePB.PBRequestType other) {
+        if (other == GooglePB.PBRequestType.getDefaultInstance()) return this;
+        if (other.hasMoney()) {
+          setMoney(other.getMoney());
+        }
+        if (other.hasCash()) {
+          setCash(other.getCash());
+        }
+        if (other.hasAge()) {
+          setAge(other.getAge());
+        }
+        if (other.hasNum()) {
+          setNum(other.getNum());
+        }
+        if (other.hasSex()) {
+          setSex(other.getSex());
+        }
+        if (other.hasName()) {
+          bitField0_ |= 0x00000020;
+          name_ = other.name_;
+          onChanged();
+        }
+        if (other.hasMsg()) {
+          setMsg(other.getMsg());
+        }
+        if (phoneBuilder_ == null) {
+          if (!other.phone_.isEmpty()) {
+            if (phone_.isEmpty()) {
+              phone_ = other.phone_;
+              bitField0_ = (bitField0_ & ~0x00000080);
+            } else {
+              ensurePhoneIsMutable();
+              phone_.addAll(other.phone_);
+            }
+            onChanged();
+          }
+        } else {
+          if (!other.phone_.isEmpty()) {
+            if (phoneBuilder_.isEmpty()) {
+              phoneBuilder_.dispose();
+              phoneBuilder_ = null;
+              phone_ = other.phone_;
+              bitField0_ = (bitField0_ & ~0x00000080);
+              phoneBuilder_ =
+                com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders ?
+                   getPhoneFieldBuilder() : null;
+            } else {
+              phoneBuilder_.addAllMessages(other.phone_);
+            }
+          }
+        }
+        internalGetMutableDoubleMap().mergeFrom(
+            other.internalGetDoubleMap());
+        this.mergeUnknownFields(other.unknownFields);
+        onChanged();
+        return this;
+      }
+
+      public final boolean isInitialized() {
+        for (int i = 0; i < getPhoneCount(); i++) {
+          if (!getPhone(i).isInitialized()) {
+            return false;
+          }
+        }
+        for (GooglePB.PhoneNumber item : getDoubleMapMap().values()) {
+          if (!item.isInitialized()) {
+            return false;
+          }
+        }
+        return true;
+      }
+
+      public Builder mergeFrom(
+          com.google.protobuf.CodedInputStream input,
+          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+          throws java.io.IOException {
+        GooglePB.PBRequestType parsedMessage = null;
+        try {
+          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
+        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
+          parsedMessage = (GooglePB.PBRequestType) e.getUnfinishedMessage();
+          throw e.unwrapIOException();
+        } finally {
+          if (parsedMessage != null) {
+            mergeFrom(parsedMessage);
+          }
+        }
+        return this;
+      }
+      private int bitField0_;
+
+      private double money_ ;
+      /**
+       * <code>optional double money = 1;</code>
+       */
+      public boolean hasMoney() {
+        return ((bitField0_ & 0x00000001) == 0x00000001);
+      }
+      /**
+       * <code>optional double money = 1;</code>
+       */
+      public double getMoney() {
+        return money_;
+      }
+      /**
+       * <code>optional double money = 1;</code>
+       */
+      public Builder setMoney(double value) {
+        bitField0_ |= 0x00000001;
+        money_ = value;
+        onChanged();
+        return this;
+      }
+      /**
+       * <code>optional double money = 1;</code>
+       */
+      public Builder clearMoney() {
+        bitField0_ = (bitField0_ & ~0x00000001);
+        money_ = 0D;
+        onChanged();
+        return this;
+      }
+
+      private float cash_ ;
+      /**
+       * <code>optional float cash = 2;</code>
+       */
+      public boolean hasCash() {
+        return ((bitField0_ & 0x00000002) == 0x00000002);
+      }
+      /**
+       * <code>optional float cash = 2;</code>
+       */
+      public float getCash() {
+        return cash_;
+      }
+      /**
+       * <code>optional float cash = 2;</code>
+       */
+      public Builder setCash(float value) {
+        bitField0_ |= 0x00000002;
+        cash_ = value;
+        onChanged();
+        return this;
+      }
+      /**
+       * <code>optional float cash = 2;</code>
+       */
+      public Builder clearCash() {
+        bitField0_ = (bitField0_ & ~0x00000002);
+        cash_ = 0F;
+        onChanged();
+        return this;
+      }
+
+      private int age_ ;
+      /**
+       * <code>optional int32 age = 3;</code>
+       */
+      public boolean hasAge() {
+        return ((bitField0_ & 0x00000004) == 0x00000004);
+      }
+      /**
+       * <code>optional int32 age = 3;</code>
+       */
+      public int getAge() {
+        return age_;
+      }
+      /**
+       * <code>optional int32 age = 3;</code>
+       */
+      public Builder setAge(int value) {
+        bitField0_ |= 0x00000004;
+        age_ = value;
+        onChanged();
+        return this;
+      }
+      /**
+       * <code>optional int32 age = 3;</code>
+       */
+      public Builder clearAge() {
+        bitField0_ = (bitField0_ & ~0x00000004);
+        age_ = 0;
+        onChanged();
+        return this;
+      }
+
+      private long num_ ;
+      /**
+       * <code>optional int64 num = 4;</code>
+       */
+      public boolean hasNum() {
+        return ((bitField0_ & 0x00000008) == 0x00000008);
+      }
+      /**
+       * <code>optional int64 num = 4;</code>
+       */
+      public long getNum() {
+        return num_;
+      }
+      /**
+       * <code>optional int64 num = 4;</code>
+       */
+      public Builder setNum(long value) {
+        bitField0_ |= 0x00000008;
+        num_ = value;
+        onChanged();
+        return this;
+      }
+      /**
+       * <code>optional int64 num = 4;</code>
+       */
+      public Builder clearNum() {
+        bitField0_ = (bitField0_ & ~0x00000008);
+        num_ = 0L;
+        onChanged();
+        return this;
+      }
+
+      private boolean sex_ ;
+      /**
+       * <code>optional bool sex = 5;</code>
+       */
+      public boolean hasSex() {
+        return ((bitField0_ & 0x00000010) == 0x00000010);
+      }
+      /**
+       * <code>optional bool sex = 5;</code>
+       */
+      public boolean getSex() {
+        return sex_;
+      }
+      /**
+       * <code>optional bool sex = 5;</code>
+       */
+      public Builder setSex(boolean value) {
+        bitField0_ |= 0x00000010;
+        sex_ = value;
+        onChanged();
+        return this;
+      }
+      /**
+       * <code>optional bool sex = 5;</code>
+       */
+      public Builder clearSex() {
+        bitField0_ = (bitField0_ & ~0x00000010);
+        sex_ = false;
+        onChanged();
+        return this;
+      }
+
+      private Object name_ = "";
+      /**
+       * <code>optional string name = 6;</code>
+       */
+      public boolean hasName() {
+        return ((bitField0_ & 0x00000020) == 0x00000020);
+      }
+      /**
+       * <code>optional string name = 6;</code>
+       */
+      public String getName() {
+        Object ref = name_;
+        if (!(ref instanceof String)) {
+          com.google.protobuf.ByteString bs =
+              (com.google.protobuf.ByteString) ref;
+          String s = bs.toStringUtf8();
+          if (bs.isValidUtf8()) {
+            name_ = s;
+          }
+          return s;
+        } else {
+          return (String) ref;
+        }
+      }
+      /**
+       * <code>optional string name = 6;</code>
+       */
+      public com.google.protobuf.ByteString
+          getNameBytes() {
+        Object ref = name_;
+        if (ref instanceof String) {
+          com.google.protobuf.ByteString b =
+              com.google.protobuf.ByteString.copyFromUtf8(
+                  (String) ref);
+          name_ = b;
+          return b;
+        } else {
+          return (com.google.protobuf.ByteString) ref;
+        }
+      }
+      /**
+       * <code>optional string name = 6;</code>
+       */
+      public Builder setName(
+          String value) {
+        if (value == null) {
+    throw new NullPointerException();
+  }
+  bitField0_ |= 0x00000020;
+        name_ = value;
+        onChanged();
+        return this;
+      }
+      /**
+       * <code>optional string name = 6;</code>
+       */
+      public Builder clearName() {
+        bitField0_ = (bitField0_ & ~0x00000020);
+        name_ = getDefaultInstance().getName();
+        onChanged();
+        return this;
+      }
+      /**
+       * <code>optional string name = 6;</code>
+       */
+      public Builder setNameBytes(
+          com.google.protobuf.ByteString value) {
+        if (value == null) {
+    throw new NullPointerException();
+  }
+  bitField0_ |= 0x00000020;
+        name_ = value;
+        onChanged();
+        return this;
+      }
+
+      private com.google.protobuf.ByteString msg_ = com.google.protobuf.ByteString.EMPTY;
+      /**
+       * <code>optional bytes msg = 7;</code>
+       */
+      public boolean hasMsg() {
+        return ((bitField0_ & 0x00000040) == 0x00000040);
+      }
+      /**
+       * <code>optional bytes msg = 7;</code>
+       */
+      public com.google.protobuf.ByteString getMsg() {
+        return msg_;
+      }
+      /**
+       * <code>optional bytes msg = 7;</code>
+       */
+      public Builder setMsg(com.google.protobuf.ByteString value) {
+        if (value == null) {
+    throw new NullPointerException();
+  }
+  bitField0_ |= 0x00000040;
+        msg_ = value;
+        onChanged();
+        return this;
+      }
+      /**
+       * <code>optional bytes msg = 7;</code>
+       */
+      public Builder clearMsg() {
+        bitField0_ = (bitField0_ & ~0x00000040);
+        msg_ = getDefaultInstance().getMsg();
+        onChanged();
+        return this;
+      }
+
+      private java.util.List<PhoneNumber> phone_ =
+        java.util.Collections.emptyList();
+      private void ensurePhoneIsMutable() {
+        if (!((bitField0_ & 0x00000080) == 0x00000080)) {
+          phone_ = new java.util.ArrayList<PhoneNumber>(phone_);
+          bitField0_ |= 0x00000080;
+         }
+      }
+
+      private com.google.protobuf.RepeatedFieldBuilderV3<
+          PhoneNumber, PhoneNumber.Builder, PhoneNumberOrBuilder> phoneBuilder_;
+
+      /**
+       * <code>repeated .org.apache.dubbo.common.serialize.protobuf.model.PhoneNumber phone = 8;</code>
+       */
+      public java.util.List<PhoneNumber> getPhoneList() {
+        if (phoneBuilder_ == null) {
+          return java.util.Collections.unmodifiableList(phone_);
+        } else {
+          return phoneBuilder_.getMessageList();
+        }
+      }
+      /**
+       * <code>repeated .org.apache.dubbo.common.serialize.protobuf.model.PhoneNumber phone = 8;</code>
+       */
+      public int getPhoneCount() {
+        if (phoneBuilder_ == null) {
+          return phone_.size();
+        } else {
+          return phoneBuilder_.getCount();
+        }
+      }
+      /**
+       * <code>repeated .org.apache.dubbo.common.serialize.protobuf.model.PhoneNumber phone = 8;</code>
+       */
+      public GooglePB.PhoneNumber getPhone(int index) {
+        if (phoneBuilder_ == null) {
+          return phone_.get(index);
+        } else {
+          return phoneBuilder_.getMessage(index);
+        }
+      }
+      /**
+       * <code>repeated .org.apache.dubbo.common.serialize.protobuf.model.PhoneNumber phone = 8;</code>
+       */
+      public Builder setPhone(
+          int index, GooglePB.PhoneNumber value) {
+        if (phoneBuilder_ == null) {
+          if (value == null) {
+            throw new NullPointerException();
+          }
+          ensurePhoneIsMutable();
+          phone_.set(index, value);
+          onChanged();
+        } else {
+          phoneBuilder_.setMessage(index, value);
+        }
+        return this;
+      }
+      /**
+       * <code>repeated .org.apache.dubbo.common.serialize.protobuf.model.PhoneNumber phone = 8;</code>
+       */
+      public Builder setPhone(
+          int index, GooglePB.PhoneNumber.Builder builderForValue) {
+        if (phoneBuilder_ == null) {
+          ensurePhoneIsMutable();
+          phone_.set(index, builderForValue.build());
+          onChanged();
+        } else {
+          phoneBuilder_.setMessage(index, builderForValue.build());
+        }
+        return this;
+      }
+      /**
+       * <code>repeated .org.apache.dubbo.common.serialize.protobuf.model.PhoneNumber phone = 8;</code>
+       */
+      public Builder addPhone(GooglePB.PhoneNumber value) {
+        if (phoneBuilder_ == null) {
+          if (value == null) {
+            throw new NullPointerException();
+          }
+          ensurePhoneIsMutable();
+          phone_.add(value);
+          onChanged();
+        } else {
+          phoneBuilder_.addMessage(value);
+        }
+        return this;
+      }
+      /**
+       * <code>repeated .org.apache.dubbo.common.serialize.protobuf.model.PhoneNumber phone = 8;</code>
+       */
+      public Builder addPhone(
+          int index, GooglePB.PhoneNumber value) {
+        if (phoneBuilder_ == null) {
+          if (value == null) {
+            throw new NullPointerException();
+          }
+          ensurePhoneIsMutable();
+          phone_.add(index, value);
+          onChanged();
+        } else {
+          phoneBuilder_.addMessage(index, value);
+        }
+        return this;
+      }
+      /**
+       * <code>repeated .org.apache.dubbo.common.serialize.protobuf.model.PhoneNumber phone = 8;</code>
+       */
+      public Builder addPhone(
+          GooglePB.PhoneNumber.Builder builderForValue) {
+        if (phoneBuilder_ == null) {
+          ensurePhoneIsMutable();
+          phone_.add(builderForValue.build());
+          onChanged();
+        } else {
+          phoneBuilder_.addMessage(builderForValue.build());
+        }
+        return this;
+      }
+      /**
+       * <code>repeated .org.apache.dubbo.common.serialize.protobuf.model.PhoneNumber phone = 8;</code>
+       */
+      public Builder addPhone(
+          int index, GooglePB.PhoneNumber.Builder builderForValue) {
+        if (phoneBuilder_ == null) {
+          ensurePhoneIsMutable();
+          phone_.add(index, builderForValue.build());
+          onChanged();
+        } else {
+          phoneBuilder_.addMessage(index, builderForValue.build());
+        }
+        return this;
+      }
+      /**
+       * <code>repeated .org.apache.dubbo.common.serialize.protobuf.model.PhoneNumber phone = 8;</code>
+       */
+      public Builder addAllPhone(
+          Iterable<? extends PhoneNumber> values) {
+        if (phoneBuilder_ == null) {
+          ensurePhoneIsMutable();
+          com.google.protobuf.AbstractMessageLite.Builder.addAll(
+              values, phone_);
+          onChanged();
+        } else {
+          phoneBuilder_.addAllMessages(values);
+        }
+        return this;
+      }
+      /**
+       * <code>repeated .org.apache.dubbo.common.serialize.protobuf.model.PhoneNumber phone = 8;</code>
+       */
+      public Builder clearPhone() {
+        if (phoneBuilder_ == null) {
+          phone_ = java.util.Collections.emptyList();
+          bitField0_ = (bitField0_ & ~0x00000080);
+          onChanged();
+        } else {
+          phoneBuilder_.clear();
+        }
+        return this;
+      }
+      /**
+       * <code>repeated .org.apache.dubbo.common.serialize.protobuf.model.PhoneNumber phone = 8;</code>
+       */
+      public Builder removePhone(int index) {
+        if (phoneBuilder_ == null) {
+          ensurePhoneIsMutable();
+          phone_.remove(index);
+          onChanged();
+        } else {
+          phoneBuilder_.remove(index);
+        }
+        return this;
+      }
+      /**
+       * <code>repeated .org.apache.dubbo.common.serialize.protobuf.model.PhoneNumber phone = 8;</code>
+       */
+      public GooglePB.PhoneNumber.Builder getPhoneBuilder(
+          int index) {
+        return getPhoneFieldBuilder().getBuilder(index);
+      }
+      /**
+       * <code>repeated .org.apache.dubbo.common.serialize.protobuf.model.PhoneNumber phone = 8;</code>
+       */
+      public GooglePB.PhoneNumberOrBuilder getPhoneOrBuilder(
+          int index) {
+        if (phoneBuilder_ == null) {
+          return phone_.get(index);  } else {
+          return phoneBuilder_.getMessageOrBuilder(index);
+        }
+      }
+      /**
+       * <code>repeated .org.apache.dubbo.common.serialize.protobuf.model.PhoneNumber phone = 8;</code>
+       */
+      public java.util.List<? extends PhoneNumberOrBuilder>
+           getPhoneOrBuilderList() {
+        if (phoneBuilder_ != null) {
+          return phoneBuilder_.getMessageOrBuilderList();
+        } else {
+          return java.util.Collections.unmodifiableList(phone_);
+        }
+      }
+      /**
+       * <code>repeated .org.apache.dubbo.common.serialize.protobuf.model.PhoneNumber phone = 8;</code>
+       */
+      public GooglePB.PhoneNumber.Builder addPhoneBuilder() {
+        return getPhoneFieldBuilder().addBuilder(
+            GooglePB.PhoneNumber.getDefaultInstance());
+      }
+      /**
+       * <code>repeated .org.apache.dubbo.common.serialize.protobuf.model.PhoneNumber phone = 8;</code>
+       */
+      public GooglePB.PhoneNumber.Builder addPhoneBuilder(
+          int index) {
+        return getPhoneFieldBuilder().addBuilder(
+            index, GooglePB.PhoneNumber.getDefaultInstance());
+      }
+      /**
+       * <code>repeated .org.apache.dubbo.common.serialize.protobuf.model.PhoneNumber phone = 8;</code>
+       */
+      public java.util.List<PhoneNumber.Builder>
+           getPhoneBuilderList() {
+        return getPhoneFieldBuilder().getBuilderList();
+      }
+      private com.google.protobuf.RepeatedFieldBuilderV3<
+          PhoneNumber, PhoneNumber.Builder, PhoneNumberOrBuilder>
+          getPhoneFieldBuilder() {
+        if (phoneBuilder_ == null) {
+          phoneBuilder_ = new com.google.protobuf.RepeatedFieldBuilderV3<
+              PhoneNumber, PhoneNumber.Builder, PhoneNumberOrBuilder>(
+                  phone_,
+                  ((bitField0_ & 0x00000080) == 0x00000080),
+                  getParentForChildren(),
+                  isClean());
+          phone_ = null;
+        }
+        return phoneBuilder_;
+      }
+
+      private com.google.protobuf.MapField<
+          String, PhoneNumber> doubleMap_;
+      private com.google.protobuf.MapField<String, PhoneNumber>
+      internalGetDoubleMap() {
+        if (doubleMap_ == null) {
+          return com.google.protobuf.MapField.emptyMapField(
+              DoubleMapDefaultEntryHolder.defaultEntry);
+        }
+        return doubleMap_;
+      }
+      private com.google.protobuf.MapField<String, PhoneNumber>
+      internalGetMutableDoubleMap() {
+        onChanged();;
+        if (doubleMap_ == null) {
+          doubleMap_ = com.google.protobuf.MapField.newMapField(
+              DoubleMapDefaultEntryHolder.defaultEntry);
+        }
+        if (!doubleMap_.isMutable()) {
+          doubleMap_ = doubleMap_.copy();
+        }
+        return doubleMap_;
+      }
+
+      public int getDoubleMapCount() {
+        return internalGetDoubleMap().getMap().size();
+      }
+      /**
+       * <code>map&lt;string, .org.apache.dubbo.common.serialize.protobuf.model.PhoneNumber&gt; doubleMap = 9;</code>
+       */
+
+      public boolean containsDoubleMap(
+          String key) {
+        if (key == null) { throw new NullPointerException(); }
+        return internalGetDoubleMap().getMap().containsKey(key);
+      }
+      /**
+       * Use {@link #getDoubleMapMap()} instead.
+       */
+      @Deprecated
+      public java.util.Map<String, PhoneNumber> getDoubleMap() {
+        return getDoubleMapMap();
+      }
+      /**
+       * <code>map&lt;string, .org.apache.dubbo.common.serialize.protobuf.model.PhoneNumber&gt; doubleMap = 9;</code>
+       */
+
+      public java.util.Map<String, PhoneNumber> getDoubleMapMap() {
+        return internalGetDoubleMap().getMap();
+      }
+      /**
+       * <code>map&lt;string, .org.apache.dubbo.common.serialize.protobuf.model.PhoneNumber&gt; doubleMap = 9;</code>
+       */
+
+      public GooglePB.PhoneNumber getDoubleMapOrDefault(
+          String key,
+          GooglePB.PhoneNumber defaultValue) {
+        if (key == null) { throw new NullPointerException(); }
+        java.util.Map<String, PhoneNumber> map =
+            internalGetDoubleMap().getMap();
+        return map.containsKey(key) ? map.get(key) : defaultValue;
+      }
+      /**
+       * <code>map&lt;string, .org.apache.dubbo.common.serialize.protobuf.model.PhoneNumber&gt; doubleMap = 9;</code>
+       */
+
+      public GooglePB.PhoneNumber getDoubleMapOrThrow(
+          String key) {
+        if (key == null) { throw new NullPointerException(); }
+        java.util.Map<String, PhoneNumber> map =
+            internalGetDoubleMap().getMap();
+        if (!map.containsKey(key)) {
+          throw new IllegalArgumentException();
+        }
+        return map.get(key);
+      }
+
+      public Builder clearDoubleMap() {
+        internalGetMutableDoubleMap().getMutableMap()
+            .clear();
+        return this;
+      }
+      /**
+       * <code>map&lt;string, .org.apache.dubbo.common.serialize.protobuf.model.PhoneNumber&gt; doubleMap = 9;</code>
+       */
+
+      public Builder removeDoubleMap(
+          String key) {
+        if (key == null) { throw new NullPointerException(); }
+        internalGetMutableDoubleMap().getMutableMap()
+            .remove(key);
+        return this;
+      }
+      /**
+       * Use alternate mutation accessors instead.
+       */
+      @Deprecated
+      public java.util.Map<String, PhoneNumber>
+      getMutableDoubleMap() {
+        return internalGetMutableDoubleMap().getMutableMap();
+      }
+      /**
+       * <code>map&lt;string, .org.apache.dubbo.common.serialize.protobuf.model.PhoneNumber&gt; doubleMap = 9;</code>
+       */
+      public Builder putDoubleMap(
+          String key,
+          GooglePB.PhoneNumber value) {
+        if (key == null) { throw new NullPointerException(); }
+        if (value == null) { throw new NullPointerException(); }
+        internalGetMutableDoubleMap().getMutableMap()
+            .put(key, value);
+        return this;
+      }
+      /**
+       * <code>map&lt;string, .org.apache.dubbo.common.serialize.protobuf.model.PhoneNumber&gt; doubleMap = 9;</code>
+       */
+
+      public Builder putAllDoubleMap(
+          java.util.Map<String, PhoneNumber> values) {
+        internalGetMutableDoubleMap().getMutableMap()
+            .putAll(values);
+        return this;
+      }
+      public final Builder setUnknownFields(
+          final com.google.protobuf.UnknownFieldSet unknownFields) {
+        return super.setUnknownFields(unknownFields);
+      }
+
+      public final Builder mergeUnknownFields(
+          final com.google.protobuf.UnknownFieldSet unknownFields) {
+        return super.mergeUnknownFields(unknownFields);
+      }
+
+
+      // @@protoc_insertion_point(builder_scope:org.apache.dubbo.common.serialize.protobuf.model.PBRequestType)
+    }
+
+    // @@protoc_insertion_point(class_scope:org.apache.dubbo.common.serialize.protobuf.model.PBRequestType)
+    private static final GooglePB.PBRequestType DEFAULT_INSTANCE;
+    static {
+      DEFAULT_INSTANCE = new GooglePB.PBRequestType();
+    }
+
+    public static GooglePB.PBRequestType getDefaultInstance() {
+      return DEFAULT_INSTANCE;
+    }
+
+    @Deprecated public static final com.google.protobuf.Parser<PBRequestType>
+        PARSER = new com.google.protobuf.AbstractParser<PBRequestType>() {
+      public PBRequestType parsePartialFrom(
+          com.google.protobuf.CodedInputStream input,
+          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+          throws com.google.protobuf.InvalidProtocolBufferException {
+          return new PBRequestType(input, extensionRegistry);
+      }
+    };
+
+    public static com.google.protobuf.Parser<PBRequestType> parser() {
+      return PARSER;
+    }
+
+    @Override
+    public com.google.protobuf.Parser<PBRequestType> getParserForType() {
+      return PARSER;
+    }
+
+    public GooglePB.PBRequestType getDefaultInstanceForType() {
+      return DEFAULT_INSTANCE;
+    }
+
+  }
+
+  public interface PBResponseTypeOrBuilder extends
+      // @@protoc_insertion_point(interface_extends:org.apache.dubbo.common.serialize.protobuf.model.PBResponseType)
+      com.google.protobuf.MessageOrBuilder {
+
+    /**
+     * <code>optional string msg = 1;</code>
+     */
+    boolean hasMsg();
+    /**
+     * <code>optional string msg = 1;</code>
+     */
+    String getMsg();
+    /**
+     * <code>optional string msg = 1;</code>
+     */
+    com.google.protobuf.ByteString
+        getMsgBytes();
+
+    /**
+     * <code>optional .org.apache.dubbo.common.serialize.protobuf.model.PBRequestType CDubboPBRequestType = 3;</code>
+     */
+    boolean hasCDubboPBRequestType();
+    /**
+     * <code>optional .org.apache.dubbo.common.serialize.protobuf.model.PBRequestType CDubboPBRequestType = 3;</code>
+     */
+    GooglePB.PBRequestType getCDubboPBRequestType();
+    /**
+     * <code>optional .org.apache.dubbo.common.serialize.protobuf.model.PBRequestType CDubboPBRequestType = 3;</code>
+     */
+    GooglePB.PBRequestTypeOrBuilder getCDubboPBRequestTypeOrBuilder();
+  }
+  /**
+   * Protobuf type {@code org.apache.dubbo.common.serialize.protobuf.model.PBResponseType}
+   */
+  public  static final class PBResponseType extends
+      com.google.protobuf.GeneratedMessageV3 implements
+      // @@protoc_insertion_point(message_implements:org.apache.dubbo.common.serialize.protobuf.model.PBResponseType)
+      PBResponseTypeOrBuilder {
+  private static final long serialVersionUID = 0L;
+    // Use PBResponseType.newBuilder() to construct.
+    private PBResponseType(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
+      super(builder);
+    }
+    private PBResponseType() {
+      msg_ = "";
+    }
+
+    @Override
+    public final com.google.protobuf.UnknownFieldSet
+    getUnknownFields() {
+      return this.unknownFields;
+    }
+    private PBResponseType(
+        com.google.protobuf.CodedInputStream input,
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      this();
+      int mutable_bitField0_ = 0;
+      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
+          com.google.protobuf.UnknownFieldSet.newBuilder();
+      try {
+        boolean done = false;
+        while (!done) {
+          int tag = input.readTag();
+          switch (tag) {
+            case 0:
+              done = true;
+              break;
+            default: {
+              if (!parseUnknownField(
+                  input, unknownFields, extensionRegistry, tag)) {
+                done = true;
+              }
+              break;
+            }
+            case 10: {
+              com.google.protobuf.ByteString bs = input.readBytes();
+              bitField0_ |= 0x00000001;
+              msg_ = bs;
+              break;
+            }
+            case 26: {
+              GooglePB.PBRequestType.Builder subBuilder = null;
+              if (((bitField0_ & 0x00000002) == 0x00000002)) {
+                subBuilder = cDubboPBRequestType_.toBuilder();
+              }
+              cDubboPBRequestType_ = input.readMessage(GooglePB.PBRequestType.PARSER, extensionRegistry);
+              if (subBuilder != null) {
+                subBuilder.mergeFrom(cDubboPBRequestType_);
+                cDubboPBRequestType_ = subBuilder.buildPartial();
+              }
+              bitField0_ |= 0x00000002;
+              break;
+            }
+          }
+        }
+      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
+        throw e.setUnfinishedMessage(this);
+      } catch (java.io.IOException e) {
+        throw new com.google.protobuf.InvalidProtocolBufferException(
+            e).setUnfinishedMessage(this);
+      } finally {
+        this.unknownFields = unknownFields.build();
+        makeExtensionsImmutable();
+      }
+    }
+    public static final com.google.protobuf.Descriptors.Descriptor
+        getDescriptor() {
+      return GooglePB.internal_static_org_apache_dubbo_common_serialize_protobuf_model_PBResponseType_descriptor;
+    }
+
+    protected FieldAccessorTable
+        internalGetFieldAccessorTable() {
+      return GooglePB.internal_static_org_apache_dubbo_common_serialize_protobuf_model_PBResponseType_fieldAccessorTable
+          .ensureFieldAccessorsInitialized(
+              GooglePB.PBResponseType.class, GooglePB.PBResponseType.Builder.class);
+    }
+
+    private int bitField0_;
+    public static final int MSG_FIELD_NUMBER = 1;
+    private volatile Object msg_;
+    /**
+     * <code>optional string msg = 1;</code>
+     */
+    public boolean hasMsg() {
+      return ((bitField0_ & 0x00000001) == 0x00000001);
+    }
+    /**
+     * <code>optional string msg = 1;</code>
+     */
+    public String getMsg() {
+      Object ref = msg_;
+      if (ref instanceof String) {
+        return (String) ref;
+      } else {
+        com.google.protobuf.ByteString bs =
+            (com.google.protobuf.ByteString) ref;
+        String s = bs.toStringUtf8();
+        if (bs.isValidUtf8()) {
+          msg_ = s;
+        }
+        return s;
+      }
+    }
+    /**
+     * <code>optional string msg = 1;</code>
+     */
+    public com.google.protobuf.ByteString
+        getMsgBytes() {
+      Object ref = msg_;
+      if (ref instanceof String) {
+        com.google.protobuf.ByteString b =
+            com.google.protobuf.ByteString.copyFromUtf8(
+                (String) ref);
+        msg_ = b;
+        return b;
+      } else {
+        return (com.google.protobuf.ByteString) ref;
+      }
+    }
+
+    public static final int CDUBBOPBREQUESTTYPE_FIELD_NUMBER = 3;
+    private GooglePB.PBRequestType cDubboPBRequestType_;
+    /**
+     * <code>optional .org.apache.dubbo.common.serialize.protobuf.model.PBRequestType CDubboPBRequestType = 3;</code>
+     */
+    public boolean hasCDubboPBRequestType() {
+      return ((bitField0_ & 0x00000002) == 0x00000002);
+    }
+    /**
+     * <code>optional .org.apache.dubbo.common.serialize.protobuf.model.PBRequestType CDubboPBRequestType = 3;</code>
+     */
+    public GooglePB.PBRequestType getCDubboPBRequestType() {
+      return cDubboPBRequestType_ == null ? GooglePB.PBRequestType.getDefaultInstance() : cDubboPBRequestType_;
+    }
+    /**
+     * <code>optional .org.apache.dubbo.common.serialize.protobuf.model.PBRequestType CDubboPBRequestType = 3;</code>
+     */
+    public GooglePB.PBRequestTypeOrBuilder getCDubboPBRequestTypeOrBuilder() {
+      return cDubboPBRequestType_ == null ? GooglePB.PBRequestType.getDefaultInstance() : cDubboPBRequestType_;
+    }
+
+    private byte memoizedIsInitialized = -1;
+    public final boolean isInitialized() {
+      byte isInitialized = memoizedIsInitialized;
+      if (isInitialized == 1) return true;
+      if (isInitialized == 0) return false;
+
+      if (hasCDubboPBRequestType()) {
+        if (!getCDubboPBRequestType().isInitialized()) {
+          memoizedIsInitialized = 0;
+          return false;
+        }
+      }
+      memoizedIsInitialized = 1;
+      return true;
+    }
+
+    public void writeTo(com.google.protobuf.CodedOutputStream output)
+                        throws java.io.IOException {
+      if (((bitField0_ & 0x00000001) == 0x00000001)) {
+        com.google.protobuf.GeneratedMessageV3.writeString(output, 1, msg_);
+      }
+      if (((bitField0_ & 0x00000002) == 0x00000002)) {
+        output.writeMessage(3, getCDubboPBRequestType());
+      }
+      unknownFields.writeTo(output);
+    }
+
+    public int getSerializedSize() {
+      int size = memoizedSize;
+      if (size != -1) return size;
+
+      size = 0;
+      if (((bitField0_ & 0x00000001) == 0x00000001)) {
+        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(1, msg_);
+      }
+      if (((bitField0_ & 0x00000002) == 0x00000002)) {
+        size += com.google.protobuf.CodedOutputStream
+          .computeMessageSize(3, getCDubboPBRequestType());
+      }
+      size += unknownFields.getSerializedSize();
+      memoizedSize = size;
+      return size;
+    }
+
+    @Override
+    public boolean equals(final Object obj) {
+      if (obj == this) {
+       return true;
+      }
+      if (!(obj instanceof GooglePB.PBResponseType)) {
+        return super.equals(obj);
+      }
+      GooglePB.PBResponseType other = (GooglePB.PBResponseType) obj;
+
+      boolean result = true;
+      result = result && (hasMsg() == other.hasMsg());
+      if (hasMsg()) {
+        result = result && getMsg()
+            .equals(other.getMsg());
+      }
+      result = result && (hasCDubboPBRequestType() == other.hasCDubboPBRequestType());
+      if (hasCDubboPBRequestType()) {
+        result = result && getCDubboPBRequestType()
+            .equals(other.getCDubboPBRequestType());
+      }
+      result = result && unknownFields.equals(other.unknownFields);
+      return result;
+    }
+
+    @Override
+    public int hashCode() {
+      if (memoizedHashCode != 0) {
+        return memoizedHashCode;
+      }
+      int hash = 41;
+      hash = (19 * hash) + getDescriptor().hashCode();
+      if (hasMsg()) {
+        hash = (37 * hash) + MSG_FIELD_NUMBER;
+        hash = (53 * hash) + getMsg().hashCode();
+      }
+      if (hasCDubboPBRequestType()) {
+        hash = (37 * hash) + CDUBBOPBREQUESTTYPE_FIELD_NUMBER;
+        hash = (53 * hash) + getCDubboPBRequestType().hashCode();
+      }
+      hash = (29 * hash) + unknownFields.hashCode();
+      memoizedHashCode = hash;
+      return hash;
+    }
+
+    public static GooglePB.PBResponseType parseFrom(
+        java.nio.ByteBuffer data)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      return PARSER.parseFrom(data);
+    }
+    public static GooglePB.PBResponseType parseFrom(
+        java.nio.ByteBuffer data,
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      return PARSER.parseFrom(data, extensionRegistry);
+    }
+    public static GooglePB.PBResponseType parseFrom(
+        com.google.protobuf.ByteString data)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      return PARSER.parseFrom(data);
+    }
+    public static GooglePB.PBResponseType parseFrom(
+        com.google.protobuf.ByteString data,
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      return PARSER.parseFrom(data, extensionRegistry);
+    }
+    public static GooglePB.PBResponseType parseFrom(byte[] data)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      return PARSER.parseFrom(data);
+    }
+    public static GooglePB.PBResponseType parseFrom(
+        byte[] data,
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      return PARSER.parseFrom(data, extensionRegistry);
+    }
+    public static GooglePB.PBResponseType parseFrom(java.io.InputStream input)
+        throws java.io.IOException {
+      return com.google.protobuf.GeneratedMessageV3
+          .parseWithIOException(PARSER, input);
+    }
+    public static GooglePB.PBResponseType parseFrom(
+        java.io.InputStream input,
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws java.io.IOException {
+      return com.google.protobuf.GeneratedMessageV3
+          .parseWithIOException(PARSER, input, extensionRegistry);
+    }
+    public static GooglePB.PBResponseType parseDelimitedFrom(java.io.InputStream input)
+        throws java.io.IOException {
+      return com.google.protobuf.GeneratedMessageV3
+          .parseDelimitedWithIOException(PARSER, input);
+    }
+    public static GooglePB.PBResponseType parseDelimitedFrom(
+        java.io.InputStream input,
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws java.io.IOException {
+      return com.google.protobuf.GeneratedMessageV3
+          .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
+    }
+    public static GooglePB.PBResponseType parseFrom(
+        com.google.protobuf.CodedInputStream input)
+        throws java.io.IOException {
+      return com.google.protobuf.GeneratedMessageV3
+          .parseWithIOException(PARSER, input);
+    }
+    public static GooglePB.PBResponseType parseFrom(
+        com.google.protobuf.CodedInputStream input,
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws java.io.IOException {
+      return com.google.protobuf.GeneratedMessageV3
+          .parseWithIOException(PARSER, input, extensionRegistry);
+    }
+
+    public Builder newBuilderForType() { return newBuilder(); }
+    public static Builder newBuilder() {
+      return DEFAULT_INSTANCE.toBuilder();
+    }
+    public static Builder newBuilder(GooglePB.PBResponseType prototype) {
+      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
+    }
+    public Builder toBuilder() {
+      return this == DEFAULT_INSTANCE
+          ? new Builder() : new Builder().mergeFrom(this);
+    }
+
+    @Override
+    protected Builder newBuilderForType(
+        BuilderParent parent) {
+      Builder builder = new Builder(parent);
+      return builder;
+    }
+    /**
+     * Protobuf type {@code org.apache.dubbo.common.serialize.protobuf.model.PBResponseType}
+     */
+    public static final class Builder extends
+        com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
+        // @@protoc_insertion_point(builder_implements:org.apache.dubbo.common.serialize.protobuf.model.PBResponseType)
+        GooglePB.PBResponseTypeOrBuilder {
+      public static final com.google.protobuf.Descriptors.Descriptor
+          getDescriptor() {
+        return GooglePB.internal_static_org_apache_dubbo_common_serialize_protobuf_model_PBResponseType_descriptor;
+      }
+
+      protected FieldAccessorTable
+          internalGetFieldAccessorTable() {
+        return GooglePB.internal_static_org_apache_dubbo_common_serialize_protobuf_model_PBResponseType_fieldAccessorTable
+            .ensureFieldAccessorsInitialized(
+                GooglePB.PBResponseType.class, GooglePB.PBResponseType.Builder.class);
+      }
+
+      // Construct using org.apache.dubbo.common.serialize.protobuf.model.GooglePB.PBResponseType.newBuilder()
+      private Builder() {
+        maybeForceBuilderInitialization();
+      }
+
+      private Builder(
+          BuilderParent parent) {
+        super(parent);
+        maybeForceBuilderInitialization();
+      }
+      private void maybeForceBuilderInitialization() {
+        if (com.google.protobuf.GeneratedMessageV3
+                .alwaysUseFieldBuilders) {
+          getCDubboPBRequestTypeFieldBuilder();
+        }
+      }
+      public Builder clear() {
+        super.clear();
+        msg_ = "";
+        bitField0_ = (bitField0_ & ~0x00000001);
+        if (cDubboPBRequestTypeBuilder_ == null) {
+          cDubboPBRequestType_ = null;
+        } else {
+          cDubboPBRequestTypeBuilder_.clear();
+        }
+        bitField0_ = (bitField0_ & ~0x00000002);
+        return this;
+      }
+
+      public com.google.protobuf.Descriptors.Descriptor
+          getDescriptorForType() {
+        return GooglePB.internal_static_org_apache_dubbo_common_serialize_protobuf_model_PBResponseType_descriptor;
+      }
+
+      public GooglePB.PBResponseType getDefaultInstanceForType() {
+        return GooglePB.PBResponseType.getDefaultInstance();
+      }
+
+      public GooglePB.PBResponseType build() {
+        GooglePB.PBResponseType result = buildPartial();
+        if (!result.isInitialized()) {
+          throw newUninitializedMessageException(result);
+        }
+        return result;
+      }
+
+      public GooglePB.PBResponseType buildPartial() {
+        GooglePB.PBResponseType result = new GooglePB.PBResponseType(this);
+        int from_bitField0_ = bitField0_;
+        int to_bitField0_ = 0;
+        if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
+          to_bitField0_ |= 0x00000001;
+        }
+        result.msg_ = msg_;
+        if (((from_bitField0_ & 0x00000002) == 0x00000002)) {
+          to_bitField0_ |= 0x00000002;
+        }
+        if (cDubboPBRequestTypeBuilder_ == null) {
+          result.cDubboPBRequestType_ = cDubboPBRequestType_;
+        } else {
+          result.cDubboPBRequestType_ = cDubboPBRequestTypeBuilder_.build();
+        }
+        result.bitField0_ = to_bitField0_;
+        onBuilt();
+        return result;
+      }
+
+      public Builder clone() {
+        return (Builder) super.clone();
+      }
+      public Builder setField(
+          com.google.protobuf.Descriptors.FieldDescriptor field,
+          Object value) {
+        return (Builder) super.setField(field, value);
+      }
+      public Builder clearField(
+          com.google.protobuf.Descriptors.FieldDescriptor field) {
+        return (Builder) super.clearField(field);
+      }
+      public Builder clearOneof(
+          com.google.protobuf.Descriptors.OneofDescriptor oneof) {
+        return (Builder) super.clearOneof(oneof);
+      }
+      public Builder setRepeatedField(
+          com.google.protobuf.Descriptors.FieldDescriptor field,
+          int index, Object value) {
+        return (Builder) super.setRepeatedField(field, index, value);
+      }
+      public Builder addRepeatedField(
+          com.google.protobuf.Descriptors.FieldDescriptor field,
+          Object value) {
+        return (Builder) super.addRepeatedField(field, value);
+      }
+      public Builder mergeFrom(com.google.protobuf.Message other) {
+        if (other instanceof GooglePB.PBResponseType) {
+          return mergeFrom((GooglePB.PBResponseType)other);
+        } else {
+          super.mergeFrom(other);
+          return this;
+        }
+      }
+
+      public Builder mergeFrom(GooglePB.PBResponseType other) {
+        if (other == GooglePB.PBResponseType.getDefaultInstance()) return this;
+        if (other.hasMsg()) {
+          bitField0_ |= 0x00000001;
+          msg_ = other.msg_;
+          onChanged();
+        }
+        if (other.hasCDubboPBRequestType()) {
+          mergeCDubboPBRequestType(other.getCDubboPBRequestType());
+        }
+        this.mergeUnknownFields(other.unknownFields);
+        onChanged();
+        return this;
+      }
+
+      public final boolean isInitialized() {
+        if (hasCDubboPBRequestType()) {
+          if (!getCDubboPBRequestType().isInitialized()) {
+            return false;
+          }
+        }
+        return true;
+      }
+
+      public Builder mergeFrom(
+          com.google.protobuf.CodedInputStream input,
+          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+          throws java.io.IOException {
+        GooglePB.PBResponseType parsedMessage = null;
+        try {
+          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
+        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
+          parsedMessage = (GooglePB.PBResponseType) e.getUnfinishedMessage();
+          throw e.unwrapIOException();
+        } finally {
+          if (parsedMessage != null) {
+            mergeFrom(parsedMessage);
+          }
+        }
+        return this;
+      }
+      private int bitField0_;
+
+      private Object msg_ = "";
+      /**
+       * <code>optional string msg = 1;</code>
+       */
+      public boolean hasMsg() {
+        return ((bitField0_ & 0x00000001) == 0x00000001);
+      }
+      /**
+       * <code>optional string msg = 1;</code>
+       */
+      public String getMsg() {
+        Object ref = msg_;
+        if (!(ref instanceof String)) {
+          com.google.protobuf.ByteString bs =
+              (com.google.protobuf.ByteString) ref;
+          String s = bs.toStringUtf8();
+          if (bs.isValidUtf8()) {
+            msg_ = s;
+          }
+          return s;
+        } else {
+          return (String) ref;
+        }
+      }
+      /**
+       * <code>optional string msg = 1;</code>
+       */
+      public com.google.protobuf.ByteString
+          getMsgBytes() {
+        Object ref = msg_;
+        if (ref instanceof String) {
+          com.google.protobuf.ByteString b =
+              com.google.protobuf.ByteString.copyFromUtf8(
+                  (String) ref);
+          msg_ = b;
+          return b;
+        } else {
+          return (com.google.protobuf.ByteString) ref;
+        }
+      }
+      /**
+       * <code>optional string msg = 1;</code>
+       */
+      public Builder setMsg(
+          String value) {
+        if (value == null) {
+    throw new NullPointerException();
+  }
+  bitField0_ |= 0x00000001;
+        msg_ = value;
+        onChanged();
+        return this;
+      }
+      /**
+       * <code>optional string msg = 1;</code>
+       */
+      public Builder clearMsg() {
+        bitField0_ = (bitField0_ & ~0x00000001);
+        msg_ = getDefaultInstance().getMsg();
+        onChanged();
+        return this;
+      }
+      /**
+       * <code>optional string msg = 1;</code>
+       */
+      public Builder setMsgBytes(
+          com.google.protobuf.ByteString value) {
+        if (value == null) {
+    throw new NullPointerException();
+  }
+  bitField0_ |= 0x00000001;
+        msg_ = value;
+        onChanged();
+        return this;
+      }
+
+      private GooglePB.PBRequestType cDubboPBRequestType_ = null;
+      private com.google.protobuf.SingleFieldBuilderV3<
+          PBRequestType, PBRequestType.Builder, PBRequestTypeOrBuilder> cDubboPBRequestTypeBuilder_;
+      /**
+       * <code>optional .org.apache.dubbo.common.serialize.protobuf.model.PBRequestType CDubboPBRequestType = 3;</code>
+       */
+      public boolean hasCDubboPBRequestType() {
+        return ((bitField0_ & 0x00000002) == 0x00000002);
+      }
+      /**
+       * <code>optional .org.apache.dubbo.common.serialize.protobuf.model.PBRequestType CDubboPBRequestType = 3;</code>
+       */
+      public GooglePB.PBRequestType getCDubboPBRequestType() {
+        if (cDubboPBRequestTypeBuilder_ == null) {
+          return cDubboPBRequestType_ == null ? GooglePB.PBRequestType.getDefaultInstance() : cDubboPBRequestType_;
+        } else {
+          return cDubboPBRequestTypeBuilder_.getMessage();
+        }
+      }
+      /**
+       * <code>optional .org.apache.dubbo.common.serialize.protobuf.model.PBRequestType CDubboPBRequestType = 3;</code>
+       */
+      public Builder setCDubboPBRequestType(GooglePB.PBRequestType value) {
+        if (cDubboPBRequestTypeBuilder_ == null) {
+          if (value == null) {
+            throw new NullPointerException();
+          }
+          cDubboPBRequestType_ = value;
+          onChanged();
+        } else {
+          cDubboPBRequestTypeBuilder_.setMessage(value);
+        }
+        bitField0_ |= 0x00000002;
+        return this;
+      }
+      /**
+       * <code>optional .org.apache.dubbo.common.serialize.protobuf.model.PBRequestType CDubboPBRequestType = 3;</code>
+       */
+      public Builder setCDubboPBRequestType(
+          GooglePB.PBRequestType.Builder builderForValue) {
+        if (cDubboPBRequestTypeBuilder_ == null) {
+          cDubboPBRequestType_ = builderForValue.build();
+          onChanged();
+        } else {
+          cDubboPBRequestTypeBuilder_.setMessage(builderForValue.build());
+        }
+        bitField0_ |= 0x00000002;
+        return this;
+      }
+      /**
+       * <code>optional .org.apache.dubbo.common.serialize.protobuf.model.PBRequestType CDubboPBRequestType = 3;</code>
+       */
+      public Builder mergeCDubboPBRequestType(GooglePB.PBRequestType value) {
+        if (cDubboPBRequestTypeBuilder_ == null) {
+          if (((bitField0_ & 0x00000002) == 0x00000002) &&
+              cDubboPBRequestType_ != null &&
+              cDubboPBRequestType_ != GooglePB.PBRequestType.getDefaultInstance()) {
+            cDubboPBRequestType_ =
+              GooglePB.PBRequestType.newBuilder(cDubboPBRequestType_).mergeFrom(value).buildPartial();
+          } else {
+            cDubboPBRequestType_ = value;
+          }
+          onChanged();
+        } else {
+          cDubboPBRequestTypeBuilder_.mergeFrom(value);
+        }
+        bitField0_ |= 0x00000002;
+        return this;
+      }
+      /**
+       * <code>optional .org.apache.dubbo.common.serialize.protobuf.model.PBRequestType CDubboPBRequestType = 3;</code>
+       */
+      public Builder clearCDubboPBRequestType() {
+        if (cDubboPBRequestTypeBuilder_ == null) {
+          cDubboPBRequestType_ = null;
+          onChanged();
+        } else {
+          cDubboPBRequestTypeBuilder_.clear();
+        }
+        bitField0_ = (bitField0_ & ~0x00000002);
+        return this;
+      }
+      /**
+       * <code>optional .org.apache.dubbo.common.serialize.protobuf.model.PBRequestType CDubboPBRequestType = 3;</code>
+       */
+      public GooglePB.PBRequestType.Builder getCDubboPBRequestTypeBuilder() {
+        bitField0_ |= 0x00000002;
+        onChanged();
+        return getCDubboPBRequestTypeFieldBuilder().getBuilder();
+      }
+      /**
+       * <code>optional .org.apache.dubbo.common.serialize.protobuf.model.PBRequestType CDubboPBRequestType = 3;</code>
+       */
+      public GooglePB.PBRequestTypeOrBuilder getCDubboPBRequestTypeOrBuilder() {
+        if (cDubboPBRequestTypeBuilder_ != null) {
+          return cDubboPBRequestTypeBuilder_.getMessageOrBuilder();
+        } else {
+          return cDubboPBRequestType_ == null ?
+              GooglePB.PBRequestType.getDefaultInstance() : cDubboPBRequestType_;
+        }
+      }
+      /**
+       * <code>optional .org.apache.dubbo.common.serialize.protobuf.model.PBRequestType CDubboPBRequestType = 3;</code>
+       */
+      private com.google.protobuf.SingleFieldBuilderV3<
+          PBRequestType, PBRequestType.Builder, PBRequestTypeOrBuilder>
+          getCDubboPBRequestTypeFieldBuilder() {
+        if (cDubboPBRequestTypeBuilder_ == null) {
+          cDubboPBRequestTypeBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
+              PBRequestType, PBRequestType.Builder, PBRequestTypeOrBuilder>(
+                  getCDubboPBRequestType(),
+                  getParentForChildren(),
+                  isClean());
+          cDubboPBRequestType_ = null;
+        }
+        return cDubboPBRequestTypeBuilder_;
+      }
+      public final Builder setUnknownFields(
+          final com.google.protobuf.UnknownFieldSet unknownFields) {
+        return super.setUnknownFields(unknownFields);
+      }
+
+      public final Builder mergeUnknownFields(
+          final com.google.protobuf.UnknownFieldSet unknownFields) {
+        return super.mergeUnknownFields(unknownFields);
+      }
+
+
+      // @@protoc_insertion_point(builder_scope:org.apache.dubbo.common.serialize.protobuf.model.PBResponseType)
+    }
+
+    // @@protoc_insertion_point(class_scope:org.apache.dubbo.common.serialize.protobuf.model.PBResponseType)
+    private static final GooglePB.PBResponseType DEFAULT_INSTANCE;
+    static {
+      DEFAULT_INSTANCE = new GooglePB.PBResponseType();
+    }
+
+    public static GooglePB.PBResponseType getDefaultInstance() {
+      return DEFAULT_INSTANCE;
+    }
+
+    @Deprecated public static final com.google.protobuf.Parser<PBResponseType>
+        PARSER = new com.google.protobuf.AbstractParser<PBResponseType>() {
+      public PBResponseType parsePartialFrom(
+          com.google.protobuf.CodedInputStream input,
+          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+          throws com.google.protobuf.InvalidProtocolBufferException {
+          return new PBResponseType(input, extensionRegistry);
+      }
+    };
+
+    public static com.google.protobuf.Parser<PBResponseType> parser() {
+      return PARSER;
+    }
+
+    @Override
+    public com.google.protobuf.Parser<PBResponseType> getParserForType() {
+      return PARSER;
+    }
+
+    public GooglePB.PBResponseType getDefaultInstanceForType() {
+      return DEFAULT_INSTANCE;
+    }
+
+  }
+
+  public interface PhoneNumberOrBuilder extends
+      // @@protoc_insertion_point(interface_extends:org.apache.dubbo.common.serialize.protobuf.model.PhoneNumber)
+      com.google.protobuf.MessageOrBuilder {
+
+    /**
+     * <code>required string number = 1;</code>
+     */
+    boolean hasNumber();
+    /**
+     * <code>required string number = 1;</code>
+     */
+    String getNumber();
+    /**
+     * <code>required string number = 1;</code>
+     */
+    com.google.protobuf.ByteString
+        getNumberBytes();
+
+    /**
+     * <code>optional .org.apache.dubbo.common.serialize.protobuf.model.PhoneType type = 2 [default = HOME];</code>
+     */
+    boolean hasType();
+    /**
+     * <code>optional .org.apache.dubbo.common.serialize.protobuf.model.PhoneType type = 2 [default = HOME];</code>
+     */
+    GooglePB.PhoneType getType();
+  }
+  /**
+   * Protobuf type {@code org.apache.dubbo.common.serialize.protobuf.model.PhoneNumber}
+   */
+  public  static final class PhoneNumber extends
+      com.google.protobuf.GeneratedMessageV3 implements
+      // @@protoc_insertion_point(message_implements:org.apache.dubbo.common.serialize.protobuf.model.PhoneNumber)
+      PhoneNumberOrBuilder {
+  private static final long serialVersionUID = 0L;
+    // Use PhoneNumber.newBuilder() to construct.
+    private PhoneNumber(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
+      super(builder);
+    }
+    private PhoneNumber() {
+      number_ = "";
+      type_ = 1;
+    }
+
+    @Override
+    public final com.google.protobuf.UnknownFieldSet
+    getUnknownFields() {
+      return this.unknownFields;
+    }
+    private PhoneNumber(
+        com.google.protobuf.CodedInputStream input,
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      this();
+      int mutable_bitField0_ = 0;
+      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
+          com.google.protobuf.UnknownFieldSet.newBuilder();
+      try {
+        boolean done = false;
+        while (!done) {
+          int tag = input.readTag();
+          switch (tag) {
+            case 0:
+              done = true;
+              break;
+            default: {
+              if (!parseUnknownField(
+                  input, unknownFields, extensionRegistry, tag)) {
+                done = true;
+              }
+              break;
+            }
+            case 10: {
+              com.google.protobuf.ByteString bs = input.readBytes();
+              bitField0_ |= 0x00000001;
+              number_ = bs;
+              break;
+            }
+            case 16: {
+              int rawValue = input.readEnum();
+              GooglePB.PhoneType value = GooglePB.PhoneType.valueOf(rawValue);
+              if (value == null) {
+                unknownFields.mergeVarintField(2, rawValue);
+              } else {
+                bitField0_ |= 0x00000002;
+                type_ = rawValue;
+              }
+              break;
+            }
+          }
+        }
+      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
+        throw e.setUnfinishedMessage(this);
+      } catch (java.io.IOException e) {
+        throw new com.google.protobuf.InvalidProtocolBufferException(
+            e).setUnfinishedMessage(this);
+      } finally {
+        this.unknownFields = unknownFields.build();
+        makeExtensionsImmutable();
+      }
+    }
+    public static final com.google.protobuf.Descriptors.Descriptor
+        getDescriptor() {
+      return GooglePB.internal_static_org_apache_dubbo_common_serialize_protobuf_model_PhoneNumber_descriptor;
+    }
+
+    protected FieldAccessorTable
+        internalGetFieldAccessorTable() {
+      return GooglePB.internal_static_org_apache_dubbo_common_serialize_protobuf_model_PhoneNumber_fieldAccessorTable
+          .ensureFieldAccessorsInitialized(
+              GooglePB.PhoneNumber.class, GooglePB.PhoneNumber.Builder.class);
+    }
+
+    private int bitField0_;
+    public static final int NUMBER_FIELD_NUMBER = 1;
+    private volatile Object number_;
+    /**
+     * <code>required string number = 1;</code>
+     */
+    public boolean hasNumber() {
+      return ((bitField0_ & 0x00000001) == 0x00000001);
+    }
+    /**
+     * <code>required string number = 1;</code>
+     */
+    public String getNumber() {
+      Object ref = number_;
+      if (ref instanceof String) {
+        return (String) ref;
+      } else {
+        com.google.protobuf.ByteString bs =
+            (com.google.protobuf.ByteString) ref;
+        String s = bs.toStringUtf8();
+        if (bs.isValidUtf8()) {
+          number_ = s;
+        }
+        return s;
+      }
+    }
+    /**
+     * <code>required string number = 1;</code>
+     */
+    public com.google.protobuf.ByteString
+        getNumberBytes() {
+      Object ref = number_;
+      if (ref instanceof String) {
+        com.google.protobuf.ByteString b =
+            com.google.protobuf.ByteString.copyFromUtf8(
+                (String) ref);
+        number_ = b;
+        return b;
+      } else {
+        return (com.google.protobuf.ByteString) ref;
+      }
+    }
+
+    public static final int TYPE_FIELD_NUMBER = 2;
+    private int type_;
+    /**
+     * <code>optional .org.apache.dubbo.common.serialize.protobuf.model.PhoneType type = 2 [default = HOME];</code>
+     */
+    public boolean hasType() {
+      return ((bitField0_ & 0x00000002) == 0x00000002);
+    }
+    /**
+     * <code>optional .org.apache.dubbo.common.serialize.protobuf.model.PhoneType type = 2 [default = HOME];</code>
+     */
+    public GooglePB.PhoneType getType() {
+      GooglePB.PhoneType result = GooglePB.PhoneType.valueOf(type_);
+      return result == null ? GooglePB.PhoneType.HOME : result;
+    }
+
+    private byte memoizedIsInitialized = -1;
+    public final boolean isInitialized() {
+      byte isInitialized = memoizedIsInitialized;
+      if (isInitialized == 1) return true;
+      if (isInitialized == 0) return false;
+
+      if (!hasNumber()) {
+        memoizedIsInitialized = 0;
+        return false;
+      }
+      memoizedIsInitialized = 1;
+      return true;
+    }
+
+    public void writeTo(com.google.protobuf.CodedOutputStream output)
+                        throws java.io.IOException {
+      if (((bitField0_ & 0x00000001) == 0x00000001)) {
+        com.google.protobuf.GeneratedMessageV3.writeString(output, 1, number_);
+      }
+      if (((bitField0_ & 0x00000002) == 0x00000002)) {
+        output.writeEnum(2, type_);
+      }
+      unknownFields.writeTo(output);
+    }
+
+    public int getSerializedSize() {
+      int size = memoizedSize;
+      if (size != -1) return size;
+
+      size = 0;
+      if (((bitField0_ & 0x00000001) == 0x00000001)) {
+        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(1, number_);
+      }
+      if (((bitField0_ & 0x00000002) == 0x00000002)) {
+        size += com.google.protobuf.CodedOutputStream
+          .computeEnumSize(2, type_);
+      }
+      size += unknownFields.getSerializedSize();
+      memoizedSize = size;
+      return size;
+    }
+
+    @Override
+    public boolean equals(final Object obj) {
+      if (obj == this) {
+       return true;
+      }
+      if (!(obj instanceof GooglePB.PhoneNumber)) {
+        return super.equals(obj);
+      }
+      GooglePB.PhoneNumber other = (GooglePB.PhoneNumber) obj;
+
+      boolean result = true;
+      result = result && (hasNumber() == other.hasNumber());
+      if (hasNumber()) {
+        result = result && getNumber()
+            .equals(other.getNumber());
+      }
+      result = result && (hasType() == other.hasType());
+      if (hasType()) {
+        result = result && type_ == other.type_;
+      }
+      result = result && unknownFields.equals(other.unknownFields);
+      return result;
+    }
+
+    @Override
+    public int hashCode() {
+      if (memoizedHashCode != 0) {
+        return memoizedHashCode;
+      }
+      int hash = 41;
+      hash = (19 * hash) + getDescriptor().hashCode();
+      if (hasNumber()) {
+        hash = (37 * hash) + NUMBER_FIELD_NUMBER;
+        hash = (53 * hash) + getNumber().hashCode();
+      }
+      if (hasType()) {
+        hash = (37 * hash) + TYPE_FIELD_NUMBER;
+        hash = (53 * hash) + type_;
+      }
+      hash = (29 * hash) + unknownFields.hashCode();
+      memoizedHashCode = hash;
+      return hash;
+    }
+
+    public static GooglePB.PhoneNumber parseFrom(
+        java.nio.ByteBuffer data)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      return PARSER.parseFrom(data);
+    }
+    public static GooglePB.PhoneNumber parseFrom(
+        java.nio.ByteBuffer data,
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      return PARSER.parseFrom(data, extensionRegistry);
+    }
+    public static GooglePB.PhoneNumber parseFrom(
+        com.google.protobuf.ByteString data)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      return PARSER.parseFrom(data);
+    }
+    public static GooglePB.PhoneNumber parseFrom(
+        com.google.protobuf.ByteString data,
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      return PARSER.parseFrom(data, extensionRegistry);
+    }
+    public static GooglePB.PhoneNumber parseFrom(byte[] data)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      return PARSER.parseFrom(data);
+    }
+    public static GooglePB.PhoneNumber parseFrom(
+        byte[] data,
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      return PARSER.parseFrom(data, extensionRegistry);
+    }
+    public static GooglePB.PhoneNumber parseFrom(java.io.InputStream input)
+        throws java.io.IOException {
+      return com.google.protobuf.GeneratedMessageV3
+          .parseWithIOException(PARSER, input);
+    }
+    public static GooglePB.PhoneNumber parseFrom(
+        java.io.InputStream input,
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws java.io.IOException {
+      return com.google.protobuf.GeneratedMessageV3
+          .parseWithIOException(PARSER, input, extensionRegistry);
+    }
+    public static GooglePB.PhoneNumber parseDelimitedFrom(java.io.InputStream input)
+        throws java.io.IOException {
+      return com.google.protobuf.GeneratedMessageV3
+          .parseDelimitedWithIOException(PARSER, input);
+    }
+    public static GooglePB.PhoneNumber parseDelimitedFrom(
+        java.io.InputStream input,
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws java.io.IOException {
+      return com.google.protobuf.GeneratedMessageV3
+          .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
+    }
+    public static GooglePB.PhoneNumber parseFrom(
+        com.google.protobuf.CodedInputStream input)
+        throws java.io.IOException {
+      return com.google.protobuf.GeneratedMessageV3
+          .parseWithIOException(PARSER, input);
+    }
+    public static GooglePB.PhoneNumber parseFrom(
+        com.google.protobuf.CodedInputStream input,
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws java.io.IOException {
+      return com.google.protobuf.GeneratedMessageV3
+          .parseWithIOException(PARSER, input, extensionRegistry);
+    }
+
+    public Builder newBuilderForType() { return newBuilder(); }
+    public static Builder newBuilder() {
+      return DEFAULT_INSTANCE.toBuilder();
+    }
+    public static Builder newBuilder(GooglePB.PhoneNumber prototype) {
+      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
+    }
+    public Builder toBuilder() {
+      return this == DEFAULT_INSTANCE
+          ? new Builder() : new Builder().mergeFrom(this);
+    }
+
+    @Override
+    protected Builder newBuilderForType(
+        BuilderParent parent) {
+      Builder builder = new Builder(parent);
+      return builder;
+    }
+    /**
+     * Protobuf type {@code org.apache.dubbo.common.serialize.protobuf.model.PhoneNumber}
+     */
+    public static final class Builder extends
+        com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
+        // @@protoc_insertion_point(builder_implements:org.apache.dubbo.common.serialize.protobuf.model.PhoneNumber)
+        GooglePB.PhoneNumberOrBuilder {
+      public static final com.google.protobuf.Descriptors.Descriptor
+          getDescriptor() {
+        return GooglePB.internal_static_org_apache_dubbo_common_serialize_protobuf_model_PhoneNumber_descriptor;
+      }
+
+      protected FieldAccessorTable
+          internalGetFieldAccessorTable() {
+        return GooglePB.internal_static_org_apache_dubbo_common_serialize_protobuf_model_PhoneNumber_fieldAccessorTable
+            .ensureFieldAccessorsInitialized(
+                GooglePB.PhoneNumber.class, GooglePB.PhoneNumber.Builder.class);
+      }
+
+      // Construct using org.apache.dubbo.common.serialize.protobuf.model.GooglePB.PhoneNumber.newBuilder()
+      private Builder() {
+        maybeForceBuilderInitialization();
+      }
+
+      private Builder(
+          BuilderParent parent) {
+        super(parent);
+        maybeForceBuilderInitialization();
+      }
+      private void maybeForceBuilderInitialization() {
+        if (com.google.protobuf.GeneratedMessageV3
+                .alwaysUseFieldBuilders) {
+        }
+      }
+      public Builder clear() {
+        super.clear();
+        number_ = "";
+        bitField0_ = (bitField0_ & ~0x00000001);
+        type_ = 1;
+        bitField0_ = (bitField0_ & ~0x00000002);
+        return this;
+      }
+
+      public com.google.protobuf.Descriptors.Descriptor
+          getDescriptorForType() {
+        return GooglePB.internal_static_org_apache_dubbo_common_serialize_protobuf_model_PhoneNumber_descriptor;
+      }
+
+      public GooglePB.PhoneNumber getDefaultInstanceForType() {
+        return GooglePB.PhoneNumber.getDefaultInstance();
+      }
+
+      public GooglePB.PhoneNumber build() {
+        GooglePB.PhoneNumber result = buildPartial();
+        if (!result.isInitialized()) {
+          throw newUninitializedMessageException(result);
+        }
+        return result;
+      }
+
+      public GooglePB.PhoneNumber buildPartial() {
+        GooglePB.PhoneNumber result = new GooglePB.PhoneNumber(this);
+        int from_bitField0_ = bitField0_;
+        int to_bitField0_ = 0;
+        if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
+          to_bitField0_ |= 0x00000001;
+        }
+        result.number_ = number_;
+        if (((from_bitField0_ & 0x00000002) == 0x00000002)) {
+          to_bitField0_ |= 0x00000002;
+        }
+        result.type_ = type_;
+        result.bitField0_ = to_bitField0_;
+        onBuilt();
+        return result;
+      }
+
+      public Builder clone() {
+        return (Builder) super.clone();
+      }
+      public Builder setField(
+          com.google.protobuf.Descriptors.FieldDescriptor field,
+          Object value) {
+        return (Builder) super.setField(field, value);
+      }
+      public Builder clearField(
+          com.google.protobuf.Descriptors.FieldDescriptor field) {
+        return (Builder) super.clearField(field);
+      }
+      public Builder clearOneof(
+          com.google.protobuf.Descriptors.OneofDescriptor oneof) {
+        return (Builder) super.clearOneof(oneof);
+      }
+      public Builder setRepeatedField(
+          com.google.protobuf.Descriptors.FieldDescriptor field,
+          int index, Object value) {
+        return (Builder) super.setRepeatedField(field, index, value);
+      }
+      public Builder addRepeatedField(
+          com.google.protobuf.Descriptors.FieldDescriptor field,
+          Object value) {
+        return (Builder) super.addRepeatedField(field, value);
+      }
+      public Builder mergeFrom(com.google.protobuf.Message other) {
+        if (other instanceof GooglePB.PhoneNumber) {
+          return mergeFrom((GooglePB.PhoneNumber)other);
+        } else {
+          super.mergeFrom(other);
+          return this;
+        }
+      }
+
+      public Builder mergeFrom(GooglePB.PhoneNumber other) {
+        if (other == GooglePB.PhoneNumber.getDefaultInstance()) return this;
+        if (other.hasNumber()) {
+          bitField0_ |= 0x00000001;
+          number_ = other.number_;
+          onChanged();
+        }
+        if (other.hasType()) {
+          setType(other.getType());
+        }
+        this.mergeUnknownFields(other.unknownFields);
+        onChanged();
+        return this;
+      }
+
+      public final boolean isInitialized() {
+        if (!hasNumber()) {
+          return false;
+        }
+        return true;
+      }
+
+      public Builder mergeFrom(
+          com.google.protobuf.CodedInputStream input,
+          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+          throws java.io.IOException {
+        GooglePB.PhoneNumber parsedMessage = null;
+        try {
+          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
+        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
+          parsedMessage = (GooglePB.PhoneNumber) e.getUnfinishedMessage();
+          throw e.unwrapIOException();
+        } finally {
+          if (parsedMessage != null) {
+            mergeFrom(parsedMessage);
+          }
+        }
+        return this;
+      }
+      private int bitField0_;
+
+      private Object number_ = "";
+      /**
+       * <code>required string number = 1;</code>
+       */
+      public boolean hasNumber() {
+        return ((bitField0_ & 0x00000001) == 0x00000001);
+      }
+      /**
+       * <code>required string number = 1;</code>
+       */
+      public String getNumber() {
+        Object ref = number_;
+        if (!(ref instanceof String)) {
+          com.google.protobuf.ByteString bs =
+              (com.google.protobuf.ByteString) ref;
+          String s = bs.toStringUtf8();
+          if (bs.isValidUtf8()) {
+            number_ = s;
+          }
+          return s;
+        } else {
+          return (String) ref;
+        }
+      }
+      /**
+       * <code>required string number = 1;</code>
+       */
+      public com.google.protobuf.ByteString
+          getNumberBytes() {
+        Object ref = number_;
+        if (ref instanceof String) {
+          com.google.protobuf.ByteString b =
+              com.google.protobuf.ByteString.copyFromUtf8(
+                  (String) ref);
+          number_ = b;
+          return b;
+        } else {
+          return (com.google.protobuf.ByteString) ref;
+        }
+      }
+      /**
+       * <code>required string number = 1;</code>
+       */
+      public Builder setNumber(
+          String value) {
+        if (value == null) {
+    throw new NullPointerException();
+  }
+  bitField0_ |= 0x00000001;
+        number_ = value;
+        onChanged();
+        return this;
+      }
+      /**
+       * <code>required string number = 1;</code>
+       */
+      public Builder clearNumber() {
+        bitField0_ = (bitField0_ & ~0x00000001);
+        number_ = getDefaultInstance().getNumber();
+        onChanged();
+        return this;
+      }
+      /**
+       * <code>required string number = 1;</code>
+       */
+      public Builder setNumberBytes(
+          com.google.protobuf.ByteString value) {
+        if (value == null) {
+    throw new NullPointerException();
+  }
+  bitField0_ |= 0x00000001;
+        number_ = value;
+        onChanged();
+        return this;
+      }
+
+      private int type_ = 1;
+      /**
+       * <code>optional .org.apache.dubbo.common.serialize.protobuf.model.PhoneType type = 2 [default = HOME];</code>
+       */
+      public boolean hasType() {
+        return ((bitField0_ & 0x00000002) == 0x00000002);
+      }
+      /**
+       * <code>optional .org.apache.dubbo.common.serialize.protobuf.model.PhoneType type = 2 [default = HOME];</code>
+       */
+      public GooglePB.PhoneType getType() {
+        GooglePB.PhoneType result = GooglePB.PhoneType.valueOf(type_);
+        return result == null ? GooglePB.PhoneType.HOME : result;
+      }
+      /**
+       * <code>optional .org.apache.dubbo.common.serialize.protobuf.model.PhoneType type = 2 [default = HOME];</code>
+       */
+      public Builder setType(GooglePB.PhoneType value) {
+        if (value == null) {
+          throw new NullPointerException();
+        }
+        bitField0_ |= 0x00000002;
+        type_ = value.getNumber();
+        onChanged();
+        return this;
+      }
+      /**
+       * <code>optional .org.apache.dubbo.common.serialize.protobuf.model.PhoneType type = 2 [default = HOME];</code>
+       */
+      public Builder clearType() {
+        bitField0_ = (bitField0_ & ~0x00000002);
+        type_ = 1;
+        onChanged();
+        return this;
+      }
+      public final Builder setUnknownFields(
+          final com.google.protobuf.UnknownFieldSet unknownFields) {
+        return super.setUnknownFields(unknownFields);
+      }
+
+      public final Builder mergeUnknownFields(
+          final com.google.protobuf.UnknownFieldSet unknownFields) {
+        return super.mergeUnknownFields(unknownFields);
+      }
+
+
+      // @@protoc_insertion_point(builder_scope:org.apache.dubbo.common.serialize.protobuf.model.PhoneNumber)
+    }
+
+    // @@protoc_insertion_point(class_scope:org.apache.dubbo.common.serialize.protobuf.model.PhoneNumber)
+    private static final GooglePB.PhoneNumber DEFAULT_INSTANCE;
+    static {
+      DEFAULT_INSTANCE = new GooglePB.PhoneNumber();
+    }
+
+    public static GooglePB.PhoneNumber getDefaultInstance() {
+      return DEFAULT_INSTANCE;
+    }
+
+    @Deprecated public static final com.google.protobuf.Parser<PhoneNumber>
+        PARSER = new com.google.protobuf.AbstractParser<PhoneNumber>() {
+      public PhoneNumber parsePartialFrom(
+          com.google.protobuf.CodedInputStream input,
+          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+          throws com.google.protobuf.InvalidProtocolBufferException {
+          return new PhoneNumber(input, extensionRegistry);
+      }
+    };
+
+    public static com.google.protobuf.Parser<PhoneNumber> parser() {
+      return PARSER;
+    }
+
+    @Override
+    public com.google.protobuf.Parser<PhoneNumber> getParserForType() {
+      return PARSER;
+    }
+
+    public GooglePB.PhoneNumber getDefaultInstanceForType() {
+      return DEFAULT_INSTANCE;
+    }
+
+  }
+
+  private static final com.google.protobuf.Descriptors.Descriptor
+    internal_static_org_apache_dubbo_common_serialize_protobuf_model_PBRequestType_descriptor;
+  private static final
+    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
+      internal_static_org_apache_dubbo_common_serialize_protobuf_model_PBRequestType_fieldAccessorTable;
+  private static final com.google.protobuf.Descriptors.Descriptor
+    internal_static_org_apache_dubbo_common_serialize_protobuf_model_PBRequestType_DoubleMapEntry_descriptor;
+  private static final
+    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
+      internal_static_org_apache_dubbo_common_serialize_protobuf_model_PBRequestType_DoubleMapEntry_fieldAccessorTable;
+  private static final com.google.protobuf.Descriptors.Descriptor
+    internal_static_org_apache_dubbo_common_serialize_protobuf_model_PBResponseType_descriptor;
+  private static final
+    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
+      internal_static_org_apache_dubbo_common_serialize_protobuf_model_PBResponseType_fieldAccessorTable;
+  private static final com.google.protobuf.Descriptors.Descriptor
+    internal_static_org_apache_dubbo_common_serialize_protobuf_model_PhoneNumber_descriptor;
+  private static final
+    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
+      internal_static_org_apache_dubbo_common_serialize_protobuf_model_PhoneNumber_fieldAccessorTable;
+
+  public static com.google.protobuf.Descriptors.FileDescriptor
+      getDescriptor() {
+    return descriptor;
+  }
+  private static  com.google.protobuf.Descriptors.FileDescriptor
+      descriptor;
+  static {
+    String[] descriptorData = {
+      "\n\016GooglePB.proto\0220org.apache.dubbo.commo" +
+      "n.serialize.protobuf.model\"\220\003\n\rPBRequest" +
+      "Type\022\r\n\005money\030\001 \001(\001\022\014\n\004cash\030\002 \001(\002\022\013\n\003age" +
+      "\030\003 \001(\005\022\013\n\003num\030\004 \001(\003\022\013\n\003sex\030\005 \001(\010\022\014\n\004name" +
+      "\030\006 \001(\t\022\013\n\003msg\030\007 \001(\014\022L\n\005phone\030\010 \003(\0132=.org" +
+      ".apache.dubbo.common.serialize.protobuf." +
+      "model.PhoneNumber\022a\n\tdoubleMap\030\t \003(\0132N.o" +
+      "rg.apache.dubbo.common.serialize.protobu" +
+      "f.model.PBRequestType.DoubleMapEntry\032o\n\016" +
+      "DoubleMapEntry\022\013\n\003key\030\001 \001(\t\022L\n\005value\030\002 \001",
+      "(\0132=.org.apache.dubbo.common.serialize.p" +
+      "rotobuf.model.PhoneNumber:\0028\001\"{\n\016PBRespo" +
+      "nseType\022\013\n\003msg\030\001 \001(\t\022\\\n\023CDubboPBRequestT" +
+      "ype\030\003 \001(\0132?.org.apache.dubbo.common.seri" +
+      "alize.protobuf.model.PBRequestType\"n\n\013Ph" +
+      "oneNumber\022\016\n\006number\030\001 \002(\t\022O\n\004type\030\002 \001(\0162" +
+      ";.org.apache.dubbo.common.serialize.prot" +
+      "obuf.model.PhoneType:\004HOME*+\n\tPhoneType\022" +
+      "\n\n\006MOBILE\020\000\022\010\n\004HOME\020\001\022\010\n\004WORK\020\0022\241\001\n\017CDub" +
+      "boPBService\022\215\001\n\010sayHello\022?.org.apache.du",
+      "bbo.common.serialize.protobuf.model.PBRe" +
+      "questType\032@.org.apache.dubbo.common.seri" +
+      "alize.protobuf.model.PBResponseType"
+    };
+    com.google.protobuf.Descriptors.FileDescriptor.InternalDescriptorAssigner assigner =
+        new com.google.protobuf.Descriptors.FileDescriptor.    InternalDescriptorAssigner() {
+          public com.google.protobuf.ExtensionRegistry assignDescriptors(
+              com.google.protobuf.Descriptors.FileDescriptor root) {
+            descriptor = root;
+            return null;
+          }
+        };
+    com.google.protobuf.Descriptors.FileDescriptor
+      .internalBuildGeneratedFileFrom(descriptorData,
+        new com.google.protobuf.Descriptors.FileDescriptor[] {
+        }, assigner);
+    internal_static_org_apache_dubbo_common_serialize_protobuf_model_PBRequestType_descriptor =
+      getDescriptor().getMessageTypes().get(0);
+    internal_static_org_apache_dubbo_common_serialize_protobuf_model_PBRequestType_fieldAccessorTable = new
+      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
+        internal_static_org_apache_dubbo_common_serialize_protobuf_model_PBRequestType_descriptor,
+        new String[] { "Money", "Cash", "Age", "Num", "Sex", "Name", "Msg", "Phone", "DoubleMap", });
+    internal_static_org_apache_dubbo_common_serialize_protobuf_model_PBRequestType_DoubleMapEntry_descriptor =
+      internal_static_org_apache_dubbo_common_serialize_protobuf_model_PBRequestType_descriptor.getNestedTypes().get(0);
+    internal_static_org_apache_dubbo_common_serialize_protobuf_model_PBRequestType_DoubleMapEntry_fieldAccessorTable = new
+      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
+        internal_static_org_apache_dubbo_common_serialize_protobuf_model_PBRequestType_DoubleMapEntry_descriptor,
+        new String[] { "Key", "Value", });
+    internal_static_org_apache_dubbo_common_serialize_protobuf_model_PBResponseType_descriptor =
+      getDescriptor().getMessageTypes().get(1);
+    internal_static_org_apache_dubbo_common_serialize_protobuf_model_PBResponseType_fieldAccessorTable = new
+      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
+        internal_static_org_apache_dubbo_common_serialize_protobuf_model_PBResponseType_descriptor,
+        new String[] { "Msg", "CDubboPBRequestType", });
+    internal_static_org_apache_dubbo_common_serialize_protobuf_model_PhoneNumber_descriptor =
+      getDescriptor().getMessageTypes().get(2);
+    internal_static_org_apache_dubbo_common_serialize_protobuf_model_PhoneNumber_fieldAccessorTable = new
+      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
+        internal_static_org_apache_dubbo_common_serialize_protobuf_model_PhoneNumber_descriptor,
+        new String[] { "Number", "Type", });
+  }
+
+  // @@protoc_insertion_point(outer_class_scope)
+}
diff --git a/dubbo-metadata-report/dubbo-metadata-definition-protobuf/src/test/java/org/apache/dubbo/metadata/definition/protobuf/model/ServiceInterface.java b/dubbo-metadata-report/dubbo-metadata-definition-protobuf/src/test/java/org/apache/dubbo/metadata/definition/protobuf/model/ServiceInterface.java
new file mode 100644
index 0000000..9c4f234
--- /dev/null
+++ b/dubbo-metadata-report/dubbo-metadata-definition-protobuf/src/test/java/org/apache/dubbo/metadata/definition/protobuf/model/ServiceInterface.java
@@ -0,0 +1,21 @@
+/*
+ * 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.metadata.definition.protobuf.model;
+
+public interface ServiceInterface {
+    GooglePB.PBResponseType sayHello(GooglePB.PBRequestType requestType);
+}