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/14 08:00:28 UTC
[servicecomb-java-chassis] 06/09: [SCB-1876] part-6: move api to a
separate folder as config and fix ut problems
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
commit d626e3676acb3bad41db60bfbde3c3aec3b29086
Author: liubao <bi...@qq.com>
AuthorDate: Wed May 13 17:08:17 2020 +0800
[SCB-1876] part-6: move api to a separate folder as config and fix ut problems
---
common/common-rest/pom.xml | 6 +-
.../common/rest/AbstractRestInvocation.java | 2 -
.../common/rest/locator/ServicePathManager.java | 4 +-
.../common/rest/TestAbstractRestInvocation.java | 30 +--
.../common/rest/TestRestEngineSchemaListener.java | 2 +-
.../common/rest/TestRestProducerInvocation.java | 2 +-
.../rest/definition/TestRestOperationMeta.java | 2 +-
.../common/rest/locator/TestMicroservicePaths.java | 2 +-
.../rest/locator/TestServicePathManager.java | 19 +-
core/pom.xml | 4 +
.../org/apache/servicecomb/core/SCBEngine.java | 31 +--
.../servicecomb/core/bootstrap/SCBBootstrap.java | 21 +-
.../provider/producer/ProducerBootListener.java | 4 +-
.../provider/producer/ProducerProviderManager.java | 3 +-
.../core/TestCseApplicationListener.java | 12 +-
.../org/apache/servicecomb/core/TestTransport.java | 2 +-
.../core/filter/TestEndpointDiscoveryFilter.java | 2 +-
.../handler/impl/TestSimpleLoadBalanceHandler.java | 18 +-
.../core/transport/TestAbstractTransport.java | 36 +--
coverage-reports/pom.xml | 4 +
dependencies/bom/pom.xml | 5 +
distribution/pom.xml | 4 +
.../common/utils/ClassLoaderScopeContext.java | 51 +++++
.../common/net/TestURIEndpointObject.java | 5 +
.../foundation-registry}/pom.xml | 27 +--
.../servicecomb/serviceregistry/Discovery.java | 0
.../serviceregistry/DiscoveryManager.java | 13 +-
.../servicecomb/serviceregistry/LifeCycle.java | 0
.../servicecomb/serviceregistry/Registration.java | 4 +-
.../serviceregistry/RegistrationManager.java | 4 +
.../serviceregistry/api/MicroserviceKey.java | 0
.../serviceregistry/api/PropertyExtended.java | 0
.../servicecomb/serviceregistry/api/Versions.java | 0
.../serviceregistry/api/registry/BasePath.java | 0
.../api/registry/DataCenterInfo.java | 0
.../serviceregistry/api/registry/Framework.java | 0
.../api/registry/FrameworkVersions.java | 0
.../serviceregistry/api/registry/HealthCheck.java | 0
.../api/registry/HealthCheckMode.java | 0
.../serviceregistry/api/registry/Microservice.java | 0
.../api/registry/MicroserviceInstance.java | 0
.../api/registry/MicroserviceInstanceStatus.java | 0
.../api/registry/MicroserviceStatus.java | 0
.../serviceregistry/api/registry/WatchAction.java | 0
.../api/response/FindInstancesResponse.java | 0
.../response/MicroserviceInstanceChangedEvent.java | 0
.../serviceregistry/cache/CacheEndpoint.java | 0
.../serviceregistry/cache/InstanceCache.java | 0
.../cache/InstanceCacheManager.java | 0
.../cache/InstanceCacheManagerNew.java | 0
.../cache/MicroserviceInstanceCache.java | 0
.../client/http/MicroserviceInstances.java | 0
.../config/AbstractPropertiesLoader.java | 0
.../config/ConfigurePropertyUtils.java | 4 +-
.../config/InstancePropertiesLoader.java | 0
.../config/ServiceRegistryCommonConfig.java | 0
.../serviceregistry/consumer/AppManager.java | 0
.../consumer/MicroserviceInstancePing.java | 0
.../consumer/MicroserviceManager.java | 0
.../consumer/MicroserviceVersion.java | 0
.../consumer/MicroserviceVersionRule.java | 0
.../consumer/MicroserviceVersionRuleData.java | 0
.../consumer/MicroserviceVersions.java | 0
.../consumer/SimpleMicroserviceInstancePing.java | 0
.../consumer/StaticMicroserviceVersions.java | 0
.../definition/DefinitionConst.java | 0
.../definition/MicroserviceDefinition.java | 0
.../definition/MicroserviceNameParser.java | 0
.../discovery/AbstractDiscoveryFilter.java | 0
.../discovery/AbstractEndpointDiscoveryFilter.java | 0
.../discovery/DiscoveryContext.java | 0
.../serviceregistry/discovery/DiscoveryFilter.java | 0
.../serviceregistry/discovery/DiscoveryTree.java | 0
.../discovery/DiscoveryTreeNode.java | 0
.../discovery/InstanceStatusDiscoveryFilter.java | 0
.../event/CreateMicroserviceEvent.java | 0
.../event/CreateMicroserviceVersionEvent.java | 0
.../event/DestroyMicroserviceEvent.java | 0
.../event/DestroyMicroserviceVersionEvent.java | 0
.../event/MicroserviceInstanceRegisteredEvent.java | 0
.../serviceregistry/swagger/SwaggerLoader.java | 0
.../serviceregistry/task/event/ExceptionEvent.java | 0
.../task/event/HeartbeatFailEvent.java | 0
.../task/event/HeartbeatSuccEvent.java | 0
.../serviceregistry/task/event/RecoveryEvent.java | 0
.../task/event/SafeModeChangeEvent.java | 0
.../serviceregistry/task/event/ShutdownEvent.java | 0
.../serviceregistry/version/Version.java | 0
.../serviceregistry/version/VersionRule.java | 0
.../version/VersionRuleFixedParser.java | 0
.../version/VersionRuleLatestParser.java | 0
.../serviceregistry/version/VersionRuleParser.java | 0
.../version/VersionRuleRangeParser.java | 0
.../version/VersionRuleStartFromParser.java | 0
.../serviceregistry/version/VersionRuleUtils.java | 0
.../serviceregistry/version/VersionUtils.java | 0
foundations/pom.xml | 1 +
handlers/handler-loadbalance/pom.xml | 6 +-
.../loadbalance/TestLoadBalanceHandler2.java | 65 +++++-
.../loadbalance/TestLoadbalanceHandler.java | 20 +-
.../filter/TestServerDiscoveryFilter.java | 2 +-
handlers/handler-publickey-auth/pom.xml | 5 +
.../authentication/TestAuthHandlerBoot.java | 15 ++
.../TestRSAProviderTokenManager.java | 16 +-
inspector/pom.xml | 6 +-
.../inspector/internal/InspectorImpl.java | 3 +-
.../internal/TestInspectorBootListener.java | 9 +-
.../inspector/internal/TestInspectorImpl.java | 30 ++-
metrics/metrics-core/pom.xml | 6 +-
.../metrics/core/TestMetricsBootListener.java | 2 +-
.../metrics/prometheus/PrometheusPublisher.java | 2 +-
.../prometheus/TestPrometheusPublisher.java | 8 +
providers/provider-pojo/pom.xml | 5 +
.../servicecomb/provider/pojo/TestInvoker.java | 245 ++-------------------
.../pojo/reference/PojoReferenceMetaTest.java | 2 +-
.../pojo/reference/TestRpcReferenceProcessor.java | 2 +-
providers/provider-springmvc/pom.xml | 10 +
.../reference/TestCseClientHttpRequest.java | 8 +-
.../async/CseAsyncClientHttpRequestTest.java | 8 +-
service-registry/pom.xml | 2 +-
.../servicecomb/serviceregistry/RegistryUtils.java | 24 +-
.../serviceregistry/ServiceCenterRegistration.java | 5 +
.../serviceregistry/MockMicroserviceVersions.java | 16 +-
.../servicecomb/serviceregistry/TestConsumers.java | 14 +-
.../serviceregistry/TestRegistryBase.java | 1 +
.../cache/TestInstanceCacheManagerNew.java | 9 +
.../cache/TestMicroserviceInstanceCache.java | 23 +-
.../config/TestConfigurePropertyUtils.java | 10 +-
.../consumer/TestMicroserviceVersionRuleFixed.java | 9 +
.../TestMicroserviceVersionRuleLatest.java | 9 +
.../instance/TestInstanceCacheCheckerMock.java | 10 +-
.../TestInstanceCacheCheckerWithoutMock.java | 13 +-
.../task/TestMicroserviceInstanceRegisterTask.java | 28 +++
.../transport-rest/transport-rest-servlet/pom.xml | 6 +-
.../rest/servlet/ServletRestTransport.java | 4 +-
.../transport/rest/servlet/ServletUtils.java | 4 +-
.../transport/rest/servlet/TestRestServlet.java | 2 +-
.../rest/servlet/TestServletRestDispatcher.java | 2 +-
.../rest/servlet/TestServletRestTransport.java | 8 +-
.../transport/rest/servlet/TestServletUtils.java | 15 +-
.../transport-rest/transport-rest-vertx/pom.xml | 6 +-
.../rest/vertx/TestRestServerVerticle.java | 2 +-
.../rest/vertx/TestVertxRestDispatcher.java | 2 +-
143 files changed, 551 insertions(+), 472 deletions(-)
diff --git a/common/common-rest/pom.xml b/common/common-rest/pom.xml
index ef01489..ca1b28e 100644
--- a/common/common-rest/pom.xml
+++ b/common/common-rest/pom.xml
@@ -34,7 +34,11 @@
<groupId>org.apache.servicecomb</groupId>
<artifactId>java-chassis-core</artifactId>
</dependency>
-
+ <dependency>
+ <groupId>org.apache.servicecomb</groupId>
+ <artifactId>service-registry</artifactId>
+ <scope>test</scope>
+ </dependency>
<dependency>
<groupId>io.vertx</groupId>
<artifactId>vertx-codegen</artifactId>
diff --git a/common/common-rest/src/main/java/org/apache/servicecomb/common/rest/AbstractRestInvocation.java b/common/common-rest/src/main/java/org/apache/servicecomb/common/rest/AbstractRestInvocation.java
index a3ebba4..92bac2f 100644
--- a/common/common-rest/src/main/java/org/apache/servicecomb/common/rest/AbstractRestInvocation.java
+++ b/common/common-rest/src/main/java/org/apache/servicecomb/common/rest/AbstractRestInvocation.java
@@ -17,8 +17,6 @@
package org.apache.servicecomb.common.rest;
-import static org.apache.servicecomb.common.rest.codec.produce.ProduceProcessorManager.DEFAULT_SERIAL_CLASS;
-
import java.nio.charset.StandardCharsets;
import java.util.Collections;
import java.util.List;
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 372f83f..bf95427 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
@@ -21,10 +21,10 @@ import java.util.Collection;
import org.apache.servicecomb.common.rest.RestConst;
import org.apache.servicecomb.common.rest.definition.RestOperationMeta;
-import org.apache.servicecomb.core.SCBEngine;
import org.apache.servicecomb.core.definition.MicroserviceMeta;
import org.apache.servicecomb.core.definition.OperationMeta;
import org.apache.servicecomb.core.definition.SchemaMeta;
+import org.apache.servicecomb.foundation.common.utils.ClassLoaderScopeContext;
import org.apache.servicecomb.serviceregistry.definition.DefinitionConst;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@@ -102,7 +102,7 @@ public class ServicePathManager {
}
public void buildProducerPaths() {
- String urlPrefix = SCBEngine.getClassLoaderScopeProperty(DefinitionConst.URL_PREFIX);
+ String urlPrefix = ClassLoaderScopeContext.getClassLoaderScopeProperty(DefinitionConst.URL_PREFIX);
if (StringUtils.isEmpty(urlPrefix)) {
producerPaths = swaggerPaths;
producerPaths.printPaths();
diff --git a/common/common-rest/src/test/java/org/apache/servicecomb/common/rest/TestAbstractRestInvocation.java b/common/common-rest/src/test/java/org/apache/servicecomb/common/rest/TestAbstractRestInvocation.java
index 7b1bce8..8d2c5d3 100644
--- a/common/common-rest/src/test/java/org/apache/servicecomb/common/rest/TestAbstractRestInvocation.java
+++ b/common/common-rest/src/test/java/org/apache/servicecomb/common/rest/TestAbstractRestInvocation.java
@@ -40,6 +40,7 @@ import org.apache.servicecomb.common.rest.filter.HttpServerFilterBaseForTest;
import org.apache.servicecomb.common.rest.locator.OperationLocator;
import org.apache.servicecomb.common.rest.locator.ServicePathManager;
import org.apache.servicecomb.common.rest.locator.TestPathSchema;
+import org.apache.servicecomb.config.ConfigUtil;
import org.apache.servicecomb.core.Const;
import org.apache.servicecomb.core.Endpoint;
import org.apache.servicecomb.core.Handler;
@@ -55,20 +56,24 @@ import org.apache.servicecomb.core.executor.ReactiveExecutor;
import org.apache.servicecomb.core.provider.consumer.ReferenceConfig;
import org.apache.servicecomb.foundation.common.Holder;
import org.apache.servicecomb.foundation.common.event.EventManager;
+import org.apache.servicecomb.foundation.common.utils.ClassLoaderScopeContext;
import org.apache.servicecomb.foundation.common.utils.JsonUtils;
import org.apache.servicecomb.foundation.common.utils.SPIServiceUtils;
+import org.apache.servicecomb.foundation.test.scaffolding.config.ArchaiusUtils;
import org.apache.servicecomb.foundation.test.scaffolding.exception.RuntimeExceptionWithoutStackTrace;
import org.apache.servicecomb.foundation.vertx.http.AbstractHttpServletRequest;
import org.apache.servicecomb.foundation.vertx.http.AbstractHttpServletResponse;
import org.apache.servicecomb.foundation.vertx.http.HttpServletRequestEx;
import org.apache.servicecomb.foundation.vertx.http.HttpServletResponseEx;
import org.apache.servicecomb.foundation.vertx.http.StandardHttpServletResponseEx;
+import org.apache.servicecomb.serviceregistry.RegistryUtils;
import org.apache.servicecomb.swagger.invocation.Response;
import org.apache.servicecomb.swagger.invocation.context.HttpStatus;
import org.apache.servicecomb.swagger.invocation.exception.CommonExceptionData;
import org.apache.servicecomb.swagger.invocation.exception.InvocationException;
import org.apache.servicecomb.swagger.invocation.response.Headers;
import org.hamcrest.Matchers;
+import org.junit.After;
import org.junit.AfterClass;
import org.junit.Assert;
import org.junit.Before;
@@ -135,9 +140,11 @@ public class TestAbstractRestInvocation {
static long nanoTime = 123;
- @BeforeClass
- public static void classSetup() {
- scbEngine = new SCBBootstrap().useLocalRegistry().createSCBEngineForTest()
+ @Before
+ public void setup() {
+ ConfigUtil.installDynamicConfig();
+ RegistryUtils.initWithLocalRegistry();
+ scbEngine = SCBBootstrap.createSCBEngineForTest()
.addProducerMeta("sid1", new TestPathSchema())
.run();
operationMeta = scbEngine.getProducerMicroserviceMeta().operationMetas().get("test.sid1.dynamicId");
@@ -149,15 +156,7 @@ public class TestAbstractRestInvocation {
return nanoTime;
}
};
- }
- @AfterClass
- public static void classTeardown() {
- scbEngine.destroy();
- }
-
- @Before
- public void setup() {
if (responseEx == null) {
responseEx = new StandardHttpServletResponseEx(servletResponse);
}
@@ -169,6 +168,12 @@ public class TestAbstractRestInvocation {
restInvocation.setHttpServerFilters(httpServerFilters);
}
+ @After
+ public void teardown() {
+ ArchaiusUtils.resetConfig();
+ scbEngine.destroy();
+ }
+
private void initRestInvocation() {
restInvocation.produceProcessor = ProduceProcessorManager.INSTANCE.findDefaultJsonProcessor();
restInvocation.requestEx = requestEx;
@@ -1149,8 +1154,7 @@ public class TestAbstractRestInvocation {
responseBody.value = bodyBuffer.toString();
}
};
- setup();
-
+ initRestInvocation();
restInvocation.scheduleInvocation();
assertEquals(Integer.valueOf(429), status.value);
diff --git a/common/common-rest/src/test/java/org/apache/servicecomb/common/rest/TestRestEngineSchemaListener.java b/common/common-rest/src/test/java/org/apache/servicecomb/common/rest/TestRestEngineSchemaListener.java
index 7cda771..7a7be6c 100644
--- a/common/common-rest/src/test/java/org/apache/servicecomb/common/rest/TestRestEngineSchemaListener.java
+++ b/common/common-rest/src/test/java/org/apache/servicecomb/common/rest/TestRestEngineSchemaListener.java
@@ -40,7 +40,7 @@ public class TestRestEngineSchemaListener {
@BeforeClass
public static void setup() {
- scbEngine = new SCBBootstrap().useLocalRegistry().createSCBEngineForTest()
+ scbEngine = SCBBootstrap.createSCBEngineForTest()
.addProducerMeta("sid1", new TestPathSchema())
.run();
spm = ServicePathManager.getServicePathManager(scbEngine.getProducerMicroserviceMeta());
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 42108da..2b62afc 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
@@ -81,7 +81,7 @@ public class TestRestProducerInvocation {
@BeforeClass
public static void classSetup() {
- scbEngine = new SCBBootstrap().useLocalRegistry().createSCBEngineForTest()
+ scbEngine = SCBBootstrap.createSCBEngineForTest()
.addProducerMeta("sid1", new TestPathSchema())
.run();
operationMeta = scbEngine.getProducerMicroserviceMeta().operationMetas().get("test.sid1.dynamicId");
diff --git a/common/common-rest/src/test/java/org/apache/servicecomb/common/rest/definition/TestRestOperationMeta.java b/common/common-rest/src/test/java/org/apache/servicecomb/common/rest/definition/TestRestOperationMeta.java
index 830be4b..0734f98 100644
--- a/common/common-rest/src/test/java/org/apache/servicecomb/common/rest/definition/TestRestOperationMeta.java
+++ b/common/common-rest/src/test/java/org/apache/servicecomb/common/rest/definition/TestRestOperationMeta.java
@@ -159,7 +159,7 @@ public class TestRestOperationMeta {
@BeforeClass
public static void classSetup() {
- scbEngine = new SCBBootstrap().useLocalRegistry().createSCBEngineForTest()
+ scbEngine = SCBBootstrap.createSCBEngineForTest()
.addProducerMeta("sid1", new RestOperationMetaSchema())
.run();
swagger = scbEngine.getProducerMicroserviceMeta().ensureFindSchemaMeta("sid1").getSwagger();
diff --git a/common/common-rest/src/test/java/org/apache/servicecomb/common/rest/locator/TestMicroservicePaths.java b/common/common-rest/src/test/java/org/apache/servicecomb/common/rest/locator/TestMicroservicePaths.java
index 5e2416e..d0996d3 100644
--- a/common/common-rest/src/test/java/org/apache/servicecomb/common/rest/locator/TestMicroservicePaths.java
+++ b/common/common-rest/src/test/java/org/apache/servicecomb/common/rest/locator/TestMicroservicePaths.java
@@ -43,7 +43,7 @@ public class TestMicroservicePaths {
@BeforeClass
public static void setup() {
- scbEngine = new SCBBootstrap().useLocalRegistry().createSCBEngineForTest()
+ scbEngine = SCBBootstrap.createSCBEngineForTest()
.addProducerMeta("sid1", new TestPathSchema())
.run();
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 404abc4..a5a9348 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
@@ -17,22 +17,33 @@
package org.apache.servicecomb.common.rest.locator;
+import org.apache.servicecomb.config.ConfigUtil;
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.RegistryUtils;
import org.apache.servicecomb.serviceregistry.definition.DefinitionConst;
import org.junit.After;
import org.junit.Assert;
+import org.junit.Before;
import org.junit.Test;
public class TestServicePathManager {
+ @Before
+ public void setUp() {
+ ConfigUtil.installDynamicConfig();
+ RegistryUtils.initWithLocalRegistry();
+ }
@After
public void tearDown() {
- SCBEngine.clearClassLoaderScopeProperty();
+ ArchaiusUtils.resetConfig();
+ ClassLoaderScopeContext.clearClassLoaderScopeProperty();
}
@Test
public void testBuildProducerPathsNoPrefix() {
- SCBEngine scbEngine = new SCBBootstrap().useLocalRegistry().createSCBEngineForTest()
+ SCBEngine scbEngine = SCBBootstrap.createSCBEngineForTest()
.addProducerMeta("sid1", new TestPathSchema())
.run();
ServicePathManager spm = ServicePathManager.getServicePathManager(scbEngine.getProducerMicroserviceMeta());
@@ -44,9 +55,9 @@ public class TestServicePathManager {
@Test
public void testBuildProducerPathsHasPrefix() {
- SCBEngine.setClassLoaderScopeProperty(DefinitionConst.URL_PREFIX, "/root/rest");
+ ClassLoaderScopeContext.setClassLoaderScopeProperty(DefinitionConst.URL_PREFIX, "/root/rest");
- SCBEngine scbEngine = new SCBBootstrap().useLocalRegistry().createSCBEngineForTest()
+ SCBEngine scbEngine = SCBBootstrap.createSCBEngineForTest()
.addProducerMeta("sid1", new TestPathSchema())
.run();
ServicePathManager spm = ServicePathManager.getServicePathManager(scbEngine.getProducerMicroserviceMeta());
diff --git a/core/pom.xml b/core/pom.xml
index a38fa32..3290b9e 100644
--- a/core/pom.xml
+++ b/core/pom.xml
@@ -38,6 +38,10 @@
</dependency>
<dependency>
<groupId>org.apache.servicecomb</groupId>
+ <artifactId>foundation-registry</artifactId>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.servicecomb</groupId>
<artifactId>swagger-invocation-core</artifactId>
</dependency>
<dependency>
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 ff226e0..ded2504 100644
--- a/core/src/main/java/org/apache/servicecomb/core/SCBEngine.java
+++ b/core/src/main/java/org/apache/servicecomb/core/SCBEngine.java
@@ -19,9 +19,7 @@ package org.apache.servicecomb.core;
import java.util.ArrayList;
import java.util.Collection;
import java.util.Comparator;
-import java.util.HashMap;
import java.util.List;
-import java.util.Map;
import java.util.concurrent.TimeUnit;
import java.util.concurrent.TimeoutException;
import java.util.concurrent.atomic.AtomicLong;
@@ -67,7 +65,6 @@ import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.util.StringUtils;
-import com.google.common.annotations.VisibleForTesting;
import com.google.common.eventbus.AllowConcurrentEvents;
import com.google.common.eventbus.EventBus;
import com.google.common.eventbus.Subscribe;
@@ -87,18 +84,6 @@ public class SCBEngine {
private static final Object initializationLock = new Object();
- /*
- * class loader scope property is used when users run java-chassis in an class loader separated environment.
- *
- * For examples, deploy two war's to web container, or deploy two bundles in an OSGI container.
- *
- * Now java chassis not testing this feature carefully, but we will support users doing so.
- *
- * users who using this feature can feed back your problems in issues.
- *
- */
- private static final Map<String, String> CLASS_LOADER_SCOPE_CONTEXT = new HashMap<>();
-
private volatile static SCBEngine INSTANCE;
private ConsumerHandlerManager consumerHandlerManager = new ConsumerHandlerManager();
@@ -155,7 +140,7 @@ public class SCBEngine {
}
public String getAppId() {
- return DiscoveryManager.INSTANCE.getApplicationId();
+ return RegistrationManager.INSTANCE.getAppId();
}
public void setStatus(SCBStatus status) {
@@ -181,20 +166,6 @@ public class SCBEngine {
return RegistrationManager.INSTANCE.getSwaggerLoader();
}
-
- public static void setClassLoaderScopeProperty(String key, String value) {
- CLASS_LOADER_SCOPE_CONTEXT.put(key, value);
- }
-
- public static String getClassLoaderScopeProperty(String key) {
- return CLASS_LOADER_SCOPE_CONTEXT.get(key);
- }
-
- @VisibleForTesting
- public static void clearClassLoaderScopeProperty() {
- CLASS_LOADER_SCOPE_CONTEXT.clear();
- }
-
public ConsumerHandlerManager getConsumerHandlerManager() {
return consumerHandlerManager;
}
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 26b1bfa..93926c0 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
@@ -20,26 +20,7 @@ import org.apache.servicecomb.core.SCBEngine;
import org.apache.servicecomb.foundation.common.utils.BeanUtils;
public class SCBBootstrap {
- public SCBBootstrap useLocalRegistry() {
- // TODO: local registry intialization
- return this;
- }
-
- public SCBBootstrap useLocalRegistry(String localFile) {
- // TODO: local registry intialization
- return this;
- }
-
- public static SCBEngine runWithSpring() {
- BeanUtils.init();
- return SCBEngine.getInstance();
- }
-
- public SCBEngine createSCBEngine() {
- return SCBEngine.getInstance();
- }
-
- public SCBEngine createSCBEngineForTest() {
+ public static SCBEngine createSCBEngineForTest() {
return new SCBEngineForTest();
}
}
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 e663e5d..ca65112 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
@@ -24,10 +24,10 @@ import java.util.concurrent.ExecutorService;
import org.apache.commons.lang3.StringUtils;
import org.apache.servicecomb.core.BootListener;
-import org.apache.servicecomb.core.SCBEngine;
import org.apache.servicecomb.core.definition.MicroserviceMeta;
import org.apache.servicecomb.core.definition.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;
@@ -80,7 +80,7 @@ public class ProducerBootListener implements BootListener {
return;
}
- String urlPrefix = SCBEngine.getClassLoaderScopeProperty(DefinitionConst.URL_PREFIX);
+ String urlPrefix = ClassLoaderScopeContext.getClassLoaderScopeProperty(DefinitionConst.URL_PREFIX);
Map<String, BasePath> basePaths = new LinkedHashMap<>();
for (SchemaMeta schemaMeta : microserviceMeta.getSchemaMetas().values()) {
Swagger swagger = schemaMeta.getSwagger();
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 56db136..dffad2e 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
@@ -30,6 +30,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.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.swagger.engine.SwaggerProducer;
@@ -117,7 +118,7 @@ public class ProducerProviderManager {
// call REST service by the full url. e.g. restTemplate.getForObejct("cse://serviceName/root/prefix/health")
// By default, user's do not need context prefix, e.g. restTemplate.getForObejct("cse://serviceName/health")
private void registerUrlPrefixToSwagger(Swagger swagger) {
- String urlPrefix = SCBEngine.getClassLoaderScopeProperty(DefinitionConst.URL_PREFIX);
+ String urlPrefix = ClassLoaderScopeContext.getClassLoaderScopeProperty(DefinitionConst.URL_PREFIX);
if (!StringUtils.isEmpty(urlPrefix) && !swagger.getBasePath().startsWith(urlPrefix)
&& DynamicPropertyFactory.getInstance()
.getBooleanProperty(DefinitionConst.REGISTER_URL_PREFIX, false).get()) {
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 315b199..ec1a4d4 100644
--- a/core/src/test/java/org/apache/servicecomb/core/TestCseApplicationListener.java
+++ b/core/src/test/java/org/apache/servicecomb/core/TestCseApplicationListener.java
@@ -21,6 +21,9 @@ 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.junit.AfterClass;
import org.junit.Assert;
import org.junit.Before;
import org.junit.Test;
@@ -31,11 +34,18 @@ import mockit.Mocked;
public class TestCseApplicationListener {
@Before
public void before() {
+ ConfigUtil.installDynamicConfig();
+ }
+ @AfterClass
+ public static void classTeardown() {
+ DiscoveryManager.renewInstance();
+ ArchaiusUtils.resetConfig();
}
+
@Test
public void onApplicationEvent_close(@Mocked ContextClosedEvent contextClosedEvent) {
- SCBEngine scbEngine = new SCBBootstrap().useLocalRegistry().createSCBEngineForTest();
+ SCBEngine scbEngine = SCBBootstrap.createSCBEngineForTest();
scbEngine.setStatus(SCBStatus.UP);
CseApplicationListener listener = new CseApplicationListener();
diff --git a/core/src/test/java/org/apache/servicecomb/core/TestTransport.java b/core/src/test/java/org/apache/servicecomb/core/TestTransport.java
index 7f51cba..065e411 100644
--- a/core/src/test/java/org/apache/servicecomb/core/TestTransport.java
+++ b/core/src/test/java/org/apache/servicecomb/core/TestTransport.java
@@ -27,7 +27,7 @@ import org.junit.Test;
public class TestTransport {
@BeforeClass
public static void classSetup() {
- new SCBBootstrap().useLocalRegistry().createSCBEngineForTest();
+
}
@AfterClass
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 13e7d3d..ea7d64e 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
@@ -41,7 +41,7 @@ public class TestEndpointDiscoveryFilter {
@Mocked
Invocation invocation;
- SCBEngine scbEngine = new SCBBootstrap().useLocalRegistry().createSCBEngineForTest();
+ SCBEngine scbEngine = SCBBootstrap.createSCBEngineForTest();
@Before
public void setup() {
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 2f77345..0f8faac 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
@@ -21,12 +21,15 @@ import java.util.Collections;
import java.util.Map;
import java.util.concurrent.atomic.AtomicInteger;
+import org.apache.servicecomb.config.ConfigUtil;
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.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.swagger.invocation.AsyncResponse;
@@ -54,10 +57,11 @@ public class TestSimpleLoadBalanceHandler {
AsyncResponse ar = resp -> response = resp;
- SCBEngine scbEngine = new SCBBootstrap().useLocalRegistry().createSCBEngineForTest();
+ SCBEngine scbEngine = SCBBootstrap.createSCBEngineForTest();
@Before
public void setUp() throws Exception {
+ ConfigUtil.installDynamicConfig();
new Expectations(SPIServiceUtils.class) {
{
SPIServiceUtils.getSortedService(DiscoveryFilter.class);
@@ -67,6 +71,14 @@ public class TestSimpleLoadBalanceHandler {
}
};
+ new Expectations(DiscoveryManager.INSTANCE.getInstanceCacheManager()) {
+ {
+ DiscoveryManager.INSTANCE.getInstanceCacheManager()
+ .getOrCreateVersionedCache(anyString, anyString, anyString);
+ result = instanceVersionedCache;
+ }
+ };
+
handler = new SimpleLoadBalanceHandler();
indexMap = Deencapsulation.getField(handler, "indexMap");
}
@@ -74,6 +86,7 @@ public class TestSimpleLoadBalanceHandler {
@After
public void teardown() {
scbEngine.destroy();
+ ArchaiusUtils.resetConfig();
}
@Test
@@ -81,7 +94,8 @@ public class TestSimpleLoadBalanceHandler {
handler.handle(invocation, ar);
Throwable result = response.getResult();
- Assert.assertEquals("InvocationException: code=490;msg=CommonExceptionData [message=Unexpected consumer error, please check logs for details]",
+ Assert.assertEquals(
+ "InvocationException: code=490;msg=CommonExceptionData [message=Unexpected consumer error, please check logs for details]",
result.getMessage());
Assert.assertEquals("No available address found. microserviceName=null, version=null, discoveryGroupName=parent/",
result.getCause().getMessage());
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 e45705d..6ff6e68 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
@@ -24,19 +24,18 @@ import java.nio.charset.StandardCharsets;
import java.util.Collections;
import org.apache.servicecomb.core.Invocation;
-import org.apache.servicecomb.foundation.common.exceptions.ServiceCombException;
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.swagger.invocation.AsyncResponse;
-import org.junit.After;
import org.junit.AfterClass;
import org.junit.Assert;
-import org.junit.Before;
import org.junit.Test;
import org.springframework.util.ReflectionUtils;
import com.netflix.config.DynamicProperty;
+import mockit.Expectations;
import mockit.Mocked;
public class TestAbstractTransport {
@@ -65,16 +64,6 @@ public class TestAbstractTransport {
}
}
- @Before
- public void setup() {
-
- }
-
- @After
- public void teardown() {
-
- }
-
@AfterClass
public static void classTeardown() {
VertxUtils.blockCloseVertxByName("transport");
@@ -82,6 +71,11 @@ public class TestAbstractTransport {
@Test
public void testSetListenAddressWithoutSchemaChineseSpaceNewSC() throws UnsupportedEncodingException {
+ new Expectations() {
+ {
+ RegistrationManager.getPublishAddress("my", "127.0.0.1:9090");
+ }
+ };
MyAbstractTransport transport = new MyAbstractTransport();
transport.setListenAddressWithoutSchema("127.0.0.1:9090", Collections.singletonMap("country", "中 国"));
@@ -90,22 +84,6 @@ public class TestAbstractTransport {
}
@Test
- public void testSetListenAddressWithoutSchemaChineseSpaceOldSC() {
- MyAbstractTransport transport = new MyAbstractTransport();
- try {
- transport.setListenAddressWithoutSchema("127.0.0.1:9090", Collections.singletonMap("country", "中 国"));
- Assert.fail("must throw exception");
- } catch (ServiceCombException e) {
- Assert.assertEquals(
- "current service center not support encoded endpoint, please do not use chinese or space or anything need to be encoded.",
- e.getMessage());
- Assert.assertEquals(
- "Illegal character in query at index 31: rest://127.0.0.1:9090?country=中 国",
- e.getCause().getMessage());
- }
- }
-
- @Test
public void testSetListenAddressWithoutSchemaNormalNotEncode() {
MyAbstractTransport transport = new MyAbstractTransport();
transport.setListenAddressWithoutSchema("127.0.0.1:9090", Collections.singletonMap("country", "chinese"));
diff --git a/coverage-reports/pom.xml b/coverage-reports/pom.xml
index fc8336c..e1c2403 100644
--- a/coverage-reports/pom.xml
+++ b/coverage-reports/pom.xml
@@ -40,6 +40,10 @@
</dependency>
<dependency>
<groupId>org.apache.servicecomb</groupId>
+ <artifactId>foundation-registry</artifactId>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.servicecomb</groupId>
<artifactId>foundation-ssl</artifactId>
</dependency>
<dependency>
diff --git a/dependencies/bom/pom.xml b/dependencies/bom/pom.xml
index d4a8925..65596e3 100644
--- a/dependencies/bom/pom.xml
+++ b/dependencies/bom/pom.xml
@@ -150,6 +150,11 @@
</dependency>
<dependency>
<groupId>org.apache.servicecomb</groupId>
+ <artifactId>foundation-registry</artifactId>
+ <version>${project.version}</version>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.servicecomb</groupId>
<artifactId>foundation-ssl</artifactId>
<version>${project.version}</version>
</dependency>
diff --git a/distribution/pom.xml b/distribution/pom.xml
index a759d61..c438455 100644
--- a/distribution/pom.xml
+++ b/distribution/pom.xml
@@ -126,6 +126,10 @@
</dependency>
<dependency>
<groupId>org.apache.servicecomb</groupId>
+ <artifactId>foundation-registry</artifactId>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.servicecomb</groupId>
<artifactId>foundation-ssl</artifactId>
</dependency>
<dependency>
diff --git a/foundations/foundation-common/src/main/java/org/apache/servicecomb/foundation/common/utils/ClassLoaderScopeContext.java b/foundations/foundation-common/src/main/java/org/apache/servicecomb/foundation/common/utils/ClassLoaderScopeContext.java
new file mode 100644
index 0000000..c977b76
--- /dev/null
+++ b/foundations/foundation-common/src/main/java/org/apache/servicecomb/foundation/common/utils/ClassLoaderScopeContext.java
@@ -0,0 +1,51 @@
+/*
+ * 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.foundation.common.utils;
+
+import java.util.HashMap;
+import java.util.Map;
+
+import com.google.common.annotations.VisibleForTesting;
+
+/**
+* class loader scope property is used when users run java-chassis in an class loader separated environment.
+*
+* For examples, deploy two war's to web container, or deploy two bundles in an OSGI container.
+*
+* Now java chassis not testing this feature carefully, but we will support users doing so.
+*
+* users who using this feature can feed back your problems in issues.
+*
+*/
+public class ClassLoaderScopeContext {
+
+ private static final Map<String, String> CLASS_LOADER_SCOPE_CONTEXT = new HashMap<>();
+
+ public static void setClassLoaderScopeProperty(String key, String value) {
+ CLASS_LOADER_SCOPE_CONTEXT.put(key, value);
+ }
+
+ public static String getClassLoaderScopeProperty(String key) {
+ return CLASS_LOADER_SCOPE_CONTEXT.get(key);
+ }
+
+ @VisibleForTesting
+ public static void clearClassLoaderScopeProperty() {
+ CLASS_LOADER_SCOPE_CONTEXT.clear();
+ }
+}
diff --git a/foundations/foundation-common/src/test/java/org/apache/servicecomb/foundation/common/net/TestURIEndpointObject.java b/foundations/foundation-common/src/test/java/org/apache/servicecomb/foundation/common/net/TestURIEndpointObject.java
index 5f7f4d4..973414e 100644
--- a/foundations/foundation-common/src/test/java/org/apache/servicecomb/foundation/common/net/TestURIEndpointObject.java
+++ b/foundations/foundation-common/src/test/java/org/apache/servicecomb/foundation/common/net/TestURIEndpointObject.java
@@ -48,6 +48,11 @@ public class TestURIEndpointObject {
Assert.assertTrue(obj.isSslEnabled());
Assert.assertTrue(obj.isHttp2Enabled());
Assert.assertNull(obj.getFirst("notExist"));
+
+ obj = new URIEndpointObject("rest://127.0.2.0:8080?urlPrefix=%2Froot");
+ Assert.assertEquals("127.0.2.0", obj.getHostOrIp());
+ Assert.assertEquals(8080, obj.getPort());
+ Assert.assertEquals("/root", obj.getQuery("urlPrefix").get(0));
}
@Test(expected = IllegalArgumentException.class)
diff --git a/providers/provider-pojo/pom.xml b/foundations/foundation-registry/pom.xml
similarity index 73%
copy from providers/provider-pojo/pom.xml
copy to foundations/foundation-registry/pom.xml
index 6f62447..bceaaa4 100644
--- a/providers/provider-pojo/pom.xml
+++ b/foundations/foundation-registry/pom.xml
@@ -1,3 +1,4 @@
+<?xml version="1.0" encoding="UTF-8"?>
<!--
~ Licensed to the Apache Software Foundation (ASF) under one or more
~ contributor license agreements. See the NOTICE file distributed with
@@ -17,32 +18,26 @@
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
- <modelVersion>4.0.0</modelVersion>
<parent>
+ <artifactId>foundations</artifactId>
<groupId>org.apache.servicecomb</groupId>
- <artifactId>providers</artifactId>
<version>2.1.0-SNAPSHOT</version>
</parent>
- <artifactId>provider-pojo</artifactId>
- <name>Java Chassis::Providers::POJO</name>
+ <modelVersion>4.0.0</modelVersion>
+
+ <properties>
+ </properties>
+
+ <artifactId>foundation-registry</artifactId>
+ <name>Java Chassis::Foundations::Registry</name>
<dependencies>
<dependency>
<groupId>org.apache.servicecomb</groupId>
- <artifactId>java-chassis-core</artifactId>
- </dependency>
- <dependency>
- <groupId>org.slf4j</groupId>
- <artifactId>slf4j-log4j12</artifactId>
- <scope>test</scope>
- </dependency>
- <dependency>
- <groupId>log4j</groupId>
- <artifactId>log4j</artifactId>
- <scope>test</scope>
+ <artifactId>foundation-config</artifactId>
</dependency>
<dependency>
<groupId>org.apache.servicecomb</groupId>
- <artifactId>foundation-test-scaffolding</artifactId>
+ <artifactId>swagger-invocation-core</artifactId>
</dependency>
</dependencies>
</project>
diff --git a/core/src/main/java/org/apache/servicecomb/serviceregistry/Discovery.java b/foundations/foundation-registry/src/main/java/org/apache/servicecomb/serviceregistry/Discovery.java
similarity index 100%
rename from core/src/main/java/org/apache/servicecomb/serviceregistry/Discovery.java
rename to foundations/foundation-registry/src/main/java/org/apache/servicecomb/serviceregistry/Discovery.java
diff --git a/core/src/main/java/org/apache/servicecomb/serviceregistry/DiscoveryManager.java b/foundations/foundation-registry/src/main/java/org/apache/servicecomb/serviceregistry/DiscoveryManager.java
similarity index 95%
rename from core/src/main/java/org/apache/servicecomb/serviceregistry/DiscoveryManager.java
rename to foundations/foundation-registry/src/main/java/org/apache/servicecomb/serviceregistry/DiscoveryManager.java
index 39a0009..b6804f6 100644
--- a/core/src/main/java/org/apache/servicecomb/serviceregistry/DiscoveryManager.java
+++ b/foundations/foundation-registry/src/main/java/org/apache/servicecomb/serviceregistry/DiscoveryManager.java
@@ -31,6 +31,8 @@ import org.apache.servicecomb.serviceregistry.consumer.AppManager;
import org.apache.servicecomb.serviceregistry.consumer.MicroserviceVersions;
import org.apache.servicecomb.serviceregistry.definition.MicroserviceDefinition;
+import com.google.common.annotations.VisibleForTesting;
+
public class DiscoveryManager {
public static DiscoveryManager INSTANCE = new DiscoveryManager();
@@ -42,7 +44,7 @@ public class DiscoveryManager {
private final MicroserviceDefinition microserviceDefinition;
- public DiscoveryManager() {
+ private DiscoveryManager() {
appManager = new AppManager();
instanceCacheManager = new InstanceCacheManagerNew(appManager);
discoveryList = SPIServiceUtils.getOrLoadSortedService(Discovery.class);
@@ -51,6 +53,11 @@ public class DiscoveryManager {
microserviceDefinition = new MicroserviceDefinition(loader.getConfigModels());
}
+ @VisibleForTesting
+ public static void renewInstance() {
+ DiscoveryManager.INSTANCE = new DiscoveryManager();
+ }
+
public MicroserviceInstances findServiceInstances(String appId, String serviceName,
String versionRule) {
MicroserviceInstances result = new MicroserviceInstances();
@@ -107,10 +114,6 @@ public class DiscoveryManager {
return appManager.getOrCreateMicroserviceVersions(appId, microserviceName);
}
- public String getApplicationId() {
- return microserviceDefinition.getApplicationId();
- }
-
public void destroy() {
discoveryList.forEach(discovery -> discovery.destroy());
}
diff --git a/core/src/main/java/org/apache/servicecomb/serviceregistry/LifeCycle.java b/foundations/foundation-registry/src/main/java/org/apache/servicecomb/serviceregistry/LifeCycle.java
similarity index 100%
rename from core/src/main/java/org/apache/servicecomb/serviceregistry/LifeCycle.java
rename to foundations/foundation-registry/src/main/java/org/apache/servicecomb/serviceregistry/LifeCycle.java
diff --git a/core/src/main/java/org/apache/servicecomb/serviceregistry/Registration.java b/foundations/foundation-registry/src/main/java/org/apache/servicecomb/serviceregistry/Registration.java
similarity index 98%
rename from core/src/main/java/org/apache/servicecomb/serviceregistry/Registration.java
rename to foundations/foundation-registry/src/main/java/org/apache/servicecomb/serviceregistry/Registration.java
index 7a17916..a860d8d 100644
--- a/core/src/main/java/org/apache/servicecomb/serviceregistry/Registration.java
+++ b/foundations/foundation-registry/src/main/java/org/apache/servicecomb/serviceregistry/Registration.java
@@ -27,11 +27,13 @@ import org.apache.servicecomb.serviceregistry.api.registry.MicroserviceInstanceS
public interface Registration extends SPIOrder, LifeCycle {
String name();
-
+
MicroserviceInstance getMicroserviceInstance();
Microservice getMicroservice();
+ String getAppId();
+
boolean updateMicroserviceInstanceStatus(MicroserviceInstanceStatus status);
void addSchema(String schemaId, String content);
diff --git a/core/src/main/java/org/apache/servicecomb/serviceregistry/RegistrationManager.java b/foundations/foundation-registry/src/main/java/org/apache/servicecomb/serviceregistry/RegistrationManager.java
similarity index 99%
rename from core/src/main/java/org/apache/servicecomb/serviceregistry/RegistrationManager.java
rename to foundations/foundation-registry/src/main/java/org/apache/servicecomb/serviceregistry/RegistrationManager.java
index b89add2..3309568 100644
--- a/core/src/main/java/org/apache/servicecomb/serviceregistry/RegistrationManager.java
+++ b/foundations/foundation-registry/src/main/java/org/apache/servicecomb/serviceregistry/RegistrationManager.java
@@ -61,6 +61,10 @@ public class RegistrationManager {
return primary.getMicroservice();
}
+ public String getAppId() {
+ return primary.getAppId();
+ }
+
public SwaggerLoader getSwaggerLoader() {
return swaggerLoader;
}
diff --git a/core/src/main/java/org/apache/servicecomb/serviceregistry/api/MicroserviceKey.java b/foundations/foundation-registry/src/main/java/org/apache/servicecomb/serviceregistry/api/MicroserviceKey.java
similarity index 100%
rename from core/src/main/java/org/apache/servicecomb/serviceregistry/api/MicroserviceKey.java
rename to foundations/foundation-registry/src/main/java/org/apache/servicecomb/serviceregistry/api/MicroserviceKey.java
diff --git a/core/src/main/java/org/apache/servicecomb/serviceregistry/api/PropertyExtended.java b/foundations/foundation-registry/src/main/java/org/apache/servicecomb/serviceregistry/api/PropertyExtended.java
similarity index 100%
rename from core/src/main/java/org/apache/servicecomb/serviceregistry/api/PropertyExtended.java
rename to foundations/foundation-registry/src/main/java/org/apache/servicecomb/serviceregistry/api/PropertyExtended.java
diff --git a/core/src/main/java/org/apache/servicecomb/serviceregistry/api/Versions.java b/foundations/foundation-registry/src/main/java/org/apache/servicecomb/serviceregistry/api/Versions.java
similarity index 100%
rename from core/src/main/java/org/apache/servicecomb/serviceregistry/api/Versions.java
rename to foundations/foundation-registry/src/main/java/org/apache/servicecomb/serviceregistry/api/Versions.java
diff --git a/core/src/main/java/org/apache/servicecomb/serviceregistry/api/registry/BasePath.java b/foundations/foundation-registry/src/main/java/org/apache/servicecomb/serviceregistry/api/registry/BasePath.java
similarity index 100%
rename from core/src/main/java/org/apache/servicecomb/serviceregistry/api/registry/BasePath.java
rename to foundations/foundation-registry/src/main/java/org/apache/servicecomb/serviceregistry/api/registry/BasePath.java
diff --git a/core/src/main/java/org/apache/servicecomb/serviceregistry/api/registry/DataCenterInfo.java b/foundations/foundation-registry/src/main/java/org/apache/servicecomb/serviceregistry/api/registry/DataCenterInfo.java
similarity index 100%
rename from core/src/main/java/org/apache/servicecomb/serviceregistry/api/registry/DataCenterInfo.java
rename to foundations/foundation-registry/src/main/java/org/apache/servicecomb/serviceregistry/api/registry/DataCenterInfo.java
diff --git a/core/src/main/java/org/apache/servicecomb/serviceregistry/api/registry/Framework.java b/foundations/foundation-registry/src/main/java/org/apache/servicecomb/serviceregistry/api/registry/Framework.java
similarity index 100%
rename from core/src/main/java/org/apache/servicecomb/serviceregistry/api/registry/Framework.java
rename to foundations/foundation-registry/src/main/java/org/apache/servicecomb/serviceregistry/api/registry/Framework.java
diff --git a/core/src/main/java/org/apache/servicecomb/serviceregistry/api/registry/FrameworkVersions.java b/foundations/foundation-registry/src/main/java/org/apache/servicecomb/serviceregistry/api/registry/FrameworkVersions.java
similarity index 100%
rename from core/src/main/java/org/apache/servicecomb/serviceregistry/api/registry/FrameworkVersions.java
rename to foundations/foundation-registry/src/main/java/org/apache/servicecomb/serviceregistry/api/registry/FrameworkVersions.java
diff --git a/core/src/main/java/org/apache/servicecomb/serviceregistry/api/registry/HealthCheck.java b/foundations/foundation-registry/src/main/java/org/apache/servicecomb/serviceregistry/api/registry/HealthCheck.java
similarity index 100%
rename from core/src/main/java/org/apache/servicecomb/serviceregistry/api/registry/HealthCheck.java
rename to foundations/foundation-registry/src/main/java/org/apache/servicecomb/serviceregistry/api/registry/HealthCheck.java
diff --git a/core/src/main/java/org/apache/servicecomb/serviceregistry/api/registry/HealthCheckMode.java b/foundations/foundation-registry/src/main/java/org/apache/servicecomb/serviceregistry/api/registry/HealthCheckMode.java
similarity index 100%
rename from core/src/main/java/org/apache/servicecomb/serviceregistry/api/registry/HealthCheckMode.java
rename to foundations/foundation-registry/src/main/java/org/apache/servicecomb/serviceregistry/api/registry/HealthCheckMode.java
diff --git a/core/src/main/java/org/apache/servicecomb/serviceregistry/api/registry/Microservice.java b/foundations/foundation-registry/src/main/java/org/apache/servicecomb/serviceregistry/api/registry/Microservice.java
similarity index 100%
rename from core/src/main/java/org/apache/servicecomb/serviceregistry/api/registry/Microservice.java
rename to foundations/foundation-registry/src/main/java/org/apache/servicecomb/serviceregistry/api/registry/Microservice.java
diff --git a/core/src/main/java/org/apache/servicecomb/serviceregistry/api/registry/MicroserviceInstance.java b/foundations/foundation-registry/src/main/java/org/apache/servicecomb/serviceregistry/api/registry/MicroserviceInstance.java
similarity index 100%
rename from core/src/main/java/org/apache/servicecomb/serviceregistry/api/registry/MicroserviceInstance.java
rename to foundations/foundation-registry/src/main/java/org/apache/servicecomb/serviceregistry/api/registry/MicroserviceInstance.java
diff --git a/core/src/main/java/org/apache/servicecomb/serviceregistry/api/registry/MicroserviceInstanceStatus.java b/foundations/foundation-registry/src/main/java/org/apache/servicecomb/serviceregistry/api/registry/MicroserviceInstanceStatus.java
similarity index 100%
rename from core/src/main/java/org/apache/servicecomb/serviceregistry/api/registry/MicroserviceInstanceStatus.java
rename to foundations/foundation-registry/src/main/java/org/apache/servicecomb/serviceregistry/api/registry/MicroserviceInstanceStatus.java
diff --git a/core/src/main/java/org/apache/servicecomb/serviceregistry/api/registry/MicroserviceStatus.java b/foundations/foundation-registry/src/main/java/org/apache/servicecomb/serviceregistry/api/registry/MicroserviceStatus.java
similarity index 100%
rename from core/src/main/java/org/apache/servicecomb/serviceregistry/api/registry/MicroserviceStatus.java
rename to foundations/foundation-registry/src/main/java/org/apache/servicecomb/serviceregistry/api/registry/MicroserviceStatus.java
diff --git a/core/src/main/java/org/apache/servicecomb/serviceregistry/api/registry/WatchAction.java b/foundations/foundation-registry/src/main/java/org/apache/servicecomb/serviceregistry/api/registry/WatchAction.java
similarity index 100%
rename from core/src/main/java/org/apache/servicecomb/serviceregistry/api/registry/WatchAction.java
rename to foundations/foundation-registry/src/main/java/org/apache/servicecomb/serviceregistry/api/registry/WatchAction.java
diff --git a/core/src/main/java/org/apache/servicecomb/serviceregistry/api/response/FindInstancesResponse.java b/foundations/foundation-registry/src/main/java/org/apache/servicecomb/serviceregistry/api/response/FindInstancesResponse.java
similarity index 100%
rename from core/src/main/java/org/apache/servicecomb/serviceregistry/api/response/FindInstancesResponse.java
rename to foundations/foundation-registry/src/main/java/org/apache/servicecomb/serviceregistry/api/response/FindInstancesResponse.java
diff --git a/core/src/main/java/org/apache/servicecomb/serviceregistry/api/response/MicroserviceInstanceChangedEvent.java b/foundations/foundation-registry/src/main/java/org/apache/servicecomb/serviceregistry/api/response/MicroserviceInstanceChangedEvent.java
similarity index 100%
rename from core/src/main/java/org/apache/servicecomb/serviceregistry/api/response/MicroserviceInstanceChangedEvent.java
rename to foundations/foundation-registry/src/main/java/org/apache/servicecomb/serviceregistry/api/response/MicroserviceInstanceChangedEvent.java
diff --git a/core/src/main/java/org/apache/servicecomb/serviceregistry/cache/CacheEndpoint.java b/foundations/foundation-registry/src/main/java/org/apache/servicecomb/serviceregistry/cache/CacheEndpoint.java
similarity index 100%
rename from core/src/main/java/org/apache/servicecomb/serviceregistry/cache/CacheEndpoint.java
rename to foundations/foundation-registry/src/main/java/org/apache/servicecomb/serviceregistry/cache/CacheEndpoint.java
diff --git a/core/src/main/java/org/apache/servicecomb/serviceregistry/cache/InstanceCache.java b/foundations/foundation-registry/src/main/java/org/apache/servicecomb/serviceregistry/cache/InstanceCache.java
similarity index 100%
rename from core/src/main/java/org/apache/servicecomb/serviceregistry/cache/InstanceCache.java
rename to foundations/foundation-registry/src/main/java/org/apache/servicecomb/serviceregistry/cache/InstanceCache.java
diff --git a/core/src/main/java/org/apache/servicecomb/serviceregistry/cache/InstanceCacheManager.java b/foundations/foundation-registry/src/main/java/org/apache/servicecomb/serviceregistry/cache/InstanceCacheManager.java
similarity index 100%
rename from core/src/main/java/org/apache/servicecomb/serviceregistry/cache/InstanceCacheManager.java
rename to foundations/foundation-registry/src/main/java/org/apache/servicecomb/serviceregistry/cache/InstanceCacheManager.java
diff --git a/core/src/main/java/org/apache/servicecomb/serviceregistry/cache/InstanceCacheManagerNew.java b/foundations/foundation-registry/src/main/java/org/apache/servicecomb/serviceregistry/cache/InstanceCacheManagerNew.java
similarity index 100%
rename from core/src/main/java/org/apache/servicecomb/serviceregistry/cache/InstanceCacheManagerNew.java
rename to foundations/foundation-registry/src/main/java/org/apache/servicecomb/serviceregistry/cache/InstanceCacheManagerNew.java
diff --git a/core/src/main/java/org/apache/servicecomb/serviceregistry/cache/MicroserviceInstanceCache.java b/foundations/foundation-registry/src/main/java/org/apache/servicecomb/serviceregistry/cache/MicroserviceInstanceCache.java
similarity index 100%
rename from core/src/main/java/org/apache/servicecomb/serviceregistry/cache/MicroserviceInstanceCache.java
rename to foundations/foundation-registry/src/main/java/org/apache/servicecomb/serviceregistry/cache/MicroserviceInstanceCache.java
diff --git a/core/src/main/java/org/apache/servicecomb/serviceregistry/client/http/MicroserviceInstances.java b/foundations/foundation-registry/src/main/java/org/apache/servicecomb/serviceregistry/client/http/MicroserviceInstances.java
similarity index 100%
rename from core/src/main/java/org/apache/servicecomb/serviceregistry/client/http/MicroserviceInstances.java
rename to foundations/foundation-registry/src/main/java/org/apache/servicecomb/serviceregistry/client/http/MicroserviceInstances.java
diff --git a/core/src/main/java/org/apache/servicecomb/serviceregistry/config/AbstractPropertiesLoader.java b/foundations/foundation-registry/src/main/java/org/apache/servicecomb/serviceregistry/config/AbstractPropertiesLoader.java
similarity index 100%
rename from core/src/main/java/org/apache/servicecomb/serviceregistry/config/AbstractPropertiesLoader.java
rename to foundations/foundation-registry/src/main/java/org/apache/servicecomb/serviceregistry/config/AbstractPropertiesLoader.java
diff --git a/core/src/main/java/org/apache/servicecomb/serviceregistry/config/ConfigurePropertyUtils.java b/foundations/foundation-registry/src/main/java/org/apache/servicecomb/serviceregistry/config/ConfigurePropertyUtils.java
similarity index 94%
rename from core/src/main/java/org/apache/servicecomb/serviceregistry/config/ConfigurePropertyUtils.java
rename to foundations/foundation-registry/src/main/java/org/apache/servicecomb/serviceregistry/config/ConfigurePropertyUtils.java
index 464419a..fb2432b 100644
--- a/core/src/main/java/org/apache/servicecomb/serviceregistry/config/ConfigurePropertyUtils.java
+++ b/foundations/foundation-registry/src/main/java/org/apache/servicecomb/serviceregistry/config/ConfigurePropertyUtils.java
@@ -25,7 +25,7 @@ import java.util.Map;
import org.apache.commons.configuration.Configuration;
import org.apache.commons.lang.StringUtils;
-import org.apache.servicecomb.core.SCBEngine;
+import org.apache.servicecomb.foundation.common.utils.ClassLoaderScopeContext;
import org.apache.servicecomb.serviceregistry.api.registry.BasePath;
import org.apache.servicecomb.serviceregistry.definition.DefinitionConst;
@@ -73,7 +73,7 @@ public final class ConfigurePropertyUtils {
}
private static String buildPath(String path) {
- String prefix = SCBEngine.getClassLoaderScopeProperty(DefinitionConst.URL_PREFIX);
+ String prefix = ClassLoaderScopeContext.getClassLoaderScopeProperty(DefinitionConst.URL_PREFIX);
if (StringUtils.isNotEmpty(prefix)) {
if (!path.startsWith(prefix)) {
path = prefix + path;
diff --git a/core/src/main/java/org/apache/servicecomb/serviceregistry/config/InstancePropertiesLoader.java b/foundations/foundation-registry/src/main/java/org/apache/servicecomb/serviceregistry/config/InstancePropertiesLoader.java
similarity index 100%
rename from core/src/main/java/org/apache/servicecomb/serviceregistry/config/InstancePropertiesLoader.java
rename to foundations/foundation-registry/src/main/java/org/apache/servicecomb/serviceregistry/config/InstancePropertiesLoader.java
diff --git a/core/src/main/java/org/apache/servicecomb/serviceregistry/config/ServiceRegistryCommonConfig.java b/foundations/foundation-registry/src/main/java/org/apache/servicecomb/serviceregistry/config/ServiceRegistryCommonConfig.java
similarity index 100%
rename from core/src/main/java/org/apache/servicecomb/serviceregistry/config/ServiceRegistryCommonConfig.java
rename to foundations/foundation-registry/src/main/java/org/apache/servicecomb/serviceregistry/config/ServiceRegistryCommonConfig.java
diff --git a/core/src/main/java/org/apache/servicecomb/serviceregistry/consumer/AppManager.java b/foundations/foundation-registry/src/main/java/org/apache/servicecomb/serviceregistry/consumer/AppManager.java
similarity index 100%
rename from core/src/main/java/org/apache/servicecomb/serviceregistry/consumer/AppManager.java
rename to foundations/foundation-registry/src/main/java/org/apache/servicecomb/serviceregistry/consumer/AppManager.java
diff --git a/core/src/main/java/org/apache/servicecomb/serviceregistry/consumer/MicroserviceInstancePing.java b/foundations/foundation-registry/src/main/java/org/apache/servicecomb/serviceregistry/consumer/MicroserviceInstancePing.java
similarity index 100%
rename from core/src/main/java/org/apache/servicecomb/serviceregistry/consumer/MicroserviceInstancePing.java
rename to foundations/foundation-registry/src/main/java/org/apache/servicecomb/serviceregistry/consumer/MicroserviceInstancePing.java
diff --git a/core/src/main/java/org/apache/servicecomb/serviceregistry/consumer/MicroserviceManager.java b/foundations/foundation-registry/src/main/java/org/apache/servicecomb/serviceregistry/consumer/MicroserviceManager.java
similarity index 100%
rename from core/src/main/java/org/apache/servicecomb/serviceregistry/consumer/MicroserviceManager.java
rename to foundations/foundation-registry/src/main/java/org/apache/servicecomb/serviceregistry/consumer/MicroserviceManager.java
diff --git a/core/src/main/java/org/apache/servicecomb/serviceregistry/consumer/MicroserviceVersion.java b/foundations/foundation-registry/src/main/java/org/apache/servicecomb/serviceregistry/consumer/MicroserviceVersion.java
similarity index 100%
rename from core/src/main/java/org/apache/servicecomb/serviceregistry/consumer/MicroserviceVersion.java
rename to foundations/foundation-registry/src/main/java/org/apache/servicecomb/serviceregistry/consumer/MicroserviceVersion.java
diff --git a/core/src/main/java/org/apache/servicecomb/serviceregistry/consumer/MicroserviceVersionRule.java b/foundations/foundation-registry/src/main/java/org/apache/servicecomb/serviceregistry/consumer/MicroserviceVersionRule.java
similarity index 100%
rename from core/src/main/java/org/apache/servicecomb/serviceregistry/consumer/MicroserviceVersionRule.java
rename to foundations/foundation-registry/src/main/java/org/apache/servicecomb/serviceregistry/consumer/MicroserviceVersionRule.java
diff --git a/core/src/main/java/org/apache/servicecomb/serviceregistry/consumer/MicroserviceVersionRuleData.java b/foundations/foundation-registry/src/main/java/org/apache/servicecomb/serviceregistry/consumer/MicroserviceVersionRuleData.java
similarity index 100%
rename from core/src/main/java/org/apache/servicecomb/serviceregistry/consumer/MicroserviceVersionRuleData.java
rename to foundations/foundation-registry/src/main/java/org/apache/servicecomb/serviceregistry/consumer/MicroserviceVersionRuleData.java
diff --git a/core/src/main/java/org/apache/servicecomb/serviceregistry/consumer/MicroserviceVersions.java b/foundations/foundation-registry/src/main/java/org/apache/servicecomb/serviceregistry/consumer/MicroserviceVersions.java
similarity index 100%
rename from core/src/main/java/org/apache/servicecomb/serviceregistry/consumer/MicroserviceVersions.java
rename to foundations/foundation-registry/src/main/java/org/apache/servicecomb/serviceregistry/consumer/MicroserviceVersions.java
diff --git a/core/src/main/java/org/apache/servicecomb/serviceregistry/consumer/SimpleMicroserviceInstancePing.java b/foundations/foundation-registry/src/main/java/org/apache/servicecomb/serviceregistry/consumer/SimpleMicroserviceInstancePing.java
similarity index 100%
rename from core/src/main/java/org/apache/servicecomb/serviceregistry/consumer/SimpleMicroserviceInstancePing.java
rename to foundations/foundation-registry/src/main/java/org/apache/servicecomb/serviceregistry/consumer/SimpleMicroserviceInstancePing.java
diff --git a/core/src/main/java/org/apache/servicecomb/serviceregistry/consumer/StaticMicroserviceVersions.java b/foundations/foundation-registry/src/main/java/org/apache/servicecomb/serviceregistry/consumer/StaticMicroserviceVersions.java
similarity index 100%
rename from core/src/main/java/org/apache/servicecomb/serviceregistry/consumer/StaticMicroserviceVersions.java
rename to foundations/foundation-registry/src/main/java/org/apache/servicecomb/serviceregistry/consumer/StaticMicroserviceVersions.java
diff --git a/core/src/main/java/org/apache/servicecomb/serviceregistry/definition/DefinitionConst.java b/foundations/foundation-registry/src/main/java/org/apache/servicecomb/serviceregistry/definition/DefinitionConst.java
similarity index 100%
rename from core/src/main/java/org/apache/servicecomb/serviceregistry/definition/DefinitionConst.java
rename to foundations/foundation-registry/src/main/java/org/apache/servicecomb/serviceregistry/definition/DefinitionConst.java
diff --git a/core/src/main/java/org/apache/servicecomb/serviceregistry/definition/MicroserviceDefinition.java b/foundations/foundation-registry/src/main/java/org/apache/servicecomb/serviceregistry/definition/MicroserviceDefinition.java
similarity index 100%
rename from core/src/main/java/org/apache/servicecomb/serviceregistry/definition/MicroserviceDefinition.java
rename to foundations/foundation-registry/src/main/java/org/apache/servicecomb/serviceregistry/definition/MicroserviceDefinition.java
diff --git a/core/src/main/java/org/apache/servicecomb/serviceregistry/definition/MicroserviceNameParser.java b/foundations/foundation-registry/src/main/java/org/apache/servicecomb/serviceregistry/definition/MicroserviceNameParser.java
similarity index 100%
rename from core/src/main/java/org/apache/servicecomb/serviceregistry/definition/MicroserviceNameParser.java
rename to foundations/foundation-registry/src/main/java/org/apache/servicecomb/serviceregistry/definition/MicroserviceNameParser.java
diff --git a/core/src/main/java/org/apache/servicecomb/serviceregistry/discovery/AbstractDiscoveryFilter.java b/foundations/foundation-registry/src/main/java/org/apache/servicecomb/serviceregistry/discovery/AbstractDiscoveryFilter.java
similarity index 100%
rename from core/src/main/java/org/apache/servicecomb/serviceregistry/discovery/AbstractDiscoveryFilter.java
rename to foundations/foundation-registry/src/main/java/org/apache/servicecomb/serviceregistry/discovery/AbstractDiscoveryFilter.java
diff --git a/core/src/main/java/org/apache/servicecomb/serviceregistry/discovery/AbstractEndpointDiscoveryFilter.java b/foundations/foundation-registry/src/main/java/org/apache/servicecomb/serviceregistry/discovery/AbstractEndpointDiscoveryFilter.java
similarity index 100%
rename from core/src/main/java/org/apache/servicecomb/serviceregistry/discovery/AbstractEndpointDiscoveryFilter.java
rename to foundations/foundation-registry/src/main/java/org/apache/servicecomb/serviceregistry/discovery/AbstractEndpointDiscoveryFilter.java
diff --git a/core/src/main/java/org/apache/servicecomb/serviceregistry/discovery/DiscoveryContext.java b/foundations/foundation-registry/src/main/java/org/apache/servicecomb/serviceregistry/discovery/DiscoveryContext.java
similarity index 100%
rename from core/src/main/java/org/apache/servicecomb/serviceregistry/discovery/DiscoveryContext.java
rename to foundations/foundation-registry/src/main/java/org/apache/servicecomb/serviceregistry/discovery/DiscoveryContext.java
diff --git a/core/src/main/java/org/apache/servicecomb/serviceregistry/discovery/DiscoveryFilter.java b/foundations/foundation-registry/src/main/java/org/apache/servicecomb/serviceregistry/discovery/DiscoveryFilter.java
similarity index 100%
rename from core/src/main/java/org/apache/servicecomb/serviceregistry/discovery/DiscoveryFilter.java
rename to foundations/foundation-registry/src/main/java/org/apache/servicecomb/serviceregistry/discovery/DiscoveryFilter.java
diff --git a/core/src/main/java/org/apache/servicecomb/serviceregistry/discovery/DiscoveryTree.java b/foundations/foundation-registry/src/main/java/org/apache/servicecomb/serviceregistry/discovery/DiscoveryTree.java
similarity index 100%
rename from core/src/main/java/org/apache/servicecomb/serviceregistry/discovery/DiscoveryTree.java
rename to foundations/foundation-registry/src/main/java/org/apache/servicecomb/serviceregistry/discovery/DiscoveryTree.java
diff --git a/core/src/main/java/org/apache/servicecomb/serviceregistry/discovery/DiscoveryTreeNode.java b/foundations/foundation-registry/src/main/java/org/apache/servicecomb/serviceregistry/discovery/DiscoveryTreeNode.java
similarity index 100%
rename from core/src/main/java/org/apache/servicecomb/serviceregistry/discovery/DiscoveryTreeNode.java
rename to foundations/foundation-registry/src/main/java/org/apache/servicecomb/serviceregistry/discovery/DiscoveryTreeNode.java
diff --git a/core/src/main/java/org/apache/servicecomb/serviceregistry/discovery/InstanceStatusDiscoveryFilter.java b/foundations/foundation-registry/src/main/java/org/apache/servicecomb/serviceregistry/discovery/InstanceStatusDiscoveryFilter.java
similarity index 100%
rename from core/src/main/java/org/apache/servicecomb/serviceregistry/discovery/InstanceStatusDiscoveryFilter.java
rename to foundations/foundation-registry/src/main/java/org/apache/servicecomb/serviceregistry/discovery/InstanceStatusDiscoveryFilter.java
diff --git a/core/src/main/java/org/apache/servicecomb/serviceregistry/event/CreateMicroserviceEvent.java b/foundations/foundation-registry/src/main/java/org/apache/servicecomb/serviceregistry/event/CreateMicroserviceEvent.java
similarity index 100%
rename from core/src/main/java/org/apache/servicecomb/serviceregistry/event/CreateMicroserviceEvent.java
rename to foundations/foundation-registry/src/main/java/org/apache/servicecomb/serviceregistry/event/CreateMicroserviceEvent.java
diff --git a/core/src/main/java/org/apache/servicecomb/serviceregistry/event/CreateMicroserviceVersionEvent.java b/foundations/foundation-registry/src/main/java/org/apache/servicecomb/serviceregistry/event/CreateMicroserviceVersionEvent.java
similarity index 100%
rename from core/src/main/java/org/apache/servicecomb/serviceregistry/event/CreateMicroserviceVersionEvent.java
rename to foundations/foundation-registry/src/main/java/org/apache/servicecomb/serviceregistry/event/CreateMicroserviceVersionEvent.java
diff --git a/core/src/main/java/org/apache/servicecomb/serviceregistry/event/DestroyMicroserviceEvent.java b/foundations/foundation-registry/src/main/java/org/apache/servicecomb/serviceregistry/event/DestroyMicroserviceEvent.java
similarity index 100%
rename from core/src/main/java/org/apache/servicecomb/serviceregistry/event/DestroyMicroserviceEvent.java
rename to foundations/foundation-registry/src/main/java/org/apache/servicecomb/serviceregistry/event/DestroyMicroserviceEvent.java
diff --git a/core/src/main/java/org/apache/servicecomb/serviceregistry/event/DestroyMicroserviceVersionEvent.java b/foundations/foundation-registry/src/main/java/org/apache/servicecomb/serviceregistry/event/DestroyMicroserviceVersionEvent.java
similarity index 100%
rename from core/src/main/java/org/apache/servicecomb/serviceregistry/event/DestroyMicroserviceVersionEvent.java
rename to foundations/foundation-registry/src/main/java/org/apache/servicecomb/serviceregistry/event/DestroyMicroserviceVersionEvent.java
diff --git a/core/src/main/java/org/apache/servicecomb/serviceregistry/event/MicroserviceInstanceRegisteredEvent.java b/foundations/foundation-registry/src/main/java/org/apache/servicecomb/serviceregistry/event/MicroserviceInstanceRegisteredEvent.java
similarity index 100%
rename from core/src/main/java/org/apache/servicecomb/serviceregistry/event/MicroserviceInstanceRegisteredEvent.java
rename to foundations/foundation-registry/src/main/java/org/apache/servicecomb/serviceregistry/event/MicroserviceInstanceRegisteredEvent.java
diff --git a/core/src/main/java/org/apache/servicecomb/serviceregistry/swagger/SwaggerLoader.java b/foundations/foundation-registry/src/main/java/org/apache/servicecomb/serviceregistry/swagger/SwaggerLoader.java
similarity index 100%
rename from core/src/main/java/org/apache/servicecomb/serviceregistry/swagger/SwaggerLoader.java
rename to foundations/foundation-registry/src/main/java/org/apache/servicecomb/serviceregistry/swagger/SwaggerLoader.java
diff --git a/core/src/main/java/org/apache/servicecomb/serviceregistry/task/event/ExceptionEvent.java b/foundations/foundation-registry/src/main/java/org/apache/servicecomb/serviceregistry/task/event/ExceptionEvent.java
similarity index 100%
rename from core/src/main/java/org/apache/servicecomb/serviceregistry/task/event/ExceptionEvent.java
rename to foundations/foundation-registry/src/main/java/org/apache/servicecomb/serviceregistry/task/event/ExceptionEvent.java
diff --git a/core/src/main/java/org/apache/servicecomb/serviceregistry/task/event/HeartbeatFailEvent.java b/foundations/foundation-registry/src/main/java/org/apache/servicecomb/serviceregistry/task/event/HeartbeatFailEvent.java
similarity index 100%
rename from core/src/main/java/org/apache/servicecomb/serviceregistry/task/event/HeartbeatFailEvent.java
rename to foundations/foundation-registry/src/main/java/org/apache/servicecomb/serviceregistry/task/event/HeartbeatFailEvent.java
diff --git a/core/src/main/java/org/apache/servicecomb/serviceregistry/task/event/HeartbeatSuccEvent.java b/foundations/foundation-registry/src/main/java/org/apache/servicecomb/serviceregistry/task/event/HeartbeatSuccEvent.java
similarity index 100%
rename from core/src/main/java/org/apache/servicecomb/serviceregistry/task/event/HeartbeatSuccEvent.java
rename to foundations/foundation-registry/src/main/java/org/apache/servicecomb/serviceregistry/task/event/HeartbeatSuccEvent.java
diff --git a/core/src/main/java/org/apache/servicecomb/serviceregistry/task/event/RecoveryEvent.java b/foundations/foundation-registry/src/main/java/org/apache/servicecomb/serviceregistry/task/event/RecoveryEvent.java
similarity index 100%
rename from core/src/main/java/org/apache/servicecomb/serviceregistry/task/event/RecoveryEvent.java
rename to foundations/foundation-registry/src/main/java/org/apache/servicecomb/serviceregistry/task/event/RecoveryEvent.java
diff --git a/core/src/main/java/org/apache/servicecomb/serviceregistry/task/event/SafeModeChangeEvent.java b/foundations/foundation-registry/src/main/java/org/apache/servicecomb/serviceregistry/task/event/SafeModeChangeEvent.java
similarity index 100%
rename from core/src/main/java/org/apache/servicecomb/serviceregistry/task/event/SafeModeChangeEvent.java
rename to foundations/foundation-registry/src/main/java/org/apache/servicecomb/serviceregistry/task/event/SafeModeChangeEvent.java
diff --git a/core/src/main/java/org/apache/servicecomb/serviceregistry/task/event/ShutdownEvent.java b/foundations/foundation-registry/src/main/java/org/apache/servicecomb/serviceregistry/task/event/ShutdownEvent.java
similarity index 100%
rename from core/src/main/java/org/apache/servicecomb/serviceregistry/task/event/ShutdownEvent.java
rename to foundations/foundation-registry/src/main/java/org/apache/servicecomb/serviceregistry/task/event/ShutdownEvent.java
diff --git a/core/src/main/java/org/apache/servicecomb/serviceregistry/version/Version.java b/foundations/foundation-registry/src/main/java/org/apache/servicecomb/serviceregistry/version/Version.java
similarity index 100%
rename from core/src/main/java/org/apache/servicecomb/serviceregistry/version/Version.java
rename to foundations/foundation-registry/src/main/java/org/apache/servicecomb/serviceregistry/version/Version.java
diff --git a/core/src/main/java/org/apache/servicecomb/serviceregistry/version/VersionRule.java b/foundations/foundation-registry/src/main/java/org/apache/servicecomb/serviceregistry/version/VersionRule.java
similarity index 100%
rename from core/src/main/java/org/apache/servicecomb/serviceregistry/version/VersionRule.java
rename to foundations/foundation-registry/src/main/java/org/apache/servicecomb/serviceregistry/version/VersionRule.java
diff --git a/core/src/main/java/org/apache/servicecomb/serviceregistry/version/VersionRuleFixedParser.java b/foundations/foundation-registry/src/main/java/org/apache/servicecomb/serviceregistry/version/VersionRuleFixedParser.java
similarity index 100%
rename from core/src/main/java/org/apache/servicecomb/serviceregistry/version/VersionRuleFixedParser.java
rename to foundations/foundation-registry/src/main/java/org/apache/servicecomb/serviceregistry/version/VersionRuleFixedParser.java
diff --git a/core/src/main/java/org/apache/servicecomb/serviceregistry/version/VersionRuleLatestParser.java b/foundations/foundation-registry/src/main/java/org/apache/servicecomb/serviceregistry/version/VersionRuleLatestParser.java
similarity index 100%
rename from core/src/main/java/org/apache/servicecomb/serviceregistry/version/VersionRuleLatestParser.java
rename to foundations/foundation-registry/src/main/java/org/apache/servicecomb/serviceregistry/version/VersionRuleLatestParser.java
diff --git a/core/src/main/java/org/apache/servicecomb/serviceregistry/version/VersionRuleParser.java b/foundations/foundation-registry/src/main/java/org/apache/servicecomb/serviceregistry/version/VersionRuleParser.java
similarity index 100%
rename from core/src/main/java/org/apache/servicecomb/serviceregistry/version/VersionRuleParser.java
rename to foundations/foundation-registry/src/main/java/org/apache/servicecomb/serviceregistry/version/VersionRuleParser.java
diff --git a/core/src/main/java/org/apache/servicecomb/serviceregistry/version/VersionRuleRangeParser.java b/foundations/foundation-registry/src/main/java/org/apache/servicecomb/serviceregistry/version/VersionRuleRangeParser.java
similarity index 100%
rename from core/src/main/java/org/apache/servicecomb/serviceregistry/version/VersionRuleRangeParser.java
rename to foundations/foundation-registry/src/main/java/org/apache/servicecomb/serviceregistry/version/VersionRuleRangeParser.java
diff --git a/core/src/main/java/org/apache/servicecomb/serviceregistry/version/VersionRuleStartFromParser.java b/foundations/foundation-registry/src/main/java/org/apache/servicecomb/serviceregistry/version/VersionRuleStartFromParser.java
similarity index 100%
rename from core/src/main/java/org/apache/servicecomb/serviceregistry/version/VersionRuleStartFromParser.java
rename to foundations/foundation-registry/src/main/java/org/apache/servicecomb/serviceregistry/version/VersionRuleStartFromParser.java
diff --git a/core/src/main/java/org/apache/servicecomb/serviceregistry/version/VersionRuleUtils.java b/foundations/foundation-registry/src/main/java/org/apache/servicecomb/serviceregistry/version/VersionRuleUtils.java
similarity index 100%
rename from core/src/main/java/org/apache/servicecomb/serviceregistry/version/VersionRuleUtils.java
rename to foundations/foundation-registry/src/main/java/org/apache/servicecomb/serviceregistry/version/VersionRuleUtils.java
diff --git a/core/src/main/java/org/apache/servicecomb/serviceregistry/version/VersionUtils.java b/foundations/foundation-registry/src/main/java/org/apache/servicecomb/serviceregistry/version/VersionUtils.java
similarity index 100%
rename from core/src/main/java/org/apache/servicecomb/serviceregistry/version/VersionUtils.java
rename to foundations/foundation-registry/src/main/java/org/apache/servicecomb/serviceregistry/version/VersionUtils.java
diff --git a/foundations/pom.xml b/foundations/pom.xml
index 5ddcf95..65e1198 100644
--- a/foundations/pom.xml
+++ b/foundations/pom.xml
@@ -35,5 +35,6 @@
<module>foundation-ssl</module>
<module>foundation-test-scaffolding</module>
<module>foundation-protobuf</module>
+ <module>foundation-registry</module>
</modules>
</project>
diff --git a/handlers/handler-loadbalance/pom.xml b/handlers/handler-loadbalance/pom.xml
index 522ccf6..66a0c49 100644
--- a/handlers/handler-loadbalance/pom.xml
+++ b/handlers/handler-loadbalance/pom.xml
@@ -71,7 +71,11 @@
<artifactId>annotations</artifactId>
<scope>provided</scope>
</dependency>
-
+ <dependency>
+ <groupId>org.apache.servicecomb</groupId>
+ <artifactId>service-registry</artifactId>
+ <scope>test</scope>
+ </dependency>
<dependency>
<groupId>org.apache.servicecomb</groupId>
<artifactId>foundation-test-scaffolding</artifactId>
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 0c4fc46..d2b9a98 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
@@ -24,6 +24,7 @@ import java.util.HashMap;
import java.util.List;
import java.util.Map;
+import org.apache.servicecomb.config.ConfigUtil;
import org.apache.servicecomb.core.Endpoint;
import org.apache.servicecomb.core.Invocation;
import org.apache.servicecomb.core.NonSwaggerInvocation;
@@ -43,6 +44,9 @@ import org.apache.servicecomb.loadbalance.event.IsolationServerEvent;
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.serviceregistry.DiscoveryManager;
+import org.apache.servicecomb.serviceregistry.RegistryUtils;
+import org.apache.servicecomb.serviceregistry.ServiceRegistry;
import org.apache.servicecomb.serviceregistry.api.registry.DataCenterInfo;
import org.apache.servicecomb.serviceregistry.api.registry.MicroserviceInstance;
import org.apache.servicecomb.serviceregistry.api.registry.MicroserviceInstanceStatus;
@@ -55,6 +59,7 @@ import org.junit.After;
import org.junit.AfterClass;
import org.junit.Assert;
import org.junit.Before;
+import org.junit.BeforeClass;
import org.junit.Test;
import org.mockito.Mockito;
@@ -70,7 +75,14 @@ import mockit.MockUp;
public class TestLoadBalanceHandler2 {
private Holder<Long> mockTimeMillis;
- static SCBEngine scbEngine = new SCBBootstrap().useLocalRegistry().createSCBEngineForTest();
+ private static SCBEngine scbEngine;
+
+ @BeforeClass
+ public static void beforeClass() {
+ ConfigUtil.installDynamicConfig();
+ RegistryUtils.initWithLocalRegistry();
+ scbEngine = SCBBootstrap.createSCBEngineForTest();
+ }
@AfterClass
public static void afterClass() {
@@ -80,9 +92,6 @@ public class TestLoadBalanceHandler2 {
@Before
public void setUp() {
- // clear up load balance stats
- //prepare for defineEndpointAndHandle
- ArchaiusUtils.resetConfig();
ArchaiusUtils.setProperty("servicecomb.loadbalance.userDefinedEndpoint.enabled", "true");
// avoid mock
ServiceCombLoadBalancerStats.INSTANCE.init();
@@ -99,7 +108,6 @@ public class TestLoadBalanceHandler2 {
@After
public void teardown() {
- ArchaiusUtils.resetConfig();
ServiceCombServerStats.releaseTryingChance();
}
@@ -119,7 +127,7 @@ public class TestLoadBalanceHandler2 {
Invocation invocation = new Invocation(referenceConfig, operationMeta, invocationRuntimeType, new HashMap<>());
InstanceCacheManager instanceCacheManager = Mockito.mock(InstanceCacheManager.class);
-
+ ServiceRegistry serviceRegistry = mockUpServiceRegistry();
TransportManager transportManager = Mockito.mock(TransportManager.class);
Transport transport = Mockito.mock(Transport.class);
ArchaiusUtils.setProperty("servicecomb.loadbalance.filter.operation.enabled", "false");
@@ -169,6 +177,10 @@ public class TestLoadBalanceHandler2 {
DiscoveryTreeNode parent = new DiscoveryTreeNode().name("parent").data(data);
scbEngine.setTransportManager(transportManager);
+ RegistryUtils.setServiceRegistry(serviceRegistry);
+
+ when(serviceRegistry.getMicroserviceInstance()).thenReturn(myself);
+ mockUpInstanceCacheManager(instanceCacheManager);
when(instanceCacheManager.getOrCreateVersionedCache("testApp", "testMicroserviceName", "0.0.0+"))
.thenReturn(parent);
when(transportManager.findTransport("rest")).thenReturn(transport);
@@ -265,6 +277,7 @@ public class TestLoadBalanceHandler2 {
Invocation invocation = new Invocation(referenceConfig, operationMeta, invocationRuntimeType, new HashMap<>());
InstanceCacheManager instanceCacheManager = Mockito.mock(InstanceCacheManager.class);
+ ServiceRegistry serviceRegistry = mockUpServiceRegistry();
TransportManager transportManager = Mockito.mock(TransportManager.class);
Transport transport = Mockito.mock(Transport.class);
ArchaiusUtils.setProperty("servicecomb.loadbalance.filter.operation.enabled", "false");
@@ -292,6 +305,10 @@ public class TestLoadBalanceHandler2 {
DiscoveryTreeNode parent = new DiscoveryTreeNode().name("parent").data(data);
scbEngine.setTransportManager(transportManager);
+ RegistryUtils.setServiceRegistry(serviceRegistry);
+
+ when(serviceRegistry.getMicroserviceInstance()).thenReturn(myself);
+ mockUpInstanceCacheManager(instanceCacheManager);
when(instanceCacheManager.getOrCreateVersionedCache("testApp", "testMicroserviceName", "0.0.0+"))
.thenReturn(parent);
when(transportManager.findTransport("rest")).thenReturn(transport);
@@ -350,6 +367,7 @@ public class TestLoadBalanceHandler2 {
Invocation invocation = new Invocation(referenceConfig, operationMeta, invocationRuntimeType, new HashMap<>());
InstanceCacheManager instanceCacheManager = Mockito.mock(InstanceCacheManager.class);
+ ServiceRegistry serviceRegistry = mockUpServiceRegistry();
TransportManager transportManager = Mockito.mock(TransportManager.class);
Transport transport = Mockito.mock(Transport.class);
ArchaiusUtils.setProperty("servicecomb.loadbalance.filter.operation.enabled", "false");
@@ -399,6 +417,10 @@ public class TestLoadBalanceHandler2 {
DiscoveryTreeNode parent = new DiscoveryTreeNode().name("parent").data(data);
scbEngine.setTransportManager(transportManager);
+ RegistryUtils.setServiceRegistry(serviceRegistry);
+
+ when(serviceRegistry.getMicroserviceInstance()).thenReturn(myself);
+ mockUpInstanceCacheManager(instanceCacheManager);
when(instanceCacheManager.getOrCreateVersionedCache("testApp", "testMicroserviceName", "0.0.0+"))
.thenReturn(parent);
when(transportManager.findTransport("rest")).thenReturn(transport);
@@ -472,6 +494,7 @@ public class TestLoadBalanceHandler2 {
});
InstanceCacheManager instanceCacheManager = Mockito.mock(InstanceCacheManager.class);
+ ServiceRegistry serviceRegistry = mockUpServiceRegistry();
TransportManager transportManager = Mockito.mock(TransportManager.class);
Transport transport = Mockito.mock(Transport.class);
ArchaiusUtils.setProperty("servicecomb.loadbalance.filter.operation.enabled", "false");
@@ -521,6 +544,10 @@ public class TestLoadBalanceHandler2 {
DiscoveryTreeNode parent = new DiscoveryTreeNode().name("parent").data(data);
scbEngine.setTransportManager(transportManager);
+ RegistryUtils.setServiceRegistry(serviceRegistry);
+
+ when(serviceRegistry.getMicroserviceInstance()).thenReturn(myself);
+ mockUpInstanceCacheManager(instanceCacheManager);
when(instanceCacheManager.getOrCreateVersionedCache("testApp", "testMicroserviceName", "0.0.0+"))
.thenReturn(parent);
when(transportManager.findTransport("rest")).thenReturn(transport);
@@ -610,6 +637,7 @@ public class TestLoadBalanceHandler2 {
});
InstanceCacheManager instanceCacheManager = Mockito.mock(InstanceCacheManager.class);
+ ServiceRegistry serviceRegistry = mockUpServiceRegistry();
TransportManager transportManager = Mockito.mock(TransportManager.class);
Transport transport = Mockito.mock(Transport.class);
ArchaiusUtils.setProperty("servicecomb.loadbalance.filter.operation.enabled", "false");
@@ -660,6 +688,10 @@ public class TestLoadBalanceHandler2 {
DiscoveryTreeNode parent = new DiscoveryTreeNode().name("parent").data(data);
scbEngine.setTransportManager(transportManager);
+ RegistryUtils.setServiceRegistry(serviceRegistry);
+
+ when(serviceRegistry.getMicroserviceInstance()).thenReturn(myself);
+ mockUpInstanceCacheManager(instanceCacheManager);
when(instanceCacheManager.getOrCreateVersionedCache("testApp", "testMicroserviceName", "0.0.0+"))
.thenReturn(parent);
when(transportManager.findTransport("rest")).thenReturn(transport);
@@ -757,7 +789,7 @@ public class TestLoadBalanceHandler2 {
AsyncResponse asyncResp = Mockito.mock(AsyncResponse.class);
InstanceCacheManager instanceCacheManager = Mockito.mock(InstanceCacheManager.class);
-
+ ServiceRegistry serviceRegistry = mockUpServiceRegistry();
TransportManager transportManager = Mockito.mock(TransportManager.class);
Transport transport = Mockito.mock(Transport.class);
ArchaiusUtils.setProperty("servicecomb.loadbalance.filter.operation.enabled", "false");
@@ -776,6 +808,10 @@ public class TestLoadBalanceHandler2 {
scbEngine.setTransportManager(transportManager);
SCBEngine.getInstance().setTransportManager(transportManager);
+ RegistryUtils.setServiceRegistry(serviceRegistry);
+
+ when(serviceRegistry.getMicroserviceInstance()).thenReturn(myself);
+ mockUpInstanceCacheManager(instanceCacheManager);
when(instanceCacheManager.getOrCreateVersionedCache("testApp", "testMicroserviceName", "0.0.0+"))
.thenReturn(parent);
when(transportManager.findTransport("rest")).thenReturn(transport);
@@ -958,4 +994,19 @@ public class TestLoadBalanceHandler2 {
private void mockDelayMillis(long delay) {
mockTimeMillis.value += delay;
}
+
+ private void mockUpInstanceCacheManager(InstanceCacheManager instanceCacheManager) {
+ new MockUp<DiscoveryManager>() {
+ @Mock
+ public InstanceCacheManager getInstanceCacheManager() {
+ return instanceCacheManager;
+ }
+ };
+ }
+
+ private ServiceRegistry mockUpServiceRegistry() {
+ ServiceRegistry serviceRegistry = Mockito.mock(ServiceRegistry.class);
+ when(serviceRegistry.getEventBus()).thenReturn(EventManager.getEventBus());
+ return serviceRegistry;
+ }
}
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 abe1022..ed05c89 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
@@ -27,6 +27,7 @@ import java.util.concurrent.ExecutorService;
import javax.ws.rs.core.Response.Status;
+import org.apache.servicecomb.config.ConfigUtil;
import org.apache.servicecomb.core.Invocation;
import org.apache.servicecomb.core.SCBEngine;
import org.apache.servicecomb.core.Transport;
@@ -35,6 +36,7 @@ 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.RegistryUtils;
import org.apache.servicecomb.serviceregistry.api.registry.MicroserviceInstance;
import org.apache.servicecomb.serviceregistry.cache.CacheEndpoint;
import org.apache.servicecomb.serviceregistry.cache.InstanceCacheManager;
@@ -92,19 +94,13 @@ public class TestLoadbalanceHandler {
@Rule
public ExpectedException expectedException = ExpectedException.none();
- @BeforeClass
- public static void classSetup() {
- scbEngine = new SCBBootstrap().useLocalRegistry().createSCBEngineForTest().run();
- transportManager = scbEngine.getTransportManager();
- }
-
- @AfterClass
- public static void classTeardown() {
- scbEngine.destroy();
- }
-
@Before
public void setUp() {
+ ConfigUtil.installDynamicConfig();
+ RegistryUtils.initWithLocalRegistry();
+ scbEngine = SCBBootstrap.createSCBEngineForTest().run();
+ transportManager = scbEngine.getTransportManager();
+
new MockUp<Invocation>(invocation) {
@Mock
String getMicroserviceName() {
@@ -144,7 +140,9 @@ public class TestLoadbalanceHandler {
@After
public void teardown() {
+ scbEngine.destroy();
ArchaiusUtils.resetConfig();
+
}
@Test
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 79fef4d..3e73611 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
@@ -44,7 +44,7 @@ public class TestServerDiscoveryFilter {
@BeforeClass
public static void setup() {
- scbEngine = new SCBBootstrap().useLocalRegistry().createSCBEngineForTest().run();
+ scbEngine = SCBBootstrap.createSCBEngineForTest().run();
transportManager = scbEngine.getTransportManager();
}
diff --git a/handlers/handler-publickey-auth/pom.xml b/handlers/handler-publickey-auth/pom.xml
index 4393605..3f930ca 100644
--- a/handlers/handler-publickey-auth/pom.xml
+++ b/handlers/handler-publickey-auth/pom.xml
@@ -37,6 +37,11 @@
<artifactId>java-chassis-core</artifactId>
</dependency>
<dependency>
+ <groupId>org.apache.servicecomb</groupId>
+ <artifactId>service-registry</artifactId>
+ <scope>test</scope>
+ </dependency>
+ <dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-log4j12</artifactId>
<scope>test</scope>
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 5cceb6f..2961c44 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
@@ -17,16 +17,31 @@
package org.apache.servicecomb.authentication;
import org.apache.servicecomb.AuthHandlerBoot;
+import org.apache.servicecomb.config.ConfigUtil;
import org.apache.servicecomb.core.BootListener;
import org.apache.servicecomb.core.BootListener.BootEvent;
+import org.apache.servicecomb.foundation.test.scaffolding.config.ArchaiusUtils;
import org.apache.servicecomb.foundation.token.RSAKeypair4Auth;
+import org.apache.servicecomb.serviceregistry.RegistryUtils;
import org.apache.servicecomb.serviceregistry.api.registry.Microservice;
import org.apache.servicecomb.serviceregistry.api.registry.MicroserviceInstance;
+import org.junit.After;
import org.junit.Assert;
+import org.junit.Before;
import org.junit.Test;
public class TestAuthHandlerBoot {
+ @Before
+ public void setUp() {
+ ConfigUtil.installDynamicConfig();
+ RegistryUtils.initWithLocalRegistry();
+ }
+
+ @After
+ public void teardown() {
+ ArchaiusUtils.resetConfig();
+ }
@Test
public void testGenerateRSAKey() {
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 d0ab949..1c29927 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,6 +27,8 @@ 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.RegistryUtils;
import org.apache.servicecomb.serviceregistry.api.registry.Microservice;
import org.apache.servicecomb.serviceregistry.api.registry.MicroserviceInstance;
import org.apache.servicecomb.serviceregistry.cache.MicroserviceInstanceCache;
@@ -45,12 +47,13 @@ public class TestRSAProviderTokenManager {
@Before
- public void setUp() throws Exception {
+ public void setUp() {
ConfigUtil.installDynamicConfig();
+ RegistryUtils.initWithLocalRegistry();
}
@After
- public void tearDown() {
+ public void teardown() {
ArchaiusUtils.resetConfig();
}
@@ -116,7 +119,14 @@ public class TestRSAProviderTokenManager {
properties.put(DefinitionConst.INSTANCE_PUBKEY_PRO, rsaKeyPairEntry.getPublicKeyEncoded());
Microservice microservice = new Microservice();
microservice.setServiceId(serviceId);
-
+ new Expectations(RegistrationManager.INSTANCE) {
+ {
+ RegistrationManager.INSTANCE.getMicroservice();
+ result = microservice;
+ RegistrationManager.INSTANCE.getMicroserviceInstance();
+ result = microserviceInstance;
+ }
+ };
//Test Consumer first create token
String token = rsaConsumerTokenManager.getToken();
Assert.assertNotNull(token);
diff --git a/inspector/pom.xml b/inspector/pom.xml
index 9afba9d..b1cbf9f 100644
--- a/inspector/pom.xml
+++ b/inspector/pom.xml
@@ -58,7 +58,11 @@
<groupId>io.github.swagger2markup</groupId>
<artifactId>swagger2markup</artifactId>
</dependency>
-
+ <dependency>
+ <groupId>org.apache.servicecomb</groupId>
+ <artifactId>service-registry</artifactId>
+ <scope>test</scope>
+ </dependency>
<dependency>
<groupId>org.apache.servicecomb</groupId>
<artifactId>foundation-test-scaffolding</artifactId>
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 1fdb55a..e86ad2a 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
@@ -53,6 +53,7 @@ import org.apache.servicecomb.core.Const;
import org.apache.servicecomb.core.SCBEngine;
import org.apache.servicecomb.core.Transport;
import org.apache.servicecomb.foundation.common.part.InputStreamPart;
+import org.apache.servicecomb.foundation.common.utils.ClassLoaderScopeContext;
import org.apache.servicecomb.inspector.internal.model.DynamicPropertyView;
import org.apache.servicecomb.inspector.internal.model.PriorityPropertyView;
import org.apache.servicecomb.inspector.internal.swagger.AppendStyleProcessor;
@@ -129,7 +130,7 @@ public class InspectorImpl {
return;
}
- String urlPrefix = SCBEngine.getClassLoaderScopeProperty(DefinitionConst.URL_PREFIX);
+ String urlPrefix = ClassLoaderScopeContext.getClassLoaderScopeProperty(DefinitionConst.URL_PREFIX);
if (StringUtils.isEmpty(urlPrefix)) {
return;
}
diff --git a/inspector/src/test/java/org/apache/servicecomb/inspector/internal/TestInspectorBootListener.java b/inspector/src/test/java/org/apache/servicecomb/inspector/internal/TestInspectorBootListener.java
index 287a0be..a5b58e8 100644
--- a/inspector/src/test/java/org/apache/servicecomb/inspector/internal/TestInspectorBootListener.java
+++ b/inspector/src/test/java/org/apache/servicecomb/inspector/internal/TestInspectorBootListener.java
@@ -16,6 +16,7 @@
*/
package org.apache.servicecomb.inspector.internal;
+import org.apache.servicecomb.config.ConfigUtil;
import org.apache.servicecomb.config.priority.PriorityPropertyManager;
import org.apache.servicecomb.core.BootListener.BootEvent;
import org.apache.servicecomb.core.BootListener.EventType;
@@ -23,6 +24,7 @@ import org.apache.servicecomb.core.SCBEngine;
import org.apache.servicecomb.core.bootstrap.SCBBootstrap;
import org.apache.servicecomb.foundation.test.scaffolding.config.ArchaiusUtils;
import org.apache.servicecomb.foundation.test.scaffolding.log.LogCollector;
+import org.apache.servicecomb.serviceregistry.RegistryUtils;
import org.junit.AfterClass;
import org.junit.Assert;
import org.junit.BeforeClass;
@@ -35,7 +37,8 @@ public class TestInspectorBootListener {
@BeforeClass
public static void setup() {
- ArchaiusUtils.resetConfig();
+ ConfigUtil.installDynamicConfig();
+ RegistryUtils.initWithLocalRegistry();
priorityPropertyManager = new PriorityPropertyManager();
inspectorConfig = priorityPropertyManager.createConfigObject(InspectorConfig.class);
}
@@ -72,7 +75,7 @@ public class TestInspectorBootListener {
public void diabled() {
ArchaiusUtils.setProperty("servicecomb.inspector.enabled", false);
- SCBEngine scbEngine = new SCBBootstrap().useLocalRegistry().createSCBEngineForTest();
+ SCBEngine scbEngine = SCBBootstrap.createSCBEngineForTest();
scbEngine.getTransportManager().clearTransportBeforeInit();
scbEngine.run();
Assert.assertNull(scbEngine.getProducerMicroserviceMeta().findSchemaMeta("inspector"));
@@ -83,7 +86,7 @@ public class TestInspectorBootListener {
public void enabled() {
ArchaiusUtils.setProperty("servicecomb.inspector.enabled", true);
- SCBEngine scbEngine = new SCBBootstrap().useLocalRegistry().createSCBEngineForTest();
+ SCBEngine scbEngine = SCBBootstrap.createSCBEngineForTest();
scbEngine.getTransportManager().clearTransportBeforeInit();
scbEngine.run();
Assert.assertNotNull(scbEngine.getProducerMicroserviceMeta().findSchemaMeta("inspector"));
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 f28e51b..cb4b323 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
@@ -43,12 +43,15 @@ import org.apache.servicecomb.core.SCBEngine;
import org.apache.servicecomb.core.Transport;
import org.apache.servicecomb.core.bootstrap.SCBBootstrap;
import org.apache.servicecomb.core.definition.CoreMetaUtils;
+import org.apache.servicecomb.foundation.common.utils.ClassLoaderScopeContext;
import org.apache.servicecomb.foundation.test.scaffolding.config.ArchaiusUtils;
import org.apache.servicecomb.foundation.test.scaffolding.exception.RuntimeExceptionWithoutStackTrace;
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.RegistryUtils;
import org.apache.servicecomb.serviceregistry.api.registry.Microservice;
import org.apache.servicecomb.serviceregistry.definition.DefinitionConst;
import org.apache.servicecomb.swagger.engine.SwaggerProducer;
@@ -75,7 +78,8 @@ public class TestInspectorImpl {
@BeforeClass
public static void setup() throws IOException {
- ArchaiusUtils.resetConfig();
+ ConfigUtil.installDynamicConfig();
+ RegistryUtils.initWithLocalRegistry();
schemas.put("schema1", IOUtils
.toString(TestInspectorImpl.class.getClassLoader().getResource("schema1.yaml"), StandardCharsets.UTF_8));
schemas.put("schema2", IOUtils
@@ -85,13 +89,13 @@ public class TestInspectorImpl {
}
private static InspectorImpl initInspector(String urlPrefix) {
- SCBEngine scbEngine = new SCBBootstrap().useLocalRegistry().createSCBEngineForTest();
+ SCBEngine scbEngine = SCBBootstrap.createSCBEngineForTest();
scbEngine.getTransportManager().clearTransportBeforeInit();
if (StringUtils.isNotEmpty(urlPrefix)) {
Map<String, Transport> transportMap = Deencapsulation.getField(scbEngine.getTransportManager(), "transportMap");
transportMap.put(RESTFUL, new ServletRestTransport());
- SCBEngine.setClassLoaderScopeProperty(DefinitionConst.URL_PREFIX, urlPrefix);
+ ClassLoaderScopeContext.setClassLoaderScopeProperty(DefinitionConst.URL_PREFIX, urlPrefix);
}
scbEngine.run();
@@ -105,7 +109,7 @@ public class TestInspectorImpl {
public static void teardown() {
ArchaiusUtils.resetConfig();
SCBEngine.getInstance().destroy();
- SCBEngine.clearClassLoaderScopeProperty();
+ ClassLoaderScopeContext.clearClassLoaderScopeProperty();
}
private Map<String, String> unzip(InputStream is) throws IOException {
@@ -138,6 +142,15 @@ public class TestInspectorImpl {
}
private void testDownloadSchemasSwagger(Microservice microservice, SchemaFormat format) throws IOException {
+ new Expectations(RegistrationManager.INSTANCE) {
+ {
+ RegistrationManager.INSTANCE.getMicroservice();
+ result = microservice;
+ microservice.getServiceName();
+ result = "ms";
+ }
+ };
+
Response response = inspector.downloadSchemas(format);
Part part = response.getResult();
Assert.assertEquals("ms.yaml.zip", part.getSubmittedFileName());
@@ -153,7 +166,14 @@ public class TestInspectorImpl {
@Test
public void downloadSchemas_html(@Mocked Microservice microservice) throws IOException {
-
+ new Expectations(RegistrationManager.INSTANCE) {
+ {
+ RegistrationManager.INSTANCE.getMicroservice();
+ result = microservice;
+ microservice.getServiceName();
+ result = "ms";
+ }
+ };
Response response = inspector.downloadSchemas(SchemaFormat.HTML);
Part part = response.getResult();
Assert.assertEquals("ms.html.zip", part.getSubmittedFileName());
diff --git a/metrics/metrics-core/pom.xml b/metrics/metrics-core/pom.xml
index 2838f42..623f31d 100644
--- a/metrics/metrics-core/pom.xml
+++ b/metrics/metrics-core/pom.xml
@@ -41,7 +41,11 @@
<groupId>org.apache.servicecomb</groupId>
<artifactId>swagger-generator-jaxrs</artifactId>
</dependency>
-
+ <dependency>
+ <groupId>org.apache.servicecomb</groupId>
+ <artifactId>service-registry</artifactId>
+ <scope>test</scope>
+ </dependency>
<dependency>
<groupId>io.vertx</groupId>
<artifactId>vertx-codegen</artifactId>
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 4b4301d..7755c99 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
@@ -33,7 +33,7 @@ public class TestMetricsBootListener {
@Test
public void registerSchemas() {
- new SCBBootstrap().useLocalRegistry().createSCBEngineForTest().run();
+ SCBBootstrap.createSCBEngineForTest().run();
Microservice microservice = RegistrationManager.INSTANCE.getMicroservice();
microservice.getSchemas().contains("healthEndpoint");
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 7db5147..55961b8 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
@@ -105,7 +105,7 @@ public class PrometheusPublisher extends Collector implements Collector.Describa
List<String> labelValues = new ArrayList<>();
labelNames.add("appId");
- labelValues.add(RegistrationManager.INSTANCE.getMicroservice().getAppId());
+ labelValues.add(RegistrationManager.INSTANCE.getAppId());
for (Tag tag : measurement.id().tags()) {
labelNames.add(tag.key());
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 c48c688..b61c55d 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,6 +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.junit.AfterClass;
import org.junit.Assert;
import org.junit.Rule;
@@ -41,6 +42,7 @@ import com.netflix.spectator.api.Registry;
import com.sun.net.httpserver.HttpServer;
import io.prometheus.client.exporter.HTTPServer;
+import mockit.Expectations;
@SuppressWarnings("restriction")
public class TestPrometheusPublisher {
@@ -82,6 +84,12 @@ public class TestPrometheusPublisher {
@Test
public void collect() throws IllegalAccessException, IOException {
+ new Expectations(RegistrationManager.INSTANCE) {
+ {
+ RegistrationManager.INSTANCE.getAppId();
+ result = "testAppId";
+ }
+ };
ArchaiusUtils.setProperty(PrometheusPublisher.METRICS_PROMETHEUS_ADDRESS, "localhost:0");
publisher.init(globalRegistry, null, null);
diff --git a/providers/provider-pojo/pom.xml b/providers/provider-pojo/pom.xml
index 6f62447..7056341 100644
--- a/providers/provider-pojo/pom.xml
+++ b/providers/provider-pojo/pom.xml
@@ -31,6 +31,11 @@
<artifactId>java-chassis-core</artifactId>
</dependency>
<dependency>
+ <groupId>org.apache.servicecomb</groupId>
+ <artifactId>service-registry</artifactId>
+ <scope>test</scope>
+ </dependency>
+ <dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-log4j12</artifactId>
<scope>test</scope>
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 8f88361..3c5f325 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
@@ -21,11 +21,17 @@ import java.io.File;
import javax.servlet.http.Part;
+import org.apache.servicecomb.config.ConfigUtil;
import org.apache.servicecomb.core.SCBEngine;
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.serviceregistry.RegistryUtils;
+import org.junit.After;
import org.junit.Assert;
+import org.junit.Before;
import org.junit.Test;
import com.fasterxml.jackson.databind.JavaType;
@@ -33,231 +39,6 @@ import com.fasterxml.jackson.databind.JavaType;
import mockit.Deencapsulation;
public class TestInvoker {
-// @Rule
-// public ExpectedException expectedException = ExpectedException.none();
-//
-// SCBEngine scbEngine = new SCBEngine();
-//
-// @Before
-// public void setup() {
-// new MockUp<SCBEngine>() {
-// @Mock
-// SCBEngine getInstance() {
-// return scbEngine;
-// }
-// };
-// scbEngine.setStatus(SCBStatus.UP);
-// }
-//
-// @Test
-// public void testNormalSchemaId(@Injectable ConsumerProviderManager manager,
-// @Injectable ReferenceConfig config,
-// @Injectable MicroserviceMeta microserviceMeta) {
-// new Expectations() {
-// {
-// manager.getReferenceConfig("test");
-// result = config;
-// config.getMicroserviceMeta();
-// result = microserviceMeta;
-// }
-// };
-// scbEngine.setConsumerProviderManager(manager);
-// CseContext.getInstance().setSwaggerEnvironment(new BootstrapNormal().boot());
-//
-// Invoker invoker = new Invoker("test", "schemaId", IPerson.class);
-// InvokerMeta invokerMeta = invoker.createInvokerMeta();
-//
-// Assert.assertEquals(IPerson.class, invokerMeta.swaggerConsumer.getConsumerIntf());
-// }
-//
-// @Test
-// public void testFindSchemaByConsumerInterface(@Injectable ConsumerProviderManager manager,
-// @Injectable ReferenceConfig config,
-// @Injectable MicroserviceMeta microserviceMeta) {
-// new Expectations() {
-// {
-// manager.getReferenceConfig("test");
-// result = config;
-// config.getMicroserviceMeta();
-// result = microserviceMeta;
-// microserviceMeta.findSchemaMeta(IPerson.class);
-// }
-// };
-// scbEngine.setConsumerProviderManager(manager);
-// CseContext.getInstance().setSwaggerEnvironment(new BootstrapNormal().boot());
-//
-// Invoker invoker = new Invoker("test", null, IPerson.class);
-// InvokerMeta invokerMeta = invoker.createInvokerMeta();
-//
-// Assert.assertEquals(IPerson.class, invokerMeta.swaggerConsumer.getConsumerIntf());
-// }
-//
-// @Test
-// public void testConsumerInterfaceAsSchemaId(@Injectable ConsumerProviderManager manager,
-// @Injectable ReferenceConfig config,
-// @Injectable MicroserviceMeta microserviceMeta) {
-// new Expectations() {
-// {
-// manager.getReferenceConfig("test");
-// result = config;
-// config.getMicroserviceMeta();
-// result = microserviceMeta;
-// microserviceMeta.findSchemaMeta(IPerson.class);
-// result = null;
-// }
-// };
-// scbEngine.setConsumerProviderManager(manager);
-// CseContext.getInstance().setSwaggerEnvironment(new BootstrapNormal().boot());
-//
-// Invoker invoker = new Invoker("test", null, IPerson.class);
-// InvokerMeta invokerMeta = invoker.createInvokerMeta();
-// Assert.assertEquals(IPerson.class, invokerMeta.swaggerConsumer.getConsumerIntf());
-// }
-//
-// @Test
-// public void syncInvoke_normal(@Mocked Invocation invocation,
-// @Mocked SwaggerConsumerOperation consumerOperation,
-// @Mocked ConsumerResponseMapper mapper) {
-// Response response = Response.ok("1");
-// new MockUp<InvokerUtils>() {
-// @Mock
-// Response innerSyncInvoke(Invocation invocation) {
-// return response;
-// }
-// };
-// new Expectations() {
-// {
-// consumerOperation.getResponseMapper();
-// result = mapper;
-// mapper.mapResponse(response);
-// result = 1;
-// }
-// };
-//
-// Invoker invoker = new Invoker("test", null, IPerson.class);
-// Object result = invoker.syncInvoke(invocation, consumerOperation);
-// Assert.assertEquals(1, result);
-// }
-//
-// @Test
-// public void syncInvoke_failed(@Mocked Invocation invocation,
-// @Mocked SwaggerConsumerOperation consumerOperation,
-// @Mocked ConsumerResponseMapper mapper) {
-// Throwable error = new RuntimeExceptionWithoutStackTrace("failed");
-// Response response = Response.createConsumerFail(error);
-// new MockUp<InvokerUtils>() {
-// @Mock
-// Response innerSyncInvoke(Invocation invocation) {
-// return response;
-// }
-// };
-//
-// expectedException.expect(InvocationException.class);
-// expectedException.expectCause(Matchers.sameInstance(error));
-//
-// Invoker invoker = new Invoker("test", null, IPerson.class);
-// invoker.syncInvoke(invocation, consumerOperation);
-// }
-//
-// @Test
-// public void completableFutureInvoke_normal(@Mocked Invocation invocation,
-// @Mocked SwaggerConsumerOperation consumerOperation,
-// @Mocked ConsumerResponseMapper mapper) {
-// Response response = Response.ok("1");
-// new MockUp<InvokerUtils>() {
-// @Mock
-// void reactiveInvoke(Invocation invocation, AsyncResponse asyncResp) {
-// asyncResp.handle(response);
-// }
-// };
-// new Expectations() {
-// {
-// consumerOperation.getResponseMapper();
-// result = mapper;
-// mapper.mapResponse(response);
-// result = 1;
-// }
-// };
-//
-// Invoker invoker = new Invoker("test", null, IPerson.class);
-// CompletableFuture<Object> future = invoker.completableFutureInvoke(invocation, consumerOperation);
-// future.whenComplete((result, ex) -> {
-// Assert.assertEquals(1, result);
-// Assert.assertEquals(null, ex);
-// });
-//
-// Assert.assertThat(future, Matchers.instanceOf(InvocationContextCompletableFuture.class));
-// }
-//
-// @Test
-// public void completableFutureInvoke_failed(@Mocked Invocation invocation,
-// @Mocked SwaggerConsumerOperation consumerOperation,
-// @Mocked ConsumerResponseMapper mapper) {
-// Throwable error = new RuntimeExceptionWithoutStackTrace("failed");
-// Response response = Response.createConsumerFail(error);
-// new MockUp<InvokerUtils>() {
-// @Mock
-// void reactiveInvoke(Invocation invocation, AsyncResponse asyncResp) {
-// asyncResp.handle(response);
-// }
-// };
-//
-// Invoker invoker = new Invoker("test", null, IPerson.class);
-// CompletableFuture<Object> future = invoker.completableFutureInvoke(invocation, consumerOperation);
-// future.whenComplete((result, ex) -> {
-// Assert.assertEquals(null, result);
-// Assert.assertSame(error, ex);
-// });
-// }
-//
-// @Test
-// public void createInvokerMeta_schemaNotInContract(@Injectable ConsumerProviderManager manager,
-// @Injectable ReferenceConfig config,
-// @Injectable MicroserviceMeta microserviceMeta) {
-// new Expectations() {
-// {
-// manager.getReferenceConfig("test");
-// result = config;
-// config.getMicroserviceMeta();
-// result = microserviceMeta;
-// microserviceMeta.findSchemaMeta("schemaId");
-// result = null;
-// }
-// };
-// scbEngine.setConsumerProviderManager(manager);
-// CseContext.getInstance().setSwaggerEnvironment(new BootstrapNormal().boot());
-//
-// Invoker invoker = new Invoker("test", "schemaId", IPerson.class);
-//
-// expectedException.expect(IllegalStateException.class);
-// expectedException.expectMessage(Matchers
-// .is("Schema not exist, microserviceName=test, schemaId=schemaId, consumer interface=org.apache.servicecomb.provider.pojo.IPerson; "
-// + "new producer not running or not deployed."));
-// invoker.createInvokerMeta();
-// }
-//
-// @Test
-// public void invoke_methodNotInContract(@Mocked SwaggerConsumer swaggerConsumer,
-// @Mocked ReferenceConfig referenceConfig, @Mocked MicroserviceMeta microserviceMeta) {
-// Invoker invoker = new Invoker("test", null, IPerson.class);
-// InvokerMeta invokerMeta = new InvokerMeta(referenceConfig, microserviceMeta, null, swaggerConsumer);
-// Deencapsulation.setField(invoker, "invokerMeta", invokerMeta);
-// new Expectations() {
-// {
-// swaggerConsumer.findOperation(anyString);
-// result = null;
-// referenceConfig.getMicroserviceMeta();
-// result = microserviceMeta;
-// }
-// };
-//
-// expectedException.expect(IllegalStateException.class);
-// expectedException.expectMessage(Matchers
-// .is("Consumer method org.apache.servicecomb.provider.pojo.IPerson:trim not exist in contract, "
-// + "microserviceName=test, schemaId=null; new producer not running or not deployed."));
-// invoker.invoke(null, ReflectUtils.findMethod(String.class, "trim"), null);
-// }
-
public interface DownloadIntf {
ReadStreamPart download();
}
@@ -268,9 +49,21 @@ public class TestInvoker {
}
}
+ @Before
+ public void setUp() {
+ ConfigUtil.installDynamicConfig();
+ DiscoveryManager.renewInstance();
+ RegistryUtils.initWithLocalRegistry();
+ }
+
+ @After
+ public void teardown() {
+ ArchaiusUtils.resetConfig();
+ }
+
@Test
public void should_generate_response_meta_for_download() {
- SCBEngine scbEngine = new SCBBootstrap().useLocalRegistry().createSCBEngineForTest()
+ SCBEngine scbEngine = SCBBootstrap.createSCBEngineForTest()
.addProducerMeta("download", new DownloadSchema()).run();
Invoker invoker = new Invoker(scbEngine.getProducerMicroserviceMeta().getMicroserviceName(), "download",
DownloadIntf.class);
diff --git a/providers/provider-pojo/src/test/java/org/apache/servicecomb/provider/pojo/reference/PojoReferenceMetaTest.java b/providers/provider-pojo/src/test/java/org/apache/servicecomb/provider/pojo/reference/PojoReferenceMetaTest.java
index ea0de79..24509c4 100644
--- a/providers/provider-pojo/src/test/java/org/apache/servicecomb/provider/pojo/reference/PojoReferenceMetaTest.java
+++ b/providers/provider-pojo/src/test/java/org/apache/servicecomb/provider/pojo/reference/PojoReferenceMetaTest.java
@@ -30,7 +30,7 @@ import org.junit.Test;
public class PojoReferenceMetaTest {
@Test
public void testHasConsumerInterface() {
- SCBEngine scbEngine = new SCBBootstrap().useLocalRegistry().createSCBEngineForTest();
+ SCBEngine scbEngine = SCBBootstrap.createSCBEngineForTest();
PojoReferenceMeta pojoReferenceMeta = new PojoReferenceMeta();
pojoReferenceMeta.setMicroserviceName("test");
diff --git a/providers/provider-pojo/src/test/java/org/apache/servicecomb/provider/pojo/reference/TestRpcReferenceProcessor.java b/providers/provider-pojo/src/test/java/org/apache/servicecomb/provider/pojo/reference/TestRpcReferenceProcessor.java
index 1ed4237..6fa76da 100644
--- a/providers/provider-pojo/src/test/java/org/apache/servicecomb/provider/pojo/reference/TestRpcReferenceProcessor.java
+++ b/providers/provider-pojo/src/test/java/org/apache/servicecomb/provider/pojo/reference/TestRpcReferenceProcessor.java
@@ -39,7 +39,7 @@ public class TestRpcReferenceProcessor {
@Test
public void testReference(@Injectable ApplicationContext applicationContext) {
- SCBEngine scbEngine = new SCBBootstrap().useLocalRegistry().createSCBEngineForTest();
+ SCBEngine scbEngine = SCBBootstrap.createSCBEngineForTest();
PersonReference bean = new PersonReference();
diff --git a/providers/provider-springmvc/pom.xml b/providers/provider-springmvc/pom.xml
index 23aae4b..8511290 100644
--- a/providers/provider-springmvc/pom.xml
+++ b/providers/provider-springmvc/pom.xml
@@ -35,12 +35,22 @@
</dependency>
<dependency>
<groupId>org.apache.servicecomb</groupId>
+ <artifactId>service-registry</artifactId>
+ <scope>test</scope>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.servicecomb</groupId>
<artifactId>swagger-invocation-springmvc</artifactId>
</dependency>
<dependency>
<groupId>org.apache.servicecomb</groupId>
<artifactId>swagger-generator-springmvc</artifactId>
</dependency>
+ <dependency>
+ <groupId>org.apache.servicecomb</groupId>
+ <artifactId>foundation-test-scaffolding</artifactId>
+ <scope>test</scope>
+ </dependency>
<!-- compile CseHttpMessageConverter need this one .-->
<dependency>
<groupId>com.google.code.findbugs</groupId>
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 67621fc..637a71c 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
@@ -18,10 +18,13 @@ package org.apache.servicecomb.provider.springmvc.reference;
import java.net.URI;
+import org.apache.servicecomb.config.ConfigUtil;
import org.apache.servicecomb.core.Invocation;
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.RegistryUtils;
import org.apache.servicecomb.swagger.invocation.Response;
import org.junit.AfterClass;
import org.junit.Assert;
@@ -39,13 +42,16 @@ public class TestCseClientHttpRequest {
@BeforeClass
public static void classSetup() {
- scbEngine = new SCBBootstrap().useLocalRegistry().createSCBEngineForTest()
+ ConfigUtil.installDynamicConfig();
+ RegistryUtils.initWithLocalRegistry();
+ scbEngine = SCBBootstrap.createSCBEngineForTest()
.addProducerMeta("sid1", new SpringmvcImpl()).run();
}
@AfterClass
public static void classTeardown() {
scbEngine.destroy();
+ ArchaiusUtils.resetConfig();
}
@RequestMapping(path = "SpringmvcImpl")
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 1521689..ece0c38 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
@@ -20,11 +20,14 @@ package org.apache.servicecomb.provider.springmvc.reference.async;
import java.net.URI;
import java.util.concurrent.CompletableFuture;
+import org.apache.servicecomb.config.ConfigUtil;
import org.apache.servicecomb.core.Invocation;
import org.apache.servicecomb.core.SCBEngine;
import org.apache.servicecomb.core.bootstrap.SCBBootstrap;
import org.apache.servicecomb.foundation.common.Holder;
import org.apache.servicecomb.provider.springmvc.reference.CseClientHttpResponse;
+import org.apache.servicecomb.serviceregistry.DiscoveryManager;
+import org.apache.servicecomb.serviceregistry.RegistryUtils;
import org.apache.servicecomb.swagger.invocation.Response;
import org.junit.AfterClass;
import org.junit.Assert;
@@ -43,7 +46,10 @@ public class CseAsyncClientHttpRequestTest {
@BeforeClass
public static void classSetup() {
- scbEngine = new SCBBootstrap().useLocalRegistry().createSCBEngineForTest()
+ ConfigUtil.installDynamicConfig();
+ RegistryUtils.initWithLocalRegistry();
+ DiscoveryManager.renewInstance();
+ scbEngine = SCBBootstrap.createSCBEngineForTest()
.addProducerMeta("sid1", new CseAsyncClientHttpRequestTestSchema()).run();
}
diff --git a/service-registry/pom.xml b/service-registry/pom.xml
index 136ccb0..71e6908 100644
--- a/service-registry/pom.xml
+++ b/service-registry/pom.xml
@@ -53,7 +53,7 @@
<dependency>
<groupId>org.apache.servicecomb</groupId>
- <artifactId>java-chassis-core</artifactId>
+ <artifactId>foundation-registry</artifactId>
</dependency>
<dependency>
diff --git a/service-registry/src/main/java/org/apache/servicecomb/serviceregistry/RegistryUtils.java b/service-registry/src/main/java/org/apache/servicecomb/serviceregistry/RegistryUtils.java
index 2474ee8..6a6cd85 100644
--- a/service-registry/src/main/java/org/apache/servicecomb/serviceregistry/RegistryUtils.java
+++ b/service-registry/src/main/java/org/apache/servicecomb/serviceregistry/RegistryUtils.java
@@ -34,8 +34,6 @@ 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.serviceregistry.cache.InstanceCacheManager;
-import org.apache.servicecomb.serviceregistry.cache.InstanceCacheManagerNew;
import org.apache.servicecomb.serviceregistry.client.ServiceRegistryClient;
import org.apache.servicecomb.serviceregistry.client.http.MicroserviceInstances;
import org.apache.servicecomb.serviceregistry.config.ServiceRegistryConfig;
@@ -79,7 +77,15 @@ public final class RegistryUtils {
MicroserviceConfigLoader loader = ConfigUtil.getMicroserviceConfigLoader();
MicroserviceDefinition microserviceDefinition = new MicroserviceDefinition(loader.getConfigModels());
- initializeServiceRegistries(microserviceDefinition);
+ initializeServiceRegistriesWithConfig(microserviceDefinition);
+
+ initAggregateServiceRegistryCache();
+ }
+
+ public static synchronized void initWithLocalRegistry() {
+ MicroserviceConfigLoader loader = ConfigUtil.getMicroserviceConfigLoader();
+ MicroserviceDefinition microserviceDefinition = new MicroserviceDefinition(loader.getConfigModels());
+ initializeLocalServiceRegistries(microserviceDefinition);
initAggregateServiceRegistryCache();
}
@@ -97,9 +103,19 @@ public final class RegistryUtils {
.register(aggregateServiceRegistryCache));
}
- private static void initializeServiceRegistries(MicroserviceDefinition microserviceDefinition) {
+ private static void initializeServiceRegistriesWithConfig(MicroserviceDefinition microserviceDefinition) {
serviceRegistry =
ServiceRegistryFactory.create(ServiceRegistryConfig.INSTANCE, microserviceDefinition);
+ initializeServiceRegistries(microserviceDefinition);
+ }
+
+ private static void initializeLocalServiceRegistries(MicroserviceDefinition microserviceDefinition) {
+ serviceRegistry =
+ ServiceRegistryFactory.createLocal();
+ initializeServiceRegistries(microserviceDefinition);
+ }
+
+ private static void initializeServiceRegistries(MicroserviceDefinition microserviceDefinition) {
EXTRA_SERVICE_REGISTRY_CONFIGS.forEach((k, v) -> {
ServiceRegistry serviceRegistry = ServiceRegistryFactory.create(v, microserviceDefinition);
addExtraServiceRegistry(serviceRegistry);
diff --git a/service-registry/src/main/java/org/apache/servicecomb/serviceregistry/ServiceCenterRegistration.java b/service-registry/src/main/java/org/apache/servicecomb/serviceregistry/ServiceCenterRegistration.java
index ec0f69d..b7f3318 100644
--- a/service-registry/src/main/java/org/apache/servicecomb/serviceregistry/ServiceCenterRegistration.java
+++ b/service-registry/src/main/java/org/apache/servicecomb/serviceregistry/ServiceCenterRegistration.java
@@ -64,6 +64,11 @@ public class ServiceCenterRegistration implements Registration {
}
@Override
+ public String getAppId() {
+ return RegistryUtils.getAppId();
+ }
+
+ @Override
public boolean updateMicroserviceInstanceStatus(MicroserviceInstanceStatus status) {
RegistryUtils.executeOnEachServiceRegistry(sr -> new SuppressedRunnableWrapper(() -> {
MicroserviceInstance selfInstance = sr.getMicroserviceInstance();
diff --git a/service-registry/src/test/java/org/apache/servicecomb/serviceregistry/MockMicroserviceVersions.java b/service-registry/src/test/java/org/apache/servicecomb/serviceregistry/MockMicroserviceVersions.java
index b7dc262..6b9a74f 100644
--- a/service-registry/src/test/java/org/apache/servicecomb/serviceregistry/MockMicroserviceVersions.java
+++ b/service-registry/src/test/java/org/apache/servicecomb/serviceregistry/MockMicroserviceVersions.java
@@ -24,7 +24,6 @@ import java.util.List;
import java.util.Map;
import java.util.stream.Collectors;
-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.consumer.AppManager;
@@ -35,8 +34,6 @@ import org.apache.servicecomb.serviceregistry.version.Version;
import org.hamcrest.Matchers;
import org.junit.Assert;
-import com.google.common.eventbus.EventBus;
-
import mockit.Mock;
import mockit.MockUp;
@@ -49,19 +46,12 @@ public class MockMicroserviceVersions extends MicroserviceVersions {
public MockMicroserviceVersions() {
super(new AppManager(), "appId", "msName");
- ServiceRegistry serviceRegistry = new MockUp<ServiceRegistry>() {
+ new MockUp<DiscoveryManager>() {
@Mock
- Microservice getAggregatedRemoteMicroservice(String microserviceId) {
+ public Microservice getMicroservice(String microserviceId) {
return mockedMicroservices.get(microserviceId);
}
-
- @Mock
- EventBus getEventBus() {
- return EventManager.getEventBus();
- }
- }.getMockInstance();
-
- RegistryUtils.setServiceRegistry(serviceRegistry);
+ };
addMock("1.0.0", 2);
addMock("2.0.0", 2);
diff --git a/service-registry/src/test/java/org/apache/servicecomb/serviceregistry/TestConsumers.java b/service-registry/src/test/java/org/apache/servicecomb/serviceregistry/TestConsumers.java
index ec0f8d4..650ca14 100644
--- a/service-registry/src/test/java/org/apache/servicecomb/serviceregistry/TestConsumers.java
+++ b/service-registry/src/test/java/org/apache/servicecomb/serviceregistry/TestConsumers.java
@@ -19,10 +19,9 @@ package org.apache.servicecomb.serviceregistry;
import java.util.Arrays;
-import org.apache.servicecomb.config.ConfigUtil;
-import org.apache.servicecomb.foundation.test.scaffolding.config.ArchaiusUtils;
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;
@@ -35,7 +34,8 @@ import org.junit.Assert;
import org.junit.Before;
import org.junit.Test;
-import mockit.Expectations;
+import mockit.Mock;
+import mockit.MockUp;
public class TestConsumers extends TestRegistryBase {
@Before
@@ -105,10 +105,10 @@ public class TestConsumers extends TestRegistryBase {
@Test
public void deleteWhenCreateMicroserviceVersion() {
- new Expectations(RegistryUtils.getServiceRegistry()) {
- {
- RegistryUtils.getServiceRegistry().getAggregatedRemoteMicroservice(serviceId);
- result = null;
+ new MockUp<DiscoveryManager>() {
+ @Mock
+ public Microservice getMicroservice(String microserviceId) {
+ return null;
}
};
diff --git a/service-registry/src/test/java/org/apache/servicecomb/serviceregistry/TestRegistryBase.java b/service-registry/src/test/java/org/apache/servicecomb/serviceregistry/TestRegistryBase.java
index 0cfeda5..bec1add 100644
--- a/service-registry/src/test/java/org/apache/servicecomb/serviceregistry/TestRegistryBase.java
+++ b/service-registry/src/test/java/org/apache/servicecomb/serviceregistry/TestRegistryBase.java
@@ -67,6 +67,7 @@ public class TestRegistryBase {
serviceRegistry = ServiceRegistryFactory.createLocal("registry.yaml");
serviceRegistry.init();
+ DiscoveryManager.renewInstance();
appManager = DiscoveryManager.INSTANCE.getAppManager();
microserviceManager = appManager.getOrCreateMicroserviceManager(appId);
eventBus = serviceRegistry.getEventBus();
diff --git a/service-registry/src/test/java/org/apache/servicecomb/serviceregistry/cache/TestInstanceCacheManagerNew.java b/service-registry/src/test/java/org/apache/servicecomb/serviceregistry/cache/TestInstanceCacheManagerNew.java
index f9cc16f..a952f9a 100644
--- a/service-registry/src/test/java/org/apache/servicecomb/serviceregistry/cache/TestInstanceCacheManagerNew.java
+++ b/service-registry/src/test/java/org/apache/servicecomb/serviceregistry/cache/TestInstanceCacheManagerNew.java
@@ -17,10 +17,13 @@
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.MockMicroserviceVersions;
import org.apache.servicecomb.serviceregistry.consumer.AppManager;
import org.apache.servicecomb.serviceregistry.consumer.MicroserviceManager;
import org.apache.servicecomb.serviceregistry.definition.DefinitionConst;
+import org.junit.AfterClass;
import org.junit.Assert;
import org.junit.Before;
import org.junit.Test;
@@ -36,6 +39,7 @@ public class TestInstanceCacheManagerNew {
@Before
public void setup() {
+ ConfigUtil.installDynamicConfig();
mockMicroserviceVersions = new MockMicroserviceVersions();
appManager = mockMicroserviceVersions.getAppManager();
microserviceManager = appManager
@@ -43,6 +47,11 @@ public class TestInstanceCacheManagerNew {
mgr = new InstanceCacheManagerNew(mockMicroserviceVersions.getAppManager());
}
+ @AfterClass
+ public static void classTeardown() {
+ ArchaiusUtils.resetConfig();
+ }
+
@Test
public void getOrCreate() {
mockMicroserviceVersions.update_all();
diff --git a/service-registry/src/test/java/org/apache/servicecomb/serviceregistry/cache/TestMicroserviceInstanceCache.java b/service-registry/src/test/java/org/apache/servicecomb/serviceregistry/cache/TestMicroserviceInstanceCache.java
index 0e31341..acbddbc 100644
--- a/service-registry/src/test/java/org/apache/servicecomb/serviceregistry/cache/TestMicroserviceInstanceCache.java
+++ b/service-registry/src/test/java/org/apache/servicecomb/serviceregistry/cache/TestMicroserviceInstanceCache.java
@@ -17,12 +17,17 @@
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.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.client.ServiceRegistryClient;
+import org.junit.AfterClass;
import org.junit.Assert;
+import org.junit.Before;
import org.junit.Test;
import mockit.Expectations;
@@ -31,13 +36,22 @@ import mockit.MockUp;
import mockit.Mocked;
public class TestMicroserviceInstanceCache {
+ @Before
+ public void setup() {
+ ConfigUtil.installDynamicConfig();
+ }
+
+ @AfterClass
+ public static void classTeardown() {
+ ArchaiusUtils.resetConfig();
+ }
+
@Test
- public void testGetOrCreateMicroservice(@Mocked ServiceRegistry serviceRegistry,
- @Mocked ServiceRegistryClient client,
+ public void testGetOrCreateMicroservice(
@Mocked Microservice microservice) {
- new MockUp<RegistryUtils>() {
+ new MockUp<DiscoveryManager>() {
@Mock
- Microservice getAggregatedRemoteMicroservice(String microserviceId) {
+ public Microservice getMicroservice(String microserviceId) {
if ("forkedid".equals(microserviceId)) {
return microservice;
}
@@ -47,6 +61,7 @@ public class TestMicroserviceInstanceCache {
throw new IllegalArgumentException("unrecognized param");
}
};
+
Microservice cachedService = MicroserviceInstanceCache.getOrCreate("forkedid");
Assert.assertNotNull(cachedService);
cachedService = MicroserviceInstanceCache.getOrCreate("forkedid");
diff --git a/service-registry/src/test/java/org/apache/servicecomb/serviceregistry/config/TestConfigurePropertyUtils.java b/service-registry/src/test/java/org/apache/servicecomb/serviceregistry/config/TestConfigurePropertyUtils.java
index f6bd52f..05f590d 100644
--- a/service-registry/src/test/java/org/apache/servicecomb/serviceregistry/config/TestConfigurePropertyUtils.java
+++ b/service-registry/src/test/java/org/apache/servicecomb/serviceregistry/config/TestConfigurePropertyUtils.java
@@ -23,9 +23,7 @@ import java.util.Map;
import org.apache.commons.configuration.Configuration;
import org.apache.servicecomb.config.ConfigUtil;
-import org.apache.servicecomb.core.SCBEngine;
-import org.apache.servicecomb.deployment.Deployment;
-import org.apache.servicecomb.serviceregistry.api.Const;
+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.junit.Assert;
@@ -34,7 +32,7 @@ import org.junit.Test;
public class TestConfigurePropertyUtils {
@Test
public void testGetPropertiesWithPrefix() {
- SCBEngine.clearClassLoaderScopeProperty();
+ ClassLoaderScopeContext.clearClassLoaderScopeProperty();
Configuration configuration = ConfigUtil.createLocalConfig();
String prefix = "service_description.properties";
@@ -48,11 +46,11 @@ public class TestConfigurePropertyUtils {
Assert.assertEquals(paths.get(0).getPath(), "/test1/testpath");
Assert.assertEquals(paths.get(0).getProperty().get("checksession"), false);
- SCBEngine.setClassLoaderScopeProperty(DefinitionConst.URL_PREFIX, "/webroot");
+ ClassLoaderScopeContext.setClassLoaderScopeProperty(DefinitionConst.URL_PREFIX, "/webroot");
paths = ConfigurePropertyUtils.getMicroservicePaths(configuration);
Assert.assertEquals(2, paths.size());
Assert.assertEquals(paths.get(0).getPath(), "/webroot/test1/testpath");
Assert.assertEquals(paths.get(0).getProperty().get("checksession"), false);
- SCBEngine.clearClassLoaderScopeProperty();
+ ClassLoaderScopeContext.clearClassLoaderScopeProperty();
}
}
diff --git a/service-registry/src/test/java/org/apache/servicecomb/serviceregistry/consumer/TestMicroserviceVersionRuleFixed.java b/service-registry/src/test/java/org/apache/servicecomb/serviceregistry/consumer/TestMicroserviceVersionRuleFixed.java
index a927e54..3a00555 100644
--- a/service-registry/src/test/java/org/apache/servicecomb/serviceregistry/consumer/TestMicroserviceVersionRuleFixed.java
+++ b/service-registry/src/test/java/org/apache/servicecomb/serviceregistry/consumer/TestMicroserviceVersionRuleFixed.java
@@ -19,7 +19,10 @@ package org.apache.servicecomb.serviceregistry.consumer;
import java.util.Collections;
+import org.apache.servicecomb.config.ConfigUtil;
+import org.apache.servicecomb.foundation.test.scaffolding.config.ArchaiusUtils;
import org.apache.servicecomb.serviceregistry.MockMicroserviceVersions;
+import org.junit.AfterClass;
import org.junit.Assert;
import org.junit.Before;
import org.junit.Test;
@@ -31,11 +34,17 @@ public class TestMicroserviceVersionRuleFixed {
@Before
public void setup() {
+ ConfigUtil.installDynamicConfig();
mockMicroserviceVersions = new MockMicroserviceVersions();
microserviceVersionRule = mockMicroserviceVersions
.getOrCreateMicroserviceVersionRule("2.0.0");
}
+ @AfterClass
+ public static void classTeardown() {
+ ArchaiusUtils.resetConfig();
+ }
+
@Test
public void getVersionRule() {
Assert.assertEquals("2.0.0.0", microserviceVersionRule.getVersionRule().getVersionRule());
diff --git a/service-registry/src/test/java/org/apache/servicecomb/serviceregistry/consumer/TestMicroserviceVersionRuleLatest.java b/service-registry/src/test/java/org/apache/servicecomb/serviceregistry/consumer/TestMicroserviceVersionRuleLatest.java
index bdacf99..e7aa81b 100644
--- a/service-registry/src/test/java/org/apache/servicecomb/serviceregistry/consumer/TestMicroserviceVersionRuleLatest.java
+++ b/service-registry/src/test/java/org/apache/servicecomb/serviceregistry/consumer/TestMicroserviceVersionRuleLatest.java
@@ -19,8 +19,11 @@ package org.apache.servicecomb.serviceregistry.consumer;
import java.util.Collections;
+import org.apache.servicecomb.config.ConfigUtil;
+import org.apache.servicecomb.foundation.test.scaffolding.config.ArchaiusUtils;
import org.apache.servicecomb.serviceregistry.MockMicroserviceVersions;
import org.apache.servicecomb.serviceregistry.definition.DefinitionConst;
+import org.junit.AfterClass;
import org.junit.Assert;
import org.junit.Before;
import org.junit.Test;
@@ -32,11 +35,17 @@ public class TestMicroserviceVersionRuleLatest {
@Before
public void setup() {
+ ConfigUtil.installDynamicConfig();
mockMicroserviceVersions = new MockMicroserviceVersions();
microserviceVersionRule = mockMicroserviceVersions
.getOrCreateMicroserviceVersionRule(DefinitionConst.VERSION_RULE_LATEST);
}
+ @AfterClass
+ public static void classTeardown() {
+ ArchaiusUtils.resetConfig();
+ }
+
@Test
public void getVersionRule() {
Assert.assertEquals(DefinitionConst.VERSION_RULE_LATEST, microserviceVersionRule.getVersionRule().getVersionRule());
diff --git a/service-registry/src/test/java/org/apache/servicecomb/serviceregistry/diagnosis/instance/TestInstanceCacheCheckerMock.java b/service-registry/src/test/java/org/apache/servicecomb/serviceregistry/diagnosis/instance/TestInstanceCacheCheckerMock.java
index e2f8af1..0a0d484 100644
--- a/service-registry/src/test/java/org/apache/servicecomb/serviceregistry/diagnosis/instance/TestInstanceCacheCheckerMock.java
+++ b/service-registry/src/test/java/org/apache/servicecomb/serviceregistry/diagnosis/instance/TestInstanceCacheCheckerMock.java
@@ -18,8 +18,10 @@ package org.apache.servicecomb.serviceregistry.diagnosis.instance;
import java.util.ArrayList;
+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.serviceregistry.RegistryUtils;
import org.apache.servicecomb.serviceregistry.ServiceRegistry;
@@ -27,7 +29,6 @@ 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.AppManager;
import org.apache.servicecomb.serviceregistry.consumer.MicroserviceVersions;
import org.apache.servicecomb.serviceregistry.definition.DefinitionConst;
import org.apache.servicecomb.serviceregistry.diagnosis.Status;
@@ -40,15 +41,12 @@ import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import io.vertx.core.json.Json;
-import mockit.Deencapsulation;
import mockit.Mock;
import mockit.MockUp;
public class TestInstanceCacheCheckerMock {
private static final Logger LOGGER = LoggerFactory.getLogger(TestInstanceCacheCheckerWithoutMock.class);
- AppManager originalAppManager = DiscoveryManager.INSTANCE.getAppManager();
-
ServiceRegistry serviceRegistry = ServiceRegistryFactory.createLocal();
InstanceCacheChecker checker;
@@ -61,7 +59,7 @@ public class TestInstanceCacheCheckerMock {
@Before
public void setUp() throws Exception {
- Deencapsulation.setField(RegistryUtils.class, "appManager", new AppManager());
+ ConfigUtil.installDynamicConfig();
serviceRegistry.init();
RegistryUtils.setServiceRegistry(serviceRegistry);
@@ -74,7 +72,7 @@ public class TestInstanceCacheCheckerMock {
@After
public void tearDown() throws Exception {
-
+ ArchaiusUtils.resetConfig();
}
private Holder<MicroserviceInstances> createFindServiceInstancesResult() {
diff --git a/service-registry/src/test/java/org/apache/servicecomb/serviceregistry/diagnosis/instance/TestInstanceCacheCheckerWithoutMock.java b/service-registry/src/test/java/org/apache/servicecomb/serviceregistry/diagnosis/instance/TestInstanceCacheCheckerWithoutMock.java
index fe05c6f..2c688a4 100644
--- a/service-registry/src/test/java/org/apache/servicecomb/serviceregistry/diagnosis/instance/TestInstanceCacheCheckerWithoutMock.java
+++ b/service-registry/src/test/java/org/apache/servicecomb/serviceregistry/diagnosis/instance/TestInstanceCacheCheckerWithoutMock.java
@@ -18,12 +18,13 @@ package org.apache.servicecomb.serviceregistry.diagnosis.instance;
import java.util.Arrays;
+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.serviceregistry.RegistryUtils;
import org.apache.servicecomb.serviceregistry.ServiceRegistry;
-import org.apache.servicecomb.serviceregistry.consumer.AppManager;
import org.apache.servicecomb.serviceregistry.consumer.MicroserviceVersionRule;
import org.apache.servicecomb.serviceregistry.definition.DefinitionConst;
import org.apache.servicecomb.serviceregistry.diagnosis.Status;
@@ -36,13 +37,10 @@ import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import io.vertx.core.json.Json;
-import mockit.Deencapsulation;
public class TestInstanceCacheCheckerWithoutMock {
private static final Logger LOGGER = LoggerFactory.getLogger(TestInstanceCacheCheckerWithoutMock.class);
- AppManager originalAppManager = DiscoveryManager.INSTANCE.getAppManager();
-
ServiceRegistry serviceRegistry = ServiceRegistryFactory.createLocal();
InstanceCacheChecker checker;
@@ -55,7 +53,9 @@ public class TestInstanceCacheCheckerWithoutMock {
@Before
public void setUp() throws Exception {
- Deencapsulation.setField(RegistryUtils.class, "appManager", new AppManager());
+ ConfigUtil.installDynamicConfig();
+
+ DiscoveryManager.renewInstance();
serviceRegistry.init();
RegistryUtils.setServiceRegistry(serviceRegistry);
@@ -68,8 +68,7 @@ public class TestInstanceCacheCheckerWithoutMock {
@After
public void tearDown() throws Exception {
- Deencapsulation.setField(RegistryUtils.class, "appManager", originalAppManager);
- RegistryUtils.setServiceRegistry(null);
+ ArchaiusUtils.resetConfig();
}
@Test
diff --git a/service-registry/src/test/java/org/apache/servicecomb/serviceregistry/task/TestMicroserviceInstanceRegisterTask.java b/service-registry/src/test/java/org/apache/servicecomb/serviceregistry/task/TestMicroserviceInstanceRegisterTask.java
index ff7119a..2904a7f 100644
--- a/service-registry/src/test/java/org/apache/servicecomb/serviceregistry/task/TestMicroserviceInstanceRegisterTask.java
+++ b/service-registry/src/test/java/org/apache/servicecomb/serviceregistry/task/TestMicroserviceInstanceRegisterTask.java
@@ -19,6 +19,9 @@ package org.apache.servicecomb.serviceregistry.task;
import java.util.ArrayList;
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.serviceregistry.RegistryUtils;
import org.apache.servicecomb.serviceregistry.api.registry.HealthCheck;
import org.apache.servicecomb.serviceregistry.api.registry.HealthCheckMode;
@@ -26,6 +29,7 @@ import org.apache.servicecomb.serviceregistry.api.registry.Microservice;
import org.apache.servicecomb.serviceregistry.api.registry.MicroserviceInstance;
import org.apache.servicecomb.serviceregistry.client.ServiceRegistryClient;
import org.apache.servicecomb.serviceregistry.config.ServiceRegistryConfig;
+import org.junit.AfterClass;
import org.junit.Assert;
import org.junit.Before;
import org.junit.Test;
@@ -51,6 +55,7 @@ public class TestMicroserviceInstanceRegisterTask {
@Before
public void setup() {
+ ConfigUtil.installDynamicConfig();
eventBus = new EventBus();
taskList = new ArrayList<>();
@@ -73,6 +78,11 @@ public class TestMicroserviceInstanceRegisterTask {
microservice.getInstance().setHealthCheck(healthCheck);
}
+ @AfterClass
+ public static void classTeardown() {
+ ArchaiusUtils.resetConfig();
+ }
+
@Test
public void microserviceNotRegistered() {
microservice.setServiceId(null);
@@ -88,6 +98,12 @@ public class TestMicroserviceInstanceRegisterTask {
@Test
public void registerIpSuccess() {
MicroserviceInstance instance = microservice.getInstance();
+ new Expectations(RegistrationManager.class) {
+ {
+ RegistrationManager.getPublishAddress();
+ result = "127.0.0.1";
+ }
+ };
new Expectations(RegistryUtils.class) {
{
serviceRegistryConfig.isPreferIpAddress();
@@ -116,6 +132,12 @@ public class TestMicroserviceInstanceRegisterTask {
@Test
public void registerHostSuccess() {
MicroserviceInstance instance = microservice.getInstance();
+ new Expectations(RegistrationManager.class) {
+ {
+ RegistrationManager.getPublishHostName();
+ result = "hostName";
+ }
+ };
new Expectations(RegistryUtils.class) {
{
serviceRegistryConfig.isPreferIpAddress();
@@ -144,6 +166,12 @@ public class TestMicroserviceInstanceRegisterTask {
@Test
public void registerIpFailed() {
MicroserviceInstance instance = microservice.getInstance();
+ new Expectations(RegistrationManager.class) {
+ {
+ RegistrationManager.getPublishAddress();
+ result = "127.0.0.1";
+ }
+ };
new Expectations(RegistryUtils.class) {
{
serviceRegistryConfig.isPreferIpAddress();
diff --git a/transports/transport-rest/transport-rest-servlet/pom.xml b/transports/transport-rest/transport-rest-servlet/pom.xml
index f034fab..066675c 100644
--- a/transports/transport-rest/transport-rest-servlet/pom.xml
+++ b/transports/transport-rest/transport-rest-servlet/pom.xml
@@ -41,7 +41,11 @@
<groupId>org.apache.servicecomb</groupId>
<artifactId>transport-rest-client</artifactId>
</dependency>
-
+ <dependency>
+ <groupId>org.apache.servicecomb</groupId>
+ <artifactId>service-registry</artifactId>
+ <scope>test</scope>
+ </dependency>
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-log4j12</artifactId>
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 1af687e..da3e949 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
@@ -21,8 +21,8 @@ import java.util.HashMap;
import java.util.Map;
import org.apache.servicecomb.core.Invocation;
-import org.apache.servicecomb.core.SCBEngine;
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.swagger.invocation.AsyncResponse;
import org.apache.servicecomb.transport.rest.client.RestTransportClient;
@@ -59,7 +59,7 @@ public class ServletRestTransport extends AbstractTransport {
@Override
public boolean init() {
- String urlPrefix = SCBEngine.getClassLoaderScopeProperty(DefinitionConst.URL_PREFIX);
+ String urlPrefix = ClassLoaderScopeContext.getClassLoaderScopeProperty(DefinitionConst.URL_PREFIX);
Map<String, String> queryMap = new HashMap<>();
if (!StringUtils.isEmpty(urlPrefix)) {
queryMap.put(DefinitionConst.URL_PREFIX, urlPrefix);
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 c4418d9..d6479c8 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
@@ -29,10 +29,10 @@ import javax.servlet.ServletRegistration;
import javax.servlet.ServletRegistration.Dynamic;
import org.apache.servicecomb.common.rest.UploadConfig;
-import org.apache.servicecomb.core.SCBEngine;
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.slf4j.Logger;
import org.slf4j.LoggerFactory;
@@ -133,7 +133,7 @@ public class ServletUtils {
return;
}
- SCBEngine.setClassLoaderScopeProperty(DefinitionConst.URL_PREFIX, urlPrefix);
+ ClassLoaderScopeContext.setClassLoaderScopeProperty(DefinitionConst.URL_PREFIX, urlPrefix);
LOGGER.info("UrlPrefix of this instance is \"{}\".", urlPrefix);
}
diff --git a/transports/transport-rest/transport-rest-servlet/src/test/java/org/apache/servicecomb/transport/rest/servlet/TestRestServlet.java b/transports/transport-rest/transport-rest-servlet/src/test/java/org/apache/servicecomb/transport/rest/servlet/TestRestServlet.java
index 560fa2f..eb2564c 100644
--- a/transports/transport-rest/transport-rest-servlet/src/test/java/org/apache/servicecomb/transport/rest/servlet/TestRestServlet.java
+++ b/transports/transport-rest/transport-rest-servlet/src/test/java/org/apache/servicecomb/transport/rest/servlet/TestRestServlet.java
@@ -40,7 +40,7 @@ public class TestRestServlet {
public void setUp() {
restservlet = new RestServlet();
- new SCBBootstrap().useLocalRegistry().createSCBEngineForTest();
+ SCBBootstrap.createSCBEngineForTest();
}
@After
diff --git a/transports/transport-rest/transport-rest-servlet/src/test/java/org/apache/servicecomb/transport/rest/servlet/TestServletRestDispatcher.java b/transports/transport-rest/transport-rest-servlet/src/test/java/org/apache/servicecomb/transport/rest/servlet/TestServletRestDispatcher.java
index 6b2c766..7198365 100644
--- a/transports/transport-rest/transport-rest-servlet/src/test/java/org/apache/servicecomb/transport/rest/servlet/TestServletRestDispatcher.java
+++ b/transports/transport-rest/transport-rest-servlet/src/test/java/org/apache/servicecomb/transport/rest/servlet/TestServletRestDispatcher.java
@@ -53,7 +53,7 @@ public class TestServletRestDispatcher {
@Before
public void setup() {
- new SCBBootstrap().useLocalRegistry().createSCBEngineForTest().setTransportManager(transportManager);
+ SCBBootstrap.createSCBEngineForTest().setTransportManager(transportManager);
}
@After
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 95872ca..0fdf0d3 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
@@ -20,7 +20,7 @@ package org.apache.servicecomb.transport.rest.servlet;
import java.io.IOException;
import java.net.ServerSocket;
-import org.apache.servicecomb.core.SCBEngine;
+import org.apache.servicecomb.foundation.common.utils.ClassLoaderScopeContext;
import org.apache.servicecomb.serviceregistry.definition.DefinitionConst;
import org.apache.servicecomb.transport.rest.client.RestTransportClient;
import org.apache.servicecomb.transport.rest.client.RestTransportClientManager;
@@ -38,7 +38,7 @@ public class TestServletRestTransport {
@After
public void tearDown() {
- SCBEngine.clearClassLoaderScopeProperty();
+ ClassLoaderScopeContext.clearClassLoaderScopeProperty();
}
@Test
@@ -95,10 +95,10 @@ public class TestServletRestTransport {
result = "1.1.1.1:1234";
}
};
- SCBEngine.setClassLoaderScopeProperty(DefinitionConst.URL_PREFIX, "/root");
+ ClassLoaderScopeContext.setClassLoaderScopeProperty(DefinitionConst.URL_PREFIX, "/root");
Assert.assertTrue(transport.init());
- Assert.assertEquals("rest://1.1.1.1:1234?urlPrefix=/root", transport.getPublishEndpoint().getEndpoint());
+ Assert.assertEquals("rest://1.1.1.1:1234?urlPrefix=%2Froot", transport.getPublishEndpoint().getEndpoint());
}
@Test
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 d36f16b..3a6abc0 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
@@ -36,8 +36,8 @@ import javax.servlet.ServletRegistration.Dynamic;
import javax.servlet.http.HttpServlet;
import org.apache.servicecomb.common.rest.RestConst;
-import org.apache.servicecomb.core.SCBEngine;
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.hamcrest.Matchers;
@@ -175,18 +175,18 @@ public class TestServletUtils {
@Test
public void testSaveUrlPrefixNull(@Mocked ServletContext servletContext) {
- SCBEngine.clearClassLoaderScopeProperty();
+ ClassLoaderScopeContext.clearClassLoaderScopeProperty();
ServletUtils.saveUrlPrefix(servletContext);
- Assert.assertNull(SCBEngine.getClassLoaderScopeProperty(DefinitionConst.URL_PREFIX));
- SCBEngine.clearClassLoaderScopeProperty();
+ Assert.assertNull(ClassLoaderScopeContext.getClassLoaderScopeProperty(DefinitionConst.URL_PREFIX));
+ ClassLoaderScopeContext.clearClassLoaderScopeProperty();
}
@Test
public void testSaveUrlPrefixNormal(@Mocked ServletContext servletContext,
@Mocked ServletRegistration servletRegistration) {
- SCBEngine.clearClassLoaderScopeProperty();
+ ClassLoaderScopeContext.clearClassLoaderScopeProperty();
new Expectations() {
{
servletContext.getContextPath();
@@ -202,8 +202,9 @@ public class TestServletUtils {
ServletUtils.saveUrlPrefix(servletContext);
- Assert.assertThat(SCBEngine.getClassLoaderScopeProperty(DefinitionConst.URL_PREFIX), Matchers.is("/root/rest"));
- SCBEngine.clearClassLoaderScopeProperty();
+ Assert.assertThat(ClassLoaderScopeContext.getClassLoaderScopeProperty(DefinitionConst.URL_PREFIX),
+ Matchers.is("/root/rest"));
+ ClassLoaderScopeContext.clearClassLoaderScopeProperty();
}
@Test
diff --git a/transports/transport-rest/transport-rest-vertx/pom.xml b/transports/transport-rest/transport-rest-vertx/pom.xml
index e2da906..cf82359 100644
--- a/transports/transport-rest/transport-rest-vertx/pom.xml
+++ b/transports/transport-rest/transport-rest-vertx/pom.xml
@@ -37,7 +37,11 @@
<artifactId>vertx-codegen</artifactId>
<scope>provided</scope>
</dependency>
-
+ <dependency>
+ <groupId>org.apache.servicecomb</groupId>
+ <artifactId>service-registry</artifactId>
+ <scope>test</scope>
+ </dependency>
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-log4j12</artifactId>
diff --git a/transports/transport-rest/transport-rest-vertx/src/test/java/org/apache/servicecomb/transport/rest/vertx/TestRestServerVerticle.java b/transports/transport-rest/transport-rest-vertx/src/test/java/org/apache/servicecomb/transport/rest/vertx/TestRestServerVerticle.java
index 6f758b4..ee24cf6 100644
--- a/transports/transport-rest/transport-rest-vertx/src/test/java/org/apache/servicecomb/transport/rest/vertx/TestRestServerVerticle.java
+++ b/transports/transport-rest/transport-rest-vertx/src/test/java/org/apache/servicecomb/transport/rest/vertx/TestRestServerVerticle.java
@@ -66,7 +66,7 @@ public class TestRestServerVerticle {
instance = new RestServerVerticle();
startFuture = Future.future();
- new SCBBootstrap().useLocalRegistry().createSCBEngineForTest();
+ SCBBootstrap.createSCBEngineForTest();
}
@After
diff --git a/transports/transport-rest/transport-rest-vertx/src/test/java/org/apache/servicecomb/transport/rest/vertx/TestVertxRestDispatcher.java b/transports/transport-rest/transport-rest-vertx/src/test/java/org/apache/servicecomb/transport/rest/vertx/TestVertxRestDispatcher.java
index 1bd00f1..3b9ac5c 100644
--- a/transports/transport-rest/transport-rest-vertx/src/test/java/org/apache/servicecomb/transport/rest/vertx/TestVertxRestDispatcher.java
+++ b/transports/transport-rest/transport-rest-vertx/src/test/java/org/apache/servicecomb/transport/rest/vertx/TestVertxRestDispatcher.java
@@ -95,7 +95,7 @@ public class TestVertxRestDispatcher {
}
};
- new SCBBootstrap().useLocalRegistry().createSCBEngineForTest().setTransportManager(transportManager);
+ SCBBootstrap.createSCBEngineForTest().setTransportManager(transportManager);
}
@After