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

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

commit bd44d93d373f96a6a56452db94a71deac97dc3b3
Author: bao.liu <[email protected]>
AuthorDate: Tue Jul 3 21:08:02 2018 +0800

    [SCB-712]Do not register service path to service center when not necessary
---
 .../core/definition/loader/SchemaLoader.java       | 12 +++++-
 .../servicecomb/core/unittest/UnitTestMeta.java    |  6 +--
 core/src/main/resources/microservice.yaml          |  2 +-
 .../schema/TestProducerSchemaFactory.java          |  6 +--
 .../src/main/resources/microservice.yaml           |  2 +-
 .../src/main/resources/microservice.yaml           |  2 +-
 .../src/main/resources/microservice.yaml           |  2 +-
 .../src/main/resources/microservice.yaml           |  2 +-
 .../src/main/resources/microservice.yaml           |  2 +-
 .../src/main/resources/microservice.yaml           |  2 +-
 .../springmvc/client/ConsumerTestsAfterBootup.java | 43 ++++++++++++++++++++++
 ...ryHolder.java => ProducerTestsAfterBootup.java} | 27 +++++++-------
 .../src/main/resources/microservice.yaml           |  1 +
 .../src/test/resources/test1.yaml                  |  2 +-
 .../src/test/resources/test2.yaml                  |  2 +-
 .../servicecomb/serviceregistry/api/Const.java     |  2 +
 16 files changed, 81 insertions(+), 34 deletions(-)

diff --git 
a/core/src/main/java/org/apache/servicecomb/core/definition/loader/SchemaLoader.java
 
b/core/src/main/java/org/apache/servicecomb/core/definition/loader/SchemaLoader.java
index 29b03da..aa612c3 100644
--- 
a/core/src/main/java/org/apache/servicecomb/core/definition/loader/SchemaLoader.java
+++ 
b/core/src/main/java/org/apache/servicecomb/core/definition/loader/SchemaLoader.java
@@ -40,6 +40,8 @@ import org.springframework.core.io.Resource;
 import org.springframework.stereotype.Component;
 import org.springframework.util.StringUtils;
 
+import com.netflix.config.DynamicPropertyFactory;
+
 import io.swagger.models.Swagger;
 
 @Component
@@ -100,12 +102,18 @@ public class SchemaLoader {
 
     microserviceMeta.regSchemaMeta(schemaMeta);
 
-    putSelfBasePathIfAbsent(microserviceName, swagger.getBasePath());
+    addSchemaPath2Microservice(microserviceName, swagger.getBasePath());
 
     return schemaMeta;
   }
 
-  public void putSelfBasePathIfAbsent(String microserviceName, String 
basePath) {
+  void addSchemaPath2Microservice(String microserviceName, String basePath) {
+    if 
(DynamicPropertyFactory.getInstance().getBooleanProperty(Const.REGISTER_SERVICE_PATH,
 false).get()) {
+      putSelfBasePathIfAbsent(microserviceName, basePath);
+    }
+  }
+
+  void putSelfBasePathIfAbsent(String microserviceName, String basePath) {
     if (basePath == null || basePath.length() == 0) {
       return;
     }
diff --git 
a/core/src/main/java/org/apache/servicecomb/core/unittest/UnitTestMeta.java 
b/core/src/main/java/org/apache/servicecomb/core/unittest/UnitTestMeta.java
index fd1eece..8d9c5b5 100644
--- a/core/src/main/java/org/apache/servicecomb/core/unittest/UnitTestMeta.java
+++ b/core/src/main/java/org/apache/servicecomb/core/unittest/UnitTestMeta.java
@@ -67,11 +67,7 @@ public class UnitTestMeta {
 
   private ConsumerSchemaFactory consumerSchemaFactory;
 
-  private SchemaLoader schemaLoader = new SchemaLoader() {
-    @Override
-    public void putSelfBasePathIfAbsent(String microserviceName, String 
basePath) {
-    }
-  };
+  private SchemaLoader schemaLoader = new SchemaLoader();
 
   private ServiceRegistry serviceRegistry;
 
diff --git a/core/src/main/resources/microservice.yaml 
b/core/src/main/resources/microservice.yaml
index 9e415d6..c51b1de 100644
--- a/core/src/main/resources/microservice.yaml
+++ b/core/src/main/resources/microservice.yaml
@@ -15,6 +15,6 @@
 ## limitations under the License.
 ## ---------------------------------------------------------------------------
 
-cse-config-order: -500
+servicecomb-config-order: -500
 servicecomb:
   microserviceVersionFactory: 
org.apache.servicecomb.core.definition.PrivateMicroserviceVersionMetaFactory
diff --git 
a/core/src/test/java/org/apache/servicecomb/core/definition/schema/TestProducerSchemaFactory.java
 
b/core/src/test/java/org/apache/servicecomb/core/definition/schema/TestProducerSchemaFactory.java
index fc3a4a7..6500c64 100644
--- 
a/core/src/test/java/org/apache/servicecomb/core/definition/schema/TestProducerSchemaFactory.java
+++ 
b/core/src/test/java/org/apache/servicecomb/core/definition/schema/TestProducerSchemaFactory.java
@@ -78,11 +78,7 @@ public class TestProducerSchemaFactory {
     producerArgsMapperFactory.setConverterMgr(converterMgr);
 
     MicroserviceMetaManager microserviceMetaManager = new 
MicroserviceMetaManager();
-    SchemaLoader schemaLoader = new SchemaLoader() {
-      @Override
-      public void putSelfBasePathIfAbsent(String microserviceName, String 
basePath) {
-      }
-    };
+    SchemaLoader schemaLoader = new SchemaLoader();
     CompositeSwaggerGeneratorContext compositeSwaggerGeneratorContext = new 
CompositeSwaggerGeneratorContext();
 
     producerSchemaFactory.setSwaggerEnv(swaggerEnv);
diff --git 
a/demo/demo-multiple/multiple-client/src/main/resources/microservice.yaml 
b/demo/demo-multiple/multiple-client/src/main/resources/microservice.yaml
index a9ddcde..f06dd95 100644
--- a/demo/demo-multiple/multiple-client/src/main/resources/microservice.yaml
+++ b/demo/demo-multiple/multiple-client/src/main/resources/microservice.yaml
@@ -15,7 +15,7 @@
 ## limitations under the License.
 ## ---------------------------------------------------------------------------
 
-cse-config-order: 1000
+servicecomb-config-order: 1000
 a-server.name: merged-server
 b-server.name: merged-server
 APPLICATION_ID: multiple
diff --git 
a/demo/demo-multiple/multiple-server/src/main/resources/microservice.yaml 
b/demo/demo-multiple/multiple-server/src/main/resources/microservice.yaml
index c3dd81b..94fb8d2 100644
--- a/demo/demo-multiple/multiple-server/src/main/resources/microservice.yaml
+++ b/demo/demo-multiple/multiple-server/src/main/resources/microservice.yaml
@@ -15,7 +15,7 @@
 ## limitations under the License.
 ## ---------------------------------------------------------------------------
 
-cse-config-order: 1000
+servicecomb-config-order: 1000
 APPLICATION_ID: multiple
 service_description:
   name: merged-server
diff --git a/demo/demo-schema/src/main/resources/microservice.yaml 
b/demo/demo-schema/src/main/resources/microservice.yaml
index 92b6959..d26c026 100644
--- a/demo/demo-schema/src/main/resources/microservice.yaml
+++ b/demo/demo-schema/src/main/resources/microservice.yaml
@@ -14,7 +14,7 @@
 ## See the License for the specific language governing permissions and
 ## limitations under the License.
 ## ---------------------------------------------------------------------------
-cse-config-order: -1
+servicecomb-config-order: -1
 
 cse:
   test:
diff --git a/demo/demo-server-servlet/src/main/resources/microservice.yaml 
b/demo/demo-server-servlet/src/main/resources/microservice.yaml
index 469a68e..cb4ae43 100644
--- a/demo/demo-server-servlet/src/main/resources/microservice.yaml
+++ b/demo/demo-server-servlet/src/main/resources/microservice.yaml
@@ -15,7 +15,7 @@
 ## limitations under the License.
 ## ---------------------------------------------------------------------------
 
-cse-config-order: 100
+servicecomb-config-order: 100
 
 servicecomb:
   rest:
diff --git 
a/demo/demo-spring-boot-provider/demo-spring-boot-jaxrs-client/src/main/resources/microservice.yaml
 
b/demo/demo-spring-boot-provider/demo-spring-boot-jaxrs-client/src/main/resources/microservice.yaml
index c6e5a22..0a7457f 100644
--- 
a/demo/demo-spring-boot-provider/demo-spring-boot-jaxrs-client/src/main/resources/microservice.yaml
+++ 
b/demo/demo-spring-boot-provider/demo-spring-boot-jaxrs-client/src/main/resources/microservice.yaml
@@ -15,7 +15,7 @@
 ## limitations under the License.
 ## ---------------------------------------------------------------------------
 
-cse-config-order: 1
+servicecomb-config-order: 1
 APPLICATION_ID: spring-boot-jaxrstest
 service_description:
   name: jaxrsClient
diff --git 
a/demo/demo-spring-boot-provider/demo-spring-boot-jaxrs-server/src/main/resources/microservice.yaml
 
b/demo/demo-spring-boot-provider/demo-spring-boot-jaxrs-server/src/main/resources/microservice.yaml
index 76a3704..09c50e3 100644
--- 
a/demo/demo-spring-boot-provider/demo-spring-boot-jaxrs-server/src/main/resources/microservice.yaml
+++ 
b/demo/demo-spring-boot-provider/demo-spring-boot-jaxrs-server/src/main/resources/microservice.yaml
@@ -15,7 +15,7 @@
 ## limitations under the License.
 ## ---------------------------------------------------------------------------
 
-cse-config-order: 1
+servicecomb-config-order: 1
 APPLICATION_ID: spring-boot-jaxrstest
 service_description:
   name: jaxrs
diff --git 
a/demo/demo-springmvc/springmvc-client/src/main/java/org/apache/servicecomb/demo/springmvc/client/ConsumerTestsAfterBootup.java
 
b/demo/demo-springmvc/springmvc-client/src/main/java/org/apache/servicecomb/demo/springmvc/client/ConsumerTestsAfterBootup.java
new file mode 100644
index 0000000..d89f20d
--- /dev/null
+++ 
b/demo/demo-springmvc/springmvc-client/src/main/java/org/apache/servicecomb/demo/springmvc/client/ConsumerTestsAfterBootup.java
@@ -0,0 +1,43 @@
+package org.apache.servicecomb.demo.springmvc.client;
+/*
+ * 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.
+ */
+
+import org.apache.servicecomb.core.BootListener;
+import org.apache.servicecomb.demo.TestMgr;
+import org.apache.servicecomb.serviceregistry.RegistryUtils;
+import org.springframework.stereotype.Component;
+
+/**
+ * Testing after bootup.
+ */
+@Component
+public class ConsumerTestsAfterBootup implements BootListener {
+  public void testRegisterPath() {
+    TestMgr.check(RegistryUtils.getMicroservice().getPaths().size(), 0);
+  }
+
+  @Override
+  public void onBootEvent(BootEvent event) {
+    if (event.getEventType() == BootListener.EventType.AFTER_REGISTRY) {
+      testRegisterPath();
+      if (!TestMgr.isSuccess()) {
+        TestMgr.summary();
+        throw new IllegalStateException("some tests are failed. ");
+      }
+    }
+  }
+}
diff --git 
a/demo/demo-springmvc/springmvc-server/src/main/java/org/apache/servicecomb/demo/springmvc/server/ProducerSchemaFactoryHolder.java
 
b/demo/demo-springmvc/springmvc-server/src/main/java/org/apache/servicecomb/demo/springmvc/server/ProducerTestsAfterBootup.java
similarity index 82%
rename from 
demo/demo-springmvc/springmvc-server/src/main/java/org/apache/servicecomb/demo/springmvc/server/ProducerSchemaFactoryHolder.java
rename to 
demo/demo-springmvc/springmvc-server/src/main/java/org/apache/servicecomb/demo/springmvc/server/ProducerTestsAfterBootup.java
index 687273b..d2d201a 100644
--- 
a/demo/demo-springmvc/springmvc-server/src/main/java/org/apache/servicecomb/demo/springmvc/server/ProducerSchemaFactoryHolder.java
+++ 
b/demo/demo-springmvc/springmvc-server/src/main/java/org/apache/servicecomb/demo/springmvc/server/ProducerTestsAfterBootup.java
@@ -29,26 +29,24 @@ import org.springframework.stereotype.Component;
 
 import com.fasterxml.jackson.core.JsonProcessingException;
 import com.fasterxml.jackson.databind.ObjectWriter;
-import com.google.common.base.Charsets;
-import com.google.common.hash.Hashing;
 
 import io.swagger.models.Swagger;
 import io.swagger.util.Yaml;
 
 /**
- * Testing schemas generation should be same for each boot up and accommodate 
swagger.
+ * Testing after bootup.
  */
 @Component
-public class ProducerSchemaFactoryHolder implements BootListener {
-  private static final Logger LOGGER = 
LoggerFactory.getLogger(ProducerSchemaFactoryHolder.class);
+public class ProducerTestsAfterBootup implements BootListener {
+  private static final Logger LOGGER = 
LoggerFactory.getLogger(ProducerTestsAfterBootup.class);
 
   private ObjectWriter writer = Yaml.pretty();
 
   @Autowired
   private ProducerSchemaFactory factory;
 
-  public void test() {
-    LOGGER.info("ProducerSchemaFactoryHolder testing start");
+  public void testSchemaNotChange() {
+    LOGGER.info("ProducerTestsAfterBootup testing start");
     SchemaMeta meta =
         factory.getOrCreateProducerSchema("customer-service",
             "test1",
@@ -58,13 +56,11 @@ public class ProducerSchemaFactoryHolder implements 
BootListener {
     
TestMgr.check("07a48acef4cc1a7f2387d695923c49e98951a974e4f51cf1356d6878db48888f",
         RegistryUtils.calcSchemaSummary(codeFirst));
     TestMgr.check(codeFirst.length(), 899);
-
-    if (!TestMgr.isSuccess()) {
-      TestMgr.summary();
-      throw new IllegalStateException("schema not the same. ");
-    }
   }
 
+  public void testRegisterPath() {
+    TestMgr.check(RegistryUtils.getMicroservice().getPaths().size(), 9);
+  }
   private String getSwaggerContent(Swagger swagger) {
     try {
       return writer.writeValueAsString(swagger);
@@ -76,7 +72,12 @@ public class ProducerSchemaFactoryHolder implements 
BootListener {
   @Override
   public void onBootEvent(BootEvent event) {
     if (event.getEventType() == BootListener.EventType.AFTER_REGISTRY) {
-      test();
+      testSchemaNotChange();
+      testRegisterPath();
+      if (!TestMgr.isSuccess()) {
+        TestMgr.summary();
+        throw new IllegalStateException("some tests are failed. ");
+      }
     }
   }
 }
diff --git 
a/demo/demo-springmvc/springmvc-server/src/main/resources/microservice.yaml 
b/demo/demo-springmvc/springmvc-server/src/main/resources/microservice.yaml
index 7098320..68fd39c 100644
--- a/demo/demo-springmvc/springmvc-server/src/main/resources/microservice.yaml
+++ b/demo/demo-springmvc/springmvc-server/src/main/resources/microservice.yaml
@@ -32,6 +32,7 @@ service_description:
 servicecomb:
   service:
     registry:
+      registerPath: true
       address: http://127.0.0.1:30100
       client:
         timeout:
diff --git a/foundations/foundation-config/src/test/resources/test1.yaml 
b/foundations/foundation-config/src/test/resources/test1.yaml
index 5a544a2..708d0e8 100644
--- a/foundations/foundation-config/src/test/resources/test1.yaml
+++ b/foundations/foundation-config/src/test/resources/test1.yaml
@@ -15,7 +15,7 @@
 ## limitations under the License.
 ## ---------------------------------------------------------------------------
 
-cse-config-order: "1"
+servicecomb-config-order: "1"
 
 trace:
   handler:
diff --git a/foundations/foundation-config/src/test/resources/test2.yaml 
b/foundations/foundation-config/src/test/resources/test2.yaml
index a0aa390..dc00542 100644
--- a/foundations/foundation-config/src/test/resources/test2.yaml
+++ b/foundations/foundation-config/src/test/resources/test2.yaml
@@ -15,7 +15,7 @@
 ## limitations under the License.
 ## ---------------------------------------------------------------------------
 
-cse-config-order: 0
+servicecomb-config-order: 0
 
 dsf:
   serializer:
diff --git 
a/service-registry/src/main/java/org/apache/servicecomb/serviceregistry/api/Const.java
 
b/service-registry/src/main/java/org/apache/servicecomb/serviceregistry/api/Const.java
index 9f1d482..84e8424 100644
--- 
a/service-registry/src/main/java/org/apache/servicecomb/serviceregistry/api/Const.java
+++ 
b/service-registry/src/main/java/org/apache/servicecomb/serviceregistry/api/Const.java
@@ -182,4 +182,6 @@ public final class Const {
   public static final String INSTANCE_PUBKEY_PRO = "publickey";
 
   public static final String SERVICECENTER_FRAMEWORK_VERSION = "1.0.0";
+
+  public static final String REGISTER_SERVICE_PATH = 
"servicecomb.service.registry.registerPath";
 }

Reply via email to