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 2020/05/27 06:16:34 UTC

[servicecomb-java-chassis] branch master updated: [SCB-1940]rename api's package from foundation-registry to distinguish from service-center

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/servicecomb-java-chassis.git


The following commit(s) were added to refs/heads/master by this push:
     new 2ceb86a  [SCB-1940]rename api's package from foundation-registry to distinguish from service-center
2ceb86a is described below

commit 2ceb86ae3017ca276d42f45f8c52c5799130e8d0
Author: liubao <bi...@qq.com>
AuthorDate: Wed May 27 11:33:00 2020 +0800

    [SCB-1940]rename api's package from foundation-registry to distinguish from service-center
---
 .../common/rest/RestEngineSchemaListener.java      |  4 +-
 .../common/rest/locator/ServicePathManager.java    |  2 +-
 .../common/rest/TestRestProducerInvocation.java    |  2 +-
 .../rest/locator/TestServicePathManager.java       |  2 +-
 .../java/org/apache/servicecomb/core/Const.java    |  2 +-
 .../servicecomb/core/CseApplicationListener.java   |  4 +-
 .../java/org/apache/servicecomb/core/Endpoint.java |  2 +-
 .../org/apache/servicecomb/core/SCBEngine.java     | 14 +++----
 .../servicecomb/core/bootstrap/SCBBootstrap.java   |  5 +--
 .../core/bootup/ServiceInformationCollector.java   |  2 +-
 .../ConsumerMicroserviceVersionsMeta.java          |  2 +-
 .../servicecomb/core/definition/CoreMetaUtils.java |  6 +--
 .../core/definition/MicroserviceConfig.java        |  2 +-
 .../core/definition/MicroserviceMeta.java          |  2 +-
 .../core/definition/ServiceRegistryListener.java   | 14 +++----
 .../core/filter/EndpointDiscoveryFilter.java       |  8 ++--
 .../filter/OperationInstancesDiscoveryFilter.java  | 14 +++----
 .../handler/impl/SimpleLoadBalanceHandler.java     |  6 +--
 .../core/invocation/InvocationFactory.java         |  2 +-
 .../consumer/MicroserviceReferenceConfig.java      | 10 ++---
 .../provider/producer/ProducerBootListener.java    |  8 ++--
 .../provider/producer/ProducerProviderManager.java |  2 +-
 .../core/transport/AbstractTransport.java          |  2 +-
 .../core/transport/TransportManager.java           |  2 +-
 ...servicecomb.registry.discovery.DiscoveryFilter} |  0
 .../core/TestCseApplicationListener.java           |  5 +--
 .../org/apache/servicecomb/core/TestEndpoint.java  |  2 +-
 .../MicroServicePropertyExtendedStub.java          |  2 +-
 .../core/filter/TestEndpointDiscoveryFilter.java   |  4 +-
 .../handler/impl/TestSimpleLoadBalanceHandler.java |  6 +--
 .../core/transport/TestAbstractTransport.java      |  2 +-
 .../core/transport/TestTransportManager.java       |  2 +-
 .../servicecomb/demo/edge/consumer/Consumer.java   | 10 ++---
 .../demo/edge/model/ResultWithInstance.java        |  2 +-
 .../jaxrs/client/MultiErrorCodeServiceClient.java  | 10 ++---
 .../servicecomb/demo/CodeFirstRestTemplate.java    |  2 +-
 .../client/CodeFirstRestTemplateSpringmvc.java     |  2 +-
 .../springmvc/client/ConsumerTestsAfterBootup.java |  2 +-
 .../client/CustomEndpointDiscoveryFilter.java      |  8 ++--
 .../demo/springmvc/client/MicroserviceArray.java   |  2 +-
 .../demo/springmvc/client/TestDateTimeSchema.java  |  7 +---
 .../demo/springmvc/client/TestResponse.java        |  2 +-
 .../springmvc/server/ProducerTestsAfterBootup.java |  2 +-
 .../edge/core/CommonHttpEdgeDispatcher.java        |  6 +--
 .../edge/core/CompatiblePathVersionMapper.java     |  4 +-
 .../edge/core/TestCompatiblePathVersionMapper.java |  2 +-
 foundations/foundation-registry/pom.xml            |  4 ++
 .../DiscoveryManager.java                          | 20 ++++-----
 .../RegistrationManager.java                       | 14 +++----
 .../api/Discovery.java                             | 35 +++++++++++++---
 .../api/LifeCycle.java                             |  2 +-
 .../api/MicroserviceKey.java                       |  2 +-
 .../api/PropertyExtended.java                      |  2 +-
 .../api/Registration.java                          | 43 ++++++++++++++++---
 .../api/Versions.java                              |  2 +-
 .../api}/event/CreateMicroserviceEvent.java        |  4 +-
 .../api}/event/CreateMicroserviceVersionEvent.java |  4 +-
 .../api}/event/DestroyMicroserviceEvent.java       |  4 +-
 .../event/DestroyMicroserviceVersionEvent.java     |  4 +-
 .../event}/MicroserviceInstanceChangedEvent.java   |  8 ++--
 .../event/MicroserviceInstanceRegisteredEvent.java |  2 +-
 .../api/event/task}/ExceptionEvent.java            |  2 +-
 .../api/event/task}/HeartbeatFailEvent.java        |  2 +-
 .../api/event/task}/HeartbeatSuccEvent.java        |  2 +-
 .../api/event/task}/RecoveryEvent.java             |  2 +-
 .../api/event/task}/SafeModeChangeEvent.java       |  2 +-
 .../api/event/task}/ShutdownEvent.java             |  2 +-
 .../api/registry/BasePath.java                     |  2 +-
 .../api/registry/DataCenterInfo.java               |  2 +-
 .../api/registry}/FindInstancesResponse.java       |  4 +-
 .../api/registry/Framework.java                    |  2 +-
 .../api/registry/FrameworkVersions.java            |  4 +-
 .../api/registry/HealthCheck.java                  |  2 +-
 .../api/registry/HealthCheckMode.java              |  2 +-
 .../api/registry/Microservice.java                 |  4 +-
 .../api/registry/MicroserviceFactory.java          | 20 ++++-----
 .../api/registry/MicroserviceInstance.java         | 19 ++++-----
 .../api/registry/MicroserviceInstanceStatus.java   |  2 +-
 .../api/registry}/MicroserviceInstances.java       |  4 +-
 .../api/registry/MicroserviceStatus.java           |  2 +-
 .../api/registry/WatchAction.java                  |  2 +-
 .../cache/CacheEndpoint.java                       |  4 +-
 .../cache/InstanceCache.java                       |  6 +--
 .../cache/InstanceCacheManager.java                |  2 +-
 .../cache/InstanceCacheManagerNew.java             |  4 +-
 .../cache/MicroserviceInstanceCache.java           |  8 ++--
 .../config/AbstractPropertiesLoader.java           |  4 +-
 .../config/ConfigurePropertyUtils.java             |  6 +--
 .../config/InstancePropertiesLoader.java           |  2 +-
 .../config/MicroservicePropertiesLoader.java       |  2 +-
 .../config/ServiceRegistryCommonConfig.java        |  2 +-
 .../consumer/AppManager.java                       |  6 +--
 .../consumer/MicroserviceInstancePing.java         |  4 +-
 .../consumer/MicroserviceManager.java              |  6 +--
 .../consumer/MicroserviceVersion.java              | 14 +++----
 .../consumer/MicroserviceVersionRule.java          | 16 ++++----
 .../consumer/MicroserviceVersionRuleData.java      |  6 +--
 .../consumer/MicroserviceVersions.java             | 22 +++++-----
 .../consumer/SimpleMicroserviceInstancePing.java   |  4 +-
 .../consumer/StaticMicroserviceVersions.java       | 14 +++----
 .../definition/DefinitionConst.java                |  4 +-
 .../definition/MicroserviceDefinition.java         |  2 +-
 .../definition/MicroserviceNameParser.java         |  2 +-
 .../discovery/AbstractDiscoveryFilter.java         |  2 +-
 .../discovery/AbstractEndpointDiscoveryFilter.java |  4 +-
 .../discovery/DiscoveryContext.java                |  2 +-
 .../discovery/DiscoveryFilter.java                 |  2 +-
 .../discovery/DiscoveryTree.java                   |  4 +-
 .../discovery/DiscoveryTreeNode.java               |  2 +-
 .../discovery/InstanceStatusDiscoveryFilter.java   |  6 +--
 .../swagger/SwaggerLoader.java                     | 15 ++++---
 .../version/Version.java                           |  2 +-
 .../version/VersionRule.java                       |  2 +-
 .../version/VersionRuleFixedParser.java            |  2 +-
 .../version/VersionRuleLatestParser.java           |  4 +-
 .../version/VersionRuleParser.java                 |  2 +-
 .../version/VersionRuleRangeParser.java            |  2 +-
 .../version/VersionRuleStartFromParser.java        |  2 +-
 .../version/VersionRuleUtils.java                  |  2 +-
 .../version/VersionUtils.java                      |  2 +-
 ...comb.registry.consumer.MicroserviceInstancePing |  2 +-
 ...rviceregistry.consumer.MicroserviceInstancePing | 18 --------
 .../config/TestAbstractPropertiesLoader.java       | 48 ++++++++++++++++++++++
 .../discovery/TestAbstractDiscoveryFilter.java     |  5 ++-
 .../TestAbstractTransportDiscoveryFilter.java      |  7 +++-
 .../registry}/discovery/TestDiscoveryContext.java  |  4 +-
 .../registry}/discovery/TestDiscoveryTree.java     | 11 +++--
 .../registry}/discovery/TestDiscoveryTreeNode.java |  3 +-
 .../servicecomb/registry}/version/TestVersion.java |  3 +-
 .../registry}/version/TestVersionRule.java         |  4 +-
 .../version/TestVersionRuleFixedParser.java        |  2 +-
 .../version/TestVersionRuleLatestParser.java       |  4 +-
 .../version/TestVersionRuleRangeParser.java        |  2 +-
 .../version/TestVersionRuleStartFromParser.java    |  2 +-
 .../registry}/version/TestVersionRuleUtils.java    | 14 ++++---
 .../registry}/version/TestVersionUtils.java        |  4 +-
 .../registry}/version/VersionConst.java            |  4 +-
 .../servicecomb/loadbalance/Configuration.java     |  2 +-
 .../loadbalance/LoadbalanceHandler.java            |  6 +--
 .../loadbalance/ServiceCombLoadBalancerStats.java  |  4 +-
 .../servicecomb/loadbalance/ServiceCombServer.java |  4 +-
 .../loadbalance/event/IsolationServerEvent.java    |  2 +-
 .../filter/InstancePropertyDiscoveryFilter.java    |  8 ++--
 .../filter/IsolationDiscoveryFilter.java           |  8 ++--
 .../loadbalance/filter/ServerDiscoveryFilter.java  |  4 +-
 .../filter/ZoneAwareDiscoveryFilter.java           | 10 ++---
 ...servicecomb.registry.discovery.DiscoveryFilter} |  0
 .../loadbalance/TestLoadBalanceCreator.java        |  2 +-
 .../loadbalance/TestLoadBalanceHandler2.java       | 14 +++----
 .../servicecomb/loadbalance/TestLoadBalancer.java  |  3 +-
 .../loadbalance/TestLoadbalanceHandler.java        |  8 ++--
 .../TestServiceCombLoadBalancerStats.java          |  6 +--
 .../loadbalance/TestServiceCombServer.java         |  4 +-
 .../loadbalance/TestSessionSticknessRule.java      |  4 +-
 .../filter/IsolationDiscoveryFilterTest.java       |  8 ++--
 .../TestInstancePropertyDiscoveryFilter.java       |  6 +--
 .../filter/TestServerDiscoveryFilter.java          |  2 +-
 .../org/apache/servicecomb/AuthHandlerBoot.java    |  4 +-
 .../consumer/RSAConsumerTokenManager.java          |  2 +-
 .../authentication/provider/AccessController.java  |  2 +-
 .../provider/RSAProviderTokenManager.java          |  6 +--
 .../authentication/TestAccessController.java       |  2 +-
 .../authentication/TestAuthHandlerBoot.java        |  5 +--
 .../TestRSAProviderTokenManager.java               | 10 ++---
 .../router/custom/MicroserviceCache.java           |  4 +-
 .../router/custom/RouterServerListFilter.java      |  2 +-
 .../custom/ServiceCombCanaryDistributer.java       |  2 +-
 .../router/util/VersionCompareUtil.java            |  2 +-
 .../servicestage/CasEnvVariablesAdapter.java       |  2 +-
 .../servicestage/TestEnvVariablesAdapter.java      |  2 +-
 .../inspector/internal/InspectorBootListener.java  |  2 +-
 .../inspector/internal/InspectorImpl.java          |  4 +-
 .../inspector/internal/TestInspectorImpl.java      |  6 +--
 .../org/apache/servicecomb/it/CommandReceiver.java |  2 +-
 .../java/org/apache/servicecomb/it/ITUtils.java    |  6 +--
 .../servicecomb/it/deploy/MicroserviceDeploy.java  |  6 +--
 .../it/extend/engine/GateRestTemplate.java         | 10 ++---
 .../it/extend/engine/ITSCBAsyncRestTemplate.java   | 12 +++---
 .../it/extend/engine/ITSCBRestTemplate.java        |  6 +--
 .../thirdparty/Test3rdPartyInvocation.java         |  2 +-
 .../servicecomb/it/edge/PreLoadBootListener.java   |  6 +--
 .../metrics/core/TestMetricsBootListener.java      |  4 +-
 .../metrics/prometheus/PrometheusPublisher.java    |  2 +-
 .../prometheus/TestPrometheusPublisher.java        |  2 +-
 .../servicecomb/provider/pojo/TestInvoker.java     |  2 +-
 .../reference/TestCseClientHttpRequest.java        |  3 +-
 .../async/CseAsyncClientHttpRequestTest.java       |  2 +-
 .../servicecomb/localregistry/LocalDiscovery.java  |  8 ++--
 .../localregistry/LocalRegistration.java           | 12 +++---
 .../localregistry/LocalRegistryStore.java          | 14 +++----
 ... org.apache.servicecomb.registry.api.Discovery} |  0
 ...g.apache.servicecomb.registry.api.Registration} |  0
 .../servicecomb/serviceregistry/RegistryUtils.java | 13 +++---
 .../serviceregistry/ServiceCenterDiscovery.java    |  8 ++--
 .../serviceregistry/ServiceCenterRegistration.java | 10 ++---
 .../serviceregistry/ServiceRegistry.java           |  9 ++--
 .../serviceregistry/adapter/EnvAdapter.java        |  4 +-
 .../serviceregistry/adapter/EnvAdapterManager.java |  4 +-
 .../api/registry/ServiceCombVersion.java           |  2 +-
 .../api/request/CreateServiceRequest.java          |  2 +-
 .../api/request/RegisterInstanceRequest.java       |  2 +-
 .../api/response/GetAllServicesResponse.java       |  2 +-
 .../api/response/GetInstancesResponse.java         |  2 +-
 .../api/response/GetServiceResponse.java           |  2 +-
 .../api/response/MicroserviceInstanceResponse.java |  2 +-
 .../serviceregistry/client/Endpoints.java          |  2 +-
 .../serviceregistry/client/IpPortManager.java      | 12 +++---
 .../client/ServiceRegistryClient.java              | 10 ++---
 .../client/http/ServiceRegistryClientImpl.java     | 11 ++---
 .../diagnosis/instance/InstanceCacheCheckTask.java |  2 +-
 .../diagnosis/instance/InstanceCacheChecker.java   | 14 +++----
 .../diagnosis/instance/InstanceCacheResult.java    |  2 +-
 .../registry/AbstractServiceRegistry.java          | 32 +++++++--------
 .../registry/RemoteServiceRegistry.java            |  2 +-
 .../registry/ServiceRegistryFactory.java           |  2 +-
 .../registry/cache/AggregateMicroserviceCache.java |  2 +-
 .../registry/cache/MicroserviceCache.java          |  2 +-
 .../registry/cache/MicroserviceCacheKey.java       |  4 +-
 .../cache/RefreshableMicroserviceCache.java        | 14 +++----
 .../cache/RefreshableServiceRegistryCache.java     |  6 +--
 .../serviceregistry/task/AbstractRegisterTask.java |  2 +-
 .../serviceregistry/task/AbstractTask.java         |  2 +-
 .../task/MicroserviceInstanceHeartbeatTask.java    |  8 ++--
 .../task/MicroserviceInstanceRegisterTask.java     |  6 +--
 .../task/MicroserviceRegisterTask.java             |  2 +-
 .../task/MicroserviceServiceCenterTask.java        |  2 +-
 .../task/MicroserviceWatchTask.java                |  8 ++--
 .../serviceregistry/task/ServiceCenterTask.java    |  4 +-
 ... org.apache.servicecomb.registry.api.Discovery} |  0
 ...g.apache.servicecomb.registry.api.Registration} |  0
 ...> org.apache.servicecomb.registry.api.Versions} |  0
 ...servicecomb.registry.discovery.DiscoveryFilter} |  2 +-
 ...ecomb.serviceregistry.discovery.DiscoveryFilter | 18 --------
 .../MicroServicePropertyExtendedStub.java          |  2 +-
 .../serviceregistry/MockMicroserviceVersions.java  | 15 +++----
 .../serviceregistry/RegistryUtilsTest.java         |  4 +-
 .../servicecomb/serviceregistry/TestConsumers.java | 17 ++++----
 .../servicecomb/serviceregistry/TestRegistry.java  |  8 ++--
 .../serviceregistry/TestRegistryBase.java          |  8 ++--
 .../adapter/CasEnvAdapterHighOne.java              |  4 +-
 .../serviceregistry/adapter/CasEnvAdapterOne.java  |  4 +-
 .../serviceregistry/adapter/CasEnvAdapterTwo.java  |  4 +-
 .../adapter/TestEnvAdapterManager.java             |  4 +-
 .../serviceregistry/api/TestMicroserviceKey.java   |  1 +
 .../serviceregistry/api/registry/TestBasePath.java |  1 +
 .../api/registry/TestFramework.java                |  1 +
 .../api/registry/TestFrameworkVersions.java        |  1 +
 .../api/registry/TestHealthCheck.java              |  2 +
 .../api/registry/TestMicroService.java             |  4 ++
 .../api/registry/TestMicroServiceInstance.java     |  3 ++
 .../api/registry/TestMicroserviceFactory.java      |  8 ++--
 .../api/request/TestCreateServiceRequest.java      |  2 +-
 .../api/request/TestRegisterInstanceRequest.java   |  2 +-
 .../api/response/TestFindInstancesResponse.java    |  3 +-
 .../api/response/TestGetAllServicesResponse.java   |  2 +-
 .../api/response/TestGetInstancesResponse.java     |  2 +-
 .../api/response/TestGetServiceResponse.java       |  2 +-
 .../TestMicroserviceInstanceChangedEvent.java      |  7 ++--
 .../response/TestMicroserviceInstanceResponse.java |  2 +-
 .../serviceregistry/cache/TestInstanceCache.java   |  6 ++-
 .../cache/TestInstanceCacheManagerNew.java         |  7 ++--
 .../cache/TestMicroserviceInstanceCache.java       |  7 ++--
 .../client/LocalServiceRegistryClientImpl.java     | 22 +++++-----
 .../client/LocalServiceRegistryClientImplTest.java | 10 ++---
 .../serviceregistry/client/TestEndpoints.java      |  2 +-
 .../serviceregistry/client/TestIpPortManager.java  |  9 ++--
 .../client/http/TestClientHttp.java                |  4 +-
 .../client/http/TestMicroserviceInstances.java     |  5 ++-
 .../client/http/TestServiceRegistryClientImpl.java |  7 ++--
 .../config/TestConfigurePropertyUtils.java         |  5 ++-
 .../config/TestPropertiesLoader.java               | 30 +++-----------
 .../consumer/TestMicroserviceVersionRuleFixed.java |  1 +
 .../TestMicroserviceVersionRuleLatest.java         |  3 +-
 .../consumer/TestMicroserviceVersionRuleRange.java |  1 +
 .../TestMicroserviceVersionRuleStartFrom.java      |  1 +
 .../TestSimpleMicroserviceInstancePing.java        |  3 +-
 .../instance/TestInstanceCacheCheckerMock.java     | 14 +++----
 .../TestInstanceCacheCheckerWithoutMock.java       |  6 +--
 .../registry/EmptyMockServiceRegistry.java         |  6 +--
 .../registry/LocalServiceRegistry.java             |  2 +-
 .../registry/LocalServiceRegistryFactory.java      |  2 +-
 .../registry/TestLocalServiceRegistry.java         |  2 +-
 .../registry/TestRemoteServiceRegistry.java        |  4 +-
 .../registry/TestServiceRegistryFactory.java       |  2 +-
 .../cache/AggregateMicroserviceCacheTest.java      |  2 +-
 .../registry/cache/MockedMicroserviceCache.java    |  4 +-
 .../cache/RefreshableMicroserviceCacheTest.java    | 12 +++---
 .../cache/RefreshableServiceRegistryCacheTest.java |  6 +--
 .../serviceregistry/swagger/TestSwaggerLoader.java |  4 +-
 .../task/TestAbstractRegisterTask.java             |  4 +-
 .../TestMicroserviceInstanceHeartbeatTask.java     |  4 +-
 .../task/TestMicroserviceInstanceRegisterTask.java | 10 ++---
 .../task/TestMicroserviceRegisterTask.java         |  4 +-
 .../task/TestMicroserviceWatchTask.java            | 12 +++---
 .../task/TestServiceCenterTask.java                |  2 +-
 .../servicecomb/zeroconfig/client/ClientUtil.java  |  6 +--
 .../client/ZeroConfigRegistryClientImpl.java       | 20 ++++-----
 .../client/TestZeroConfigRegistryClientImpl.java   |  8 ++--
 .../springboot/common/AbstractDiscoveryClient.java | 10 ++---
 .../springboot/common/InstanceDiscoveryFilter.java |  8 ++--
 .../ScbRibbonEndpointDiscoveryFilter.java          |  8 ++--
 .../starter/discovery/ServiceCombServerList.java   |  6 +--
 .../rest/client/http/RestClientInvocation.java     |  2 +-
 .../rest/client/http/TestRestClientInvocation.java |  2 +-
 .../rest/servlet/ServletRestTransport.java         |  2 +-
 .../transport/rest/servlet/ServletUtils.java       |  2 +-
 .../rest/servlet/TestServletRestTransport.java     |  2 +-
 .../transport/rest/servlet/TestServletUtils.java   |  2 +-
 308 files changed, 886 insertions(+), 794 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 9a3e5f4..50bcde5 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
@@ -22,8 +22,8 @@ import org.apache.servicecomb.core.BootListener;
 import org.apache.servicecomb.core.definition.CoreMetaUtils;
 import org.apache.servicecomb.core.definition.MicroserviceMeta;
 import org.apache.servicecomb.foundation.common.event.EnableExceptionPropagation;
-import org.apache.servicecomb.serviceregistry.consumer.MicroserviceVersion;
-import org.apache.servicecomb.serviceregistry.event.CreateMicroserviceVersionEvent;
+import org.apache.servicecomb.registry.consumer.MicroserviceVersion;
+import org.apache.servicecomb.registry.api.event.CreateMicroserviceVersionEvent;
 
 import com.google.common.eventbus.Subscribe;
 
diff --git a/common/common-rest/src/main/java/org/apache/servicecomb/common/rest/locator/ServicePathManager.java b/common/common-rest/src/main/java/org/apache/servicecomb/common/rest/locator/ServicePathManager.java
index bf95427..28656da 100644
--- a/common/common-rest/src/main/java/org/apache/servicecomb/common/rest/locator/ServicePathManager.java
+++ b/common/common-rest/src/main/java/org/apache/servicecomb/common/rest/locator/ServicePathManager.java
@@ -25,7 +25,7 @@ import org.apache.servicecomb.core.definition.MicroserviceMeta;
 import org.apache.servicecomb.core.definition.OperationMeta;
 import org.apache.servicecomb.core.definition.SchemaMeta;
 import org.apache.servicecomb.foundation.common.utils.ClassLoaderScopeContext;
-import org.apache.servicecomb.serviceregistry.definition.DefinitionConst;
+import org.apache.servicecomb.registry.definition.DefinitionConst;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 import org.springframework.util.StringUtils;
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 d303efc..b0d6eeb 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
@@ -38,7 +38,7 @@ import org.apache.servicecomb.foundation.test.scaffolding.config.ArchaiusUtils;
 import org.apache.servicecomb.foundation.vertx.http.AbstractHttpServletRequest;
 import org.apache.servicecomb.foundation.vertx.http.HttpServletRequestEx;
 import org.apache.servicecomb.foundation.vertx.http.HttpServletResponseEx;
-import org.apache.servicecomb.serviceregistry.api.registry.Microservice;
+import org.apache.servicecomb.registry.api.registry.Microservice;
 import org.apache.servicecomb.swagger.invocation.exception.InvocationException;
 import org.junit.AfterClass;
 import org.junit.Assert;
diff --git a/common/common-rest/src/test/java/org/apache/servicecomb/common/rest/locator/TestServicePathManager.java b/common/common-rest/src/test/java/org/apache/servicecomb/common/rest/locator/TestServicePathManager.java
index 3b4a2de..99ec24a 100644
--- a/common/common-rest/src/test/java/org/apache/servicecomb/common/rest/locator/TestServicePathManager.java
+++ b/common/common-rest/src/test/java/org/apache/servicecomb/common/rest/locator/TestServicePathManager.java
@@ -22,7 +22,7 @@ import org.apache.servicecomb.core.SCBEngine;
 import org.apache.servicecomb.core.bootstrap.SCBBootstrap;
 import org.apache.servicecomb.foundation.common.utils.ClassLoaderScopeContext;
 import org.apache.servicecomb.foundation.test.scaffolding.config.ArchaiusUtils;
-import org.apache.servicecomb.serviceregistry.definition.DefinitionConst;
+import org.apache.servicecomb.registry.definition.DefinitionConst;
 import org.junit.After;
 import org.junit.Assert;
 import org.junit.Before;
diff --git a/core/src/main/java/org/apache/servicecomb/core/Const.java b/core/src/main/java/org/apache/servicecomb/core/Const.java
index 520edf4..fc90ac0 100644
--- a/core/src/main/java/org/apache/servicecomb/core/Const.java
+++ b/core/src/main/java/org/apache/servicecomb/core/Const.java
@@ -17,7 +17,7 @@
 
 package org.apache.servicecomb.core;
 
-import org.apache.servicecomb.serviceregistry.definition.DefinitionConst;
+import org.apache.servicecomb.registry.definition.DefinitionConst;
 
 public final class Const {
   private Const() {
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 6a3f6c4..5da2045 100644
--- a/core/src/main/java/org/apache/servicecomb/core/CseApplicationListener.java
+++ b/core/src/main/java/org/apache/servicecomb/core/CseApplicationListener.java
@@ -19,8 +19,8 @@ package org.apache.servicecomb.core;
 
 import org.apache.servicecomb.foundation.common.utils.BeanUtils;
 import org.apache.servicecomb.foundation.vertx.client.http.HttpClients;
-import org.apache.servicecomb.serviceregistry.DiscoveryManager;
-import org.apache.servicecomb.serviceregistry.RegistrationManager;
+import org.apache.servicecomb.registry.DiscoveryManager;
+import org.apache.servicecomb.registry.RegistrationManager;
 import org.springframework.beans.BeansException;
 import org.springframework.context.ApplicationContext;
 import org.springframework.context.ApplicationContextAware;
diff --git a/core/src/main/java/org/apache/servicecomb/core/Endpoint.java b/core/src/main/java/org/apache/servicecomb/core/Endpoint.java
index b432756..97ada45 100644
--- a/core/src/main/java/org/apache/servicecomb/core/Endpoint.java
+++ b/core/src/main/java/org/apache/servicecomb/core/Endpoint.java
@@ -17,7 +17,7 @@
 
 package org.apache.servicecomb.core;
 
-import org.apache.servicecomb.serviceregistry.api.registry.MicroserviceInstance;
+import org.apache.servicecomb.registry.api.registry.MicroserviceInstance;
 
 /**
  * Endpoint : 表示一个Endpoint。Transport识别其内部格式.
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 bde8a37..ac8b860 100644
--- a/core/src/main/java/org/apache/servicecomb/core/SCBEngine.java
+++ b/core/src/main/java/org/apache/servicecomb/core/SCBEngine.java
@@ -52,13 +52,13 @@ import org.apache.servicecomb.foundation.common.event.EventManager;
 import org.apache.servicecomb.foundation.common.utils.SPIServiceUtils;
 import org.apache.servicecomb.foundation.vertx.VertxUtils;
 import org.apache.servicecomb.foundation.vertx.client.http.HttpClients;
-import org.apache.servicecomb.serviceregistry.DiscoveryManager;
-import org.apache.servicecomb.serviceregistry.RegistrationManager;
-import org.apache.servicecomb.serviceregistry.api.registry.MicroserviceInstanceStatus;
-import org.apache.servicecomb.serviceregistry.consumer.MicroserviceVersions;
-import org.apache.servicecomb.serviceregistry.definition.MicroserviceNameParser;
-import org.apache.servicecomb.serviceregistry.event.MicroserviceInstanceRegisteredEvent;
-import org.apache.servicecomb.serviceregistry.swagger.SwaggerLoader;
+import org.apache.servicecomb.registry.DiscoveryManager;
+import org.apache.servicecomb.registry.RegistrationManager;
+import org.apache.servicecomb.registry.api.registry.MicroserviceInstanceStatus;
+import org.apache.servicecomb.registry.consumer.MicroserviceVersions;
+import org.apache.servicecomb.registry.definition.MicroserviceNameParser;
+import org.apache.servicecomb.registry.api.event.MicroserviceInstanceRegisteredEvent;
+import org.apache.servicecomb.registry.swagger.SwaggerLoader;
 import org.apache.servicecomb.swagger.engine.SwaggerEnvironment;
 import org.apache.servicecomb.swagger.invocation.exception.InvocationException;
 import org.slf4j.Logger;
diff --git a/core/src/main/java/org/apache/servicecomb/core/bootstrap/SCBBootstrap.java b/core/src/main/java/org/apache/servicecomb/core/bootstrap/SCBBootstrap.java
index 389989c..1967e56 100644
--- a/core/src/main/java/org/apache/servicecomb/core/bootstrap/SCBBootstrap.java
+++ b/core/src/main/java/org/apache/servicecomb/core/bootstrap/SCBBootstrap.java
@@ -17,9 +17,8 @@
 package org.apache.servicecomb.core.bootstrap;
 
 import org.apache.servicecomb.core.SCBEngine;
-import org.apache.servicecomb.foundation.common.utils.BeanUtils;
-import org.apache.servicecomb.serviceregistry.DiscoveryManager;
-import org.apache.servicecomb.serviceregistry.RegistrationManager;
+import org.apache.servicecomb.registry.DiscoveryManager;
+import org.apache.servicecomb.registry.RegistrationManager;
 
 public class SCBBootstrap {
   public static SCBEngine createSCBEngineForTest() {
diff --git a/core/src/main/java/org/apache/servicecomb/core/bootup/ServiceInformationCollector.java b/core/src/main/java/org/apache/servicecomb/core/bootup/ServiceInformationCollector.java
index a9b19e5..f4c347b 100644
--- a/core/src/main/java/org/apache/servicecomb/core/bootup/ServiceInformationCollector.java
+++ b/core/src/main/java/org/apache/servicecomb/core/bootup/ServiceInformationCollector.java
@@ -17,7 +17,7 @@
 
 package org.apache.servicecomb.core.bootup;
 
-import org.apache.servicecomb.serviceregistry.RegistrationManager;
+import org.apache.servicecomb.registry.RegistrationManager;
 
 import io.vertx.core.spi.json.JsonCodec;
 
diff --git a/core/src/main/java/org/apache/servicecomb/core/definition/ConsumerMicroserviceVersionsMeta.java b/core/src/main/java/org/apache/servicecomb/core/definition/ConsumerMicroserviceVersionsMeta.java
index 5a3a1a4..4db23b2 100644
--- a/core/src/main/java/org/apache/servicecomb/core/definition/ConsumerMicroserviceVersionsMeta.java
+++ b/core/src/main/java/org/apache/servicecomb/core/definition/ConsumerMicroserviceVersionsMeta.java
@@ -18,7 +18,7 @@ package org.apache.servicecomb.core.definition;
 
 import org.apache.servicecomb.core.SCBEngine;
 import org.apache.servicecomb.core.provider.consumer.MicroserviceReferenceConfig;
-import org.apache.servicecomb.serviceregistry.consumer.MicroserviceVersions;
+import org.apache.servicecomb.registry.consumer.MicroserviceVersions;
 
 public class ConsumerMicroserviceVersionsMeta extends MicroserviceVersionsMeta {
   private MicroserviceVersions microserviceVersions;
diff --git a/core/src/main/java/org/apache/servicecomb/core/definition/CoreMetaUtils.java b/core/src/main/java/org/apache/servicecomb/core/definition/CoreMetaUtils.java
index 08fbf11..df4bd49 100644
--- a/core/src/main/java/org/apache/servicecomb/core/definition/CoreMetaUtils.java
+++ b/core/src/main/java/org/apache/servicecomb/core/definition/CoreMetaUtils.java
@@ -16,12 +16,10 @@
  */
 package org.apache.servicecomb.core.definition;
 
-import org.apache.servicecomb.core.Const;
 import org.apache.servicecomb.core.Invocation;
-import org.apache.servicecomb.serviceregistry.consumer.MicroserviceVersion;
-import org.apache.servicecomb.serviceregistry.consumer.MicroserviceVersions;
+import org.apache.servicecomb.registry.consumer.MicroserviceVersion;
+import org.apache.servicecomb.registry.consumer.MicroserviceVersions;
 import org.apache.servicecomb.swagger.engine.SwaggerProducer;
-import org.apache.servicecomb.swagger.engine.SwaggerProducerOperation;
 
 public final class CoreMetaUtils {
   public static final String CORE_MICROSERVICE_VERSIONS_META = "scb_microservice_versions_meta";
diff --git a/core/src/main/java/org/apache/servicecomb/core/definition/MicroserviceConfig.java b/core/src/main/java/org/apache/servicecomb/core/definition/MicroserviceConfig.java
index 795a289..82a675e 100644
--- a/core/src/main/java/org/apache/servicecomb/core/definition/MicroserviceConfig.java
+++ b/core/src/main/java/org/apache/servicecomb/core/definition/MicroserviceConfig.java
@@ -18,7 +18,7 @@ package org.apache.servicecomb.core.definition;
 
 import org.apache.servicecomb.config.inject.InjectProperties;
 import org.apache.servicecomb.config.inject.InjectProperty;
-import org.apache.servicecomb.serviceregistry.version.VersionRuleUtils;
+import org.apache.servicecomb.registry.version.VersionRuleUtils;
 
 @InjectProperties(prefix = "servicecomb")
 public class MicroserviceConfig {
diff --git a/core/src/main/java/org/apache/servicecomb/core/definition/MicroserviceMeta.java b/core/src/main/java/org/apache/servicecomb/core/definition/MicroserviceMeta.java
index a5c15dc..e782b19 100644
--- a/core/src/main/java/org/apache/servicecomb/core/definition/MicroserviceMeta.java
+++ b/core/src/main/java/org/apache/servicecomb/core/definition/MicroserviceMeta.java
@@ -26,7 +26,7 @@ import java.util.Map;
 import org.apache.servicecomb.core.Handler;
 import org.apache.servicecomb.core.SCBEngine;
 import org.apache.servicecomb.foundation.common.VendorExtensions;
-import org.apache.servicecomb.serviceregistry.definition.MicroserviceNameParser;
+import org.apache.servicecomb.registry.definition.MicroserviceNameParser;
 import org.apache.servicecomb.swagger.SwaggerUtils;
 
 import io.swagger.models.Swagger;
diff --git a/core/src/main/java/org/apache/servicecomb/core/definition/ServiceRegistryListener.java b/core/src/main/java/org/apache/servicecomb/core/definition/ServiceRegistryListener.java
index 5077234..a4ca35a 100644
--- a/core/src/main/java/org/apache/servicecomb/core/definition/ServiceRegistryListener.java
+++ b/core/src/main/java/org/apache/servicecomb/core/definition/ServiceRegistryListener.java
@@ -27,13 +27,13 @@ import org.apache.servicecomb.core.Handler;
 import org.apache.servicecomb.core.SCBEngine;
 import org.apache.servicecomb.foundation.common.event.EnableExceptionPropagation;
 import org.apache.servicecomb.foundation.common.event.SubscriberOrder;
-import org.apache.servicecomb.serviceregistry.api.registry.Microservice;
-import org.apache.servicecomb.serviceregistry.consumer.MicroserviceVersion;
-import org.apache.servicecomb.serviceregistry.consumer.MicroserviceVersions;
-import org.apache.servicecomb.serviceregistry.definition.DefinitionConst;
-import org.apache.servicecomb.serviceregistry.event.CreateMicroserviceEvent;
-import org.apache.servicecomb.serviceregistry.event.CreateMicroserviceVersionEvent;
-import org.apache.servicecomb.serviceregistry.event.DestroyMicroserviceEvent;
+import org.apache.servicecomb.registry.api.registry.Microservice;
+import org.apache.servicecomb.registry.consumer.MicroserviceVersion;
+import org.apache.servicecomb.registry.consumer.MicroserviceVersions;
+import org.apache.servicecomb.registry.definition.DefinitionConst;
+import org.apache.servicecomb.registry.api.event.CreateMicroserviceEvent;
+import org.apache.servicecomb.registry.api.event.CreateMicroserviceVersionEvent;
+import org.apache.servicecomb.registry.api.event.DestroyMicroserviceEvent;
 
 import com.google.common.eventbus.Subscribe;
 
diff --git a/core/src/main/java/org/apache/servicecomb/core/filter/EndpointDiscoveryFilter.java b/core/src/main/java/org/apache/servicecomb/core/filter/EndpointDiscoveryFilter.java
index 34c28e2..03ef853 100644
--- a/core/src/main/java/org/apache/servicecomb/core/filter/EndpointDiscoveryFilter.java
+++ b/core/src/main/java/org/apache/servicecomb/core/filter/EndpointDiscoveryFilter.java
@@ -21,10 +21,10 @@ import org.apache.servicecomb.core.Endpoint;
 import org.apache.servicecomb.core.Invocation;
 import org.apache.servicecomb.core.SCBEngine;
 import org.apache.servicecomb.core.Transport;
-import org.apache.servicecomb.serviceregistry.api.registry.MicroserviceInstance;
-import org.apache.servicecomb.serviceregistry.discovery.AbstractEndpointDiscoveryFilter;
-import org.apache.servicecomb.serviceregistry.discovery.DiscoveryContext;
-import org.apache.servicecomb.serviceregistry.discovery.DiscoveryTreeNode;
+import org.apache.servicecomb.registry.api.registry.MicroserviceInstance;
+import org.apache.servicecomb.registry.discovery.AbstractEndpointDiscoveryFilter;
+import org.apache.servicecomb.registry.discovery.DiscoveryContext;
+import org.apache.servicecomb.registry.discovery.DiscoveryTreeNode;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
diff --git a/core/src/main/java/org/apache/servicecomb/core/filter/OperationInstancesDiscoveryFilter.java b/core/src/main/java/org/apache/servicecomb/core/filter/OperationInstancesDiscoveryFilter.java
index de6e488..a728874 100644
--- a/core/src/main/java/org/apache/servicecomb/core/filter/OperationInstancesDiscoveryFilter.java
+++ b/core/src/main/java/org/apache/servicecomb/core/filter/OperationInstancesDiscoveryFilter.java
@@ -29,13 +29,13 @@ import org.apache.servicecomb.core.definition.CoreMetaUtils;
 import org.apache.servicecomb.core.definition.MicroserviceMeta;
 import org.apache.servicecomb.core.definition.OperationMeta;
 import org.apache.servicecomb.foundation.common.concurrent.ConcurrentHashMapEx;
-import org.apache.servicecomb.serviceregistry.api.registry.MicroserviceInstance;
-import org.apache.servicecomb.serviceregistry.consumer.MicroserviceVersion;
-import org.apache.servicecomb.serviceregistry.discovery.AbstractDiscoveryFilter;
-import org.apache.servicecomb.serviceregistry.discovery.DiscoveryContext;
-import org.apache.servicecomb.serviceregistry.discovery.DiscoveryTreeNode;
-import org.apache.servicecomb.serviceregistry.version.VersionRule;
-import org.apache.servicecomb.serviceregistry.version.VersionRuleUtils;
+import org.apache.servicecomb.registry.api.registry.MicroserviceInstance;
+import org.apache.servicecomb.registry.consumer.MicroserviceVersion;
+import org.apache.servicecomb.registry.discovery.AbstractDiscoveryFilter;
+import org.apache.servicecomb.registry.discovery.DiscoveryContext;
+import org.apache.servicecomb.registry.discovery.DiscoveryTreeNode;
+import org.apache.servicecomb.registry.version.VersionRule;
+import org.apache.servicecomb.registry.version.VersionRuleUtils;
 
 import com.netflix.config.DynamicPropertyFactory;
 
diff --git a/core/src/main/java/org/apache/servicecomb/core/handler/impl/SimpleLoadBalanceHandler.java b/core/src/main/java/org/apache/servicecomb/core/handler/impl/SimpleLoadBalanceHandler.java
index 0618b35..fdda1c2 100644
--- a/core/src/main/java/org/apache/servicecomb/core/handler/impl/SimpleLoadBalanceHandler.java
+++ b/core/src/main/java/org/apache/servicecomb/core/handler/impl/SimpleLoadBalanceHandler.java
@@ -28,9 +28,9 @@ import org.apache.servicecomb.core.exception.ExceptionUtils;
 import org.apache.servicecomb.core.filter.EndpointDiscoveryFilter;
 import org.apache.servicecomb.foundation.common.cache.VersionedCache;
 import org.apache.servicecomb.foundation.common.concurrent.ConcurrentHashMapEx;
-import org.apache.servicecomb.serviceregistry.discovery.DiscoveryContext;
-import org.apache.servicecomb.serviceregistry.discovery.DiscoveryFilter;
-import org.apache.servicecomb.serviceregistry.discovery.DiscoveryTree;
+import org.apache.servicecomb.registry.discovery.DiscoveryContext;
+import org.apache.servicecomb.registry.discovery.DiscoveryFilter;
+import org.apache.servicecomb.registry.discovery.DiscoveryTree;
 import org.apache.servicecomb.swagger.invocation.AsyncResponse;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
diff --git a/core/src/main/java/org/apache/servicecomb/core/invocation/InvocationFactory.java b/core/src/main/java/org/apache/servicecomb/core/invocation/InvocationFactory.java
index 0eab6ac..5d4ee82 100644
--- a/core/src/main/java/org/apache/servicecomb/core/invocation/InvocationFactory.java
+++ b/core/src/main/java/org/apache/servicecomb/core/invocation/InvocationFactory.java
@@ -26,7 +26,7 @@ import org.apache.servicecomb.core.SCBEngine;
 import org.apache.servicecomb.core.definition.InvocationRuntimeType;
 import org.apache.servicecomb.core.definition.OperationMeta;
 import org.apache.servicecomb.core.provider.consumer.ReferenceConfig;
-import org.apache.servicecomb.serviceregistry.RegistrationManager;
+import org.apache.servicecomb.registry.RegistrationManager;
 
 public final class InvocationFactory {
   private InvocationFactory() {
diff --git a/core/src/main/java/org/apache/servicecomb/core/provider/consumer/MicroserviceReferenceConfig.java b/core/src/main/java/org/apache/servicecomb/core/provider/consumer/MicroserviceReferenceConfig.java
index 82af266..d267047 100644
--- a/core/src/main/java/org/apache/servicecomb/core/provider/consumer/MicroserviceReferenceConfig.java
+++ b/core/src/main/java/org/apache/servicecomb/core/provider/consumer/MicroserviceReferenceConfig.java
@@ -23,11 +23,11 @@ import org.apache.servicecomb.core.definition.ConsumerMicroserviceVersionsMeta;
 import org.apache.servicecomb.core.definition.CoreMetaUtils;
 import org.apache.servicecomb.core.definition.MicroserviceMeta;
 import org.apache.servicecomb.core.definition.OperationMeta;
-import org.apache.servicecomb.serviceregistry.DiscoveryManager;
-import org.apache.servicecomb.serviceregistry.consumer.MicroserviceVersion;
-import org.apache.servicecomb.serviceregistry.consumer.MicroserviceVersionRule;
-import org.apache.servicecomb.serviceregistry.consumer.MicroserviceVersions;
-import org.apache.servicecomb.serviceregistry.consumer.StaticMicroserviceVersions;
+import org.apache.servicecomb.registry.DiscoveryManager;
+import org.apache.servicecomb.registry.consumer.MicroserviceVersion;
+import org.apache.servicecomb.registry.consumer.MicroserviceVersionRule;
+import org.apache.servicecomb.registry.consumer.MicroserviceVersions;
+import org.apache.servicecomb.registry.consumer.StaticMicroserviceVersions;
 
 /**
  * <pre>
diff --git a/core/src/main/java/org/apache/servicecomb/core/provider/producer/ProducerBootListener.java b/core/src/main/java/org/apache/servicecomb/core/provider/producer/ProducerBootListener.java
index ca65112..0c0a573 100644
--- a/core/src/main/java/org/apache/servicecomb/core/provider/producer/ProducerBootListener.java
+++ b/core/src/main/java/org/apache/servicecomb/core/provider/producer/ProducerBootListener.java
@@ -29,10 +29,10 @@ import org.apache.servicecomb.core.definition.OperationMeta;
 import org.apache.servicecomb.core.definition.SchemaMeta;
 import org.apache.servicecomb.foundation.common.utils.ClassLoaderScopeContext;
 import org.apache.servicecomb.foundation.common.utils.IOUtils;
-import org.apache.servicecomb.serviceregistry.RegistrationManager;
-import org.apache.servicecomb.serviceregistry.api.registry.BasePath;
-import org.apache.servicecomb.serviceregistry.api.registry.Microservice;
-import org.apache.servicecomb.serviceregistry.definition.DefinitionConst;
+import org.apache.servicecomb.registry.RegistrationManager;
+import org.apache.servicecomb.registry.api.registry.BasePath;
+import org.apache.servicecomb.registry.api.registry.Microservice;
+import org.apache.servicecomb.registry.definition.DefinitionConst;
 import org.apache.servicecomb.swagger.SwaggerUtils;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
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 dffad2e..9c02c67 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
@@ -32,7 +32,7 @@ import org.apache.servicecomb.core.definition.SchemaMeta;
 import org.apache.servicecomb.core.executor.ExecutorManager;
 import org.apache.servicecomb.foundation.common.utils.ClassLoaderScopeContext;
 import org.apache.servicecomb.foundation.common.utils.SPIServiceUtils;
-import org.apache.servicecomb.serviceregistry.definition.DefinitionConst;
+import org.apache.servicecomb.registry.definition.DefinitionConst;
 import org.apache.servicecomb.swagger.engine.SwaggerProducer;
 import org.apache.servicecomb.swagger.engine.SwaggerProducerOperation;
 import org.slf4j.Logger;
diff --git a/core/src/main/java/org/apache/servicecomb/core/transport/AbstractTransport.java b/core/src/main/java/org/apache/servicecomb/core/transport/AbstractTransport.java
index 7ee6bbb..4013c29 100644
--- a/core/src/main/java/org/apache/servicecomb/core/transport/AbstractTransport.java
+++ b/core/src/main/java/org/apache/servicecomb/core/transport/AbstractTransport.java
@@ -28,7 +28,7 @@ import org.apache.servicecomb.core.Transport;
 import org.apache.servicecomb.foundation.common.net.NetUtils;
 import org.apache.servicecomb.foundation.common.net.URIEndpointObject;
 import org.apache.servicecomb.foundation.vertx.SharedVertxFactory;
-import org.apache.servicecomb.serviceregistry.RegistrationManager;
+import org.apache.servicecomb.registry.RegistrationManager;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
diff --git a/core/src/main/java/org/apache/servicecomb/core/transport/TransportManager.java b/core/src/main/java/org/apache/servicecomb/core/transport/TransportManager.java
index 53659bd..8508297 100644
--- a/core/src/main/java/org/apache/servicecomb/core/transport/TransportManager.java
+++ b/core/src/main/java/org/apache/servicecomb/core/transport/TransportManager.java
@@ -29,7 +29,7 @@ import org.apache.servicecomb.core.SCBEngine;
 import org.apache.servicecomb.core.Transport;
 import org.apache.servicecomb.foundation.common.exceptions.ServiceCombException;
 import org.apache.servicecomb.foundation.common.utils.SPIServiceUtils;
-import org.apache.servicecomb.serviceregistry.RegistrationManager;
+import org.apache.servicecomb.registry.RegistrationManager;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
diff --git a/core/src/main/resources/META-INF/services/org.apache.servicecomb.serviceregistry.discovery.DiscoveryFilter b/core/src/main/resources/META-INF/services/org.apache.servicecomb.registry.discovery.DiscoveryFilter
similarity index 100%
rename from core/src/main/resources/META-INF/services/org.apache.servicecomb.serviceregistry.discovery.DiscoveryFilter
rename to core/src/main/resources/META-INF/services/org.apache.servicecomb.registry.discovery.DiscoveryFilter
diff --git a/core/src/test/java/org/apache/servicecomb/core/TestCseApplicationListener.java b/core/src/test/java/org/apache/servicecomb/core/TestCseApplicationListener.java
index ec1a4d4..aac398c 100644
--- a/core/src/test/java/org/apache/servicecomb/core/TestCseApplicationListener.java
+++ b/core/src/test/java/org/apache/servicecomb/core/TestCseApplicationListener.java
@@ -17,12 +17,9 @@
 package org.apache.servicecomb.core;
 
 import org.apache.servicecomb.config.ConfigUtil;
-import org.apache.servicecomb.core.CseApplicationListener;
-import org.apache.servicecomb.core.SCBEngine;
-import org.apache.servicecomb.core.SCBStatus;
 import org.apache.servicecomb.core.bootstrap.SCBBootstrap;
 import org.apache.servicecomb.foundation.test.scaffolding.config.ArchaiusUtils;
-import org.apache.servicecomb.serviceregistry.DiscoveryManager;
+import org.apache.servicecomb.registry.DiscoveryManager;
 import org.junit.AfterClass;
 import org.junit.Assert;
 import org.junit.Before;
diff --git a/core/src/test/java/org/apache/servicecomb/core/TestEndpoint.java b/core/src/test/java/org/apache/servicecomb/core/TestEndpoint.java
index 45df567..9be7e1b 100644
--- a/core/src/test/java/org/apache/servicecomb/core/TestEndpoint.java
+++ b/core/src/test/java/org/apache/servicecomb/core/TestEndpoint.java
@@ -17,7 +17,7 @@
 
 package org.apache.servicecomb.core;
 
-import org.apache.servicecomb.serviceregistry.api.registry.MicroserviceInstance;
+import org.apache.servicecomb.registry.api.registry.MicroserviceInstance;
 import org.junit.Assert;
 import org.junit.Test;
 
diff --git a/core/src/test/java/org/apache/servicecomb/core/definition/MicroServicePropertyExtendedStub.java b/core/src/test/java/org/apache/servicecomb/core/definition/MicroServicePropertyExtendedStub.java
index 64224d9..96550b1 100644
--- a/core/src/test/java/org/apache/servicecomb/core/definition/MicroServicePropertyExtendedStub.java
+++ b/core/src/test/java/org/apache/servicecomb/core/definition/MicroServicePropertyExtendedStub.java
@@ -19,7 +19,7 @@ package org.apache.servicecomb.core.definition;
 
 import java.util.Map;
 
-import org.apache.servicecomb.serviceregistry.api.PropertyExtended;
+import org.apache.servicecomb.registry.api.PropertyExtended;
 
 public class MicroServicePropertyExtendedStub implements PropertyExtended {
   @Override
diff --git a/core/src/test/java/org/apache/servicecomb/core/filter/TestEndpointDiscoveryFilter.java b/core/src/test/java/org/apache/servicecomb/core/filter/TestEndpointDiscoveryFilter.java
index ea7d64e..91b79e1 100644
--- a/core/src/test/java/org/apache/servicecomb/core/filter/TestEndpointDiscoveryFilter.java
+++ b/core/src/test/java/org/apache/servicecomb/core/filter/TestEndpointDiscoveryFilter.java
@@ -23,8 +23,8 @@ import org.apache.servicecomb.core.Invocation;
 import org.apache.servicecomb.core.SCBEngine;
 import org.apache.servicecomb.core.Transport;
 import org.apache.servicecomb.core.bootstrap.SCBBootstrap;
-import org.apache.servicecomb.serviceregistry.api.registry.MicroserviceInstance;
-import org.apache.servicecomb.serviceregistry.discovery.DiscoveryContext;
+import org.apache.servicecomb.registry.api.registry.MicroserviceInstance;
+import org.apache.servicecomb.registry.discovery.DiscoveryContext;
 import org.junit.After;
 import org.junit.Assert;
 import org.junit.Before;
diff --git a/core/src/test/java/org/apache/servicecomb/core/handler/impl/TestSimpleLoadBalanceHandler.java b/core/src/test/java/org/apache/servicecomb/core/handler/impl/TestSimpleLoadBalanceHandler.java
index 0f8faac..65bff50 100644
--- a/core/src/test/java/org/apache/servicecomb/core/handler/impl/TestSimpleLoadBalanceHandler.java
+++ b/core/src/test/java/org/apache/servicecomb/core/handler/impl/TestSimpleLoadBalanceHandler.java
@@ -29,9 +29,9 @@ import org.apache.servicecomb.core.bootstrap.SCBBootstrap;
 import org.apache.servicecomb.foundation.common.cache.VersionedCache;
 import org.apache.servicecomb.foundation.common.utils.SPIServiceUtils;
 import org.apache.servicecomb.foundation.test.scaffolding.config.ArchaiusUtils;
-import org.apache.servicecomb.serviceregistry.DiscoveryManager;
-import org.apache.servicecomb.serviceregistry.api.registry.MicroserviceInstance;
-import org.apache.servicecomb.serviceregistry.discovery.DiscoveryFilter;
+import org.apache.servicecomb.registry.DiscoveryManager;
+import org.apache.servicecomb.registry.api.registry.MicroserviceInstance;
+import org.apache.servicecomb.registry.discovery.DiscoveryFilter;
 import org.apache.servicecomb.swagger.invocation.AsyncResponse;
 import org.apache.servicecomb.swagger.invocation.Response;
 import org.junit.After;
diff --git a/core/src/test/java/org/apache/servicecomb/core/transport/TestAbstractTransport.java b/core/src/test/java/org/apache/servicecomb/core/transport/TestAbstractTransport.java
index 6ff6e68..8ebde26 100644
--- a/core/src/test/java/org/apache/servicecomb/core/transport/TestAbstractTransport.java
+++ b/core/src/test/java/org/apache/servicecomb/core/transport/TestAbstractTransport.java
@@ -26,7 +26,7 @@ import java.util.Collections;
 import org.apache.servicecomb.core.Invocation;
 import org.apache.servicecomb.foundation.common.net.IpPort;
 import org.apache.servicecomb.foundation.vertx.VertxUtils;
-import org.apache.servicecomb.serviceregistry.RegistrationManager;
+import org.apache.servicecomb.registry.RegistrationManager;
 import org.apache.servicecomb.swagger.invocation.AsyncResponse;
 import org.junit.AfterClass;
 import org.junit.Assert;
diff --git a/core/src/test/java/org/apache/servicecomb/core/transport/TestTransportManager.java b/core/src/test/java/org/apache/servicecomb/core/transport/TestTransportManager.java
index e2250a8..ed78e2c 100644
--- a/core/src/test/java/org/apache/servicecomb/core/transport/TestTransportManager.java
+++ b/core/src/test/java/org/apache/servicecomb/core/transport/TestTransportManager.java
@@ -25,7 +25,7 @@ import org.apache.servicecomb.core.Endpoint;
 import org.apache.servicecomb.core.SCBEngine;
 import org.apache.servicecomb.core.Transport;
 import org.apache.servicecomb.foundation.common.exceptions.ServiceCombException;
-import org.apache.servicecomb.serviceregistry.api.registry.MicroserviceInstance;
+import org.apache.servicecomb.registry.api.registry.MicroserviceInstance;
 import org.junit.Assert;
 import org.junit.Test;
 
diff --git a/demo/demo-edge/consumer/src/main/java/org/apache/servicecomb/demo/edge/consumer/Consumer.java b/demo/demo-edge/consumer/src/main/java/org/apache/servicecomb/demo/edge/consumer/Consumer.java
index 862c440..fa43ba9 100644
--- a/demo/demo-edge/consumer/src/main/java/org/apache/servicecomb/demo/edge/consumer/Consumer.java
+++ b/demo/demo-edge/consumer/src/main/java/org/apache/servicecomb/demo/edge/consumer/Consumer.java
@@ -34,11 +34,11 @@ import org.apache.servicecomb.demo.edge.model.RecursiveSelfType;
 import org.apache.servicecomb.demo.edge.model.ResultWithInstance;
 import org.apache.servicecomb.foundation.common.net.URIEndpointObject;
 import org.apache.servicecomb.provider.springmvc.reference.RestTemplateBuilder;
-import org.apache.servicecomb.serviceregistry.DiscoveryManager;
-import org.apache.servicecomb.serviceregistry.RegistrationManager;
-import org.apache.servicecomb.serviceregistry.api.registry.Microservice;
-import org.apache.servicecomb.serviceregistry.api.registry.MicroserviceInstance;
-import org.apache.servicecomb.serviceregistry.definition.DefinitionConst;
+import org.apache.servicecomb.registry.DiscoveryManager;
+import org.apache.servicecomb.registry.RegistrationManager;
+import org.apache.servicecomb.registry.api.registry.Microservice;
+import org.apache.servicecomb.registry.api.registry.MicroserviceInstance;
+import org.apache.servicecomb.registry.definition.DefinitionConst;
 import org.springframework.http.HttpEntity;
 import org.springframework.http.HttpHeaders;
 import org.springframework.http.HttpMethod;
diff --git a/demo/demo-edge/model/src/main/java/org/apache/servicecomb/demo/edge/model/ResultWithInstance.java b/demo/demo-edge/model/src/main/java/org/apache/servicecomb/demo/edge/model/ResultWithInstance.java
index 2bf9f7d..b9c3d3d 100644
--- a/demo/demo-edge/model/src/main/java/org/apache/servicecomb/demo/edge/model/ResultWithInstance.java
+++ b/demo/demo-edge/model/src/main/java/org/apache/servicecomb/demo/edge/model/ResultWithInstance.java
@@ -17,7 +17,7 @@
 
 package org.apache.servicecomb.demo.edge.model;
 
-import org.apache.servicecomb.serviceregistry.RegistrationManager;
+import org.apache.servicecomb.registry.RegistrationManager;
 
 public class ResultWithInstance {
   private int result;
diff --git a/demo/demo-jaxrs/jaxrs-client/src/main/java/org/apache/servicecomb/demo/jaxrs/client/MultiErrorCodeServiceClient.java b/demo/demo-jaxrs/jaxrs-client/src/main/java/org/apache/servicecomb/demo/jaxrs/client/MultiErrorCodeServiceClient.java
index 3acf283..42031f5 100644
--- a/demo/demo-jaxrs/jaxrs-client/src/main/java/org/apache/servicecomb/demo/jaxrs/client/MultiErrorCodeServiceClient.java
+++ b/demo/demo-jaxrs/jaxrs-client/src/main/java/org/apache/servicecomb/demo/jaxrs/client/MultiErrorCodeServiceClient.java
@@ -30,11 +30,11 @@ import org.apache.servicecomb.demo.multiErrorCode.MultiResponse400;
 import org.apache.servicecomb.demo.multiErrorCode.MultiResponse500;
 import org.apache.servicecomb.foundation.common.net.URIEndpointObject;
 import org.apache.servicecomb.provider.springmvc.reference.RestTemplateBuilder;
-import org.apache.servicecomb.serviceregistry.DiscoveryManager;
-import org.apache.servicecomb.serviceregistry.RegistrationManager;
-import org.apache.servicecomb.serviceregistry.api.registry.Microservice;
-import org.apache.servicecomb.serviceregistry.api.registry.MicroserviceInstance;
-import org.apache.servicecomb.serviceregistry.definition.DefinitionConst;
+import org.apache.servicecomb.registry.DiscoveryManager;
+import org.apache.servicecomb.registry.RegistrationManager;
+import org.apache.servicecomb.registry.api.registry.Microservice;
+import org.apache.servicecomb.registry.api.registry.MicroserviceInstance;
+import org.apache.servicecomb.registry.definition.DefinitionConst;
 import org.apache.servicecomb.swagger.invocation.exception.InvocationException;
 import org.springframework.http.HttpEntity;
 import org.springframework.http.HttpHeaders;
diff --git a/demo/demo-schema/src/main/java/org/apache/servicecomb/demo/CodeFirstRestTemplate.java b/demo/demo-schema/src/main/java/org/apache/servicecomb/demo/CodeFirstRestTemplate.java
index d3e61ed..b9dee8b 100644
--- a/demo/demo-schema/src/main/java/org/apache/servicecomb/demo/CodeFirstRestTemplate.java
+++ b/demo/demo-schema/src/main/java/org/apache/servicecomb/demo/CodeFirstRestTemplate.java
@@ -30,7 +30,7 @@ import org.apache.servicecomb.demo.jaxbbean.JAXBJob;
 import org.apache.servicecomb.demo.jaxbbean.JAXBPerson;
 import org.apache.servicecomb.demo.server.User;
 import org.apache.servicecomb.foundation.test.scaffolding.config.ArchaiusUtils;
-import org.apache.servicecomb.serviceregistry.RegistrationManager;
+import org.apache.servicecomb.registry.RegistrationManager;
 import org.apache.servicecomb.swagger.invocation.context.ContextUtils;
 import org.apache.servicecomb.swagger.invocation.context.InvocationContext;
 import org.springframework.http.HttpEntity;
diff --git a/demo/demo-springmvc/springmvc-client/src/main/java/org/apache/servicecomb/demo/springmvc/client/CodeFirstRestTemplateSpringmvc.java b/demo/demo-springmvc/springmvc-client/src/main/java/org/apache/servicecomb/demo/springmvc/client/CodeFirstRestTemplateSpringmvc.java
index 0a34963..63e22c7 100644
--- a/demo/demo-springmvc/springmvc-client/src/main/java/org/apache/servicecomb/demo/springmvc/client/CodeFirstRestTemplateSpringmvc.java
+++ b/demo/demo-springmvc/springmvc-client/src/main/java/org/apache/servicecomb/demo/springmvc/client/CodeFirstRestTemplateSpringmvc.java
@@ -35,7 +35,7 @@ import org.apache.servicecomb.demo.TestMgr;
 import org.apache.servicecomb.foundation.common.part.FilePart;
 import org.apache.servicecomb.provider.pojo.Invoker;
 import org.apache.servicecomb.provider.springmvc.reference.CseHttpEntity;
-import org.apache.servicecomb.serviceregistry.RegistrationManager;
+import org.apache.servicecomb.registry.RegistrationManager;
 import org.springframework.core.io.FileSystemResource;
 import org.springframework.core.io.Resource;
 import org.springframework.http.HttpEntity;
diff --git a/demo/demo-springmvc/springmvc-client/src/main/java/org/apache/servicecomb/demo/springmvc/client/ConsumerTestsAfterBootup.java b/demo/demo-springmvc/springmvc-client/src/main/java/org/apache/servicecomb/demo/springmvc/client/ConsumerTestsAfterBootup.java
index 3bafa25..efd3f18 100644
--- a/demo/demo-springmvc/springmvc-client/src/main/java/org/apache/servicecomb/demo/springmvc/client/ConsumerTestsAfterBootup.java
+++ b/demo/demo-springmvc/springmvc-client/src/main/java/org/apache/servicecomb/demo/springmvc/client/ConsumerTestsAfterBootup.java
@@ -18,7 +18,7 @@ package org.apache.servicecomb.demo.springmvc.client;
 
 import org.apache.servicecomb.core.BootListener;
 import org.apache.servicecomb.demo.TestMgr;
-import org.apache.servicecomb.serviceregistry.RegistrationManager;
+import org.apache.servicecomb.registry.RegistrationManager;
 import org.springframework.stereotype.Component;
 
 /**
diff --git a/demo/demo-springmvc/springmvc-client/src/main/java/org/apache/servicecomb/demo/springmvc/client/CustomEndpointDiscoveryFilter.java b/demo/demo-springmvc/springmvc-client/src/main/java/org/apache/servicecomb/demo/springmvc/client/CustomEndpointDiscoveryFilter.java
index 126a7d4..d5b4f11 100644
--- a/demo/demo-springmvc/springmvc-client/src/main/java/org/apache/servicecomb/demo/springmvc/client/CustomEndpointDiscoveryFilter.java
+++ b/demo/demo-springmvc/springmvc-client/src/main/java/org/apache/servicecomb/demo/springmvc/client/CustomEndpointDiscoveryFilter.java
@@ -17,10 +17,10 @@
 
 package org.apache.servicecomb.demo.springmvc.client;
 
-import org.apache.servicecomb.serviceregistry.api.registry.MicroserviceInstance;
-import org.apache.servicecomb.serviceregistry.discovery.AbstractEndpointDiscoveryFilter;
-import org.apache.servicecomb.serviceregistry.discovery.DiscoveryContext;
-import org.apache.servicecomb.serviceregistry.discovery.DiscoveryTreeNode;
+import org.apache.servicecomb.registry.api.registry.MicroserviceInstance;
+import org.apache.servicecomb.registry.discovery.AbstractEndpointDiscoveryFilter;
+import org.apache.servicecomb.registry.discovery.DiscoveryContext;
+import org.apache.servicecomb.registry.discovery.DiscoveryTreeNode;
 
 public class CustomEndpointDiscoveryFilter extends AbstractEndpointDiscoveryFilter {
   @Override
diff --git a/demo/demo-springmvc/springmvc-client/src/main/java/org/apache/servicecomb/demo/springmvc/client/MicroserviceArray.java b/demo/demo-springmvc/springmvc-client/src/main/java/org/apache/servicecomb/demo/springmvc/client/MicroserviceArray.java
index 15842e4..add5e6f 100644
--- a/demo/demo-springmvc/springmvc-client/src/main/java/org/apache/servicecomb/demo/springmvc/client/MicroserviceArray.java
+++ b/demo/demo-springmvc/springmvc-client/src/main/java/org/apache/servicecomb/demo/springmvc/client/MicroserviceArray.java
@@ -18,7 +18,7 @@ package org.apache.servicecomb.demo.springmvc.client;
 
 import java.util.List;
 
-import org.apache.servicecomb.serviceregistry.api.registry.Microservice;
+import org.apache.servicecomb.registry.api.registry.Microservice;
 
 public class MicroserviceArray {
 
diff --git a/demo/demo-springmvc/springmvc-client/src/main/java/org/apache/servicecomb/demo/springmvc/client/TestDateTimeSchema.java b/demo/demo-springmvc/springmvc-client/src/main/java/org/apache/servicecomb/demo/springmvc/client/TestDateTimeSchema.java
index e9b0374..409e634 100644
--- a/demo/demo-springmvc/springmvc-client/src/main/java/org/apache/servicecomb/demo/springmvc/client/TestDateTimeSchema.java
+++ b/demo/demo-springmvc/springmvc-client/src/main/java/org/apache/servicecomb/demo/springmvc/client/TestDateTimeSchema.java
@@ -24,8 +24,6 @@ import java.time.format.DateTimeFormatter;
 import java.util.Date;
 import java.util.List;
 
-import javax.ws.rs.core.Response.Status;
-
 import org.apache.servicecomb.common.rest.codec.RestObjectMapperFactory;
 import org.apache.servicecomb.core.Endpoint;
 import org.apache.servicecomb.core.SCBEngine;
@@ -37,10 +35,9 @@ import org.apache.servicecomb.loadbalance.LoadbalanceHandler;
 import org.apache.servicecomb.provider.pojo.RpcReference;
 import org.apache.servicecomb.provider.springmvc.reference.CseHttpEntity;
 import org.apache.servicecomb.provider.springmvc.reference.RestTemplateBuilder;
-import org.apache.servicecomb.serviceregistry.discovery.DiscoveryContext;
-import org.apache.servicecomb.serviceregistry.discovery.DiscoveryTree;
+import org.apache.servicecomb.registry.discovery.DiscoveryContext;
+import org.apache.servicecomb.registry.discovery.DiscoveryTree;
 import org.apache.servicecomb.swagger.invocation.context.InvocationContext;
-import org.apache.servicecomb.swagger.invocation.exception.InvocationException;
 import org.springframework.http.HttpMethod;
 import org.springframework.stereotype.Component;
 import org.springframework.web.client.RestTemplate;
diff --git a/demo/demo-springmvc/springmvc-client/src/main/java/org/apache/servicecomb/demo/springmvc/client/TestResponse.java b/demo/demo-springmvc/springmvc-client/src/main/java/org/apache/servicecomb/demo/springmvc/client/TestResponse.java
index f2b18c4..2a3edbd 100644
--- a/demo/demo-springmvc/springmvc-client/src/main/java/org/apache/servicecomb/demo/springmvc/client/TestResponse.java
+++ b/demo/demo-springmvc/springmvc-client/src/main/java/org/apache/servicecomb/demo/springmvc/client/TestResponse.java
@@ -23,7 +23,7 @@ import org.apache.servicecomb.demo.TestMgr;
 import org.apache.servicecomb.demo.compute.GenericParam;
 import org.apache.servicecomb.demo.compute.Person;
 import org.apache.servicecomb.provider.pojo.Invoker;
-import org.apache.servicecomb.serviceregistry.RegistrationManager;
+import org.apache.servicecomb.registry.RegistrationManager;
 import org.apache.servicecomb.swagger.invocation.Response;
 import org.apache.servicecomb.swagger.invocation.exception.InvocationException;
 import org.springframework.http.ResponseEntity;
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 fbdc8b2..a737d10 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
@@ -21,7 +21,7 @@ import org.apache.servicecomb.core.BootListener;
 import org.apache.servicecomb.core.SCBEngine;
 import org.apache.servicecomb.core.definition.SchemaMeta;
 import org.apache.servicecomb.demo.TestMgr;
-import org.apache.servicecomb.serviceregistry.RegistrationManager;
+import org.apache.servicecomb.registry.RegistrationManager;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 import org.springframework.stereotype.Component;
diff --git a/edge/edge-core/src/main/java/org/apache/servicecomb/edge/core/CommonHttpEdgeDispatcher.java b/edge/edge-core/src/main/java/org/apache/servicecomb/edge/core/CommonHttpEdgeDispatcher.java
index 198af23..da17882 100644
--- a/edge/edge-core/src/main/java/org/apache/servicecomb/edge/core/CommonHttpEdgeDispatcher.java
+++ b/edge/edge-core/src/main/java/org/apache/servicecomb/edge/core/CommonHttpEdgeDispatcher.java
@@ -31,9 +31,9 @@ import org.apache.servicecomb.loadbalance.LoadbalanceHandler;
 import org.apache.servicecomb.loadbalance.RuleExt;
 import org.apache.servicecomb.loadbalance.ServiceCombServer;
 import org.apache.servicecomb.loadbalance.filter.ServerDiscoveryFilter;
-import org.apache.servicecomb.serviceregistry.RegistrationManager;
-import org.apache.servicecomb.serviceregistry.discovery.DiscoveryContext;
-import org.apache.servicecomb.serviceregistry.discovery.DiscoveryTree;
+import org.apache.servicecomb.registry.RegistrationManager;
+import org.apache.servicecomb.registry.discovery.DiscoveryContext;
+import org.apache.servicecomb.registry.discovery.DiscoveryTree;
 import org.apache.servicecomb.transport.rest.client.Http2TransportHttpClientOptionsSPI;
 import org.apache.servicecomb.transport.rest.client.HttpTransportHttpClientOptionsSPI;
 import org.slf4j.Logger;
diff --git a/edge/edge-core/src/main/java/org/apache/servicecomb/edge/core/CompatiblePathVersionMapper.java b/edge/edge-core/src/main/java/org/apache/servicecomb/edge/core/CompatiblePathVersionMapper.java
index fc03241..599bc32 100644
--- a/edge/edge-core/src/main/java/org/apache/servicecomb/edge/core/CompatiblePathVersionMapper.java
+++ b/edge/edge-core/src/main/java/org/apache/servicecomb/edge/core/CompatiblePathVersionMapper.java
@@ -21,8 +21,8 @@ import java.util.Map;
 
 import org.apache.servicecomb.foundation.common.concurrent.ConcurrentHashMapEx;
 import org.apache.servicecomb.foundation.common.exceptions.ServiceCombException;
-import org.apache.servicecomb.serviceregistry.version.VersionRule;
-import org.apache.servicecomb.serviceregistry.version.VersionRuleUtils;
+import org.apache.servicecomb.registry.version.VersionRule;
+import org.apache.servicecomb.registry.version.VersionRuleUtils;
 import org.springframework.util.StringUtils;
 
 public class CompatiblePathVersionMapper {
diff --git a/edge/edge-core/src/test/java/org/apache/servicecomb/edge/core/TestCompatiblePathVersionMapper.java b/edge/edge-core/src/test/java/org/apache/servicecomb/edge/core/TestCompatiblePathVersionMapper.java
index 871c25d..2bfe7b0 100644
--- a/edge/edge-core/src/test/java/org/apache/servicecomb/edge/core/TestCompatiblePathVersionMapper.java
+++ b/edge/edge-core/src/test/java/org/apache/servicecomb/edge/core/TestCompatiblePathVersionMapper.java
@@ -18,7 +18,7 @@
 package org.apache.servicecomb.edge.core;
 
 import org.apache.servicecomb.foundation.common.exceptions.ServiceCombException;
-import org.apache.servicecomb.serviceregistry.version.VersionRule;
+import org.apache.servicecomb.registry.version.VersionRule;
 import org.hamcrest.Matchers;
 import org.junit.Assert;
 import org.junit.Rule;
diff --git a/foundations/foundation-registry/pom.xml b/foundations/foundation-registry/pom.xml
index bceaaa4..044545d 100644
--- a/foundations/foundation-registry/pom.xml
+++ b/foundations/foundation-registry/pom.xml
@@ -39,5 +39,9 @@
       <groupId>org.apache.servicecomb</groupId>
       <artifactId>swagger-invocation-core</artifactId>
     </dependency>
+    <dependency>
+      <groupId>org.apache.servicecomb</groupId>
+      <artifactId>foundation-test-scaffolding</artifactId>
+    </dependency>
   </dependencies>
 </project>
diff --git a/foundations/foundation-registry/src/main/java/org/apache/servicecomb/serviceregistry/DiscoveryManager.java b/foundations/foundation-registry/src/main/java/org/apache/servicecomb/registry/DiscoveryManager.java
similarity index 85%
rename from foundations/foundation-registry/src/main/java/org/apache/servicecomb/serviceregistry/DiscoveryManager.java
rename to foundations/foundation-registry/src/main/java/org/apache/servicecomb/registry/DiscoveryManager.java
index f6439d1..23f98df 100644
--- a/foundations/foundation-registry/src/main/java/org/apache/servicecomb/serviceregistry/DiscoveryManager.java
+++ b/foundations/foundation-registry/src/main/java/org/apache/servicecomb/registry/DiscoveryManager.java
@@ -15,7 +15,7 @@
  * limitations under the License.
  */
 
-package org.apache.servicecomb.serviceregistry;
+package org.apache.servicecomb.registry;
 
 import java.util.List;
 import java.util.stream.Collectors;
@@ -23,15 +23,15 @@ import java.util.stream.Collectors;
 import org.apache.servicecomb.config.ConfigUtil;
 import org.apache.servicecomb.config.archaius.sources.MicroserviceConfigLoader;
 import org.apache.servicecomb.foundation.common.utils.SPIServiceUtils;
-import org.apache.servicecomb.serviceregistry.api.Discovery;
-import org.apache.servicecomb.serviceregistry.api.registry.Microservice;
-import org.apache.servicecomb.serviceregistry.api.registry.MicroserviceInstance;
-import org.apache.servicecomb.serviceregistry.cache.InstanceCacheManager;
-import org.apache.servicecomb.serviceregistry.cache.InstanceCacheManagerNew;
-import org.apache.servicecomb.serviceregistry.client.http.MicroserviceInstances;
-import org.apache.servicecomb.serviceregistry.consumer.AppManager;
-import org.apache.servicecomb.serviceregistry.consumer.MicroserviceVersions;
-import org.apache.servicecomb.serviceregistry.definition.MicroserviceDefinition;
+import org.apache.servicecomb.registry.api.Discovery;
+import org.apache.servicecomb.registry.api.registry.Microservice;
+import org.apache.servicecomb.registry.api.registry.MicroserviceInstance;
+import org.apache.servicecomb.registry.api.registry.MicroserviceInstances;
+import org.apache.servicecomb.registry.cache.InstanceCacheManager;
+import org.apache.servicecomb.registry.cache.InstanceCacheManagerNew;
+import org.apache.servicecomb.registry.consumer.AppManager;
+import org.apache.servicecomb.registry.consumer.MicroserviceVersions;
+import org.apache.servicecomb.registry.definition.MicroserviceDefinition;
 
 import com.google.common.annotations.VisibleForTesting;
 
diff --git a/foundations/foundation-registry/src/main/java/org/apache/servicecomb/serviceregistry/RegistrationManager.java b/foundations/foundation-registry/src/main/java/org/apache/servicecomb/registry/RegistrationManager.java
similarity index 93%
rename from foundations/foundation-registry/src/main/java/org/apache/servicecomb/serviceregistry/RegistrationManager.java
rename to foundations/foundation-registry/src/main/java/org/apache/servicecomb/registry/RegistrationManager.java
index 2ed54a5..7c44daa 100644
--- a/foundations/foundation-registry/src/main/java/org/apache/servicecomb/serviceregistry/RegistrationManager.java
+++ b/foundations/foundation-registry/src/main/java/org/apache/servicecomb/registry/RegistrationManager.java
@@ -15,7 +15,7 @@
  * limitations under the License.
  */
 
-package org.apache.servicecomb.serviceregistry;
+package org.apache.servicecomb.registry;
 
 import java.net.InetSocketAddress;
 import java.net.URI;
@@ -28,12 +28,12 @@ import org.apache.http.client.utils.URIBuilder;
 import org.apache.servicecomb.foundation.common.net.IpPort;
 import org.apache.servicecomb.foundation.common.net.NetUtils;
 import org.apache.servicecomb.foundation.common.utils.SPIServiceUtils;
-import org.apache.servicecomb.serviceregistry.api.Registration;
-import org.apache.servicecomb.serviceregistry.api.registry.BasePath;
-import org.apache.servicecomb.serviceregistry.api.registry.Microservice;
-import org.apache.servicecomb.serviceregistry.api.registry.MicroserviceInstance;
-import org.apache.servicecomb.serviceregistry.api.registry.MicroserviceInstanceStatus;
-import org.apache.servicecomb.serviceregistry.swagger.SwaggerLoader;
+import org.apache.servicecomb.registry.api.registry.BasePath;
+import org.apache.servicecomb.registry.api.registry.Microservice;
+import org.apache.servicecomb.registry.api.registry.MicroserviceInstance;
+import org.apache.servicecomb.registry.api.registry.MicroserviceInstanceStatus;
+import org.apache.servicecomb.registry.api.Registration;
+import org.apache.servicecomb.registry.swagger.SwaggerLoader;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
diff --git a/foundations/foundation-registry/src/main/java/org/apache/servicecomb/serviceregistry/api/Discovery.java b/foundations/foundation-registry/src/main/java/org/apache/servicecomb/registry/api/Discovery.java
similarity index 63%
rename from foundations/foundation-registry/src/main/java/org/apache/servicecomb/serviceregistry/api/Discovery.java
rename to foundations/foundation-registry/src/main/java/org/apache/servicecomb/registry/api/Discovery.java
index 3a74602..a81416c 100644
--- a/foundations/foundation-registry/src/main/java/org/apache/servicecomb/serviceregistry/api/Discovery.java
+++ b/foundations/foundation-registry/src/main/java/org/apache/servicecomb/registry/api/Discovery.java
@@ -15,27 +15,44 @@
  * limitations under the License.
  */
 
-package org.apache.servicecomb.serviceregistry.api;
+package org.apache.servicecomb.registry.api;
 
 import org.apache.servicecomb.foundation.common.utils.SPIEnabled;
 import org.apache.servicecomb.foundation.common.utils.SPIOrder;
-import org.apache.servicecomb.serviceregistry.api.registry.Microservice;
-import org.apache.servicecomb.serviceregistry.api.registry.MicroserviceInstance;
-import org.apache.servicecomb.serviceregistry.client.http.MicroserviceInstances;
+import org.apache.servicecomb.registry.api.registry.Microservice;
+import org.apache.servicecomb.registry.api.registry.MicroserviceInstance;
+import org.apache.servicecomb.registry.api.registry.MicroserviceInstances;
 
 /**
- * This is the core registry discovery interface. <br/>
+ * This is the core service discovery interface. <br/>
  */
 public interface Discovery extends SPIEnabled, SPIOrder, LifeCycle {
+  /**
+   * get Microservice </br>
+   *
+   * Life Cycle:This method is called anytime after <code>run</code>.
+   */
   Microservice getMicroservice(String microserviceId);
 
+  /**
+   * get schema content </br>
+   *
+   * Life Cycle:This method is called anytime after <code>run</code>.
+   */
   String getSchema(String microserviceId, String schemaId);
 
+  /**
+   * get MicroserviceInstance </br>
+   *
+   * Life Cycle:This method is called anytime after <code>run</code>.
+   */
   MicroserviceInstance getMicroserviceInstance(String serviceId, String instanceId);
 
   /**
    * Find all instances. Implementations can use <code>gerRevision</code> to retrieve the
-   * latest instances changed.
+   * latest instances changed. </br>
+   *
+   * Life Cycle:This method is called anytime after <code>run</code>.
    *
    * @param appId application id
    * @param serviceName microservice name
@@ -45,8 +62,14 @@ public interface Discovery extends SPIEnabled, SPIOrder, LifeCycle {
   MicroserviceInstances findServiceInstances(String appId, String serviceName,
       String versionRule);
 
+  /**
+   * Life Cycle:can be used when calling <code>findServiceInstances</code>
+   */
   String getRevision();
 
+  /**
+   * Life Cycle:will be called when <code>findServiceInstances</code> is successful
+   */
   void setRevision(String revision);
 
   String name();
diff --git a/foundations/foundation-registry/src/main/java/org/apache/servicecomb/serviceregistry/api/LifeCycle.java b/foundations/foundation-registry/src/main/java/org/apache/servicecomb/registry/api/LifeCycle.java
similarity index 94%
rename from foundations/foundation-registry/src/main/java/org/apache/servicecomb/serviceregistry/api/LifeCycle.java
rename to foundations/foundation-registry/src/main/java/org/apache/servicecomb/registry/api/LifeCycle.java
index f584dea..64647d9 100644
--- a/foundations/foundation-registry/src/main/java/org/apache/servicecomb/serviceregistry/api/LifeCycle.java
+++ b/foundations/foundation-registry/src/main/java/org/apache/servicecomb/registry/api/LifeCycle.java
@@ -15,7 +15,7 @@
  * limitations under the License.
  */
 
-package org.apache.servicecomb.serviceregistry.api;
+package org.apache.servicecomb.registry.api;
 
 public interface LifeCycle {
   void init();
diff --git a/foundations/foundation-registry/src/main/java/org/apache/servicecomb/serviceregistry/api/MicroserviceKey.java b/foundations/foundation-registry/src/main/java/org/apache/servicecomb/registry/api/MicroserviceKey.java
similarity index 97%
rename from foundations/foundation-registry/src/main/java/org/apache/servicecomb/serviceregistry/api/MicroserviceKey.java
rename to foundations/foundation-registry/src/main/java/org/apache/servicecomb/registry/api/MicroserviceKey.java
index ea920c2..4f56d72 100644
--- a/foundations/foundation-registry/src/main/java/org/apache/servicecomb/serviceregistry/api/MicroserviceKey.java
+++ b/foundations/foundation-registry/src/main/java/org/apache/servicecomb/registry/api/MicroserviceKey.java
@@ -15,7 +15,7 @@
  * limitations under the License.
  */
 
-package org.apache.servicecomb.serviceregistry.api;
+package org.apache.servicecomb.registry.api;
 
 import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
 
diff --git a/foundations/foundation-registry/src/main/java/org/apache/servicecomb/serviceregistry/api/PropertyExtended.java b/foundations/foundation-registry/src/main/java/org/apache/servicecomb/registry/api/PropertyExtended.java
similarity index 94%
rename from foundations/foundation-registry/src/main/java/org/apache/servicecomb/serviceregistry/api/PropertyExtended.java
rename to foundations/foundation-registry/src/main/java/org/apache/servicecomb/registry/api/PropertyExtended.java
index 5f19146..e0d3cb8 100644
--- a/foundations/foundation-registry/src/main/java/org/apache/servicecomb/serviceregistry/api/PropertyExtended.java
+++ b/foundations/foundation-registry/src/main/java/org/apache/servicecomb/registry/api/PropertyExtended.java
@@ -15,7 +15,7 @@
  * limitations under the License.
  */
 
-package org.apache.servicecomb.serviceregistry.api;
+package org.apache.servicecomb.registry.api;
 
 import java.util.Map;
 
diff --git a/foundations/foundation-registry/src/main/java/org/apache/servicecomb/serviceregistry/api/Registration.java b/foundations/foundation-registry/src/main/java/org/apache/servicecomb/registry/api/Registration.java
similarity index 53%
rename from foundations/foundation-registry/src/main/java/org/apache/servicecomb/serviceregistry/api/Registration.java
rename to foundations/foundation-registry/src/main/java/org/apache/servicecomb/registry/api/Registration.java
index 3a925e6..c1155f6 100644
--- a/foundations/foundation-registry/src/main/java/org/apache/servicecomb/serviceregistry/api/Registration.java
+++ b/foundations/foundation-registry/src/main/java/org/apache/servicecomb/registry/api/Registration.java
@@ -15,31 +15,64 @@
  * limitations under the License.
  */
 
-package org.apache.servicecomb.serviceregistry.api;
+package org.apache.servicecomb.registry.api;
 
 import java.util.Collection;
 
 import org.apache.servicecomb.foundation.common.utils.SPIEnabled;
 import org.apache.servicecomb.foundation.common.utils.SPIOrder;
-import org.apache.servicecomb.serviceregistry.api.registry.BasePath;
-import org.apache.servicecomb.serviceregistry.api.registry.Microservice;
-import org.apache.servicecomb.serviceregistry.api.registry.MicroserviceInstance;
-import org.apache.servicecomb.serviceregistry.api.registry.MicroserviceInstanceStatus;
+import org.apache.servicecomb.registry.api.registry.BasePath;
+import org.apache.servicecomb.registry.api.registry.Microservice;
+import org.apache.servicecomb.registry.api.registry.MicroserviceInstance;
+import org.apache.servicecomb.registry.api.registry.MicroserviceInstanceStatus;
 
+/**
+ * This is the core service registration interface. <br/>
+ */
 public interface Registration extends SPIEnabled, SPIOrder, LifeCycle {
   String name();
 
+  /**
+   * get MicroserviceInstance </br>
+   *
+   * Life Cycle:This method is called anytime after <code>run</code>.
+   */
   MicroserviceInstance getMicroserviceInstance();
 
+  /**
+   * get Microservice </br>
+   *
+   * Life Cycle:This method is called anytime after <code>run</code>.
+   */
   Microservice getMicroservice();
 
+  /**
+   * get application id </br>
+   *
+   * Life Cycle:This method is called anytime after <code>run</code>.
+   */
   String getAppId();
 
   boolean updateMicroserviceInstanceStatus(MicroserviceInstanceStatus status);
 
+  /**
+   * adding schemas to Microservice </br>
+   *
+   * Life Cycle:This method is called after <code>init</code> and before <code>run</code>.
+   */
   void addSchema(String schemaId, String content);
 
+  /**
+   * adding endpoints to MicroserviceInstance </br>
+   *
+   * Life Cycle:This method is called after <code>init</code> and before <code>run</code>.
+   */
   void addEndpoint(String endpoint);
 
+  /**
+   * adding BasePath to MicroserviceInstance </br>
+   *
+   * Life Cycle:This method is called after <code>init</code> and before <code>run</code>.
+   */
   void addBasePath(Collection<BasePath> basePaths);
 }
diff --git a/foundations/foundation-registry/src/main/java/org/apache/servicecomb/serviceregistry/api/Versions.java b/foundations/foundation-registry/src/main/java/org/apache/servicecomb/registry/api/Versions.java
similarity index 94%
rename from foundations/foundation-registry/src/main/java/org/apache/servicecomb/serviceregistry/api/Versions.java
rename to foundations/foundation-registry/src/main/java/org/apache/servicecomb/registry/api/Versions.java
index 5e4adfb..685fac6 100644
--- a/foundations/foundation-registry/src/main/java/org/apache/servicecomb/serviceregistry/api/Versions.java
+++ b/foundations/foundation-registry/src/main/java/org/apache/servicecomb/registry/api/Versions.java
@@ -14,7 +14,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.apache.servicecomb.serviceregistry.api;
+package org.apache.servicecomb.registry.api;
 
 import java.util.Map;
 
diff --git a/foundations/foundation-registry/src/main/java/org/apache/servicecomb/serviceregistry/event/CreateMicroserviceEvent.java b/foundations/foundation-registry/src/main/java/org/apache/servicecomb/registry/api/event/CreateMicroserviceEvent.java
similarity index 89%
rename from foundations/foundation-registry/src/main/java/org/apache/servicecomb/serviceregistry/event/CreateMicroserviceEvent.java
rename to foundations/foundation-registry/src/main/java/org/apache/servicecomb/registry/api/event/CreateMicroserviceEvent.java
index d10a82d..c2088d7 100644
--- a/foundations/foundation-registry/src/main/java/org/apache/servicecomb/serviceregistry/event/CreateMicroserviceEvent.java
+++ b/foundations/foundation-registry/src/main/java/org/apache/servicecomb/registry/api/event/CreateMicroserviceEvent.java
@@ -14,9 +14,9 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.apache.servicecomb.serviceregistry.event;
+package org.apache.servicecomb.registry.api.event;
 
-import org.apache.servicecomb.serviceregistry.consumer.MicroserviceVersions;
+import org.apache.servicecomb.registry.consumer.MicroserviceVersions;
 
 public class CreateMicroserviceEvent {
   private MicroserviceVersions microserviceVersions;
diff --git a/foundations/foundation-registry/src/main/java/org/apache/servicecomb/serviceregistry/event/CreateMicroserviceVersionEvent.java b/foundations/foundation-registry/src/main/java/org/apache/servicecomb/registry/api/event/CreateMicroserviceVersionEvent.java
similarity index 89%
rename from foundations/foundation-registry/src/main/java/org/apache/servicecomb/serviceregistry/event/CreateMicroserviceVersionEvent.java
rename to foundations/foundation-registry/src/main/java/org/apache/servicecomb/registry/api/event/CreateMicroserviceVersionEvent.java
index a9ee061..54eb620 100644
--- a/foundations/foundation-registry/src/main/java/org/apache/servicecomb/serviceregistry/event/CreateMicroserviceVersionEvent.java
+++ b/foundations/foundation-registry/src/main/java/org/apache/servicecomb/registry/api/event/CreateMicroserviceVersionEvent.java
@@ -14,9 +14,9 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.apache.servicecomb.serviceregistry.event;
+package org.apache.servicecomb.registry.api.event;
 
-import org.apache.servicecomb.serviceregistry.consumer.MicroserviceVersion;
+import org.apache.servicecomb.registry.consumer.MicroserviceVersion;
 
 public class CreateMicroserviceVersionEvent {
   private MicroserviceVersion microserviceVersion;
diff --git a/foundations/foundation-registry/src/main/java/org/apache/servicecomb/serviceregistry/event/DestroyMicroserviceEvent.java b/foundations/foundation-registry/src/main/java/org/apache/servicecomb/registry/api/event/DestroyMicroserviceEvent.java
similarity index 89%
rename from foundations/foundation-registry/src/main/java/org/apache/servicecomb/serviceregistry/event/DestroyMicroserviceEvent.java
rename to foundations/foundation-registry/src/main/java/org/apache/servicecomb/registry/api/event/DestroyMicroserviceEvent.java
index 99b8f3e..02cc094 100644
--- a/foundations/foundation-registry/src/main/java/org/apache/servicecomb/serviceregistry/event/DestroyMicroserviceEvent.java
+++ b/foundations/foundation-registry/src/main/java/org/apache/servicecomb/registry/api/event/DestroyMicroserviceEvent.java
@@ -14,9 +14,9 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.apache.servicecomb.serviceregistry.event;
+package org.apache.servicecomb.registry.api.event;
 
-import org.apache.servicecomb.serviceregistry.consumer.MicroserviceVersions;
+import org.apache.servicecomb.registry.consumer.MicroserviceVersions;
 
 public class DestroyMicroserviceEvent {
   private MicroserviceVersions microserviceVersions;
diff --git a/foundations/foundation-registry/src/main/java/org/apache/servicecomb/serviceregistry/event/DestroyMicroserviceVersionEvent.java b/foundations/foundation-registry/src/main/java/org/apache/servicecomb/registry/api/event/DestroyMicroserviceVersionEvent.java
similarity index 89%
rename from foundations/foundation-registry/src/main/java/org/apache/servicecomb/serviceregistry/event/DestroyMicroserviceVersionEvent.java
rename to foundations/foundation-registry/src/main/java/org/apache/servicecomb/registry/api/event/DestroyMicroserviceVersionEvent.java
index 4541035..113f605 100644
--- a/foundations/foundation-registry/src/main/java/org/apache/servicecomb/serviceregistry/event/DestroyMicroserviceVersionEvent.java
+++ b/foundations/foundation-registry/src/main/java/org/apache/servicecomb/registry/api/event/DestroyMicroserviceVersionEvent.java
@@ -14,9 +14,9 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.apache.servicecomb.serviceregistry.event;
+package org.apache.servicecomb.registry.api.event;
 
-import org.apache.servicecomb.serviceregistry.consumer.MicroserviceVersion;
+import org.apache.servicecomb.registry.consumer.MicroserviceVersion;
 
 public class DestroyMicroserviceVersionEvent {
   private MicroserviceVersion microserviceVersion;
diff --git a/foundations/foundation-registry/src/main/java/org/apache/servicecomb/serviceregistry/api/response/MicroserviceInstanceChangedEvent.java b/foundations/foundation-registry/src/main/java/org/apache/servicecomb/registry/api/event/MicroserviceInstanceChangedEvent.java
similarity index 83%
rename from foundations/foundation-registry/src/main/java/org/apache/servicecomb/serviceregistry/api/response/MicroserviceInstanceChangedEvent.java
rename to foundations/foundation-registry/src/main/java/org/apache/servicecomb/registry/api/event/MicroserviceInstanceChangedEvent.java
index 738ec61..c850be9 100644
--- a/foundations/foundation-registry/src/main/java/org/apache/servicecomb/serviceregistry/api/response/MicroserviceInstanceChangedEvent.java
+++ b/foundations/foundation-registry/src/main/java/org/apache/servicecomb/registry/api/event/MicroserviceInstanceChangedEvent.java
@@ -15,11 +15,11 @@
  * limitations under the License.
  */
 
-package org.apache.servicecomb.serviceregistry.api.response;
+package org.apache.servicecomb.registry.api.event;
 
-import org.apache.servicecomb.serviceregistry.api.MicroserviceKey;
-import org.apache.servicecomb.serviceregistry.api.registry.MicroserviceInstance;
-import org.apache.servicecomb.serviceregistry.api.registry.WatchAction;
+import org.apache.servicecomb.registry.api.MicroserviceKey;
+import org.apache.servicecomb.registry.api.registry.MicroserviceInstance;
+import org.apache.servicecomb.registry.api.registry.WatchAction;
 
 /**
  * Created by   on 2016/12/25.
diff --git a/foundations/foundation-registry/src/main/java/org/apache/servicecomb/serviceregistry/event/MicroserviceInstanceRegisteredEvent.java b/foundations/foundation-registry/src/main/java/org/apache/servicecomb/registry/api/event/MicroserviceInstanceRegisteredEvent.java
similarity index 94%
rename from foundations/foundation-registry/src/main/java/org/apache/servicecomb/serviceregistry/event/MicroserviceInstanceRegisteredEvent.java
rename to foundations/foundation-registry/src/main/java/org/apache/servicecomb/registry/api/event/MicroserviceInstanceRegisteredEvent.java
index 1526213..9455f2b 100644
--- a/foundations/foundation-registry/src/main/java/org/apache/servicecomb/serviceregistry/event/MicroserviceInstanceRegisteredEvent.java
+++ b/foundations/foundation-registry/src/main/java/org/apache/servicecomb/registry/api/event/MicroserviceInstanceRegisteredEvent.java
@@ -15,7 +15,7 @@
  * limitations under the License.
  */
 
-package org.apache.servicecomb.serviceregistry.event;
+package org.apache.servicecomb.registry.api.event;
 
 /**
  * when registration is ready, should post this event.
diff --git a/foundations/foundation-registry/src/main/java/org/apache/servicecomb/serviceregistry/task/event/ExceptionEvent.java b/foundations/foundation-registry/src/main/java/org/apache/servicecomb/registry/api/event/task/ExceptionEvent.java
similarity index 94%
rename from foundations/foundation-registry/src/main/java/org/apache/servicecomb/serviceregistry/task/event/ExceptionEvent.java
rename to foundations/foundation-registry/src/main/java/org/apache/servicecomb/registry/api/event/task/ExceptionEvent.java
index 46dc7d1..d19daec 100644
--- a/foundations/foundation-registry/src/main/java/org/apache/servicecomb/serviceregistry/task/event/ExceptionEvent.java
+++ b/foundations/foundation-registry/src/main/java/org/apache/servicecomb/registry/api/event/task/ExceptionEvent.java
@@ -14,7 +14,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.apache.servicecomb.serviceregistry.task.event;
+package org.apache.servicecomb.registry.api.event.task;
 
 public class ExceptionEvent {
   private Throwable throwable;
diff --git a/foundations/foundation-registry/src/main/java/org/apache/servicecomb/serviceregistry/task/event/HeartbeatFailEvent.java b/foundations/foundation-registry/src/main/java/org/apache/servicecomb/registry/api/event/task/HeartbeatFailEvent.java
similarity index 93%
rename from foundations/foundation-registry/src/main/java/org/apache/servicecomb/serviceregistry/task/event/HeartbeatFailEvent.java
rename to foundations/foundation-registry/src/main/java/org/apache/servicecomb/registry/api/event/task/HeartbeatFailEvent.java
index b5dd033..897c520 100644
--- a/foundations/foundation-registry/src/main/java/org/apache/servicecomb/serviceregistry/task/event/HeartbeatFailEvent.java
+++ b/foundations/foundation-registry/src/main/java/org/apache/servicecomb/registry/api/event/task/HeartbeatFailEvent.java
@@ -15,7 +15,7 @@
  * limitations under the License.
  */
 
-package org.apache.servicecomb.serviceregistry.task.event;
+package org.apache.servicecomb.registry.api.event.task;
 
 /**
  * Service Center Heart Beat failure event
diff --git a/foundations/foundation-registry/src/main/java/org/apache/servicecomb/serviceregistry/task/event/HeartbeatSuccEvent.java b/foundations/foundation-registry/src/main/java/org/apache/servicecomb/registry/api/event/task/HeartbeatSuccEvent.java
similarity index 93%
rename from foundations/foundation-registry/src/main/java/org/apache/servicecomb/serviceregistry/task/event/HeartbeatSuccEvent.java
rename to foundations/foundation-registry/src/main/java/org/apache/servicecomb/registry/api/event/task/HeartbeatSuccEvent.java
index 7012845..104dff0 100644
--- a/foundations/foundation-registry/src/main/java/org/apache/servicecomb/serviceregistry/task/event/HeartbeatSuccEvent.java
+++ b/foundations/foundation-registry/src/main/java/org/apache/servicecomb/registry/api/event/task/HeartbeatSuccEvent.java
@@ -15,7 +15,7 @@
  * limitations under the License.
  */
 
-package org.apache.servicecomb.serviceregistry.task.event;
+package org.apache.servicecomb.registry.api.event.task;
 
 /**
  * Service Center Heart Beat success event
diff --git a/foundations/foundation-registry/src/main/java/org/apache/servicecomb/serviceregistry/task/event/RecoveryEvent.java b/foundations/foundation-registry/src/main/java/org/apache/servicecomb/registry/api/event/task/RecoveryEvent.java
similarity index 93%
rename from foundations/foundation-registry/src/main/java/org/apache/servicecomb/serviceregistry/task/event/RecoveryEvent.java
rename to foundations/foundation-registry/src/main/java/org/apache/servicecomb/registry/api/event/task/RecoveryEvent.java
index 3fb6af9..4fd0030 100644
--- a/foundations/foundation-registry/src/main/java/org/apache/servicecomb/serviceregistry/task/event/RecoveryEvent.java
+++ b/foundations/foundation-registry/src/main/java/org/apache/servicecomb/registry/api/event/task/RecoveryEvent.java
@@ -14,7 +14,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.apache.servicecomb.serviceregistry.task.event;
+package org.apache.servicecomb.registry.api.event.task;
 
 public class RecoveryEvent {
 
diff --git a/foundations/foundation-registry/src/main/java/org/apache/servicecomb/serviceregistry/task/event/SafeModeChangeEvent.java b/foundations/foundation-registry/src/main/java/org/apache/servicecomb/registry/api/event/task/SafeModeChangeEvent.java
similarity index 94%
rename from foundations/foundation-registry/src/main/java/org/apache/servicecomb/serviceregistry/task/event/SafeModeChangeEvent.java
rename to foundations/foundation-registry/src/main/java/org/apache/servicecomb/registry/api/event/task/SafeModeChangeEvent.java
index 31c4d75..38c23ab 100644
--- a/foundations/foundation-registry/src/main/java/org/apache/servicecomb/serviceregistry/task/event/SafeModeChangeEvent.java
+++ b/foundations/foundation-registry/src/main/java/org/apache/servicecomb/registry/api/event/task/SafeModeChangeEvent.java
@@ -14,7 +14,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.apache.servicecomb.serviceregistry.task.event;
+package org.apache.servicecomb.registry.api.event.task;
 
 /**
  * In safe mode, consumer will not delete instances.
diff --git a/foundations/foundation-registry/src/main/java/org/apache/servicecomb/serviceregistry/task/event/ShutdownEvent.java b/foundations/foundation-registry/src/main/java/org/apache/servicecomb/registry/api/event/task/ShutdownEvent.java
similarity index 93%
rename from foundations/foundation-registry/src/main/java/org/apache/servicecomb/serviceregistry/task/event/ShutdownEvent.java
rename to foundations/foundation-registry/src/main/java/org/apache/servicecomb/registry/api/event/task/ShutdownEvent.java
index b4bab44..2b0d7fe 100644
--- a/foundations/foundation-registry/src/main/java/org/apache/servicecomb/serviceregistry/task/event/ShutdownEvent.java
+++ b/foundations/foundation-registry/src/main/java/org/apache/servicecomb/registry/api/event/task/ShutdownEvent.java
@@ -14,7 +14,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.apache.servicecomb.serviceregistry.task.event;
+package org.apache.servicecomb.registry.api.event.task;
 
 public class ShutdownEvent {
 
diff --git a/foundations/foundation-registry/src/main/java/org/apache/servicecomb/serviceregistry/api/registry/BasePath.java b/foundations/foundation-registry/src/main/java/org/apache/servicecomb/registry/api/registry/BasePath.java
similarity index 95%
rename from foundations/foundation-registry/src/main/java/org/apache/servicecomb/serviceregistry/api/registry/BasePath.java
rename to foundations/foundation-registry/src/main/java/org/apache/servicecomb/registry/api/registry/BasePath.java
index 986d51b..a83e9c8 100644
--- a/foundations/foundation-registry/src/main/java/org/apache/servicecomb/serviceregistry/api/registry/BasePath.java
+++ b/foundations/foundation-registry/src/main/java/org/apache/servicecomb/registry/api/registry/BasePath.java
@@ -15,7 +15,7 @@
  * limitations under the License.
  */
 
-package org.apache.servicecomb.serviceregistry.api.registry;
+package org.apache.servicecomb.registry.api.registry;
 
 import java.util.Map;
 
diff --git a/foundations/foundation-registry/src/main/java/org/apache/servicecomb/serviceregistry/api/registry/DataCenterInfo.java b/foundations/foundation-registry/src/main/java/org/apache/servicecomb/registry/api/registry/DataCenterInfo.java
similarity index 95%
rename from foundations/foundation-registry/src/main/java/org/apache/servicecomb/serviceregistry/api/registry/DataCenterInfo.java
rename to foundations/foundation-registry/src/main/java/org/apache/servicecomb/registry/api/registry/DataCenterInfo.java
index 066ca84..b178b31 100644
--- a/foundations/foundation-registry/src/main/java/org/apache/servicecomb/serviceregistry/api/registry/DataCenterInfo.java
+++ b/foundations/foundation-registry/src/main/java/org/apache/servicecomb/registry/api/registry/DataCenterInfo.java
@@ -14,7 +14,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.apache.servicecomb.serviceregistry.api.registry;
+package org.apache.servicecomb.registry.api.registry;
 
 public class DataCenterInfo {
 
diff --git a/foundations/foundation-registry/src/main/java/org/apache/servicecomb/serviceregistry/api/response/FindInstancesResponse.java b/foundations/foundation-registry/src/main/java/org/apache/servicecomb/registry/api/registry/FindInstancesResponse.java
similarity index 90%
rename from foundations/foundation-registry/src/main/java/org/apache/servicecomb/serviceregistry/api/response/FindInstancesResponse.java
rename to foundations/foundation-registry/src/main/java/org/apache/servicecomb/registry/api/registry/FindInstancesResponse.java
index 4376967..5a9952d 100644
--- a/foundations/foundation-registry/src/main/java/org/apache/servicecomb/serviceregistry/api/response/FindInstancesResponse.java
+++ b/foundations/foundation-registry/src/main/java/org/apache/servicecomb/registry/api/registry/FindInstancesResponse.java
@@ -15,12 +15,10 @@
  * limitations under the License.
  */
 
-package org.apache.servicecomb.serviceregistry.api.response;
+package org.apache.servicecomb.registry.api.registry;
 
 import java.util.List;
 
-import org.apache.servicecomb.serviceregistry.api.registry.MicroserviceInstance;
-
 public class FindInstancesResponse {
   private List<MicroserviceInstance> instances;
 
diff --git a/foundations/foundation-registry/src/main/java/org/apache/servicecomb/serviceregistry/api/registry/Framework.java b/foundations/foundation-registry/src/main/java/org/apache/servicecomb/registry/api/registry/Framework.java
similarity index 95%
rename from foundations/foundation-registry/src/main/java/org/apache/servicecomb/serviceregistry/api/registry/Framework.java
rename to foundations/foundation-registry/src/main/java/org/apache/servicecomb/registry/api/registry/Framework.java
index a15f4cd..04c970b 100644
--- a/foundations/foundation-registry/src/main/java/org/apache/servicecomb/serviceregistry/api/registry/Framework.java
+++ b/foundations/foundation-registry/src/main/java/org/apache/servicecomb/registry/api/registry/Framework.java
@@ -15,7 +15,7 @@
  * limitations under the License.
  */
 
-package org.apache.servicecomb.serviceregistry.api.registry;
+package org.apache.servicecomb.registry.api.registry;
 
 /**
  * Created by on 2017/12/20.
diff --git a/foundations/foundation-registry/src/main/java/org/apache/servicecomb/serviceregistry/api/registry/FrameworkVersions.java b/foundations/foundation-registry/src/main/java/org/apache/servicecomb/registry/api/registry/FrameworkVersions.java
similarity index 91%
rename from foundations/foundation-registry/src/main/java/org/apache/servicecomb/serviceregistry/api/registry/FrameworkVersions.java
rename to foundations/foundation-registry/src/main/java/org/apache/servicecomb/registry/api/registry/FrameworkVersions.java
index 6e10241..dd4bf78 100644
--- a/foundations/foundation-registry/src/main/java/org/apache/servicecomb/serviceregistry/api/registry/FrameworkVersions.java
+++ b/foundations/foundation-registry/src/main/java/org/apache/servicecomb/registry/api/registry/FrameworkVersions.java
@@ -14,11 +14,11 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.apache.servicecomb.serviceregistry.api.registry;
+package org.apache.servicecomb.registry.api.registry;
 
 import java.util.ServiceLoader;
 
-import org.apache.servicecomb.serviceregistry.api.Versions;
+import org.apache.servicecomb.registry.api.Versions;
 
 public class FrameworkVersions {
   private static final ServiceLoader<Versions> frameworkVersions = ServiceLoader.load(Versions.class);
diff --git a/foundations/foundation-registry/src/main/java/org/apache/servicecomb/serviceregistry/api/registry/HealthCheck.java b/foundations/foundation-registry/src/main/java/org/apache/servicecomb/registry/api/registry/HealthCheck.java
similarity index 96%
rename from foundations/foundation-registry/src/main/java/org/apache/servicecomb/serviceregistry/api/registry/HealthCheck.java
rename to foundations/foundation-registry/src/main/java/org/apache/servicecomb/registry/api/registry/HealthCheck.java
index 4c73673..91b4def 100644
--- a/foundations/foundation-registry/src/main/java/org/apache/servicecomb/serviceregistry/api/registry/HealthCheck.java
+++ b/foundations/foundation-registry/src/main/java/org/apache/servicecomb/registry/api/registry/HealthCheck.java
@@ -15,7 +15,7 @@
  * limitations under the License.
  */
 
-package org.apache.servicecomb.serviceregistry.api.registry;
+package org.apache.servicecomb.registry.api.registry;
 
 import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
 
diff --git a/foundations/foundation-registry/src/main/java/org/apache/servicecomb/serviceregistry/api/registry/HealthCheckMode.java b/foundations/foundation-registry/src/main/java/org/apache/servicecomb/registry/api/registry/HealthCheckMode.java
similarity index 94%
rename from foundations/foundation-registry/src/main/java/org/apache/servicecomb/serviceregistry/api/registry/HealthCheckMode.java
rename to foundations/foundation-registry/src/main/java/org/apache/servicecomb/registry/api/registry/HealthCheckMode.java
index 30c6b7e..0a1fa77 100644
--- a/foundations/foundation-registry/src/main/java/org/apache/servicecomb/serviceregistry/api/registry/HealthCheckMode.java
+++ b/foundations/foundation-registry/src/main/java/org/apache/servicecomb/registry/api/registry/HealthCheckMode.java
@@ -15,7 +15,7 @@
  * limitations under the License.
  */
 
-package org.apache.servicecomb.serviceregistry.api.registry;
+package org.apache.servicecomb.registry.api.registry;
 
 import com.fasterxml.jackson.annotation.JsonValue;
 
diff --git a/foundations/foundation-registry/src/main/java/org/apache/servicecomb/serviceregistry/api/registry/Microservice.java b/foundations/foundation-registry/src/main/java/org/apache/servicecomb/registry/api/registry/Microservice.java
similarity index 97%
rename from foundations/foundation-registry/src/main/java/org/apache/servicecomb/serviceregistry/api/registry/Microservice.java
rename to foundations/foundation-registry/src/main/java/org/apache/servicecomb/registry/api/registry/Microservice.java
index 17f7d4d..080489e 100644
--- a/foundations/foundation-registry/src/main/java/org/apache/servicecomb/serviceregistry/api/registry/Microservice.java
+++ b/foundations/foundation-registry/src/main/java/org/apache/servicecomb/registry/api/registry/Microservice.java
@@ -15,14 +15,14 @@
  * limitations under the License.
  */
 
-package org.apache.servicecomb.serviceregistry.api.registry;
+package org.apache.servicecomb.registry.api.registry;
 
 import java.util.ArrayList;
 import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
 
-import org.apache.servicecomb.serviceregistry.definition.DefinitionConst;
+import org.apache.servicecomb.registry.definition.DefinitionConst;
 
 import com.fasterxml.jackson.annotation.JsonIgnore;
 import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
diff --git a/foundations/foundation-registry/src/main/java/org/apache/servicecomb/serviceregistry/api/registry/MicroserviceFactory.java b/foundations/foundation-registry/src/main/java/org/apache/servicecomb/registry/api/registry/MicroserviceFactory.java
similarity index 84%
rename from foundations/foundation-registry/src/main/java/org/apache/servicecomb/serviceregistry/api/registry/MicroserviceFactory.java
rename to foundations/foundation-registry/src/main/java/org/apache/servicecomb/registry/api/registry/MicroserviceFactory.java
index 2ace55f..855afa3 100644
--- a/foundations/foundation-registry/src/main/java/org/apache/servicecomb/serviceregistry/api/registry/MicroserviceFactory.java
+++ b/foundations/foundation-registry/src/main/java/org/apache/servicecomb/registry/api/registry/MicroserviceFactory.java
@@ -14,7 +14,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.apache.servicecomb.serviceregistry.api.registry;
+package org.apache.servicecomb.registry.api.registry;
 
 import static org.apache.servicecomb.foundation.common.base.ServiceCombConstants.CONFIG_APPLICATION_ID_KEY;
 import static org.apache.servicecomb.foundation.common.base.ServiceCombConstants.CONFIG_QUALIFIED_MICROSERVICE_DESCRIPTION_KEY;
@@ -24,17 +24,15 @@ import static org.apache.servicecomb.foundation.common.base.ServiceCombConstants
 import static org.apache.servicecomb.foundation.common.base.ServiceCombConstants.DEFAULT_MICROSERVICE_NAME;
 import static org.apache.servicecomb.foundation.common.base.ServiceCombConstants.DEFAULT_SERVICECOMB_ENV;
 import static org.apache.servicecomb.foundation.common.base.ServiceCombConstants.SERVICECOMB_ENV;
-import static org.apache.servicecomb.serviceregistry.definition.DefinitionConst.CONFIG_ALLOW_CROSS_APP_KEY;
-import static org.apache.servicecomb.serviceregistry.definition.DefinitionConst.DEFAULT_APPLICATION_ID;
-import static org.apache.servicecomb.serviceregistry.definition.DefinitionConst.DEFAULT_MICROSERVICE_VERSION;
 
 import java.util.Map;
 
 import org.apache.commons.configuration.Configuration;
-import org.apache.servicecomb.serviceregistry.config.ConfigurePropertyUtils;
-import org.apache.servicecomb.serviceregistry.config.MicroservicePropertiesLoader;
-import org.apache.servicecomb.serviceregistry.definition.MicroserviceDefinition;
-import org.apache.servicecomb.serviceregistry.version.Version;
+import org.apache.servicecomb.registry.config.ConfigurePropertyUtils;
+import org.apache.servicecomb.registry.config.MicroservicePropertiesLoader;
+import org.apache.servicecomb.registry.definition.DefinitionConst;
+import org.apache.servicecomb.registry.definition.MicroserviceDefinition;
+import org.apache.servicecomb.registry.version.Version;
 
 public class MicroserviceFactory {
   public Microservice create(String appId, String microserviceName) {
@@ -53,9 +51,9 @@ public class MicroserviceFactory {
     Microservice microservice = new Microservice();
     microservice.setServiceName(configuration.getString(CONFIG_QUALIFIED_MICROSERVICE_NAME_KEY,
         DEFAULT_MICROSERVICE_NAME));
-    microservice.setAppId(configuration.getString(CONFIG_APPLICATION_ID_KEY, DEFAULT_APPLICATION_ID));
+    microservice.setAppId(configuration.getString(CONFIG_APPLICATION_ID_KEY, DefinitionConst.DEFAULT_APPLICATION_ID));
     String version = configuration.getString(CONFIG_QUALIFIED_MICROSERVICE_VERSION_KEY,
-        DEFAULT_MICROSERVICE_VERSION);
+        DefinitionConst.DEFAULT_MICROSERVICE_VERSION);
     // just check version format
     new Version(version);
     microservice.setVersion(version);
@@ -94,6 +92,6 @@ public class MicroserviceFactory {
   }
 
   private boolean allowCrossApp(Map<String, String> propertiesMap) {
-    return Boolean.valueOf(propertiesMap.get(CONFIG_ALLOW_CROSS_APP_KEY));
+    return Boolean.valueOf(propertiesMap.get(DefinitionConst.CONFIG_ALLOW_CROSS_APP_KEY));
   }
 }
diff --git a/foundations/foundation-registry/src/main/java/org/apache/servicecomb/serviceregistry/api/registry/MicroserviceInstance.java b/foundations/foundation-registry/src/main/java/org/apache/servicecomb/registry/api/registry/MicroserviceInstance.java
similarity index 85%
rename from foundations/foundation-registry/src/main/java/org/apache/servicecomb/serviceregistry/api/registry/MicroserviceInstance.java
rename to foundations/foundation-registry/src/main/java/org/apache/servicecomb/registry/api/registry/MicroserviceInstance.java
index 445b42a..507042c 100644
--- a/foundations/foundation-registry/src/main/java/org/apache/servicecomb/serviceregistry/api/registry/MicroserviceInstance.java
+++ b/foundations/foundation-registry/src/main/java/org/apache/servicecomb/registry/api/registry/MicroserviceInstance.java
@@ -15,13 +15,7 @@
  * limitations under the License.
  */
 
-package org.apache.servicecomb.serviceregistry.api.registry;
-
-import static org.apache.servicecomb.serviceregistry.definition.DefinitionConst.CONFIG_QUALIFIED_INSTANCE_ENVIRONMENT_KEY;
-import static org.apache.servicecomb.serviceregistry.definition.DefinitionConst.CONFIG_QUALIFIED_INSTANCE_INITIAL_STATUS;
-import static org.apache.servicecomb.serviceregistry.definition.DefinitionConst.DEFAULT_INSTANCE_ENVIRONMENT;
-import static org.apache.servicecomb.serviceregistry.definition.DefinitionConst.DEFAULT_INSTANCE_INITIAL_STATUS;
-import static org.apache.servicecomb.serviceregistry.definition.DefinitionConst.DEFAULT_STAGE;
+package org.apache.servicecomb.registry.api.registry;
 
 import java.util.ArrayList;
 import java.util.HashMap;
@@ -30,7 +24,8 @@ import java.util.Map;
 
 import org.apache.commons.configuration.Configuration;
 import org.apache.commons.lang.StringUtils;
-import org.apache.servicecomb.serviceregistry.config.InstancePropertiesLoader;
+import org.apache.servicecomb.registry.config.InstancePropertiesLoader;
+import org.apache.servicecomb.registry.definition.DefinitionConst;
 
 import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
 import com.netflix.config.DynamicPropertyFactory;
@@ -176,12 +171,14 @@ public class MicroserviceInstance {
   public static MicroserviceInstance createFromDefinition(Configuration configuration) {
     MicroserviceInstance microserviceInstance = new MicroserviceInstance();
     // default hard coded values
-    microserviceInstance.setStage(DEFAULT_STAGE);
+    microserviceInstance.setStage(DefinitionConst.DEFAULT_STAGE);
     microserviceInstance
         .setEnvironment(
-            configuration.getString(CONFIG_QUALIFIED_INSTANCE_ENVIRONMENT_KEY, DEFAULT_INSTANCE_ENVIRONMENT));
+            configuration.getString(
+                DefinitionConst.CONFIG_QUALIFIED_INSTANCE_ENVIRONMENT_KEY, DefinitionConst.DEFAULT_INSTANCE_ENVIRONMENT));
     microserviceInstance.setStatus(MicroserviceInstanceStatus
-        .valueOf(configuration.getString(CONFIG_QUALIFIED_INSTANCE_INITIAL_STATUS, DEFAULT_INSTANCE_INITIAL_STATUS)));
+        .valueOf(configuration.getString(
+            DefinitionConst.CONFIG_QUALIFIED_INSTANCE_INITIAL_STATUS, DefinitionConst.DEFAULT_INSTANCE_INITIAL_STATUS)));
     HealthCheck healthCheck = new HealthCheck();
     healthCheck.setMode(HealthCheckMode.HEARTBEAT);
     microserviceInstance.setHealthCheck(healthCheck);
diff --git a/foundations/foundation-registry/src/main/java/org/apache/servicecomb/serviceregistry/api/registry/MicroserviceInstanceStatus.java b/foundations/foundation-registry/src/main/java/org/apache/servicecomb/registry/api/registry/MicroserviceInstanceStatus.java
similarity index 93%
rename from foundations/foundation-registry/src/main/java/org/apache/servicecomb/serviceregistry/api/registry/MicroserviceInstanceStatus.java
rename to foundations/foundation-registry/src/main/java/org/apache/servicecomb/registry/api/registry/MicroserviceInstanceStatus.java
index 27c56ce..536fead 100644
--- a/foundations/foundation-registry/src/main/java/org/apache/servicecomb/serviceregistry/api/registry/MicroserviceInstanceStatus.java
+++ b/foundations/foundation-registry/src/main/java/org/apache/servicecomb/registry/api/registry/MicroserviceInstanceStatus.java
@@ -15,7 +15,7 @@
  * limitations under the License.
  */
 
-package org.apache.servicecomb.serviceregistry.api.registry;
+package org.apache.servicecomb.registry.api.registry;
 
 /**
  * Created by   on 2016/12/5.
diff --git a/foundations/foundation-registry/src/main/java/org/apache/servicecomb/serviceregistry/client/http/MicroserviceInstances.java b/foundations/foundation-registry/src/main/java/org/apache/servicecomb/registry/api/registry/MicroserviceInstances.java
similarity index 95%
rename from foundations/foundation-registry/src/main/java/org/apache/servicecomb/serviceregistry/client/http/MicroserviceInstances.java
rename to foundations/foundation-registry/src/main/java/org/apache/servicecomb/registry/api/registry/MicroserviceInstances.java
index 86b8537..bf8ff26 100644
--- a/foundations/foundation-registry/src/main/java/org/apache/servicecomb/serviceregistry/client/http/MicroserviceInstances.java
+++ b/foundations/foundation-registry/src/main/java/org/apache/servicecomb/registry/api/registry/MicroserviceInstances.java
@@ -15,9 +15,7 @@
  * limitations under the License.
  */
 
-package org.apache.servicecomb.serviceregistry.client.http;
-
-import org.apache.servicecomb.serviceregistry.api.response.FindInstancesResponse;
+package org.apache.servicecomb.registry.api.registry;
 
 public class MicroserviceInstances {
   private boolean microserviceNotExist;
diff --git a/foundations/foundation-registry/src/main/java/org/apache/servicecomb/serviceregistry/api/registry/MicroserviceStatus.java b/foundations/foundation-registry/src/main/java/org/apache/servicecomb/registry/api/registry/MicroserviceStatus.java
similarity index 93%
rename from foundations/foundation-registry/src/main/java/org/apache/servicecomb/serviceregistry/api/registry/MicroserviceStatus.java
rename to foundations/foundation-registry/src/main/java/org/apache/servicecomb/registry/api/registry/MicroserviceStatus.java
index 094dbbb..ca043fd 100644
--- a/foundations/foundation-registry/src/main/java/org/apache/servicecomb/serviceregistry/api/registry/MicroserviceStatus.java
+++ b/foundations/foundation-registry/src/main/java/org/apache/servicecomb/registry/api/registry/MicroserviceStatus.java
@@ -15,7 +15,7 @@
  * limitations under the License.
  */
 
-package org.apache.servicecomb.serviceregistry.api.registry;
+package org.apache.servicecomb.registry.api.registry;
 
 /**
  * Created by   on 2016/12/5.
diff --git a/foundations/foundation-registry/src/main/java/org/apache/servicecomb/serviceregistry/api/registry/WatchAction.java b/foundations/foundation-registry/src/main/java/org/apache/servicecomb/registry/api/registry/WatchAction.java
similarity index 95%
rename from foundations/foundation-registry/src/main/java/org/apache/servicecomb/serviceregistry/api/registry/WatchAction.java
rename to foundations/foundation-registry/src/main/java/org/apache/servicecomb/registry/api/registry/WatchAction.java
index 257e9e9..bc731f4 100644
--- a/foundations/foundation-registry/src/main/java/org/apache/servicecomb/serviceregistry/api/registry/WatchAction.java
+++ b/foundations/foundation-registry/src/main/java/org/apache/servicecomb/registry/api/registry/WatchAction.java
@@ -15,7 +15,7 @@
  * limitations under the License.
  */
 
-package org.apache.servicecomb.serviceregistry.api.registry;
+package org.apache.servicecomb.registry.api.registry;
 
 import com.fasterxml.jackson.annotation.JsonValue;
 
diff --git a/foundations/foundation-registry/src/main/java/org/apache/servicecomb/serviceregistry/cache/CacheEndpoint.java b/foundations/foundation-registry/src/main/java/org/apache/servicecomb/registry/cache/CacheEndpoint.java
similarity index 90%
rename from foundations/foundation-registry/src/main/java/org/apache/servicecomb/serviceregistry/cache/CacheEndpoint.java
rename to foundations/foundation-registry/src/main/java/org/apache/servicecomb/registry/cache/CacheEndpoint.java
index 87596ba..a369628 100644
--- a/foundations/foundation-registry/src/main/java/org/apache/servicecomb/serviceregistry/cache/CacheEndpoint.java
+++ b/foundations/foundation-registry/src/main/java/org/apache/servicecomb/registry/cache/CacheEndpoint.java
@@ -15,9 +15,9 @@
  * limitations under the License.
  */
 
-package org.apache.servicecomb.serviceregistry.cache;
+package org.apache.servicecomb.registry.cache;
 
-import org.apache.servicecomb.serviceregistry.api.registry.MicroserviceInstance;
+import org.apache.servicecomb.registry.api.registry.MicroserviceInstance;
 
 public class CacheEndpoint {
   // 所属的服务实例
diff --git a/foundations/foundation-registry/src/main/java/org/apache/servicecomb/serviceregistry/cache/InstanceCache.java b/foundations/foundation-registry/src/main/java/org/apache/servicecomb/registry/cache/InstanceCache.java
similarity index 95%
rename from foundations/foundation-registry/src/main/java/org/apache/servicecomb/serviceregistry/cache/InstanceCache.java
rename to foundations/foundation-registry/src/main/java/org/apache/servicecomb/registry/cache/InstanceCache.java
index 98bd147..d6cf875 100644
--- a/foundations/foundation-registry/src/main/java/org/apache/servicecomb/serviceregistry/cache/InstanceCache.java
+++ b/foundations/foundation-registry/src/main/java/org/apache/servicecomb/registry/cache/InstanceCache.java
@@ -15,7 +15,7 @@
  * limitations under the License.
  */
 
-package org.apache.servicecomb.serviceregistry.cache;
+package org.apache.servicecomb.registry.cache;
 
 import java.net.URI;
 import java.util.ArrayList;
@@ -25,8 +25,8 @@ import java.util.Map;
 import java.util.concurrent.atomic.AtomicInteger;
 
 import org.apache.servicecomb.foundation.common.cache.VersionedCache;
-import org.apache.servicecomb.serviceregistry.api.registry.MicroserviceInstance;
-import org.apache.servicecomb.serviceregistry.api.registry.MicroserviceInstanceStatus;
+import org.apache.servicecomb.registry.api.registry.MicroserviceInstance;
+import org.apache.servicecomb.registry.api.registry.MicroserviceInstanceStatus;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
diff --git a/foundations/foundation-registry/src/main/java/org/apache/servicecomb/serviceregistry/cache/InstanceCacheManager.java b/foundations/foundation-registry/src/main/java/org/apache/servicecomb/registry/cache/InstanceCacheManager.java
similarity index 95%
rename from foundations/foundation-registry/src/main/java/org/apache/servicecomb/serviceregistry/cache/InstanceCacheManager.java
rename to foundations/foundation-registry/src/main/java/org/apache/servicecomb/registry/cache/InstanceCacheManager.java
index 43a7377..7daa947 100644
--- a/foundations/foundation-registry/src/main/java/org/apache/servicecomb/serviceregistry/cache/InstanceCacheManager.java
+++ b/foundations/foundation-registry/src/main/java/org/apache/servicecomb/registry/cache/InstanceCacheManager.java
@@ -15,7 +15,7 @@
  * limitations under the License.
  */
 
-package org.apache.servicecomb.serviceregistry.cache;
+package org.apache.servicecomb.registry.cache;
 
 import org.apache.servicecomb.foundation.common.cache.VersionedCache;
 
diff --git a/foundations/foundation-registry/src/main/java/org/apache/servicecomb/serviceregistry/cache/InstanceCacheManagerNew.java b/foundations/foundation-registry/src/main/java/org/apache/servicecomb/registry/cache/InstanceCacheManagerNew.java
similarity index 93%
rename from foundations/foundation-registry/src/main/java/org/apache/servicecomb/serviceregistry/cache/InstanceCacheManagerNew.java
rename to foundations/foundation-registry/src/main/java/org/apache/servicecomb/registry/cache/InstanceCacheManagerNew.java
index 5b0d839..dbb28d9 100644
--- a/foundations/foundation-registry/src/main/java/org/apache/servicecomb/serviceregistry/cache/InstanceCacheManagerNew.java
+++ b/foundations/foundation-registry/src/main/java/org/apache/servicecomb/registry/cache/InstanceCacheManagerNew.java
@@ -15,10 +15,10 @@
  * limitations under the License.
  */
 
-package org.apache.servicecomb.serviceregistry.cache;
+package org.apache.servicecomb.registry.cache;
 
 import org.apache.servicecomb.foundation.common.cache.VersionedCache;
-import org.apache.servicecomb.serviceregistry.consumer.AppManager;
+import org.apache.servicecomb.registry.consumer.AppManager;
 
 public class InstanceCacheManagerNew implements InstanceCacheManager {
   private AppManager appManager;
diff --git a/foundations/foundation-registry/src/main/java/org/apache/servicecomb/serviceregistry/cache/MicroserviceInstanceCache.java b/foundations/foundation-registry/src/main/java/org/apache/servicecomb/registry/cache/MicroserviceInstanceCache.java
similarity index 92%
rename from foundations/foundation-registry/src/main/java/org/apache/servicecomb/serviceregistry/cache/MicroserviceInstanceCache.java
rename to foundations/foundation-registry/src/main/java/org/apache/servicecomb/registry/cache/MicroserviceInstanceCache.java
index 2a111db..1de5c37 100644
--- a/foundations/foundation-registry/src/main/java/org/apache/servicecomb/serviceregistry/cache/MicroserviceInstanceCache.java
+++ b/foundations/foundation-registry/src/main/java/org/apache/servicecomb/registry/cache/MicroserviceInstanceCache.java
@@ -15,15 +15,15 @@
  * limitations under the License.
  */
 
-package org.apache.servicecomb.serviceregistry.cache;
+package org.apache.servicecomb.registry.cache;
 
 import java.util.concurrent.Callable;
 import java.util.concurrent.ExecutionException;
 import java.util.concurrent.TimeUnit;
 
-import org.apache.servicecomb.serviceregistry.DiscoveryManager;
-import org.apache.servicecomb.serviceregistry.api.registry.Microservice;
-import org.apache.servicecomb.serviceregistry.api.registry.MicroserviceInstance;
+import org.apache.servicecomb.registry.api.registry.Microservice;
+import org.apache.servicecomb.registry.api.registry.MicroserviceInstance;
+import org.apache.servicecomb.registry.DiscoveryManager;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
diff --git a/foundations/foundation-registry/src/main/java/org/apache/servicecomb/serviceregistry/config/AbstractPropertiesLoader.java b/foundations/foundation-registry/src/main/java/org/apache/servicecomb/registry/config/AbstractPropertiesLoader.java
similarity index 97%
rename from foundations/foundation-registry/src/main/java/org/apache/servicecomb/serviceregistry/config/AbstractPropertiesLoader.java
rename to foundations/foundation-registry/src/main/java/org/apache/servicecomb/registry/config/AbstractPropertiesLoader.java
index 07aed58..61144a1 100644
--- a/foundations/foundation-registry/src/main/java/org/apache/servicecomb/serviceregistry/config/AbstractPropertiesLoader.java
+++ b/foundations/foundation-registry/src/main/java/org/apache/servicecomb/registry/config/AbstractPropertiesLoader.java
@@ -15,13 +15,13 @@
  * limitations under the License.
  */
 
-package org.apache.servicecomb.serviceregistry.config;
+package org.apache.servicecomb.registry.config;
 
 import java.util.HashMap;
 import java.util.Map;
 
 import org.apache.commons.configuration.Configuration;
-import org.apache.servicecomb.serviceregistry.api.PropertyExtended;
+import org.apache.servicecomb.registry.api.PropertyExtended;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 import org.springframework.util.StringUtils;
diff --git a/foundations/foundation-registry/src/main/java/org/apache/servicecomb/serviceregistry/config/ConfigurePropertyUtils.java b/foundations/foundation-registry/src/main/java/org/apache/servicecomb/registry/config/ConfigurePropertyUtils.java
similarity index 93%
rename from foundations/foundation-registry/src/main/java/org/apache/servicecomb/serviceregistry/config/ConfigurePropertyUtils.java
rename to foundations/foundation-registry/src/main/java/org/apache/servicecomb/registry/config/ConfigurePropertyUtils.java
index fb2432b..49d8a3d 100644
--- a/foundations/foundation-registry/src/main/java/org/apache/servicecomb/serviceregistry/config/ConfigurePropertyUtils.java
+++ b/foundations/foundation-registry/src/main/java/org/apache/servicecomb/registry/config/ConfigurePropertyUtils.java
@@ -15,7 +15,7 @@
  * limitations under the License.
  */
 
-package org.apache.servicecomb.serviceregistry.config;
+package org.apache.servicecomb.registry.config;
 
 import java.util.ArrayList;
 import java.util.HashMap;
@@ -26,8 +26,8 @@ import java.util.Map;
 import org.apache.commons.configuration.Configuration;
 import org.apache.commons.lang.StringUtils;
 import org.apache.servicecomb.foundation.common.utils.ClassLoaderScopeContext;
-import org.apache.servicecomb.serviceregistry.api.registry.BasePath;
-import org.apache.servicecomb.serviceregistry.definition.DefinitionConst;
+import org.apache.servicecomb.registry.api.registry.BasePath;
+import org.apache.servicecomb.registry.definition.DefinitionConst;
 
 import com.netflix.config.DynamicPropertyFactory;
 
diff --git a/foundations/foundation-registry/src/main/java/org/apache/servicecomb/serviceregistry/config/InstancePropertiesLoader.java b/foundations/foundation-registry/src/main/java/org/apache/servicecomb/registry/config/InstancePropertiesLoader.java
similarity index 95%
rename from foundations/foundation-registry/src/main/java/org/apache/servicecomb/serviceregistry/config/InstancePropertiesLoader.java
rename to foundations/foundation-registry/src/main/java/org/apache/servicecomb/registry/config/InstancePropertiesLoader.java
index 46f1e95..cd950d6 100644
--- a/foundations/foundation-registry/src/main/java/org/apache/servicecomb/serviceregistry/config/InstancePropertiesLoader.java
+++ b/foundations/foundation-registry/src/main/java/org/apache/servicecomb/registry/config/InstancePropertiesLoader.java
@@ -15,7 +15,7 @@
  * limitations under the License.
  */
 
-package org.apache.servicecomb.serviceregistry.config;
+package org.apache.servicecomb.registry.config;
 
 public final class InstancePropertiesLoader extends AbstractPropertiesLoader {
 
diff --git a/foundations/foundation-registry/src/main/java/org/apache/servicecomb/serviceregistry/config/MicroservicePropertiesLoader.java b/foundations/foundation-registry/src/main/java/org/apache/servicecomb/registry/config/MicroservicePropertiesLoader.java
similarity index 95%
rename from foundations/foundation-registry/src/main/java/org/apache/servicecomb/serviceregistry/config/MicroservicePropertiesLoader.java
rename to foundations/foundation-registry/src/main/java/org/apache/servicecomb/registry/config/MicroservicePropertiesLoader.java
index 0eef433..62654e4 100644
--- a/foundations/foundation-registry/src/main/java/org/apache/servicecomb/serviceregistry/config/MicroservicePropertiesLoader.java
+++ b/foundations/foundation-registry/src/main/java/org/apache/servicecomb/registry/config/MicroservicePropertiesLoader.java
@@ -15,7 +15,7 @@
  * limitations under the License.
  */
 
-package org.apache.servicecomb.serviceregistry.config;
+package org.apache.servicecomb.registry.config;
 
 import static org.apache.servicecomb.foundation.common.base.ServiceCombConstants.CONFIG_SERVICE_DESCRIPTION_KEY;
 
diff --git a/foundations/foundation-registry/src/main/java/org/apache/servicecomb/serviceregistry/config/ServiceRegistryCommonConfig.java b/foundations/foundation-registry/src/main/java/org/apache/servicecomb/registry/config/ServiceRegistryCommonConfig.java
similarity index 95%
rename from foundations/foundation-registry/src/main/java/org/apache/servicecomb/serviceregistry/config/ServiceRegistryCommonConfig.java
rename to foundations/foundation-registry/src/main/java/org/apache/servicecomb/registry/config/ServiceRegistryCommonConfig.java
index 12c51a2..bda0542 100644
--- a/foundations/foundation-registry/src/main/java/org/apache/servicecomb/serviceregistry/config/ServiceRegistryCommonConfig.java
+++ b/foundations/foundation-registry/src/main/java/org/apache/servicecomb/registry/config/ServiceRegistryCommonConfig.java
@@ -15,7 +15,7 @@
  * limitations under the License.
  */
 
-package org.apache.servicecomb.serviceregistry.config;
+package org.apache.servicecomb.registry.config;
 
 import com.netflix.config.DynamicPropertyFactory;
 
diff --git a/foundations/foundation-registry/src/main/java/org/apache/servicecomb/serviceregistry/consumer/AppManager.java b/foundations/foundation-registry/src/main/java/org/apache/servicecomb/registry/consumer/AppManager.java
similarity index 92%
rename from foundations/foundation-registry/src/main/java/org/apache/servicecomb/serviceregistry/consumer/AppManager.java
rename to foundations/foundation-registry/src/main/java/org/apache/servicecomb/registry/consumer/AppManager.java
index 6cc2e50..cfa3f09 100644
--- a/foundations/foundation-registry/src/main/java/org/apache/servicecomb/serviceregistry/consumer/AppManager.java
+++ b/foundations/foundation-registry/src/main/java/org/apache/servicecomb/registry/consumer/AppManager.java
@@ -15,14 +15,14 @@
  * limitations under the License.
  */
 
-package org.apache.servicecomb.serviceregistry.consumer;
+package org.apache.servicecomb.registry.consumer;
 
 import java.util.Map;
 
 import org.apache.servicecomb.foundation.common.concurrent.ConcurrentHashMapEx;
 import org.apache.servicecomb.foundation.common.event.EventManager;
-import org.apache.servicecomb.serviceregistry.api.response.MicroserviceInstanceChangedEvent;
-import org.apache.servicecomb.serviceregistry.task.event.SafeModeChangeEvent;
+import org.apache.servicecomb.registry.api.event.MicroserviceInstanceChangedEvent;
+import org.apache.servicecomb.registry.api.event.task.SafeModeChangeEvent;
 
 import com.google.common.eventbus.EventBus;
 
diff --git a/foundations/foundation-registry/src/main/java/org/apache/servicecomb/serviceregistry/consumer/MicroserviceInstancePing.java b/foundations/foundation-registry/src/main/java/org/apache/servicecomb/registry/consumer/MicroserviceInstancePing.java
similarity index 89%
rename from foundations/foundation-registry/src/main/java/org/apache/servicecomb/serviceregistry/consumer/MicroserviceInstancePing.java
rename to foundations/foundation-registry/src/main/java/org/apache/servicecomb/registry/consumer/MicroserviceInstancePing.java
index 7bbfa8c..0f4e1fc 100644
--- a/foundations/foundation-registry/src/main/java/org/apache/servicecomb/serviceregistry/consumer/MicroserviceInstancePing.java
+++ b/foundations/foundation-registry/src/main/java/org/apache/servicecomb/registry/consumer/MicroserviceInstancePing.java
@@ -14,9 +14,9 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.apache.servicecomb.serviceregistry.consumer;
+package org.apache.servicecomb.registry.consumer;
 
-import org.apache.servicecomb.serviceregistry.api.registry.MicroserviceInstance;
+import org.apache.servicecomb.registry.api.registry.MicroserviceInstance;
 
 /**
  * SPI interface to ping microservice instance status in Instance Protection Mode, which means
diff --git a/foundations/foundation-registry/src/main/java/org/apache/servicecomb/serviceregistry/consumer/MicroserviceManager.java b/foundations/foundation-registry/src/main/java/org/apache/servicecomb/registry/consumer/MicroserviceManager.java
similarity index 93%
rename from foundations/foundation-registry/src/main/java/org/apache/servicecomb/serviceregistry/consumer/MicroserviceManager.java
rename to foundations/foundation-registry/src/main/java/org/apache/servicecomb/registry/consumer/MicroserviceManager.java
index 569ba8a..5523c9f 100644
--- a/foundations/foundation-registry/src/main/java/org/apache/servicecomb/serviceregistry/consumer/MicroserviceManager.java
+++ b/foundations/foundation-registry/src/main/java/org/apache/servicecomb/registry/consumer/MicroserviceManager.java
@@ -15,13 +15,13 @@
  * limitations under the License.
  */
 
-package org.apache.servicecomb.serviceregistry.consumer;
+package org.apache.servicecomb.registry.consumer;
 
 import java.util.Map;
 
 import org.apache.servicecomb.foundation.common.concurrent.ConcurrentHashMapEx;
-import org.apache.servicecomb.serviceregistry.api.response.MicroserviceInstanceChangedEvent;
-import org.apache.servicecomb.serviceregistry.task.event.SafeModeChangeEvent;
+import org.apache.servicecomb.registry.api.event.MicroserviceInstanceChangedEvent;
+import org.apache.servicecomb.registry.api.event.task.SafeModeChangeEvent;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
diff --git a/foundations/foundation-registry/src/main/java/org/apache/servicecomb/serviceregistry/consumer/MicroserviceVersion.java b/foundations/foundation-registry/src/main/java/org/apache/servicecomb/registry/consumer/MicroserviceVersion.java
similarity index 87%
rename from foundations/foundation-registry/src/main/java/org/apache/servicecomb/serviceregistry/consumer/MicroserviceVersion.java
rename to foundations/foundation-registry/src/main/java/org/apache/servicecomb/registry/consumer/MicroserviceVersion.java
index ad73283..9972819 100644
--- a/foundations/foundation-registry/src/main/java/org/apache/servicecomb/serviceregistry/consumer/MicroserviceVersion.java
+++ b/foundations/foundation-registry/src/main/java/org/apache/servicecomb/registry/consumer/MicroserviceVersion.java
@@ -15,18 +15,18 @@
  * limitations under the License.
  */
 
-package org.apache.servicecomb.serviceregistry.consumer;
+package org.apache.servicecomb.registry.consumer;
 
 import java.util.Collection;
 import java.util.List;
 
 import org.apache.servicecomb.foundation.common.VendorExtensions;
-import org.apache.servicecomb.serviceregistry.DiscoveryManager;
-import org.apache.servicecomb.serviceregistry.api.registry.Microservice;
-import org.apache.servicecomb.serviceregistry.api.registry.MicroserviceInstance;
-import org.apache.servicecomb.serviceregistry.event.CreateMicroserviceVersionEvent;
-import org.apache.servicecomb.serviceregistry.event.DestroyMicroserviceVersionEvent;
-import org.apache.servicecomb.serviceregistry.version.Version;
+import org.apache.servicecomb.registry.api.event.CreateMicroserviceVersionEvent;
+import org.apache.servicecomb.registry.api.event.DestroyMicroserviceVersionEvent;
+import org.apache.servicecomb.registry.api.registry.Microservice;
+import org.apache.servicecomb.registry.api.registry.MicroserviceInstance;
+import org.apache.servicecomb.registry.DiscoveryManager;
+import org.apache.servicecomb.registry.version.Version;
 
 public class MicroserviceVersion {
   protected AppManager appManager;
diff --git a/foundations/foundation-registry/src/main/java/org/apache/servicecomb/serviceregistry/consumer/MicroserviceVersionRule.java b/foundations/foundation-registry/src/main/java/org/apache/servicecomb/registry/consumer/MicroserviceVersionRule.java
similarity index 93%
rename from foundations/foundation-registry/src/main/java/org/apache/servicecomb/serviceregistry/consumer/MicroserviceVersionRule.java
rename to foundations/foundation-registry/src/main/java/org/apache/servicecomb/registry/consumer/MicroserviceVersionRule.java
index 5e09dfd..d123ffe 100644
--- a/foundations/foundation-registry/src/main/java/org/apache/servicecomb/serviceregistry/consumer/MicroserviceVersionRule.java
+++ b/foundations/foundation-registry/src/main/java/org/apache/servicecomb/registry/consumer/MicroserviceVersionRule.java
@@ -15,7 +15,7 @@
  * limitations under the License.
  */
 
-package org.apache.servicecomb.serviceregistry.consumer;
+package org.apache.servicecomb.registry.consumer;
 
 import java.util.Collection;
 import java.util.Collections;
@@ -26,13 +26,13 @@ import java.util.stream.Collectors;
 
 import org.apache.servicecomb.foundation.common.cache.VersionedCache;
 import org.apache.servicecomb.foundation.common.utils.StringBuilderUtils;
-import org.apache.servicecomb.serviceregistry.api.registry.Framework;
-import org.apache.servicecomb.serviceregistry.api.registry.Microservice;
-import org.apache.servicecomb.serviceregistry.api.registry.MicroserviceInstance;
-import org.apache.servicecomb.serviceregistry.cache.InstanceCache;
-import org.apache.servicecomb.serviceregistry.definition.DefinitionConst;
-import org.apache.servicecomb.serviceregistry.version.VersionRule;
-import org.apache.servicecomb.serviceregistry.version.VersionRuleUtils;
+import org.apache.servicecomb.registry.api.registry.Framework;
+import org.apache.servicecomb.registry.api.registry.Microservice;
+import org.apache.servicecomb.registry.api.registry.MicroserviceInstance;
+import org.apache.servicecomb.registry.cache.InstanceCache;
+import org.apache.servicecomb.registry.definition.DefinitionConst;
+import org.apache.servicecomb.registry.version.VersionRule;
+import org.apache.servicecomb.registry.version.VersionRuleUtils;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
diff --git a/foundations/foundation-registry/src/main/java/org/apache/servicecomb/serviceregistry/consumer/MicroserviceVersionRuleData.java b/foundations/foundation-registry/src/main/java/org/apache/servicecomb/registry/consumer/MicroserviceVersionRuleData.java
similarity index 89%
rename from foundations/foundation-registry/src/main/java/org/apache/servicecomb/serviceregistry/consumer/MicroserviceVersionRuleData.java
rename to foundations/foundation-registry/src/main/java/org/apache/servicecomb/registry/consumer/MicroserviceVersionRuleData.java
index 9d823f3..04371bc 100644
--- a/foundations/foundation-registry/src/main/java/org/apache/servicecomb/serviceregistry/consumer/MicroserviceVersionRuleData.java
+++ b/foundations/foundation-registry/src/main/java/org/apache/servicecomb/registry/consumer/MicroserviceVersionRuleData.java
@@ -14,13 +14,13 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.apache.servicecomb.serviceregistry.consumer;
+package org.apache.servicecomb.registry.consumer;
 
 import java.util.Map;
 
 import org.apache.servicecomb.foundation.common.cache.VersionedCache;
-import org.apache.servicecomb.serviceregistry.api.registry.MicroserviceInstance;
-import org.apache.servicecomb.serviceregistry.cache.InstanceCache;
+import org.apache.servicecomb.registry.api.registry.MicroserviceInstance;
+import org.apache.servicecomb.registry.cache.InstanceCache;
 
 public class MicroserviceVersionRuleData {
   // if instances is not empty, latestVersion is relate to instances
diff --git a/foundations/foundation-registry/src/main/java/org/apache/servicecomb/serviceregistry/consumer/MicroserviceVersions.java b/foundations/foundation-registry/src/main/java/org/apache/servicecomb/registry/consumer/MicroserviceVersions.java
similarity index 92%
rename from foundations/foundation-registry/src/main/java/org/apache/servicecomb/serviceregistry/consumer/MicroserviceVersions.java
rename to foundations/foundation-registry/src/main/java/org/apache/servicecomb/registry/consumer/MicroserviceVersions.java
index c314506..a5c0028 100644
--- a/foundations/foundation-registry/src/main/java/org/apache/servicecomb/serviceregistry/consumer/MicroserviceVersions.java
+++ b/foundations/foundation-registry/src/main/java/org/apache/servicecomb/registry/consumer/MicroserviceVersions.java
@@ -15,7 +15,7 @@
  * limitations under the License.
  */
 
-package org.apache.servicecomb.serviceregistry.consumer;
+package org.apache.servicecomb.registry.consumer;
 
 import java.util.ArrayList;
 import java.util.Collection;
@@ -28,16 +28,16 @@ import java.util.Map.Entry;
 import org.apache.servicecomb.foundation.common.VendorExtensions;
 import org.apache.servicecomb.foundation.common.concurrent.ConcurrentHashMapEx;
 import org.apache.servicecomb.foundation.common.utils.SPIServiceUtils;
-import org.apache.servicecomb.serviceregistry.DiscoveryManager;
-import org.apache.servicecomb.serviceregistry.api.registry.MicroserviceInstance;
-import org.apache.servicecomb.serviceregistry.api.response.MicroserviceInstanceChangedEvent;
-import org.apache.servicecomb.serviceregistry.client.http.MicroserviceInstances;
-import org.apache.servicecomb.serviceregistry.config.ServiceRegistryCommonConfig;
-import org.apache.servicecomb.serviceregistry.definition.DefinitionConst;
-import org.apache.servicecomb.serviceregistry.definition.MicroserviceNameParser;
-import org.apache.servicecomb.serviceregistry.event.CreateMicroserviceEvent;
-import org.apache.servicecomb.serviceregistry.event.DestroyMicroserviceEvent;
-import org.apache.servicecomb.serviceregistry.task.event.SafeModeChangeEvent;
+import org.apache.servicecomb.registry.api.event.CreateMicroserviceEvent;
+import org.apache.servicecomb.registry.api.event.DestroyMicroserviceEvent;
+import org.apache.servicecomb.registry.api.event.MicroserviceInstanceChangedEvent;
+import org.apache.servicecomb.registry.api.event.task.SafeModeChangeEvent;
+import org.apache.servicecomb.registry.api.registry.MicroserviceInstance;
+import org.apache.servicecomb.registry.api.registry.MicroserviceInstances;
+import org.apache.servicecomb.registry.config.ServiceRegistryCommonConfig;
+import org.apache.servicecomb.registry.definition.DefinitionConst;
+import org.apache.servicecomb.registry.definition.MicroserviceNameParser;
+import org.apache.servicecomb.registry.DiscoveryManager;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
diff --git a/foundations/foundation-registry/src/main/java/org/apache/servicecomb/serviceregistry/consumer/SimpleMicroserviceInstancePing.java b/foundations/foundation-registry/src/main/java/org/apache/servicecomb/registry/consumer/SimpleMicroserviceInstancePing.java
similarity index 92%
rename from foundations/foundation-registry/src/main/java/org/apache/servicecomb/serviceregistry/consumer/SimpleMicroserviceInstancePing.java
rename to foundations/foundation-registry/src/main/java/org/apache/servicecomb/registry/consumer/SimpleMicroserviceInstancePing.java
index 1290c971..48fd1d6 100644
--- a/foundations/foundation-registry/src/main/java/org/apache/servicecomb/serviceregistry/consumer/SimpleMicroserviceInstancePing.java
+++ b/foundations/foundation-registry/src/main/java/org/apache/servicecomb/registry/consumer/SimpleMicroserviceInstancePing.java
@@ -14,7 +14,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.apache.servicecomb.serviceregistry.consumer;
+package org.apache.servicecomb.registry.consumer;
 
 import java.io.IOException;
 import java.net.InetSocketAddress;
@@ -22,7 +22,7 @@ import java.net.Socket;
 
 import org.apache.servicecomb.foundation.common.net.IpPort;
 import org.apache.servicecomb.foundation.common.net.NetUtils;
-import org.apache.servicecomb.serviceregistry.api.registry.MicroserviceInstance;
+import org.apache.servicecomb.registry.api.registry.MicroserviceInstance;
 
 /**
  * Simple implementation of .MicroserviceInstancePing using telnet
diff --git a/foundations/foundation-registry/src/main/java/org/apache/servicecomb/serviceregistry/consumer/StaticMicroserviceVersions.java b/foundations/foundation-registry/src/main/java/org/apache/servicecomb/registry/consumer/StaticMicroserviceVersions.java
similarity index 87%
rename from foundations/foundation-registry/src/main/java/org/apache/servicecomb/serviceregistry/consumer/StaticMicroserviceVersions.java
rename to foundations/foundation-registry/src/main/java/org/apache/servicecomb/registry/consumer/StaticMicroserviceVersions.java
index 2525409..6a249e4 100644
--- a/foundations/foundation-registry/src/main/java/org/apache/servicecomb/serviceregistry/consumer/StaticMicroserviceVersions.java
+++ b/foundations/foundation-registry/src/main/java/org/apache/servicecomb/registry/consumer/StaticMicroserviceVersions.java
@@ -15,17 +15,17 @@
  * limitations under the License.
  */
 
-package org.apache.servicecomb.serviceregistry.consumer;
+package org.apache.servicecomb.registry.consumer;
 
 import java.util.List;
 import java.util.UUID;
 
-import org.apache.servicecomb.serviceregistry.RegistrationManager;
-import org.apache.servicecomb.serviceregistry.api.registry.Microservice;
-import org.apache.servicecomb.serviceregistry.api.registry.MicroserviceInstance;
-import org.apache.servicecomb.serviceregistry.api.response.FindInstancesResponse;
-import org.apache.servicecomb.serviceregistry.client.http.MicroserviceInstances;
-import org.apache.servicecomb.serviceregistry.version.Version;
+import org.apache.servicecomb.registry.api.registry.FindInstancesResponse;
+import org.apache.servicecomb.registry.api.registry.Microservice;
+import org.apache.servicecomb.registry.api.registry.MicroserviceInstance;
+import org.apache.servicecomb.registry.api.registry.MicroserviceInstances;
+import org.apache.servicecomb.registry.RegistrationManager;
+import org.apache.servicecomb.registry.version.Version;
 import org.apache.servicecomb.swagger.SwaggerUtils;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
diff --git a/foundations/foundation-registry/src/main/java/org/apache/servicecomb/serviceregistry/definition/DefinitionConst.java b/foundations/foundation-registry/src/main/java/org/apache/servicecomb/registry/definition/DefinitionConst.java
similarity index 92%
rename from foundations/foundation-registry/src/main/java/org/apache/servicecomb/serviceregistry/definition/DefinitionConst.java
rename to foundations/foundation-registry/src/main/java/org/apache/servicecomb/registry/definition/DefinitionConst.java
index 69c7012..db5fcfb 100644
--- a/foundations/foundation-registry/src/main/java/org/apache/servicecomb/serviceregistry/definition/DefinitionConst.java
+++ b/foundations/foundation-registry/src/main/java/org/apache/servicecomb/registry/definition/DefinitionConst.java
@@ -15,9 +15,9 @@
  * limitations under the License.
  */
 
-package org.apache.servicecomb.serviceregistry.definition;
+package org.apache.servicecomb.registry.definition;
 
-import org.apache.servicecomb.serviceregistry.api.registry.MicroserviceInstanceStatus;
+import org.apache.servicecomb.registry.api.registry.MicroserviceInstanceStatus;
 
 public interface DefinitionConst {
 
diff --git a/foundations/foundation-registry/src/main/java/org/apache/servicecomb/serviceregistry/definition/MicroserviceDefinition.java b/foundations/foundation-registry/src/main/java/org/apache/servicecomb/registry/definition/MicroserviceDefinition.java
similarity index 98%
rename from foundations/foundation-registry/src/main/java/org/apache/servicecomb/serviceregistry/definition/MicroserviceDefinition.java
rename to foundations/foundation-registry/src/main/java/org/apache/servicecomb/registry/definition/MicroserviceDefinition.java
index 7f86fbd..8b5d0cf 100644
--- a/foundations/foundation-registry/src/main/java/org/apache/servicecomb/serviceregistry/definition/MicroserviceDefinition.java
+++ b/foundations/foundation-registry/src/main/java/org/apache/servicecomb/registry/definition/MicroserviceDefinition.java
@@ -15,7 +15,7 @@
  * limitations under the License.
  */
 
-package org.apache.servicecomb.serviceregistry.definition;
+package org.apache.servicecomb.registry.definition;
 
 import static org.apache.servicecomb.foundation.common.base.ServiceCombConstants.CONFIG_APPLICATION_ID_KEY;
 import static org.apache.servicecomb.foundation.common.base.ServiceCombConstants.CONFIG_MICROSERVICE_NAME_KEY;
diff --git a/foundations/foundation-registry/src/main/java/org/apache/servicecomb/serviceregistry/definition/MicroserviceNameParser.java b/foundations/foundation-registry/src/main/java/org/apache/servicecomb/registry/definition/MicroserviceNameParser.java
similarity index 97%
rename from foundations/foundation-registry/src/main/java/org/apache/servicecomb/serviceregistry/definition/MicroserviceNameParser.java
rename to foundations/foundation-registry/src/main/java/org/apache/servicecomb/registry/definition/MicroserviceNameParser.java
index 20d31d4..be1c92f 100644
--- a/foundations/foundation-registry/src/main/java/org/apache/servicecomb/serviceregistry/definition/MicroserviceNameParser.java
+++ b/foundations/foundation-registry/src/main/java/org/apache/servicecomb/registry/definition/MicroserviceNameParser.java
@@ -14,7 +14,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.apache.servicecomb.serviceregistry.definition;
+package org.apache.servicecomb.registry.definition;
 
 /**
  * <pre>
diff --git a/foundations/foundation-registry/src/main/java/org/apache/servicecomb/serviceregistry/discovery/AbstractDiscoveryFilter.java b/foundations/foundation-registry/src/main/java/org/apache/servicecomb/registry/discovery/AbstractDiscoveryFilter.java
similarity index 97%
rename from foundations/foundation-registry/src/main/java/org/apache/servicecomb/serviceregistry/discovery/AbstractDiscoveryFilter.java
rename to foundations/foundation-registry/src/main/java/org/apache/servicecomb/registry/discovery/AbstractDiscoveryFilter.java
index 21dcaa8..36e8877 100644
--- a/foundations/foundation-registry/src/main/java/org/apache/servicecomb/serviceregistry/discovery/AbstractDiscoveryFilter.java
+++ b/foundations/foundation-registry/src/main/java/org/apache/servicecomb/registry/discovery/AbstractDiscoveryFilter.java
@@ -15,7 +15,7 @@
  * limitations under the License.
  */
 
-package org.apache.servicecomb.serviceregistry.discovery;
+package org.apache.servicecomb.registry.discovery;
 
 import java.util.HashMap;
 
diff --git a/foundations/foundation-registry/src/main/java/org/apache/servicecomb/serviceregistry/discovery/AbstractEndpointDiscoveryFilter.java b/foundations/foundation-registry/src/main/java/org/apache/servicecomb/registry/discovery/AbstractEndpointDiscoveryFilter.java
similarity index 95%
rename from foundations/foundation-registry/src/main/java/org/apache/servicecomb/serviceregistry/discovery/AbstractEndpointDiscoveryFilter.java
rename to foundations/foundation-registry/src/main/java/org/apache/servicecomb/registry/discovery/AbstractEndpointDiscoveryFilter.java
index dd471af..db1d759 100644
--- a/foundations/foundation-registry/src/main/java/org/apache/servicecomb/serviceregistry/discovery/AbstractEndpointDiscoveryFilter.java
+++ b/foundations/foundation-registry/src/main/java/org/apache/servicecomb/registry/discovery/AbstractEndpointDiscoveryFilter.java
@@ -15,14 +15,14 @@
  * limitations under the License.
  */
 
-package org.apache.servicecomb.serviceregistry.discovery;
+package org.apache.servicecomb.registry.discovery;
 
 import java.net.URI;
 import java.util.ArrayList;
 import java.util.List;
 import java.util.Map;
 
-import org.apache.servicecomb.serviceregistry.api.registry.MicroserviceInstance;
+import org.apache.servicecomb.registry.api.registry.MicroserviceInstance;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
diff --git a/foundations/foundation-registry/src/main/java/org/apache/servicecomb/serviceregistry/discovery/DiscoveryContext.java b/foundations/foundation-registry/src/main/java/org/apache/servicecomb/registry/discovery/DiscoveryContext.java
similarity index 97%
rename from foundations/foundation-registry/src/main/java/org/apache/servicecomb/serviceregistry/discovery/DiscoveryContext.java
rename to foundations/foundation-registry/src/main/java/org/apache/servicecomb/registry/discovery/DiscoveryContext.java
index a22fd46..b3b5899 100644
--- a/foundations/foundation-registry/src/main/java/org/apache/servicecomb/serviceregistry/discovery/DiscoveryContext.java
+++ b/foundations/foundation-registry/src/main/java/org/apache/servicecomb/registry/discovery/DiscoveryContext.java
@@ -15,7 +15,7 @@
  * limitations under the License.
  */
 
-package org.apache.servicecomb.serviceregistry.discovery;
+package org.apache.servicecomb.registry.discovery;
 
 import java.util.HashMap;
 import java.util.Map;
diff --git a/foundations/foundation-registry/src/main/java/org/apache/servicecomb/serviceregistry/discovery/DiscoveryFilter.java b/foundations/foundation-registry/src/main/java/org/apache/servicecomb/registry/discovery/DiscoveryFilter.java
similarity index 95%
rename from foundations/foundation-registry/src/main/java/org/apache/servicecomb/serviceregistry/discovery/DiscoveryFilter.java
rename to foundations/foundation-registry/src/main/java/org/apache/servicecomb/registry/discovery/DiscoveryFilter.java
index 100fa07..e0b395c 100644
--- a/foundations/foundation-registry/src/main/java/org/apache/servicecomb/serviceregistry/discovery/DiscoveryFilter.java
+++ b/foundations/foundation-registry/src/main/java/org/apache/servicecomb/registry/discovery/DiscoveryFilter.java
@@ -15,7 +15,7 @@
  * limitations under the License.
  */
 
-package org.apache.servicecomb.serviceregistry.discovery;
+package org.apache.servicecomb.registry.discovery;
 
 // filter is stateless
 public interface DiscoveryFilter {
diff --git a/foundations/foundation-registry/src/main/java/org/apache/servicecomb/serviceregistry/discovery/DiscoveryTree.java b/foundations/foundation-registry/src/main/java/org/apache/servicecomb/registry/discovery/DiscoveryTree.java
similarity index 98%
rename from foundations/foundation-registry/src/main/java/org/apache/servicecomb/serviceregistry/discovery/DiscoveryTree.java
rename to foundations/foundation-registry/src/main/java/org/apache/servicecomb/registry/discovery/DiscoveryTree.java
index c5fede8..dfa05fd 100644
--- a/foundations/foundation-registry/src/main/java/org/apache/servicecomb/serviceregistry/discovery/DiscoveryTree.java
+++ b/foundations/foundation-registry/src/main/java/org/apache/servicecomb/registry/discovery/DiscoveryTree.java
@@ -15,7 +15,7 @@
  * limitations under the License.
  */
 
-package org.apache.servicecomb.serviceregistry.discovery;
+package org.apache.servicecomb.registry.discovery;
 
 import java.util.ArrayList;
 import java.util.Comparator;
@@ -25,7 +25,7 @@ import java.util.List;
 import org.apache.servicecomb.foundation.common.cache.VersionedCache;
 import org.apache.servicecomb.foundation.common.exceptions.ServiceCombException;
 import org.apache.servicecomb.foundation.common.utils.SPIServiceUtils;
-import org.apache.servicecomb.serviceregistry.DiscoveryManager;
+import org.apache.servicecomb.registry.DiscoveryManager;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
diff --git a/foundations/foundation-registry/src/main/java/org/apache/servicecomb/serviceregistry/discovery/DiscoveryTreeNode.java b/foundations/foundation-registry/src/main/java/org/apache/servicecomb/registry/discovery/DiscoveryTreeNode.java
similarity index 97%
rename from foundations/foundation-registry/src/main/java/org/apache/servicecomb/serviceregistry/discovery/DiscoveryTreeNode.java
rename to foundations/foundation-registry/src/main/java/org/apache/servicecomb/registry/discovery/DiscoveryTreeNode.java
index b764937..3dda15f 100644
--- a/foundations/foundation-registry/src/main/java/org/apache/servicecomb/serviceregistry/discovery/DiscoveryTreeNode.java
+++ b/foundations/foundation-registry/src/main/java/org/apache/servicecomb/registry/discovery/DiscoveryTreeNode.java
@@ -15,7 +15,7 @@
  * limitations under the License.
  */
 
-package org.apache.servicecomb.serviceregistry.discovery;
+package org.apache.servicecomb.registry.discovery;
 
 import java.util.Map;
 
diff --git a/foundations/foundation-registry/src/main/java/org/apache/servicecomb/serviceregistry/discovery/InstanceStatusDiscoveryFilter.java b/foundations/foundation-registry/src/main/java/org/apache/servicecomb/registry/discovery/InstanceStatusDiscoveryFilter.java
similarity index 90%
rename from foundations/foundation-registry/src/main/java/org/apache/servicecomb/serviceregistry/discovery/InstanceStatusDiscoveryFilter.java
rename to foundations/foundation-registry/src/main/java/org/apache/servicecomb/registry/discovery/InstanceStatusDiscoveryFilter.java
index 11883b0..5e2886f 100644
--- a/foundations/foundation-registry/src/main/java/org/apache/servicecomb/serviceregistry/discovery/InstanceStatusDiscoveryFilter.java
+++ b/foundations/foundation-registry/src/main/java/org/apache/servicecomb/registry/discovery/InstanceStatusDiscoveryFilter.java
@@ -15,14 +15,14 @@
  * limitations under the License.
  */
 
-package org.apache.servicecomb.serviceregistry.discovery;
+package org.apache.servicecomb.registry.discovery;
 
 import java.util.HashMap;
 import java.util.Map;
 import java.util.Map.Entry;
 
-import org.apache.servicecomb.serviceregistry.api.registry.MicroserviceInstance;
-import org.apache.servicecomb.serviceregistry.api.registry.MicroserviceInstanceStatus;
+import org.apache.servicecomb.registry.api.registry.MicroserviceInstance;
+import org.apache.servicecomb.registry.api.registry.MicroserviceInstanceStatus;
 
 import com.netflix.config.DynamicPropertyFactory;
 
diff --git a/foundations/foundation-registry/src/main/java/org/apache/servicecomb/serviceregistry/swagger/SwaggerLoader.java b/foundations/foundation-registry/src/main/java/org/apache/servicecomb/registry/swagger/SwaggerLoader.java
similarity index 94%
rename from foundations/foundation-registry/src/main/java/org/apache/servicecomb/serviceregistry/swagger/SwaggerLoader.java
rename to foundations/foundation-registry/src/main/java/org/apache/servicecomb/registry/swagger/SwaggerLoader.java
index dec45f3..e57c30f 100644
--- a/foundations/foundation-registry/src/main/java/org/apache/servicecomb/serviceregistry/swagger/SwaggerLoader.java
+++ b/foundations/foundation-registry/src/main/java/org/apache/servicecomb/registry/swagger/SwaggerLoader.java
@@ -14,7 +14,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.apache.servicecomb.serviceregistry.swagger;
+package org.apache.servicecomb.registry.swagger;
 
 import java.net.URI;
 import java.net.URL;
@@ -27,15 +27,17 @@ import org.apache.commons.io.FilenameUtils;
 import org.apache.servicecomb.foundation.common.concurrent.ConcurrentHashMapEx;
 import org.apache.servicecomb.foundation.common.utils.JvmUtils;
 import org.apache.servicecomb.foundation.common.utils.ResourceUtil;
-import org.apache.servicecomb.serviceregistry.DiscoveryManager;
-import org.apache.servicecomb.serviceregistry.RegistrationManager;
-import org.apache.servicecomb.serviceregistry.api.registry.Microservice;
-import org.apache.servicecomb.serviceregistry.definition.MicroserviceNameParser;
+import org.apache.servicecomb.registry.DiscoveryManager;
+import org.apache.servicecomb.registry.RegistrationManager;
+import org.apache.servicecomb.registry.api.registry.Microservice;
+import org.apache.servicecomb.registry.definition.MicroserviceNameParser;
 import org.apache.servicecomb.swagger.SwaggerUtils;
 import org.apache.servicecomb.swagger.generator.SwaggerGenerator;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
+import com.google.common.annotations.VisibleForTesting;
+
 import io.swagger.models.Swagger;
 
 public class SwaggerLoader {
@@ -151,7 +153,8 @@ public class SwaggerLoader {
     return loadFromResource(appId, shortName, schemaId);
   }
 
-  Swagger loadFromMemory(String appId, String shortName, String schemaId) {
+  @VisibleForTesting
+  public Swagger loadFromMemory(String appId, String shortName, String schemaId) {
     return Optional.ofNullable(apps.get(appId))
         .map(microservices -> microservices.get(shortName))
         .map(schemas -> schemas.get(schemaId))
diff --git a/foundations/foundation-registry/src/main/java/org/apache/servicecomb/serviceregistry/version/Version.java b/foundations/foundation-registry/src/main/java/org/apache/servicecomb/registry/version/Version.java
similarity index 98%
rename from foundations/foundation-registry/src/main/java/org/apache/servicecomb/serviceregistry/version/Version.java
rename to foundations/foundation-registry/src/main/java/org/apache/servicecomb/registry/version/Version.java
index 3ec9753..5416024 100644
--- a/foundations/foundation-registry/src/main/java/org/apache/servicecomb/serviceregistry/version/Version.java
+++ b/foundations/foundation-registry/src/main/java/org/apache/servicecomb/registry/version/Version.java
@@ -15,7 +15,7 @@
  * limitations under the License.
  */
 
-package org.apache.servicecomb.serviceregistry.version;
+package org.apache.servicecomb.registry.version;
 
 import java.util.Objects;
 
diff --git a/foundations/foundation-registry/src/main/java/org/apache/servicecomb/serviceregistry/version/VersionRule.java b/foundations/foundation-registry/src/main/java/org/apache/servicecomb/registry/version/VersionRule.java
similarity index 96%
rename from foundations/foundation-registry/src/main/java/org/apache/servicecomb/serviceregistry/version/VersionRule.java
rename to foundations/foundation-registry/src/main/java/org/apache/servicecomb/registry/version/VersionRule.java
index 9167dbf..4c5283e 100644
--- a/foundations/foundation-registry/src/main/java/org/apache/servicecomb/serviceregistry/version/VersionRule.java
+++ b/foundations/foundation-registry/src/main/java/org/apache/servicecomb/registry/version/VersionRule.java
@@ -15,7 +15,7 @@
  * limitations under the License.
  */
 
-package org.apache.servicecomb.serviceregistry.version;
+package org.apache.servicecomb.registry.version;
 
 public abstract class VersionRule {
   private final String versionRule;
diff --git a/foundations/foundation-registry/src/main/java/org/apache/servicecomb/serviceregistry/version/VersionRuleFixedParser.java b/foundations/foundation-registry/src/main/java/org/apache/servicecomb/registry/version/VersionRuleFixedParser.java
similarity index 96%
rename from foundations/foundation-registry/src/main/java/org/apache/servicecomb/serviceregistry/version/VersionRuleFixedParser.java
rename to foundations/foundation-registry/src/main/java/org/apache/servicecomb/registry/version/VersionRuleFixedParser.java
index 0a401b2..ef4b100 100644
--- a/foundations/foundation-registry/src/main/java/org/apache/servicecomb/serviceregistry/version/VersionRuleFixedParser.java
+++ b/foundations/foundation-registry/src/main/java/org/apache/servicecomb/registry/version/VersionRuleFixedParser.java
@@ -15,7 +15,7 @@
  * limitations under the License.
  */
 
-package org.apache.servicecomb.serviceregistry.version;
+package org.apache.servicecomb.registry.version;
 
 // fixed, this should be the last parser
 // will not check version format
diff --git a/foundations/foundation-registry/src/main/java/org/apache/servicecomb/serviceregistry/version/VersionRuleLatestParser.java b/foundations/foundation-registry/src/main/java/org/apache/servicecomb/registry/version/VersionRuleLatestParser.java
similarity index 91%
rename from foundations/foundation-registry/src/main/java/org/apache/servicecomb/serviceregistry/version/VersionRuleLatestParser.java
rename to foundations/foundation-registry/src/main/java/org/apache/servicecomb/registry/version/VersionRuleLatestParser.java
index eaf2280..2565a9a 100644
--- a/foundations/foundation-registry/src/main/java/org/apache/servicecomb/serviceregistry/version/VersionRuleLatestParser.java
+++ b/foundations/foundation-registry/src/main/java/org/apache/servicecomb/registry/version/VersionRuleLatestParser.java
@@ -15,9 +15,9 @@
  * limitations under the License.
  */
 
-package org.apache.servicecomb.serviceregistry.version;
+package org.apache.servicecomb.registry.version;
 
-import org.apache.servicecomb.serviceregistry.definition.DefinitionConst;
+import org.apache.servicecomb.registry.definition.DefinitionConst;
 
 public class VersionRuleLatestParser implements VersionRuleParser {
   class LatestVersionRule extends VersionRule {
diff --git a/foundations/foundation-registry/src/main/java/org/apache/servicecomb/serviceregistry/version/VersionRuleParser.java b/foundations/foundation-registry/src/main/java/org/apache/servicecomb/registry/version/VersionRuleParser.java
similarity index 94%
rename from foundations/foundation-registry/src/main/java/org/apache/servicecomb/serviceregistry/version/VersionRuleParser.java
rename to foundations/foundation-registry/src/main/java/org/apache/servicecomb/registry/version/VersionRuleParser.java
index 7c109dc..29bdd1c 100644
--- a/foundations/foundation-registry/src/main/java/org/apache/servicecomb/serviceregistry/version/VersionRuleParser.java
+++ b/foundations/foundation-registry/src/main/java/org/apache/servicecomb/registry/version/VersionRuleParser.java
@@ -15,7 +15,7 @@
  * limitations under the License.
  */
 
-package org.apache.servicecomb.serviceregistry.version;
+package org.apache.servicecomb.registry.version;
 
 public interface VersionRuleParser {
   // if can not parse, then return null
diff --git a/foundations/foundation-registry/src/main/java/org/apache/servicecomb/serviceregistry/version/VersionRuleRangeParser.java b/foundations/foundation-registry/src/main/java/org/apache/servicecomb/registry/version/VersionRuleRangeParser.java
similarity index 96%
rename from foundations/foundation-registry/src/main/java/org/apache/servicecomb/serviceregistry/version/VersionRuleRangeParser.java
rename to foundations/foundation-registry/src/main/java/org/apache/servicecomb/registry/version/VersionRuleRangeParser.java
index c20b2b4..047cfe8 100644
--- a/foundations/foundation-registry/src/main/java/org/apache/servicecomb/serviceregistry/version/VersionRuleRangeParser.java
+++ b/foundations/foundation-registry/src/main/java/org/apache/servicecomb/registry/version/VersionRuleRangeParser.java
@@ -15,7 +15,7 @@
  * limitations under the License.
  */
 
-package org.apache.servicecomb.serviceregistry.version;
+package org.apache.servicecomb.registry.version;
 
 // 1.0.0-2.0.0
 public class VersionRuleRangeParser implements VersionRuleParser {
diff --git a/foundations/foundation-registry/src/main/java/org/apache/servicecomb/serviceregistry/version/VersionRuleStartFromParser.java b/foundations/foundation-registry/src/main/java/org/apache/servicecomb/registry/version/VersionRuleStartFromParser.java
similarity index 96%
rename from foundations/foundation-registry/src/main/java/org/apache/servicecomb/serviceregistry/version/VersionRuleStartFromParser.java
rename to foundations/foundation-registry/src/main/java/org/apache/servicecomb/registry/version/VersionRuleStartFromParser.java
index c8ab353..5a6c1d4 100644
--- a/foundations/foundation-registry/src/main/java/org/apache/servicecomb/serviceregistry/version/VersionRuleStartFromParser.java
+++ b/foundations/foundation-registry/src/main/java/org/apache/servicecomb/registry/version/VersionRuleStartFromParser.java
@@ -15,7 +15,7 @@
  * limitations under the License.
  */
 
-package org.apache.servicecomb.serviceregistry.version;
+package org.apache.servicecomb.registry.version;
 
 // 1.0.0+
 public class VersionRuleStartFromParser implements VersionRuleParser {
diff --git a/foundations/foundation-registry/src/main/java/org/apache/servicecomb/serviceregistry/version/VersionRuleUtils.java b/foundations/foundation-registry/src/main/java/org/apache/servicecomb/registry/version/VersionRuleUtils.java
similarity index 97%
rename from foundations/foundation-registry/src/main/java/org/apache/servicecomb/serviceregistry/version/VersionRuleUtils.java
rename to foundations/foundation-registry/src/main/java/org/apache/servicecomb/registry/version/VersionRuleUtils.java
index f8d512e..ea63d66 100644
--- a/foundations/foundation-registry/src/main/java/org/apache/servicecomb/serviceregistry/version/VersionRuleUtils.java
+++ b/foundations/foundation-registry/src/main/java/org/apache/servicecomb/registry/version/VersionRuleUtils.java
@@ -15,7 +15,7 @@
  * limitations under the License.
  */
 
-package org.apache.servicecomb.serviceregistry.version;
+package org.apache.servicecomb.registry.version;
 
 import java.util.ArrayList;
 import java.util.List;
diff --git a/foundations/foundation-registry/src/main/java/org/apache/servicecomb/serviceregistry/version/VersionUtils.java b/foundations/foundation-registry/src/main/java/org/apache/servicecomb/registry/version/VersionUtils.java
similarity index 95%
rename from foundations/foundation-registry/src/main/java/org/apache/servicecomb/serviceregistry/version/VersionUtils.java
rename to foundations/foundation-registry/src/main/java/org/apache/servicecomb/registry/version/VersionUtils.java
index ef8ea36..6ceea9d 100644
--- a/foundations/foundation-registry/src/main/java/org/apache/servicecomb/serviceregistry/version/VersionUtils.java
+++ b/foundations/foundation-registry/src/main/java/org/apache/servicecomb/registry/version/VersionUtils.java
@@ -15,7 +15,7 @@
  * limitations under the License.
  */
 
-package org.apache.servicecomb.serviceregistry.version;
+package org.apache.servicecomb.registry.version;
 
 import java.util.Map;
 import java.util.Objects;
diff --git a/service-registry/registry-service-center/src/main/resources/META-INF/services/org.apache.servicecomb.serviceregistry.api.Discovery b/foundations/foundation-registry/src/main/resources/META-INF/services/org.apache.servicecomb.registry.consumer.MicroserviceInstancePing
similarity index 91%
copy from service-registry/registry-service-center/src/main/resources/META-INF/services/org.apache.servicecomb.serviceregistry.api.Discovery
copy to foundations/foundation-registry/src/main/resources/META-INF/services/org.apache.servicecomb.registry.consumer.MicroserviceInstancePing
index 7d152e0..8493c8a 100644
--- a/service-registry/registry-service-center/src/main/resources/META-INF/services/org.apache.servicecomb.serviceregistry.api.Discovery
+++ b/foundations/foundation-registry/src/main/resources/META-INF/services/org.apache.servicecomb.registry.consumer.MicroserviceInstancePing
@@ -15,4 +15,4 @@
 # limitations under the License.
 #
 
-org.apache.servicecomb.serviceregistry.ServiceCenterDiscovery
\ No newline at end of file
+org.apache.servicecomb.registry.consumer.SimpleMicroserviceInstancePing
\ No newline at end of file
diff --git a/foundations/foundation-registry/src/main/resources/META-INF/services/org.apache.servicecomb.serviceregistry.consumer.MicroserviceInstancePing b/foundations/foundation-registry/src/main/resources/META-INF/services/org.apache.servicecomb.serviceregistry.consumer.MicroserviceInstancePing
deleted file mode 100644
index ce06621..0000000
--- a/foundations/foundation-registry/src/main/resources/META-INF/services/org.apache.servicecomb.serviceregistry.consumer.MicroserviceInstancePing
+++ /dev/null
@@ -1,18 +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.
-#
-
-org.apache.servicecomb.serviceregistry.consumer.SimpleMicroserviceInstancePing
\ No newline at end of file
diff --git a/foundations/foundation-registry/src/test/java/org/apache/servicecomb/registry/config/TestAbstractPropertiesLoader.java b/foundations/foundation-registry/src/test/java/org/apache/servicecomb/registry/config/TestAbstractPropertiesLoader.java
new file mode 100644
index 0000000..156469d
--- /dev/null
+++ b/foundations/foundation-registry/src/test/java/org/apache/servicecomb/registry/config/TestAbstractPropertiesLoader.java
@@ -0,0 +1,48 @@
+/*
+ * 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.registry.config;
+
+import static org.apache.servicecomb.foundation.common.base.ServiceCombConstants.CONFIG_SERVICE_DESCRIPTION_KEY;
+
+import org.apache.commons.configuration.Configuration;
+import org.junit.Assert;
+import org.junit.Test;
+
+import com.netflix.config.DynamicConfiguration;
+
+public class TestAbstractPropertiesLoader {
+  @Test
+  public void testMergeStrings() {
+    Assert.assertEquals("abc123efg", AbstractPropertiesLoader.mergeStrings("abc", "123", "efg"));
+  }
+
+  @Test
+  public void testExtendedClassCompatible() {
+    Configuration configuration = new DynamicConfiguration();
+    configuration.setProperty(CONFIG_SERVICE_DESCRIPTION_KEY + AbstractPropertiesLoader.EXTENDED_CLASS, "invalidClass");
+
+    AbstractPropertiesLoader loader = MicroservicePropertiesLoader.INSTANCE;
+    try {
+      loader.loadProperties(configuration);
+      Assert.fail("Must throw exception");
+    } catch (Error e) {
+      Assert.assertEquals(ClassNotFoundException.class, e.getCause().getClass());
+      Assert.assertEquals("invalidClass", e.getCause().getMessage());
+    }
+  }
+}
diff --git a/service-registry/registry-service-center/src/test/java/org/apache/servicecomb/serviceregistry/discovery/TestAbstractDiscoveryFilter.java b/foundations/foundation-registry/src/test/java/org/apache/servicecomb/registry/discovery/TestAbstractDiscoveryFilter.java
similarity index 91%
rename from service-registry/registry-service-center/src/test/java/org/apache/servicecomb/serviceregistry/discovery/TestAbstractDiscoveryFilter.java
rename to foundations/foundation-registry/src/test/java/org/apache/servicecomb/registry/discovery/TestAbstractDiscoveryFilter.java
index 39c94a7..456743f 100644
--- a/service-registry/registry-service-center/src/test/java/org/apache/servicecomb/serviceregistry/discovery/TestAbstractDiscoveryFilter.java
+++ b/foundations/foundation-registry/src/test/java/org/apache/servicecomb/registry/discovery/TestAbstractDiscoveryFilter.java
@@ -15,8 +15,11 @@
  * limitations under the License.
  */
 
-package org.apache.servicecomb.serviceregistry.discovery;
+package org.apache.servicecomb.registry.discovery;
 
+import org.apache.servicecomb.registry.discovery.AbstractDiscoveryFilter;
+import org.apache.servicecomb.registry.discovery.DiscoveryContext;
+import org.apache.servicecomb.registry.discovery.DiscoveryTreeNode;
 import org.junit.Assert;
 import org.junit.Test;
 
diff --git a/service-registry/registry-service-center/src/test/java/org/apache/servicecomb/serviceregistry/discovery/TestAbstractTransportDiscoveryFilter.java b/foundations/foundation-registry/src/test/java/org/apache/servicecomb/registry/discovery/TestAbstractTransportDiscoveryFilter.java
similarity index 94%
rename from service-registry/registry-service-center/src/test/java/org/apache/servicecomb/serviceregistry/discovery/TestAbstractTransportDiscoveryFilter.java
rename to foundations/foundation-registry/src/test/java/org/apache/servicecomb/registry/discovery/TestAbstractTransportDiscoveryFilter.java
index df3292c..6d72947 100644
--- a/service-registry/registry-service-center/src/test/java/org/apache/servicecomb/serviceregistry/discovery/TestAbstractTransportDiscoveryFilter.java
+++ b/foundations/foundation-registry/src/test/java/org/apache/servicecomb/registry/discovery/TestAbstractTransportDiscoveryFilter.java
@@ -15,7 +15,7 @@
  * limitations under the License.
  */
 
-package org.apache.servicecomb.serviceregistry.discovery;
+package org.apache.servicecomb.registry.discovery;
 
 import java.util.ArrayList;
 import java.util.Collections;
@@ -24,7 +24,10 @@ import java.util.List;
 import java.util.Map;
 import java.util.UUID;
 
-import org.apache.servicecomb.serviceregistry.api.registry.MicroserviceInstance;
+import org.apache.servicecomb.registry.api.registry.MicroserviceInstance;
+import org.apache.servicecomb.registry.discovery.AbstractEndpointDiscoveryFilter;
+import org.apache.servicecomb.registry.discovery.DiscoveryContext;
+import org.apache.servicecomb.registry.discovery.DiscoveryTreeNode;
 import org.hamcrest.Matchers;
 import org.junit.Assert;
 import org.junit.Test;
diff --git a/service-registry/registry-service-center/src/test/java/org/apache/servicecomb/serviceregistry/discovery/TestDiscoveryContext.java b/foundations/foundation-registry/src/test/java/org/apache/servicecomb/registry/discovery/TestDiscoveryContext.java
similarity index 90%
rename from service-registry/registry-service-center/src/test/java/org/apache/servicecomb/serviceregistry/discovery/TestDiscoveryContext.java
rename to foundations/foundation-registry/src/test/java/org/apache/servicecomb/registry/discovery/TestDiscoveryContext.java
index e2b6553..faae6f3 100644
--- a/service-registry/registry-service-center/src/test/java/org/apache/servicecomb/serviceregistry/discovery/TestDiscoveryContext.java
+++ b/foundations/foundation-registry/src/test/java/org/apache/servicecomb/registry/discovery/TestDiscoveryContext.java
@@ -15,8 +15,10 @@
  * limitations under the License.
  */
 
-package org.apache.servicecomb.serviceregistry.discovery;
+package org.apache.servicecomb.registry.discovery;
 
+import org.apache.servicecomb.registry.discovery.DiscoveryContext;
+import org.apache.servicecomb.registry.discovery.DiscoveryTreeNode;
 import org.junit.Assert;
 import org.junit.Test;
 
diff --git a/service-registry/registry-service-center/src/test/java/org/apache/servicecomb/serviceregistry/discovery/TestDiscoveryTree.java b/foundations/foundation-registry/src/test/java/org/apache/servicecomb/registry/discovery/TestDiscoveryTree.java
similarity index 95%
rename from service-registry/registry-service-center/src/test/java/org/apache/servicecomb/serviceregistry/discovery/TestDiscoveryTree.java
rename to foundations/foundation-registry/src/test/java/org/apache/servicecomb/registry/discovery/TestDiscoveryTree.java
index a6523bb..d07813b 100644
--- a/service-registry/registry-service-center/src/test/java/org/apache/servicecomb/serviceregistry/discovery/TestDiscoveryTree.java
+++ b/foundations/foundation-registry/src/test/java/org/apache/servicecomb/registry/discovery/TestDiscoveryTree.java
@@ -15,7 +15,7 @@
  * limitations under the License.
  */
 
-package org.apache.servicecomb.serviceregistry.discovery;
+package org.apache.servicecomb.registry.discovery;
 
 import java.util.Arrays;
 import java.util.List;
@@ -25,9 +25,12 @@ import org.apache.servicecomb.foundation.common.cache.VersionedCache;
 import org.apache.servicecomb.foundation.common.exceptions.ServiceCombException;
 import org.apache.servicecomb.foundation.common.utils.SPIServiceUtils;
 import org.apache.servicecomb.foundation.test.scaffolding.config.ArchaiusUtils;
-import org.apache.servicecomb.serviceregistry.DiscoveryManager;
-import org.apache.servicecomb.serviceregistry.RegistryUtils;
-import org.apache.servicecomb.serviceregistry.cache.InstanceCacheManager;
+import org.apache.servicecomb.registry.DiscoveryManager;
+import org.apache.servicecomb.registry.discovery.DiscoveryContext;
+import org.apache.servicecomb.registry.discovery.DiscoveryFilter;
+import org.apache.servicecomb.registry.discovery.DiscoveryTree;
+import org.apache.servicecomb.registry.discovery.DiscoveryTreeNode;
+import org.apache.servicecomb.registry.cache.InstanceCacheManager;
 import org.hamcrest.Matchers;
 import org.junit.After;
 import org.junit.Assert;
diff --git a/service-registry/registry-service-center/src/test/java/org/apache/servicecomb/serviceregistry/discovery/TestDiscoveryTreeNode.java b/foundations/foundation-registry/src/test/java/org/apache/servicecomb/registry/discovery/TestDiscoveryTreeNode.java
similarity index 94%
rename from service-registry/registry-service-center/src/test/java/org/apache/servicecomb/serviceregistry/discovery/TestDiscoveryTreeNode.java
rename to foundations/foundation-registry/src/test/java/org/apache/servicecomb/registry/discovery/TestDiscoveryTreeNode.java
index b7ebb3b..e450a87 100644
--- a/service-registry/registry-service-center/src/test/java/org/apache/servicecomb/serviceregistry/discovery/TestDiscoveryTreeNode.java
+++ b/foundations/foundation-registry/src/test/java/org/apache/servicecomb/registry/discovery/TestDiscoveryTreeNode.java
@@ -15,12 +15,13 @@
  * limitations under the License.
  */
 
-package org.apache.servicecomb.serviceregistry.discovery;
+package org.apache.servicecomb.registry.discovery;
 
 import java.util.HashMap;
 import java.util.Map;
 
 import org.apache.servicecomb.foundation.common.cache.VersionedCache;
+import org.apache.servicecomb.registry.discovery.DiscoveryTreeNode;
 import org.junit.Assert;
 import org.junit.Test;
 
diff --git a/service-registry/registry-service-center/src/test/java/org/apache/servicecomb/serviceregistry/version/TestVersion.java b/foundations/foundation-registry/src/test/java/org/apache/servicecomb/registry/version/TestVersion.java
similarity index 98%
rename from service-registry/registry-service-center/src/test/java/org/apache/servicecomb/serviceregistry/version/TestVersion.java
rename to foundations/foundation-registry/src/test/java/org/apache/servicecomb/registry/version/TestVersion.java
index 47d00ed..3611536 100644
--- a/service-registry/registry-service-center/src/test/java/org/apache/servicecomb/serviceregistry/version/TestVersion.java
+++ b/foundations/foundation-registry/src/test/java/org/apache/servicecomb/registry/version/TestVersion.java
@@ -15,8 +15,9 @@
  * limitations under the License.
  */
 
-package org.apache.servicecomb.serviceregistry.version;
+package org.apache.servicecomb.registry.version;
 
+import org.apache.servicecomb.registry.version.Version;
 import org.hamcrest.Matchers;
 import org.junit.Assert;
 import org.junit.Rule;
diff --git a/service-registry/registry-service-center/src/test/java/org/apache/servicecomb/serviceregistry/version/TestVersionRule.java b/foundations/foundation-registry/src/test/java/org/apache/servicecomb/registry/version/TestVersionRule.java
similarity index 89%
rename from service-registry/registry-service-center/src/test/java/org/apache/servicecomb/serviceregistry/version/TestVersionRule.java
rename to foundations/foundation-registry/src/test/java/org/apache/servicecomb/registry/version/TestVersionRule.java
index 5610446..db1c48a 100644
--- a/service-registry/registry-service-center/src/test/java/org/apache/servicecomb/serviceregistry/version/TestVersionRule.java
+++ b/foundations/foundation-registry/src/test/java/org/apache/servicecomb/registry/version/TestVersionRule.java
@@ -15,8 +15,10 @@
  * limitations under the License.
  */
 
-package org.apache.servicecomb.serviceregistry.version;
+package org.apache.servicecomb.registry.version;
 
+import org.apache.servicecomb.registry.version.Version;
+import org.apache.servicecomb.registry.version.VersionRule;
 import org.junit.Assert;
 import org.junit.Test;
 
diff --git a/service-registry/registry-service-center/src/test/java/org/apache/servicecomb/serviceregistry/version/TestVersionRuleFixedParser.java b/foundations/foundation-registry/src/test/java/org/apache/servicecomb/registry/version/TestVersionRuleFixedParser.java
similarity index 95%
rename from service-registry/registry-service-center/src/test/java/org/apache/servicecomb/serviceregistry/version/TestVersionRuleFixedParser.java
rename to foundations/foundation-registry/src/test/java/org/apache/servicecomb/registry/version/TestVersionRuleFixedParser.java
index 3759605..079d6cb 100644
--- a/service-registry/registry-service-center/src/test/java/org/apache/servicecomb/serviceregistry/version/TestVersionRuleFixedParser.java
+++ b/foundations/foundation-registry/src/test/java/org/apache/servicecomb/registry/version/TestVersionRuleFixedParser.java
@@ -15,7 +15,7 @@
  * limitations under the License.
  */
 
-package org.apache.servicecomb.serviceregistry.version;
+package org.apache.servicecomb.registry.version;
 
 import org.junit.Assert;
 import org.junit.Test;
diff --git a/service-registry/registry-service-center/src/test/java/org/apache/servicecomb/serviceregistry/version/TestVersionRuleLatestParser.java b/foundations/foundation-registry/src/test/java/org/apache/servicecomb/registry/version/TestVersionRuleLatestParser.java
similarity index 92%
rename from service-registry/registry-service-center/src/test/java/org/apache/servicecomb/serviceregistry/version/TestVersionRuleLatestParser.java
rename to foundations/foundation-registry/src/test/java/org/apache/servicecomb/registry/version/TestVersionRuleLatestParser.java
index fef7a7e..f12c648 100644
--- a/service-registry/registry-service-center/src/test/java/org/apache/servicecomb/serviceregistry/version/TestVersionRuleLatestParser.java
+++ b/foundations/foundation-registry/src/test/java/org/apache/servicecomb/registry/version/TestVersionRuleLatestParser.java
@@ -15,9 +15,9 @@
  * limitations under the License.
  */
 
-package org.apache.servicecomb.serviceregistry.version;
+package org.apache.servicecomb.registry.version;
 
-import org.apache.servicecomb.serviceregistry.definition.DefinitionConst;
+import org.apache.servicecomb.registry.definition.DefinitionConst;
 import org.junit.Assert;
 import org.junit.Test;
 
diff --git a/service-registry/registry-service-center/src/test/java/org/apache/servicecomb/serviceregistry/version/TestVersionRuleRangeParser.java b/foundations/foundation-registry/src/test/java/org/apache/servicecomb/registry/version/TestVersionRuleRangeParser.java
similarity index 96%
rename from service-registry/registry-service-center/src/test/java/org/apache/servicecomb/serviceregistry/version/TestVersionRuleRangeParser.java
rename to foundations/foundation-registry/src/test/java/org/apache/servicecomb/registry/version/TestVersionRuleRangeParser.java
index a44a23b..768c7a6 100644
--- a/service-registry/registry-service-center/src/test/java/org/apache/servicecomb/serviceregistry/version/TestVersionRuleRangeParser.java
+++ b/foundations/foundation-registry/src/test/java/org/apache/servicecomb/registry/version/TestVersionRuleRangeParser.java
@@ -15,7 +15,7 @@
  * limitations under the License.
  */
 
-package org.apache.servicecomb.serviceregistry.version;
+package org.apache.servicecomb.registry.version;
 
 import org.junit.Assert;
 import org.junit.Test;
diff --git a/service-registry/registry-service-center/src/test/java/org/apache/servicecomb/serviceregistry/version/TestVersionRuleStartFromParser.java b/foundations/foundation-registry/src/test/java/org/apache/servicecomb/registry/version/TestVersionRuleStartFromParser.java
similarity index 96%
rename from service-registry/registry-service-center/src/test/java/org/apache/servicecomb/serviceregistry/version/TestVersionRuleStartFromParser.java
rename to foundations/foundation-registry/src/test/java/org/apache/servicecomb/registry/version/TestVersionRuleStartFromParser.java
index a99f39f..75ac900 100644
--- a/service-registry/registry-service-center/src/test/java/org/apache/servicecomb/serviceregistry/version/TestVersionRuleStartFromParser.java
+++ b/foundations/foundation-registry/src/test/java/org/apache/servicecomb/registry/version/TestVersionRuleStartFromParser.java
@@ -15,7 +15,7 @@
  * limitations under the License.
  */
 
-package org.apache.servicecomb.serviceregistry.version;
+package org.apache.servicecomb.registry.version;
 
 import org.junit.Assert;
 import org.junit.Test;
diff --git a/service-registry/registry-service-center/src/test/java/org/apache/servicecomb/serviceregistry/version/TestVersionRuleUtils.java b/foundations/foundation-registry/src/test/java/org/apache/servicecomb/registry/version/TestVersionRuleUtils.java
similarity index 79%
rename from service-registry/registry-service-center/src/test/java/org/apache/servicecomb/serviceregistry/version/TestVersionRuleUtils.java
rename to foundations/foundation-registry/src/test/java/org/apache/servicecomb/registry/version/TestVersionRuleUtils.java
index 724a851..5ff8fc8 100644
--- a/service-registry/registry-service-center/src/test/java/org/apache/servicecomb/serviceregistry/version/TestVersionRuleUtils.java
+++ b/foundations/foundation-registry/src/test/java/org/apache/servicecomb/registry/version/TestVersionRuleUtils.java
@@ -15,13 +15,15 @@
  * limitations under the License.
  */
 
-package org.apache.servicecomb.serviceregistry.version;
+package org.apache.servicecomb.registry.version;
 
-import org.apache.servicecomb.serviceregistry.definition.DefinitionConst;
-import org.apache.servicecomb.serviceregistry.version.VersionRuleFixedParser.FixedVersionRule;
-import org.apache.servicecomb.serviceregistry.version.VersionRuleLatestParser.LatestVersionRule;
-import org.apache.servicecomb.serviceregistry.version.VersionRuleRangeParser.RangeVersionRule;
-import org.apache.servicecomb.serviceregistry.version.VersionRuleStartFromParser.StartFromVersionRule;
+import org.apache.servicecomb.registry.definition.DefinitionConst;
+import org.apache.servicecomb.registry.version.VersionRule;
+import org.apache.servicecomb.registry.version.VersionRuleFixedParser.FixedVersionRule;
+import org.apache.servicecomb.registry.version.VersionRuleLatestParser.LatestVersionRule;
+import org.apache.servicecomb.registry.version.VersionRuleRangeParser.RangeVersionRule;
+import org.apache.servicecomb.registry.version.VersionRuleStartFromParser.StartFromVersionRule;
+import org.apache.servicecomb.registry.version.VersionRuleUtils;
 import org.hamcrest.Matchers;
 import org.junit.Assert;
 import org.junit.Rule;
diff --git a/service-registry/registry-service-center/src/test/java/org/apache/servicecomb/serviceregistry/version/TestVersionUtils.java b/foundations/foundation-registry/src/test/java/org/apache/servicecomb/registry/version/TestVersionUtils.java
similarity index 89%
rename from service-registry/registry-service-center/src/test/java/org/apache/servicecomb/serviceregistry/version/TestVersionUtils.java
rename to foundations/foundation-registry/src/test/java/org/apache/servicecomb/registry/version/TestVersionUtils.java
index cd8a460..bb543de 100644
--- a/service-registry/registry-service-center/src/test/java/org/apache/servicecomb/serviceregistry/version/TestVersionUtils.java
+++ b/foundations/foundation-registry/src/test/java/org/apache/servicecomb/registry/version/TestVersionUtils.java
@@ -15,10 +15,12 @@
  * limitations under the License.
  */
 
-package org.apache.servicecomb.serviceregistry.version;
+package org.apache.servicecomb.registry.version;
 
 import java.util.concurrent.ConcurrentHashMap;
 
+import org.apache.servicecomb.registry.version.Version;
+import org.apache.servicecomb.registry.version.VersionUtils;
 import org.junit.After;
 import org.junit.Assert;
 import org.junit.Before;
diff --git a/service-registry/registry-service-center/src/test/java/org/apache/servicecomb/serviceregistry/version/VersionConst.java b/foundations/foundation-registry/src/test/java/org/apache/servicecomb/registry/version/VersionConst.java
similarity index 91%
rename from service-registry/registry-service-center/src/test/java/org/apache/servicecomb/serviceregistry/version/VersionConst.java
rename to foundations/foundation-registry/src/test/java/org/apache/servicecomb/registry/version/VersionConst.java
index d92f03e..46c4a3b 100644
--- a/service-registry/registry-service-center/src/test/java/org/apache/servicecomb/serviceregistry/version/VersionConst.java
+++ b/foundations/foundation-registry/src/test/java/org/apache/servicecomb/registry/version/VersionConst.java
@@ -15,7 +15,9 @@
  * limitations under the License.
  */
 
-package org.apache.servicecomb.serviceregistry.version;
+package org.apache.servicecomb.registry.version;
+
+import org.apache.servicecomb.registry.version.Version;
 
 public interface VersionConst {
   Version v0 = new Version((short) 0, (short) 0, (short) 0, (short) 0);
diff --git a/handlers/handler-loadbalance/src/main/java/org/apache/servicecomb/loadbalance/Configuration.java b/handlers/handler-loadbalance/src/main/java/org/apache/servicecomb/loadbalance/Configuration.java
index 0720ca5..60ab434 100644
--- a/handlers/handler-loadbalance/src/main/java/org/apache/servicecomb/loadbalance/Configuration.java
+++ b/handlers/handler-loadbalance/src/main/java/org/apache/servicecomb/loadbalance/Configuration.java
@@ -19,7 +19,7 @@ package org.apache.servicecomb.loadbalance;
 
 import java.util.Map;
 
-import org.apache.servicecomb.serviceregistry.config.ConfigurePropertyUtils;
+import org.apache.servicecomb.registry.config.ConfigurePropertyUtils;
 
 import com.netflix.config.DynamicPropertyFactory;
 
diff --git a/handlers/handler-loadbalance/src/main/java/org/apache/servicecomb/loadbalance/LoadbalanceHandler.java b/handlers/handler-loadbalance/src/main/java/org/apache/servicecomb/loadbalance/LoadbalanceHandler.java
index 61c33f7..0e68e8f 100644
--- a/handlers/handler-loadbalance/src/main/java/org/apache/servicecomb/loadbalance/LoadbalanceHandler.java
+++ b/handlers/handler-loadbalance/src/main/java/org/apache/servicecomb/loadbalance/LoadbalanceHandler.java
@@ -42,9 +42,9 @@ import org.apache.servicecomb.foundation.common.concurrent.ConcurrentHashMapEx;
 import org.apache.servicecomb.foundation.common.utils.ExceptionUtils;
 import org.apache.servicecomb.loadbalance.filter.IsolationDiscoveryFilter;
 import org.apache.servicecomb.loadbalance.filter.ServerDiscoveryFilter;
-import org.apache.servicecomb.serviceregistry.discovery.DiscoveryContext;
-import org.apache.servicecomb.serviceregistry.discovery.DiscoveryFilter;
-import org.apache.servicecomb.serviceregistry.discovery.DiscoveryTree;
+import org.apache.servicecomb.registry.discovery.DiscoveryContext;
+import org.apache.servicecomb.registry.discovery.DiscoveryFilter;
+import org.apache.servicecomb.registry.discovery.DiscoveryTree;
 import org.apache.servicecomb.swagger.invocation.AsyncResponse;
 import org.apache.servicecomb.swagger.invocation.Response;
 import org.apache.servicecomb.swagger.invocation.exception.ExceptionFactory;
diff --git a/handlers/handler-loadbalance/src/main/java/org/apache/servicecomb/loadbalance/ServiceCombLoadBalancerStats.java b/handlers/handler-loadbalance/src/main/java/org/apache/servicecomb/loadbalance/ServiceCombLoadBalancerStats.java
index fd8bf90..f2cdfa9 100644
--- a/handlers/handler-loadbalance/src/main/java/org/apache/servicecomb/loadbalance/ServiceCombLoadBalancerStats.java
+++ b/handlers/handler-loadbalance/src/main/java/org/apache/servicecomb/loadbalance/ServiceCombLoadBalancerStats.java
@@ -25,8 +25,8 @@ import java.util.concurrent.ExecutionException;
 import java.util.concurrent.TimeUnit;
 
 import org.apache.servicecomb.foundation.common.utils.SPIServiceUtils;
-import org.apache.servicecomb.serviceregistry.api.registry.MicroserviceInstance;
-import org.apache.servicecomb.serviceregistry.consumer.MicroserviceInstancePing;
+import org.apache.servicecomb.registry.api.registry.MicroserviceInstance;
+import org.apache.servicecomb.registry.consumer.MicroserviceInstancePing;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
diff --git a/handlers/handler-loadbalance/src/main/java/org/apache/servicecomb/loadbalance/ServiceCombServer.java b/handlers/handler-loadbalance/src/main/java/org/apache/servicecomb/loadbalance/ServiceCombServer.java
index e780b8b..47cb912 100644
--- a/handlers/handler-loadbalance/src/main/java/org/apache/servicecomb/loadbalance/ServiceCombServer.java
+++ b/handlers/handler-loadbalance/src/main/java/org/apache/servicecomb/loadbalance/ServiceCombServer.java
@@ -22,8 +22,8 @@ import java.net.URISyntaxException;
 
 import org.apache.servicecomb.core.Endpoint;
 import org.apache.servicecomb.core.Transport;
-import org.apache.servicecomb.serviceregistry.api.registry.MicroserviceInstance;
-import org.apache.servicecomb.serviceregistry.cache.CacheEndpoint;
+import org.apache.servicecomb.registry.api.registry.MicroserviceInstance;
+import org.apache.servicecomb.registry.cache.CacheEndpoint;
 
 import com.google.common.annotations.VisibleForTesting;
 import com.netflix.loadbalancer.Server;
diff --git a/handlers/handler-loadbalance/src/main/java/org/apache/servicecomb/loadbalance/event/IsolationServerEvent.java b/handlers/handler-loadbalance/src/main/java/org/apache/servicecomb/loadbalance/event/IsolationServerEvent.java
index a48e6d4..84adb78 100644
--- a/handlers/handler-loadbalance/src/main/java/org/apache/servicecomb/loadbalance/event/IsolationServerEvent.java
+++ b/handlers/handler-loadbalance/src/main/java/org/apache/servicecomb/loadbalance/event/IsolationServerEvent.java
@@ -21,7 +21,7 @@ import org.apache.servicecomb.core.Invocation;
 import org.apache.servicecomb.foundation.common.event.AlarmEvent;
 import org.apache.servicecomb.loadbalance.ServiceCombServerStats;
 import org.apache.servicecomb.loadbalance.filter.IsolationDiscoveryFilter;
-import org.apache.servicecomb.serviceregistry.api.registry.MicroserviceInstance;
+import org.apache.servicecomb.registry.api.registry.MicroserviceInstance;
 
 public class IsolationServerEvent extends AlarmEvent {
 
diff --git a/handlers/handler-loadbalance/src/main/java/org/apache/servicecomb/loadbalance/filter/InstancePropertyDiscoveryFilter.java b/handlers/handler-loadbalance/src/main/java/org/apache/servicecomb/loadbalance/filter/InstancePropertyDiscoveryFilter.java
index 0c1d27a..bf9e05e 100644
--- a/handlers/handler-loadbalance/src/main/java/org/apache/servicecomb/loadbalance/filter/InstancePropertyDiscoveryFilter.java
+++ b/handlers/handler-loadbalance/src/main/java/org/apache/servicecomb/loadbalance/filter/InstancePropertyDiscoveryFilter.java
@@ -23,10 +23,10 @@ import java.util.Map.Entry;
 
 import org.apache.servicecomb.core.Invocation;
 import org.apache.servicecomb.loadbalance.Configuration;
-import org.apache.servicecomb.serviceregistry.api.registry.MicroserviceInstance;
-import org.apache.servicecomb.serviceregistry.discovery.AbstractDiscoveryFilter;
-import org.apache.servicecomb.serviceregistry.discovery.DiscoveryContext;
-import org.apache.servicecomb.serviceregistry.discovery.DiscoveryTreeNode;
+import org.apache.servicecomb.registry.api.registry.MicroserviceInstance;
+import org.apache.servicecomb.registry.discovery.AbstractDiscoveryFilter;
+import org.apache.servicecomb.registry.discovery.DiscoveryContext;
+import org.apache.servicecomb.registry.discovery.DiscoveryTreeNode;
 
 import com.netflix.config.DynamicPropertyFactory;
 
diff --git a/handlers/handler-loadbalance/src/main/java/org/apache/servicecomb/loadbalance/filter/IsolationDiscoveryFilter.java b/handlers/handler-loadbalance/src/main/java/org/apache/servicecomb/loadbalance/filter/IsolationDiscoveryFilter.java
index 67a46cb..c8f4289 100644
--- a/handlers/handler-loadbalance/src/main/java/org/apache/servicecomb/loadbalance/filter/IsolationDiscoveryFilter.java
+++ b/handlers/handler-loadbalance/src/main/java/org/apache/servicecomb/loadbalance/filter/IsolationDiscoveryFilter.java
@@ -28,10 +28,10 @@ import org.apache.servicecomb.loadbalance.ServiceCombLoadBalancerStats;
 import org.apache.servicecomb.loadbalance.ServiceCombServer;
 import org.apache.servicecomb.loadbalance.ServiceCombServerStats;
 import org.apache.servicecomb.loadbalance.event.IsolationServerEvent;
-import org.apache.servicecomb.serviceregistry.api.registry.MicroserviceInstance;
-import org.apache.servicecomb.serviceregistry.discovery.DiscoveryContext;
-import org.apache.servicecomb.serviceregistry.discovery.DiscoveryFilter;
-import org.apache.servicecomb.serviceregistry.discovery.DiscoveryTreeNode;
+import org.apache.servicecomb.registry.api.registry.MicroserviceInstance;
+import org.apache.servicecomb.registry.discovery.DiscoveryContext;
+import org.apache.servicecomb.registry.discovery.DiscoveryFilter;
+import org.apache.servicecomb.registry.discovery.DiscoveryTreeNode;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
diff --git a/handlers/handler-loadbalance/src/main/java/org/apache/servicecomb/loadbalance/filter/ServerDiscoveryFilter.java b/handlers/handler-loadbalance/src/main/java/org/apache/servicecomb/loadbalance/filter/ServerDiscoveryFilter.java
index 62211ef..a3bc65a 100644
--- a/handlers/handler-loadbalance/src/main/java/org/apache/servicecomb/loadbalance/filter/ServerDiscoveryFilter.java
+++ b/handlers/handler-loadbalance/src/main/java/org/apache/servicecomb/loadbalance/filter/ServerDiscoveryFilter.java
@@ -21,8 +21,8 @@ import org.apache.servicecomb.core.SCBEngine;
 import org.apache.servicecomb.core.Transport;
 import org.apache.servicecomb.core.filter.EndpointDiscoveryFilter;
 import org.apache.servicecomb.loadbalance.ServiceCombServer;
-import org.apache.servicecomb.serviceregistry.api.registry.MicroserviceInstance;
-import org.apache.servicecomb.serviceregistry.cache.CacheEndpoint;
+import org.apache.servicecomb.registry.api.registry.MicroserviceInstance;
+import org.apache.servicecomb.registry.cache.CacheEndpoint;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
diff --git a/handlers/handler-loadbalance/src/main/java/org/apache/servicecomb/loadbalance/filter/ZoneAwareDiscoveryFilter.java b/handlers/handler-loadbalance/src/main/java/org/apache/servicecomb/loadbalance/filter/ZoneAwareDiscoveryFilter.java
index 1441394..6abf19c 100644
--- a/handlers/handler-loadbalance/src/main/java/org/apache/servicecomb/loadbalance/filter/ZoneAwareDiscoveryFilter.java
+++ b/handlers/handler-loadbalance/src/main/java/org/apache/servicecomb/loadbalance/filter/ZoneAwareDiscoveryFilter.java
@@ -21,11 +21,11 @@ import java.util.HashMap;
 import java.util.Map;
 
 import org.apache.servicecomb.foundation.common.exceptions.ServiceCombException;
-import org.apache.servicecomb.serviceregistry.RegistrationManager;
-import org.apache.servicecomb.serviceregistry.api.registry.MicroserviceInstance;
-import org.apache.servicecomb.serviceregistry.discovery.AbstractDiscoveryFilter;
-import org.apache.servicecomb.serviceregistry.discovery.DiscoveryContext;
-import org.apache.servicecomb.serviceregistry.discovery.DiscoveryTreeNode;
+import org.apache.servicecomb.registry.RegistrationManager;
+import org.apache.servicecomb.registry.api.registry.MicroserviceInstance;
+import org.apache.servicecomb.registry.discovery.AbstractDiscoveryFilter;
+import org.apache.servicecomb.registry.discovery.DiscoveryContext;
+import org.apache.servicecomb.registry.discovery.DiscoveryTreeNode;
 
 import com.netflix.config.DynamicPropertyFactory;
 
diff --git a/handlers/handler-loadbalance/src/main/resources/META-INF/services/org.apache.servicecomb.serviceregistry.discovery.DiscoveryFilter b/handlers/handler-loadbalance/src/main/resources/META-INF/services/org.apache.servicecomb.registry.discovery.DiscoveryFilter
similarity index 100%
rename from handlers/handler-loadbalance/src/main/resources/META-INF/services/org.apache.servicecomb.serviceregistry.discovery.DiscoveryFilter
rename to handlers/handler-loadbalance/src/main/resources/META-INF/services/org.apache.servicecomb.registry.discovery.DiscoveryFilter
diff --git a/handlers/handler-loadbalance/src/test/java/org/apache/servicecomb/loadbalance/TestLoadBalanceCreator.java b/handlers/handler-loadbalance/src/test/java/org/apache/servicecomb/loadbalance/TestLoadBalanceCreator.java
index e0019b7..14f219c 100644
--- a/handlers/handler-loadbalance/src/test/java/org/apache/servicecomb/loadbalance/TestLoadBalanceCreator.java
+++ b/handlers/handler-loadbalance/src/test/java/org/apache/servicecomb/loadbalance/TestLoadBalanceCreator.java
@@ -24,7 +24,7 @@ import org.apache.servicecomb.core.Endpoint;
 import org.apache.servicecomb.core.Invocation;
 import org.apache.servicecomb.core.Transport;
 import org.apache.servicecomb.foundation.test.scaffolding.config.ArchaiusUtils;
-import org.apache.servicecomb.serviceregistry.api.registry.MicroserviceInstance;
+import org.apache.servicecomb.registry.api.registry.MicroserviceInstance;
 import org.junit.Assert;
 import org.junit.Test;
 
diff --git a/handlers/handler-loadbalance/src/test/java/org/apache/servicecomb/loadbalance/TestLoadBalanceHandler2.java b/handlers/handler-loadbalance/src/test/java/org/apache/servicecomb/loadbalance/TestLoadBalanceHandler2.java
index 6fb0332..1c389a5 100644
--- a/handlers/handler-loadbalance/src/test/java/org/apache/servicecomb/loadbalance/TestLoadBalanceHandler2.java
+++ b/handlers/handler-loadbalance/src/test/java/org/apache/servicecomb/loadbalance/TestLoadBalanceHandler2.java
@@ -45,13 +45,13 @@ import org.apache.servicecomb.loadbalance.filter.IsolationDiscoveryFilter;
 import org.apache.servicecomb.loadbalance.filter.ServerDiscoveryFilter;
 import org.apache.servicecomb.loadbalance.filter.ZoneAwareDiscoveryFilter;
 import org.apache.servicecomb.localregistry.LocalRegistryStore;
-import org.apache.servicecomb.serviceregistry.DiscoveryManager;
-import org.apache.servicecomb.serviceregistry.api.registry.DataCenterInfo;
-import org.apache.servicecomb.serviceregistry.api.registry.MicroserviceInstance;
-import org.apache.servicecomb.serviceregistry.api.registry.MicroserviceInstanceStatus;
-import org.apache.servicecomb.serviceregistry.cache.InstanceCacheManager;
-import org.apache.servicecomb.serviceregistry.discovery.DiscoveryTree;
-import org.apache.servicecomb.serviceregistry.discovery.DiscoveryTreeNode;
+import org.apache.servicecomb.registry.DiscoveryManager;
+import org.apache.servicecomb.registry.api.registry.DataCenterInfo;
+import org.apache.servicecomb.registry.api.registry.MicroserviceInstance;
+import org.apache.servicecomb.registry.api.registry.MicroserviceInstanceStatus;
+import org.apache.servicecomb.registry.cache.InstanceCacheManager;
+import org.apache.servicecomb.registry.discovery.DiscoveryTree;
+import org.apache.servicecomb.registry.discovery.DiscoveryTreeNode;
 import org.apache.servicecomb.swagger.invocation.AsyncResponse;
 import org.apache.servicecomb.swagger.invocation.exception.InvocationException;
 import org.junit.After;
diff --git a/handlers/handler-loadbalance/src/test/java/org/apache/servicecomb/loadbalance/TestLoadBalancer.java b/handlers/handler-loadbalance/src/test/java/org/apache/servicecomb/loadbalance/TestLoadBalancer.java
index 9b5d876..430e4b0 100644
--- a/handlers/handler-loadbalance/src/test/java/org/apache/servicecomb/loadbalance/TestLoadBalancer.java
+++ b/handlers/handler-loadbalance/src/test/java/org/apache/servicecomb/loadbalance/TestLoadBalancer.java
@@ -23,8 +23,7 @@ import java.util.ArrayList;
 import java.util.List;
 
 import org.apache.servicecomb.core.Invocation;
-import org.apache.servicecomb.serviceregistry.api.registry.Microservice;
-import org.apache.servicecomb.serviceregistry.api.registry.MicroserviceInstance;
+import org.apache.servicecomb.registry.api.registry.MicroserviceInstance;
 import org.junit.Assert;
 import org.junit.Test;
 import org.mockito.Mockito;
diff --git a/handlers/handler-loadbalance/src/test/java/org/apache/servicecomb/loadbalance/TestLoadbalanceHandler.java b/handlers/handler-loadbalance/src/test/java/org/apache/servicecomb/loadbalance/TestLoadbalanceHandler.java
index 8ed472a..b1348d3 100644
--- a/handlers/handler-loadbalance/src/test/java/org/apache/servicecomb/loadbalance/TestLoadbalanceHandler.java
+++ b/handlers/handler-loadbalance/src/test/java/org/apache/servicecomb/loadbalance/TestLoadbalanceHandler.java
@@ -36,10 +36,10 @@ import org.apache.servicecomb.core.transport.TransportManager;
 import org.apache.servicecomb.foundation.common.Holder;
 import org.apache.servicecomb.foundation.common.utils.SPIServiceUtils;
 import org.apache.servicecomb.foundation.test.scaffolding.config.ArchaiusUtils;
-import org.apache.servicecomb.serviceregistry.api.registry.MicroserviceInstance;
-import org.apache.servicecomb.serviceregistry.cache.CacheEndpoint;
-import org.apache.servicecomb.serviceregistry.cache.InstanceCacheManager;
-import org.apache.servicecomb.serviceregistry.discovery.DiscoveryFilter;
+import org.apache.servicecomb.registry.api.registry.MicroserviceInstance;
+import org.apache.servicecomb.registry.cache.CacheEndpoint;
+import org.apache.servicecomb.registry.cache.InstanceCacheManager;
+import org.apache.servicecomb.registry.discovery.DiscoveryFilter;
 import org.apache.servicecomb.swagger.invocation.AsyncResponse;
 import org.apache.servicecomb.swagger.invocation.Response;
 import org.hamcrest.Matchers;
diff --git a/handlers/handler-loadbalance/src/test/java/org/apache/servicecomb/loadbalance/TestServiceCombLoadBalancerStats.java b/handlers/handler-loadbalance/src/test/java/org/apache/servicecomb/loadbalance/TestServiceCombLoadBalancerStats.java
index 79fec89..1268d18 100644
--- a/handlers/handler-loadbalance/src/test/java/org/apache/servicecomb/loadbalance/TestServiceCombLoadBalancerStats.java
+++ b/handlers/handler-loadbalance/src/test/java/org/apache/servicecomb/loadbalance/TestServiceCombLoadBalancerStats.java
@@ -25,9 +25,9 @@ import java.util.concurrent.TimeUnit;
 
 import org.apache.servicecomb.core.Transport;
 import org.apache.servicecomb.foundation.common.utils.SPIServiceUtils;
-import org.apache.servicecomb.serviceregistry.api.registry.MicroserviceInstance;
-import org.apache.servicecomb.serviceregistry.cache.CacheEndpoint;
-import org.apache.servicecomb.serviceregistry.consumer.MicroserviceInstancePing;
+import org.apache.servicecomb.registry.api.registry.MicroserviceInstance;
+import org.apache.servicecomb.registry.cache.CacheEndpoint;
+import org.apache.servicecomb.registry.consumer.MicroserviceInstancePing;
 import org.junit.AfterClass;
 import org.junit.Assert;
 import org.junit.Before;
diff --git a/handlers/handler-loadbalance/src/test/java/org/apache/servicecomb/loadbalance/TestServiceCombServer.java b/handlers/handler-loadbalance/src/test/java/org/apache/servicecomb/loadbalance/TestServiceCombServer.java
index 1b2e599..8e4ce0a 100644
--- a/handlers/handler-loadbalance/src/test/java/org/apache/servicecomb/loadbalance/TestServiceCombServer.java
+++ b/handlers/handler-loadbalance/src/test/java/org/apache/servicecomb/loadbalance/TestServiceCombServer.java
@@ -20,8 +20,8 @@ package org.apache.servicecomb.loadbalance;
 import static org.junit.Assert.assertNotNull;
 
 import org.apache.servicecomb.core.Transport;
-import org.apache.servicecomb.serviceregistry.api.registry.MicroserviceInstance;
-import org.apache.servicecomb.serviceregistry.cache.CacheEndpoint;
+import org.apache.servicecomb.registry.api.registry.MicroserviceInstance;
+import org.apache.servicecomb.registry.cache.CacheEndpoint;
 import org.junit.Assert;
 import org.junit.Before;
 import org.junit.Test;
diff --git a/handlers/handler-loadbalance/src/test/java/org/apache/servicecomb/loadbalance/TestSessionSticknessRule.java b/handlers/handler-loadbalance/src/test/java/org/apache/servicecomb/loadbalance/TestSessionSticknessRule.java
index 228e973..2aefc3c 100644
--- a/handlers/handler-loadbalance/src/test/java/org/apache/servicecomb/loadbalance/TestSessionSticknessRule.java
+++ b/handlers/handler-loadbalance/src/test/java/org/apache/servicecomb/loadbalance/TestSessionSticknessRule.java
@@ -26,8 +26,8 @@ import java.util.List;
 
 import org.apache.servicecomb.core.Invocation;
 import org.apache.servicecomb.core.Transport;
-import org.apache.servicecomb.serviceregistry.api.registry.MicroserviceInstance;
-import org.apache.servicecomb.serviceregistry.cache.CacheEndpoint;
+import org.apache.servicecomb.registry.api.registry.MicroserviceInstance;
+import org.apache.servicecomb.registry.cache.CacheEndpoint;
 import org.junit.Assert;
 import org.junit.Test;
 import org.mockito.Mockito;
diff --git a/handlers/handler-loadbalance/src/test/java/org/apache/servicecomb/loadbalance/filter/IsolationDiscoveryFilterTest.java b/handlers/handler-loadbalance/src/test/java/org/apache/servicecomb/loadbalance/filter/IsolationDiscoveryFilterTest.java
index a632352..d1d0467 100644
--- a/handlers/handler-loadbalance/src/test/java/org/apache/servicecomb/loadbalance/filter/IsolationDiscoveryFilterTest.java
+++ b/handlers/handler-loadbalance/src/test/java/org/apache/servicecomb/loadbalance/filter/IsolationDiscoveryFilterTest.java
@@ -27,10 +27,10 @@ import org.apache.servicecomb.loadbalance.Configuration;
 import org.apache.servicecomb.loadbalance.ServiceCombLoadBalancerStats;
 import org.apache.servicecomb.loadbalance.ServiceCombServer;
 import org.apache.servicecomb.loadbalance.ServiceCombServerStats;
-import org.apache.servicecomb.serviceregistry.api.registry.MicroserviceInstance;
-import org.apache.servicecomb.serviceregistry.cache.CacheEndpoint;
-import org.apache.servicecomb.serviceregistry.discovery.DiscoveryContext;
-import org.apache.servicecomb.serviceregistry.discovery.DiscoveryTreeNode;
+import org.apache.servicecomb.registry.api.registry.MicroserviceInstance;
+import org.apache.servicecomb.registry.cache.CacheEndpoint;
+import org.apache.servicecomb.registry.discovery.DiscoveryContext;
+import org.apache.servicecomb.registry.discovery.DiscoveryTreeNode;
 import org.hamcrest.Matchers;
 import org.junit.After;
 import org.junit.Assert;
diff --git a/handlers/handler-loadbalance/src/test/java/org/apache/servicecomb/loadbalance/filter/TestInstancePropertyDiscoveryFilter.java b/handlers/handler-loadbalance/src/test/java/org/apache/servicecomb/loadbalance/filter/TestInstancePropertyDiscoveryFilter.java
index 12222ae..17dfe99 100644
--- a/handlers/handler-loadbalance/src/test/java/org/apache/servicecomb/loadbalance/filter/TestInstancePropertyDiscoveryFilter.java
+++ b/handlers/handler-loadbalance/src/test/java/org/apache/servicecomb/loadbalance/filter/TestInstancePropertyDiscoveryFilter.java
@@ -23,9 +23,9 @@ import java.util.Map;
 import org.apache.commons.configuration.AbstractConfiguration;
 import org.apache.commons.configuration.BaseConfiguration;
 import org.apache.servicecomb.core.Invocation;
-import org.apache.servicecomb.serviceregistry.api.registry.MicroserviceInstance;
-import org.apache.servicecomb.serviceregistry.discovery.DiscoveryContext;
-import org.apache.servicecomb.serviceregistry.discovery.DiscoveryTreeNode;
+import org.apache.servicecomb.registry.api.registry.MicroserviceInstance;
+import org.apache.servicecomb.registry.discovery.DiscoveryContext;
+import org.apache.servicecomb.registry.discovery.DiscoveryTreeNode;
 import org.junit.Assert;
 import org.junit.Before;
 import org.junit.BeforeClass;
diff --git a/handlers/handler-loadbalance/src/test/java/org/apache/servicecomb/loadbalance/filter/TestServerDiscoveryFilter.java b/handlers/handler-loadbalance/src/test/java/org/apache/servicecomb/loadbalance/filter/TestServerDiscoveryFilter.java
index 8042bc8..a5e16e0 100644
--- a/handlers/handler-loadbalance/src/test/java/org/apache/servicecomb/loadbalance/filter/TestServerDiscoveryFilter.java
+++ b/handlers/handler-loadbalance/src/test/java/org/apache/servicecomb/loadbalance/filter/TestServerDiscoveryFilter.java
@@ -25,7 +25,7 @@ import org.apache.servicecomb.core.bootstrap.SCBBootstrap;
 import org.apache.servicecomb.core.transport.TransportManager;
 import org.apache.servicecomb.foundation.test.scaffolding.config.ArchaiusUtils;
 import org.apache.servicecomb.loadbalance.ServiceCombServer;
-import org.apache.servicecomb.serviceregistry.api.registry.MicroserviceInstance;
+import org.apache.servicecomb.registry.api.registry.MicroserviceInstance;
 import org.junit.AfterClass;
 import org.junit.Assert;
 import org.junit.BeforeClass;
diff --git a/handlers/handler-publickey-auth/src/main/java/org/apache/servicecomb/AuthHandlerBoot.java b/handlers/handler-publickey-auth/src/main/java/org/apache/servicecomb/AuthHandlerBoot.java
index 7ec0b37..4f07166 100644
--- a/handlers/handler-publickey-auth/src/main/java/org/apache/servicecomb/AuthHandlerBoot.java
+++ b/handlers/handler-publickey-auth/src/main/java/org/apache/servicecomb/AuthHandlerBoot.java
@@ -20,8 +20,8 @@ import org.apache.servicecomb.core.BootListener;
 import org.apache.servicecomb.foundation.common.utils.RSAKeyPairEntry;
 import org.apache.servicecomb.foundation.common.utils.RSAUtils;
 import org.apache.servicecomb.foundation.token.RSAKeypair4Auth;
-import org.apache.servicecomb.serviceregistry.RegistrationManager;
-import org.apache.servicecomb.serviceregistry.definition.DefinitionConst;
+import org.apache.servicecomb.registry.RegistrationManager;
+import org.apache.servicecomb.registry.definition.DefinitionConst;
 import org.springframework.stereotype.Component;
 
 /**
diff --git a/handlers/handler-publickey-auth/src/main/java/org/apache/servicecomb/authentication/consumer/RSAConsumerTokenManager.java b/handlers/handler-publickey-auth/src/main/java/org/apache/servicecomb/authentication/consumer/RSAConsumerTokenManager.java
index 5be7efd..e1f1cd7 100644
--- a/handlers/handler-publickey-auth/src/main/java/org/apache/servicecomb/authentication/consumer/RSAConsumerTokenManager.java
+++ b/handlers/handler-publickey-auth/src/main/java/org/apache/servicecomb/authentication/consumer/RSAConsumerTokenManager.java
@@ -25,7 +25,7 @@ import java.security.spec.InvalidKeySpecException;
 import org.apache.servicecomb.authentication.RSAAuthenticationToken;
 import org.apache.servicecomb.foundation.common.utils.RSAUtils;
 import org.apache.servicecomb.foundation.token.RSAKeypair4Auth;
-import org.apache.servicecomb.serviceregistry.RegistrationManager;
+import org.apache.servicecomb.registry.RegistrationManager;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
diff --git a/handlers/handler-publickey-auth/src/main/java/org/apache/servicecomb/authentication/provider/AccessController.java b/handlers/handler-publickey-auth/src/main/java/org/apache/servicecomb/authentication/provider/AccessController.java
index e65f71f..561d823 100644
--- a/handlers/handler-publickey-auth/src/main/java/org/apache/servicecomb/authentication/provider/AccessController.java
+++ b/handlers/handler-publickey-auth/src/main/java/org/apache/servicecomb/authentication/provider/AccessController.java
@@ -23,7 +23,7 @@ import java.util.Map;
 import java.util.Map.Entry;
 
 import org.apache.commons.lang3.StringUtils;
-import org.apache.servicecomb.serviceregistry.api.registry.Microservice;
+import org.apache.servicecomb.registry.api.registry.Microservice;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
diff --git a/handlers/handler-publickey-auth/src/main/java/org/apache/servicecomb/authentication/provider/RSAProviderTokenManager.java b/handlers/handler-publickey-auth/src/main/java/org/apache/servicecomb/authentication/provider/RSAProviderTokenManager.java
index 9b5d0a3..48f630e 100644
--- a/handlers/handler-publickey-auth/src/main/java/org/apache/servicecomb/authentication/provider/RSAProviderTokenManager.java
+++ b/handlers/handler-publickey-auth/src/main/java/org/apache/servicecomb/authentication/provider/RSAProviderTokenManager.java
@@ -24,9 +24,9 @@ import java.util.concurrent.TimeUnit;
 
 import org.apache.servicecomb.authentication.RSAAuthenticationToken;
 import org.apache.servicecomb.foundation.common.utils.RSAUtils;
-import org.apache.servicecomb.serviceregistry.api.registry.MicroserviceInstance;
-import org.apache.servicecomb.serviceregistry.cache.MicroserviceInstanceCache;
-import org.apache.servicecomb.serviceregistry.definition.DefinitionConst;
+import org.apache.servicecomb.registry.api.registry.MicroserviceInstance;
+import org.apache.servicecomb.registry.cache.MicroserviceInstanceCache;
+import org.apache.servicecomb.registry.definition.DefinitionConst;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
diff --git a/handlers/handler-publickey-auth/src/test/java/org/apache/servicecomb/authentication/TestAccessController.java b/handlers/handler-publickey-auth/src/test/java/org/apache/servicecomb/authentication/TestAccessController.java
index 892acea..ff41134 100644
--- a/handlers/handler-publickey-auth/src/test/java/org/apache/servicecomb/authentication/TestAccessController.java
+++ b/handlers/handler-publickey-auth/src/test/java/org/apache/servicecomb/authentication/TestAccessController.java
@@ -21,7 +21,7 @@ import java.util.Map;
 
 import org.apache.servicecomb.authentication.provider.AccessController;
 import org.apache.servicecomb.foundation.test.scaffolding.config.ArchaiusUtils;
-import org.apache.servicecomb.serviceregistry.api.registry.Microservice;
+import org.apache.servicecomb.registry.api.registry.Microservice;
 import org.junit.After;
 import org.junit.Assert;
 import org.junit.Test;
diff --git a/handlers/handler-publickey-auth/src/test/java/org/apache/servicecomb/authentication/TestAuthHandlerBoot.java b/handlers/handler-publickey-auth/src/test/java/org/apache/servicecomb/authentication/TestAuthHandlerBoot.java
index e088aa7..59aa747 100644
--- a/handlers/handler-publickey-auth/src/test/java/org/apache/servicecomb/authentication/TestAuthHandlerBoot.java
+++ b/handlers/handler-publickey-auth/src/test/java/org/apache/servicecomb/authentication/TestAuthHandlerBoot.java
@@ -22,11 +22,10 @@ import org.apache.servicecomb.core.BootListener;
 import org.apache.servicecomb.core.BootListener.BootEvent;
 import org.apache.servicecomb.core.SCBEngine;
 import org.apache.servicecomb.core.bootstrap.SCBBootstrap;
-import org.apache.servicecomb.core.bootstrap.SCBEngineForTest;
 import org.apache.servicecomb.foundation.test.scaffolding.config.ArchaiusUtils;
 import org.apache.servicecomb.foundation.token.RSAKeypair4Auth;
-import org.apache.servicecomb.serviceregistry.api.registry.Microservice;
-import org.apache.servicecomb.serviceregistry.api.registry.MicroserviceInstance;
+import org.apache.servicecomb.registry.api.registry.Microservice;
+import org.apache.servicecomb.registry.api.registry.MicroserviceInstance;
 import org.junit.After;
 import org.junit.Assert;
 import org.junit.Before;
diff --git a/handlers/handler-publickey-auth/src/test/java/org/apache/servicecomb/authentication/TestRSAProviderTokenManager.java b/handlers/handler-publickey-auth/src/test/java/org/apache/servicecomb/authentication/TestRSAProviderTokenManager.java
index 05f8b62..b742038 100644
--- a/handlers/handler-publickey-auth/src/test/java/org/apache/servicecomb/authentication/TestRSAProviderTokenManager.java
+++ b/handlers/handler-publickey-auth/src/test/java/org/apache/servicecomb/authentication/TestRSAProviderTokenManager.java
@@ -27,11 +27,11 @@ import org.apache.servicecomb.foundation.common.utils.RSAKeyPairEntry;
 import org.apache.servicecomb.foundation.common.utils.RSAUtils;
 import org.apache.servicecomb.foundation.test.scaffolding.config.ArchaiusUtils;
 import org.apache.servicecomb.foundation.token.RSAKeypair4Auth;
-import org.apache.servicecomb.serviceregistry.RegistrationManager;
-import org.apache.servicecomb.serviceregistry.api.registry.Microservice;
-import org.apache.servicecomb.serviceregistry.api.registry.MicroserviceInstance;
-import org.apache.servicecomb.serviceregistry.cache.MicroserviceInstanceCache;
-import org.apache.servicecomb.serviceregistry.definition.DefinitionConst;
+import org.apache.servicecomb.registry.RegistrationManager;
+import org.apache.servicecomb.registry.api.registry.Microservice;
+import org.apache.servicecomb.registry.api.registry.MicroserviceInstance;
+import org.apache.servicecomb.registry.cache.MicroserviceInstanceCache;
+import org.apache.servicecomb.registry.definition.DefinitionConst;
 import org.junit.After;
 import org.junit.Assert;
 import org.junit.Before;
diff --git a/handlers/handler-router/src/main/java/org/apache/servicecomb/router/custom/MicroserviceCache.java b/handlers/handler-router/src/main/java/org/apache/servicecomb/router/custom/MicroserviceCache.java
index b92c486..6e4ec24 100644
--- a/handlers/handler-router/src/main/java/org/apache/servicecomb/router/custom/MicroserviceCache.java
+++ b/handlers/handler-router/src/main/java/org/apache/servicecomb/router/custom/MicroserviceCache.java
@@ -19,8 +19,8 @@ package org.apache.servicecomb.router.custom;
 import java.util.HashMap;
 import java.util.Map;
 
-import org.apache.servicecomb.serviceregistry.DiscoveryManager;
-import org.apache.servicecomb.serviceregistry.api.registry.Microservice;
+import org.apache.servicecomb.registry.DiscoveryManager;
+import org.apache.servicecomb.registry.api.registry.Microservice;
 
 public final class MicroserviceCache {
 
diff --git a/handlers/handler-router/src/main/java/org/apache/servicecomb/router/custom/RouterServerListFilter.java b/handlers/handler-router/src/main/java/org/apache/servicecomb/router/custom/RouterServerListFilter.java
index e8b733e..59df369 100644
--- a/handlers/handler-router/src/main/java/org/apache/servicecomb/router/custom/RouterServerListFilter.java
+++ b/handlers/handler-router/src/main/java/org/apache/servicecomb/router/custom/RouterServerListFilter.java
@@ -27,7 +27,7 @@ import org.apache.servicecomb.loadbalance.ServerListFilterExt;
 import org.apache.servicecomb.loadbalance.ServiceCombServer;
 import org.apache.servicecomb.router.RouterFilter;
 import org.apache.servicecomb.router.distribute.RouterDistributor;
-import org.apache.servicecomb.serviceregistry.api.registry.Microservice;
+import org.apache.servicecomb.registry.api.registry.Microservice;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
diff --git a/handlers/handler-router/src/main/java/org/apache/servicecomb/router/custom/ServiceCombCanaryDistributer.java b/handlers/handler-router/src/main/java/org/apache/servicecomb/router/custom/ServiceCombCanaryDistributer.java
index c692cb9..a49275b 100644
--- a/handlers/handler-router/src/main/java/org/apache/servicecomb/router/custom/ServiceCombCanaryDistributer.java
+++ b/handlers/handler-router/src/main/java/org/apache/servicecomb/router/custom/ServiceCombCanaryDistributer.java
@@ -18,7 +18,7 @@ package org.apache.servicecomb.router.custom;
 
 import org.apache.servicecomb.loadbalance.ServiceCombServer;
 import org.apache.servicecomb.router.distribute.AbstractRouterDistributor;
-import org.apache.servicecomb.serviceregistry.api.registry.Microservice;
+import org.apache.servicecomb.registry.api.registry.Microservice;
 
 public class ServiceCombCanaryDistributer extends
     AbstractRouterDistributor<ServiceCombServer, Microservice> {
diff --git a/handlers/handler-router/src/main/java/org/apache/servicecomb/router/util/VersionCompareUtil.java b/handlers/handler-router/src/main/java/org/apache/servicecomb/router/util/VersionCompareUtil.java
index eb9d986..2f8696b 100644
--- a/handlers/handler-router/src/main/java/org/apache/servicecomb/router/util/VersionCompareUtil.java
+++ b/handlers/handler-router/src/main/java/org/apache/servicecomb/router/util/VersionCompareUtil.java
@@ -16,7 +16,7 @@
  */
 package org.apache.servicecomb.router.util;
 
-import org.apache.servicecomb.serviceregistry.version.Version;
+import org.apache.servicecomb.registry.version.Version;
 
 public class VersionCompareUtil {
   public static int compareVersion(String version1, String version2) {
diff --git a/huawei-cloud/servicestage/src/main/java/org/apache/servicecomb/huaweicloud/servicestage/CasEnvVariablesAdapter.java b/huawei-cloud/servicestage/src/main/java/org/apache/servicecomb/huaweicloud/servicestage/CasEnvVariablesAdapter.java
index 973bac4..e8896f9 100644
--- a/huawei-cloud/servicestage/src/main/java/org/apache/servicecomb/huaweicloud/servicestage/CasEnvVariablesAdapter.java
+++ b/huawei-cloud/servicestage/src/main/java/org/apache/servicecomb/huaweicloud/servicestage/CasEnvVariablesAdapter.java
@@ -18,7 +18,7 @@
 package org.apache.servicecomb.huaweicloud.servicestage;
 
 import org.apache.servicecomb.serviceregistry.adapter.EnvAdapter;
-import org.apache.servicecomb.serviceregistry.api.registry.MicroserviceInstance;
+import org.apache.servicecomb.registry.api.registry.MicroserviceInstance;
 
 public class CasEnvVariablesAdapter implements EnvAdapter {
   private static final String NAME = "cas-env-variables-adapter";
diff --git a/huawei-cloud/servicestage/src/test/java/org/apache/servicecomb/huaweicloud/servicestage/TestEnvVariablesAdapter.java b/huawei-cloud/servicestage/src/test/java/org/apache/servicecomb/huaweicloud/servicestage/TestEnvVariablesAdapter.java
index a9b2af1..a43751e 100644
--- a/huawei-cloud/servicestage/src/test/java/org/apache/servicecomb/huaweicloud/servicestage/TestEnvVariablesAdapter.java
+++ b/huawei-cloud/servicestage/src/test/java/org/apache/servicecomb/huaweicloud/servicestage/TestEnvVariablesAdapter.java
@@ -18,7 +18,7 @@ package org.apache.servicecomb.huaweicloud.servicestage;
 
 import static org.junit.Assert.assertEquals;
 
-import org.apache.servicecomb.serviceregistry.api.registry.MicroserviceInstance;
+import org.apache.servicecomb.registry.api.registry.MicroserviceInstance;
 import org.junit.AfterClass;
 import org.junit.BeforeClass;
 import org.junit.Test;
diff --git a/inspector/src/main/java/org/apache/servicecomb/inspector/internal/InspectorBootListener.java b/inspector/src/main/java/org/apache/servicecomb/inspector/internal/InspectorBootListener.java
index 858c644..36e465e 100644
--- a/inspector/src/main/java/org/apache/servicecomb/inspector/internal/InspectorBootListener.java
+++ b/inspector/src/main/java/org/apache/servicecomb/inspector/internal/InspectorBootListener.java
@@ -17,7 +17,7 @@
 package org.apache.servicecomb.inspector.internal;
 
 import org.apache.servicecomb.core.BootListener;
-import org.apache.servicecomb.serviceregistry.RegistrationManager;
+import org.apache.servicecomb.registry.RegistrationManager;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
diff --git a/inspector/src/main/java/org/apache/servicecomb/inspector/internal/InspectorImpl.java b/inspector/src/main/java/org/apache/servicecomb/inspector/internal/InspectorImpl.java
index a747f2c..5995fb7 100644
--- a/inspector/src/main/java/org/apache/servicecomb/inspector/internal/InspectorImpl.java
+++ b/inspector/src/main/java/org/apache/servicecomb/inspector/internal/InspectorImpl.java
@@ -58,8 +58,8 @@ import org.apache.servicecomb.inspector.internal.model.DynamicPropertyView;
 import org.apache.servicecomb.inspector.internal.model.PriorityPropertyView;
 import org.apache.servicecomb.inspector.internal.swagger.AppendStyleProcessor;
 import org.apache.servicecomb.inspector.internal.swagger.SchemaFormat;
-import org.apache.servicecomb.serviceregistry.RegistrationManager;
-import org.apache.servicecomb.serviceregistry.definition.DefinitionConst;
+import org.apache.servicecomb.registry.RegistrationManager;
+import org.apache.servicecomb.registry.definition.DefinitionConst;
 import org.apache.servicecomb.swagger.SwaggerUtils;
 import org.apache.servicecomb.swagger.invocation.Response;
 import org.apache.servicecomb.swagger.invocation.exception.InvocationException;
diff --git a/inspector/src/test/java/org/apache/servicecomb/inspector/internal/TestInspectorImpl.java b/inspector/src/test/java/org/apache/servicecomb/inspector/internal/TestInspectorImpl.java
index a3ea9c4..c55aae7 100644
--- a/inspector/src/test/java/org/apache/servicecomb/inspector/internal/TestInspectorImpl.java
+++ b/inspector/src/test/java/org/apache/servicecomb/inspector/internal/TestInspectorImpl.java
@@ -50,9 +50,9 @@ import org.apache.servicecomb.foundation.test.scaffolding.log.LogCollector;
 import org.apache.servicecomb.inspector.internal.model.DynamicPropertyView;
 import org.apache.servicecomb.inspector.internal.model.PriorityPropertyView;
 import org.apache.servicecomb.inspector.internal.swagger.SchemaFormat;
-import org.apache.servicecomb.serviceregistry.RegistrationManager;
-import org.apache.servicecomb.serviceregistry.api.registry.Microservice;
-import org.apache.servicecomb.serviceregistry.definition.DefinitionConst;
+import org.apache.servicecomb.registry.RegistrationManager;
+import org.apache.servicecomb.registry.api.registry.Microservice;
+import org.apache.servicecomb.registry.definition.DefinitionConst;
 import org.apache.servicecomb.swagger.engine.SwaggerProducer;
 import org.apache.servicecomb.swagger.invocation.Response;
 import org.apache.servicecomb.swagger.invocation.exception.CommonExceptionData;
diff --git a/integration-tests/it-common/src/main/java/org/apache/servicecomb/it/CommandReceiver.java b/integration-tests/it-common/src/main/java/org/apache/servicecomb/it/CommandReceiver.java
index 2bc1f25..b145ba6 100644
--- a/integration-tests/it-common/src/main/java/org/apache/servicecomb/it/CommandReceiver.java
+++ b/integration-tests/it-common/src/main/java/org/apache/servicecomb/it/CommandReceiver.java
@@ -24,7 +24,7 @@ import java.util.concurrent.TimeUnit;
 import org.apache.servicecomb.core.SCBEngine;
 import org.apache.servicecomb.core.SCBStatus;
 import org.apache.servicecomb.foundation.common.utils.JsonUtils;
-import org.apache.servicecomb.serviceregistry.RegistrationManager;
+import org.apache.servicecomb.registry.RegistrationManager;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
diff --git a/integration-tests/it-common/src/main/java/org/apache/servicecomb/it/ITUtils.java b/integration-tests/it-common/src/main/java/org/apache/servicecomb/it/ITUtils.java
index bcb99cb..ce8f9da 100644
--- a/integration-tests/it-common/src/main/java/org/apache/servicecomb/it/ITUtils.java
+++ b/integration-tests/it-common/src/main/java/org/apache/servicecomb/it/ITUtils.java
@@ -25,9 +25,9 @@ import java.util.stream.Collectors;
 import org.apache.commons.lang3.reflect.MethodUtils;
 import org.apache.servicecomb.core.SCBEngine;
 import org.apache.servicecomb.core.SCBStatus;
-import org.apache.servicecomb.serviceregistry.DiscoveryManager;
-import org.apache.servicecomb.serviceregistry.api.registry.MicroserviceInstance;
-import org.apache.servicecomb.serviceregistry.consumer.MicroserviceVersionRule;
+import org.apache.servicecomb.registry.DiscoveryManager;
+import org.apache.servicecomb.registry.api.registry.MicroserviceInstance;
+import org.apache.servicecomb.registry.consumer.MicroserviceVersionRule;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
diff --git a/integration-tests/it-consumer/src/main/java/org/apache/servicecomb/it/deploy/MicroserviceDeploy.java b/integration-tests/it-consumer/src/main/java/org/apache/servicecomb/it/deploy/MicroserviceDeploy.java
index 0507aa9..fa9fec1 100644
--- a/integration-tests/it-consumer/src/main/java/org/apache/servicecomb/it/deploy/MicroserviceDeploy.java
+++ b/integration-tests/it-consumer/src/main/java/org/apache/servicecomb/it/deploy/MicroserviceDeploy.java
@@ -18,9 +18,9 @@ package org.apache.servicecomb.it.deploy;
 
 import org.apache.commons.lang3.ArrayUtils;
 import org.apache.servicecomb.it.ITUtils;
-import org.apache.servicecomb.serviceregistry.DiscoveryManager;
-import org.apache.servicecomb.serviceregistry.RegistrationManager;
-import org.apache.servicecomb.serviceregistry.consumer.MicroserviceVersionRule;
+import org.apache.servicecomb.registry.DiscoveryManager;
+import org.apache.servicecomb.registry.RegistrationManager;
+import org.apache.servicecomb.registry.consumer.MicroserviceVersionRule;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
diff --git a/integration-tests/it-consumer/src/main/java/org/apache/servicecomb/it/extend/engine/GateRestTemplate.java b/integration-tests/it-consumer/src/main/java/org/apache/servicecomb/it/extend/engine/GateRestTemplate.java
index b5ff7f9..0e2edd6 100644
--- a/integration-tests/it-consumer/src/main/java/org/apache/servicecomb/it/extend/engine/GateRestTemplate.java
+++ b/integration-tests/it-consumer/src/main/java/org/apache/servicecomb/it/extend/engine/GateRestTemplate.java
@@ -24,11 +24,11 @@ import org.apache.servicecomb.core.definition.SchemaMeta;
 import org.apache.servicecomb.core.provider.consumer.MicroserviceReferenceConfig;
 import org.apache.servicecomb.foundation.common.net.URIEndpointObject;
 import org.apache.servicecomb.it.junit.ITJUnitUtils;
-import org.apache.servicecomb.serviceregistry.DiscoveryManager;
-import org.apache.servicecomb.serviceregistry.RegistrationManager;
-import org.apache.servicecomb.serviceregistry.api.registry.MicroserviceInstance;
-import org.apache.servicecomb.serviceregistry.consumer.MicroserviceVersionRule;
-import org.apache.servicecomb.serviceregistry.definition.DefinitionConst;
+import org.apache.servicecomb.registry.DiscoveryManager;
+import org.apache.servicecomb.registry.RegistrationManager;
+import org.apache.servicecomb.registry.api.registry.MicroserviceInstance;
+import org.apache.servicecomb.registry.consumer.MicroserviceVersionRule;
+import org.apache.servicecomb.registry.definition.DefinitionConst;
 import org.springframework.http.converter.StringHttpMessageConverter;
 import org.springframework.http.converter.json.MappingJackson2HttpMessageConverter;
 import org.springframework.web.client.RestTemplate;
diff --git a/integration-tests/it-consumer/src/main/java/org/apache/servicecomb/it/extend/engine/ITSCBAsyncRestTemplate.java b/integration-tests/it-consumer/src/main/java/org/apache/servicecomb/it/extend/engine/ITSCBAsyncRestTemplate.java
index 3b68d71..6423c7a 100644
--- a/integration-tests/it-consumer/src/main/java/org/apache/servicecomb/it/extend/engine/ITSCBAsyncRestTemplate.java
+++ b/integration-tests/it-consumer/src/main/java/org/apache/servicecomb/it/extend/engine/ITSCBAsyncRestTemplate.java
@@ -26,12 +26,12 @@ import org.apache.servicecomb.core.definition.MicroserviceMeta;
 import org.apache.servicecomb.core.definition.SchemaMeta;
 import org.apache.servicecomb.it.junit.ITJUnitUtils;
 import org.apache.servicecomb.provider.springmvc.reference.async.CseAsyncRestTemplate;
-import org.apache.servicecomb.serviceregistry.DiscoveryManager;
-import org.apache.servicecomb.serviceregistry.RegistrationManager;
-import org.apache.servicecomb.serviceregistry.api.registry.MicroserviceInstance;
-import org.apache.servicecomb.serviceregistry.consumer.MicroserviceManager;
-import org.apache.servicecomb.serviceregistry.consumer.MicroserviceVersion;
-import org.apache.servicecomb.serviceregistry.consumer.MicroserviceVersions;
+import org.apache.servicecomb.registry.DiscoveryManager;
+import org.apache.servicecomb.registry.RegistrationManager;
+import org.apache.servicecomb.registry.api.registry.MicroserviceInstance;
+import org.apache.servicecomb.registry.consumer.MicroserviceManager;
+import org.apache.servicecomb.registry.consumer.MicroserviceVersion;
+import org.apache.servicecomb.registry.consumer.MicroserviceVersions;
 
 public class ITSCBAsyncRestTemplate extends CseAsyncRestTemplate {
   private String urlPrefix;
diff --git a/integration-tests/it-consumer/src/main/java/org/apache/servicecomb/it/extend/engine/ITSCBRestTemplate.java b/integration-tests/it-consumer/src/main/java/org/apache/servicecomb/it/extend/engine/ITSCBRestTemplate.java
index 223bf56..e0a1bb0 100644
--- a/integration-tests/it-consumer/src/main/java/org/apache/servicecomb/it/extend/engine/ITSCBRestTemplate.java
+++ b/integration-tests/it-consumer/src/main/java/org/apache/servicecomb/it/extend/engine/ITSCBRestTemplate.java
@@ -24,9 +24,9 @@ import org.apache.servicecomb.core.definition.SchemaMeta;
 import org.apache.servicecomb.core.provider.consumer.MicroserviceReferenceConfig;
 import org.apache.servicecomb.it.junit.ITJUnitUtils;
 import org.apache.servicecomb.provider.springmvc.reference.CseRestTemplate;
-import org.apache.servicecomb.serviceregistry.DiscoveryManager;
-import org.apache.servicecomb.serviceregistry.RegistrationManager;
-import org.apache.servicecomb.serviceregistry.api.registry.MicroserviceInstance;
+import org.apache.servicecomb.registry.DiscoveryManager;
+import org.apache.servicecomb.registry.RegistrationManager;
+import org.apache.servicecomb.registry.api.registry.MicroserviceInstance;
 
 public class ITSCBRestTemplate extends CseRestTemplate {
   private String urlPrefix;
diff --git a/integration-tests/it-consumer/src/main/java/org/apache/servicecomb/it/testcase/thirdparty/Test3rdPartyInvocation.java b/integration-tests/it-consumer/src/main/java/org/apache/servicecomb/it/testcase/thirdparty/Test3rdPartyInvocation.java
index 9ebce0f..2934caf 100644
--- a/integration-tests/it-consumer/src/main/java/org/apache/servicecomb/it/testcase/thirdparty/Test3rdPartyInvocation.java
+++ b/integration-tests/it-consumer/src/main/java/org/apache/servicecomb/it/testcase/thirdparty/Test3rdPartyInvocation.java
@@ -40,7 +40,7 @@ import org.apache.servicecomb.provider.pojo.Invoker;
 import org.apache.servicecomb.provider.springmvc.reference.RestTemplateBuilder;
 import org.apache.servicecomb.provider.springmvc.reference.async.CseAsyncRestTemplate;
 import org.apache.servicecomb.serviceregistry.RegistryUtils;
-import org.apache.servicecomb.serviceregistry.api.registry.MicroserviceInstance;
+import org.apache.servicecomb.registry.api.registry.MicroserviceInstance;
 import org.hamcrest.Matchers;
 import org.junit.Assert;
 import org.junit.BeforeClass;
diff --git a/integration-tests/it-edge/src/main/java/org/apache/servicecomb/it/edge/PreLoadBootListener.java b/integration-tests/it-edge/src/main/java/org/apache/servicecomb/it/edge/PreLoadBootListener.java
index 2d27d20..45d4d8c 100644
--- a/integration-tests/it-edge/src/main/java/org/apache/servicecomb/it/edge/PreLoadBootListener.java
+++ b/integration-tests/it-edge/src/main/java/org/apache/servicecomb/it/edge/PreLoadBootListener.java
@@ -18,9 +18,9 @@
 package org.apache.servicecomb.it.edge;
 
 import org.apache.servicecomb.core.BootListener;
-import org.apache.servicecomb.serviceregistry.DiscoveryManager;
-import org.apache.servicecomb.serviceregistry.RegistrationManager;
-import org.apache.servicecomb.serviceregistry.consumer.MicroserviceVersionRule;
+import org.apache.servicecomb.registry.DiscoveryManager;
+import org.apache.servicecomb.registry.RegistrationManager;
+import org.apache.servicecomb.registry.consumer.MicroserviceVersionRule;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 import org.springframework.stereotype.Component;
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 7755c99..e8335e3 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
@@ -19,8 +19,8 @@ package org.apache.servicecomb.metrics.core;
 import org.apache.servicecomb.core.SCBEngine;
 import org.apache.servicecomb.core.bootstrap.SCBBootstrap;
 import org.apache.servicecomb.foundation.common.utils.BeanUtils;
-import org.apache.servicecomb.serviceregistry.RegistrationManager;
-import org.apache.servicecomb.serviceregistry.api.registry.Microservice;
+import org.apache.servicecomb.registry.RegistrationManager;
+import org.apache.servicecomb.registry.api.registry.Microservice;
 import org.junit.Before;
 import org.junit.Test;
 
diff --git a/metrics/metrics-integration/metrics-prometheus/src/main/java/org/apache/servicecomb/metrics/prometheus/PrometheusPublisher.java b/metrics/metrics-integration/metrics-prometheus/src/main/java/org/apache/servicecomb/metrics/prometheus/PrometheusPublisher.java
index 55961b8..18dd87a 100644
--- a/metrics/metrics-integration/metrics-prometheus/src/main/java/org/apache/servicecomb/metrics/prometheus/PrometheusPublisher.java
+++ b/metrics/metrics-integration/metrics-prometheus/src/main/java/org/apache/servicecomb/metrics/prometheus/PrometheusPublisher.java
@@ -25,7 +25,7 @@ import org.apache.servicecomb.foundation.common.exceptions.ServiceCombException;
 import org.apache.servicecomb.foundation.metrics.MetricsBootstrapConfig;
 import org.apache.servicecomb.foundation.metrics.MetricsInitializer;
 import org.apache.servicecomb.foundation.metrics.registry.GlobalRegistry;
-import org.apache.servicecomb.serviceregistry.RegistrationManager;
+import org.apache.servicecomb.registry.RegistrationManager;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
diff --git a/metrics/metrics-integration/metrics-prometheus/src/test/java/org/apache/servicecomb/metrics/prometheus/TestPrometheusPublisher.java b/metrics/metrics-integration/metrics-prometheus/src/test/java/org/apache/servicecomb/metrics/prometheus/TestPrometheusPublisher.java
index b61c55d..f589492 100644
--- a/metrics/metrics-integration/metrics-prometheus/src/test/java/org/apache/servicecomb/metrics/prometheus/TestPrometheusPublisher.java
+++ b/metrics/metrics-integration/metrics-prometheus/src/test/java/org/apache/servicecomb/metrics/prometheus/TestPrometheusPublisher.java
@@ -28,7 +28,7 @@ import org.apache.commons.lang3.reflect.FieldUtils;
 import org.apache.servicecomb.foundation.common.exceptions.ServiceCombException;
 import org.apache.servicecomb.foundation.metrics.registry.GlobalRegistry;
 import org.apache.servicecomb.foundation.test.scaffolding.config.ArchaiusUtils;
-import org.apache.servicecomb.serviceregistry.RegistrationManager;
+import org.apache.servicecomb.registry.RegistrationManager;
 import org.junit.AfterClass;
 import org.junit.Assert;
 import org.junit.Rule;
diff --git a/providers/provider-pojo/src/test/java/org/apache/servicecomb/provider/pojo/TestInvoker.java b/providers/provider-pojo/src/test/java/org/apache/servicecomb/provider/pojo/TestInvoker.java
index 48f7cef..109f96a 100644
--- a/providers/provider-pojo/src/test/java/org/apache/servicecomb/provider/pojo/TestInvoker.java
+++ b/providers/provider-pojo/src/test/java/org/apache/servicecomb/provider/pojo/TestInvoker.java
@@ -27,7 +27,7 @@ import org.apache.servicecomb.core.bootstrap.SCBBootstrap;
 import org.apache.servicecomb.foundation.test.scaffolding.config.ArchaiusUtils;
 import org.apache.servicecomb.foundation.vertx.http.ReadStreamPart;
 import org.apache.servicecomb.provider.pojo.definition.PojoConsumerMeta;
-import org.apache.servicecomb.serviceregistry.DiscoveryManager;
+import org.apache.servicecomb.registry.DiscoveryManager;
 import org.junit.After;
 import org.junit.Assert;
 import org.junit.Before;
diff --git a/providers/provider-springmvc/src/test/java/org/apache/servicecomb/provider/springmvc/reference/TestCseClientHttpRequest.java b/providers/provider-springmvc/src/test/java/org/apache/servicecomb/provider/springmvc/reference/TestCseClientHttpRequest.java
index 869578b..e507de1 100644
--- a/providers/provider-springmvc/src/test/java/org/apache/servicecomb/provider/springmvc/reference/TestCseClientHttpRequest.java
+++ b/providers/provider-springmvc/src/test/java/org/apache/servicecomb/provider/springmvc/reference/TestCseClientHttpRequest.java
@@ -24,8 +24,7 @@ import org.apache.servicecomb.core.SCBEngine;
 import org.apache.servicecomb.core.bootstrap.SCBBootstrap;
 import org.apache.servicecomb.foundation.common.Holder;
 import org.apache.servicecomb.foundation.test.scaffolding.config.ArchaiusUtils;
-import org.apache.servicecomb.serviceregistry.DiscoveryManager;
-import org.apache.servicecomb.serviceregistry.RegistrationManager;
+import org.apache.servicecomb.registry.DiscoveryManager;
 import org.apache.servicecomb.swagger.invocation.Response;
 import org.junit.AfterClass;
 import org.junit.Assert;
diff --git a/providers/provider-springmvc/src/test/java/org/apache/servicecomb/provider/springmvc/reference/async/CseAsyncClientHttpRequestTest.java b/providers/provider-springmvc/src/test/java/org/apache/servicecomb/provider/springmvc/reference/async/CseAsyncClientHttpRequestTest.java
index 59ac3b3..55f182f 100644
--- a/providers/provider-springmvc/src/test/java/org/apache/servicecomb/provider/springmvc/reference/async/CseAsyncClientHttpRequestTest.java
+++ b/providers/provider-springmvc/src/test/java/org/apache/servicecomb/provider/springmvc/reference/async/CseAsyncClientHttpRequestTest.java
@@ -27,7 +27,7 @@ import org.apache.servicecomb.core.bootstrap.SCBBootstrap;
 import org.apache.servicecomb.foundation.common.Holder;
 import org.apache.servicecomb.foundation.test.scaffolding.config.ArchaiusUtils;
 import org.apache.servicecomb.provider.springmvc.reference.CseClientHttpResponse;
-import org.apache.servicecomb.serviceregistry.DiscoveryManager;
+import org.apache.servicecomb.registry.DiscoveryManager;
 import org.apache.servicecomb.swagger.invocation.Response;
 import org.junit.AfterClass;
 import org.junit.Assert;
diff --git a/service-registry/registry-local/src/main/java/org/apache/servicecomb/localregistry/LocalDiscovery.java b/service-registry/registry-local/src/main/java/org/apache/servicecomb/localregistry/LocalDiscovery.java
index b6ac786..51f3c99 100644
--- a/service-registry/registry-local/src/main/java/org/apache/servicecomb/localregistry/LocalDiscovery.java
+++ b/service-registry/registry-local/src/main/java/org/apache/servicecomb/localregistry/LocalDiscovery.java
@@ -17,10 +17,10 @@
 
 package org.apache.servicecomb.localregistry;
 
-import org.apache.servicecomb.serviceregistry.api.Discovery;
-import org.apache.servicecomb.serviceregistry.api.registry.Microservice;
-import org.apache.servicecomb.serviceregistry.api.registry.MicroserviceInstance;
-import org.apache.servicecomb.serviceregistry.client.http.MicroserviceInstances;
+import org.apache.servicecomb.registry.api.Discovery;
+import org.apache.servicecomb.registry.api.registry.Microservice;
+import org.apache.servicecomb.registry.api.registry.MicroserviceInstance;
+import org.apache.servicecomb.registry.api.registry.MicroserviceInstances;
 
 import com.netflix.config.DynamicPropertyFactory;
 
diff --git a/service-registry/registry-local/src/main/java/org/apache/servicecomb/localregistry/LocalRegistration.java b/service-registry/registry-local/src/main/java/org/apache/servicecomb/localregistry/LocalRegistration.java
index 912a9bd..7dca24a 100644
--- a/service-registry/registry-local/src/main/java/org/apache/servicecomb/localregistry/LocalRegistration.java
+++ b/service-registry/registry-local/src/main/java/org/apache/servicecomb/localregistry/LocalRegistration.java
@@ -20,12 +20,12 @@ package org.apache.servicecomb.localregistry;
 import java.util.Collection;
 
 import org.apache.servicecomb.foundation.common.event.EventManager;
-import org.apache.servicecomb.serviceregistry.api.Registration;
-import org.apache.servicecomb.serviceregistry.api.registry.BasePath;
-import org.apache.servicecomb.serviceregistry.api.registry.Microservice;
-import org.apache.servicecomb.serviceregistry.api.registry.MicroserviceInstance;
-import org.apache.servicecomb.serviceregistry.api.registry.MicroserviceInstanceStatus;
-import org.apache.servicecomb.serviceregistry.event.MicroserviceInstanceRegisteredEvent;
+import org.apache.servicecomb.registry.api.Registration;
+import org.apache.servicecomb.registry.api.registry.BasePath;
+import org.apache.servicecomb.registry.api.registry.Microservice;
+import org.apache.servicecomb.registry.api.registry.MicroserviceInstance;
+import org.apache.servicecomb.registry.api.registry.MicroserviceInstanceStatus;
+import org.apache.servicecomb.registry.api.event.MicroserviceInstanceRegisteredEvent;
 
 import com.netflix.config.DynamicPropertyFactory;
 
diff --git a/service-registry/registry-local/src/main/java/org/apache/servicecomb/localregistry/LocalRegistryStore.java b/service-registry/registry-local/src/main/java/org/apache/servicecomb/localregistry/LocalRegistryStore.java
index 4b363e0..8cf53eb 100644
--- a/service-registry/registry-local/src/main/java/org/apache/servicecomb/localregistry/LocalRegistryStore.java
+++ b/service-registry/registry-local/src/main/java/org/apache/servicecomb/localregistry/LocalRegistryStore.java
@@ -17,7 +17,7 @@
 
 package org.apache.servicecomb.localregistry;
 
-import static org.apache.servicecomb.serviceregistry.definition.DefinitionConst.DEFAULT_APPLICATION_ID;
+import static org.apache.servicecomb.registry.definition.DefinitionConst.DEFAULT_APPLICATION_ID;
 
 import java.io.InputStream;
 import java.util.ArrayList;
@@ -31,12 +31,12 @@ import java.util.stream.Collectors;
 
 import org.apache.servicecomb.config.ConfigUtil;
 import org.apache.servicecomb.config.archaius.sources.MicroserviceConfigLoader;
-import org.apache.servicecomb.serviceregistry.api.registry.Microservice;
-import org.apache.servicecomb.serviceregistry.api.registry.MicroserviceFactory;
-import org.apache.servicecomb.serviceregistry.api.registry.MicroserviceInstance;
-import org.apache.servicecomb.serviceregistry.api.response.FindInstancesResponse;
-import org.apache.servicecomb.serviceregistry.client.http.MicroserviceInstances;
-import org.apache.servicecomb.serviceregistry.definition.MicroserviceDefinition;
+import org.apache.servicecomb.registry.api.registry.Microservice;
+import org.apache.servicecomb.registry.api.registry.MicroserviceFactory;
+import org.apache.servicecomb.registry.api.registry.MicroserviceInstance;
+import org.apache.servicecomb.registry.api.registry.FindInstancesResponse;
+import org.apache.servicecomb.registry.api.registry.MicroserviceInstances;
+import org.apache.servicecomb.registry.definition.MicroserviceDefinition;
 import org.yaml.snakeyaml.Yaml;
 
 import com.google.common.annotations.VisibleForTesting;
diff --git a/service-registry/registry-local/src/main/resources/META-INF/services/org.apache.servicecomb.serviceregistry.api.Discovery b/service-registry/registry-local/src/main/resources/META-INF/services/org.apache.servicecomb.registry.api.Discovery
similarity index 100%
rename from service-registry/registry-local/src/main/resources/META-INF/services/org.apache.servicecomb.serviceregistry.api.Discovery
rename to service-registry/registry-local/src/main/resources/META-INF/services/org.apache.servicecomb.registry.api.Discovery
diff --git a/service-registry/registry-local/src/main/resources/META-INF/services/org.apache.servicecomb.serviceregistry.api.Registration b/service-registry/registry-local/src/main/resources/META-INF/services/org.apache.servicecomb.registry.api.Registration
similarity index 100%
rename from service-registry/registry-local/src/main/resources/META-INF/services/org.apache.servicecomb.serviceregistry.api.Registration
rename to service-registry/registry-local/src/main/resources/META-INF/services/org.apache.servicecomb.registry.api.Registration
diff --git a/service-registry/registry-service-center/src/main/java/org/apache/servicecomb/serviceregistry/RegistryUtils.java b/service-registry/registry-service-center/src/main/java/org/apache/servicecomb/serviceregistry/RegistryUtils.java
index a88def2..8ac2cbf 100644
--- a/service-registry/registry-service-center/src/main/java/org/apache/servicecomb/serviceregistry/RegistryUtils.java
+++ b/service-registry/registry-service-center/src/main/java/org/apache/servicecomb/serviceregistry/RegistryUtils.java
@@ -31,14 +31,15 @@ import org.apache.servicecomb.config.ConfigUtil;
 import org.apache.servicecomb.config.archaius.sources.MicroserviceConfigLoader;
 import org.apache.servicecomb.foundation.common.Holder;
 import org.apache.servicecomb.foundation.common.event.EventManager;
-import org.apache.servicecomb.serviceregistry.api.registry.Microservice;
-import org.apache.servicecomb.serviceregistry.api.registry.MicroserviceInstance;
-import org.apache.servicecomb.serviceregistry.api.response.FindInstancesResponse;
+import org.apache.servicecomb.registry.DiscoveryManager;
+import org.apache.servicecomb.registry.api.registry.Microservice;
+import org.apache.servicecomb.registry.api.registry.MicroserviceInstance;
+import org.apache.servicecomb.registry.api.registry.FindInstancesResponse;
 import org.apache.servicecomb.serviceregistry.client.ServiceRegistryClient;
-import org.apache.servicecomb.serviceregistry.client.http.MicroserviceInstances;
+import org.apache.servicecomb.registry.api.registry.MicroserviceInstances;
 import org.apache.servicecomb.serviceregistry.config.ServiceRegistryConfig;
-import org.apache.servicecomb.serviceregistry.definition.MicroserviceDefinition;
-import org.apache.servicecomb.serviceregistry.event.MicroserviceInstanceRegisteredEvent;
+import org.apache.servicecomb.registry.definition.MicroserviceDefinition;
+import org.apache.servicecomb.registry.api.event.MicroserviceInstanceRegisteredEvent;
 import org.apache.servicecomb.serviceregistry.registry.ServiceRegistryFactory;
 import org.apache.servicecomb.serviceregistry.registry.cache.AggregateServiceRegistryCache;
 import org.apache.servicecomb.serviceregistry.registry.cache.MicroserviceCache;
diff --git a/service-registry/registry-service-center/src/main/java/org/apache/servicecomb/serviceregistry/ServiceCenterDiscovery.java b/service-registry/registry-service-center/src/main/java/org/apache/servicecomb/serviceregistry/ServiceCenterDiscovery.java
index 7518512..a17e537 100644
--- a/service-registry/registry-service-center/src/main/java/org/apache/servicecomb/serviceregistry/ServiceCenterDiscovery.java
+++ b/service-registry/registry-service-center/src/main/java/org/apache/servicecomb/serviceregistry/ServiceCenterDiscovery.java
@@ -17,10 +17,10 @@
 
 package org.apache.servicecomb.serviceregistry;
 
-import org.apache.servicecomb.serviceregistry.api.Discovery;
-import org.apache.servicecomb.serviceregistry.api.registry.Microservice;
-import org.apache.servicecomb.serviceregistry.api.registry.MicroserviceInstance;
-import org.apache.servicecomb.serviceregistry.client.http.MicroserviceInstances;
+import org.apache.servicecomb.registry.api.Discovery;
+import org.apache.servicecomb.registry.api.registry.Microservice;
+import org.apache.servicecomb.registry.api.registry.MicroserviceInstance;
+import org.apache.servicecomb.registry.api.registry.MicroserviceInstances;
 
 import com.netflix.config.DynamicPropertyFactory;
 
diff --git a/service-registry/registry-service-center/src/main/java/org/apache/servicecomb/serviceregistry/ServiceCenterRegistration.java b/service-registry/registry-service-center/src/main/java/org/apache/servicecomb/serviceregistry/ServiceCenterRegistration.java
index 305774d..5015aef 100644
--- a/service-registry/registry-service-center/src/main/java/org/apache/servicecomb/serviceregistry/ServiceCenterRegistration.java
+++ b/service-registry/registry-service-center/src/main/java/org/apache/servicecomb/serviceregistry/ServiceCenterRegistration.java
@@ -20,11 +20,11 @@ package org.apache.servicecomb.serviceregistry;
 import java.util.Collection;
 
 import org.apache.servicecomb.foundation.common.concurrency.SuppressedRunnableWrapper;
-import org.apache.servicecomb.serviceregistry.api.Registration;
-import org.apache.servicecomb.serviceregistry.api.registry.BasePath;
-import org.apache.servicecomb.serviceregistry.api.registry.Microservice;
-import org.apache.servicecomb.serviceregistry.api.registry.MicroserviceInstance;
-import org.apache.servicecomb.serviceregistry.api.registry.MicroserviceInstanceStatus;
+import org.apache.servicecomb.registry.api.Registration;
+import org.apache.servicecomb.registry.api.registry.BasePath;
+import org.apache.servicecomb.registry.api.registry.Microservice;
+import org.apache.servicecomb.registry.api.registry.MicroserviceInstance;
+import org.apache.servicecomb.registry.api.registry.MicroserviceInstanceStatus;
 
 import com.netflix.config.DynamicPropertyFactory;
 
diff --git a/service-registry/registry-service-center/src/main/java/org/apache/servicecomb/serviceregistry/ServiceRegistry.java b/service-registry/registry-service-center/src/main/java/org/apache/servicecomb/serviceregistry/ServiceRegistry.java
index bd10bcd..934f4eb 100644
--- a/service-registry/registry-service-center/src/main/java/org/apache/servicecomb/serviceregistry/ServiceRegistry.java
+++ b/service-registry/registry-service-center/src/main/java/org/apache/servicecomb/serviceregistry/ServiceRegistry.java
@@ -21,10 +21,11 @@ import java.util.Map;
 import java.util.Set;
 import java.util.regex.Pattern;
 
-import org.apache.servicecomb.serviceregistry.api.registry.Microservice;
-import org.apache.servicecomb.serviceregistry.api.registry.MicroserviceInstance;
+import org.apache.servicecomb.registry.api.registry.Microservice;
+import org.apache.servicecomb.registry.api.registry.MicroserviceInstance;
+import org.apache.servicecomb.registry.consumer.StaticMicroserviceVersions;
 import org.apache.servicecomb.serviceregistry.client.ServiceRegistryClient;
-import org.apache.servicecomb.serviceregistry.client.http.MicroserviceInstances;
+import org.apache.servicecomb.registry.api.registry.MicroserviceInstances;
 import org.apache.servicecomb.serviceregistry.registry.cache.MicroserviceCache;
 import org.apache.servicecomb.serviceregistry.registry.cache.MicroserviceCacheKey;
 
@@ -97,7 +98,7 @@ public interface ServiceRegistry {
   /**
    * <p>
    * Register a third party service if not registered before, and set it's instances into
-   * {@linkplain org.apache.servicecomb.serviceregistry.consumer.StaticMicroserviceVersions StaticMicroserviceVersions}.
+   * {@linkplain StaticMicroserviceVersions StaticMicroserviceVersions}.
    * </p>
    * <p>
    * The registered third party service has the same {@code appId} and {@code environment} as this microservice instance has,
diff --git a/service-registry/registry-service-center/src/main/java/org/apache/servicecomb/serviceregistry/adapter/EnvAdapter.java b/service-registry/registry-service-center/src/main/java/org/apache/servicecomb/serviceregistry/adapter/EnvAdapter.java
index 02fc5b6..6cdeb47 100644
--- a/service-registry/registry-service-center/src/main/java/org/apache/servicecomb/serviceregistry/adapter/EnvAdapter.java
+++ b/service-registry/registry-service-center/src/main/java/org/apache/servicecomb/serviceregistry/adapter/EnvAdapter.java
@@ -17,8 +17,8 @@
 
 package org.apache.servicecomb.serviceregistry.adapter;
 
-import org.apache.servicecomb.serviceregistry.api.registry.Microservice;
-import org.apache.servicecomb.serviceregistry.api.registry.MicroserviceInstance;
+import org.apache.servicecomb.registry.api.registry.Microservice;
+import org.apache.servicecomb.registry.api.registry.MicroserviceInstance;
 
 public interface EnvAdapter {
 
diff --git a/service-registry/registry-service-center/src/main/java/org/apache/servicecomb/serviceregistry/adapter/EnvAdapterManager.java b/service-registry/registry-service-center/src/main/java/org/apache/servicecomb/serviceregistry/adapter/EnvAdapterManager.java
index 8b31d26..55949dc 100644
--- a/service-registry/registry-service-center/src/main/java/org/apache/servicecomb/serviceregistry/adapter/EnvAdapterManager.java
+++ b/service-registry/registry-service-center/src/main/java/org/apache/servicecomb/serviceregistry/adapter/EnvAdapterManager.java
@@ -20,8 +20,8 @@ import java.util.List;
 
 import org.apache.servicecomb.foundation.common.RegisterManager;
 import org.apache.servicecomb.foundation.common.utils.SPIServiceUtils;
-import org.apache.servicecomb.serviceregistry.api.registry.Microservice;
-import org.apache.servicecomb.serviceregistry.api.registry.MicroserviceInstance;
+import org.apache.servicecomb.registry.api.registry.Microservice;
+import org.apache.servicecomb.registry.api.registry.MicroserviceInstance;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
diff --git a/service-registry/registry-service-center/src/main/java/org/apache/servicecomb/serviceregistry/api/registry/ServiceCombVersion.java b/service-registry/registry-service-center/src/main/java/org/apache/servicecomb/serviceregistry/api/registry/ServiceCombVersion.java
index 1e6aa43..ca2b8e7 100644
--- a/service-registry/registry-service-center/src/main/java/org/apache/servicecomb/serviceregistry/api/registry/ServiceCombVersion.java
+++ b/service-registry/registry-service-center/src/main/java/org/apache/servicecomb/serviceregistry/api/registry/ServiceCombVersion.java
@@ -19,7 +19,7 @@ package org.apache.servicecomb.serviceregistry.api.registry;
 import java.util.HashMap;
 import java.util.Map;
 
-import org.apache.servicecomb.serviceregistry.api.Versions;
+import org.apache.servicecomb.registry.api.Versions;
 
 public class ServiceCombVersion implements Versions {
 
diff --git a/service-registry/registry-service-center/src/main/java/org/apache/servicecomb/serviceregistry/api/request/CreateServiceRequest.java b/service-registry/registry-service-center/src/main/java/org/apache/servicecomb/serviceregistry/api/request/CreateServiceRequest.java
index 7a6b73e..1e5e7df 100644
--- a/service-registry/registry-service-center/src/main/java/org/apache/servicecomb/serviceregistry/api/request/CreateServiceRequest.java
+++ b/service-registry/registry-service-center/src/main/java/org/apache/servicecomb/serviceregistry/api/request/CreateServiceRequest.java
@@ -17,7 +17,7 @@
 
 package org.apache.servicecomb.serviceregistry.api.request;
 
-import org.apache.servicecomb.serviceregistry.api.registry.Microservice;
+import org.apache.servicecomb.registry.api.registry.Microservice;
 
 /**
  * Created by   on 2016/12/5.
diff --git a/service-registry/registry-service-center/src/main/java/org/apache/servicecomb/serviceregistry/api/request/RegisterInstanceRequest.java b/service-registry/registry-service-center/src/main/java/org/apache/servicecomb/serviceregistry/api/request/RegisterInstanceRequest.java
index 2179573..308773d 100644
--- a/service-registry/registry-service-center/src/main/java/org/apache/servicecomb/serviceregistry/api/request/RegisterInstanceRequest.java
+++ b/service-registry/registry-service-center/src/main/java/org/apache/servicecomb/serviceregistry/api/request/RegisterInstanceRequest.java
@@ -17,7 +17,7 @@
 
 package org.apache.servicecomb.serviceregistry.api.request;
 
-import org.apache.servicecomb.serviceregistry.api.registry.MicroserviceInstance;
+import org.apache.servicecomb.registry.api.registry.MicroserviceInstance;
 
 /**
  * Created by   on 2016/12/6.
diff --git a/service-registry/registry-service-center/src/main/java/org/apache/servicecomb/serviceregistry/api/response/GetAllServicesResponse.java b/service-registry/registry-service-center/src/main/java/org/apache/servicecomb/serviceregistry/api/response/GetAllServicesResponse.java
index a5f822e..9b4ac9e 100644
--- a/service-registry/registry-service-center/src/main/java/org/apache/servicecomb/serviceregistry/api/response/GetAllServicesResponse.java
+++ b/service-registry/registry-service-center/src/main/java/org/apache/servicecomb/serviceregistry/api/response/GetAllServicesResponse.java
@@ -19,7 +19,7 @@ package org.apache.servicecomb.serviceregistry.api.response;
 
 import java.util.List;
 
-import org.apache.servicecomb.serviceregistry.api.registry.Microservice;
+import org.apache.servicecomb.registry.api.registry.Microservice;
 
 /**
  * Created by on 2016/12/8.
diff --git a/service-registry/registry-service-center/src/main/java/org/apache/servicecomb/serviceregistry/api/response/GetInstancesResponse.java b/service-registry/registry-service-center/src/main/java/org/apache/servicecomb/serviceregistry/api/response/GetInstancesResponse.java
index 4acc1ac..f4185f1 100644
--- a/service-registry/registry-service-center/src/main/java/org/apache/servicecomb/serviceregistry/api/response/GetInstancesResponse.java
+++ b/service-registry/registry-service-center/src/main/java/org/apache/servicecomb/serviceregistry/api/response/GetInstancesResponse.java
@@ -19,7 +19,7 @@ package org.apache.servicecomb.serviceregistry.api.response;
 
 import java.util.List;
 
-import org.apache.servicecomb.serviceregistry.api.registry.MicroserviceInstance;
+import org.apache.servicecomb.registry.api.registry.MicroserviceInstance;
 
 /**
  * Created by   on 2016/12/6.
diff --git a/service-registry/registry-service-center/src/main/java/org/apache/servicecomb/serviceregistry/api/response/GetServiceResponse.java b/service-registry/registry-service-center/src/main/java/org/apache/servicecomb/serviceregistry/api/response/GetServiceResponse.java
index 051cbb2..c1c40ce 100644
--- a/service-registry/registry-service-center/src/main/java/org/apache/servicecomb/serviceregistry/api/response/GetServiceResponse.java
+++ b/service-registry/registry-service-center/src/main/java/org/apache/servicecomb/serviceregistry/api/response/GetServiceResponse.java
@@ -17,7 +17,7 @@
 
 package org.apache.servicecomb.serviceregistry.api.response;
 
-import org.apache.servicecomb.serviceregistry.api.registry.Microservice;
+import org.apache.servicecomb.registry.api.registry.Microservice;
 
 /**
  * Created by   on 2016/12/8.
diff --git a/service-registry/registry-service-center/src/main/java/org/apache/servicecomb/serviceregistry/api/response/MicroserviceInstanceResponse.java b/service-registry/registry-service-center/src/main/java/org/apache/servicecomb/serviceregistry/api/response/MicroserviceInstanceResponse.java
index 3f2b612..2964908 100644
--- a/service-registry/registry-service-center/src/main/java/org/apache/servicecomb/serviceregistry/api/response/MicroserviceInstanceResponse.java
+++ b/service-registry/registry-service-center/src/main/java/org/apache/servicecomb/serviceregistry/api/response/MicroserviceInstanceResponse.java
@@ -17,7 +17,7 @@
 
 package org.apache.servicecomb.serviceregistry.api.response;
 
-import org.apache.servicecomb.serviceregistry.api.registry.MicroserviceInstance;
+import org.apache.servicecomb.registry.api.registry.MicroserviceInstance;
 
 public class MicroserviceInstanceResponse {
 
diff --git a/service-registry/registry-service-center/src/main/java/org/apache/servicecomb/serviceregistry/client/Endpoints.java b/service-registry/registry-service-center/src/main/java/org/apache/servicecomb/serviceregistry/client/Endpoints.java
index 0decbd2..0105687 100644
--- a/service-registry/registry-service-center/src/main/java/org/apache/servicecomb/serviceregistry/client/Endpoints.java
+++ b/service-registry/registry-service-center/src/main/java/org/apache/servicecomb/serviceregistry/client/Endpoints.java
@@ -19,7 +19,7 @@ package org.apache.servicecomb.serviceregistry.client;
 
 import java.util.List;
 
-import org.apache.servicecomb.serviceregistry.api.registry.MicroserviceInstance;
+import org.apache.servicecomb.registry.api.registry.MicroserviceInstance;
 
 /**
  * Created by   on 2016/12/27.
diff --git a/service-registry/registry-service-center/src/main/java/org/apache/servicecomb/serviceregistry/client/IpPortManager.java b/service-registry/registry-service-center/src/main/java/org/apache/servicecomb/serviceregistry/client/IpPortManager.java
index 947a386..5d299ad 100644
--- a/service-registry/registry-service-center/src/main/java/org/apache/servicecomb/serviceregistry/client/IpPortManager.java
+++ b/service-registry/registry-service-center/src/main/java/org/apache/servicecomb/serviceregistry/client/IpPortManager.java
@@ -27,13 +27,13 @@ import java.util.concurrent.atomic.AtomicInteger;
 
 import org.apache.servicecomb.foundation.common.net.IpPort;
 import org.apache.servicecomb.foundation.common.net.URIEndpointObject;
-import org.apache.servicecomb.serviceregistry.cache.CacheEndpoint;
-import org.apache.servicecomb.serviceregistry.cache.InstanceCache;
-import org.apache.servicecomb.serviceregistry.cache.InstanceCacheManager;
-import org.apache.servicecomb.serviceregistry.cache.InstanceCacheManagerNew;
+import org.apache.servicecomb.registry.cache.CacheEndpoint;
+import org.apache.servicecomb.registry.cache.InstanceCache;
+import org.apache.servicecomb.registry.cache.InstanceCacheManager;
+import org.apache.servicecomb.registry.cache.InstanceCacheManagerNew;
 import org.apache.servicecomb.serviceregistry.config.ServiceRegistryConfig;
-import org.apache.servicecomb.serviceregistry.consumer.AppManager;
-import org.apache.servicecomb.serviceregistry.definition.DefinitionConst;
+import org.apache.servicecomb.registry.consumer.AppManager;
+import org.apache.servicecomb.registry.definition.DefinitionConst;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
diff --git a/service-registry/registry-service-center/src/main/java/org/apache/servicecomb/serviceregistry/client/ServiceRegistryClient.java b/service-registry/registry-service-center/src/main/java/org/apache/servicecomb/serviceregistry/client/ServiceRegistryClient.java
index b093c0c..7b6cab7 100644
--- a/service-registry/registry-service-center/src/main/java/org/apache/servicecomb/serviceregistry/client/ServiceRegistryClient.java
+++ b/service-registry/registry-service-center/src/main/java/org/apache/servicecomb/serviceregistry/client/ServiceRegistryClient.java
@@ -21,15 +21,15 @@ import java.util.List;
 import java.util.Map;
 
 import org.apache.servicecomb.foundation.vertx.AsyncResultCallback;
-import org.apache.servicecomb.serviceregistry.api.registry.Microservice;
-import org.apache.servicecomb.serviceregistry.api.registry.MicroserviceInstance;
-import org.apache.servicecomb.serviceregistry.api.registry.MicroserviceInstanceStatus;
+import org.apache.servicecomb.registry.api.registry.Microservice;
+import org.apache.servicecomb.registry.api.registry.MicroserviceInstance;
+import org.apache.servicecomb.registry.api.registry.MicroserviceInstanceStatus;
 import org.apache.servicecomb.serviceregistry.api.registry.ServiceCenterInfo;
 import org.apache.servicecomb.serviceregistry.api.response.GetSchemaResponse;
 import org.apache.servicecomb.serviceregistry.api.response.HeartbeatResponse;
-import org.apache.servicecomb.serviceregistry.api.response.MicroserviceInstanceChangedEvent;
+import org.apache.servicecomb.registry.api.event.MicroserviceInstanceChangedEvent;
 import org.apache.servicecomb.serviceregistry.client.http.Holder;
-import org.apache.servicecomb.serviceregistry.client.http.MicroserviceInstances;
+import org.apache.servicecomb.registry.api.registry.MicroserviceInstances;
 
 public interface ServiceRegistryClient {
   void init();
diff --git a/service-registry/registry-service-center/src/main/java/org/apache/servicecomb/serviceregistry/client/http/ServiceRegistryClientImpl.java b/service-registry/registry-service-center/src/main/java/org/apache/servicecomb/serviceregistry/client/http/ServiceRegistryClientImpl.java
index 752b255..d4921bd 100644
--- a/service-registry/registry-service-center/src/main/java/org/apache/servicecomb/serviceregistry/client/http/ServiceRegistryClientImpl.java
+++ b/service-registry/registry-service-center/src/main/java/org/apache/servicecomb/serviceregistry/client/http/ServiceRegistryClientImpl.java
@@ -37,16 +37,17 @@ import org.apache.servicecomb.foundation.common.utils.JsonUtils;
 import org.apache.servicecomb.foundation.vertx.AsyncResultCallback;
 import org.apache.servicecomb.serviceregistry.RegistryUtils;
 import org.apache.servicecomb.serviceregistry.api.Const;
-import org.apache.servicecomb.serviceregistry.api.registry.Microservice;
-import org.apache.servicecomb.serviceregistry.api.registry.MicroserviceInstance;
-import org.apache.servicecomb.serviceregistry.api.registry.MicroserviceInstanceStatus;
+import org.apache.servicecomb.registry.api.registry.Microservice;
+import org.apache.servicecomb.registry.api.registry.MicroserviceInstance;
+import org.apache.servicecomb.registry.api.registry.MicroserviceInstanceStatus;
+import org.apache.servicecomb.registry.api.registry.MicroserviceInstances;
 import org.apache.servicecomb.serviceregistry.api.registry.ServiceCenterInfo;
 import org.apache.servicecomb.serviceregistry.api.request.CreateSchemaRequest;
 import org.apache.servicecomb.serviceregistry.api.request.CreateServiceRequest;
 import org.apache.servicecomb.serviceregistry.api.request.RegisterInstanceRequest;
 import org.apache.servicecomb.serviceregistry.api.request.UpdatePropertiesRequest;
 import org.apache.servicecomb.serviceregistry.api.response.CreateServiceResponse;
-import org.apache.servicecomb.serviceregistry.api.response.FindInstancesResponse;
+import org.apache.servicecomb.registry.api.registry.FindInstancesResponse;
 import org.apache.servicecomb.serviceregistry.api.response.GetAllServicesResponse;
 import org.apache.servicecomb.serviceregistry.api.response.GetExistenceResponse;
 import org.apache.servicecomb.serviceregistry.api.response.GetInstancesResponse;
@@ -54,7 +55,7 @@ import org.apache.servicecomb.serviceregistry.api.response.GetSchemaResponse;
 import org.apache.servicecomb.serviceregistry.api.response.GetSchemasResponse;
 import org.apache.servicecomb.serviceregistry.api.response.GetServiceResponse;
 import org.apache.servicecomb.serviceregistry.api.response.HeartbeatResponse;
-import org.apache.servicecomb.serviceregistry.api.response.MicroserviceInstanceChangedEvent;
+import org.apache.servicecomb.registry.api.event.MicroserviceInstanceChangedEvent;
 import org.apache.servicecomb.serviceregistry.api.response.MicroserviceInstanceResponse;
 import org.apache.servicecomb.serviceregistry.api.response.RegisterInstanceResponse;
 import org.apache.servicecomb.serviceregistry.client.ClientException;
diff --git a/service-registry/registry-service-center/src/main/java/org/apache/servicecomb/serviceregistry/diagnosis/instance/InstanceCacheCheckTask.java b/service-registry/registry-service-center/src/main/java/org/apache/servicecomb/serviceregistry/diagnosis/instance/InstanceCacheCheckTask.java
index a107a48..c8eb0e7 100644
--- a/service-registry/registry-service-center/src/main/java/org/apache/servicecomb/serviceregistry/diagnosis/instance/InstanceCacheCheckTask.java
+++ b/service-registry/registry-service-center/src/main/java/org/apache/servicecomb/serviceregistry/diagnosis/instance/InstanceCacheCheckTask.java
@@ -20,7 +20,7 @@ import java.util.concurrent.ScheduledFuture;
 import java.util.concurrent.ScheduledThreadPoolExecutor;
 import java.util.concurrent.TimeUnit;
 
-import org.apache.servicecomb.serviceregistry.DiscoveryManager;
+import org.apache.servicecomb.registry.DiscoveryManager;
 import org.apache.servicecomb.serviceregistry.registry.RemoteServiceRegistry;
 import org.apache.servicecomb.serviceregistry.registry.ServiceRegistryTaskInitializer;
 import org.slf4j.Logger;
diff --git a/service-registry/registry-service-center/src/main/java/org/apache/servicecomb/serviceregistry/diagnosis/instance/InstanceCacheChecker.java b/service-registry/registry-service-center/src/main/java/org/apache/servicecomb/serviceregistry/diagnosis/instance/InstanceCacheChecker.java
index 610a106..6182924 100644
--- a/service-registry/registry-service-center/src/main/java/org/apache/servicecomb/serviceregistry/diagnosis/instance/InstanceCacheChecker.java
+++ b/service-registry/registry-service-center/src/main/java/org/apache/servicecomb/serviceregistry/diagnosis/instance/InstanceCacheChecker.java
@@ -25,13 +25,13 @@ import java.util.Set;
 
 import org.apache.servicecomb.foundation.common.utils.TimeUtils;
 import org.apache.servicecomb.serviceregistry.RegistryUtils;
-import org.apache.servicecomb.serviceregistry.api.registry.MicroserviceInstance;
-import org.apache.servicecomb.serviceregistry.client.http.MicroserviceInstances;
-import org.apache.servicecomb.serviceregistry.consumer.AppManager;
-import org.apache.servicecomb.serviceregistry.consumer.MicroserviceManager;
-import org.apache.servicecomb.serviceregistry.consumer.MicroserviceVersions;
-import org.apache.servicecomb.serviceregistry.consumer.StaticMicroserviceVersions;
-import org.apache.servicecomb.serviceregistry.definition.DefinitionConst;
+import org.apache.servicecomb.registry.api.registry.MicroserviceInstance;
+import org.apache.servicecomb.registry.api.registry.MicroserviceInstances;
+import org.apache.servicecomb.registry.consumer.AppManager;
+import org.apache.servicecomb.registry.consumer.MicroserviceManager;
+import org.apache.servicecomb.registry.consumer.MicroserviceVersions;
+import org.apache.servicecomb.registry.consumer.StaticMicroserviceVersions;
+import org.apache.servicecomb.registry.definition.DefinitionConst;
 import org.apache.servicecomb.serviceregistry.diagnosis.Status;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
diff --git a/service-registry/registry-service-center/src/main/java/org/apache/servicecomb/serviceregistry/diagnosis/instance/InstanceCacheResult.java b/service-registry/registry-service-center/src/main/java/org/apache/servicecomb/serviceregistry/diagnosis/instance/InstanceCacheResult.java
index 2a7ab07..a955005 100644
--- a/service-registry/registry-service-center/src/main/java/org/apache/servicecomb/serviceregistry/diagnosis/instance/InstanceCacheResult.java
+++ b/service-registry/registry-service-center/src/main/java/org/apache/servicecomb/serviceregistry/diagnosis/instance/InstanceCacheResult.java
@@ -18,7 +18,7 @@ package org.apache.servicecomb.serviceregistry.diagnosis.instance;
 
 import java.util.List;
 
-import org.apache.servicecomb.serviceregistry.api.registry.MicroserviceInstance;
+import org.apache.servicecomb.registry.api.registry.MicroserviceInstance;
 import org.apache.servicecomb.serviceregistry.diagnosis.Status;
 
 public class InstanceCacheResult {
diff --git a/service-registry/registry-service-center/src/main/java/org/apache/servicecomb/serviceregistry/registry/AbstractServiceRegistry.java b/service-registry/registry-service-center/src/main/java/org/apache/servicecomb/serviceregistry/registry/AbstractServiceRegistry.java
index 0baf705..e7232af 100644
--- a/service-registry/registry-service-center/src/main/java/org/apache/servicecomb/serviceregistry/registry/AbstractServiceRegistry.java
+++ b/service-registry/registry-service-center/src/main/java/org/apache/servicecomb/serviceregistry/registry/AbstractServiceRegistry.java
@@ -28,24 +28,24 @@ import java.util.Set;
 import java.util.concurrent.ExecutorService;
 
 import org.apache.servicecomb.foundation.common.concurrency.SuppressedRunnableWrapper;
-import org.apache.servicecomb.serviceregistry.DiscoveryManager;
+import org.apache.servicecomb.registry.DiscoveryManager;
 import org.apache.servicecomb.serviceregistry.RegistryUtils;
 import org.apache.servicecomb.serviceregistry.ServiceRegistry;
 import org.apache.servicecomb.serviceregistry.api.Const;
-import org.apache.servicecomb.serviceregistry.api.registry.BasePath;
-import org.apache.servicecomb.serviceregistry.api.registry.Framework;
-import org.apache.servicecomb.serviceregistry.api.registry.FrameworkVersions;
-import org.apache.servicecomb.serviceregistry.api.registry.Microservice;
-import org.apache.servicecomb.serviceregistry.api.registry.MicroserviceFactory;
-import org.apache.servicecomb.serviceregistry.api.registry.MicroserviceInstance;
-import org.apache.servicecomb.serviceregistry.api.response.MicroserviceInstanceChangedEvent;
+import org.apache.servicecomb.registry.api.registry.BasePath;
+import org.apache.servicecomb.registry.api.registry.Framework;
+import org.apache.servicecomb.registry.api.registry.FrameworkVersions;
+import org.apache.servicecomb.registry.api.registry.Microservice;
+import org.apache.servicecomb.registry.api.registry.MicroserviceFactory;
+import org.apache.servicecomb.registry.api.registry.MicroserviceInstance;
+import org.apache.servicecomb.registry.api.event.MicroserviceInstanceChangedEvent;
 import org.apache.servicecomb.serviceregistry.client.ServiceRegistryClient;
-import org.apache.servicecomb.serviceregistry.client.http.MicroserviceInstances;
+import org.apache.servicecomb.registry.api.registry.MicroserviceInstances;
 import org.apache.servicecomb.serviceregistry.config.ServiceRegistryConfig;
-import org.apache.servicecomb.serviceregistry.consumer.MicroserviceManager;
-import org.apache.servicecomb.serviceregistry.consumer.StaticMicroserviceVersions;
-import org.apache.servicecomb.serviceregistry.definition.MicroserviceDefinition;
-import org.apache.servicecomb.serviceregistry.definition.MicroserviceNameParser;
+import org.apache.servicecomb.registry.consumer.MicroserviceManager;
+import org.apache.servicecomb.registry.consumer.StaticMicroserviceVersions;
+import org.apache.servicecomb.registry.definition.MicroserviceDefinition;
+import org.apache.servicecomb.registry.definition.MicroserviceNameParser;
 import org.apache.servicecomb.serviceregistry.registry.cache.MicroserviceCache;
 import org.apache.servicecomb.serviceregistry.registry.cache.MicroserviceCacheKey;
 import org.apache.servicecomb.serviceregistry.registry.cache.MicroserviceCacheRefreshedEvent;
@@ -53,9 +53,9 @@ import org.apache.servicecomb.serviceregistry.registry.cache.RefreshableServiceR
 import org.apache.servicecomb.serviceregistry.registry.cache.ServiceRegistryCache;
 import org.apache.servicecomb.serviceregistry.task.MicroserviceServiceCenterTask;
 import org.apache.servicecomb.serviceregistry.task.ServiceCenterTask;
-import org.apache.servicecomb.serviceregistry.task.event.RecoveryEvent;
-import org.apache.servicecomb.serviceregistry.task.event.SafeModeChangeEvent;
-import org.apache.servicecomb.serviceregistry.task.event.ShutdownEvent;
+import org.apache.servicecomb.registry.api.event.task.RecoveryEvent;
+import org.apache.servicecomb.registry.api.event.task.SafeModeChangeEvent;
+import org.apache.servicecomb.registry.api.event.task.ShutdownEvent;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
diff --git a/service-registry/registry-service-center/src/main/java/org/apache/servicecomb/serviceregistry/registry/RemoteServiceRegistry.java b/service-registry/registry-service-center/src/main/java/org/apache/servicecomb/serviceregistry/registry/RemoteServiceRegistry.java
index d68a46e..e0d3172 100644
--- a/service-registry/registry-service-center/src/main/java/org/apache/servicecomb/serviceregistry/registry/RemoteServiceRegistry.java
+++ b/service-registry/registry-service-center/src/main/java/org/apache/servicecomb/serviceregistry/registry/RemoteServiceRegistry.java
@@ -25,7 +25,7 @@ import org.apache.servicecomb.foundation.common.concurrency.SuppressedRunnableWr
 import org.apache.servicecomb.foundation.common.utils.SPIServiceUtils;
 import org.apache.servicecomb.serviceregistry.client.ServiceRegistryClient;
 import org.apache.servicecomb.serviceregistry.config.ServiceRegistryConfig;
-import org.apache.servicecomb.serviceregistry.definition.MicroserviceDefinition;
+import org.apache.servicecomb.registry.definition.MicroserviceDefinition;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
diff --git a/service-registry/registry-service-center/src/main/java/org/apache/servicecomb/serviceregistry/registry/ServiceRegistryFactory.java b/service-registry/registry-service-center/src/main/java/org/apache/servicecomb/serviceregistry/registry/ServiceRegistryFactory.java
index d36a500..42b2653 100644
--- a/service-registry/registry-service-center/src/main/java/org/apache/servicecomb/serviceregistry/registry/ServiceRegistryFactory.java
+++ b/service-registry/registry-service-center/src/main/java/org/apache/servicecomb/serviceregistry/registry/ServiceRegistryFactory.java
@@ -20,7 +20,7 @@ package org.apache.servicecomb.serviceregistry.registry;
 import org.apache.servicecomb.foundation.common.event.SimpleEventBus;
 import org.apache.servicecomb.serviceregistry.ServiceRegistry;
 import org.apache.servicecomb.serviceregistry.config.ServiceRegistryConfig;
-import org.apache.servicecomb.serviceregistry.definition.MicroserviceDefinition;
+import org.apache.servicecomb.registry.definition.MicroserviceDefinition;
 
 import com.google.common.eventbus.EventBus;
 
diff --git a/service-registry/registry-service-center/src/main/java/org/apache/servicecomb/serviceregistry/registry/cache/AggregateMicroserviceCache.java b/service-registry/registry-service-center/src/main/java/org/apache/servicecomb/serviceregistry/registry/cache/AggregateMicroserviceCache.java
index a0082f7..54f6b26 100644
--- a/service-registry/registry-service-center/src/main/java/org/apache/servicecomb/serviceregistry/registry/cache/AggregateMicroserviceCache.java
+++ b/service-registry/registry-service-center/src/main/java/org/apache/servicecomb/serviceregistry/registry/cache/AggregateMicroserviceCache.java
@@ -29,7 +29,7 @@ import java.util.Objects;
 import java.util.concurrent.atomic.AtomicLong;
 
 import org.apache.servicecomb.serviceregistry.ServiceRegistry;
-import org.apache.servicecomb.serviceregistry.api.registry.MicroserviceInstance;
+import org.apache.servicecomb.registry.api.registry.MicroserviceInstance;
 
 public class AggregateMicroserviceCache implements MicroserviceCache {
   private MicroserviceCacheKey key;
diff --git a/service-registry/registry-service-center/src/main/java/org/apache/servicecomb/serviceregistry/registry/cache/MicroserviceCache.java b/service-registry/registry-service-center/src/main/java/org/apache/servicecomb/serviceregistry/registry/cache/MicroserviceCache.java
index d6a49c2..2a12d81 100644
--- a/service-registry/registry-service-center/src/main/java/org/apache/servicecomb/serviceregistry/registry/cache/MicroserviceCache.java
+++ b/service-registry/registry-service-center/src/main/java/org/apache/servicecomb/serviceregistry/registry/cache/MicroserviceCache.java
@@ -19,7 +19,7 @@ package org.apache.servicecomb.serviceregistry.registry.cache;
 
 import java.util.List;
 
-import org.apache.servicecomb.serviceregistry.api.registry.MicroserviceInstance;
+import org.apache.servicecomb.registry.api.registry.MicroserviceInstance;
 
 public interface MicroserviceCache {
   MicroserviceCacheKey getKey();
diff --git a/service-registry/registry-service-center/src/main/java/org/apache/servicecomb/serviceregistry/registry/cache/MicroserviceCacheKey.java b/service-registry/registry-service-center/src/main/java/org/apache/servicecomb/serviceregistry/registry/cache/MicroserviceCacheKey.java
index 103df5a..a127a54 100644
--- a/service-registry/registry-service-center/src/main/java/org/apache/servicecomb/serviceregistry/registry/cache/MicroserviceCacheKey.java
+++ b/service-registry/registry-service-center/src/main/java/org/apache/servicecomb/serviceregistry/registry/cache/MicroserviceCacheKey.java
@@ -19,8 +19,8 @@ package org.apache.servicecomb.serviceregistry.registry.cache;
 
 import java.util.Objects;
 
-import org.apache.servicecomb.serviceregistry.definition.DefinitionConst;
-import org.apache.servicecomb.serviceregistry.definition.MicroserviceNameParser;
+import org.apache.servicecomb.registry.definition.DefinitionConst;
+import org.apache.servicecomb.registry.definition.MicroserviceNameParser;
 
 public class MicroserviceCacheKey {
   private String env;
diff --git a/service-registry/registry-service-center/src/main/java/org/apache/servicecomb/serviceregistry/registry/cache/RefreshableMicroserviceCache.java b/service-registry/registry-service-center/src/main/java/org/apache/servicecomb/serviceregistry/registry/cache/RefreshableMicroserviceCache.java
index 6038dba..fbaa9f9 100644
--- a/service-registry/registry-service-center/src/main/java/org/apache/servicecomb/serviceregistry/registry/cache/RefreshableMicroserviceCache.java
+++ b/service-registry/registry-service-center/src/main/java/org/apache/servicecomb/serviceregistry/registry/cache/RefreshableMicroserviceCache.java
@@ -24,14 +24,14 @@ import java.util.List;
 import java.util.Set;
 
 import org.apache.servicecomb.foundation.common.utils.SPIServiceUtils;
-import org.apache.servicecomb.serviceregistry.api.registry.Microservice;
-import org.apache.servicecomb.serviceregistry.api.registry.MicroserviceInstance;
-import org.apache.servicecomb.serviceregistry.api.response.MicroserviceInstanceChangedEvent;
+import org.apache.servicecomb.registry.api.registry.Microservice;
+import org.apache.servicecomb.registry.api.registry.MicroserviceInstance;
+import org.apache.servicecomb.registry.api.event.MicroserviceInstanceChangedEvent;
 import org.apache.servicecomb.serviceregistry.client.ServiceRegistryClient;
-import org.apache.servicecomb.serviceregistry.client.http.MicroserviceInstances;
-import org.apache.servicecomb.serviceregistry.consumer.MicroserviceInstancePing;
-import org.apache.servicecomb.serviceregistry.definition.DefinitionConst;
-import org.apache.servicecomb.serviceregistry.task.event.SafeModeChangeEvent;
+import org.apache.servicecomb.registry.api.registry.MicroserviceInstances;
+import org.apache.servicecomb.registry.consumer.MicroserviceInstancePing;
+import org.apache.servicecomb.registry.definition.DefinitionConst;
+import org.apache.servicecomb.registry.api.event.task.SafeModeChangeEvent;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
diff --git a/service-registry/registry-service-center/src/main/java/org/apache/servicecomb/serviceregistry/registry/cache/RefreshableServiceRegistryCache.java b/service-registry/registry-service-center/src/main/java/org/apache/servicecomb/serviceregistry/registry/cache/RefreshableServiceRegistryCache.java
index 7bd1a1b..0c180ac 100644
--- a/service-registry/registry-service-center/src/main/java/org/apache/servicecomb/serviceregistry/registry/cache/RefreshableServiceRegistryCache.java
+++ b/service-registry/registry-service-center/src/main/java/org/apache/servicecomb/serviceregistry/registry/cache/RefreshableServiceRegistryCache.java
@@ -26,11 +26,11 @@ import java.util.function.Consumer;
 import java.util.stream.Collectors;
 
 import org.apache.servicecomb.foundation.common.concurrent.ConcurrentHashMapEx;
-import org.apache.servicecomb.serviceregistry.api.registry.Microservice;
-import org.apache.servicecomb.serviceregistry.api.response.MicroserviceInstanceChangedEvent;
+import org.apache.servicecomb.registry.api.registry.Microservice;
+import org.apache.servicecomb.registry.api.event.MicroserviceInstanceChangedEvent;
 import org.apache.servicecomb.serviceregistry.client.ServiceRegistryClient;
 import org.apache.servicecomb.serviceregistry.registry.cache.MicroserviceCache.MicroserviceCacheStatus;
-import org.apache.servicecomb.serviceregistry.task.event.SafeModeChangeEvent;
+import org.apache.servicecomb.registry.api.event.task.SafeModeChangeEvent;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
diff --git a/service-registry/registry-service-center/src/main/java/org/apache/servicecomb/serviceregistry/task/AbstractRegisterTask.java b/service-registry/registry-service-center/src/main/java/org/apache/servicecomb/serviceregistry/task/AbstractRegisterTask.java
index 5e1eb5d..bd3962a 100644
--- a/service-registry/registry-service-center/src/main/java/org/apache/servicecomb/serviceregistry/task/AbstractRegisterTask.java
+++ b/service-registry/registry-service-center/src/main/java/org/apache/servicecomb/serviceregistry/task/AbstractRegisterTask.java
@@ -16,7 +16,7 @@
  */
 package org.apache.servicecomb.serviceregistry.task;
 
-import org.apache.servicecomb.serviceregistry.api.registry.Microservice;
+import org.apache.servicecomb.registry.api.registry.Microservice;
 import org.apache.servicecomb.serviceregistry.client.ServiceRegistryClient;
 
 import com.google.common.eventbus.EventBus;
diff --git a/service-registry/registry-service-center/src/main/java/org/apache/servicecomb/serviceregistry/task/AbstractTask.java b/service-registry/registry-service-center/src/main/java/org/apache/servicecomb/serviceregistry/task/AbstractTask.java
index a346e5e..c9d8915 100644
--- a/service-registry/registry-service-center/src/main/java/org/apache/servicecomb/serviceregistry/task/AbstractTask.java
+++ b/service-registry/registry-service-center/src/main/java/org/apache/servicecomb/serviceregistry/task/AbstractTask.java
@@ -16,7 +16,7 @@
  */
 package org.apache.servicecomb.serviceregistry.task;
 
-import org.apache.servicecomb.serviceregistry.api.registry.Microservice;
+import org.apache.servicecomb.registry.api.registry.Microservice;
 import org.apache.servicecomb.serviceregistry.client.ServiceRegistryClient;
 
 import com.google.common.eventbus.EventBus;
diff --git a/service-registry/registry-service-center/src/main/java/org/apache/servicecomb/serviceregistry/task/MicroserviceInstanceHeartbeatTask.java b/service-registry/registry-service-center/src/main/java/org/apache/servicecomb/serviceregistry/task/MicroserviceInstanceHeartbeatTask.java
index 136c6ab..28f89d4 100644
--- a/service-registry/registry-service-center/src/main/java/org/apache/servicecomb/serviceregistry/task/MicroserviceInstanceHeartbeatTask.java
+++ b/service-registry/registry-service-center/src/main/java/org/apache/servicecomb/serviceregistry/task/MicroserviceInstanceHeartbeatTask.java
@@ -17,12 +17,12 @@
 package org.apache.servicecomb.serviceregistry.task;
 
 import org.apache.servicecomb.foundation.common.event.EventManager;
-import org.apache.servicecomb.serviceregistry.api.registry.Microservice;
-import org.apache.servicecomb.serviceregistry.api.registry.MicroserviceInstance;
+import org.apache.servicecomb.registry.api.registry.Microservice;
+import org.apache.servicecomb.registry.api.registry.MicroserviceInstance;
 import org.apache.servicecomb.serviceregistry.api.response.HeartbeatResponse;
 import org.apache.servicecomb.serviceregistry.client.ServiceRegistryClient;
-import org.apache.servicecomb.serviceregistry.task.event.HeartbeatFailEvent;
-import org.apache.servicecomb.serviceregistry.task.event.HeartbeatSuccEvent;
+import org.apache.servicecomb.registry.api.event.task.HeartbeatFailEvent;
+import org.apache.servicecomb.registry.api.event.task.HeartbeatSuccEvent;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
diff --git a/service-registry/registry-service-center/src/main/java/org/apache/servicecomb/serviceregistry/task/MicroserviceInstanceRegisterTask.java b/service-registry/registry-service-center/src/main/java/org/apache/servicecomb/serviceregistry/task/MicroserviceInstanceRegisterTask.java
index 4effbd3..c4eb3a8 100644
--- a/service-registry/registry-service-center/src/main/java/org/apache/servicecomb/serviceregistry/task/MicroserviceInstanceRegisterTask.java
+++ b/service-registry/registry-service-center/src/main/java/org/apache/servicecomb/serviceregistry/task/MicroserviceInstanceRegisterTask.java
@@ -16,10 +16,10 @@
  */
 package org.apache.servicecomb.serviceregistry.task;
 
-import org.apache.servicecomb.serviceregistry.RegistrationManager;
+import org.apache.servicecomb.registry.RegistrationManager;
 import org.apache.servicecomb.serviceregistry.adapter.EnvAdapterManager;
-import org.apache.servicecomb.serviceregistry.api.registry.Microservice;
-import org.apache.servicecomb.serviceregistry.api.registry.MicroserviceInstance;
+import org.apache.servicecomb.registry.api.registry.Microservice;
+import org.apache.servicecomb.registry.api.registry.MicroserviceInstance;
 import org.apache.servicecomb.serviceregistry.client.ServiceRegistryClient;
 import org.apache.servicecomb.serviceregistry.config.ServiceRegistryConfig;
 import org.slf4j.Logger;
diff --git a/service-registry/registry-service-center/src/main/java/org/apache/servicecomb/serviceregistry/task/MicroserviceRegisterTask.java b/service-registry/registry-service-center/src/main/java/org/apache/servicecomb/serviceregistry/task/MicroserviceRegisterTask.java
index 31909b1..1509f89 100644
--- a/service-registry/registry-service-center/src/main/java/org/apache/servicecomb/serviceregistry/task/MicroserviceRegisterTask.java
+++ b/service-registry/registry-service-center/src/main/java/org/apache/servicecomb/serviceregistry/task/MicroserviceRegisterTask.java
@@ -28,7 +28,7 @@ import javax.ws.rs.core.Response.Status;
 import org.apache.commons.lang3.StringUtils;
 import org.apache.servicecomb.foundation.common.base.ServiceCombConstants;
 import org.apache.servicecomb.serviceregistry.RegistryUtils;
-import org.apache.servicecomb.serviceregistry.api.registry.Microservice;
+import org.apache.servicecomb.registry.api.registry.Microservice;
 import org.apache.servicecomb.serviceregistry.api.response.GetSchemaResponse;
 import org.apache.servicecomb.serviceregistry.client.ServiceRegistryClient;
 import org.apache.servicecomb.serviceregistry.client.http.Holder;
diff --git a/service-registry/registry-service-center/src/main/java/org/apache/servicecomb/serviceregistry/task/MicroserviceServiceCenterTask.java b/service-registry/registry-service-center/src/main/java/org/apache/servicecomb/serviceregistry/task/MicroserviceServiceCenterTask.java
index 35b23eb..7409497 100644
--- a/service-registry/registry-service-center/src/main/java/org/apache/servicecomb/serviceregistry/task/MicroserviceServiceCenterTask.java
+++ b/service-registry/registry-service-center/src/main/java/org/apache/servicecomb/serviceregistry/task/MicroserviceServiceCenterTask.java
@@ -16,7 +16,7 @@
  */
 package org.apache.servicecomb.serviceregistry.task;
 
-import org.apache.servicecomb.serviceregistry.api.registry.Microservice;
+import org.apache.servicecomb.registry.api.registry.Microservice;
 import org.apache.servicecomb.serviceregistry.client.ServiceRegistryClient;
 import org.apache.servicecomb.serviceregistry.config.ServiceRegistryConfig;
 
diff --git a/service-registry/registry-service-center/src/main/java/org/apache/servicecomb/serviceregistry/task/MicroserviceWatchTask.java b/service-registry/registry-service-center/src/main/java/org/apache/servicecomb/serviceregistry/task/MicroserviceWatchTask.java
index d633444..9e95d0c 100644
--- a/service-registry/registry-service-center/src/main/java/org/apache/servicecomb/serviceregistry/task/MicroserviceWatchTask.java
+++ b/service-registry/registry-service-center/src/main/java/org/apache/servicecomb/serviceregistry/task/MicroserviceWatchTask.java
@@ -17,12 +17,12 @@
 package org.apache.servicecomb.serviceregistry.task;
 
 import org.apache.servicecomb.serviceregistry.api.Const;
-import org.apache.servicecomb.serviceregistry.api.registry.Microservice;
-import org.apache.servicecomb.serviceregistry.api.response.MicroserviceInstanceChangedEvent;
+import org.apache.servicecomb.registry.api.registry.Microservice;
+import org.apache.servicecomb.registry.api.event.MicroserviceInstanceChangedEvent;
 import org.apache.servicecomb.serviceregistry.client.ServiceRegistryClient;
 import org.apache.servicecomb.serviceregistry.config.ServiceRegistryConfig;
-import org.apache.servicecomb.serviceregistry.task.event.ExceptionEvent;
-import org.apache.servicecomb.serviceregistry.task.event.RecoveryEvent;
+import org.apache.servicecomb.registry.api.event.task.ExceptionEvent;
+import org.apache.servicecomb.registry.api.event.task.RecoveryEvent;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
diff --git a/service-registry/registry-service-center/src/main/java/org/apache/servicecomb/serviceregistry/task/ServiceCenterTask.java b/service-registry/registry-service-center/src/main/java/org/apache/servicecomb/serviceregistry/task/ServiceCenterTask.java
index 170ee3f..45f067a 100644
--- a/service-registry/registry-service-center/src/main/java/org/apache/servicecomb/serviceregistry/task/ServiceCenterTask.java
+++ b/service-registry/registry-service-center/src/main/java/org/apache/servicecomb/serviceregistry/task/ServiceCenterTask.java
@@ -18,8 +18,8 @@ package org.apache.servicecomb.serviceregistry.task;
 
 import java.util.concurrent.atomic.AtomicLong;
 
-import org.apache.servicecomb.serviceregistry.task.event.ExceptionEvent;
-import org.apache.servicecomb.serviceregistry.task.event.SafeModeChangeEvent;
+import org.apache.servicecomb.registry.api.event.task.ExceptionEvent;
+import org.apache.servicecomb.registry.api.event.task.SafeModeChangeEvent;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
diff --git a/service-registry/registry-service-center/src/main/resources/META-INF/services/org.apache.servicecomb.serviceregistry.api.Discovery b/service-registry/registry-service-center/src/main/resources/META-INF/services/org.apache.servicecomb.registry.api.Discovery
similarity index 100%
copy from service-registry/registry-service-center/src/main/resources/META-INF/services/org.apache.servicecomb.serviceregistry.api.Discovery
copy to service-registry/registry-service-center/src/main/resources/META-INF/services/org.apache.servicecomb.registry.api.Discovery
diff --git a/service-registry/registry-service-center/src/main/resources/META-INF/services/org.apache.servicecomb.serviceregistry.api.Registration b/service-registry/registry-service-center/src/main/resources/META-INF/services/org.apache.servicecomb.registry.api.Registration
similarity index 100%
rename from service-registry/registry-service-center/src/main/resources/META-INF/services/org.apache.servicecomb.serviceregistry.api.Registration
rename to service-registry/registry-service-center/src/main/resources/META-INF/services/org.apache.servicecomb.registry.api.Registration
diff --git a/service-registry/registry-service-center/src/main/resources/META-INF/services/org.apache.servicecomb.serviceregistry.api.Versions b/service-registry/registry-service-center/src/main/resources/META-INF/services/org.apache.servicecomb.registry.api.Versions
similarity index 100%
rename from service-registry/registry-service-center/src/main/resources/META-INF/services/org.apache.servicecomb.serviceregistry.api.Versions
rename to service-registry/registry-service-center/src/main/resources/META-INF/services/org.apache.servicecomb.registry.api.Versions
diff --git a/service-registry/registry-service-center/src/main/resources/META-INF/services/org.apache.servicecomb.serviceregistry.api.Discovery b/service-registry/registry-service-center/src/main/resources/META-INF/services/org.apache.servicecomb.registry.discovery.DiscoveryFilter
similarity index 91%
rename from service-registry/registry-service-center/src/main/resources/META-INF/services/org.apache.servicecomb.serviceregistry.api.Discovery
rename to service-registry/registry-service-center/src/main/resources/META-INF/services/org.apache.servicecomb.registry.discovery.DiscoveryFilter
index 7d152e0..8301cf8 100644
--- a/service-registry/registry-service-center/src/main/resources/META-INF/services/org.apache.servicecomb.serviceregistry.api.Discovery
+++ b/service-registry/registry-service-center/src/main/resources/META-INF/services/org.apache.servicecomb.registry.discovery.DiscoveryFilter
@@ -15,4 +15,4 @@
 # limitations under the License.
 #
 
-org.apache.servicecomb.serviceregistry.ServiceCenterDiscovery
\ No newline at end of file
+org.apache.servicecomb.registry.discovery.InstanceStatusDiscoveryFilter
\ No newline at end of file
diff --git a/service-registry/registry-service-center/src/main/resources/META-INF/services/org.apache.servicecomb.serviceregistry.discovery.DiscoveryFilter b/service-registry/registry-service-center/src/main/resources/META-INF/services/org.apache.servicecomb.serviceregistry.discovery.DiscoveryFilter
deleted file mode 100644
index 3e2418c..0000000
--- a/service-registry/registry-service-center/src/main/resources/META-INF/services/org.apache.servicecomb.serviceregistry.discovery.DiscoveryFilter
+++ /dev/null
@@ -1,18 +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.
-#
-
-org.apache.servicecomb.serviceregistry.discovery.InstanceStatusDiscoveryFilter
\ No newline at end of file
diff --git a/service-registry/registry-service-center/src/test/java/org/apache/servicecomb/serviceregistry/MicroServicePropertyExtendedStub.java b/service-registry/registry-service-center/src/test/java/org/apache/servicecomb/serviceregistry/MicroServicePropertyExtendedStub.java
index 1d37245..031734f 100644
--- a/service-registry/registry-service-center/src/test/java/org/apache/servicecomb/serviceregistry/MicroServicePropertyExtendedStub.java
+++ b/service-registry/registry-service-center/src/test/java/org/apache/servicecomb/serviceregistry/MicroServicePropertyExtendedStub.java
@@ -20,7 +20,7 @@ package org.apache.servicecomb.serviceregistry;
 import java.util.HashMap;
 import java.util.Map;
 
-import org.apache.servicecomb.serviceregistry.api.PropertyExtended;
+import org.apache.servicecomb.registry.api.PropertyExtended;
 
 public class MicroServicePropertyExtendedStub implements PropertyExtended {
 
diff --git a/service-registry/registry-service-center/src/test/java/org/apache/servicecomb/serviceregistry/MockMicroserviceVersions.java b/service-registry/registry-service-center/src/test/java/org/apache/servicecomb/serviceregistry/MockMicroserviceVersions.java
index 6b9a74f..42dff91 100644
--- a/service-registry/registry-service-center/src/test/java/org/apache/servicecomb/serviceregistry/MockMicroserviceVersions.java
+++ b/service-registry/registry-service-center/src/test/java/org/apache/servicecomb/serviceregistry/MockMicroserviceVersions.java
@@ -24,13 +24,14 @@ import java.util.List;
 import java.util.Map;
 import java.util.stream.Collectors;
 
-import org.apache.servicecomb.serviceregistry.api.registry.Microservice;
-import org.apache.servicecomb.serviceregistry.api.registry.MicroserviceInstance;
-import org.apache.servicecomb.serviceregistry.consumer.AppManager;
-import org.apache.servicecomb.serviceregistry.consumer.MicroserviceVersion;
-import org.apache.servicecomb.serviceregistry.consumer.MicroserviceVersionRule;
-import org.apache.servicecomb.serviceregistry.consumer.MicroserviceVersions;
-import org.apache.servicecomb.serviceregistry.version.Version;
+import org.apache.servicecomb.registry.DiscoveryManager;
+import org.apache.servicecomb.registry.api.registry.Microservice;
+import org.apache.servicecomb.registry.api.registry.MicroserviceInstance;
+import org.apache.servicecomb.registry.consumer.AppManager;
+import org.apache.servicecomb.registry.consumer.MicroserviceVersion;
+import org.apache.servicecomb.registry.consumer.MicroserviceVersionRule;
+import org.apache.servicecomb.registry.consumer.MicroserviceVersions;
+import org.apache.servicecomb.registry.version.Version;
 import org.hamcrest.Matchers;
 import org.junit.Assert;
 
diff --git a/service-registry/registry-service-center/src/test/java/org/apache/servicecomb/serviceregistry/RegistryUtilsTest.java b/service-registry/registry-service-center/src/test/java/org/apache/servicecomb/serviceregistry/RegistryUtilsTest.java
index ab7efc5..7deeeb1 100644
--- a/service-registry/registry-service-center/src/test/java/org/apache/servicecomb/serviceregistry/RegistryUtilsTest.java
+++ b/service-registry/registry-service-center/src/test/java/org/apache/servicecomb/serviceregistry/RegistryUtilsTest.java
@@ -19,8 +19,8 @@ package org.apache.servicecomb.serviceregistry;
 
 import java.util.Collections;
 
-import org.apache.servicecomb.serviceregistry.api.registry.MicroserviceInstance;
-import org.apache.servicecomb.serviceregistry.client.http.MicroserviceInstances;
+import org.apache.servicecomb.registry.api.registry.MicroserviceInstance;
+import org.apache.servicecomb.registry.api.registry.MicroserviceInstances;
 import org.apache.servicecomb.serviceregistry.registry.cache.MicroserviceCache.MicroserviceCacheStatus;
 import org.apache.servicecomb.serviceregistry.registry.cache.MockedMicroserviceCache;
 import org.junit.Assert;
diff --git a/service-registry/registry-service-center/src/test/java/org/apache/servicecomb/serviceregistry/TestConsumers.java b/service-registry/registry-service-center/src/test/java/org/apache/servicecomb/serviceregistry/TestConsumers.java
index 650ca14..85e6282 100644
--- a/service-registry/registry-service-center/src/test/java/org/apache/servicecomb/serviceregistry/TestConsumers.java
+++ b/service-registry/registry-service-center/src/test/java/org/apache/servicecomb/serviceregistry/TestConsumers.java
@@ -20,14 +20,15 @@ package org.apache.servicecomb.serviceregistry;
 import java.util.Arrays;
 
 import org.apache.servicecomb.foundation.test.scaffolding.log.LogCollector;
-import org.apache.servicecomb.serviceregistry.api.MicroserviceKey;
-import org.apache.servicecomb.serviceregistry.api.registry.Microservice;
-import org.apache.servicecomb.serviceregistry.api.registry.MicroserviceInstance;
-import org.apache.servicecomb.serviceregistry.api.response.MicroserviceInstanceChangedEvent;
-import org.apache.servicecomb.serviceregistry.consumer.MicroserviceVersion;
-import org.apache.servicecomb.serviceregistry.consumer.MicroserviceVersionRule;
-import org.apache.servicecomb.serviceregistry.consumer.MicroserviceVersions;
-import org.apache.servicecomb.serviceregistry.task.event.RecoveryEvent;
+import org.apache.servicecomb.registry.DiscoveryManager;
+import org.apache.servicecomb.registry.api.MicroserviceKey;
+import org.apache.servicecomb.registry.api.registry.Microservice;
+import org.apache.servicecomb.registry.api.registry.MicroserviceInstance;
+import org.apache.servicecomb.registry.api.event.MicroserviceInstanceChangedEvent;
+import org.apache.servicecomb.registry.consumer.MicroserviceVersion;
+import org.apache.servicecomb.registry.consumer.MicroserviceVersionRule;
+import org.apache.servicecomb.registry.consumer.MicroserviceVersions;
+import org.apache.servicecomb.registry.api.event.task.RecoveryEvent;
 import org.hamcrest.Matchers;
 import org.junit.After;
 import org.junit.Assert;
diff --git a/service-registry/registry-service-center/src/test/java/org/apache/servicecomb/serviceregistry/TestRegistry.java b/service-registry/registry-service-center/src/test/java/org/apache/servicecomb/serviceregistry/TestRegistry.java
index e7bb9e2..03ce7ff 100644
--- a/service-registry/registry-service-center/src/test/java/org/apache/servicecomb/serviceregistry/TestRegistry.java
+++ b/service-registry/registry-service-center/src/test/java/org/apache/servicecomb/serviceregistry/TestRegistry.java
@@ -30,11 +30,11 @@ import org.apache.http.client.utils.URLEncodedUtils;
 import org.apache.http.message.BasicNameValuePair;
 import org.apache.servicecomb.config.ConfigUtil;
 import org.apache.servicecomb.foundation.common.net.NetUtils;
-import org.apache.servicecomb.serviceregistry.api.registry.Microservice;
-import org.apache.servicecomb.serviceregistry.api.registry.MicroserviceInstance;
-import org.apache.servicecomb.serviceregistry.client.http.MicroserviceInstances;
+import org.apache.servicecomb.registry.RegistrationManager;
+import org.apache.servicecomb.registry.api.registry.Microservice;
+import org.apache.servicecomb.registry.api.registry.MicroserviceInstance;
+import org.apache.servicecomb.registry.api.registry.MicroserviceInstances;
 import org.apache.servicecomb.serviceregistry.registry.LocalServiceRegistryFactory;
-import org.apache.servicecomb.serviceregistry.registry.ServiceRegistryFactory;
 import org.junit.AfterClass;
 import org.junit.Assert;
 import org.junit.Before;
diff --git a/service-registry/registry-service-center/src/test/java/org/apache/servicecomb/serviceregistry/TestRegistryBase.java b/service-registry/registry-service-center/src/test/java/org/apache/servicecomb/serviceregistry/TestRegistryBase.java
index 4d18e19..2b45f72 100644
--- a/service-registry/registry-service-center/src/test/java/org/apache/servicecomb/serviceregistry/TestRegistryBase.java
+++ b/service-registry/registry-service-center/src/test/java/org/apache/servicecomb/serviceregistry/TestRegistryBase.java
@@ -20,9 +20,11 @@ import org.apache.log4j.Level;
 import org.apache.log4j.Logger;
 import org.apache.servicecomb.config.ConfigUtil;
 import org.apache.servicecomb.foundation.test.scaffolding.config.ArchaiusUtils;
-import org.apache.servicecomb.serviceregistry.client.http.MicroserviceInstances;
-import org.apache.servicecomb.serviceregistry.consumer.AppManager;
-import org.apache.servicecomb.serviceregistry.consumer.MicroserviceManager;
+import org.apache.servicecomb.registry.DiscoveryManager;
+import org.apache.servicecomb.registry.RegistrationManager;
+import org.apache.servicecomb.registry.api.registry.MicroserviceInstances;
+import org.apache.servicecomb.registry.consumer.AppManager;
+import org.apache.servicecomb.registry.consumer.MicroserviceManager;
 import org.apache.servicecomb.serviceregistry.registry.LocalServiceRegistryFactory;
 import org.junit.AfterClass;
 import org.junit.Before;
diff --git a/service-registry/registry-service-center/src/test/java/org/apache/servicecomb/serviceregistry/adapter/CasEnvAdapterHighOne.java b/service-registry/registry-service-center/src/test/java/org/apache/servicecomb/serviceregistry/adapter/CasEnvAdapterHighOne.java
index b92c9ac..1462584 100644
--- a/service-registry/registry-service-center/src/test/java/org/apache/servicecomb/serviceregistry/adapter/CasEnvAdapterHighOne.java
+++ b/service-registry/registry-service-center/src/test/java/org/apache/servicecomb/serviceregistry/adapter/CasEnvAdapterHighOne.java
@@ -16,8 +16,8 @@
  */
 package org.apache.servicecomb.serviceregistry.adapter;
 
-import org.apache.servicecomb.serviceregistry.api.registry.Microservice;
-import org.apache.servicecomb.serviceregistry.api.registry.MicroserviceInstance;
+import org.apache.servicecomb.registry.api.registry.Microservice;
+import org.apache.servicecomb.registry.api.registry.MicroserviceInstance;
 
 public class CasEnvAdapterHighOne implements EnvAdapter {
   private static final String NAME = "cas_env_one";
diff --git a/service-registry/registry-service-center/src/test/java/org/apache/servicecomb/serviceregistry/adapter/CasEnvAdapterOne.java b/service-registry/registry-service-center/src/test/java/org/apache/servicecomb/serviceregistry/adapter/CasEnvAdapterOne.java
index 86fd689..b08b087 100644
--- a/service-registry/registry-service-center/src/test/java/org/apache/servicecomb/serviceregistry/adapter/CasEnvAdapterOne.java
+++ b/service-registry/registry-service-center/src/test/java/org/apache/servicecomb/serviceregistry/adapter/CasEnvAdapterOne.java
@@ -16,8 +16,8 @@
  */
 package org.apache.servicecomb.serviceregistry.adapter;
 
-import org.apache.servicecomb.serviceregistry.api.registry.Microservice;
-import org.apache.servicecomb.serviceregistry.api.registry.MicroserviceInstance;
+import org.apache.servicecomb.registry.api.registry.Microservice;
+import org.apache.servicecomb.registry.api.registry.MicroserviceInstance;
 
 public class CasEnvAdapterOne implements EnvAdapter {
   private static final String NAME = "cas_env_one";
diff --git a/service-registry/registry-service-center/src/test/java/org/apache/servicecomb/serviceregistry/adapter/CasEnvAdapterTwo.java b/service-registry/registry-service-center/src/test/java/org/apache/servicecomb/serviceregistry/adapter/CasEnvAdapterTwo.java
index f3e2e9e..874f271 100644
--- a/service-registry/registry-service-center/src/test/java/org/apache/servicecomb/serviceregistry/adapter/CasEnvAdapterTwo.java
+++ b/service-registry/registry-service-center/src/test/java/org/apache/servicecomb/serviceregistry/adapter/CasEnvAdapterTwo.java
@@ -16,8 +16,8 @@
  */
 package org.apache.servicecomb.serviceregistry.adapter;
 
-import org.apache.servicecomb.serviceregistry.api.registry.Microservice;
-import org.apache.servicecomb.serviceregistry.api.registry.MicroserviceInstance;
+import org.apache.servicecomb.registry.api.registry.Microservice;
+import org.apache.servicecomb.registry.api.registry.MicroserviceInstance;
 
 public class CasEnvAdapterTwo implements EnvAdapter {
   private static final String NAME = "cas_env_two";
diff --git a/service-registry/registry-service-center/src/test/java/org/apache/servicecomb/serviceregistry/adapter/TestEnvAdapterManager.java b/service-registry/registry-service-center/src/test/java/org/apache/servicecomb/serviceregistry/adapter/TestEnvAdapterManager.java
index cf22311..9d9e6a9 100644
--- a/service-registry/registry-service-center/src/test/java/org/apache/servicecomb/serviceregistry/adapter/TestEnvAdapterManager.java
+++ b/service-registry/registry-service-center/src/test/java/org/apache/servicecomb/serviceregistry/adapter/TestEnvAdapterManager.java
@@ -20,8 +20,8 @@ import static org.junit.Assert.assertEquals;
 import static org.junit.Assert.assertNotNull;
 import static org.junit.Assert.assertNull;
 
-import org.apache.servicecomb.serviceregistry.api.registry.Microservice;
-import org.apache.servicecomb.serviceregistry.api.registry.MicroserviceInstance;
+import org.apache.servicecomb.registry.api.registry.Microservice;
+import org.apache.servicecomb.registry.api.registry.MicroserviceInstance;
 import org.junit.Test;
 
 public class TestEnvAdapterManager {
diff --git a/service-registry/registry-service-center/src/test/java/org/apache/servicecomb/serviceregistry/api/TestMicroserviceKey.java b/service-registry/registry-service-center/src/test/java/org/apache/servicecomb/serviceregistry/api/TestMicroserviceKey.java
index ab5c35b..0fbaef8 100644
--- a/service-registry/registry-service-center/src/test/java/org/apache/servicecomb/serviceregistry/api/TestMicroserviceKey.java
+++ b/service-registry/registry-service-center/src/test/java/org/apache/servicecomb/serviceregistry/api/TestMicroserviceKey.java
@@ -17,6 +17,7 @@
 
 package org.apache.servicecomb.serviceregistry.api;
 
+import org.apache.servicecomb.registry.api.MicroserviceKey;
 import org.junit.After;
 import org.junit.Assert;
 import org.junit.Before;
diff --git a/service-registry/registry-service-center/src/test/java/org/apache/servicecomb/serviceregistry/api/registry/TestBasePath.java b/service-registry/registry-service-center/src/test/java/org/apache/servicecomb/serviceregistry/api/registry/TestBasePath.java
index 4a8739e..ed2b040 100644
--- a/service-registry/registry-service-center/src/test/java/org/apache/servicecomb/serviceregistry/api/registry/TestBasePath.java
+++ b/service-registry/registry-service-center/src/test/java/org/apache/servicecomb/serviceregistry/api/registry/TestBasePath.java
@@ -19,6 +19,7 @@ package org.apache.servicecomb.serviceregistry.api.registry;
 
 import java.util.HashMap;
 
+import org.apache.servicecomb.registry.api.registry.BasePath;
 import org.junit.After;
 import org.junit.Assert;
 import org.junit.Before;
diff --git a/service-registry/registry-service-center/src/test/java/org/apache/servicecomb/serviceregistry/api/registry/TestFramework.java b/service-registry/registry-service-center/src/test/java/org/apache/servicecomb/serviceregistry/api/registry/TestFramework.java
index bc04fb7..ba6d01f 100644
--- a/service-registry/registry-service-center/src/test/java/org/apache/servicecomb/serviceregistry/api/registry/TestFramework.java
+++ b/service-registry/registry-service-center/src/test/java/org/apache/servicecomb/serviceregistry/api/registry/TestFramework.java
@@ -17,6 +17,7 @@
 
 package org.apache.servicecomb.serviceregistry.api.registry;
 
+import org.apache.servicecomb.registry.api.registry.Framework;
 import org.junit.Assert;
 import org.junit.Test;
 
diff --git a/service-registry/registry-service-center/src/test/java/org/apache/servicecomb/serviceregistry/api/registry/TestFrameworkVersions.java b/service-registry/registry-service-center/src/test/java/org/apache/servicecomb/serviceregistry/api/registry/TestFrameworkVersions.java
index 7af3d09..63a3871 100644
--- a/service-registry/registry-service-center/src/test/java/org/apache/servicecomb/serviceregistry/api/registry/TestFrameworkVersions.java
+++ b/service-registry/registry-service-center/src/test/java/org/apache/servicecomb/serviceregistry/api/registry/TestFrameworkVersions.java
@@ -17,6 +17,7 @@
 
 package org.apache.servicecomb.serviceregistry.api.registry;
 
+import org.apache.servicecomb.registry.api.registry.FrameworkVersions;
 import org.junit.Assert;
 import org.junit.Test;
 
diff --git a/service-registry/registry-service-center/src/test/java/org/apache/servicecomb/serviceregistry/api/registry/TestHealthCheck.java b/service-registry/registry-service-center/src/test/java/org/apache/servicecomb/serviceregistry/api/registry/TestHealthCheck.java
index 7433f29..812e653 100644
--- a/service-registry/registry-service-center/src/test/java/org/apache/servicecomb/serviceregistry/api/registry/TestHealthCheck.java
+++ b/service-registry/registry-service-center/src/test/java/org/apache/servicecomb/serviceregistry/api/registry/TestHealthCheck.java
@@ -17,6 +17,8 @@
 
 package org.apache.servicecomb.serviceregistry.api.registry;
 
+import org.apache.servicecomb.registry.api.registry.HealthCheck;
+import org.apache.servicecomb.registry.api.registry.HealthCheckMode;
 import org.junit.After;
 import org.junit.Assert;
 import org.junit.Before;
diff --git a/service-registry/registry-service-center/src/test/java/org/apache/servicecomb/serviceregistry/api/registry/TestMicroService.java b/service-registry/registry-service-center/src/test/java/org/apache/servicecomb/serviceregistry/api/registry/TestMicroService.java
index c1ef3f5..5040cfc 100644
--- a/service-registry/registry-service-center/src/test/java/org/apache/servicecomb/serviceregistry/api/registry/TestMicroService.java
+++ b/service-registry/registry-service-center/src/test/java/org/apache/servicecomb/serviceregistry/api/registry/TestMicroService.java
@@ -22,6 +22,10 @@ import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
 
+import org.apache.servicecomb.registry.api.registry.BasePath;
+import org.apache.servicecomb.registry.api.registry.Framework;
+import org.apache.servicecomb.registry.api.registry.Microservice;
+import org.apache.servicecomb.registry.api.registry.MicroserviceInstanceStatus;
 import org.junit.After;
 import org.junit.Assert;
 import org.junit.Before;
diff --git a/service-registry/registry-service-center/src/test/java/org/apache/servicecomb/serviceregistry/api/registry/TestMicroServiceInstance.java b/service-registry/registry-service-center/src/test/java/org/apache/servicecomb/serviceregistry/api/registry/TestMicroServiceInstance.java
index affcf92..1fac6d2 100644
--- a/service-registry/registry-service-center/src/test/java/org/apache/servicecomb/serviceregistry/api/registry/TestMicroServiceInstance.java
+++ b/service-registry/registry-service-center/src/test/java/org/apache/servicecomb/serviceregistry/api/registry/TestMicroServiceInstance.java
@@ -24,6 +24,9 @@ import java.util.Map;
 
 import org.apache.commons.configuration.AbstractConfiguration;
 import org.apache.servicecomb.config.ConfigUtil;
+import org.apache.servicecomb.registry.api.registry.HealthCheck;
+import org.apache.servicecomb.registry.api.registry.MicroserviceInstance;
+import org.apache.servicecomb.registry.api.registry.MicroserviceInstanceStatus;
 import org.apache.servicecomb.serviceregistry.RegistryUtils;
 import org.junit.After;
 import org.junit.AfterClass;
diff --git a/service-registry/registry-service-center/src/test/java/org/apache/servicecomb/serviceregistry/api/registry/TestMicroserviceFactory.java b/service-registry/registry-service-center/src/test/java/org/apache/servicecomb/serviceregistry/api/registry/TestMicroserviceFactory.java
index c735f9b..1e2c809 100644
--- a/service-registry/registry-service-center/src/test/java/org/apache/servicecomb/serviceregistry/api/registry/TestMicroserviceFactory.java
+++ b/service-registry/registry-service-center/src/test/java/org/apache/servicecomb/serviceregistry/api/registry/TestMicroserviceFactory.java
@@ -19,15 +19,17 @@ package org.apache.servicecomb.serviceregistry.api.registry;
 
 import static org.apache.servicecomb.foundation.common.base.ServiceCombConstants.CONFIG_QUALIFIED_MICROSERVICE_DESCRIPTION_KEY;
 import static org.apache.servicecomb.foundation.common.base.ServiceCombConstants.CONFIG_QUALIFIED_MICROSERVICE_VERSION_KEY;
-import static org.apache.servicecomb.serviceregistry.definition.DefinitionConst.CONFIG_ALLOW_CROSS_APP_KEY;
-import static org.apache.servicecomb.serviceregistry.definition.DefinitionConst.DEFAULT_MICROSERVICE_VERSION;
+import static org.apache.servicecomb.registry.definition.DefinitionConst.CONFIG_ALLOW_CROSS_APP_KEY;
+import static org.apache.servicecomb.registry.definition.DefinitionConst.DEFAULT_MICROSERVICE_VERSION;
 
 import java.util.HashMap;
 import java.util.Map;
 
 import org.apache.commons.configuration.Configuration;
 import org.apache.servicecomb.config.archaius.sources.MicroserviceConfigLoader;
-import org.apache.servicecomb.serviceregistry.definition.MicroserviceDefinition;
+import org.apache.servicecomb.registry.api.registry.Microservice;
+import org.apache.servicecomb.registry.api.registry.MicroserviceFactory;
+import org.apache.servicecomb.registry.definition.MicroserviceDefinition;
 import org.junit.Assert;
 import org.junit.Rule;
 import org.junit.Test;
diff --git a/service-registry/registry-service-center/src/test/java/org/apache/servicecomb/serviceregistry/api/request/TestCreateServiceRequest.java b/service-registry/registry-service-center/src/test/java/org/apache/servicecomb/serviceregistry/api/request/TestCreateServiceRequest.java
index cb97227..b25f93c 100644
--- a/service-registry/registry-service-center/src/test/java/org/apache/servicecomb/serviceregistry/api/request/TestCreateServiceRequest.java
+++ b/service-registry/registry-service-center/src/test/java/org/apache/servicecomb/serviceregistry/api/request/TestCreateServiceRequest.java
@@ -17,7 +17,7 @@
 
 package org.apache.servicecomb.serviceregistry.api.request;
 
-import org.apache.servicecomb.serviceregistry.api.registry.Microservice;
+import org.apache.servicecomb.registry.api.registry.Microservice;
 import org.junit.After;
 import org.junit.Assert;
 import org.junit.Before;
diff --git a/service-registry/registry-service-center/src/test/java/org/apache/servicecomb/serviceregistry/api/request/TestRegisterInstanceRequest.java b/service-registry/registry-service-center/src/test/java/org/apache/servicecomb/serviceregistry/api/request/TestRegisterInstanceRequest.java
index 66ecf67..6258783 100644
--- a/service-registry/registry-service-center/src/test/java/org/apache/servicecomb/serviceregistry/api/request/TestRegisterInstanceRequest.java
+++ b/service-registry/registry-service-center/src/test/java/org/apache/servicecomb/serviceregistry/api/request/TestRegisterInstanceRequest.java
@@ -17,7 +17,7 @@
 
 package org.apache.servicecomb.serviceregistry.api.request;
 
-import org.apache.servicecomb.serviceregistry.api.registry.MicroserviceInstance;
+import org.apache.servicecomb.registry.api.registry.MicroserviceInstance;
 import org.junit.After;
 import org.junit.Assert;
 import org.junit.Before;
diff --git a/service-registry/registry-service-center/src/test/java/org/apache/servicecomb/serviceregistry/api/response/TestFindInstancesResponse.java b/service-registry/registry-service-center/src/test/java/org/apache/servicecomb/serviceregistry/api/response/TestFindInstancesResponse.java
index e615fa8..94241a5 100644
--- a/service-registry/registry-service-center/src/test/java/org/apache/servicecomb/serviceregistry/api/response/TestFindInstancesResponse.java
+++ b/service-registry/registry-service-center/src/test/java/org/apache/servicecomb/serviceregistry/api/response/TestFindInstancesResponse.java
@@ -20,7 +20,8 @@ package org.apache.servicecomb.serviceregistry.api.response;
 import java.util.ArrayList;
 import java.util.List;
 
-import org.apache.servicecomb.serviceregistry.api.registry.MicroserviceInstance;
+import org.apache.servicecomb.registry.api.registry.FindInstancesResponse;
+import org.apache.servicecomb.registry.api.registry.MicroserviceInstance;
 import org.junit.After;
 import org.junit.Assert;
 import org.junit.Before;
diff --git a/service-registry/registry-service-center/src/test/java/org/apache/servicecomb/serviceregistry/api/response/TestGetAllServicesResponse.java b/service-registry/registry-service-center/src/test/java/org/apache/servicecomb/serviceregistry/api/response/TestGetAllServicesResponse.java
index 5982ebb..5ba2093 100644
--- a/service-registry/registry-service-center/src/test/java/org/apache/servicecomb/serviceregistry/api/response/TestGetAllServicesResponse.java
+++ b/service-registry/registry-service-center/src/test/java/org/apache/servicecomb/serviceregistry/api/response/TestGetAllServicesResponse.java
@@ -20,7 +20,7 @@ package org.apache.servicecomb.serviceregistry.api.response;
 import java.util.ArrayList;
 import java.util.List;
 
-import org.apache.servicecomb.serviceregistry.api.registry.Microservice;
+import org.apache.servicecomb.registry.api.registry.Microservice;
 import org.junit.After;
 import org.junit.Assert;
 import org.junit.Before;
diff --git a/service-registry/registry-service-center/src/test/java/org/apache/servicecomb/serviceregistry/api/response/TestGetInstancesResponse.java b/service-registry/registry-service-center/src/test/java/org/apache/servicecomb/serviceregistry/api/response/TestGetInstancesResponse.java
index 9daffe5..b6597ec 100644
--- a/service-registry/registry-service-center/src/test/java/org/apache/servicecomb/serviceregistry/api/response/TestGetInstancesResponse.java
+++ b/service-registry/registry-service-center/src/test/java/org/apache/servicecomb/serviceregistry/api/response/TestGetInstancesResponse.java
@@ -20,7 +20,7 @@ package org.apache.servicecomb.serviceregistry.api.response;
 import java.util.ArrayList;
 import java.util.List;
 
-import org.apache.servicecomb.serviceregistry.api.registry.MicroserviceInstance;
+import org.apache.servicecomb.registry.api.registry.MicroserviceInstance;
 import org.junit.After;
 import org.junit.Assert;
 import org.junit.Before;
diff --git a/service-registry/registry-service-center/src/test/java/org/apache/servicecomb/serviceregistry/api/response/TestGetServiceResponse.java b/service-registry/registry-service-center/src/test/java/org/apache/servicecomb/serviceregistry/api/response/TestGetServiceResponse.java
index 6e95a99..977c9df 100644
--- a/service-registry/registry-service-center/src/test/java/org/apache/servicecomb/serviceregistry/api/response/TestGetServiceResponse.java
+++ b/service-registry/registry-service-center/src/test/java/org/apache/servicecomb/serviceregistry/api/response/TestGetServiceResponse.java
@@ -17,7 +17,7 @@
 
 package org.apache.servicecomb.serviceregistry.api.response;
 
-import org.apache.servicecomb.serviceregistry.api.registry.Microservice;
+import org.apache.servicecomb.registry.api.registry.Microservice;
 import org.junit.After;
 import org.junit.Assert;
 import org.junit.Before;
diff --git a/service-registry/registry-service-center/src/test/java/org/apache/servicecomb/serviceregistry/api/response/TestMicroserviceInstanceChangedEvent.java b/service-registry/registry-service-center/src/test/java/org/apache/servicecomb/serviceregistry/api/response/TestMicroserviceInstanceChangedEvent.java
index aee342d..df9cc5a 100644
--- a/service-registry/registry-service-center/src/test/java/org/apache/servicecomb/serviceregistry/api/response/TestMicroserviceInstanceChangedEvent.java
+++ b/service-registry/registry-service-center/src/test/java/org/apache/servicecomb/serviceregistry/api/response/TestMicroserviceInstanceChangedEvent.java
@@ -17,9 +17,10 @@
 
 package org.apache.servicecomb.serviceregistry.api.response;
 
-import org.apache.servicecomb.serviceregistry.api.MicroserviceKey;
-import org.apache.servicecomb.serviceregistry.api.registry.MicroserviceInstance;
-import org.apache.servicecomb.serviceregistry.api.registry.WatchAction;
+import org.apache.servicecomb.registry.api.MicroserviceKey;
+import org.apache.servicecomb.registry.api.registry.MicroserviceInstance;
+import org.apache.servicecomb.registry.api.registry.WatchAction;
+import org.apache.servicecomb.registry.api.event.MicroserviceInstanceChangedEvent;
 import org.junit.After;
 import org.junit.Assert;
 import org.junit.Before;
diff --git a/service-registry/registry-service-center/src/test/java/org/apache/servicecomb/serviceregistry/api/response/TestMicroserviceInstanceResponse.java b/service-registry/registry-service-center/src/test/java/org/apache/servicecomb/serviceregistry/api/response/TestMicroserviceInstanceResponse.java
index 5ba56e2..edcdd51 100644
--- a/service-registry/registry-service-center/src/test/java/org/apache/servicecomb/serviceregistry/api/response/TestMicroserviceInstanceResponse.java
+++ b/service-registry/registry-service-center/src/test/java/org/apache/servicecomb/serviceregistry/api/response/TestMicroserviceInstanceResponse.java
@@ -17,7 +17,7 @@
 
 package org.apache.servicecomb.serviceregistry.api.response;
 
-import org.apache.servicecomb.serviceregistry.api.registry.MicroserviceInstance;
+import org.apache.servicecomb.registry.api.registry.MicroserviceInstance;
 import org.junit.Assert;
 import org.junit.Test;
 
diff --git a/service-registry/registry-service-center/src/test/java/org/apache/servicecomb/serviceregistry/cache/TestInstanceCache.java b/service-registry/registry-service-center/src/test/java/org/apache/servicecomb/serviceregistry/cache/TestInstanceCache.java
index cd29608..d3f50b9 100644
--- a/service-registry/registry-service-center/src/test/java/org/apache/servicecomb/serviceregistry/cache/TestInstanceCache.java
+++ b/service-registry/registry-service-center/src/test/java/org/apache/servicecomb/serviceregistry/cache/TestInstanceCache.java
@@ -23,8 +23,10 @@ import java.util.List;
 import java.util.Map;
 
 import org.apache.servicecomb.foundation.common.cache.VersionedCache;
-import org.apache.servicecomb.serviceregistry.api.registry.MicroserviceInstance;
-import org.apache.servicecomb.serviceregistry.api.registry.MicroserviceInstanceStatus;
+import org.apache.servicecomb.registry.api.registry.MicroserviceInstance;
+import org.apache.servicecomb.registry.api.registry.MicroserviceInstanceStatus;
+import org.apache.servicecomb.registry.cache.CacheEndpoint;
+import org.apache.servicecomb.registry.cache.InstanceCache;
 import org.junit.Assert;
 import org.junit.BeforeClass;
 import org.junit.Test;
diff --git a/service-registry/registry-service-center/src/test/java/org/apache/servicecomb/serviceregistry/cache/TestInstanceCacheManagerNew.java b/service-registry/registry-service-center/src/test/java/org/apache/servicecomb/serviceregistry/cache/TestInstanceCacheManagerNew.java
index a952f9a..db85897 100644
--- a/service-registry/registry-service-center/src/test/java/org/apache/servicecomb/serviceregistry/cache/TestInstanceCacheManagerNew.java
+++ b/service-registry/registry-service-center/src/test/java/org/apache/servicecomb/serviceregistry/cache/TestInstanceCacheManagerNew.java
@@ -19,10 +19,11 @@ package org.apache.servicecomb.serviceregistry.cache;
 
 import org.apache.servicecomb.config.ConfigUtil;
 import org.apache.servicecomb.foundation.test.scaffolding.config.ArchaiusUtils;
+import org.apache.servicecomb.registry.cache.InstanceCacheManagerNew;
 import org.apache.servicecomb.serviceregistry.MockMicroserviceVersions;
-import org.apache.servicecomb.serviceregistry.consumer.AppManager;
-import org.apache.servicecomb.serviceregistry.consumer.MicroserviceManager;
-import org.apache.servicecomb.serviceregistry.definition.DefinitionConst;
+import org.apache.servicecomb.registry.consumer.AppManager;
+import org.apache.servicecomb.registry.consumer.MicroserviceManager;
+import org.apache.servicecomb.registry.definition.DefinitionConst;
 import org.junit.AfterClass;
 import org.junit.Assert;
 import org.junit.Before;
diff --git a/service-registry/registry-service-center/src/test/java/org/apache/servicecomb/serviceregistry/cache/TestMicroserviceInstanceCache.java b/service-registry/registry-service-center/src/test/java/org/apache/servicecomb/serviceregistry/cache/TestMicroserviceInstanceCache.java
index acbddbc..84ebee5 100644
--- a/service-registry/registry-service-center/src/test/java/org/apache/servicecomb/serviceregistry/cache/TestMicroserviceInstanceCache.java
+++ b/service-registry/registry-service-center/src/test/java/org/apache/servicecomb/serviceregistry/cache/TestMicroserviceInstanceCache.java
@@ -19,11 +19,12 @@ package org.apache.servicecomb.serviceregistry.cache;
 
 import org.apache.servicecomb.config.ConfigUtil;
 import org.apache.servicecomb.foundation.test.scaffolding.config.ArchaiusUtils;
-import org.apache.servicecomb.serviceregistry.DiscoveryManager;
+import org.apache.servicecomb.registry.DiscoveryManager;
+import org.apache.servicecomb.registry.cache.MicroserviceInstanceCache;
 import org.apache.servicecomb.serviceregistry.RegistryUtils;
 import org.apache.servicecomb.serviceregistry.ServiceRegistry;
-import org.apache.servicecomb.serviceregistry.api.registry.Microservice;
-import org.apache.servicecomb.serviceregistry.api.registry.MicroserviceInstance;
+import org.apache.servicecomb.registry.api.registry.Microservice;
+import org.apache.servicecomb.registry.api.registry.MicroserviceInstance;
 import org.apache.servicecomb.serviceregistry.client.ServiceRegistryClient;
 import org.junit.AfterClass;
 import org.junit.Assert;
diff --git a/service-registry/registry-service-center/src/test/java/org/apache/servicecomb/serviceregistry/client/LocalServiceRegistryClientImpl.java b/service-registry/registry-service-center/src/test/java/org/apache/servicecomb/serviceregistry/client/LocalServiceRegistryClientImpl.java
index cf8963f..09bb1a5 100644
--- a/service-registry/registry-service-center/src/test/java/org/apache/servicecomb/serviceregistry/client/LocalServiceRegistryClientImpl.java
+++ b/service-registry/registry-service-center/src/test/java/org/apache/servicecomb/serviceregistry/client/LocalServiceRegistryClientImpl.java
@@ -17,7 +17,7 @@
 
 package org.apache.servicecomb.serviceregistry.client;
 
-import static org.apache.servicecomb.serviceregistry.definition.DefinitionConst.DEFAULT_APPLICATION_ID;
+import static org.apache.servicecomb.registry.definition.DefinitionConst.DEFAULT_APPLICATION_ID;
 
 import java.io.InputStream;
 import java.util.ArrayList;
@@ -32,21 +32,21 @@ import javax.ws.rs.core.Response.Status;
 
 import org.apache.commons.lang3.StringUtils;
 import org.apache.servicecomb.foundation.vertx.AsyncResultCallback;
-import org.apache.servicecomb.serviceregistry.api.registry.Microservice;
-import org.apache.servicecomb.serviceregistry.api.registry.MicroserviceInstance;
-import org.apache.servicecomb.serviceregistry.api.registry.MicroserviceInstanceStatus;
+import org.apache.servicecomb.registry.api.registry.Microservice;
+import org.apache.servicecomb.registry.api.registry.MicroserviceInstance;
+import org.apache.servicecomb.registry.api.registry.MicroserviceInstanceStatus;
 import org.apache.servicecomb.serviceregistry.api.registry.ServiceCenterConfig;
 import org.apache.servicecomb.serviceregistry.api.registry.ServiceCenterInfo;
-import org.apache.servicecomb.serviceregistry.api.response.FindInstancesResponse;
+import org.apache.servicecomb.registry.api.registry.FindInstancesResponse;
 import org.apache.servicecomb.serviceregistry.api.response.GetSchemaResponse;
 import org.apache.servicecomb.serviceregistry.api.response.HeartbeatResponse;
-import org.apache.servicecomb.serviceregistry.api.response.MicroserviceInstanceChangedEvent;
+import org.apache.servicecomb.registry.api.event.MicroserviceInstanceChangedEvent;
 import org.apache.servicecomb.serviceregistry.client.http.Holder;
-import org.apache.servicecomb.serviceregistry.client.http.MicroserviceInstances;
-import org.apache.servicecomb.serviceregistry.version.Version;
-import org.apache.servicecomb.serviceregistry.version.VersionRule;
-import org.apache.servicecomb.serviceregistry.version.VersionRuleUtils;
-import org.apache.servicecomb.serviceregistry.version.VersionUtils;
+import org.apache.servicecomb.registry.api.registry.MicroserviceInstances;
+import org.apache.servicecomb.registry.version.Version;
+import org.apache.servicecomb.registry.version.VersionRule;
+import org.apache.servicecomb.registry.version.VersionRuleUtils;
+import org.apache.servicecomb.registry.version.VersionUtils;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 import org.yaml.snakeyaml.Yaml;
diff --git a/service-registry/registry-service-center/src/test/java/org/apache/servicecomb/serviceregistry/client/LocalServiceRegistryClientImplTest.java b/service-registry/registry-service-center/src/test/java/org/apache/servicecomb/serviceregistry/client/LocalServiceRegistryClientImplTest.java
index 375f299..bcebe82 100644
--- a/service-registry/registry-service-center/src/test/java/org/apache/servicecomb/serviceregistry/client/LocalServiceRegistryClientImplTest.java
+++ b/service-registry/registry-service-center/src/test/java/org/apache/servicecomb/serviceregistry/client/LocalServiceRegistryClientImplTest.java
@@ -22,14 +22,14 @@ import static org.junit.Assert.fail;
 import java.io.InputStream;
 import java.util.List;
 
-import org.apache.servicecomb.serviceregistry.api.registry.Microservice;
-import org.apache.servicecomb.serviceregistry.api.registry.MicroserviceInstance;
-import org.apache.servicecomb.serviceregistry.api.registry.MicroserviceInstanceStatus;
+import org.apache.servicecomb.registry.api.registry.Microservice;
+import org.apache.servicecomb.registry.api.registry.MicroserviceInstance;
+import org.apache.servicecomb.registry.api.registry.MicroserviceInstanceStatus;
 import org.apache.servicecomb.serviceregistry.api.registry.ServiceCenterInfo;
 import org.apache.servicecomb.serviceregistry.api.response.GetSchemaResponse;
 import org.apache.servicecomb.serviceregistry.client.http.Holder;
-import org.apache.servicecomb.serviceregistry.client.http.MicroserviceInstances;
-import org.apache.servicecomb.serviceregistry.definition.DefinitionConst;
+import org.apache.servicecomb.registry.api.registry.MicroserviceInstances;
+import org.apache.servicecomb.registry.definition.DefinitionConst;
 import org.hamcrest.Matchers;
 import org.hamcrest.core.Is;
 import org.junit.Assert;
diff --git a/service-registry/registry-service-center/src/test/java/org/apache/servicecomb/serviceregistry/client/TestEndpoints.java b/service-registry/registry-service-center/src/test/java/org/apache/servicecomb/serviceregistry/client/TestEndpoints.java
index 97bcf66..999c1f7 100644
--- a/service-registry/registry-service-center/src/test/java/org/apache/servicecomb/serviceregistry/client/TestEndpoints.java
+++ b/service-registry/registry-service-center/src/test/java/org/apache/servicecomb/serviceregistry/client/TestEndpoints.java
@@ -19,7 +19,7 @@ package org.apache.servicecomb.serviceregistry.client;
 import java.util.ArrayList;
 import java.util.List;
 
-import org.apache.servicecomb.serviceregistry.api.registry.MicroserviceInstance;
+import org.apache.servicecomb.registry.api.registry.MicroserviceInstance;
 import org.junit.Assert;
 import org.junit.Test;
 
diff --git a/service-registry/registry-service-center/src/test/java/org/apache/servicecomb/serviceregistry/client/TestIpPortManager.java b/service-registry/registry-service-center/src/test/java/org/apache/servicecomb/serviceregistry/client/TestIpPortManager.java
index fd52e56..aa9ba90 100644
--- a/service-registry/registry-service-center/src/test/java/org/apache/servicecomb/serviceregistry/client/TestIpPortManager.java
+++ b/service-registry/registry-service-center/src/test/java/org/apache/servicecomb/serviceregistry/client/TestIpPortManager.java
@@ -25,14 +25,13 @@ import java.util.Map;
 import org.apache.servicecomb.config.ConfigUtil;
 import org.apache.servicecomb.foundation.common.net.IpPort;
 import org.apache.servicecomb.serviceregistry.RegistryUtils;
-import org.apache.servicecomb.serviceregistry.api.registry.MicroserviceInstance;
-import org.apache.servicecomb.serviceregistry.cache.CacheEndpoint;
-import org.apache.servicecomb.serviceregistry.cache.InstanceCache;
-import org.apache.servicecomb.serviceregistry.cache.InstanceCacheManager;
+import org.apache.servicecomb.registry.api.registry.MicroserviceInstance;
+import org.apache.servicecomb.registry.cache.CacheEndpoint;
+import org.apache.servicecomb.registry.cache.InstanceCache;
+import org.apache.servicecomb.registry.cache.InstanceCacheManager;
 import org.apache.servicecomb.serviceregistry.config.ServiceRegistryConfig;
 import org.apache.servicecomb.serviceregistry.registry.AbstractServiceRegistry;
 import org.apache.servicecomb.serviceregistry.registry.LocalServiceRegistryFactory;
-import org.apache.servicecomb.serviceregistry.registry.ServiceRegistryFactory;
 import org.junit.Assert;
 import org.junit.Before;
 import org.junit.Test;
diff --git a/service-registry/registry-service-center/src/test/java/org/apache/servicecomb/serviceregistry/client/http/TestClientHttp.java b/service-registry/registry-service-center/src/test/java/org/apache/servicecomb/serviceregistry/client/http/TestClientHttp.java
index bea5c61..d17c38a 100644
--- a/service-registry/registry-service-center/src/test/java/org/apache/servicecomb/serviceregistry/client/http/TestClientHttp.java
+++ b/service-registry/registry-service-center/src/test/java/org/apache/servicecomb/serviceregistry/client/http/TestClientHttp.java
@@ -22,8 +22,8 @@ import java.util.concurrent.CountDownLatch;
 import org.apache.servicecomb.foundation.common.net.IpPort;
 import org.apache.servicecomb.foundation.vertx.AsyncResultCallback;
 import org.apache.servicecomb.serviceregistry.RegistryUtils;
-import org.apache.servicecomb.serviceregistry.api.registry.Microservice;
-import org.apache.servicecomb.serviceregistry.api.registry.MicroserviceFactory;
+import org.apache.servicecomb.registry.api.registry.Microservice;
+import org.apache.servicecomb.registry.api.registry.MicroserviceFactory;
 import org.apache.servicecomb.serviceregistry.client.Endpoints;
 import org.apache.servicecomb.serviceregistry.client.IpPortManager;
 import org.apache.servicecomb.serviceregistry.config.ServiceRegistryConfig;
diff --git a/service-registry/registry-service-center/src/test/java/org/apache/servicecomb/serviceregistry/client/http/TestMicroserviceInstances.java b/service-registry/registry-service-center/src/test/java/org/apache/servicecomb/serviceregistry/client/http/TestMicroserviceInstances.java
index 1cfc30e..3ab56a7 100644
--- a/service-registry/registry-service-center/src/test/java/org/apache/servicecomb/serviceregistry/client/http/TestMicroserviceInstances.java
+++ b/service-registry/registry-service-center/src/test/java/org/apache/servicecomb/serviceregistry/client/http/TestMicroserviceInstances.java
@@ -20,8 +20,9 @@ package org.apache.servicecomb.serviceregistry.client.http;
 import java.util.ArrayList;
 import java.util.List;
 
-import org.apache.servicecomb.serviceregistry.api.registry.MicroserviceInstance;
-import org.apache.servicecomb.serviceregistry.api.response.FindInstancesResponse;
+import org.apache.servicecomb.registry.api.registry.MicroserviceInstance;
+import org.apache.servicecomb.registry.api.registry.MicroserviceInstances;
+import org.apache.servicecomb.registry.api.registry.FindInstancesResponse;
 import org.junit.After;
 import org.junit.Assert;
 import org.junit.Before;
diff --git a/service-registry/registry-service-center/src/test/java/org/apache/servicecomb/serviceregistry/client/http/TestServiceRegistryClientImpl.java b/service-registry/registry-service-center/src/test/java/org/apache/servicecomb/serviceregistry/client/http/TestServiceRegistryClientImpl.java
index d065c59..76d96bf 100644
--- a/service-registry/registry-service-center/src/test/java/org/apache/servicecomb/serviceregistry/client/http/TestServiceRegistryClientImpl.java
+++ b/service-registry/registry-service-center/src/test/java/org/apache/servicecomb/serviceregistry/client/http/TestServiceRegistryClientImpl.java
@@ -35,8 +35,9 @@ import org.apache.log4j.spi.LoggingEvent;
 import org.apache.servicecomb.foundation.common.net.IpPort;
 import org.apache.servicecomb.foundation.vertx.client.http.HttpClients;
 import org.apache.servicecomb.serviceregistry.RegistryUtils;
-import org.apache.servicecomb.serviceregistry.api.registry.Microservice;
-import org.apache.servicecomb.serviceregistry.api.registry.MicroserviceFactory;
+import org.apache.servicecomb.registry.api.registry.Microservice;
+import org.apache.servicecomb.registry.api.registry.MicroserviceFactory;
+import org.apache.servicecomb.registry.api.registry.MicroserviceInstances;
 import org.apache.servicecomb.serviceregistry.api.registry.ServiceCenterConfig;
 import org.apache.servicecomb.serviceregistry.api.registry.ServiceCenterInfo;
 import org.apache.servicecomb.serviceregistry.api.response.GetExistenceResponse;
@@ -46,7 +47,7 @@ import org.apache.servicecomb.serviceregistry.api.response.GetServiceResponse;
 import org.apache.servicecomb.serviceregistry.client.ClientException;
 import org.apache.servicecomb.serviceregistry.client.http.ServiceRegistryClientImpl.ResponseWrapper;
 import org.apache.servicecomb.serviceregistry.config.ServiceRegistryConfig;
-import org.apache.servicecomb.serviceregistry.definition.DefinitionConst;
+import org.apache.servicecomb.registry.definition.DefinitionConst;
 import org.junit.After;
 import org.junit.Assert;
 import org.junit.Before;
diff --git a/service-registry/registry-service-center/src/test/java/org/apache/servicecomb/serviceregistry/config/TestConfigurePropertyUtils.java b/service-registry/registry-service-center/src/test/java/org/apache/servicecomb/serviceregistry/config/TestConfigurePropertyUtils.java
index 05f590d..bc759be 100644
--- a/service-registry/registry-service-center/src/test/java/org/apache/servicecomb/serviceregistry/config/TestConfigurePropertyUtils.java
+++ b/service-registry/registry-service-center/src/test/java/org/apache/servicecomb/serviceregistry/config/TestConfigurePropertyUtils.java
@@ -24,8 +24,9 @@ import java.util.Map;
 import org.apache.commons.configuration.Configuration;
 import org.apache.servicecomb.config.ConfigUtil;
 import org.apache.servicecomb.foundation.common.utils.ClassLoaderScopeContext;
-import org.apache.servicecomb.serviceregistry.api.registry.BasePath;
-import org.apache.servicecomb.serviceregistry.definition.DefinitionConst;
+import org.apache.servicecomb.registry.api.registry.BasePath;
+import org.apache.servicecomb.registry.config.ConfigurePropertyUtils;
+import org.apache.servicecomb.registry.definition.DefinitionConst;
 import org.junit.Assert;
 import org.junit.Test;
 
diff --git a/service-registry/registry-service-center/src/test/java/org/apache/servicecomb/serviceregistry/config/TestPropertiesLoader.java b/service-registry/registry-service-center/src/test/java/org/apache/servicecomb/serviceregistry/config/TestPropertiesLoader.java
index 57ea2dc..aa1ca59 100644
--- a/service-registry/registry-service-center/src/test/java/org/apache/servicecomb/serviceregistry/config/TestPropertiesLoader.java
+++ b/service-registry/registry-service-center/src/test/java/org/apache/servicecomb/serviceregistry/config/TestPropertiesLoader.java
@@ -25,12 +25,13 @@ import java.util.Map;
 
 import org.apache.commons.configuration.Configuration;
 import org.apache.servicecomb.config.archaius.sources.ConfigModel;
-import org.apache.servicecomb.serviceregistry.api.registry.Microservice;
-import org.apache.servicecomb.serviceregistry.api.registry.MicroserviceFactory;
-import org.apache.servicecomb.serviceregistry.api.registry.MicroserviceInstance;
-import org.apache.servicecomb.serviceregistry.definition.MicroserviceDefinition;
+import org.apache.servicecomb.registry.api.registry.Microservice;
+import org.apache.servicecomb.registry.api.registry.MicroserviceFactory;
+import org.apache.servicecomb.registry.api.registry.MicroserviceInstance;
+import org.apache.servicecomb.registry.config.AbstractPropertiesLoader;
+import org.apache.servicecomb.registry.config.MicroservicePropertiesLoader;
+import org.apache.servicecomb.registry.definition.MicroserviceDefinition;
 import org.apache.servicecomb.serviceregistry.registry.LocalServiceRegistryFactory;
-import org.apache.servicecomb.serviceregistry.registry.ServiceRegistryFactory;
 import org.junit.Assert;
 import org.junit.Test;
 
@@ -40,11 +41,6 @@ public class TestPropertiesLoader {
   private static MicroserviceFactory microserviceFactory = new MicroserviceFactory();
 
   @Test
-  public void testMergeStrings() {
-    Assert.assertEquals("abc123efg", AbstractPropertiesLoader.mergeStrings("abc", "123", "efg"));
-  }
-
-  @Test
   public void testEmptyExtendedClass() {
     Microservice microservice = microserviceFactory.create("default", "emptyExtendedClass");
     Assert.assertEquals(0, microservice.getProperties().size());
@@ -105,18 +101,4 @@ public class TestPropertiesLoader {
     Assert.assertEquals(expectedMap, instance.getProperties());
   }
 
-  @Test
-  public void testExtendedClassCompatible() {
-    Configuration configuration = new DynamicConfiguration();
-    configuration.setProperty(CONFIG_SERVICE_DESCRIPTION_KEY + AbstractPropertiesLoader.EXTENDED_CLASS, "invalidClass");
-
-    AbstractPropertiesLoader loader = MicroservicePropertiesLoader.INSTANCE;
-    try {
-      loader.loadProperties(configuration);
-      Assert.fail("Must throw exception");
-    } catch (Error e) {
-      Assert.assertEquals(ClassNotFoundException.class, e.getCause().getClass());
-      Assert.assertEquals("invalidClass", e.getCause().getMessage());
-    }
-  }
 }
diff --git a/service-registry/registry-service-center/src/test/java/org/apache/servicecomb/serviceregistry/consumer/TestMicroserviceVersionRuleFixed.java b/service-registry/registry-service-center/src/test/java/org/apache/servicecomb/serviceregistry/consumer/TestMicroserviceVersionRuleFixed.java
index 3a00555..d38cfde 100644
--- a/service-registry/registry-service-center/src/test/java/org/apache/servicecomb/serviceregistry/consumer/TestMicroserviceVersionRuleFixed.java
+++ b/service-registry/registry-service-center/src/test/java/org/apache/servicecomb/serviceregistry/consumer/TestMicroserviceVersionRuleFixed.java
@@ -21,6 +21,7 @@ import java.util.Collections;
 
 import org.apache.servicecomb.config.ConfigUtil;
 import org.apache.servicecomb.foundation.test.scaffolding.config.ArchaiusUtils;
+import org.apache.servicecomb.registry.consumer.MicroserviceVersionRule;
 import org.apache.servicecomb.serviceregistry.MockMicroserviceVersions;
 import org.junit.AfterClass;
 import org.junit.Assert;
diff --git a/service-registry/registry-service-center/src/test/java/org/apache/servicecomb/serviceregistry/consumer/TestMicroserviceVersionRuleLatest.java b/service-registry/registry-service-center/src/test/java/org/apache/servicecomb/serviceregistry/consumer/TestMicroserviceVersionRuleLatest.java
index e7aa81b..0c12d08 100644
--- a/service-registry/registry-service-center/src/test/java/org/apache/servicecomb/serviceregistry/consumer/TestMicroserviceVersionRuleLatest.java
+++ b/service-registry/registry-service-center/src/test/java/org/apache/servicecomb/serviceregistry/consumer/TestMicroserviceVersionRuleLatest.java
@@ -21,8 +21,9 @@ import java.util.Collections;
 
 import org.apache.servicecomb.config.ConfigUtil;
 import org.apache.servicecomb.foundation.test.scaffolding.config.ArchaiusUtils;
+import org.apache.servicecomb.registry.consumer.MicroserviceVersionRule;
 import org.apache.servicecomb.serviceregistry.MockMicroserviceVersions;
-import org.apache.servicecomb.serviceregistry.definition.DefinitionConst;
+import org.apache.servicecomb.registry.definition.DefinitionConst;
 import org.junit.AfterClass;
 import org.junit.Assert;
 import org.junit.Before;
diff --git a/service-registry/registry-service-center/src/test/java/org/apache/servicecomb/serviceregistry/consumer/TestMicroserviceVersionRuleRange.java b/service-registry/registry-service-center/src/test/java/org/apache/servicecomb/serviceregistry/consumer/TestMicroserviceVersionRuleRange.java
index 2ac874f..2be059f 100644
--- a/service-registry/registry-service-center/src/test/java/org/apache/servicecomb/serviceregistry/consumer/TestMicroserviceVersionRuleRange.java
+++ b/service-registry/registry-service-center/src/test/java/org/apache/servicecomb/serviceregistry/consumer/TestMicroserviceVersionRuleRange.java
@@ -19,6 +19,7 @@ package org.apache.servicecomb.serviceregistry.consumer;
 
 import java.util.Collections;
 
+import org.apache.servicecomb.registry.consumer.MicroserviceVersionRule;
 import org.apache.servicecomb.serviceregistry.MockMicroserviceVersions;
 import org.junit.Assert;
 import org.junit.Before;
diff --git a/service-registry/registry-service-center/src/test/java/org/apache/servicecomb/serviceregistry/consumer/TestMicroserviceVersionRuleStartFrom.java b/service-registry/registry-service-center/src/test/java/org/apache/servicecomb/serviceregistry/consumer/TestMicroserviceVersionRuleStartFrom.java
index 4be182c..365b81b 100644
--- a/service-registry/registry-service-center/src/test/java/org/apache/servicecomb/serviceregistry/consumer/TestMicroserviceVersionRuleStartFrom.java
+++ b/service-registry/registry-service-center/src/test/java/org/apache/servicecomb/serviceregistry/consumer/TestMicroserviceVersionRuleStartFrom.java
@@ -19,6 +19,7 @@ package org.apache.servicecomb.serviceregistry.consumer;
 
 import java.util.Collections;
 
+import org.apache.servicecomb.registry.consumer.MicroserviceVersionRule;
 import org.apache.servicecomb.serviceregistry.MockMicroserviceVersions;
 import org.junit.Assert;
 import org.junit.Before;
diff --git a/service-registry/registry-service-center/src/test/java/org/apache/servicecomb/serviceregistry/consumer/TestSimpleMicroserviceInstancePing.java b/service-registry/registry-service-center/src/test/java/org/apache/servicecomb/serviceregistry/consumer/TestSimpleMicroserviceInstancePing.java
index f4403d8..7b046c7 100644
--- a/service-registry/registry-service-center/src/test/java/org/apache/servicecomb/serviceregistry/consumer/TestSimpleMicroserviceInstancePing.java
+++ b/service-registry/registry-service-center/src/test/java/org/apache/servicecomb/serviceregistry/consumer/TestSimpleMicroserviceInstancePing.java
@@ -22,7 +22,8 @@ import java.net.ServerSocket;
 import java.util.ArrayList;
 import java.util.List;
 
-import org.apache.servicecomb.serviceregistry.api.registry.MicroserviceInstance;
+import org.apache.servicecomb.registry.api.registry.MicroserviceInstance;
+import org.apache.servicecomb.registry.consumer.SimpleMicroserviceInstancePing;
 import org.junit.Assert;
 import org.junit.Test;
 
diff --git a/service-registry/registry-service-center/src/test/java/org/apache/servicecomb/serviceregistry/diagnosis/instance/TestInstanceCacheCheckerMock.java b/service-registry/registry-service-center/src/test/java/org/apache/servicecomb/serviceregistry/diagnosis/instance/TestInstanceCacheCheckerMock.java
index aa18085..091c949 100644
--- a/service-registry/registry-service-center/src/test/java/org/apache/servicecomb/serviceregistry/diagnosis/instance/TestInstanceCacheCheckerMock.java
+++ b/service-registry/registry-service-center/src/test/java/org/apache/servicecomb/serviceregistry/diagnosis/instance/TestInstanceCacheCheckerMock.java
@@ -22,15 +22,15 @@ import org.apache.servicecomb.config.ConfigUtil;
 import org.apache.servicecomb.foundation.common.Holder;
 import org.apache.servicecomb.foundation.common.testing.MockClock;
 import org.apache.servicecomb.foundation.test.scaffolding.config.ArchaiusUtils;
-import org.apache.servicecomb.serviceregistry.DiscoveryManager;
+import org.apache.servicecomb.registry.DiscoveryManager;
 import org.apache.servicecomb.serviceregistry.RegistryUtils;
 import org.apache.servicecomb.serviceregistry.ServiceRegistry;
-import org.apache.servicecomb.serviceregistry.api.registry.Microservice;
-import org.apache.servicecomb.serviceregistry.api.registry.MicroserviceInstance;
-import org.apache.servicecomb.serviceregistry.api.response.FindInstancesResponse;
-import org.apache.servicecomb.serviceregistry.client.http.MicroserviceInstances;
-import org.apache.servicecomb.serviceregistry.consumer.MicroserviceVersions;
-import org.apache.servicecomb.serviceregistry.definition.DefinitionConst;
+import org.apache.servicecomb.registry.api.registry.Microservice;
+import org.apache.servicecomb.registry.api.registry.MicroserviceInstance;
+import org.apache.servicecomb.registry.api.registry.FindInstancesResponse;
+import org.apache.servicecomb.registry.api.registry.MicroserviceInstances;
+import org.apache.servicecomb.registry.consumer.MicroserviceVersions;
+import org.apache.servicecomb.registry.definition.DefinitionConst;
 import org.apache.servicecomb.serviceregistry.diagnosis.Status;
 import org.apache.servicecomb.serviceregistry.registry.LocalServiceRegistryFactory;
 import org.junit.After;
diff --git a/service-registry/registry-service-center/src/test/java/org/apache/servicecomb/serviceregistry/diagnosis/instance/TestInstanceCacheCheckerWithoutMock.java b/service-registry/registry-service-center/src/test/java/org/apache/servicecomb/serviceregistry/diagnosis/instance/TestInstanceCacheCheckerWithoutMock.java
index 479f58a..098aa51 100644
--- a/service-registry/registry-service-center/src/test/java/org/apache/servicecomb/serviceregistry/diagnosis/instance/TestInstanceCacheCheckerWithoutMock.java
+++ b/service-registry/registry-service-center/src/test/java/org/apache/servicecomb/serviceregistry/diagnosis/instance/TestInstanceCacheCheckerWithoutMock.java
@@ -22,11 +22,11 @@ import org.apache.servicecomb.config.ConfigUtil;
 import org.apache.servicecomb.foundation.common.Holder;
 import org.apache.servicecomb.foundation.common.testing.MockClock;
 import org.apache.servicecomb.foundation.test.scaffolding.config.ArchaiusUtils;
-import org.apache.servicecomb.serviceregistry.DiscoveryManager;
+import org.apache.servicecomb.registry.DiscoveryManager;
 import org.apache.servicecomb.serviceregistry.RegistryUtils;
 import org.apache.servicecomb.serviceregistry.ServiceRegistry;
-import org.apache.servicecomb.serviceregistry.consumer.MicroserviceVersionRule;
-import org.apache.servicecomb.serviceregistry.definition.DefinitionConst;
+import org.apache.servicecomb.registry.consumer.MicroserviceVersionRule;
+import org.apache.servicecomb.registry.definition.DefinitionConst;
 import org.apache.servicecomb.serviceregistry.diagnosis.Status;
 import org.apache.servicecomb.serviceregistry.registry.LocalServiceRegistryFactory;
 import org.junit.After;
diff --git a/service-registry/registry-service-center/src/test/java/org/apache/servicecomb/serviceregistry/registry/EmptyMockServiceRegistry.java b/service-registry/registry-service-center/src/test/java/org/apache/servicecomb/serviceregistry/registry/EmptyMockServiceRegistry.java
index f30443b..c957907 100644
--- a/service-registry/registry-service-center/src/test/java/org/apache/servicecomb/serviceregistry/registry/EmptyMockServiceRegistry.java
+++ b/service-registry/registry-service-center/src/test/java/org/apache/servicecomb/serviceregistry/registry/EmptyMockServiceRegistry.java
@@ -22,10 +22,10 @@ import java.util.Map;
 import java.util.Set;
 
 import org.apache.servicecomb.serviceregistry.ServiceRegistry;
-import org.apache.servicecomb.serviceregistry.api.registry.Microservice;
-import org.apache.servicecomb.serviceregistry.api.registry.MicroserviceInstance;
+import org.apache.servicecomb.registry.api.registry.Microservice;
+import org.apache.servicecomb.registry.api.registry.MicroserviceInstance;
 import org.apache.servicecomb.serviceregistry.client.ServiceRegistryClient;
-import org.apache.servicecomb.serviceregistry.client.http.MicroserviceInstances;
+import org.apache.servicecomb.registry.api.registry.MicroserviceInstances;
 import org.apache.servicecomb.serviceregistry.registry.cache.MicroserviceCache;
 import org.apache.servicecomb.serviceregistry.registry.cache.MicroserviceCacheKey;
 
diff --git a/service-registry/registry-service-center/src/test/java/org/apache/servicecomb/serviceregistry/registry/LocalServiceRegistry.java b/service-registry/registry-service-center/src/test/java/org/apache/servicecomb/serviceregistry/registry/LocalServiceRegistry.java
index 0fb44ae..d40e238 100644
--- a/service-registry/registry-service-center/src/test/java/org/apache/servicecomb/serviceregistry/registry/LocalServiceRegistry.java
+++ b/service-registry/registry-service-center/src/test/java/org/apache/servicecomb/serviceregistry/registry/LocalServiceRegistry.java
@@ -19,7 +19,7 @@ package org.apache.servicecomb.serviceregistry.registry;
 import org.apache.servicecomb.serviceregistry.client.LocalServiceRegistryClientImpl;
 import org.apache.servicecomb.serviceregistry.client.ServiceRegistryClient;
 import org.apache.servicecomb.serviceregistry.config.ServiceRegistryConfig;
-import org.apache.servicecomb.serviceregistry.definition.MicroserviceDefinition;
+import org.apache.servicecomb.registry.definition.MicroserviceDefinition;
 
 import com.google.common.eventbus.EventBus;
 
diff --git a/service-registry/registry-service-center/src/test/java/org/apache/servicecomb/serviceregistry/registry/LocalServiceRegistryFactory.java b/service-registry/registry-service-center/src/test/java/org/apache/servicecomb/serviceregistry/registry/LocalServiceRegistryFactory.java
index 1fc8efd..4db0d18 100644
--- a/service-registry/registry-service-center/src/test/java/org/apache/servicecomb/serviceregistry/registry/LocalServiceRegistryFactory.java
+++ b/service-registry/registry-service-center/src/test/java/org/apache/servicecomb/serviceregistry/registry/LocalServiceRegistryFactory.java
@@ -21,7 +21,7 @@ import org.apache.servicecomb.config.archaius.sources.MicroserviceConfigLoader;
 import org.apache.servicecomb.foundation.common.event.SimpleEventBus;
 import org.apache.servicecomb.serviceregistry.ServiceRegistry;
 import org.apache.servicecomb.serviceregistry.config.ServiceRegistryConfig;
-import org.apache.servicecomb.serviceregistry.definition.MicroserviceDefinition;
+import org.apache.servicecomb.registry.definition.MicroserviceDefinition;
 
 import com.google.common.eventbus.EventBus;
 
diff --git a/service-registry/registry-service-center/src/test/java/org/apache/servicecomb/serviceregistry/registry/TestLocalServiceRegistry.java b/service-registry/registry-service-center/src/test/java/org/apache/servicecomb/serviceregistry/registry/TestLocalServiceRegistry.java
index df83ab0..3cadef2 100644
--- a/service-registry/registry-service-center/src/test/java/org/apache/servicecomb/serviceregistry/registry/TestLocalServiceRegistry.java
+++ b/service-registry/registry-service-center/src/test/java/org/apache/servicecomb/serviceregistry/registry/TestLocalServiceRegistry.java
@@ -20,7 +20,7 @@ import java.util.HashMap;
 import java.util.Map;
 
 import org.apache.servicecomb.serviceregistry.ServiceRegistry;
-import org.apache.servicecomb.serviceregistry.api.registry.Microservice;
+import org.apache.servicecomb.registry.api.registry.Microservice;
 import org.junit.Assert;
 import org.junit.Test;
 
diff --git a/service-registry/registry-service-center/src/test/java/org/apache/servicecomb/serviceregistry/registry/TestRemoteServiceRegistry.java b/service-registry/registry-service-center/src/test/java/org/apache/servicecomb/serviceregistry/registry/TestRemoteServiceRegistry.java
index b562c29..fc3a85d 100644
--- a/service-registry/registry-service-center/src/test/java/org/apache/servicecomb/serviceregistry/registry/TestRemoteServiceRegistry.java
+++ b/service-registry/registry-service-center/src/test/java/org/apache/servicecomb/serviceregistry/registry/TestRemoteServiceRegistry.java
@@ -29,8 +29,8 @@ import org.apache.servicecomb.serviceregistry.ServiceRegistry;
 import org.apache.servicecomb.serviceregistry.client.LocalServiceRegistryClientImpl;
 import org.apache.servicecomb.serviceregistry.client.ServiceRegistryClient;
 import org.apache.servicecomb.serviceregistry.config.ServiceRegistryConfig;
-import org.apache.servicecomb.serviceregistry.definition.MicroserviceDefinition;
-import org.apache.servicecomb.serviceregistry.task.event.ShutdownEvent;
+import org.apache.servicecomb.registry.definition.MicroserviceDefinition;
+import org.apache.servicecomb.registry.api.event.task.ShutdownEvent;
 import org.junit.Assert;
 import org.junit.Rule;
 import org.junit.Test;
diff --git a/service-registry/registry-service-center/src/test/java/org/apache/servicecomb/serviceregistry/registry/TestServiceRegistryFactory.java b/service-registry/registry-service-center/src/test/java/org/apache/servicecomb/serviceregistry/registry/TestServiceRegistryFactory.java
index 84907c8..b06686a 100644
--- a/service-registry/registry-service-center/src/test/java/org/apache/servicecomb/serviceregistry/registry/TestServiceRegistryFactory.java
+++ b/service-registry/registry-service-center/src/test/java/org/apache/servicecomb/serviceregistry/registry/TestServiceRegistryFactory.java
@@ -24,7 +24,7 @@ import org.apache.servicecomb.serviceregistry.client.LocalServiceRegistryClientI
 import org.apache.servicecomb.serviceregistry.client.ServiceRegistryClient;
 import org.apache.servicecomb.serviceregistry.client.http.ServiceRegistryClientImpl;
 import org.apache.servicecomb.serviceregistry.config.ServiceRegistryConfig;
-import org.apache.servicecomb.serviceregistry.definition.MicroserviceDefinition;
+import org.apache.servicecomb.registry.definition.MicroserviceDefinition;
 import org.junit.Assert;
 import org.junit.Test;
 
diff --git a/service-registry/registry-service-center/src/test/java/org/apache/servicecomb/serviceregistry/registry/cache/AggregateMicroserviceCacheTest.java b/service-registry/registry-service-center/src/test/java/org/apache/servicecomb/serviceregistry/registry/cache/AggregateMicroserviceCacheTest.java
index 9de57c8..16dcdcc 100644
--- a/service-registry/registry-service-center/src/test/java/org/apache/servicecomb/serviceregistry/registry/cache/AggregateMicroserviceCacheTest.java
+++ b/service-registry/registry-service-center/src/test/java/org/apache/servicecomb/serviceregistry/registry/cache/AggregateMicroserviceCacheTest.java
@@ -25,7 +25,7 @@ import java.util.List;
 import java.util.Map;
 
 import org.apache.servicecomb.serviceregistry.ServiceRegistry;
-import org.apache.servicecomb.serviceregistry.api.registry.MicroserviceInstance;
+import org.apache.servicecomb.registry.api.registry.MicroserviceInstance;
 import org.apache.servicecomb.serviceregistry.registry.EmptyMockServiceRegistry;
 import org.apache.servicecomb.serviceregistry.registry.cache.MicroserviceCache.MicroserviceCacheStatus;
 import org.junit.Assert;
diff --git a/service-registry/registry-service-center/src/test/java/org/apache/servicecomb/serviceregistry/registry/cache/MockedMicroserviceCache.java b/service-registry/registry-service-center/src/test/java/org/apache/servicecomb/serviceregistry/registry/cache/MockedMicroserviceCache.java
index 4d40731..90f5b8e 100644
--- a/service-registry/registry-service-center/src/test/java/org/apache/servicecomb/serviceregistry/registry/cache/MockedMicroserviceCache.java
+++ b/service-registry/registry-service-center/src/test/java/org/apache/servicecomb/serviceregistry/registry/cache/MockedMicroserviceCache.java
@@ -19,8 +19,8 @@ package org.apache.servicecomb.serviceregistry.registry.cache;
 
 import java.util.List;
 
-import org.apache.servicecomb.serviceregistry.api.registry.Microservice;
-import org.apache.servicecomb.serviceregistry.api.registry.MicroserviceInstance;
+import org.apache.servicecomb.registry.api.registry.Microservice;
+import org.apache.servicecomb.registry.api.registry.MicroserviceInstance;
 import org.apache.servicecomb.serviceregistry.client.ServiceRegistryClient;
 
 public class MockedMicroserviceCache extends RefreshableMicroserviceCache {
diff --git a/service-registry/registry-service-center/src/test/java/org/apache/servicecomb/serviceregistry/registry/cache/RefreshableMicroserviceCacheTest.java b/service-registry/registry-service-center/src/test/java/org/apache/servicecomb/serviceregistry/registry/cache/RefreshableMicroserviceCacheTest.java
index 0486e00..a278433 100644
--- a/service-registry/registry-service-center/src/test/java/org/apache/servicecomb/serviceregistry/registry/cache/RefreshableMicroserviceCacheTest.java
+++ b/service-registry/registry-service-center/src/test/java/org/apache/servicecomb/serviceregistry/registry/cache/RefreshableMicroserviceCacheTest.java
@@ -23,14 +23,14 @@ import java.util.Set;
 import java.util.function.Function;
 
 import org.apache.servicecomb.foundation.common.Holder;
-import org.apache.servicecomb.serviceregistry.api.registry.Microservice;
-import org.apache.servicecomb.serviceregistry.api.registry.MicroserviceInstance;
-import org.apache.servicecomb.serviceregistry.api.response.FindInstancesResponse;
+import org.apache.servicecomb.registry.api.registry.Microservice;
+import org.apache.servicecomb.registry.api.registry.MicroserviceInstance;
+import org.apache.servicecomb.registry.api.registry.FindInstancesResponse;
 import org.apache.servicecomb.serviceregistry.client.ServiceRegistryClient;
-import org.apache.servicecomb.serviceregistry.client.http.MicroserviceInstances;
-import org.apache.servicecomb.serviceregistry.consumer.MicroserviceInstancePing;
+import org.apache.servicecomb.registry.api.registry.MicroserviceInstances;
+import org.apache.servicecomb.registry.consumer.MicroserviceInstancePing;
 import org.apache.servicecomb.serviceregistry.registry.cache.MicroserviceCache.MicroserviceCacheStatus;
-import org.apache.servicecomb.serviceregistry.task.event.SafeModeChangeEvent;
+import org.apache.servicecomb.registry.api.event.task.SafeModeChangeEvent;
 import org.junit.Assert;
 import org.junit.Before;
 import org.junit.Test;
diff --git a/service-registry/registry-service-center/src/test/java/org/apache/servicecomb/serviceregistry/registry/cache/RefreshableServiceRegistryCacheTest.java b/service-registry/registry-service-center/src/test/java/org/apache/servicecomb/serviceregistry/registry/cache/RefreshableServiceRegistryCacheTest.java
index af6e9d3..69d80d6 100644
--- a/service-registry/registry-service-center/src/test/java/org/apache/servicecomb/serviceregistry/registry/cache/RefreshableServiceRegistryCacheTest.java
+++ b/service-registry/registry-service-center/src/test/java/org/apache/servicecomb/serviceregistry/registry/cache/RefreshableServiceRegistryCacheTest.java
@@ -23,9 +23,9 @@ import java.util.Map.Entry;
 import java.util.function.Function;
 
 import org.apache.servicecomb.foundation.common.Holder;
-import org.apache.servicecomb.serviceregistry.api.registry.Microservice;
-import org.apache.servicecomb.serviceregistry.api.response.FindInstancesResponse;
-import org.apache.servicecomb.serviceregistry.client.http.MicroserviceInstances;
+import org.apache.servicecomb.registry.api.registry.Microservice;
+import org.apache.servicecomb.registry.api.registry.FindInstancesResponse;
+import org.apache.servicecomb.registry.api.registry.MicroserviceInstances;
 import org.apache.servicecomb.serviceregistry.registry.cache.MicroserviceCache.MicroserviceCacheStatus;
 import org.junit.Assert;
 import org.junit.Before;
diff --git a/service-registry/registry-service-center/src/test/java/org/apache/servicecomb/serviceregistry/swagger/TestSwaggerLoader.java b/service-registry/registry-service-center/src/test/java/org/apache/servicecomb/serviceregistry/swagger/TestSwaggerLoader.java
index 1fe9309..9138db5 100644
--- a/service-registry/registry-service-center/src/test/java/org/apache/servicecomb/serviceregistry/swagger/TestSwaggerLoader.java
+++ b/service-registry/registry-service-center/src/test/java/org/apache/servicecomb/serviceregistry/swagger/TestSwaggerLoader.java
@@ -40,9 +40,9 @@ import org.apache.servicecomb.foundation.common.Holder;
 import org.apache.servicecomb.foundation.common.exceptions.ServiceCombException;
 import org.apache.servicecomb.foundation.common.utils.JvmUtils;
 import org.apache.servicecomb.foundation.common.utils.ResourceUtil;
-import org.apache.servicecomb.serviceregistry.RegistrationManager;
+import org.apache.servicecomb.registry.RegistrationManager;
 import org.apache.servicecomb.serviceregistry.TestRegistryBase;
-import org.apache.servicecomb.serviceregistry.api.registry.Microservice;
+import org.apache.servicecomb.registry.api.registry.Microservice;
 import org.apache.servicecomb.swagger.SwaggerUtils;
 import org.apache.servicecomb.swagger.generator.SwaggerGenerator;
 import org.junit.Assert;
diff --git a/service-registry/registry-service-center/src/test/java/org/apache/servicecomb/serviceregistry/task/TestAbstractRegisterTask.java b/service-registry/registry-service-center/src/test/java/org/apache/servicecomb/serviceregistry/task/TestAbstractRegisterTask.java
index cc5b4b2..7b1f2ed 100644
--- a/service-registry/registry-service-center/src/test/java/org/apache/servicecomb/serviceregistry/task/TestAbstractRegisterTask.java
+++ b/service-registry/registry-service-center/src/test/java/org/apache/servicecomb/serviceregistry/task/TestAbstractRegisterTask.java
@@ -17,8 +17,8 @@
 package org.apache.servicecomb.serviceregistry.task;
 
 import org.apache.servicecomb.foundation.common.utils.ReflectUtils;
-import org.apache.servicecomb.serviceregistry.api.registry.Microservice;
-import org.apache.servicecomb.serviceregistry.api.registry.MicroserviceInstance;
+import org.apache.servicecomb.registry.api.registry.Microservice;
+import org.apache.servicecomb.registry.api.registry.MicroserviceInstance;
 import org.apache.servicecomb.serviceregistry.client.ServiceRegistryClient;
 import org.junit.Assert;
 import org.junit.Before;
diff --git a/service-registry/registry-service-center/src/test/java/org/apache/servicecomb/serviceregistry/task/TestMicroserviceInstanceHeartbeatTask.java b/service-registry/registry-service-center/src/test/java/org/apache/servicecomb/serviceregistry/task/TestMicroserviceInstanceHeartbeatTask.java
index 97e1e39..6f32740 100644
--- a/service-registry/registry-service-center/src/test/java/org/apache/servicecomb/serviceregistry/task/TestMicroserviceInstanceHeartbeatTask.java
+++ b/service-registry/registry-service-center/src/test/java/org/apache/servicecomb/serviceregistry/task/TestMicroserviceInstanceHeartbeatTask.java
@@ -19,8 +19,8 @@ package org.apache.servicecomb.serviceregistry.task;
 import java.util.ArrayList;
 import java.util.List;
 
-import org.apache.servicecomb.serviceregistry.api.registry.Microservice;
-import org.apache.servicecomb.serviceregistry.api.registry.MicroserviceInstance;
+import org.apache.servicecomb.registry.api.registry.Microservice;
+import org.apache.servicecomb.registry.api.registry.MicroserviceInstance;
 import org.apache.servicecomb.serviceregistry.api.response.HeartbeatResponse;
 import org.apache.servicecomb.serviceregistry.client.ServiceRegistryClient;
 import org.apache.servicecomb.serviceregistry.config.ServiceRegistryConfig;
diff --git a/service-registry/registry-service-center/src/test/java/org/apache/servicecomb/serviceregistry/task/TestMicroserviceInstanceRegisterTask.java b/service-registry/registry-service-center/src/test/java/org/apache/servicecomb/serviceregistry/task/TestMicroserviceInstanceRegisterTask.java
index 2904a7f..9cc4785 100644
--- a/service-registry/registry-service-center/src/test/java/org/apache/servicecomb/serviceregistry/task/TestMicroserviceInstanceRegisterTask.java
+++ b/service-registry/registry-service-center/src/test/java/org/apache/servicecomb/serviceregistry/task/TestMicroserviceInstanceRegisterTask.java
@@ -21,12 +21,12 @@ import java.util.List;
 
 import org.apache.servicecomb.config.ConfigUtil;
 import org.apache.servicecomb.foundation.test.scaffolding.config.ArchaiusUtils;
-import org.apache.servicecomb.serviceregistry.RegistrationManager;
+import org.apache.servicecomb.registry.RegistrationManager;
 import org.apache.servicecomb.serviceregistry.RegistryUtils;
-import org.apache.servicecomb.serviceregistry.api.registry.HealthCheck;
-import org.apache.servicecomb.serviceregistry.api.registry.HealthCheckMode;
-import org.apache.servicecomb.serviceregistry.api.registry.Microservice;
-import org.apache.servicecomb.serviceregistry.api.registry.MicroserviceInstance;
+import org.apache.servicecomb.registry.api.registry.HealthCheck;
+import org.apache.servicecomb.registry.api.registry.HealthCheckMode;
+import org.apache.servicecomb.registry.api.registry.Microservice;
+import org.apache.servicecomb.registry.api.registry.MicroserviceInstance;
 import org.apache.servicecomb.serviceregistry.client.ServiceRegistryClient;
 import org.apache.servicecomb.serviceregistry.config.ServiceRegistryConfig;
 import org.junit.AfterClass;
diff --git a/service-registry/registry-service-center/src/test/java/org/apache/servicecomb/serviceregistry/task/TestMicroserviceRegisterTask.java b/service-registry/registry-service-center/src/test/java/org/apache/servicecomb/serviceregistry/task/TestMicroserviceRegisterTask.java
index ecac71e..e36b391 100644
--- a/service-registry/registry-service-center/src/test/java/org/apache/servicecomb/serviceregistry/task/TestMicroserviceRegisterTask.java
+++ b/service-registry/registry-service-center/src/test/java/org/apache/servicecomb/serviceregistry/task/TestMicroserviceRegisterTask.java
@@ -23,8 +23,8 @@ import java.util.stream.Collectors;
 import org.apache.log4j.spi.LoggingEvent;
 import org.apache.servicecomb.foundation.test.scaffolding.config.ArchaiusUtils;
 import org.apache.servicecomb.foundation.test.scaffolding.log.LogCollector;
-import org.apache.servicecomb.serviceregistry.api.registry.Microservice;
-import org.apache.servicecomb.serviceregistry.api.registry.MicroserviceInstance;
+import org.apache.servicecomb.registry.api.registry.Microservice;
+import org.apache.servicecomb.registry.api.registry.MicroserviceInstance;
 import org.apache.servicecomb.serviceregistry.api.response.GetSchemaResponse;
 import org.apache.servicecomb.serviceregistry.client.ServiceRegistryClient;
 import org.apache.servicecomb.serviceregistry.client.http.Holder;
diff --git a/service-registry/registry-service-center/src/test/java/org/apache/servicecomb/serviceregistry/task/TestMicroserviceWatchTask.java b/service-registry/registry-service-center/src/test/java/org/apache/servicecomb/serviceregistry/task/TestMicroserviceWatchTask.java
index 959233d..9c4b88c 100644
--- a/service-registry/registry-service-center/src/test/java/org/apache/servicecomb/serviceregistry/task/TestMicroserviceWatchTask.java
+++ b/service-registry/registry-service-center/src/test/java/org/apache/servicecomb/serviceregistry/task/TestMicroserviceWatchTask.java
@@ -19,14 +19,14 @@ package org.apache.servicecomb.serviceregistry.task;
 import org.apache.servicecomb.foundation.common.Holder;
 import org.apache.servicecomb.foundation.test.scaffolding.exception.RuntimeExceptionWithoutStackTrace;
 import org.apache.servicecomb.foundation.vertx.AsyncResultCallback;
-import org.apache.servicecomb.serviceregistry.api.MicroserviceKey;
-import org.apache.servicecomb.serviceregistry.api.registry.Microservice;
-import org.apache.servicecomb.serviceregistry.api.registry.WatchAction;
-import org.apache.servicecomb.serviceregistry.api.response.MicroserviceInstanceChangedEvent;
+import org.apache.servicecomb.registry.api.MicroserviceKey;
+import org.apache.servicecomb.registry.api.registry.Microservice;
+import org.apache.servicecomb.registry.api.registry.WatchAction;
+import org.apache.servicecomb.registry.api.event.MicroserviceInstanceChangedEvent;
 import org.apache.servicecomb.serviceregistry.client.ServiceRegistryClient;
 import org.apache.servicecomb.serviceregistry.config.ServiceRegistryConfig;
-import org.apache.servicecomb.serviceregistry.task.event.ExceptionEvent;
-import org.apache.servicecomb.serviceregistry.task.event.RecoveryEvent;
+import org.apache.servicecomb.registry.api.event.task.ExceptionEvent;
+import org.apache.servicecomb.registry.api.event.task.RecoveryEvent;
 import org.junit.Assert;
 import org.junit.Test;
 
diff --git a/service-registry/registry-service-center/src/test/java/org/apache/servicecomb/serviceregistry/task/TestServiceCenterTask.java b/service-registry/registry-service-center/src/test/java/org/apache/servicecomb/serviceregistry/task/TestServiceCenterTask.java
index c9e3121..3e25bcd 100644
--- a/service-registry/registry-service-center/src/test/java/org/apache/servicecomb/serviceregistry/task/TestServiceCenterTask.java
+++ b/service-registry/registry-service-center/src/test/java/org/apache/servicecomb/serviceregistry/task/TestServiceCenterTask.java
@@ -21,7 +21,7 @@ import java.util.EventListener;
 import org.apache.servicecomb.foundation.common.Holder;
 import org.apache.servicecomb.foundation.test.scaffolding.config.ArchaiusUtils;
 import org.apache.servicecomb.serviceregistry.config.ServiceRegistryConfig;
-import org.apache.servicecomb.serviceregistry.task.event.SafeModeChangeEvent;
+import org.apache.servicecomb.registry.api.event.task.SafeModeChangeEvent;
 import org.junit.AfterClass;
 import org.junit.Assert;
 import org.junit.Before;
diff --git a/service-registry/registry-zero-config/src/main/java/org/apache/servicecomb/zeroconfig/client/ClientUtil.java b/service-registry/registry-zero-config/src/main/java/org/apache/servicecomb/zeroconfig/client/ClientUtil.java
index c67a156..3eb0e78 100644
--- a/service-registry/registry-zero-config/src/main/java/org/apache/servicecomb/zeroconfig/client/ClientUtil.java
+++ b/service-registry/registry-zero-config/src/main/java/org/apache/servicecomb/zeroconfig/client/ClientUtil.java
@@ -16,9 +16,9 @@
  */
 package org.apache.servicecomb.zeroconfig.client;
 
-import org.apache.servicecomb.serviceregistry.api.registry.Microservice;
-import org.apache.servicecomb.serviceregistry.api.registry.MicroserviceInstance;
-import org.apache.servicecomb.serviceregistry.api.registry.MicroserviceInstanceStatus;
+import org.apache.servicecomb.registry.api.registry.Microservice;
+import org.apache.servicecomb.registry.api.registry.MicroserviceInstance;
+import org.apache.servicecomb.registry.api.registry.MicroserviceInstanceStatus;
 import org.apache.servicecomb.zeroconfig.server.ServerMicroserviceInstance;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
diff --git a/service-registry/registry-zero-config/src/main/java/org/apache/servicecomb/zeroconfig/client/ZeroConfigRegistryClientImpl.java b/service-registry/registry-zero-config/src/main/java/org/apache/servicecomb/zeroconfig/client/ZeroConfigRegistryClientImpl.java
index 7d6407b..a159213 100644
--- a/service-registry/registry-zero-config/src/main/java/org/apache/servicecomb/zeroconfig/client/ZeroConfigRegistryClientImpl.java
+++ b/service-registry/registry-zero-config/src/main/java/org/apache/servicecomb/zeroconfig/client/ZeroConfigRegistryClientImpl.java
@@ -21,25 +21,25 @@ import com.google.common.hash.Hashing;
 
 import javax.ws.rs.core.Response.Status;
 import org.apache.servicecomb.foundation.vertx.AsyncResultCallback;
-import org.apache.servicecomb.serviceregistry.api.registry.Microservice;
-import org.apache.servicecomb.serviceregistry.api.registry.MicroserviceInstance;
-import org.apache.servicecomb.serviceregistry.api.registry.MicroserviceInstanceStatus;
+import org.apache.servicecomb.registry.api.registry.Microservice;
+import org.apache.servicecomb.registry.api.registry.MicroserviceInstance;
+import org.apache.servicecomb.registry.api.registry.MicroserviceInstanceStatus;
 import org.apache.servicecomb.serviceregistry.api.registry.ServiceCenterConfig;
 import org.apache.servicecomb.serviceregistry.api.registry.ServiceCenterInfo;
-import org.apache.servicecomb.serviceregistry.api.response.FindInstancesResponse;
+import org.apache.servicecomb.registry.api.registry.FindInstancesResponse;
 import org.apache.servicecomb.serviceregistry.api.response.GetSchemaResponse;
 import org.apache.servicecomb.serviceregistry.api.response.HeartbeatResponse;
-import org.apache.servicecomb.serviceregistry.api.response.MicroserviceInstanceChangedEvent;
+import org.apache.servicecomb.registry.api.event.MicroserviceInstanceChangedEvent;
 import org.apache.servicecomb.serviceregistry.client.ServiceRegistryClient;
-import org.apache.servicecomb.serviceregistry.client.http.MicroserviceInstances;
+import org.apache.servicecomb.registry.api.registry.MicroserviceInstances;
 import org.apache.servicecomb.zeroconfig.server.ServerMicroserviceInstance;
 import org.apache.servicecomb.zeroconfig.server.ServerUtil;
 import org.apache.servicecomb.zeroconfig.server.ZeroConfigRegistryService;
 import org.apache.servicecomb.serviceregistry.client.http.Holder;
-import org.apache.servicecomb.serviceregistry.version.Version;
-import org.apache.servicecomb.serviceregistry.version.VersionRule;
-import org.apache.servicecomb.serviceregistry.version.VersionRuleUtils;
-import org.apache.servicecomb.serviceregistry.version.VersionUtils;
+import org.apache.servicecomb.registry.version.Version;
+import org.apache.servicecomb.registry.version.VersionRule;
+import org.apache.servicecomb.registry.version.VersionRuleUtils;
+import org.apache.servicecomb.registry.version.VersionUtils;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
diff --git a/service-registry/registry-zero-config/src/test/java/org/apache/servicecomb/zeroconfig/client/TestZeroConfigRegistryClientImpl.java b/service-registry/registry-zero-config/src/test/java/org/apache/servicecomb/zeroconfig/client/TestZeroConfigRegistryClientImpl.java
index 09cb18f..fce6c17 100644
--- a/service-registry/registry-zero-config/src/test/java/org/apache/servicecomb/zeroconfig/client/TestZeroConfigRegistryClientImpl.java
+++ b/service-registry/registry-zero-config/src/test/java/org/apache/servicecomb/zeroconfig/client/TestZeroConfigRegistryClientImpl.java
@@ -16,10 +16,10 @@
  */
 package org.apache.servicecomb.zeroconfig.client;
 
-import org.apache.servicecomb.serviceregistry.api.registry.MicroserviceInstance;
-import org.apache.servicecomb.serviceregistry.api.registry.MicroserviceInstanceStatus;
+import org.apache.servicecomb.registry.api.registry.MicroserviceInstance;
+import org.apache.servicecomb.registry.api.registry.MicroserviceInstanceStatus;
 import org.apache.servicecomb.serviceregistry.api.response.HeartbeatResponse;
-import org.apache.servicecomb.serviceregistry.client.http.MicroserviceInstances;
+import org.apache.servicecomb.registry.api.registry.MicroserviceInstances;
 import org.apache.servicecomb.zeroconfig.server.ServerMicroserviceInstance;
 import org.mockito.Mock;
 
@@ -32,7 +32,7 @@ import static org.mockito.Mockito.doNothing;
 import static org.mockito.Mockito.verify;
 import static org.mockito.Mockito.verifyZeroInteractions;
 
-import org.apache.servicecomb.serviceregistry.api.registry.Microservice;
+import org.apache.servicecomb.registry.api.registry.Microservice;
 import org.apache.servicecomb.zeroconfig.server.ZeroConfigRegistryService;
 import org.junit.After;
 import org.junit.Assert;
diff --git a/spring-boot/spring-boot-common/src/main/java/org/apache/servicecomb/springboot/common/AbstractDiscoveryClient.java b/spring-boot/spring-boot-common/src/main/java/org/apache/servicecomb/springboot/common/AbstractDiscoveryClient.java
index 77b0daa..881125f 100644
--- a/spring-boot/spring-boot-common/src/main/java/org/apache/servicecomb/springboot/common/AbstractDiscoveryClient.java
+++ b/spring-boot/spring-boot-common/src/main/java/org/apache/servicecomb/springboot/common/AbstractDiscoveryClient.java
@@ -25,11 +25,11 @@ import java.util.Set;
 import org.apache.servicecomb.foundation.common.cache.VersionedCache;
 import org.apache.servicecomb.foundation.common.concurrent.ConcurrentHashMapEx;
 import org.apache.servicecomb.serviceregistry.RegistryUtils;
-import org.apache.servicecomb.serviceregistry.api.registry.Microservice;
-import org.apache.servicecomb.serviceregistry.definition.DefinitionConst;
-import org.apache.servicecomb.serviceregistry.discovery.DiscoveryContext;
-import org.apache.servicecomb.serviceregistry.discovery.DiscoveryFilter;
-import org.apache.servicecomb.serviceregistry.discovery.DiscoveryTree;
+import org.apache.servicecomb.registry.api.registry.Microservice;
+import org.apache.servicecomb.registry.definition.DefinitionConst;
+import org.apache.servicecomb.registry.discovery.DiscoveryContext;
+import org.apache.servicecomb.registry.discovery.DiscoveryFilter;
+import org.apache.servicecomb.registry.discovery.DiscoveryTree;
 
 public abstract class AbstractDiscoveryClient {
 
diff --git a/spring-boot/spring-boot-common/src/main/java/org/apache/servicecomb/springboot/common/InstanceDiscoveryFilter.java b/spring-boot/spring-boot-common/src/main/java/org/apache/servicecomb/springboot/common/InstanceDiscoveryFilter.java
index c805095..befcbaf 100644
--- a/spring-boot/spring-boot-common/src/main/java/org/apache/servicecomb/springboot/common/InstanceDiscoveryFilter.java
+++ b/spring-boot/spring-boot-common/src/main/java/org/apache/servicecomb/springboot/common/InstanceDiscoveryFilter.java
@@ -21,10 +21,10 @@ import java.util.List;
 import java.util.Map;
 
 import org.apache.servicecomb.foundation.common.net.URIEndpointObject;
-import org.apache.servicecomb.serviceregistry.api.registry.MicroserviceInstance;
-import org.apache.servicecomb.serviceregistry.discovery.DiscoveryContext;
-import org.apache.servicecomb.serviceregistry.discovery.DiscoveryFilter;
-import org.apache.servicecomb.serviceregistry.discovery.DiscoveryTreeNode;
+import org.apache.servicecomb.registry.api.registry.MicroserviceInstance;
+import org.apache.servicecomb.registry.discovery.DiscoveryContext;
+import org.apache.servicecomb.registry.discovery.DiscoveryFilter;
+import org.apache.servicecomb.registry.discovery.DiscoveryTreeNode;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
diff --git a/spring-boot/spring-boot-starters/java-chassis-spring-boot-starter-discovery/src/main/java/org/apache/servicecomb/springboot2/starter/discovery/ScbRibbonEndpointDiscoveryFilter.java b/spring-boot/spring-boot-starters/java-chassis-spring-boot-starter-discovery/src/main/java/org/apache/servicecomb/springboot2/starter/discovery/ScbRibbonEndpointDiscoveryFilter.java
index 1f17df5..20b8d9f 100644
--- a/spring-boot/spring-boot-starters/java-chassis-spring-boot-starter-discovery/src/main/java/org/apache/servicecomb/springboot2/starter/discovery/ScbRibbonEndpointDiscoveryFilter.java
+++ b/spring-boot/spring-boot-starters/java-chassis-spring-boot-starter-discovery/src/main/java/org/apache/servicecomb/springboot2/starter/discovery/ScbRibbonEndpointDiscoveryFilter.java
@@ -18,10 +18,10 @@
 package org.apache.servicecomb.springboot2.starter.discovery;
 
 import org.apache.servicecomb.foundation.common.net.URIEndpointObject;
-import org.apache.servicecomb.serviceregistry.api.registry.MicroserviceInstance;
-import org.apache.servicecomb.serviceregistry.discovery.AbstractEndpointDiscoveryFilter;
-import org.apache.servicecomb.serviceregistry.discovery.DiscoveryContext;
-import org.apache.servicecomb.serviceregistry.discovery.DiscoveryTreeNode;
+import org.apache.servicecomb.registry.api.registry.MicroserviceInstance;
+import org.apache.servicecomb.registry.discovery.AbstractEndpointDiscoveryFilter;
+import org.apache.servicecomb.registry.discovery.DiscoveryContext;
+import org.apache.servicecomb.registry.discovery.DiscoveryTreeNode;
 
 import com.netflix.loadbalancer.Server;
 
diff --git a/spring-boot/spring-boot-starters/java-chassis-spring-boot-starter-discovery/src/main/java/org/apache/servicecomb/springboot2/starter/discovery/ServiceCombServerList.java b/spring-boot/spring-boot-starters/java-chassis-spring-boot-starter-discovery/src/main/java/org/apache/servicecomb/springboot2/starter/discovery/ServiceCombServerList.java
index 61ac3ea..f5c635f 100644
--- a/spring-boot/spring-boot-starters/java-chassis-spring-boot-starter-discovery/src/main/java/org/apache/servicecomb/springboot2/starter/discovery/ServiceCombServerList.java
+++ b/spring-boot/spring-boot-starters/java-chassis-spring-boot-starter-discovery/src/main/java/org/apache/servicecomb/springboot2/starter/discovery/ServiceCombServerList.java
@@ -20,9 +20,9 @@ import java.util.List;
 
 import org.apache.servicecomb.foundation.common.cache.VersionedCache;
 import org.apache.servicecomb.serviceregistry.RegistryUtils;
-import org.apache.servicecomb.serviceregistry.definition.DefinitionConst;
-import org.apache.servicecomb.serviceregistry.discovery.DiscoveryContext;
-import org.apache.servicecomb.serviceregistry.discovery.DiscoveryTree;
+import org.apache.servicecomb.registry.definition.DefinitionConst;
+import org.apache.servicecomb.registry.discovery.DiscoveryContext;
+import org.apache.servicecomb.registry.discovery.DiscoveryTree;
 
 import com.netflix.client.config.IClientConfig;
 import com.netflix.loadbalancer.AbstractServerList;
diff --git a/transports/transport-rest/transport-rest-client/src/main/java/org/apache/servicecomb/transport/rest/client/http/RestClientInvocation.java b/transports/transport-rest/transport-rest-client/src/main/java/org/apache/servicecomb/transport/rest/client/http/RestClientInvocation.java
index ef362fe..82b4648 100644
--- a/transports/transport-rest/transport-rest-client/src/main/java/org/apache/servicecomb/transport/rest/client/http/RestClientInvocation.java
+++ b/transports/transport-rest/transport-rest-client/src/main/java/org/apache/servicecomb/transport/rest/client/http/RestClientInvocation.java
@@ -41,7 +41,7 @@ import org.apache.servicecomb.foundation.vertx.http.ReadStreamPart;
 import org.apache.servicecomb.foundation.vertx.http.VertxClientRequestToHttpServletRequest;
 import org.apache.servicecomb.foundation.vertx.http.VertxClientResponseToHttpServletResponse;
 import org.apache.servicecomb.foundation.vertx.metrics.metric.DefaultHttpSocketMetric;
-import org.apache.servicecomb.serviceregistry.definition.DefinitionConst;
+import org.apache.servicecomb.registry.definition.DefinitionConst;
 import org.apache.servicecomb.swagger.invocation.AsyncResponse;
 import org.apache.servicecomb.swagger.invocation.Response;
 import org.apache.servicecomb.swagger.invocation.exception.InvocationException;
diff --git a/transports/transport-rest/transport-rest-client/src/test/java/org/apache/servicecomb/transport/rest/client/http/TestRestClientInvocation.java b/transports/transport-rest/transport-rest-client/src/test/java/org/apache/servicecomb/transport/rest/client/http/TestRestClientInvocation.java
index a88acb6..6202559 100644
--- a/transports/transport-rest/transport-rest-client/src/test/java/org/apache/servicecomb/transport/rest/client/http/TestRestClientInvocation.java
+++ b/transports/transport-rest/transport-rest-client/src/test/java/org/apache/servicecomb/transport/rest/client/http/TestRestClientInvocation.java
@@ -49,7 +49,7 @@ import org.apache.servicecomb.foundation.test.scaffolding.log.LogCollector;
 import org.apache.servicecomb.foundation.vertx.client.http.HttpClientWithContext;
 import org.apache.servicecomb.foundation.vertx.metrics.metric.DefaultEndpointMetric;
 import org.apache.servicecomb.foundation.vertx.metrics.metric.DefaultHttpSocketMetric;
-import org.apache.servicecomb.serviceregistry.definition.DefinitionConst;
+import org.apache.servicecomb.registry.definition.DefinitionConst;
 import org.apache.servicecomb.swagger.invocation.AsyncResponse;
 import org.apache.servicecomb.swagger.invocation.Response;
 import org.apache.servicecomb.swagger.invocation.exception.InvocationException;
diff --git a/transports/transport-rest/transport-rest-servlet/src/main/java/org/apache/servicecomb/transport/rest/servlet/ServletRestTransport.java b/transports/transport-rest/transport-rest-servlet/src/main/java/org/apache/servicecomb/transport/rest/servlet/ServletRestTransport.java
index da3e949..77e7a77 100644
--- a/transports/transport-rest/transport-rest-servlet/src/main/java/org/apache/servicecomb/transport/rest/servlet/ServletRestTransport.java
+++ b/transports/transport-rest/transport-rest-servlet/src/main/java/org/apache/servicecomb/transport/rest/servlet/ServletRestTransport.java
@@ -23,7 +23,7 @@ import java.util.Map;
 import org.apache.servicecomb.core.Invocation;
 import org.apache.servicecomb.core.transport.AbstractTransport;
 import org.apache.servicecomb.foundation.common.utils.ClassLoaderScopeContext;
-import org.apache.servicecomb.serviceregistry.definition.DefinitionConst;
+import org.apache.servicecomb.registry.definition.DefinitionConst;
 import org.apache.servicecomb.swagger.invocation.AsyncResponse;
 import org.apache.servicecomb.transport.rest.client.RestTransportClient;
 import org.apache.servicecomb.transport.rest.client.RestTransportClientManager;
diff --git a/transports/transport-rest/transport-rest-servlet/src/main/java/org/apache/servicecomb/transport/rest/servlet/ServletUtils.java b/transports/transport-rest/transport-rest-servlet/src/main/java/org/apache/servicecomb/transport/rest/servlet/ServletUtils.java
index d6479c8..2a4409b 100644
--- a/transports/transport-rest/transport-rest-servlet/src/main/java/org/apache/servicecomb/transport/rest/servlet/ServletUtils.java
+++ b/transports/transport-rest/transport-rest-servlet/src/main/java/org/apache/servicecomb/transport/rest/servlet/ServletUtils.java
@@ -33,7 +33,7 @@ import org.apache.servicecomb.foundation.common.exceptions.ServiceCombException;
 import org.apache.servicecomb.foundation.common.net.IpPort;
 import org.apache.servicecomb.foundation.common.net.NetUtils;
 import org.apache.servicecomb.foundation.common.utils.ClassLoaderScopeContext;
-import org.apache.servicecomb.serviceregistry.definition.DefinitionConst;
+import org.apache.servicecomb.registry.definition.DefinitionConst;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 import org.springframework.util.StringUtils;
diff --git a/transports/transport-rest/transport-rest-servlet/src/test/java/org/apache/servicecomb/transport/rest/servlet/TestServletRestTransport.java b/transports/transport-rest/transport-rest-servlet/src/test/java/org/apache/servicecomb/transport/rest/servlet/TestServletRestTransport.java
index 0fdf0d3..c9cb00c 100644
--- a/transports/transport-rest/transport-rest-servlet/src/test/java/org/apache/servicecomb/transport/rest/servlet/TestServletRestTransport.java
+++ b/transports/transport-rest/transport-rest-servlet/src/test/java/org/apache/servicecomb/transport/rest/servlet/TestServletRestTransport.java
@@ -21,7 +21,7 @@ import java.io.IOException;
 import java.net.ServerSocket;
 
 import org.apache.servicecomb.foundation.common.utils.ClassLoaderScopeContext;
-import org.apache.servicecomb.serviceregistry.definition.DefinitionConst;
+import org.apache.servicecomb.registry.definition.DefinitionConst;
 import org.apache.servicecomb.transport.rest.client.RestTransportClient;
 import org.apache.servicecomb.transport.rest.client.RestTransportClientManager;
 import org.junit.After;
diff --git a/transports/transport-rest/transport-rest-servlet/src/test/java/org/apache/servicecomb/transport/rest/servlet/TestServletUtils.java b/transports/transport-rest/transport-rest-servlet/src/test/java/org/apache/servicecomb/transport/rest/servlet/TestServletUtils.java
index 3a6abc0..04c87c3 100644
--- a/transports/transport-rest/transport-rest-servlet/src/test/java/org/apache/servicecomb/transport/rest/servlet/TestServletUtils.java
+++ b/transports/transport-rest/transport-rest-servlet/src/test/java/org/apache/servicecomb/transport/rest/servlet/TestServletUtils.java
@@ -39,7 +39,7 @@ import org.apache.servicecomb.common.rest.RestConst;
 import org.apache.servicecomb.foundation.common.exceptions.ServiceCombException;
 import org.apache.servicecomb.foundation.common.utils.ClassLoaderScopeContext;
 import org.apache.servicecomb.foundation.test.scaffolding.config.ArchaiusUtils;
-import org.apache.servicecomb.serviceregistry.definition.DefinitionConst;
+import org.apache.servicecomb.registry.definition.DefinitionConst;
 import org.hamcrest.Matchers;
 import org.junit.After;
 import org.junit.Assert;