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/08/31 03:23:39 UTC
[servicecomb-java-chassis] branch master updated: [SCB-2075]change
service definition configuration keys (#1933)
This is an automated email from the ASF dual-hosted git repository.
liubao pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/servicecomb-java-chassis.git
The following commit(s) were added to refs/heads/master by this push:
new 1ea823b [SCB-2075]change service definition configuration keys (#1933)
1ea823b is described below
commit 1ea823b8b90d7854e75603928dc2baf245f8be1c
Author: bao liu <bi...@qq.com>
AuthorDate: Mon Aug 31 11:23:30 2020 +0800
[SCB-2075]change service definition configuration keys (#1933)
* [SCB-2075]change service definition configuration keys
* [SCB-2075]fix bugs
---
.../definition/schema/StaticSchemaFactoryTest.java | 144 ----------
.../src/main/resources/microservice.yaml | 7 +-
.../src/main/resources/microservice.yaml | 7 +-
.../config/client/ConfigCenterConfig.java | 22 +-
.../servicecomb/config/kie/client/KieConfig.java | 23 +-
.../common/base/ServiceCombConstants.java | 27 --
.../servicecomb/config/BootStrapProperties.java | 296 +++++++++++++++++++++
.../org/apache/servicecomb/config/ConfigUtil.java | 5 +-
.../servicecomb/registry/DiscoveryManager.java | 7 -
.../registry/api/registry/MicroserviceFactory.java | 59 ++--
.../api/registry/MicroserviceInstance.java | 10 +-
.../registry/config/AbstractPropertiesLoader.java | 46 +---
.../registry/config/ConfigurePropertyUtils.java | 3 +-
.../registry/config/InstancePropertiesLoader.java | 15 +-
.../config/MicroservicePropertiesLoader.java | 14 +-
.../registry/definition/DefinitionConst.java | 25 +-
.../definition/MicroserviceDefinition.java | 154 -----------
.../config/TestAbstractPropertiesLoader.java | 10 +-
.../tracing/zipkin/TracingConfiguration.java | 6 +-
.../apache/servicecomb/it/schema/TraceSchema.java | 7 +-
.../localregistry/LocalRegistryStore.java | 7 +-
.../servicecomb/localregistry/RegistryBean.java | 14 +-
.../schemadiscovery/SchemaDiscovery.java | 6 +-
.../servicecomb/serviceregistry/RegistryUtils.java | 17 +-
.../serviceregistry/ServiceRegistry.java | 2 -
.../registry/AbstractServiceRegistry.java | 15 +-
.../registry/RemoteServiceRegistry.java | 6 +-
.../registry/ServiceRegistryFactory.java | 10 +-
.../task/MicroserviceRegisterTask.java | 11 +-
.../api/registry/TestMicroserviceFactory.java | 83 ++----
.../client/LocalServiceRegistryClientImpl.java | 19 +-
.../client/http/TestClientHttp.java | 11 +-
.../client/http/TestServiceRegistryClientImpl.java | 18 +-
.../config/TestPropertiesLoader.java | 45 ++--
.../registry/EmptyMockServiceRegistry.java | 6 -
.../registry/LocalServiceRegistry.java | 6 +-
.../registry/LocalServiceRegistryFactory.java | 15 +-
.../registry/TestRemoteServiceRegistry.java | 14 +-
.../registry/TestServiceRegistryFactory.java | 19 +-
.../src/test/resources/microservice.yaml | 4 +-
.../zeroconfig/client/ZeroConfigClient.java | 32 ++-
41 files changed, 537 insertions(+), 710 deletions(-)
diff --git a/core/src/test/java/org/apache/servicecomb/core/definition/schema/StaticSchemaFactoryTest.java b/core/src/test/java/org/apache/servicecomb/core/definition/schema/StaticSchemaFactoryTest.java
deleted file mode 100644
index ac21d45..0000000
--- a/core/src/test/java/org/apache/servicecomb/core/definition/schema/StaticSchemaFactoryTest.java
+++ /dev/null
@@ -1,144 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package org.apache.servicecomb.core.definition.schema;
-
-public class StaticSchemaFactoryTest {
-//
-// private static final StaticSchemaFactory staticSchemaFactory = new StaticSchemaFactory();
-//
-// private static final String APPLICATION_ID_KEY = "APPLICATION_ID";
-//
-// private static final String APP_ID_VALUE = "appIdTest";
-//
-// @BeforeClass
-// public static void beforeClass() {
-// System.setProperty(APPLICATION_ID_KEY, APP_ID_VALUE);
-// new UnitTestMeta();
-//
-// SchemaLoader schemaLoader = new SchemaLoader();
-// ReflectUtils.setField(staticSchemaFactory, "schemaLoader", schemaLoader);
-// }
-//
-// @AfterClass
-// public static void afterClass() {
-// TestProducerSchemaFactory.teardown();
-// System.clearProperty(APPLICATION_ID_KEY);
-// }
-//
-// @Test
-// public void testLoadSchema() {
-// String serviceAndSchemaName = "3rdPartyService";
-// StaticMicroservice staticMicroservice = new StaticMicroservice();
-// staticMicroservice.setSchemaIntfCls(Test3rdPartyServiceIntf.class);
-// MicroserviceMeta microserviceMeta = new MicroserviceMeta(serviceAndSchemaName);
-// staticSchemaFactory.loadSchema(microserviceMeta, staticMicroservice);
-//
-// SchemaMeta schemaMeta = microserviceMeta.findSchemaMeta(serviceAndSchemaName);
-// Assert.assertEquals(EXPECTED_SCHEMA_CONTENT,
-// SwaggerUtils.swaggerToString(schemaMeta.getSwagger()));
-//
-// Assert.assertEquals(2, schemaMeta.getOperations().size());
-// OperationMeta operationMeta = schemaMeta.ensureFindOperation("add");
-// Assert.assertEquals("add", operationMeta.getOperationId());
-// Method swaggerProducerMethod = operationMeta.getMethod();
-// Class<?>[] parameterTypes = swaggerProducerMethod.getParameterTypes();
-// Assert.assertEquals(2, parameterTypes.length);
-// Assert.assertEquals(Integer.class, parameterTypes[0]);
-// Assert.assertEquals(Integer.class, parameterTypes[1]);
-// Assert.assertEquals(Integer.class, swaggerProducerMethod.getGenericReturnType());
-//
-// operationMeta = schemaMeta.ensureFindOperation("addAsync");
-// Assert.assertEquals("addAsync", operationMeta.getOperationId());
-// swaggerProducerMethod = operationMeta.getMethod();
-// parameterTypes = swaggerProducerMethod.getParameterTypes();
-// Assert.assertEquals(2, parameterTypes.length);
-// Assert.assertEquals(Integer.class, parameterTypes[0]);
-// Assert.assertEquals(Integer.class, parameterTypes[1]);
-// // ensure reactive operation's return type is set correctly, not CompletableFuture<T>
-// Assert.assertEquals(Integer.class, swaggerProducerMethod.getGenericReturnType());
-// }
-//
-// @Path("/3rdParty")
-// interface Test3rdPartyServiceIntf {
-//
-// @Path("/add")
-// @GET
-// int add(@QueryParam("x") int x, @QueryParam("y") int y);
-//
-// @Path("/addAsync")
-// @GET
-// CompletableFuture<Integer> addAsync(@QueryParam("x") int x, @QueryParam("y") int y);
-// }
-//
-// private static final String EXPECTED_SCHEMA_CONTENT = "---\n"
-// + "swagger: \"2.0\"\n"
-// + "info:\n"
-// + " version: \"1.0.0\"\n"
-// + " title: \"swagger definition for org.apache.servicecomb.core.definition.schema.StaticSchemaFactoryTest$Test3rdPartyServiceIntf\"\n"
-// + " x-java-interface: \"cse.gen.appIdTest._3rdPartyService._3rdPartyService.Test3rdPartyServiceIntfIntf\"\n"
-// + "basePath: \"/3rdParty\"\n"
-// + "consumes:\n"
-// + "- \"application/json\"\n"
-// + "produces:\n"
-// + "- \"application/json\"\n"
-// + "paths:\n"
-// + " /add:\n"
-// + " get:\n"
-// + " operationId: \"add\"\n"
-// + " parameters:\n"
-// + " - name: \"x\"\n"
-// + " in: \"query\"\n"
-// + " required: false\n"
-// + " type: \"integer\"\n"
-// + " default: 0\n"
-// + " format: \"int32\"\n"
-// + " - name: \"y\"\n"
-// + " in: \"query\"\n"
-// + " required: false\n"
-// + " type: \"integer\"\n"
-// + " default: 0\n"
-// + " format: \"int32\"\n"
-// + " responses:\n"
-// + " 200:\n"
-// + " description: \"response of 200\"\n"
-// + " schema:\n"
-// + " type: \"integer\"\n"
-// + " format: \"int32\"\n"
-// + " /addAsync:\n"
-// + " get:\n"
-// + " operationId: \"addAsync\"\n"
-// + " parameters:\n"
-// + " - name: \"x\"\n"
-// + " in: \"query\"\n"
-// + " required: false\n"
-// + " type: \"integer\"\n"
-// + " default: 0\n"
-// + " format: \"int32\"\n"
-// + " - name: \"y\"\n"
-// + " in: \"query\"\n"
-// + " required: false\n"
-// + " type: \"integer\"\n"
-// + " default: 0\n"
-// + " format: \"int32\"\n"
-// + " responses:\n"
-// + " 200:\n"
-// + " description: \"response of 200\"\n"
-// + " schema:\n"
-// + " type: \"integer\"\n"
-// + " format: \"int32\"\n";
-}
\ No newline at end of file
diff --git a/demo/demo-jaxrs/jaxrs-client/src/main/resources/microservice.yaml b/demo/demo-jaxrs/jaxrs-client/src/main/resources/microservice.yaml
index c824285..89a8e48 100644
--- a/demo/demo-jaxrs/jaxrs-client/src/main/resources/microservice.yaml
+++ b/demo/demo-jaxrs/jaxrs-client/src/main/resources/microservice.yaml
@@ -15,12 +15,11 @@
## limitations under the License.
## ---------------------------------------------------------------------------
-APPLICATION_ID: jaxrstest
-service_description:
- name: jaxrsClient
- version: 0.0.1
servicecomb:
service:
+ application: jaxrstest
+ name: jaxrsClient
+ version: 0.0.1
registry:
address: http://127.0.0.1:30100
handler:
diff --git a/demo/demo-jaxrs/jaxrs-server/src/main/resources/microservice.yaml b/demo/demo-jaxrs/jaxrs-server/src/main/resources/microservice.yaml
index 83ed4f4..76d1821 100644
--- a/demo/demo-jaxrs/jaxrs-server/src/main/resources/microservice.yaml
+++ b/demo/demo-jaxrs/jaxrs-server/src/main/resources/microservice.yaml
@@ -15,12 +15,11 @@
## limitations under the License.
## ---------------------------------------------------------------------------
-APPLICATION_ID: jaxrstest
-service_description:
- name: jaxrs
- version: 0.0.2
servicecomb:
service:
+ application: jaxrstest
+ name: jaxrs
+ version: 0.0.2
registry:
address: http://127.0.0.1:30100
rest:
diff --git a/dynamic-config/config-cc/src/main/java/org/apache/servicecomb/config/client/ConfigCenterConfig.java b/dynamic-config/config-cc/src/main/java/org/apache/servicecomb/config/client/ConfigCenterConfig.java
index e0ff19a..609dae9 100644
--- a/dynamic-config/config-cc/src/main/java/org/apache/servicecomb/config/client/ConfigCenterConfig.java
+++ b/dynamic-config/config-cc/src/main/java/org/apache/servicecomb/config/client/ConfigCenterConfig.java
@@ -17,11 +17,9 @@
package org.apache.servicecomb.config.client;
-import static org.apache.servicecomb.foundation.common.base.ServiceCombConstants.DEFAULT_SERVICECOMB_ENV;
-import static org.apache.servicecomb.foundation.common.base.ServiceCombConstants.SERVICECOMB_ENV;
-
import java.util.List;
+import org.apache.servicecomb.config.BootStrapProperties;
import org.apache.servicecomb.deployment.Deployment;
import org.apache.servicecomb.deployment.DeploymentProvider;
import org.apache.servicecomb.foundation.vertx.VertxConst;
@@ -52,14 +50,6 @@ public final class ConfigCenterConfig {
private static final String FIRST_REFRESH_INTERVAL = "servicecomb.config.client.first_refresh_interval";
- private static final String SERVICE_NAME = "service_description.name";
-
- private static final String SERVICE_VERSION = "service_description.version";
-
- private static final String APPLICATION_NAME = "APPLICATION_ID";
-
- private static final String INSTANCE_TAGS = "instance_description.properties.tags";
-
public static final String CONNECTION_TIME_OUT = "servicecomb.config.client.timeout.connection";
public static final String EVENT_LOOP_SIZE = "servicecomb.config.client.eventLoopSize";
@@ -141,19 +131,19 @@ public final class ConfigCenterConfig {
@SuppressWarnings("unchecked")
public String getServiceName() {
- String service = finalConfig.getString(SERVICE_NAME);
- String appName = finalConfig.getString(APPLICATION_NAME);
+ String service = BootStrapProperties.readServiceName(finalConfig);
+ String appName = BootStrapProperties.readApplication(finalConfig);
String tags;
if (appName != null) {
service = service + "@" + appName;
}
- String serviceVersion = finalConfig.getString(SERVICE_VERSION);
+ String serviceVersion = BootStrapProperties.readServiceVersion(finalConfig);
if (serviceVersion != null) {
service = service + "#" + serviceVersion;
}
- Object o = finalConfig.getProperty(INSTANCE_TAGS);
+ Object o = BootStrapProperties.readServiceInstanceTags(finalConfig);
if (o == null) {
return service;
}
@@ -191,6 +181,6 @@ public final class ConfigCenterConfig {
}
public String getEnvironment() {
- return finalConfig.getString(SERVICECOMB_ENV, DEFAULT_SERVICECOMB_ENV);
+ return BootStrapProperties.readServiceEnvironment(finalConfig);
}
}
diff --git a/dynamic-config/config-kie/src/main/java/org/apache/servicecomb/config/kie/client/KieConfig.java b/dynamic-config/config-kie/src/main/java/org/apache/servicecomb/config/kie/client/KieConfig.java
index bc80598..38c68bf 100644
--- a/dynamic-config/config-kie/src/main/java/org/apache/servicecomb/config/kie/client/KieConfig.java
+++ b/dynamic-config/config-kie/src/main/java/org/apache/servicecomb/config/kie/client/KieConfig.java
@@ -17,9 +17,7 @@
package org.apache.servicecomb.config.kie.client;
-import static org.apache.servicecomb.foundation.common.base.ServiceCombConstants.DEFAULT_SERVICECOMB_ENV;
-import static org.apache.servicecomb.foundation.common.base.ServiceCombConstants.SERVICECOMB_ENV;
-
+import org.apache.servicecomb.config.BootStrapProperties;
import org.apache.servicecomb.foundation.vertx.VertxConst;
import com.netflix.config.ConcurrentCompositeConfiguration;
@@ -40,14 +38,6 @@ public class KieConfig {
private static final String ENABLE_LONG_POLLING = "servicecomb.kie.enableLongPolling";
- private static final String APPLICATION_NAME = "APPLICATION_ID";
-
- private static final String SERVICE_NAME = "service_description.name";
-
- private static final String SERVICE_VERSION = "service_description.version";
-
- private static final String INSTANCE_TAGS = "instance_description.properties.tags";
-
public static final String CONNECTION_TIME_OUT = "servicecomb.kie.client.timeout.connection";
public static final String EVENT_LOOP_SIZE = "servicecomb.kie.client.eventLoopSize";
@@ -90,23 +80,23 @@ public class KieConfig {
}
public String getVersion() {
- return finalConfig.getString(SERVICE_VERSION);
+ return BootStrapProperties.readServiceVersion(finalConfig);
}
public String getServiceName() {
- return finalConfig.getString(SERVICE_NAME);
+ return BootStrapProperties.readServiceName(finalConfig);
}
public String getTags() {
- return finalConfig.getString(INSTANCE_TAGS);
+ return BootStrapProperties.readServiceInstanceTags(finalConfig);
}
public String getEnvironment() {
- return finalConfig.getString(SERVICECOMB_ENV, DEFAULT_SERVICECOMB_ENV);
+ return BootStrapProperties.readServiceEnvironment(finalConfig);
}
public String getAppName() {
- return finalConfig.getString(APPLICATION_NAME);
+ return BootStrapProperties.readApplication(finalConfig);
}
public String getDomainName() {
@@ -148,5 +138,4 @@ public class KieConfig {
public String getProxyPasswd() {
return finalConfig.getString(VertxConst.PROXY_PASSWD, null);
}
-
}
diff --git a/foundations/foundation-common/src/main/java/org/apache/servicecomb/foundation/common/base/ServiceCombConstants.java b/foundations/foundation-common/src/main/java/org/apache/servicecomb/foundation/common/base/ServiceCombConstants.java
index 53214fa..73a0e55 100644
--- a/foundations/foundation-common/src/main/java/org/apache/servicecomb/foundation/common/base/ServiceCombConstants.java
+++ b/foundations/foundation-common/src/main/java/org/apache/servicecomb/foundation/common/base/ServiceCombConstants.java
@@ -18,25 +18,6 @@
package org.apache.servicecomb.foundation.common.base;
public interface ServiceCombConstants {
-
- String CONFIG_APPLICATION_ID_KEY = "APPLICATION_ID";
-
- String CONFIG_SERVICE_DESCRIPTION_KEY = "service_description";
-
- String CONFIG_MICROSERVICE_NAME_KEY = "name";
-
- String CONFIG_QUALIFIED_MICROSERVICE_NAME_KEY = CONFIG_SERVICE_DESCRIPTION_KEY + "." + CONFIG_MICROSERVICE_NAME_KEY;
-
- String CONFIG_QUALIFIED_MICROSERVICE_VERSION_KEY = CONFIG_SERVICE_DESCRIPTION_KEY + ".version";
-
- String CONFIG_QUALIFIED_MICROSERVICE_ROLE_KEY = CONFIG_SERVICE_DESCRIPTION_KEY + ".role";
-
- String CONFIG_QUALIFIED_MICROSERVICE_DESCRIPTION_KEY = CONFIG_SERVICE_DESCRIPTION_KEY + ".description";
-
- String DEFAULT_MICROSERVICE_NAME = "defaultMicroservice";
-
- String DEFAULT_APPLICATION_ID = "defaultApplicationId";
-
String CONFIG_TRACING_COLLECTOR_ADDRESS = "servicecomb.tracing.collector.address";
String CONFIG_TRACING_COLLECTOR_API_V1 = "v1";
@@ -45,8 +26,6 @@ public interface ServiceCombConstants {
String CONFIG_TRACING_COLLECTOR_API_VERSION = "servicecomb.tracing.collector.apiVersion";
- String CONFIG_TRACING_ENABLED_KEY = "servicecomb.tracing.enabled";
-
String CONFIG_TRACING_COLLECTOR_PATH = "/api/{0}/spans";
String DEFAULT_TRACING_COLLECTOR_ADDRESS = "http://127.0.0.1:9411";
@@ -61,14 +40,8 @@ public interface ServiceCombConstants {
String CONFIG_DEFAULT_REGISTER_BY = "SDK";
- String SERVICECOMB_ENV = "service_description.environment";
-
- String DEFAULT_SERVICECOMB_ENV = "";
-
String DEVELOPMENT_SERVICECOMB_ENV = "development";
- String PRODUCTION_SERVICECOMB_ENV = "production";
-
String SERVICE_MAPPING = "SERVICE_MAPPING";
String VERSION_MAPPING = "VERSION_MAPPING";
diff --git a/foundations/foundation-config/src/main/java/org/apache/servicecomb/config/BootStrapProperties.java b/foundations/foundation-config/src/main/java/org/apache/servicecomb/config/BootStrapProperties.java
new file mode 100644
index 0000000..97c18a8
--- /dev/null
+++ b/foundations/foundation-config/src/main/java/org/apache/servicecomb/config/BootStrapProperties.java
@@ -0,0 +1,296 @@
+/*
+ * 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.config;
+
+import java.util.HashMap;
+import java.util.Iterator;
+import java.util.List;
+import java.util.Map;
+
+import org.apache.commons.configuration.Configuration;
+import org.springframework.util.StringUtils;
+
+/**
+ * This class holds configurations that need to be configured
+ * through property files or environment variables.
+ */
+public class BootStrapProperties {
+ // start of : service definition keys
+ // service definition keys of old version
+ public static final String OLD_CONFIG_SERVICE_APPLICATION = "APPLICATION_ID";
+
+ public static final String OLD_CONFIG_SERVICE_NAME = "service_description.name";
+
+ public static final String OLD_CONFIG_SERVICE_VERSION = "service_description.version";
+
+ public static final String OLD_CONFIG_SERVICE_ROLE = "service_description.role";
+
+ public static final String OLD_CONFIG_SERVICE_DESCRIPTION = "service_description.description";
+
+ public static final String OLD_CONFIG_SERVICE_ENVIRONMENT = "service_description.environment";
+
+ public static final String OLD_CONFIG_SERVICE_EXTENDED_CLASS = "service_description.propertyExtendedClass";
+
+ public static final String OLD_CONFIG_SERVICE_PROPERTIES = "service_description.properties";
+
+ public static final String OLD_CONFIG_SERVICE_PATHS = "service_description.paths";
+
+ // service instance definition keys of old version
+ public static final String OLD_CONFIG_SERVICE_INSTANCE_PROPERTIES = "instance_description.properties";
+
+ public static final String OLD_CONFIG_SERVICE_INSTANCE_EXTENDED_CLASS = "instance_description.propertyExtendedClass";
+
+ public static final String OLD_CONFIG_SERVICE_INSTANCE_ENVIRONMENT = "instance_description.environment";
+
+ public static final String OLD_CONFIG_SERVICE_INSTANCE_INITIAL_STATUS = "instance_description.initialStatus";
+
+ private static final String OLD_CONFIG_SERVICE_INSTANCE_TAGS = "instance_description.properties.tags";
+
+ // service definition keys of new version
+ public static final String CONFIG_SERVICE_APPLICATION = "servicecomb.service.application";
+
+ public static final String CONFIG_SERVICE_NAME = "servicecomb.service.name";
+
+ public static final String CONFIG_SERVICE_VERSION = "servicecomb.service.version";
+
+ public static final String CONFIG_SERVICE_ROLE = "servicecomb.service.role";
+
+ public static final String CONFIG_SERVICE_DESCRIPTION = "servicecomb.service.description";
+
+ public static final String CONFIG_SERVICE_ENVIRONMENT = "servicecomb.service.environment";
+
+ public static final String CONFIG_SERVICE_EXTENDED_CLASS = "servicecomb.service.propertyExtendedClass";
+
+ public static final String CONFIG_SERVICE_PROPERTIES = "servicecomb.service.properties";
+
+ public static final String CONFIG_SERVICE_PATHS = "servicecomb.service.paths";
+
+ // service instance definition keys of new version
+ public static final String CONFIG_SERVICE_INSTANCE_PROPERTIES = "servicecomb.instance.properties";
+
+ public static final String CONFIG_SERVICE_INSTANCE_EXTENDED_CLASS = "servicecomb.instance.propertyExtendedClass";
+
+ public static final String CONFIG_SERVICE_INSTANCE_ENVIRONMENT = "servicecomb.instance.environment";
+
+ public static final String CONFIG_SERVICE_INSTANCE_INITIAL_STATUS = "servicecomb.instance.initialStatus";
+
+ private static final String CONFIG_SERVICE_INSTANCE_TAGS = "servicecomb.instance.properties.tags";
+
+ // configuration default values
+ public static final String DEFAULT_APPLICATION = "default";
+
+ public static final String DEFAULT_MICROSERVICE_NAME = "defaultMicroservice";
+
+ public static final String DEFAULT_MICROSERVICE_VERSION = "1.0.0.0";
+
+ public static final String DEFAULT_MICROSERVICE_ROLE = "FRONT";
+
+ public static final String DEFAULT_MICROSERVICE_ENVIRONMENT = "";
+
+ public static final String DEFAULT_MICROSERVICE_INSTANCE_ENVIRONMENT = "production";
+
+ public static final String DEFAULT_MICROSERVICE_INSTANCE_INITIAL_STATUS = "UP";
+
+ private static final Configuration configuration = ConfigUtil.createLocalConfig();
+
+ public static String readApplication(Configuration configuration) {
+ return readStringValue(configuration, CONFIG_SERVICE_APPLICATION,
+ OLD_CONFIG_SERVICE_APPLICATION, DEFAULT_APPLICATION);
+ }
+
+ public static String readApplication() {
+ return readApplication(BootStrapProperties.configuration);
+ }
+
+ public static String readServiceName(Configuration configuration) {
+ String result = readStringValue(configuration, CONFIG_SERVICE_NAME, OLD_CONFIG_SERVICE_NAME,
+ DEFAULT_MICROSERVICE_NAME);
+ checkMicroserviceName(result);
+ return result;
+ }
+
+ public static String readServiceName() {
+ return readServiceName(BootStrapProperties.configuration);
+ }
+
+ public static String readServiceVersion(Configuration configuration) {
+ return readStringValue(configuration, CONFIG_SERVICE_VERSION, OLD_CONFIG_SERVICE_VERSION,
+ DEFAULT_MICROSERVICE_VERSION);
+ }
+
+ public static String readServiceVersion() {
+ return readServiceVersion(BootStrapProperties.configuration);
+ }
+
+ public static String readServiceRole(Configuration configuration) {
+ return readStringValue(configuration, CONFIG_SERVICE_ROLE, OLD_CONFIG_SERVICE_ROLE, DEFAULT_MICROSERVICE_ROLE);
+ }
+
+ public static String readServiceRole() {
+ return readServiceRole(BootStrapProperties.configuration);
+ }
+
+ public static String readServiceDescription(Configuration configuration) {
+ String[] descriptionArray = configuration.getStringArray(CONFIG_SERVICE_DESCRIPTION);
+ if (null == descriptionArray || descriptionArray.length < 1) {
+ descriptionArray = configuration.getStringArray(OLD_CONFIG_SERVICE_DESCRIPTION);
+ }
+
+ if (null == descriptionArray || descriptionArray.length < 1) {
+ return null;
+ }
+
+ StringBuilder rawDescriptionBuilder = new StringBuilder();
+ for (String desc : descriptionArray) {
+ rawDescriptionBuilder.append(desc).append(",");
+ }
+
+ return rawDescriptionBuilder.substring(0, rawDescriptionBuilder.length() - 1);
+ }
+
+ public static String readServiceDescription() {
+ return readServiceDescription(BootStrapProperties.configuration);
+ }
+
+ public static String readServiceEnvironment(Configuration configuration) {
+ return readStringValue(configuration, CONFIG_SERVICE_ENVIRONMENT, OLD_CONFIG_SERVICE_ENVIRONMENT,
+ DEFAULT_MICROSERVICE_ENVIRONMENT);
+ }
+
+ public static String readServiceEnvironment() {
+ return readServiceEnvironment(BootStrapProperties.configuration);
+ }
+
+ public static String readServiceExtendedClass(Configuration configuration) {
+ return readStringValue(configuration, CONFIG_SERVICE_EXTENDED_CLASS, OLD_CONFIG_SERVICE_EXTENDED_CLASS,
+ null);
+ }
+
+ public static String readServiceExtendedClass() {
+ return readServiceExtendedClass(BootStrapProperties.configuration);
+ }
+
+ public static Map<String, String> readServiceProperties(Configuration configuration) {
+ return readProperties(configuration, CONFIG_SERVICE_PROPERTIES, OLD_CONFIG_SERVICE_PROPERTIES);
+ }
+
+ public static Map<String, String> readServiceProperties() {
+ return readServiceProperties(BootStrapProperties.configuration);
+ }
+
+ public static List<Object> readServicePaths(Configuration configuration) {
+ List<Object> result = configuration.getList(CONFIG_SERVICE_PATHS);
+ if (result == null || result.isEmpty()) {
+ result = configuration.getList(OLD_CONFIG_SERVICE_PATHS);
+ }
+ return result;
+ }
+
+ public static List<Object> readServicePaths() {
+ return readServicePaths(BootStrapProperties.configuration);
+ }
+
+ public static Map<String, String> readServiceInstanceProperties(Configuration configuration) {
+ return readProperties(configuration, CONFIG_SERVICE_INSTANCE_PROPERTIES, OLD_CONFIG_SERVICE_INSTANCE_PROPERTIES);
+ }
+
+ public static Map<String, String> readServiceInstanceProperties() {
+ return readServiceInstanceProperties(BootStrapProperties.configuration);
+ }
+
+ public static String readServiceInstanceExtendedClass(Configuration configuration) {
+ return readStringValue(configuration, CONFIG_SERVICE_INSTANCE_EXTENDED_CLASS,
+ OLD_CONFIG_SERVICE_INSTANCE_EXTENDED_CLASS,
+ null);
+ }
+
+ public static String readServiceInstanceExtendedClass() {
+ return readServiceInstanceExtendedClass(BootStrapProperties.configuration);
+ }
+
+ public static String readServiceInstanceEnvironment(Configuration configuration) {
+ return readStringValue(configuration, CONFIG_SERVICE_INSTANCE_ENVIRONMENT,
+ OLD_CONFIG_SERVICE_INSTANCE_ENVIRONMENT,
+ DEFAULT_MICROSERVICE_INSTANCE_ENVIRONMENT);
+ }
+
+ public static String readServiceInstanceEnvironment() {
+ return readServiceInstanceEnvironment(BootStrapProperties.configuration);
+ }
+
+ public static String readServiceInstanceInitialStatus(Configuration configuration) {
+ return readStringValue(configuration, CONFIG_SERVICE_INSTANCE_INITIAL_STATUS,
+ OLD_CONFIG_SERVICE_INSTANCE_INITIAL_STATUS,
+ DEFAULT_MICROSERVICE_INSTANCE_INITIAL_STATUS);
+ }
+
+ public static String readServiceInstanceInitialStatus() {
+ return readServiceInstanceInitialStatus(BootStrapProperties.configuration);
+ }
+
+ public static String readServiceInstanceTags(Configuration configuration) {
+ return readStringValue(configuration, CONFIG_SERVICE_INSTANCE_TAGS,
+ OLD_CONFIG_SERVICE_INSTANCE_TAGS,
+ null);
+ }
+
+ public static String readServiceInstanceTags() {
+ return readServiceInstanceTags(BootStrapProperties.configuration);
+ }
+
+ private static String readStringValue(Configuration configuration, String newKey, String oldKey,
+ String defaultValue) {
+ String result = configuration.getString(newKey, null);
+ if (result == null) {
+ return configuration.getString(oldKey, defaultValue);
+ }
+ return result;
+ }
+
+ private static Map<String, String> readProperties(Configuration configuration, String newKey, String oldKey) {
+ Map<String, String> propertiesMap = new HashMap<>();
+
+ String prefix = newKey;
+
+ Iterator<String> keysIterator = configuration.getKeys(prefix);
+
+ if (!keysIterator.hasNext()) {
+ prefix = oldKey;
+ keysIterator = configuration.getKeys(prefix);
+ }
+
+ while (keysIterator.hasNext()) {
+ String key = keysIterator.next();
+ propertiesMap.put(key.substring(prefix.length() + 1), String.valueOf(configuration.getProperty(key)));
+ }
+ return propertiesMap;
+ }
+
+
+ private static void checkMicroserviceName(String name) {
+ // the configuration we used
+ // when resolve placeholder failed
+ // the result will remains ${var}
+ if (StringUtils.isEmpty(name) || name.contains("${")) {
+ throw new IllegalArgumentException(String.format(
+ "MicroserviceName '%s' is invalid. you must configure '%s' or set the placeholder value.",
+ name,
+ CONFIG_SERVICE_NAME));
+ }
+ }
+}
diff --git a/foundations/foundation-config/src/main/java/org/apache/servicecomb/config/ConfigUtil.java b/foundations/foundation-config/src/main/java/org/apache/servicecomb/config/ConfigUtil.java
index aed29c5..f3b5d51 100644
--- a/foundations/foundation-config/src/main/java/org/apache/servicecomb/config/ConfigUtil.java
+++ b/foundations/foundation-config/src/main/java/org/apache/servicecomb/config/ConfigUtil.java
@@ -128,11 +128,10 @@ public final class ConfigUtil {
loader.getConfigModels().add(model);
}
- LOGGER.info("create local config:");
boolean isPrintUrl = DynamicPropertyFactory.getInstance()
.getBooleanProperty(IS_PRINT_URL, true).get();
if (isPrintUrl) {
- LOGGER.info(" {}.", StringUtils.join(loader.getConfigModels(), ","));
+ LOGGER.info("create local config from paths=[{}]", StringUtils.join(loader.getConfigModels(), ","));
}
ConcurrentCompositeConfiguration config = ConfigUtil.createLocalConfig(loader.getConfigModels());
@@ -140,7 +139,7 @@ public final class ConfigUtil {
return config;
}
- public static ConcurrentCompositeConfiguration createLocalConfig(List<ConfigModel> configModelList) {
+ private static ConcurrentCompositeConfiguration createLocalConfig(List<ConfigModel> configModelList) {
ConcurrentCompositeConfiguration config = new ConcurrentCompositeConfiguration();
duplicateCseConfigToServicecomb(config,
diff --git a/foundations/foundation-registry/src/main/java/org/apache/servicecomb/registry/DiscoveryManager.java b/foundations/foundation-registry/src/main/java/org/apache/servicecomb/registry/DiscoveryManager.java
index 8ce351f..947ecce 100644
--- a/foundations/foundation-registry/src/main/java/org/apache/servicecomb/registry/DiscoveryManager.java
+++ b/foundations/foundation-registry/src/main/java/org/apache/servicecomb/registry/DiscoveryManager.java
@@ -23,8 +23,6 @@ import java.util.List;
import java.util.concurrent.CompletableFuture;
import java.util.stream.Collectors;
-import org.apache.servicecomb.config.ConfigUtil;
-import org.apache.servicecomb.config.archaius.sources.MicroserviceConfigLoader;
import org.apache.servicecomb.foundation.common.utils.SPIServiceUtils;
import org.apache.servicecomb.registry.api.Discovery;
import org.apache.servicecomb.registry.api.registry.Microservice;
@@ -34,7 +32,6 @@ import org.apache.servicecomb.registry.cache.InstanceCacheManager;
import org.apache.servicecomb.registry.cache.InstanceCacheManagerNew;
import org.apache.servicecomb.registry.consumer.AppManager;
import org.apache.servicecomb.registry.consumer.MicroserviceVersions;
-import org.apache.servicecomb.registry.definition.MicroserviceDefinition;
import com.google.common.annotations.VisibleForTesting;
@@ -47,7 +44,6 @@ public class DiscoveryManager {
private final InstanceCacheManager instanceCacheManager;
- private final MicroserviceDefinition microserviceDefinition;
private DiscoveryManager() {
appManager = new AppManager();
@@ -56,9 +52,6 @@ public class DiscoveryManager {
.stream()
.filter((discovery -> discovery.enabled()))
.collect(Collectors.toList());
-
- MicroserviceConfigLoader loader = ConfigUtil.getMicroserviceConfigLoader();
- microserviceDefinition = new MicroserviceDefinition(loader.getConfigModels());
}
@VisibleForTesting
diff --git a/foundations/foundation-registry/src/main/java/org/apache/servicecomb/registry/api/registry/MicroserviceFactory.java b/foundations/foundation-registry/src/main/java/org/apache/servicecomb/registry/api/registry/MicroserviceFactory.java
index d3f9f31..fe1c179 100644
--- a/foundations/foundation-registry/src/main/java/org/apache/servicecomb/registry/api/registry/MicroserviceFactory.java
+++ b/foundations/foundation-registry/src/main/java/org/apache/servicecomb/registry/api/registry/MicroserviceFactory.java
@@ -16,14 +16,6 @@
*/
package org.apache.servicecomb.registry.api.registry;
-import static org.apache.servicecomb.foundation.common.base.ServiceCombConstants.CONFIG_APPLICATION_ID_KEY;
-import static org.apache.servicecomb.foundation.common.base.ServiceCombConstants.CONFIG_QUALIFIED_MICROSERVICE_DESCRIPTION_KEY;
-import static org.apache.servicecomb.foundation.common.base.ServiceCombConstants.CONFIG_QUALIFIED_MICROSERVICE_NAME_KEY;
-import static org.apache.servicecomb.foundation.common.base.ServiceCombConstants.CONFIG_QUALIFIED_MICROSERVICE_ROLE_KEY;
-import static org.apache.servicecomb.foundation.common.base.ServiceCombConstants.CONFIG_QUALIFIED_MICROSERVICE_VERSION_KEY;
-import static org.apache.servicecomb.foundation.common.base.ServiceCombConstants.DEFAULT_MICROSERVICE_NAME;
-import static org.apache.servicecomb.foundation.common.base.ServiceCombConstants.DEFAULT_SERVICECOMB_ENV;
-import static org.apache.servicecomb.foundation.common.base.ServiceCombConstants.SERVICECOMB_ENV;
import static org.apache.servicecomb.foundation.common.base.ServiceCombConstants.APP_MAPPING;
import static org.apache.servicecomb.foundation.common.base.ServiceCombConstants.SERVICE_MAPPING;
import static org.apache.servicecomb.foundation.common.base.ServiceCombConstants.VERSION_MAPPING;
@@ -33,26 +25,28 @@ import java.util.Map;
import org.apache.commons.configuration.Configuration;
import org.apache.commons.configuration.EnvironmentConfiguration;
import org.apache.commons.lang3.StringUtils;
+import org.apache.servicecomb.config.BootStrapProperties;
+import org.apache.servicecomb.config.ConfigUtil;
import org.apache.servicecomb.registry.config.ConfigurePropertyUtils;
import org.apache.servicecomb.registry.config.MicroservicePropertiesLoader;
import org.apache.servicecomb.registry.definition.DefinitionConst;
-import org.apache.servicecomb.registry.definition.MicroserviceDefinition;
import org.apache.servicecomb.registry.version.Version;
+import com.google.common.annotations.VisibleForTesting;
+
public class MicroserviceFactory {
- public Microservice create(String appId, String microserviceName) {
- MicroserviceDefinition microserviceDefinition = MicroserviceDefinition.create(appId, microserviceName);
- return create(microserviceDefinition);
+ public Microservice create() {
+ return create(ConfigUtil.createLocalConfig());
}
- public Microservice create(MicroserviceDefinition microserviceDefinition) {
- Configuration configuration = microserviceDefinition.getConfiguration();
- Microservice microservice = createMicroserviceFromDefinition(configuration);
+ @VisibleForTesting
+ public Microservice create(Configuration configuration) {
+ Microservice microservice = createMicroserviceFromConfiguration(configuration);
microservice.setInstance(MicroserviceInstance.createFromDefinition(configuration));
return microservice;
}
- private Microservice createMicroserviceFromDefinition(Configuration configuration) {
+ private Microservice createMicroserviceFromConfiguration(Configuration configuration) {
Microservice microservice = new Microservice();
EnvironmentConfiguration envConfig = new EnvironmentConfiguration();
@@ -60,34 +54,31 @@ public class MicroserviceFactory {
!StringUtils.isEmpty(envConfig.getString(envConfig.getString(APP_MAPPING)))) {
microservice.setAppId(envConfig.getString(envConfig.getString(APP_MAPPING)));
} else {
- microservice.setAppId(configuration
- .getString(CONFIG_APPLICATION_ID_KEY, DefinitionConst.DEFAULT_APPLICATION_ID));
+ microservice.setAppId(BootStrapProperties.readApplication(configuration));
}
if (!StringUtils.isEmpty(envConfig.getString(SERVICE_MAPPING)) &&
!StringUtils.isEmpty(envConfig.getString(envConfig.getString(SERVICE_MAPPING)))) {
microservice.setServiceName(envConfig.getString(envConfig.getString(SERVICE_MAPPING)));
} else {
- microservice.setServiceName(configuration.getString(CONFIG_QUALIFIED_MICROSERVICE_NAME_KEY,
- DEFAULT_MICROSERVICE_NAME));
+ microservice.setServiceName(BootStrapProperties.readServiceName(configuration));
}
String version;
if (!StringUtils.isEmpty(envConfig.getString(VERSION_MAPPING)) &&
!StringUtils.isEmpty(envConfig.getString(envConfig.getString(VERSION_MAPPING)))) {
version = envConfig.getString(envConfig.getString(VERSION_MAPPING));
} else {
- version = configuration.getString(CONFIG_QUALIFIED_MICROSERVICE_VERSION_KEY,
- DefinitionConst.DEFAULT_MICROSERVICE_VERSION);
+ version = BootStrapProperties.readServiceVersion(configuration);
}
// just check version format
new Version(version);
microservice.setVersion(version);
- setDescription(configuration, microservice);
- microservice.setLevel(configuration.getString(CONFIG_QUALIFIED_MICROSERVICE_ROLE_KEY, "FRONT"));
+ microservice.setDescription(BootStrapProperties.readServiceDescription(configuration));
+ microservice.setLevel(BootStrapProperties.readServiceRole(configuration));
microservice.setPaths(ConfigurePropertyUtils.getMicroservicePaths(configuration));
Map<String, String> propertiesMap = MicroservicePropertiesLoader.INSTANCE.loadProperties(configuration);
microservice.setProperties(propertiesMap);
- microservice.setEnvironment(configuration.getString(SERVICECOMB_ENV, DEFAULT_SERVICECOMB_ENV));
+ microservice.setEnvironment(BootStrapProperties.readServiceEnvironment(configuration));
// set alias name when allow cross app
if (allowCrossApp(propertiesMap)) {
@@ -98,24 +89,6 @@ public class MicroserviceFactory {
return microservice;
}
- /**
- * {@code service_description.description} is split by {@code ,},
- * need to combine the description array to raw description.
- */
- private void setDescription(Configuration configuration, Microservice microservice) {
- String[] descriptionArray = configuration.getStringArray(CONFIG_QUALIFIED_MICROSERVICE_DESCRIPTION_KEY);
- if (null == descriptionArray || descriptionArray.length < 1) {
- return;
- }
-
- StringBuilder rawDescriptionBuilder = new StringBuilder();
- for (String desc : descriptionArray) {
- rawDescriptionBuilder.append(desc).append(",");
- }
-
- microservice.setDescription(rawDescriptionBuilder.substring(0, rawDescriptionBuilder.length() - 1));
- }
-
private boolean allowCrossApp(Map<String, String> propertiesMap) {
return Boolean.parseBoolean(propertiesMap.get(DefinitionConst.CONFIG_ALLOW_CROSS_APP_KEY));
}
diff --git a/foundations/foundation-registry/src/main/java/org/apache/servicecomb/registry/api/registry/MicroserviceInstance.java b/foundations/foundation-registry/src/main/java/org/apache/servicecomb/registry/api/registry/MicroserviceInstance.java
index 507042c..3622286 100644
--- a/foundations/foundation-registry/src/main/java/org/apache/servicecomb/registry/api/registry/MicroserviceInstance.java
+++ b/foundations/foundation-registry/src/main/java/org/apache/servicecomb/registry/api/registry/MicroserviceInstance.java
@@ -24,6 +24,7 @@ import java.util.Map;
import org.apache.commons.configuration.Configuration;
import org.apache.commons.lang.StringUtils;
+import org.apache.servicecomb.config.BootStrapProperties;
import org.apache.servicecomb.registry.config.InstancePropertiesLoader;
import org.apache.servicecomb.registry.definition.DefinitionConst;
@@ -53,7 +54,7 @@ public class MicroserviceInstance {
private HealthCheck healthCheck;
/**
- * Will be abandoned, use {@link Microservice#environment} instead
+ * Will be abandoned, use Microservice Environment instead
*/
@Deprecated
private String environment;
@@ -173,12 +174,9 @@ public class MicroserviceInstance {
// default hard coded values
microserviceInstance.setStage(DefinitionConst.DEFAULT_STAGE);
microserviceInstance
- .setEnvironment(
- configuration.getString(
- DefinitionConst.CONFIG_QUALIFIED_INSTANCE_ENVIRONMENT_KEY, DefinitionConst.DEFAULT_INSTANCE_ENVIRONMENT));
+ .setEnvironment(BootStrapProperties.readServiceInstanceEnvironment(configuration));
microserviceInstance.setStatus(MicroserviceInstanceStatus
- .valueOf(configuration.getString(
- DefinitionConst.CONFIG_QUALIFIED_INSTANCE_INITIAL_STATUS, DefinitionConst.DEFAULT_INSTANCE_INITIAL_STATUS)));
+ .valueOf(BootStrapProperties.readServiceInstanceInitialStatus()));
HealthCheck healthCheck = new HealthCheck();
healthCheck.setMode(HealthCheckMode.HEARTBEAT);
microserviceInstance.setHealthCheck(healthCheck);
diff --git a/foundations/foundation-registry/src/main/java/org/apache/servicecomb/registry/config/AbstractPropertiesLoader.java b/foundations/foundation-registry/src/main/java/org/apache/servicecomb/registry/config/AbstractPropertiesLoader.java
index 61144a1..8df5f94 100644
--- a/foundations/foundation-registry/src/main/java/org/apache/servicecomb/registry/config/AbstractPropertiesLoader.java
+++ b/foundations/foundation-registry/src/main/java/org/apache/servicecomb/registry/config/AbstractPropertiesLoader.java
@@ -21,25 +21,18 @@ import java.util.HashMap;
import java.util.Map;
import org.apache.commons.configuration.Configuration;
+import org.apache.commons.lang3.StringUtils;
+import org.apache.servicecomb.config.BootStrapProperties;
import org.apache.servicecomb.registry.api.PropertyExtended;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
-import org.springframework.util.StringUtils;
/**
- * 加载微服务和微服务实例的properties
+ * Loading microservice properties
*/
public abstract class AbstractPropertiesLoader {
private static final Logger LOGGER = LoggerFactory.getLogger(AbstractPropertiesLoader.class);
- protected static final String PROPERTIES = ".properties";
-
- protected static final String EXTENDED_CLASS_FOR_COMPATIBLE = ".propertyExtentedClass";
-
- protected static final String EXTENDED_CLASS = ".propertyExtendedClass";
-
- protected abstract String getConfigOptionPrefix();
-
public Map<String, String> loadProperties(Configuration configuration) {
Map<String, String> propertiesMap = new HashMap<>();
loadPropertiesFromConfigMap(configuration, propertiesMap);
@@ -48,23 +41,21 @@ public abstract class AbstractPropertiesLoader {
return propertiesMap;
}
- protected void loadPropertiesFromConfigMap(Configuration configuration, Map<String, String> propertiesMap) {
- String configKeyPrefix = mergeStrings(getConfigOptionPrefix(), PROPERTIES);
- propertiesMap.putAll(ConfigurePropertyUtils.getPropertiesWithPrefix(configuration, configKeyPrefix));
+ abstract protected Map<String, String> readProperties(Configuration configuration);
+
+ abstract protected String readPropertiesExtendedClass(Configuration configuration);
+
+ private void loadPropertiesFromConfigMap(Configuration configuration, Map<String, String> propertiesMap) {
+ propertiesMap.putAll(readProperties(configuration));
}
- protected void loadPropertiesFromExtendedClass(Configuration configuration, Map<String, String> propertiesMap) {
- String extendedPropertyClass = readExtendedPropertyClassName(configuration, EXTENDED_CLASS);
+ private void loadPropertiesFromExtendedClass(Configuration configuration, Map<String, String> propertiesMap) {
+ String extendedPropertyClass = readPropertiesExtendedClass(configuration);
+
if (StringUtils.isEmpty(extendedPropertyClass)) {
- extendedPropertyClass = readExtendedPropertyClassName(configuration, EXTENDED_CLASS_FOR_COMPATIBLE);
- if (StringUtils.isEmpty(extendedPropertyClass)) {
- return;
- } else {
- LOGGER.warn("The property `{}` is deprecated and will be removed soon, please use the new property `{}`.",
- mergeStrings(getConfigOptionPrefix(), EXTENDED_CLASS_FOR_COMPATIBLE),
- mergeStrings(getConfigOptionPrefix(), EXTENDED_CLASS));
- }
+ return;
}
+
try {
Class<?> classExternalProperty = Class.forName(extendedPropertyClass);
if (!PropertyExtended.class.isAssignableFrom(classExternalProperty)) {
@@ -86,13 +77,4 @@ public abstract class AbstractPropertiesLoader {
throw new Error(errMsg, e);
}
}
-
- private String readExtendedPropertyClassName(Configuration configuration, String keyName) {
- String configKey = mergeStrings(getConfigOptionPrefix(), keyName);
- return configuration.getString(configKey, "");
- }
-
- protected static String mergeStrings(String... strArr) {
- return String.join("", strArr);
- }
}
diff --git a/foundations/foundation-registry/src/main/java/org/apache/servicecomb/registry/config/ConfigurePropertyUtils.java b/foundations/foundation-registry/src/main/java/org/apache/servicecomb/registry/config/ConfigurePropertyUtils.java
index 49d8a3d..6c4c54a 100644
--- a/foundations/foundation-registry/src/main/java/org/apache/servicecomb/registry/config/ConfigurePropertyUtils.java
+++ b/foundations/foundation-registry/src/main/java/org/apache/servicecomb/registry/config/ConfigurePropertyUtils.java
@@ -25,6 +25,7 @@ import java.util.Map;
import org.apache.commons.configuration.Configuration;
import org.apache.commons.lang.StringUtils;
+import org.apache.servicecomb.config.BootStrapProperties;
import org.apache.servicecomb.foundation.common.utils.ClassLoaderScopeContext;
import org.apache.servicecomb.registry.api.registry.BasePath;
import org.apache.servicecomb.registry.definition.DefinitionConst;
@@ -62,7 +63,7 @@ public final class ConfigurePropertyUtils {
@SuppressWarnings("unchecked")
public static List<BasePath> getMicroservicePaths(Configuration configuration) {
List<BasePath> basePaths = new ArrayList<>();
- for (Object path : configuration.getList("service_description.paths")) {
+ for (Object path : BootStrapProperties.readServicePaths(configuration)) {
BasePath basePath = new BasePath();
Map<String, ?> pathMap = (Map<String, ?>) path;
basePath.setPath(buildPath((String) pathMap.get("path")));
diff --git a/foundations/foundation-registry/src/main/java/org/apache/servicecomb/registry/config/InstancePropertiesLoader.java b/foundations/foundation-registry/src/main/java/org/apache/servicecomb/registry/config/InstancePropertiesLoader.java
index cd950d6..99ac20c 100644
--- a/foundations/foundation-registry/src/main/java/org/apache/servicecomb/registry/config/InstancePropertiesLoader.java
+++ b/foundations/foundation-registry/src/main/java/org/apache/servicecomb/registry/config/InstancePropertiesLoader.java
@@ -17,6 +17,11 @@
package org.apache.servicecomb.registry.config;
+import java.util.Map;
+
+import org.apache.commons.configuration.Configuration;
+import org.apache.servicecomb.config.BootStrapProperties;
+
public final class InstancePropertiesLoader extends AbstractPropertiesLoader {
public static final InstancePropertiesLoader INSTANCE = new InstancePropertiesLoader();
@@ -24,8 +29,14 @@ public final class InstancePropertiesLoader extends AbstractPropertiesLoader {
private InstancePropertiesLoader() {
}
+
+ @Override
+ protected Map<String, String> readProperties(Configuration configuration) {
+ return BootStrapProperties.readServiceInstanceProperties(configuration);
+ }
+
@Override
- protected String getConfigOptionPrefix() {
- return "instance_description";
+ protected String readPropertiesExtendedClass(Configuration configuration) {
+ return BootStrapProperties.readServiceInstanceExtendedClass(configuration);
}
}
diff --git a/foundations/foundation-registry/src/main/java/org/apache/servicecomb/registry/config/MicroservicePropertiesLoader.java b/foundations/foundation-registry/src/main/java/org/apache/servicecomb/registry/config/MicroservicePropertiesLoader.java
index 62654e4..2ac8865 100644
--- a/foundations/foundation-registry/src/main/java/org/apache/servicecomb/registry/config/MicroservicePropertiesLoader.java
+++ b/foundations/foundation-registry/src/main/java/org/apache/servicecomb/registry/config/MicroservicePropertiesLoader.java
@@ -17,7 +17,10 @@
package org.apache.servicecomb.registry.config;
-import static org.apache.servicecomb.foundation.common.base.ServiceCombConstants.CONFIG_SERVICE_DESCRIPTION_KEY;
+import java.util.Map;
+
+import org.apache.commons.configuration.Configuration;
+import org.apache.servicecomb.config.BootStrapProperties;
public final class MicroservicePropertiesLoader extends AbstractPropertiesLoader {
@@ -27,7 +30,12 @@ public final class MicroservicePropertiesLoader extends AbstractPropertiesLoader
}
@Override
- protected String getConfigOptionPrefix() {
- return CONFIG_SERVICE_DESCRIPTION_KEY;
+ protected Map<String, String> readProperties(Configuration configuration) {
+ return BootStrapProperties.readServiceProperties(configuration);
+ }
+
+ @Override
+ protected String readPropertiesExtendedClass(Configuration configuration) {
+ return BootStrapProperties.readServiceExtendedClass(configuration);
}
}
diff --git a/foundations/foundation-registry/src/main/java/org/apache/servicecomb/registry/definition/DefinitionConst.java b/foundations/foundation-registry/src/main/java/org/apache/servicecomb/registry/definition/DefinitionConst.java
index db5fcfb..5735927 100644
--- a/foundations/foundation-registry/src/main/java/org/apache/servicecomb/registry/definition/DefinitionConst.java
+++ b/foundations/foundation-registry/src/main/java/org/apache/servicecomb/registry/definition/DefinitionConst.java
@@ -17,26 +17,11 @@
package org.apache.servicecomb.registry.definition;
-import org.apache.servicecomb.registry.api.registry.MicroserviceInstanceStatus;
-
public interface DefinitionConst {
-
- String CONFIG_QUALIFIED_INSTANCE_ENVIRONMENT_KEY = "instance_description.environment";
-
- String CONFIG_QUALIFIED_INSTANCE_INITIAL_STATUS = "instance_description.initialStatus";
-
String CONFIG_ALLOW_CROSS_APP_KEY = "allowCrossApp";
- String DEFAULT_APPLICATION_ID = "default";
-
- String DEFAULT_MICROSERVICE_VERSION = "1.0.0.0";
-
String DEFAULT_STAGE = "prod";
- String DEFAULT_INSTANCE_ENVIRONMENT = "production";
-
- String DEFAULT_INSTANCE_INITIAL_STATUS = MicroserviceInstanceStatus.UP.name();
-
String VERSION_RULE_LATEST = "latest";
String VERSION_RULE_ALL = "0.0.0.0+";
@@ -45,13 +30,13 @@ public interface DefinitionConst {
String URL_PREFIX = "urlPrefix";
- public static final String INSTANCE_PUBKEY_PRO = "publickey";
+ String INSTANCE_PUBKEY_PRO = "publickey";
- public static final String REGISTER_URL_PREFIX = "servicecomb.service.registry.registerUrlPrefix";
+ String REGISTER_URL_PREFIX = "servicecomb.service.registry.registerUrlPrefix";
- public static final String REGISTER_SERVICE_PATH = "servicecomb.service.registry.registerPath";
+ String REGISTER_SERVICE_PATH = "servicecomb.service.registry.registerPath";
- public static final String REGISTRY_APP_ID = "default";
+ String REGISTRY_APP_ID = "default";
- public static final String REGISTRY_SERVICE_NAME = "SERVICECENTER";
+ String REGISTRY_SERVICE_NAME = "SERVICECENTER";
}
diff --git a/foundations/foundation-registry/src/main/java/org/apache/servicecomb/registry/definition/MicroserviceDefinition.java b/foundations/foundation-registry/src/main/java/org/apache/servicecomb/registry/definition/MicroserviceDefinition.java
deleted file mode 100644
index 8b5d0cf..0000000
--- a/foundations/foundation-registry/src/main/java/org/apache/servicecomb/registry/definition/MicroserviceDefinition.java
+++ /dev/null
@@ -1,154 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package org.apache.servicecomb.registry.definition;
-
-import static org.apache.servicecomb.foundation.common.base.ServiceCombConstants.CONFIG_APPLICATION_ID_KEY;
-import static org.apache.servicecomb.foundation.common.base.ServiceCombConstants.CONFIG_MICROSERVICE_NAME_KEY;
-import static org.apache.servicecomb.foundation.common.base.ServiceCombConstants.CONFIG_QUALIFIED_MICROSERVICE_NAME_KEY;
-import static org.apache.servicecomb.foundation.common.base.ServiceCombConstants.CONFIG_SERVICE_DESCRIPTION_KEY;
-import static org.apache.servicecomb.foundation.common.base.ServiceCombConstants.DEFAULT_APPLICATION_ID;
-import static org.apache.servicecomb.foundation.common.base.ServiceCombConstants.DEFAULT_MICROSERVICE_NAME;
-
-import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.Collections;
-import java.util.HashMap;
-import java.util.HashSet;
-import java.util.List;
-import java.util.Map;
-import java.util.Set;
-
-import org.apache.commons.configuration.Configuration;
-import org.apache.servicecomb.config.ConfigUtil;
-import org.apache.servicecomb.config.archaius.sources.ConfigModel;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-import org.springframework.util.StringUtils;
-
-public class MicroserviceDefinition {
- private static final Logger LOGGER = LoggerFactory.getLogger(MicroserviceDefinition.class);
-
- // microservice maybe combined from many microservices
- // if a and b combined to ab, then combinedFrom value is a,b
- // if not combined, just only one microservice, then combinedFrom is empty
- private Set<String> combinedFrom = new HashSet<>();
-
- private List<ConfigModel> configModels;
-
- private Configuration configuration;
-
- private String microserviceName;
-
- private String applicationId;
-
- public String getMicroserviceName() {
- return microserviceName;
- }
-
- public String getApplicationId() {
- return applicationId;
- }
-
- public static MicroserviceDefinition create(String appId, String microserviceName) {
- ConfigModel configModel = createConfigModel(appId, microserviceName);
- return new MicroserviceDefinition(Arrays.asList(configModel));
- }
-
- public static ConfigModel createConfigModel(String appId, String microserviceName) {
- Map<String, Object> descMap = new HashMap<>();
- descMap.put(CONFIG_MICROSERVICE_NAME_KEY, microserviceName);
-
- Map<String, Object> config = new HashMap<>();
- config.put(CONFIG_APPLICATION_ID_KEY, appId);
- config.put(CONFIG_SERVICE_DESCRIPTION_KEY, descMap);
-
- ConfigModel configModel = new ConfigModel();
- configModel.setConfig(config);
- return configModel;
- }
-
- public MicroserviceDefinition(List<ConfigModel> configModels) {
- if (configModels == null) {
- configModels = Collections.emptyList();
- }
-
- this.configModels = configModels;
- this.configuration = ConfigUtil.createLocalConfig(configModels);
- this.microserviceName =
- configuration.getString(CONFIG_QUALIFIED_MICROSERVICE_NAME_KEY, DEFAULT_MICROSERVICE_NAME);
-
- this.applicationId = configuration.getString(CONFIG_APPLICATION_ID_KEY, DEFAULT_APPLICATION_ID);
-
- // log paths first, even microserviceName is invalid, this can help user to find problems
- logConfigPath();
- checkMicroserviceName(microserviceName);
-
- initCombinedFrom(configModels);
- }
-
- public Set<String> getCombinedFrom() {
- return combinedFrom;
- }
-
- private void initCombinedFrom(List<ConfigModel> configModels) {
- for (ConfigModel model : configModels) {
- Configuration conf = ConfigUtil.createLocalConfig(Arrays.asList(model));
- String name =
- conf.getString(CONFIG_QUALIFIED_MICROSERVICE_NAME_KEY, DEFAULT_MICROSERVICE_NAME);
- if (!StringUtils.isEmpty(name)) {
- checkMicroserviceName(name);
- combinedFrom.add(name);
- }
- }
-
- combinedFrom.remove(microserviceName);
- }
-
- private void checkMicroserviceName(String name) {
- // the configuration we used
- // when resolve placeholder failed
- // the result will remains ${var}
- if (StringUtils.isEmpty(name) || name.contains("${")) {
- throw new IllegalArgumentException(String.format(
- "MicroserviceName '%s' is invalid. you must configure '%s' or set the placeholder value.",
- name,
- CONFIG_QUALIFIED_MICROSERVICE_NAME_KEY));
- }
- }
-
- // microserviceName maybe null
- public void logConfigPath() {
- List<String> pathList = new ArrayList<>();
- for (ConfigModel configModel : configModels) {
- if (configModel.getUrl() != null) {
- pathList.add(configModel.getUrl().toString());
- }
- }
- LOGGER.info("load microservice config, name={}, paths={}",
- microserviceName,
- pathList);
- }
-
- public List<ConfigModel> getConfigModels() {
- return configModels;
- }
-
- public Configuration getConfiguration() {
- return configuration;
- }
-}
diff --git a/foundations/foundation-registry/src/test/java/org/apache/servicecomb/registry/config/TestAbstractPropertiesLoader.java b/foundations/foundation-registry/src/test/java/org/apache/servicecomb/registry/config/TestAbstractPropertiesLoader.java
index 156469d..be5a48c 100644
--- a/foundations/foundation-registry/src/test/java/org/apache/servicecomb/registry/config/TestAbstractPropertiesLoader.java
+++ b/foundations/foundation-registry/src/test/java/org/apache/servicecomb/registry/config/TestAbstractPropertiesLoader.java
@@ -17,9 +17,8 @@
package org.apache.servicecomb.registry.config;
-import static org.apache.servicecomb.foundation.common.base.ServiceCombConstants.CONFIG_SERVICE_DESCRIPTION_KEY;
-
import org.apache.commons.configuration.Configuration;
+import org.apache.servicecomb.config.BootStrapProperties;
import org.junit.Assert;
import org.junit.Test;
@@ -27,14 +26,9 @@ import com.netflix.config.DynamicConfiguration;
public class TestAbstractPropertiesLoader {
@Test
- public void testMergeStrings() {
- Assert.assertEquals("abc123efg", AbstractPropertiesLoader.mergeStrings("abc", "123", "efg"));
- }
-
- @Test
public void testExtendedClassCompatible() {
Configuration configuration = new DynamicConfiguration();
- configuration.setProperty(CONFIG_SERVICE_DESCRIPTION_KEY + AbstractPropertiesLoader.EXTENDED_CLASS, "invalidClass");
+ configuration.setProperty(BootStrapProperties.CONFIG_SERVICE_EXTENDED_CLASS, "invalidClass");
AbstractPropertiesLoader loader = MicroservicePropertiesLoader.INSTANCE;
try {
diff --git a/handlers/handler-tracing-zipkin/src/main/java/org/apache/servicecomb/tracing/zipkin/TracingConfiguration.java b/handlers/handler-tracing-zipkin/src/main/java/org/apache/servicecomb/tracing/zipkin/TracingConfiguration.java
index 9845b3f..9f0c1a8 100644
--- a/handlers/handler-tracing-zipkin/src/main/java/org/apache/servicecomb/tracing/zipkin/TracingConfiguration.java
+++ b/handlers/handler-tracing-zipkin/src/main/java/org/apache/servicecomb/tracing/zipkin/TracingConfiguration.java
@@ -17,17 +17,16 @@
package org.apache.servicecomb.tracing.zipkin;
-import static org.apache.servicecomb.foundation.common.base.ServiceCombConstants.CONFIG_QUALIFIED_MICROSERVICE_NAME_KEY;
import static org.apache.servicecomb.foundation.common.base.ServiceCombConstants.CONFIG_TRACING_COLLECTOR_ADDRESS;
import static org.apache.servicecomb.foundation.common.base.ServiceCombConstants.CONFIG_TRACING_COLLECTOR_API_V1;
import static org.apache.servicecomb.foundation.common.base.ServiceCombConstants.CONFIG_TRACING_COLLECTOR_API_V2;
import static org.apache.servicecomb.foundation.common.base.ServiceCombConstants.CONFIG_TRACING_COLLECTOR_API_VERSION;
import static org.apache.servicecomb.foundation.common.base.ServiceCombConstants.CONFIG_TRACING_COLLECTOR_PATH;
-import static org.apache.servicecomb.foundation.common.base.ServiceCombConstants.DEFAULT_MICROSERVICE_NAME;
import static org.apache.servicecomb.foundation.common.base.ServiceCombConstants.DEFAULT_TRACING_COLLECTOR_ADDRESS;
import java.text.MessageFormat;
+import org.apache.servicecomb.config.BootStrapProperties;
import org.apache.servicecomb.config.DynamicProperties;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
@@ -81,8 +80,7 @@ class TracingConfiguration {
Tracing tracing(Reporter<Span> reporter, DynamicProperties dynamicProperties,
CurrentTraceContext currentTraceContext) {
return Tracing.newBuilder()
- .localServiceName(dynamicProperties.getStringProperty(CONFIG_QUALIFIED_MICROSERVICE_NAME_KEY,
- DEFAULT_MICROSERVICE_NAME))
+ .localServiceName(BootStrapProperties.readServiceName())
.currentTraceContext(currentTraceContext) // puts trace IDs into logs
.spanReporter(reporter)
.build();
diff --git a/integration-tests/it-producer/src/main/java/org/apache/servicecomb/it/schema/TraceSchema.java b/integration-tests/it-producer/src/main/java/org/apache/servicecomb/it/schema/TraceSchema.java
index 93e8ccb..76f1b5f 100644
--- a/integration-tests/it-producer/src/main/java/org/apache/servicecomb/it/schema/TraceSchema.java
+++ b/integration-tests/it-producer/src/main/java/org/apache/servicecomb/it/schema/TraceSchema.java
@@ -16,11 +16,10 @@
*/
package org.apache.servicecomb.it.schema;
-import static org.apache.servicecomb.foundation.common.base.ServiceCombConstants.CONFIG_QUALIFIED_MICROSERVICE_NAME_KEY;
-
import java.util.concurrent.CompletableFuture;
import java.util.concurrent.ExecutionException;
+import org.apache.servicecomb.config.BootStrapProperties;
import org.apache.servicecomb.core.Const;
import org.apache.servicecomb.provider.pojo.Invoker;
import org.apache.servicecomb.provider.rest.common.RestSchema;
@@ -28,8 +27,6 @@ import org.apache.servicecomb.swagger.invocation.context.InvocationContext;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
-import com.netflix.config.DynamicPropertyFactory;
-
@RestSchema(schemaId = "trace")
@RequestMapping(path = "/v1/trace")
public class TraceSchema {
@@ -38,7 +35,7 @@ public class TraceSchema {
}
TraceSchemaIntf intf = Invoker.createProxy(
- DynamicPropertyFactory.getInstance().getStringProperty(CONFIG_QUALIFIED_MICROSERVICE_NAME_KEY, null).get(),
+ BootStrapProperties.readServiceName(),
"trace",
TraceSchemaIntf.class);
diff --git a/service-registry/registry-local/src/main/java/org/apache/servicecomb/localregistry/LocalRegistryStore.java b/service-registry/registry-local/src/main/java/org/apache/servicecomb/localregistry/LocalRegistryStore.java
index 3b4d5f9..f21bcad 100644
--- a/service-registry/registry-local/src/main/java/org/apache/servicecomb/localregistry/LocalRegistryStore.java
+++ b/service-registry/registry-local/src/main/java/org/apache/servicecomb/localregistry/LocalRegistryStore.java
@@ -30,8 +30,6 @@ import java.util.UUID;
import java.util.concurrent.ConcurrentHashMap;
import java.util.stream.Collectors;
-import org.apache.servicecomb.config.ConfigUtil;
-import org.apache.servicecomb.config.archaius.sources.MicroserviceConfigLoader;
import org.apache.servicecomb.foundation.common.utils.BeanUtils;
import org.apache.servicecomb.foundation.common.utils.JvmUtils;
import org.apache.servicecomb.localregistry.RegistryBean.Instance;
@@ -40,7 +38,6 @@ import org.apache.servicecomb.registry.api.registry.Microservice;
import org.apache.servicecomb.registry.api.registry.MicroserviceFactory;
import org.apache.servicecomb.registry.api.registry.MicroserviceInstance;
import org.apache.servicecomb.registry.api.registry.MicroserviceInstances;
-import org.apache.servicecomb.registry.definition.MicroserviceDefinition;
import org.apache.servicecomb.swagger.SwaggerUtils;
import org.apache.servicecomb.swagger.generator.SwaggerGenerator;
import org.yaml.snakeyaml.Yaml;
@@ -74,10 +71,8 @@ public class LocalRegistryStore {
}
public void init() {
- MicroserviceConfigLoader loader = ConfigUtil.getMicroserviceConfigLoader();
- MicroserviceDefinition microserviceDefinition = new MicroserviceDefinition(loader.getConfigModels());
MicroserviceFactory microserviceFactory = new MicroserviceFactory();
- selfMicroservice = microserviceFactory.create(microserviceDefinition);
+ selfMicroservice = microserviceFactory.create();
selfMicroserviceInstance = selfMicroservice.getInstance();
microserviceMap.clear();
microserviceInstanceMap.clear();
diff --git a/service-registry/registry-local/src/main/java/org/apache/servicecomb/localregistry/RegistryBean.java b/service-registry/registry-local/src/main/java/org/apache/servicecomb/localregistry/RegistryBean.java
index 320d5aa..8e3ca43 100644
--- a/service-registry/registry-local/src/main/java/org/apache/servicecomb/localregistry/RegistryBean.java
+++ b/service-registry/registry-local/src/main/java/org/apache/servicecomb/localregistry/RegistryBean.java
@@ -17,8 +17,6 @@
package org.apache.servicecomb.localregistry;
-import static org.apache.servicecomb.registry.definition.DefinitionConst.DEFAULT_APPLICATION_ID;
-
import java.util.ArrayList;
import java.util.Collections;
import java.util.HashMap;
@@ -27,9 +25,8 @@ import java.util.Map;
import java.util.UUID;
import org.apache.commons.lang3.StringUtils;
-import org.apache.servicecomb.foundation.common.base.ServiceCombConstants;
-
-import com.netflix.config.DynamicPropertyFactory;
+import org.apache.servicecomb.config.BootStrapProperties;
+import org.apache.servicecomb.registry.api.registry.MicroserviceFactory;
/**
* Configuration bean for local services. Bean configuration is token
@@ -117,12 +114,7 @@ public class RegistryBean {
if (!StringUtils.isEmpty(configAppId)) {
return configAppId;
}
- if (DynamicPropertyFactory.getInstance()
- .getStringProperty(ServiceCombConstants.CONFIG_APPLICATION_ID_KEY, null).get() != null) {
- return DynamicPropertyFactory.getInstance()
- .getStringProperty(ServiceCombConstants.CONFIG_APPLICATION_ID_KEY, null).get();
- }
- return DEFAULT_APPLICATION_ID;
+ return BootStrapProperties.readApplication();
}
public String getId() {
diff --git a/service-registry/registry-schema-discovery/src/main/java/org/apache/servicecomb/schemadiscovery/SchemaDiscovery.java b/service-registry/registry-schema-discovery/src/main/java/org/apache/servicecomb/schemadiscovery/SchemaDiscovery.java
index 29ca7d5..95403b2 100644
--- a/service-registry/registry-schema-discovery/src/main/java/org/apache/servicecomb/schemadiscovery/SchemaDiscovery.java
+++ b/service-registry/registry-schema-discovery/src/main/java/org/apache/servicecomb/schemadiscovery/SchemaDiscovery.java
@@ -21,8 +21,8 @@ import java.util.Collection;
import java.util.List;
import org.apache.commons.lang3.StringUtils;
+import org.apache.servicecomb.config.BootStrapProperties;
import org.apache.servicecomb.core.invocation.endpoint.EndpointUtils;
-import org.apache.servicecomb.foundation.common.base.ServiceCombConstants;
import org.apache.servicecomb.provider.pojo.Invoker;
import org.apache.servicecomb.registry.api.Discovery;
import org.apache.servicecomb.registry.api.registry.Microservice;
@@ -88,9 +88,7 @@ public class SchemaDiscovery implements Discovery {
if (this.schemaDiscoveryService == null) {
// For schema discovery, assume all instances of different microservices
// are instances of this microservice.
- String serviceName = DynamicPropertyFactory.getInstance()
- .getStringProperty(ServiceCombConstants.CONFIG_QUALIFIED_MICROSERVICE_NAME_KEY,
- ServiceCombConstants.DEFAULT_MICROSERVICE_NAME).get();
+ String serviceName = BootStrapProperties.readServiceName();
schemaDiscoveryService = Invoker
.createProxy(serviceName, SchemaDiscoveryService.SCHEMA_ID,
diff --git a/service-registry/registry-service-center/src/main/java/org/apache/servicecomb/serviceregistry/RegistryUtils.java b/service-registry/registry-service-center/src/main/java/org/apache/servicecomb/serviceregistry/RegistryUtils.java
index b133e67..b581de8 100644
--- a/service-registry/registry-service-center/src/main/java/org/apache/servicecomb/serviceregistry/RegistryUtils.java
+++ b/service-registry/registry-service-center/src/main/java/org/apache/servicecomb/serviceregistry/RegistryUtils.java
@@ -27,8 +27,8 @@ import java.util.function.Consumer;
import java.util.function.Function;
import java.util.regex.Matcher;
+import org.apache.commons.configuration.Configuration;
import org.apache.servicecomb.config.ConfigUtil;
-import org.apache.servicecomb.config.archaius.sources.MicroserviceConfigLoader;
import org.apache.servicecomb.foundation.common.Holder;
import org.apache.servicecomb.foundation.common.event.EventManager;
import org.apache.servicecomb.foundation.common.utils.BeanUtils;
@@ -38,7 +38,6 @@ import org.apache.servicecomb.registry.api.registry.FindInstancesResponse;
import org.apache.servicecomb.registry.api.registry.Microservice;
import org.apache.servicecomb.registry.api.registry.MicroserviceInstance;
import org.apache.servicecomb.registry.api.registry.MicroserviceInstances;
-import org.apache.servicecomb.registry.definition.MicroserviceDefinition;
import org.apache.servicecomb.serviceregistry.client.ServiceRegistryClient;
import org.apache.servicecomb.serviceregistry.config.ServiceRegistryConfig;
import org.apache.servicecomb.serviceregistry.registry.ServiceRegistryFactory;
@@ -75,9 +74,7 @@ public final class RegistryUtils {
return;
}
- MicroserviceConfigLoader loader = ConfigUtil.getMicroserviceConfigLoader();
- MicroserviceDefinition microserviceDefinition = new MicroserviceDefinition(loader.getConfigModels());
- initializeServiceRegistriesWithConfig(microserviceDefinition);
+ initializeServiceRegistriesWithConfig(ConfigUtil.createLocalConfig());
initAggregateServiceRegistryCache();
}
@@ -95,16 +92,16 @@ public final class RegistryUtils {
.register(aggregateServiceRegistryCache));
}
- private static void initializeServiceRegistriesWithConfig(MicroserviceDefinition microserviceDefinition) {
+ private static void initializeServiceRegistriesWithConfig(Configuration configuration) {
serviceRegistry =
- ServiceRegistryFactory.create(ServiceRegistryConfig.INSTANCE, microserviceDefinition);
- initializeServiceRegistries(microserviceDefinition);
+ ServiceRegistryFactory.create(ServiceRegistryConfig.INSTANCE, configuration);
+ initializeServiceRegistries(configuration);
}
- private static void initializeServiceRegistries(MicroserviceDefinition microserviceDefinition) {
+ private static void initializeServiceRegistries(Configuration configuration) {
Map<String, ServiceRegistryConfig> configs = BeanUtils.getBeansOfType(ServiceRegistryConfig.class);
configs.forEach((k, v) -> {
- ServiceRegistry serviceRegistry = ServiceRegistryFactory.create(v, microserviceDefinition);
+ ServiceRegistry serviceRegistry = ServiceRegistryFactory.create(v, configuration);
addExtraServiceRegistry(serviceRegistry);
});
executeOnEachServiceRegistry(ServiceRegistry::init);
diff --git a/service-registry/registry-service-center/src/main/java/org/apache/servicecomb/serviceregistry/ServiceRegistry.java b/service-registry/registry-service-center/src/main/java/org/apache/servicecomb/serviceregistry/ServiceRegistry.java
index dc00b4d..643cacd 100644
--- a/service-registry/registry-service-center/src/main/java/org/apache/servicecomb/serviceregistry/ServiceRegistry.java
+++ b/service-registry/registry-service-center/src/main/java/org/apache/servicecomb/serviceregistry/ServiceRegistry.java
@@ -49,8 +49,6 @@ public interface ServiceRegistry {
EventBus getEventBus();
- Set<String> getCombinedMicroserviceNames();
-
/**
* Get the AppId of this microservice instance itself.
*/
diff --git a/service-registry/registry-service-center/src/main/java/org/apache/servicecomb/serviceregistry/registry/AbstractServiceRegistry.java b/service-registry/registry-service-center/src/main/java/org/apache/servicecomb/serviceregistry/registry/AbstractServiceRegistry.java
index a659d2c..1d34004 100644
--- a/service-registry/registry-service-center/src/main/java/org/apache/servicecomb/serviceregistry/registry/AbstractServiceRegistry.java
+++ b/service-registry/registry-service-center/src/main/java/org/apache/servicecomb/serviceregistry/registry/AbstractServiceRegistry.java
@@ -22,9 +22,9 @@ import static org.apache.servicecomb.foundation.common.base.ServiceCombConstants
import java.util.HashMap;
import java.util.List;
import java.util.Map;
-import java.util.Set;
import java.util.concurrent.ExecutorService;
+import org.apache.commons.configuration.Configuration;
import org.apache.servicecomb.foundation.common.concurrency.SuppressedRunnableWrapper;
import org.apache.servicecomb.registry.DiscoveryManager;
import org.apache.servicecomb.registry.api.event.MicroserviceInstanceChangedEvent;
@@ -38,7 +38,6 @@ import org.apache.servicecomb.registry.api.registry.Microservice;
import org.apache.servicecomb.registry.api.registry.MicroserviceFactory;
import org.apache.servicecomb.registry.api.registry.MicroserviceInstance;
import org.apache.servicecomb.registry.api.registry.MicroserviceInstances;
-import org.apache.servicecomb.registry.definition.MicroserviceDefinition;
import org.apache.servicecomb.serviceregistry.RegistryUtils;
import org.apache.servicecomb.serviceregistry.ServiceRegistry;
import org.apache.servicecomb.serviceregistry.api.Const;
@@ -65,8 +64,6 @@ public abstract class AbstractServiceRegistry implements ServiceRegistry {
protected EventBus eventBus;
- protected MicroserviceDefinition microserviceDefinition;
-
protected Microservice microservice;
protected ServiceRegistryClient srClient;
@@ -82,12 +79,11 @@ public abstract class AbstractServiceRegistry implements ServiceRegistry {
RefreshableServiceRegistryCache serviceRegistryCache;
public AbstractServiceRegistry(EventBus eventBus, ServiceRegistryConfig serviceRegistryConfig,
- MicroserviceDefinition microserviceDefinition) {
+ Configuration configuration) {
setName(serviceRegistryConfig.getRegistryName());
this.eventBus = eventBus;
this.serviceRegistryConfig = serviceRegistryConfig;
- this.microserviceDefinition = microserviceDefinition;
- this.microservice = microserviceFactory.create(microserviceDefinition);
+ this.microservice = microserviceFactory.create(configuration);
}
@Override
@@ -116,11 +112,6 @@ public abstract class AbstractServiceRegistry implements ServiceRegistry {
}
@Override
- public Set<String> getCombinedMicroserviceNames() {
- return microserviceDefinition.getCombinedFrom();
- }
-
- @Override
public ServiceRegistryClient getServiceRegistryClient() {
return srClient;
}
diff --git a/service-registry/registry-service-center/src/main/java/org/apache/servicecomb/serviceregistry/registry/RemoteServiceRegistry.java b/service-registry/registry-service-center/src/main/java/org/apache/servicecomb/serviceregistry/registry/RemoteServiceRegistry.java
index e0d3172..940ecd6 100644
--- a/service-registry/registry-service-center/src/main/java/org/apache/servicecomb/serviceregistry/registry/RemoteServiceRegistry.java
+++ b/service-registry/registry-service-center/src/main/java/org/apache/servicecomb/serviceregistry/registry/RemoteServiceRegistry.java
@@ -21,11 +21,11 @@ import java.util.concurrent.ScheduledThreadPoolExecutor;
import java.util.concurrent.ThreadFactory;
import java.util.concurrent.TimeUnit;
+import org.apache.commons.configuration.Configuration;
import org.apache.servicecomb.foundation.common.concurrency.SuppressedRunnableWrapper;
import org.apache.servicecomb.foundation.common.utils.SPIServiceUtils;
import org.apache.servicecomb.serviceregistry.client.ServiceRegistryClient;
import org.apache.servicecomb.serviceregistry.config.ServiceRegistryConfig;
-import org.apache.servicecomb.registry.definition.MicroserviceDefinition;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@@ -40,8 +40,8 @@ public class RemoteServiceRegistry extends AbstractServiceRegistry {
.getOrLoadSortedService(ServiceRegistryTaskInitializer.class);
public RemoteServiceRegistry(EventBus eventBus, ServiceRegistryConfig serviceRegistryConfig,
- MicroserviceDefinition microserviceDefinition) {
- super(eventBus, serviceRegistryConfig, microserviceDefinition);
+ Configuration configuration) {
+ super(eventBus, serviceRegistryConfig, configuration);
}
@Override
diff --git a/service-registry/registry-service-center/src/main/java/org/apache/servicecomb/serviceregistry/registry/ServiceRegistryFactory.java b/service-registry/registry-service-center/src/main/java/org/apache/servicecomb/serviceregistry/registry/ServiceRegistryFactory.java
index 42b2653..495b2d9 100644
--- a/service-registry/registry-service-center/src/main/java/org/apache/servicecomb/serviceregistry/registry/ServiceRegistryFactory.java
+++ b/service-registry/registry-service-center/src/main/java/org/apache/servicecomb/serviceregistry/registry/ServiceRegistryFactory.java
@@ -17,10 +17,10 @@
package org.apache.servicecomb.serviceregistry.registry;
+import org.apache.commons.configuration.Configuration;
import org.apache.servicecomb.foundation.common.event.SimpleEventBus;
import org.apache.servicecomb.serviceregistry.ServiceRegistry;
import org.apache.servicecomb.serviceregistry.config.ServiceRegistryConfig;
-import org.apache.servicecomb.registry.definition.MicroserviceDefinition;
import com.google.common.eventbus.EventBus;
@@ -29,15 +29,15 @@ public final class ServiceRegistryFactory {
}
public static ServiceRegistry create(ServiceRegistryConfig serviceRegistryConfig,
- MicroserviceDefinition microserviceDefinition) {
- return create(null, serviceRegistryConfig, microserviceDefinition);
+ Configuration configuration) {
+ return create(null, serviceRegistryConfig, configuration);
}
public static ServiceRegistry create(EventBus eventBus, ServiceRegistryConfig serviceRegistryConfig,
- MicroserviceDefinition microserviceDefinition) {
+ Configuration configuration) {
if (null == eventBus) {
eventBus = new SimpleEventBus();
}
- return new RemoteServiceRegistry(eventBus, serviceRegistryConfig, microserviceDefinition);
+ return new RemoteServiceRegistry(eventBus, serviceRegistryConfig, configuration);
}
}
diff --git a/service-registry/registry-service-center/src/main/java/org/apache/servicecomb/serviceregistry/task/MicroserviceRegisterTask.java b/service-registry/registry-service-center/src/main/java/org/apache/servicecomb/serviceregistry/task/MicroserviceRegisterTask.java
index 1509f89..c2b3374 100644
--- a/service-registry/registry-service-center/src/main/java/org/apache/servicecomb/serviceregistry/task/MicroserviceRegisterTask.java
+++ b/service-registry/registry-service-center/src/main/java/org/apache/servicecomb/serviceregistry/task/MicroserviceRegisterTask.java
@@ -26,14 +26,15 @@ import java.util.Set;
import javax.ws.rs.core.Response.Status;
import org.apache.commons.lang3.StringUtils;
+import org.apache.servicecomb.config.BootStrapProperties;
import org.apache.servicecomb.foundation.common.base.ServiceCombConstants;
-import org.apache.servicecomb.serviceregistry.RegistryUtils;
import org.apache.servicecomb.registry.api.registry.Microservice;
+import org.apache.servicecomb.serviceregistry.RegistryUtils;
+import org.apache.servicecomb.serviceregistry.adapter.EnvAdapterManager;
import org.apache.servicecomb.serviceregistry.api.response.GetSchemaResponse;
import org.apache.servicecomb.serviceregistry.client.ServiceRegistryClient;
import org.apache.servicecomb.serviceregistry.client.http.Holder;
import org.apache.servicecomb.serviceregistry.config.ServiceRegistryConfig;
-import org.apache.servicecomb.serviceregistry.adapter.EnvAdapterManager;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@@ -226,7 +227,7 @@ public class MicroserviceRegisterTask extends AbstractRegisterTask {
"There is a schema only existing in local microservice: [" + localSchemaEntry.getKey()
+ "], which means there are interfaces changed. "
+ "You need to increment microservice version before deploying, "
- + "or you can configure service_description.environment="
+ + "or you can configure " + BootStrapProperties.CONFIG_SERVICE_ENVIRONMENT + "="
+ ServiceCombConstants.DEVELOPMENT_SERVICECOMB_ENV
+ " to work in development environment and ignore this error");
}
@@ -279,7 +280,7 @@ public class MicroserviceRegisterTask extends AbstractRegisterTask {
"The schema(id=[" + localSchemaEntry.getKey()
+ "]) content held by this instance and the service center is different. "
+ "You need to increment microservice version before deploying. "
- + "Or you can configure service_description.environment="
+ + "Or you can configure " + BootStrapProperties.CONFIG_SERVICE_ENVIRONMENT + "="
+ ServiceCombConstants.DEVELOPMENT_SERVICECOMB_ENV
+ " to work in development environment and ignore this error");
}
@@ -320,7 +321,7 @@ public class MicroserviceRegisterTask extends AbstractRegisterTask {
throw new IllegalStateException("There are schemas only existing in service center: " + scSchemaMap.keySet()
+ ", which means there are interfaces changed. "
+ "You need to increment microservice version before deploying, "
- + "or if service_description.environment="
+ + "or if " + BootStrapProperties.CONFIG_SERVICE_ENVIRONMENT + "="
+ ServiceCombConstants.DEVELOPMENT_SERVICECOMB_ENV
+ ", you can delete microservice information in service center and restart this instance.");
}
diff --git a/service-registry/registry-service-center/src/test/java/org/apache/servicecomb/serviceregistry/api/registry/TestMicroserviceFactory.java b/service-registry/registry-service-center/src/test/java/org/apache/servicecomb/serviceregistry/api/registry/TestMicroserviceFactory.java
index 1e2c809..c3de510 100644
--- a/service-registry/registry-service-center/src/test/java/org/apache/servicecomb/serviceregistry/api/registry/TestMicroserviceFactory.java
+++ b/service-registry/registry-service-center/src/test/java/org/apache/servicecomb/serviceregistry/api/registry/TestMicroserviceFactory.java
@@ -17,28 +17,22 @@
package org.apache.servicecomb.serviceregistry.api.registry;
-import static org.apache.servicecomb.foundation.common.base.ServiceCombConstants.CONFIG_QUALIFIED_MICROSERVICE_DESCRIPTION_KEY;
-import static org.apache.servicecomb.foundation.common.base.ServiceCombConstants.CONFIG_QUALIFIED_MICROSERVICE_VERSION_KEY;
import static org.apache.servicecomb.registry.definition.DefinitionConst.CONFIG_ALLOW_CROSS_APP_KEY;
-import static org.apache.servicecomb.registry.definition.DefinitionConst.DEFAULT_MICROSERVICE_VERSION;
import java.util.HashMap;
import java.util.Map;
import org.apache.commons.configuration.Configuration;
-import org.apache.servicecomb.config.archaius.sources.MicroserviceConfigLoader;
+import org.apache.servicecomb.config.BootStrapProperties;
+import org.apache.servicecomb.config.ConfigUtil;
import org.apache.servicecomb.registry.api.registry.Microservice;
import org.apache.servicecomb.registry.api.registry.MicroserviceFactory;
-import org.apache.servicecomb.registry.definition.MicroserviceDefinition;
import org.junit.Assert;
import org.junit.Rule;
import org.junit.Test;
import org.junit.rules.ExpectedException;
-import org.mockito.Mockito;
import mockit.Deencapsulation;
-import mockit.Expectations;
-import mockit.Mocked;
public class TestMicroserviceFactory {
@Rule
@@ -62,12 +56,8 @@ public class TestMicroserviceFactory {
@Test
public void testInit() {
- MicroserviceConfigLoader loader = new MicroserviceConfigLoader();
- loader.loadAndSort();
-
- MicroserviceDefinition microserviceDefinition = new MicroserviceDefinition(loader.getConfigModels());
MicroserviceFactory factory = new MicroserviceFactory();
- Microservice microservice = factory.create(microserviceDefinition);
+ Microservice microservice = factory.create(ConfigUtil.createLocalConfig());
String microserviceName = "default";
@@ -76,83 +66,60 @@ public class TestMicroserviceFactory {
@Test
public void testSetDescription() {
- Microservice microservice = new Microservice();
MicroserviceFactory factory = new MicroserviceFactory();
- Configuration configuration = Mockito.mock(Configuration.class);
-
- Mockito.when(configuration.getStringArray(CONFIG_QUALIFIED_MICROSERVICE_DESCRIPTION_KEY))
- .thenReturn(new String[] {"test1", "test2"});
-
- Deencapsulation.invoke(factory, "setDescription", configuration, microservice);
-
+ Configuration configuration = ConfigUtil.createLocalConfig();
+ configuration.setProperty(BootStrapProperties.CONFIG_SERVICE_DESCRIPTION, new String[] {"test1", "test2"});
+ Microservice microservice = factory.create(configuration);
Assert.assertEquals("test1,test2", microservice.getDescription());
}
@Test
public void testSetDescriptionOnNullDescription() {
- Microservice microservice = new Microservice();
- MicroserviceFactory factory = new MicroserviceFactory();
- Configuration configuration = Mockito.mock(Configuration.class);
-
- Mockito.when(configuration.getStringArray(CONFIG_QUALIFIED_MICROSERVICE_DESCRIPTION_KEY))
- .thenReturn(null);
-
- Deencapsulation.invoke(factory, "setDescription", configuration, microservice);
+ Configuration configuration = ConfigUtil.createLocalConfig();
+ configuration.clearProperty(BootStrapProperties.CONFIG_SERVICE_DESCRIPTION);
+ MicroserviceFactory factory = new MicroserviceFactory();
+ Microservice microservice = factory.create(configuration);
Assert.assertNull(microservice.getDescription());
- Mockito.when(configuration.getStringArray(CONFIG_QUALIFIED_MICROSERVICE_DESCRIPTION_KEY))
- .thenReturn(new String[] {});
-
- Deencapsulation.invoke(factory, "setDescription", configuration, microservice);
+ configuration.setProperty(BootStrapProperties.CONFIG_SERVICE_DESCRIPTION, new String[] {});
+ microservice = factory.create(configuration);
Assert.assertNull(microservice.getDescription());
}
@Test
public void testSetDescriptionOnEmptyDescription() {
- Microservice microservice = new Microservice();
- MicroserviceFactory factory = new MicroserviceFactory();
- Configuration configuration = Mockito.mock(Configuration.class);
+ Configuration configuration = ConfigUtil.createLocalConfig();
+ configuration.setProperty(BootStrapProperties.CONFIG_SERVICE_DESCRIPTION, new String[] {"", ""});
- Mockito.when(configuration.getStringArray(CONFIG_QUALIFIED_MICROSERVICE_DESCRIPTION_KEY))
- .thenReturn(new String[] {"", ""});
+ MicroserviceFactory factory = new MicroserviceFactory();
- Deencapsulation.invoke(factory, "setDescription", configuration, microservice);
+ Microservice microservice = factory.create(configuration);
Assert.assertEquals(",", microservice.getDescription());
}
@Test
public void testSetDescriptionOnBlankDescription() {
- Microservice microservice = new Microservice();
- MicroserviceFactory factory = new MicroserviceFactory();
- Configuration configuration = Mockito.mock(Configuration.class);
+ Configuration configuration = ConfigUtil.createLocalConfig();
+ configuration.setProperty(BootStrapProperties.CONFIG_SERVICE_DESCRIPTION, new String[] {" ", " "});
- Mockito.when(configuration.getStringArray(CONFIG_QUALIFIED_MICROSERVICE_DESCRIPTION_KEY))
- .thenReturn(new String[] {" ", " "});
+ MicroserviceFactory factory = new MicroserviceFactory();
- Deencapsulation.invoke(factory, "setDescription", configuration, microservice);
+ Microservice microservice = factory.create(configuration);
Assert.assertEquals(" , ", microservice.getDescription());
}
@Test
- public void testCreateMicroserviceFromDefinitionWithInvalidVersion(@Mocked Configuration configuration,
- @Mocked MicroserviceDefinition microserviceDefinition) {
-
- new Expectations() {
- {
- configuration.getString(CONFIG_QUALIFIED_MICROSERVICE_VERSION_KEY,
- DEFAULT_MICROSERVICE_VERSION);
- result = "x.y.x.1";
- microserviceDefinition.getConfiguration();
- result = configuration;
- }
- };
+ public void testCreateMicroserviceFromDefinitionWithInvalidVersion() {
+ Configuration configuration = ConfigUtil.createLocalConfig();
+ configuration.setProperty(BootStrapProperties.CONFIG_SERVICE_VERSION, "x.y.x.1");
+
expectedException.equals(IllegalStateException.class);
expectedException.expectMessage("Invalid major \"x\", version \"x.y.x.1\".");
MicroserviceFactory microserviceFactory = new MicroserviceFactory();
- microserviceFactory.create(microserviceDefinition);
+ microserviceFactory.create(configuration);
}
}
diff --git a/service-registry/registry-service-center/src/test/java/org/apache/servicecomb/serviceregistry/client/LocalServiceRegistryClientImpl.java b/service-registry/registry-service-center/src/test/java/org/apache/servicecomb/serviceregistry/client/LocalServiceRegistryClientImpl.java
index 09bb1a5..a63e9b2 100644
--- a/service-registry/registry-service-center/src/test/java/org/apache/servicecomb/serviceregistry/client/LocalServiceRegistryClientImpl.java
+++ b/service-registry/registry-service-center/src/test/java/org/apache/servicecomb/serviceregistry/client/LocalServiceRegistryClientImpl.java
@@ -17,8 +17,6 @@
package org.apache.servicecomb.serviceregistry.client;
-import static org.apache.servicecomb.registry.definition.DefinitionConst.DEFAULT_APPLICATION_ID;
-
import java.io.InputStream;
import java.util.ArrayList;
import java.util.List;
@@ -31,22 +29,23 @@ import java.util.concurrent.atomic.AtomicInteger;
import javax.ws.rs.core.Response.Status;
import org.apache.commons.lang3.StringUtils;
+import org.apache.servicecomb.config.BootStrapProperties;
import org.apache.servicecomb.foundation.vertx.AsyncResultCallback;
+import org.apache.servicecomb.registry.api.event.MicroserviceInstanceChangedEvent;
+import org.apache.servicecomb.registry.api.registry.FindInstancesResponse;
import org.apache.servicecomb.registry.api.registry.Microservice;
import org.apache.servicecomb.registry.api.registry.MicroserviceInstance;
import org.apache.servicecomb.registry.api.registry.MicroserviceInstanceStatus;
-import org.apache.servicecomb.serviceregistry.api.registry.ServiceCenterConfig;
-import org.apache.servicecomb.serviceregistry.api.registry.ServiceCenterInfo;
-import org.apache.servicecomb.registry.api.registry.FindInstancesResponse;
-import org.apache.servicecomb.serviceregistry.api.response.GetSchemaResponse;
-import org.apache.servicecomb.serviceregistry.api.response.HeartbeatResponse;
-import org.apache.servicecomb.registry.api.event.MicroserviceInstanceChangedEvent;
-import org.apache.servicecomb.serviceregistry.client.http.Holder;
import org.apache.servicecomb.registry.api.registry.MicroserviceInstances;
import org.apache.servicecomb.registry.version.Version;
import org.apache.servicecomb.registry.version.VersionRule;
import org.apache.servicecomb.registry.version.VersionRuleUtils;
import org.apache.servicecomb.registry.version.VersionUtils;
+import org.apache.servicecomb.serviceregistry.api.registry.ServiceCenterConfig;
+import org.apache.servicecomb.serviceregistry.api.registry.ServiceCenterInfo;
+import org.apache.servicecomb.serviceregistry.api.response.GetSchemaResponse;
+import org.apache.servicecomb.serviceregistry.api.response.HeartbeatResponse;
+import org.apache.servicecomb.serviceregistry.client.http.Holder;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.yaml.snakeyaml.Yaml;
@@ -118,7 +117,7 @@ public class LocalServiceRegistryClientImpl implements ServiceRegistryClient {
List<String> schemas = (List<String>) serviceConfig.get("schemaIds");
Microservice microservice = new Microservice();
- microservice.setAppId(appId == null ? DEFAULT_APPLICATION_ID : appId);
+ microservice.setAppId(appId == null ? BootStrapProperties.DEFAULT_APPLICATION : appId);
microservice.setServiceName(name);
microservice.setVersion(version);
microservice.setServiceId(serviceId == null ? UUID.randomUUID().toString() : serviceId);
diff --git a/service-registry/registry-service-center/src/test/java/org/apache/servicecomb/serviceregistry/client/http/TestClientHttp.java b/service-registry/registry-service-center/src/test/java/org/apache/servicecomb/serviceregistry/client/http/TestClientHttp.java
index d17c38a..3715572 100644
--- a/service-registry/registry-service-center/src/test/java/org/apache/servicecomb/serviceregistry/client/http/TestClientHttp.java
+++ b/service-registry/registry-service-center/src/test/java/org/apache/servicecomb/serviceregistry/client/http/TestClientHttp.java
@@ -19,11 +19,14 @@ package org.apache.servicecomb.serviceregistry.client.http;
import java.util.concurrent.CountDownLatch;
+import org.apache.commons.configuration.Configuration;
+import org.apache.servicecomb.config.BootStrapProperties;
+import org.apache.servicecomb.config.ConfigUtil;
import org.apache.servicecomb.foundation.common.net.IpPort;
import org.apache.servicecomb.foundation.vertx.AsyncResultCallback;
-import org.apache.servicecomb.serviceregistry.RegistryUtils;
import org.apache.servicecomb.registry.api.registry.Microservice;
import org.apache.servicecomb.registry.api.registry.MicroserviceFactory;
+import org.apache.servicecomb.serviceregistry.RegistryUtils;
import org.apache.servicecomb.serviceregistry.client.Endpoints;
import org.apache.servicecomb.serviceregistry.client.IpPortManager;
import org.apache.servicecomb.serviceregistry.config.ServiceRegistryConfig;
@@ -34,6 +37,7 @@ import org.mockito.Mockito;
import io.vertx.core.Handler;
import io.vertx.core.buffer.Buffer;
import mockit.Expectations;
+import mockit.Injectable;
import mockit.Mock;
import mockit.MockUp;
import mockit.Mocked;
@@ -44,6 +48,9 @@ public class TestClientHttp {
@SuppressWarnings("unchecked")
@Test
public void testServiceRegistryClientImpl(@Mocked IpPortManager manager) {
+ Configuration configuration = ConfigUtil.createLocalConfig();
+ configuration.setProperty(BootStrapProperties.CONFIG_SERVICE_APPLICATION, "app");
+ configuration.setProperty(BootStrapProperties.CONFIG_SERVICE_NAME, "ms");
IpPort ipPort = new IpPort("127.0.0.1", 8853);
new Expectations() {
{
@@ -87,7 +94,7 @@ public class TestClientHttp {
};
MicroserviceFactory microserviceFactory = new MicroserviceFactory();
- Microservice microservice = microserviceFactory.create("app", "ms");
+ Microservice microservice = microserviceFactory.create(configuration);
ServiceRegistryClientImpl oClient = new ServiceRegistryClientImpl(ServiceRegistryConfig.INSTANCE);
oClient.init();
diff --git a/service-registry/registry-service-center/src/test/java/org/apache/servicecomb/serviceregistry/client/http/TestServiceRegistryClientImpl.java b/service-registry/registry-service-center/src/test/java/org/apache/servicecomb/serviceregistry/client/http/TestServiceRegistryClientImpl.java
index 76d96bf..fffee24 100644
--- a/service-registry/registry-service-center/src/test/java/org/apache/servicecomb/serviceregistry/client/http/TestServiceRegistryClientImpl.java
+++ b/service-registry/registry-service-center/src/test/java/org/apache/servicecomb/serviceregistry/client/http/TestServiceRegistryClientImpl.java
@@ -29,15 +29,19 @@ import java.util.concurrent.TimeUnit;
import javax.ws.rs.core.Response.Status;
+import org.apache.commons.configuration.Configuration;
import org.apache.log4j.Appender;
import org.apache.log4j.Logger;
import org.apache.log4j.spi.LoggingEvent;
+import org.apache.servicecomb.config.BootStrapProperties;
import org.apache.servicecomb.foundation.common.net.IpPort;
+import org.apache.servicecomb.foundation.test.scaffolding.config.ArchaiusUtils;
import org.apache.servicecomb.foundation.vertx.client.http.HttpClients;
-import org.apache.servicecomb.serviceregistry.RegistryUtils;
import org.apache.servicecomb.registry.api.registry.Microservice;
import org.apache.servicecomb.registry.api.registry.MicroserviceFactory;
import org.apache.servicecomb.registry.api.registry.MicroserviceInstances;
+import org.apache.servicecomb.registry.definition.DefinitionConst;
+import org.apache.servicecomb.serviceregistry.RegistryUtils;
import org.apache.servicecomb.serviceregistry.api.registry.ServiceCenterConfig;
import org.apache.servicecomb.serviceregistry.api.registry.ServiceCenterInfo;
import org.apache.servicecomb.serviceregistry.api.response.GetExistenceResponse;
@@ -47,7 +51,6 @@ import org.apache.servicecomb.serviceregistry.api.response.GetServiceResponse;
import org.apache.servicecomb.serviceregistry.client.ClientException;
import org.apache.servicecomb.serviceregistry.client.http.ServiceRegistryClientImpl.ResponseWrapper;
import org.apache.servicecomb.serviceregistry.config.ServiceRegistryConfig;
-import org.apache.servicecomb.registry.definition.DefinitionConst;
import org.junit.After;
import org.junit.Assert;
import org.junit.Before;
@@ -102,8 +105,10 @@ public class TestServiceRegistryClientImpl {
@Test
public void testPrivateMethodCreateHttpClientOptions() {
+ ArchaiusUtils.setProperty(BootStrapProperties.CONFIG_SERVICE_APPLICATION, "app");
+ ArchaiusUtils.setProperty(BootStrapProperties.CONFIG_SERVICE_NAME, "ms");
MicroserviceFactory microserviceFactory = new MicroserviceFactory();
- Microservice microservice = microserviceFactory.create("app", "ms");
+ Microservice microservice = microserviceFactory.create();
oClient.registerMicroservice(microservice);
oClient.registerMicroserviceInstance(microservice.getInstance());
try {
@@ -114,12 +119,15 @@ public class TestServiceRegistryClientImpl {
} catch (Exception e) {
Assert.assertNotNull(e);
}
+ ArchaiusUtils.resetConfig();
}
@Test
public void testException() {
+ ArchaiusUtils.setProperty(BootStrapProperties.CONFIG_SERVICE_APPLICATION, "app");
+ ArchaiusUtils.setProperty(BootStrapProperties.CONFIG_SERVICE_NAME, "ms");
MicroserviceFactory microserviceFactory = new MicroserviceFactory();
- Microservice microservice = microserviceFactory.create("app", "ms");
+ Microservice microservice = microserviceFactory.create();
Assert.assertNull(oClient.registerMicroservice(microservice));
Assert.assertNull(oClient.registerMicroserviceInstance(microservice.getInstance()));
oClient.init();
@@ -137,6 +145,8 @@ public class TestServiceRegistryClientImpl {
Assert.assertNull(oClient.findServiceInstances("selfMicroserviceId", "appId", "serviceName", "versionRule", "0"));
Assert.assertEquals("a", new ClientException("a").getMessage());
+
+ ArchaiusUtils.resetConfig();
}
static abstract class RegisterSchemaTester {
diff --git a/service-registry/registry-service-center/src/test/java/org/apache/servicecomb/serviceregistry/config/TestPropertiesLoader.java b/service-registry/registry-service-center/src/test/java/org/apache/servicecomb/serviceregistry/config/TestPropertiesLoader.java
index aa1ca59..32d50b2 100644
--- a/service-registry/registry-service-center/src/test/java/org/apache/servicecomb/serviceregistry/config/TestPropertiesLoader.java
+++ b/service-registry/registry-service-center/src/test/java/org/apache/servicecomb/serviceregistry/config/TestPropertiesLoader.java
@@ -17,45 +17,41 @@
package org.apache.servicecomb.serviceregistry.config;
-import static org.apache.servicecomb.foundation.common.base.ServiceCombConstants.CONFIG_SERVICE_DESCRIPTION_KEY;
-
-import java.util.Arrays;
import java.util.HashMap;
import java.util.Map;
import org.apache.commons.configuration.Configuration;
-import org.apache.servicecomb.config.archaius.sources.ConfigModel;
+import org.apache.servicecomb.config.BootStrapProperties;
+import org.apache.servicecomb.config.ConfigUtil;
import org.apache.servicecomb.registry.api.registry.Microservice;
import org.apache.servicecomb.registry.api.registry.MicroserviceFactory;
import org.apache.servicecomb.registry.api.registry.MicroserviceInstance;
-import org.apache.servicecomb.registry.config.AbstractPropertiesLoader;
-import org.apache.servicecomb.registry.config.MicroservicePropertiesLoader;
-import org.apache.servicecomb.registry.definition.MicroserviceDefinition;
import org.apache.servicecomb.serviceregistry.registry.LocalServiceRegistryFactory;
import org.junit.Assert;
import org.junit.Test;
-import com.netflix.config.DynamicConfiguration;
-
public class TestPropertiesLoader {
private static MicroserviceFactory microserviceFactory = new MicroserviceFactory();
@Test
public void testEmptyExtendedClass() {
- Microservice microservice = microserviceFactory.create("default", "emptyExtendedClass");
- Assert.assertEquals(0, microservice.getProperties().size());
+ Configuration configuration = ConfigUtil.createLocalConfig();
+ configuration.setProperty(BootStrapProperties.CONFIG_SERVICE_NAME, "emptyExtendedClass");
+ configuration.clearProperty(BootStrapProperties.CONFIG_SERVICE_PROPERTIES);
+ configuration.clearProperty(BootStrapProperties.OLD_CONFIG_SERVICE_PROPERTIES);
+ Microservice microservice = microserviceFactory.create(configuration);
+ // microservice.yaml has 3 properties
+ Assert.assertEquals(3, microservice.getProperties().size());
}
@Test
public void testInvalidExtendedClass() {
- ConfigModel configModel = MicroserviceDefinition.createConfigModel("default", "invalidExtendedClass");
- @SuppressWarnings("unchecked")
- Map<String, Object> desc =
- (Map<String, Object>) configModel.getConfig().get(CONFIG_SERVICE_DESCRIPTION_KEY);
- desc.put("propertyExtentedClass", "invalidClass");
- MicroserviceDefinition microserviceDefinition = new MicroserviceDefinition(Arrays.asList(configModel));
+ Configuration configuration = ConfigUtil.createLocalConfig();
+ configuration.setProperty(BootStrapProperties.CONFIG_SERVICE_NAME, "invalidExtendedClass");
+ configuration.setProperty(BootStrapProperties.CONFIG_SERVICE_EXTENDED_CLASS, "invalidClass");
+
try {
- microserviceFactory.create(microserviceDefinition);
+ microserviceFactory.create(configuration);
Assert.fail("Must throw exception");
} catch (Error e) {
Assert.assertEquals(ClassNotFoundException.class, e.getCause().getClass());
@@ -65,14 +61,12 @@ public class TestPropertiesLoader {
@Test
public void testCanNotAssignExtendedClass() {
- ConfigModel configModel = MicroserviceDefinition.createConfigModel("default", "invalidExtendedClass");
- @SuppressWarnings("unchecked")
- Map<String, Object> desc =
- (Map<String, Object>) configModel.getConfig().get(CONFIG_SERVICE_DESCRIPTION_KEY);
- desc.put("propertyExtentedClass", "java.lang.String");
- MicroserviceDefinition microserviceDefinition = new MicroserviceDefinition(Arrays.asList(configModel));
+ Configuration configuration = ConfigUtil.createLocalConfig();
+ configuration.setProperty(BootStrapProperties.CONFIG_SERVICE_NAME, "invalidExtendedClass");
+ configuration.setProperty(BootStrapProperties.CONFIG_SERVICE_EXTENDED_CLASS, "java.lang.String");
+
try {
- microserviceFactory.create(microserviceDefinition);
+ microserviceFactory.create(configuration);
Assert.fail("Must throw exception");
} catch (Error e) {
Assert.assertEquals(
@@ -100,5 +94,4 @@ public class TestPropertiesLoader {
expectedMap.put("ek0", "ev0");
Assert.assertEquals(expectedMap, instance.getProperties());
}
-
}
diff --git a/service-registry/registry-service-center/src/test/java/org/apache/servicecomb/serviceregistry/registry/EmptyMockServiceRegistry.java b/service-registry/registry-service-center/src/test/java/org/apache/servicecomb/serviceregistry/registry/EmptyMockServiceRegistry.java
index 3679bc4..ef3a089 100644
--- a/service-registry/registry-service-center/src/test/java/org/apache/servicecomb/serviceregistry/registry/EmptyMockServiceRegistry.java
+++ b/service-registry/registry-service-center/src/test/java/org/apache/servicecomb/serviceregistry/registry/EmptyMockServiceRegistry.java
@@ -19,7 +19,6 @@ package org.apache.servicecomb.serviceregistry.registry;
import java.util.List;
import java.util.Map;
-import java.util.Set;
import org.apache.servicecomb.registry.api.registry.Microservice;
import org.apache.servicecomb.registry.api.registry.MicroserviceInstance;
@@ -58,11 +57,6 @@ public class EmptyMockServiceRegistry implements ServiceRegistry {
}
@Override
- public Set<String> getCombinedMicroserviceNames() {
- return null;
- }
-
- @Override
public String getAppId() {
return null;
}
diff --git a/service-registry/registry-service-center/src/test/java/org/apache/servicecomb/serviceregistry/registry/LocalServiceRegistry.java b/service-registry/registry-service-center/src/test/java/org/apache/servicecomb/serviceregistry/registry/LocalServiceRegistry.java
index d40e238..48077ff 100644
--- a/service-registry/registry-service-center/src/test/java/org/apache/servicecomb/serviceregistry/registry/LocalServiceRegistry.java
+++ b/service-registry/registry-service-center/src/test/java/org/apache/servicecomb/serviceregistry/registry/LocalServiceRegistry.java
@@ -16,10 +16,10 @@
*/
package org.apache.servicecomb.serviceregistry.registry;
+import org.apache.commons.configuration.Configuration;
import org.apache.servicecomb.serviceregistry.client.LocalServiceRegistryClientImpl;
import org.apache.servicecomb.serviceregistry.client.ServiceRegistryClient;
import org.apache.servicecomb.serviceregistry.config.ServiceRegistryConfig;
-import org.apache.servicecomb.registry.definition.MicroserviceDefinition;
import com.google.common.eventbus.EventBus;
@@ -27,8 +27,8 @@ public class LocalServiceRegistry extends AbstractServiceRegistry {
private String localFile;
public LocalServiceRegistry(EventBus eventBus, ServiceRegistryConfig serviceRegistryConfig,
- MicroserviceDefinition microserviceDefinition) {
- super(eventBus, serviceRegistryConfig, microserviceDefinition);
+ Configuration configuration) {
+ super(eventBus, serviceRegistryConfig, configuration);
}
public LocalServiceRegistry localFile(String localFile) {
diff --git a/service-registry/registry-service-center/src/test/java/org/apache/servicecomb/serviceregistry/registry/LocalServiceRegistryFactory.java b/service-registry/registry-service-center/src/test/java/org/apache/servicecomb/serviceregistry/registry/LocalServiceRegistryFactory.java
index 4db0d18..816c687 100644
--- a/service-registry/registry-service-center/src/test/java/org/apache/servicecomb/serviceregistry/registry/LocalServiceRegistryFactory.java
+++ b/service-registry/registry-service-center/src/test/java/org/apache/servicecomb/serviceregistry/registry/LocalServiceRegistryFactory.java
@@ -17,11 +17,11 @@
package org.apache.servicecomb.serviceregistry.registry;
-import org.apache.servicecomb.config.archaius.sources.MicroserviceConfigLoader;
+import org.apache.commons.configuration.Configuration;
+import org.apache.servicecomb.config.ConfigUtil;
import org.apache.servicecomb.foundation.common.event.SimpleEventBus;
import org.apache.servicecomb.serviceregistry.ServiceRegistry;
import org.apache.servicecomb.serviceregistry.config.ServiceRegistryConfig;
-import org.apache.servicecomb.registry.definition.MicroserviceDefinition;
import com.google.common.eventbus.EventBus;
@@ -35,18 +35,15 @@ public class LocalServiceRegistryFactory {
public static ServiceRegistry createLocal(String localFile) {
EventBus eventBus = new SimpleEventBus();
ServiceRegistryConfig serviceRegistryConfig = ServiceRegistryConfig.INSTANCE;
- MicroserviceConfigLoader loader = new MicroserviceConfigLoader();
- loader.loadAndSort();
-
- MicroserviceDefinition microserviceDefinition = new MicroserviceDefinition(loader.getConfigModels());
- return new LocalServiceRegistry(eventBus, serviceRegistryConfig, microserviceDefinition).localFile(localFile);
+ return new LocalServiceRegistry(eventBus, serviceRegistryConfig, ConfigUtil.createLocalConfig())
+ .localFile(localFile);
}
public static ServiceRegistry createLocal(EventBus eventBus, ServiceRegistryConfig serviceRegistryConfig,
- MicroserviceDefinition microserviceDefinition) {
+ Configuration configuration) {
if (null == eventBus) {
eventBus = new SimpleEventBus();
}
- return new LocalServiceRegistry(eventBus, serviceRegistryConfig, microserviceDefinition).localFile(REGISTRY_FILE);
+ return new LocalServiceRegistry(eventBus, serviceRegistryConfig, configuration).localFile(REGISTRY_FILE);
}
}
diff --git a/service-registry/registry-service-center/src/test/java/org/apache/servicecomb/serviceregistry/registry/TestRemoteServiceRegistry.java b/service-registry/registry-service-center/src/test/java/org/apache/servicecomb/serviceregistry/registry/TestRemoteServiceRegistry.java
index fc3a85d..58859c1 100644
--- a/service-registry/registry-service-center/src/test/java/org/apache/servicecomb/serviceregistry/registry/TestRemoteServiceRegistry.java
+++ b/service-registry/registry-service-center/src/test/java/org/apache/servicecomb/serviceregistry/registry/TestRemoteServiceRegistry.java
@@ -21,16 +21,16 @@ import java.util.Arrays;
import java.util.concurrent.CountDownLatch;
import java.util.concurrent.TimeUnit;
+import org.apache.commons.configuration.Configuration;
import org.apache.servicecomb.config.ConfigUtil;
import org.apache.servicecomb.foundation.common.net.IpPort;
import org.apache.servicecomb.foundation.common.utils.SPIServiceUtils;
+import org.apache.servicecomb.registry.api.event.task.ShutdownEvent;
import org.apache.servicecomb.serviceregistry.RegistryUtils;
import org.apache.servicecomb.serviceregistry.ServiceRegistry;
import org.apache.servicecomb.serviceregistry.client.LocalServiceRegistryClientImpl;
import org.apache.servicecomb.serviceregistry.client.ServiceRegistryClient;
import org.apache.servicecomb.serviceregistry.config.ServiceRegistryConfig;
-import org.apache.servicecomb.registry.definition.MicroserviceDefinition;
-import org.apache.servicecomb.registry.api.event.task.ShutdownEvent;
import org.junit.Assert;
import org.junit.Rule;
import org.junit.Test;
@@ -46,8 +46,8 @@ import mockit.MockUp;
public class TestRemoteServiceRegistry {
class TestingRemoteServiceRegistry extends RemoteServiceRegistry {
public TestingRemoteServiceRegistry(EventBus eventBus, ServiceRegistryConfig serviceRegistryConfig,
- MicroserviceDefinition microserviceDefinition) {
- super(eventBus, serviceRegistryConfig, microserviceDefinition);
+ Configuration configuration) {
+ super(eventBus, serviceRegistryConfig, configuration);
}
@Override
@@ -60,7 +60,7 @@ public class TestRemoteServiceRegistry {
public ExpectedException expectedException = ExpectedException.none();
@Test
- public void testLifeCycle(@Injectable ServiceRegistryConfig config, @Injectable MicroserviceDefinition definition,
+ public void testLifeCycle(@Injectable ServiceRegistryConfig config,
@Injectable ServiceRegistry registry) throws InterruptedException {
ArrayList<IpPort> ipPortList = new ArrayList<>();
ipPortList.add(new IpPort("127.0.0.1", 9980));
@@ -76,8 +76,6 @@ public class TestRemoteServiceRegistry {
new Expectations(SPIServiceUtils.class) {
{
- definition.getConfiguration();
- result = ConfigUtil.createLocalConfig();
config.getHeartbeatInterval();
result = 30;
config.getInstancePullInterval();
@@ -92,7 +90,7 @@ public class TestRemoteServiceRegistry {
ServiceRegistry oldRegistry = RegistryUtils.getServiceRegistry();
RegistryUtils.setServiceRegistry(registry);
EventBus bus = new EventBus();
- RemoteServiceRegistry remote = new TestingRemoteServiceRegistry(bus, config, definition);
+ RemoteServiceRegistry remote = new TestingRemoteServiceRegistry(bus, config, ConfigUtil.createLocalConfig());
remote.init();
remote.run();
diff --git a/service-registry/registry-service-center/src/test/java/org/apache/servicecomb/serviceregistry/registry/TestServiceRegistryFactory.java b/service-registry/registry-service-center/src/test/java/org/apache/servicecomb/serviceregistry/registry/TestServiceRegistryFactory.java
index b06686a..5511613 100644
--- a/service-registry/registry-service-center/src/test/java/org/apache/servicecomb/serviceregistry/registry/TestServiceRegistryFactory.java
+++ b/service-registry/registry-service-center/src/test/java/org/apache/servicecomb/serviceregistry/registry/TestServiceRegistryFactory.java
@@ -17,16 +17,17 @@
package org.apache.servicecomb.serviceregistry.registry;
-import java.util.Collections;
-
+import org.apache.commons.configuration.Configuration;
+import org.apache.servicecomb.config.BootStrapProperties;
+import org.apache.servicecomb.config.ConfigUtil;
import org.apache.servicecomb.serviceregistry.ServiceRegistry;
import org.apache.servicecomb.serviceregistry.client.LocalServiceRegistryClientImpl;
import org.apache.servicecomb.serviceregistry.client.ServiceRegistryClient;
import org.apache.servicecomb.serviceregistry.client.http.ServiceRegistryClientImpl;
import org.apache.servicecomb.serviceregistry.config.ServiceRegistryConfig;
-import org.apache.servicecomb.registry.definition.MicroserviceDefinition;
import org.junit.Assert;
import org.junit.Test;
+import org.mockito.Mockito;
import com.google.common.eventbus.EventBus;
@@ -38,27 +39,25 @@ public class TestServiceRegistryFactory {
// even there is no any reference to registryClient, DO NOT delete it.
// because what changed is class ServiceRegistryClientImpl
public void testGetRemoteRegistryClient(@Mocked ServiceRegistryClientImpl registryClient) {
+ Configuration configuration = ConfigUtil.createLocalConfig();
EventBus eventBus = new EventBus();
ServiceRegistryConfig serviceRegistryConfig = ServiceRegistryConfig.INSTANCE;
- MicroserviceDefinition microserviceDefinition = new MicroserviceDefinition(Collections.emptyList());
ServiceRegistry serviceRegistry =
- ServiceRegistryFactory.create(eventBus, serviceRegistryConfig, microserviceDefinition);
+ ServiceRegistryFactory.create(eventBus, serviceRegistryConfig, configuration);
serviceRegistry.init();
ServiceRegistryClient client = serviceRegistry.getServiceRegistryClient();
Assert.assertTrue(client instanceof ServiceRegistryClientImpl);
serviceRegistry = ServiceRegistryFactory.create(eventBus,
- serviceRegistryConfig,
- microserviceDefinition);
+ serviceRegistryConfig, configuration);
Assert.assertTrue(serviceRegistry instanceof RemoteServiceRegistry);
- serviceRegistry = LocalServiceRegistryFactory.createLocal(eventBus, serviceRegistryConfig, microserviceDefinition);
+ serviceRegistry = LocalServiceRegistryFactory.createLocal(eventBus, serviceRegistryConfig, configuration);
serviceRegistry.init();
client = serviceRegistry.getServiceRegistryClient();
Assert.assertTrue(client instanceof LocalServiceRegistryClientImpl);
Assert.assertTrue(LocalServiceRegistryFactory.createLocal(eventBus,
- serviceRegistryConfig,
- microserviceDefinition) instanceof LocalServiceRegistry);
+ serviceRegistryConfig, configuration) instanceof LocalServiceRegistry);
}
}
diff --git a/service-registry/registry-service-center/src/test/resources/microservice.yaml b/service-registry/registry-service-center/src/test/resources/microservice.yaml
index 4788355..3f21d12 100644
--- a/service-registry/registry-service-center/src/test/resources/microservice.yaml
+++ b/service-registry/registry-service-center/src/test/resources/microservice.yaml
@@ -21,7 +21,7 @@ service_description:
properties:
key1: value1
key2: value2
- propertyExtentedClass: org.apache.servicecomb.serviceregistry.MicroServicePropertyExtendedStub
+ propertyExtendedClass: org.apache.servicecomb.serviceregistry.MicroServicePropertyExtendedStub
paths:
- path: /test1/testpath
property:
@@ -32,7 +32,7 @@ service_description:
instance_description:
properties:
key0: value0
- propertyExtentedClass: org.apache.servicecomb.serviceregistry.MicroServicePropertyExtendedStub
+ propertyExtendedClass: org.apache.servicecomb.serviceregistry.MicroServicePropertyExtendedStub
servicecomb:
service:
diff --git a/service-registry/registry-zero-config/src/main/java/org/apache/servicecomb/zeroconfig/client/ZeroConfigClient.java b/service-registry/registry-zero-config/src/main/java/org/apache/servicecomb/zeroconfig/client/ZeroConfigClient.java
index 5804de8..2c9be18 100644
--- a/service-registry/registry-zero-config/src/main/java/org/apache/servicecomb/zeroconfig/client/ZeroConfigClient.java
+++ b/service-registry/registry-zero-config/src/main/java/org/apache/servicecomb/zeroconfig/client/ZeroConfigClient.java
@@ -16,8 +16,15 @@
*/
package org.apache.servicecomb.zeroconfig.client;
-import com.google.common.annotations.VisibleForTesting;
-import io.vertx.core.json.Json;
+import static org.apache.servicecomb.zeroconfig.ZeroConfigRegistryConstants.ENCODE;
+import static org.apache.servicecomb.zeroconfig.ZeroConfigRegistryConstants.EVENT;
+import static org.apache.servicecomb.zeroconfig.ZeroConfigRegistryConstants.GROUP;
+import static org.apache.servicecomb.zeroconfig.ZeroConfigRegistryConstants.HEARTBEAT_EVENT;
+import static org.apache.servicecomb.zeroconfig.ZeroConfigRegistryConstants.INSTANCE_ID;
+import static org.apache.servicecomb.zeroconfig.ZeroConfigRegistryConstants.PORT;
+import static org.apache.servicecomb.zeroconfig.ZeroConfigRegistryConstants.SERVICE_ID;
+import static org.apache.servicecomb.zeroconfig.ZeroConfigRegistryConstants.UNREGISTER_EVENT;
+
import java.io.IOException;
import java.net.DatagramPacket;
import java.net.InetAddress;
@@ -26,15 +33,13 @@ import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
+
import org.apache.commons.lang.StringUtils;
-import org.apache.servicecomb.config.ConfigUtil;
-import org.apache.servicecomb.config.archaius.sources.MicroserviceConfigLoader;
import org.apache.servicecomb.registry.api.registry.FindInstancesResponse;
import org.apache.servicecomb.registry.api.registry.Microservice;
import org.apache.servicecomb.registry.api.registry.MicroserviceFactory;
import org.apache.servicecomb.registry.api.registry.MicroserviceInstance;
import org.apache.servicecomb.registry.api.registry.MicroserviceInstances;
-import org.apache.servicecomb.registry.definition.MicroserviceDefinition;
import org.apache.servicecomb.registry.version.Version;
import org.apache.servicecomb.registry.version.VersionRule;
import org.apache.servicecomb.registry.version.VersionRuleUtils;
@@ -45,7 +50,9 @@ import org.apache.servicecomb.zeroconfig.server.ZeroConfigRegistryService;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
-import static org.apache.servicecomb.zeroconfig.ZeroConfigRegistryConstants.*;
+import com.google.common.annotations.VisibleForTesting;
+
+import io.vertx.core.json.Json;
public class ZeroConfigClient {
@@ -55,10 +62,12 @@ public class ZeroConfigClient {
// Constructor Parameters
private ZeroConfigRegistryService zeroConfigRegistryService;
+
private MulticastSocket multicastSocket;
// registration objects
private Microservice selfMicroservice;
+
private MicroserviceInstance selfMicroserviceInstance;
// Constructor
@@ -78,11 +87,8 @@ public class ZeroConfigClient {
}
public void init() {
- MicroserviceConfigLoader loader = ConfigUtil.getMicroserviceConfigLoader();
- MicroserviceDefinition microserviceDefinition = new MicroserviceDefinition(
- loader.getConfigModels());
MicroserviceFactory microserviceFactory = new MicroserviceFactory();
- selfMicroservice = microserviceFactory.create(microserviceDefinition);
+ selfMicroservice = microserviceFactory.create();
selfMicroserviceInstance = selfMicroservice.getInstance();
// set serviceId
@@ -97,7 +103,6 @@ public class ZeroConfigClient {
String instanceId = ClientUtil.generateServiceInstanceId();
selfMicroserviceInstance.setInstanceId(instanceId);
}
-
}
// builder method
@@ -115,7 +120,8 @@ public class ZeroConfigClient {
}
public boolean register() {
- String serviceInstanceId = doRegister(ClientUtil.convertToRegisterDataModel(selfMicroserviceInstance, selfMicroservice));
+ String serviceInstanceId = doRegister(
+ ClientUtil.convertToRegisterDataModel(selfMicroserviceInstance, selfMicroservice));
return StringUtils.isNotEmpty(serviceInstanceId);
}
@@ -165,7 +171,6 @@ public class ZeroConfigClient {
foundInstance.getServiceId(), foundInstance.getInstanceId(), e);
return false;
}
-
}
public List<Microservice> getAllMicroservices() {
@@ -295,5 +300,4 @@ public class ZeroConfigClient {
MicroserviceInstance selfMicroserviceInstance) {
this.selfMicroserviceInstance = selfMicroserviceInstance;
}
-
}