You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@servicecomb.apache.org by li...@apache.org on 2018/08/14 12:52:07 UTC

[incubator-servicecomb-java-chassis] branch master updated (5754914 -> 25d5c45)

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

liubao pushed a change to branch master
in repository https://gitbox.apache.org/repos/asf/incubator-servicecomb-java-chassis.git.


    from 5754914  [SCB-833] IOException do not trigger retry mechanism
     new 57f828e  [SCB-612]delete useless MicroserviceMetaManager
     new f9a6715  optimize the ConfigCenterClient log and delete useless parameter
     new 25d5c45  remove CrossappBootListener.java and check test case

The 3 revisions listed above as "new" are entirely new to this
repository and will be described in separate emails.  The revisions
listed as "add" were already present in the repository and have only
been added to this reference.


Summary of changes:
 .../common/rest/RestEngineSchemaListener.java      | 14 +---
 .../common/rest/RestProducerInvocation.java        | 12 +---
 .../common/rest/TestAbstractRestInvocation.java    |  6 --
 .../common/rest/TestRestProducerInvocation.java    | 35 +++++-----
 .../servicecomb/core/CseApplicationListener.java   |  5 ++
 .../org/apache/servicecomb/core/CseContext.java    | 12 ----
 .../org/apache/servicecomb/core/SCBEngine.java     | 12 ++++
 .../core/definition/MicroserviceMetaManager.java   | 76 ----------------------
 .../definition/loader/SchemaListenerManager.java   | 26 +++-----
 .../core/definition/loader/SchemaLoader.java       | 18 ++---
 .../definition/schema/AbstractSchemaFactory.java   |  7 --
 .../definition/schema/ProducerSchemaFactory.java   |  6 +-
 .../consumer/AbstractConsumerProvider.java         |  5 --
 .../provider/producer/ProducerProviderManager.java | 10 +--
 .../servicecomb/core/unittest/UnitTestMeta.java    | 19 ++----
 .../apache/servicecomb/core/TestDefinition.java    | 24 -------
 .../core/definition/TestOperationMeta.java         |  4 +-
 .../definition/loader/TestDynamicSchemaLoader.java | 17 +++--
 .../loader/TestSchemaListenerManager.java          |  2 -
 .../schema/TestProducerSchemaFactory.java          | 17 ++---
 .../producer/TestProducerProviderManager.java      |  4 +-
 .../demo/crossapp/CrossappBootListener.java        | 34 ----------
 .../springmvc/server/ProducerTestsAfterBootup.java | 10 +--
 .../config/client/ConfigCenterClient.java          | 21 ++++--
 .../config/client/ParseConfigUtils.java            |  3 +-
 .../metrics/core/MetricsBootListener.java          | 10 +--
 .../metrics/core/ThreadPoolMetersInitializer.java  | 14 ++--
 .../metrics/core/TestMetricsBootListener.java      | 28 +++-----
 .../core/TestThreadPoolMetersInitializer.java      | 16 ++---
 .../provider/pojo/PojoProducerProvider.java        |  4 --
 .../servicecomb/provider/common/MockUtil.java      |  2 -
 .../provider/pojo/TestPojoProducerProvider.java    |  2 -
 .../provider/rest/common/RestProducerProvider.java |  4 --
 .../transport/highway/HighwayServerInvoke.java     | 11 +---
 .../highway/TestHighwayServerConnection.java       | 18 ++---
 .../transport/highway/TestHighwayServerInvoke.java |  1 -
 36 files changed, 137 insertions(+), 372 deletions(-)
 delete mode 100644 core/src/main/java/org/apache/servicecomb/core/definition/MicroserviceMetaManager.java
 delete mode 100644 demo/demo-crossapp/crossapp-client/src/main/java/org/apache/servicecomb/demo/crossapp/CrossappBootListener.java


[incubator-servicecomb-java-chassis] 03/03: remove CrossappBootListener.java and check test case

Posted by li...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

liubao pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/incubator-servicecomb-java-chassis.git

commit 25d5c4503ac5c94ae5ffde85454e88cd93ad1d69
Author: heyile <he...@huawei.com>
AuthorDate: Tue Aug 14 16:07:03 2018 +0800

    remove CrossappBootListener.java and check test case
---
 .../demo/crossapp/CrossappBootListener.java        | 37 ----------------------
 .../metrics/core/TestMetricsBootListener.java      | 28 ++++++----------
 .../highway/TestHighwayServerConnection.java       | 12 +++----
 3 files changed, 16 insertions(+), 61 deletions(-)

diff --git a/demo/demo-crossapp/crossapp-client/src/main/java/org/apache/servicecomb/demo/crossapp/CrossappBootListener.java b/demo/demo-crossapp/crossapp-client/src/main/java/org/apache/servicecomb/demo/crossapp/CrossappBootListener.java
deleted file mode 100644
index 5c97bc6..0000000
--- a/demo/demo-crossapp/crossapp-client/src/main/java/org/apache/servicecomb/demo/crossapp/CrossappBootListener.java
+++ /dev/null
@@ -1,37 +0,0 @@
-/*
- * 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.servicecomb.demo.crossapp;
-
-import org.apache.servicecomb.core.BootListener;
-import org.apache.servicecomb.serviceregistry.RegistryUtils;
-import org.springframework.stereotype.Component;
-
-@Component
-public class CrossappBootListener implements BootListener {
-  @SuppressWarnings("deprecation")
-  @Override
-  public void onBootEvent(BootEvent event) {
-    if (EventType.BEFORE_CONSUMER_PROVIDER.equals(event.getEventType())) {
-      // 动态注册schemas目录下面的契约到当前服务
-      org.apache.servicecomb.core.definition.loader.DynamicSchemaLoader.INSTANCE
-          .registerSchemas(RegistryUtils.getMicroservice().getServiceName(),
-              "classpath*:schemas/*.yaml");
-    }
-  }
-
-}
diff --git a/metrics/metrics-core/src/test/java/org/apache/servicecomb/metrics/core/TestMetricsBootListener.java b/metrics/metrics-core/src/test/java/org/apache/servicecomb/metrics/core/TestMetricsBootListener.java
index ce2d462..75eabe8 100644
--- a/metrics/metrics-core/src/test/java/org/apache/servicecomb/metrics/core/TestMetricsBootListener.java
+++ b/metrics/metrics-core/src/test/java/org/apache/servicecomb/metrics/core/TestMetricsBootListener.java
@@ -27,13 +27,11 @@ import org.apache.servicecomb.foundation.common.utils.SPIServiceUtils;
 import org.apache.servicecomb.foundation.metrics.MetricsInitializer;
 import org.apache.servicecomb.metrics.core.publish.HealthCheckerRestPublisher;
 import org.apache.servicecomb.metrics.core.publish.MetricsRestPublisher;
-import org.apache.servicecomb.serviceregistry.RegistryUtils;
 import org.apache.servicecomb.serviceregistry.api.registry.Microservice;
 import org.junit.Assert;
 import org.junit.Test;
 
 import mockit.Deencapsulation;
-import mockit.Expectations;
 import mockit.Mock;
 import mockit.MockUp;
 
@@ -46,10 +44,10 @@ public class TestMetricsBootListener {
 
     ProducerSchemaFactory producerSchemaFactory = new MockUp<ProducerSchemaFactory>() {
       @Mock
-      SchemaMeta getOrCreateProducerSchema(String microserviceName, String schemaId,
+      SchemaMeta getOrCreateProducerSchema(String schemaId,
           Class<?> producerClass,
           Object producerInstance) {
-        argsList.add(new Object[] {microserviceName, schemaId, producerClass, producerInstance});
+        argsList.add(new Object[] {schemaId, producerClass, producerInstance});
         return null;
       }
     }.getMockInstance();
@@ -57,29 +55,23 @@ public class TestMetricsBootListener {
 
     Microservice microservice = new Microservice();
     microservice.setServiceName("name");
-    new Expectations(RegistryUtils.class) {
-      {
-        RegistryUtils.getMicroservice();
-        result = microservice;
-      }
-    };
 
     BootEvent event = new BootEvent();
     event.setEventType(EventType.BEFORE_PRODUCER_PROVIDER);
     listener.onBootEvent(event);
 
     Object[] args = argsList.get(0);
-    Assert.assertEquals("name", args[0]);
-    Assert.assertEquals("healthEndpoint", args[1]);
-    Assert.assertEquals(HealthCheckerRestPublisher.class, args[2]);
-    Assert.assertEquals(HealthCheckerRestPublisher.class, args[3].getClass());
+    //we have remove parameter microserviceName
+    Assert.assertEquals("healthEndpoint", args[0]);
+    Assert.assertEquals(HealthCheckerRestPublisher.class, args[1]);
+    Assert.assertEquals(HealthCheckerRestPublisher.class, args[2].getClass());
 
     MetricsRestPublisher metricsRestPublisher =
         SPIServiceUtils.getTargetService(MetricsInitializer.class, MetricsRestPublisher.class);
     args = argsList.get(1);
-    Assert.assertEquals("name", args[0]);
-    Assert.assertEquals("metricsEndpoint", args[1]);
-    Assert.assertEquals(MetricsRestPublisher.class, args[2]);
-    Assert.assertSame(metricsRestPublisher, args[3]);
+    //we have remove parameter microserviceName
+    Assert.assertEquals("metricsEndpoint", args[0]);
+    Assert.assertEquals(MetricsRestPublisher.class, args[1]);
+    Assert.assertSame(metricsRestPublisher, args[2]);
   }
 }
diff --git a/transports/transport-highway/src/test/java/org/apache/servicecomb/transport/highway/TestHighwayServerConnection.java b/transports/transport-highway/src/test/java/org/apache/servicecomb/transport/highway/TestHighwayServerConnection.java
index d555605..9a18f9a 100644
--- a/transports/transport-highway/src/test/java/org/apache/servicecomb/transport/highway/TestHighwayServerConnection.java
+++ b/transports/transport-highway/src/test/java/org/apache/servicecomb/transport/highway/TestHighwayServerConnection.java
@@ -16,10 +16,11 @@
  */
 package org.apache.servicecomb.transport.highway;
 
-import javax.xml.ws.Holder;
 import java.net.InetSocketAddress;
 import java.util.concurrent.atomic.AtomicInteger;
 
+import javax.xml.ws.Holder;
+
 import org.apache.servicecomb.codec.protobuf.definition.ProtobufManager;
 import org.apache.servicecomb.codec.protobuf.utils.WrapSchema;
 import org.apache.servicecomb.core.CseContext;
@@ -35,17 +36,16 @@ import org.junit.Assert;
 import org.junit.Before;
 import org.junit.Test;
 
-import mockit.Expectations;
-import mockit.Mock;
-import mockit.MockUp;
-import mockit.Mocked;
-
 import io.protostuff.LinkedBuffer;
 import io.protostuff.ProtobufOutput;
 import io.vertx.core.buffer.Buffer;
 import io.vertx.core.net.NetSocket;
 import io.vertx.core.net.impl.NetSocketImpl;
 import io.vertx.core.net.impl.SocketAddressImpl;
+import mockit.Expectations;
+import mockit.Mock;
+import mockit.MockUp;
+import mockit.Mocked;
 
 public class TestHighwayServerConnection {
   private static WrapSchema requestHeaderSchema =


[incubator-servicecomb-java-chassis] 02/03: optimize the ConfigCenterClient log and delete useless parameter

Posted by li...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

liubao pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/incubator-servicecomb-java-chassis.git

commit f9a67152b58efcd2308dee2231f15846f6d1b5a7
Author: heyile <he...@huawei.com>
AuthorDate: Tue Aug 14 13:02:10 2018 +0800

    optimize the ConfigCenterClient log and delete useless parameter
---
 .../common/rest/RestEngineSchemaListener.java      |  2 +-
 .../common/rest/RestProducerInvocation.java        |  2 +-
 .../common/rest/TestAbstractRestInvocation.java    |  9 ++++----
 .../common/rest/TestRestProducerInvocation.java    |  5 ++---
 .../servicecomb/core/CseApplicationListener.java   |  4 ++--
 .../org/apache/servicecomb/core/SCBEngine.java     | 10 ++++-----
 .../definition/loader/SchemaListenerManager.java   | 25 +++++-----------------
 .../core/definition/loader/SchemaLoader.java       | 12 +++--------
 .../definition/schema/AbstractSchemaFactory.java   |  3 ++-
 .../definition/schema/ProducerSchemaFactory.java   | 15 ++++---------
 .../provider/producer/ProducerProviderManager.java |  2 +-
 .../servicecomb/core/unittest/UnitTestMeta.java    |  7 +++---
 .../core/definition/TestOperationMeta.java         |  4 ++--
 .../definition/loader/TestDynamicSchemaLoader.java |  8 +++----
 .../schema/TestProducerSchemaFactory.java          | 16 +++++++-------
 .../demo/crossapp/CrossappBootListener.java        |  7 ++++--
 .../springmvc/server/ProducerTestsAfterBootup.java |  2 +-
 .../config/client/ConfigCenterClient.java          | 21 ++++++++++++------
 .../config/client/ParseConfigUtils.java            |  3 +--
 .../metrics/core/MetricsBootListener.java          | 10 ++-------
 .../metrics/core/ThreadPoolMetersInitializer.java  |  2 +-
 .../core/TestThreadPoolMetersInitializer.java      |  2 +-
 .../provider/pojo/PojoProducerProvider.java        |  4 ----
 .../provider/pojo/TestPojoProducerProvider.java    |  2 --
 .../provider/rest/common/RestProducerProvider.java |  4 ----
 .../transport/highway/HighwayServerInvoke.java     |  2 +-
 .../highway/TestHighwayServerConnection.java       |  2 +-
 .../transport/highway/TestHighwayServerInvoke.java |  1 -
 28 files changed, 76 insertions(+), 110 deletions(-)

diff --git a/common/common-rest/src/main/java/org/apache/servicecomb/common/rest/RestEngineSchemaListener.java b/common/common-rest/src/main/java/org/apache/servicecomb/common/rest/RestEngineSchemaListener.java
index f9be1b9..14e4c39 100644
--- a/common/common-rest/src/main/java/org/apache/servicecomb/common/rest/RestEngineSchemaListener.java
+++ b/common/common-rest/src/main/java/org/apache/servicecomb/common/rest/RestEngineSchemaListener.java
@@ -37,7 +37,7 @@ public class RestEngineSchemaListener implements SchemaListener, BootListener {
       return;
     }
 
-    MicroserviceMeta microserviceMeta = SCBEngine.getInstance().getProducerMicroMeta();
+    MicroserviceMeta microserviceMeta = SCBEngine.getInstance().getProducerMicroserviceMeta();
     ServicePathManager servicePathManager = ServicePathManager.getServicePathManager(microserviceMeta);
     if (servicePathManager != null) {
       servicePathManager.buildProducerPaths();
diff --git a/common/common-rest/src/main/java/org/apache/servicecomb/common/rest/RestProducerInvocation.java b/common/common-rest/src/main/java/org/apache/servicecomb/common/rest/RestProducerInvocation.java
index f2fbee5..f3cce62 100644
--- a/common/common-rest/src/main/java/org/apache/servicecomb/common/rest/RestProducerInvocation.java
+++ b/common/common-rest/src/main/java/org/apache/servicecomb/common/rest/RestProducerInvocation.java
@@ -52,7 +52,7 @@ public class RestProducerInvocation extends AbstractRestInvocation {
   }
 
   protected void findRestOperation() {
-    MicroserviceMeta selfMicroserviceMeta = SCBEngine.getInstance().getProducerMicroMeta();
+    MicroserviceMeta selfMicroserviceMeta = SCBEngine.getInstance().getProducerMicroserviceMeta();
     findRestOperation(selfMicroserviceMeta);
   }
 
diff --git a/common/common-rest/src/test/java/org/apache/servicecomb/common/rest/TestAbstractRestInvocation.java b/common/common-rest/src/test/java/org/apache/servicecomb/common/rest/TestAbstractRestInvocation.java
index 30c993b..2b0fffa 100644
--- a/common/common-rest/src/test/java/org/apache/servicecomb/common/rest/TestAbstractRestInvocation.java
+++ b/common/common-rest/src/test/java/org/apache/servicecomb/common/rest/TestAbstractRestInvocation.java
@@ -17,14 +17,15 @@
 
 package org.apache.servicecomb.common.rest;
 
-import javax.ws.rs.core.Response.Status;
-import javax.xml.ws.Holder;
 import java.util.Arrays;
 import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
 import java.util.concurrent.Executor;
 
+import javax.ws.rs.core.Response.Status;
+import javax.xml.ws.Holder;
+
 import org.apache.servicecomb.common.rest.codec.produce.ProduceProcessorManager;
 import org.apache.servicecomb.common.rest.definition.RestOperationMeta;
 import org.apache.servicecomb.common.rest.filter.HttpServerFilter;
@@ -66,14 +67,14 @@ import org.junit.rules.ExpectedException;
 
 import com.google.common.eventbus.EventBus;
 import com.google.common.eventbus.Subscribe;
+
+import io.vertx.core.buffer.Buffer;
 import mockit.Deencapsulation;
 import mockit.Expectations;
 import mockit.Mock;
 import mockit.MockUp;
 import mockit.Mocked;
 
-import io.vertx.core.buffer.Buffer;
-
 public class TestAbstractRestInvocation {
   @Mocked
   HttpServletRequestEx requestEx;
diff --git a/common/common-rest/src/test/java/org/apache/servicecomb/common/rest/TestRestProducerInvocation.java b/common/common-rest/src/test/java/org/apache/servicecomb/common/rest/TestRestProducerInvocation.java
index ec63b3b..671106b 100644
--- a/common/common-rest/src/test/java/org/apache/servicecomb/common/rest/TestRestProducerInvocation.java
+++ b/common/common-rest/src/test/java/org/apache/servicecomb/common/rest/TestRestProducerInvocation.java
@@ -27,7 +27,6 @@ import org.apache.servicecomb.common.rest.filter.HttpServerFilter;
 import org.apache.servicecomb.common.rest.locator.OperationLocator;
 import org.apache.servicecomb.common.rest.locator.ServicePathManager;
 import org.apache.servicecomb.core.Const;
-import org.apache.servicecomb.core.CseContext;
 import org.apache.servicecomb.core.SCBEngine;
 import org.apache.servicecomb.core.Transport;
 import org.apache.servicecomb.core.definition.MicroserviceMeta;
@@ -90,12 +89,12 @@ public class TestRestProducerInvocation {
 
   @Before
   public void setup() {
-    SCBEngine.getInstance().setProducerMicroMeta(microserviceMeta);
+    SCBEngine.getInstance().setProducerMicroserviceMeta(microserviceMeta);
   }
 
   @After
   public void teardown() {
-    SCBEngine.getInstance().setProducerMicroMeta(null);
+    SCBEngine.getInstance().setProducerMicroserviceMeta(null);
   }
 
   @Test
diff --git a/core/src/main/java/org/apache/servicecomb/core/CseApplicationListener.java b/core/src/main/java/org/apache/servicecomb/core/CseApplicationListener.java
index 3382789..70c66f8 100644
--- a/core/src/main/java/org/apache/servicecomb/core/CseApplicationListener.java
+++ b/core/src/main/java/org/apache/servicecomb/core/CseApplicationListener.java
@@ -65,10 +65,10 @@ public class CseApplicationListener
       }
 
       if (SCBEngine.getInstance().getBootListenerList() == null) {
-        //SCBEngine init first, hence we do not worry that when other bean class using the
+        //SCBEngine init first, hence we do not need worry that when other beans need use the
         //producer microserviceMeta, the SCBEngine is not inited.
         String serviceName = RegistryUtils.getMicroservice().getServiceName();
-        SCBEngine.getInstance().setProducerMicroMeta(new MicroserviceMeta(serviceName));
+        SCBEngine.getInstance().setProducerMicroserviceMeta(new MicroserviceMeta(serviceName));
         SCBEngine.getInstance().setProducerProviderManager(applicationContext.getBean(ProducerProviderManager.class));
         SCBEngine.getInstance().setConsumerProviderManager(applicationContext.getBean(ConsumerProviderManager.class));
         SCBEngine.getInstance().setTransportManager(applicationContext.getBean(TransportManager.class));
diff --git a/core/src/main/java/org/apache/servicecomb/core/SCBEngine.java b/core/src/main/java/org/apache/servicecomb/core/SCBEngine.java
index 39dbd83..1bc46c9 100644
--- a/core/src/main/java/org/apache/servicecomb/core/SCBEngine.java
+++ b/core/src/main/java/org/apache/servicecomb/core/SCBEngine.java
@@ -56,7 +56,7 @@ public class SCBEngine {
 
   private ConsumerProviderManager consumerProviderManager;
 
-  private MicroserviceMeta producerMicroMeta;
+  private MicroserviceMeta producerMicroserviceMeta;
 
   private TransportManager transportManager;
 
@@ -303,11 +303,11 @@ public class SCBEngine {
     return consumerProviderManager.getReferenceConfig(microserviceName);
   }
 
-  public MicroserviceMeta getProducerMicroMeta() {
-    return producerMicroMeta;
+  public MicroserviceMeta getProducerMicroserviceMeta() {
+    return producerMicroserviceMeta;
   }
 
-  public void setProducerMicroMeta(MicroserviceMeta producerMicroMeta) {
-    this.producerMicroMeta = producerMicroMeta;
+  public void setProducerMicroserviceMeta(MicroserviceMeta producerMicroserviceMeta) {
+    this.producerMicroserviceMeta = producerMicroserviceMeta;
   }
 }
diff --git a/core/src/main/java/org/apache/servicecomb/core/definition/loader/SchemaListenerManager.java b/core/src/main/java/org/apache/servicecomb/core/definition/loader/SchemaListenerManager.java
index 83e93f3..e58c0f4 100644
--- a/core/src/main/java/org/apache/servicecomb/core/definition/loader/SchemaListenerManager.java
+++ b/core/src/main/java/org/apache/servicecomb/core/definition/loader/SchemaListenerManager.java
@@ -24,9 +24,6 @@ import java.util.List;
 import org.apache.servicecomb.core.SCBEngine;
 import org.apache.servicecomb.core.definition.MicroserviceMeta;
 import org.apache.servicecomb.core.definition.SchemaMeta;
-import org.apache.servicecomb.serviceregistry.RegistryUtils;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Component;
 
@@ -36,8 +33,6 @@ import org.springframework.stereotype.Component;
 @Component
 public class SchemaListenerManager {
 
-  private static final Logger LOGGER = LoggerFactory.getLogger(SchemaListenerManager.class);
-
   @Autowired(required = false)
   private List<SchemaListener> schemaListenerList = new ArrayList<>();
 
@@ -55,7 +50,7 @@ public class SchemaListenerManager {
 
   public void notifySchemaListener() {
     //only one instance
-    MicroserviceMeta microserviceMeta = SCBEngine.getInstance().getProducerMicroMeta();
+    MicroserviceMeta microserviceMeta = SCBEngine.getInstance().getProducerMicroserviceMeta();
     notifySchemaListener(microserviceMeta);
   }
 
@@ -70,23 +65,13 @@ public class SchemaListenerManager {
     notifySchemaListener(schemaMetas);
   }
 
-  public SchemaMeta ensureFindSchemaMeta(String microserviceName, String schemaId) {
-    if (!RegistryUtils.getMicroservice().getServiceName().equals(microserviceName)) {
-      LOGGER.error("miroserviceName : {} is different from the default microserviceName :{}",
-          microserviceName,
-          RegistryUtils.getMicroservice().getServiceName());
-    }
-    MicroserviceMeta microserviceMeta = SCBEngine.getInstance().getProducerMicroMeta();
+  public SchemaMeta ensureFindSchemaMeta(String schemaId) {
+    MicroserviceMeta microserviceMeta = SCBEngine.getInstance().getProducerMicroserviceMeta();
     return microserviceMeta.ensureFindSchemaMeta(schemaId);
   }
 
-  public Collection<SchemaMeta> getAllSchemaMeta(String microserviceName) {
-    if (!RegistryUtils.getMicroservice().getServiceName().equals(microserviceName)) {
-      LOGGER.error("miroserviceName : {} is different from the default microserviceName :{}",
-          microserviceName,
-          RegistryUtils.getMicroservice().getServiceName());
-    }
-    MicroserviceMeta microserviceMeta = SCBEngine.getInstance().getProducerMicroMeta();
+  public Collection<SchemaMeta> getAllSchemaMeta() {
+    MicroserviceMeta microserviceMeta = SCBEngine.getInstance().getProducerMicroserviceMeta();
     return microserviceMeta.getSchemaMetas();
   }
 }
diff --git a/core/src/main/java/org/apache/servicecomb/core/definition/loader/SchemaLoader.java b/core/src/main/java/org/apache/servicecomb/core/definition/loader/SchemaLoader.java
index 40e1d68..95f9cd5 100644
--- a/core/src/main/java/org/apache/servicecomb/core/definition/loader/SchemaLoader.java
+++ b/core/src/main/java/org/apache/servicecomb/core/definition/loader/SchemaLoader.java
@@ -68,18 +68,12 @@ public class SchemaLoader {
       throw new Error(String.format("Parse the swagger for %s:%s failed", microserviceName, schemaId));
     }
 
-    return registerSchema(microserviceName, schemaId, swagger);
+    return registerSchema(schemaId, swagger);
   }
 
-  public SchemaMeta registerSchema(String microserviceName, String schemaId,
+  public SchemaMeta registerSchema(String schemaId,
       Swagger swagger) {
-    //check whether the microserviceName is right
-    if (!RegistryUtils.getMicroservice().getServiceName().equals(microserviceName)) {
-      LOGGER.error("miroserviceName : {} is different from the default microserviceName :{}",
-          microserviceName,
-          RegistryUtils.getMicroservice().getServiceName());
-    }
-    MicroserviceMeta microserviceMeta = SCBEngine.getInstance().getProducerMicroMeta();
+    MicroserviceMeta microserviceMeta = SCBEngine.getInstance().getProducerMicroserviceMeta();
     return registerSchema(microserviceMeta, schemaId, swagger);
   }
 
diff --git a/core/src/main/java/org/apache/servicecomb/core/definition/schema/AbstractSchemaFactory.java b/core/src/main/java/org/apache/servicecomb/core/definition/schema/AbstractSchemaFactory.java
index bf2336d..0db01dc 100644
--- a/core/src/main/java/org/apache/servicecomb/core/definition/schema/AbstractSchemaFactory.java
+++ b/core/src/main/java/org/apache/servicecomb/core/definition/schema/AbstractSchemaFactory.java
@@ -17,9 +17,10 @@
 
 package org.apache.servicecomb.core.definition.schema;
 
-import javax.inject.Inject;
 import java.net.URL;
 
+import javax.inject.Inject;
+
 import org.apache.servicecomb.core.definition.MicroserviceMeta;
 import org.apache.servicecomb.core.definition.SchemaMeta;
 import org.apache.servicecomb.core.definition.SchemaUtils;
diff --git a/core/src/main/java/org/apache/servicecomb/core/definition/schema/ProducerSchemaFactory.java b/core/src/main/java/org/apache/servicecomb/core/definition/schema/ProducerSchemaFactory.java
index d5b435f..5b1d0c8 100644
--- a/core/src/main/java/org/apache/servicecomb/core/definition/schema/ProducerSchemaFactory.java
+++ b/core/src/main/java/org/apache/servicecomb/core/definition/schema/ProducerSchemaFactory.java
@@ -20,13 +20,14 @@ package org.apache.servicecomb.core.definition.schema;
 import static org.apache.servicecomb.serviceregistry.api.Const.REGISTER_URL_PREFIX;
 import static org.apache.servicecomb.serviceregistry.api.Const.URL_PREFIX;
 
-import javax.inject.Inject;
 import java.util.LinkedHashMap;
 import java.util.Map;
 import java.util.Set;
 import java.util.concurrent.CompletableFuture;
 import java.util.concurrent.Executor;
 
+import javax.inject.Inject;
+
 import org.apache.servicecomb.core.Const;
 import org.apache.servicecomb.core.SCBEngine;
 import org.apache.servicecomb.core.definition.MicroserviceMeta;
@@ -74,18 +75,10 @@ public class ProducerSchemaFactory extends AbstractSchemaFactory<ProducerSchemaC
   }
 
   // 只会在启动流程中调用
-  public SchemaMeta getOrCreateProducerSchema(String microserviceName, String schemaId,
+  public SchemaMeta getOrCreateProducerSchema( String schemaId,
       Class<?> producerClass,
       Object producerInstance) {
-
-    if (!RegistryUtils.getMicroservice().getServiceName().equals(microserviceName)) {
-      LOGGER.error("miroserviceName : {} is different from the default microserviceName :{}",
-          microserviceName,
-          RegistryUtils.getMicroservice().getServiceName());
-    }
-
-    MicroserviceMeta microserviceMeta = SCBEngine.getInstance().getProducerMicroMeta();
-
+    MicroserviceMeta microserviceMeta = SCBEngine.getInstance().getProducerMicroserviceMeta();
     ProducerSchemaContext context = new ProducerSchemaContext();
     context.setMicroserviceMeta(microserviceMeta);
     context.setSchemaId(schemaId);
diff --git a/core/src/main/java/org/apache/servicecomb/core/provider/producer/ProducerProviderManager.java b/core/src/main/java/org/apache/servicecomb/core/provider/producer/ProducerProviderManager.java
index 740f693..12a555b 100644
--- a/core/src/main/java/org/apache/servicecomb/core/provider/producer/ProducerProviderManager.java
+++ b/core/src/main/java/org/apache/servicecomb/core/provider/producer/ProducerProviderManager.java
@@ -51,7 +51,7 @@ public class ProducerProviderManager implements BootListener {
       provider.init();
     }
     Microservice microservice = RegistryUtils.getMicroservice();
-    microserviceMeta = SCBEngine.getInstance().getProducerMicroMeta();
+    microserviceMeta = SCBEngine.getInstance().getProducerMicroserviceMeta();
     for (SchemaMeta schemaMeta : microserviceMeta.getSchemaMetas()) {
       String content = SchemaUtils.swaggerToString(schemaMeta.getSwagger());
       microservice.addSchema(schemaMeta.getSchemaId(), content);
diff --git a/core/src/main/java/org/apache/servicecomb/core/unittest/UnitTestMeta.java b/core/src/main/java/org/apache/servicecomb/core/unittest/UnitTestMeta.java
index f285f73..a7a9028 100644
--- a/core/src/main/java/org/apache/servicecomb/core/unittest/UnitTestMeta.java
+++ b/core/src/main/java/org/apache/servicecomb/core/unittest/UnitTestMeta.java
@@ -47,11 +47,10 @@ import org.apache.servicecomb.swagger.generator.core.unittest.UnitTestSwaggerUti
 import org.mockito.Mockito;
 import org.springframework.context.ApplicationContext;
 
+import io.swagger.models.Swagger;
 import mockit.Mock;
 import mockit.MockUp;
 
-import io.swagger.models.Swagger;
-
 /**
  * when SCBEngine finished, UnitTestMeta will be deleted
  */
@@ -88,7 +87,7 @@ public class UnitTestMeta {
     serviceRegistry.getAppManager().setMicroserviceVersionFactory(new PrivateMicroserviceVersionMetaFactory());
     RegistryUtils.setServiceRegistry(serviceRegistry);
     microserviceMeta = new MicroserviceMeta(RegistryUtils.getMicroservice().getServiceName());
-    SCBEngine.getInstance().setProducerMicroMeta(microserviceMeta);
+    SCBEngine.getInstance().setProducerMicroserviceMeta(microserviceMeta);
     consumerProviderManager = new ConsumerProviderManager();
 
     consumerSchemaFactory = new ConsumerSchemaFactory();
@@ -135,7 +134,7 @@ public class UnitTestMeta {
 
   public SchemaMeta getOrCreateSchemaMeta(String appId, String microserviceName, String schemaId, Class<?> impl) {
     String longName = appId + ":" + microserviceName;
-    MicroserviceMeta microserviceMeta = SCBEngine.getInstance().getProducerMicroMeta();
+    MicroserviceMeta microserviceMeta = SCBEngine.getInstance().getProducerMicroserviceMeta();
     SchemaMeta schemaMeta = microserviceMeta.findSchemaMeta(schemaId);
     if (schemaMeta != null) {
       return schemaMeta;
diff --git a/core/src/test/java/org/apache/servicecomb/core/definition/TestOperationMeta.java b/core/src/test/java/org/apache/servicecomb/core/definition/TestOperationMeta.java
index b4e15fa..efd56eb 100644
--- a/core/src/test/java/org/apache/servicecomb/core/definition/TestOperationMeta.java
+++ b/core/src/test/java/org/apache/servicecomb/core/definition/TestOperationMeta.java
@@ -51,9 +51,9 @@ public class TestOperationMeta {
     Assert.assertEquals(schemaMeta, operationMeta.getSchemaMeta());
     Assert.assertEquals(Impl.class.getName() + ".test",
         operationMeta.getSchemaQualifiedName());
-    Assert.assertEquals("app:test." + Impl.class.getName() + ".test",
+    Assert.assertEquals("perfClient." + Impl.class.getName() + ".test",
         operationMeta.getMicroserviceQualifiedName());
-    Assert.assertEquals("app:test", operationMeta.getMicroserviceName());
+    Assert.assertEquals("perfClient", operationMeta.getMicroserviceName());
     Assert.assertEquals("test", operationMeta.getOperationId());
     Assert.assertEquals("x", operationMeta.getParamName(0));
 
diff --git a/core/src/test/java/org/apache/servicecomb/core/definition/loader/TestDynamicSchemaLoader.java b/core/src/test/java/org/apache/servicecomb/core/definition/loader/TestDynamicSchemaLoader.java
index 2ed4fae..74e47e8 100644
--- a/core/src/test/java/org/apache/servicecomb/core/definition/loader/TestDynamicSchemaLoader.java
+++ b/core/src/test/java/org/apache/servicecomb/core/definition/loader/TestDynamicSchemaLoader.java
@@ -67,7 +67,7 @@ public class TestDynamicSchemaLoader {
   @Test
   public void testRegisterSchemas() {
     DynamicSchemaLoader.INSTANCE.registerSchemas("classpath*:test/test/schema.yaml");
-    SchemaMeta schemaMeta = SCBEngine.getInstance().getProducerMicroMeta().ensureFindSchemaMeta("schema");
+    SchemaMeta schemaMeta = SCBEngine.getInstance().getProducerMicroserviceMeta().ensureFindSchemaMeta("schema");
     Assert.assertEquals("cse.gen.app.perfClient.schema", schemaMeta.getPackageName());
   }
 
@@ -77,10 +77,10 @@ public class TestDynamicSchemaLoader {
     //we can not register repeat data
     init();
     //as we can not set microserviceName any more, hence we should use the default name
-    DynamicSchemaLoader.INSTANCE.registerSchemas("CSE:as", "classpath*:test/test/schema.yaml");
+    DynamicSchemaLoader.INSTANCE
+        .registerSchemas(RegistryUtils.getMicroservice().getServiceName(), "classpath*:test/test/schema.yaml");
     SchemaMeta schemaMeta =
-        SCBEngine.getInstance().getProducerMicroMeta().ensureFindSchemaMeta("schema");
-    System.out.println(schemaMeta.getPackageName());
+        SCBEngine.getInstance().getProducerMicroserviceMeta().ensureFindSchemaMeta("schema");
     Assert.assertEquals("cse.gen.app.perfClient.schema", schemaMeta.getPackageName());
   }
 
diff --git a/core/src/test/java/org/apache/servicecomb/core/definition/schema/TestProducerSchemaFactory.java b/core/src/test/java/org/apache/servicecomb/core/definition/schema/TestProducerSchemaFactory.java
index fa1ea6b..1ab5310 100644
--- a/core/src/test/java/org/apache/servicecomb/core/definition/schema/TestProducerSchemaFactory.java
+++ b/core/src/test/java/org/apache/servicecomb/core/definition/schema/TestProducerSchemaFactory.java
@@ -16,10 +16,11 @@
  */
 package org.apache.servicecomb.core.definition.schema;
 
-import javax.xml.ws.Holder;
 import java.util.concurrent.CompletableFuture;
 import java.util.concurrent.Executor;
 
+import javax.xml.ws.Holder;
+
 import org.apache.servicecomb.core.Const;
 import org.apache.servicecomb.core.Endpoint;
 import org.apache.servicecomb.core.Invocation;
@@ -48,11 +49,10 @@ import org.junit.Assert;
 import org.junit.BeforeClass;
 import org.junit.Test;
 
+import io.swagger.models.Swagger;
 import mockit.Mock;
 import mockit.MockUp;
 
-import io.swagger.models.Swagger;
-
 public class TestProducerSchemaFactory {
   private static SwaggerEnvironment swaggerEnv = new BootstrapNormal().boot();
 
@@ -90,7 +90,8 @@ public class TestProducerSchemaFactory {
     };
     new MockUp<BeanUtils>() {
       @SuppressWarnings("unchecked")
-      @Mock <T> T getBean(String name) {
+      @Mock
+      <T> T getBean(String name) {
         if (ExecutorManager.EXECUTOR_REACTIVE.equals(name)) {
           return (T) reactiveExecutor;
         }
@@ -107,7 +108,7 @@ public class TestProducerSchemaFactory {
 
   @Test
   public void testGetOrCreateProducer() throws Exception {
-    SchemaMeta schemaMeta = producerSchemaFactory.getOrCreateProducerSchema("app:ms", "schema",
+    SchemaMeta schemaMeta = producerSchemaFactory.getOrCreateProducerSchema("schema",
         TestProducerSchemaFactoryImpl.class,
         new TestProducerSchemaFactoryImpl());
     Swagger swagger = schemaMeta.getSwagger();
@@ -146,8 +147,7 @@ public class TestProducerSchemaFactory {
   public void testGetOrCreateProducerWithPrefix() throws Exception {
     ArchaiusUtils.setProperty(org.apache.servicecomb.serviceregistry.api.Const.REGISTER_URL_PREFIX, "true");
     System.setProperty(org.apache.servicecomb.serviceregistry.api.Const.URL_PREFIX, "/pojo/test");
-
-    SchemaMeta schemaMeta = producerSchemaFactory.getOrCreateProducerSchema("app:ms", "schema2",
+    SchemaMeta schemaMeta = producerSchemaFactory.getOrCreateProducerSchema("schema2",
         TestProducerSchemaFactoryImpl.class,
         new TestProducerSchemaFactoryImpl());
     OperationMeta operationMeta = schemaMeta.ensureFindOperation("add");
@@ -161,7 +161,7 @@ public class TestProducerSchemaFactory {
 
   @Test
   public void testCompletableFuture() {
-    SchemaMeta schemaMeta = producerSchemaFactory.getOrCreateProducerSchema("app:ms", "schema3",
+    SchemaMeta schemaMeta = producerSchemaFactory.getOrCreateProducerSchema("schema3",
         TestProducerSchemaFactoryImpl.class,
         new TestProducerSchemaFactoryImpl());
     OperationMeta operationMeta = schemaMeta.ensureFindOperation("async");
diff --git a/demo/demo-crossapp/crossapp-client/src/main/java/org/apache/servicecomb/demo/crossapp/CrossappBootListener.java b/demo/demo-crossapp/crossapp-client/src/main/java/org/apache/servicecomb/demo/crossapp/CrossappBootListener.java
index 491a535..5c97bc6 100644
--- a/demo/demo-crossapp/crossapp-client/src/main/java/org/apache/servicecomb/demo/crossapp/CrossappBootListener.java
+++ b/demo/demo-crossapp/crossapp-client/src/main/java/org/apache/servicecomb/demo/crossapp/CrossappBootListener.java
@@ -18,6 +18,7 @@
 package org.apache.servicecomb.demo.crossapp;
 
 import org.apache.servicecomb.core.BootListener;
+import org.apache.servicecomb.serviceregistry.RegistryUtils;
 import org.springframework.stereotype.Component;
 
 @Component
@@ -27,8 +28,10 @@ public class CrossappBootListener implements BootListener {
   public void onBootEvent(BootEvent event) {
     if (EventType.BEFORE_CONSUMER_PROVIDER.equals(event.getEventType())) {
       // 动态注册schemas目录下面的契约到当前服务
-      org.apache.servicecomb.core.definition.loader.DynamicSchemaLoader.INSTANCE.registerSchemas("appServer:appService",
-          "classpath*:schemas/*.yaml");
+      org.apache.servicecomb.core.definition.loader.DynamicSchemaLoader.INSTANCE
+          .registerSchemas(RegistryUtils.getMicroservice().getServiceName(),
+              "classpath*:schemas/*.yaml");
     }
   }
+
 }
diff --git a/demo/demo-springmvc/springmvc-server/src/main/java/org/apache/servicecomb/demo/springmvc/server/ProducerTestsAfterBootup.java b/demo/demo-springmvc/springmvc-server/src/main/java/org/apache/servicecomb/demo/springmvc/server/ProducerTestsAfterBootup.java
index f6c9107..7420815 100644
--- a/demo/demo-springmvc/springmvc-server/src/main/java/org/apache/servicecomb/demo/springmvc/server/ProducerTestsAfterBootup.java
+++ b/demo/demo-springmvc/springmvc-server/src/main/java/org/apache/servicecomb/demo/springmvc/server/ProducerTestsAfterBootup.java
@@ -49,7 +49,7 @@ public class ProducerTestsAfterBootup implements BootListener {
     LOGGER.info("ProducerTestsAfterBootup testing start");
     //we can not set microserviceName any more
     SchemaMeta meta =
-        factory.getOrCreateProducerSchema("customer-service", "test1",
+        factory.getOrCreateProducerSchema("test1",
             CodeFirstSpringmvcForSchema.class,
             new CodeFirstSpringmvcForSchema());
     String codeFirst = getSwaggerContent(meta.getSwagger());
diff --git a/dynamic-config/config-cc/src/main/java/org/apache/servicecomb/config/client/ConfigCenterClient.java b/dynamic-config/config-cc/src/main/java/org/apache/servicecomb/config/client/ConfigCenterClient.java
index 09d26c4..3c0a199 100644
--- a/dynamic-config/config-cc/src/main/java/org/apache/servicecomb/config/client/ConfigCenterClient.java
+++ b/dynamic-config/config-cc/src/main/java/org/apache/servicecomb/config/client/ConfigCenterClient.java
@@ -363,6 +363,10 @@ public class ConfigCenterClient {
         LOGGER.error("encode failed. Error message: {}", e.getMessage());
         encodeServiceName = StringUtils.deleteWhitespace(serviceName);
       }
+      //just log in the debug level
+      if (LOGGER.isDebugEnabled()) {
+        LOGGER.debug("Updating remote config...");
+      }
       String path = uriConst.ITEMS + "?dimensionsInfo=" + encodeServiceName + "&revision="
           + ParseConfigUtils.getInstance().getCurrentVersionInfo();
       clientMgr.findThreadBindClientPool().runOnContext(client -> {
@@ -371,15 +375,18 @@ public class ConfigCenterClient {
           if (rsp.statusCode() == HttpResponseStatus.OK.code()) {
             rsp.bodyHandler(buf -> {
               try {
+                String oldRevision = ParseConfigUtils.getInstance().getCurrentVersionInfo();
                 parseConfigUtils
                     .refreshConfigItems(JsonUtils.OBJ_MAPPER.readValue(buf.toString(),
                         new TypeReference<LinkedHashMap<String, Map<String, String>>>() {
                         }));
                 EventManager.post(new ConnSuccEvent());
+                LOGGER.info("Updating remote config is done.,revision has changed from {} to {}", oldRevision,
+                    ParseConfigUtils.getInstance().getCurrentVersionInfo());
               } catch (IOException e) {
                 EventManager.post(new ConnFailEvent(
-                    "config refresh result parse fail " + e.getMessage()));
-                LOGGER.error("Config refresh from {} failed. Error message is [{}].",
+                    "config update result parse fail " + e.getMessage()));
+                LOGGER.error("Config update from {} failed. Error message is [{}].",
                     configcenter,
                     e.getMessage());
               }
@@ -388,6 +395,10 @@ public class ConfigCenterClient {
           } else if (rsp.statusCode() == HttpResponseStatus.NOT_MODIFIED.code()) {
             //nothing changed
             EventManager.post(new ConnSuccEvent());
+            if (LOGGER.isDebugEnabled()) {
+              LOGGER.debug("Updating remote config is done. the revision {} has no change",
+                  ParseConfigUtils.getInstance().getCurrentVersionInfo());
+            }
             latch.countDown();
           } else {
             rsp.bodyHandler(buf -> {
@@ -395,7 +406,7 @@ public class ConfigCenterClient {
               latch.countDown();
             });
             EventManager.post(new ConnFailEvent("fetch config fail"));
-            LOGGER.error("Config refresh from {} failed.", configcenter);
+            LOGGER.error("Config update from {} failed.", configcenter);
           }
         }).setTimeout((BOOTUP_WAIT_TIME - 1) * 1000);
         Map<String, String> headers = new HashMap<>();
@@ -412,7 +423,7 @@ public class ConfigCenterClient {
                 null))));
         request.exceptionHandler(e -> {
           EventManager.post(new ConnFailEvent("fetch config fail"));
-          LOGGER.error("Config refresh from {} failed. Error message is [{}].",
+          LOGGER.error("Config update from {} failed. Error message is [{}].",
               configcenter,
               e.getMessage());
           latch.countDown();
@@ -420,13 +431,11 @@ public class ConfigCenterClient {
         request.end();
       });
       if (wait) {
-        LOGGER.info("Refreshing remote config...");
         try {
           latch.await(BOOTUP_WAIT_TIME, TimeUnit.SECONDS);
         } catch (InterruptedException e) {
           LOGGER.warn(e.getMessage());
         }
-        LOGGER.info("Refreshing remote config is done.");
       }
     }
   }
diff --git a/dynamic-config/config-cc/src/main/java/org/apache/servicecomb/config/client/ParseConfigUtils.java b/dynamic-config/config-cc/src/main/java/org/apache/servicecomb/config/client/ParseConfigUtils.java
index 3dd95c8..d86bd54 100644
--- a/dynamic-config/config-cc/src/main/java/org/apache/servicecomb/config/client/ParseConfigUtils.java
+++ b/dynamic-config/config-cc/src/main/java/org/apache/servicecomb/config/client/ParseConfigUtils.java
@@ -67,7 +67,7 @@ public class ParseConfigUtils {
   }
 
   /*
-      as the data is returned, we can block the thread at a short time. consider that if the multiple verticle is deployed
+      as the data is returned, we can block the thread at a short time. consider that if the multiple verticles were deployed
       and if we use pull mode and push mode at the same time , we must share a common lock with all methods which would
       change the config setting
      */
@@ -82,7 +82,6 @@ public class ParseConfigUtils {
       multiDimensionItems.clear();
       multiDimensionItems.putAll(remoteItems);
       doRefreshItems();
-      LOGGER.debug("refresh config success");
     } finally {
       configLock.unlock();
     }
diff --git a/metrics/metrics-core/src/main/java/org/apache/servicecomb/metrics/core/MetricsBootListener.java b/metrics/metrics-core/src/main/java/org/apache/servicecomb/metrics/core/MetricsBootListener.java
index 51b7bfc..ae0c40d 100644
--- a/metrics/metrics-core/src/main/java/org/apache/servicecomb/metrics/core/MetricsBootListener.java
+++ b/metrics/metrics-core/src/main/java/org/apache/servicecomb/metrics/core/MetricsBootListener.java
@@ -26,8 +26,6 @@ import org.apache.servicecomb.foundation.metrics.MetricsBootstrap;
 import org.apache.servicecomb.foundation.metrics.MetricsInitializer;
 import org.apache.servicecomb.metrics.core.publish.HealthCheckerRestPublisher;
 import org.apache.servicecomb.metrics.core.publish.MetricsRestPublisher;
-import org.apache.servicecomb.serviceregistry.RegistryUtils;
-import org.apache.servicecomb.serviceregistry.api.registry.Microservice;
 import org.springframework.stereotype.Component;
 
 import com.netflix.spectator.api.Spectator;
@@ -56,17 +54,13 @@ public class MetricsBootListener implements BootListener {
   }
 
   private void registerSchemas() {
-    Microservice microservice = RegistryUtils.getMicroservice();
-
-    producerSchemaFactory.getOrCreateProducerSchema(microservice.getServiceName(),
-        "healthEndpoint",
+    producerSchemaFactory.getOrCreateProducerSchema("healthEndpoint",
         HealthCheckerRestPublisher.class,
         new HealthCheckerRestPublisher());
 
     MetricsRestPublisher metricsRestPublisher =
         SPIServiceUtils.getTargetService(MetricsInitializer.class, MetricsRestPublisher.class);
-    producerSchemaFactory.getOrCreateProducerSchema(microservice.getServiceName(),
-        "metricsEndpoint",
+    producerSchemaFactory.getOrCreateProducerSchema("metricsEndpoint",
         metricsRestPublisher.getClass(),
         metricsRestPublisher);
   }
diff --git a/metrics/metrics-core/src/main/java/org/apache/servicecomb/metrics/core/ThreadPoolMetersInitializer.java b/metrics/metrics-core/src/main/java/org/apache/servicecomb/metrics/core/ThreadPoolMetersInitializer.java
index 14cb7f8..1637cfb 100644
--- a/metrics/metrics-core/src/main/java/org/apache/servicecomb/metrics/core/ThreadPoolMetersInitializer.java
+++ b/metrics/metrics-core/src/main/java/org/apache/servicecomb/metrics/core/ThreadPoolMetersInitializer.java
@@ -71,7 +71,7 @@ public class ThreadPoolMetersInitializer implements MetricsInitializer {
   protected Map<Executor, Executor> collectionOperationExecutors() {
     Map<Executor, Executor> operationExecutors = new IdentityHashMap<>();
     //only one instance in the values
-    MicroserviceMeta microserviceMeta = SCBEngine.getInstance().getProducerMicroMeta();
+    MicroserviceMeta microserviceMeta = SCBEngine.getInstance().getProducerMicroserviceMeta();
     for (OperationMeta operationMeta : microserviceMeta.getOperations()) {
       operationExecutors.put(operationMeta.getExecutor(), operationMeta.getExecutor());
     }
diff --git a/metrics/metrics-core/src/test/java/org/apache/servicecomb/metrics/core/TestThreadPoolMetersInitializer.java b/metrics/metrics-core/src/test/java/org/apache/servicecomb/metrics/core/TestThreadPoolMetersInitializer.java
index c051dc5..378743d 100644
--- a/metrics/metrics-core/src/test/java/org/apache/servicecomb/metrics/core/TestThreadPoolMetersInitializer.java
+++ b/metrics/metrics-core/src/test/java/org/apache/servicecomb/metrics/core/TestThreadPoolMetersInitializer.java
@@ -88,7 +88,7 @@ public class TestThreadPoolMetersInitializer {
   public void init() {
     new Expectations(SCBEngine.class) {
       {
-        SCBEngine.getInstance().getProducerMicroMeta();
+        SCBEngine.getInstance().getProducerMicroserviceMeta();
         result = microserviceMeta;
       }
     };
diff --git a/providers/provider-pojo/src/main/java/org/apache/servicecomb/provider/pojo/PojoProducerProvider.java b/providers/provider-pojo/src/main/java/org/apache/servicecomb/provider/pojo/PojoProducerProvider.java
index cd333de..1198316 100644
--- a/providers/provider-pojo/src/main/java/org/apache/servicecomb/provider/pojo/PojoProducerProvider.java
+++ b/providers/provider-pojo/src/main/java/org/apache/servicecomb/provider/pojo/PojoProducerProvider.java
@@ -27,8 +27,6 @@ import org.apache.servicecomb.provider.pojo.instance.PojoInstanceFactory;
 import org.apache.servicecomb.provider.pojo.instance.SpringInstanceFactory;
 import org.apache.servicecomb.provider.pojo.schema.PojoProducerMeta;
 import org.apache.servicecomb.provider.pojo.schema.PojoProducers;
-import org.apache.servicecomb.serviceregistry.RegistryUtils;
-import org.apache.servicecomb.serviceregistry.api.registry.Microservice;
 import org.springframework.stereotype.Component;
 
 @Component
@@ -56,10 +54,8 @@ public class PojoProducerProvider extends AbstractProducerProvider {
     for (PojoProducerMeta pojoProducerMeta : pojoProducers.getProducers()) {
       initPojoProducerMeta(pojoProducerMeta);
 
-      Microservice microservice = RegistryUtils.getMicroservice();
       try {
         producerSchemaFactory.getOrCreateProducerSchema(
-            microservice.getServiceName(),
             pojoProducerMeta.getSchemaId(),
             pojoProducerMeta.getInstanceClass(),
             pojoProducerMeta.getInstance());
diff --git a/providers/provider-pojo/src/test/java/org/apache/servicecomb/provider/pojo/TestPojoProducerProvider.java b/providers/provider-pojo/src/test/java/org/apache/servicecomb/provider/pojo/TestPojoProducerProvider.java
index c13f145..4832997 100644
--- a/providers/provider-pojo/src/test/java/org/apache/servicecomb/provider/pojo/TestPojoProducerProvider.java
+++ b/providers/provider-pojo/src/test/java/org/apache/servicecomb/provider/pojo/TestPojoProducerProvider.java
@@ -70,8 +70,6 @@ public class TestPojoProducerProvider {
         result = null;
         meta.getImplementation();
         result = "pojo:org.apache.servicecomb.provider.pojo.Person";
-        service.getServiceName();
-        result = "test";
       }
     };
     PojoProducerProvider provider = new PojoProducerProvider();
diff --git a/providers/provider-rest-common/src/main/java/org/apache/servicecomb/provider/rest/common/RestProducerProvider.java b/providers/provider-rest-common/src/main/java/org/apache/servicecomb/provider/rest/common/RestProducerProvider.java
index 8150555..56daa2d 100644
--- a/providers/provider-rest-common/src/main/java/org/apache/servicecomb/provider/rest/common/RestProducerProvider.java
+++ b/providers/provider-rest-common/src/main/java/org/apache/servicecomb/provider/rest/common/RestProducerProvider.java
@@ -23,8 +23,6 @@ import org.apache.servicecomb.common.rest.RestConst;
 import org.apache.servicecomb.core.definition.schema.ProducerSchemaFactory;
 import org.apache.servicecomb.core.provider.producer.AbstractProducerProvider;
 import org.apache.servicecomb.core.provider.producer.ProducerMeta;
-import org.apache.servicecomb.serviceregistry.RegistryUtils;
-import org.apache.servicecomb.serviceregistry.api.registry.Microservice;
 import org.springframework.stereotype.Component;
 
 @Component
@@ -44,9 +42,7 @@ public class RestProducerProvider extends AbstractProducerProvider {
   @Override
   public void init() throws Exception {
     for (ProducerMeta producerMeta : restProducers.getProducerMetaList()) {
-      Microservice microservice = RegistryUtils.getMicroservice();
       producerSchemaFactory.getOrCreateProducerSchema(
-          microservice.getServiceName(),
           producerMeta.getSchemaId(),
           producerMeta.getInstanceClass(),
           producerMeta.getInstance());
diff --git a/transports/transport-highway/src/main/java/org/apache/servicecomb/transport/highway/HighwayServerInvoke.java b/transports/transport-highway/src/main/java/org/apache/servicecomb/transport/highway/HighwayServerInvoke.java
index d19ec8b..4878c41 100644
--- a/transports/transport-highway/src/main/java/org/apache/servicecomb/transport/highway/HighwayServerInvoke.java
+++ b/transports/transport-highway/src/main/java/org/apache/servicecomb/transport/highway/HighwayServerInvoke.java
@@ -96,7 +96,7 @@ public class HighwayServerInvoke {
     this.msgId = msgId;
     this.header = header;
 
-    MicroserviceMeta microserviceMeta = SCBEngine.getInstance().getProducerMicroMeta();
+    MicroserviceMeta microserviceMeta = SCBEngine.getInstance().getProducerMicroserviceMeta();
     SchemaMeta schemaMeta = microserviceMeta.ensureFindSchemaMeta(header.getSchemaId());
     this.operationMeta = schemaMeta.ensureFindOperation(header.getOperationName());
     this.operationProtobuf = ProtobufManager.getOrCreateOperation(operationMeta);
diff --git a/transports/transport-highway/src/test/java/org/apache/servicecomb/transport/highway/TestHighwayServerConnection.java b/transports/transport-highway/src/test/java/org/apache/servicecomb/transport/highway/TestHighwayServerConnection.java
index 1d2783f..d555605 100644
--- a/transports/transport-highway/src/test/java/org/apache/servicecomb/transport/highway/TestHighwayServerConnection.java
+++ b/transports/transport-highway/src/test/java/org/apache/servicecomb/transport/highway/TestHighwayServerConnection.java
@@ -146,7 +146,7 @@ public class TestHighwayServerConnection {
     Buffer bodyBuffer = Buffer.buffer();
     new Expectations(SCBEngine.class) {
       {
-        SCBEngine.getInstance().getProducerMicroMeta();
+        SCBEngine.getInstance().getProducerMicroserviceMeta();
         result = microserviceMeta;
       }
     };
diff --git a/transports/transport-highway/src/test/java/org/apache/servicecomb/transport/highway/TestHighwayServerInvoke.java b/transports/transport-highway/src/test/java/org/apache/servicecomb/transport/highway/TestHighwayServerInvoke.java
index ecf8ddd..6a7d132 100644
--- a/transports/transport-highway/src/test/java/org/apache/servicecomb/transport/highway/TestHighwayServerInvoke.java
+++ b/transports/transport-highway/src/test/java/org/apache/servicecomb/transport/highway/TestHighwayServerInvoke.java
@@ -133,7 +133,6 @@ public class TestHighwayServerInvoke {
     operationMeta.setExecutor(new ReactiveExecutor());
 
     HighwayServerInvoke highwayServerInvoke = new HighwayServerInvoke();
-//    highwayServerInvoke.setMicroserviceMetaManager(unitTestMeta.getMicroserviceMetaManager());
 
     RequestHeader requestHeader = MockUtil.getInstance().requestHeader;
 


[incubator-servicecomb-java-chassis] 01/03: [SCB-612]delete useless MicroserviceMetaManager

Posted by li...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

liubao pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/incubator-servicecomb-java-chassis.git

commit 57f828e532cc927d258d03bbea6add4c4cae91d5
Author: heyile <he...@huawei.com>
AuthorDate: Wed Aug 8 09:56:33 2018 +0800

    [SCB-612]delete useless MicroserviceMetaManager
---
 .../common/rest/RestEngineSchemaListener.java      | 14 +---
 .../common/rest/RestProducerInvocation.java        | 12 +---
 .../common/rest/TestAbstractRestInvocation.java    | 15 ++---
 .../common/rest/TestRestProducerInvocation.java    | 34 +++++-----
 .../servicecomb/core/CseApplicationListener.java   |  5 ++
 .../org/apache/servicecomb/core/CseContext.java    | 12 ----
 .../org/apache/servicecomb/core/SCBEngine.java     | 12 ++++
 .../core/definition/MicroserviceMetaManager.java   | 76 ----------------------
 .../definition/loader/SchemaListenerManager.java   | 37 ++++++-----
 .../core/definition/loader/SchemaLoader.java       | 20 +++---
 .../definition/schema/AbstractSchemaFactory.java   | 10 +--
 .../definition/schema/ProducerSchemaFactory.java   | 13 +++-
 .../consumer/AbstractConsumerProvider.java         |  5 --
 .../provider/producer/ProducerProviderManager.java | 10 +--
 .../servicecomb/core/unittest/UnitTestMeta.java    | 22 +++----
 .../apache/servicecomb/core/TestDefinition.java    | 24 -------
 .../definition/loader/TestDynamicSchemaLoader.java | 15 +++--
 .../loader/TestSchemaListenerManager.java          |  2 -
 .../schema/TestProducerSchemaFactory.java          | 25 +++----
 .../producer/TestProducerProviderManager.java      |  4 +-
 .../springmvc/server/ProducerTestsAfterBootup.java | 10 +--
 .../metrics/core/ThreadPoolMetersInitializer.java  | 14 ++--
 .../core/TestThreadPoolMetersInitializer.java      | 16 ++---
 .../servicecomb/provider/common/MockUtil.java      |  2 -
 .../transport/highway/HighwayServerInvoke.java     | 11 +---
 .../highway/TestHighwayServerConnection.java       | 30 ++++-----
 .../transport/highway/TestHighwayServerInvoke.java |  2 +-
 27 files changed, 148 insertions(+), 304 deletions(-)

diff --git a/common/common-rest/src/main/java/org/apache/servicecomb/common/rest/RestEngineSchemaListener.java b/common/common-rest/src/main/java/org/apache/servicecomb/common/rest/RestEngineSchemaListener.java
index 8cc33a5..f9be1b9 100644
--- a/common/common-rest/src/main/java/org/apache/servicecomb/common/rest/RestEngineSchemaListener.java
+++ b/common/common-rest/src/main/java/org/apache/servicecomb/common/rest/RestEngineSchemaListener.java
@@ -20,25 +20,16 @@ package org.apache.servicecomb.common.rest;
 import java.util.HashMap;
 import java.util.Map;
 
-import javax.inject.Inject;
-
 import org.apache.servicecomb.common.rest.locator.ServicePathManager;
 import org.apache.servicecomb.core.BootListener;
+import org.apache.servicecomb.core.SCBEngine;
 import org.apache.servicecomb.core.definition.MicroserviceMeta;
-import org.apache.servicecomb.core.definition.MicroserviceMetaManager;
 import org.apache.servicecomb.core.definition.SchemaMeta;
 import org.apache.servicecomb.core.definition.loader.SchemaListener;
-import org.apache.servicecomb.serviceregistry.RegistryUtils;
 import org.springframework.stereotype.Component;
 
 @Component
 public class RestEngineSchemaListener implements SchemaListener, BootListener {
-  private MicroserviceMetaManager microserviceMetaManager;
-
-  @Inject
-  public void setMicroserviceMetaManager(MicroserviceMetaManager microserviceMetaManager) {
-    this.microserviceMetaManager = microserviceMetaManager;
-  }
 
   @Override
   public void onBootEvent(BootEvent event) {
@@ -46,8 +37,7 @@ public class RestEngineSchemaListener implements SchemaListener, BootListener {
       return;
     }
 
-    MicroserviceMeta microserviceMeta =
-        microserviceMetaManager.getOrCreateMicroserviceMeta(RegistryUtils.getMicroservice());
+    MicroserviceMeta microserviceMeta = SCBEngine.getInstance().getProducerMicroMeta();
     ServicePathManager servicePathManager = ServicePathManager.getServicePathManager(microserviceMeta);
     if (servicePathManager != null) {
       servicePathManager.buildProducerPaths();
diff --git a/common/common-rest/src/main/java/org/apache/servicecomb/common/rest/RestProducerInvocation.java b/common/common-rest/src/main/java/org/apache/servicecomb/common/rest/RestProducerInvocation.java
index 673c684..f2fbee5 100644
--- a/common/common-rest/src/main/java/org/apache/servicecomb/common/rest/RestProducerInvocation.java
+++ b/common/common-rest/src/main/java/org/apache/servicecomb/common/rest/RestProducerInvocation.java
@@ -22,14 +22,12 @@ import java.util.List;
 import org.apache.servicecomb.common.rest.filter.HttpServerFilter;
 import org.apache.servicecomb.common.rest.locator.OperationLocator;
 import org.apache.servicecomb.common.rest.locator.ServicePathManager;
-import org.apache.servicecomb.core.Const;
-import org.apache.servicecomb.core.CseContext;
+import org.apache.servicecomb.core.SCBEngine;
 import org.apache.servicecomb.core.Transport;
 import org.apache.servicecomb.core.definition.MicroserviceMeta;
 import org.apache.servicecomb.core.invocation.InvocationFactory;
 import org.apache.servicecomb.foundation.vertx.http.HttpServletRequestEx;
 import org.apache.servicecomb.foundation.vertx.http.HttpServletResponseEx;
-import org.apache.servicecomb.serviceregistry.RegistryUtils;
 import org.apache.servicecomb.swagger.invocation.exception.InvocationException;
 
 public class RestProducerInvocation extends AbstractRestInvocation {
@@ -54,13 +52,7 @@ public class RestProducerInvocation extends AbstractRestInvocation {
   }
 
   protected void findRestOperation() {
-    String targetMicroserviceName = requestEx.getHeader(Const.TARGET_MICROSERVICE);
-    if (targetMicroserviceName == null) {
-      // for compatible
-      targetMicroserviceName = RegistryUtils.getMicroservice().getServiceName();
-    }
-    MicroserviceMeta selfMicroserviceMeta =
-        CseContext.getInstance().getMicroserviceMetaManager().ensureFindValue(targetMicroserviceName);
+    MicroserviceMeta selfMicroserviceMeta = SCBEngine.getInstance().getProducerMicroMeta();
     findRestOperation(selfMicroserviceMeta);
   }
 
diff --git a/common/common-rest/src/test/java/org/apache/servicecomb/common/rest/TestAbstractRestInvocation.java b/common/common-rest/src/test/java/org/apache/servicecomb/common/rest/TestAbstractRestInvocation.java
index cc0c2c0..30c993b 100644
--- a/common/common-rest/src/test/java/org/apache/servicecomb/common/rest/TestAbstractRestInvocation.java
+++ b/common/common-rest/src/test/java/org/apache/servicecomb/common/rest/TestAbstractRestInvocation.java
@@ -17,15 +17,14 @@
 
 package org.apache.servicecomb.common.rest;
 
+import javax.ws.rs.core.Response.Status;
+import javax.xml.ws.Holder;
 import java.util.Arrays;
 import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
 import java.util.concurrent.Executor;
 
-import javax.ws.rs.core.Response.Status;
-import javax.xml.ws.Holder;
-
 import org.apache.servicecomb.common.rest.codec.produce.ProduceProcessorManager;
 import org.apache.servicecomb.common.rest.definition.RestOperationMeta;
 import org.apache.servicecomb.common.rest.filter.HttpServerFilter;
@@ -39,7 +38,6 @@ import org.apache.servicecomb.core.Invocation;
 import org.apache.servicecomb.core.SCBEngine;
 import org.apache.servicecomb.core.SCBStatus;
 import org.apache.servicecomb.core.definition.MicroserviceMeta;
-import org.apache.servicecomb.core.definition.MicroserviceMetaManager;
 import org.apache.servicecomb.core.definition.OperationMeta;
 import org.apache.servicecomb.core.definition.SchemaMeta;
 import org.apache.servicecomb.core.event.InvocationFinishEvent;
@@ -68,14 +66,14 @@ import org.junit.rules.ExpectedException;
 
 import com.google.common.eventbus.EventBus;
 import com.google.common.eventbus.Subscribe;
-
-import io.vertx.core.buffer.Buffer;
 import mockit.Deencapsulation;
 import mockit.Expectations;
 import mockit.Mock;
 import mockit.MockUp;
 import mockit.Mocked;
 
+import io.vertx.core.buffer.Buffer;
+
 public class TestAbstractRestInvocation {
   @Mocked
   HttpServletRequestEx requestEx;
@@ -87,9 +85,6 @@ public class TestAbstractRestInvocation {
   ReferenceConfig endpoint;
 
   @Mocked
-  MicroserviceMetaManager microserviceMetaManager;
-
-  @Mocked
   SchemaMeta schemaMeta;
 
   @Mocked
@@ -691,8 +686,6 @@ public class TestAbstractRestInvocation {
       {
         requestEx.getHeader(Const.TARGET_MICROSERVICE);
         result = "ms";
-        microserviceMetaManager.ensureFindValue("ms");
-        result = microserviceMeta;
         ServicePathManager.getServicePathManager(microserviceMeta);
         result = null;
       }
diff --git a/common/common-rest/src/test/java/org/apache/servicecomb/common/rest/TestRestProducerInvocation.java b/common/common-rest/src/test/java/org/apache/servicecomb/common/rest/TestRestProducerInvocation.java
index 60a503c..ec63b3b 100644
--- a/common/common-rest/src/test/java/org/apache/servicecomb/common/rest/TestRestProducerInvocation.java
+++ b/common/common-rest/src/test/java/org/apache/servicecomb/common/rest/TestRestProducerInvocation.java
@@ -28,9 +28,9 @@ import org.apache.servicecomb.common.rest.locator.OperationLocator;
 import org.apache.servicecomb.common.rest.locator.ServicePathManager;
 import org.apache.servicecomb.core.Const;
 import org.apache.servicecomb.core.CseContext;
+import org.apache.servicecomb.core.SCBEngine;
 import org.apache.servicecomb.core.Transport;
 import org.apache.servicecomb.core.definition.MicroserviceMeta;
-import org.apache.servicecomb.core.definition.MicroserviceMetaManager;
 import org.apache.servicecomb.foundation.vertx.http.AbstractHttpServletRequest;
 import org.apache.servicecomb.foundation.vertx.http.HttpServletRequestEx;
 import org.apache.servicecomb.foundation.vertx.http.HttpServletResponseEx;
@@ -63,7 +63,7 @@ public class TestRestProducerInvocation {
   RestOperationMeta restOperationMeta;
 
   @Mocked
-  MicroserviceMetaManager microserviceMetaManager;
+  MicroserviceMeta microserviceMeta;
 
   List<HttpServerFilter> httpServerFilters = Collections.emptyList();
 
@@ -80,11 +80,6 @@ public class TestRestProducerInvocation {
   @Rule
   public ExpectedException expectedException = ExpectedException.none();
 
-  @Before
-  public void setup() {
-    CseContext.getInstance().setMicroserviceMetaManager(microserviceMetaManager);
-  }
-
   private void initRestProducerInvocation() {
     restProducerInvocation.transport = transport;
     restProducerInvocation.requestEx = requestEx;
@@ -93,9 +88,14 @@ public class TestRestProducerInvocation {
     restProducerInvocation.httpServerFilters = httpServerFilters;
   }
 
+  @Before
+  public void setup() {
+    SCBEngine.getInstance().setProducerMicroMeta(microserviceMeta);
+  }
+
   @After
   public void teardown() {
-    CseContext.getInstance().setMicroserviceMetaManager(null);
+    SCBEngine.getInstance().setProducerMicroMeta(null);
   }
 
   @Test
@@ -149,28 +149,32 @@ public class TestRestProducerInvocation {
     Microservice microservice = new Microservice();
     microservice.setServiceName("ms");
 
-    Exception e = new Exception("stop");
     new Expectations(RegistryUtils.class) {
       {
         requestEx.getHeader(Const.TARGET_MICROSERVICE);
         result = null;
         RegistryUtils.getMicroservice();
         result = microservice;
-        microserviceMetaManager.ensureFindValue("ms");
-        result = e;
+      }
+    };
+    new Expectations(ServicePathManager.class) {
+      {
+        //just make the method throw Exception
+        ServicePathManager.getServicePathManager(microserviceMeta);
+        result = null;
       }
     };
     restProducerInvocation = new RestProducerInvocation();
     initRestProducerInvocation();
 
     expectedException.expect(Exception.class);
-    expectedException.expectMessage("stop");
+    expectedException.expectMessage("[message=Not Found]");
     restProducerInvocation.findRestOperation();
   }
 
   @Test
-  public void findRestOperationNormal(@Mocked MicroserviceMeta microserviceMeta,
-      @Mocked ServicePathManager servicePathManager, @Mocked OperationLocator locator) {
+  public void findRestOperationNormal(@Mocked ServicePathManager servicePathManager,
+      @Mocked OperationLocator locator) {
     requestEx = new AbstractHttpServletRequest() {
       @Override
       public String getRequestURI() {
@@ -190,8 +194,6 @@ public class TestRestProducerInvocation {
     Map<String, String> pathVars = new HashMap<>();
     new Expectations(ServicePathManager.class) {
       {
-        microserviceMetaManager.ensureFindValue("ms");
-        result = microserviceMeta;
         ServicePathManager.getServicePathManager(microserviceMeta);
         result = servicePathManager;
         servicePathManager.producerLocateOperation(anyString, anyString);
diff --git a/core/src/main/java/org/apache/servicecomb/core/CseApplicationListener.java b/core/src/main/java/org/apache/servicecomb/core/CseApplicationListener.java
index 38793cd..3382789 100644
--- a/core/src/main/java/org/apache/servicecomb/core/CseApplicationListener.java
+++ b/core/src/main/java/org/apache/servicecomb/core/CseApplicationListener.java
@@ -17,6 +17,7 @@
 
 package org.apache.servicecomb.core;
 
+import org.apache.servicecomb.core.definition.MicroserviceMeta;
 import org.apache.servicecomb.core.definition.loader.SchemaListenerManager;
 import org.apache.servicecomb.core.provider.consumer.ConsumerProviderManager;
 import org.apache.servicecomb.core.provider.producer.ProducerProviderManager;
@@ -64,6 +65,10 @@ public class CseApplicationListener
       }
 
       if (SCBEngine.getInstance().getBootListenerList() == null) {
+        //SCBEngine init first, hence we do not worry that when other bean class using the
+        //producer microserviceMeta, the SCBEngine is not inited.
+        String serviceName = RegistryUtils.getMicroservice().getServiceName();
+        SCBEngine.getInstance().setProducerMicroMeta(new MicroserviceMeta(serviceName));
         SCBEngine.getInstance().setProducerProviderManager(applicationContext.getBean(ProducerProviderManager.class));
         SCBEngine.getInstance().setConsumerProviderManager(applicationContext.getBean(ConsumerProviderManager.class));
         SCBEngine.getInstance().setTransportManager(applicationContext.getBean(TransportManager.class));
diff --git a/core/src/main/java/org/apache/servicecomb/core/CseContext.java b/core/src/main/java/org/apache/servicecomb/core/CseContext.java
index e372d0a..45b8415 100644
--- a/core/src/main/java/org/apache/servicecomb/core/CseContext.java
+++ b/core/src/main/java/org/apache/servicecomb/core/CseContext.java
@@ -19,7 +19,6 @@ package org.apache.servicecomb.core;
 
 import javax.inject.Inject;
 
-import org.apache.servicecomb.core.definition.MicroserviceMetaManager;
 import org.apache.servicecomb.core.definition.loader.SchemaListenerManager;
 import org.apache.servicecomb.core.definition.loader.SchemaLoader;
 import org.apache.servicecomb.core.definition.schema.ConsumerSchemaFactory;
@@ -39,8 +38,6 @@ public class CseContext {
 
   private SchemaLoader schemaLoader;
 
-  private MicroserviceMetaManager microserviceMetaManager;
-
   private ConsumerSchemaFactory consumerSchemaFactory;
 
   private ConsumerProviderManager consumerProviderManager;
@@ -59,10 +56,6 @@ public class CseContext {
     return schemaLoader;
   }
 
-  public MicroserviceMetaManager getMicroserviceMetaManager() {
-    return microserviceMetaManager;
-  }
-
   public ConsumerSchemaFactory getConsumerSchemaFactory() {
     return consumerSchemaFactory;
   }
@@ -89,11 +82,6 @@ public class CseContext {
   }
 
   @Inject
-  public void setMicroserviceMetaManager(MicroserviceMetaManager microserviceMetaManager) {
-    this.microserviceMetaManager = microserviceMetaManager;
-  }
-
-  @Inject
   public void setSchemaLoader(SchemaLoader schemaLoader) {
     this.schemaLoader = schemaLoader;
   }
diff --git a/core/src/main/java/org/apache/servicecomb/core/SCBEngine.java b/core/src/main/java/org/apache/servicecomb/core/SCBEngine.java
index 6e0aefe..39dbd83 100644
--- a/core/src/main/java/org/apache/servicecomb/core/SCBEngine.java
+++ b/core/src/main/java/org/apache/servicecomb/core/SCBEngine.java
@@ -25,6 +25,7 @@ import javax.ws.rs.core.Response.Status;
 import org.apache.servicecomb.config.ConfigUtil;
 import org.apache.servicecomb.core.BootListener.BootEvent;
 import org.apache.servicecomb.core.BootListener.EventType;
+import org.apache.servicecomb.core.definition.MicroserviceMeta;
 import org.apache.servicecomb.core.definition.loader.SchemaListenerManager;
 import org.apache.servicecomb.core.endpoint.AbstractEndpointsCache;
 import org.apache.servicecomb.core.event.InvocationFinishEvent;
@@ -55,6 +56,8 @@ public class SCBEngine {
 
   private ConsumerProviderManager consumerProviderManager;
 
+  private MicroserviceMeta producerMicroMeta;
+
   private TransportManager transportManager;
 
   private SchemaListenerManager schemaListenerManager;
@@ -67,6 +70,7 @@ public class SCBEngine {
 
   private volatile SCBStatus status = SCBStatus.DOWN;
 
+
   public void setStatus(SCBStatus status) {
     this.status = status;
   }
@@ -298,4 +302,12 @@ public class SCBEngine {
 
     return consumerProviderManager.getReferenceConfig(microserviceName);
   }
+
+  public MicroserviceMeta getProducerMicroMeta() {
+    return producerMicroMeta;
+  }
+
+  public void setProducerMicroMeta(MicroserviceMeta producerMicroMeta) {
+    this.producerMicroMeta = producerMicroMeta;
+  }
 }
diff --git a/core/src/main/java/org/apache/servicecomb/core/definition/MicroserviceMetaManager.java b/core/src/main/java/org/apache/servicecomb/core/definition/MicroserviceMetaManager.java
deleted file mode 100644
index a6b0c2d..0000000
--- a/core/src/main/java/org/apache/servicecomb/core/definition/MicroserviceMetaManager.java
+++ /dev/null
@@ -1,76 +0,0 @@
-/*
- * 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.servicecomb.core.definition;
-
-import java.util.Collection;
-
-import org.apache.commons.lang3.StringUtils;
-import org.apache.servicecomb.foundation.common.RegisterManager;
-import org.apache.servicecomb.serviceregistry.api.registry.Microservice;
-import org.springframework.stereotype.Component;
-
-/**
- * key为microserviceName(app内部)或者appId:microserviceName(跨app)
- */
-@Component
-public class MicroserviceMetaManager extends RegisterManager<String, MicroserviceMeta> {
-  private static final String MICROSERVICE_SCHEMA_MGR = "microservice meta manager";
-
-  private final Object lock = new Object();
-
-  public MicroserviceMetaManager() {
-    super(MICROSERVICE_SCHEMA_MGR);
-  }
-
-  public SchemaMeta ensureFindSchemaMeta(String microserviceName, String schemaId) {
-    MicroserviceMeta microserviceMeta = ensureFindValue(microserviceName);
-    return microserviceMeta.ensureFindSchemaMeta(schemaId);
-  }
-
-  public Collection<SchemaMeta> getAllSchemaMeta(String microserviceName) {
-    MicroserviceMeta microserviceMeta = ensureFindValue(microserviceName);
-    return microserviceMeta.getSchemaMetas();
-  }
-
-  public MicroserviceMeta getOrCreateMicroserviceMeta(Microservice microservice) {
-    String microserviceName = microservice.getServiceName();
-    MicroserviceMeta microserviceMeta = getOrCreateMicroserviceMeta(microserviceName);
-    if (!StringUtils.isEmpty(microservice.getAlias())) {
-      if (findValue(microservice.getAlias()) == null) {
-        register(microservice.getAlias(), microserviceMeta);
-      }
-    }
-
-    return microserviceMeta;
-  }
-
-  public MicroserviceMeta getOrCreateMicroserviceMeta(String microserviceName) {
-    MicroserviceMeta microserviceMeta = findValue(microserviceName);
-    if (microserviceMeta == null) {
-      synchronized (lock) {
-        microserviceMeta = findValue(microserviceName);
-        if (microserviceMeta == null) {
-          microserviceMeta = new MicroserviceMeta(microserviceName);
-          register(microserviceName, microserviceMeta);
-        }
-      }
-    }
-
-    return microserviceMeta;
-  }
-}
diff --git a/core/src/main/java/org/apache/servicecomb/core/definition/loader/SchemaListenerManager.java b/core/src/main/java/org/apache/servicecomb/core/definition/loader/SchemaListenerManager.java
index 65e9bd4..83e93f3 100644
--- a/core/src/main/java/org/apache/servicecomb/core/definition/loader/SchemaListenerManager.java
+++ b/core/src/main/java/org/apache/servicecomb/core/definition/loader/SchemaListenerManager.java
@@ -21,11 +21,12 @@ import java.util.ArrayList;
 import java.util.Collection;
 import java.util.List;
 
-import javax.inject.Inject;
-
+import org.apache.servicecomb.core.SCBEngine;
 import org.apache.servicecomb.core.definition.MicroserviceMeta;
-import org.apache.servicecomb.core.definition.MicroserviceMetaManager;
 import org.apache.servicecomb.core.definition.SchemaMeta;
+import org.apache.servicecomb.serviceregistry.RegistryUtils;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Component;
 
@@ -34,32 +35,28 @@ import org.springframework.stereotype.Component;
  */
 @Component
 public class SchemaListenerManager {
+
+  private static final Logger LOGGER = LoggerFactory.getLogger(SchemaListenerManager.class);
+
   @Autowired(required = false)
   private List<SchemaListener> schemaListenerList = new ArrayList<>();
 
-  @Inject
-  private MicroserviceMetaManager microserviceMetaManager;
-
   public void setSchemaListenerList(List<SchemaListener> schemaListenerList) {
     this.schemaListenerList = schemaListenerList;
   }
 
-  public void setMicroserviceMetaManager(MicroserviceMetaManager microserviceMetaManager) {
-    this.microserviceMetaManager = microserviceMetaManager;
-  }
-
   public void notifySchemaListener(MicroserviceMeta... microserviceMetas) {
     List<SchemaMeta> schemaMetaList = new ArrayList<>();
     for (MicroserviceMeta microserviceMeta : microserviceMetas) {
       schemaMetaList.addAll(microserviceMeta.getSchemaMetas());
     }
-
     notifySchemaListener(schemaMetaList.toArray(new SchemaMeta[schemaMetaList.size()]));
   }
 
   public void notifySchemaListener() {
-    Collection<MicroserviceMeta> microserviceMetas = microserviceMetaManager.values();
-    notifySchemaListener(microserviceMetas.toArray(new MicroserviceMeta[microserviceMetas.size()]));
+    //only one instance
+    MicroserviceMeta microserviceMeta = SCBEngine.getInstance().getProducerMicroMeta();
+    notifySchemaListener(microserviceMeta);
   }
 
   public void notifySchemaListener(SchemaMeta... schemaMetas) {
@@ -74,12 +71,22 @@ public class SchemaListenerManager {
   }
 
   public SchemaMeta ensureFindSchemaMeta(String microserviceName, String schemaId) {
-    MicroserviceMeta microserviceMeta = microserviceMetaManager.ensureFindValue(microserviceName);
+    if (!RegistryUtils.getMicroservice().getServiceName().equals(microserviceName)) {
+      LOGGER.error("miroserviceName : {} is different from the default microserviceName :{}",
+          microserviceName,
+          RegistryUtils.getMicroservice().getServiceName());
+    }
+    MicroserviceMeta microserviceMeta = SCBEngine.getInstance().getProducerMicroMeta();
     return microserviceMeta.ensureFindSchemaMeta(schemaId);
   }
 
   public Collection<SchemaMeta> getAllSchemaMeta(String microserviceName) {
-    MicroserviceMeta microserviceMeta = microserviceMetaManager.ensureFindValue(microserviceName);
+    if (!RegistryUtils.getMicroservice().getServiceName().equals(microserviceName)) {
+      LOGGER.error("miroserviceName : {} is different from the default microserviceName :{}",
+          microserviceName,
+          RegistryUtils.getMicroservice().getServiceName());
+    }
+    MicroserviceMeta microserviceMeta = SCBEngine.getInstance().getProducerMicroMeta();
     return microserviceMeta.getSchemaMetas();
   }
 }
diff --git a/core/src/main/java/org/apache/servicecomb/core/definition/loader/SchemaLoader.java b/core/src/main/java/org/apache/servicecomb/core/definition/loader/SchemaLoader.java
index aa612c3..40e1d68 100644
--- a/core/src/main/java/org/apache/servicecomb/core/definition/loader/SchemaLoader.java
+++ b/core/src/main/java/org/apache/servicecomb/core/definition/loader/SchemaLoader.java
@@ -19,13 +19,11 @@ package org.apache.servicecomb.core.definition.loader;
 
 import java.util.List;
 
-import javax.inject.Inject;
-
 import org.apache.commons.io.FilenameUtils;
 import org.apache.commons.io.IOUtils;
 import org.apache.servicecomb.core.Handler;
+import org.apache.servicecomb.core.SCBEngine;
 import org.apache.servicecomb.core.definition.MicroserviceMeta;
-import org.apache.servicecomb.core.definition.MicroserviceMetaManager;
 import org.apache.servicecomb.core.definition.SchemaMeta;
 import org.apache.servicecomb.core.definition.SchemaUtils;
 import org.apache.servicecomb.core.handler.ConsumerHandlerManager;
@@ -48,13 +46,6 @@ import io.swagger.models.Swagger;
 public class SchemaLoader {
   private static final Logger LOGGER = LoggerFactory.getLogger(SchemaLoader.class);
 
-  @Inject
-  protected MicroserviceMetaManager microserviceMetaManager;
-
-  public void setMicroserviceMetaManager(MicroserviceMetaManager microserviceMetaManager) {
-    this.microserviceMetaManager = microserviceMetaManager;
-  }
-
   /*
    * resource的路径格式,至少是以这个形式结尾:schemaId.yaml
    */
@@ -82,8 +73,13 @@ public class SchemaLoader {
 
   public SchemaMeta registerSchema(String microserviceName, String schemaId,
       Swagger swagger) {
-    MicroserviceMeta microserviceMeta = microserviceMetaManager.getOrCreateMicroserviceMeta(microserviceName);
-
+    //check whether the microserviceName is right
+    if (!RegistryUtils.getMicroservice().getServiceName().equals(microserviceName)) {
+      LOGGER.error("miroserviceName : {} is different from the default microserviceName :{}",
+          microserviceName,
+          RegistryUtils.getMicroservice().getServiceName());
+    }
+    MicroserviceMeta microserviceMeta = SCBEngine.getInstance().getProducerMicroMeta();
     return registerSchema(microserviceMeta, schemaId, swagger);
   }
 
diff --git a/core/src/main/java/org/apache/servicecomb/core/definition/schema/AbstractSchemaFactory.java b/core/src/main/java/org/apache/servicecomb/core/definition/schema/AbstractSchemaFactory.java
index 9d62c52..bf2336d 100644
--- a/core/src/main/java/org/apache/servicecomb/core/definition/schema/AbstractSchemaFactory.java
+++ b/core/src/main/java/org/apache/servicecomb/core/definition/schema/AbstractSchemaFactory.java
@@ -17,12 +17,10 @@
 
 package org.apache.servicecomb.core.definition.schema;
 
-import java.net.URL;
-
 import javax.inject.Inject;
+import java.net.URL;
 
 import org.apache.servicecomb.core.definition.MicroserviceMeta;
-import org.apache.servicecomb.core.definition.MicroserviceMetaManager;
 import org.apache.servicecomb.core.definition.SchemaMeta;
 import org.apache.servicecomb.core.definition.SchemaUtils;
 import org.apache.servicecomb.core.definition.loader.SchemaLoader;
@@ -40,8 +38,6 @@ import io.swagger.models.Swagger;
  * 在producer场景中,如果本地没有契约,需要根据实现类动态生成契约
  */
 public abstract class AbstractSchemaFactory<CONTEXT extends SchemaContext> {
-  @Inject
-  protected MicroserviceMetaManager microserviceMetaManager;
 
   protected SchemaLoader schemaLoader;
 
@@ -53,10 +49,6 @@ public abstract class AbstractSchemaFactory<CONTEXT extends SchemaContext> {
     this.schemaLoader = schemaLoader;
   }
 
-  public void setMicroserviceMetaManager(MicroserviceMetaManager microserviceMetaManager) {
-    this.microserviceMetaManager = microserviceMetaManager;
-  }
-
   // 因为aop的存在,schemaInstance的class不一定等于schemaClass
   protected SchemaMeta getOrCreateSchema(CONTEXT context) {
     MicroserviceMeta microserviceMeta = context.getMicroserviceMeta();
diff --git a/core/src/main/java/org/apache/servicecomb/core/definition/schema/ProducerSchemaFactory.java b/core/src/main/java/org/apache/servicecomb/core/definition/schema/ProducerSchemaFactory.java
index 87e7cb2..d5b435f 100644
--- a/core/src/main/java/org/apache/servicecomb/core/definition/schema/ProducerSchemaFactory.java
+++ b/core/src/main/java/org/apache/servicecomb/core/definition/schema/ProducerSchemaFactory.java
@@ -20,15 +20,15 @@ package org.apache.servicecomb.core.definition.schema;
 import static org.apache.servicecomb.serviceregistry.api.Const.REGISTER_URL_PREFIX;
 import static org.apache.servicecomb.serviceregistry.api.Const.URL_PREFIX;
 
+import javax.inject.Inject;
 import java.util.LinkedHashMap;
 import java.util.Map;
 import java.util.Set;
 import java.util.concurrent.CompletableFuture;
 import java.util.concurrent.Executor;
 
-import javax.inject.Inject;
-
 import org.apache.servicecomb.core.Const;
+import org.apache.servicecomb.core.SCBEngine;
 import org.apache.servicecomb.core.definition.MicroserviceMeta;
 import org.apache.servicecomb.core.definition.OperationMeta;
 import org.apache.servicecomb.core.definition.SchemaMeta;
@@ -77,7 +77,14 @@ public class ProducerSchemaFactory extends AbstractSchemaFactory<ProducerSchemaC
   public SchemaMeta getOrCreateProducerSchema(String microserviceName, String schemaId,
       Class<?> producerClass,
       Object producerInstance) {
-    MicroserviceMeta microserviceMeta = microserviceMetaManager.getOrCreateMicroserviceMeta(microserviceName);
+
+    if (!RegistryUtils.getMicroservice().getServiceName().equals(microserviceName)) {
+      LOGGER.error("miroserviceName : {} is different from the default microserviceName :{}",
+          microserviceName,
+          RegistryUtils.getMicroservice().getServiceName());
+    }
+
+    MicroserviceMeta microserviceMeta = SCBEngine.getInstance().getProducerMicroMeta();
 
     ProducerSchemaContext context = new ProducerSchemaContext();
     context.setMicroserviceMeta(microserviceMeta);
diff --git a/core/src/main/java/org/apache/servicecomb/core/provider/consumer/AbstractConsumerProvider.java b/core/src/main/java/org/apache/servicecomb/core/provider/consumer/AbstractConsumerProvider.java
index 1493d59..2c7b2ff 100644
--- a/core/src/main/java/org/apache/servicecomb/core/provider/consumer/AbstractConsumerProvider.java
+++ b/core/src/main/java/org/apache/servicecomb/core/provider/consumer/AbstractConsumerProvider.java
@@ -17,14 +17,9 @@
 
 package org.apache.servicecomb.core.provider.consumer;
 
-import javax.inject.Inject;
-
 import org.apache.servicecomb.core.ConsumerProvider;
-import org.apache.servicecomb.core.definition.MicroserviceMetaManager;
 
 public abstract class AbstractConsumerProvider implements ConsumerProvider {
-  @Inject
-  protected MicroserviceMetaManager microserviceMetaManager;
 
   @Override
   public void init() throws Exception {
diff --git a/core/src/main/java/org/apache/servicecomb/core/provider/producer/ProducerProviderManager.java b/core/src/main/java/org/apache/servicecomb/core/provider/producer/ProducerProviderManager.java
index b9b6b41..740f693 100644
--- a/core/src/main/java/org/apache/servicecomb/core/provider/producer/ProducerProviderManager.java
+++ b/core/src/main/java/org/apache/servicecomb/core/provider/producer/ProducerProviderManager.java
@@ -22,13 +22,11 @@ import java.util.Collections;
 import java.util.List;
 import java.util.concurrent.ExecutorService;
 
-import javax.inject.Inject;
-
 import org.apache.commons.io.IOUtils;
 import org.apache.servicecomb.core.BootListener;
 import org.apache.servicecomb.core.ProducerProvider;
+import org.apache.servicecomb.core.SCBEngine;
 import org.apache.servicecomb.core.definition.MicroserviceMeta;
-import org.apache.servicecomb.core.definition.MicroserviceMetaManager;
 import org.apache.servicecomb.core.definition.OperationMeta;
 import org.apache.servicecomb.core.definition.SchemaMeta;
 import org.apache.servicecomb.core.definition.SchemaUtils;
@@ -46,18 +44,14 @@ public class ProducerProviderManager implements BootListener {
   @Autowired(required = false)
   private List<ProducerProvider> producerProviderList = Collections.emptyList();
 
-  @Inject
-  private MicroserviceMetaManager microserviceMetaManager;
-
   private MicroserviceMeta microserviceMeta;
 
   public void init() throws Exception {
     for (ProducerProvider provider : producerProviderList) {
       provider.init();
     }
-
     Microservice microservice = RegistryUtils.getMicroservice();
-    microserviceMeta = microserviceMetaManager.getOrCreateMicroserviceMeta(microservice);
+    microserviceMeta = SCBEngine.getInstance().getProducerMicroMeta();
     for (SchemaMeta schemaMeta : microserviceMeta.getSchemaMetas()) {
       String content = SchemaUtils.swaggerToString(schemaMeta.getSwagger());
       microservice.addSchema(schemaMeta.getSchemaId(), content);
diff --git a/core/src/main/java/org/apache/servicecomb/core/unittest/UnitTestMeta.java b/core/src/main/java/org/apache/servicecomb/core/unittest/UnitTestMeta.java
index 8d9c5b5..f285f73 100644
--- a/core/src/main/java/org/apache/servicecomb/core/unittest/UnitTestMeta.java
+++ b/core/src/main/java/org/apache/servicecomb/core/unittest/UnitTestMeta.java
@@ -22,8 +22,8 @@ import java.util.List;
 
 import org.apache.servicecomb.core.CseContext;
 import org.apache.servicecomb.core.Handler;
+import org.apache.servicecomb.core.SCBEngine;
 import org.apache.servicecomb.core.definition.MicroserviceMeta;
-import org.apache.servicecomb.core.definition.MicroserviceMetaManager;
 import org.apache.servicecomb.core.definition.PrivateMicroserviceVersionMetaFactory;
 import org.apache.servicecomb.core.definition.SchemaMeta;
 import org.apache.servicecomb.core.definition.loader.SchemaListenerManager;
@@ -47,15 +47,15 @@ import org.apache.servicecomb.swagger.generator.core.unittest.UnitTestSwaggerUti
 import org.mockito.Mockito;
 import org.springframework.context.ApplicationContext;
 
-import io.swagger.models.Swagger;
 import mockit.Mock;
 import mockit.MockUp;
 
+import io.swagger.models.Swagger;
+
 /**
  * when SCBEngine finished, UnitTestMeta will be deleted
  */
 public class UnitTestMeta {
-  private MicroserviceMetaManager microserviceMetaManager = new MicroserviceMetaManager();
 
   private SchemaListenerManager schemaListenerManager = new SchemaListenerManager();
 
@@ -69,6 +69,8 @@ public class UnitTestMeta {
 
   private SchemaLoader schemaLoader = new SchemaLoader();
 
+  private MicroserviceMeta microserviceMeta;
+
   private ServiceRegistry serviceRegistry;
 
   public ServiceRegistry getServiceRegistry() {
@@ -85,13 +87,12 @@ public class UnitTestMeta {
     serviceRegistry.init();
     serviceRegistry.getAppManager().setMicroserviceVersionFactory(new PrivateMicroserviceVersionMetaFactory());
     RegistryUtils.setServiceRegistry(serviceRegistry);
-
-    schemaLoader.setMicroserviceMetaManager(microserviceMetaManager);
-
+    microserviceMeta = new MicroserviceMeta(RegistryUtils.getMicroservice().getServiceName());
+    SCBEngine.getInstance().setProducerMicroMeta(microserviceMeta);
     consumerProviderManager = new ConsumerProviderManager();
 
     consumerSchemaFactory = new ConsumerSchemaFactory();
-    consumerSchemaFactory.setMicroserviceMetaManager(microserviceMetaManager);
+
     consumerSchemaFactory.setSchemaLoader(schemaLoader);
 
     consumerProviderManager.setAppManager(RegistryUtils.getServiceRegistry().getAppManager());
@@ -128,18 +129,13 @@ public class UnitTestMeta {
     init();
   }
 
-
-  public MicroserviceMetaManager getMicroserviceMetaManager() {
-    return microserviceMetaManager;
-  }
-
   public SchemaMeta getOrCreateSchemaMeta(Class<?> impl) {
     return getOrCreateSchemaMeta("app", "test", impl.getName(), impl);
   }
 
   public SchemaMeta getOrCreateSchemaMeta(String appId, String microserviceName, String schemaId, Class<?> impl) {
     String longName = appId + ":" + microserviceName;
-    MicroserviceMeta microserviceMeta = microserviceMetaManager.getOrCreateMicroserviceMeta(longName);
+    MicroserviceMeta microserviceMeta = SCBEngine.getInstance().getProducerMicroMeta();
     SchemaMeta schemaMeta = microserviceMeta.findSchemaMeta(schemaId);
     if (schemaMeta != null) {
       return schemaMeta;
diff --git a/core/src/test/java/org/apache/servicecomb/core/TestDefinition.java b/core/src/test/java/org/apache/servicecomb/core/TestDefinition.java
index 9f91589..3416048 100644
--- a/core/src/test/java/org/apache/servicecomb/core/TestDefinition.java
+++ b/core/src/test/java/org/apache/servicecomb/core/TestDefinition.java
@@ -19,14 +19,9 @@ package org.apache.servicecomb.core;
 
 import org.apache.servicecomb.core.definition.CommonService;
 import org.apache.servicecomb.core.definition.MicroserviceMeta;
-import org.apache.servicecomb.core.definition.MicroserviceMetaManager;
-import org.apache.servicecomb.swagger.generator.core.utils.ClassUtils;
 import org.junit.Assert;
 import org.junit.Test;
 
-import io.swagger.models.Info;
-import io.swagger.models.Swagger;
-
 public class TestDefinition {
   @Test
   public void testCommonService() {
@@ -68,23 +63,4 @@ public class TestDefinition {
       Assert.assertNotNull(e);
     }
   }
-
-  @Test
-  public void testMicroserviceMetaManager() throws Exception {
-    MicroserviceMetaManager microserviceMetaManager = new MicroserviceMetaManager();
-    microserviceMetaManager.getOrCreateMicroserviceMeta("app:testname");
-
-    Assert.assertEquals("microservice meta manager", microserviceMetaManager.getName());
-    Assert.assertEquals("Not allow register repeat data, name=%s, key=%s",
-        microserviceMetaManager.getRegisterErrorFmt());
-    Assert.assertEquals(0, microserviceMetaManager.getAllSchemaMeta("app:testname").size());
-
-    Swagger oSwagger = new Swagger();
-    Info oInfo = new Info();
-    oInfo.setVendorExtension("x-java-interface", "java.lang.String");
-    oSwagger.setInfo(oInfo);
-    Assert.assertEquals("java.lang.String",
-        (ClassUtils.getInterfaceName(oSwagger.getInfo().getVendorExtensions())));
-    oInfo.setVendorExtension("x-java-class", "java.lang.String");
-  }
 }
diff --git a/core/src/test/java/org/apache/servicecomb/core/definition/loader/TestDynamicSchemaLoader.java b/core/src/test/java/org/apache/servicecomb/core/definition/loader/TestDynamicSchemaLoader.java
index c7f0b4a..2ed4fae 100644
--- a/core/src/test/java/org/apache/servicecomb/core/definition/loader/TestDynamicSchemaLoader.java
+++ b/core/src/test/java/org/apache/servicecomb/core/definition/loader/TestDynamicSchemaLoader.java
@@ -20,7 +20,7 @@ import java.util.ArrayList;
 import java.util.Collections;
 
 import org.apache.servicecomb.core.CseContext;
-import org.apache.servicecomb.core.definition.MicroserviceMetaManager;
+import org.apache.servicecomb.core.SCBEngine;
 import org.apache.servicecomb.core.definition.SchemaMeta;
 import org.apache.servicecomb.core.unittest.UnitTestMeta;
 import org.apache.servicecomb.serviceregistry.RegistryUtils;
@@ -35,7 +35,6 @@ import org.junit.BeforeClass;
 import org.junit.Test;
 
 public class TestDynamicSchemaLoader {
-  private static MicroserviceMetaManager microserviceMetaManager = new MicroserviceMetaManager();
 
   private static SchemaLoader loader = new SchemaLoader();
 
@@ -44,7 +43,6 @@ public class TestDynamicSchemaLoader {
   @BeforeClass
   public static void init() {
     new UnitTestMeta();
-    loader.setMicroserviceMetaManager(microserviceMetaManager);
 
     SchemaListenerManager schemaListenerManager = new SchemaListenerManager();
     schemaListenerManager.setSchemaListenerList(Collections.emptyList());
@@ -69,16 +67,21 @@ public class TestDynamicSchemaLoader {
   @Test
   public void testRegisterSchemas() {
     DynamicSchemaLoader.INSTANCE.registerSchemas("classpath*:test/test/schema.yaml");
-    SchemaMeta schemaMeta = microserviceMetaManager.ensureFindSchemaMeta("perfClient", "schema");
+    SchemaMeta schemaMeta = SCBEngine.getInstance().getProducerMicroMeta().ensureFindSchemaMeta("schema");
     Assert.assertEquals("cse.gen.app.perfClient.schema", schemaMeta.getPackageName());
   }
 
   @SuppressWarnings("deprecation")
   @Test
   public void testRegisterShemasAcrossApp() {
+    //we can not register repeat data
+    init();
+    //as we can not set microserviceName any more, hence we should use the default name
     DynamicSchemaLoader.INSTANCE.registerSchemas("CSE:as", "classpath*:test/test/schema.yaml");
-    SchemaMeta schemaMeta = microserviceMetaManager.ensureFindSchemaMeta("CSE:as", "schema");
-    Assert.assertEquals("cse.gen.CSE.as.schema", schemaMeta.getPackageName());
+    SchemaMeta schemaMeta =
+        SCBEngine.getInstance().getProducerMicroMeta().ensureFindSchemaMeta("schema");
+    System.out.println(schemaMeta.getPackageName());
+    Assert.assertEquals("cse.gen.app.perfClient.schema", schemaMeta.getPackageName());
   }
 
   @Test
diff --git a/core/src/test/java/org/apache/servicecomb/core/definition/loader/TestSchemaListenerManager.java b/core/src/test/java/org/apache/servicecomb/core/definition/loader/TestSchemaListenerManager.java
index f32adff..445cf1a 100644
--- a/core/src/test/java/org/apache/servicecomb/core/definition/loader/TestSchemaListenerManager.java
+++ b/core/src/test/java/org/apache/servicecomb/core/definition/loader/TestSchemaListenerManager.java
@@ -19,7 +19,6 @@ package org.apache.servicecomb.core.definition.loader;
 
 import java.util.Arrays;
 
-import org.apache.servicecomb.core.definition.MicroserviceMetaManager;
 import org.apache.servicecomb.core.definition.SchemaMeta;
 import org.junit.Assert;
 import org.junit.Before;
@@ -47,7 +46,6 @@ public class TestSchemaListenerManager {
 
     SchemaListenerManager mgr = new SchemaListenerManager();
     mgr.setSchemaListenerList(Arrays.asList(listener));
-    mgr.setMicroserviceMetaManager(new MicroserviceMetaManager());
 
     mgr.notifySchemaListener(schemaMeta);
   }
diff --git a/core/src/test/java/org/apache/servicecomb/core/definition/schema/TestProducerSchemaFactory.java b/core/src/test/java/org/apache/servicecomb/core/definition/schema/TestProducerSchemaFactory.java
index 97f7ddb..fa1ea6b 100644
--- a/core/src/test/java/org/apache/servicecomb/core/definition/schema/TestProducerSchemaFactory.java
+++ b/core/src/test/java/org/apache/servicecomb/core/definition/schema/TestProducerSchemaFactory.java
@@ -16,15 +16,13 @@
  */
 package org.apache.servicecomb.core.definition.schema;
 
+import javax.xml.ws.Holder;
 import java.util.concurrent.CompletableFuture;
 import java.util.concurrent.Executor;
 
-import javax.xml.ws.Holder;
-
 import org.apache.servicecomb.core.Const;
 import org.apache.servicecomb.core.Endpoint;
 import org.apache.servicecomb.core.Invocation;
-import org.apache.servicecomb.core.definition.MicroserviceMetaManager;
 import org.apache.servicecomb.core.definition.OperationMeta;
 import org.apache.servicecomb.core.definition.SchemaMeta;
 import org.apache.servicecomb.core.definition.loader.SchemaLoader;
@@ -50,10 +48,11 @@ import org.junit.Assert;
 import org.junit.BeforeClass;
 import org.junit.Test;
 
-import io.swagger.models.Swagger;
 import mockit.Mock;
 import mockit.MockUp;
 
+import io.swagger.models.Swagger;
+
 public class TestProducerSchemaFactory {
   private static SwaggerEnvironment swaggerEnv = new BootstrapNormal().boot();
 
@@ -77,12 +76,10 @@ public class TestProducerSchemaFactory {
     ProducerArgumentsMapperFactory producerArgsMapperFactory = new ProducerArgumentsMapperFactory();
     producerArgsMapperFactory.setConverterMgr(converterMgr);
 
-    MicroserviceMetaManager microserviceMetaManager = new MicroserviceMetaManager();
     SchemaLoader schemaLoader = new SchemaLoader();
     CompositeSwaggerGeneratorContext compositeSwaggerGeneratorContext = new CompositeSwaggerGeneratorContext();
 
     producerSchemaFactory.setSwaggerEnv(swaggerEnv);
-    ReflectUtils.setField(producerSchemaFactory, "microserviceMetaManager", microserviceMetaManager);
     ReflectUtils.setField(producerSchemaFactory, "schemaLoader", schemaLoader);
     ReflectUtils.setField(producerSchemaFactory,
         "compositeSwaggerGeneratorContext",
@@ -93,8 +90,7 @@ public class TestProducerSchemaFactory {
     };
     new MockUp<BeanUtils>() {
       @SuppressWarnings("unchecked")
-      @Mock
-      <T> T getBean(String name) {
+      @Mock <T> T getBean(String name) {
         if (ExecutorManager.EXECUTOR_REACTIVE.equals(name)) {
           return (T) reactiveExecutor;
         }
@@ -111,8 +107,7 @@ public class TestProducerSchemaFactory {
 
   @Test
   public void testGetOrCreateProducer() throws Exception {
-    SchemaMeta schemaMeta = producerSchemaFactory.getOrCreateProducerSchema("app:ms",
-        "schema",
+    SchemaMeta schemaMeta = producerSchemaFactory.getOrCreateProducerSchema("app:ms", "schema",
         TestProducerSchemaFactoryImpl.class,
         new TestProducerSchemaFactoryImpl());
     Swagger swagger = schemaMeta.getSwagger();
@@ -121,8 +116,8 @@ public class TestProducerSchemaFactory {
     Assert.assertEquals("add", operationMeta.getOperationId());
 
     SwaggerProducerOperation producerOperation = operationMeta.getExtData(Const.PRODUCER_OPERATION);
-
-    Object addBody = Class.forName("cse.gen.app.ms.schema.addBody").newInstance();
+    //we can not set microserviceName any more,use the default name
+    Object addBody = Class.forName("cse.gen.app.perfClient.schema.addBody").newInstance();
     ReflectUtils.setField(addBody, "x", 1);
     ReflectUtils.setField(addBody, "y", 2);
     Invocation invocation = new Invocation((Endpoint) null, operationMeta, new Object[] {addBody}) {
@@ -152,8 +147,7 @@ public class TestProducerSchemaFactory {
     ArchaiusUtils.setProperty(org.apache.servicecomb.serviceregistry.api.Const.REGISTER_URL_PREFIX, "true");
     System.setProperty(org.apache.servicecomb.serviceregistry.api.Const.URL_PREFIX, "/pojo/test");
 
-    SchemaMeta schemaMeta = producerSchemaFactory.getOrCreateProducerSchema("app:ms",
-        "schema2",
+    SchemaMeta schemaMeta = producerSchemaFactory.getOrCreateProducerSchema("app:ms", "schema2",
         TestProducerSchemaFactoryImpl.class,
         new TestProducerSchemaFactoryImpl());
     OperationMeta operationMeta = schemaMeta.ensureFindOperation("add");
@@ -167,8 +161,7 @@ public class TestProducerSchemaFactory {
 
   @Test
   public void testCompletableFuture() {
-    SchemaMeta schemaMeta = producerSchemaFactory.getOrCreateProducerSchema("app:ms",
-        "schema3",
+    SchemaMeta schemaMeta = producerSchemaFactory.getOrCreateProducerSchema("app:ms", "schema3",
         TestProducerSchemaFactoryImpl.class,
         new TestProducerSchemaFactoryImpl());
     OperationMeta operationMeta = schemaMeta.ensureFindOperation("async");
diff --git a/core/src/test/java/org/apache/servicecomb/core/provider/producer/TestProducerProviderManager.java b/core/src/test/java/org/apache/servicecomb/core/provider/producer/TestProducerProviderManager.java
index 0809f93..943183a 100644
--- a/core/src/test/java/org/apache/servicecomb/core/provider/producer/TestProducerProviderManager.java
+++ b/core/src/test/java/org/apache/servicecomb/core/provider/producer/TestProducerProviderManager.java
@@ -26,7 +26,6 @@ import java.util.concurrent.atomic.AtomicInteger;
 import org.apache.servicecomb.core.BootListener.BootEvent;
 import org.apache.servicecomb.core.BootListener.EventType;
 import org.apache.servicecomb.core.definition.MicroserviceMeta;
-import org.apache.servicecomb.core.definition.MicroserviceMetaManager;
 import org.apache.servicecomb.core.definition.OperationMeta;
 import org.apache.servicecomb.core.executor.FixedThreadExecutor;
 import org.apache.servicecomb.foundation.test.scaffolding.log.LogCollector;
@@ -42,9 +41,8 @@ import mockit.Mocked;
 
 public class TestProducerProviderManager {
   @Test
-  public void allowedNoProvider(@Mocked MicroserviceMetaManager microserviceMetaManager) {
+  public void allowedNoProvider() {
     AnnotationConfigApplicationContext context = new AnnotationConfigApplicationContext();
-    context.getBeanFactory().registerSingleton(microserviceMetaManager.getClass().getName(), microserviceMetaManager);
     context.register(ProducerProviderManager.class);
     // must not throw exception
     context.refresh();
diff --git a/demo/demo-springmvc/springmvc-server/src/main/java/org/apache/servicecomb/demo/springmvc/server/ProducerTestsAfterBootup.java b/demo/demo-springmvc/springmvc-server/src/main/java/org/apache/servicecomb/demo/springmvc/server/ProducerTestsAfterBootup.java
index ce80bf8..f6c9107 100644
--- a/demo/demo-springmvc/springmvc-server/src/main/java/org/apache/servicecomb/demo/springmvc/server/ProducerTestsAfterBootup.java
+++ b/demo/demo-springmvc/springmvc-server/src/main/java/org/apache/servicecomb/demo/springmvc/server/ProducerTestsAfterBootup.java
@@ -47,20 +47,22 @@ public class ProducerTestsAfterBootup implements BootListener {
 
   public void testSchemaNotChange() {
     LOGGER.info("ProducerTestsAfterBootup testing start");
+    //we can not set microserviceName any more
     SchemaMeta meta =
-        factory.getOrCreateProducerSchema("customer-service",
-            "test1",
+        factory.getOrCreateProducerSchema("customer-service", "test1",
             CodeFirstSpringmvcForSchema.class,
             new CodeFirstSpringmvcForSchema());
     String codeFirst = getSwaggerContent(meta.getSwagger());
-    TestMgr.check("4d18e9b339136d68c7e5e83f4f302664c91465d9747a36334841e082d336516e",
+    TestMgr.check("2986daa46b229ec125443122dd7b51ee9a64879f1750d0996f948ce0718685c7",
         RegistryUtils.calcSchemaSummary(codeFirst));
-    TestMgr.check(codeFirst.length(), 896);
+    TestMgr.check(codeFirst.length(), 889);
+
   }
 
   public void testRegisterPath() {
     TestMgr.check(RegistryUtils.getMicroservice().getPaths().size(), 10);
   }
+
   private String getSwaggerContent(Swagger swagger) {
     try {
       return writer.writeValueAsString(swagger);
diff --git a/metrics/metrics-core/src/main/java/org/apache/servicecomb/metrics/core/ThreadPoolMetersInitializer.java b/metrics/metrics-core/src/main/java/org/apache/servicecomb/metrics/core/ThreadPoolMetersInitializer.java
index 7d9b1f2..14cb7f8 100644
--- a/metrics/metrics-core/src/main/java/org/apache/servicecomb/metrics/core/ThreadPoolMetersInitializer.java
+++ b/metrics/metrics-core/src/main/java/org/apache/servicecomb/metrics/core/ThreadPoolMetersInitializer.java
@@ -22,9 +22,8 @@ import java.util.Map.Entry;
 import java.util.concurrent.Executor;
 import java.util.concurrent.ThreadPoolExecutor;
 
-import org.apache.servicecomb.core.CseContext;
+import org.apache.servicecomb.core.SCBEngine;
 import org.apache.servicecomb.core.definition.MicroserviceMeta;
-import org.apache.servicecomb.core.definition.MicroserviceMetaManager;
 import org.apache.servicecomb.core.definition.OperationMeta;
 import org.apache.servicecomb.core.executor.FixedThreadExecutor;
 import org.apache.servicecomb.foundation.common.utils.BeanUtils;
@@ -71,14 +70,11 @@ public class ThreadPoolMetersInitializer implements MetricsInitializer {
 
   protected Map<Executor, Executor> collectionOperationExecutors() {
     Map<Executor, Executor> operationExecutors = new IdentityHashMap<>();
-
-    MicroserviceMetaManager microserviceMetaManager = CseContext.getInstance().getMicroserviceMetaManager();
-    for (MicroserviceMeta microserviceMeta : microserviceMetaManager.values()) {
-      for (OperationMeta operationMeta : microserviceMeta.getOperations()) {
-        operationExecutors.put(operationMeta.getExecutor(), operationMeta.getExecutor());
-      }
+    //only one instance in the values
+    MicroserviceMeta microserviceMeta = SCBEngine.getInstance().getProducerMicroMeta();
+    for (OperationMeta operationMeta : microserviceMeta.getOperations()) {
+      operationExecutors.put(operationMeta.getExecutor(), operationMeta.getExecutor());
     }
-
     return operationExecutors;
   }
 
diff --git a/metrics/metrics-core/src/test/java/org/apache/servicecomb/metrics/core/TestThreadPoolMetersInitializer.java b/metrics/metrics-core/src/test/java/org/apache/servicecomb/metrics/core/TestThreadPoolMetersInitializer.java
index 116e059..c051dc5 100644
--- a/metrics/metrics-core/src/test/java/org/apache/servicecomb/metrics/core/TestThreadPoolMetersInitializer.java
+++ b/metrics/metrics-core/src/test/java/org/apache/servicecomb/metrics/core/TestThreadPoolMetersInitializer.java
@@ -28,8 +28,8 @@ import java.util.concurrent.ScheduledThreadPoolExecutor;
 import java.util.concurrent.ThreadPoolExecutor;
 
 import org.apache.servicecomb.core.CseContext;
+import org.apache.servicecomb.core.SCBEngine;
 import org.apache.servicecomb.core.definition.MicroserviceMeta;
-import org.apache.servicecomb.core.definition.MicroserviceMetaManager;
 import org.apache.servicecomb.core.definition.OperationMeta;
 import org.apache.servicecomb.core.executor.FixedThreadExecutor;
 import org.apache.servicecomb.foundation.common.utils.BeanUtils;
@@ -43,7 +43,6 @@ import org.springframework.context.ApplicationContext;
 import com.netflix.spectator.api.DefaultRegistry;
 import com.netflix.spectator.api.ManualClock;
 import com.netflix.spectator.api.Registry;
-
 import mockit.Expectations;
 import mockit.Mock;
 import mockit.MockUp;
@@ -72,8 +71,6 @@ public class TestThreadPoolMetersInitializer {
   @Mocked
   ApplicationContext applicationContext;
 
-  @Mocked
-  MicroserviceMetaManager microserviceMetaManager;
 
   @Mocked
   MicroserviceMeta microserviceMeta;
@@ -89,6 +86,12 @@ public class TestThreadPoolMetersInitializer {
 
   @Test
   public void init() {
+    new Expectations(SCBEngine.class) {
+      {
+        SCBEngine.getInstance().getProducerMicroMeta();
+        result = microserviceMeta;
+      }
+    };
     new Expectations(SPIServiceUtils.class) {
       {
         SPIServiceUtils.getTargetService(MetricsInitializer.class, DefaultRegistryInitializer.class);
@@ -97,7 +100,6 @@ public class TestThreadPoolMetersInitializer {
         result = registry;
       }
     };
-
     Map<String, Executor> beanExecutors = new HashMap<>();
     beanExecutors.put("executor", executor);
     beanExecutors.put("fixedThreadExecutor", fixedThreadExecutor);
@@ -113,10 +115,6 @@ public class TestThreadPoolMetersInitializer {
 
     new Expectations(CseContext.getInstance()) {
       {
-        CseContext.getInstance().getMicroserviceMetaManager();
-        result = microserviceMetaManager;
-        microserviceMetaManager.values();
-        result = Arrays.asList(microserviceMeta);
         microserviceMeta.getOperations();
         result = Arrays.asList(operationMetaExecutor, operationMetaSameExecutor, operationMetaFixedThreadExecutor);
         operationMetaExecutor.getExecutor();
diff --git a/providers/provider-pojo/src/test/java/org/apache/servicecomb/provider/common/MockUtil.java b/providers/provider-pojo/src/test/java/org/apache/servicecomb/provider/common/MockUtil.java
index bea8107..d3e46c0 100644
--- a/providers/provider-pojo/src/test/java/org/apache/servicecomb/provider/common/MockUtil.java
+++ b/providers/provider-pojo/src/test/java/org/apache/servicecomb/provider/common/MockUtil.java
@@ -17,7 +17,6 @@
 
 package org.apache.servicecomb.provider.common;
 
-import org.apache.servicecomb.core.definition.MicroserviceMetaManager;
 import org.apache.servicecomb.foundation.common.utils.BeanUtils;
 import org.mockito.Mockito;
 import org.springframework.context.ApplicationContext;
@@ -26,7 +25,6 @@ import mockit.Mock;
 import mockit.MockUp;
 
 public class MockUtil {
-  MicroserviceMetaManager microserviceMetaManager = new MicroserviceMetaManager();
 
   private static MockUtil instance = new MockUtil();
 
diff --git a/transports/transport-highway/src/main/java/org/apache/servicecomb/transport/highway/HighwayServerInvoke.java b/transports/transport-highway/src/main/java/org/apache/servicecomb/transport/highway/HighwayServerInvoke.java
index fd82cca..d19ec8b 100644
--- a/transports/transport-highway/src/main/java/org/apache/servicecomb/transport/highway/HighwayServerInvoke.java
+++ b/transports/transport-highway/src/main/java/org/apache/servicecomb/transport/highway/HighwayServerInvoke.java
@@ -23,11 +23,10 @@ import org.apache.servicecomb.codec.protobuf.definition.OperationProtobuf;
 import org.apache.servicecomb.codec.protobuf.definition.ProtobufManager;
 import org.apache.servicecomb.codec.protobuf.utils.WrapSchema;
 import org.apache.servicecomb.core.Const;
-import org.apache.servicecomb.core.CseContext;
 import org.apache.servicecomb.core.Endpoint;
 import org.apache.servicecomb.core.Invocation;
+import org.apache.servicecomb.core.SCBEngine;
 import org.apache.servicecomb.core.definition.MicroserviceMeta;
-import org.apache.servicecomb.core.definition.MicroserviceMetaManager;
 import org.apache.servicecomb.core.definition.OperationMeta;
 import org.apache.servicecomb.core.definition.SchemaMeta;
 import org.apache.servicecomb.core.invocation.InvocationFactory;
@@ -45,8 +44,6 @@ import io.vertx.core.buffer.Buffer;
 public class HighwayServerInvoke {
   private static final Logger LOGGER = LoggerFactory.getLogger(HighwayServerInvoke.class);
 
-  private MicroserviceMetaManager microserviceMetaManager = CseContext.getInstance().getMicroserviceMetaManager();
-
   private ProtobufFeature protobufFeature;
 
   private RequestHeader header;
@@ -74,10 +71,6 @@ public class HighwayServerInvoke {
     this.protobufFeature = protobufFeature;
   }
 
-  public void setMicroserviceMetaManager(MicroserviceMetaManager microserviceMetaManager) {
-    this.microserviceMetaManager = microserviceMetaManager;
-  }
-
   public boolean init(TcpConnection connection, long msgId,
       RequestHeader header, Buffer bodyBuffer) {
     try {
@@ -103,7 +96,7 @@ public class HighwayServerInvoke {
     this.msgId = msgId;
     this.header = header;
 
-    MicroserviceMeta microserviceMeta = microserviceMetaManager.ensureFindValue(header.getDestMicroservice());
+    MicroserviceMeta microserviceMeta = SCBEngine.getInstance().getProducerMicroMeta();
     SchemaMeta schemaMeta = microserviceMeta.ensureFindSchemaMeta(header.getSchemaId());
     this.operationMeta = schemaMeta.ensureFindOperation(header.getOperationName());
     this.operationProtobuf = ProtobufManager.getOrCreateOperation(operationMeta);
diff --git a/transports/transport-highway/src/test/java/org/apache/servicecomb/transport/highway/TestHighwayServerConnection.java b/transports/transport-highway/src/test/java/org/apache/servicecomb/transport/highway/TestHighwayServerConnection.java
index 4f49fbc..1d2783f 100644
--- a/transports/transport-highway/src/test/java/org/apache/servicecomb/transport/highway/TestHighwayServerConnection.java
+++ b/transports/transport-highway/src/test/java/org/apache/servicecomb/transport/highway/TestHighwayServerConnection.java
@@ -16,17 +16,16 @@
  */
 package org.apache.servicecomb.transport.highway;
 
+import javax.xml.ws.Holder;
 import java.net.InetSocketAddress;
 import java.util.concurrent.atomic.AtomicInteger;
 
-import javax.xml.ws.Holder;
-
 import org.apache.servicecomb.codec.protobuf.definition.ProtobufManager;
 import org.apache.servicecomb.codec.protobuf.utils.WrapSchema;
 import org.apache.servicecomb.core.CseContext;
 import org.apache.servicecomb.core.Endpoint;
+import org.apache.servicecomb.core.SCBEngine;
 import org.apache.servicecomb.core.definition.MicroserviceMeta;
-import org.apache.servicecomb.core.definition.MicroserviceMetaManager;
 import org.apache.servicecomb.core.definition.OperationMeta;
 import org.apache.servicecomb.core.definition.SchemaMeta;
 import org.apache.servicecomb.foundation.vertx.stream.BufferOutputStream;
@@ -36,16 +35,17 @@ import org.junit.Assert;
 import org.junit.Before;
 import org.junit.Test;
 
+import mockit.Expectations;
+import mockit.Mock;
+import mockit.MockUp;
+import mockit.Mocked;
+
 import io.protostuff.LinkedBuffer;
 import io.protostuff.ProtobufOutput;
 import io.vertx.core.buffer.Buffer;
 import io.vertx.core.net.NetSocket;
 import io.vertx.core.net.impl.NetSocketImpl;
 import io.vertx.core.net.impl.SocketAddressImpl;
-import mockit.Expectations;
-import mockit.Mock;
-import mockit.MockUp;
-import mockit.Mocked;
 
 public class TestHighwayServerConnection {
   private static WrapSchema requestHeaderSchema =
@@ -57,9 +57,6 @@ public class TestHighwayServerConnection {
   HighwayServerConnection connection;
 
   @Mocked
-  MicroserviceMetaManager microserviceMetaManager;
-
-  @Mocked
   Endpoint endpoint;
 
   @Mocked
@@ -147,15 +144,14 @@ public class TestHighwayServerConnection {
     Buffer headerBuffer = createBuffer(requestHeaderSchema, header);
 
     Buffer bodyBuffer = Buffer.buffer();
-
-    new Expectations(CseContext.getInstance()) {
+    new Expectations(SCBEngine.class) {
       {
-        CseContext.getInstance().getMicroserviceMetaManager();
-        result = microserviceMetaManager;
-
-        microserviceMetaManager.ensureFindValue(null);
+        SCBEngine.getInstance().getProducerMicroMeta();
         result = microserviceMeta;
-
+      }
+    };
+    new Expectations(CseContext.getInstance()) {
+      {
         microserviceMeta.ensureFindSchemaMeta(header.getSchemaId());
         result = schemaMeta;
       }
diff --git a/transports/transport-highway/src/test/java/org/apache/servicecomb/transport/highway/TestHighwayServerInvoke.java b/transports/transport-highway/src/test/java/org/apache/servicecomb/transport/highway/TestHighwayServerInvoke.java
index 525b5e0..ecf8ddd 100644
--- a/transports/transport-highway/src/test/java/org/apache/servicecomb/transport/highway/TestHighwayServerInvoke.java
+++ b/transports/transport-highway/src/test/java/org/apache/servicecomb/transport/highway/TestHighwayServerInvoke.java
@@ -133,7 +133,7 @@ public class TestHighwayServerInvoke {
     operationMeta.setExecutor(new ReactiveExecutor());
 
     HighwayServerInvoke highwayServerInvoke = new HighwayServerInvoke();
-    highwayServerInvoke.setMicroserviceMetaManager(unitTestMeta.getMicroserviceMetaManager());
+//    highwayServerInvoke.setMicroserviceMetaManager(unitTestMeta.getMicroserviceMetaManager());
 
     RequestHeader requestHeader = MockUtil.getInstance().requestHeader;