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 7abdd2b [SCB-1638]servicecenter do not handle websocket PING/PONG
message and test error fixes (#1434)
7abdd2b is described below
commit 7abdd2bf197f113e5e550552cf555e3dd629b3a2
Author: bao liu <[email protected]>
AuthorDate: Fri Dec 6 10:27:01 2019 +0800
[SCB-1638]servicecenter do not handle websocket PING/PONG message and test
error fixes (#1434)
---
.../org/apache/servicecomb/core/SCBEngine.java | 2 +
.../src/main/resources/microservice.yaml | 2 +-
.../springmvc/server/ProducerTestsAfterBootup.java | 43 ++++++++++++++++++++--
.../src/main/resources/microservice.yaml | 2 +-
.../metrics/core/TestMetricsBootListener.java | 8 ++++
.../client/http/WebsocketUtils.java | 5 ++-
6 files changed, 56 insertions(+), 6 deletions(-)
diff --git a/core/src/main/java/org/apache/servicecomb/core/SCBEngine.java
b/core/src/main/java/org/apache/servicecomb/core/SCBEngine.java
index 5f7013a..69b5fc6 100644
--- a/core/src/main/java/org/apache/servicecomb/core/SCBEngine.java
+++ b/core/src/main/java/org/apache/servicecomb/core/SCBEngine.java
@@ -48,6 +48,7 @@ import
org.apache.servicecomb.core.provider.consumer.MicroserviceReferenceConfig
import org.apache.servicecomb.core.provider.producer.ProducerProviderManager;
import org.apache.servicecomb.core.transport.TransportManager;
import org.apache.servicecomb.foundation.common.VendorExtensions;
+import
org.apache.servicecomb.foundation.common.event.EnableExceptionPropagation;
import org.apache.servicecomb.foundation.common.event.EventManager;
import org.apache.servicecomb.foundation.common.log.LogMarkerLeakFixUtils;
import org.apache.servicecomb.foundation.common.utils.SPIServiceUtils;
@@ -277,6 +278,7 @@ public class SCBEngine {
private void triggerAfterRegistryEvent() {
eventBus.register(new Object() {
@Subscribe
+ @EnableExceptionPropagation
public void afterRegistryInstance(MicroserviceInstanceRegisterTask
microserviceInstanceRegisterTask) {
LOGGER.info("receive MicroserviceInstanceRegisterTask event, check
instance Id...");
diff --git
a/demo/demo-springmvc/springmvc-client/src/main/resources/microservice.yaml
b/demo/demo-springmvc/springmvc-client/src/main/resources/microservice.yaml
index cf392a8..c8c33bc 100644
--- a/demo/demo-springmvc/springmvc-client/src/main/resources/microservice.yaml
+++ b/demo/demo-springmvc/springmvc-client/src/main/resources/microservice.yaml
@@ -33,7 +33,7 @@ servicecomb:
interval: 3
pull:
interval: 90
- watch: false
+ watch: true
autodiscovery: true
# can download config center from
https://cse-bucket.obs.myhwclouds.com/LocalCSE/Local-CSE-1.0.0.zip to test
dynamic config
config:
diff --git
a/demo/demo-springmvc/springmvc-server/src/main/java/org/apache/servicecomb/demo/springmvc/server/ProducerTestsAfterBootup.java
b/demo/demo-springmvc/springmvc-server/src/main/java/org/apache/servicecomb/demo/springmvc/server/ProducerTestsAfterBootup.java
index ec9a68b..5112980 100644
---
a/demo/demo-springmvc/springmvc-server/src/main/java/org/apache/servicecomb/demo/springmvc/server/ProducerTestsAfterBootup.java
+++
b/demo/demo-springmvc/springmvc-server/src/main/java/org/apache/servicecomb/demo/springmvc/server/ProducerTestsAfterBootup.java
@@ -41,14 +41,51 @@ public class ProducerTestsAfterBootup implements
BootListener {
private ObjectWriter writer = Yaml.pretty();
+ private static final String EXPECTED_DATA = "---\n"
+ + "swagger: \"2.0\"\n"
+ + "info:\n"
+ + " version: \"1.0.0\"\n"
+ + " title: \"swagger definition for
org.apache.servicecomb.demo.springmvc.server.CodeFirstSpringmvcForSchema\"\n"
+ + " x-java-interface: \"gen.swagger.CodeFirstSpringmvcForSchemaIntf\"\n"
+ + "basePath: \"/forScheam\"\n"
+ + "consumes:\n"
+ + "- \"application/json\"\n"
+ + "produces:\n"
+ + "- \"application/json\"\n"
+ + "paths:\n"
+ + " /uploadFile:\n"
+ + " post:\n"
+ + " operationId: \"uploadAwardFile\"\n"
+ + " consumes:\n"
+ + " - \"multipart/form-data\"\n"
+ + " produces:\n"
+ + " - \"application/json\"\n"
+ + " parameters:\n"
+ + " - name: \"fileType\"\n"
+ + " in: \"query\"\n"
+ + " required: true\n"
+ + " type: \"string\"\n"
+ + " - name: \"zoneId\"\n"
+ + " in: \"query\"\n"
+ + " required: true\n"
+ + " type: \"string\"\n"
+ + " - name: \"file\"\n"
+ + " in: \"formData\"\n"
+ + " required: true\n"
+ + " type: \"file\"\n"
+ + " responses:\n"
+ + " \"200\":\n"
+ + " description: \"response of 200\"\n"
+ + " schema:\n"
+ + " type: \"boolean\"\n";
+
public void testSchemaNotChange(SCBEngine scbEngine) {
LOGGER.info("ProducerTestsAfterBootup testing start");
//we can not set microserviceName any more
SchemaMeta meta =
scbEngine.getProducerProviderManager().registerSchema("test1", new
CodeFirstSpringmvcForSchema());
String codeFirst = getSwaggerContent(meta.getSwagger());
-
TestMgr.check("608f6cbb3554839de311d90d16a44ffc41ef66575101e172eb54ccc255e8675d",
- RegistryUtils.calcSchemaSummary(codeFirst));
- TestMgr.check(codeFirst.length(), 891);
+ TestMgr.check(EXPECTED_DATA,
+ codeFirst);
}
public void testRegisteredBasePath() {
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 715394c..8be0880 100644
--- a/demo/demo-springmvc/springmvc-server/src/main/resources/microservice.yaml
+++ b/demo/demo-springmvc/springmvc-server/src/main/resources/microservice.yaml
@@ -42,7 +42,7 @@ servicecomb:
interval: 3
pull:
interval: 10
- watch: false
+ watch: true
autodiscovery: true
# can download config center from
https://cse-bucket.obs.myhwclouds.com/LocalCSE/Local-CSE-1.0.0.zip to test
dynamic config
config:
diff --git
a/metrics/metrics-core/src/test/java/org/apache/servicecomb/metrics/core/TestMetricsBootListener.java
b/metrics/metrics-core/src/test/java/org/apache/servicecomb/metrics/core/TestMetricsBootListener.java
index 30e5311..cad992f 100644
---
a/metrics/metrics-core/src/test/java/org/apache/servicecomb/metrics/core/TestMetricsBootListener.java
+++
b/metrics/metrics-core/src/test/java/org/apache/servicecomb/metrics/core/TestMetricsBootListener.java
@@ -18,11 +18,19 @@ package org.apache.servicecomb.metrics.core;
import org.apache.servicecomb.core.SCBEngine;
import org.apache.servicecomb.core.bootstrap.SCBBootstrap;
+import org.apache.servicecomb.foundation.common.utils.BeanUtils;
import org.apache.servicecomb.serviceregistry.RegistryUtils;
import org.apache.servicecomb.serviceregistry.api.registry.Microservice;
+import org.junit.Before;
import org.junit.Test;
public class TestMetricsBootListener {
+ @Before
+ public void setUp() {
+ // Metrics boot depends on executor bean. Old test will fail but event
handling not throw the error.
+ BeanUtils.init();
+ }
+
@Test
public void registerSchemas() {
new SCBBootstrap().useLocalRegistry().createSCBEngineForTest().run();
diff --git
a/service-registry/src/main/java/org/apache/servicecomb/serviceregistry/client/http/WebsocketUtils.java
b/service-registry/src/main/java/org/apache/servicecomb/serviceregistry/client/http/WebsocketUtils.java
index 1536058..1426de9 100644
---
a/service-registry/src/main/java/org/apache/servicecomb/serviceregistry/client/http/WebsocketUtils.java
+++
b/service-registry/src/main/java/org/apache/servicecomb/serviceregistry/client/http/WebsocketUtils.java
@@ -63,7 +63,10 @@ public final class WebsocketUtils {
asyncResult.result().closeHandler(v -> {
onClose.handle(v);
});
- asyncResult.result().handler(onMessage);
+ asyncResult.result().pongHandler(pong -> {
+ // ignore, just prevent NPE.
+ });
+ asyncResult.result().frameHandler((frame) ->
onMessage.handle(frame.binaryData()));
}
});
});