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

albumenj pushed a commit to branch 3.2
in repository https://gitbox.apache.org/repos/asf/dubbo.git


The following commit(s) were added to refs/heads/3.2 by this push:
     new bdc0695d78 Fix compatible signature mismatch (#12220)
bdc0695d78 is described below

commit bdc0695d780142be49ef06b32170e03c53b88c09
Author: Albumen Kevin <[email protected]>
AuthorDate: Wed May 3 10:42:00 2023 +0800

    Fix compatible signature mismatch (#12220)
    
    * Fix compatible signature mismatch
    
    * Fix license
---
 .licenserc.yaml                                    |   1 +
 .../org/apache/dubbo/config/ProtocolConfig.java    |   4 +-
 .../alibaba/dubbo/config/ApplicationConfig.java    |  13 ++
 .../com/alibaba/dubbo/config/ConsumerConfig.java   |  28 ++++
 .../com/alibaba/dubbo/config/MethodConfig.java     |  10 ++
 .../com/alibaba/dubbo/config/ModuleConfig.java     |  13 ++
 .../com/alibaba/dubbo/config/ProtocolConfig.java   |   6 +
 .../com/alibaba/dubbo/config/ProviderConfig.java   |  36 +++++
 .../com/alibaba/dubbo/config/ReferenceConfig.java  |  34 ++++
 .../com/alibaba/dubbo/config/ServiceConfig.java    |  96 +++++++++++
 .../org/apache/dubbo/config/ModuleConfigTest.java  |   1 +
 .../org/apache/dubbo/config/SignatureTest.java     |  67 ++++++++
 .../com.alibaba.dubbo.config.ApplicationConfig     |  60 +++++++
 .../com.alibaba.dubbo.config.ArgumentConfig        |  29 ++++
 .../com.alibaba.dubbo.config.ConsumerConfig        | 123 ++++++++++++++
 .../com.alibaba.dubbo.config.MethodConfig          |  81 ++++++++++
 .../com.alibaba.dubbo.config.ModuleConfig          |  42 +++++
 .../com.alibaba.dubbo.config.MonitorConfig         |  43 +++++
 .../com.alibaba.dubbo.config.ProtocolConfig        |  92 +++++++++++
 .../com.alibaba.dubbo.config.ProviderConfig        | 176 +++++++++++++++++++++
 .../com.alibaba.dubbo.config.ReferenceConfig       | 130 +++++++++++++++
 .../com.alibaba.dubbo.config.RegistryConfig        |  69 ++++++++
 .../com.alibaba.dubbo.config.ServiceConfig         | 150 ++++++++++++++++++
 23 files changed, 1302 insertions(+), 2 deletions(-)

diff --git a/.licenserc.yaml b/.licenserc.yaml
index 5b8980c95e..d403e85d43 100644
--- a/.licenserc.yaml
+++ b/.licenserc.yaml
@@ -68,6 +68,7 @@ header:
     - 'Jenkinsfile'
     - '**/vendor/**'
     - '**/src/test/resources/certs/**'
+    - '**/src/test/resources/definition/**'
     - 
'dubbo-common/src/main/java/org/apache/dubbo/common/threadlocal/InternalThreadLocal.java'
     - 
'dubbo-common/src/main/java/org/apache/dubbo/common/threadlocal/InternalThreadLocalMap.java'
     - 
'dubbo-common/src/main/java/org/apache/dubbo/common/timer/HashedWheelTimer.java'
diff --git 
a/dubbo-common/src/main/java/org/apache/dubbo/config/ProtocolConfig.java 
b/dubbo-common/src/main/java/org/apache/dubbo/config/ProtocolConfig.java
index 5586f9c64b..c6be90b3db 100644
--- a/dubbo-common/src/main/java/org/apache/dubbo/config/ProtocolConfig.java
+++ b/dubbo-common/src/main/java/org/apache/dubbo/config/ProtocolConfig.java
@@ -273,7 +273,7 @@ public class ProtocolConfig extends AbstractConfig {
         return name;
     }
 
-    public final void setName(String name) {
+    public void setName(String name) {
         this.name = name;
     }
 
@@ -291,7 +291,7 @@ public class ProtocolConfig extends AbstractConfig {
         return port;
     }
 
-    public final void setPort(Integer port) {
+    public void setPort(Integer port) {
         this.port = port;
     }
 
diff --git 
a/dubbo-compatible/src/main/java/com/alibaba/dubbo/config/ApplicationConfig.java
 
b/dubbo-compatible/src/main/java/com/alibaba/dubbo/config/ApplicationConfig.java
index f17e7ed516..ab5f8c2fa8 100644
--- 
a/dubbo-compatible/src/main/java/com/alibaba/dubbo/config/ApplicationConfig.java
+++ 
b/dubbo-compatible/src/main/java/com/alibaba/dubbo/config/ApplicationConfig.java
@@ -27,4 +27,17 @@ public class ApplicationConfig extends 
org.apache.dubbo.config.ApplicationConfig
     public ApplicationConfig(String name) {
         super(name);
     }
+
+    public void setRegistry(com.alibaba.dubbo.config.RegistryConfig registry) {
+        super.setRegistry(registry);
+    }
+
+    public void setMonitor(com.alibaba.dubbo.config.MonitorConfig monitor) {
+        super.setMonitor(monitor);
+    }
+
+    @Override
+    public void setMonitor(String monitor) {
+        setMonitor(new com.alibaba.dubbo.config.MonitorConfig(monitor));
+    }
 }
diff --git 
a/dubbo-compatible/src/main/java/com/alibaba/dubbo/config/ConsumerConfig.java 
b/dubbo-compatible/src/main/java/com/alibaba/dubbo/config/ConsumerConfig.java
index 320ec47ec6..3c24db1d2a 100644
--- 
a/dubbo-compatible/src/main/java/com/alibaba/dubbo/config/ConsumerConfig.java
+++ 
b/dubbo-compatible/src/main/java/com/alibaba/dubbo/config/ConsumerConfig.java
@@ -19,4 +19,32 @@ package com.alibaba.dubbo.config;
 
 @Deprecated
 public class ConsumerConfig extends org.apache.dubbo.config.ConsumerConfig {
+
+    public void setApplication(com.alibaba.dubbo.config.ApplicationConfig 
application) {
+        super.setApplication(application);
+    }
+
+    public void setModule(com.alibaba.dubbo.config.ModuleConfig module) {
+        super.setModule(module);
+    }
+
+    public void setRegistry(com.alibaba.dubbo.config.RegistryConfig registry) {
+        super.setRegistry(registry);
+    }
+
+    public void addMethod(com.alibaba.dubbo.config.MethodConfig methodConfig) {
+        super.addMethod(methodConfig);
+    }
+
+    public void setMonitor(com.alibaba.dubbo.config.MonitorConfig monitor) {
+        super.setMonitor(monitor);
+    }
+
+    public void setMock(Boolean mock) {
+        if (mock == null) {
+            setMock((String) null);
+        } else {
+            setMock(String.valueOf(mock));
+        }
+    }
 }
diff --git 
a/dubbo-compatible/src/main/java/com/alibaba/dubbo/config/MethodConfig.java 
b/dubbo-compatible/src/main/java/com/alibaba/dubbo/config/MethodConfig.java
index c3d13e9216..ff368c7011 100644
--- a/dubbo-compatible/src/main/java/com/alibaba/dubbo/config/MethodConfig.java
+++ b/dubbo-compatible/src/main/java/com/alibaba/dubbo/config/MethodConfig.java
@@ -19,5 +19,15 @@ package com.alibaba.dubbo.config;
 
 @Deprecated
 public class MethodConfig extends org.apache.dubbo.config.MethodConfig {
+    public void addArgument(com.alibaba.dubbo.config.ArgumentConfig 
argumentConfig) {
+        super.addArgument(argumentConfig);
+    }
 
+    public void setMock(Boolean mock) {
+        if (mock == null) {
+            setMock((String) null);
+        } else {
+            setMock(String.valueOf(mock));
+        }
+    }
 }
diff --git 
a/dubbo-compatible/src/main/java/com/alibaba/dubbo/config/ModuleConfig.java 
b/dubbo-compatible/src/main/java/com/alibaba/dubbo/config/ModuleConfig.java
index 8b75279f8c..3b122efc56 100644
--- a/dubbo-compatible/src/main/java/com/alibaba/dubbo/config/ModuleConfig.java
+++ b/dubbo-compatible/src/main/java/com/alibaba/dubbo/config/ModuleConfig.java
@@ -26,4 +26,17 @@ public class ModuleConfig extends 
org.apache.dubbo.config.ModuleConfig {
     public ModuleConfig(String name) {
         super(name);
     }
+
+    public void setRegistry(com.alibaba.dubbo.config.RegistryConfig registry) {
+        super.setRegistry(registry);
+    }
+
+    public void setMonitor(com.alibaba.dubbo.config.MonitorConfig monitor) {
+        super.setMonitor(monitor);
+    }
+
+    @Override
+    public void setMonitor(String monitor) {
+        setMonitor(new com.alibaba.dubbo.config.MonitorConfig(monitor));
+    }
 }
diff --git 
a/dubbo-compatible/src/main/java/com/alibaba/dubbo/config/ProtocolConfig.java 
b/dubbo-compatible/src/main/java/com/alibaba/dubbo/config/ProtocolConfig.java
index 0835ef0cb8..3f716c3480 100644
--- 
a/dubbo-compatible/src/main/java/com/alibaba/dubbo/config/ProtocolConfig.java
+++ 
b/dubbo-compatible/src/main/java/com/alibaba/dubbo/config/ProtocolConfig.java
@@ -30,4 +30,10 @@ public class ProtocolConfig extends 
org.apache.dubbo.config.ProtocolConfig {
     public ProtocolConfig(String name, int port) {
         super(name, port);
     }
+
+    public void mergeProtocol(ProtocolConfig sourceConfig) {
+        super.mergeProtocol(sourceConfig);
+    }
+
+
 }
diff --git 
a/dubbo-compatible/src/main/java/com/alibaba/dubbo/config/ProviderConfig.java 
b/dubbo-compatible/src/main/java/com/alibaba/dubbo/config/ProviderConfig.java
index fb353bf2f0..f7ff0c345c 100644
--- 
a/dubbo-compatible/src/main/java/com/alibaba/dubbo/config/ProviderConfig.java
+++ 
b/dubbo-compatible/src/main/java/com/alibaba/dubbo/config/ProviderConfig.java
@@ -19,4 +19,40 @@ package com.alibaba.dubbo.config;
 
 @Deprecated
 public class ProviderConfig extends org.apache.dubbo.config.ProviderConfig {
+    public void setApplication(com.alibaba.dubbo.config.ApplicationConfig 
application) {
+        super.setApplication(application);
+    }
+
+    public void setModule(com.alibaba.dubbo.config.ModuleConfig module) {
+        super.setModule(module);
+    }
+
+    public void setRegistry(com.alibaba.dubbo.config.RegistryConfig registry) {
+        super.setRegistry(registry);
+    }
+
+    public void addMethod(com.alibaba.dubbo.config.MethodConfig methodConfig) {
+        super.addMethod(methodConfig);
+    }
+
+    public void setMonitor(com.alibaba.dubbo.config.MonitorConfig monitor) {
+        super.setMonitor(monitor);
+    }
+
+    public void setProtocol(com.alibaba.dubbo.config.ProtocolConfig protocol) {
+        super.setProtocol(protocol);
+    }
+
+    @Override
+    public void setProtocol(String protocol) {
+        setProtocol(new com.alibaba.dubbo.config.ProtocolConfig(protocol));
+    }
+
+    public void setMock(Boolean mock) {
+        if (mock == null) {
+            setMock((String) null);
+        } else {
+            setMock(String.valueOf(mock));
+        }
+    }
 }
diff --git 
a/dubbo-compatible/src/main/java/com/alibaba/dubbo/config/ReferenceConfig.java 
b/dubbo-compatible/src/main/java/com/alibaba/dubbo/config/ReferenceConfig.java
index 73f6819577..1e40b6f4c9 100644
--- 
a/dubbo-compatible/src/main/java/com/alibaba/dubbo/config/ReferenceConfig.java
+++ 
b/dubbo-compatible/src/main/java/com/alibaba/dubbo/config/ReferenceConfig.java
@@ -29,5 +29,39 @@ public class ReferenceConfig<T> extends 
org.apache.dubbo.config.ReferenceConfig<
         super(reference);
     }
 
+    public void setConsumer(com.alibaba.dubbo.config.ConsumerConfig consumer) {
+        super.setConsumer(consumer);
+    }
+
+    public void setApplication(com.alibaba.dubbo.config.ApplicationConfig 
application) {
+        super.setApplication(application);
+    }
+
+    public void setModule(com.alibaba.dubbo.config.ModuleConfig module) {
+        super.setModule(module);
+    }
+
+    public void setRegistry(com.alibaba.dubbo.config.RegistryConfig registry) {
+        super.setRegistry(registry);
+    }
 
+    public void addMethod(com.alibaba.dubbo.config.MethodConfig methodConfig) {
+        super.addMethod(methodConfig);
+    }
+
+    public void setMonitor(com.alibaba.dubbo.config.MonitorConfig monitor) {
+        super.setMonitor(monitor);
+    }
+
+    public void setMock(Boolean mock) {
+        if (mock == null) {
+            setMock((String) null);
+        } else {
+            setMock(String.valueOf(mock));
+        }
+    }
+
+    public void setInterfaceClass(Class<?> interfaceClass) {
+        setInterface(interfaceClass);
+    }
 }
diff --git 
a/dubbo-compatible/src/main/java/com/alibaba/dubbo/config/ServiceConfig.java 
b/dubbo-compatible/src/main/java/com/alibaba/dubbo/config/ServiceConfig.java
index f0f22d76cb..e874a59798 100644
--- a/dubbo-compatible/src/main/java/com/alibaba/dubbo/config/ServiceConfig.java
+++ b/dubbo-compatible/src/main/java/com/alibaba/dubbo/config/ServiceConfig.java
@@ -19,6 +19,9 @@ package com.alibaba.dubbo.config;
 
 import org.apache.dubbo.config.annotation.Service;
 
+import java.util.ArrayList;
+import java.util.List;
+
 @Deprecated
 public class ServiceConfig<T> extends org.apache.dubbo.config.ServiceConfig<T> 
{
 
@@ -28,4 +31,97 @@ public class ServiceConfig<T> extends 
org.apache.dubbo.config.ServiceConfig<T> {
     public ServiceConfig(Service service) {
         super(service);
     }
+
+    public void setProvider(com.alibaba.dubbo.config.ProviderConfig provider) {
+        super.setProvider(provider);
+    }
+
+    public void setApplication(com.alibaba.dubbo.config.ApplicationConfig 
application) {
+        super.setApplication(application);
+    }
+
+    public void setModule(com.alibaba.dubbo.config.ModuleConfig module) {
+        super.setModule(module);
+    }
+
+    public void setRegistry(com.alibaba.dubbo.config.RegistryConfig registry) {
+        super.setRegistry(registry);
+    }
+
+    public void addMethod(com.alibaba.dubbo.config.MethodConfig methodConfig) {
+        super.addMethod(methodConfig);
+    }
+
+    public com.alibaba.dubbo.config.MonitorConfig getMonitor() {
+        org.apache.dubbo.config.MonitorConfig monitorConfig = 
super.getMonitor();
+        if (monitorConfig == null) {
+            return null;
+        }
+        if (monitorConfig instanceof com.alibaba.dubbo.config.MonitorConfig) {
+            return (com.alibaba.dubbo.config.MonitorConfig) monitorConfig;
+        }
+        throw new IllegalArgumentException("Monitor has not been set with type 
com.alibaba.dubbo.config.MonitorConfig. " +
+            "Found " + monitorConfig.getClass().getName() + " instead.");
+    }
+
+    public void setMonitor(com.alibaba.dubbo.config.MonitorConfig monitor) {
+        super.setMonitor(monitor);
+    }
+
+    public void setProtocol(com.alibaba.dubbo.config.ProtocolConfig protocol) {
+        super.setProtocol(protocol);
+    }
+
+    public void setMock(Boolean mock) {
+        if (mock == null) {
+            setMock((String) null);
+        } else {
+            setMock(String.valueOf(mock));
+        }
+    }
+
+    public void setProviders(List<ProviderConfig> providers) {
+        setProtocols(convertProviderToProtocol(providers));
+    }
+
+    private static List<ProtocolConfig> 
convertProviderToProtocol(List<ProviderConfig> providers) {
+        if (providers == null || providers.isEmpty()) {
+            return null;
+        }
+        List<ProtocolConfig> protocols = new 
ArrayList<ProtocolConfig>(providers.size());
+        for (ProviderConfig provider : providers) {
+            protocols.add(convertProviderToProtocol(provider));
+        }
+        return protocols;
+    }
+
+    private static ProtocolConfig convertProviderToProtocol(ProviderConfig 
provider) {
+        ProtocolConfig protocol = new ProtocolConfig();
+        protocol.setName(provider.getProtocol().getName());
+        protocol.setServer(provider.getServer());
+        protocol.setClient(provider.getClient());
+        protocol.setCodec(provider.getCodec());
+        protocol.setHost(provider.getHost());
+        protocol.setPort(provider.getPort());
+        protocol.setPath(provider.getPath());
+        protocol.setPayload(provider.getPayload());
+        protocol.setThreads(provider.getThreads());
+        protocol.setParameters(provider.getParameters());
+        return protocol;
+    }
+
+    private static ProviderConfig convertProtocolToProvider(ProtocolConfig 
protocol) {
+        ProviderConfig provider = new ProviderConfig();
+        provider.setProtocol(protocol);
+        provider.setServer(protocol.getServer());
+        provider.setClient(protocol.getClient());
+        provider.setCodec(protocol.getCodec());
+        provider.setHost(protocol.getHost());
+        provider.setPort(protocol.getPort());
+        provider.setPath(protocol.getPath());
+        provider.setPayload(protocol.getPayload());
+        provider.setThreads(protocol.getThreads());
+        provider.setParameters(protocol.getParameters());
+        return provider;
+    }
 }
diff --git 
a/dubbo-compatible/src/test/java/org/apache/dubbo/config/ModuleConfigTest.java 
b/dubbo-compatible/src/test/java/org/apache/dubbo/config/ModuleConfigTest.java
index 1075f15b9f..45c60bbb20 100644
--- 
a/dubbo-compatible/src/test/java/org/apache/dubbo/config/ModuleConfigTest.java
+++ 
b/dubbo-compatible/src/test/java/org/apache/dubbo/config/ModuleConfigTest.java
@@ -18,6 +18,7 @@
 package org.apache.dubbo.config;
 
 import com.alibaba.dubbo.config.ModuleConfig;
+import com.alibaba.dubbo.config.MonitorConfig;
 import com.alibaba.dubbo.config.RegistryConfig;
 import org.hamcrest.Matchers;
 import org.junit.jupiter.api.Test;
diff --git 
a/dubbo-compatible/src/test/java/org/apache/dubbo/config/SignatureTest.java 
b/dubbo-compatible/src/test/java/org/apache/dubbo/config/SignatureTest.java
new file mode 100644
index 0000000000..ac1d1647dc
--- /dev/null
+++ b/dubbo-compatible/src/test/java/org/apache/dubbo/config/SignatureTest.java
@@ -0,0 +1,67 @@
+/*
+ * 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.config;
+
+import org.apache.dubbo.common.utils.IOUtils;
+import org.apache.dubbo.common.utils.StringUtils;
+
+import org.junit.jupiter.params.ParameterizedTest;
+import org.junit.jupiter.params.provider.ValueSource;
+
+import java.io.IOException;
+import java.lang.reflect.Method;
+import java.util.Arrays;
+import java.util.Set;
+import java.util.stream.Collectors;
+
+import static org.hamcrest.MatcherAssert.assertThat;
+import static org.hamcrest.collection.IsCollectionWithSize.hasSize;
+
+public class SignatureTest {
+
+    @ParameterizedTest
+    @ValueSource(classes = {
+        com.alibaba.dubbo.config.ApplicationConfig.class,
+        com.alibaba.dubbo.config.ArgumentConfig.class,
+        com.alibaba.dubbo.config.ConsumerConfig.class,
+        com.alibaba.dubbo.config.MethodConfig.class,
+        com.alibaba.dubbo.config.ModuleConfig.class,
+        com.alibaba.dubbo.config.MonitorConfig.class,
+        com.alibaba.dubbo.config.ProtocolConfig.class,
+        com.alibaba.dubbo.config.ProviderConfig.class,
+        com.alibaba.dubbo.config.ReferenceConfig.class,
+        com.alibaba.dubbo.config.RegistryConfig.class,
+        com.alibaba.dubbo.config.ServiceConfig.class})
+    void test(Class<?> targetClass) throws IOException {
+        String[] lines = IOUtils.readLines(
+            this.getClass().getClassLoader().getResourceAsStream("definition/" 
+ targetClass.getName()));
+
+        // only compare setter now.
+        // getter cannot make it compatible with the old version.
+        Set<String> setters = Arrays.stream(lines)
+            .filter(StringUtils::isNotEmpty)
+            .filter(s -> !s.startsWith("//"))
+            .filter(s -> s.contains("set"))
+            .collect(Collectors.toSet());
+
+        for (Method method : targetClass.getMethods()) {
+            
setters.remove(method.toString().replace(method.getDeclaringClass().getName() + 
".", targetClass.getName() + "."));
+        }
+
+        assertThat(setters.toString(), setters, hasSize(0));
+    }
+}
diff --git 
a/dubbo-compatible/src/test/resources/definition/com.alibaba.dubbo.config.ApplicationConfig
 
b/dubbo-compatible/src/test/resources/definition/com.alibaba.dubbo.config.ApplicationConfig
new file mode 100644
index 0000000000..3f394402ed
--- /dev/null
+++ 
b/dubbo-compatible/src/test/resources/definition/com.alibaba.dubbo.config.ApplicationConfig
@@ -0,0 +1,60 @@
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+//
+
+public void 
com.alibaba.dubbo.config.ApplicationConfig.setVersion(java.lang.String)
+public java.lang.String 
com.alibaba.dubbo.config.ApplicationConfig.getOrganization()
+public void 
com.alibaba.dubbo.config.ApplicationConfig.setOrganization(java.lang.String)
+public java.lang.String 
com.alibaba.dubbo.config.ApplicationConfig.getArchitecture()
+public void 
com.alibaba.dubbo.config.ApplicationConfig.setArchitecture(java.lang.String)
+public java.lang.String 
com.alibaba.dubbo.config.ApplicationConfig.getEnvironment()
+public void 
com.alibaba.dubbo.config.ApplicationConfig.setEnvironment(java.lang.String)
+public com.alibaba.dubbo.config.RegistryConfig 
com.alibaba.dubbo.config.ApplicationConfig.getRegistry()
+public void 
com.alibaba.dubbo.config.ApplicationConfig.setRegistry(com.alibaba.dubbo.config.RegistryConfig)
+public java.util.List 
com.alibaba.dubbo.config.ApplicationConfig.getRegistries()
+public void 
com.alibaba.dubbo.config.ApplicationConfig.setRegistries(java.util.List)
+public com.alibaba.dubbo.config.MonitorConfig 
com.alibaba.dubbo.config.ApplicationConfig.getMonitor()
+public void 
com.alibaba.dubbo.config.ApplicationConfig.setMonitor(java.lang.String)
+public void 
com.alibaba.dubbo.config.ApplicationConfig.setMonitor(com.alibaba.dubbo.config.MonitorConfig)
+public java.lang.String 
com.alibaba.dubbo.config.ApplicationConfig.getCompiler()
+public void 
com.alibaba.dubbo.config.ApplicationConfig.setCompiler(java.lang.String)
+public void 
com.alibaba.dubbo.config.ApplicationConfig.setLogger(java.lang.String)
+public java.lang.String 
com.alibaba.dubbo.config.ApplicationConfig.getDumpDirectory()
+public void 
com.alibaba.dubbo.config.ApplicationConfig.setDumpDirectory(java.lang.String)
+public java.lang.Boolean 
com.alibaba.dubbo.config.ApplicationConfig.getQosEnable()
+public void 
com.alibaba.dubbo.config.ApplicationConfig.setQosEnable(java.lang.Boolean)
+public java.lang.Integer 
com.alibaba.dubbo.config.ApplicationConfig.getQosPort()
+public void 
com.alibaba.dubbo.config.ApplicationConfig.setQosPort(java.lang.Integer)
+public java.lang.Boolean 
com.alibaba.dubbo.config.ApplicationConfig.getQosAcceptForeignIp()
+public void 
com.alibaba.dubbo.config.ApplicationConfig.setQosAcceptForeignIp(java.lang.Boolean)
+public java.lang.String com.alibaba.dubbo.config.ApplicationConfig.getName()
+public java.lang.Boolean com.alibaba.dubbo.config.ApplicationConfig.isDefault()
+public void 
com.alibaba.dubbo.config.ApplicationConfig.setName(java.lang.String)
+public java.util.Map com.alibaba.dubbo.config.ApplicationConfig.getParameters()
+public void 
com.alibaba.dubbo.config.ApplicationConfig.setDefault(java.lang.Boolean)
+public java.lang.String com.alibaba.dubbo.config.ApplicationConfig.getLogger()
+public java.lang.String com.alibaba.dubbo.config.ApplicationConfig.getOwner()
+public void 
com.alibaba.dubbo.config.ApplicationConfig.setOwner(java.lang.String)
+public java.lang.String com.alibaba.dubbo.config.ApplicationConfig.getVersion()
+public void 
com.alibaba.dubbo.config.ApplicationConfig.setParameters(java.util.Map)
+public void com.alibaba.dubbo.config.ApplicationConfig.setId(java.lang.String)
+public java.lang.String com.alibaba.dubbo.config.ApplicationConfig.toString()
+public java.lang.String com.alibaba.dubbo.config.ApplicationConfig.getId()
+public final void com.alibaba.dubbo.config.ApplicationConfig.wait(long,int) 
throws java.lang.InterruptedException
+public final native void com.alibaba.dubbo.config.ApplicationConfig.wait(long) 
throws java.lang.InterruptedException
+public final void com.alibaba.dubbo.config.ApplicationConfig.wait() throws 
java.lang.InterruptedException
+public boolean 
com.alibaba.dubbo.config.ApplicationConfig.equals(java.lang.Object)
+public native int com.alibaba.dubbo.config.ApplicationConfig.hashCode()
+public final native java.lang.Class 
com.alibaba.dubbo.config.ApplicationConfig.getClass()
+public final native void com.alibaba.dubbo.config.ApplicationConfig.notify()
+public final native void com.alibaba.dubbo.config.ApplicationConfig.notifyAll()
diff --git 
a/dubbo-compatible/src/test/resources/definition/com.alibaba.dubbo.config.ArgumentConfig
 
b/dubbo-compatible/src/test/resources/definition/com.alibaba.dubbo.config.ArgumentConfig
new file mode 100644
index 0000000000..1251574442
--- /dev/null
+++ 
b/dubbo-compatible/src/test/resources/definition/com.alibaba.dubbo.config.ArgumentConfig
@@ -0,0 +1,29 @@
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+//
+
+public void 
com.alibaba.dubbo.config.ArgumentConfig.setCallback(java.lang.Boolean)
+public java.lang.Boolean com.alibaba.dubbo.config.ArgumentConfig.isCallback()
+public void com.alibaba.dubbo.config.ArgumentConfig.setIndex(java.lang.Integer)
+public java.lang.String com.alibaba.dubbo.config.ArgumentConfig.getType()
+public java.lang.Integer com.alibaba.dubbo.config.ArgumentConfig.getIndex()
+public void com.alibaba.dubbo.config.ArgumentConfig.setType(java.lang.String)
+public final void com.alibaba.dubbo.config.ArgumentConfig.wait(long,int) 
throws java.lang.InterruptedException
+public final native void com.alibaba.dubbo.config.ArgumentConfig.wait(long) 
throws java.lang.InterruptedException
+public final void com.alibaba.dubbo.config.ArgumentConfig.wait() throws 
java.lang.InterruptedException
+public boolean com.alibaba.dubbo.config.ArgumentConfig.equals(java.lang.Object)
+public java.lang.String com.alibaba.dubbo.config.ArgumentConfig.toString()
+public native int com.alibaba.dubbo.config.ArgumentConfig.hashCode()
+public final native java.lang.Class 
com.alibaba.dubbo.config.ArgumentConfig.getClass()
+public final native void com.alibaba.dubbo.config.ArgumentConfig.notify()
+public final native void com.alibaba.dubbo.config.ArgumentConfig.notifyAll()
diff --git 
a/dubbo-compatible/src/test/resources/definition/com.alibaba.dubbo.config.ConsumerConfig
 
b/dubbo-compatible/src/test/resources/definition/com.alibaba.dubbo.config.ConsumerConfig
new file mode 100644
index 0000000000..f0cce4aa0a
--- /dev/null
+++ 
b/dubbo-compatible/src/test/resources/definition/com.alibaba.dubbo.config.ConsumerConfig
@@ -0,0 +1,123 @@
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+//
+
+public void 
com.alibaba.dubbo.config.ConsumerConfig.setTimeout(java.lang.Integer)
+public java.lang.String com.alibaba.dubbo.config.ConsumerConfig.getClient()
+public void com.alibaba.dubbo.config.ConsumerConfig.setClient(java.lang.String)
+public java.lang.String com.alibaba.dubbo.config.ConsumerConfig.getThreadpool()
+public void 
com.alibaba.dubbo.config.ConsumerConfig.setThreadpool(java.lang.String)
+public java.lang.Integer 
com.alibaba.dubbo.config.ConsumerConfig.getCorethreads()
+public void 
com.alibaba.dubbo.config.ConsumerConfig.setCorethreads(java.lang.Integer)
+public void 
com.alibaba.dubbo.config.ConsumerConfig.setThreads(java.lang.Integer)
+public java.lang.Integer com.alibaba.dubbo.config.ConsumerConfig.getQueues()
+public void 
com.alibaba.dubbo.config.ConsumerConfig.setQueues(java.lang.Integer)
+public java.lang.Boolean com.alibaba.dubbo.config.ConsumerConfig.getDefault()
+public java.lang.Boolean com.alibaba.dubbo.config.ConsumerConfig.isDefault()
+public java.lang.Integer com.alibaba.dubbo.config.ConsumerConfig.getThreads()
+public void 
com.alibaba.dubbo.config.ConsumerConfig.setDefault(java.lang.Boolean)
+public void 
com.alibaba.dubbo.config.ConsumerConfig.setVersion(java.lang.String)
+public void 
com.alibaba.dubbo.config.ConsumerConfig.setGeneric(java.lang.Boolean)
+public void 
com.alibaba.dubbo.config.ConsumerConfig.setGeneric(java.lang.String)
+public java.lang.String com.alibaba.dubbo.config.ConsumerConfig.getGeneric()
+public void 
com.alibaba.dubbo.config.ConsumerConfig.setListener(java.lang.String)
+public void 
com.alibaba.dubbo.config.ConsumerConfig.setOnconnect(java.lang.String)
+public void 
com.alibaba.dubbo.config.ConsumerConfig.setOndisconnect(java.lang.String)
+public java.lang.Boolean com.alibaba.dubbo.config.ConsumerConfig.getStubevent()
+public java.lang.String com.alibaba.dubbo.config.ConsumerConfig.getReconnect()
+public void 
com.alibaba.dubbo.config.ConsumerConfig.setReconnect(java.lang.String)
+public java.lang.Boolean com.alibaba.dubbo.config.ConsumerConfig.getSticky()
+public void 
com.alibaba.dubbo.config.ConsumerConfig.setSticky(java.lang.Boolean)
+public java.lang.Boolean com.alibaba.dubbo.config.ConsumerConfig.getLazy()
+public void com.alibaba.dubbo.config.ConsumerConfig.setInit(java.lang.Boolean)
+public void com.alibaba.dubbo.config.ConsumerConfig.setInjvm(java.lang.Boolean)
+public void com.alibaba.dubbo.config.ConsumerConfig.setLazy(java.lang.Boolean)
+public java.lang.Boolean com.alibaba.dubbo.config.ConsumerConfig.isInjvm()
+public void com.alibaba.dubbo.config.ConsumerConfig.setCheck(java.lang.Boolean)
+public java.lang.Boolean com.alibaba.dubbo.config.ConsumerConfig.isCheck()
+public void com.alibaba.dubbo.config.ConsumerConfig.setGroup(java.lang.String)
+public java.lang.String com.alibaba.dubbo.config.ConsumerConfig.getGroup()
+public java.lang.Boolean com.alibaba.dubbo.config.ConsumerConfig.isInit()
+public java.lang.Boolean com.alibaba.dubbo.config.ConsumerConfig.isGeneric()
+public java.lang.String com.alibaba.dubbo.config.ConsumerConfig.getFilter()
+public java.lang.String com.alibaba.dubbo.config.ConsumerConfig.getListener()
+public java.lang.String com.alibaba.dubbo.config.ConsumerConfig.getVersion()
+public com.alibaba.dubbo.config.RegistryConfig 
com.alibaba.dubbo.config.ConsumerConfig.getRegistry()
+public void 
com.alibaba.dubbo.config.ConsumerConfig.setRegistry(com.alibaba.dubbo.config.RegistryConfig)
+public java.util.List com.alibaba.dubbo.config.ConsumerConfig.getRegistries()
+public void 
com.alibaba.dubbo.config.ConsumerConfig.setRegistries(java.util.List)
+public com.alibaba.dubbo.config.MonitorConfig 
com.alibaba.dubbo.config.ConsumerConfig.getMonitor()
+public void 
com.alibaba.dubbo.config.ConsumerConfig.setMonitor(com.alibaba.dubbo.config.MonitorConfig)
+public void 
com.alibaba.dubbo.config.ConsumerConfig.setMonitor(java.lang.String)
+public java.lang.String com.alibaba.dubbo.config.ConsumerConfig.getCluster()
+public void 
com.alibaba.dubbo.config.ConsumerConfig.setCluster(java.lang.String)
+public java.lang.Integer 
com.alibaba.dubbo.config.ConsumerConfig.getConnections()
+public void 
com.alibaba.dubbo.config.ConsumerConfig.setConnections(java.lang.Integer)
+public com.alibaba.dubbo.config.ApplicationConfig 
com.alibaba.dubbo.config.ConsumerConfig.getApplication()
+public void 
com.alibaba.dubbo.config.ConsumerConfig.setApplication(com.alibaba.dubbo.config.ApplicationConfig)
+public com.alibaba.dubbo.config.ModuleConfig 
com.alibaba.dubbo.config.ConsumerConfig.getModule()
+public void 
com.alibaba.dubbo.config.ConsumerConfig.setModule(com.alibaba.dubbo.config.ModuleConfig)
+public java.lang.Integer com.alibaba.dubbo.config.ConsumerConfig.getCallbacks()
+public void 
com.alibaba.dubbo.config.ConsumerConfig.setCallbacks(java.lang.Integer)
+public java.lang.String com.alibaba.dubbo.config.ConsumerConfig.getOnconnect()
+public java.lang.String 
com.alibaba.dubbo.config.ConsumerConfig.getOndisconnect()
+public java.lang.String com.alibaba.dubbo.config.ConsumerConfig.getLocal()
+public void com.alibaba.dubbo.config.ConsumerConfig.setLocal(java.lang.String)
+public void com.alibaba.dubbo.config.ConsumerConfig.setLocal(java.lang.Boolean)
+public void com.alibaba.dubbo.config.ConsumerConfig.setStub(java.lang.Boolean)
+public void com.alibaba.dubbo.config.ConsumerConfig.setStub(java.lang.String)
+public java.lang.String com.alibaba.dubbo.config.ConsumerConfig.getProxy()
+public void com.alibaba.dubbo.config.ConsumerConfig.setProxy(java.lang.String)
+public java.lang.String com.alibaba.dubbo.config.ConsumerConfig.getLayer()
+public void com.alibaba.dubbo.config.ConsumerConfig.setLayer(java.lang.String)
+public void com.alibaba.dubbo.config.ConsumerConfig.setScope(java.lang.String)
+public void com.alibaba.dubbo.config.ConsumerConfig.setFilter(java.lang.String)
+public java.lang.String com.alibaba.dubbo.config.ConsumerConfig.getOwner()
+public java.lang.String com.alibaba.dubbo.config.ConsumerConfig.getScope()
+public void com.alibaba.dubbo.config.ConsumerConfig.setOwner(java.lang.String)
+public java.lang.String com.alibaba.dubbo.config.ConsumerConfig.getStub()
+public java.lang.Integer com.alibaba.dubbo.config.ConsumerConfig.getRetries()
+public void 
com.alibaba.dubbo.config.ConsumerConfig.setRetries(java.lang.Integer)
+public java.lang.String 
com.alibaba.dubbo.config.ConsumerConfig.getLoadbalance()
+public void 
com.alibaba.dubbo.config.ConsumerConfig.setLoadbalance(java.lang.String)
+public java.lang.Integer com.alibaba.dubbo.config.ConsumerConfig.getActives()
+public void 
com.alibaba.dubbo.config.ConsumerConfig.setActives(java.lang.Integer)
+public java.lang.String com.alibaba.dubbo.config.ConsumerConfig.getMerger()
+public void com.alibaba.dubbo.config.ConsumerConfig.setMerger(java.lang.String)
+public java.lang.String com.alibaba.dubbo.config.ConsumerConfig.getValidation()
+public void 
com.alibaba.dubbo.config.ConsumerConfig.setValidation(java.lang.String)
+public java.lang.Boolean com.alibaba.dubbo.config.ConsumerConfig.isAsync()
+public void com.alibaba.dubbo.config.ConsumerConfig.setForks(java.lang.Integer)
+public java.lang.Integer com.alibaba.dubbo.config.ConsumerConfig.getForks()
+public void com.alibaba.dubbo.config.ConsumerConfig.setAsync(java.lang.Boolean)
+public java.lang.Boolean com.alibaba.dubbo.config.ConsumerConfig.getSent()
+public void com.alibaba.dubbo.config.ConsumerConfig.setSent(java.lang.Boolean)
+public java.lang.String com.alibaba.dubbo.config.ConsumerConfig.getMock()
+public void com.alibaba.dubbo.config.ConsumerConfig.setMock(java.lang.String)
+public void com.alibaba.dubbo.config.ConsumerConfig.setMock(java.lang.Boolean)
+public void com.alibaba.dubbo.config.ConsumerConfig.setCache(java.lang.String)
+public java.util.Map com.alibaba.dubbo.config.ConsumerConfig.getParameters()
+public java.lang.String com.alibaba.dubbo.config.ConsumerConfig.getCache()
+public void 
com.alibaba.dubbo.config.ConsumerConfig.setParameters(java.util.Map)
+public java.lang.Integer com.alibaba.dubbo.config.ConsumerConfig.getTimeout()
+public void com.alibaba.dubbo.config.ConsumerConfig.setId(java.lang.String)
+public java.lang.String com.alibaba.dubbo.config.ConsumerConfig.toString()
+public java.lang.String com.alibaba.dubbo.config.ConsumerConfig.getId()
+public final void com.alibaba.dubbo.config.ConsumerConfig.wait(long,int) 
throws java.lang.InterruptedException
+public final native void com.alibaba.dubbo.config.ConsumerConfig.wait(long) 
throws java.lang.InterruptedException
+public final void com.alibaba.dubbo.config.ConsumerConfig.wait() throws 
java.lang.InterruptedException
+public boolean com.alibaba.dubbo.config.ConsumerConfig.equals(java.lang.Object)
+public native int com.alibaba.dubbo.config.ConsumerConfig.hashCode()
+public final native java.lang.Class 
com.alibaba.dubbo.config.ConsumerConfig.getClass()
+public final native void com.alibaba.dubbo.config.ConsumerConfig.notify()
+public final native void com.alibaba.dubbo.config.ConsumerConfig.notifyAll()
diff --git 
a/dubbo-compatible/src/test/resources/definition/com.alibaba.dubbo.config.MethodConfig
 
b/dubbo-compatible/src/test/resources/definition/com.alibaba.dubbo.config.MethodConfig
new file mode 100644
index 0000000000..4e0a752b04
--- /dev/null
+++ 
b/dubbo-compatible/src/test/resources/definition/com.alibaba.dubbo.config.MethodConfig
@@ -0,0 +1,81 @@
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+//
+
+public java.lang.Boolean com.alibaba.dubbo.config.MethodConfig.getSticky()
+public void com.alibaba.dubbo.config.MethodConfig.setSticky(java.lang.Boolean)
+public static java.util.List 
com.alibaba.dubbo.config.MethodConfig.constructMethodConfig(com.alibaba.dubbo.config.annotation.Method[])
+public java.lang.Boolean com.alibaba.dubbo.config.MethodConfig.isReliable()
+public void 
com.alibaba.dubbo.config.MethodConfig.setReliable(java.lang.Boolean)
+public java.lang.Integer com.alibaba.dubbo.config.MethodConfig.getExecutes()
+public void 
com.alibaba.dubbo.config.MethodConfig.setExecutes(java.lang.Integer)
+public java.lang.Boolean com.alibaba.dubbo.config.MethodConfig.getDeprecated()
+public void 
com.alibaba.dubbo.config.MethodConfig.setDeprecated(java.lang.Boolean)
+public java.util.List com.alibaba.dubbo.config.MethodConfig.getArguments()
+public void com.alibaba.dubbo.config.MethodConfig.setArguments(java.util.List)
+public java.lang.Object com.alibaba.dubbo.config.MethodConfig.getOnreturn()
+public void com.alibaba.dubbo.config.MethodConfig.setOnreturn(java.lang.Object)
+public java.lang.String 
com.alibaba.dubbo.config.MethodConfig.getOnreturnMethod()
+public void 
com.alibaba.dubbo.config.MethodConfig.setOnreturnMethod(java.lang.String)
+public java.lang.Object com.alibaba.dubbo.config.MethodConfig.getOnthrow()
+public void com.alibaba.dubbo.config.MethodConfig.setOnthrow(java.lang.Object)
+public java.lang.String 
com.alibaba.dubbo.config.MethodConfig.getOnthrowMethod()
+public void 
com.alibaba.dubbo.config.MethodConfig.setOnthrowMethod(java.lang.String)
+public java.lang.Object com.alibaba.dubbo.config.MethodConfig.getOninvoke()
+public void com.alibaba.dubbo.config.MethodConfig.setOninvoke(java.lang.Object)
+public java.lang.String 
com.alibaba.dubbo.config.MethodConfig.getOninvokeMethod()
+public void 
com.alibaba.dubbo.config.MethodConfig.setOninvokeMethod(java.lang.String)
+public void com.alibaba.dubbo.config.MethodConfig.setReturn(java.lang.Boolean)
+public java.lang.Boolean com.alibaba.dubbo.config.MethodConfig.isReturn()
+public java.lang.Integer com.alibaba.dubbo.config.MethodConfig.getStat()
+public void com.alibaba.dubbo.config.MethodConfig.setStat(java.lang.Integer)
+public java.lang.Boolean com.alibaba.dubbo.config.MethodConfig.isRetry()
+public void com.alibaba.dubbo.config.MethodConfig.setRetry(java.lang.Boolean)
+public java.lang.String com.alibaba.dubbo.config.MethodConfig.getName()
+public void com.alibaba.dubbo.config.MethodConfig.setName(java.lang.String)
+public void com.alibaba.dubbo.config.MethodConfig.setTimeout(java.lang.Integer)
+public java.lang.Integer com.alibaba.dubbo.config.MethodConfig.getRetries()
+public void com.alibaba.dubbo.config.MethodConfig.setRetries(java.lang.Integer)
+public java.lang.String com.alibaba.dubbo.config.MethodConfig.getLoadbalance()
+public void 
com.alibaba.dubbo.config.MethodConfig.setLoadbalance(java.lang.String)
+public java.lang.Integer com.alibaba.dubbo.config.MethodConfig.getActives()
+public void com.alibaba.dubbo.config.MethodConfig.setActives(java.lang.Integer)
+public java.lang.String com.alibaba.dubbo.config.MethodConfig.getMerger()
+public void com.alibaba.dubbo.config.MethodConfig.setMerger(java.lang.String)
+public java.lang.String com.alibaba.dubbo.config.MethodConfig.getValidation()
+public void 
com.alibaba.dubbo.config.MethodConfig.setValidation(java.lang.String)
+public java.lang.Boolean com.alibaba.dubbo.config.MethodConfig.isAsync()
+public void com.alibaba.dubbo.config.MethodConfig.setForks(java.lang.Integer)
+public java.lang.Integer com.alibaba.dubbo.config.MethodConfig.getForks()
+public void com.alibaba.dubbo.config.MethodConfig.setAsync(java.lang.Boolean)
+public java.lang.Boolean com.alibaba.dubbo.config.MethodConfig.getSent()
+public void com.alibaba.dubbo.config.MethodConfig.setSent(java.lang.Boolean)
+public java.lang.String com.alibaba.dubbo.config.MethodConfig.getMock()
+public void com.alibaba.dubbo.config.MethodConfig.setMock(java.lang.String)
+public void com.alibaba.dubbo.config.MethodConfig.setMock(java.lang.Boolean)
+public void com.alibaba.dubbo.config.MethodConfig.setCache(java.lang.String)
+public java.util.Map com.alibaba.dubbo.config.MethodConfig.getParameters()
+public java.lang.String com.alibaba.dubbo.config.MethodConfig.getCache()
+public void com.alibaba.dubbo.config.MethodConfig.setParameters(java.util.Map)
+public java.lang.Integer com.alibaba.dubbo.config.MethodConfig.getTimeout()
+public void com.alibaba.dubbo.config.MethodConfig.setId(java.lang.String)
+public java.lang.String com.alibaba.dubbo.config.MethodConfig.toString()
+public java.lang.String com.alibaba.dubbo.config.MethodConfig.getId()
+public final void com.alibaba.dubbo.config.MethodConfig.wait(long,int) throws 
java.lang.InterruptedException
+public final native void com.alibaba.dubbo.config.MethodConfig.wait(long) 
throws java.lang.InterruptedException
+public final void com.alibaba.dubbo.config.MethodConfig.wait() throws 
java.lang.InterruptedException
+public boolean com.alibaba.dubbo.config.MethodConfig.equals(java.lang.Object)
+public native int com.alibaba.dubbo.config.MethodConfig.hashCode()
+public final native java.lang.Class 
com.alibaba.dubbo.config.MethodConfig.getClass()
+public final native void com.alibaba.dubbo.config.MethodConfig.notify()
+public final native void com.alibaba.dubbo.config.MethodConfig.notifyAll()
diff --git 
a/dubbo-compatible/src/test/resources/definition/com.alibaba.dubbo.config.ModuleConfig
 
b/dubbo-compatible/src/test/resources/definition/com.alibaba.dubbo.config.ModuleConfig
new file mode 100644
index 0000000000..b1eebe9708
--- /dev/null
+++ 
b/dubbo-compatible/src/test/resources/definition/com.alibaba.dubbo.config.ModuleConfig
@@ -0,0 +1,42 @@
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+//
+
+public void com.alibaba.dubbo.config.ModuleConfig.setVersion(java.lang.String)
+public java.lang.String com.alibaba.dubbo.config.ModuleConfig.getOrganization()
+public void 
com.alibaba.dubbo.config.ModuleConfig.setOrganization(java.lang.String)
+public com.alibaba.dubbo.config.RegistryConfig 
com.alibaba.dubbo.config.ModuleConfig.getRegistry()
+public void 
com.alibaba.dubbo.config.ModuleConfig.setRegistry(com.alibaba.dubbo.config.RegistryConfig)
+public java.util.List com.alibaba.dubbo.config.ModuleConfig.getRegistries()
+public void com.alibaba.dubbo.config.ModuleConfig.setRegistries(java.util.List)
+public com.alibaba.dubbo.config.MonitorConfig 
com.alibaba.dubbo.config.ModuleConfig.getMonitor()
+public void com.alibaba.dubbo.config.ModuleConfig.setMonitor(java.lang.String)
+public void 
com.alibaba.dubbo.config.ModuleConfig.setMonitor(com.alibaba.dubbo.config.MonitorConfig)
+public java.lang.String com.alibaba.dubbo.config.ModuleConfig.getName()
+public java.lang.Boolean com.alibaba.dubbo.config.ModuleConfig.isDefault()
+public void com.alibaba.dubbo.config.ModuleConfig.setName(java.lang.String)
+public void com.alibaba.dubbo.config.ModuleConfig.setDefault(java.lang.Boolean)
+public java.lang.String com.alibaba.dubbo.config.ModuleConfig.getOwner()
+public void com.alibaba.dubbo.config.ModuleConfig.setOwner(java.lang.String)
+public java.lang.String com.alibaba.dubbo.config.ModuleConfig.getVersion()
+public void com.alibaba.dubbo.config.ModuleConfig.setId(java.lang.String)
+public java.lang.String com.alibaba.dubbo.config.ModuleConfig.toString()
+public java.lang.String com.alibaba.dubbo.config.ModuleConfig.getId()
+public final void com.alibaba.dubbo.config.ModuleConfig.wait(long,int) throws 
java.lang.InterruptedException
+public final native void com.alibaba.dubbo.config.ModuleConfig.wait(long) 
throws java.lang.InterruptedException
+public final void com.alibaba.dubbo.config.ModuleConfig.wait() throws 
java.lang.InterruptedException
+public boolean com.alibaba.dubbo.config.ModuleConfig.equals(java.lang.Object)
+public native int com.alibaba.dubbo.config.ModuleConfig.hashCode()
+public final native java.lang.Class 
com.alibaba.dubbo.config.ModuleConfig.getClass()
+public final native void com.alibaba.dubbo.config.ModuleConfig.notify()
+public final native void com.alibaba.dubbo.config.ModuleConfig.notifyAll()
diff --git 
a/dubbo-compatible/src/test/resources/definition/com.alibaba.dubbo.config.MonitorConfig
 
b/dubbo-compatible/src/test/resources/definition/com.alibaba.dubbo.config.MonitorConfig
new file mode 100644
index 0000000000..a5c1b40425
--- /dev/null
+++ 
b/dubbo-compatible/src/test/resources/definition/com.alibaba.dubbo.config.MonitorConfig
@@ -0,0 +1,43 @@
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+//
+
+public void com.alibaba.dubbo.config.MonitorConfig.setVersion(java.lang.String)
+public void 
com.alibaba.dubbo.config.MonitorConfig.setProtocol(java.lang.String)
+public java.lang.String com.alibaba.dubbo.config.MonitorConfig.getUsername()
+public void 
com.alibaba.dubbo.config.MonitorConfig.setUsername(java.lang.String)
+public void 
com.alibaba.dubbo.config.MonitorConfig.setPassword(java.lang.String)
+public void 
com.alibaba.dubbo.config.MonitorConfig.setInterval(java.lang.String)
+public java.lang.String com.alibaba.dubbo.config.MonitorConfig.getInterval()
+public void com.alibaba.dubbo.config.MonitorConfig.setGroup(java.lang.String)
+public java.lang.String com.alibaba.dubbo.config.MonitorConfig.getGroup()
+public java.lang.String com.alibaba.dubbo.config.MonitorConfig.getAddress()
+public java.lang.Boolean com.alibaba.dubbo.config.MonitorConfig.isDefault()
+public java.util.Map com.alibaba.dubbo.config.MonitorConfig.getParameters()
+public java.lang.String com.alibaba.dubbo.config.MonitorConfig.getProtocol()
+public void 
com.alibaba.dubbo.config.MonitorConfig.setDefault(java.lang.Boolean)
+public java.lang.String com.alibaba.dubbo.config.MonitorConfig.getPassword()
+public void com.alibaba.dubbo.config.MonitorConfig.setAddress(java.lang.String)
+public java.lang.String com.alibaba.dubbo.config.MonitorConfig.getVersion()
+public void com.alibaba.dubbo.config.MonitorConfig.setParameters(java.util.Map)
+public void com.alibaba.dubbo.config.MonitorConfig.setId(java.lang.String)
+public java.lang.String com.alibaba.dubbo.config.MonitorConfig.toString()
+public java.lang.String com.alibaba.dubbo.config.MonitorConfig.getId()
+public final void com.alibaba.dubbo.config.MonitorConfig.wait(long,int) throws 
java.lang.InterruptedException
+public final native void com.alibaba.dubbo.config.MonitorConfig.wait(long) 
throws java.lang.InterruptedException
+public final void com.alibaba.dubbo.config.MonitorConfig.wait() throws 
java.lang.InterruptedException
+public boolean com.alibaba.dubbo.config.MonitorConfig.equals(java.lang.Object)
+public native int com.alibaba.dubbo.config.MonitorConfig.hashCode()
+public final native java.lang.Class 
com.alibaba.dubbo.config.MonitorConfig.getClass()
+public final native void com.alibaba.dubbo.config.MonitorConfig.notify()
+public final native void com.alibaba.dubbo.config.MonitorConfig.notifyAll()
diff --git 
a/dubbo-compatible/src/test/resources/definition/com.alibaba.dubbo.config.ProtocolConfig
 
b/dubbo-compatible/src/test/resources/definition/com.alibaba.dubbo.config.ProtocolConfig
new file mode 100644
index 0000000000..0f9cd68397
--- /dev/null
+++ 
b/dubbo-compatible/src/test/resources/definition/com.alibaba.dubbo.config.ProtocolConfig
@@ -0,0 +1,92 @@
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+//
+
+public java.lang.String com.alibaba.dubbo.config.ProtocolConfig.getClient()
+public void com.alibaba.dubbo.config.ProtocolConfig.setClient(java.lang.String)
+public java.lang.String com.alibaba.dubbo.config.ProtocolConfig.getThreadpool()
+public void 
com.alibaba.dubbo.config.ProtocolConfig.setThreadpool(java.lang.String)
+public void 
com.alibaba.dubbo.config.ProtocolConfig.setThreads(java.lang.Integer)
+public java.lang.Integer com.alibaba.dubbo.config.ProtocolConfig.getQueues()
+public void 
com.alibaba.dubbo.config.ProtocolConfig.setQueues(java.lang.Integer)
+public java.lang.String 
com.alibaba.dubbo.config.ProtocolConfig.getContextpath()
+public void 
com.alibaba.dubbo.config.ProtocolConfig.setContextpath(java.lang.String)
+public java.lang.Integer com.alibaba.dubbo.config.ProtocolConfig.getIothreads()
+public void 
com.alibaba.dubbo.config.ProtocolConfig.setIothreads(java.lang.Integer)
+public java.lang.Integer com.alibaba.dubbo.config.ProtocolConfig.getAccepts()
+public void 
com.alibaba.dubbo.config.ProtocolConfig.setAccepts(java.lang.Integer)
+public java.lang.String 
com.alibaba.dubbo.config.ProtocolConfig.getSerialization()
+public void 
com.alibaba.dubbo.config.ProtocolConfig.setSerialization(java.lang.String)
+public java.lang.String com.alibaba.dubbo.config.ProtocolConfig.getCharset()
+public void 
com.alibaba.dubbo.config.ProtocolConfig.setCharset(java.lang.String)
+public java.lang.Integer com.alibaba.dubbo.config.ProtocolConfig.getPayload()
+public void 
com.alibaba.dubbo.config.ProtocolConfig.setPayload(java.lang.Integer)
+public java.lang.Integer com.alibaba.dubbo.config.ProtocolConfig.getHeartbeat()
+public void 
com.alibaba.dubbo.config.ProtocolConfig.setHeartbeat(java.lang.Integer)
+public java.lang.String com.alibaba.dubbo.config.ProtocolConfig.getServer()
+public void com.alibaba.dubbo.config.ProtocolConfig.setServer(java.lang.String)
+public java.lang.String com.alibaba.dubbo.config.ProtocolConfig.getAccesslog()
+public void 
com.alibaba.dubbo.config.ProtocolConfig.setAccesslog(java.lang.String)
+public java.lang.String com.alibaba.dubbo.config.ProtocolConfig.getTelnet()
+public void com.alibaba.dubbo.config.ProtocolConfig.setTelnet(java.lang.String)
+public java.lang.String com.alibaba.dubbo.config.ProtocolConfig.getPrompt()
+public void com.alibaba.dubbo.config.ProtocolConfig.setPrompt(java.lang.String)
+public java.lang.String com.alibaba.dubbo.config.ProtocolConfig.getStatus()
+public void com.alibaba.dubbo.config.ProtocolConfig.setStatus(java.lang.String)
+public java.lang.Boolean com.alibaba.dubbo.config.ProtocolConfig.isRegister()
+public void 
com.alibaba.dubbo.config.ProtocolConfig.setRegister(java.lang.Boolean)
+public java.lang.String 
com.alibaba.dubbo.config.ProtocolConfig.getTransporter()
+public void 
com.alibaba.dubbo.config.ProtocolConfig.setTransporter(java.lang.String)
+public java.lang.String com.alibaba.dubbo.config.ProtocolConfig.getExchanger()
+public void 
com.alibaba.dubbo.config.ProtocolConfig.setExchanger(java.lang.String)
+public java.lang.String com.alibaba.dubbo.config.ProtocolConfig.getDispather()
+public void 
com.alibaba.dubbo.config.ProtocolConfig.setDispather(java.lang.String)
+public void 
com.alibaba.dubbo.config.ProtocolConfig.setDispatcher(java.lang.String)
+public java.lang.String com.alibaba.dubbo.config.ProtocolConfig.getNetworker()
+public void 
com.alibaba.dubbo.config.ProtocolConfig.setNetworker(java.lang.String)
+public java.lang.String com.alibaba.dubbo.config.ProtocolConfig.getOptimizer()
+public void 
com.alibaba.dubbo.config.ProtocolConfig.setOptimizer(java.lang.String)
+public void 
com.alibaba.dubbo.config.ProtocolConfig.setExtension(java.lang.String)
+public void com.alibaba.dubbo.config.ProtocolConfig.setHost(java.lang.String)
+public java.lang.String com.alibaba.dubbo.config.ProtocolConfig.getCodec()
+public void com.alibaba.dubbo.config.ProtocolConfig.setCodec(java.lang.String)
+public java.lang.String com.alibaba.dubbo.config.ProtocolConfig.getName()
+public java.lang.Boolean com.alibaba.dubbo.config.ProtocolConfig.isDefault()
+public void com.alibaba.dubbo.config.ProtocolConfig.destroy()
+public void com.alibaba.dubbo.config.ProtocolConfig.setName(java.lang.String)
+public java.lang.Integer com.alibaba.dubbo.config.ProtocolConfig.getThreads()
+public java.util.Map com.alibaba.dubbo.config.ProtocolConfig.getParameters()
+public java.lang.String com.alibaba.dubbo.config.ProtocolConfig.getPath()
+public java.lang.String com.alibaba.dubbo.config.ProtocolConfig.getHost()
+public java.lang.Integer com.alibaba.dubbo.config.ProtocolConfig.getPort()
+public void 
com.alibaba.dubbo.config.ProtocolConfig.setDefault(java.lang.Boolean)
+public java.lang.String com.alibaba.dubbo.config.ProtocolConfig.getExtension()
+public void com.alibaba.dubbo.config.ProtocolConfig.setPort(java.lang.Integer)
+public void 
com.alibaba.dubbo.config.ProtocolConfig.setKeepAlive(java.lang.Boolean)
+public java.lang.Boolean com.alibaba.dubbo.config.ProtocolConfig.getKeepAlive()
+public void com.alibaba.dubbo.config.ProtocolConfig.setPath(java.lang.String)
+public java.lang.String com.alibaba.dubbo.config.ProtocolConfig.getDispatcher()
+public void 
com.alibaba.dubbo.config.ProtocolConfig.setBuffer(java.lang.Integer)
+public java.lang.Integer com.alibaba.dubbo.config.ProtocolConfig.getBuffer()
+public void 
com.alibaba.dubbo.config.ProtocolConfig.setParameters(java.util.Map)
+public void com.alibaba.dubbo.config.ProtocolConfig.setId(java.lang.String)
+public java.lang.String com.alibaba.dubbo.config.ProtocolConfig.toString()
+public java.lang.String com.alibaba.dubbo.config.ProtocolConfig.getId()
+public final void com.alibaba.dubbo.config.ProtocolConfig.wait(long,int) 
throws java.lang.InterruptedException
+public final native void com.alibaba.dubbo.config.ProtocolConfig.wait(long) 
throws java.lang.InterruptedException
+public final void com.alibaba.dubbo.config.ProtocolConfig.wait() throws 
java.lang.InterruptedException
+public boolean com.alibaba.dubbo.config.ProtocolConfig.equals(java.lang.Object)
+public native int com.alibaba.dubbo.config.ProtocolConfig.hashCode()
+public final native java.lang.Class 
com.alibaba.dubbo.config.ProtocolConfig.getClass()
+public final native void com.alibaba.dubbo.config.ProtocolConfig.notify()
+public final native void com.alibaba.dubbo.config.ProtocolConfig.notifyAll()
diff --git 
a/dubbo-compatible/src/test/resources/definition/com.alibaba.dubbo.config.ProviderConfig
 
b/dubbo-compatible/src/test/resources/definition/com.alibaba.dubbo.config.ProviderConfig
new file mode 100644
index 0000000000..c8479bff05
--- /dev/null
+++ 
b/dubbo-compatible/src/test/resources/definition/com.alibaba.dubbo.config.ProviderConfig
@@ -0,0 +1,176 @@
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+//
+
+public java.lang.String com.alibaba.dubbo.config.ProviderConfig.getClient()
+public void com.alibaba.dubbo.config.ProviderConfig.setClient(java.lang.String)
+public java.lang.String com.alibaba.dubbo.config.ProviderConfig.getThreadpool()
+public void 
com.alibaba.dubbo.config.ProviderConfig.setThreadpool(java.lang.String)
+public void 
com.alibaba.dubbo.config.ProviderConfig.setThreads(java.lang.Integer)
+public java.lang.Integer com.alibaba.dubbo.config.ProviderConfig.getQueues()
+public void 
com.alibaba.dubbo.config.ProviderConfig.setQueues(java.lang.Integer)
+public java.lang.String com.alibaba.dubbo.config.ProviderConfig.getCluster()
+public java.lang.Integer 
com.alibaba.dubbo.config.ProviderConfig.getConnections()
+public void 
com.alibaba.dubbo.config.ProviderConfig.setProtocol(java.lang.String)
+public java.lang.Integer com.alibaba.dubbo.config.ProviderConfig.getRetries()
+public java.lang.String 
com.alibaba.dubbo.config.ProviderConfig.getLoadbalance()
+public java.lang.Integer com.alibaba.dubbo.config.ProviderConfig.getActives()
+public java.lang.String 
com.alibaba.dubbo.config.ProviderConfig.getContextpath()
+public void 
com.alibaba.dubbo.config.ProviderConfig.setContextpath(java.lang.String)
+public java.lang.Integer com.alibaba.dubbo.config.ProviderConfig.getIothreads()
+public void 
com.alibaba.dubbo.config.ProviderConfig.setIothreads(java.lang.Integer)
+public java.lang.Integer com.alibaba.dubbo.config.ProviderConfig.getAccepts()
+public void 
com.alibaba.dubbo.config.ProviderConfig.setAccepts(java.lang.Integer)
+public java.lang.String com.alibaba.dubbo.config.ProviderConfig.getCharset()
+public void 
com.alibaba.dubbo.config.ProviderConfig.setCharset(java.lang.String)
+public java.lang.Integer com.alibaba.dubbo.config.ProviderConfig.getPayload()
+public void 
com.alibaba.dubbo.config.ProviderConfig.setPayload(java.lang.Integer)
+public java.lang.String com.alibaba.dubbo.config.ProviderConfig.getServer()
+public void com.alibaba.dubbo.config.ProviderConfig.setServer(java.lang.String)
+public java.lang.String com.alibaba.dubbo.config.ProviderConfig.getTelnet()
+public void com.alibaba.dubbo.config.ProviderConfig.setTelnet(java.lang.String)
+public java.lang.String com.alibaba.dubbo.config.ProviderConfig.getPrompt()
+public void com.alibaba.dubbo.config.ProviderConfig.setPrompt(java.lang.String)
+public java.lang.String com.alibaba.dubbo.config.ProviderConfig.getStatus()
+public void com.alibaba.dubbo.config.ProviderConfig.setStatus(java.lang.String)
+public java.lang.String 
com.alibaba.dubbo.config.ProviderConfig.getTransporter()
+public void 
com.alibaba.dubbo.config.ProviderConfig.setTransporter(java.lang.String)
+public java.lang.String com.alibaba.dubbo.config.ProviderConfig.getExchanger()
+public void 
com.alibaba.dubbo.config.ProviderConfig.setExchanger(java.lang.String)
+public java.lang.String com.alibaba.dubbo.config.ProviderConfig.getDispather()
+public void 
com.alibaba.dubbo.config.ProviderConfig.setDispather(java.lang.String)
+public void 
com.alibaba.dubbo.config.ProviderConfig.setDispatcher(java.lang.String)
+public java.lang.String com.alibaba.dubbo.config.ProviderConfig.getNetworker()
+public void 
com.alibaba.dubbo.config.ProviderConfig.setNetworker(java.lang.String)
+public java.lang.Boolean com.alibaba.dubbo.config.ProviderConfig.isAsync()
+public void com.alibaba.dubbo.config.ProviderConfig.setHost(java.lang.String)
+public java.lang.String com.alibaba.dubbo.config.ProviderConfig.getCodec()
+public void com.alibaba.dubbo.config.ProviderConfig.setCodec(java.lang.String)
+public java.lang.Integer com.alibaba.dubbo.config.ProviderConfig.getWait()
+public void com.alibaba.dubbo.config.ProviderConfig.setWait(java.lang.Integer)
+public java.lang.Boolean com.alibaba.dubbo.config.ProviderConfig.isDefault()
+public java.lang.Integer com.alibaba.dubbo.config.ProviderConfig.getThreads()
+public java.lang.String com.alibaba.dubbo.config.ProviderConfig.getPath()
+public java.lang.String com.alibaba.dubbo.config.ProviderConfig.getHost()
+public java.lang.Integer com.alibaba.dubbo.config.ProviderConfig.getPort()
+public void 
com.alibaba.dubbo.config.ProviderConfig.setDefault(java.lang.Boolean)
+public void com.alibaba.dubbo.config.ProviderConfig.setPort(java.lang.Integer)
+public void com.alibaba.dubbo.config.ProviderConfig.setPath(java.lang.String)
+public java.lang.String com.alibaba.dubbo.config.ProviderConfig.getDispatcher()
+public void 
com.alibaba.dubbo.config.ProviderConfig.setBuffer(java.lang.Integer)
+public java.lang.Integer com.alibaba.dubbo.config.ProviderConfig.getBuffer()
+public java.lang.Integer com.alibaba.dubbo.config.ProviderConfig.getTimeout()
+public void 
com.alibaba.dubbo.config.ProviderConfig.setVersion(java.lang.String)
+public void 
com.alibaba.dubbo.config.ProviderConfig.setListener(java.lang.String)
+public void 
com.alibaba.dubbo.config.ProviderConfig.setProtocol(com.alibaba.dubbo.config.ProtocolConfig)
+public java.lang.Integer com.alibaba.dubbo.config.ProviderConfig.getExecutes()
+public void 
com.alibaba.dubbo.config.ProviderConfig.setExecutes(java.lang.Integer)
+public void 
com.alibaba.dubbo.config.ProviderConfig.setDeprecated(java.lang.Boolean)
+public java.lang.String 
com.alibaba.dubbo.config.ProviderConfig.getSerialization()
+public void 
com.alibaba.dubbo.config.ProviderConfig.setSerialization(java.lang.String)
+public java.lang.String com.alibaba.dubbo.config.ProviderConfig.getAccesslog()
+public void 
com.alibaba.dubbo.config.ProviderConfig.setAccesslog(java.lang.String)
+public void 
com.alibaba.dubbo.config.ProviderConfig.setAccesslog(java.lang.Boolean)
+public java.lang.Boolean com.alibaba.dubbo.config.ProviderConfig.isRegister()
+public void 
com.alibaba.dubbo.config.ProviderConfig.setRegister(java.lang.Boolean)
+public java.lang.Boolean com.alibaba.dubbo.config.ProviderConfig.getExport()
+public void 
com.alibaba.dubbo.config.ProviderConfig.setExport(java.lang.Boolean)
+public java.lang.Integer com.alibaba.dubbo.config.ProviderConfig.getWeight()
+public void 
com.alibaba.dubbo.config.ProviderConfig.setWeight(java.lang.Integer)
+public java.lang.String com.alibaba.dubbo.config.ProviderConfig.getDocument()
+public void 
com.alibaba.dubbo.config.ProviderConfig.setDocument(java.lang.String)
+public java.lang.Boolean com.alibaba.dubbo.config.ProviderConfig.isDeprecated()
+public void 
com.alibaba.dubbo.config.ProviderConfig.setDynamic(java.lang.Boolean)
+public java.util.List com.alibaba.dubbo.config.ProviderConfig.getProtocols()
+public void 
com.alibaba.dubbo.config.ProviderConfig.setProtocols(java.util.List)
+public java.lang.Integer com.alibaba.dubbo.config.ProviderConfig.getWarmup()
+public void 
com.alibaba.dubbo.config.ProviderConfig.setWarmup(java.lang.Integer)
+public void com.alibaba.dubbo.config.ProviderConfig.setGroup(java.lang.String)
+public java.lang.String com.alibaba.dubbo.config.ProviderConfig.getGroup()
+public void com.alibaba.dubbo.config.ProviderConfig.setDelay(java.lang.Integer)
+public java.lang.String com.alibaba.dubbo.config.ProviderConfig.getToken()
+public void com.alibaba.dubbo.config.ProviderConfig.setToken(java.lang.String)
+public void com.alibaba.dubbo.config.ProviderConfig.setToken(java.lang.Boolean)
+public java.lang.String com.alibaba.dubbo.config.ProviderConfig.getTag()
+public void com.alibaba.dubbo.config.ProviderConfig.setTag(java.lang.String)
+public com.alibaba.dubbo.config.ProtocolConfig 
com.alibaba.dubbo.config.ProviderConfig.getProtocol()
+public java.lang.String com.alibaba.dubbo.config.ProviderConfig.getFilter()
+public java.lang.String com.alibaba.dubbo.config.ProviderConfig.getListener()
+public java.lang.Boolean com.alibaba.dubbo.config.ProviderConfig.isDynamic()
+public java.lang.Integer com.alibaba.dubbo.config.ProviderConfig.getDelay()
+public java.lang.String com.alibaba.dubbo.config.ProviderConfig.getVersion()
+public com.alibaba.dubbo.config.RegistryConfig 
com.alibaba.dubbo.config.ProviderConfig.getRegistry()
+public void 
com.alibaba.dubbo.config.ProviderConfig.setRegistry(com.alibaba.dubbo.config.RegistryConfig)
+public java.util.List com.alibaba.dubbo.config.ProviderConfig.getRegistries()
+public void 
com.alibaba.dubbo.config.ProviderConfig.setRegistries(java.util.List)
+public com.alibaba.dubbo.config.MonitorConfig 
com.alibaba.dubbo.config.ProviderConfig.getMonitor()
+public void 
com.alibaba.dubbo.config.ProviderConfig.setMonitor(com.alibaba.dubbo.config.MonitorConfig)
+public void 
com.alibaba.dubbo.config.ProviderConfig.setMonitor(java.lang.String)
+public void 
com.alibaba.dubbo.config.ProviderConfig.setOnconnect(java.lang.String)
+public void 
com.alibaba.dubbo.config.ProviderConfig.setOndisconnect(java.lang.String)
+public void 
com.alibaba.dubbo.config.ProviderConfig.setCluster(java.lang.String)
+public void 
com.alibaba.dubbo.config.ProviderConfig.setConnections(java.lang.Integer)
+public com.alibaba.dubbo.config.ApplicationConfig 
com.alibaba.dubbo.config.ProviderConfig.getApplication()
+public void 
com.alibaba.dubbo.config.ProviderConfig.setApplication(com.alibaba.dubbo.config.ApplicationConfig)
+public com.alibaba.dubbo.config.ModuleConfig 
com.alibaba.dubbo.config.ProviderConfig.getModule()
+public void 
com.alibaba.dubbo.config.ProviderConfig.setModule(com.alibaba.dubbo.config.ModuleConfig)
+public java.lang.Integer com.alibaba.dubbo.config.ProviderConfig.getCallbacks()
+public void 
com.alibaba.dubbo.config.ProviderConfig.setCallbacks(java.lang.Integer)
+public java.lang.String com.alibaba.dubbo.config.ProviderConfig.getOnconnect()
+public java.lang.String 
com.alibaba.dubbo.config.ProviderConfig.getOndisconnect()
+public java.lang.String com.alibaba.dubbo.config.ProviderConfig.getLocal()
+public void com.alibaba.dubbo.config.ProviderConfig.setLocal(java.lang.String)
+public void com.alibaba.dubbo.config.ProviderConfig.setLocal(java.lang.Boolean)
+public void com.alibaba.dubbo.config.ProviderConfig.setStub(java.lang.Boolean)
+public void com.alibaba.dubbo.config.ProviderConfig.setStub(java.lang.String)
+public java.lang.String com.alibaba.dubbo.config.ProviderConfig.getProxy()
+public void com.alibaba.dubbo.config.ProviderConfig.setProxy(java.lang.String)
+public java.lang.String com.alibaba.dubbo.config.ProviderConfig.getLayer()
+public void com.alibaba.dubbo.config.ProviderConfig.setLayer(java.lang.String)
+public void com.alibaba.dubbo.config.ProviderConfig.setScope(java.lang.String)
+public void com.alibaba.dubbo.config.ProviderConfig.setFilter(java.lang.String)
+public java.lang.String com.alibaba.dubbo.config.ProviderConfig.getOwner()
+public java.lang.String com.alibaba.dubbo.config.ProviderConfig.getScope()
+public void com.alibaba.dubbo.config.ProviderConfig.setOwner(java.lang.String)
+public java.lang.String com.alibaba.dubbo.config.ProviderConfig.getStub()
+public void 
com.alibaba.dubbo.config.ProviderConfig.setTimeout(java.lang.Integer)
+public void 
com.alibaba.dubbo.config.ProviderConfig.setRetries(java.lang.Integer)
+public void 
com.alibaba.dubbo.config.ProviderConfig.setLoadbalance(java.lang.String)
+public void 
com.alibaba.dubbo.config.ProviderConfig.setActives(java.lang.Integer)
+public java.lang.String com.alibaba.dubbo.config.ProviderConfig.getMerger()
+public void com.alibaba.dubbo.config.ProviderConfig.setMerger(java.lang.String)
+public java.lang.String com.alibaba.dubbo.config.ProviderConfig.getValidation()
+public void 
com.alibaba.dubbo.config.ProviderConfig.setValidation(java.lang.String)
+public void com.alibaba.dubbo.config.ProviderConfig.setForks(java.lang.Integer)
+public java.lang.Integer com.alibaba.dubbo.config.ProviderConfig.getForks()
+public void com.alibaba.dubbo.config.ProviderConfig.setAsync(java.lang.Boolean)
+public java.lang.Boolean com.alibaba.dubbo.config.ProviderConfig.getSent()
+public void com.alibaba.dubbo.config.ProviderConfig.setSent(java.lang.Boolean)
+public java.lang.String com.alibaba.dubbo.config.ProviderConfig.getMock()
+public void com.alibaba.dubbo.config.ProviderConfig.setMock(java.lang.String)
+public void com.alibaba.dubbo.config.ProviderConfig.setMock(java.lang.Boolean)
+public void com.alibaba.dubbo.config.ProviderConfig.setCache(java.lang.String)
+public java.util.Map com.alibaba.dubbo.config.ProviderConfig.getParameters()
+public java.lang.String com.alibaba.dubbo.config.ProviderConfig.getCache()
+public void 
com.alibaba.dubbo.config.ProviderConfig.setParameters(java.util.Map)
+public void com.alibaba.dubbo.config.ProviderConfig.setId(java.lang.String)
+public java.lang.String com.alibaba.dubbo.config.ProviderConfig.toString()
+public java.lang.String com.alibaba.dubbo.config.ProviderConfig.getId()
+public final void com.alibaba.dubbo.config.ProviderConfig.wait(long,int) 
throws java.lang.InterruptedException
+public final native void com.alibaba.dubbo.config.ProviderConfig.wait(long) 
throws java.lang.InterruptedException
+public final void com.alibaba.dubbo.config.ProviderConfig.wait() throws 
java.lang.InterruptedException
+public boolean com.alibaba.dubbo.config.ProviderConfig.equals(java.lang.Object)
+public native int com.alibaba.dubbo.config.ProviderConfig.hashCode()
+public final native java.lang.Class 
com.alibaba.dubbo.config.ProviderConfig.getClass()
+public final native void com.alibaba.dubbo.config.ProviderConfig.notify()
+public final native void com.alibaba.dubbo.config.ProviderConfig.notifyAll()
diff --git 
a/dubbo-compatible/src/test/resources/definition/com.alibaba.dubbo.config.ReferenceConfig
 
b/dubbo-compatible/src/test/resources/definition/com.alibaba.dubbo.config.ReferenceConfig
new file mode 100644
index 0000000000..c5cfff37b5
--- /dev/null
+++ 
b/dubbo-compatible/src/test/resources/definition/com.alibaba.dubbo.config.ReferenceConfig
@@ -0,0 +1,130 @@
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+//
+
+public java.lang.String com.alibaba.dubbo.config.ReferenceConfig.getClient()
+public void 
com.alibaba.dubbo.config.ReferenceConfig.setClient(java.lang.String)
+public void 
com.alibaba.dubbo.config.ReferenceConfig.setProtocol(java.lang.String)
+public java.lang.Class 
com.alibaba.dubbo.config.ReferenceConfig.getInterfaceClass()
+public void 
com.alibaba.dubbo.config.ReferenceConfig.setInterfaceClass(java.lang.Class)
+public java.lang.String com.alibaba.dubbo.config.ReferenceConfig.getInterface()
+public void 
com.alibaba.dubbo.config.ReferenceConfig.setInterface(java.lang.Class)
+public void 
com.alibaba.dubbo.config.ReferenceConfig.setInterface(java.lang.String)
+public void com.alibaba.dubbo.config.ReferenceConfig.setMethods(java.util.List)
+public com.alibaba.dubbo.config.ConsumerConfig 
com.alibaba.dubbo.config.ReferenceConfig.getConsumer()
+public void 
com.alibaba.dubbo.config.ReferenceConfig.setConsumer(com.alibaba.dubbo.config.ConsumerConfig)
+public java.lang.String 
com.alibaba.dubbo.config.ReferenceConfig.getUniqueServiceName()
+public java.lang.String com.alibaba.dubbo.config.ReferenceConfig.getGroup()
+public com.alibaba.dubbo.common.URL 
com.alibaba.dubbo.config.ReferenceConfig.toUrl()
+public java.util.List com.alibaba.dubbo.config.ReferenceConfig.toUrls()
+public java.lang.String com.alibaba.dubbo.config.ReferenceConfig.getUrl()
+public void com.alibaba.dubbo.config.ReferenceConfig.setUrl(java.lang.String)
+public synchronized java.lang.Object 
com.alibaba.dubbo.config.ReferenceConfig.get()
+public java.util.List com.alibaba.dubbo.config.ReferenceConfig.getMethods()
+public synchronized void com.alibaba.dubbo.config.ReferenceConfig.destroy()
+public java.lang.String com.alibaba.dubbo.config.ReferenceConfig.getProtocol()
+public java.lang.String com.alibaba.dubbo.config.ReferenceConfig.getVersion()
+public void 
com.alibaba.dubbo.config.ReferenceConfig.setVersion(java.lang.String)
+public void 
com.alibaba.dubbo.config.ReferenceConfig.setGeneric(java.lang.Boolean)
+public void 
com.alibaba.dubbo.config.ReferenceConfig.setGeneric(java.lang.String)
+public java.lang.String com.alibaba.dubbo.config.ReferenceConfig.getGeneric()
+public void 
com.alibaba.dubbo.config.ReferenceConfig.setListener(java.lang.String)
+public void 
com.alibaba.dubbo.config.ReferenceConfig.setOnconnect(java.lang.String)
+public void 
com.alibaba.dubbo.config.ReferenceConfig.setOndisconnect(java.lang.String)
+public java.lang.Boolean 
com.alibaba.dubbo.config.ReferenceConfig.getStubevent()
+public java.lang.String com.alibaba.dubbo.config.ReferenceConfig.getReconnect()
+public void 
com.alibaba.dubbo.config.ReferenceConfig.setReconnect(java.lang.String)
+public java.lang.Boolean com.alibaba.dubbo.config.ReferenceConfig.getSticky()
+public void 
com.alibaba.dubbo.config.ReferenceConfig.setSticky(java.lang.Boolean)
+public java.lang.Boolean com.alibaba.dubbo.config.ReferenceConfig.getLazy()
+public void com.alibaba.dubbo.config.ReferenceConfig.setInit(java.lang.Boolean)
+public void 
com.alibaba.dubbo.config.ReferenceConfig.setInjvm(java.lang.Boolean)
+public void com.alibaba.dubbo.config.ReferenceConfig.setLazy(java.lang.Boolean)
+public java.lang.Boolean com.alibaba.dubbo.config.ReferenceConfig.isInjvm()
+public void 
com.alibaba.dubbo.config.ReferenceConfig.setCheck(java.lang.Boolean)
+public java.lang.Boolean com.alibaba.dubbo.config.ReferenceConfig.isCheck()
+public void com.alibaba.dubbo.config.ReferenceConfig.setGroup(java.lang.String)
+public java.lang.Boolean com.alibaba.dubbo.config.ReferenceConfig.isInit()
+public java.lang.Boolean com.alibaba.dubbo.config.ReferenceConfig.isGeneric()
+public java.lang.String com.alibaba.dubbo.config.ReferenceConfig.getFilter()
+public java.lang.String com.alibaba.dubbo.config.ReferenceConfig.getListener()
+public com.alibaba.dubbo.config.RegistryConfig 
com.alibaba.dubbo.config.ReferenceConfig.getRegistry()
+public void 
com.alibaba.dubbo.config.ReferenceConfig.setRegistry(com.alibaba.dubbo.config.RegistryConfig)
+public java.util.List com.alibaba.dubbo.config.ReferenceConfig.getRegistries()
+public void 
com.alibaba.dubbo.config.ReferenceConfig.setRegistries(java.util.List)
+public com.alibaba.dubbo.config.MonitorConfig 
com.alibaba.dubbo.config.ReferenceConfig.getMonitor()
+public void 
com.alibaba.dubbo.config.ReferenceConfig.setMonitor(com.alibaba.dubbo.config.MonitorConfig)
+public void 
com.alibaba.dubbo.config.ReferenceConfig.setMonitor(java.lang.String)
+public java.lang.String com.alibaba.dubbo.config.ReferenceConfig.getCluster()
+public void 
com.alibaba.dubbo.config.ReferenceConfig.setCluster(java.lang.String)
+public java.lang.Integer 
com.alibaba.dubbo.config.ReferenceConfig.getConnections()
+public void 
com.alibaba.dubbo.config.ReferenceConfig.setConnections(java.lang.Integer)
+public com.alibaba.dubbo.config.ApplicationConfig 
com.alibaba.dubbo.config.ReferenceConfig.getApplication()
+public void 
com.alibaba.dubbo.config.ReferenceConfig.setApplication(com.alibaba.dubbo.config.ApplicationConfig)
+public com.alibaba.dubbo.config.ModuleConfig 
com.alibaba.dubbo.config.ReferenceConfig.getModule()
+public void 
com.alibaba.dubbo.config.ReferenceConfig.setModule(com.alibaba.dubbo.config.ModuleConfig)
+public java.lang.Integer 
com.alibaba.dubbo.config.ReferenceConfig.getCallbacks()
+public void 
com.alibaba.dubbo.config.ReferenceConfig.setCallbacks(java.lang.Integer)
+public java.lang.String com.alibaba.dubbo.config.ReferenceConfig.getOnconnect()
+public java.lang.String 
com.alibaba.dubbo.config.ReferenceConfig.getOndisconnect()
+public java.lang.String com.alibaba.dubbo.config.ReferenceConfig.getLocal()
+public void com.alibaba.dubbo.config.ReferenceConfig.setLocal(java.lang.String)
+public void 
com.alibaba.dubbo.config.ReferenceConfig.setLocal(java.lang.Boolean)
+public void com.alibaba.dubbo.config.ReferenceConfig.setStub(java.lang.Boolean)
+public void com.alibaba.dubbo.config.ReferenceConfig.setStub(java.lang.String)
+public java.lang.String com.alibaba.dubbo.config.ReferenceConfig.getProxy()
+public void com.alibaba.dubbo.config.ReferenceConfig.setProxy(java.lang.String)
+public java.lang.String com.alibaba.dubbo.config.ReferenceConfig.getLayer()
+public void com.alibaba.dubbo.config.ReferenceConfig.setLayer(java.lang.String)
+public void com.alibaba.dubbo.config.ReferenceConfig.setScope(java.lang.String)
+public void 
com.alibaba.dubbo.config.ReferenceConfig.setFilter(java.lang.String)
+public java.lang.String com.alibaba.dubbo.config.ReferenceConfig.getOwner()
+public java.lang.String com.alibaba.dubbo.config.ReferenceConfig.getScope()
+public void com.alibaba.dubbo.config.ReferenceConfig.setOwner(java.lang.String)
+public java.lang.String com.alibaba.dubbo.config.ReferenceConfig.getStub()
+public void 
com.alibaba.dubbo.config.ReferenceConfig.setTimeout(java.lang.Integer)
+public java.lang.Integer com.alibaba.dubbo.config.ReferenceConfig.getRetries()
+public void 
com.alibaba.dubbo.config.ReferenceConfig.setRetries(java.lang.Integer)
+public java.lang.String 
com.alibaba.dubbo.config.ReferenceConfig.getLoadbalance()
+public void 
com.alibaba.dubbo.config.ReferenceConfig.setLoadbalance(java.lang.String)
+public java.lang.Integer com.alibaba.dubbo.config.ReferenceConfig.getActives()
+public void 
com.alibaba.dubbo.config.ReferenceConfig.setActives(java.lang.Integer)
+public java.lang.String com.alibaba.dubbo.config.ReferenceConfig.getMerger()
+public void 
com.alibaba.dubbo.config.ReferenceConfig.setMerger(java.lang.String)
+public java.lang.String 
com.alibaba.dubbo.config.ReferenceConfig.getValidation()
+public void 
com.alibaba.dubbo.config.ReferenceConfig.setValidation(java.lang.String)
+public java.lang.Boolean com.alibaba.dubbo.config.ReferenceConfig.isAsync()
+public void 
com.alibaba.dubbo.config.ReferenceConfig.setForks(java.lang.Integer)
+public java.lang.Integer com.alibaba.dubbo.config.ReferenceConfig.getForks()
+public void 
com.alibaba.dubbo.config.ReferenceConfig.setAsync(java.lang.Boolean)
+public java.lang.Boolean com.alibaba.dubbo.config.ReferenceConfig.getSent()
+public void com.alibaba.dubbo.config.ReferenceConfig.setSent(java.lang.Boolean)
+public java.lang.String com.alibaba.dubbo.config.ReferenceConfig.getMock()
+public void com.alibaba.dubbo.config.ReferenceConfig.setMock(java.lang.String)
+public void com.alibaba.dubbo.config.ReferenceConfig.setMock(java.lang.Boolean)
+public void com.alibaba.dubbo.config.ReferenceConfig.setCache(java.lang.String)
+public java.util.Map com.alibaba.dubbo.config.ReferenceConfig.getParameters()
+public java.lang.String com.alibaba.dubbo.config.ReferenceConfig.getCache()
+public void 
com.alibaba.dubbo.config.ReferenceConfig.setParameters(java.util.Map)
+public java.lang.Integer com.alibaba.dubbo.config.ReferenceConfig.getTimeout()
+public void com.alibaba.dubbo.config.ReferenceConfig.setId(java.lang.String)
+public java.lang.String com.alibaba.dubbo.config.ReferenceConfig.toString()
+public java.lang.String com.alibaba.dubbo.config.ReferenceConfig.getId()
+public final void com.alibaba.dubbo.config.ReferenceConfig.wait(long,int) 
throws java.lang.InterruptedException
+public final native void com.alibaba.dubbo.config.ReferenceConfig.wait(long) 
throws java.lang.InterruptedException
+public final void com.alibaba.dubbo.config.ReferenceConfig.wait() throws 
java.lang.InterruptedException
+public boolean 
com.alibaba.dubbo.config.ReferenceConfig.equals(java.lang.Object)
+public native int com.alibaba.dubbo.config.ReferenceConfig.hashCode()
+public final native java.lang.Class 
com.alibaba.dubbo.config.ReferenceConfig.getClass()
+public final native void com.alibaba.dubbo.config.ReferenceConfig.notify()
+public final native void com.alibaba.dubbo.config.ReferenceConfig.notifyAll()
diff --git 
a/dubbo-compatible/src/test/resources/definition/com.alibaba.dubbo.config.RegistryConfig
 
b/dubbo-compatible/src/test/resources/definition/com.alibaba.dubbo.config.RegistryConfig
new file mode 100644
index 0000000000..532718e375
--- /dev/null
+++ 
b/dubbo-compatible/src/test/resources/definition/com.alibaba.dubbo.config.RegistryConfig
@@ -0,0 +1,69 @@
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+//
+
+public void 
com.alibaba.dubbo.config.RegistryConfig.setVersion(java.lang.String)
+public void 
com.alibaba.dubbo.config.RegistryConfig.setTimeout(java.lang.Integer)
+public java.lang.String com.alibaba.dubbo.config.RegistryConfig.getClient()
+public void com.alibaba.dubbo.config.RegistryConfig.setClient(java.lang.String)
+public java.lang.String com.alibaba.dubbo.config.RegistryConfig.getCluster()
+public void 
com.alibaba.dubbo.config.RegistryConfig.setCluster(java.lang.String)
+public void 
com.alibaba.dubbo.config.RegistryConfig.setProtocol(java.lang.String)
+public java.lang.String com.alibaba.dubbo.config.RegistryConfig.getUsername()
+public void 
com.alibaba.dubbo.config.RegistryConfig.setUsername(java.lang.String)
+public void 
com.alibaba.dubbo.config.RegistryConfig.setPassword(java.lang.String)
+public java.lang.String com.alibaba.dubbo.config.RegistryConfig.getServer()
+public void com.alibaba.dubbo.config.RegistryConfig.setServer(java.lang.String)
+public java.lang.Boolean com.alibaba.dubbo.config.RegistryConfig.isRegister()
+public void 
com.alibaba.dubbo.config.RegistryConfig.setRegister(java.lang.Boolean)
+public java.lang.String 
com.alibaba.dubbo.config.RegistryConfig.getTransporter()
+public void 
com.alibaba.dubbo.config.RegistryConfig.setTransporter(java.lang.String)
+public void 
com.alibaba.dubbo.config.RegistryConfig.setDynamic(java.lang.Boolean)
+public java.lang.String com.alibaba.dubbo.config.RegistryConfig.getTransport()
+public void 
com.alibaba.dubbo.config.RegistryConfig.setTransport(java.lang.String)
+public java.lang.Integer com.alibaba.dubbo.config.RegistryConfig.getSession()
+public void 
com.alibaba.dubbo.config.RegistryConfig.setSession(java.lang.Integer)
+public java.lang.Boolean com.alibaba.dubbo.config.RegistryConfig.isSubscribe()
+public void 
com.alibaba.dubbo.config.RegistryConfig.setSubscribe(java.lang.Boolean)
+public void com.alibaba.dubbo.config.RegistryConfig.setCheck(java.lang.Boolean)
+public java.lang.Boolean com.alibaba.dubbo.config.RegistryConfig.isCheck()
+public void com.alibaba.dubbo.config.RegistryConfig.setGroup(java.lang.String)
+public java.lang.String com.alibaba.dubbo.config.RegistryConfig.getGroup()
+public java.lang.Integer com.alibaba.dubbo.config.RegistryConfig.getWait()
+public void com.alibaba.dubbo.config.RegistryConfig.setWait(java.lang.Integer)
+public void com.alibaba.dubbo.config.RegistryConfig.setFile(java.lang.String)
+public java.lang.String com.alibaba.dubbo.config.RegistryConfig.getAddress()
+public java.lang.Boolean com.alibaba.dubbo.config.RegistryConfig.isDefault()
+public java.util.Map com.alibaba.dubbo.config.RegistryConfig.getParameters()
+public java.lang.String com.alibaba.dubbo.config.RegistryConfig.getProtocol()
+public java.lang.String com.alibaba.dubbo.config.RegistryConfig.getFile()
+public java.lang.Integer com.alibaba.dubbo.config.RegistryConfig.getPort()
+public void 
com.alibaba.dubbo.config.RegistryConfig.setDefault(java.lang.Boolean)
+public java.lang.String com.alibaba.dubbo.config.RegistryConfig.getPassword()
+public void 
com.alibaba.dubbo.config.RegistryConfig.setAddress(java.lang.String)
+public void com.alibaba.dubbo.config.RegistryConfig.setPort(java.lang.Integer)
+public java.lang.Boolean com.alibaba.dubbo.config.RegistryConfig.isDynamic()
+public java.lang.String com.alibaba.dubbo.config.RegistryConfig.getVersion()
+public void 
com.alibaba.dubbo.config.RegistryConfig.setParameters(java.util.Map)
+public java.lang.Integer com.alibaba.dubbo.config.RegistryConfig.getTimeout()
+public void com.alibaba.dubbo.config.RegistryConfig.setId(java.lang.String)
+public java.lang.String com.alibaba.dubbo.config.RegistryConfig.toString()
+public java.lang.String com.alibaba.dubbo.config.RegistryConfig.getId()
+public final void com.alibaba.dubbo.config.RegistryConfig.wait(long,int) 
throws java.lang.InterruptedException
+public final native void com.alibaba.dubbo.config.RegistryConfig.wait(long) 
throws java.lang.InterruptedException
+public final void com.alibaba.dubbo.config.RegistryConfig.wait() throws 
java.lang.InterruptedException
+public boolean com.alibaba.dubbo.config.RegistryConfig.equals(java.lang.Object)
+public native int com.alibaba.dubbo.config.RegistryConfig.hashCode()
+public final native java.lang.Class 
com.alibaba.dubbo.config.RegistryConfig.getClass()
+public final native void com.alibaba.dubbo.config.RegistryConfig.notify()
+public final native void com.alibaba.dubbo.config.RegistryConfig.notifyAll()
diff --git 
a/dubbo-compatible/src/test/resources/definition/com.alibaba.dubbo.config.ServiceConfig
 
b/dubbo-compatible/src/test/resources/definition/com.alibaba.dubbo.config.ServiceConfig
new file mode 100644
index 0000000000..6d1e874c4d
--- /dev/null
+++ 
b/dubbo-compatible/src/test/resources/definition/com.alibaba.dubbo.config.ServiceConfig
@@ -0,0 +1,150 @@
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+//
+
+public void com.alibaba.dubbo.config.ServiceConfig.setGeneric(java.lang.String)
+public java.lang.String com.alibaba.dubbo.config.ServiceConfig.getGeneric()
+public boolean com.alibaba.dubbo.config.ServiceConfig.isExported()
+public boolean com.alibaba.dubbo.config.ServiceConfig.isUnexported()
+public void 
com.alibaba.dubbo.config.ServiceConfig.setProvider(com.alibaba.dubbo.config.ProviderConfig)
+public java.util.List com.alibaba.dubbo.config.ServiceConfig.getExportedUrls()
+public void com.alibaba.dubbo.config.ServiceConfig.setProviders(java.util.List)
+public java.lang.Class 
com.alibaba.dubbo.config.ServiceConfig.getInterfaceClass()
+public void 
com.alibaba.dubbo.config.ServiceConfig.setInterfaceClass(java.lang.Class)
+public java.lang.String com.alibaba.dubbo.config.ServiceConfig.getInterface()
+public void 
com.alibaba.dubbo.config.ServiceConfig.setInterface(java.lang.String)
+public void 
com.alibaba.dubbo.config.ServiceConfig.setInterface(java.lang.Class)
+public void com.alibaba.dubbo.config.ServiceConfig.setMethods(java.util.List)
+public java.lang.String 
com.alibaba.dubbo.config.ServiceConfig.getUniqueServiceName()
+public java.lang.String com.alibaba.dubbo.config.ServiceConfig.getGroup()
+public void com.alibaba.dubbo.config.ServiceConfig.setMock(java.lang.Boolean)
+public void com.alibaba.dubbo.config.ServiceConfig.setMock(java.lang.String)
+public com.alibaba.dubbo.common.URL 
com.alibaba.dubbo.config.ServiceConfig.toUrl()
+public java.util.List com.alibaba.dubbo.config.ServiceConfig.toUrls()
+public synchronized void com.alibaba.dubbo.config.ServiceConfig.unexport()
+public java.util.List com.alibaba.dubbo.config.ServiceConfig.getMethods()
+public java.lang.String com.alibaba.dubbo.config.ServiceConfig.getPath()
+public java.lang.Object com.alibaba.dubbo.config.ServiceConfig.getRef()
+public synchronized void com.alibaba.dubbo.config.ServiceConfig.export()
+public java.util.List com.alibaba.dubbo.config.ServiceConfig.getProviders()
+public com.alibaba.dubbo.config.ProviderConfig 
com.alibaba.dubbo.config.ServiceConfig.getProvider()
+public java.lang.String com.alibaba.dubbo.config.ServiceConfig.getVersion()
+public void com.alibaba.dubbo.config.ServiceConfig.setPath(java.lang.String)
+public void com.alibaba.dubbo.config.ServiceConfig.setRef(java.lang.Object)
+public void com.alibaba.dubbo.config.ServiceConfig.setVersion(java.lang.String)
+public void 
com.alibaba.dubbo.config.ServiceConfig.setListener(java.lang.String)
+public void 
com.alibaba.dubbo.config.ServiceConfig.setProtocol(com.alibaba.dubbo.config.ProtocolConfig)
+public java.lang.Integer com.alibaba.dubbo.config.ServiceConfig.getExecutes()
+public void 
com.alibaba.dubbo.config.ServiceConfig.setExecutes(java.lang.Integer)
+public void 
com.alibaba.dubbo.config.ServiceConfig.setDeprecated(java.lang.Boolean)
+public java.lang.String 
com.alibaba.dubbo.config.ServiceConfig.getSerialization()
+public void 
com.alibaba.dubbo.config.ServiceConfig.setSerialization(java.lang.String)
+public java.lang.String com.alibaba.dubbo.config.ServiceConfig.getAccesslog()
+public void 
com.alibaba.dubbo.config.ServiceConfig.setAccesslog(java.lang.String)
+public void 
com.alibaba.dubbo.config.ServiceConfig.setAccesslog(java.lang.Boolean)
+public java.lang.Boolean com.alibaba.dubbo.config.ServiceConfig.isRegister()
+public void 
com.alibaba.dubbo.config.ServiceConfig.setRegister(java.lang.Boolean)
+public java.lang.Boolean com.alibaba.dubbo.config.ServiceConfig.getExport()
+public void com.alibaba.dubbo.config.ServiceConfig.setExport(java.lang.Boolean)
+public java.lang.Integer com.alibaba.dubbo.config.ServiceConfig.getWeight()
+public void com.alibaba.dubbo.config.ServiceConfig.setWeight(java.lang.Integer)
+public java.lang.String com.alibaba.dubbo.config.ServiceConfig.getDocument()
+public void 
com.alibaba.dubbo.config.ServiceConfig.setDocument(java.lang.String)
+public java.lang.Boolean com.alibaba.dubbo.config.ServiceConfig.isDeprecated()
+public void 
com.alibaba.dubbo.config.ServiceConfig.setDynamic(java.lang.Boolean)
+public java.util.List com.alibaba.dubbo.config.ServiceConfig.getProtocols()
+public void com.alibaba.dubbo.config.ServiceConfig.setProtocols(java.util.List)
+public java.lang.Integer com.alibaba.dubbo.config.ServiceConfig.getWarmup()
+public void com.alibaba.dubbo.config.ServiceConfig.setWarmup(java.lang.Integer)
+public void com.alibaba.dubbo.config.ServiceConfig.setGroup(java.lang.String)
+public void com.alibaba.dubbo.config.ServiceConfig.setDelay(java.lang.Integer)
+public java.lang.String com.alibaba.dubbo.config.ServiceConfig.getToken()
+public void com.alibaba.dubbo.config.ServiceConfig.setToken(java.lang.String)
+public void com.alibaba.dubbo.config.ServiceConfig.setToken(java.lang.Boolean)
+public java.lang.String com.alibaba.dubbo.config.ServiceConfig.getTag()
+public void com.alibaba.dubbo.config.ServiceConfig.setTag(java.lang.String)
+public com.alibaba.dubbo.config.ProtocolConfig 
com.alibaba.dubbo.config.ServiceConfig.getProtocol()
+public java.lang.String com.alibaba.dubbo.config.ServiceConfig.getFilter()
+public java.lang.String com.alibaba.dubbo.config.ServiceConfig.getListener()
+public java.lang.Boolean com.alibaba.dubbo.config.ServiceConfig.isDynamic()
+public java.lang.Integer com.alibaba.dubbo.config.ServiceConfig.getDelay()
+public com.alibaba.dubbo.config.RegistryConfig 
com.alibaba.dubbo.config.ServiceConfig.getRegistry()
+public void 
com.alibaba.dubbo.config.ServiceConfig.setRegistry(com.alibaba.dubbo.config.RegistryConfig)
+public java.util.List com.alibaba.dubbo.config.ServiceConfig.getRegistries()
+public void 
com.alibaba.dubbo.config.ServiceConfig.setRegistries(java.util.List)
+public com.alibaba.dubbo.config.MonitorConfig 
com.alibaba.dubbo.config.ServiceConfig.getMonitor()
+public void 
com.alibaba.dubbo.config.ServiceConfig.setMonitor(com.alibaba.dubbo.config.MonitorConfig)
+public void com.alibaba.dubbo.config.ServiceConfig.setMonitor(java.lang.String)
+public void 
com.alibaba.dubbo.config.ServiceConfig.setOnconnect(java.lang.String)
+public void 
com.alibaba.dubbo.config.ServiceConfig.setOndisconnect(java.lang.String)
+public java.lang.String com.alibaba.dubbo.config.ServiceConfig.getCluster()
+public void com.alibaba.dubbo.config.ServiceConfig.setCluster(java.lang.String)
+public java.lang.Integer 
com.alibaba.dubbo.config.ServiceConfig.getConnections()
+public void 
com.alibaba.dubbo.config.ServiceConfig.setConnections(java.lang.Integer)
+public com.alibaba.dubbo.config.ApplicationConfig 
com.alibaba.dubbo.config.ServiceConfig.getApplication()
+public void 
com.alibaba.dubbo.config.ServiceConfig.setApplication(com.alibaba.dubbo.config.ApplicationConfig)
+public com.alibaba.dubbo.config.ModuleConfig 
com.alibaba.dubbo.config.ServiceConfig.getModule()
+public void 
com.alibaba.dubbo.config.ServiceConfig.setModule(com.alibaba.dubbo.config.ModuleConfig)
+public java.lang.Integer com.alibaba.dubbo.config.ServiceConfig.getCallbacks()
+public void 
com.alibaba.dubbo.config.ServiceConfig.setCallbacks(java.lang.Integer)
+public java.lang.String com.alibaba.dubbo.config.ServiceConfig.getOnconnect()
+public java.lang.String 
com.alibaba.dubbo.config.ServiceConfig.getOndisconnect()
+public java.lang.String com.alibaba.dubbo.config.ServiceConfig.getLocal()
+public void com.alibaba.dubbo.config.ServiceConfig.setLocal(java.lang.String)
+public void com.alibaba.dubbo.config.ServiceConfig.setLocal(java.lang.Boolean)
+public void com.alibaba.dubbo.config.ServiceConfig.setStub(java.lang.Boolean)
+public void com.alibaba.dubbo.config.ServiceConfig.setStub(java.lang.String)
+public java.lang.String com.alibaba.dubbo.config.ServiceConfig.getProxy()
+public void com.alibaba.dubbo.config.ServiceConfig.setProxy(java.lang.String)
+public java.lang.String com.alibaba.dubbo.config.ServiceConfig.getLayer()
+public void com.alibaba.dubbo.config.ServiceConfig.setLayer(java.lang.String)
+public void com.alibaba.dubbo.config.ServiceConfig.setScope(java.lang.String)
+public void com.alibaba.dubbo.config.ServiceConfig.setFilter(java.lang.String)
+public java.lang.String com.alibaba.dubbo.config.ServiceConfig.getOwner()
+public java.lang.String com.alibaba.dubbo.config.ServiceConfig.getScope()
+public void com.alibaba.dubbo.config.ServiceConfig.setOwner(java.lang.String)
+public java.lang.String com.alibaba.dubbo.config.ServiceConfig.getStub()
+public void 
com.alibaba.dubbo.config.ServiceConfig.setTimeout(java.lang.Integer)
+public java.lang.Integer com.alibaba.dubbo.config.ServiceConfig.getRetries()
+public void 
com.alibaba.dubbo.config.ServiceConfig.setRetries(java.lang.Integer)
+public java.lang.String com.alibaba.dubbo.config.ServiceConfig.getLoadbalance()
+public void 
com.alibaba.dubbo.config.ServiceConfig.setLoadbalance(java.lang.String)
+public java.lang.Integer com.alibaba.dubbo.config.ServiceConfig.getActives()
+public void 
com.alibaba.dubbo.config.ServiceConfig.setActives(java.lang.Integer)
+public java.lang.String com.alibaba.dubbo.config.ServiceConfig.getMerger()
+public void com.alibaba.dubbo.config.ServiceConfig.setMerger(java.lang.String)
+public java.lang.String com.alibaba.dubbo.config.ServiceConfig.getValidation()
+public void 
com.alibaba.dubbo.config.ServiceConfig.setValidation(java.lang.String)
+public java.lang.Boolean com.alibaba.dubbo.config.ServiceConfig.isAsync()
+public void com.alibaba.dubbo.config.ServiceConfig.setForks(java.lang.Integer)
+public java.lang.Integer com.alibaba.dubbo.config.ServiceConfig.getForks()
+public void com.alibaba.dubbo.config.ServiceConfig.setAsync(java.lang.Boolean)
+public java.lang.Boolean com.alibaba.dubbo.config.ServiceConfig.getSent()
+public void com.alibaba.dubbo.config.ServiceConfig.setSent(java.lang.Boolean)
+public java.lang.String com.alibaba.dubbo.config.ServiceConfig.getMock()
+public void com.alibaba.dubbo.config.ServiceConfig.setCache(java.lang.String)
+public java.util.Map com.alibaba.dubbo.config.ServiceConfig.getParameters()
+public java.lang.String com.alibaba.dubbo.config.ServiceConfig.getCache()
+public void com.alibaba.dubbo.config.ServiceConfig.setParameters(java.util.Map)
+public java.lang.Integer com.alibaba.dubbo.config.ServiceConfig.getTimeout()
+public void com.alibaba.dubbo.config.ServiceConfig.setId(java.lang.String)
+public java.lang.String com.alibaba.dubbo.config.ServiceConfig.toString()
+public java.lang.String com.alibaba.dubbo.config.ServiceConfig.getId()
+public final void com.alibaba.dubbo.config.ServiceConfig.wait(long,int) throws 
java.lang.InterruptedException
+public final native void com.alibaba.dubbo.config.ServiceConfig.wait(long) 
throws java.lang.InterruptedException
+public final void com.alibaba.dubbo.config.ServiceConfig.wait() throws 
java.lang.InterruptedException
+public boolean com.alibaba.dubbo.config.ServiceConfig.equals(java.lang.Object)
+public native int com.alibaba.dubbo.config.ServiceConfig.hashCode()
+public final native java.lang.Class 
com.alibaba.dubbo.config.ServiceConfig.getClass()
+public final native void com.alibaba.dubbo.config.ServiceConfig.notify()
+public final native void com.alibaba.dubbo.config.ServiceConfig.notifyAll()

Reply via email to