feat: compatibility test has worked! 🎉
diff --git a/dubbo-samples-migration/case-configuration.yml b/dubbo-samples-migration/case-configuration.yml
index f4f6ed2..ab66946 100644
--- a/dubbo-samples-migration/case-configuration.yml
+++ b/dubbo-samples-migration/case-configuration.yml
@@ -15,35 +15,36 @@
 # limitations under the License.
 
 props:
-  app_default: dubbo-samples-migration-default
-  app_default_main_class: org.apache.dubbo.migration.provider.ApiProvider
+  app_provider: dubbo-samples-migration-provider
+  app_provider_main_class: org.apache.dubbo.migration.provider.ApiProvider
+  app_consumer: dubbo-samples-migration-consumer
   zookeeper_port: 2181
   dubbo_port: 20880
   
 services:
-  ${app_default}:
+  ${app_provider}:
     type: app
-    basedir: ${app_default}
-    mainClass: ${app_default_main_class}
+    basedir: ${app_provider}
+    mainClass: ${app_provider_main_class}
     systemProps:
       - dubbo.current.protocol=dubbo
-      - zookeeper.address=${app_default}
+      - zookeeper.address=${app_provider}
       - dubbo.application.register-mode=all
     checkPorts:
       - ${zookeeper_port}
       - ${dubbo_port}
     checkLog: "dubbo service started"
     
-  ${app_default}-test:
+  ${app_consumer}-test:
     type: test
-    basedir: ${app_default} 
+    basedir: ${app_consumer} 
     tests:
       - "**/*IT.class"
     systemProps:
       - dubbo.current.protocol=dubbo
-      - zookeeper.address=${app_default}
+      - zookeeper.address=${app_provider}
     waitPortsBeforeRun:
-      - ${app_default}:${zookeeper_port}
-      - ${app_default}:${dubbo_port}
+      - ${app_provider}:${zookeeper_port}
+      - ${app_provider}:${dubbo_port}
     depends_on:
-      - ${app_default}
\ No newline at end of file
+      - ${app_provider}
\ No newline at end of file
diff --git a/dubbo-samples-migration/case-versions.conf b/dubbo-samples-migration/case-versions.conf
index 9107d6e..3e63442 100644
--- a/dubbo-samples-migration/case-versions.conf
+++ b/dubbo-samples-migration/case-versions.conf
@@ -19,8 +19,8 @@
 # Supported component versions of the test case
 
 # Spring app
-dubbo.version=3.*
 spring.version=4.*, 5.*
 
-# dubbo.dubbo-samples-migration-default.version=3.*
-# dubbo.dubbo-samples-migration-default-test.version=2.7.*
+# Support Compatibility test
+dubbo.provider.version=3.*
+dubbo.consumer.version=2.7.*
diff --git a/dubbo-samples-migration/dubbo-samples-migration-api/pom.xml b/dubbo-samples-migration/dubbo-samples-migration-api/pom.xml
index 0043def..c2100f2 100644
--- a/dubbo-samples-migration/dubbo-samples-migration-api/pom.xml
+++ b/dubbo-samples-migration/dubbo-samples-migration-api/pom.xml
@@ -2,14 +2,12 @@
 <project xmlns="http://maven.apache.org/POM/4.0.0"
          xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
          xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
-    <parent>
-        <artifactId>dubbo-samples-migration</artifactId>
-        <groupId>org.apache.dubbo</groupId>
-        <version>1.0-SNAPSHOT</version>
-    </parent>
+    
     <modelVersion>4.0.0</modelVersion>
-
+    
+    <groupId>org.apache.dubbo</groupId>
     <artifactId>dubbo-samples-migration-api</artifactId>
+    <version>1.0-SNAPSHOT</version>
 
     <properties>
         <maven.compiler.source>8</maven.compiler.source>
diff --git a/dubbo-samples-migration/dubbo-samples-migration-consumer/pom.xml b/dubbo-samples-migration/dubbo-samples-migration-consumer/pom.xml
new file mode 100644
index 0000000..c2cd67b
--- /dev/null
+++ b/dubbo-samples-migration/dubbo-samples-migration-consumer/pom.xml
@@ -0,0 +1,88 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project xmlns="http://maven.apache.org/POM/4.0.0"
+         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+    <modelVersion>4.0.0</modelVersion>
+
+    <groupId>org.example</groupId>
+    <artifactId>dubbo-samples-migration-consumer</artifactId>
+    <version>1.0-SNAPSHOT</version>
+    
+    <properties>
+        <maven.compiler.source>1.8</maven.compiler.source>
+        <maven.compiler.target>1.8</maven.compiler.target>
+        <dubbo.consumer.version>2.7.13</dubbo.consumer.version>
+        <junit.version>4.12</junit.version>
+        <maven-compiler-plugin.version>3.7.0</maven-compiler-plugin.version>
+        <source.level>1.8</source.level>
+        <target.level>1.8</target.level>
+    </properties>
+
+    <dependencyManagement>
+        <dependencies>
+            <dependency>
+                <groupId>org.apache.dubbo</groupId>
+                <artifactId>dubbo-bom</artifactId>
+                <version>${dubbo.consumer.version}</version>
+                <type>pom</type>
+                <scope>import</scope>
+            </dependency>
+            <dependency>
+                <groupId>org.apache.dubbo</groupId>
+                <artifactId>dubbo-dependencies-zookeeper</artifactId>
+                <version>${dubbo.consumer.version}</version>
+                <type>pom</type>
+            </dependency>
+            <dependency>
+                <groupId>org.apache.dubbo</groupId>
+                <artifactId>dubbo-dependencies-bom</artifactId>
+                <version>${dubbo.consumer.version}</version>
+                <type>pom</type>
+                <scope>import</scope>
+            </dependency>
+        </dependencies>
+    </dependencyManagement>
+
+    <dependencies>
+        <dependency>
+            <groupId>org.apache.dubbo</groupId>
+            <artifactId>dubbo</artifactId>
+        </dependency>
+        
+        <dependency>
+            <groupId>org.apache.dubbo</groupId>
+            <artifactId>dubbo-dependencies-zookeeper</artifactId>
+            <type>pom</type>
+        </dependency>
+
+        <dependency>
+            <groupId>junit</groupId>
+            <artifactId>junit</artifactId>
+            <version>${junit.version}</version>
+            <scope>test</scope>
+        </dependency>
+
+        <dependency>
+            <groupId>org.apache.dubbo</groupId>
+            <artifactId>dubbo-samples-migration-api</artifactId>
+            <version>1.0-SNAPSHOT</version>
+        </dependency>
+    </dependencies>
+
+    <profiles>
+        <!-- For jdk 11 above JavaEE annotation -->
+        <profile>
+            <id>javax.annotation</id>
+            <activation>
+                <jdk>[1.11,)</jdk>
+            </activation>
+            <dependencies>
+                <dependency>
+                    <groupId>javax.annotation</groupId>
+                    <artifactId>javax.annotation-api</artifactId>
+                    <version>1.3.2</version>
+                </dependency>
+            </dependencies>
+        </profile>
+    </profiles>
+</project>
\ No newline at end of file
diff --git a/dubbo-samples-migration/dubbo-samples-migration-default/src/main/resources/log4j.properties b/dubbo-samples-migration/dubbo-samples-migration-consumer/src/main/resources/log4j.properties
similarity index 100%
rename from dubbo-samples-migration/dubbo-samples-migration-default/src/main/resources/log4j.properties
rename to dubbo-samples-migration/dubbo-samples-migration-consumer/src/main/resources/log4j.properties
diff --git a/dubbo-samples-migration/dubbo-samples-migration-default/src/test/java/org/apache/dubbo/migration/ApiConsumerIT.java b/dubbo-samples-migration/dubbo-samples-migration-consumer/src/test/java/org/apache/dubbo/migration/consumer/ApiConsumerIT.java
similarity index 87%
rename from dubbo-samples-migration/dubbo-samples-migration-default/src/test/java/org/apache/dubbo/migration/ApiConsumerIT.java
rename to dubbo-samples-migration/dubbo-samples-migration-consumer/src/test/java/org/apache/dubbo/migration/consumer/ApiConsumerIT.java
index 69e191d..5884ae0 100644
--- a/dubbo-samples-migration/dubbo-samples-migration-default/src/test/java/org/apache/dubbo/migration/ApiConsumerIT.java
+++ b/dubbo-samples-migration/dubbo-samples-migration-consumer/src/test/java/org/apache/dubbo/migration/consumer/ApiConsumerIT.java
@@ -1,5 +1,6 @@
-package org.apache.dubbo.migration;
+package org.apache.dubbo.migration.consumer;
 
+import org.apache.dubbo.common.constants.CommonConstants;
 import org.apache.dubbo.config.ApplicationConfig;
 import org.apache.dubbo.config.ReferenceConfig;
 import org.apache.dubbo.config.RegistryConfig;
@@ -18,7 +19,7 @@
 public class ApiConsumerIT {
     @Test
     public void consumeInvoke() {
-        String curProtocol = System.getProperty("dubbo.current.protocol", "tri");
+        String curProtocol = System.getProperty("dubbo.current.protocol", CommonConstants.DUBBO);
         String zookeeperAddress = System.getProperty("zookeeper.address", "127.0.0.1");
         
         ReferenceConfig<GreeterService> referenceConfig = new ReferenceConfig<>();
@@ -29,7 +30,7 @@
         referenceConfig.setTimeout(100000);
 
         DubboBootstrap bootstrap = DubboBootstrap.getInstance();
-        bootstrap.application(new ApplicationConfig("dubbo-demo-triple-api-consumer"))
+        bootstrap.application(new ApplicationConfig("dubbo-samples-migration-consumer"))
                 .registry(new RegistryConfig("zookeeper://" + zookeeperAddress + ":2181"))
                 .reference(referenceConfig)
                 .start();
diff --git a/dubbo-samples-migration/dubbo-samples-migration-default/pom.xml b/dubbo-samples-migration/dubbo-samples-migration-default/pom.xml
deleted file mode 100644
index 93b6353..0000000
--- a/dubbo-samples-migration/dubbo-samples-migration-default/pom.xml
+++ /dev/null
@@ -1,35 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<project xmlns="http://maven.apache.org/POM/4.0.0"
-         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
-    <parent>
-        <artifactId>dubbo-samples-migration</artifactId>
-        <groupId>org.apache.dubbo</groupId>
-        <version>1.0-SNAPSHOT</version>
-    </parent>
-    <modelVersion>4.0.0</modelVersion>
-
-    <artifactId>dubbo-samples-migration-default</artifactId>
-    
-    <build>
-        <plugins>
-            <plugin>
-                <groupId>org.apache.maven.plugins</groupId>
-                <artifactId>maven-compiler-plugin</artifactId>
-                <version>${maven-compiler-plugin.version}</version>
-                <configuration>
-                    <source>${source.level}</source>
-                    <target>${target.level}</target>
-                </configuration>
-            </plugin>
-        </plugins>
-    </build>
-    <dependencies>
-        <dependency>
-            <groupId>org.apache.dubbo</groupId>
-            <artifactId>dubbo-samples-migration-api</artifactId>
-            <version>1.0-SNAPSHOT</version>
-            <scope>compile</scope>
-        </dependency>
-    </dependencies>
-</project>
\ No newline at end of file
diff --git a/dubbo-samples-migration/dubbo-samples-migration-provider/pom.xml b/dubbo-samples-migration/dubbo-samples-migration-provider/pom.xml
new file mode 100644
index 0000000..5d4d889
--- /dev/null
+++ b/dubbo-samples-migration/dubbo-samples-migration-provider/pom.xml
@@ -0,0 +1,81 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project xmlns="http://maven.apache.org/POM/4.0.0"
+         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+    <modelVersion>4.0.0</modelVersion>
+
+    <groupId>org.apache.dubbo</groupId>
+    <artifactId>dubbo-samples-migration-provider</artifactId>
+    <version>1.0-SNAPSHOT</version>
+
+    <properties>
+        <maven.compiler.source>1.8</maven.compiler.source>
+        <maven.compiler.target>1.8</maven.compiler.target>
+        <dubbo.provider.version>3.0.2.1</dubbo.provider.version>
+        <junit.version>4.12</junit.version>
+        <maven-compiler-plugin.version>3.7.0</maven-compiler-plugin.version>
+        <source.level>1.8</source.level>
+        <target.level>1.8</target.level>
+    </properties>
+
+    <dependencyManagement>
+        <dependencies>
+            <dependency>
+                <groupId>org.apache.dubbo</groupId>
+                <artifactId>dubbo-bom</artifactId>
+                <version>${dubbo.provider.version}</version>
+                <type>pom</type>
+                <scope>import</scope>
+            </dependency>
+            <dependency>
+                <groupId>org.apache.dubbo</groupId>
+                <artifactId>dubbo-dependencies-zookeeper</artifactId>
+                <version>${dubbo.provider.version}</version>
+                <type>pom</type>
+            </dependency>
+            <dependency>
+                <groupId>org.apache.dubbo</groupId>
+                <artifactId>dubbo-dependencies-bom</artifactId>
+                <version>${dubbo.provider.version}</version>
+                <type>pom</type>
+                <scope>import</scope>
+            </dependency>
+        </dependencies>
+    </dependencyManagement>
+
+    <dependencies>
+        <dependency>
+            <groupId>org.apache.dubbo</groupId>
+            <artifactId>dubbo</artifactId>
+        </dependency>
+        
+        <dependency>
+            <groupId>org.apache.dubbo</groupId>
+            <artifactId>dubbo-dependencies-zookeeper</artifactId>
+            <type>pom</type>
+        </dependency>
+
+        <dependency>
+            <groupId>org.apache.dubbo</groupId>
+            <artifactId>dubbo-samples-migration-api</artifactId>
+            <version>1.0-SNAPSHOT</version>
+        </dependency>
+    </dependencies>
+
+    <profiles>
+        <!-- For jdk 11 above JavaEE annotation -->
+        <profile>
+            <id>javax.annotation</id>
+            <activation>
+                <jdk>[1.11,)</jdk>
+            </activation>
+            <dependencies>
+                <dependency>
+                    <groupId>javax.annotation</groupId>
+                    <artifactId>javax.annotation-api</artifactId>
+                    <version>1.3.2</version>
+                </dependency>
+            </dependencies>
+        </profile>
+    </profiles>
+</project>
\ No newline at end of file
diff --git a/dubbo-samples-migration/dubbo-samples-migration-default/src/main/java/org/apache/dubbo/migration/EmbeddedZooKeeper.java b/dubbo-samples-migration/dubbo-samples-migration-provider/src/main/java/org/apache/dubbo/migration/EmbeddedZooKeeper.java
similarity index 100%
rename from dubbo-samples-migration/dubbo-samples-migration-default/src/main/java/org/apache/dubbo/migration/EmbeddedZooKeeper.java
rename to dubbo-samples-migration/dubbo-samples-migration-provider/src/main/java/org/apache/dubbo/migration/EmbeddedZooKeeper.java
diff --git a/dubbo-samples-migration/dubbo-samples-migration-default/src/main/java/org/apache/dubbo/migration/GreeterServiceImpl.java b/dubbo-samples-migration/dubbo-samples-migration-provider/src/main/java/org/apache/dubbo/migration/GreeterServiceImpl.java
similarity index 100%
rename from dubbo-samples-migration/dubbo-samples-migration-default/src/main/java/org/apache/dubbo/migration/GreeterServiceImpl.java
rename to dubbo-samples-migration/dubbo-samples-migration-provider/src/main/java/org/apache/dubbo/migration/GreeterServiceImpl.java
diff --git a/dubbo-samples-migration/dubbo-samples-migration-default/src/main/java/org/apache/dubbo/migration/provider/ApiProvider.java b/dubbo-samples-migration/dubbo-samples-migration-provider/src/main/java/org/apache/dubbo/migration/provider/ApiProvider.java
similarity index 91%
rename from dubbo-samples-migration/dubbo-samples-migration-default/src/main/java/org/apache/dubbo/migration/provider/ApiProvider.java
rename to dubbo-samples-migration/dubbo-samples-migration-provider/src/main/java/org/apache/dubbo/migration/provider/ApiProvider.java
index 7222047..8312b5c 100644
--- a/dubbo-samples-migration/dubbo-samples-migration-default/src/main/java/org/apache/dubbo/migration/provider/ApiProvider.java
+++ b/dubbo-samples-migration/dubbo-samples-migration-provider/src/main/java/org/apache/dubbo/migration/provider/ApiProvider.java
@@ -16,6 +16,7 @@
  */
 package org.apache.dubbo.migration.provider;
 
+import org.apache.dubbo.common.constants.CommonConstants;
 import org.apache.dubbo.config.ApplicationConfig;
 import org.apache.dubbo.config.ProtocolConfig;
 import org.apache.dubbo.config.RegistryConfig;
@@ -23,12 +24,11 @@
 import org.apache.dubbo.config.bootstrap.DubboBootstrap;
 import org.apache.dubbo.migration.EmbeddedZooKeeper;
 import org.apache.dubbo.migration.GreeterServiceImpl;
-
 import org.apache.dubbo.migration.api.GreeterService;
 
 public class ApiProvider {
     public static void main(String[] args) throws InterruptedException {
-        String curProtocol = System.getProperty("dubbo.current.protocol", "tri");
+        String curProtocol = System.getProperty("dubbo.current.protocol", CommonConstants.DUBBO);
         String zookeeperAddress = System.getProperty("zookeeper.address", "127.0.0.1");
         
         new EmbeddedZooKeeper(2181, false).start();
@@ -38,7 +38,7 @@
         serviceConfig.setRef(new GreeterServiceImpl());
 
         DubboBootstrap bootstrap = DubboBootstrap.getInstance();
-        bootstrap.application(new ApplicationConfig("dubbo-demo-triple-api-provider"))
+        bootstrap.application(new ApplicationConfig("dubbo-samples-migration-provider"))
                 .registry(new RegistryConfig("zookeeper://" + zookeeperAddress + ":2181"))
                 .protocol(new ProtocolConfig(curProtocol))
                 .service(serviceConfig)
diff --git a/dubbo-samples-migration/dubbo-samples-migration-default/src/main/resources/log4j.properties b/dubbo-samples-migration/dubbo-samples-migration-provider/src/main/resources/log4j.properties
similarity index 100%
copy from dubbo-samples-migration/dubbo-samples-migration-default/src/main/resources/log4j.properties
copy to dubbo-samples-migration/dubbo-samples-migration-provider/src/main/resources/log4j.properties
diff --git a/dubbo-samples-migration/pom.xml b/dubbo-samples-migration/pom.xml
index 006d96e..543e835 100644
--- a/dubbo-samples-migration/pom.xml
+++ b/dubbo-samples-migration/pom.xml
@@ -8,87 +8,10 @@
     <artifactId>dubbo-samples-migration</artifactId>
     <packaging>pom</packaging>
     <version>1.0-SNAPSHOT</version>
+    
     <modules>
-        <module>dubbo-samples-migration-default</module>
         <module>dubbo-samples-migration-api</module>
+        <module>dubbo-samples-migration-provider</module>
+        <module>dubbo-samples-migration-consumer</module>
     </modules>
-    
-    <properties>
-        <maven.compiler.source>1.8</maven.compiler.source>
-        <maven.compiler.target>1.8</maven.compiler.target>
-<!--        <dubbo.version>3.0.2.1</dubbo.version>-->
-        <dubbo.version>3.0.3-SNAPSHOT</dubbo.version>
-<!--        <dubbo.version>2.7.13</dubbo.version>-->
-        <junit.version>4.12</junit.version>
-        <maven-compiler-plugin.version>3.7.0</maven-compiler-plugin.version>
-        <source.level>1.8</source.level>
-        <target.level>1.8</target.level>
-    </properties>
-    
-    <dependencyManagement>
-        <dependencies>
-            <dependency>
-                <groupId>org.apache.dubbo</groupId>
-                <artifactId>dubbo-bom</artifactId>
-                <version>${dubbo.version}</version>
-                <type>pom</type>
-                <scope>import</scope>
-            </dependency>
-            <dependency>
-                <groupId>org.apache.dubbo</groupId>
-                <artifactId>dubbo-dependencies-zookeeper</artifactId>
-                <version>${dubbo.version}</version>
-                <type>pom</type>
-            </dependency>
-            <dependency>
-                <groupId>org.apache.dubbo</groupId>
-                <artifactId>dubbo-dependencies-bom</artifactId>
-                <version>${dubbo.version}</version>
-                <type>pom</type>
-                <scope>import</scope>
-            </dependency>
-        </dependencies>
-    </dependencyManagement>
-    
-    <dependencies>
-        <dependency>
-            <groupId>org.apache.dubbo</groupId>
-            <artifactId>dubbo</artifactId>
-        </dependency>
-
-        <dependency>
-            <groupId>com.google.protobuf</groupId>
-            <artifactId>protobuf-java</artifactId>
-        </dependency>
-
-        <dependency>
-            <groupId>org.apache.dubbo</groupId>
-            <artifactId>dubbo-dependencies-zookeeper</artifactId>
-            <type>pom</type>
-        </dependency>
-
-        <dependency>
-            <groupId>junit</groupId>
-            <artifactId>junit</artifactId>
-            <version>${junit.version}</version>
-            <scope>test</scope>
-        </dependency>
-    </dependencies>
-
-    <profiles>
-        <!-- For jdk 11 above JavaEE annotation -->
-        <profile>
-            <id>javax.annotation</id>
-            <activation>
-                <jdk>[1.11,)</jdk>
-            </activation>
-            <dependencies>
-                <dependency>
-                    <groupId>javax.annotation</groupId>
-                    <artifactId>javax.annotation-api</artifactId>
-                    <version>1.3.2</version>
-                </dependency>
-            </dependencies>
-        </profile>
-    </profiles>
 </project>
\ No newline at end of file
diff --git a/test/run-tests.sh b/test/run-tests.sh
index 60385b3..b150f7c 100755
--- a/test/run-tests.sh
+++ b/test/run-tests.sh
@@ -112,9 +112,6 @@
   case_dir=$1
   case_no=$2
 
-  echo "case_dir=$case_dir"
-  echo "case_no=$case_no"
-
   if [ -f $case_dir ]; then
     case_dir=`dirname $case_dir`
   fi