[servicecomb-java-chassis] branch master updated: [SCB-2269]fix deadlock of XmlViewResolver and SPI bean autowire in blockDeploy

2021-05-13 Thread wujimin
This is an automated email from the ASF dual-hosted git repository.

wujimin 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 c7b4f6b  [SCB-2269]fix deadlock of XmlViewResolver and SPI bean 
autowire in blockDeploy
c7b4f6b is described below

commit c7b4f6ba398fc02e44649afbd717195819bf3435
Author: liubao68 
AuthorDate: Thu May 13 11:27:57 2021 +0800

[SCB-2269]fix deadlock of XmlViewResolver and SPI bean autowire in 
blockDeploy
---
 .../client/injectBean/TestInjectBeanSchema.java| 35 ++
 .../demo/jaxrs/server/injectBean/InjectBean.java   | 29 +++
 .../jaxrs/server/injectBean/InjectBeanSchema.java  | 43 ++
 .../injectBean/InjectBeanVertxHttpDispatcher.java  | 37 +++
 ...cecomb.transport.rest.vertx.VertxHttpDispatcher | 18 +
 .../transport/rest/vertx/RestServerVerticle.java   |  4 +-
 .../transport/rest/vertx/VertxRestTransport.java   | 12 ++
 7 files changed, 175 insertions(+), 3 deletions(-)

diff --git 
a/demo/demo-jaxrs/jaxrs-client/src/main/java/org/apache/servicecomb/demo/jaxrs/client/injectBean/TestInjectBeanSchema.java
 
b/demo/demo-jaxrs/jaxrs-client/src/main/java/org/apache/servicecomb/demo/jaxrs/client/injectBean/TestInjectBeanSchema.java
new file mode 100644
index 000..175701c
--- /dev/null
+++ 
b/demo/demo-jaxrs/jaxrs-client/src/main/java/org/apache/servicecomb/demo/jaxrs/client/injectBean/TestInjectBeanSchema.java
@@ -0,0 +1,35 @@
+/*
+ * 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.demo.jaxrs.client.injectBean;
+
+import org.apache.servicecomb.demo.CategorizedTestCase;
+import org.apache.servicecomb.demo.TestMgr;
+import org.apache.servicecomb.provider.springmvc.reference.RestTemplateBuilder;
+import org.springframework.stereotype.Component;
+import org.springframework.web.client.RestTemplate;
+
+@Component
+public class TestInjectBeanSchema implements CategorizedTestCase {
+  RestTemplate restTemplate = RestTemplateBuilder.create();
+
+  @Override
+  public void testAllTransport() throws Exception {
+boolean result = restTemplate.getForObject("cse://jaxrs/injectSet", 
boolean.class);
+TestMgr.check(true, result);
+  }
+}
diff --git 
a/demo/demo-jaxrs/jaxrs-server/src/main/java/org/apache/servicecomb/demo/jaxrs/server/injectBean/InjectBean.java
 
b/demo/demo-jaxrs/jaxrs-server/src/main/java/org/apache/servicecomb/demo/jaxrs/server/injectBean/InjectBean.java
new file mode 100644
index 000..60ef524
--- /dev/null
+++ 
b/demo/demo-jaxrs/jaxrs-server/src/main/java/org/apache/servicecomb/demo/jaxrs/server/injectBean/InjectBean.java
@@ -0,0 +1,29 @@
+/*
+ * 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.demo.jaxrs.server.injectBean;
+
+import org.springframework.stereotype.Component;
+
+@Component
+public class InjectBean {
+  private boolean set = true;
+
+  public boolean isSet() {
+return set;
+  }
+}
diff --git 
a/demo/demo-jaxrs/jaxrs-server/src/main/java/org/apache/servicecomb/demo/jaxrs/server/injectBean/InjectBeanSchema.java
 
b/demo/demo-jaxrs/jaxrs-server/src/main/java/org/apache/servicecomb/demo/jaxrs/server/injectBean/InjectBeanSchema.java
new file mode 100644
index 000..14f2ee4
--- /dev/null
+++ 
b/demo/demo-jaxrs/jaxrs-serv

[servicecomb-java-chassis] branch master updated: [SCB-2261]change block wait to checked wait to avoid request timeout exceed invocation timeout

2021-05-08 Thread wujimin
This is an automated email from the ASF dual-hosted git repository.

wujimin 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 3115a23  [SCB-2261]change block wait to checked wait to avoid request 
timeout exceed invocation timeout
3115a23 is described below

commit 3115a235c370cc27204429d19d1ad92a3c06e94b
Author: liubao68 
AuthorDate: Fri May 7 16:22:15 2021 +0800

[SCB-2261]change block wait to checked wait to avoid request timeout exceed 
invocation timeout
---
 .../core/provider/consumer/InvokerUtils.java   |  4 +-
 .../provider/consumer/SyncResponseExecutor.java| 45 ++
 .../core/consumer/TestSyncResponseExecutor.java|  4 +-
 .../demo/jaxrs/client/TestClientTimeout.java   | 16 +---
 .../servicecomb/demo/CommonSchemaInterface.java|  3 ++
 .../client/TestSpringMVCCommonSchemaInterface.java | 11 ++
 .../src/main/resources/microservice.yaml   |  4 ++
 .../server/SpringMVCCommonSchemaInterface.java |  5 +++
 8 files changed, 75 insertions(+), 17 deletions(-)

diff --git 
a/core/src/main/java/org/apache/servicecomb/core/provider/consumer/InvokerUtils.java
 
b/core/src/main/java/org/apache/servicecomb/core/provider/consumer/InvokerUtils.java
index 3ce1b70..66ec396 100644
--- 
a/core/src/main/java/org/apache/servicecomb/core/provider/consumer/InvokerUtils.java
+++ 
b/core/src/main/java/org/apache/servicecomb/core/provider/consumer/InvokerUtils.java
@@ -158,7 +158,7 @@ public final class InvokerUtils {
   invocation.onStartHandlersRequest();
   invocation.next(respExecutor::setResponse);
 
-  Response response = respExecutor.waitResponse();
+  Response response = respExecutor.waitResponse(invocation);
   invocation.getInvocationStageTrace().finishHandlersResponse();
   invocation.onFinish(response);
   return response;
@@ -166,8 +166,6 @@ public final class InvokerUtils {
   String msg =
   String.format("invoke failed, %s", 
invocation.getOperationMeta().getMicroserviceQualifiedName());
   LOGGER.error(msg, e);
-  LOGGER.error("invocation type: {}, handler chain: {}", 
invocation.getInvocationType(),
-  invocation.getHandlerChain());
 
   Response response = Response.createConsumerFail(e);
   invocation.onFinish(response);
diff --git 
a/core/src/main/java/org/apache/servicecomb/core/provider/consumer/SyncResponseExecutor.java
 
b/core/src/main/java/org/apache/servicecomb/core/provider/consumer/SyncResponseExecutor.java
index 59c2af2..1c5a260 100644
--- 
a/core/src/main/java/org/apache/servicecomb/core/provider/consumer/SyncResponseExecutor.java
+++ 
b/core/src/main/java/org/apache/servicecomb/core/provider/consumer/SyncResponseExecutor.java
@@ -17,10 +17,16 @@
 
 package org.apache.servicecomb.core.provider.consumer;
 
+import static javax.ws.rs.core.Response.Status.REQUEST_TIMEOUT;
+
 import java.util.concurrent.CountDownLatch;
 import java.util.concurrent.Executor;
+import java.util.concurrent.TimeUnit;
 
+import org.apache.servicecomb.core.Invocation;
+import org.apache.servicecomb.core.exception.ExceptionCodes;
 import org.apache.servicecomb.swagger.invocation.Response;
+import org.apache.servicecomb.swagger.invocation.exception.InvocationException;
 
 /**
  * 业务线程在阻塞等待着,不必另起线程
@@ -48,9 +54,9 @@ public class SyncResponseExecutor implements Executor {
 latch.countDown();
   }
 
-  public Response waitResponse() throws InterruptedException {
-// TODO:增加配置,指定超时时间
-latch.await();
+  public Response waitResponse(Invocation invocation) throws 
InvocationException {
+guardedWait(invocation);
+
 // cmd为null,是没走execute,直接返回的场景
 if (cmd != null) {
   cmd.run();
@@ -62,11 +68,36 @@ public class SyncResponseExecutor implements Executor {
   public void setResponse(Response response) {
 this.response = response;
 if (cmd == null) {
-  // 走到这里,没有cmd
-  // 说明没走到网络线程,直接就返回了
-  // 或者在网络线程中没使用execute的方式返回,这会导致返回流程在网络线程中执行
-  // 虽然不合适,但是也不应该导致业务线程无法唤醒
+  // 1. 走到这里,没有cmd,说明没走到网络线程,直接就返回了。
+  // 2. 或者在网络线程中没使用execute的方式返回,这会导致返回流程在网络线程中执行,虽然不合适,但是也不应该导致业务线程无法唤醒
   latch.countDown();
 }
   }
+
+  private void guardedWait(Invocation invocation) throws InvocationException {
+long wait = getWaitTime(invocation);
+try {
+  if (wait <= 0) {
+latch.await();
+return;
+  }
+  if (latch.await(wait, TimeUnit.MILLISECONDS)) {
+return;
+  }
+} catch (InterruptedException e) {
+  //ignore
+}
+throw new InvocationException(REQUEST_TIMEOUT, 
ExceptionCodes.INVOCATION_TIMEOUT, "Invocation Timeout.");
+  }
+
+  private long getWaitTime(Invocation invocation) {
+if (invocation.getOperationMeta().getConfig().getMsRequestTimeout() <= 0) {
+  return 
invocation.getOperationMeta(

[servicecomb-java-chassis] branch master updated: [SCB-2253] reduce invoke setter when configuration changed for @InjectProperties

2021-04-06 Thread wujimin
This is an automated email from the ASF dual-hosted git repository.

wujimin 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 0754bf3  [SCB-2253] reduce invoke setter when configuration changed 
for @InjectProperties
0754bf3 is described below

commit 0754bf339e6ffc9840ea7a18ff3ac1fd28fe31d8
Author: wujimin 
AuthorDate: Tue Apr 6 08:56:31 2021 +0800

[SCB-2253] reduce invoke setter when configuration changed for 
@InjectProperties
---
 .../core/exception/DefaultExceptionProcessor.java |  3 +++
 .../servicecomb/config/priority/ConfigObjectProperty.java |  8 ++--
 .../servicecomb/config/priority/PriorityProperty.java | 15 +++
 .../config/priority/PriorityPropertyManager.java  |  6 --
 4 files changed, 28 insertions(+), 4 deletions(-)

diff --git 
a/core/src/main/java/org/apache/servicecomb/core/exception/DefaultExceptionProcessor.java
 
b/core/src/main/java/org/apache/servicecomb/core/exception/DefaultExceptionProcessor.java
index 724e8b0..e18f5e8 100644
--- 
a/core/src/main/java/org/apache/servicecomb/core/exception/DefaultExceptionProcessor.java
+++ 
b/core/src/main/java/org/apache/servicecomb/core/exception/DefaultExceptionProcessor.java
@@ -48,6 +48,8 @@ import org.slf4j.LoggerFactory;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Component;
 
+import com.fasterxml.jackson.annotation.JsonIgnore;
+
 @Component
 @InjectProperties(prefix = "servicecomb.invocation.exception")
 public class DefaultExceptionProcessor implements ExceptionProcessor {
@@ -55,6 +57,7 @@ public class DefaultExceptionProcessor implements 
ExceptionProcessor {
 
   public static final int ORDER = Integer.MAX_VALUE;
 
+  @JsonIgnore
   @SuppressWarnings("unchecked")
   private final List> converters = 
SPIServiceUtils
   .getOrLoadSortedService(ExceptionConverter.class).stream()
diff --git 
a/foundations/foundation-config/src/main/java/org/apache/servicecomb/config/priority/ConfigObjectProperty.java
 
b/foundations/foundation-config/src/main/java/org/apache/servicecomb/config/priority/ConfigObjectProperty.java
index 7231999..e81465b 100644
--- 
a/foundations/foundation-config/src/main/java/org/apache/servicecomb/config/priority/ConfigObjectProperty.java
+++ 
b/foundations/foundation-config/src/main/java/org/apache/servicecomb/config/priority/ConfigObjectProperty.java
@@ -17,6 +17,8 @@
 
 package org.apache.servicecomb.config.priority;
 
+import javax.annotation.Nullable;
+
 import org.apache.servicecomb.foundation.common.utils.bean.Setter;
 
 /**
@@ -32,7 +34,9 @@ public class ConfigObjectProperty {
 this.property = property;
   }
 
-  public void updateValue(Object instance) {
-setter.set(instance, property.getValue());
+  public void updateValueWhenChanged(Object instance, @Nullable String 
changedKey) {
+if (property.isChangedKey(changedKey)) {
+  setter.set(instance, property.getValue());
+}
   }
 }
diff --git 
a/foundations/foundation-config/src/main/java/org/apache/servicecomb/config/priority/PriorityProperty.java
 
b/foundations/foundation-config/src/main/java/org/apache/servicecomb/config/priority/PriorityProperty.java
index faad071..3af93c8 100644
--- 
a/foundations/foundation-config/src/main/java/org/apache/servicecomb/config/priority/PriorityProperty.java
+++ 
b/foundations/foundation-config/src/main/java/org/apache/servicecomb/config/priority/PriorityProperty.java
@@ -180,4 +180,19 @@ public class PriorityProperty {
   public T getValue() {
 return finalValue;
   }
+
+  public boolean isChangedKey(String changedKey) {
+if (changedKey == null) {
+  // property source changed or clear, and so on
+  return true;
+}
+
+for (DynamicProperty property : properties) {
+  if (changedKey.equals(property.getName())) {
+return true;
+  }
+}
+
+return false;
+  }
 }
diff --git 
a/foundations/foundation-config/src/main/java/org/apache/servicecomb/config/priority/PriorityPropertyManager.java
 
b/foundations/foundation-config/src/main/java/org/apache/servicecomb/config/priority/PriorityPropertyManager.java
index 7cf6eaf..15a1b5b 100644
--- 
a/foundations/foundation-config/src/main/java/org/apache/servicecomb/config/priority/PriorityPropertyManager.java
+++ 
b/foundations/foundation-config/src/main/java/org/apache/servicecomb/config/priority/PriorityPropertyManager.java
@@ -63,10 +63,12 @@ public class PriorityPropertyManager {
   return;
 }
 
-// just update all properties, it's very fast, no need to do any optimize
+// just loop all properties, it's very fast, no need to do any optimize
 for (Entry> entry : 
configObjectMap.entrySet()) {
   Object instance = entry.getKey();
-  entry.getValue().forEach(configObjectProperty -> 
configObjectProperty.updateValue(inst

[servicecomb-java-chassis] 02/02: [SCB-2216]fix review comments

2021-03-26 Thread wujimin
This is an automated email from the ASF dual-hosted git repository.

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

commit 0b46b0fabc1c9f5aa1905ce0697d02e389e31b92
Author: liubao68 
AuthorDate: Fri Mar 26 09:33:38 2021 +0800

[SCB-2216]fix review comments
---
 .../org/apache/servicecomb/transport/highway/HighwayClientFilter.java   | 2 +-
 .../org/apache/servicecomb/transport/rest/client/RestClientSender.java  | 2 +-
 .../servicecomb/transport/rest/client/RestClientSenderFilter.java   | 2 --
 3 files changed, 2 insertions(+), 4 deletions(-)

diff --git 
a/transports/transport-highway/src/main/java/org/apache/servicecomb/transport/highway/HighwayClientFilter.java
 
b/transports/transport-highway/src/main/java/org/apache/servicecomb/transport/highway/HighwayClientFilter.java
index fdd7a3e..ccebe79 100644
--- 
a/transports/transport-highway/src/main/java/org/apache/servicecomb/transport/highway/HighwayClientFilter.java
+++ 
b/transports/transport-highway/src/main/java/org/apache/servicecomb/transport/highway/HighwayClientFilter.java
@@ -62,7 +62,7 @@ public class HighwayClientFilter implements ConsumerFilter {
   }
 
   protected CompletableFuture send(Invocation invocation, 
OperationProtobuf operationProtobuf) {
-invocation.getInvocationStageTrace().startSend();
+invocation.onStartSendRequest();
 
 HighwayClient highwayClient = ((HighwayTransport) 
invocation.getTransport()).getHighwayClient();
 HighwayClientPackage clientPackage = 
highwayClient.createClientPackage(invocation, operationProtobuf);
diff --git 
a/transports/transport-rest/transport-rest-client/src/main/java/org/apache/servicecomb/transport/rest/client/RestClientSender.java
 
b/transports/transport-rest/transport-rest-client/src/main/java/org/apache/servicecomb/transport/rest/client/RestClientSender.java
index caa62b4..558245e 100644
--- 
a/transports/transport-rest/transport-rest-client/src/main/java/org/apache/servicecomb/transport/rest/client/RestClientSender.java
+++ 
b/transports/transport-rest/transport-rest-client/src/main/java/org/apache/servicecomb/transport/rest/client/RestClientSender.java
@@ -65,7 +65,7 @@ public class RestClientSender {
 
   @SuppressWarnings("deprecation")
   public CompletableFuture send() {
-invocation.getInvocationStageTrace().startSend();
+invocation.onStartSendRequest();
 
 httpClientRequest.exceptionHandler(future::completeExceptionally);
 httpClientRequest.handler(this::processResponse);
diff --git 
a/transports/transport-rest/transport-rest-client/src/main/java/org/apache/servicecomb/transport/rest/client/RestClientSenderFilter.java
 
b/transports/transport-rest/transport-rest-client/src/main/java/org/apache/servicecomb/transport/rest/client/RestClientSenderFilter.java
index 84e8baa..d5c2bd4 100644
--- 
a/transports/transport-rest/transport-rest-client/src/main/java/org/apache/servicecomb/transport/rest/client/RestClientSenderFilter.java
+++ 
b/transports/transport-rest/transport-rest-client/src/main/java/org/apache/servicecomb/transport/rest/client/RestClientSenderFilter.java
@@ -38,8 +38,6 @@ public class RestClientSenderFilter implements ConsumerFilter 
{
 
   @Override
   public CompletableFuture onFilter(Invocation invocation, 
FilterNode nextNode) {
-invocation.onStartSendRequest();
-
 CompletableFuture future = new RestClientSender(invocation)
 .send();
 


[servicecomb-java-chassis] branch master updated (00bc846 -> 0b46b0f)

2021-03-26 Thread wujimin
This is an automated email from the ASF dual-hosted git repository.

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


from 00bc846  [SCB-2242] fix 
org.apache.servicecomb.core.definition.MicroserviceVersionsMeta#MicroserviceVersionsMeta
 bug of OOM (#2320)
 new c018bed  [SCB-2216]breakpoints testing for fast timeout of execution
 new 0b46b0f  [SCB-2216]fix review comments

The 2 revisions listed above as "new" are entirely new to this
repository and will be described in separate emails.  The revisions
listed as "add" were already present in the repository and have only
been added to this reference.


Summary of changes:
 .../common/rest/AbstractRestInvocation.java|  20 ++-
 .../java/org/apache/servicecomb/core/Const.java|   6 +
 .../org/apache/servicecomb/core/Invocation.java|  45 --
 .../core/definition/OperationConfig.java   |  21 +++
 ...ent.java => InvocationBusinessFinishEvent.java} |   5 +-
 ...vent.java => InvocationHandlersStartEvent.java} |   7 +-
 ...t.java => InvocationStartSendRequestEvent.java} |   7 +-
 ...Event.java => InvocationTimeoutCheckEvent.java} |   7 +-
 .../servicecomb/core/exception/ExceptionCodes.java |   1 +
 .../core/filter/impl/ScheduleFilter.java   |   2 +-
 .../invocation/InvocationTimeoutBootListener.java  | 159 +
 .../core/provider/consumer/InvokerUtils.java   |   7 +-
 .../core/definition/OperationConfigTest.java   |   9 ++
 .../src/main/resources/microservice.yaml   |   3 +
 .../src/main/resources/microservice.yaml   |   5 +-
 .../servicecomb/demo/CommonSchemaInterface.java|  23 +--
 .../java/org/apache/servicecomb/demo/TestMgr.java  |   4 +
 .../client/TestSpringMVCCommonSchemaInterface.java |  76 ++
 .../demo/springmvc/client/TestUploadSchema.java|   2 +
 .../src/main/resources/microservice.yaml   |   1 -
 .../springmvc/server/ProducerTestsAfterBootup.java |   4 +-
 .../server/SpringMVCCommonSchemaInterface.java |  60 
 .../demo/springmvc/server/UploadSchema.java|   4 +
 .../src/main/resources/microservice.yaml   |   6 +
 .../foundation/common/event/SimpleSubscriber.java  |   2 +-
 .../bizkeeper/FallbackPolicyManager.java   |   6 +-
 .../bizkeeper/TestFallbackPolicyManager.java   |   8 +-
 .../transport/highway/HighwayClient.java   |   2 +-
 .../transport/highway/HighwayClientFilter.java |   2 +-
 .../transport/highway/HighwayCodec.java|   1 -
 .../transport/highway/HighwayServerConnection.java |   2 +
 .../transport/highway/HighwayServerInvoke.java |   7 +-
 .../transport/highway/TestHighwayClient.java   |   4 -
 .../transport/highway/TestHighwayCodec.java|   6 +-
 .../transport/rest/client/RestClientSender.java|   2 +-
 .../rest/client/http/RestClientInvocation.java |   6 +-
 .../rest/client/http/TestRestClientInvocation.java |   3 -
 37 files changed, 455 insertions(+), 80 deletions(-)
 copy 
core/src/main/java/org/apache/servicecomb/core/event/{InvocationStartEvent.java 
=> InvocationBusinessFinishEvent.java} (86%)
 copy 
core/src/main/java/org/apache/servicecomb/core/event/{InvocationStartEvent.java 
=> InvocationHandlersStartEvent.java} (87%)
 copy 
core/src/main/java/org/apache/servicecomb/core/event/{InvocationStartEvent.java 
=> InvocationStartSendRequestEvent.java} (86%)
 copy 
core/src/main/java/org/apache/servicecomb/core/event/{InvocationStartEvent.java 
=> InvocationTimeoutCheckEvent.java} (87%)
 create mode 100644 
core/src/main/java/org/apache/servicecomb/core/invocation/InvocationTimeoutBootListener.java
 copy 
integration-tests/it-producer/src/main/java/org/apache/servicecomb/it/schema/TransportContextSchema.java
 => 
demo/demo-schema/src/main/java/org/apache/servicecomb/demo/CommonSchemaInterface.java
 (59%)
 create mode 100644 
demo/demo-springmvc/springmvc-client/src/main/java/org/apache/servicecomb/demo/springmvc/client/TestSpringMVCCommonSchemaInterface.java
 create mode 100644 
demo/demo-springmvc/springmvc-server/src/main/java/org/apache/servicecomb/demo/springmvc/server/SpringMVCCommonSchemaInterface.java


[servicecomb-java-chassis] 01/02: [SCB-2216]breakpoints testing for fast timeout of execution

2021-03-26 Thread wujimin
This is an automated email from the ASF dual-hosted git repository.

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

commit c018bed9051cd8d7c27c07ec1824bc554d409eb0
Author: liubao68 
AuthorDate: Sat Mar 20 15:07:28 2021 +0800

[SCB-2216]breakpoints testing for fast timeout of execution
---
 .../common/rest/AbstractRestInvocation.java|  20 ++-
 .../java/org/apache/servicecomb/core/Const.java|   6 +
 .../org/apache/servicecomb/core/Invocation.java|  45 --
 .../core/definition/OperationConfig.java   |  21 +++
 .../InvocationBusinessFinishEvent.java}|  14 +-
 .../InvocationHandlersStartEvent.java} |  16 +--
 .../InvocationStartSendRequestEvent.java}  |  16 +--
 .../InvocationTimeoutCheckEvent.java}  |  16 +--
 .../servicecomb/core/exception/ExceptionCodes.java |   1 +
 .../core/filter/impl/ScheduleFilter.java   |   2 +-
 .../invocation/InvocationTimeoutBootListener.java  | 159 +
 .../core/provider/consumer/InvokerUtils.java   |   7 +-
 .../core/definition/OperationConfigTest.java   |   9 ++
 .../src/main/resources/microservice.yaml   |   3 +
 .../src/main/resources/microservice.yaml   |   5 +-
 .../servicecomb/demo/CommonSchemaInterface.java|  36 +
 .../java/org/apache/servicecomb/demo/TestMgr.java  |   4 +
 .../client/TestSpringMVCCommonSchemaInterface.java |  76 ++
 .../demo/springmvc/client/TestUploadSchema.java|   2 +
 .../src/main/resources/microservice.yaml   |   1 -
 .../springmvc/server/ProducerTestsAfterBootup.java |   4 +-
 .../server/SpringMVCCommonSchemaInterface.java |  60 
 .../demo/springmvc/server/UploadSchema.java|   4 +
 .../src/main/resources/microservice.yaml   |   6 +
 .../foundation/common/event/SimpleSubscriber.java  |   2 +-
 .../bizkeeper/FallbackPolicyManager.java   |   6 +-
 .../bizkeeper/TestFallbackPolicyManager.java   |   8 +-
 .../transport/highway/HighwayClient.java   |   2 +-
 .../transport/highway/HighwayCodec.java|   1 -
 .../transport/highway/HighwayServerConnection.java |   2 +
 .../transport/highway/HighwayServerInvoke.java |   7 +-
 .../transport/highway/TestHighwayClient.java   |   4 -
 .../transport/highway/TestHighwayCodec.java|   6 +-
 .../rest/client/RestClientSenderFilter.java|   2 +
 .../rest/client/http/RestClientInvocation.java |   6 +-
 .../rest/client/http/TestRestClientInvocation.java |   3 -
 36 files changed, 493 insertions(+), 89 deletions(-)

diff --git 
a/common/common-rest/src/main/java/org/apache/servicecomb/common/rest/AbstractRestInvocation.java
 
b/common/common-rest/src/main/java/org/apache/servicecomb/common/rest/AbstractRestInvocation.java
index 2304022..5041d6c 100644
--- 
a/common/common-rest/src/main/java/org/apache/servicecomb/common/rest/AbstractRestInvocation.java
+++ 
b/common/common-rest/src/main/java/org/apache/servicecomb/common/rest/AbstractRestInvocation.java
@@ -126,10 +126,6 @@ public abstract class AbstractRestInvocation {
   return;
 }
 
-invocation.onStart(requestEx, start);
-invocation.getInvocationStageTrace().startSchedule();
-OperationMeta operationMeta = restOperationMeta.getOperationMeta();
-
 try {
   this.setContext();
 } catch (Exception e) {
@@ -137,6 +133,10 @@ public abstract class AbstractRestInvocation {
   sendFailResponse(e);
   return;
 }
+
+invocation.onStart(requestEx, start);
+invocation.getInvocationStageTrace().startSchedule();
+OperationMeta operationMeta = restOperationMeta.getOperationMeta();
 
 Holder qpsFlowControlReject = checkQpsFlowControl(operationMeta);
 if (qpsFlowControlReject.value) {
@@ -160,8 +160,11 @@ public abstract class AbstractRestInvocation {
 }
 
 runOnExecutor();
+  } catch (InvocationException e) {
+LOGGER.error("Invocation failed, cause={}", e.getMessage());
+sendFailResponse(e);
   } catch (Throwable e) {
-LOGGER.error("rest server onRequest error", e);
+LOGGER.error("Processing rest server request error", e);
 sendFailResponse(e);
   }
 }
@@ -217,8 +220,11 @@ public abstract class AbstractRestInvocation {
   }
 
   doInvoke();
+} catch (InvocationException e) {
+  LOGGER.error("Invocation failed, cause={}", e.getMessage());
+  sendFailResponse(e);
 } catch (Throwable e) {
-  LOGGER.error("unknown rest exception.", e);
+  LOGGER.error("Processing rest server request error", e);
   sendFailResponse(e);
 }
   }
@@ -241,7 +247,7 @@ public abstract class AbstractRestInvocation {
   }
 
   protected void doInvoke() throws Throwable {
-invocation.getInvocationStageTrace().st

[servicecomb-java-chassis] branch master updated: [SCB-2171]avoid leak server ip when process TimeoutException

2020-12-29 Thread wujimin
This is an automated email from the ASF dual-hosted git repository.

wujimin 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 b2396eb  [SCB-2171]avoid leak server ip when process TimeoutException
b2396eb is described below

commit b2396eb06a41ad1aef85cdd28727ca7b75a5daf8
Author: liubao 
AuthorDate: Tue Dec 29 15:57:43 2020 +0800

[SCB-2171]avoid leak server ip when process TimeoutException
---
 .../servicecomb/demo/jaxrs/client/TestClientTimeout.java   |  2 +-
 .../servicecomb/demo/springmvc/client/SpringmvcClient.java |  6 ++
 .../apache/servicecomb/transport/highway/HighwayClient.java| 10 +-
 .../transport/rest/client/http/RestClientInvocation.java   |  5 -
 4 files changed, 20 insertions(+), 3 deletions(-)

diff --git 
a/demo/demo-jaxrs/jaxrs-client/src/main/java/org/apache/servicecomb/demo/jaxrs/client/TestClientTimeout.java
 
b/demo/demo-jaxrs/jaxrs-client/src/main/java/org/apache/servicecomb/demo/jaxrs/client/TestClientTimeout.java
index 9c3ea15..73ae73d 100644
--- 
a/demo/demo-jaxrs/jaxrs-client/src/main/java/org/apache/servicecomb/demo/jaxrs/client/TestClientTimeout.java
+++ 
b/demo/demo-jaxrs/jaxrs-client/src/main/java/org/apache/servicecomb/demo/jaxrs/client/TestClientTimeout.java
@@ -75,7 +75,7 @@ public class TestClientTimeout implements CategorizedTestCase 
{
   // implement timeout with same error code and message for rest and 
highway
   TestMgr.check(408, e.getStatus().getStatusCode());
   TestMgr.check(true,
-  e.getErrorData().toString().contains("CommonExceptionData 
[message=Request Timeout. Details:"));
+  e.getErrorData().toString().contains("CommonExceptionData 
[message=Request Timeout."));
   TestMgr.check(serviceCombServerStats.getContinuousFailureCount(), 
failures + 1);
 }
 
diff --git 
a/demo/demo-springmvc/springmvc-client/src/main/java/org/apache/servicecomb/demo/springmvc/client/SpringmvcClient.java
 
b/demo/demo-springmvc/springmvc-client/src/main/java/org/apache/servicecomb/demo/springmvc/client/SpringmvcClient.java
index e8c31a1..b3a1a79 100644
--- 
a/demo/demo-springmvc/springmvc-client/src/main/java/org/apache/servicecomb/demo/springmvc/client/SpringmvcClient.java
+++ 
b/demo/demo-springmvc/springmvc-client/src/main/java/org/apache/servicecomb/demo/springmvc/client/SpringmvcClient.java
@@ -230,6 +230,12 @@ public class SpringmvcClient {
 template.getForObject(prefix + "/controller/sayhi?name={name}",
 String.class,
 "world1"));
+
+TestMgr.check("hi world1+world2 [world1+world2]",
+template.getForObject(prefix + "/controller/sayhi?name={name}",
+String.class,
+"world1+world2"));
+
 TestMgr.check("hi hi 中国 [hi 中国]",
 template.getForObject(prefix + "/controller/sayhi?name={name}",
 String.class,
diff --git 
a/transports/transport-highway/src/main/java/org/apache/servicecomb/transport/highway/HighwayClient.java
 
b/transports/transport-highway/src/main/java/org/apache/servicecomb/transport/highway/HighwayClient.java
index 4327549..630a095 100644
--- 
a/transports/transport-highway/src/main/java/org/apache/servicecomb/transport/highway/HighwayClient.java
+++ 
b/transports/transport-highway/src/main/java/org/apache/servicecomb/transport/highway/HighwayClient.java
@@ -36,6 +36,8 @@ import 
org.apache.servicecomb.swagger.invocation.AsyncResponse;
 import org.apache.servicecomb.swagger.invocation.Response;
 import org.apache.servicecomb.swagger.invocation.exception.CommonExceptionData;
 import org.apache.servicecomb.swagger.invocation.exception.InvocationException;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 
 import com.netflix.config.DynamicPropertyFactory;
 
@@ -43,6 +45,8 @@ import io.vertx.core.DeploymentOptions;
 import io.vertx.core.Vertx;
 
 public class HighwayClient {
+  private static final Logger LOGGER = 
LoggerFactory.getLogger(HighwayClient.class);
+
   private static final String SSL_KEY = "highway.consumer";
 
   private ClientPoolManager clientMgr;
@@ -101,8 +105,12 @@ public class HighwayClient {
   invocation.getInvocationStageTrace().finishClientFiltersResponse();
   if (ar.cause() instanceof TimeoutException) {
 // give an accurate cause for timeout exception
+//   The timeout period of 3ms has been exceeded while 
executing GET /xxx for server 1.1.1.1:8080
+// should not copy the message to invocationException to avoid 
leak server ip address
+LOGGER.info("Request timeout, Details: {}.", 
ar.cause().getMessage());
+
 asyncResp.consumerFail(new 
InvocationException(Status.REQUEST_TIMEOUT,
-new CommonExceptionData(String.format("Req

[servicecomb-java-chassis] branch master updated: [SCB-2170] add configuration to control log invocation exception stack trace

2020-12-23 Thread wujimin
This is an automated email from the ASF dual-hosted git repository.

wujimin 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 4546c6d  [SCB-2170] add configuration to control log invocation 
exception stack trace
4546c6d is described below

commit 4546c6d6ef7a06e138cd38eb7922537599917977
Author: wujimin 
AuthorDate: Thu Dec 24 01:40:38 2020 +0800

[SCB-2170] add configuration to control log invocation exception stack trace
---
 .../servicecomb/core/exception/Exceptions.java | 23 ++--
 .../core/invocation/ProducerInvocationFlow.java| 32 --
 .../core/provider/consumer/InvokerUtils.java   | 30 
 core/src/main/resources/microservice.yaml  |  3 ++
 .../highway/HighwayProducerInvocationFlow.java | 14 +-
 5 files changed, 90 insertions(+), 12 deletions(-)

diff --git 
a/core/src/main/java/org/apache/servicecomb/core/exception/Exceptions.java 
b/core/src/main/java/org/apache/servicecomb/core/exception/Exceptions.java
index 51b6e8a..7166d6b 100644
--- a/core/src/main/java/org/apache/servicecomb/core/exception/Exceptions.java
+++ b/core/src/main/java/org/apache/servicecomb/core/exception/Exceptions.java
@@ -32,6 +32,7 @@ import javax.ws.rs.core.Response.StatusType;
 
 import org.apache.servicecomb.core.Invocation;
 import org.apache.servicecomb.foundation.common.concurrent.ConcurrentHashMapEx;
+import org.apache.servicecomb.foundation.common.utils.ExceptionUtils;
 import org.apache.servicecomb.foundation.common.utils.SPIServiceUtils;
 import org.apache.servicecomb.swagger.invocation.Response;
 import org.apache.servicecomb.swagger.invocation.exception.ExceptionFactory;
@@ -39,6 +40,8 @@ import 
org.apache.servicecomb.swagger.invocation.exception.InvocationException;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
+import com.netflix.config.DynamicPropertyFactory;
+
 public final class Exceptions {
   private static final Logger LOGGER = 
LoggerFactory.getLogger(Exceptions.class);
 
@@ -113,13 +116,24 @@ public final class Exceptions {
   StatusType genericStatus) {
 InvocationException invocationException = Exceptions.convert(invocation, 
exception, genericStatus);
 if (invocation != null) {
-  LOGGER.error("failed to process {} invocation, operation={}.",
-  invocation.getInvocationType(), 
invocation.getMicroserviceQualifiedName(), invocationException);
+  logException(invocation, invocationException);
 }
 return Response.status(invocationException.getStatus())
 .entity(invocationException.getErrorData());
   }
 
+  private static void logException(@Nonnull Invocation invocation, 
InvocationException invocationException) {
+if (isPrintInvocationStackTrace()) {
+  LOGGER.error("failed to process {} invocation, operation={}.",
+  invocation.getInvocationType(), 
invocation.getMicroserviceQualifiedName(), invocationException);
+  return;
+}
+
+LOGGER.error("failed to process {} invocation, operation={}, message={}.",
+invocation.getInvocationType(), 
invocation.getMicroserviceQualifiedName(),
+ExceptionUtils.getExceptionMessageWithoutTrace(invocationException));
+  }
+
   public static InvocationException convert(@Nonnull Invocation invocation, 
Throwable throwable) {
 StatusType genericStatus = getGenericStatus(invocation);
 return convert(invocation, throwable, genericStatus);
@@ -141,4 +155,9 @@ public final class Exceptions {
 
 throw new IllegalStateException("never happened: can not find converter 
for " + throwable.getClass().getName());
   }
+
+  public static boolean isPrintInvocationStackTrace() {
+return DynamicPropertyFactory.getInstance()
+
.getBooleanProperty("servicecomb.exception.invocation.print-stack-trace", 
false).get();
+  }
 }
diff --git 
a/core/src/main/java/org/apache/servicecomb/core/invocation/ProducerInvocationFlow.java
 
b/core/src/main/java/org/apache/servicecomb/core/invocation/ProducerInvocationFlow.java
index 847936d..93af06c 100644
--- 
a/core/src/main/java/org/apache/servicecomb/core/invocation/ProducerInvocationFlow.java
+++ 
b/core/src/main/java/org/apache/servicecomb/core/invocation/ProducerInvocationFlow.java
@@ -19,6 +19,7 @@ package org.apache.servicecomb.core.invocation;
 import org.apache.servicecomb.core.Invocation;
 import org.apache.servicecomb.core.exception.Exceptions;
 import org.apache.servicecomb.foundation.common.utils.AsyncUtils;
+import org.apache.servicecomb.foundation.common.utils.ExceptionUtils;
 import org.apache.servicecomb.foundation.vertx.http.HttpServletRequestEx;
 import org.apache.servicecomb.foundation.vertx.http.HttpServletResponseEx;
 import org.apache.servicecomb.swagger.invocation.Response;
@@ -68,18 +69,43 @@ public abstract class ProducerInvocation

[servicecomb-java-chassis] branch master updated: [SCB-2169] optimize filter declare and chain config

2020-12-22 Thread wujimin
This is an automated email from the ASF dual-hosted git repository.

wujimin 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 76fe676  [SCB-2169] optimize filter declare and chain config
76fe676 is described below

commit 76fe676dad6d0aa12d77019246d0ea9c19eeb878
Author: wujimin 
AuthorDate: Tue Dec 22 10:03:16 2020 +0800

[SCB-2169] optimize filter declare and chain config
---
 .../rest/filter/inner/RestServerCodecFilter.java   |  18 ++-
 .../src/test/resources/microservice.yaml   |   7 +-
 .../org/apache/servicecomb/core/SCBEngine.java |   5 +-
 .../core/bootstrap/SCBEngineForTest.java   |  14 +-
 .../core/definition/ServiceRegistryListener.java   |   2 +-
 .../servicecomb/core/filter/ConsumerFilter.java|  16 +-
 .../org/apache/servicecomb/core/filter/Filter.java |  24 ++-
 .../core/filter/FilterChainsManager.java   | 123 +---
 .../servicecomb/core/filter/FilterManager.java | 162 -
 .../apache/servicecomb/core/filter/FilterMeta.java |  50 ---
 .../apache/servicecomb/core/filter/FilterNode.java |   2 +-
 .../{FilterProvider.java => InternalFilter.java}   |   5 +-
 .../core/filter/InvocationFilterChains.java| 113 ++
 .../servicecomb/core/filter/ProducerFilter.java|  19 ++-
 .../filter/config/AbstractFilterChainsConfig.java  |  24 +--
 .../core/filter/config/FilterChainsConfig.java |  95 +++-
 .../config/InvocationFilterChainsConfig.java   |  69 +
 ...ilterConfig.java => TransportChainsConfig.java} |  14 +-
 .../core/filter/config/TransportFiltersConfig.java |  54 ---
 ...DefaultFilterProvider.java => EmptyFilter.java} |  28 ++--
 .../core/filter/impl/ParameterValidatorFilter.java |  25 ++--
 .../core/filter/impl/ProducerOperationFilter.java  |  22 +--
 .../core/filter/impl/ScheduleFilter.java   |  20 ++-
 .../core/filter/impl/SimpleLoadBalanceFilter.java  | 110 --
 .../core/filter/impl/TransportFilters.java |  22 ++-
 core/src/main/resources/microservice.yaml  |  19 ++-
 .../core/filter/FilterChainsManagerTest.java   | 103 -
 .../servicecomb/core/filter/SimpleRetryFilter.java |  11 +-
 .../filter/impl/ParameterValidatorFilterTest.java  |   2 +-
 .../demo/pojo/client/CodeFirstPojoClient.java  |  20 +--
 .../src/test/resources/microservice.yaml   |  22 +--
 .../src/test/resources/microservice.yaml   |  22 +--
 .../tracing/zipkin/ZipkinTracingFilter.java|  20 ++-
 .../src/test/resources/microservice.yaml   |  22 +--
 .../src/test/resources/microservice.yaml   |   2 +-
 .../src/test/resources/microservice.yaml   |  22 +--
 .../src/test/resources/microservice.yaml   |  22 +--
 .../transport/highway/HighwayClientFilter.java |  27 +++-
 .../highway/HighwayServerCodecFilter.java  |  19 ++-
 .../src/main}/resources/microservice.yaml  |  24 +--
 .../rest/client/RestClientCodecFilter.java |  20 ++-
 .../rest/client/RestClientFilterProvider.java  |  35 -
 .../rest/client/RestClientSenderFilter.java|  20 ++-
 43 files changed, 655 insertions(+), 820 deletions(-)

diff --git 
a/common/common-rest/src/main/java/org/apache/servicecomb/common/rest/filter/inner/RestServerCodecFilter.java
 
b/common/common-rest/src/main/java/org/apache/servicecomb/common/rest/filter/inner/RestServerCodecFilter.java
index bcf30a5..3dd5557 100644
--- 
a/common/common-rest/src/main/java/org/apache/servicecomb/common/rest/filter/inner/RestServerCodecFilter.java
+++ 
b/common/common-rest/src/main/java/org/apache/servicecomb/common/rest/filter/inner/RestServerCodecFilter.java
@@ -21,12 +21,12 @@ import static 
com.google.common.net.HttpHeaders.CONTENT_LENGTH;
 import static com.google.common.net.HttpHeaders.TRANSFER_ENCODING;
 import static javax.ws.rs.core.Response.Status.INTERNAL_SERVER_ERROR;
 import static 
org.apache.servicecomb.core.exception.Exceptions.exceptionToResponse;
-import static 
org.apache.servicecomb.swagger.invocation.InvocationType.PRODUCER;
 
 import java.util.Map;
 import java.util.Map.Entry;
 import java.util.concurrent.CompletableFuture;
 
+import javax.annotation.Nonnull;
 import javax.servlet.http.Part;
 
 import org.apache.servicecomb.common.rest.HttpTransportContext;
@@ -36,20 +36,28 @@ import 
org.apache.servicecomb.common.rest.codec.produce.ProduceProcessor;
 import org.apache.servicecomb.common.rest.definition.RestOperationMeta;
 import org.apache.servicecomb.core.Invocation;
 import org.apache.servicecomb.core.definition.OperationMeta;
-import org.apache.servicecomb.core.filter.Filter;
-import org.apache.servicecomb.core.filter.FilterMeta;
 import org.apache.servicecomb.core.filter.FilterNode;
+import org.apache.servicecomb.core.filter.ProducerFilter

[servicecomb-java-chassis] branch master updated: [SCB-2164]InstanceCacheCheckTask only print necessary message to avoid information leak

2020-12-16 Thread wujimin
This is an automated email from the ASF dual-hosted git repository.

wujimin 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 7f8f71d  [SCB-2164]InstanceCacheCheckTask only print necessary message 
to avoid information leak
7f8f71d is described below

commit 7f8f71d97e1b405f09536f537b20c995843856e1
Author: liubao 
AuthorDate: Wed Dec 16 17:16:26 2020 +0800

[SCB-2164]InstanceCacheCheckTask only print necessary message to avoid 
information leak
---
 .../registry/api/registry/MicroserviceInstance.java | 10 ++
 .../diagnosis/instance/InstanceCacheCheckTask.java  |  2 +-
 .../diagnosis/instance/InstanceCacheChecker.java| 13 +
 .../api/registry/TestMicroServiceInstance.java  |  3 +++
 4 files changed, 23 insertions(+), 5 deletions(-)

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 3622286..5ece9ec 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
@@ -65,6 +65,16 @@ public class MicroserviceInstance {
 
   private String timestamp;
 
+  @Override
+  public String toString() {
+StringBuilder sb = new StringBuilder();
+sb.append("instanceId=" + instanceId + ";");
+sb.append("serviceId=" + serviceId + ";");
+sb.append("status=" + status + ";");
+sb.append("endpoints=" + endpoints.toString());
+return sb.toString();
+  }
+
   public String getTimestamp() {
 return timestamp;
   }
diff --git 
a/service-registry/registry-service-center/src/main/java/org/apache/servicecomb/serviceregistry/diagnosis/instance/InstanceCacheCheckTask.java
 
b/service-registry/registry-service-center/src/main/java/org/apache/servicecomb/serviceregistry/diagnosis/instance/InstanceCacheCheckTask.java
index c8eb0e7..36b9ab9 100644
--- 
a/service-registry/registry-service-center/src/main/java/org/apache/servicecomb/serviceregistry/diagnosis/instance/InstanceCacheCheckTask.java
+++ 
b/service-registry/registry-service-center/src/main/java/org/apache/servicecomb/serviceregistry/diagnosis/instance/InstanceCacheCheckTask.java
@@ -124,7 +124,7 @@ public class InstanceCacheCheckTask implements 
ServiceRegistryTaskInitializer {
   InstanceCacheSummary instanceCacheSummary = checker.check();
   eventBus.post(instanceCacheSummary);
 
-  LOGGER.info("check instance cache, result={}.", 
Json.encode(instanceCacheSummary));
+  LOGGER.info("check instance cache, result={}.", 
instanceCacheSummary.getStatus());
 } catch (Throwable e) {
   LOGGER.error("failed check instance cache..", e);
 }
diff --git 
a/service-registry/registry-service-center/src/main/java/org/apache/servicecomb/serviceregistry/diagnosis/instance/InstanceCacheChecker.java
 
b/service-registry/registry-service-center/src/main/java/org/apache/servicecomb/serviceregistry/diagnosis/instance/InstanceCacheChecker.java
index 4ad8b54..0359b4b 100644
--- 
a/service-registry/registry-service-center/src/main/java/org/apache/servicecomb/serviceregistry/diagnosis/instance/InstanceCacheChecker.java
+++ 
b/service-registry/registry-service-center/src/main/java/org/apache/servicecomb/serviceregistry/diagnosis/instance/InstanceCacheChecker.java
@@ -24,7 +24,6 @@ import java.util.Objects;
 import java.util.Set;
 
 import org.apache.servicecomb.foundation.common.utils.TimeUtils;
-import org.apache.servicecomb.serviceregistry.RegistryUtils;
 import org.apache.servicecomb.registry.api.registry.MicroserviceInstance;
 import org.apache.servicecomb.registry.api.registry.MicroserviceInstances;
 import org.apache.servicecomb.registry.consumer.AppManager;
@@ -32,6 +31,7 @@ import 
org.apache.servicecomb.registry.consumer.MicroserviceManager;
 import org.apache.servicecomb.registry.consumer.MicroserviceVersions;
 import org.apache.servicecomb.registry.consumer.StaticMicroserviceVersions;
 import org.apache.servicecomb.registry.definition.DefinitionConst;
+import org.apache.servicecomb.serviceregistry.RegistryUtils;
 import org.apache.servicecomb.serviceregistry.diagnosis.Status;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
@@ -40,7 +40,7 @@ import io.vertx.core.json.Json;
 
 public class InstanceCacheChecker {
   private static final Logger LOGGER = 
LoggerFactory.getLogger(InstanceCacheChecker.class);
-  
+
   Clock clock = TimeUtils.getSystemDefaultZoneClock();
 
   private AppManager appManager;
@@ -117,6 +117,11 @@ public 

[servicecomb-java-chassis] branch master updated: [SCB-2162]upgrade spring framerok to 5.2.9.RELEASE and spring boot to 2.3.4.RELEASE

2020-12-15 Thread wujimin
This is an automated email from the ASF dual-hosted git repository.

wujimin 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 58e61d8  [SCB-2162]upgrade spring framerok to 5.2.9.RELEASE and spring 
boot to 2.3.4.RELEASE
58e61d8 is described below

commit 58e61d8fbcde839af8bffa312a538a8df551b0be
Author: liubao 
AuthorDate: Tue Dec 15 18:53:08 2020 +0800

[SCB-2162]upgrade spring framerok to 5.2.9.RELEASE and spring boot to 
2.3.4.RELEASE
---
 .../core/ConfigurationSpringInitializer.java   | 14 +
 .../jaxrs/client/CodeFirstRestTemplateJaxrs.java   |  2 +-
 .../jaxrs/client/MultiErrorCodeServiceClient.java  |  5 +-
 demo/demo-jaxrs/pom.xml|  1 -
 .../IConfigurationEndpoint.java|  4 ++
 .../demo/multiServiceCenterClient/ServerBTest.java |  9 +++
 .../ConfigurationEndpoint.java | 25 
 .../{microservice.yaml => application.properties}  | 11 +---
 .../src/main/resources/microservice.yaml   |  4 ++
 dependencies/default/pom.xml   | 27 +
 .../config/LastPropertyPlaceholderConfigurer.java  |  4 +-
 .../TestLastPropertyPlaceholderConfigurer.java |  4 +-
 integration-tests/it-consumer/pom.xml  |  1 -
 integration-tests/pom.xml  | 18 +-
 .../generator-spring-data/pom.xml  |  5 --
 .../generator/springdata/SpringDataModule.java | 66 --
 .../springdata/TestPageResponseTypeProcessor.java  | 25 +---
 17 files changed, 137 insertions(+), 88 deletions(-)

diff --git 
a/core/src/main/java/org/apache/servicecomb/core/ConfigurationSpringInitializer.java
 
b/core/src/main/java/org/apache/servicecomb/core/ConfigurationSpringInitializer.java
index 9d11189..dfe9413 100644
--- 
a/core/src/main/java/org/apache/servicecomb/core/ConfigurationSpringInitializer.java
+++ 
b/core/src/main/java/org/apache/servicecomb/core/ConfigurationSpringInitializer.java
@@ -35,8 +35,8 @@ import 
org.apache.servicecomb.foundation.bootstrap.BootStrapService;
 import org.apache.servicecomb.foundation.common.utils.SPIServiceUtils;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
-import org.springframework.beans.factory.config.PropertyPlaceholderConfigurer;
 import org.springframework.context.EnvironmentAware;
+import 
org.springframework.context.support.PropertySourcesPlaceholderConfigurer;
 import org.springframework.core.Ordered;
 import org.springframework.core.env.CompositePropertySource;
 import org.springframework.core.env.ConfigurableEnvironment;
@@ -47,7 +47,6 @@ import org.springframework.core.env.PropertySource;
 import org.springframework.util.StringUtils;
 
 import com.netflix.config.ConfigurationManager;
-import com.netflix.config.DynamicPropertyFactory;
 
 /**
  *  Adapt spring PropertySource and Archaius Configuration
@@ -64,7 +63,7 @@ import com.netflix.config.DynamicPropertyFactory;
  *  related to precedence of a KEY-VAlUE. That is cse.test in dynamic config 
may not override servicecomb.test in yml.
  *  Users need to use the same key as what is in config file to override.
  */
-public class ConfigurationSpringInitializer extends 
PropertyPlaceholderConfigurer implements EnvironmentAware {
+public class ConfigurationSpringInitializer extends 
PropertySourcesPlaceholderConfigurer implements EnvironmentAware {
   private static final Logger LOGGER = 
LoggerFactory.getLogger(ConfigurationSpringInitializer.class);
 
   public static final String EXTRA_CONFIG_SOURCE_PREFIX = "extraConfig-";
@@ -185,15 +184,6 @@ public class ConfigurationSpringInitializer extends 
PropertyPlaceholderConfigure
 return properties;
   }
 
-  @Override
-  protected String resolvePlaceholder(String placeholder, Properties props) {
-String propertyValue = super.resolvePlaceholder(placeholder, props);
-if (propertyValue == null) {
-  return 
DynamicPropertyFactory.getInstance().getStringProperty(placeholder, null).get();
-}
-return propertyValue;
-  }
-
   /**
* Try to get a name for identifying the environment.
* @param environment the target that the name is generated for.
diff --git 
a/demo/demo-jaxrs/jaxrs-client/src/main/java/org/apache/servicecomb/demo/jaxrs/client/CodeFirstRestTemplateJaxrs.java
 
b/demo/demo-jaxrs/jaxrs-client/src/main/java/org/apache/servicecomb/demo/jaxrs/client/CodeFirstRestTemplateJaxrs.java
index fc33127..b44dd45 100644
--- 
a/demo/demo-jaxrs/jaxrs-client/src/main/java/org/apache/servicecomb/demo/jaxrs/client/CodeFirstRestTemplateJaxrs.java
+++ 
b/demo/demo-jaxrs/jaxrs-client/src/main/java/org/apache/servicecomb/demo/jaxrs/client/CodeFirstRestTemplateJaxrs.java
@@ -118,6 +118,6 @@ public class CodeFirstRestTemplateJaxrs extends 
CodeFirstRestTemplate {
   }
 }
 TestMgr.check(404, exception.getRawStatusCode());
-TestM

[servicecomb-java-chassis] branch master updated: [SCB-2158] optimize exception log

2020-12-09 Thread wujimin
This is an automated email from the ASF dual-hosted git repository.

wujimin 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 d1983e5  [SCB-2158] optimize exception log
d1983e5 is described below

commit d1983e557605ada80172488553dfe6cd15b39147
Author: wujimin 
AuthorDate: Thu Dec 10 01:49:57 2020 +0800

[SCB-2158] optimize exception log
---
 .../servicecomb/core/exception/Exceptions.java   |  8 
 .../converter/DefaultExceptionConverter.java |  4 ++--
 .../core/filter/impl/ProducerOperationFilter.java| 20 ++--
 .../core/provider/consumer/InvokerUtils.java |  9 -
 .../provider/pojo/FilterInvocationCaller.java| 11 +++
 5 files changed, 31 insertions(+), 21 deletions(-)

diff --git 
a/core/src/main/java/org/apache/servicecomb/core/exception/Exceptions.java 
b/core/src/main/java/org/apache/servicecomb/core/exception/Exceptions.java
index fa6115f..51b6e8a 100644
--- a/core/src/main/java/org/apache/servicecomb/core/exception/Exceptions.java
+++ b/core/src/main/java/org/apache/servicecomb/core/exception/Exceptions.java
@@ -36,8 +36,12 @@ import 
org.apache.servicecomb.foundation.common.utils.SPIServiceUtils;
 import org.apache.servicecomb.swagger.invocation.Response;
 import org.apache.servicecomb.swagger.invocation.exception.ExceptionFactory;
 import org.apache.servicecomb.swagger.invocation.exception.InvocationException;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 
 public final class Exceptions {
+  private static final Logger LOGGER = 
LoggerFactory.getLogger(Exceptions.class);
+
   @SuppressWarnings("unchecked")
   private static final List> CONVERTERS = 
SPIServiceUtils
   .getOrLoadSortedService(ExceptionConverter.class).stream()
@@ -108,6 +112,10 @@ public final class Exceptions {
   public static Response exceptionToResponse(@Nullable Invocation invocation, 
Throwable exception,
   StatusType genericStatus) {
 InvocationException invocationException = Exceptions.convert(invocation, 
exception, genericStatus);
+if (invocation != null) {
+  LOGGER.error("failed to process {} invocation, operation={}.",
+  invocation.getInvocationType(), 
invocation.getMicroserviceQualifiedName(), invocationException);
+}
 return Response.status(invocationException.getStatus())
 .entity(invocationException.getErrorData());
   }
diff --git 
a/core/src/main/java/org/apache/servicecomb/core/exception/converter/DefaultExceptionConverter.java
 
b/core/src/main/java/org/apache/servicecomb/core/exception/converter/DefaultExceptionConverter.java
index ef1777f..b48bdb4 100644
--- 
a/core/src/main/java/org/apache/servicecomb/core/exception/converter/DefaultExceptionConverter.java
+++ 
b/core/src/main/java/org/apache/servicecomb/core/exception/converter/DefaultExceptionConverter.java
@@ -54,13 +54,13 @@ public class DefaultExceptionConverter implements 
ExceptionConverter
 
   @Override
   public InvocationException convert(@Nullable Invocation invocation, 
Throwable throwable, StatusType genericStatus) {
-LOGGER.error("convert unknown exception to InvocationException.", 
throwable);
-
 String msg = throwable.getMessage();
 if (msg == null) {
   msg = "Unexpected exception when processing.";
 }
 
+LOGGER.error("convert unknown exception({}) to InvocationException, 
message={}.",
+throwable.getClass().getName(), msg);
 return new InvocationException(genericStatus, 
ExceptionConverter.getGenericCode(genericStatus),
 msg, throwable);
   }
diff --git 
a/core/src/main/java/org/apache/servicecomb/core/filter/impl/ProducerOperationFilter.java
 
b/core/src/main/java/org/apache/servicecomb/core/filter/impl/ProducerOperationFilter.java
index 6b58df4..1695ba8 100644
--- 
a/core/src/main/java/org/apache/servicecomb/core/filter/impl/ProducerOperationFilter.java
+++ 
b/core/src/main/java/org/apache/servicecomb/core/filter/impl/ProducerOperationFilter.java
@@ -30,7 +30,6 @@ import 
org.apache.servicecomb.foundation.common.utils.AsyncUtils;
 import org.apache.servicecomb.swagger.engine.SwaggerProducerOperation;
 import org.apache.servicecomb.swagger.invocation.Response;
 import org.apache.servicecomb.swagger.invocation.context.ContextUtils;
-import org.apache.servicecomb.swagger.invocation.exception.InvocationException;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
@@ -48,7 +47,7 @@ public class ProducerOperationFilter implements Filter {
 Object[] args = invocation.toProducerArguments();
 return invoke(invocation, instance, method, args)
 .thenApply(result -> convertResultToResponse(invocation, 
producerOperation, result))
-.whenComplete((response, throwable) -> whenComplete(invocation, 
throwable));
+.when

[servicecomb-java-chassis] branch master updated: [SCB-2152] allow pojo invoker process by filter chain

2020-12-09 Thread wujimin
This is an automated email from the ASF dual-hosted git repository.

wujimin 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 69ba8f2  [SCB-2152] allow pojo invoker process by filter chain
69ba8f2 is described below

commit 69ba8f2e27a0d2924133bb7a5dfda15225439411
Author: wujimin 
AuthorDate: Tue Dec 8 12:36:48 2020 +0800

[SCB-2152] allow pojo invoker process by filter chain
---
 .../org/apache/servicecomb/core/Invocation.java|  2 +-
 .../core/filter/FilterChainsManager.java   | 25 +
 .../core/invocation/InvocationFactory.java | 11 ++--
 .../core/provider/consumer/InvokerUtils.java   | 26 +
 core/src/main/resources/microservice.yaml  |  9 ++--
 .../servicecomb/it/extend/engine/ITInvoker.java| 12 +++--
 .../provider/pojo/FilterInvocationCaller.java  | 45 
 .../provider/pojo/HandlerInvocationCaller.java | 61 ++
 .../provider/pojo/InvocationCaller.java| 24 +
 .../apache/servicecomb/provider/pojo/Invoker.java  | 55 ++-
 ...oInvocationCreator.java => PojoInvocation.java} | 22 
 .../provider/pojo/PojoInvocationCreator.java   | 22 
 .../pojo/definition/PojoConsumerOperationMeta.java | 12 -
 13 files changed, 235 insertions(+), 91 deletions(-)

diff --git a/core/src/main/java/org/apache/servicecomb/core/Invocation.java 
b/core/src/main/java/org/apache/servicecomb/core/Invocation.java
index 233e270..ae35727 100644
--- a/core/src/main/java/org/apache/servicecomb/core/Invocation.java
+++ b/core/src/main/java/org/apache/servicecomb/core/Invocation.java
@@ -64,7 +64,7 @@ public class Invocation extends SwaggerInvocation {
 return 
SPIServiceUtils.getPriorityHighestServices(TraceIdGenerator::getName, 
TraceIdGenerator.class);
   }
 
-  private ReferenceConfig referenceConfig;
+  protected ReferenceConfig referenceConfig;
 
   private InvocationRuntimeType invocationRuntimeType;
 
diff --git 
a/core/src/main/java/org/apache/servicecomb/core/filter/FilterChainsManager.java
 
b/core/src/main/java/org/apache/servicecomb/core/filter/FilterChainsManager.java
index 2a8f555..125d1f7 100644
--- 
a/core/src/main/java/org/apache/servicecomb/core/filter/FilterChainsManager.java
+++ 
b/core/src/main/java/org/apache/servicecomb/core/filter/FilterChainsManager.java
@@ -25,13 +25,11 @@ import java.util.Arrays;
 import java.util.Collection;
 import java.util.Collections;
 import java.util.List;
-import java.util.Locale;
 import java.util.Map.Entry;
 
 import org.apache.servicecomb.core.SCBEngine;
 import org.apache.servicecomb.core.filter.config.FilterChainsConfig;
 import org.apache.servicecomb.core.filter.config.TransportFiltersConfig;
-import org.apache.servicecomb.swagger.invocation.InvocationType;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.beans.factory.annotation.Value;
 import org.springframework.stereotype.Component;
@@ -110,23 +108,24 @@ public class FilterChainsManager {
   }
 
   public String collectResolvedChains() {
-// currently not implement consumer filter chain, so not print consumer 
information now.
-
 StringBuilder sb = new StringBuilder();
-//appendLine(sb, "consumer filters: %s", 
filterManager.getConsumerFilters());
-appendLine(sb, "producer filters: %s", filterManager.getProducerFilters());
-//collectChainsByInvocationType(sb, consumerChainsConfig, CONSUMER);
-collectChainsByInvocationType(sb, producerChainsConfig, PRODUCER);
+
+appendLine(sb, "consumer: ");
+appendLine(sb, "  filters: %s", filterManager.getConsumerFilters());
+collectChainsByInvocationType(sb, consumerChainsConfig);
+
+appendLine(sb, "producer: ");
+appendLine(sb, "  filters: %s", filterManager.getProducerFilters());
+collectChainsByInvocationType(sb, producerChainsConfig);
 
 return deleteLast(sb, 1).toString();
   }
 
-  private void collectChainsByInvocationType(StringBuilder sb, 
FilterChainsConfig chainsConfig,
-  InvocationType invocationType) {
-appendLine(sb, "%s chains:", invocationType.name().toLowerCase(Locale.US));
-appendLine(sb, "  default: %s", chainsConfig.getDefaultChain());
+  private void collectChainsByInvocationType(StringBuilder sb, 
FilterChainsConfig chainsConfig) {
+appendLine(sb, "  chains:");
+appendLine(sb, "default: %s", chainsConfig.getDefaultChain());
 for (Entry> entry : 
chainsConfig.getMicroserviceChains().entrySet()) {
-  appendLine(sb, "  %s: %s", entry.getKey(), entry.getValue());
+  appendLine(sb, "%s: %s", entry.getKey(), entry.getValue());
 }
   }
 
diff --git 
a/core/src/main/java/org/apache/servicecomb/core/invocation/Invo

[servicecomb-java-chassis] branch master updated: [SCB-2157] enhance AsyncUtils.tryCatch

2020-12-09 Thread wujimin
This is an automated email from the ASF dual-hosted git repository.

wujimin 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 c4ebd3b  [SCB-2157] enhance AsyncUtils.tryCatch
c4ebd3b is described below

commit c4ebd3baa132ff1cfa3f4a60301fb45035798c8e
Author: wujimin 
AuthorDate: Wed Dec 9 22:58:31 2020 +0800

[SCB-2157] enhance AsyncUtils.tryCatch
---
 .../java/org/apache/servicecomb/core/filter/FilterNode.java   |  2 +-
 .../servicecomb/core/invocation/ProducerInvocationFlow.java   |  6 ++
 .../servicecomb/foundation/common/utils/AsyncUtils.java   | 11 ++-
 3 files changed, 13 insertions(+), 6 deletions(-)

diff --git 
a/core/src/main/java/org/apache/servicecomb/core/filter/FilterNode.java 
b/core/src/main/java/org/apache/servicecomb/core/filter/FilterNode.java
index a6f817c..31ac18a 100644
--- a/core/src/main/java/org/apache/servicecomb/core/filter/FilterNode.java
+++ b/core/src/main/java/org/apache/servicecomb/core/filter/FilterNode.java
@@ -82,7 +82,7 @@ public class FilterNode {
   return nextNode.onFilter(invocation);
 }
 
-return AsyncUtils.tryCatch(() -> filter.onFilter(invocation, nextNode))
+return AsyncUtils.tryCatchSupplierFuture(() -> filter.onFilter(invocation, 
nextNode))
 .thenApply(this::rethrowExceptionInResponse);
   }
 
diff --git 
a/core/src/main/java/org/apache/servicecomb/core/invocation/ProducerInvocationFlow.java
 
b/core/src/main/java/org/apache/servicecomb/core/invocation/ProducerInvocationFlow.java
index 0d0669f..847936d 100644
--- 
a/core/src/main/java/org/apache/servicecomb/core/invocation/ProducerInvocationFlow.java
+++ 
b/core/src/main/java/org/apache/servicecomb/core/invocation/ProducerInvocationFlow.java
@@ -16,10 +16,9 @@
  */
 package org.apache.servicecomb.core.invocation;
 
-import java.util.concurrent.CompletableFuture;
-
 import org.apache.servicecomb.core.Invocation;
 import org.apache.servicecomb.core.exception.Exceptions;
+import org.apache.servicecomb.foundation.common.utils.AsyncUtils;
 import org.apache.servicecomb.foundation.vertx.http.HttpServletRequestEx;
 import org.apache.servicecomb.foundation.vertx.http.HttpServletResponseEx;
 import org.apache.servicecomb.swagger.invocation.Response;
@@ -49,8 +48,7 @@ public abstract class ProducerInvocationFlow {
   }
 
   public void run() {
-CompletableFuture.completedFuture(null)
-.thenApply(v -> invocationCreator.create())
+AsyncUtils.tryCatchSupplier(invocationCreator::create)
 .exceptionally(this::sendCreateInvocationException)
 .thenAccept(this::tryRunInvocation);
   }
diff --git 
a/foundations/foundation-common/src/main/java/org/apache/servicecomb/foundation/common/utils/AsyncUtils.java
 
b/foundations/foundation-common/src/main/java/org/apache/servicecomb/foundation/common/utils/AsyncUtils.java
index 3030f88..8f4780e 100644
--- 
a/foundations/foundation-common/src/main/java/org/apache/servicecomb/foundation/common/utils/AsyncUtils.java
+++ 
b/foundations/foundation-common/src/main/java/org/apache/servicecomb/foundation/common/utils/AsyncUtils.java
@@ -23,7 +23,16 @@ public final class AsyncUtils {
   private AsyncUtils() {
   }
 
-  public static  CompletableFuture 
tryCatch(Supplier> supplier) {
+  public static  CompletableFuture tryCatchSupplier(Supplier 
supplier) {
+try {
+  T value = supplier.get();
+  return CompletableFuture.completedFuture(value);
+} catch (Throwable e) {
+  return completeExceptionally(e);
+}
+  }
+
+  public static  CompletableFuture 
tryCatchSupplierFuture(Supplier> supplier) {
 try {
   return supplier.get();
 } catch (Throwable e) {



[servicecomb-java-chassis] branch master updated: [SCB-2156] add HighwayClientFilter

2020-12-09 Thread wujimin
This is an automated email from the ASF dual-hosted git repository.

wujimin 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 84ee131  [SCB-2156] add HighwayClientFilter
84ee131 is described below

commit 84ee131f3ce003d123b3ac1776074fb2993aba4f
Author: wujimin 
AuthorDate: Wed Dec 9 22:23:35 2020 +0800

[SCB-2156] add HighwayClientFilter
---
 .../org/apache/servicecomb/core/Invocation.java| 12 +++
 .../core/definition/InvocationRuntimeType.java |  4 +-
 .../org/apache/servicecomb/core/filter/Filter.java | 33 
 .../core/provider/consumer/InvokerUtils.java   | 12 +++
 .../client/CodeFirstRestTemplateSpringmvc.java | 11 +--
 .../foundation/common/utils/AsyncUtils.java|  8 ++
 .../vertx/client/tcp/TcpClientConnection.java  | 13 
 .../foundation/vertx/http/DownloadUtils.java   |  2 +-
 .../foundation/vertx/stream/PumpCommon.java| 12 +--
 .../servicecomb/tests/tracing/TracingTestBase.java |  6 +-
 .../servicecomb/tests/tracing/TracingTestMain.java |  1 -
 .../tracing/ZipkinTracingIntegrationTest.java  |  5 +-
 .../transport/highway/HighwayClient.java   | 34 -
 .../transport/highway/HighwayClientFilter.java | 89 ++
 .../transport/highway/HighwayFilterProvider.java   |  1 +
 .../transport/highway/HighwayTransport.java|  5 ++
 .../transport/rest/client/RestClientDecoder.java   | 10 ++-
 .../transport/rest/client/RestClientEncoder.java   |  6 +-
 .../transport/rest/client/RestClientSender.java|  8 +-
 .../rest/client/RestClientSenderFilter.java|  7 +-
 20 files changed, 222 insertions(+), 57 deletions(-)

diff --git a/core/src/main/java/org/apache/servicecomb/core/Invocation.java 
b/core/src/main/java/org/apache/servicecomb/core/Invocation.java
index 7b414e8..233e270 100644
--- a/core/src/main/java/org/apache/servicecomb/core/Invocation.java
+++ b/core/src/main/java/org/apache/servicecomb/core/Invocation.java
@@ -23,6 +23,7 @@ import java.util.Collections;
 import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
+import java.util.concurrent.CompletableFuture;
 import java.util.concurrent.Executor;
 import java.util.concurrent.atomic.AtomicLong;
 
@@ -39,10 +40,12 @@ import 
org.apache.servicecomb.core.event.InvocationRunInExecutorFinishEvent;
 import org.apache.servicecomb.core.event.InvocationRunInExecutorStartEvent;
 import org.apache.servicecomb.core.event.InvocationStartEvent;
 import org.apache.servicecomb.core.invocation.InvocationStageTrace;
+import org.apache.servicecomb.core.provider.consumer.InvokerUtils;
 import org.apache.servicecomb.core.provider.consumer.ReferenceConfig;
 import org.apache.servicecomb.core.tracing.TraceIdGenerator;
 import org.apache.servicecomb.core.tracing.TraceIdLogger;
 import org.apache.servicecomb.foundation.common.event.EventManager;
+import org.apache.servicecomb.foundation.common.utils.AsyncUtils;
 import org.apache.servicecomb.foundation.common.utils.SPIServiceUtils;
 import org.apache.servicecomb.foundation.vertx.http.HttpServletRequestEx;
 import org.apache.servicecomb.swagger.invocation.AsyncResponse;
@@ -466,4 +469,13 @@ public class Invocation extends SwaggerInvocation {
   public boolean isThirdPartyInvocation() {
 return referenceConfig.is3rdPartyService();
   }
+
+  // ensure sync consumer invocation response flow not run in eventLoop
+  public  CompletableFuture 
optimizeSyncConsumerThread(CompletableFuture future) {
+if (sync && !InvokerUtils.isInEventLoop()) {
+  AsyncUtils.waitQuietly(future);
+}
+
+return future;
+  }
 }
diff --git 
a/core/src/main/java/org/apache/servicecomb/core/definition/InvocationRuntimeType.java
 
b/core/src/main/java/org/apache/servicecomb/core/definition/InvocationRuntimeType.java
index 98624d2..ca40852 100644
--- 
a/core/src/main/java/org/apache/servicecomb/core/definition/InvocationRuntimeType.java
+++ 
b/core/src/main/java/org/apache/servicecomb/core/definition/InvocationRuntimeType.java
@@ -30,9 +30,9 @@ import com.fasterxml.jackson.databind.type.TypeFactory;
 /**
  * An InvocationRuntimeType indicates the associated java type information of 
this invocation.
  *
- * For provider, java type information may NOT be changed for each invocation.
+ * For producer, java type information NOT be changed for each invocation.
  *
- * For Consumer, java type information may be changed for each invocation, or 
not available when in edge or
+ * For Consumer, java type information depend on method signature, or not 
available when in edge or
  * invoked by raw type way like RestTemplate or InvokerUtils.
  */
 public class InvocationRuntimeType {
diff --git a/core/src/main/java/org/apache/servicecomb/core/filter/Filter.java 
b/core/src/main/java/org/apache/servicecomb/core/filter/Filter.java
index 017f3f8..da6367f 100644
--- a/core/src/main/

[servicecomb-java-chassis] branch master updated (751f75d -> afd1d37)

2020-12-09 Thread wujimin
This is an automated email from the ASF dual-hosted git repository.

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


from 751f75d  [SCB-2070]when main is default package(empty), start up will 
fail
 add afd1d37  [SCB-2154] fix Response.isSuccessed typo

No new revisions were added by this update.

Summary of changes:
 .../apache/servicecomb/core/provider/consumer/InvokerUtils.java  | 2 +-
 core/src/test/java/org/apache/servicecomb/core/TestConfig.java   | 4 ++--
 .../org/apache/servicecomb/bizkeeper/TestBizkeeperHandler.java   | 4 ++--
 .../main/java/org/apache/servicecomb/provider/pojo/Invoker.java  | 6 +++---
 .../provider/springmvc/reference/CseClientHttpRequest.java   | 2 +-
 .../springmvc/reference/async/CseAsyncClientHttpRequest.java | 5 ++---
 .../java/org/apache/servicecomb/swagger/invocation/Response.java | 9 +++--
 .../src/test/java/org/apache/servicecomb/core/TestResponse.java  | 2 +-
 .../servicecomb/transport/rest/client/RestClientDecoder.java | 2 +-
 9 files changed, 20 insertions(+), 16 deletions(-)



[servicecomb-java-chassis] branch master updated: [SCB-2070]when main is default package(empty), start up will fail

2020-12-09 Thread wujimin
This is an automated email from the ASF dual-hosted git repository.

wujimin 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 751f75d  [SCB-2070]when main is default package(empty), start up will 
fail
751f75d is described below

commit 751f75d804e22b5a9ebd96f47caa695bde99d841
Author: liubao 
AuthorDate: Wed Dec 9 15:51:25 2020 +0800

[SCB-2070]when main is default package(empty), start up will fail
---
 .../foundation/common/utils/BeanUtils.java |  2 +-
 .../src/test/java/TestNoPackageMain.java   | 42 ++
 2 files changed, 43 insertions(+), 1 deletion(-)

diff --git 
a/foundations/foundation-common/src/main/java/org/apache/servicecomb/foundation/common/utils/BeanUtils.java
 
b/foundations/foundation-common/src/main/java/org/apache/servicecomb/foundation/common/utils/BeanUtils.java
index 0a45452..fc7606e 100644
--- 
a/foundations/foundation-common/src/main/java/org/apache/servicecomb/foundation/common/utils/BeanUtils.java
+++ 
b/foundations/foundation-common/src/main/java/org/apache/servicecomb/foundation/common/utils/BeanUtils.java
@@ -105,7 +105,7 @@ public final class BeanUtils {
 
 // add main class package
 for (Class mainClass : new Class[] {JvmUtils.findMainClass(), 
JvmUtils.findMainClassByStackTrace()}) {
-  if (mainClass != null) {
+  if (mainClass != null && mainClass.getPackage() != null) {
 String pkg = mainClass.getPackage().getName();
 addItem(scanPackags, pkg);
   }
diff --git a/foundations/foundation-common/src/test/java/TestNoPackageMain.java 
b/foundations/foundation-common/src/test/java/TestNoPackageMain.java
new file mode 100644
index 000..75fe878
--- /dev/null
+++ b/foundations/foundation-common/src/test/java/TestNoPackageMain.java
@@ -0,0 +1,42 @@
+/*
+ * 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.foundation.common.utils.BeanUtils;
+import org.apache.servicecomb.foundation.common.utils.JvmUtils;
+import org.junit.Assert;
+import org.junit.Test;
+
+import mockit.Expectations;
+
+public class TestNoPackageMain {
+  @Test
+  public void prepareServiceCombScanPackage_mainNoPackage() {
+System.clearProperty(BeanUtils.SCB_SCAN_PACKAGE);
+new Expectations(JvmUtils.class) {
+  {
+JvmUtils.findMainClass();
+result = TestNoPackageMain.class;
+JvmUtils.findMainClassByStackTrace();
+result = null;
+  }
+};
+
+BeanUtils.prepareServiceCombScanPackage();
+
+Assert.assertEquals("org.apache.servicecomb", 
System.getProperty(BeanUtils.SCB_SCAN_PACKAGE));
+  }
+}



[servicecomb-java-chassis] 02/02: [SCB-2145]fix review comments

2020-12-06 Thread wujimin
This is an automated email from the ASF dual-hosted git repository.

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

commit ba4fb37b6ab8bd3a6c3d0693f295d99a94879838
Author: liubao 
AuthorDate: Sat Dec 5 11:10:58 2020 +0800

[SCB-2145]fix review comments
---
 .../localregistry/LocalRegistryStore.java  | 12 +---
 .../client/LocalServiceRegistryClientImpl.java | 34 +-
 .../client/LocalServiceRegistryClientImplTest.java |  7 +++--
 3 files changed, 19 insertions(+), 34 deletions(-)

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 98c43f4..4e6cba5 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
@@ -118,20 +118,10 @@ public class LocalRegistryStore {
   while (urls.hasMoreElements()) {
 URL url = urls.nextElement();
 
-InputStream is = null;
-try {
-  is = url.openStream();
+try (InputStream is = url.openStream()) {
   if (is != null) {
 beans.addAll(initFromData(is));
   }
-} finally {
-  if (is != null) {
-try {
-  is.close();
-} catch (IOException e) {
-  // nothing to do
-}
-  }
 }
   }
 } catch (IOException e) {
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 202e301..f2827b1 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
@@ -51,6 +51,7 @@ import 
org.apache.servicecomb.serviceregistry.client.http.Holder;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
+import com.google.common.annotations.VisibleForTesting;
 import com.google.common.base.Charsets;
 import com.google.common.hash.Hashing;
 
@@ -78,33 +79,26 @@ public class LocalServiceRegistryClientImpl implements 
ServiceRegistryClient {
   return;
 }
 
-InputStream is = 
this.getClass().getClassLoader().getResourceAsStream(localFile);
-if (is == null) {
-  return;
+try {
+  try (InputStream is = 
this.getClass().getClassLoader().getResourceAsStream(localFile)) {
+if (is == null) {
+  return;
+}
+initFromData(is);
+  }
+} catch (IOException e) {
+  LOGGER.error("", e);
 }
-
-initFromData(is);
   }
 
-  public LocalServiceRegistryClientImpl(InputStream is) {
+  @VisibleForTesting
+  LocalServiceRegistryClientImpl(InputStream is) {
 initFromData(is);
   }
 
-  public LocalServiceRegistryClientImpl(Map data) {
-initFromData(data);
-  }
-
   private void initFromData(InputStream is) {
-try {
-  Map data = YAMLUtil.yaml2Properties(is);
-  initFromData(data);
-} finally {
-  try {
-is.close();
-  } catch (IOException e) {
-LOGGER.error("", e);
-  }
-}
+Map data = YAMLUtil.yaml2Properties(is);
+initFromData(data);
   }
 
   private void initFromData(Map data) {
diff --git 
a/service-registry/registry-service-center/src/test/java/org/apache/servicecomb/serviceregistry/client/LocalServiceRegistryClientImplTest.java
 
b/service-registry/registry-service-center/src/test/java/org/apache/servicecomb/serviceregistry/client/LocalServiceRegistryClientImplTest.java
index bcebe82..b50344b 100644
--- 
a/service-registry/registry-service-center/src/test/java/org/apache/servicecomb/serviceregistry/client/LocalServiceRegistryClientImplTest.java
+++ 
b/service-registry/registry-service-center/src/test/java/org/apache/servicecomb/serviceregistry/client/LocalServiceRegistryClientImplTest.java
@@ -49,10 +49,11 @@ public class LocalServiceRegistryClientImplTest {
   public ExpectedException expectedException = ExpectedException.none();
 
   @Before
-  public void loadRegistryFile() {
+  public void loadRegistryFile() throws Exception {
 ClassLoader loader = Thread.currentThread().getContextClassLoader();
-InputStream is = loader.getResourceAsStream("registry.yaml");
-registryClient = new LocalServiceRegistryClientImpl(is);
+try (InputStream is = loader.getResourceAsStream("registry.yaml")) {
+  registryCli

[servicecomb-java-chassis] branch master updated: [SCB-2135]provider flow control support for operation to any client service

2020-12-03 Thread wujimin
This is an automated email from the ASF dual-hosted git repository.

wujimin 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 3cb3649  [SCB-2135]provider flow control support for operation to any 
client service
3cb3649 is described below

commit 3cb36498ca5732767bb93818dde11ed407e48397
Author: liubao 
AuthorDate: Thu Dec 3 15:45:30 2020 +0800

[SCB-2135]provider flow control support for operation to any client service
---
 .../org/apache/servicecomb/core/SCBEngine.java |   3 +-
 .../demo/pojo/client/TestFlowControl.java  |  80 +
 .../src/main/resources/microservice.yaml   |  10 +-
 .../demo/pojo/server/FlowControlClientSchema.java  |  31 +
 .../demo/pojo/server/FlowControlSchema.java|  31 +
 .../src/main/resources/microservice.yaml   |  17 ++-
 .../java/org/apache/servicecomb/qps/Config.java|  30 +++--
 .../qps/ConsumerQpsFlowControlHandler.java |   4 +-
 .../qps/ProviderQpsFlowControlHandler.java |  11 +-
 .../servicecomb/qps/QpsControllerManager.java  | 115 ++
 .../qps/strategy/FixedWindowStrategy.java  |   2 +-
 .../qps/strategy/LeakyBucketStrategy.java  |   5 +-
 .../servicecomb/qps/QpsControllerManagerTest.java  | 129 +
 .../qps/TestConsumerQpsFlowControlHandler.java |   5 +-
 .../qps/TestProviderQpsFlowControlHandler.java |  10 +-
 .../provider/pojo/PojoConsumerMetaRefresher.java   |   3 +-
 .../swagger/invocation/response/ResponsesMeta.java |   3 +
 .../transport/highway/HighwayClient.java   |   3 +-
 .../rest/client/http/RestClientInvocation.java |   3 +-
 19 files changed, 355 insertions(+), 140 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 edf7645..44a912e 100644
--- a/core/src/main/java/org/apache/servicecomb/core/SCBEngine.java
+++ b/core/src/main/java/org/apache/servicecomb/core/SCBEngine.java
@@ -62,6 +62,7 @@ import 
org.apache.servicecomb.registry.consumer.MicroserviceVersions;
 import org.apache.servicecomb.registry.definition.MicroserviceNameParser;
 import org.apache.servicecomb.registry.swagger.SwaggerLoader;
 import org.apache.servicecomb.swagger.engine.SwaggerEnvironment;
+import org.apache.servicecomb.swagger.invocation.exception.CommonExceptionData;
 import org.apache.servicecomb.swagger.invocation.exception.InvocationException;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
@@ -498,7 +499,7 @@ public class SCBEngine {
   String message =
   "The request is rejected. Cannot process the request due to STATUS = 
" + currentStatus;
   LOGGER.warn(message);
-  throw new InvocationException(Status.SERVICE_UNAVAILABLE, message);
+  throw new InvocationException(Status.SERVICE_UNAVAILABLE, new 
CommonExceptionData(message));
 }
   }
 
diff --git 
a/demo/demo-pojo/pojo-client/src/main/java/org/apache/servicecomb/demo/pojo/client/TestFlowControl.java
 
b/demo/demo-pojo/pojo-client/src/main/java/org/apache/servicecomb/demo/pojo/client/TestFlowControl.java
new file mode 100644
index 000..abcd772
--- /dev/null
+++ 
b/demo/demo-pojo/pojo-client/src/main/java/org/apache/servicecomb/demo/pojo/client/TestFlowControl.java
@@ -0,0 +1,80 @@
+/*
+ * 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.demo.pojo.client;
+
+import java.util.concurrent.CountDownLatch;
+import java.util.concurrent.TimeUnit;
+import java.util.concurrent.atomic.AtomicBoolean;
+import java.util.function.Function;
+
+import org.apache.servicecomb.demo.CategorizedTestCase;
+import org.apache.servicecomb.demo.TestMgr;
+import org.apache.servicecomb.provider.pojo.RpcReference;
+import org.apache.servicecomb.swagger.invocation.exception.InvocationException;
+import org.springframework.stereotype.Component;
+
+@Component
+public class TestFlowControl implements CategorizedTestCase {
+  interface Client {
+int foo(int num);
+
+int bar(int num);
+  }
+
+  @RpcRefe

[servicecomb-java-chassis] branch 1.3.x updated: [SCB-2137]Upgrade Vert.x version to 3.9.4

2020-12-03 Thread wujimin
This is an automated email from the ASF dual-hosted git repository.

wujimin pushed a commit to branch 1.3.x
in repository https://gitbox.apache.org/repos/asf/servicecomb-java-chassis.git


The following commit(s) were added to refs/heads/1.3.x by this push:
 new fb97eb4  [SCB-2137]Upgrade Vert.x version to 3.9.4
fb97eb4 is described below

commit fb97eb45c2ffd4d5ba1fc8b1c1a97623bb9c3938
Author: liubao 
AuthorDate: Thu Dec 3 20:32:46 2020 +0800

[SCB-2137]Upgrade Vert.x version to 3.9.4
---
 .../codec/param/TestRestClientRequestImpl.java |   3 +-
 demo/perf/pom.xml  |  79 
 demo/perf/readme.MD|  45 ---
 .../org/apache/servicecomb/demo/perf/Impl.java |  81 -
 .../org/apache/servicecomb/demo/perf/Intf.java |  26 
 .../servicecomb/demo/perf/PerfConfiguration.java   | 133 -
 .../apache/servicecomb/demo/perf/PerfConsumer.java | 101 
 .../org/apache/servicecomb/demo/perf/PerfMain.java |  40 ---
 .../servicecomb/demo/perf/RedisClientUtils.java|  74 
 .../apache/servicecomb/demo/perf/RedisSession.java |  71 ---
 demo/perf/src/main/resources/logback.xml   |  29 -
 demo/perf/src/main/resources/microservice.yaml |  76 
 demo/pom.xml   |   1 -
 .../ConfigCenterConfigurationSourceImpl.java   |   2 +-
 .../config/client/ConfigCenterClient.java  |  48 
 .../main/java/io/vertx/core/impl/SyncContext.java  |   3 +-
 .../vertx/client/http/HttpClientPoolFactory.java   |  17 ++-
 .../vertx/TestAddressResolverConfig.java   |  32 ++---
 java-chassis-dependencies/default/pom.xml  |   2 +-
 java-chassis-distribution/src/release/LICENSE  |  10 +-
 .../metrics/core/TestVertxMetersInitializer.java   |  16 ++-
 .../serviceregistry/client/http/RestUtils.java |   3 +-
 .../client/http/WebsocketUtils.java|   6 +-
 .../transport/highway/HighwayServerVerticle.java   |  16 ++-
 .../highway/TestHighwayServerConnection.java   |   4 +-
 .../transport/highway/TestHighwayVerticle.java |   8 +-
 .../rest/client/http/RestClientInvocation.java |  12 --
 .../client/http/TestDefaultHttpClientFilter.java   |   9 +-
 .../transport/rest/vertx/RestServerVerticle.java   |  18 ++-
 .../rest/vertx/TestRestServerVerticle.java |  26 ++--
 30 files changed, 115 insertions(+), 876 deletions(-)

diff --git 
a/common/common-rest/src/test/java/org/apache/servicecomb/common/rest/codec/param/TestRestClientRequestImpl.java
 
b/common/common-rest/src/test/java/org/apache/servicecomb/common/rest/codec/param/TestRestClientRequestImpl.java
index 3e25612..0ae44b4 100644
--- 
a/common/common-rest/src/test/java/org/apache/servicecomb/common/rest/codec/param/TestRestClientRequestImpl.java
+++ 
b/common/common-rest/src/test/java/org/apache/servicecomb/common/rest/codec/param/TestRestClientRequestImpl.java
@@ -34,7 +34,6 @@ import com.google.common.collect.Multimap;
 
 import io.vertx.core.MultiMap;
 import io.vertx.core.buffer.Buffer;
-import io.vertx.core.http.CaseInsensitiveHeaders;
 import io.vertx.core.http.HttpClientRequest;
 import mockit.Deencapsulation;
 import mockit.Expectations;
@@ -60,7 +59,7 @@ public class TestRestClientRequestImpl {
   public void testCookie() throws Exception {
 HttpClientRequest request = new MockUp() {
 
-  MultiMap map = new CaseInsensitiveHeaders();
+  MultiMap map = MultiMap.caseInsensitiveMultiMap();
 
   @Mock
   public HttpClientRequest putHeader(CharSequence key, CharSequence val) {
diff --git a/demo/perf/pom.xml b/demo/perf/pom.xml
deleted file mode 100644
index b577bc3..000
--- a/demo/perf/pom.xml
+++ /dev/null
@@ -1,79 +0,0 @@
-
-
-
-http://maven.apache.org/POM/4.0.0; 
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance;
-  xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 
http://maven.apache.org/xsd/maven-4.0.0.xsd;>
-  4.0.0
-  
-org.apache.servicecomb.demo
-demo-parent
-1.3.2-SNAPSHOT
-  
-  perf
-  Java Chassis::Demo::Perf
-
-  
-
-  org.apache.servicecomb
-  provider-pojo
-
-
-  org.apache.servicecomb
-  provider-springmvc
-
-
-  org.apache.servicecomb
-  transport-highway
-
-
-  org.apache.servicecomb
-  transport-rest-vertx
-
-
-  org.apache.servicecomb
-  inspector
-
-
-
-  ch.qos.logback
-  logback-classic
-
-
-
-  io.vertx
-  vertx-redis-client
-  ${vertx.version}
-
-
-  org.apache.servicecomb
-  metrics-core
-
-  
-
-  
-org.apache.servicecomb.demo.perf.PerfMain
-  
-  
-
-  
-org.apache.maven.plugins
-maven-dependency-plugin
-  
-
-  
-
\ No newline at end of file
diff --git a/demo/perf/readme.MD b/demo/perf/readme.MD
deleted file mode 100644
index 00062ab..000
--- a/demo/p

[servicecomb-docs] branch master updated: Update metrics.md

2020-11-30 Thread wujimin
This is an automated email from the ASF dual-hosted git repository.

wujimin pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/servicecomb-docs.git


The following commit(s) were added to refs/heads/master by this push:
 new 2e739e2  Update metrics.md
2e739e2 is described below

commit 2e739e2c9f64716bc55ee03b01a937ee36d12129
Author: bale836 
AuthorDate: Tue Dec 1 10:41:32 2020 +0800

Update metrics.md

fix mistake: "AverageTime divided by count to get the average latency" to 
"totalTime divided by count to get the average latency"
---
 java-chassis-reference/en_US/docs/general-development/metrics.md | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/java-chassis-reference/en_US/docs/general-development/metrics.md 
b/java-chassis-reference/en_US/docs/general-development/metrics.md
index b846991..b319fc2 100644
--- a/java-chassis-reference/en_US/docs/general-development/metrics.md
+++ b/java-chassis-reference/en_US/docs/general-development/metrics.md
@@ -470,7 +470,7 @@ will get json data in the following format:
 totalTime
 In seconds
 totalTime=The total duration of the call in the current period 
(seconds)
-AverageTime divided by count to get the average latency
+totalTime divided by count to get the average latency
   
   
 max



[servicecomb-java-chassis] 01/03: [#2081]add a test case for query with List

2020-11-26 Thread wujimin
This is an automated email from the ASF dual-hosted git repository.

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

commit 96afde535ff4acd6f224a40a636f15dddbd4baf6
Author: liubao 
AuthorDate: Thu Nov 26 18:02:31 2020 +0800

[#2081]add a test case for query with List
---
 .../jaxrs/client/TestQueryParamWithListSchema.java | 154 +
 .../jaxrs/server/QueryParamWithListSchema.java |  62 +
 2 files changed, 216 insertions(+)

diff --git 
a/demo/demo-jaxrs/jaxrs-client/src/main/java/org/apache/servicecomb/demo/jaxrs/client/TestQueryParamWithListSchema.java
 
b/demo/demo-jaxrs/jaxrs-client/src/main/java/org/apache/servicecomb/demo/jaxrs/client/TestQueryParamWithListSchema.java
new file mode 100644
index 000..84ab80a
--- /dev/null
+++ 
b/demo/demo-jaxrs/jaxrs-client/src/main/java/org/apache/servicecomb/demo/jaxrs/client/TestQueryParamWithListSchema.java
@@ -0,0 +1,154 @@
+/*
+ * 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.demo.jaxrs.client;
+
+import org.apache.servicecomb.demo.CategorizedTestCase;
+import org.apache.servicecomb.demo.TestMgr;
+import org.apache.servicecomb.provider.springmvc.reference.RestTemplateBuilder;
+import org.springframework.stereotype.Component;
+import org.springframework.web.client.RestTemplate;
+
+@Component
+public class TestQueryParamWithListSchema implements CategorizedTestCase {
+  private RestTemplate restTemplate = RestTemplateBuilder.create();
+
+  @Override
+  public void testAllTransport() throws Exception {
+testMulti();
+testCSV();
+testSSV();
+testTSV();
+testPipes();
+  }
+
+  @Override
+  public void testRestTransport() throws Exception {
+testMultiRest();
+testCSVRest();
+testSSVRest();
+testTSVRest();
+testPipesRest();
+  }
+
+  @Override
+  // highway do not handle empty/default/null
+  public void testHighwayTransport() throws Exception {
+testMultiHighway();
+testCSVHighway();
+testSSVHighway();
+testTSVHighway();
+testPipesHighway();
+  }
+
+  private void testCSVHighway() {
+TestMgr.check("null",
+restTemplate.getForObject("cse://jaxrs/queryList/queryListCSV?", 
String.class));
+  }
+
+  private void testCSVRest() {
+TestMgr.check("[]",
+restTemplate.getForObject("cse://jaxrs/queryList/queryListCSV?", 
String.class));
+  }
+
+  private void testSSV() {
+TestMgr.check("[1, 2]",
+
restTemplate.getForObject("cse://jaxrs/queryList/queryListSSV?queryList=1%202", 
String.class));
+TestMgr.check("[, ]",
+
restTemplate.getForObject("cse://jaxrs/queryList/queryListSSV?queryList=%20", 
String.class));
+TestMgr.check("[]",
+
restTemplate.getForObject("cse://jaxrs/queryList/queryListSSV?queryList=", 
String.class));
+  }
+
+  private void testTSVHighway() {
+TestMgr.check("null",
+restTemplate.getForObject("cse://jaxrs/queryList/queryListTSV?", 
String.class));
+  }
+
+  private void testTSVRest() {
+TestMgr.check("[]",
+restTemplate.getForObject("cse://jaxrs/queryList/queryListTSV?", 
String.class));
+  }
+
+  private void testTSV() {
+TestMgr.check("[1, 2]",
+restTemplate
+.getForObject("cse://jaxrs/queryList/queryListTSV?queryList={1}", 
String.class, "1\t2"));
+TestMgr.check("[, ]",
+
restTemplate.getForObject("cse://jaxrs/queryList/queryListTSV?queryList={1}", 
String.class, "\t"));
+TestMgr.check("[]",
+
restTemplate.getForObject("cse://jaxrs/queryList/queryListTSV?queryList=", 
String.class));
+  }
+
+  private void testPipesHighway() {
+TestMgr.check("null",
+restTemplate.getForObject("cse://jaxrs/queryList/queryListPIPES?", 
String.class));
+  }
+
+  private void testPipesRest() {
+TestMgr.check("[]",
+restTemplate.getForObject("cse://jaxrs/queryList/queryListPIPES?", 
String.class));

[servicecomb-java-chassis] 03/03: [SCB-2131]fix review comment

2020-11-26 Thread wujimin
This is an automated email from the ASF dual-hosted git repository.

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

commit f33483f6ceea68ae36faeb15da9b18f48f2f2b06
Author: liubao 
AuthorDate: Fri Nov 27 09:43:46 2020 +0800

[SCB-2131]fix review comment
---
 .../jaxrs/client/TestQueryParamWithListSchema.java | 40 +++---
 .../jaxrs/server/QueryParamWithListSchema.java | 10 +++---
 2 files changed, 25 insertions(+), 25 deletions(-)

diff --git 
a/demo/demo-jaxrs/jaxrs-client/src/main/java/org/apache/servicecomb/demo/jaxrs/client/TestQueryParamWithListSchema.java
 
b/demo/demo-jaxrs/jaxrs-client/src/main/java/org/apache/servicecomb/demo/jaxrs/client/TestQueryParamWithListSchema.java
index 84ab80a..40c9b8d 100644
--- 
a/demo/demo-jaxrs/jaxrs-client/src/main/java/org/apache/servicecomb/demo/jaxrs/client/TestQueryParamWithListSchema.java
+++ 
b/demo/demo-jaxrs/jaxrs-client/src/main/java/org/apache/servicecomb/demo/jaxrs/client/TestQueryParamWithListSchema.java
@@ -61,16 +61,16 @@ public class TestQueryParamWithListSchema implements 
CategorizedTestCase {
   }
 
   private void testCSVRest() {
-TestMgr.check("[]",
+TestMgr.check("0:[]",
 restTemplate.getForObject("cse://jaxrs/queryList/queryListCSV?", 
String.class));
   }
 
   private void testSSV() {
-TestMgr.check("[1, 2]",
+TestMgr.check("2:[1, 2]",
 
restTemplate.getForObject("cse://jaxrs/queryList/queryListSSV?queryList=1%202", 
String.class));
-TestMgr.check("[, ]",
+TestMgr.check("2:[, ]",
 
restTemplate.getForObject("cse://jaxrs/queryList/queryListSSV?queryList=%20", 
String.class));
-TestMgr.check("[]",
+TestMgr.check("1:[]",
 
restTemplate.getForObject("cse://jaxrs/queryList/queryListSSV?queryList=", 
String.class));
   }
 
@@ -80,17 +80,17 @@ public class TestQueryParamWithListSchema implements 
CategorizedTestCase {
   }
 
   private void testTSVRest() {
-TestMgr.check("[]",
+TestMgr.check("0:[]",
 restTemplate.getForObject("cse://jaxrs/queryList/queryListTSV?", 
String.class));
   }
 
   private void testTSV() {
-TestMgr.check("[1, 2]",
+TestMgr.check("2:[1, 2]",
 restTemplate
 .getForObject("cse://jaxrs/queryList/queryListTSV?queryList={1}", 
String.class, "1\t2"));
-TestMgr.check("[, ]",
+TestMgr.check("2:[, ]",
 
restTemplate.getForObject("cse://jaxrs/queryList/queryListTSV?queryList={1}", 
String.class, "\t"));
-TestMgr.check("[]",
+TestMgr.check("1:[]",
 
restTemplate.getForObject("cse://jaxrs/queryList/queryListTSV?queryList=", 
String.class));
   }
 
@@ -100,17 +100,17 @@ public class TestQueryParamWithListSchema implements 
CategorizedTestCase {
   }
 
   private void testPipesRest() {
-TestMgr.check("[]",
+TestMgr.check("0:[]",
 restTemplate.getForObject("cse://jaxrs/queryList/queryListPIPES?", 
String.class));
   }
 
   private void testPipes() {
-TestMgr.check("[1, 2]",
+TestMgr.check("2:[1, 2]",
 restTemplate
 
.getForObject("cse://jaxrs/queryList/queryListPIPES?queryList={1}", 
String.class, "1|2"));
-TestMgr.check("[, ]",
+TestMgr.check("2:[, ]",
 
restTemplate.getForObject("cse://jaxrs/queryList/queryListPIPES?queryList={1}", 
String.class, "|"));
-TestMgr.check("[]",
+TestMgr.check("1:[]",
 
restTemplate.getForObject("cse://jaxrs/queryList/queryListPIPES?queryList=", 
String.class));
   }
 
@@ -120,16 +120,16 @@ public class TestQueryParamWithListSchema implements 
CategorizedTestCase {
   }
 
   private void testSSVRest() {
-TestMgr.check("[]",
+TestMgr.check("0:[]",
 restTemplate.getForObject("cse://jaxrs/queryList/queryListSSV?", 
String.class));
   }
 
   private void testCSV() {
-TestMgr.check("[1, 2]",
+TestMgr.check("2:[1, 2]",
 
restTemplate.getForObject("cse://jaxrs/queryList/queryListCSV?queryList=1,2", 
String.class));
-TestMgr.check("[, ]",
+TestMgr.check("2:[, ]",
 
restTemplate.getForObject("cse://jaxrs/queryList/queryListCSV?queryList=,", 
String.class));
-TestMgr.check("[]",
+TestMgr.check("1:[]",
 
restTemplate.getForObject("cse://jaxrs/queryList/queryListCSV?queryList=", 
String.class));
   }
 
@@ -139,16 +139,16 @@ public class TestQueryParamWithListSchema implements 
CategorizedTestCase {
   }
 
   private void test

[servicecomb-java-chassis] branch master updated (4f58467 -> f33483f)

2020-11-26 Thread wujimin
This is an automated email from the ASF dual-hosted git repository.

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


from 4f58467  Scb 2128 support dynamic single value enum (#2080)
 new 96afde5  [#2081]add a test case for query with List
 new c3e0a57  [SCB-2131]when timeout exception, connect closed will trigger 
asynchronous callback
 new f33483f  [SCB-2131]fix review comment

The 3 revisions listed above as "new" are entirely new to this
repository and will be described in separate emails.  The revisions
listed as "add" were already present in the repository and have only
been added to this reference.


Summary of changes:
 .../jaxrs/client/TestQueryParamWithListSchema.java | 154 +
 .../jaxrs/server/QueryParamWithListSchema.java |  62 +
 .../rest/client/http/RestClientInvocation.java |  16 ++-
 3 files changed, 228 insertions(+), 4 deletions(-)
 create mode 100644 
demo/demo-jaxrs/jaxrs-client/src/main/java/org/apache/servicecomb/demo/jaxrs/client/TestQueryParamWithListSchema.java
 create mode 100644 
demo/demo-jaxrs/jaxrs-server/src/main/java/org/apache/servicecomb/demo/jaxrs/server/QueryParamWithListSchema.java



[servicecomb-java-chassis] 02/03: [SCB-2131]when timeout exception, connect closed will trigger asynchronous callback

2020-11-26 Thread wujimin
This is an automated email from the ASF dual-hosted git repository.

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

commit c3e0a57c5b67069d661636c4b9f045041dc2afd5
Author: liubao 
AuthorDate: Thu Nov 26 21:16:15 2020 +0800

[SCB-2131]when timeout exception, connect closed will trigger asynchronous 
callback
---
 .../transport/rest/client/http/RestClientInvocation.java | 16 
 1 file changed, 12 insertions(+), 4 deletions(-)

diff --git 
a/transports/transport-rest/transport-rest-client/src/main/java/org/apache/servicecomb/transport/rest/client/http/RestClientInvocation.java
 
b/transports/transport-rest/transport-rest-client/src/main/java/org/apache/servicecomb/transport/rest/client/http/RestClientInvocation.java
index 838131d..18f6f58 100644
--- 
a/transports/transport-rest/transport-rest-client/src/main/java/org/apache/servicecomb/transport/rest/client/http/RestClientInvocation.java
+++ 
b/transports/transport-rest/transport-rest-client/src/main/java/org/apache/servicecomb/transport/rest/client/http/RestClientInvocation.java
@@ -84,6 +84,8 @@ public class RestClientInvocation {
 
   private Handler throwableHandler = e -> fail((ConnectionBase) 
clientRequest.connection(), e);
 
+  private boolean alreadyFailed = false;
+
   public RestClientInvocation(HttpClientWithContext httpClientWithContext, 
List httpClientFilters) {
 this.httpClientWithContext = httpClientWithContext;
 this.httpClientFilters = httpClientFilters;
@@ -115,8 +117,10 @@ public class RestClientInvocation {
 }
 
 clientRequest.exceptionHandler(e -> {
-  invocation.getTraceIdLogger().error(LOGGER, "Failed to send request, 
local:{}, remote:{}, message={}.",
-  getLocalAddress(), ipPort.getSocketAddress(), 
ExceptionUtils.getExceptionMessageWithoutTrace(e));
+  invocation.getTraceIdLogger()
+  .error(LOGGER, "Failed to send request, alreadyFailed:{}, local:{}, 
remote:{}, message={}.",
+  alreadyFailed, getLocalAddress(), ipPort.getSocketAddress(),
+  ExceptionUtils.getExceptionMessageWithoutTrace(e));
   throwableHandler.handle(e);
 });
 
@@ -129,7 +133,9 @@ public class RestClientInvocation {
 restClientRequest.end();
   } catch (Throwable e) {
 invocation.getTraceIdLogger().error(LOGGER,
-"send http request failed, local:{}, remote: {}, message={}.", 
getLocalAddress(), ipPort
+"send http request failed, alreadyFailed:{}, local:{}, remote: {}, 
message={}.",
+alreadyFailed,
+getLocalAddress(), ipPort
 , ExceptionUtils.getExceptionMessageWithoutTrace(e));
 fail((ConnectionBase) clientRequest.connection(), e);
   }
@@ -249,10 +255,12 @@ public class RestClientInvocation {
   }
 
   protected void fail(ConnectionBase connection, Throwable e) {
-if (invocation.isFinished()) {
+if (alreadyFailed) {
   return;
 }
 
+alreadyFailed = true;
+
 InvocationStageTrace stageTrace = invocation.getInvocationStageTrace();
 // connection maybe null when exception happens such as ssl handshake 
failure
 if (connection != null) {



[servicecomb-java-chassis] branch master updated: [SCB-2127]when timeout, will not isolate service

2020-11-25 Thread wujimin
This is an automated email from the ASF dual-hosted git repository.

wujimin 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 0ec976d  [SCB-2127]when timeout, will not isolate service
0ec976d is described below

commit 0ec976d29b77b07601e3514d12794d52b5793b22
Author: liubao 
AuthorDate: Thu Nov 26 14:20:43 2020 +0800

[SCB-2127]when timeout, will not isolate service
---
 .../servicecomb/demo/jaxrs/client/JaxrsClient.java | 43 --
 .../demo/jaxrs/client/TestClientTimeout.java   | 96 ++
 .../loadbalance/LoadbalanceHandler.java|  3 +-
 3 files changed, 98 insertions(+), 44 deletions(-)

diff --git 
a/demo/demo-jaxrs/jaxrs-client/src/main/java/org/apache/servicecomb/demo/jaxrs/client/JaxrsClient.java
 
b/demo/demo-jaxrs/jaxrs-client/src/main/java/org/apache/servicecomb/demo/jaxrs/client/JaxrsClient.java
index ae6a7dd..9ee4b40 100644
--- 
a/demo/demo-jaxrs/jaxrs-client/src/main/java/org/apache/servicecomb/demo/jaxrs/client/JaxrsClient.java
+++ 
b/demo/demo-jaxrs/jaxrs-client/src/main/java/org/apache/servicecomb/demo/jaxrs/client/JaxrsClient.java
@@ -25,7 +25,6 @@ import javax.ws.rs.core.Response.Status;
 
 import org.apache.http.HttpStatus;
 import org.apache.servicecomb.common.rest.codec.RestObjectMapperFactory;
-import org.apache.servicecomb.core.Const;
 import org.apache.servicecomb.demo.CategorizedTestCaseRunner;
 import org.apache.servicecomb.demo.CodeFirstRestTemplate;
 import org.apache.servicecomb.demo.DemoConst;
@@ -84,7 +83,6 @@ public class JaxrsClient {
 codeFirstClient.testCodeFirst(templateNew, "jaxrs", "/codeFirstJaxrs/");
 testCompute(templateNew);
 testValidator(templateNew);
-testClientTimeOut(templateNew);
 testJaxRSDefaultValuesAllTransport(templateNew);
 testSpringMvcDefaultValuesJavaPrimitiveAllTransport(templateNew);
 
@@ -479,47 +477,6 @@ public class JaxrsClient {
 TestMgr.check("hello test 15", result);
   }
 
-  private static void testClientTimeOut(RestTemplate template) {
-String microserviceName = "jaxrs";
-for (String transport : DemoConst.transports) {
-  if (transport.equals(Const.ANY_TRANSPORT)) {
-continue;
-  }
-  ArchaiusUtils.setProperty("servicecomb.references.transport." + 
microserviceName, transport);
-  TestMgr.setMsg(microserviceName, transport);
-
-  String cseUrlPrefix = "cse://" + microserviceName + "/clientreqtimeout/";
-
-  testClientTimeoutSayHi(template, cseUrlPrefix);
-  testClientTimeoutAdd(template, cseUrlPrefix);
-}
-  }
-
-  private static void testClientTimeoutSayHi(RestTemplate template, String 
cseUrlPrefix) {
-Student student = new Student();
-student.setName("timeout");
-student.setAge(30);
-Student result = template.postForObject(cseUrlPrefix + "sayhello", 
student, Student.class);
-TestMgr.check("hello timeout 30", result);
-  }
-
-  private static void testClientTimeoutAdd(RestTemplate template, String 
cseUrlPrefix) {
-Map params = new HashMap<>();
-params.put("a", "5");
-params.put("b", "20");
-boolean isExcep = false;
-try {
-  template.postForObject(cseUrlPrefix + "add", params, Integer.class);
-} catch (InvocationException e) {
-  isExcep = true;
-  // implement timeout with same error code and message for rest and 
highway
-  TestMgr.check(408, e.getStatus().getStatusCode());
-  TestMgr.check(true,
-  e.getErrorData().toString().contains("CommonExceptionData 
[message=Request Timeout. Details:"));
-}
-
-TestMgr.check(true, isExcep);
-  }
 
   private static void testSpringMvcDefaultValuesJavaPrimitiveRest(RestTemplate 
template) {
 String microserviceName = "jaxrs";
diff --git 
a/demo/demo-jaxrs/jaxrs-client/src/main/java/org/apache/servicecomb/demo/jaxrs/client/TestClientTimeout.java
 
b/demo/demo-jaxrs/jaxrs-client/src/main/java/org/apache/servicecomb/demo/jaxrs/client/TestClientTimeout.java
new file mode 100644
index 000..9c3ea15
--- /dev/null
+++ 
b/demo/demo-jaxrs/jaxrs-client/src/main/java/org/apache/servicecomb/demo/jaxrs/client/TestClientTimeout.java
@@ -0,0 +1,96 @@
+/*
+ * 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 i

[servicecomb-java-chassis] branch master updated: [SCB-2124]add a version rule switch when use lastest version rule and TESTING status to pulish service

2020-11-23 Thread wujimin
This is an automated email from the ASF dual-hosted git repository.

wujimin 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 5924f00  [SCB-2124]add a version rule switch when use lastest version 
rule and TESTING status to pulish service
5924f00 is described below

commit 5924f009c95358e39b9359cfedb4b897d603ebcf
Author: liubao 
AuthorDate: Tue Nov 24 11:59:43 2020 +0800

[SCB-2124]add a version rule switch when use lastest version rule and 
TESTING status to pulish service
---
 .../registry/config/ServiceRegistryCommonConfig.java  |  9 +
 .../registry/consumer/MicroserviceVersions.java   | 15 +--
 2 files changed, 22 insertions(+), 2 deletions(-)

diff --git 
a/foundations/foundation-registry/src/main/java/org/apache/servicecomb/registry/config/ServiceRegistryCommonConfig.java
 
b/foundations/foundation-registry/src/main/java/org/apache/servicecomb/registry/config/ServiceRegistryCommonConfig.java
index bda0542..f307164 100644
--- 
a/foundations/foundation-registry/src/main/java/org/apache/servicecomb/registry/config/ServiceRegistryCommonConfig.java
+++ 
b/foundations/foundation-registry/src/main/java/org/apache/servicecomb/registry/config/ServiceRegistryCommonConfig.java
@@ -22,10 +22,19 @@ import com.netflix.config.DynamicPropertyFactory;
 public class ServiceRegistryCommonConfig {
   private static final String REGISTRY_EMPTY_PROTECTION = 
"servicecomb.service.registry.instance.empty.protection";
 
+  private static final String REGISTRY_FILTER_UP_INSTANCES = 
"servicecomb.service.registry.instance.useUpInstancesOnly";
+
   public static boolean isEmptyInstanceProtectionEnabled() {
 return
 DynamicPropertyFactory.getInstance()
 .getBooleanProperty(REGISTRY_EMPTY_PROTECTION,
 true).get();
   }
+
+  public static boolean useUpInstancesOnly() {
+return
+DynamicPropertyFactory.getInstance()
+.getBooleanProperty(REGISTRY_FILTER_UP_INSTANCES,
+false).get();
+  }
 }
diff --git 
a/foundations/foundation-registry/src/main/java/org/apache/servicecomb/registry/consumer/MicroserviceVersions.java
 
b/foundations/foundation-registry/src/main/java/org/apache/servicecomb/registry/consumer/MicroserviceVersions.java
index a5c0028..ce43bf3 100644
--- 
a/foundations/foundation-registry/src/main/java/org/apache/servicecomb/registry/consumer/MicroserviceVersions.java
+++ 
b/foundations/foundation-registry/src/main/java/org/apache/servicecomb/registry/consumer/MicroserviceVersions.java
@@ -24,6 +24,7 @@ import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
 import java.util.Map.Entry;
+import java.util.stream.Collectors;
 
 import org.apache.servicecomb.foundation.common.VendorExtensions;
 import org.apache.servicecomb.foundation.common.concurrent.ConcurrentHashMapEx;
@@ -33,6 +34,7 @@ import 
org.apache.servicecomb.registry.api.event.DestroyMicroserviceEvent;
 import 
org.apache.servicecomb.registry.api.event.MicroserviceInstanceChangedEvent;
 import org.apache.servicecomb.registry.api.event.task.SafeModeChangeEvent;
 import org.apache.servicecomb.registry.api.registry.MicroserviceInstance;
+import org.apache.servicecomb.registry.api.registry.MicroserviceInstanceStatus;
 import org.apache.servicecomb.registry.api.registry.MicroserviceInstances;
 import org.apache.servicecomb.registry.config.ServiceRegistryCommonConfig;
 import org.apache.servicecomb.registry.definition.DefinitionConst;
@@ -184,7 +186,16 @@ public class MicroserviceVersions {
 
   protected void safeSetInstances(List pulledInstances, 
String rev) {
 try {
-  setInstances(pulledInstances, rev);
+  List filteredInstance = pulledInstances;
+  // 增加一个配置项只使用 `UP` 实例。 在使用 `TESTING` 进行拨测, 并且配置了
+  // servicecomb.references.version-rule=latest 场景,需要保证不使用
+  // `TESTING` 实例。 不能依赖 InstanceStatusDiscoveryFilter, 避免
+  // 构建的 VersionRule 实例列表为空。
+  if (ServiceRegistryCommonConfig.useUpInstancesOnly()) {
+filteredInstance = pulledInstances.stream().filter(item -> 
MicroserviceInstanceStatus.UP == item.getStatus())
+.collect(Collectors.toList());
+  }
+  setInstances(filteredInstance, rev);
 } catch (Throwable e) {
   waitingDelete = true;
   LOGGER.error("Failed to setInstances, appId={}, microserviceName={}.",
@@ -209,7 +220,7 @@ public class MicroserviceVersions {
 }
   }
 
-  protected void setInstances(List pulledInstances, 
String rev) {
+  private void setInstances(List pulledInstances, String 
rev) {
 synchronized (lock) {
   MergedInstances mergedInstances = mergeInstances(pulledInstances, 
instances);
   instances = mergedInstances.instanceIdMap.values();



[servicecomb-java-chassis] branch master updated: [scb-2086] fix problem about aggregated parameter

2020-09-27 Thread wujimin
This is an automated email from the ASF dual-hosted git repository.

wujimin 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 82cb202  [scb-2086] fix problem about aggregated parameter
82cb202 is described below

commit 82cb202e051cd1eef21af9a88ec7e7fa0e7a0a3a
Author: wujimin 
AuthorDate: Wed Sep 23 11:39:34 2020 +0800

[scb-2086] fix problem about aggregated parameter
---
 .../common/utils/LambdaMetafactoryUtils.java   | 56 ++
 .../common/utils/bean/SetterWrapper.java   | 50 ---
 .../common/utils/TestLambdaMetafactoryUtils.java   | 56 ++
 .../config/inject/ConfigObjectFactory.java | 10 ++--
 .../it/schema/objectparams/BeanParamRequest.java   | 56 ++
 .../objectparams/TestJAXRSObjectParamType.java | 43 -
 .../generator/jaxrs/model/AggregatedParam.java | 26 ++
 .../test/resources/schemas/aggregatedParam.yaml| 14 ++
 .../consumer/ConsumerArgumentsMapperCreator.java   | 10 +---
 .../producer/ProducerArgumentsMapperCreator.java   | 10 +---
 10 files changed, 215 insertions(+), 116 deletions(-)

diff --git 
a/foundations/foundation-common/src/main/java/org/apache/servicecomb/foundation/common/utils/LambdaMetafactoryUtils.java
 
b/foundations/foundation-common/src/main/java/org/apache/servicecomb/foundation/common/utils/LambdaMetafactoryUtils.java
index b392f6b..a63a9ab 100644
--- 
a/foundations/foundation-common/src/main/java/org/apache/servicecomb/foundation/common/utils/LambdaMetafactoryUtils.java
+++ 
b/foundations/foundation-common/src/main/java/org/apache/servicecomb/foundation/common/utils/LambdaMetafactoryUtils.java
@@ -47,6 +47,8 @@ import 
org.apache.servicecomb.foundation.common.utils.bean.Setter;
 import org.apache.servicecomb.foundation.common.utils.bean.ShortGetter;
 import org.apache.servicecomb.foundation.common.utils.bean.ShortSetter;
 
+import com.fasterxml.jackson.databind.introspect.BeanPropertyDefinition;
+
 public final class LambdaMetafactoryUtils {
   private static final Lookup LOOKUP = MethodHandles.lookup();
 
@@ -148,6 +150,19 @@ public final class LambdaMetafactoryUtils {
 return createLambda(getMethod, getterCls);
   }
 
+  @SuppressWarnings("unchecked")
+  public static Getter createObjectGetter(Method getMethod) {
+return createLambda(getMethod, Getter.class);
+  }
+
+  public static Getter 
createObjectGetter(BeanPropertyDefinition propertyDefinition) {
+if (propertyDefinition.hasGetter()) {
+  return createObjectGetter(propertyDefinition.getGetter().getAnnotated());
+}
+
+return createGetter(propertyDefinition.getField().getAnnotated());
+  }
+
   // slower than reflect directly
   @SuppressWarnings("unchecked")
   public static  Getter createGetter(Field field) {
@@ -177,6 +192,47 @@ public final class LambdaMetafactoryUtils {
 return createLambda(setMethod, setterCls);
   }
 
+  // just for avoid java 9~11 bug: 
https://bugs.openjdk.java.net/browse/JDK-8174983
+  // otherwise can be replaced by: createLambda(setMethod, Setter.class)
+  @SuppressWarnings("unchecked")
+  public static Setter createObjectSetter(Method setMethod) {
+Object setter = createSetter(setMethod);
+if (setter instanceof BoolSetter) {
+  return (Instance, value) -> ((BoolSetter) setter).set(Instance, 
(boolean) value);
+}
+if (setter instanceof ByteSetter) {
+  return (Instance, value) -> ((ByteSetter) setter).set(Instance, (byte) 
value);
+}
+if (setter instanceof CharSetter) {
+  return (Instance, value) -> ((CharSetter) setter).set(Instance, (char) 
value);
+}
+if (setter instanceof DoubleSetter) {
+  return (Instance, value) -> ((DoubleSetter) setter).set(Instance, 
(double) value);
+}
+if (setter instanceof FloatSetter) {
+  return (Instance, value) -> ((FloatSetter) setter).set(Instance, (float) 
value);
+}
+if (setter instanceof IntSetter) {
+  return (Instance, value) -> ((IntSetter) setter).set(Instance, (int) 
value);
+}
+if (setter instanceof LongSetter) {
+  return (Instance, value) -> ((LongSetter) setter).set(Instance, (long) 
value);
+}
+if (setter instanceof ShortSetter) {
+  return (Instance, value) -> ((ShortSetter) setter).set(Instance, (short) 
value);
+}
+
+return (Setter) setter;
+  }
+
+  public static Setter 
createObjectSetter(BeanPropertyDefinition propertyDefinition) {
+if (propertyDefinition.hasSetter()) {
+  return createObjectSetter(propertyDefinition.getSetter().getAnnotated());
+}
+
+return createSetter(propertyDefinition.getField().getAnnotated());
+  }
+
   // slower than reflect directly
   public static  Setter createSetter(Field field) {
 checkAccess(field);
diff --git 
a/foundations/

[servicecomb-java-chassis] branch master updated: [SCB-2087] change swagger generator process type to JavaType to support generic easier

2020-09-26 Thread wujimin
This is an automated email from the ASF dual-hosted git repository.

wujimin 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 8020637  [SCB-2087] change swagger generator process type to JavaType 
to support generic easier
8020637 is described below

commit 8020637a026c463cb8102aca6d26c192e76ea24a
Author: wujimin 
AuthorDate: Thu Sep 24 20:38:21 2020 +0800

[SCB-2087] change swagger generator process type to JavaType to support 
generic easier
---
 .../demo/jaxrs/client/TestDynamicConfig.java   |   4 +-
 .../dynamicconfig/test/DynamicConfigurationIT.java |   1 -
 .../provider/pojo/definition/PojoConsumerMeta.java |   5 +-
 .../pojo/definition/PojoConsumerOperationMeta.java |  17 +--
 .../apache/servicecomb/swagger/SwaggerUtils.java   |   4 +-
 .../swagger/generator/ParameterGenerator.java  |  15 ++-
 .../swagger/generator/ParameterProcessor.java  |  14 ++-
 .../swagger/generator/SwaggerGeneratorUtils.java   |  18 ++-
 .../generator/core/AbstractOperationGenerator.java |  20 +--
 .../AbstractSerializableParameterProcessor.java|   6 +-
 .../parameter/ApiImplicitParamProcessor.java   |   3 +-
 .../processor/parameter/ApiParamProcessor.java |   7 +-
 .../processor/parameter/JsonViewProcessor.java |   3 +-
 .../processor/parameter/PartArrayProcessor.java|   4 +-
 .../core/processor/parameter/PartProcessor.java|   4 +-
 .../parameter/RawJsonRequestBodyProcessor.java |   6 +-
 .../swagger/generator/core/utils/ParamUtils.java   | 103 ---
 .../generator/pojo/PojoOperationGenerator.java |   5 +-
 .../generator/core/utils/TestParamUtils.java   | 140 -
 .../generator/jaxrs/JaxrsOperationGenerator.java   |   8 +-
 ...actSpringmvcSerializableParameterProcessor.java |   6 +-
 .../annotation/RequestBodyAnnotationProcessor.java |   4 +-
 .../consumer/ConsumerArgumentsMapperCreator.java   |   1 +
 .../producer/ProducerArgumentsMapperCreator.java   |  15 +--
 24 files changed, 101 insertions(+), 312 deletions(-)

diff --git 
a/demo/demo-jaxrs/jaxrs-client/src/main/java/org/apache/servicecomb/demo/jaxrs/client/TestDynamicConfig.java
 
b/demo/demo-jaxrs/jaxrs-client/src/main/java/org/apache/servicecomb/demo/jaxrs/client/TestDynamicConfig.java
index 2f275a2..9dfa234 100644
--- 
a/demo/demo-jaxrs/jaxrs-client/src/main/java/org/apache/servicecomb/demo/jaxrs/client/TestDynamicConfig.java
+++ 
b/demo/demo-jaxrs/jaxrs-client/src/main/java/org/apache/servicecomb/demo/jaxrs/client/TestDynamicConfig.java
@@ -28,9 +28,8 @@ import org.springframework.stereotype.Component;
 
 @Component
 public class TestDynamicConfig implements BootListener {
-
   @InjectProperties(prefix = "jaxrstest.jaxrsclient")
-  public class Configuration {
+  public static class Configuration {
 /*
  * 方法的 prefix 属性值 "override" 会覆盖标注在类定义的 @InjectProperties
  * 注解的 prefix 属性值。
@@ -101,6 +100,7 @@ public class TestDynamicConfig implements BootListener {
 public String strDef;
   }
 
+  @Override
   public void onAfterRegistry(BootEvent event) {
 Configuration configuration = 
SCBEngine.getInstance().getPriorityPropertyManager()
 .createConfigObject(Configuration.class,
diff --git 
a/integration-tests/dynamic-config-tests/src/test/java/org/apache/dynamicconfig/test/DynamicConfigurationIT.java
 
b/integration-tests/dynamic-config-tests/src/test/java/org/apache/dynamicconfig/test/DynamicConfigurationIT.java
index fbe557b..daa0f40 100644
--- 
a/integration-tests/dynamic-config-tests/src/test/java/org/apache/dynamicconfig/test/DynamicConfigurationIT.java
+++ 
b/integration-tests/dynamic-config-tests/src/test/java/org/apache/dynamicconfig/test/DynamicConfigurationIT.java
@@ -45,7 +45,6 @@ public class DynamicConfigurationIT {
 vertx.close();
   }
 
-
   @Test
   public void testDynamicConfiguration() {
 Assert.assertEquals(, 
DynamicPropertyFactory.getInstance().getIntProperty("timeout", 0).get());
diff --git 
a/providers/provider-pojo/src/main/java/org/apache/servicecomb/provider/pojo/definition/PojoConsumerMeta.java
 
b/providers/provider-pojo/src/main/java/org/apache/servicecomb/provider/pojo/definition/PojoConsumerMeta.java
index 987eebe..ee68858 100644
--- 
a/providers/provider-pojo/src/main/java/org/apache/servicecomb/provider/pojo/definition/PojoConsumerMeta.java
+++ 
b/providers/provider-pojo/src/main/java/org/apache/servicecomb/provider/pojo/definition/PojoConsumerMeta.java
@@ -55,10 +55,9 @@ public class PojoConsumerMeta {
   
.createOperationGenerator(swaggerConsumerOperation.getConsumerMethod());
   intfOperationGenerator.generateResponse();
   PojoConsumerOperationMeta pojoConsumerOperationMeta = new 
PojoConsumerOperationMeta(this, operationMeta,
-  swaggerConsumerOperation, intfSwaggerGenerator.getSwagger(), 
intfO

[servicecomb-java-chassis] branch master updated: [SCB-1753]accessor problem fix: LinkedBlockingQueueEx queue features

2020-08-04 Thread wujimin
This is an automated email from the ASF dual-hosted git repository.

wujimin 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 509be4e  [SCB-1753]accessor problem fix: LinkedBlockingQueueEx queue 
features
509be4e is described below

commit 509be4ee98eedacef43fb8739ea6636e36478873
Author: liubao 
AuthorDate: Mon Aug 3 20:55:10 2020 +0800

[SCB-1753]accessor problem fix: LinkedBlockingQueueEx queue features
---
 .../servicecomb/core/executor/GroupExecutor.java   |  2 +-
 .../core/executor/LinkedBlockingQueueEx.java   | 63 ++
 .../core/executor/ThreadPoolExecutorEx.java| 13 -
 .../core/executor/TestThreadPoolExecutorEx.java| 14 +++--
 .../it/edge/handler/ExceptionConvertHandler.java   |  2 -
 5 files changed, 40 insertions(+), 54 deletions(-)

diff --git 
a/core/src/main/java/org/apache/servicecomb/core/executor/GroupExecutor.java 
b/core/src/main/java/org/apache/servicecomb/core/executor/GroupExecutor.java
index 41371b4..535b8a2 100644
--- a/core/src/main/java/org/apache/servicecomb/core/executor/GroupExecutor.java
+++ b/core/src/main/java/org/apache/servicecomb/core/executor/GroupExecutor.java
@@ -87,7 +87,7 @@ public class GroupExecutor implements Executor, Closeable {
   maxThreads,
   maxIdleInSecond,
   TimeUnit.SECONDS,
-  new LinkedBlockingQueueEx<>(maxQueueSize),
+  new LinkedBlockingQueueEx(maxQueueSize),
   factory);
   executorList.add(executor);
 }
diff --git 
a/core/src/main/java/org/apache/servicecomb/core/executor/LinkedBlockingQueueEx.java
 
b/core/src/main/java/org/apache/servicecomb/core/executor/LinkedBlockingQueueEx.java
index 57b8450..aba525f 100644
--- 
a/core/src/main/java/org/apache/servicecomb/core/executor/LinkedBlockingQueueEx.java
+++ 
b/core/src/main/java/org/apache/servicecomb/core/executor/LinkedBlockingQueueEx.java
@@ -16,81 +16,50 @@
  */
 package org.apache.servicecomb.core.executor;
 
-import java.lang.reflect.Field;
-import java.lang.reflect.Method;
 import java.util.concurrent.LinkedBlockingQueue;
-import java.util.concurrent.ThreadPoolExecutor;
-import java.util.concurrent.atomic.AtomicInteger;
+import java.util.concurrent.RejectedExecutionException;
 
-public class LinkedBlockingQueueEx extends LinkedBlockingQueue {
+public class LinkedBlockingQueueEx extends LinkedBlockingQueue {
   private static final long serialVersionUID = -1L;
 
-  private static final int COUNT_BITS = Integer.SIZE - 3;
-
-  private static final int CAPACITY = (1 << COUNT_BITS) - 1;
-
-  private static int workerCountOf(int c) {
-return c & CAPACITY;
-  }
-
-  private static Method addWrokerMethod;
-
   private transient volatile ThreadPoolExecutorEx owner = null;
 
-  private AtomicInteger ctl;
-
   public LinkedBlockingQueueEx(int capacity) {
 super(capacity);
   }
 
   public void setOwner(ThreadPoolExecutorEx owner) {
 this.owner = owner;
-try {
-  addWrokerMethod = 
ThreadPoolExecutor.class.getDeclaredMethod("addWorker", Runnable.class, 
boolean.class);
-  addWrokerMethod.setAccessible(true);
-
-  Field field = ThreadPoolExecutor.class.getDeclaredField("ctl");
-  field.setAccessible(true);
-  ctl = (AtomicInteger) field.get(owner);
-} catch (Throwable e) {
-  throw new IllegalStateException("failed to init queue.", e);
-}
   }
 
   @Override
-  public boolean offer(E runnable) {
+  public boolean offer(Runnable runnable) {
 // task can come before owner available
 if (owner == null) {
   return super.offer(runnable);
 }
-
 // can not create more thread, just queue the task
-if (workerCountOf(ctl.get()) == owner.getMaximumPoolSize()) {
+if (owner.getPoolSize() == owner.getMaximumPoolSize()) {
   return super.offer(runnable);
 }
 // no need to create more thread, just queue the task
-if (owner.getNotFinished() <= workerCountOf(ctl.get())) {
+if (owner.getNotFinished() <= owner.getPoolSize()) {
   return super.offer(runnable);
 }
 // all threads are busy, and can create new thread, not queue the task
-if (workerCountOf(ctl.get()) < owner.getMaximumPoolSize()) {
-  try {
-// low frequency event, reflect is no problem
-if (!(Boolean) addWrokerMethod.invoke(owner, runnable, false)) {
-  // failed to create new thread, queue the task
-  // if failed to queue the task, owner will try to addWorker again,
-  // if still failed, the will reject the task
-  return super.offer(runnable);
-}
-
-// create new thread successfully, treat it as queue success
-return true;
-  } catch (Throwable e) {
-// reflection exception, should never happened
-return super.offer(runnable);
-  }
+if (owner.getPoolSiz

[servicecomb-java-chassis] branch master updated (531e121 -> 10381be)

2020-07-30 Thread wujimin
This is an automated email from the ASF dual-hosted git repository.

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


from 531e121  [SCB-2049]fix trace id logger do not print error message in 
codes
 add 10381be  [SCB-2046]support customize RestProducers and RpcProducers

No new revisions were added by this update.

Summary of changes:
 .../demo/pojo/server/PojoProducersCustomized.java}  | 13 ++---
 .../demo/springmvc/server/RestProducersCutomized.java}  | 13 ++---
 2 files changed, 12 insertions(+), 14 deletions(-)
 copy 
demo/{demo-crossapp/crossapp-server/src/main/java/org/apache/servicecomb/demo/crossapp/CrossappBootListener.java
 => 
demo-pojo/pojo-server/src/main/java/org/apache/servicecomb/demo/pojo/server/PojoProducersCustomized.java}
 (72%)
 copy 
demo/{demo-crossapp/crossapp-server/src/main/java/org/apache/servicecomb/demo/crossapp/CrossappBootListener.java
 => 
demo-springmvc/springmvc-server/src/main/java/org/apache/servicecomb/demo/springmvc/server/RestProducersCutomized.java}
 (72%)



[servicecomb-java-chassis] branch master updated (751a851 -> 0d1af3f)

2020-07-06 Thread wujimin
This is an automated email from the ASF dual-hosted git repository.

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


from 751a851  [#2034] move create validator to init to use injected spring 
bean
 new 51f0c50  [SCB-2031] fix the problem in mapping pojo consumer method to 
swagger provider operation
 new 0d1af3f  [SCB-2031] optimize code as review opinion

The 2 revisions listed above as "new" are entirely new to this
repository and will be described in separate emails.  The revisions
listed as "add" were already present in the repository and have only
been added to this reference.


Summary of changes:
 .../it/testcase/TestApiOperationOverride.java  | 171 +
 .../it/schema/ApiOperationJaxrsSchema.java |   4 +-
 .../it/schema/ApiOperationSpringmvcSchema.java |   5 +-
 .../it/schema/ApiOpertionPojoSchema.java   |   4 +-
 .../apache/servicecomb/provider/pojo/Invoker.java  |   3 +-
 .../provider/pojo/definition/PojoConsumerMeta.java |  20 ++-
 .../swagger/engine/SwaggerConsumer.java|  22 ++-
 7 files changed, 187 insertions(+), 42 deletions(-)



[servicecomb-java-chassis] 02/02: [SCB-2031] optimize code as review opinion

2020-07-06 Thread wujimin
This is an automated email from the ASF dual-hosted git repository.

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

commit 0d1af3fce70a442119fe65766f498428132a9d1e
Author: yhs0092 
AuthorDate: Fri Jul 3 09:51:28 2020 +0800

[SCB-2031] optimize code as review opinion
---
 .../provider/pojo/definition/PojoConsumerMeta.java| 11 ++-
 .../servicecomb/swagger/engine/SwaggerConsumer.java   | 15 ++-
 2 files changed, 24 insertions(+), 2 deletions(-)

diff --git 
a/providers/provider-pojo/src/main/java/org/apache/servicecomb/provider/pojo/definition/PojoConsumerMeta.java
 
b/providers/provider-pojo/src/main/java/org/apache/servicecomb/provider/pojo/definition/PojoConsumerMeta.java
index 502ebe5..987eebe 100644
--- 
a/providers/provider-pojo/src/main/java/org/apache/servicecomb/provider/pojo/definition/PojoConsumerMeta.java
+++ 
b/providers/provider-pojo/src/main/java/org/apache/servicecomb/provider/pojo/definition/PojoConsumerMeta.java
@@ -19,6 +19,7 @@ package org.apache.servicecomb.provider.pojo.definition;
 import java.lang.reflect.Method;
 import java.util.HashMap;
 import java.util.Map;
+import java.util.Map.Entry;
 
 import org.apache.servicecomb.core.definition.MicroserviceMeta;
 import org.apache.servicecomb.core.definition.OperationMeta;
@@ -29,6 +30,8 @@ import 
org.apache.servicecomb.swagger.engine.SwaggerConsumerOperation;
 import org.apache.servicecomb.swagger.generator.OperationGenerator;
 import org.apache.servicecomb.swagger.generator.SwaggerGenerator;
 
+import com.google.common.annotations.VisibleForTesting;
+
 public class PojoConsumerMeta {
   private MicroserviceReferenceConfig microserviceReferenceConfig;
 
@@ -75,8 +78,14 @@ public class PojoConsumerMeta {
 return schemaMeta;
   }
 
+  @VisibleForTesting
   public PojoConsumerOperationMeta findOperationMeta(String 
consumerMethodName) {
-return operationMetas.get(consumerMethodName);
+for (Entry operationMetaEntry : 
operationMetas.entrySet()) {
+  if (operationMetaEntry.getKey().getName().equals(consumerMethodName)) {
+return operationMetaEntry.getValue();
+  }
+}
+return null;
   }
 
   public PojoConsumerOperationMeta findOperationMeta(Method consumerMethod) {
diff --git 
a/swagger/swagger-invocation/invocation-core/src/main/java/org/apache/servicecomb/swagger/engine/SwaggerConsumer.java
 
b/swagger/swagger-invocation/invocation-core/src/main/java/org/apache/servicecomb/swagger/engine/SwaggerConsumer.java
index 83786e9..fc6c52d 100644
--- 
a/swagger/swagger-invocation/invocation-core/src/main/java/org/apache/servicecomb/swagger/engine/SwaggerConsumer.java
+++ 
b/swagger/swagger-invocation/invocation-core/src/main/java/org/apache/servicecomb/swagger/engine/SwaggerConsumer.java
@@ -19,6 +19,9 @@ package org.apache.servicecomb.swagger.engine;
 import java.lang.reflect.Method;
 import java.util.HashMap;
 import java.util.Map;
+import java.util.Map.Entry;
+
+import com.google.common.annotations.VisibleForTesting;
 
 public class SwaggerConsumer {
   private Class consumerIntf;
@@ -38,8 +41,18 @@ public class SwaggerConsumer {
 operations.put(op.getConsumerMethod(), op);
   }
 
+  @VisibleForTesting
   public SwaggerConsumerOperation findOperation(String consumerMethodName) {
-return operations.get(consumerMethodName);
+for (Entry operationEntry : 
operations.entrySet()) {
+  if (operationEntry.getKey().getName().equals(consumerMethodName)) {
+return operationEntry.getValue();
+  }
+}
+return null;
+  }
+
+  public SwaggerConsumerOperation findOperation(Method consumerMethod) {
+return operations.get(consumerMethod);
   }
 
   public Map getOperations() {



[servicecomb-java-chassis] 01/02: [SCB-2031] fix the problem in mapping pojo consumer method to swagger provider operation

2020-07-06 Thread wujimin
This is an automated email from the ASF dual-hosted git repository.

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

commit 51f0c501d9e6e0522cb7816a6f4dcb706103d4aa
Author: yhs0092 
AuthorDate: Thu Jul 2 20:41:14 2020 +0800

[SCB-2031] fix the problem in mapping pojo consumer method to swagger 
provider operation
---
 .../it/testcase/TestApiOperationOverride.java  | 171 +
 .../it/schema/ApiOperationJaxrsSchema.java |   4 +-
 .../it/schema/ApiOperationSpringmvcSchema.java |   5 +-
 .../it/schema/ApiOpertionPojoSchema.java   |   4 +-
 .../apache/servicecomb/provider/pojo/Invoker.java  |   3 +-
 .../provider/pojo/definition/PojoConsumerMeta.java |   9 +-
 .../swagger/engine/SwaggerConsumer.java|   7 +-
 7 files changed, 163 insertions(+), 40 deletions(-)

diff --git 
a/integration-tests/it-consumer/src/main/java/org/apache/servicecomb/it/testcase/TestApiOperationOverride.java
 
b/integration-tests/it-consumer/src/main/java/org/apache/servicecomb/it/testcase/TestApiOperationOverride.java
index 8fcf1bc..b55c1b1 100644
--- 
a/integration-tests/it-consumer/src/main/java/org/apache/servicecomb/it/testcase/TestApiOperationOverride.java
+++ 
b/integration-tests/it-consumer/src/main/java/org/apache/servicecomb/it/testcase/TestApiOperationOverride.java
@@ -18,18 +18,19 @@ package org.apache.servicecomb.it.testcase;
 
 import java.util.concurrent.CompletableFuture;
 import java.util.concurrent.ExecutionException;
+import java.util.concurrent.atomic.AtomicLong;
 
 import org.apache.servicecomb.it.Consumers;
 import org.junit.Assert;
 import org.junit.Test;
+import org.springframework.http.ResponseEntity;
 
 import io.swagger.annotations.ApiOperation;
 
 public class TestApiOperationOverride {
   interface OptionalIntf {
-
 @ApiOperation(value = "", nickname = "sayHi")
-String sayHello();
+String sayHello(Long index);
 
 @ApiOperation(value = "", nickname = "sayHello")
 String sayHello(String name);
@@ -38,9 +39,23 @@ public class TestApiOperationOverride {
 CompletableFuture sayHelloAsync(String name);
 
 @ApiOperation(value = "", nickname = "sayHi")
-CompletableFuture sayHelloAsync();
+CompletableFuture sayHelloAsync(Long index);
+
+@ApiOperation(value = "", nickname = "sayHi")
+ResponseEntity sayHelloEntity(Long index);
+
+@ApiOperation(value = "", nickname = "sayHello")
+ResponseEntity sayHelloEntity(String name);
+
+@ApiOperation(value = "", nickname = "sayHi")
+CompletableFuture> sayHelloEntityAsync(Long index);
+
+@ApiOperation(value = "", nickname = "sayHello")
+CompletableFuture> sayHelloEntityAsync(String name);
   }
 
+  private static AtomicLong indexGenerator = new AtomicLong();
+
   private static Consumers consumersPojo = new 
Consumers<>("apiOpertionPojoSchemaTest",
   OptionalIntf.class);
 
@@ -51,62 +66,164 @@ public class TestApiOperationOverride {
   OptionalIntf.class);
 
   @Test
-  public void consumersPojo_A_intf() {
-Assert.assertEquals("ApiOpertionPojoSchema#sayHello", 
consumersPojo.getIntf().sayHello());
+  public void consumersPojo_sayHi_intf() {
+long index = generateIndex();
+Assert.assertEquals("ApiOpertionPojoSchema#sayHello" + index, 
consumersPojo.getIntf().sayHello(index));
+  }
+
+  @Test
+  public void consumersPojo_sayHello_intf() {
+long index = generateIndex();
+Assert.assertEquals("value" + index, 
consumersPojo.getIntf().sayHello("value" + index));
+  }
+
+  @Test
+  public void consumersPojo_sayHelloAsync_intf() throws ExecutionException, 
InterruptedException {
+long index = generateIndex();
+Assert.assertEquals("value" + index, 
consumersPojo.getIntf().sayHelloAsync("value" + index).get());
+  }
+
+  @Test
+  public void consumersPojo_sayHiAsync_intf() throws ExecutionException, 
InterruptedException {
+long index = generateIndex();
+Assert.assertEquals("ApiOpertionPojoSchema#sayHello" + index, 
consumersPojo.getIntf().sayHelloAsync(index).get());
+  }
+
+  @Test
+  public void consumersPojo_sayHiEntity_intf() {
+long index = generateIndex();
+Assert.assertEquals("ApiOpertionPojoSchema#sayHello" + index,
+consumersPojo.getIntf().sayHelloEntity(index).getBody());
+  }
+
+  @Test
+  public void consumersPojo_sayHelloEntity_intf() {
+long index = generateIndex();
+Assert.assertEquals("value" + index,
+consumersPojo.getIntf().sayHelloEntity("value" + index).getBody());
+  }
+
+  @Test
+  public void consumersPojo_sayHiEntityAsync_intf() throws ExecutionException, 
InterruptedException {
+long index = generateIndex();
+Assert.assertEqu

[servicecomb-java-chassis] branch master updated (f51e0e4 -> 751a851)

2020-07-06 Thread wujimin
This is an automated email from the ASF dual-hosted git repository.

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


from f51e0e4  [SCB-2033] inject spring bean to filter instance automatically
 add 751a851  [#2034] move create validator to init to use injected spring 
bean

No new revisions were added by this update.

Summary of changes:
 .../java/org/apache/servicecomb/core/filter/FilterManager.java| 2 +-
 .../servicecomb/core/filter/impl/ParameterValidatorFilter.java| 8 +---
 .../core/filter/impl/ParameterValidatorFilterTest.java| 6 ++
 3 files changed, 12 insertions(+), 4 deletions(-)



[servicecomb-java-chassis] branch master updated: [SCB-1996]move registerMicroserviceMappingByEndpoints from ServiceRegistry to RegistrationManager

2020-06-10 Thread wujimin
This is an automated email from the ASF dual-hosted git repository.

wujimin 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 35f7ea8  [SCB-1996]move registerMicroserviceMappingByEndpoints from 
ServiceRegistry to RegistrationManager
35f7ea8 is described below

commit 35f7ea841a98a1a796adc5bdbb0f01bc6b5432e1
Author: liubao 
AuthorDate: Wed Jun 10 15:05:25 2020 +0800

[SCB-1996]move registerMicroserviceMappingByEndpoints from ServiceRegistry 
to RegistrationManager
---
 .../client/TestThirdPartyRegistration.java | 62 ++
 .../demo/springmvc/client/ThirdPartyService.java   | 37 +
 .../servicecomb/registry/RegistrationManager.java  | 60 -
 .../thirdparty/Test3rdPartyInvocation.java | 22 
 .../serviceregistry/ServiceRegistry.java   | 37 +
 .../registry/AbstractServiceRegistry.java  | 27 --
 .../servicecomb/serviceregistry/TestConsumers.java | 10 ++--
 .../TestInstanceCacheCheckerWithoutMock.java   |  7 +--
 .../registry/EmptyMockServiceRegistry.java | 12 -
 9 files changed, 179 insertions(+), 95 deletions(-)

diff --git 
a/demo/demo-springmvc/springmvc-client/src/main/java/org/apache/servicecomb/demo/springmvc/client/TestThirdPartyRegistration.java
 
b/demo/demo-springmvc/springmvc-client/src/main/java/org/apache/servicecomb/demo/springmvc/client/TestThirdPartyRegistration.java
new file mode 100644
index 000..0ad7199
--- /dev/null
+++ 
b/demo/demo-springmvc/springmvc-client/src/main/java/org/apache/servicecomb/demo/springmvc/client/TestThirdPartyRegistration.java
@@ -0,0 +1,62 @@
+/*
+ * 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.demo.springmvc.client;
+
+import java.util.ArrayList;
+import java.util.Date;
+import java.util.List;
+
+import org.apache.servicecomb.core.BootListener;
+import org.apache.servicecomb.demo.CategorizedTestCase;
+import org.apache.servicecomb.demo.TestMgr;
+import org.apache.servicecomb.provider.pojo.Invoker;
+import org.apache.servicecomb.registry.RegistrationManager;
+import org.springframework.http.ResponseEntity;
+import org.springframework.stereotype.Component;
+
+@Component
+public class TestThirdPartyRegistration implements BootListener, 
CategorizedTestCase {
+  private ThirdPartyService thirdPartyService;
+
+  @Override
+  public void onAfterRegistry(BootEvent event) {
+List endpoints = new ArrayList<>();
+endpoints.add("rest://localhost:8080");
+
RegistrationManager.INSTANCE.registerMicroserviceMappingByEndpoints("testServiceName",
+"1.0.1", endpoints, ThirdPartyService.class);
+thirdPartyService = Invoker.createProxy("testServiceName",
+"testServiceName", ThirdPartyService.class);
+  }
+
+  @Override
+  public void testRestTransport() throws Exception {
+Date date = new Date();
+ResponseEntity responseEntity = 
thirdPartyService.responseEntity(date);
+TestMgr.check(date, responseEntity.getBody());
+// Third party invocation do not pass cse-context to the target
+TestMgr.check("h1v null", responseEntity.getHeaders().getFirst("h1"));
+TestMgr.check("h2v null", responseEntity.getHeaders().getFirst("h2"));
+
+TestMgr.check(202, responseEntity.getStatusCodeValue());
+  }
+
+  @Override
+  public String getMicroserviceName() {
+return "testServiceName";
+  }
+}
diff --git 
a/demo/demo-springmvc/springmvc-client/src/main/java/org/apache/servicecomb/demo/springmvc/client/ThirdPartyService.java
 
b/demo/demo-springmvc/springmvc-client/src/main/java/org/apache/servicecomb/demo/springmvc/client/ThirdPartyService.java
new file mode 100644
index 000..e8a1c93
--- /dev/null
+++ 
b/demo/demo-springmvc/springmvc-client/src/main/java/org/apache/servicecomb/demo/springmvc/client/ThirdPartyService.java
@@ -0,0 +1,37 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTIC

[servicecomb-java-chassis] branch master updated: [SCB-1961] add rest server codec filter

2020-05-30 Thread wujimin
This is an automated email from the ASF dual-hosted git repository.

wujimin 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 5507eec  [SCB-1961] add rest server codec filter
5507eec is described below

commit 5507eec39888b5eedf0f4452dcdb6574787a7db8
Author: wujimin 
AuthorDate: Sat May 30 16:20:13 2020 +0800

[SCB-1961] add rest server codec filter
---
 .../common/rest/AbstractRestInvocation.java|  14 +-
 .../common/rest/filter/RestFilterProvider.java |  32 ++-
 .../rest/filter/inner/RestServerCodecFilter.java   | 130 
 .../rest/filter/inner/ServerRestArgsFilter.java|  15 +-
 ...g.apache.servicecomb.core.filter.FilterProvider |  18 ++
 .../rest/RestProducerInvocationCreatorTest.java|   4 +-
 .../filter/inner/RestServerCodecFilterTest.java| 221 +
 .../apache/servicecomb/core/filter/FilterMeta.java |  11 +
 .../{FilterMeta.java => FilterProvider.java}   |  22 +-
 9 files changed, 403 insertions(+), 64 deletions(-)

diff --git 
a/common/common-rest/src/main/java/org/apache/servicecomb/common/rest/AbstractRestInvocation.java
 
b/common/common-rest/src/main/java/org/apache/servicecomb/common/rest/AbstractRestInvocation.java
index 92bac2f..f0bc2ca 100644
--- 
a/common/common-rest/src/main/java/org/apache/servicecomb/common/rest/AbstractRestInvocation.java
+++ 
b/common/common-rest/src/main/java/org/apache/servicecomb/common/rest/AbstractRestInvocation.java
@@ -21,7 +21,6 @@ import java.nio.charset.StandardCharsets;
 import java.util.Collections;
 import java.util.List;
 import java.util.Map;
-import java.util.Map.Entry;
 import java.util.concurrent.CompletableFuture;
 
 import javax.ws.rs.core.HttpHeaders;
@@ -33,6 +32,7 @@ import 
org.apache.servicecomb.common.rest.codec.produce.ProduceProcessorManager;
 import org.apache.servicecomb.common.rest.definition.RestOperationMeta;
 import org.apache.servicecomb.common.rest.filter.HttpServerFilter;
 import 
org.apache.servicecomb.common.rest.filter.HttpServerFilterBeforeSendResponseExecutor;
+import org.apache.servicecomb.common.rest.filter.inner.RestServerCodecFilter;
 import org.apache.servicecomb.common.rest.locator.OperationLocator;
 import org.apache.servicecomb.common.rest.locator.ServicePathManager;
 import org.apache.servicecomb.core.Const;
@@ -268,16 +268,8 @@ public abstract class AbstractRestInvocation {
 
   @SuppressWarnings("deprecation")
   protected void sendResponse(Response response) {
-if (response.getHeaders().getHeaderMap() != null) {
-  for (Entry> entry : 
response.getHeaders().getHeaderMap().entrySet()) {
-for (Object value : entry.getValue()) {
-  if (!entry.getKey().equalsIgnoreCase(HttpHeaders.CONTENT_LENGTH)
-  && !entry.getKey().equalsIgnoreCase("Transfer-Encoding")) {
-responseEx.addHeader(entry.getKey(), String.valueOf(value));
-  }
-}
-  }
-}
+
RestServerCodecFilter.copyHeadersToHttpResponse(response.getHeaders().getHeaderMap(),
 responseEx);
+
 responseEx.setStatus(response.getStatusCode(), response.getReasonPhrase());
 responseEx.setAttribute(RestConst.INVOCATION_HANDLER_RESPONSE, response);
 responseEx.setAttribute(RestConst.INVOCATION_HANDLER_PROCESSOR, 
produceProcessor);
diff --git 
a/core/src/main/java/org/apache/servicecomb/core/filter/FilterMeta.java 
b/common/common-rest/src/main/java/org/apache/servicecomb/common/rest/filter/RestFilterProvider.java
similarity index 60%
copy from core/src/main/java/org/apache/servicecomb/core/filter/FilterMeta.java
copy to 
common/common-rest/src/main/java/org/apache/servicecomb/common/rest/filter/RestFilterProvider.java
index 680ba45..b91a96e 100644
--- a/core/src/main/java/org/apache/servicecomb/core/filter/FilterMeta.java
+++ 
b/common/common-rest/src/main/java/org/apache/servicecomb/common/rest/filter/RestFilterProvider.java
@@ -14,26 +14,20 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
+package org.apache.servicecomb.common.rest.filter;
 
-package org.apache.servicecomb.core.filter;
+import java.util.Arrays;
+import java.util.List;
 
-import java.lang.annotation.Documented;
-import java.lang.annotation.ElementType;
-import java.lang.annotation.Inherited;
-import java.lang.annotation.Retention;
-import java.lang.annotation.RetentionPolicy;
-import java.lang.annotation.Target;
+import org.apache.servicecomb.common.rest.filter.inner.RestServerCodecFilter;
+import org.apache.servicecomb.core.filter.Filter;
+import org.apache.servicecomb.core.filter.FilterProvider;
 
-@Documented
-@Retention(RetentionPolicy.RUNTIME)
-@Target(ElementType.TYPE)
-@Inherited
-public @interface FilterMeta {
-  String name();
-
-  /**
-   *
-   * @return true to use same instance for all filter chains
-   */
-  boolean

[servicecomb-java-chassis] branch master updated (1566f1b -> 4637981)

2020-05-30 Thread wujimin
This is an automated email from the ASF dual-hosted git repository.

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


from 1566f1b  [SCB-1959] add rest invocation creator
 new ea0b85e  [SCB-1960]delete spring-boot-starter-discovery and 
spring-boot-starter-gateway
 new 4637981  [SCB-1960]remove all spring cloud related dependencies

The 2 revisions listed above as "new" are entirely new to this
repository and will be described in separate emails.  The revisions
listed as "add" were already present in the repository and have only
been added to this reference.


Summary of changes:
 coverage-reports/pom.xml   | 13 
 .../demo/localRegistryClient/Application.java  |  6 ++
 .../LocalRegistryServerTest.java   |  4 -
 .../demo-local-registry-server/pom.xml | 12 ---
 .../demo-multi-registries-server/pom.xml   | 12 ---
 .../demo-register-url-prefix-server/pom.xml| 12 ---
 .../demo-spring-boot-jaxrs-server/pom.xml  | 12 ---
 .../demo-spring-boot-pojo-client/pom.xml   | 12 ---
 .../demo-spring-boot-pojo-server/pom.xml   | 12 ---
 dependencies/bom/pom.xml   | 15 
 dependencies/default/pom.xml   |  9 ---
 distribution/pom.xml   | 13 
 spring-boot/pom.xml|  1 -
 spring-boot/spring-boot-common/pom.xml | 53 -
 .../springboot/common/AbstractDiscoveryClient.java | 73 -
 .../springboot/common/InstanceDiscoveryFilter.java | 78 ---
 .../pom.xml| 91 --
 .../starter/discovery/ScbDiscoveryClient.java  | 43 --
 .../discovery/ScbDiscoveryClientConfiguration.java | 36 -
 .../discovery/ScbRibbonClientConfiguration.java| 40 --
 .../starter/discovery/ScbRibbonConfiguration.java  | 34 
 .../ScbRibbonEndpointDiscoveryFilter.java  | 45 ---
 .../starter/discovery/ServiceCombServerList.java   | 61 ---
 .../starter/discovery/package-info.java| 17 
 .../src/main/resources/META-INF/spring.factories   | 24 --
 .../pom.xml| 62 ---
 spring-boot/spring-boot-starters/pom.xml   |  2 -
 27 files changed, 6 insertions(+), 786 deletions(-)
 delete mode 100644 spring-boot/spring-boot-common/pom.xml
 delete mode 100644 
spring-boot/spring-boot-common/src/main/java/org/apache/servicecomb/springboot/common/AbstractDiscoveryClient.java
 delete mode 100644 
spring-boot/spring-boot-common/src/main/java/org/apache/servicecomb/springboot/common/InstanceDiscoveryFilter.java
 delete mode 100644 
spring-boot/spring-boot-starters/java-chassis-spring-boot-starter-discovery/pom.xml
 delete mode 100644 
spring-boot/spring-boot-starters/java-chassis-spring-boot-starter-discovery/src/main/java/org/apache/servicecomb/springboot2/starter/discovery/ScbDiscoveryClient.java
 delete mode 100644 
spring-boot/spring-boot-starters/java-chassis-spring-boot-starter-discovery/src/main/java/org/apache/servicecomb/springboot2/starter/discovery/ScbDiscoveryClientConfiguration.java
 delete mode 100644 
spring-boot/spring-boot-starters/java-chassis-spring-boot-starter-discovery/src/main/java/org/apache/servicecomb/springboot2/starter/discovery/ScbRibbonClientConfiguration.java
 delete mode 100644 
spring-boot/spring-boot-starters/java-chassis-spring-boot-starter-discovery/src/main/java/org/apache/servicecomb/springboot2/starter/discovery/ScbRibbonConfiguration.java
 delete mode 100644 
spring-boot/spring-boot-starters/java-chassis-spring-boot-starter-discovery/src/main/java/org/apache/servicecomb/springboot2/starter/discovery/ScbRibbonEndpointDiscoveryFilter.java
 delete mode 100644 
spring-boot/spring-boot-starters/java-chassis-spring-boot-starter-discovery/src/main/java/org/apache/servicecomb/springboot2/starter/discovery/ServiceCombServerList.java
 delete mode 100644 
spring-boot/spring-boot-starters/java-chassis-spring-boot-starter-discovery/src/main/java/org/apache/servicecomb/springboot2/starter/discovery/package-info.java
 delete mode 100644 
spring-boot/spring-boot-starters/java-chassis-spring-boot-starter-discovery/src/main/resources/META-INF/spring.factories
 delete mode 100644 
spring-boot/spring-boot-starters/java-chassis-spring-boot-starter-gateway/pom.xml



[servicecomb-java-chassis] 02/02: [SCB-1960]remove all spring cloud related dependencies

2020-05-30 Thread wujimin
This is an automated email from the ASF dual-hosted git repository.

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

commit 46379811f2cf580ee2f1913dca62fd0b74f57304
Author: liubao 
AuthorDate: Sat May 30 15:11:48 2020 +0800

[SCB-1960]remove all spring cloud related dependencies
---
 .../servicecomb/demo/localRegistryClient/Application.java|  6 ++
 .../demo/localRegistryClient/LocalRegistryServerTest.java|  4 
 demo/demo-local-registry/demo-local-registry-server/pom.xml  | 12 
 .../demo-multi-registries-server/pom.xml | 12 
 .../demo-register-url-prefix-server/pom.xml  | 12 
 .../demo-spring-boot-jaxrs-server/pom.xml| 12 
 .../demo-spring-boot-pojo-client/pom.xml | 12 
 .../demo-spring-boot-pojo-server/pom.xml | 12 
 dependencies/default/pom.xml |  9 -
 9 files changed, 6 insertions(+), 85 deletions(-)

diff --git 
a/demo/demo-local-registry/demo-local-registry-client/src/main/java/org/apache/servicecomb/demo/localRegistryClient/Application.java
 
b/demo/demo-local-registry/demo-local-registry-client/src/main/java/org/apache/servicecomb/demo/localRegistryClient/Application.java
index 9ee37a8..fd40c66 100644
--- 
a/demo/demo-local-registry/demo-local-registry-client/src/main/java/org/apache/servicecomb/demo/localRegistryClient/Application.java
+++ 
b/demo/demo-local-registry/demo-local-registry-client/src/main/java/org/apache/servicecomb/demo/localRegistryClient/Application.java
@@ -18,6 +18,7 @@
 package org.apache.servicecomb.demo.localRegistryClient;
 
 import org.apache.servicecomb.demo.CategorizedTestCaseRunner;
+import org.apache.servicecomb.demo.TestMgr;
 import org.apache.servicecomb.springboot2.starter.EnableServiceComb;
 import org.springframework.boot.WebApplicationType;
 import org.springframework.boot.autoconfigure.SpringBootApplication;
@@ -30,6 +31,11 @@ public class Application {
 new 
SpringApplicationBuilder().sources(Application.class).web(WebApplicationType.SERVLET).build().run(args);
 
 runTest();
+
+TestMgr.summary();
+if (!TestMgr.errors().isEmpty()) {
+  throw new IllegalStateException("tests failed");
+}
   }
 
   public static void runTest() throws Exception {
diff --git 
a/demo/demo-local-registry/demo-local-registry-client/src/main/java/org/apache/servicecomb/demo/localRegistryClient/LocalRegistryServerTest.java
 
b/demo/demo-local-registry/demo-local-registry-client/src/main/java/org/apache/servicecomb/demo/localRegistryClient/LocalRegistryServerTest.java
index f0920bd..cee8dd9 100644
--- 
a/demo/demo-local-registry/demo-local-registry-client/src/main/java/org/apache/servicecomb/demo/localRegistryClient/LocalRegistryServerTest.java
+++ 
b/demo/demo-local-registry/demo-local-registry-client/src/main/java/org/apache/servicecomb/demo/localRegistryClient/LocalRegistryServerTest.java
@@ -55,10 +55,6 @@ public class LocalRegistryServerTest implements 
CategorizedTestCase {
 TestMgr.check("2", template
 
.getForObject("cse://demo-local-registry-server/register/url/prefix/getName?name=2",
 String.class));
-TestMgr.summary();
-if (!TestMgr.errors().isEmpty()) {
-  throw new IllegalStateException("tests failed");
-}
   }
 
   @Override
diff --git a/demo/demo-local-registry/demo-local-registry-server/pom.xml 
b/demo/demo-local-registry/demo-local-registry-server/pom.xml
index f4f092e..3b5f386 100644
--- a/demo/demo-local-registry/demo-local-registry-server/pom.xml
+++ b/demo/demo-local-registry/demo-local-registry-server/pom.xml
@@ -33,18 +33,6 @@
   
   
 
-  org.springframework.cloud
-  spring-cloud-commons
-
-
-  org.springframework.cloud
-  spring-cloud-context
-
-
-  org.springframework.cloud
-  spring-cloud-netflix-core
-
-
   javax.ws.rs
   javax.ws.rs-api
 
diff --git a/demo/demo-multi-registries/demo-multi-registries-server/pom.xml 
b/demo/demo-multi-registries/demo-multi-registries-server/pom.xml
index 41961ec..57bc902 100644
--- a/demo/demo-multi-registries/demo-multi-registries-server/pom.xml
+++ b/demo/demo-multi-registries/demo-multi-registries-server/pom.xml
@@ -33,18 +33,6 @@
   
   
 
-  org.springframework.cloud
-  spring-cloud-commons
-
-
-  org.springframework.cloud
-  spring-cloud-context
-
-
-  org.springframework.cloud
-  spring-cloud-netflix-core
-
-
   javax.ws.rs
   javax.ws.rs-api
 
diff --git 
a/demo/demo-register-url-prefix/demo-register-url-prefix-server/pom.xml 
b/demo/demo-register-url-prefix/demo-register-url-prefix-server/pom.xml
index d4c1b24..0844116 100644
--- a/demo/demo-register-url-prefix/demo-register-url-prefix-server/pom

[servicecomb-java-chassis] 01/02: [SCB-1960]delete spring-boot-starter-discovery and spring-boot-starter-gateway

2020-05-30 Thread wujimin
This is an automated email from the ASF dual-hosted git repository.

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

commit ea0b85e6bf64a14d7b26738cb69bed36d9c8926c
Author: liubao 
AuthorDate: Sat May 30 11:18:13 2020 +0800

[SCB-1960]delete spring-boot-starter-discovery and 
spring-boot-starter-gateway
---
 coverage-reports/pom.xml   | 13 
 dependencies/bom/pom.xml   | 15 
 distribution/pom.xml   | 13 
 spring-boot/pom.xml|  1 -
 spring-boot/spring-boot-common/pom.xml | 53 -
 .../springboot/common/AbstractDiscoveryClient.java | 73 -
 .../springboot/common/InstanceDiscoveryFilter.java | 78 ---
 .../pom.xml| 91 --
 .../starter/discovery/ScbDiscoveryClient.java  | 43 --
 .../discovery/ScbDiscoveryClientConfiguration.java | 36 -
 .../discovery/ScbRibbonClientConfiguration.java| 40 --
 .../starter/discovery/ScbRibbonConfiguration.java  | 34 
 .../ScbRibbonEndpointDiscoveryFilter.java  | 45 ---
 .../starter/discovery/ServiceCombServerList.java   | 61 ---
 .../starter/discovery/package-info.java| 17 
 .../src/main/resources/META-INF/spring.factories   | 24 --
 .../pom.xml| 62 ---
 spring-boot/spring-boot-starters/pom.xml   |  2 -
 18 files changed, 701 deletions(-)

diff --git a/coverage-reports/pom.xml b/coverage-reports/pom.xml
index f42cca4..133390a 100644
--- a/coverage-reports/pom.xml
+++ b/coverage-reports/pom.xml
@@ -234,23 +234,10 @@
 
 
   org.apache.servicecomb
-  java-chassis-spring-boot-common
-
-
-
-  org.apache.servicecomb
   java-chassis-spring-boot-starter
 
 
   org.apache.servicecomb
-  java-chassis-spring-boot-starter-discovery
-
-
-  org.apache.servicecomb
-  java-chassis-spring-boot-starter-gateway
-
-
-  org.apache.servicecomb
   java-chassis-spring-boot-starter-servlet
 
 
diff --git a/dependencies/bom/pom.xml b/dependencies/bom/pom.xml
index 7b39a5b..83383dc 100644
--- a/dependencies/bom/pom.xml
+++ b/dependencies/bom/pom.xml
@@ -274,26 +274,11 @@
   
   
 org.apache.servicecomb
-java-chassis-spring-boot-common
-${project.version}
-  
-  
-org.apache.servicecomb
 java-chassis-spring-boot-starter
 ${project.version}
   
   
 org.apache.servicecomb
-java-chassis-spring-boot-starter-discovery
-${project.version}
-  
-  
-org.apache.servicecomb
-java-chassis-spring-boot-starter-gateway
-${project.version}
-  
-  
-org.apache.servicecomb
 java-chassis-spring-boot-starter-servlet
 ${project.version}
   
diff --git a/distribution/pom.xml b/distribution/pom.xml
index 183d94e..2b17138 100644
--- a/distribution/pom.xml
+++ b/distribution/pom.xml
@@ -232,23 +232,10 @@
 
 
   org.apache.servicecomb
-  java-chassis-spring-boot-common
-
-
-
-  org.apache.servicecomb
   java-chassis-spring-boot-starter
 
 
   org.apache.servicecomb
-  java-chassis-spring-boot-starter-discovery
-
-
-  org.apache.servicecomb
-  java-chassis-spring-boot-starter-gateway
-
-
-  org.apache.servicecomb
   java-chassis-spring-boot-starter-servlet
 
 
diff --git a/spring-boot/pom.xml b/spring-boot/pom.xml
index 7e6783f..9e6ce68 100644
--- a/spring-boot/pom.xml
+++ b/spring-boot/pom.xml
@@ -32,7 +32,6 @@
   Java Chassis::Spring Boot
 
   
-spring-boot-common
 spring-boot-starters
   
 
diff --git a/spring-boot/spring-boot-common/pom.xml 
b/spring-boot/spring-boot-common/pom.xml
deleted file mode 100644
index 00539dd..000
--- a/spring-boot/spring-boot-common/pom.xml
+++ /dev/null
@@ -1,53 +0,0 @@
-
-
-
-http://maven.apache.org/POM/4.0.0;
-  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance;
-  xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 
http://maven.apache.org/xsd/maven-4.0.0.xsd;>
-  
-java-chassis-spring-boot
-org.apache.servicecomb
-2.1.0-SNAPSHOT
-  
-
-  4.0.0
-
-  java-chassis-spring-boot-common
-  Java Chassis::Foundations::Spring Boot Common
-
-  
-
-  org.apache.servicecomb
-  registry-service-center
-
-  
-
-  
-
-  
-org.apache.maven.plugins
-maven-compiler-plugin
-
-  1.8
-  1.8
-
-  
-
-  
-
-
\ No newline at end of file
diff --git 
a/spring-boot/spring-boot-common/src/main/java/org/apache/servicecomb/springboot/common/AbstractDiscoveryClient.java
 
b/spring-boot/spring-boot-common/src/main/ja

[servicecomb-java-chassis] branch master updated (bc6afcb -> 199f850)

2020-05-29 Thread wujimin
This is an automated email from the ASF dual-hosted git repository.

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


from bc6afcb  [SCB-1953] tiny code improve
 new 54b40d6  [SCB-1954]coverage report dependencies update and remove no 
use test project
 new 538ca8d  [SCB-1954]fix artifact name error
 new 199f850  [SCB-1954]coverage do not include tests code itself and some 
minor fix

The 3 revisions listed above as "new" are entirely new to this
repository and will be described in separate emails.  The revisions
listed as "add" were already present in the repository and have only
been added to this reference.


Summary of changes:
 coverage-reports/pom.xml   | 461 ++---
 demo/demo-pojo/pojo-tests/pom.xml  |  47 ---
 .../integration/PojoReferenceIntegrationTest.java  |  43 --
 .../demo/integration/SomePojoService.java  |  36 --
 .../demo/integration/SomePojoTestMain.java |  40 --
 .../src/test/resources/microservice.yaml   |  29 --
 demo/demo-pojo/pom.xml |   1 -
 .../demo-spring-boot-springmvc-client/pom.xml  |   2 +-
 .../demo-spring-boot-springmvc-server/pom.xml  |   2 +-
 distribution/pom.xml   |   7 +-
 .../servicecomb/registry/RegistrationManager.java  |   2 +-
 integration-tests/it-common-service/enable-it-jar  |  16 -
 integration-tests/it-common-service/pom.xml|  41 --
 .../apache/servicecomb/it/CommonServiceMain.java   |  23 -
 integration-tests/pom.xml  |   1 -
 .../schemadiscovery/SchemaDiscoveryEndpoint.java   |   3 +-
 16 files changed, 402 insertions(+), 352 deletions(-)
 delete mode 100644 demo/demo-pojo/pojo-tests/pom.xml
 delete mode 100644 
demo/demo-pojo/pojo-tests/src/test/java/org/apache/servicecomb/demo/integration/PojoReferenceIntegrationTest.java
 delete mode 100644 
demo/demo-pojo/pojo-tests/src/test/java/org/apache/servicecomb/demo/integration/SomePojoService.java
 delete mode 100644 
demo/demo-pojo/pojo-tests/src/test/java/org/apache/servicecomb/demo/integration/SomePojoTestMain.java
 delete mode 100644 
demo/demo-pojo/pojo-tests/src/test/resources/microservice.yaml
 delete mode 100644 integration-tests/it-common-service/enable-it-jar
 delete mode 100644 integration-tests/it-common-service/pom.xml
 delete mode 100644 
integration-tests/it-common-service/src/main/java/org/apache/servicecomb/it/CommonServiceMain.java



[servicecomb-java-chassis] 02/03: [SCB-1954]fix artifact name error

2020-05-29 Thread wujimin
This is an automated email from the ASF dual-hosted git repository.

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

commit 538ca8dbb0094124bae56b8d8506a062f5ea5a97
Author: liubao 
AuthorDate: Fri May 29 09:44:25 2020 +0800

[SCB-1954]fix artifact name error
---
 coverage-reports/pom.xml | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/coverage-reports/pom.xml b/coverage-reports/pom.xml
index 514cd21..b6f20a2 100644
--- a/coverage-reports/pom.xml
+++ b/coverage-reports/pom.xml
@@ -527,7 +527,7 @@
 
 
   org.apache.servicecomb.tests
-  pojo-tests
+  pojo-test
   ${project.version}
 
 



[servicecomb-java-chassis] 01/03: [SCB-1954]coverage report dependencies update and remove no use test project

2020-05-29 Thread wujimin
This is an automated email from the ASF dual-hosted git repository.

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

commit 54b40d6d575770c93859c67b2c7e3e7781468974
Author: liubao 
AuthorDate: Thu May 28 21:38:41 2020 +0800

[SCB-1954]coverage report dependencies update and remove no use test project
---
 coverage-reports/pom.xml   | 415 +
 demo/demo-pojo/pojo-tests/pom.xml  |  47 ---
 .../integration/PojoReferenceIntegrationTest.java  |  43 ---
 .../demo/integration/SomePojoService.java  |  36 --
 .../demo/integration/SomePojoTestMain.java |  40 --
 .../src/test/resources/microservice.yaml   |  29 --
 demo/demo-pojo/pom.xml |   1 -
 .../demo-spring-boot-springmvc-client/pom.xml  |   2 +-
 .../demo-spring-boot-springmvc-server/pom.xml  |   2 +-
 distribution/pom.xml   |   7 +-
 integration-tests/it-common-service/enable-it-jar  |  16 -
 integration-tests/it-common-service/pom.xml|  41 --
 .../apache/servicecomb/it/CommonServiceMain.java   |  23 --
 integration-tests/pom.xml  |   1 -
 14 files changed, 352 insertions(+), 351 deletions(-)

diff --git a/coverage-reports/pom.xml b/coverage-reports/pom.xml
index 9e7a09a..514cd21 100644
--- a/coverage-reports/pom.xml
+++ b/coverage-reports/pom.xml
@@ -30,33 +30,93 @@
   jar
 
   
+
+
+
+  org.apache.servicecomb.archetypes
+  business-service-jaxrs-archetype
+
+
+  org.apache.servicecomb.archetypes
+  business-service-pojo-archetype
+
+
+  org.apache.servicecomb.archetypes
+  business-service-spring-boot2-starter-archetype
+
+
+  org.apache.servicecomb.archetypes
+  business-service-springmvc-archetype
+
+
+
 
   org.apache.servicecomb
-  foundation-common
+  kie-client
 
 
   org.apache.servicecomb
-  foundation-protobuf
+  service-center-client
 
+
+
 
   org.apache.servicecomb
-  foundation-registry
+  common-access-log
 
 
   org.apache.servicecomb
-  foundation-ssl
+  common-protobuf
 
 
   org.apache.servicecomb
-  foundation-config
+  common-rest
+
+
+
+
+  org.apache.servicecomb
+  java-chassis-core
 
+
+
 
   org.apache.servicecomb
   deployment
 
+
+
+
+  org.apache.servicecomb
+  config-apollo
+
 
   org.apache.servicecomb
-  foundation-vertx
+  config-cc
+
+
+  org.apache.servicecomb
+  config-kie
+
+
+  org.apache.servicecomb
+  config-nacos
+
+
+
+
+  org.apache.servicecomb
+  edge-core
+
+
+
+
+  org.apache.servicecomb
+  foundation-common
+
+
+  org.apache.servicecomb
+  foundation-config
 
 
   org.apache.servicecomb
@@ -64,18 +124,40 @@
 
 
   org.apache.servicecomb
-  metrics-core
+  foundation-protobuf
 
 
   org.apache.servicecomb
-  java-chassis-core
+  foundation-registry
+
+
+  org.apache.servicecomb
+  foundation-ssl
+
+
+  org.apache.servicecomb
+  foundation-test-scaffolding
+
+
+  org.apache.servicecomb
+  foundation-vertx
 
+
+
 
   org.apache.servicecomb
   handler-bizkeeper
 
 
   org.apache.servicecomb
+  handler-fault-injection
+
+
+  org.apache.servicecomb
+  handler-flowcontrol-qps
+
+
+  org.apache.servicecomb
   handler-loadbalance
 
 
@@ -84,42 +166,107 @@
 
 
   org.apache.servicecomb
-  handler-flowcontrol-qps
+  handler-router
 
 
   org.apache.servicecomb
-  handler-fault-injection
+  handler-tracing-zipkin
 
+
+
 
   org.apache.servicecomb
-  common-rest
+  inspector
 
+
+
 
   org.apache.servicecomb
-  transport-common
+  metrics-core
 
 
   org.apache.servicecomb
-  transport-rest-client
+  metrics-prometheus
 
+
+
 
   org.apache.servicecomb
-  transport-rest-vertx
+  provider-jaxrs
 
 
   org.apache.servicecomb
-  transport-rest-servlet
+  provider-pojo
 
 
   org.apache.servicecomb
-  transport-highway
+  provider-rest-common
 
 
   org.apache.servicecomb
-  common-protobuf
+  provider-springmvc
+
+
+
+
+  org.apache.servicecomb
+  registry-local
+
+
+  org.apache.servicecomb
+  registry-schema-discovery
+
+
+  org.apache.servicecomb
+  registry-service-center
+
+
+  org.apache.servicecomb
+  registry-zero-config
+
+
+
+
+  org.apache.servicecomb
+  solution-basic

[servicecomb-java-chassis] 03/03: [SCB-1954]coverage do not include tests code itself and some minor fix

2020-05-29 Thread wujimin
This is an automated email from the ASF dual-hosted git repository.

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

commit 199f8508f6bd210f27e0a699314464f667b5872d
Author: liubao 
AuthorDate: Fri May 29 12:05:28 2020 +0800

[SCB-1954]coverage do not include tests code itself and some minor fix
---
 coverage-reports/pom.xml   | 48 ++
 .../servicecomb/registry/RegistrationManager.java  |  2 +-
 .../schemadiscovery/SchemaDiscoveryEndpoint.java   |  3 +-
 3 files changed, 51 insertions(+), 2 deletions(-)

diff --git a/coverage-reports/pom.xml b/coverage-reports/pom.xml
index b6f20a2..f42cca4 100644
--- a/coverage-reports/pom.xml
+++ b/coverage-reports/pom.xml
@@ -337,151 +337,179 @@
   org.apache.servicecomb.demo
   crossapp-client
   ${project.version}
+  test
 
 
   org.apache.servicecomb.demo
   crossapp-server
   ${project.version}
+  test
 
 
 
   org.apache.servicecomb.demo
   authentication
   ${project.version}
+  test
 
 
   org.apache.servicecomb.demo
   business-1-0-0
   ${project.version}
+  test
 
 
   org.apache.servicecomb.demo
   business-1-1-0
   ${project.version}
+  test
 
 
   org.apache.servicecomb.demo
   business-2-0-0
   ${project.version}
+  test
 
 
   org.apache.servicecomb.demo
   consumer
   ${project.version}
+  test
 
 
   org.apache.servicecomb.demo
   edge-service
   ${project.version}
+  test
 
 
   org.apache.servicecomb.demo
   model
   ${project.version}
+  test
 
 
 
   org.apache.servicecomb.demo
   jaxrs-client
   ${project.version}
+  test
 
 
   org.apache.servicecomb.demo
   jaxrs-server
   ${project.version}
+  test
 
 
 
   org.apache.servicecomb.demo
   demo-local-registry-client
   ${project.version}
+  test
 
 
   org.apache.servicecomb.demo
   demo-local-registry-server
   ${project.version}
+  test
 
 
 
   org.apache.servicecomb.demo
   demo-multi-registries-client
   ${project.version}
+  test
 
 
   org.apache.servicecomb.demo
   demo-multi-registries-server
   ${project.version}
+  test
 
 
 
   org.apache.servicecomb.demo
   pojo-client
   ${project.version}
+  test
 
 
   org.apache.servicecomb.demo
   pojo-server
   ${project.version}
+  test
 
 
 
   org.apache.servicecomb.demo
   demo-register-url-prefix-client
   ${project.version}
+  test
 
 
   org.apache.servicecomb.demo
   demo-register-url-prefix-server
   ${project.version}
+  test
 
 
 
   org.apache.servicecomb.demo
   demo-schema
   ${project.version}
+  test
 
 
 
   org.apache.servicecomb.demo
   demo-spring-boot-jaxrs-client
   ${project.version}
+  test
 
 
   org.apache.servicecomb.demo
   demo-spring-boot-jaxrs-server
   ${project.version}
+  test
 
 
   org.apache.servicecomb.demo
   demo-spring-boot-springmvc-client
   ${project.version}
+  test
 
 
   org.apache.servicecomb.demo
   demo-spring-boot-springmvc-server
   ${project.version}
+  test
 
 
 
   org.apache.servicecomb.demo
   demo-spring-boot-pojo-client
   ${project.version}
+  test
 
 
   org.apache.servicecomb.demo
   demo-spring-boot-pojo-server
   ${project.version}
+  test
 
 
 
   org.apache.servicecomb.demo
   springmvc-client
   ${project.version}
+  test
 
 
   org.apache.servicecomb.demo
   springmvc-server
   ${project.version}
+  test
 
 
 
@@ -489,102 +517,122 @@
   org.apache.servicecomb.tests
   dynamic-config-tests
   ${project.version}
+  test
 
 
   org.apache.servicecomb.tests
   it-common
   ${project.version}
+  test
 
 
   org.apache.servicecomb.tests
   it-consumer
   ${project.version}
+  test
 
 
   org.apache.servicecomb.tests
   it-edge
   ${project.version}
+  test
 
 
   org.apache.servicecomb.tests
   it-producer
   ${project.version}
+  test
 
 
   org.apache.servicecomb.tests
   it-producer-deploy-springboot2-servlet
   ${project.version}
+  test
 
 
   org.apache.servicecomb.tests
   it-producer-deploy-springboot2-standalone
   ${project.version}
+  test
 
 
   org.apache.servicecomb.tests
   jaxrs-tests
   ${project.version}
+  test
 
 
   org.apache.servicecomb.tests
   pojo

[servicecomb-java-chassis] branch master updated: [SCB-1287]refactor edge dispatcher to make them more extensible

2019-05-20 Thread wujimin
This is an automated email from the ASF dual-hosted git repository.

wujimin 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 7d01439  [SCB-1287]refactor edge dispatcher to make them more 
extensible
7d01439 is described below

commit 7d0143984e1013684a368ce38baf89a9765d7ad1
Author: liubao 
AuthorDate: Fri May 17 12:03:42 2019 +0800

[SCB-1287]refactor edge dispatcher to make them more extensible
---
 .../java/org/apache/servicecomb/edge/core/AbstractEdgeDispatcher.java | 4 
 .../java/org/apache/servicecomb/edge/core/DefaultEdgeDispatcher.java  | 2 +-
 .../org/apache/servicecomb/edge/core/URLMappedEdgeDispatcher.java | 2 +-
 .../apache/servicecomb/transport/rest/vertx/VertxRestDispatcher.java  | 4 ++--
 4 files changed, 8 insertions(+), 4 deletions(-)

diff --git 
a/edge/edge-core/src/main/java/org/apache/servicecomb/edge/core/AbstractEdgeDispatcher.java
 
b/edge/edge-core/src/main/java/org/apache/servicecomb/edge/core/AbstractEdgeDispatcher.java
index 689da10..7cdc43e 100644
--- 
a/edge/edge-core/src/main/java/org/apache/servicecomb/edge/core/AbstractEdgeDispatcher.java
+++ 
b/edge/edge-core/src/main/java/org/apache/servicecomb/edge/core/AbstractEdgeDispatcher.java
@@ -34,6 +34,10 @@ import io.vertx.ext.web.RoutingContext;
 public abstract class AbstractEdgeDispatcher extends 
AbstractVertxHttpDispatcher {
   private static final Logger LOGGER = 
LoggerFactory.getLogger(AbstractEdgeDispatcher.class);
 
+  protected EdgeInvocation createEdgeInvocation() {
+return new EdgeInvocation();
+  }
+
   protected void onFailure(RoutingContext context) {
 LOGGER.error("edge server failed.", context.failure());
 HttpServerResponse response = context.response();
diff --git 
a/edge/edge-core/src/main/java/org/apache/servicecomb/edge/core/DefaultEdgeDispatcher.java
 
b/edge/edge-core/src/main/java/org/apache/servicecomb/edge/core/DefaultEdgeDispatcher.java
index 20ecb21..b6eadfe 100644
--- 
a/edge/edge-core/src/main/java/org/apache/servicecomb/edge/core/DefaultEdgeDispatcher.java
+++ 
b/edge/edge-core/src/main/java/org/apache/servicecomb/edge/core/DefaultEdgeDispatcher.java
@@ -76,7 +76,7 @@ public class DefaultEdgeDispatcher extends 
AbstractEdgeDispatcher {
 String microserviceName = pathParams.get("param0");
 String path = Utils.findActualPath(context.request().path(), 
prefixSegmentCount);
 
-EdgeInvocation edgeInvocation = new EdgeInvocation();
+EdgeInvocation edgeInvocation =  createEdgeInvocation();
 if (withVersion) {
   String pathVersion = pathParams.get("param1");
   
edgeInvocation.setVersionRule(versionMapper.getOrCreate(pathVersion).getVersionRule());
diff --git 
a/edge/edge-core/src/main/java/org/apache/servicecomb/edge/core/URLMappedEdgeDispatcher.java
 
b/edge/edge-core/src/main/java/org/apache/servicecomb/edge/core/URLMappedEdgeDispatcher.java
index f8c1695..5f9cfb7 100644
--- 
a/edge/edge-core/src/main/java/org/apache/servicecomb/edge/core/URLMappedEdgeDispatcher.java
+++ 
b/edge/edge-core/src/main/java/org/apache/servicecomb/edge/core/URLMappedEdgeDispatcher.java
@@ -151,7 +151,7 @@ public class URLMappedEdgeDispatcher extends 
AbstractEdgeDispatcher {
 
 String path = Utils.findActualPath(context.request().path(), 
configurationItem.prefixSegmentCount);
 
-EdgeInvocation edgeInvocation = new EdgeInvocation();
+EdgeInvocation edgeInvocation = createEdgeInvocation();
 if (configurationItem.versionRule != null) {
   edgeInvocation.setVersionRule(configurationItem.versionRule);
 }
diff --git 
a/transports/transport-rest/transport-rest-vertx/src/main/java/org/apache/servicecomb/transport/rest/vertx/VertxRestDispatcher.java
 
b/transports/transport-rest/transport-rest-vertx/src/main/java/org/apache/servicecomb/transport/rest/vertx/VertxRestDispatcher.java
index 20f70bd..b90bc78 100644
--- 
a/transports/transport-rest/transport-rest-vertx/src/main/java/org/apache/servicecomb/transport/rest/vertx/VertxRestDispatcher.java
+++ 
b/transports/transport-rest/transport-rest-vertx/src/main/java/org/apache/servicecomb/transport/rest/vertx/VertxRestDispatcher.java
@@ -68,7 +68,7 @@ public class VertxRestDispatcher extends 
AbstractVertxHttpDispatcher {
 
router.route().failureHandler(this::failureHandler).handler(this::onRequest);
   }
 
-  private void failureHandler(RoutingContext context) {
+  protected void failureHandler(RoutingContext context) {
 LOGGER.error("http server failed.", context.failure());
 
 AbstractRestInvocation restProducerInvocation = 
context.get(RestConst.REST_PRODUCER_INVOCATION);
@@ -182,7 +182,7 @@ public class VertxRestDispatcher extends 
AbstractVertxHttpDispatcher {
 context.response().close();
   }
 
-  private void onRequest(RoutingContext context) {
+  protected void onRequest(RoutingContext context) {
 i

[servicecomb-java-chassis] branch weak-contract-type updated (4a3e3c0 -> 938f8d8)

2019-05-20 Thread wujimin
This is an automated email from the ASF dual-hosted git repository.

wujimin pushed a change to branch weak-contract-type
in repository https://gitbox.apache.org/repos/asf/servicecomb-java-chassis.git.


 discard 4a3e3c0  [SCB-1286][WIP][WEAK] support only generate response for a 
operation
 discard a86db3e  [SCB-1285][WIP][WEAK] enhance ResponseTypeProcessor to 
support extractResponseType
 discard 72dbb7e  [SCB-1284][WIP][WEAK] operationId should not be empty
 discard f37f882  [SCB-1283][WIP][WEAK] avoid generate empty property by 
SwaggerDefinition
omit 6516edb  [SCB-1269][WIP][WEAK] update UT
omit 69bf689  [SCB-1269][WIP][WEAK] delete useless files
omit 8bc9ed5  [SCB-1269][WIP][WEAK] swaggerProducer arguments not depend on 
swagger interface
omit d0bafd8  [SCB-1268][WIP][WEAK] update UT
omit 3511995  [SCB-1268][WIP][WEAK] publish Microservice life event
omit ea259f9  [SCB-1268][WIP][WEAK] delete metas from AppManager, will 
manage them by VendorExtensions
omit ba0d8bb  [SCB-1268][WIP][WEAK] MicroserviceNameParser not depend on 
static variable
omit 60d1fc7  [SCB-1268][WIP][WEAK] format code
omit 45dc098  [SCB-1117][WIP][WEAK] UT for Springmvc mode
omit d4c2a56  [SCB-1117][WIP][WEAK] UT for Jaxrs mode
omit c18e234  [SCB-1117][WIP][WEAK] UT for Pojo mode
omit 6059851  [SCB-1117][WIP][WEAK] prepare UT model and consumer interfaces
omit a18b482  [SCB-1117][WIP][WEAK] delete useless UT files
omit 9e78c06  [SCB-1117][WIP][WEAK] delete useless files
omit 21c9bdc  [SCB-1117][WIP][WEAK] SwaggerConsumer arguments not depend on 
swagger interface
omit 6f04624  [SCB-1256][WIP][WEAK] rename ConcreteInterfaceRegister to 
ConcreteTypeRegister
omit 8af4ccf  [SCB-1252][WIP][WEAK] change element of HttpParameterType to 
uppercase
omit 3b2468b  [SCB-1248][WIP][WEAK] update unit test
omit 97ec4d9  [SCB-1248][WIP][WEAK] reduce EventBus subscribers
omit cc2d5e3  [SCB-1248][WIP][WEAK] add MicroserviceMeta
omit 2656a76  [SCB-1248][WIP][WEAK] add SwaggerLoader
omit 05601da  [SCB-1248][WIP][WEAK] remove MicroserviceVersionFactory
omit 78613da  [SCB-1248][WIP][WEAK] improve config log
omit 1b610f0  [SCB-1248][WIP][WEAK] make local registry easier to use
omit bbb748c  [SCB-1228][WIP][WEAK] update chassis pom.xml to present 
interface argument name
omit e214252  [SCB-1228][WIP][WEAK] update unit test
omit e660206  [SCB-1228][WIP][WEAK] update SPI definition
omit 4e8f299  [SCB-1228][WIP][WEAK] springmvc processors switch to new 
mechanism
omit 3e06938  [SCB-1228][WIP][WEAK] swagger springmvc generator switch to 
new mechanism
omit 65e6004  [SCB-1228][WIP][WEAK] delete swagger to class logic
omit a02b2aa  [SCB-1227][WIP][WEAK] update unit test
omit 6b5f0a8  [SCB-1227][WIP][WEAK] update SPI definition
omit 90dc849  [SCB-1227][WIP][WEAK] jaxrs processors switch to new mechanism
omit 8734d71  [SCB-1227][WIP][WEAK] swagger jaxrs generator switch to new 
mechanism
omit 00e53a3  [SCB-1242] add spring data plugin project
omit dd7e3d2  [SCB-1242] swagger generator and json deserializer prepare to 
support spring data
omit 3a2559a  [SCB-1225][WIP][WEAK] fix by review comments
omit 0b9463b  [SCB-1225][WIP][WEAK] remove unnecessary dependency of spring
omit 81c8d87  [SCB-1225][WIP][WEAK] update unit test cases
omit b8a5880  [SCB-1225][WIP][WEAK] SPI definition switch to new mechanism
omit 627f4a1  [SCB-1225][WIP][WEAK] delete useless files
omit 81b1faf  [SCB-1225][WIP][WEAK] create abstract rest mode generator
omit 84bb73a  [SCB-1225][WIP][WEAK] create pojo mode generator
omit 225925b  [SCB-1225][WIP][WEAK] unit test utils switch to new mechanism
omit 3476385  [SCB-1225][WIP][WEAK] response generator switch to new 
mechanism
omit d0ed73d  [SCB-1225][WIP][WEAK] parameter generator switch to new 
mechanism
omit ee06599  [SCB-1225][WIP][WEAK] class and method annotation switch to 
new mechanism
omit a56bb81  [SCB-1225][WIP][WEAK] create basic generator implementation
omit 6a93b14  [SCB-1225][WIP][WEAK] define new generator interfaces
omit 4be28c2  [SCB-1225][WIP][WEAK] delete swagger to class logic
omit 2536b5b  [SCB-1213][WIP][WEAK] swagger generator placeholder resolver 
not depend on spring
omit c994fb4  [SC-1214][WIP][WEAK] change weak-contract-type branch version 
to weak-contract-type-SNAPSHOT
 add cfd26b9  SCB-1275 Fixed the starting error of bmi example
 add 8ef4ca9  [SCB-1277]make sure demo and samples are normal
 add b5c1bba  [SCB-1280] remove unnecessary class cast
 add 622297b  [SCB-1280] add IT for nested List params
 new 10f2ae5  [SC-1214][WIP][WEAK] change weak-contract-type branch version 
to weak-contract-type-SNAPSHOT
 new 4eb6aba  [SCB-1213][WIP][WEAK] swagger generator placeholder resolver 
not depend on spring
 new f73c165  [SCB-1225][WIP][WEAK] delete swagger to class logic
 new 7b46cfe

[servicecomb-java-chassis] 02/02: [SCB-1280] add IT for nested List params

2019-05-08 Thread wujimin
This is an automated email from the ASF dual-hosted git repository.

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

commit 622297b5fdf7818bcdb61688d51ea337bc24a2c3
Author: yaohaishi 
AuthorDate: Wed May 8 16:30:09 2019 +0800

[SCB-1280] add IT for nested List params
---
 .../org/apache/servicecomb/it/schema/User.java | 25 +
 .../servicecomb/it/testcase/base/TestGeneric.java  | 65 ++
 .../servicecomb/it/schema/GenericSchema.java   | 16 ++
 3 files changed, 106 insertions(+)

diff --git 
a/integration-tests/it-common/src/main/java/org/apache/servicecomb/it/schema/User.java
 
b/integration-tests/it-common/src/main/java/org/apache/servicecomb/it/schema/User.java
index 3f87a94..f9b38a8 100644
--- 
a/integration-tests/it-common/src/main/java/org/apache/servicecomb/it/schema/User.java
+++ 
b/integration-tests/it-common/src/main/java/org/apache/servicecomb/it/schema/User.java
@@ -16,6 +16,9 @@
  */
 package org.apache.servicecomb.it.schema;
 
+import java.util.Arrays;
+import java.util.Objects;
+
 import org.apache.servicecomb.foundation.common.utils.JsonUtils;
 
 import com.fasterxml.jackson.core.JsonProcessingException;
@@ -73,4 +76,26 @@ public class User {
   throw new IllegalStateException(e);
 }
   }
+
+  @Override
+  public boolean equals(Object o) {
+if (this == o) {
+  return true;
+}
+if (o == null || getClass() != o.getClass()) {
+  return false;
+}
+User user = (User) o;
+return age == user.age &&
+index == user.index &&
+name == null ? user.name == null : name.equals(user.name) &&
+names == null ? user.names == null : Arrays.equals(names, user.names);
+  }
+
+  @Override
+  public int hashCode() {
+int result = Objects.hash(name, age, index);
+result = 31 * result + Arrays.hashCode(names);
+return result;
+  }
 }
diff --git 
a/integration-tests/it-consumer/src/main/java/org/apache/servicecomb/it/testcase/base/TestGeneric.java
 
b/integration-tests/it-consumer/src/main/java/org/apache/servicecomb/it/testcase/base/TestGeneric.java
index 276bd37..aeea1b7 100644
--- 
a/integration-tests/it-consumer/src/main/java/org/apache/servicecomb/it/testcase/base/TestGeneric.java
+++ 
b/integration-tests/it-consumer/src/main/java/org/apache/servicecomb/it/testcase/base/TestGeneric.java
@@ -17,9 +17,11 @@
 package org.apache.servicecomb.it.testcase.base;
 
 import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertThat;
 
 import java.text.SimpleDateFormat;
 import java.util.ArrayList;
+import java.util.Arrays;
 import java.util.Date;
 import java.util.HashMap;
 import java.util.List;
@@ -32,6 +34,7 @@ import javax.xml.ws.Holder;
 import org.apache.servicecomb.it.Consumers;
 import org.apache.servicecomb.it.schema.Generic;
 import org.apache.servicecomb.it.schema.User;
+import org.hamcrest.Matchers;
 import org.junit.Test;
 import org.springframework.http.HttpStatus;
 
@@ -54,6 +57,10 @@ public class TestGeneric {
 Generic>> genericMapList(Generic>> mapListGeneric);
 
 Generic>> genericMapListUser(Generic>> mapListUserGeneric);
+
+List> genericNestedListString(List> 
nestedListString);
+
+List> genericNestedListUser(List> nestedListUser);
   }
 
   private static Consumers consumers = new Consumers<>("generic", 
GenericIntf.class);
@@ -255,4 +262,62 @@ public class TestGeneric {
 String test = result.value.get("test").get(0).jsonString();
 assertEquals(test, expectUserStr);
   }
+
+  @Test
+  public void testGenericNestedListString_intfAndRt() {
+ArrayList> nestedListString = new ArrayList<>();
+nestedListString.add(Arrays.asList("abc", "def"));
+nestedListString.add(Arrays.asList("ghi", "jkl"));
+
+List> response = 
consumers.getIntf().genericNestedListString(nestedListString);
+assertEquals(2, response.size());
+assertThat(response.get(0), Matchers.contains("abc", "def"));
+assertThat(response.get(1), Matchers.contains("ghi", "jkl"));
+
+@SuppressWarnings("unchecked")
+List> response2 = consumers.getSCBRestTemplate()
+.postForObject("/genericNestedListString", nestedListString, 
List.class);
+assertEquals(2, response2.size());
+assertThat(response2.get(0), Matchers.contains("abc", "def"));
+assertThat(response2.get(1), Matchers.contains("ghi", "jkl"));
+  }
+
+  @Test
+  public void testGenericNestedListUser_intfAndRt() {
+User user1 = new User();
+user1.setAge(1);
+user1.setIndex(1);
+user1.setName("abc");
+user1.setNames(new String[] {"1", "2", "3"});
+User user2 = new User();
+user2.setAge(2);
+user2.set

[servicecomb-java-chassis] 01/02: [SCB-1280] remove unnecessary class cast

2019-05-08 Thread wujimin
This is an automated email from the ASF dual-hosted git repository.

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

commit b5c1bbabfe64a7a695e8a9eff9f73bff798fcab5
Author: yaohaishi 
AuthorDate: Wed May 8 16:27:37 2019 +0800

[SCB-1280] remove unnecessary class cast
---
 .../swagger/generator/core/OperationGenerator.java |  2 +-
 .../generator/core/TestOperationGenerator.java | 70 ++
 .../swagger/invocation/converter/ConverterMgr.java |  2 +-
 3 files changed, 61 insertions(+), 13 deletions(-)

diff --git 
a/swagger/swagger-generator/generator-core/src/main/java/org/apache/servicecomb/swagger/generator/core/OperationGenerator.java
 
b/swagger/swagger-generator/generator-core/src/main/java/org/apache/servicecomb/swagger/generator/core/OperationGenerator.java
index eecfdc8..3a3c3fd 100644
--- 
a/swagger/swagger-generator/generator-core/src/main/java/org/apache/servicecomb/swagger/generator/core/OperationGenerator.java
+++ 
b/swagger/swagger-generator/generator-core/src/main/java/org/apache/servicecomb/swagger/generator/core/OperationGenerator.java
@@ -366,7 +366,7 @@ public class OperationGenerator {
   ParameterizedType targetType = (ParameterizedType) type;
   Class targetCls = (Class) targetType.getRawType();
   if (List.class.isAssignableFrom(targetCls)) {
-return Types.newParameterizedType(List.class, (Class) 
targetType.getActualTypeArguments()[0]);
+return Types.newParameterizedType(List.class, 
targetType.getActualTypeArguments()[0]);
   }
 }
 return null;
diff --git 
a/swagger/swagger-generator/generator-core/src/test/java/org/apache/servicecomb/swagger/generator/core/TestOperationGenerator.java
 
b/swagger/swagger-generator/generator-core/src/test/java/org/apache/servicecomb/swagger/generator/core/TestOperationGenerator.java
index 9fe126f..54f4bbb 100644
--- 
a/swagger/swagger-generator/generator-core/src/test/java/org/apache/servicecomb/swagger/generator/core/TestOperationGenerator.java
+++ 
b/swagger/swagger-generator/generator-core/src/test/java/org/apache/servicecomb/swagger/generator/core/TestOperationGenerator.java
@@ -24,19 +24,29 @@ import static org.junit.Assert.assertThat;
 import java.lang.reflect.Method;
 import java.util.Collections;
 import java.util.List;
+import java.util.Map;
 
-import io.swagger.annotations.*;
-import io.swagger.models.Response;
 import org.apache.servicecomb.foundation.test.scaffolding.spring.SpringUtils;
 import org.apache.servicecomb.swagger.extend.parameter.HttpRequestParameter;
 import 
org.apache.servicecomb.swagger.generator.pojo.PojoSwaggerGeneratorContext;
+import org.hamcrest.Matchers;
 import org.junit.Assert;
 import org.junit.Test;
 import org.springframework.util.StringValueResolver;
 
+import io.swagger.annotations.ApiOperation;
+import io.swagger.annotations.ApiResponse;
+import io.swagger.annotations.Extension;
+import io.swagger.annotations.ExtensionProperty;
+import io.swagger.annotations.ResponseHeader;
+import io.swagger.models.ArrayModel;
+import io.swagger.models.ModelImpl;
+import io.swagger.models.Response;
 import io.swagger.models.parameters.BodyParameter;
 import io.swagger.models.parameters.Parameter;
 import io.swagger.models.parameters.QueryParameter;
+import io.swagger.models.properties.ArrayProperty;
+import io.swagger.models.properties.StringProperty;
 
 public class TestOperationGenerator {
   @Test
@@ -145,24 +155,58 @@ public class TestOperationGenerator {
 
Assert.assertNotNull(operationGenerator1.getOperation().getVendorExtensions().get("x-class-name"));
   }
 
+  @Test
+  public void testNestedListStringParam() throws NoSuchMethodException {
+Method function = TestClass.class.getMethod("nestedListString", 
List.class);
+SwaggerGenerator swaggerGenerator = new SwaggerGenerator(new 
PojoSwaggerGeneratorContext(), TestClass.class);
+OperationGenerator operationGenerator = new 
OperationGenerator(swaggerGenerator, function);
+operationGenerator.generate();
+
+// test response type
+Map responses = 
operationGenerator.getOperation().getResponses();
+Response response = responses.get("200");
+Assert.assertEquals(ArrayModel.class, 
response.getResponseSchema().getClass());
+ArrayModel arrayResponse = (ArrayModel) response.getResponseSchema();
+Assert.assertEquals("array", arrayResponse.getType());
+Assert.assertEquals(ArrayProperty.class, 
arrayResponse.getItems().getClass());
+ArrayProperty innerArrayPropertyResp = (ArrayProperty) 
arrayResponse.getItems();
+Assert.assertEquals("array", innerArrayPropertyResp.getType());
+Assert.assertEquals(StringProperty.class, 
innerArrayPropertyResp.getItems().getClass());
+
+// test param type
+Assert.assertEquals(1, 
swaggerGenerator.getSwagger().getDefinitions().size());
+ModelImpl model = (ModelImpl) 
swaggerGenerator.getSw

[servicecomb-java-chassis] branch master updated (8ef4ca9 -> 622297b)

2019-05-08 Thread wujimin
This is an automated email from the ASF dual-hosted git repository.

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


from 8ef4ca9  [SCB-1277]make sure demo and samples are normal
 new b5c1bba  [SCB-1280] remove unnecessary class cast
 new 622297b  [SCB-1280] add IT for nested List params

The 2 revisions listed above as "new" are entirely new to this
repository and will be described in separate emails.  The revisions
listed as "add" were already present in the repository and have only
been added to this reference.


Summary of changes:
 .../org/apache/servicecomb/it/schema/User.java | 25 
 .../servicecomb/it/testcase/base/TestGeneric.java  | 65 
 .../servicecomb/it/schema/GenericSchema.java   | 16 +
 .../swagger/generator/core/OperationGenerator.java |  2 +-
 .../generator/core/TestOperationGenerator.java | 70 ++
 .../swagger/invocation/converter/ConverterMgr.java |  2 +-
 6 files changed, 167 insertions(+), 13 deletions(-)



[servicecomb-docs] branch master updated: remove weak TLS cipher suits from default config

2019-05-05 Thread wujimin
This is an automated email from the ASF dual-hosted git repository.

wujimin pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/servicecomb-docs.git


The following commit(s) were added to refs/heads/master by this push:
 new e32f04b  remove weak TLS cipher suits from default config
e32f04b is described below

commit e32f04be738be66edc2dd119ca54c08bf460c49c
Author: yaohaishi 
AuthorDate: Sun May 5 17:57:25 2019 +0800

remove weak TLS cipher suits from default config
---
 java-chassis-reference/en_US/security/tls.md | 12 +---
 java-chassis-reference/zh_CN/security/tls.md |  5 +
 2 files changed, 6 insertions(+), 11 deletions(-)

diff --git a/java-chassis-reference/en_US/security/tls.md 
b/java-chassis-reference/en_US/security/tls.md
index 22bfae6..adf91e8 100755
--- a/java-chassis-reference/en_US/security/tls.md
+++ b/java-chassis-reference/en_US/security/tls.md
@@ -54,15 +54,13 @@ Generally, there is no need to configure tags. The normal 
situation is divided i
 The certificate configuration items are shown in Table 1. Certificate 
Configuration Item Description Table.
 **Table 1 Certificate Configuration Item Description Table**
 
-| Configuration Item | Default Value | Range of Value | Required | Meaning |
+| Configuration Item | Default Value | Range of Value | Required | Meaning | 
Caution |
 | :--- | :--- | :--- | :--- | :--- | :--- |
-Ssl.engine| jdk | - | No | ssl protocol, provide jdk/openssl options | default 
jdk |
-| ssl.protocols | TLSv1.2 | - | No | Protocol List | Separated by Comma |
-| ssl.ciphers | 
TLS\_ECDHE\_RSA\_WITH\_AES\_256\_GCM\_SHA384,TLS\_RSA\_WITH\_AES\_256\_GCM\_SHA384,TLS\_ECDHE\_RSA\_WITH
 \_AES\_128\_GCM\_SHA256,TLS\_RSA\_WITH\_AES\_128\_GCM\_SHA256 | - | No|
-List of laws | separated by commas |
+| Ssl.engine| jdk | - | No | ssl protocol, provide jdk/openssl options | 
default jdk |
+| ssl.protocols | TLSv1.2 | - | No | Protocol List | separated by comma |
+| ssl.ciphers | 
TLS\_ECDHE\_RSA\_WITH\_AES\_256\_GCM\_SHA384,TLS\_ECDHE\_RSA\_WITH 
\_AES\_128\_GCM\_SHA256 | - | No| List of laws | separated by comma |
 | ssl.authPeer | true | - | No | Whether to authenticate the peer | - |
-ssl.checkCN.host | true | - | No | Check whether the CN of the certificate is 
checked. This configuration item is valid only on the Consumer side and is 
valid using the http protocol. That is, the Consusser side uses the rest 
channel. Invalid for Provider, highway, etc. The purpose of checking CN is to 
prevent the server from being phishing, refer to >
-Standard definition: [https://tools.ietf.org/html/rfc2818. 
](https://tools.ietf.org/html/rfc2818.) |
+| ssl.checkCN.host | true | - | No | Check whether the CN of the certificate 
is checked. | This configuration item is valid only on the Consumer side and is 
valid using the http protocol. That is, the Consusser side uses the rest 
channel. Invalid for Provider, highway, etc. The purpose of checking CN is to 
prevent the server from being phishing, refer to Standard definition: 
[https://tools.ietf.org/html/rfc2818. ](https://tools.ietf.org/html/rfc2818.) |
 | ssl.trustStore | trust.jks | - | No | Trust certificate file | - |
 | ssl.trustStoreType | JKS | - | No | Trust Certificate Type | - |
 | ssl.trustStoreValue | - | - | No | Trust Certificate Password | - |
diff --git a/java-chassis-reference/zh_CN/security/tls.md 
b/java-chassis-reference/zh_CN/security/tls.md
index 0c4fa6d..892ea6a 100644
--- a/java-chassis-reference/zh_CN/security/tls.md
+++ b/java-chassis-reference/zh_CN/security/tls.md
@@ -58,7 +58,7 @@ ssl.[tag].[property]
 | :--- | :--- | :--- | :--- | :--- | :--- |
 | ssl.engine| jdk | - | 否 | ssl协议,提供jdk/openssl选择 | 默认为jdk |
 | ssl.protocols | TLSv1.2 | - | 否 | 协议列表 | 使用逗号分隔 |
-| ssl.ciphers | 
TLS\_ECDHE\_RSA\_WITH\_AES\_256\_GCM\_SHA384,TLS\_RSA\_WITH\_AES\_256\_GCM\_SHA384,TLS\_ECDHE\_RSA\_WITH\_AES\_128\_GCM\_SHA256,TLS\_RSA\_WITH\_AES\_128\_GCM\_SHA256
 | - | 否 | 算法列表 | 使用逗号分隔 |
+| ssl.ciphers | 
TLS\_ECDHE\_RSA\_WITH\_AES\_256\_GCM\_SHA384,TLS\_ECDHE\_RSA\_WITH\_AES\_128\_GCM\_SHA256
 | - | 否 | 算法列表 | 使用逗号分隔 |
 | ssl.authPeer | true | - | 否 | 是否认证对端 | - |
 | ssl.checkCN.host | true | - | 否 | 是否对证书的CN进行检查 | 
该配置项只对Consumer端,并且使用http协议有效,即Consumser端使用rest通道有效。对于Provider端、highway通道等无效。检查CN的目的是防止服务器被钓鱼,参考标准定义:[https://tools.ietf.org/html/rfc2818。](https://tools.ietf.org/html/rfc2818。)
 |
 | ssl.trustStore | trust.jks | - | 否 | 信任证书文件 | - |
@@ -106,6 +106,3 @@ ssl.keyStoreValue: Changeme_123
 ssl.crl: revoke.crl
 ssl.sslCustomClass: org.apache.servicecomb.demo.DemoSSLCustom
 ```
-
-
-



[servicecomb-java-chassis] branch master updated: [SCB-1277]make sure demo and samples are normal

2019-05-05 Thread wujimin
This is an automated email from the ASF dual-hosted git repository.

wujimin 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 8ef4ca9  [SCB-1277]make sure demo and samples are normal
8ef4ca9 is described below

commit 8ef4ca9f4af6742d5fb39376b40b4e4d30c1d7e1
Author: heyile <2513931...@qq.com>
AuthorDate: Sun May 5 17:44:39 2019 +0800

[SCB-1277]make sure demo and samples are normal
---
 demo/demo-local/pom.xml|  50 -
 .../apache/servicecomb/demo/local/DemoLocal.java   |  31 -
 .../java/org/apache/servicecomb/demo/TestMgr.java  |  12 +
 .../demo/pojo/client/PojoClientTest.java   |  15 ++-
 .../main/resources/microservices/pojo/server.yaml  |   2 +-
 demo/pom.xml   |   1 -
 gpg-sec.tar.enc| Bin 10256 -> 0 bytes
 .../servicecomb/samples/apollo}/MainServer.java|   1 +
 8 files changed, 27 insertions(+), 85 deletions(-)

diff --git a/demo/demo-local/pom.xml b/demo/demo-local/pom.xml
deleted file mode 100644
index 146b3f1..000
--- a/demo/demo-local/pom.xml
+++ /dev/null
@@ -1,50 +0,0 @@
-
-
-http://maven.apache.org/POM/4.0.0; 
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance;
-  xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 
http://maven.apache.org/xsd/maven-4.0.0.xsd;>
-  4.0.0
-  
-org.apache.servicecomb.demo
-demo-parent
-1.3.0-SNAPSHOT
-  
-  demo-local
-  Java Chassis::Demo::Local
-  
-
-  org.apache.servicecomb.demo
-  pojo-server
-
-
-  org.apache.servicecomb.demo
-  pojo-client
-
-  
-
-  
-org.apache.servicecomb.demo.local.DemoLocal
-  
-  
-
-  
-org.apache.maven.plugins
-maven-dependency-plugin
-  
-
-  
-
diff --git 
a/demo/demo-local/src/main/java/org/apache/servicecomb/demo/local/DemoLocal.java
 
b/demo/demo-local/src/main/java/org/apache/servicecomb/demo/local/DemoLocal.java
deleted file mode 100644
index 05f5c82..000
--- 
a/demo/demo-local/src/main/java/org/apache/servicecomb/demo/local/DemoLocal.java
+++ /dev/null
@@ -1,31 +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.demo.local;
-
-import org.apache.servicecomb.foundation.common.utils.BeanUtils;
-import org.apache.servicecomb.foundation.common.utils.Log4jUtils;
-
-public class DemoLocal {
-  public static void main(String[] args) throws Exception {
-Log4jUtils.init();
-BeanUtils.init();
-
-// TODO:当前未实现本地调用
-//DemoClient.runTest();
-  }
-}
diff --git 
a/demo/demo-spring-boot-transport/demo-spring-boot-pojo-client/src/main/java/org/apache/servicecomb/demo/TestMgr.java
 
b/demo/demo-spring-boot-transport/demo-spring-boot-pojo-client/src/main/java/org/apache/servicecomb/demo/TestMgr.java
index e944472..2fecac6 100644
--- 
a/demo/demo-spring-boot-transport/demo-spring-boot-pojo-client/src/main/java/org/apache/servicecomb/demo/TestMgr.java
+++ 
b/demo/demo-spring-boot-transport/demo-spring-boot-pojo-client/src/main/java/org/apache/servicecomb/demo/TestMgr.java
@@ -47,6 +47,18 @@ public class TestMgr {
 }
   }
 
+  public static void checkException(Throwable exception, String msg) {
+String message = exception.getMessage();
+if (!exception.getMessage().contains(msg)) {
+  errorList.add(new Error(
+  message + " | Expect " + message + " contains " + msg + " , but 
not"));
+}
+  }
+
+  public static void fail(String msg) {
+errorList.add(new Error(msg));
+  }
+
   public static void summary() {
 if (errorList.isEmpty()) {
   LOGGER.info(". test finished ");
diff --git 
a/demo/demo-spring-boot-transport/demo-spring-boot-pojo-client/src/main/java/org/apache/servicecomb/demo/pojo/client/PojoClientTest.java
 
b/demo/demo-spring-boot-transport/demo-spring-boot-pojo-client/src/main/java/org/apache/servicecomb/demo/pojo/client/PojoClientTest.java
index fdc7e38..4aaa590 100644
--- 
a/demo/demo-sprin

[servicecomb-website] branch optimize-java-chassis-release-guide created (now 19ec979)

2019-04-28 Thread wujimin
This is an automated email from the ASF dual-hosted git repository.

wujimin pushed a change to branch optimize-java-chassis-release-guide
in repository https://gitbox.apache.org/repos/asf/servicecomb-website.git.


  at 19ec979  Update release_guide.md

This branch includes the following new commits:

 new 19ec979  Update release_guide.md

The 1 revisions listed above as "new" are entirely new to this
repository and will be described in separate emails.  The revisions
listed as "add" were already present in the repository and have only
been added to this reference.




[servicecomb-website] 01/01: Update release_guide.md

2019-04-28 Thread wujimin
This is an automated email from the ASF dual-hosted git repository.

wujimin pushed a commit to branch optimize-java-chassis-release-guide
in repository https://gitbox.apache.org/repos/asf/servicecomb-website.git

commit 19ec97952b3fbb5e845d13e6c6630f6ec4d36862
Author: wujimin 
AuthorDate: Mon Apr 29 12:19:13 2019 +0800

Update release_guide.md
---
 _developers/cn/release_guide.md | 135 ++--
 1 file changed, 75 insertions(+), 60 deletions(-)

diff --git a/_developers/cn/release_guide.md b/_developers/cn/release_guide.md
index e84bb31..f16a401 100755
--- a/_developers/cn/release_guide.md
+++ b/_developers/cn/release_guide.md
@@ -18,14 +18,14 @@ redirect_from:
 ## 前期准备
 
 1. 项目CI应该是正常的(绿色的)。
-2. 确定相关的项目版本号。
-3. 
因为发版的过程中需要使用[私钥](https://www.apache.org/dev/openpgp.html#generate-key)对[发布版本进行签名](https://www.apache.org/dev/release-signing),请确保签名用密钥对应公钥已经发布到公开公钥服务器。
-4. 熟悉POM文件中版本发行相关的设置。
+2. 确定发布版本号。
+3. 
因为发版的过程中需要使用[密钥](https://www.apache.org/dev/openpgp.html#generate-key)对[发布版本进行签名](https://www.apache.org/dev/release-signing),请确保密钥中的公钥已经发布到公开公钥服务器(https://www.apache.org/dev/openpgp.html#publish-in-web-space)。
+4. 熟悉maven版本发行相关的设置。
 
 ## 配置Maven
 ServiceComb Java-Chassis和Saga使用Maven进行版本发布,我们需要在发布前对Maven进行一些配置。
 
-在使用Maven把发行包发布到仓库之前,我们应当在`~/.m2/settings.xml`文件中配置制品为组群可写的,否则其它开发人员将无法提交相同制品的新SNAPSHOT版本。本项目参考了Maven项目的设定[指南](http://maven.apache.org/developers/committer-settings.html)。请特别注意[加密密码](http://maven.apache.org/guides/mini/guide-encryption.html)。
+在使用Maven把发行包发布到仓库之前,参考了Maven项目的设定[指南](http://maven.apache.org/developers/committer-settings.html)。请特别注意[加密密码](http://maven.apache.org/guides/mini/guide-encryption.html)。
 
 ```
 
@@ -33,33 +33,12 @@ ServiceComb Java-Chassis和Saga使用Maven进行版本发布,我们需要在
   
 
 
-
-
-  apache.snapshots.https
-
-
-
-
-
-  apache.website
-
-  664
-  775
-
 
 
   apache.releases.https
 
 
 
-
-
-  stagingSite 
-
-  664
-  775
-
-
   
   ...
   
@@ -142,73 +121,109 @@ gvt restore
 
 ***准备和校验发行包***
 
-1. 克隆java-chassis代码。
+1. 如果`~/.ssh`中没有GPG密钥文件,则将GPG密钥文件拷贝至`~/.ssh`文件夹。
+
+2. 更新`~/.m2/settings.xml`文件中的GPG密码。
+
+3. 更新`~/.m2/settings.xml`文件中的Apache帐户用户名和密码。
+
+4. 克隆java-chassis代码
 ```
 git clone https://github.com/apache/servicecomb-java-chassis.git
 ```
 
-2. 使用以下perl命令,替换所有pom.xml文件中的版本号并提交改动至本地。
+5. 使用以下perl命令,替换所有pom.xml文件中的版本号并提交改动至本地
 ```
 find . -name 'pom.xml'|xargs perl -pi -e 's/1.0.0-m2-SNAPSHOT/1.0.0-m2/g'
 ```
 
-3. 在master分支上打上准备发布版本的标签。
-
-4. 清理repository.apache.org中所有冗余的发行版。
-
-5. 将GPG密钥文件拷贝至文件夹备用。
-
-6. 更新`~/.m2/settings.xml`文件中的GPG密钥文件路径和密码.
-
-7. 更新设置内Apache帐户用户名和密码。
+6. 在需要release的分支上打上准备发布版本的标签。
 
-8. 运行以下命令。
+7. 运行以下命令
 ```
 mvn deploy -DskipTests -Prelease -Pdistribution -Ppassphrase
 ```
 
-9. 上述命令执行成功,所有的jar包都成功上传至临时仓库后,运行Company Workshop作基本的功能验证。
-
-10. 将临时仓库共享给多人,在不同的机器和环境上进行验证。
+8. 如果执行失败,需要解决问题,从步骤7重新开始。
+   
+9. 如果步骤7命令执行成功,则所有的jar包都已经成功上传至maven临时仓库。  
+   使用apache帐号登录到[Apache Nexus](https://repository.apache.org/),点击“Staging 
Repositories”,搜索“servicecomb”,根据时间找到最近的java-chassis相关的记录,close该条记录,得到maven临时仓库的链接,例如:`https://repository.apache.org/content/repositories/orgapacheservicecomb-1385`
 
-11. 如果验证全部通过,将标签提交至主仓库。
+10. 将release分支以及标签分别push至主仓库。
 
-12. 清理Apache临时仓库。
 
 ***给发行包签名***
 
-13. 从临时仓库下载二进制包和源码包。
-
-14. 生成二进制包和源码包的签名和校验和。
-
-15. 
上传发行包到[Apache发行开发仓库](https://dist.apache.org/repos/dist/dev/servicecomb/servicecomb-java-chassis/).
-.
-
-16. 从SVN下载发行包,验证签名和校验。
+11. 从临时仓库下载二进制包及签名  
+  例如:  
+  
`https://repository.apache.org/content/repositories/orgapacheservicecomb-1385/org/apache/servicecomb/apache-servicecomb-java-chassis-distribution/1.2.0/apache-servicecomb-java-chassis-distribution-1.2.0-bin.zip`
  
+  
`https://repository.apache.org/content/repositories/orgapacheservicecomb-1385/org/apache/servicecomb/apache-servicecomb-java-chassis-distribution/1.2.0/apache-servicecomb-java-chassis-distribution-1.2.0-bin.zip.asc`
+  
+12. 从临时仓库下载源码包及签名  
+  例如:  
+  
`https://repository.apache.org/content/repositories/orgapacheservicecomb-1385/org/apache/servicecomb/apache-servicecomb-java-chassis-distribution/1.2.0/apache-servicecomb-java-chassis-distribution-1.2.0-src.zip`
  
+  
`https://repository.apache.org/content/repositories/orgapacheservicecomb-1385/org/apache/servicecomb/apache-servicecomb-java-chassis-distribution/1.2.0/apache-servicecomb-java-chassis-distribution-1.2.0-src.zip.asc`
+
+13. 生成二进制包和源码包的校验和  
+  例如:  
+  `sha512sum -b apache-servicecomb-java-chassis-distribution-1.2.0-bin.zip > 
apache-servicecomb-java-chassis-distribution-1.2.0-bin.zi.sha512`  
+  `sha512sum -b apache-servicecomb-java-chassis-distribution-1.2.0-src.zip > 
apache-servicecomb-java-chassis-distribution-1.2.0-src.zip.sha512`  
+
+14. 
将步骤11、12、13相关的文件,上传到[Apache开发仓库](https://dist.apache.org/repos/dist/dev/servicecomb/servicecomb-java-chassis/).
  
+  SVN命令:
+  ```
+  svn co 
https://dist.apache.org/repo

[servicecomb-docs] branch master updated (07c1747 -> 7f2e444)

2019-04-28 Thread wujimin
This is an automated email from the ASF dual-hosted git repository.

wujimin pushed a change to branch master
in repository https://gitbox.apache.org/repos/asf/servicecomb-docs.git.


from 07c1747  avoid gitbook compiler limitation
 new ff952fb  [SCB-1265] add config items about transport-rest-vertx
 new 7f2e444  [SCB-1265] fix connection calculation explanation

The 203 revisions listed above as "new" are entirely new to this
repository and will be described in separate emails.  The revisions
listed as "add" were already present in the repository and have only
been added to this reference.


Summary of changes:
 .../en_US/transports/rest-over-vertx.md| 27 --
 .../zh_CN/transports/rest-over-vertx.md| 24 ++-
 2 files changed, 38 insertions(+), 13 deletions(-)



[servicecomb-java-chassis] branch weak-contract-type updated (290ba44 -> d0bafd8)

2019-04-28 Thread wujimin
This is an automated email from the ASF dual-hosted git repository.

wujimin pushed a change to branch weak-contract-type
in repository https://gitbox.apache.org/repos/asf/servicecomb-java-chassis.git.


 discard 290ba44  [SCB-1256][WIP][WEAK] rename ConcreteInterfaceRegister to 
ConcreteTypeRegister
 discard fa46da8  [SCB-1252][WIP][WEAK] change element of HttpParameterType to 
uppercase
 discard 2b25f50  [SCB-1248][WIP][WEAK] update unit test
 discard 0d51f70  [SCB-1248][WIP][WEAK] reduce EventBus subscribers
 discard dfd4cdf  [SCB-1248][WIP][WEAK] add MicroserviceMeta
 discard 34d6727  [SCB-1248][WIP][WEAK] add SwaggerLoader
 discard a3b783a  [SCB-1248][WIP][WEAK] remove MicroserviceVersionFactory
 discard a566e07  [SCB-1248][WIP][WEAK] improve config log
 discard 6364293  [SCB-1248][WIP][WEAK] make local registry easier to use
 discard e6a9ceb  [SCB-1228][WIP][WEAK] update chassis pom.xml to present 
interface argument name
 discard f633a81  [SCB-1228][WIP][WEAK] update unit test
 discard bab4bb4  [SCB-1228][WIP][WEAK] update SPI definition
 discard 1e76f5c  [SCB-1228][WIP][WEAK] springmvc processors switch to new 
mechanism
 discard 0171e1e  [SCB-1228][WIP][WEAK] swagger springmvc generator switch to 
new mechanism
 discard a4c8f43  [SCB-1228][WIP][WEAK] delete swagger to class logic
 discard b8824cf  [SCB-1227][WIP][WEAK] update unit test
 discard cd206a0  [SCB-1227][WIP][WEAK] update SPI definition
 discard a81563f  [SCB-1227][WIP][WEAK] jaxrs processors switch to new mechanism
 discard 28fa17d  [SCB-1227][WIP][WEAK] swagger jaxrs generator switch to new 
mechanism
 discard 3c9bd85  [SCB-1242] add spring data plugin project
 discard 541c3a4  [SCB-1242] swagger generator and json deserializer prepare to 
support spring data
 discard fabf28b  [SCB-1225][WIP][WEAK] fix by review comments
 discard fe9d8a2  [SCB-1225][WIP][WEAK] remove unnecessary dependency of spring
 discard 95619bc  [SCB-1225][WIP][WEAK] update unit test cases
 discard 0389af8  [SCB-1225][WIP][WEAK] SPI definition switch to new mechanism
 discard eb6bf69  [SCB-1225][WIP][WEAK] delete useless files
 discard 521c162  [SCB-1225][WIP][WEAK] create abstract rest mode generator
 discard b59a268  [SCB-1225][WIP][WEAK] create pojo mode generator
 discard 66abbc4  [SCB-1225][WIP][WEAK] unit test utils switch to new mechanism
 discard 61e308d  [SCB-1225][WIP][WEAK] response generator switch to new 
mechanism
 discard c966bf3  [SCB-1225][WIP][WEAK] parameter generator switch to new 
mechanism
 discard 728b614  [SCB-1225][WIP][WEAK] class and method annotation switch to 
new mechanism
 discard 4732af7  [SCB-1225][WIP][WEAK] create basic generator implementation
 discard c7e7fcd  [SCB-1225][WIP][WEAK] define new generator interfaces
 discard 3c5f9e5  [SCB-1225][WIP][WEAK] delete swagger to class logic
 discard 8e2e7a3  [SCB-1213][WIP][WEAK] swagger generator placeholder resolver 
not depend on spring
 discard 1be62fd  [SC-1214][WIP][WEAK] change weak-contract-type branch version 
to weak-contract-type-SNAPSHOT
 new c994fb4  [SC-1214][WIP][WEAK] change weak-contract-type branch version 
to weak-contract-type-SNAPSHOT
 new 2536b5b  [SCB-1213][WIP][WEAK] swagger generator placeholder resolver 
not depend on spring
 new 4be28c2  [SCB-1225][WIP][WEAK] delete swagger to class logic
 new 6a93b14  [SCB-1225][WIP][WEAK] define new generator interfaces
 new a56bb81  [SCB-1225][WIP][WEAK] create basic generator implementation
 new ee06599  [SCB-1225][WIP][WEAK] class and method annotation switch to 
new mechanism
 new d0ed73d  [SCB-1225][WIP][WEAK] parameter generator switch to new 
mechanism
 new 3476385  [SCB-1225][WIP][WEAK] response generator switch to new 
mechanism
 new 225925b  [SCB-1225][WIP][WEAK] unit test utils switch to new mechanism
 new 84bb73a  [SCB-1225][WIP][WEAK] create pojo mode generator
 new 81b1faf  [SCB-1225][WIP][WEAK] create abstract rest mode generator
 new 627f4a1  [SCB-1225][WIP][WEAK] delete useless files
 new b8a5880  [SCB-1225][WIP][WEAK] SPI definition switch to new mechanism
 new 81c8d87  [SCB-1225][WIP][WEAK] update unit test cases
 new 0b9463b  [SCB-1225][WIP][WEAK] remove unnecessary dependency of spring
 new 3a2559a  [SCB-1225][WIP][WEAK] fix by review comments
 new dd7e3d2  [SCB-1242] swagger generator and json deserializer prepare to 
support spring data
 new 00e53a3  [SCB-1242] add spring data plugin project
 new 8734d71  [SCB-1227][WIP][WEAK] swagger jaxrs generator switch to new 
mechanism
 new 90dc849  [SCB-1227][WIP][WEAK] jaxrs processors switch to new mechanism
 new 6b5f0a8  [SCB-1227][WIP][WEAK] update SPI definition
 new a02b2aa  [SCB-1227][WIP][WEAK] update unit test
 new 65e6004  [SCB-1228][WIP][WEAK] delete swagger to class logic
 new 3e06938  [SCB-1228][WIP][WEAK] swagger springmvc generator switch to 
new mechanism
 new 4e8f299  [SCB-1228][WIP][WEAK] springmvc processors switch to new 
mechanism
 new

[servicecomb-java-chassis] branch weak-contract-type updated (e543ec1 -> 290ba44)

2019-04-27 Thread wujimin
This is an automated email from the ASF dual-hosted git repository.

wujimin pushed a change to branch weak-contract-type
in repository https://gitbox.apache.org/repos/asf/servicecomb-java-chassis.git.


 discard e543ec1  [SCB-1268][WIP][WEAK] update UT
 discard 5b01199  [SCB-1268][WIP][WEAK] publish Microservice life event
 discard 0291496  [SCB-1268][WIP][WEAK] delete metas from AppManager, will 
manage them by VendorExtensions
 discard b4216c7  [SCB-1268][WIP][WEAK] MicroserviceNameParser not depend on 
static variable
 discard 668a87e  [SCB-1268][WIP][WEAK] format code
 discard 0df05c5  [SCB-1117][WIP][WEAK] UT for Springmvc mode
 discard 8866c71  [SCB-1117][WIP][WEAK] UT for Jaxrs mode
 discard a734e86  [SCB-1117][WIP][WEAK] UT for Pojo mode
 discard e1b8986  [SCB-1117][WIP][WEAK] prepare UT model and consumer interfaces
 discard 7cdacef  [SCB-1117][WIP][WEAK] delete useless UT files
 discard 63346ed  [SCB-1117][WIP][WEAK] delete useless files
 discard 3552bf5  [SCB-1117][WIP][WEAK] SwaggerConsumer arguments not depend on 
swagger interface
 discard 582a090  [SCB-1256][WIP][WEAK] rename ConcreteInterfaceRegister to 
ConcreteTypeRegister
 discard 395e119  [SCB-1252][WIP][WEAK] change element of HttpParameterType to 
uppercase
 discard 2df3243  [SCB-1248][WIP][WEAK] update unit test
 discard 00913dc  [SCB-1248][WIP][WEAK] reduce EventBus subscribers
 discard 80d435f  [SCB-1248][WIP][WEAK] add MicroserviceMeta
 discard e80efd0  [SCB-1248][WIP][WEAK] add SwaggerLoader
 discard 223b033  [SCB-1248][WIP][WEAK] remove MicroserviceVersionFactory
 discard b3194fc  [SCB-1248][WIP][WEAK] improve config log
 discard 3d25816  [SCB-1248][WIP][WEAK] make local registry easier to use
 discard b2f0b36  [SCB-1228][WIP][WEAK] update chassis pom.xml to present 
interface argument name
 discard 739073f  [SCB-1228][WIP][WEAK] update unit test
 discard 05eeb97  [SCB-1228][WIP][WEAK] update SPI definition
 discard 844b2d7  [SCB-1228][WIP][WEAK] springmvc processors switch to new 
mechanism
 discard eaaf38b  [SCB-1228][WIP][WEAK] swagger springmvc generator switch to 
new mechanism
 discard a938e4f  [SCB-1228][WIP][WEAK] delete swagger to class logic
 discard 9e3fed5  [SCB-1227][WIP][WEAK] update unit test
 discard 017dc6b  [SCB-1227][WIP][WEAK] update SPI definition
 discard 6d69c89  [SCB-1227][WIP][WEAK] jaxrs processors switch to new mechanism
 discard 7f237e1  [SCB-1227][WIP][WEAK] swagger jaxrs generator switch to new 
mechanism
 discard 7d8a7a4  [SCB-1242] add spring data plugin project
 discard 75f7ab6  [SCB-1242] swagger generator and json deserializer prepare to 
support spring data
 discard c18cc1e  [SCB-1225][WIP][WEAK] fix by review comments
 discard 9264e3c  [SCB-1225][WIP][WEAK] remove unnecessary dependency of spring
 discard 1cf6834  [SCB-1225][WIP][WEAK] update unit test cases
 discard 983ff2a  [SCB-1225][WIP][WEAK] SPI definition switch to new mechanism
 discard 4037c5c  [SCB-1225][WIP][WEAK] delete useless files
 discard 6006114  [SCB-1225][WIP][WEAK] create abstract rest mode generator
 discard d3bbdbb  [SCB-1225][WIP][WEAK] create pojo mode generator
 discard af97590  [SCB-1225][WIP][WEAK] unit test utils switch to new mechanism
 discard c0b88c4  [SCB-1225][WIP][WEAK] response generator switch to new 
mechanism
 discard 77f7e04  [SCB-1225][WIP][WEAK] parameter generator switch to new 
mechanism
 discard 5820a74  [SCB-1225][WIP][WEAK] class and method annotation switch to 
new mechanism
 discard 35d4b26  [SCB-1225][WIP][WEAK] create basic generator implementation
 discard cc5b14a  [SCB-1225][WIP][WEAK] define new generator interfaces
 discard 64a91ae  [SCB-1225][WIP][WEAK] delete swagger to class logic
 discard bed6de4  [SCB-1213][WIP][WEAK] swagger generator placeholder resolver 
not depend on spring
 discard 72847a7  [SC-1214][WIP][WEAK] change weak-contract-type branch version 
to weak-contract-type-SNAPSHOT
 new c957fc3  [SCB-1088] SDK IsolationServerEvent is missing endpoint 
information
 new 966e4a0  [SCB-1260] make configuration inspector css simpler
 new ee8a916  [SCB-1260] tiny improve PriorityProperty unit test
 new 215042d  [SCB-1260] not refresh page when change schema format and 
tree active node is not schema
 new 89f6ca4  [SCB-1260] fix: inspector online test with servlet.urlPattern 
cause 404
 new 62deed4  [SCB-1266] move getClassByName from ClassUtils to ReflectUtils
 new 6e29b70  [SCB-1266] hack Log4jMarkerFactory to not cache special marker
 new 316e208  [SCB-1266] fix marker leak problem in SCBEngine
 new 225823d  [SCB-1266] fix by review
 new c6d0a12  [SCB-1263] do not inherit InvocationContext from request 
header in edge
 new 6cd1bcd  [SCB-1263] test inheriting context in edge by custom filter
 new d3f42eb  [SCB-1263] add reminder comment
 new 40b08ec  [SCB-1259] swagger generator core support response type to be 
Optional
 new 1a068b5  [SCB-1259] swagger generator springmvc support response type 
to be Optional
 new bce224d

[servicecomb-java-chassis] branch master updated (225823d -> d3f42eb)

2019-04-23 Thread wujimin
This is an automated email from the ASF dual-hosted git repository.

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


from 225823d  [SCB-1266] fix by review
 new c6d0a12  [SCB-1263] do not inherit InvocationContext from request 
header in edge
 new 6cd1bcd  [SCB-1263] test inheriting context in edge by custom filter
 new d3f42eb  [SCB-1263] add reminder comment

The 2231 revisions listed above as "new" are entirely new to this
repository and will be described in separate emails.  The revisions
listed as "add" were already present in the repository and have only
been added to this reference.


Summary of changes:
 .../servicecomb/edge/core/EdgeInvocation.java  |  5 ++
 .../servicecomb/edge/core/TestEdgeInvocation.java  | 23 +++
 .../servicecomb/it/testcase/TestParamCodec.java| 27 
 .../it/testcase/TestParamCodecEdge.java| 19 ++
 .../context/InheritInvocationContextFilter.java| 73 ++
 ...servicecomb.common.rest.filter.HttpServerFilter |  3 +-
 .../servicecomb/it/schema/ParamCodecSchema.java|  9 +++
 7 files changed, 158 insertions(+), 1 deletion(-)
 create mode 100644 
integration-tests/it-edge/src/main/java/org/apache/servicecomb/it/edge/context/InheritInvocationContextFilter.java



[servicecomb-java-chassis] branch master updated: [SCB-1088] SDK IsolationServerEvent is missing endpoint information

2019-04-20 Thread wujimin
This is an automated email from the ASF dual-hosted git repository.

wujimin 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 c957fc3  [SCB-1088] SDK IsolationServerEvent is missing endpoint 
information
c957fc3 is described below

commit c957fc3cce598c05665d5aedb858577f19978e4e
Author: heyile <2513931...@qq.com>
AuthorDate: Sat Apr 20 11:49:03 2019 +0800

[SCB-1088] SDK IsolationServerEvent is missing endpoint information
---
 .../loadbalance/event/IsolationServerEvent.java|   4 +-
 .../filter/IsolationDiscoveryFilter.java   |   9 +-
 .../loadbalance/TestLoadBalanceHandler2.java   | 101 +
 3 files changed, 106 insertions(+), 8 deletions(-)

diff --git 
a/handlers/handler-loadbalance/src/main/java/org/apache/servicecomb/loadbalance/event/IsolationServerEvent.java
 
b/handlers/handler-loadbalance/src/main/java/org/apache/servicecomb/loadbalance/event/IsolationServerEvent.java
index 3c1cb22..a48e6d4 100644
--- 
a/handlers/handler-loadbalance/src/main/java/org/apache/servicecomb/loadbalance/event/IsolationServerEvent.java
+++ 
b/handlers/handler-loadbalance/src/main/java/org/apache/servicecomb/loadbalance/event/IsolationServerEvent.java
@@ -52,10 +52,10 @@ public class IsolationServerEvent extends AlarmEvent {
 
   public IsolationServerEvent(Invocation invocation, MicroserviceInstance 
instance,
   ServiceCombServerStats serverStats,
-  IsolationDiscoveryFilter.Settings settings, Type type) {
+  IsolationDiscoveryFilter.Settings settings, Type type, Endpoint 
endpoint) {
 super(type);
 this.microserviceName = invocation.getMicroserviceName();
-this.endpoint = invocation.getEndpoint();
+this.endpoint = endpoint;
 this.currentTotalRequest = serverStats.getTotalRequests();
 this.currentCountinuousFailureCount = 
serverStats.getCountinuousFailureCount();
 this.currentErrorPercentage = serverStats.getFailedRate();
diff --git 
a/handlers/handler-loadbalance/src/main/java/org/apache/servicecomb/loadbalance/filter/IsolationDiscoveryFilter.java
 
b/handlers/handler-loadbalance/src/main/java/org/apache/servicecomb/loadbalance/filter/IsolationDiscoveryFilter.java
index c1bb516..4328d73 100644
--- 
a/handlers/handler-loadbalance/src/main/java/org/apache/servicecomb/loadbalance/filter/IsolationDiscoveryFilter.java
+++ 
b/handlers/handler-loadbalance/src/main/java/org/apache/servicecomb/loadbalance/filter/IsolationDiscoveryFilter.java
@@ -152,7 +152,7 @@ public class IsolationDiscoveryFilter implements 
DiscoveryFilter {
 ServiceCombLoadBalancerStats.INSTANCE.markIsolated(server, true);
 eventBus.post(
 new IsolationServerEvent(invocation, instance, serverStats,
-settings, Type.OPEN));
+settings, Type.OPEN, server.getEndpoint()));
 LOGGER.warn("Isolate service {}'s instance {}.", 
invocation.getMicroserviceName(),
 instance.getInstanceId());
   }
@@ -166,7 +166,7 @@ public class IsolationDiscoveryFilter implements 
DiscoveryFilter {
   }
   ServiceCombLoadBalancerStats.INSTANCE.markIsolated(server, false);
   eventBus.post(new IsolationServerEvent(invocation, instance, serverStats,
-  settings, Type.CLOSE));
+  settings, Type.CLOSE, server.getEndpoint()));
   LOGGER.warn("Recover service {}'s instance {} from isolation.", 
invocation.getMicroserviceName(),
   instance.getInstanceId());
 }
@@ -188,9 +188,6 @@ public class IsolationDiscoveryFilter implements 
DiscoveryFilter {
 if (settings.errorThresholdPercentage == 0) {
   return true;
 }
-if (serverStats.getFailedRate() >= settings.errorThresholdPercentage) {
-  return false;
-}
-return true;
+return serverStats.getFailedRate() < settings.errorThresholdPercentage;
   }
 }
diff --git 
a/handlers/handler-loadbalance/src/test/java/org/apache/servicecomb/loadbalance/TestLoadBalanceHandler2.java
 
b/handlers/handler-loadbalance/src/test/java/org/apache/servicecomb/loadbalance/TestLoadBalanceHandler2.java
index 2c2c7db..f0e3ad5 100644
--- 
a/handlers/handler-loadbalance/src/test/java/org/apache/servicecomb/loadbalance/TestLoadBalanceHandler2.java
+++ 
b/handlers/handler-loadbalance/src/test/java/org/apache/servicecomb/loadbalance/TestLoadBalanceHandler2.java
@@ -20,11 +20,14 @@ package org.apache.servicecomb.loadbalance;
 import static org.mockito.Mockito.when;
 
 import java.util.ArrayList;
+import java.util.EventListener;
 import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
 import java.util.concurrent.TimeUnit;
 
+import javax.xml.ws.Holder;
+
 import org.apache.servicecomb.core.CseContext;
 import org.apache.servicecomb.core.Invocation;
 import org.apache.servicecomb.core.NonSwaggerInvocation;
@@ -35,7 +38,9 @@ import org.apache.serviceco

[servicecomb-java-chassis] branch weak-contract-type updated (d126301 -> 582a090)

2019-04-19 Thread wujimin
This is an automated email from the ASF dual-hosted git repository.

wujimin pushed a change to branch weak-contract-type
in repository https://gitbox.apache.org/repos/asf/servicecomb-java-chassis.git.


 discard d126301  [SCB-1256][WIP][WEAK] rename ConcreteInterfaceRegister to 
ConcreteTypeRegister
 discard e7e2c87  [SCB-1252][WIP][WEAK] change element of HttpParameterType to 
uppercase
 discard a3209a8  [SCB-1248][WIP][WEAK] update unit test
 discard 34ca54c  [SCB-1248][WIP][WEAK] reduce EventBus subscribers
 discard 80dc449  [SCB-1248][WIP][WEAK] add MicroserviceMeta
 discard 175ee5a  [SCB-1248][WIP][WEAK] add SwaggerLoader
 discard a70f26c  [SCB-1248][WIP][WEAK] remove MicroserviceVersionFactory
 discard d308112  [SCB-1248][WIP][WEAK] improve config log
 discard a3cb467  [SCB-1248][WIP][WEAK] make local registry easier to use
 discard 7a7552a  [SCB-1228][WIP][WEAK] update chassis pom.xml to present 
interface argument name
 discard 48f61ba  [SCB-1228][WIP][WEAK] update unit test
 discard 36d663e  [SCB-1228][WIP][WEAK] update SPI definition
 discard 71959f0  [SCB-1228][WIP][WEAK] springmvc processors switch to new 
mechanism
 discard bf61660  [SCB-1228][WIP][WEAK] swagger springmvc generator switch to 
new mechanism
 discard 3b0df51  [SCB-1228][WIP][WEAK] delete swagger to class logic
 discard c0495fe  [SCB-1227][WIP][WEAK] update unit test
 discard 569cd70  [SCB-1227][WIP][WEAK] update SPI definition
 discard aa43031  [SCB-1227][WIP][WEAK] jaxrs processors switch to new mechanism
 discard 2dd3903  [SCB-1227][WIP][WEAK] swagger jaxrs generator switch to new 
mechanism
 discard db82874  [SCB-1242] add spring data plugin project
 discard 592bd6b  [SCB-1242] swagger generator and json deserializer prepare to 
support spring data
 discard 862ec12  [SCB-1225][WIP][WEAK] fix by review comments
 discard c16917f  [SCB-1225][WIP][WEAK] remove unnecessary dependency of spring
 discard aee4c2b  [SCB-1225][WIP][WEAK] update unit test cases
 discard 2b6e064  [SCB-1225][WIP][WEAK] SPI definition switch to new mechanism
 discard fba46d1  [SCB-1225][WIP][WEAK] delete useless files
 discard 0b1453a  [SCB-1225][WIP][WEAK] create abstract rest mode generator
 discard 16f6f97  [SCB-1225][WIP][WEAK] create pojo mode generator
 discard c0de1d5  [SCB-1225][WIP][WEAK] unit test utils switch to new mechanism
 discard bf6e491  [SCB-1225][WIP][WEAK] response generator switch to new 
mechanism
 discard 259680f  [SCB-1225][WIP][WEAK] parameter generator switch to new 
mechanism
 discard 0317444  [SCB-1225][WIP][WEAK] class and method annotation switch to 
new mechanism
 discard ceadfb5  [SCB-1225][WIP][WEAK] create basic generator implementation
 discard 8bbb3e6  [SCB-1225][WIP][WEAK] define new generator interfaces
 discard 0be692c  [SCB-1225][WIP][WEAK] delete swagger to class logic
 discard baac7f6  [SCB-1213][WIP][WEAK] swagger generator placeholder resolver 
not depend on spring
 discard 5516d91  [SC-1214][WIP][WEAK] change weak-contract-type branch version 
to weak-contract-type-SNAPSHOT
 new dd68583  [SCB-1262] change 1.2.0-SNAPSHOT to 1.3.0-SNAPSHOT in pom.xml
 new 72847a7  [SC-1214][WIP][WEAK] change weak-contract-type branch version 
to weak-contract-type-SNAPSHOT
 new bed6de4  [SCB-1213][WIP][WEAK] swagger generator placeholder resolver 
not depend on spring
 new 64a91ae  [SCB-1225][WIP][WEAK] delete swagger to class logic
 new cc5b14a  [SCB-1225][WIP][WEAK] define new generator interfaces
 new 35d4b26  [SCB-1225][WIP][WEAK] create basic generator implementation
 new 5820a74  [SCB-1225][WIP][WEAK] class and method annotation switch to 
new mechanism
 new 77f7e04  [SCB-1225][WIP][WEAK] parameter generator switch to new 
mechanism
 new c0b88c4  [SCB-1225][WIP][WEAK] response generator switch to new 
mechanism
 new af97590  [SCB-1225][WIP][WEAK] unit test utils switch to new mechanism
 new d3bbdbb  [SCB-1225][WIP][WEAK] create pojo mode generator
 new 6006114  [SCB-1225][WIP][WEAK] create abstract rest mode generator
 new 4037c5c  [SCB-1225][WIP][WEAK] delete useless files
 new 983ff2a  [SCB-1225][WIP][WEAK] SPI definition switch to new mechanism
 new 1cf6834  [SCB-1225][WIP][WEAK] update unit test cases
 new 9264e3c  [SCB-1225][WIP][WEAK] remove unnecessary dependency of spring
 new c18cc1e  [SCB-1225][WIP][WEAK] fix by review comments
 new 75f7ab6  [SCB-1242] swagger generator and json deserializer prepare to 
support spring data
 new 7d8a7a4  [SCB-1242] add spring data plugin project
 new 7f237e1  [SCB-1227][WIP][WEAK] swagger jaxrs generator switch to new 
mechanism
 new 6d69c89  [SCB-1227][WIP][WEAK] jaxrs processors switch to new mechanism
 new 017dc6b  [SCB-1227][WIP][WEAK] update SPI definition
 new 9e3fed5  [SCB-1227][WIP][WEAK] update unit test
 new a938e4f  [SCB-1228][WIP][WEAK] delete swagger to class logic
 new eaaf38b  [SCB-1228][WIP][WEAK] swagger springmvc generator switch to 
new mechanism
 new 844b2d7

[servicecomb-docs] branch master updated: 1.fix metrics table format problem 2.fix latencyDistribution configuration name

2019-04-18 Thread wujimin
This is an automated email from the ASF dual-hosted git repository.

wujimin pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/servicecomb-docs.git


The following commit(s) were added to refs/heads/master by this push:
 new 36373ff  1.fix metrics table format problem 2.fix latencyDistribution 
configuration name
36373ff is described below

commit 36373ffa0b9cf4d401a861c27f1d983f7f6a5c2c
Author: wujimin 
AuthorDate: Fri Apr 19 09:55:57 2019 +0800

1.fix metrics table format problem
2.fix latencyDistribution configuration name
---
 .../en_US/general-development/metrics.md   | 50 --
 java-chassis-reference/en_US/styles/website.css| 13 +-
 .../zh_CN/general-development/metrics.md   | 50 --
 java-chassis-reference/zh_CN/styles/website.css| 11 -
 4 files changed, 75 insertions(+), 49 deletions(-)

diff --git a/java-chassis-reference/en_US/general-development/metrics.md 
b/java-chassis-reference/en_US/general-development/metrics.md
index 65339f0..1d761c2 100755
--- a/java-chassis-reference/en_US/general-development/metrics.md
+++ b/java-chassis-reference/en_US/general-development/metrics.md
@@ -79,7 +79,7 @@
 Description
   
   
-servicecomb.vertx.endpoints
+servicecomb.vertx.endpoints
 type
 client
 
@@ -129,7 +129,7 @@
 Description
   
   
-servicecomb.vertx.endpoints
+servicecomb.vertx.endpoints
 type
 server
 
@@ -179,14 +179,14 @@
 Description
   
   
-servicecomb.invocation
+servicecomb.invocation
 role
 CONSUMER、PRODUCER、EDGE
 Is the CONSUMER, PRODUCER or EDGE side statistics
   
   
 operation
-${microserviceName}.${schemaId}.${operationName}
+${microserviceName}.${schemaId}.${operationName}
 Method name called
   
   
@@ -196,7 +196,7 @@
   
   
 status
-http status code
+http status code
 
   
   
@@ -221,14 +221,14 @@
 Description
   
   
-servicecomb.invocation
+servicecomb.invocation
 role
 CONSUMER
 Statistics on the CONSUMER side
   
   
 operation
-${microserviceName}.${schemaId}.${operationName}
+${microserviceName}.${schemaId}.${operationName}
 Method name called
   
   
@@ -238,7 +238,7 @@
   
   
 status
-http status code
+http status code
 
   
   
@@ -320,14 +320,14 @@
 Description
   
   
-servicecomb.invocation
+servicecomb.invocation
 role
 PRODUCER
 Statistics on the PRODUCER side
   
   
 operation
-${microserviceName}.${schemaId}.${operationName}
+${microserviceName}.${schemaId}.${operationName}
 Method name called
   
   
@@ -337,7 +337,7 @@
   
   
 status
-http status code
+http status code
 
   
   
@@ -412,14 +412,14 @@
 Description
   
   
-servicecomb.invocation
+servicecomb.invocation
 role
 EDGE
 EDGE statistics
   
   
 operation
-${microserviceName}.${schemaId}.${operationName}
+${microserviceName}.${schemaId}.${operationName}
 Method name called
   
   
@@ -429,7 +429,7 @@
   
   
 status
-http status code
+http status code
 
   
   
@@ -588,17 +588,21 @@ _Note: Please change the version field to the actual 
version number; if the vers
 
 ### 2. Configuration instructions
 
+
+
 | Configuration Item | Default | Meaning |
 | :--- | :--- | :--- |
-| `servicecomb.metrics.window_time` | 6 | Statistical period, in 
millisecondsTPS, delay, etc. Periodic data, updated once per cycle, the 
value obtained in the cycle, actually the value of the previous cycle |
-| servicecomb.metrics.latencyDistribution |   | The latency distribution 
time period definition in millisecondsfor 
example:0,1,10,100,1000indicates that the following latency scopes are 
defined: [0, 1),[1, 10),[10, 100),[100, 1000),[1000, ) |
-| servicecomb.metrics.Consumer.invocation.slow.enabled | false | Whether to 
enable slow call detection on the Consumer sideLevel 4 priority definitions 
can be supported by adding the suffix .${service}.${schema}.${operation} |
-| servicecomb.metrics.Consumer.invocation.slow.msTime | 1000 | If the latency 
exceeds the configured value, the log will be output immediately, and the time 
consumption information of the stage called this time will be 
recorded.Level 4 priority definitions can be supported by adding the suffix 
.${service}.${schema}.${operation} |
-| servicecomb.metrics.Provider.invocation.slow.enabled | false | Whether to 
enable slow call detection on the Provider sideLevel 4 priority definitions 
can be supported by adding the suffix .${service}.${schema}.${operation} |
-| servicecomb.metrics.Provider.invocation.slow.msTime | 1000 | If the latency 
exceeds the configured value, the log will be output immediately, and the time 
consumption information of the stage called this time will be 
recorded.Level 4 priority definitions can be supported by adding the suffix 
.${service

[servicecomb-java-chassis] branch weak-contract-type updated (1ec59f4 -> d126301)

2019-04-16 Thread wujimin
This is an automated email from the ASF dual-hosted git repository.

wujimin pushed a change to branch weak-contract-type
in repository https://gitbox.apache.org/repos/asf/servicecomb-java-chassis.git.


 discard 1ec59f4  [SCB-1256][WIP][WEAK] rename ConcreteInterfaceRegister to 
ConcreteTypeRegister
 discard 770ea5f  [SCB-1252][WIP][WEAK] change element of HttpParameterType to 
uppercase
 discard f6ecd8b  [SCB-1248][WIP][WEAK] update unit test
 discard 7a74d44  [SCB-1248][WIP][WEAK] reduce EventBus subscribers
 discard c4b1a11  [SCB-1248][WIP][WEAK] add MicroserviceMeta
 discard 188f79d  [SCB-1248][WIP][WEAK] add SwaggerLoader
 discard bbd56e8  [SCB-1248][WIP][WEAK] remove MicroserviceVersionFactory
 discard 8c14f63  [SCB-1248][WIP][WEAK] improve config log
 discard 9d89e8b  [SCB-1248][WIP][WEAK] make local registry easier to use
 discard 3d61952  [SCB-1228][WIP][WEAK] update chassis pom.xml to present 
interface argument name
 discard dcca218  [SCB-1228][WIP][WEAK] update unit test
 discard 19423ae  [SCB-1228][WIP][WEAK] update SPI definition
 discard 7cfe158  [SCB-1228][WIP][WEAK] springmvc processors switch to new 
mechanism
 discard efac97f  [SCB-1228][WIP][WEAK] swagger springmvc generator switch to 
new mechanism
 discard 7ab105d  [SCB-1228][WIP][WEAK] delete swagger to class logic
 discard 8cf4d08  [SCB-1227][WIP][WEAK] update unit test
 discard a19e28d  [SCB-1227][WIP][WEAK] update SPI definition
 discard 3ef1758  [SCB-1227][WIP][WEAK] jaxrs processors switch to new mechanism
 discard 896cc64  [SCB-1227][WIP][WEAK] swagger jaxrs generator switch to new 
mechanism
 discard 7eae773  [SCB-1242] add spring data plugin project
 discard 8a45927  [SCB-1242] swagger generator and json deserializer prepare to 
support spring data
 discard 3c8e66d  [SCB-1225][WIP][WEAK] fix by review comments
 discard 505eb6b  [SCB-1225][WIP][WEAK] remove unnecessary dependency of spring
 discard 4d4b4ff  [SCB-1225][WIP][WEAK] update unit test cases
 discard cbebf48  [SCB-1225][WIP][WEAK] SPI definition switch to new mechanism
 discard 6cff5d3  [SCB-1225][WIP][WEAK] delete useless files
 discard beaafea  [SCB-1225][WIP][WEAK] create abstract rest mode generator
 discard aa41582  [SCB-1225][WIP][WEAK] create pojo mode generator
 discard 5b79df1  [SCB-1225][WIP][WEAK] unit test utils switch to new mechanism
 discard aa26c03  [SCB-1225][WIP][WEAK] response generator switch to new 
mechanism
 discard 99330cf  [SCB-1225][WIP][WEAK] parameter generator switch to new 
mechanism
 discard f3a14bc  [SCB-1225][WIP][WEAK] class and method annotation switch to 
new mechanism
 discard 464a0ba  [SCB-1225][WIP][WEAK] create basic generator implementation
 discard 15c2199  [SCB-1225][WIP][WEAK] define new generator interfaces
 discard bb27a63  [SCB-1225][WIP][WEAK] delete swagger to class logic
 discard 1dc3761  [SCB-1213][WIP][WEAK] swagger generator placeholder resolver 
not depend on spring
 discard 286707c  [SC-1214][WIP][WEAK] change weak-contract-type branch version 
to weak-contract-type-SNAPSHOT
 new ba0ec6e  [SCB-1229] update the version of dependency
 new 472b5c4  [SCB-1229] update the version of dependency: update vertx to 
3.6.3 and commons-io
 new 0133564  [SCB-1229] update the version of dependency: update license
 new c4accb2  [SCB-1229] update the version of dependency: fix as reviewed
 new 5177bfe  [SCB-1250] make ArchaiusUtils simpler
 new cbe759e  [SCB-1246] EventBus subscriber support order
 new 90149fb  SCB-1229 Update the License information in the binary LICENSE 
information
 new 6c32bd7  [SCB-1184] limit the memory consumption of IT process
 new 6b81180  [SCB-1184] add IT for the case that provider's response type 
is CompletableFuture
 new 74b5a15  [SCB-1253] adjust the priority of GlobalRestFailureHandler, 
add some fixes for default GlobalRestFailureHandler
 new adc687b  [SCB-1253] check before send response, fix the response 
message
 new 616a896  [SCB-1253] add IT for failureHandler
 new b1167aa  [SCB-1253] read max heap size config of IT from system 
property
 new b9db4ee  [SCB-1251][WIP] delete unnecessary files
 new 00583e9  [SCB-1251][WIP] PriorityProperty instances should be managed
 new 8a309f8  [SCB-1251][WIP] update unit test
 new 6ddfab9  [SCB-1251] other modules switch to new mechanism
 new 10e5548  [SCB-1251] fix swagger to html scroll problem
 new 2739e78  [SCB-1251] add configuration inspector
 new 857a7cc  [SCB-1251] add unregister PriorityProperty when remove 
MicroserviceVersions unit test
 new 63c1333  [SCB-1251] add inspector unit test
 new 5153292  [SCB-1251] change constructor of PriorityProperty to package 
protected by code review
 new 5516d91  [SC-1214][WIP][WEAK] change weak-contract-type branch version 
to weak-contract-type-SNAPSHOT
 new baac7f6  [SCB-1213][WIP][WEAK] swagger generator placeholder resolver 
not depend on spring
 new 0be692c  [SCB-1225][WIP][WEAK] delete swagger to class

[servicecomb-docs] branch master updated (7ea356a -> e7df6c0)

2019-04-15 Thread wujimin
This is an automated email from the ASF dual-hosted git repository.

wujimin pushed a change to branch master
in repository https://gitbox.apache.org/repos/asf/servicecomb-docs.git.


from 7ea356a  fix file download Content-Disposition header example
 new 56c233a  add description about 
servicecomb.provider.rest.scanRestController
 new e7df6c0  add description about 
servicecomb.provider.rest.scanRestController for English docs

The 197 revisions listed above as "new" are entirely new to this
repository and will be described in separate emails.  The revisions
listed as "add" were already present in the repository and have only
been added to this reference.


Summary of changes:
 .../en_US/build-provider/springmvc.md  | 32 --
 .../zh_CN/build-provider/springmvc.md  | 20 --
 2 files changed, 29 insertions(+), 23 deletions(-)



[servicecomb-java-chassis] branch master updated (b1167aa -> 5153292)

2019-04-15 Thread wujimin
This is an automated email from the ASF dual-hosted git repository.

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


from b1167aa  [SCB-1253] read max heap size config of IT from system 
property
 new b9db4ee  [SCB-1251][WIP] delete unnecessary files
 new 00583e9  [SCB-1251][WIP] PriorityProperty instances should be managed
 new 8a309f8  [SCB-1251][WIP] update unit test
 new 6ddfab9  [SCB-1251] other modules switch to new mechanism
 new 10e5548  [SCB-1251] fix swagger to html scroll problem
 new 2739e78  [SCB-1251] add configuration inspector
 new 857a7cc  [SCB-1251] add unregister PriorityProperty when remove 
MicroserviceVersions unit test
 new 63c1333  [SCB-1251] add inspector unit test
 new 5153292  [SCB-1251] change constructor of PriorityProperty to package 
protected by code review

The 2218 revisions listed above as "new" are entirely new to this
repository and will be described in separate emails.  The revisions
listed as "add" were already present in the repository and have only
been added to this reference.


Summary of changes:
 .../org/apache/servicecomb/core/SCBEngine.java |   8 ++
 .../core/definition/MicroserviceVersionMeta.java   |   9 ++
 .../servicecomb/core/definition/OperationMeta.java |   8 +-
 .../core/definition/TestMicroserviceMeta.java  |  76 +++
 .../core/definition/TestOperationMeta.java |  10 ++
 .../definition/schema/StaticSchemaFactoryTest.java |   2 +-
 .../org/apache/servicecomb/config/ConfigUtil.java  |  23 
 .../config/inject/ConfigObjectFactory.java |  47 ---
 .../config/priority/PriorityProperty.java  | 110 ---
 .../config/priority/PriorityPropertyManager.java   | 147 +
 .../priority/impl/BooleanPriorityProperty.java |  25 
 .../priority/impl/DoublePriorityProperty.java  |  25 
 .../priority/impl/FloatPriorityProperty.java   |  25 
 .../config/priority/impl/IntPriorityProperty.java  |  25 
 .../config/priority/impl/LongPriorityProperty.java |  25 
 .../config/priority/impl/PropertyGetter.java   | 125 --
 .../priority/impl/StringPriorityProperty.java  |  25 
 .../apache/servicecomb/config/TestConfigUtil.java  |  43 +++---
 .../config/TestConfigurationSpringInitializer.java |   6 +
 .../config/inject/TestConfigObjectFactory.java |  47 ---
 .../config/priority/TestPriorityProperty.java  |  63 +
 .../config/priority/TestPriorityPropertyBase.java  |  43 +++---
 .../test/scaffolding/config/ArchaiusUtils.java |   2 -
 .../inspector/internal/InspectorBootListener.java  |   8 +-
 .../inspector/internal/InspectorImpl.java  |  76 +++
 .../internal/model/DynamicPropertyView.java|  38 --
 .../internal/model/PriorityPropertyView.java   |  32 ++---
 .../internal/swagger/AppendStyleProcessor.java |   1 +
 inspector/src/main/resources/webroot/index.html|  18 +++
 .../src/main/resources/webroot/static/css/main.css |  34 +
 .../webroot/static/dynamicProperties.html  |  86 
 .../webroot/static/priorityProperties.html | 113 
 .../internal/TestInspectorBootListener.java|  11 +-
 .../inspector/internal/TestInspectorImpl.java  |  57 +++-
 .../consumer/MicroserviceManager.java  |   1 +
 .../consumer/MicroserviceVersion.java  |   3 +
 .../consumer/MicroserviceVersions.java |   6 +
 37 files changed, 959 insertions(+), 444 deletions(-)
 create mode 100644 
foundations/foundation-config/src/main/java/org/apache/servicecomb/config/priority/PriorityPropertyManager.java
 delete mode 100644 
foundations/foundation-config/src/main/java/org/apache/servicecomb/config/priority/impl/BooleanPriorityProperty.java
 delete mode 100644 
foundations/foundation-config/src/main/java/org/apache/servicecomb/config/priority/impl/DoublePriorityProperty.java
 delete mode 100644 
foundations/foundation-config/src/main/java/org/apache/servicecomb/config/priority/impl/FloatPriorityProperty.java
 delete mode 100644 
foundations/foundation-config/src/main/java/org/apache/servicecomb/config/priority/impl/IntPriorityProperty.java
 delete mode 100644 
foundations/foundation-config/src/main/java/org/apache/servicecomb/config/priority/impl/LongPriorityProperty.java
 delete mode 100644 
foundations/foundation-config/src/main/java/org/apache/servicecomb/config/priority/impl/PropertyGetter.java
 delete mode 100644 
foundations/foundation-config/src/main/java/org/apache/servicecomb/config/priority/impl/StringPriorityProperty.java
 copy 
service-registry/src/test/java/org/apache/servicecomb/serviceregistry/client/http/TestWebsocketClientPool.java
 => 
foundations/foundation-config/src/test/java/org/apache/servicecomb/config/priority/TestPriorityPropertyBase.java
 (54%)
 copy 
foundations/foundation

[servicecomb-java-chassis] branch master updated (6b81180 -> b1167aa)

2019-04-15 Thread wujimin
This is an automated email from the ASF dual-hosted git repository.

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


from 6b81180  [SCB-1184] add IT for the case that provider's response type 
is CompletableFuture
 new 74b5a15  [SCB-1253] adjust the priority of GlobalRestFailureHandler, 
add some fixes for default GlobalRestFailureHandler
 new adc687b  [SCB-1253] check before send response, fix the response 
message
 new 616a896  [SCB-1253] add IT for failureHandler
 new b1167aa  [SCB-1253] read max heap size config of IT from system 
property

The 2209 revisions listed above as "new" are entirely new to this
repository and will be described in separate emails.  The revisions
listed as "add" were already present in the repository and have only
been added to this reference.


Summary of changes:
 .../edge/core/AbstractEdgeDispatcher.java  | 25 -
 .../org/apache/servicecomb/it/deploy/Deploys.java  | 29 +++---
 .../it/testcase/TestRestServerConfigEdge.java  | 54 ++-
 .../it/edge/DemoDispatcherWithFailureHandler.java  | 63 ++
 .../edge/DemoDispatcherWithoutFailureHandler.java  | 34 ++--
 ...cecomb.transport.rest.vertx.VertxHttpDispatcher |  2 +
 .../transport/rest/vertx/RestServerVerticle.java   | 12 ++---
 7 files changed, 184 insertions(+), 35 deletions(-)
 create mode 100644 
integration-tests/it-edge/src/main/java/org/apache/servicecomb/it/edge/DemoDispatcherWithFailureHandler.java
 copy 
demo/demo-edge/edge-service/src/main/java/org/apache/servicecomb/demo/edge/service/CustomResponseMetaMapper.java
 => 
integration-tests/it-edge/src/main/java/org/apache/servicecomb/it/edge/DemoDispatcherWithoutFailureHandler.java
 (53%)



[servicecomb-java-chassis] branch weak-contract-type updated (8cf4d08 -> 3d61952)

2019-04-14 Thread wujimin
This is an automated email from the ASF dual-hosted git repository.

wujimin pushed a change to branch weak-contract-type
in repository https://gitbox.apache.org/repos/asf/servicecomb-java-chassis.git.


from 8cf4d08  [SCB-1227][WIP][WEAK] update unit test
 new 7ab105d  [SCB-1228][WIP][WEAK] delete swagger to class logic
 new efac97f  [SCB-1228][WIP][WEAK] swagger springmvc generator switch to 
new mechanism
 new 7cfe158  [SCB-1228][WIP][WEAK] springmvc processors switch to new 
mechanism
 new 19423ae  [SCB-1228][WIP][WEAK] update SPI definition
 new dcca218  [SCB-1228][WIP][WEAK] update unit test
 new 3d61952  [SCB-1228][WIP][WEAK] update chassis pom.xml to present 
interface argument name

The 2224 revisions listed above as "new" are entirely new to this
repository and will be described in separate emails.  The revisions
listed as "add" were already present in the repository and have only
been added to this reference.


Summary of changes:
 pom.xml|   1 +
 .../springmvc/MultipartFilePropertyCreator.java|  39 ---
 .../springmvc/SpringmvcOperationGenerator.java}|  41 +--
 .../springmvc/SpringmvcSwaggerGenerator.java}  |  53 ++-
 .../SpringmvcSwaggerGeneratorContext.java  | 120 ---
 .../SpringmvcSwaggerGeneratorFactory.java} |  15 +-
 ...stractHttpMethodMappingAnnotationProcessor.java |  61 ++--
 ...ctSpringmvcSerializableParameterProcessor.java} |  47 ++-
 .../annotation/CookieValueAnnotationProcessor.java |  46 +--
 .../DeleteMappingMethodAnnotationProcessor.java|  36 +-
 .../GetMappingMethodAnnotationProcessor.java   |  32 +-
 .../PatchMappingMethodAnnotationProcessor.java |  35 +-
 .../PathVariableAnnotationProcessor.java   |  38 +-
 .../PostMappingMethodAnnotationProcessor.java  |  33 +-
 .../PutMappingMethodAnnotationProcessor.java   |  32 +-
 .../RequestAttributeAnnotationProcessor.java   |  35 +-
 .../annotation/RequestBodyAnnotationProcessor.java |  33 +-
 .../RequestHeaderAnnotationProcessor.java  |  44 +--
 .../RequestMappingClassAnnotationProcessor.java|  43 +--
 .../RequestMappingMethodAnnotationProcessor.java   |  51 +--
 .../RequestParamAnnotationProcessor.java   |  46 +--
 .../annotation/RequestPartAnnotationProcessor.java |  43 ++-
 .../RestControllerClassAnnotationProcessor.java|  35 --
 .../parameter/MultipartFileArrayProcessor.java}|  10 +-
 .../parameter/MultipartFileArrayTypeProcessor.java |  46 ---
 .../parameter/MultipartFileListProcessor.java} |  10 +-
 .../parameter/MultipartFileListTypeProcessor.java  |  50 ---
 .../parameter/MultipartFileTypeProcessor.java  |  19 +-
 .../SpringmvcDefaultObjectParameterProcessor.java  | 115 --
 .../SpringmvcDefaultParameterProcessor.java|  58 
 .../SpringmvcDefaultSimpleParameterProcessor.java  |  40 ---
 .../response/ResponseEntityProcessor.java  |  11 +-
 ...swagger.extend.property.creator.PropertyCreator |  18 -
 ...comb.swagger.generator.ClassAnnotationProcessor |   2 +-
 ...omb.swagger.generator.MethodAnnotationProcessor |  11 +-
 ...rvicecomb.swagger.generator.ParameterProcessor} |  11 +-
 ...cecomb.swagger.generator.ResponseTypeProcessor} |   0
 ...comb.swagger.generator.SwaggerGeneratorFactory} |   2 +-
 .../TestSwaggerToClassGenerator_base.java  |  55 ---
 .../TestSwaggerToClassGenerator_create.java|  61 
 .../TestSwaggerToClassGenerator_reuse.java |  63 
 .../swaggerToClassGenerator/ToClassSchema.java |  42 ---
 .../swaggerToClassGenerator/model/DependTypeA.java |  29 --
 .../swaggerToClassGenerator/model/DependTypeB.java |  29 --
 .../swaggerToClassGenerator/model/Generic.java |  39 ---
 .../model/RecursiveSelfType.java   |  29 --
 .../swagger/generator/springmvc/Echo.java  |  37 ++
 .../generator/springmvc/MethodResponseEntity.java  |   2 +-
 .../generator/springmvc/MultiDefaultPath.java  |   2 +-
 .../springmvc/TestResponseEntityProcessor.java |  31 --
 .../swagger/generator/springmvc/TestSpringmvc.java | 187 ++
 .../springmvc/model/DefaultParameterSchema.java|  32 +-
 .../SwaggerTestTarget.java}|  20 +-
 .../SwaggerTestTarget_ValueOverWritePath.java} |  11 +-
 .../generator/springmvc/model/TestParam.java}  |  10 +-
 .../generator/springmvc/model/TestProducer.java}   |  20 +-
 ...RequestMappingClassAnnotationProcessorTest.java |  98 --
 ...equestMappingMethodAnnotationProcessorTest.java |  83 -
 ...ringmvcDefaultObjectParameterProcessorTest.java | 385 -
 .../SpringmvcDefaultParameterProcessorTest.java| 193 ---
 ...ringmvcDefaultSimpleParameterProcessorTest.java |  53 ---
 .../resources/schemas/asyncResponseEntity.yaml |   8 +-
 .../{inheritHttpMethod.yaml => cookie.yaml}|   6 +-
 .../test/resources/schemas/defaultParameter.yaml   |  24 +-
 .../schemas/

[servicecomb-java-chassis] branch weak-contract-type updated (7eae773 -> 8cf4d08)

2019-04-14 Thread wujimin
This is an automated email from the ASF dual-hosted git repository.

wujimin pushed a change to branch weak-contract-type
in repository https://gitbox.apache.org/repos/asf/servicecomb-java-chassis.git.


from 7eae773  [SCB-1242] add spring data plugin project
 new 896cc64  [SCB-1227][WIP][WEAK] swagger jaxrs generator switch to new 
mechanism
 new 3ef1758  [SCB-1227][WIP][WEAK] jaxrs processors switch to new mechanism
 new a19e28d  [SCB-1227][WIP][WEAK] update SPI definition
 new 8cf4d08  [SCB-1227][WIP][WEAK] update unit test

The 2218 revisions listed above as "new" are entirely new to this
repository and will be described in separate emails.  The revisions
listed as "add" were already present in the repository and have only
been added to this reference.


Summary of changes:
 .../generator/jaxrs/JaxrsOperationGenerator.java   |  73 
 .../generator/jaxrs/JaxrsSwaggerGenerator.java}|  30 +-
 .../jaxrs/JaxrsSwaggerGeneratorContext.java| 117 ---
 .../jaxrs/JaxrsSwaggerGeneratorFactory.java}   |  23 +-
 .../annotation/BeanParamAnnotationProcessor.java   | 229 -
 .../annotation/ConsumesAnnotationProcessor.java|  26 +-
 .../annotation/CookieParamAnnotationProcessor.java |  21 +-
 .../annotation/DeleteAnnotationProcessor.java  |  12 +-
 .../annotation/FormParamAnnotationProcessor.java   |  20 +-
 ...nProcessor.java => GetAnnotationProcessor.java} |  19 +-
 .../annotation/HeaderParamAnnotationProcessor.java |  21 +-
 .../annotation/PathClassAnnotationProcessor.java   |  16 +-
 .../annotation/PathMethodAnnotationProcessor.java  |  16 +-
 .../annotation/PathParamAnnotationProcessor.java   |  20 +-
 .../annotation/PostAnnotationProcessor.java}   |  11 +-
 .../annotation/ProducesAnnotationProcessor.java|  26 +-
 .../annotation/PutAnnotationProcessor.java}|  11 +-
 .../annotation/QueryParamAnnotationProcessor.java  |  20 +-
 .../parameter/JaxrsDefaultParameterProcessor.java  |  33 --
 .../processor/response/JaxrsResponseProcessor.java |  20 +-
 ...comb.swagger.generator.ClassAnnotationProcessor |   2 +-
 ...omb.swagger.generator.MethodAnnotationProcessor |  12 +-
 ...ervicecomb.swagger.generator.ParameterProcessor |   6 +-
 ...cecomb.swagger.generator.ResponseTypeProcessor} |   0
 ...comb.swagger.generator.SwaggerGeneratorFactory} |   2 +-
 .../servicecomb/swagger/generator/jaxrs/Echo.java  |  57 
 .../swagger/generator/jaxrs/TestJaxrs.java | 114 ---
 .../generator/jaxrs/model/AggregatedParam.java |  83 +
 .../jaxrs/model/BeanParamComplexField.java |  16 +-
 .../jaxrs/model/BeanParamComplexSetter.java|  16 +-
 .../jaxrs/model/BeanParamDefaultBody.java  |   5 +-
 .../jaxrs/model/BeanParamInvalidDefaultBody.java   |  14 +-
 .../model/BeanParamWithJsonIgnoredTagged.java  |  30 +-
 .../generator/jaxrs/model/BeanParamWithPart.java   |  45 +--
 .../generator/jaxrs/model/ConsumesAndProduces.java |  34 +-
 .../BeanParamAnnotationProcessorTest.java  | 369 -
 .../ConsumesAnnotationProcessorTest.java   |  86 -
 .../ProducesAnnotationProcessorTest.java   |  59 
 .../schemas/{echo.yaml => aggregatedParam.yaml}|  55 ++-
 ...StringMethod.yaml => beanParamDefaultBody.yaml} |   9 +-
 ...ry.yaml => beanParamWithJsonIgnoredTagged.yaml} |  10 +-
 .../schemas/{form.yaml => beanParamWithPart.yaml}  |  21 +-
 .../resources/schemas/{echo.yaml => consumes.yaml} |  83 +++--
 .../schemas/{response.yaml => responseText.yaml}   |   9 +-
 44 files changed, 683 insertions(+), 1218 deletions(-)
 create mode 100644 
swagger/swagger-generator/generator-jaxrs/src/main/java/org/apache/servicecomb/swagger/generator/jaxrs/JaxrsOperationGenerator.java
 copy 
swagger/swagger-generator/{generator-core/src/main/java/org/apache/servicecomb/swagger/generator/pojo/PojoSwaggerGenerator.java
 => 
generator-jaxrs/src/main/java/org/apache/servicecomb/swagger/generator/jaxrs/JaxrsSwaggerGenerator.java}
 (58%)
 delete mode 100644 
swagger/swagger-generator/generator-jaxrs/src/main/java/org/apache/servicecomb/swagger/generator/jaxrs/JaxrsSwaggerGeneratorContext.java
 copy 
swagger/swagger-generator/generator-jaxrs/src/{test/java/org/apache/servicecomb/swagger/generator/jaxrs/MultiDefaultPath.java
 => 
main/java/org/apache/servicecomb/swagger/generator/jaxrs/JaxrsSwaggerGeneratorFactory.java}
 (60%)
 delete mode 100644 
swagger/swagger-generator/generator-jaxrs/src/main/java/org/apache/servicecomb/swagger/generator/jaxrs/processor/annotation/BeanParamAnnotationProcessor.java
 copy 
common/common-rest/src/main/java/org/apache/servicecomb/common/rest/codec/param/ParamValueProcessorCreator.java
 => 
swagger/swagger-generator/generator-jaxrs/src/main/java/org/apache/servicecomb/swagger/generator/jaxrs/processor/annotation/DeleteAnnotationProcessor.java
 (77%)
 rename 
swagger/swagger-generator/generator-jaxrs/src/main/java/org/ap

[servicecomb-java-chassis] branch weak-contract-type updated (3c8e66d -> 7eae773)

2019-04-12 Thread wujimin
This is an automated email from the ASF dual-hosted git repository.

wujimin pushed a change to branch weak-contract-type
in repository https://gitbox.apache.org/repos/asf/servicecomb-java-chassis.git.


from 3c8e66d  [SCB-1225][WIP][WEAK] fix by review comments
 new 8a45927  [SCB-1242] swagger generator and json deserializer prepare to 
support spring data
 new 7eae773  [SCB-1242] add spring data plugin project

The 2214 revisions listed above as "new" are entirely new to this
repository and will be described in separate emails.  The revisions
listed as "add" were already present in the repository and have only
been added to this reference.


Summary of changes:
 .../common/rest/codec/RestObjectMapperFactory.java |  20 +++
 coverage-reports/pom.xml   |   4 +
 java-chassis-dependencies/default/pom.xml  |  10 ++
 java-chassis-distribution/pom.xml  |   4 +
 .../ConcreteInterfaceRegister.java}|   7 +-
 .../swagger/extend/ModelResolverExt.java   |  19 +--
 .../swagger/generator/SwaggerGeneratorUtils.java   |   7 ++
 .../generator-spring-data}/pom.xml |  17 +--
 .../springdata/PageResponseTypeProcessor.java} |  16 ++-
 .../SpringDataConcreteInterfaceRegister.java}  |  17 +--
 .../generator/springdata/SpringDataModule.java |  80 
 .../services/com.fasterxml.jackson.databind.Module |   2 +-
 ...cecomb.swagger.extend.ConcreteInterfaceRegister |   2 +-
 ...icecomb.swagger.generator.ResponseTypeProcessor |   2 +-
 .../springdata/TestPageResponseTypeProcessor.java  |  49 
 .../src/test/resources/pageSchema.yaml | 139 +
 swagger/swagger-generator/pom.xml  |   1 +
 17 files changed, 358 insertions(+), 38 deletions(-)
 copy 
swagger/swagger-generator/generator-core/src/main/java/org/apache/servicecomb/swagger/{generator/SwaggerContextRegister.java
 => extend/ConcreteInterfaceRegister.java} (84%)
 copy 
{java-chassis-spring-boot/spring-boot-starter/spring-boot-starter-provider => 
swagger/swagger-generator/generator-spring-data}/pom.xml (79%)
 copy 
swagger/swagger-generator/{generator-core/src/main/java/org/apache/servicecomb/swagger/generator/core/processor/response/CompletableFutureProcessor.java
 => 
generator-spring-data/src/main/java/org/apache/servicecomb/swagger/generator/springdata/PageResponseTypeProcessor.java}
 (67%)
 copy 
swagger/swagger-generator/{generator-core/src/main/java/org/apache/servicecomb/swagger/generator/core/processor/parameter/PartListProcessor.java
 => 
generator-spring-data/src/main/java/org/apache/servicecomb/swagger/generator/springdata/SpringDataConcreteInterfaceRegister.java}
 (66%)
 create mode 100644 
swagger/swagger-generator/generator-spring-data/src/main/java/org/apache/servicecomb/swagger/generator/springdata/SpringDataModule.java
 copy 
demo/demo-edge/edge-service/src/main/resources/META-INF/services/org.apache.servicecomb.swagger.invocation.response.ResponseMetaMapper
 => 
swagger/swagger-generator/generator-spring-data/src/main/resources/META-INF/services/com.fasterxml.jackson.databind.Module
 (92%)
 copy 
common/common-rest/src/main/resources/META-INF/services/org.apache.servicecomb.common.rest.filter.HttpServerFilter
 => 
swagger/swagger-generator/generator-spring-data/src/main/resources/META-INF/services/org.apache.servicecomb.swagger.extend.ConcreteInterfaceRegister
 (90%)
 copy 
common/common-rest/src/main/resources/META-INF/services/org.apache.servicecomb.common.rest.filter.HttpServerFilter
 => 
swagger/swagger-generator/generator-spring-data/src/main/resources/META-INF/services/org.apache.servicecomb.swagger.generator.ResponseTypeProcessor
 (91%)
 create mode 100644 
swagger/swagger-generator/generator-spring-data/src/test/java/org/apache/servicecomb/swagger/generator/springdata/TestPageResponseTypeProcessor.java
 create mode 100644 
swagger/swagger-generator/generator-spring-data/src/test/resources/pageSchema.yaml



[servicecomb-java-chassis] branch weak-contract-type updated (af7cecf -> 3c8e66d)

2019-04-09 Thread wujimin
This is an automated email from the ASF dual-hosted git repository.

wujimin pushed a change to branch weak-contract-type
in repository https://gitbox.apache.org/repos/asf/servicecomb-java-chassis.git.


 discard af7cecf  [SCB-1225][WIP][WEAK] fix by review comments
 discard 4e6edc6  [SCB-1225][WIP][WEAK] remove unnecessary dependency of spring
 discard 0e0c40e  [SCB-1225][WIP][WEAK] update unit test cases
 discard c5b6ef1  [SCB-1225][WIP][WEAK] SPI definition switch to new mechanism
 discard a1bb656  [SCB-1225][WIP][WEAK] delete useless files
 discard c4be3d5  [SCB-1225][WIP][WEAK] create abstract rest mode generator
 discard b97d61a  [SCB-1225][WIP][WEAK] create pojo mode generator
 discard acff5b3  [SCB-1225][WIP][WEAK] unit test utils switch to new mechanism
 discard 48c8c5b  [SCB-1225][WIP][WEAK] response generator switch to new 
mechanism
 discard 3eb5d01  [SCB-1225][WIP][WEAK] parameter generator switch to new 
mechanism
 discard b22419c  [SCB-1225][WIP][WEAK] class and method annotation switch to 
new mechanism
 discard a3d5542  [SCB-1225][WIP][WEAK] create basic generator implementation
 discard b3c95c1  [SCB-1225][WIP][WEAK] define new generator interfaces
 discard 060f2b1  [SCB-1225][WIP][WEAK] delete swagger to class logic
 discard a7770bf  [SCB-1213][WIP][WEAK] swagger generator placeholder resolver 
not depend on spring
 discard b18fa3a  [SC-1214][WIP][WEAK] change weak-contract-type branch version 
to weak-contract-type-SNAPSHOT
 new 72caa21  [SCB-1222] change groupId of "hibernate-validator" from 
"org.hibernate" to "org.hibernate.validator" to avoid dependency warning
 new 002ee16  Upgrade the maven license plugin version to fix the class not 
found exception
 new 680934e  [SCB-1224] az affinity is conflict with empty instance 
protection
 new 9ad8150  [SCB-1224] az affinity is conflict with empty instance 
protection: fix as reviewed
 new 6878d34  [SCB-1230] avoid throw exception in 
httpClientResponse.exceptionHandler
 new 6188790  [SCB-1231] create endpoint metrics as early as possible
 new b4d355a  [SCB-1231] add queue meter of http client connection pool
 new a81c092  [SCB-1231] publish queue meter of http client connection pool 
to log
 new 6d53ef2  [SCB-1226] there are problems when request rejected by thread 
pool queue full
 new 89c0628  [SCB-1232] make GroupExecutor configuration compatible to old 
version
 new 09eac45  Updated the year information of the NOTICE files
 new c92469a  [SCB-1236] bugfix: BufferInputStream#read return value range 
should be -1~255, not the current -128-127
 new c017ec9  [SCB-1236] code reivew change!
 new 576dd76  SCB-1218 Clean up the license of java-chassis
 new ec6a436  SCB-1218 Added the reactive-stream
 new a8345e9  SCB-1218 Try to fix the CI build error
 new 117e633  [SCB-1237] rollback compatible thread pool configuration logic
 new 9211e7b  [SCB-1237] enhance jdk thread pool
 new e538f04  [SCB-1237] switch thread pool to new mechanism
 new 00de293  [SCB-1237] add thread pool reject metrics
 new 7c48e33  [SCB-1239] close thread after finish unit test case at once.
 new 7cd450b  [SCB-1240] allowed one prometheus cluster support multiple 
apps
 new 286707c  [SC-1214][WIP][WEAK] change weak-contract-type branch version 
to weak-contract-type-SNAPSHOT
 new 1dc3761  [SCB-1213][WIP][WEAK] swagger generator placeholder resolver 
not depend on spring
 new bb27a63  [SCB-1225][WIP][WEAK] delete swagger to class logic
 new 15c2199  [SCB-1225][WIP][WEAK] define new generator interfaces
 new 464a0ba  [SCB-1225][WIP][WEAK] create basic generator implementation
 new f3a14bc  [SCB-1225][WIP][WEAK] class and method annotation switch to 
new mechanism
 new 99330cf  [SCB-1225][WIP][WEAK] parameter generator switch to new 
mechanism
 new aa26c03  [SCB-1225][WIP][WEAK] response generator switch to new 
mechanism
 new 5b79df1  [SCB-1225][WIP][WEAK] unit test utils switch to new mechanism
 new aa41582  [SCB-1225][WIP][WEAK] create pojo mode generator
 new beaafea  [SCB-1225][WIP][WEAK] create abstract rest mode generator
 new 6cff5d3  [SCB-1225][WIP][WEAK] delete useless files
 new cbebf48  [SCB-1225][WIP][WEAK] SPI definition switch to new mechanism
 new 4d4b4ff  [SCB-1225][WIP][WEAK] update unit test cases
 new 505eb6b  [SCB-1225][WIP][WEAK] remove unnecessary dependency of spring
 new 3c8e66d  [SCB-1225][WIP][WEAK] fix by review comments

This update added new revisions after undoing existing revisions.
That is to say, some revisions that were in the old version of the
branch are not in the new version.  This situation occurs
when a user --force pushes a change and generates a repository
containing something like this:

 * -- * -- B -- O -- O -- O   (af7cecf)
\
 N -- N -- N   refs/heads/weak-contract-type (3c8e66d)

You should already have received notifi

[servicecomb-java-chassis] branch master updated: [SCB-1240] allowed one prometheus cluster support multiple apps

2019-04-05 Thread wujimin
This is an automated email from the ASF dual-hosted git repository.

wujimin 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 7cd450b  [SCB-1240] allowed one prometheus cluster support multiple 
apps
7cd450b is described below

commit 7cd450b87e77d438a23a7c1e603ae660991ad48a
Author: wujimin 
AuthorDate: Thu Apr 4 17:00:39 2019 +0800

[SCB-1240] allowed one prometheus cluster support multiple apps
---
 .../core/executor/TestThreadPoolExecutorEx.java| 31 +-
 .../demo/springmvc/client/SpringmvcClient.java | 14 +-
 .../metrics/prometheus/PrometheusPublisher.java|  4 +++
 .../prometheus/TestPrometheusPublisher.java| 11 +++-
 4 files changed, 46 insertions(+), 14 deletions(-)

diff --git 
a/core/src/test/java/org/apache/servicecomb/core/executor/TestThreadPoolExecutorEx.java
 
b/core/src/test/java/org/apache/servicecomb/core/executor/TestThreadPoolExecutorEx.java
index 163fbb9..14df261 100644
--- 
a/core/src/test/java/org/apache/servicecomb/core/executor/TestThreadPoolExecutorEx.java
+++ 
b/core/src/test/java/org/apache/servicecomb/core/executor/TestThreadPoolExecutorEx.java
@@ -21,11 +21,16 @@ import java.util.concurrent.ExecutionException;
 import java.util.concurrent.Future;
 import java.util.concurrent.RejectedExecutionException;
 import java.util.concurrent.TimeUnit;
+import java.util.function.IntSupplier;
 
 import org.junit.Assert;
 import org.junit.Test;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 
 public class TestThreadPoolExecutorEx {
+  private static final Logger LOGGER = 
LoggerFactory.getLogger(TestThreadPoolExecutorEx.class);
+
   static class TestTask implements Runnable {
 CountDownLatch notify = new CountDownLatch(1);
 
@@ -119,17 +124,15 @@ public class TestThreadPoolExecutorEx {
 t3.quit();
 Assert.assertEquals(4, executorEx.getPoolSize());
 Assert.assertEquals(1, executorEx.getRejectedCount());
-Assert.assertEquals(3, executorEx.getNotFinished());
-// multi thread, not sure
-// Assert.assertEquals(0, executorEx.getQueue().size());
+waitForResult(3, executorEx::getNotFinished);
+waitForResult(0, executorEx.getQueue()::size);
 
 // reuse thread
 t3 = submitTask();
 Assert.assertEquals(4, executorEx.getPoolSize());
 Assert.assertEquals(1, executorEx.getRejectedCount());
-Assert.assertEquals(4, executorEx.getNotFinished());
-// multi thread, not sure
-// Assert.assertEquals(1, executorEx.getQueue().size());
+waitForResult(4, executorEx::getNotFinished);
+waitForResult(0, executorEx.getQueue()::size);
 
 t3.quit();
 t4.quit();
@@ -137,4 +140,20 @@ public class TestThreadPoolExecutorEx {
 t6.quit();
 executorEx.shutdown();
   }
+
+  private void waitForResult(int expect, IntSupplier supplier) {
+for (; ; ) {
+  int actual = supplier.getAsInt();
+  if (expect == actual) {
+return;
+  }
+
+  LOGGER.info("waiting for thread result, expect:{}, actual: {}.", expect, 
actual);
+  try {
+TimeUnit.MILLISECONDS.sleep(100);
+  } catch (InterruptedException e) {
+throw new IllegalStateException(e);
+  }
+}
+  }
 }
diff --git 
a/demo/demo-springmvc/springmvc-client/src/main/java/org/apache/servicecomb/demo/springmvc/client/SpringmvcClient.java
 
b/demo/demo-springmvc/springmvc-client/src/main/java/org/apache/servicecomb/demo/springmvc/client/SpringmvcClient.java
index 411aa11..9b214f7 100644
--- 
a/demo/demo-springmvc/springmvc-client/src/main/java/org/apache/servicecomb/demo/springmvc/client/SpringmvcClient.java
+++ 
b/demo/demo-springmvc/springmvc-client/src/main/java/org/apache/servicecomb/demo/springmvc/client/SpringmvcClient.java
@@ -131,13 +131,13 @@ public class SpringmvcClient {
   String content = restTemplate
   
.getForObject("cse://springmvc/codeFirstSpringmvc/prometheusForTest", 
String.class);
 
-  TestMgr.check(true, 
content.contains("servicecomb_invocation{operation=\"springmvc.codeFirst.addDate"));
-  TestMgr.check(true, 
content.contains("servicecomb_invocation{operation=\"springmvc.codeFirst.sayHello"));
-  TestMgr.check(true, 
content.contains("servicecomb_invocation{operation=\"springmvc.codeFirst.fallbackFromCache"));
-  TestMgr.check(true, 
content.contains("servicecomb_invocation{operation=\"springmvc.codeFirst.isTrue"));
-  TestMgr.check(true, 
content.contains("servicecomb_invocation{operation=\"springmvc.codeFirst.add"));
-  TestMgr.check(true, 
content.contains("servicecomb_invocation{operation=\"springmvc.codeFirst.sayHi2"));
-  TestMgr.check(true, 
content.contains("servicecomb_invocation{operation=\"springmvc.codeFirst.saySomething"));
+  

[servicecomb-java-chassis] branch check-when-cause-problem deleted (was a8345e9)

2019-04-04 Thread wujimin
This is an automated email from the ASF dual-hosted git repository.

wujimin pushed a change to branch check-when-cause-problem
in repository https://gitbox.apache.org/repos/asf/servicecomb-java-chassis.git.


 was a8345e9  SCB-1218 Try to fix the CI build error

The revisions that were on this branch are still contained in
other references; therefore, this change does not discard any commits
from the repository.



[servicecomb-java-chassis] branch master updated: [SCB-1239] close thread after finish unit test case at once.

2019-04-04 Thread wujimin
This is an automated email from the ASF dual-hosted git repository.

wujimin 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 7c48e33  [SCB-1239] close thread after finish unit test case at once.
7c48e33 is described below

commit 7c48e33f1ba2495a0b6d1b0399e42aad2792a8f7
Author: wujimin 
AuthorDate: Thu Apr 4 10:59:53 2019 +0800

[SCB-1239] close thread after finish unit test case at once.
---
 .../core/transport/TransportVertxFactory.java  | 37 +++---
 .../core/executor/TestThreadPoolExecutorEx.java| 19 +--
 .../core/transport/TestAbstractTransport.java  |  2 +-
 .../servicecomb/foundation/vertx/VertxUtils.java   | 21 +++-
 .../foundation/vertx/TestVertxUtils.java   |  6 ++--
 .../servicecomb/faultinjection/AbortFaultTest.java |  2 +-
 .../servicecomb/faultinjection/DelayFaultTest.java |  2 +-
 .../faultinjection/TestFaultInjectHandler.java |  2 +-
 .../transport/highway/TestHighwayTransport.java| 19 +--
 9 files changed, 78 insertions(+), 32 deletions(-)

diff --git 
a/core/src/main/java/org/apache/servicecomb/core/transport/TransportVertxFactory.java
 
b/core/src/main/java/org/apache/servicecomb/core/transport/TransportVertxFactory.java
index d4e96d3..c2227fb 100644
--- 
a/core/src/main/java/org/apache/servicecomb/core/transport/TransportVertxFactory.java
+++ 
b/core/src/main/java/org/apache/servicecomb/core/transport/TransportVertxFactory.java
@@ -22,27 +22,42 @@ import 
org.apache.servicecomb.foundation.vertx.metrics.MetricsOptionsEx;
 
 import io.vertx.core.Vertx;
 import io.vertx.core.VertxOptions;
+import io.vertx.core.shareddata.Shareable;
 
 public class TransportVertxFactory {
-  private VertxOptions vertxOptions = new VertxOptions();
+  static class TransportVertxInfo implements Shareable {
+public VertxOptions vertxOptions = new VertxOptions();
 
-  private DefaultVertxMetricsFactory metricsFactory = new 
DefaultVertxMetricsFactory();
+public DefaultVertxMetricsFactory metricsFactory = new 
DefaultVertxMetricsFactory();
 
-  private MetricsOptionsEx metricsOptionsEx = (MetricsOptionsEx) 
metricsFactory.newOptions();
+public MetricsOptionsEx metricsOptionsEx = (MetricsOptionsEx) 
metricsFactory.newOptions();
 
-  private Vertx transportVertx;
-
-  public TransportVertxFactory() {
-vertxOptions.setMetricsOptions(metricsOptionsEx);
-transportVertx = VertxUtils.getOrCreateVertxByName("transport", 
vertxOptions);
-metricsFactory.setVertx(transportVertx, vertxOptions);
+public TransportVertxInfo() {
+  vertxOptions.setMetricsOptions(metricsOptionsEx);
+}
   }
 
+  private static final String LOCAL_MAP_NAME = "scb";
+
+  private static final String INFO = "transport-vertx-info";
+
   public DefaultVertxMetricsFactory getMetricsFactory() {
-return metricsFactory;
+TransportVertxInfo info = (TransportVertxInfo) 
getTransportVertx().sharedData().getLocalMap(LOCAL_MAP_NAME)
+.get(INFO);
+return info.metricsFactory;
   }
 
   public Vertx getTransportVertx() {
-return transportVertx;
+return VertxUtils.getVertxMap().computeIfAbsent("transport", 
this::createTransportVertx);
+  }
+
+  private Vertx createTransportVertx(String name) {
+TransportVertxInfo info = new TransportVertxInfo();
+
+Vertx vertx = VertxUtils.init(info.vertxOptions);
+info.metricsFactory.setVertx(vertx, info.vertxOptions);
+vertx.sharedData().getLocalMap(LOCAL_MAP_NAME).put(INFO, info);
+
+return vertx;
   }
 }
diff --git 
a/core/src/test/java/org/apache/servicecomb/core/executor/TestThreadPoolExecutorEx.java
 
b/core/src/test/java/org/apache/servicecomb/core/executor/TestThreadPoolExecutorEx.java
index a2567e4..163fbb9 100644
--- 
a/core/src/test/java/org/apache/servicecomb/core/executor/TestThreadPoolExecutorEx.java
+++ 
b/core/src/test/java/org/apache/servicecomb/core/executor/TestThreadPoolExecutorEx.java
@@ -17,6 +17,8 @@
 package org.apache.servicecomb.core.executor;
 
 import java.util.concurrent.CountDownLatch;
+import java.util.concurrent.ExecutionException;
+import java.util.concurrent.Future;
 import java.util.concurrent.RejectedExecutionException;
 import java.util.concurrent.TimeUnit;
 
@@ -27,24 +29,19 @@ public class TestThreadPoolExecutorEx {
   static class TestTask implements Runnable {
 CountDownLatch notify = new CountDownLatch(1);
 
-CountDownLatch wait = new CountDownLatch(1);
+Future future;
 
-public void quit() {
+public void quit() throws ExecutionException, InterruptedException {
   notify.countDown();
-  try {
-wait.await();
-  } catch (InterruptedException e) {
-e.printStackTrace();
-  }
+  future.get();
 }
 
 @Override
 public void run() {
   try {
 notify.await();
-wait.countDown()

[servicecomb-java-chassis] branch check-when-cause-problem created (now a8345e9)

2019-04-04 Thread wujimin
This is an automated email from the ASF dual-hosted git repository.

wujimin pushed a change to branch check-when-cause-problem
in repository https://gitbox.apache.org/repos/asf/servicecomb-java-chassis.git.


  at a8345e9  SCB-1218 Try to fix the CI build error

No new revisions were added by this update.



[servicecomb-java-chassis] branch master updated: [SCB-1232] make GroupExecutor configuration compatible to old version

2019-04-01 Thread wujimin
This is an automated email from the ASF dual-hosted git repository.

wujimin 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 89c0628  [SCB-1232] make GroupExecutor configuration compatible to old 
version
89c0628 is described below

commit 89c0628e50bc5677c88ad048fd822cfb68897f74
Author: wujimin 
AuthorDate: Sun Mar 31 16:18:31 2019 +0800

[SCB-1232] make GroupExecutor configuration compatible to old version
---
 .../servicecomb/core/executor/GroupExecutor.java   |  38 +---
 .../core/executor/TestGroupExecutor.java   | 108 +
 2 files changed, 89 insertions(+), 57 deletions(-)

diff --git 
a/core/src/main/java/org/apache/servicecomb/core/executor/GroupExecutor.java 
b/core/src/main/java/org/apache/servicecomb/core/executor/GroupExecutor.java
index cf0c8e7..9dd27b8 100644
--- a/core/src/main/java/org/apache/servicecomb/core/executor/GroupExecutor.java
+++ b/core/src/main/java/org/apache/servicecomb/core/executor/GroupExecutor.java
@@ -40,7 +40,7 @@ public class GroupExecutor implements Executor, Closeable {
   public static final String KEY_GROUP = "servicecomb.executor.default.group";
 
   // Deprecated
-  public static final String KEY_THREAD = 
"servicecomb.executor.default.thread-per-group";
+  public static final String KEY_OLD_MAX_THREAD = 
"servicecomb.executor.default.thread-per-group";
 
   public static final String KEY_CORE_THREADS = 
"servicecomb.executor.default.coreThreads-per-group";
 
@@ -83,25 +83,31 @@ public class GroupExecutor implements Executor, Closeable {
   }
 
   public void initConfig() {
-groupCount = 
DynamicPropertyFactory.getInstance().getIntProperty(KEY_GROUP, 2).get();
-coreThreads = 
DynamicPropertyFactory.getInstance().getIntProperty(KEY_CORE_THREADS, 25).get();
-
-maxThreads = 
DynamicPropertyFactory.getInstance().getIntProperty(KEY_MAX_THREADS, -1).get();
-if (maxThreads <= 0) {
-  maxThreads = 
DynamicPropertyFactory.getInstance().getIntProperty(KEY_THREAD, -1).get();
-  if (maxThreads > 0) {
-LOGGER.warn("{} is deprecated, recommended to use {}.", KEY_THREAD, 
KEY_MAX_THREADS);
-  } else {
-maxThreads = 100;
-  }
-}
-if (coreThreads > maxThreads) {
-  LOGGER.warn("coreThreads is bigger than maxThreads, change from {} to 
{}.", coreThreads, maxThreads);
+LOGGER.info("JDK standard thread pool rules:\n"
++ "1.use core threads.\n"
++ "2.if all core threads are busy, then queue the request.\n"
++ "3.if queue is full, then create new thread util reach the limit of 
max threads.\n"
++ "4.if queue is full, and threads count is max, then reject the 
request.");
+
+// the complex logic is to keep compatible
+// otherwise can throw exception if configuration is invalid.
+coreThreads = 
DynamicPropertyFactory.getInstance().getIntProperty(KEY_CORE_THREADS, -1).get();
+
+int oldMaxThreads = 
DynamicPropertyFactory.getInstance().getIntProperty(KEY_OLD_MAX_THREAD, 
-1).get();
+maxThreads = 
DynamicPropertyFactory.getInstance().getIntProperty(KEY_MAX_THREADS, 
oldMaxThreads).get();
+maxThreads = Math.max(coreThreads, maxThreads);
+maxThreads = maxThreads <= 0 ? 100 : maxThreads;
+
+maxQueueSize = 
DynamicPropertyFactory.getInstance().getIntProperty(KEY_MAX_QUEUE_SIZE, 
Integer.MAX_VALUE).get();
+if (maxQueueSize == Integer.MAX_VALUE) {
   coreThreads = maxThreads;
+  LOGGER.info("not configured {},  make coreThreads and maxThreads to be 
{}.", KEY_MAX_QUEUE_SIZE, maxThreads);
+} else {
+  coreThreads = coreThreads <= 0 ? 25 : coreThreads;
 }
 
+groupCount = 
DynamicPropertyFactory.getInstance().getIntProperty(KEY_GROUP, 2).get();
 maxIdleInSecond = 
DynamicPropertyFactory.getInstance().getIntProperty(KEY_MAX_IDLE_SECOND, 
60).get();
-maxQueueSize = 
DynamicPropertyFactory.getInstance().getIntProperty(KEY_MAX_QUEUE_SIZE, 
Integer.MAX_VALUE).get();
 
 LOGGER.info(
 "executor group={}. per group settings, coreThreads={}, maxThreads={}, 
maxIdleInSecond={}, maxQueueSize={}.",
diff --git 
a/core/src/test/java/org/apache/servicecomb/core/executor/TestGroupExecutor.java
 
b/core/src/test/java/org/apache/servicecomb/core/executor/TestGroupExecutor.java
index a5dd87a..dfb6fe6 100644
--- 
a/core/src/test/java/org/apache/servicecomb/core/executor/TestGroupExecutor.java
+++ 
b/core/src/test/java/org/apache/servicecomb/core/executor/TestGroupExecutor.java
@@ -22,7 +22,6 @@ import java.util.Map;
 import java.util.concurrent.Executor;
 
 import org.apache.servicecomb.foundation.test.scaffolding.config.ArchaiusUtils;
-import org.apache.servicecomb.foundation.test.scaffolding.log.LogCollector;
 import org.ju

[servicecomb-java-chassis] branch master updated: [SCB-1226] there are problems when request rejected by thread pool queue full

2019-04-01 Thread wujimin
This is an automated email from the ASF dual-hosted git repository.

wujimin 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 6d53ef2  [SCB-1226] there are problems when request rejected by thread 
pool queue full
6d53ef2 is described below

commit 6d53ef26742f9031a4bda26b6b240e7715981f53
Author: wujimin 
AuthorDate: Mon Apr 1 15:58:35 2019 +0800

[SCB-1226] there are problems when request rejected by thread pool queue 
full
---
 .../common/rest/AbstractRestInvocation.java| 49 --
 .../common/rest/TestAbstractRestInvocation.java| 32 +-
 .../org/apache/servicecomb/core/SCBEngine.java |  8 +++-
 .../transport/highway/HighwayServerInvoke.java |  6 ++-
 4 files changed, 69 insertions(+), 26 deletions(-)

diff --git 
a/common/common-rest/src/main/java/org/apache/servicecomb/common/rest/AbstractRestInvocation.java
 
b/common/common-rest/src/main/java/org/apache/servicecomb/common/rest/AbstractRestInvocation.java
index f80309d..22cbc53 100644
--- 
a/common/common-rest/src/main/java/org/apache/servicecomb/common/rest/AbstractRestInvocation.java
+++ 
b/common/common-rest/src/main/java/org/apache/servicecomb/common/rest/AbstractRestInvocation.java
@@ -119,7 +119,7 @@ public abstract class AbstractRestInvocation {
   protected void scheduleInvocation() {
 try {
   createInvocation();
-} catch (IllegalStateException e) {
+} catch (Throwable e) {
   sendFailResponse(e);
   return;
 }
@@ -141,28 +141,33 @@ public abstract class AbstractRestInvocation {
   return;
 }
 
-operationMeta.getExecutor().execute(() -> {
-  synchronized (this.requestEx) {
-try {
-  if (isInQueueTimeout()) {
-throw new InvocationException(Status.INTERNAL_SERVER_ERROR, 
"Timeout when processing the request.");
-  }
-  if (requestEx.getAttribute(RestConst.REST_REQUEST) != requestEx) {
-// already timeout
-// in this time, request maybe recycled and reused by web 
container, do not use requestEx
-LOGGER.error("Rest request already timeout, abandon execute, 
method {}, operation {}.",
-operationMeta.getHttpMethod(),
-operationMeta.getMicroserviceQualifiedName());
-return;
+try {
+  operationMeta.getExecutor().execute(() -> {
+synchronized (this.requestEx) {
+  try {
+if (isInQueueTimeout()) {
+  throw new InvocationException(Status.INTERNAL_SERVER_ERROR, 
"Timeout when processing the request.");
+}
+if (requestEx.getAttribute(RestConst.REST_REQUEST) != requestEx) {
+  // already timeout
+  // in this time, request maybe recycled and reused by web 
container, do not use requestEx
+  LOGGER.error("Rest request already timeout, abandon execute, 
method {}, operation {}.",
+  operationMeta.getHttpMethod(),
+  operationMeta.getMicroserviceQualifiedName());
+  return;
+}
+
+runOnExecutor();
+  } catch (Throwable e) {
+LOGGER.error("rest server onRequest error", e);
+sendFailResponse(e);
   }
-
-  runOnExecutor();
-} catch (Throwable e) {
-  LOGGER.error("rest server onRequest error", e);
-  sendFailResponse(e);
 }
-  }
-});
+  });
+} catch (Throwable e) {
+  LOGGER.error("failed to schedule invocation, message={}, executor={}.", 
e.getMessage(), e.getClass().getName());
+  sendFailResponse(e);
+}
   }
 
   private Holder checkQpsFlowControl(OperationMeta operationMeta) {
@@ -176,7 +181,7 @@ public abstract class AbstractRestInvocation {
   produceProcessor = ProduceProcessorManager.JSON_PROCESSOR;
   sendResponse(response);
 });
-  } catch (Exception e) {
+  } catch (Throwable e) {
 LOGGER.error("failed to execute ProviderQpsFlowControlHandler", e);
 qpsFlowControlReject.value = true;
 sendFailResponse(e);
diff --git 
a/common/common-rest/src/test/java/org/apache/servicecomb/common/rest/TestAbstractRestInvocation.java
 
b/common/common-rest/src/test/java/org/apache/servicecomb/common/rest/TestAbstractRestInvocation.java
index 7e9c9ac..4e82258 100644
--- 
a/common/common-rest/src/test/java/org/apache/servicecomb/common/rest/TestAbstractRestInvocation.java
+++ 
b/common/common-rest/src/test/java/org/apache/servicecomb/common/rest/TestAbstractRestInvocation.java
@@ -24,6 +24,7 @@ import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
 import java.util.concurrent.Executor;
+import java.util.concurrent.RejectedExecutionException;
 
 import javax.ws.rs

[servicecomb-java-chassis] branch master updated (6878d34 -> a81c092)

2019-04-01 Thread wujimin
This is an automated email from the ASF dual-hosted git repository.

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


from 6878d34  [SCB-1230] avoid throw exception in 
httpClientResponse.exceptionHandler
 new 6188790  [SCB-1231] create endpoint metrics as early as possible
 new b4d355a  [SCB-1231] add queue meter of http client connection pool
 new a81c092  [SCB-1231] publish queue meter of http client connection pool 
to log

The 2182 revisions listed above as "new" are entirely new to this
repository and will be described in separate emails.  The revisions
listed as "add" were already present in the repository and have only
been added to this reference.


Summary of changes:
 .../vertx/metrics/DefaultHttpClientMetrics.java| 29 +++--
 .../vertx/metrics/DefaultTcpClientMetrics.java |  4 +-
 .../vertx/metrics/DefaultVertxMetrics.java |  8 ++--
 .../metric/DefaultClientEndpointMetric.java| 21 +++--
 .../metric/DefaultClientEndpointMetricManager.java | 50 ++
 .../metrics/metric/DefaultEndpointMetric.java  |  8 ++--
 .../metrics/metric/DefaultHttpSocketMetric.java|  3 ++
 .../metric/DefaultServerEndpointMetric.java|  4 +-
 .../metrics/metric/DefaultTcpSocketMetric.java |  8 
 .../metrics/TestDefaultHttpClientMetrics.java  | 26 ++-
 .../metrics/TestDefaultHttpServerMetrics.java  |  1 -
 .../vertx/metrics/TestDefaultTcpClientMetrics.java | 18 +---
 .../vertx/metrics/TestDefaultTcpServerMetrics.java |  1 -
 .../metrics/core/VertxMetersInitializer.java   |  8 ++--
 ...ointMeter.java => HttpClientEndpointMeter.java} | 20 -
 ...ntsMeter.java => HttpClientEndpointsMeter.java} |  9 ++--
 ...dpointsMeter.java => ServerEndpointsMeter.java} |  7 +--
 .../core/meter/vertx/VertxEndpointsMeter.java  | 10 ++---
 .../core/publish/ClientEndpointsLogPublisher.java  | 11 +++--
 .../core/publish/ServerEndpointsLogPublisher.java  |  6 +--
 .../metrics/core/TestVertxMetersInitializer.java   | 15 ---
 21 files changed, 146 insertions(+), 121 deletions(-)
 copy 
metrics/metrics-core/src/main/java/org/apache/servicecomb/metrics/core/meter/vertx/{ServerEndpointMeter.java
 => HttpClientEndpointMeter.java} (64%)
 copy 
metrics/metrics-core/src/main/java/org/apache/servicecomb/metrics/core/meter/vertx/{VertxServerEndpointsMeter.java
 => HttpClientEndpointsMeter.java} (80%)
 rename 
metrics/metrics-core/src/main/java/org/apache/servicecomb/metrics/core/meter/vertx/{VertxServerEndpointsMeter.java
 => ServerEndpointsMeter.java} (83%)



[servicecomb-java-chassis] branch weak-contract-type updated (73c5248 -> b18fa3a)

2019-03-26 Thread wujimin
This is an automated email from the ASF dual-hosted git repository.

wujimin pushed a change to branch weak-contract-type
in repository https://gitbox.apache.org/repos/asf/servicecomb-java-chassis.git.


 discard 73c5248  [SC-1214][WIP][WEAK] change weak-contract-type branch version 
to weak-contract-type-SNAPSHOT
 new 4e3b8df  [SCB-1220] consumer side support path param regex
 new 93470ef  [SCB-1221] add missed modules to distribution and adjust 
orders
 new 2aff2a6  fix bug of dependncy warning
 new b18fa3a  [SC-1214][WIP][WEAK] change weak-contract-type branch version 
to weak-contract-type-SNAPSHOT

This update added new revisions after undoing existing revisions.
That is to say, some revisions that were in the old version of the
branch are not in the new version.  This situation occurs
when a user --force pushes a change and generates a repository
containing something like this:

 * -- * -- B -- O -- O -- O   (73c5248)
\
 N -- N -- N   refs/heads/weak-contract-type (b18fa3a)

You should already have received notification emails for all of the O
revisions, and so the following emails describe only the N revisions
from the common base, B.

Any revisions marked "omit" are not gone; other references still
refer to them.  Any revisions marked "discard" are gone forever.

The 2175 revisions listed above as "new" are entirely new to this
repository and will be described in separate emails.  The revisions
listed as "add" were already present in the repository and have only
been added to this reference.


Summary of changes:
 .../src/main/resources/archetype-resources/pom.xml |   3 +-
 .../rest/definition/path/URLPathBuilder.java   |  14 +-
 .../rest/definition/path/URLPathBuilderTest.java   |  18 ++-
 java-chassis-dependencies/default/pom.xml  |   5 +
 java-chassis-distribution/pom.xml  | 164 +
 5 files changed, 168 insertions(+), 36 deletions(-)



[servicecomb-java-chassis] branch master updated: [SCB-1222] change groupId of "hibernate-validator" from "org.hibernate" to "org.hibernate.validator" to avoid dependency warning

2019-03-26 Thread wujimin
This is an automated email from the ASF dual-hosted git repository.

wujimin 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 72caa21  [SCB-1222] change groupId of "hibernate-validator" from 
"org.hibernate" to "org.hibernate.validator" to avoid dependency warning
72caa21 is described below

commit 72caa21b50dbcce3af075d3fb97cd1a76c298490
Author: wujimin 
AuthorDate: Tue Mar 26 15:06:41 2019 +0800

[SCB-1222] change groupId of "hibernate-validator" from "org.hibernate" to 
"org.hibernate.validator" to avoid dependency warning
---
 .../src/main/resources/archetype-resources/pom.xml |  1 -
 .../springmvc-tests-general-with-springboot/pom.xml|  2 +-
 .../springmvc-tests-simplified-mapping-with-springboot/pom.xml |  2 +-
 java-chassis-dependencies/default/pom.xml  | 10 ++
 .../spring-boot2-starter-standalone/pom.xml|  2 +-
 samples/bmi/pom.xml|  2 +-
 samples/metrics-extend-healthcheck/pom.xml |  2 +-
 swagger/swagger-invocation/invocation-validator/pom.xml|  2 +-
 8 files changed, 16 insertions(+), 7 deletions(-)

diff --git 
a/archetypes/business-service-spring-boot-starter/src/main/resources/archetype-resources/pom.xml
 
b/archetypes/business-service-spring-boot-starter/src/main/resources/archetype-resources/pom.xml
index 4277791..35959f8 100644
--- 
a/archetypes/business-service-spring-boot-starter/src/main/resources/archetype-resources/pom.xml
+++ 
b/archetypes/business-service-spring-boot-starter/src/main/resources/archetype-resources/pom.xml
@@ -54,7 +54,6 @@
 
   org.hibernate.validator
   hibernate-validator
-  6.0.2.Final
 
   
 
diff --git 
a/integration-tests/springmvc-tests/springmvc-tests-general-with-springboot/pom.xml
 
b/integration-tests/springmvc-tests/springmvc-tests-general-with-springboot/pom.xml
index d12ec8c..b0706a4 100644
--- 
a/integration-tests/springmvc-tests/springmvc-tests-general-with-springboot/pom.xml
+++ 
b/integration-tests/springmvc-tests/springmvc-tests-general-with-springboot/pom.xml
@@ -49,7 +49,7 @@
   spring-test
 
 
-  org.hibernate
+  org.hibernate.validator
   hibernate-validator
 
   
diff --git 
a/integration-tests/springmvc-tests/springmvc-tests-simplified-mapping-with-springboot/pom.xml
 
b/integration-tests/springmvc-tests/springmvc-tests-simplified-mapping-with-springboot/pom.xml
index 90f6ca5..f184657 100644
--- 
a/integration-tests/springmvc-tests/springmvc-tests-simplified-mapping-with-springboot/pom.xml
+++ 
b/integration-tests/springmvc-tests/springmvc-tests-simplified-mapping-with-springboot/pom.xml
@@ -49,7 +49,7 @@
   spring-test
 
 
-  org.hibernate
+  org.hibernate.validator
   hibernate-validator
 
   
diff --git a/java-chassis-dependencies/default/pom.xml 
b/java-chassis-dependencies/default/pom.xml
index 8e13090..b2c5e05 100644
--- a/java-chassis-dependencies/default/pom.xml
+++ b/java-chassis-dependencies/default/pom.xml
@@ -194,6 +194,11 @@
 hibernate-validator
 6.0.2.Final
   
+  
+org.hibernate.validator
+hibernate-validator
+6.0.2.Final
+  
 
   
 org.aspectj
@@ -345,6 +350,11 @@
 6.0.2.Final
   
   
+org.hibernate.validator
+hibernate-validator-annotation-processor
+6.0.2.Final
+  
+  
 javax.transaction
 javax.transaction-api
 1.2
diff --git 
a/java-chassis-spring-boot/spring-boot2-starter-parent/spring-boot2-starter-standalone/pom.xml
 
b/java-chassis-spring-boot/spring-boot2-starter-parent/spring-boot2-starter-standalone/pom.xml
index 637cb76..d1d9ea7 100644
--- 
a/java-chassis-spring-boot/spring-boot2-starter-parent/spring-boot2-starter-standalone/pom.xml
+++ 
b/java-chassis-spring-boot/spring-boot2-starter-parent/spring-boot2-starter-standalone/pom.xml
@@ -41,7 +41,7 @@
 
 
 
-  org.hibernate
+  org.hibernate.validator
   hibernate-validator
 
 
diff --git a/samples/bmi/pom.xml b/samples/bmi/pom.xml
index 954a4bd..f3de7db 100644
--- a/samples/bmi/pom.xml
+++ b/samples/bmi/pom.xml
@@ -60,7 +60,7 @@
 
   
 
-  org.hibernate
+  org.hibernate.validator
   hibernate-validator
 
   
diff --git a/samples/metrics-extend-healthcheck/pom.xml 
b/samples/metrics-extend-healthcheck/pom.xml
index 0d2a066..952f2d3 100644
--- a/samples/metrics-extend-healthcheck/pom.xml
+++ b/samples/metrics-extend-healthcheck/pom.xml
@@ -41,7 +41,7 @@
 
 
 
-  org.hibernate
+  org.hibernate.validator
   hibernate-validator
 
 
diff --git a/swagger/swagger-invocation/invocation-validator/pom.xml 
b/swagger/swagger-invocation/invocation-validator

[servicecomb-java-chassis] branch master updated: fix bug of dependncy warning

2019-03-26 Thread wujimin
This is an automated email from the ASF dual-hosted git repository.

wujimin 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 2aff2a6  fix bug of dependncy warning
2aff2a6 is described below

commit 2aff2a685e750f643834e8b498f1d57bfe5941b6
Author: lisen <992825...@qq.com>
AuthorDate: Sun Mar 24 17:28:07 2019 +0800

fix bug of dependncy warning
---
 .../src/main/resources/archetype-resources/pom.xml | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git 
a/archetypes/business-service-spring-boot-starter/src/main/resources/archetype-resources/pom.xml
 
b/archetypes/business-service-spring-boot-starter/src/main/resources/archetype-resources/pom.xml
index 5a44dd1..4277791 100644
--- 
a/archetypes/business-service-spring-boot-starter/src/main/resources/archetype-resources/pom.xml
+++ 
b/archetypes/business-service-spring-boot-starter/src/main/resources/archetype-resources/pom.xml
@@ -52,8 +52,9 @@
   spring-boot-starter-provider
 
 
-  org.hibernate
+  org.hibernate.validator
   hibernate-validator
+  6.0.2.Final
 
   
 



[servicecomb-java-chassis] branch weak-contract-type updated: [SC-1214][WIP][WEAK] change weak-contract-type branch version to weak-contract-type-SNAPSHOT

2019-03-22 Thread wujimin
This is an automated email from the ASF dual-hosted git repository.

wujimin pushed a commit to branch weak-contract-type
in repository https://gitbox.apache.org/repos/asf/servicecomb-java-chassis.git


The following commit(s) were added to refs/heads/weak-contract-type by this 
push:
 new 73c5248  [SC-1214][WIP][WEAK] change weak-contract-type branch version 
to weak-contract-type-SNAPSHOT
73c5248 is described below

commit 73c52482a80e05341a87c6e72f53473ab1b50fb7
Author: wujimin 
AuthorDate: Fri Mar 22 12:41:30 2019 +0800

[SC-1214][WIP][WEAK] change weak-contract-type branch version to 
weak-contract-type-SNAPSHOT
---
 archetypes/business-service-jaxrs/pom.xml  |  2 +-
 .../src/main/resources/archetype-resources/pom.xml |  2 +-
 archetypes/business-service-pojo/pom.xml   |  2 +-
 .../src/main/resources/archetype-resources/pom.xml |  2 +-
 .../business-service-spring-boot-starter/pom.xml   |  2 +-
 .../src/main/resources/archetype-resources/pom.xml |  2 +-
 archetypes/business-service-springmvc/pom.xml  |  2 +-
 .../src/main/resources/archetype-resources/pom.xml |  2 +-
 archetypes/pom.xml |  2 +-
 common/common-javassist/pom.xml|  2 +-
 common/common-protobuf/pom.xml |  2 +-
 common/common-rest/pom.xml |  2 +-
 common/pom.xml |  2 +-
 core/pom.xml   |  2 +-
 coverage-reports/pom.xml   | 56 +++---
 demo/demo-crossapp/crossapp-client/pom.xml |  4 +-
 demo/demo-crossapp/crossapp-server/pom.xml |  4 +-
 demo/demo-crossapp/pom.xml |  2 +-
 demo/demo-edge/authentication/pom.xml  |  2 +-
 demo/demo-edge/business-1-1-0/pom.xml  |  4 +-
 demo/demo-edge/business-1.0.0/pom.xml  |  2 +-
 demo/demo-edge/business-2.0.0/pom.xml  |  4 +-
 demo/demo-edge/consumer/pom.xml|  4 +-
 demo/demo-edge/edge-service/pom.xml|  2 +-
 demo/demo-edge/model/pom.xml   |  2 +-
 demo/demo-edge/pom.xml |  2 +-
 demo/demo-jaxrs/jaxrs-client/pom.xml   |  2 +-
 demo/demo-jaxrs/jaxrs-server/pom.xml   |  2 +-
 demo/demo-jaxrs/pom.xml|  2 +-
 demo/demo-local/pom.xml|  2 +-
 demo/demo-multiple/a-client/pom.xml|  2 +-
 demo/demo-multiple/a-server/pom.xml|  2 +-
 demo/demo-multiple/b-client/pom.xml|  2 +-
 demo/demo-multiple/b-server/pom.xml|  2 +-
 demo/demo-multiple/multiple-client/pom.xml |  2 +-
 demo/demo-multiple/multiple-server/pom.xml |  2 +-
 demo/demo-multiple/pom.xml |  2 +-
 demo/demo-pojo/pojo-client/pom.xml |  2 +-
 demo/demo-pojo/pojo-server/pom.xml |  2 +-
 demo/demo-pojo/pojo-tests/pom.xml  |  2 +-
 demo/demo-pojo/pom.xml |  2 +-
 demo/demo-schema/pom.xml   |  2 +-
 demo/demo-server-servlet/pom.xml   |  2 +-
 demo/demo-signature/pom.xml|  2 +-
 .../demo-spring-boot-discovery-client/pom.xml  |  2 +-
 .../demo-spring-boot-discovery-server/pom.xml  |  4 +-
 .../demo-spring-boot-zuul-proxy/pom.xml|  4 +-
 demo/demo-spring-boot-discovery/pom.xml|  2 +-
 .../demo-spring-boot-jaxrs-client/pom.xml  |  4 +-
 .../demo-spring-boot-jaxrs-server/pom.xml  |  4 +-
 .../demo-spring-boot-springmvc-client/pom.xml  |  2 +-
 .../demo-spring-boot-springmvc-server/pom.xml  |  2 +-
 demo/demo-spring-boot-provider/pom.xml |  2 +-
 .../demo-spring-boot-pojo-client/pom.xml   |  4 +-
 .../demo-spring-boot-pojo-server/pom.xml   |  2 +-
 demo/demo-spring-boot-transport/pom.xml|  2 +-
 demo/demo-springmvc/pom.xml|  2 +-
 demo/demo-springmvc/springmvc-client/pom.xml   |  2 +-
 demo/demo-springmvc/springmvc-server/pom.xml   |  4 +-
 demo/docker-build-config/pom.xml   |  2 +-
 demo/docker-run-config/pom.xml |  2 +-
 demo/perf/pom.xml  |  2 +-
 demo/pom.xml   |  2 +-
 deployment/pom.xml |  2 +-
 dynamic-config/config-apollo/pom.xml   |  2 +-
 dynamic-config/config-cc/pom.xml   |  2 +-
 dynamic-config/pom.xml |  2 +-
 edge/edge-core/pom.xml |  2 +-
 edge/pom.xml   |  2 +-
 foundations/foundation-common/pom.xml  |  2 +-
 foundations/foundation-config/pom.xml  |  2 +-
 foundations/foundation-metrics/pom.xml |  2 +-
 foundations

[servicecomb-docs] branch master updated (0ef2c95 -> 7ea356a)

2019-03-21 Thread wujimin
This is an automated email from the ASF dual-hosted git repository.

wujimin pushed a change to branch master
in repository https://gitbox.apache.org/repos/asf/servicecomb-docs.git.


from 0ef2c95  Update general-config.md
 new 924d80e  fix allowCrossApp config
 new 7ea356a  fix file download Content-Disposition header example

The 195 revisions listed above as "new" are entirely new to this
repository and will be described in separate emails.  The revisions
listed as "add" were already present in the repository and have only
been added to this reference.


Summary of changes:
 java-chassis-reference/en_US/general-development/file-download.md | 4 ++--
 .../zh_CN/general-development/cross-app-invocation.md | 1 +
 java-chassis-reference/zh_CN/general-development/file-download.md | 4 ++--
 3 files changed, 5 insertions(+), 4 deletions(-)



[servicecomb-java-chassis] branch weak-contract-type updated (370fb62 -> 72cd0e1)

2019-03-21 Thread wujimin
This is an automated email from the ASF dual-hosted git repository.

wujimin pushed a change to branch weak-contract-type
in repository https://gitbox.apache.org/repos/asf/servicecomb-java-chassis.git.


from 370fb62  [SCB-1193] fix dependency wrong and add common dependencies 
of test for each parent
 add 25fe8f6  [SCB-1210] improve the precision of average latency metrics 
in low tps situation
 add 72cd0e1  [SCB-1211] avoid create multiple caches for different 
expression of one versionRule

No new revisions were added by this update.

Summary of changes:
 .../core/provider/consumer/ReferenceConfig.java|  3 +
 .../provider/consumer/TestReferenceConfig.java | 42 +---
 .../config/ConfigurationSpringInitializer.java |  1 +
 .../metrics/core/publish/DefaultLogPublisher.java  | 22 +++---
 .../metrics/core/publish/PublishUtils.java |  2 +-
 .../core/publish/model/invocation/PerfInfo.java|  6 +-
 .../core/publish/TestDefaultLogPublisher.java  | 40 +++
 .../publish/TestInvocationPublishModelFactory.java | 80 +++---
 .../metrics/core/publish/TestPublishUtils.java |  6 +-
 .../model/invocation/TestOperationPerf.java|  4 +-
 .../model/invocation/TestOperationPerfGroup.java   |  4 +-
 .../publish/model/invocation/TestPerfInfo.java |  8 +--
 12 files changed, 128 insertions(+), 90 deletions(-)



[servicecomb-java-chassis] branch weak-contract-type created (now 370fb62)

2019-03-20 Thread wujimin
This is an automated email from the ASF dual-hosted git repository.

wujimin pushed a change to branch weak-contract-type
in repository https://gitbox.apache.org/repos/asf/servicecomb-java-chassis.git.


  at 370fb62  [SCB-1193] fix dependency wrong and add common dependencies 
of test for each parent

No new revisions were added by this update.



[servicecomb-java-chassis] branch master updated: [SCB-1208] improve slow invocation logger: log remote address

2019-03-19 Thread wujimin
This is an automated email from the ASF dual-hosted git repository.

wujimin 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 6819a27  [SCB-1208] improve slow invocation logger: log remote address
6819a27 is described below

commit 6819a270d217547c6eaadd0e5ab2aeb8a7e59be7
Author: wujimin 
AuthorDate: Tue Mar 19 12:31:43 2019 +0800

[SCB-1208] improve slow invocation logger: log remote address
---
 .../metrics/core/publish/SlowInvocationLogger.java | 18 
 .../core/publish/TestSlowInvocationLogger.java | 25 +++---
 2 files changed, 40 insertions(+), 3 deletions(-)

diff --git 
a/metrics/metrics-core/src/main/java/org/apache/servicecomb/metrics/core/publish/SlowInvocationLogger.java
 
b/metrics/metrics-core/src/main/java/org/apache/servicecomb/metrics/core/publish/SlowInvocationLogger.java
index f042120..0283b50 100644
--- 
a/metrics/metrics-core/src/main/java/org/apache/servicecomb/metrics/core/publish/SlowInvocationLogger.java
+++ 
b/metrics/metrics-core/src/main/java/org/apache/servicecomb/metrics/core/publish/SlowInvocationLogger.java
@@ -20,11 +20,13 @@ import java.util.concurrent.TimeUnit;
 
 import org.apache.servicecomb.common.rest.RestConst;
 import org.apache.servicecomb.common.rest.definition.RestOperationMeta;
+import org.apache.servicecomb.core.Endpoint;
 import org.apache.servicecomb.core.Invocation;
 import org.apache.servicecomb.core.SCBEngine;
 import org.apache.servicecomb.core.definition.OperationConfig;
 import org.apache.servicecomb.core.event.InvocationFinishEvent;
 import org.apache.servicecomb.core.invocation.InvocationStageTrace;
+import org.apache.servicecomb.foundation.vertx.http.HttpServletRequestEx;
 import org.apache.servicecomb.swagger.invocation.Response;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
@@ -62,6 +64,16 @@ public class SlowInvocationLogger {
 logSlowConsumer(invocation, event.getResponse(), operationConfig);
   }
 
+  private String collectClientAddress(Invocation invocation) {
+HttpServletRequestEx requestEx = invocation.getRequestEx();
+return requestEx == null ? "unknown" : requestEx.getRemoteAddr() + ":" + 
requestEx.getRemotePort();
+  }
+
+  private String collectTargetAddress(Invocation invocation) {
+Endpoint endpoint = invocation.getEndpoint();
+return endpoint == null ? "unknown" : endpoint.getEndpoint();
+  }
+
   private String formatTime(double doubleNano) {
 long micros = TimeUnit.NANOSECONDS.toMicros((long) doubleNano);
 return micros / 1000 + "." + micros % 1000;
@@ -74,6 +86,7 @@ public class SlowInvocationLogger {
 + "slow({} ms) invocation, {}:\n"
 + "  http method: {}\n"
 + "  url: {}\n"
++ "  client : {}\n"
 + "  status code: {}\n"
 + "  total  : {} ms\n"
 + "prepare: {} ms\n"
@@ -88,6 +101,7 @@ public class SlowInvocationLogger {
 invocation.getInvocationQualifiedName(),
 restOperationMeta.getHttpMethod(),
 restOperationMeta.getAbsolutePath(),
+collectClientAddress(invocation),
 response.getStatusCode(),
 formatTime(stageTrace.calcTotalTime()),
 formatTime(stageTrace.calcInvocationPrepareTime()),
@@ -108,6 +122,7 @@ public class SlowInvocationLogger {
 + "slow({} ms) invocation, {}:\n"
 + "  http method: {}\n"
 + "  url: {}\n"
++ "  server : {}\n"
 + "  status code: {}\n"
 + "  total  : {} ms\n"
 + "prepare: {} ms\n"
@@ -124,6 +139,7 @@ public class SlowInvocationLogger {
 invocation.getInvocationQualifiedName(),
 restOperationMeta.getHttpMethod(),
 restOperationMeta.getAbsolutePath(),
+collectTargetAddress(invocation),
 response.getStatusCode(),
 formatTime(stageTrace.calcTotalTime()),
 formatTime(stageTrace.calcInvocationPrepareTime()),
@@ -146,6 +162,7 @@ public class SlowInvocationLogger {
 + "slow({} ms) invocation, {}:\n"
 + "  http method: {}\n"
 + "  url: {}\n"
++ "  server : {}\n"
 + "  status code: {}\n"
 + "  total  : {} ms\n"
 + "prepare: {} ms\n"
@@ -166,6 +183,7 @@ public class SlowInvocationLogger {
 invocation.getInvocationQualifiedName(),
 restOperationMeta.getHttpMethod(),
 restOperationMeta.getAbsolutePath(),
+collectTargetAddress(invocation),
 response

[servicecomb-java-chassis] branch master updated: [SCB-1205] improve edge forward http2 request

2019-03-19 Thread wujimin
This is an automated email from the ASF dual-hosted git repository.

wujimin 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 8d34751  [SCB-1205] improve edge forward http2 request
8d34751 is described below

commit 8d347513f7dad6b368e3f19a98f6b4f160e8fbdf
Author: wujimin 
AuthorDate: Tue Mar 19 08:49:07 2019 +0800

[SCB-1205] improve edge forward http2 request
---
 .../servicecomb/edge/core/EdgeRestTransportClient.java   |  4 +++-
 .../transport/rest/client/RestTransportClient.java   | 16 ++--
 2 files changed, 9 insertions(+), 11 deletions(-)

diff --git 
a/edge/edge-core/src/main/java/org/apache/servicecomb/edge/core/EdgeRestTransportClient.java
 
b/edge/edge-core/src/main/java/org/apache/servicecomb/edge/core/EdgeRestTransportClient.java
index bfac386..f09cf93 100644
--- 
a/edge/edge-core/src/main/java/org/apache/servicecomb/edge/core/EdgeRestTransportClient.java
+++ 
b/edge/edge-core/src/main/java/org/apache/servicecomb/edge/core/EdgeRestTransportClient.java
@@ -17,6 +17,7 @@
 package org.apache.servicecomb.edge.core;
 
 import org.apache.servicecomb.core.Invocation;
+import org.apache.servicecomb.foundation.vertx.client.ClientPoolManager;
 import 
org.apache.servicecomb.foundation.vertx.client.http.HttpClientWithContext;
 import org.apache.servicecomb.transport.rest.client.RestTransportClient;
 
@@ -24,7 +25,8 @@ import io.vertx.core.Context;
 
 public class EdgeRestTransportClient extends RestTransportClient {
   @Override
-  protected HttpClientWithContext findHttpClientPool(Invocation invocation) {
+  protected HttpClientWithContext 
findHttpClientPool(ClientPoolManager clientMgr,
+  Invocation invocation) {
 Context invocationContext = (Context) 
invocation.getHandlerContext().get(EdgeInvocation.EDGE_INVOCATION_CONTEXT);
 return clientMgr.findClientPool(invocation.isSync(), invocationContext);
   }
diff --git 
a/transports/transport-rest/transport-rest-client/src/main/java/org/apache/servicecomb/transport/rest/client/RestTransportClient.java
 
b/transports/transport-rest/transport-rest-client/src/main/java/org/apache/servicecomb/transport/rest/client/RestTransportClient.java
index 5bd898a..ae7d28d 100644
--- 
a/transports/transport-rest/transport-rest-client/src/main/java/org/apache/servicecomb/transport/rest/client/RestTransportClient.java
+++ 
b/transports/transport-rest/transport-rest-client/src/main/java/org/apache/servicecomb/transport/rest/client/RestTransportClient.java
@@ -101,14 +101,13 @@ public class RestTransportClient {
 
   public void send(Invocation invocation, AsyncResponse asyncResp) {
 URIEndpointObject endpoint = (URIEndpointObject) 
invocation.getEndpoint().getAddress();
-HttpClientWithContext httpClientWithContext;
 
+ClientPoolManager currentClientMgr = clientMgr;
 if (endpoint.isHttp2Enabled()) {
-  httpClientWithContext = findHttp2ClientPool(invocation);
-} else {
-  httpClientWithContext = findHttpClientPool(invocation);
+  currentClientMgr = clientMgrHttp2;
 }
 
+HttpClientWithContext httpClientWithContext = 
findHttpClientPool(currentClientMgr, invocation);
 RestClientInvocation restClientInvocation = new 
RestClientInvocation(httpClientWithContext, httpClientFilters);
 
 try {
@@ -119,11 +118,8 @@ public class RestTransportClient {
 }
   }
 
-  protected HttpClientWithContext findHttpClientPool(Invocation invocation) {
-return clientMgr.findClientPool(invocation.isSync());
-  }
-
-  public HttpClientWithContext findHttp2ClientPool(Invocation invocation) {
-return clientMgrHttp2.findClientPool(invocation.isSync());
+  protected HttpClientWithContext 
findHttpClientPool(ClientPoolManager currentClientMgr,
+  Invocation invocation) {
+return currentClientMgr.findClientPool(invocation.isSync());
   }
 }



[servicecomb-java-chassis] branch master updated: [SCB-1202]pump down with vertx3.6.3 no need to check buff length in AsynFileImpl#doWrite

2019-03-18 Thread wujimin
This is an automated email from the ASF dual-hosted git repository.

wujimin 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 b56b0f5  [SCB-1202]pump down with vertx3.6.3 no need to check buff 
length in AsynFileImpl#doWrite
b56b0f5 is described below

commit b56b0f583d9c6be2d80e0ba114a50f20611e6511
Author: heyile <2513931...@qq.com>
AuthorDate: Sat Mar 16 19:07:47 2019 +0800

[SCB-1202]pump down with vertx3.6.3 no need to check buff length in 
AsynFileImpl#doWrite
---
 LICENSE|   1 -
 .../foundation/vertx/stream/PumpCommon.java|   3 +-
 .../foundation/vertx/stream/PumpImplEx.java| 104 -
 .../foundation/vertx/stream/TestPumpImpl.java  |  50 --
 .../it-producer-deploy-springboot2-servlet/pom.xml |   1 -
 .../pom.xml|   1 -
 java-chassis-distribution/src/release/LICENSE  |   6 --
 pom.xml|   1 -
 8 files changed, 2 insertions(+), 165 deletions(-)

diff --git a/LICENSE b/LICENSE
index 916a104..6eab432 100644
--- a/LICENSE
+++ b/LICENSE
@@ -219,7 +219,6 @@ For details, see https://github.com/vert-x3/vertx-web
 
 For 
foundations/foundation-vertx/src/main/java/io/vertx/core/impl/VertxImpl.java
 
foundations/foundation-test-scaffolding/src/main/java/io/vertx/core/impl/VertxImpl.java
-
foundations/foundation-vertx/src/main/java/org/apache/servicecomb/foundation/vertx/stream/PumpImplEx.java
 
 This product bundles files from vertx which is licensed under the Apache 
License v2.
 For details, see https://github.com/eclipse-vertx/vert.x
diff --git 
a/foundations/foundation-vertx/src/main/java/org/apache/servicecomb/foundation/vertx/stream/PumpCommon.java
 
b/foundations/foundation-vertx/src/main/java/org/apache/servicecomb/foundation/vertx/stream/PumpCommon.java
index 090882a..77334b9 100644
--- 
a/foundations/foundation-vertx/src/main/java/org/apache/servicecomb/foundation/vertx/stream/PumpCommon.java
+++ 
b/foundations/foundation-vertx/src/main/java/org/apache/servicecomb/foundation/vertx/stream/PumpCommon.java
@@ -23,6 +23,7 @@ import 
org.apache.servicecomb.foundation.common.io.AsyncCloseable;
 import io.vertx.core.Context;
 import io.vertx.core.buffer.Buffer;
 import io.vertx.core.http.HttpClientResponse;
+import io.vertx.core.streams.Pump;
 import io.vertx.core.streams.ReadStream;
 import io.vertx.core.streams.WriteStream;
 
@@ -63,7 +64,7 @@ public class PumpCommon {
 // belongs to difference eventloop
 // maybe will cause deadlock
 // if happened, vertx will print deadlock stacks
-PumpImplEx.getPumpImplEx(readStream, writeStream).start();
+Pump.pump(readStream, writeStream).start();
 try {
   context.runOnContext(v -> readStream.resume());
 } catch (Throwable e) {
diff --git 
a/foundations/foundation-vertx/src/main/java/org/apache/servicecomb/foundation/vertx/stream/PumpImplEx.java
 
b/foundations/foundation-vertx/src/main/java/org/apache/servicecomb/foundation/vertx/stream/PumpImplEx.java
deleted file mode 100644
index e835629..000
--- 
a/foundations/foundation-vertx/src/main/java/org/apache/servicecomb/foundation/vertx/stream/PumpImplEx.java
+++ /dev/null
@@ -1,104 +0,0 @@
-/*
- * Copyright (c) 2014 Red Hat, Inc. and others
- *
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License 2.0 which is available at
- * http://www.eclipse.org/legal/epl-2.0, or the Apache License, Version 2.0
- * which is available at https://www.apache.org/licenses/LICENSE-2.0.
- *
- * SPDX-License-Identifier: EPL-2.0 OR Apache-2.0
- */
-
-/*
- *  Froked from 
https://github.com/eclipse-vertx/vert.x/blob/master/src/main/java/io/vertx/core/streams/impl/PumpImpl.java
- *
- */
-package org.apache.servicecomb.foundation.vertx.stream;
-
-import io.vertx.core.Handler;
-import io.vertx.core.buffer.Buffer;
-import io.vertx.core.streams.Pump;
-import io.vertx.core.streams.ReadStream;
-import io.vertx.core.streams.WriteStream;
-
-public class PumpImplEx implements Pump {
-
-  private final ReadStream readStream;
-
-  private final WriteStream writeStream;
-
-  private final Handler dataHandler;
-
-  private final Handler drainHandler;
-
-  private int pumped;
-
-  public PumpImplEx(ReadStream readStream, WriteStream writeStream, int 
maxWriteQueueSize) {
-this(readStream, writeStream);
-this.writeStream.setWriteQueueMaxSize(maxWriteQueueSize);
-  }
-
-  public PumpImplEx(ReadStream readStream, WriteStream writeStream) {
-this.readStream = readStream;
-this.writeStream = writeStream;
-drainHandler = v -> readStream.resume();
-dataHandler = data -> {

[servicecomb-java-chassis] branch master updated (4be9cc0 -> 577c08c)

2019-03-13 Thread wujimin
This is an automated email from the ASF dual-hosted git repository.

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


from 4be9cc0  [SCB-1193]delete unnecessary file
 new 288e60c  [SCB-1192] add "metrics" prefix to slow invocation 
configuration, and must remain compatible
 new adfd591  [SCB-1192] support change latency distribution scope log 
length
 new b8ec955  [SCB-1192] enable slow invocation check in basic solution
 new 577c08c  [SCB-1192] tiny adjust inspector css

The 2161 revisions listed above as "new" are entirely new to this
repository and will be described in separate emails.  The revisions
listed as "add" were already present in the repository and have only
been added to this reference.


Summary of changes:
 .../apache/servicecomb/core/definition/OperationConfig.java |  6 --
 .../servicecomb/core/definition/TestOperationMeta.java  | 13 +
 demo/perf/src/main/resources/microservice.yaml  |  9 +
 inspector/src/main/resources/webroot/index.html |  2 +-
 .../src/main/resources/webroot/static/schemas/schemas.js|  9 ++---
 .../metrics/core/meter/invocation/MeterInvocationConst.java |  2 ++
 .../metrics/core/publish/DefaultLogPublisher.java   | 11 +++
 .../solution-basic/src/main/resources/microservice.yaml |  9 -
 8 files changed, 50 insertions(+), 11 deletions(-)



[servicecomb-java-chassis] branch master updated (4c42fb5 -> 4be9cc0)

2019-03-13 Thread wujimin
This is an automated email from the ASF dual-hosted git repository.

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


from 4c42fb5  [SCB-1147] fix slow invocation log problem
 new ad82fc3  [SCB-1193]upgread spring boot versions and add easy to use 
dependency management
 new 3ec7912  [SCB-1193]fix spring boot 2 incompatible changes.
 new 4be9cc0  [SCB-1193]delete unnecessary file

The 2157 revisions listed above as "new" are entirely new to this
repository and will be described in separate emails.  The revisions
listed as "add" were already present in the repository and have only
been added to this reference.


Summary of changes:
 archetypes/pom.xml |2 +-
 common/pom.xml |2 +-
 core/pom.xml   |2 +-
 coverage-reports/pom.xml   |2 +-
 demo/perf/pom.xml  |1 +
 demo/pom.xml   |2 +-
 deployment/pom.xml |2 +-
 dynamic-config/pom.xml |2 +-
 edge/pom.xml   |2 +-
 foundations/foundation-protobuf/pom.xml|1 +
 foundations/pom.xml|2 +-
 handlers/pom.xml   |2 +-
 inspector/pom.xml  |2 +-
 .../it-common/src/main/resources/logback.xml   |1 +
 .../it-producer-deploy-springboot2-servlet/pom.xml |1 +
 .../pom.xml|1 +
 integration-tests/pom.xml  |2 +-
 java-chassis-dependencies/{ => default}/pom.xml|8 +-
 java-chassis-dependencies/pom.xml  | 1102 +---
 .../spring4}/pom.xml   |   24 +-
 java-chassis-dependencies/spring5/pom.xml  |  115 ++
 .../springboot1}/pom.xml   |   41 +-
 .../springboot2}/pom.xml   |   75 +-
 java-chassis-distribution/pom.xml  |2 +-
 java-chassis-spring-boot/pom.xml   |1 +
 .../spring-boot-common/pom.xml |4 +-
 .../springboot/common/InstanceDiscoveryFilter.java |6 +-
 .../spring-boot-starter/pom.xml|2 +-
 .../starter/discovery/ScbDiscoveryClient.java  |4 +-
 .../spring-boot2-starter-parent/pom.xml|5 +-
 .../starter/discovery/ScbDiscoveryClient.java  |4 +-
 .../spring-boot2-starter-gateway/pom.xml   |5 +-
 .../spring-boot2-starter-servlet/pom.xml   |1 +
 .../spring-boot2-starter-standalone/pom.xml|1 +
 .../spring-boot2-starter/pom.xml   |2 +-
 metrics/pom.xml|2 +-
 {parent => parents/default}/pom.xml|4 +-
 {transports/transport-rest => parents}/pom.xml |   18 +-
 .../transport-rest => parents/spring4}/pom.xml |   24 +-
 .../transport-rest => parents/spring5}/pom.xml |   24 +-
 .../transport-rest => parents/springboot1}/pom.xml |   24 +-
 .../transport-rest => parents/springboot2}/pom.xml |   24 +-
 pom.xml|3 +-
 providers/pom.xml  |2 +-
 samples/bmi/pom.xml|1 +
 .../local-registry-server/pom.xml  |1 +
 samples/metrics-extend-healthcheck/pom.xml |1 +
 samples/pom.xml|2 +
 scripts/travis.sh  |2 +-
 service-registry/pom.xml   |2 +-
 solutions/pom.xml  |2 +-
 swagger/pom.xml|2 +-
 tracing/pom.xml|2 +-
 transports/pom.xml |2 +-
 54 files changed, 325 insertions(+), 1248 deletions(-)
 copy java-chassis-dependencies/{ => default}/pom.xml (99%)
 copy {samples/metrics-write-file-sample => 
java-chassis-dependencies/spring4}/pom.xml (72%)
 create mode 100644 java-chassis-dependencies/spring5/pom.xml
 copy {samples/metrics-write-file-sample => 
java-chassis-dependencies/springboot1}/pom.xml (55%)
 rename {java-chassis-dependencies-springboot2 => 
java-chassis-dependencies/springboot2}/pom.xml (77%)
 rename {parent => parents/default}/pom.xml (96%)
 copy {transports/transport-rest => parents}/pom.xml (81%)
 copy {transports/transport-rest => parents/spring4}/pom.xml (67%)
 copy {transports/transport-rest => parents/spring5}/pom.xml (67%)
 copy {transports/transport-rest => parents/springboot1}/pom.xml (66%)
 copy {transports/transport-rest => parents/springboot2}/pom.xml (66%)



[servicecomb-docs] branch master updated (81947e9 -> 0ef2c95)

2019-03-12 Thread wujimin
This is an automated email from the ASF dual-hosted git repository.

wujimin pushed a change to branch master
in repository https://gitbox.apache.org/repos/asf/servicecomb-docs.git.


from 81947e9  [SCB-1162]document for 
PriorityProperty/InjectProperties/InjectProperty
 new 7227aaf  Update general-config.md
 new 0ef2c95  Update general-config.md

The 193 revisions listed above as "new" are entirely new to this
repository and will be described in separate emails.  The revisions
listed as "add" were already present in the repository and have only
been added to this reference.


Summary of changes:
 java-chassis-reference/en_US/config/general-config.md | 2 +-
 java-chassis-reference/zh_CN/config/general-config.md | 2 +-
 2 files changed, 2 insertions(+), 2 deletions(-)



[servicecomb-java-chassis] branch master updated: [SCB-1147] fix slow invocation log problem

2019-03-11 Thread wujimin
This is an automated email from the ASF dual-hosted git repository.

wujimin 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 4c42fb5  [SCB-1147] fix slow invocation log problem
4c42fb5 is described below

commit 4c42fb5c7350d5fe611bb21a3e4c2adf3b07acee
Author: yaohaishi 
AuthorDate: Mon Mar 11 23:02:14 2019 +0800

[SCB-1147] fix slow invocation log problem
---
 .../apache/servicecomb/metrics/core/publish/SlowInvocationLogger.java  | 1 -
 .../servicecomb/metrics/core/publish/TestSlowInvocationLogger.java | 3 +--
 2 files changed, 1 insertion(+), 3 deletions(-)

diff --git 
a/metrics/metrics-core/src/main/java/org/apache/servicecomb/metrics/core/publish/SlowInvocationLogger.java
 
b/metrics/metrics-core/src/main/java/org/apache/servicecomb/metrics/core/publish/SlowInvocationLogger.java
index e0c866a..f042120 100644
--- 
a/metrics/metrics-core/src/main/java/org/apache/servicecomb/metrics/core/publish/SlowInvocationLogger.java
+++ 
b/metrics/metrics-core/src/main/java/org/apache/servicecomb/metrics/core/publish/SlowInvocationLogger.java
@@ -79,7 +79,6 @@ public class SlowInvocationLogger {
 + "prepare: {} ms\n"
 + "threadPoolQueue: {} ms\n"
 + "server filters request : {} ms\n"
-+ "server filters request : {} ms\n"
 + "handlers request   : {} ms\n"
 + "business execute   : {} ms\n"
 + "handlers response  : {} ms\n"
diff --git 
a/metrics/metrics-core/src/test/java/org/apache/servicecomb/metrics/core/publish/TestSlowInvocationLogger.java
 
b/metrics/metrics-core/src/test/java/org/apache/servicecomb/metrics/core/publish/TestSlowInvocationLogger.java
index 921a5c8..fb7c5eb 100644
--- 
a/metrics/metrics-core/src/test/java/org/apache/servicecomb/metrics/core/publish/TestSlowInvocationLogger.java
+++ 
b/metrics/metrics-core/src/test/java/org/apache/servicecomb/metrics/core/publish/TestSlowInvocationLogger.java
@@ -208,12 +208,11 @@ public class TestSlowInvocationLogger {
 + "prepare: 0.0 ms\n"
 + "threadPoolQueue: 0.0 ms\n"
 + "server filters request : 0.0 ms\n"
-+ "server filters request : 0.0 ms\n"
 + "handlers request   : 0.0 ms\n"
 + "business execute   : 0.0 ms\n"
 + "handlers response  : 0.0 ms\n"
 + "server filters response: 0.0 ms\n"
-+ "send response  : {} ms",
++ "send response  : 0.0 ms",
 logCollector.getEvents().get(0).getMessage());
   }
 }



[servicecomb-java-chassis] branch master updated: [SCB-1179]Optimize the mainclass auto-discovery logic to cover more scenes.

2019-03-10 Thread wujimin
This is an automated email from the ASF dual-hosted git repository.

wujimin 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 b110d7e  [SCB-1179]Optimize the mainclass auto-discovery logic to 
cover more scenes.
b110d7e is described below

commit b110d7efbb38cbc958bc8b6a43a72ca90f8d6487
Author: yangshaoqin 
AuthorDate: Fri Mar 1 18:46:28 2019 +0800

[SCB-1179]Optimize the mainclass auto-discovery logic to cover more scenes.
---
 .../foundation/common/utils/BeanUtils.java | 32 ---
 .../foundation/common/utils/JvmUtils.java  | 52 ++---
 .../foundation/common/utils/TestBeanUtils.java | 14 -
 .../foundation/common/utils/TestJvmUtils.java  | 66 --
 4 files changed, 143 insertions(+), 21 deletions(-)

diff --git 
a/foundations/foundation-common/src/main/java/org/apache/servicecomb/foundation/common/utils/BeanUtils.java
 
b/foundations/foundation-common/src/main/java/org/apache/servicecomb/foundation/common/utils/BeanUtils.java
index 103ac79..f7f4647 100644
--- 
a/foundations/foundation-common/src/main/java/org/apache/servicecomb/foundation/common/utils/BeanUtils.java
+++ 
b/foundations/foundation-common/src/main/java/org/apache/servicecomb/foundation/common/utils/BeanUtils.java
@@ -21,12 +21,17 @@ import java.util.LinkedHashSet;
 import java.util.Set;
 
 import org.apache.commons.lang3.StringUtils;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 import org.springframework.aop.TargetClassAware;
 import org.springframework.context.ApplicationContext;
 import org.springframework.context.support.ClassPathXmlApplicationContext;
 
 
 public final class BeanUtils {
+
+  private static final Logger LOGGER = 
LoggerFactory.getLogger(BeanUtils.class);
+
   public static final String DEFAULT_BEAN_RESOURCE = 
"classpath*:META-INF/spring/*.bean.xml";
 
   public static final String SCB_SCAN_PACKAGE = "scb-scan-package";
@@ -49,6 +54,16 @@ public final class BeanUtils {
 context = new ClassPathXmlApplicationContext(configLocations);
   }
 
+  private static void addItem(Set set, String item){
+
+for(String it: set){
+  if(item.startsWith(it)){
+return;
+  }
+ }
+set.add(item);
+  }
+
   public static void prepareServiceCombScanPackage() {
 Set scanPackags = new LinkedHashSet<>();
 // add exists settings
@@ -56,25 +71,26 @@ public final class BeanUtils {
 if (exists != null) {
   for (String exist : exists.trim().split(",")) {
 if (!exist.isEmpty()) {
-  scanPackags.add(exist.trim());
+  addItem(scanPackags, exist.trim());
 }
   }
 }
 
 // ensure servicecomb package exist
-scanPackags.add(SCB_PACKAGE);
+addItem(scanPackags, SCB_PACKAGE);
 
 // add main class package
-Class mainClass = JvmUtils.findMainClass();
-if (mainClass != null) {
-  String pkg = mainClass.getPackage().getName();
-  if (!pkg.startsWith(SCB_PACKAGE)) {
-scanPackags.add(pkg);
+for (Class mainClass : new Class[] {JvmUtils.findMainClass(), 
JvmUtils.findMainClassByStackTrace()}) {
+  if (mainClass != null) {
+String pkg = mainClass.getPackage().getName();
+addItem(scanPackags, pkg);
   }
 }
 
 // finish
-System.setProperty(SCB_SCAN_PACKAGE, StringUtils.join(scanPackags, ","));
+String scbScanPackages = StringUtils.join(scanPackags, ",");
+System.setProperty(SCB_SCAN_PACKAGE, scbScanPackages);
+LOGGER.info("Scb scan package list: " + scbScanPackages);
   }
 
   public static ApplicationContext getContext() {
diff --git 
a/foundations/foundation-common/src/main/java/org/apache/servicecomb/foundation/common/utils/JvmUtils.java
 
b/foundations/foundation-common/src/main/java/org/apache/servicecomb/foundation/common/utils/JvmUtils.java
index e6315e9..04196d3 100644
--- 
a/foundations/foundation-common/src/main/java/org/apache/servicecomb/foundation/common/utils/JvmUtils.java
+++ 
b/foundations/foundation-common/src/main/java/org/apache/servicecomb/foundation/common/utils/JvmUtils.java
@@ -22,6 +22,7 @@ import java.net.URL;
 import java.util.jar.JarFile;
 import java.util.jar.Manifest;
 
+import org.apache.commons.lang3.StringUtils;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
@@ -39,24 +40,55 @@ public final class JvmUtils {
 
   /**
*
-   * @return main class or null, never throw exception
+   * @return main class or null, never throw exception.
+   * Note that this method does not ensure that the scbMainClass can be 
returned correctly in the some scene.
+   */
+  public static Class findMainClassByStackTrace() {
+String mainClass = null;
+StackTraceElement[] stackTrace = new RuntimeException().getStackTrace();
+if (stackTrace != null && stackTrace.

[servicecomb-java-chassis] branch master updated: [SCB-1191] fix the bug of latest DefaultResponseTypeProcessor (#1124)

2019-03-10 Thread wujimin
This is an automated email from the ASF dual-hosted git repository.

wujimin 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 d782863  [SCB-1191] fix the bug of latest DefaultResponseTypeProcessor 
(#1124)
d782863 is described below

commit d78286319707aca5f5ee0c56f3d27fd287ab6ed5
Author: kakulisen <18813972...@163.com>
AuthorDate: Mon Mar 11 11:09:58 2019 +0800

[SCB-1191] fix the bug of latest DefaultResponseTypeProcessor (#1124)

support ResponseEntity
---
 .../core/processor/response/DefaultResponseTypeProcessor.java | 4 
 1 file changed, 4 insertions(+)

diff --git 
a/swagger/swagger-generator/generator-core/src/main/java/org/apache/servicecomb/swagger/generator/core/processor/response/DefaultResponseTypeProcessor.java
 
b/swagger/swagger-generator/generator-core/src/main/java/org/apache/servicecomb/swagger/generator/core/processor/response/DefaultResponseTypeProcessor.java
index caae476..b50a6eb 100644
--- 
a/swagger/swagger-generator/generator-core/src/main/java/org/apache/servicecomb/swagger/generator/core/processor/response/DefaultResponseTypeProcessor.java
+++ 
b/swagger/swagger-generator/generator-core/src/main/java/org/apache/servicecomb/swagger/generator/core/processor/response/DefaultResponseTypeProcessor.java
@@ -19,6 +19,7 @@ package 
org.apache.servicecomb.swagger.generator.core.processor.response;
 import java.lang.reflect.ParameterizedType;
 import java.lang.reflect.Type;
 
+import io.swagger.util.ReflectionUtils;
 import org.apache.servicecomb.swagger.generator.core.OperationGenerator;
 import org.apache.servicecomb.swagger.generator.core.ResponseTypeProcessor;
 import org.apache.servicecomb.swagger.generator.core.utils.ParamUtils;
@@ -60,6 +61,9 @@ public class DefaultResponseTypeProcessor implements 
ResponseTypeProcessor {
   }
 
   protected Model doProcess(OperationGenerator operationGenerator, Type 
responseType) {
+if (ReflectionUtils.isVoid(responseType)) {
+  return null;
+}
 ParamUtils.addDefinitions(operationGenerator.getSwagger(), responseType);
 Property property = 
ModelConverters.getInstance().readAsProperty(responseType);
 return new PropertyModelConverter().propertyToModel(property);



[servicecomb-java-chassis] branch master updated (df2002a -> f4ae766)

2019-03-07 Thread wujimin
This is an automated email from the ASF dual-hosted git repository.

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


from df2002a  [SCB-1185] add DNS related error log
 new 9778b76  [SCB-1046] file upload support file array for the same name: 
optimize code
 new 1eee132  [SCB-359]Servicecomb support latency statistic
 new f4ae766  [SCB-359]Servicecomb support latency statistic: fixed details

The 2141 revisions listed above as "new" are entirely new to this
repository and will be described in separate emails.  The revisions
listed as "add" were already present in the repository and have only
been added to this reference.


Summary of changes:
 .../common/rest/codec/RestClientRequest.java   |   2 +-
 .../rest/codec/param/RestClientRequestImpl.java|  10 +-
 .../metrics/meter/LatencyDistributionConfig.java   |  62 ++
 .../metrics/meter/LatencyDistributionMeter.java|  60 ++
 ...actPeriodMeter.java => LatencyScopeConfig.java} |  32 ++--
 .../metrics/meter/LatencyScopeMeter.java   |  59 ++
 .../metrics/publish/spectator/MeasurementNode.java |   8 +-
 .../meter/TestLatencyDistributionConfig.java   |  58 ++
 .../meter/TestLatencyDistributionMeter.java|  51 +
 .../meter/invocation/AbstractInvocationMeter.java  |  27 ++-
 .../meter/invocation/ConsumerInvocationMeter.java  |  14 +-
 .../core/meter/invocation/EdgeInvocationMeter.java |   8 +-
 .../meter/invocation/MeterInvocationConst.java |   6 +
 .../meter/invocation/ProducerInvocationMeter.java  |  10 +-
 .../metrics/core/publish/DefaultLogPublisher.java  | 141 +-
 .../metrics/core/publish/PublishModelFactory.java  |   3 +-
 .../metrics/core/publish/PublishUtils.java |  28 +--
 .../publish/model/invocation/OperationPerf.java|  32 +++-
 .../core/TestInvocationMetersInitializer.java  | 212 ++---
 .../core/publish/TestDefaultLogPublisher.java  |  43 +++--
 .../publish/TestInvocationPublishModelFactory.java | 106 ++-
 .../metrics/core/publish/TestPublishUtils.java |   8 +
 .../core/publish/model/invocation/Utils.java   |  11 +-
 .../swagger/generator/core/OperationGenerator.java |   2 +-
 .../swagger/invocation/converter/ConverterMgr.java |   2 +-
 25 files changed, 698 insertions(+), 297 deletions(-)
 create mode 100644 
foundations/foundation-metrics/src/main/java/org/apache/servicecomb/foundation/metrics/meter/LatencyDistributionConfig.java
 create mode 100644 
foundations/foundation-metrics/src/main/java/org/apache/servicecomb/foundation/metrics/meter/LatencyDistributionMeter.java
 copy 
foundations/foundation-metrics/src/main/java/org/apache/servicecomb/foundation/metrics/meter/{AbstractPeriodMeter.java
 => LatencyScopeConfig.java} (64%)
 create mode 100644 
foundations/foundation-metrics/src/main/java/org/apache/servicecomb/foundation/metrics/meter/LatencyScopeMeter.java
 create mode 100644 
foundations/foundation-metrics/src/test/java/org/apache/servicecomb/foundation/metrics/meter/TestLatencyDistributionConfig.java
 create mode 100644 
foundations/foundation-metrics/src/test/java/org/apache/servicecomb/foundation/metrics/meter/TestLatencyDistributionMeter.java



[servicecomb-java-chassis] branch master updated (661f78a -> d0ee6c0)

2019-03-05 Thread wujimin
This is an automated email from the ASF dual-hosted git repository.

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


from 661f78a  [SCB-1184] change others to follow 1.5.22 rule
 new 4d369a2  [SCB-1144]change samples use log4j2
 new d0ee6c0  [SCB-1144]change samples use log4j2: add -Werror to samples

The 2137 revisions listed above as "new" are entirely new to this
repository and will be described in separate emails.  The revisions
listed as "add" were already present in the repository and have only
been added to this reference.


Summary of changes:
 samples/auth-sample/auth-consumer/pom.xml  | 12 +--
 .../samples/auth/consumer/AuthConsumerMain.java| 10 ++
 .../src/main/resources/config/log4j.properties | 21 
 .../auth-consumer}/src/main/resources/log4j2.xml   | 21 ++--
 samples/auth-sample/auth-provider/pom.xml  | 12 +--
 .../samples/auth/provider/AuthProviderMain.java|  4 +---
 .../src/main/resources/config/log4j.properties | 21 
 .../auth-provider}/src/main/resources/log4j2.xml   | 21 ++--
 .../codefirst-sample/codefirst-consumer/pom.xml| 12 +--
 .../codefirst/consumer/CodeFirstConsumerMain.java  | 10 ++
 .../main/resources/config/log4j.demo.properties| 21 
 .../src/main/resources/log4j2.xml  | 21 ++--
 .../codefirst-sample/codefirst-provider/pom.xml| 12 +--
 .../codefirst/provider/CodeFirstProviderMain.java  |  4 +---
 .../main/resources/config/log4j.demo.properties| 21 
 .../src/main/resources/log4j2.xml  | 21 ++--
 samples/config-apollo-sample/pom.xml   | 12 +--
 .../src/main/java/MainServer.java  |  2 --
 .../src/main/resources/log4j.properties| 17 
 .../src/main/resources/log4j2.xml  | 21 ++--
 .../custom-handler-consumer/pom.xml| 12 +--
 .../consumer/CustomHandlerCustomerMain.java| 10 ++
 .../main/resources/config/log4j.demo.properties| 21 
 .../src/main/resources/log4j2.xml  | 21 ++--
 .../custom-handler-provider/pom.xml| 12 +--
 .../provider/CustomHandlerProviderMain.java|  5 +
 .../main/resources/config/log4j.demo.properties| 21 
 .../src/main/resources/log4j2.xml  | 21 ++--
 samples/jaxrs-sample/jaxrs-consumer/pom.xml| 12 +--
 .../samples/jaxrs/consumer/JaxrsConsumerMain.java  | 10 ++
 .../main/resources/config/log4j.demo.properties| 21 
 .../jaxrs-consumer}/src/main/resources/log4j2.xml  | 21 ++--
 samples/jaxrs-sample/jaxrs-provider/pom.xml| 12 +--
 .../samples/jaxrs/provider/JaxrsProviderMain.java  |  4 +---
 .../main/resources/config/log4j.demo.properties| 21 
 .../jaxrs-provider}/src/main/resources/log4j2.xml  | 21 ++--
 .../local-registry-client/pom.xml  | 12 +--
 .../localregistryclient/LocalRegistryClient.java   | 14 -
 .../src/main/resources/log4j2.xml  | 21 ++--
 .../local-registry-server/pom.xml  | 13 ++--
 .../localregistryserver/LocalRegistryServer.java   |  5 +
 .../src/main/resources/log4j2.xml  | 21 ++--
 samples/pojo-sample/pojo-consumer/pom.xml  | 13 ++--
 .../samples/pojo/consumer/PojoConsumerMain.java| 12 ++-
 .../main/resources/config/log4j.demo.properties| 21 
 .../pojo-consumer}/src/main/resources/log4j2.xml   | 21 ++--
 samples/pojo-sample/pojo-provider/pom.xml  | 13 ++--
 .../samples/pojo/provider/PojoProviderMain.java|  4 +---
 .../main/resources/config/log4j.demo.properties| 21 
 .../pojo-provider}/src/main/resources/log4j2.xml   | 21 ++--
 samples/pom.xml|  8 
 .../springmvc-sample/springmvc-consumer/pom.xml| 17 
 .../springmvc/consumer/SpringmvcConsumerMain.java  |  8 +---
 .../main/resources/config/log4j.demo.properties| 21 
 .../src/main/resources/log4j2.xml  | 21 ++--
 .../springmvc-sample/springmvc-provider/pom.xml| 17 
 .../springmvc/provider/SpringmvcProviderMain.java  |  4 +---
 .../main/resources/config/log4j.demo.properties| 21 
 .../src/main/resources/log4j2.xml  | 21 ++--
 samples/trust-sample/customer/pom.xml  | 13 +

[servicecomb-docs] branch master updated: [SCB-1175] refactor the instructions for the configuration mechanism

2019-03-04 Thread wujimin
This is an automated email from the ASF dual-hosted git repository.

wujimin pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/servicecomb-docs.git


The following commit(s) were added to refs/heads/master by this push:
 new b424464  [SCB-1175] refactor the instructions for the configuration 
mechanism
b424464 is described below

commit b4244648723a8cb96d693a456c2176dd0ab04625
Author: yaohaishi 
AuthorDate: Mon Mar 4 21:49:32 2019 +0800

[SCB-1175] refactor the instructions for the configuration mechanism
---
 java-chassis-reference/en_US/SUMMARY.md|  3 +-
 java-chassis-reference/en_US/catalog/config.md |  2 +
 .../en_US/catalog/general-develop.md   | 14 +---
 .../en_US/config/general-config.md | 77 ++
 .../en_US/general-development/config.md| 53 ---
 java-chassis-reference/zh_CN/SUMMARY.md|  3 +-
 java-chassis-reference/zh_CN/catalog/config.md |  2 +
 .../zh_CN/catalog/general-develop.md   | 13 +---
 .../zh_CN/config/general-config.md | 77 ++
 .../zh_CN/general-development/config.md| 53 ---
 10 files changed, 168 insertions(+), 129 deletions(-)

diff --git a/java-chassis-reference/en_US/SUMMARY.md 
b/java-chassis-reference/en_US/SUMMARY.md
index c1cad40..8ec9234 100644
--- a/java-chassis-reference/en_US/SUMMARY.md
+++ b/java-chassis-reference/en_US/SUMMARY.md
@@ -44,7 +44,6 @@
   * [HTTP2](transports/http2.md)
 * [General Development](catalog/general-develop.md)
   * [Access Service Center](general-development/visit-sc.md)
-  * [Using Dynamic Configuration](general-development/config.md)
   * [Metrics](general-development/metrics.md)
   * [Microservice invocation 
chain](general-development/microservice-invocation-chain.md)
   * [Customized-Tracing](general-development/customized-tracing.md)
@@ -66,6 +65,8 @@
   * [Handling exceptions](general-development/error-handling.md)
   * [Multi-environment isolation between microservice 
instances](general-development/multienvironment.md)
   * [Thread Model](general-development/thread-model.md)
+* [Configuration](catalog/config.md)
+  * [General config](config/general-config.md)
 * [Service Capability Open](edge/open-service.md)
   * [Using Edge Service](edge/by-servicecomb-sdk.md)
   * [Using confd and Nginx as edge services](edge/nginx.md)
diff --git a/java-chassis-reference/en_US/catalog/config.md 
b/java-chassis-reference/en_US/catalog/config.md
new file mode 100644
index 000..4fb5af5
--- /dev/null
+++ b/java-chassis-reference/en_US/catalog/config.md
@@ -0,0 +1,2 @@
+## General configuration instructions
+Introduce the configuration hierarchy relationship and the usage of the 
configuration mechanism of ServiceComb-Java-Chassis.
diff --git a/java-chassis-reference/en_US/catalog/general-develop.md 
b/java-chassis-reference/en_US/catalog/general-develop.md
index ed109dd..2ce54fa 100644
--- a/java-chassis-reference/en_US/catalog/general-develop.md
+++ b/java-chassis-reference/en_US/catalog/general-develop.md
@@ -1,14 +1,6 @@
 ## Access Service Center
 The system realizes the discovery between services through the service center. 
During the service startup process, the service center is registered. When 
calling other services, the service center will query the instance information 
of other services, such as the access address, the protocol used, and other 
parameters. The service center supports the use of PULL and PUSH modes to 
notify instance changes.
 
-
-## Using dynamic configuration
-ServiceComb provides a hierarchical configuration mechanism. According to the 
priority, it is divided into:
-• Configuration Center (dynamic configuration)
-• Java System Property (-D parameter)
-• Environmental variables
-• Configuration file, microservice.yaml. The microservice.yaml file is scanned 
from the classpath and can be allowed to exist in many copies. Specify the 
priority by servicecomb-config-order.
-
 ## Application Performance Monitoring
  1. The introduction of Metrics
  2. The summary of statistical items
@@ -35,11 +27,11 @@ This section describes how to develop and debug 
consumer/provider applications l
 In some scenarios, the service uses http instead of https as the network 
transmission channel. In order to prevent the falsification or tampering 
request, the signature function of the http code stream between the consumer 
and the producer needs to be provided.
 
  
-## File Upload 
+## File Upload
 File upload, currently supported in vertx rest channel and servlet rest.
 File uploads use the standard http form format, which interfaces directly with 
the browser's upload.
 
-## Download Document 
+## Download Document
 File downloads are currently available in the vertx rest channel and servlet 
rest.
 
 
@@ -78,4 +70,4 @@ Cross-Origin Resource Sharing (CORS) allows Web servers to 
perform cross-domain
 
 
 ## Obtaining the fuse

[servicecomb-java-chassis] branch master updated: [SCB-1177] read vertx.disableFileCPResolving from dynamic config, default is false(don't create the .vertx directory) (#1110)

2019-02-26 Thread wujimin
This is an automated email from the ASF dual-hosted git repository.

wujimin 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 161abb0  [SCB-1177] read vertx.disableFileCPResolving from dynamic 
config, default is false(don't create the .vertx directory) (#1110)
161abb0 is described below

commit 161abb0f7aa46a5e8ab4b913a154914dbe119fff
Author: 兴 
AuthorDate: Wed Feb 27 10:19:52 2019 +0800

[SCB-1177] read vertx.disableFileCPResolving from dynamic config, default 
is false(don't create the .vertx directory) (#1110)

* [SCB-1177] read vertx.disableFileCPResolving from dynamic config, default 
is false(don't create the .vertx directory)

* [SCB-1177] default value will be true, do not create the .vertx directory.

* [SCB-1177] code review, add not create folder test case
---
 .../src/main/resources/microservice.yaml   |  2 ++
 .../servicecomb/foundation/vertx/VertxUtils.java   | 14 -
 .../foundation/vertx/TestVertxUtils.java   | 33 +-
 3 files changed, 41 insertions(+), 8 deletions(-)

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 24fc685..92dafaf 100644
--- a/demo/demo-springmvc/springmvc-server/src/main/resources/microservice.yaml
+++ b/demo/demo-springmvc/springmvc-server/src/main/resources/microservice.yaml
@@ -86,3 +86,5 @@ ssl.keyStoreValue: Changeme_123
 ssl.crl: revoke.crl
 ssl.sslCustomClass: org.apache.servicecomb.demo.DemoSSLCustom
 
+vertx.disableFileCPResolving: false  # false: create the .vertx directory, 
true: do not create
+
diff --git 
a/foundations/foundation-vertx/src/main/java/org/apache/servicecomb/foundation/vertx/VertxUtils.java
 
b/foundations/foundation-vertx/src/main/java/org/apache/servicecomb/foundation/vertx/VertxUtils.java
index bb6ff4a..2082ef0 100644
--- 
a/foundations/foundation-vertx/src/main/java/org/apache/servicecomb/foundation/vertx/VertxUtils.java
+++ 
b/foundations/foundation-vertx/src/main/java/org/apache/servicecomb/foundation/vertx/VertxUtils.java
@@ -21,7 +21,6 @@ import java.io.IOException;
 import java.io.InputStream;
 import java.lang.management.ManagementFactory;
 import java.lang.reflect.Field;
-import java.lang.reflect.Proxy;
 import java.util.Map;
 import java.util.concurrent.CompletableFuture;
 import java.util.concurrent.CountDownLatch;
@@ -38,6 +37,8 @@ import org.slf4j.LoggerFactory;
 import org.springframework.util.ReflectionUtils;
 import org.springframework.util.StringUtils;
 
+import com.netflix.config.DynamicPropertyFactory;
+
 import io.netty.buffer.ByteBuf;
 import io.vertx.core.AbstractVerticle;
 import io.vertx.core.DeploymentOptions;
@@ -78,7 +79,6 @@ public final class VertxUtils {
 
   public static  void deployVerticle(Vertx vertx, 
Class cls, int instanceCount) {
 DeploymentOptions options = new 
DeploymentOptions().setInstances(instanceCount);
-
 vertx.deployVerticle(cls.getName(), options);
   }
 
@@ -134,7 +134,7 @@ public final class VertxUtils {
   LOGGER.info("in debug mode, disable blocked thread check.");
 }
 
-configureVertxFileCaching();
+configureVertxFileCaching(vertxOptions);
 Vertx vertx = Vertx.vertx(vertxOptions);
 enhanceVertx(name, vertx);
 return vertx;
@@ -158,10 +158,10 @@ public final class VertxUtils {
   /**
* 配置vertx的文件缓存功能,默认关闭
*/
-  protected static void configureVertxFileCaching() {
-if (System.getProperty(FileResolver.DISABLE_CP_RESOLVING_PROP_NAME) == 
null) {
-  System.setProperty(FileResolver.DISABLE_CP_RESOLVING_PROP_NAME, "true");
-}
+  protected static void configureVertxFileCaching(VertxOptions vertxOptions) {
+boolean disableFileCPResolving = DynamicPropertyFactory.getInstance()
+.getBooleanProperty(FileResolver.DISABLE_CP_RESOLVING_PROP_NAME, 
true).get();
+
vertxOptions.getFileSystemOptions().setClassPathResolvingEnabled(!disableFileCPResolving);
   }
 
   // try to reference byte[]
diff --git 
a/foundations/foundation-vertx/src/test/java/org/apache/servicecomb/foundation/vertx/TestVertxUtils.java
 
b/foundations/foundation-vertx/src/test/java/org/apache/servicecomb/foundation/vertx/TestVertxUtils.java
index d3c1edd..ee800d2 100644
--- 
a/foundations/foundation-vertx/src/test/java/org/apache/servicecomb/foundation/vertx/TestVertxUtils.java
+++ 
b/foundations/foundation-vertx/src/test/java/org/apache/servicecomb/foundation/vertx/TestVertxUtils.java
@@ -18,12 +18,15 @@
 package org.apache.servicecomb.foundation.vertx;
 
 import java.io.ByteArrayInputStream;
+import java.io.File;
 import java.io.IOException;
 import java.io.InputStream;
 import java.util.concurrent.CountDownLatch;
 
 import javax.xml.ws.Holder;
 
+import org.apache.commons.i

[servicecomb-java-chassis] branch master updated: [SCB-1149] remove VerxImplEx, remove the eventloop counter function

2019-02-26 Thread wujimin
This is an automated email from the ASF dual-hosted git repository.

wujimin 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 e8f1af7  [SCB-1149] remove VerxImplEx, remove the eventloop counter 
function
e8f1af7 is described below

commit e8f1af7de2b74d0dbe206361e655b6c5fa69492b
Author: weixing 
AuthorDate: Mon Feb 25 19:31:45 2019 +0800

[SCB-1149] remove VerxImplEx, remove the eventloop counter function
---
 .../main/java/io/vertx/core/impl/VertxImplEx.java  | 61 --
 .../servicecomb/foundation/vertx/VertxUtils.java   | 32 ++--
 .../java/io/vertx/core/impl/TestVertxImplEx.java   | 47 -
 .../metrics/core/publish/DefaultLogPublisher.java  |  7 +--
 .../metrics/core/TestVertxMetersInitializer.java   | 11 +++-
 .../core/publish/TestDefaultLogPublisher.java  | 13 ++---
 6 files changed, 47 insertions(+), 124 deletions(-)

diff --git 
a/foundations/foundation-vertx/src/main/java/io/vertx/core/impl/VertxImplEx.java
 
b/foundations/foundation-vertx/src/main/java/io/vertx/core/impl/VertxImplEx.java
deleted file mode 100644
index 2ea0182..000
--- 
a/foundations/foundation-vertx/src/main/java/io/vertx/core/impl/VertxImplEx.java
+++ /dev/null
@@ -1,61 +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 io.vertx.core.impl;
-
-import java.lang.reflect.Field;
-import java.util.concurrent.atomic.AtomicLong;
-
-import org.springframework.util.ReflectionUtils;
-import org.springframework.util.StringUtils;
-
-import io.vertx.core.VertxOptions;
-import io.vertx.core.json.JsonObject;
-import io.vertx.core.net.impl.transport.Transport;
-
-public class VertxImplEx extends VertxImpl {
-  private AtomicLong eventLoopContextCreated = new AtomicLong();
-
-  public VertxImplEx(String name, VertxOptions vertxOptions) {
-super(vertxOptions, 
Transport.transport(vertxOptions.getPreferNativeTransport()));
-init();
-if (StringUtils.isEmpty(name)) {
-  return;
-}
-
-Field field = ReflectionUtils.findField(VertxImpl.class, 
"eventLoopThreadFactory");
-field.setAccessible(true);
-VertxThreadFactory eventLoopThreadFactory = (VertxThreadFactory) 
ReflectionUtils.getField(field, this);
-
-field = ReflectionUtils.findField(eventLoopThreadFactory.getClass(), 
"prefix");
-field.setAccessible(true);
-
-String prefix = (String) ReflectionUtils.getField(field, 
eventLoopThreadFactory);
-ReflectionUtils.setField(field, eventLoopThreadFactory, name + "-" + 
prefix);
-  }
-
-  @Override
-  public EventLoopContext createEventLoopContext(String deploymentID, 
WorkerPool workerPool, JsonObject config,
-  ClassLoader tccl) {
-eventLoopContextCreated.incrementAndGet();
-return super.createEventLoopContext(deploymentID, workerPool, config, 
tccl);
-  }
-
-  public long getEventLoopContextCreatedCount() {
-return eventLoopContextCreated.get();
-  }
-}
diff --git 
a/foundations/foundation-vertx/src/main/java/org/apache/servicecomb/foundation/vertx/VertxUtils.java
 
b/foundations/foundation-vertx/src/main/java/org/apache/servicecomb/foundation/vertx/VertxUtils.java
index 8861a79..bb6ff4a 100644
--- 
a/foundations/foundation-vertx/src/main/java/org/apache/servicecomb/foundation/vertx/VertxUtils.java
+++ 
b/foundations/foundation-vertx/src/main/java/org/apache/servicecomb/foundation/vertx/VertxUtils.java
@@ -20,6 +20,8 @@ package org.apache.servicecomb.foundation.vertx;
 import java.io.IOException;
 import java.io.InputStream;
 import java.lang.management.ManagementFactory;
+import java.lang.reflect.Field;
+import java.lang.reflect.Proxy;
 import java.util.Map;
 import java.util.concurrent.CompletableFuture;
 import java.util.concurrent.CountDownLatch;
@@ -33,6 +35,8 @@ import 
org.apache.servicecomb.foundation.vertx.client.ClientVerticle;
 import org.apache.servicecomb.foundation.vertx.stream.BufferInputStream;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
+import org.springframework.util.ReflectionUtils;
+import org.springframework.util.Strin

[servicecomb-java-chassis] branch master updated: [SCB-1170] improve log of upload directory during boot.

2019-02-24 Thread wujimin
This is an automated email from the ASF dual-hosted git repository.

wujimin 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 9d2ff06  [SCB-1170] improve log of upload directory during boot.
9d2ff06 is described below

commit 9d2ff0616b97d4279f92de91c4ddc343c8e0116e
Author: wujimin 
AuthorDate: Mon Feb 25 14:17:20 2019 +0800

[SCB-1170] improve log of upload directory during boot.
---
 .../org/apache/servicecomb/transport/rest/servlet/ServletUtils.java | 2 +-
 .../servicecomb/transport/rest/vertx/AbstractVertxHttpDispatcher.java   | 2 +-
 2 files changed, 2 insertions(+), 2 deletions(-)

diff --git 
a/transports/transport-rest/transport-rest-servlet/src/main/java/org/apache/servicecomb/transport/rest/servlet/ServletUtils.java
 
b/transports/transport-rest/transport-rest-servlet/src/main/java/org/apache/servicecomb/transport/rest/servlet/ServletUtils.java
index 94c726f..489eba4 100644
--- 
a/transports/transport-rest/transport-rest-servlet/src/main/java/org/apache/servicecomb/transport/rest/servlet/ServletUtils.java
+++ 
b/transports/transport-rest/transport-rest-servlet/src/main/java/org/apache/servicecomb/transport/rest/servlet/ServletUtils.java
@@ -158,7 +158,7 @@ public class ServletUtils {
 }
 
 File dir = createUploadDir(servletContext, multipartConfig.getLocation());
-LOGGER.info("set uploads directory to {}.", dir.getAbsolutePath());
+LOGGER.info("set uploads directory to \"{}\".", dir.getAbsolutePath());
 
 List servlets = 
findServletRegistrations(servletContext, RestServlet.class);
 for (ServletRegistration servletRegistration : servlets) {
diff --git 
a/transports/transport-rest/transport-rest-vertx/src/main/java/org/apache/servicecomb/transport/rest/vertx/AbstractVertxHttpDispatcher.java
 
b/transports/transport-rest/transport-rest-vertx/src/main/java/org/apache/servicecomb/transport/rest/vertx/AbstractVertxHttpDispatcher.java
index 5d357c1..d87d4f2 100644
--- 
a/transports/transport-rest/transport-rest-vertx/src/main/java/org/apache/servicecomb/transport/rest/vertx/AbstractVertxHttpDispatcher.java
+++ 
b/transports/transport-rest/transport-rest-vertx/src/main/java/org/apache/servicecomb/transport/rest/vertx/AbstractVertxHttpDispatcher.java
@@ -42,7 +42,7 @@ public abstract class AbstractVertxHttpDispatcher implements 
VertxHttpDispatcher
 bodyHandler.setBodyLimit(uploadConfig.getMaxSize());
 
 if (uploadConfig.toMultipartConfigElement() != null) {
-  LOGGER.info("set uploads directory to {}.", uploadConfig.getLocation());
+  LOGGER.info("set uploads directory to \"{}\".", 
uploadConfig.getLocation());
 }
 
 return bodyHandler;



[servicecomb-java-chassis] branch master updated (9b4580f -> c72ea1f)

2019-02-24 Thread wujimin
This is an automated email from the ASF dual-hosted git repository.

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


from 9b4580f  skip bridge method when generate operation swagger
 new 4f1fa7e  [SCB-1156] avoid collect wrong invocation stage data when 
rest invoke failed
 new c72ea1f  [SCB-1156] suppress useless stack trace in UT

The 2127 revisions listed above as "new" are entirely new to this
repository and will be described in separate emails.  The revisions
listed as "add" were already present in the repository and have only
been added to this reference.


Summary of changes:
 .../common/rest/TestAbstractRestInvocation.java| 17 ++---
 .../common/rest/filter/TestHttpServerFilter.java   |  5 +-
 ...HttpServerFilterBeforeSendResponseExecutor.java |  5 +-
 .../core/provider/consumer/TestInvokerUtils.java   |  3 +-
 .../edge/core/TestAbstractEdgeDispatcher.java  |  4 +-
 .../foundation/common/utils/TestJvmUtils.java  |  5 +-
 .../RuntimeExceptionWithoutStackTrace.java | 18 +++--
 .../vertx/client/tcp/TestTcpClientConnection.java  |  3 +-
 .../foundation/vertx/http/TestReadStreamPart.java  |  6 +-
 .../http/TestStandardHttpServletResponseEx.java|  3 +-
 .../servicecomb/provider/pojo/TestInvoker.java |  5 +-
 .../consumer/TestMicroserviceVersions.java |  5 +-
 .../task/TestMicroserviceWatchTask.java|  5 +-
 .../servicecomb/swagger/TestSwaggerUtils.java  | 10 ++-
 swagger/swagger-invocation/invocation-core/pom.xml |  4 ++
 .../org/apache/servicecomb/core/TestResponse.java  |  9 +--
 .../rest/client/http/RestClientInvocation.java | 78 --
 .../rest/client/http/TestRestClientInvocation.java | 23 +--
 18 files changed, 120 insertions(+), 88 deletions(-)
 copy 
demo/demo-edge/model/src/main/java/org/apache/servicecomb/demo/edge/model/AppClientDataRsp.java
 => 
foundations/foundation-test-scaffolding/src/main/java/org/apache/servicecomb/foundation/test/scaffolding/exception/RuntimeExceptionWithoutStackTrace.java
 (67%)



[servicecomb-java-chassis] branch master updated: skip bridge method when generate operation swagger

2019-02-22 Thread wujimin
This is an automated email from the ASF dual-hosted git repository.

wujimin 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 9b4580f  skip bridge method when generate operation swagger
9b4580f is described below

commit 9b4580fc1842cf217db1e57e2e387eba39901c38
Author: w00403123 
AuthorDate: Fri Feb 22 23:41:54 2019 +0800

skip bridge method when generate operation swagger

fix issus #1104
---
 .../apache/servicecomb/swagger/generator/core/SwaggerGenerator.java   | 4 
 1 file changed, 4 insertions(+)

diff --git 
a/swagger/swagger-generator/generator-core/src/main/java/org/apache/servicecomb/swagger/generator/core/SwaggerGenerator.java
 
b/swagger/swagger-generator/generator-core/src/main/java/org/apache/servicecomb/swagger/generator/core/SwaggerGenerator.java
index 919711e..f8178b6 100644
--- 
a/swagger/swagger-generator/generator-core/src/main/java/org/apache/servicecomb/swagger/generator/core/SwaggerGenerator.java
+++ 
b/swagger/swagger-generator/generator-core/src/main/java/org/apache/servicecomb/swagger/generator/core/SwaggerGenerator.java
@@ -249,6 +249,10 @@ public class SwaggerGenerator {
 if (Modifier.isStatic(modifiers)) {
   return true;
 }
+// skip bridge method
+if (method.isBridge()) {
+return true;
+}
 
 ApiOperation apiOperation = method.getAnnotation(ApiOperation.class);
 if (apiOperation != null && apiOperation.hidden()) {



[servicecomb-java-chassis] branch master updated: [SCB-1153] provide traceId-invocationId by marker mechanism

2019-02-21 Thread wujimin
This is an automated email from the ASF dual-hosted git repository.

wujimin 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 f3ec388  [SCB-1153] provide traceId-invocationId by marker mechanism
f3ec388 is described below

commit f3ec3889cedbb3c55be2d1dd60bf646da26ff3a5
Author: wujimin 
AuthorDate: Thu Feb 14 15:51:17 2019 +0800

[SCB-1153] provide traceId-invocationId by marker mechanism
---
 .../org/apache/servicecomb/core/Invocation.java| 13 
 .../apache/servicecomb/core/tracing/ScbMarker.java | 89 ++
 .../apache/servicecomb/core/TestInvocation.java| 17 +
 demo/perf/src/main/resources/logback.xml   |  2 +-
 .../metrics/core/publish/SlowInvocationLogger.java | 12 +--
 .../core/publish/TestSlowInvocationLogger.java |  3 -
 .../invocation/context/InvocationContext.java  |  9 +++
 7 files changed, 132 insertions(+), 13 deletions(-)

diff --git a/core/src/main/java/org/apache/servicecomb/core/Invocation.java 
b/core/src/main/java/org/apache/servicecomb/core/Invocation.java
index 46c3c4a..67b8494 100644
--- a/core/src/main/java/org/apache/servicecomb/core/Invocation.java
+++ b/core/src/main/java/org/apache/servicecomb/core/Invocation.java
@@ -21,6 +21,7 @@ import java.util.Collection;
 import java.util.List;
 import java.util.Map;
 import java.util.concurrent.Executor;
+import java.util.concurrent.atomic.AtomicLong;
 
 import org.apache.commons.lang3.StringUtils;
 import org.apache.servicecomb.core.definition.OperationMeta;
@@ -31,6 +32,7 @@ import 
org.apache.servicecomb.core.event.InvocationFinishEvent;
 import org.apache.servicecomb.core.event.InvocationStartEvent;
 import org.apache.servicecomb.core.invocation.InvocationStageTrace;
 import org.apache.servicecomb.core.provider.consumer.ReferenceConfig;
+import org.apache.servicecomb.core.tracing.ScbMarker;
 import org.apache.servicecomb.core.tracing.TraceIdGenerator;
 import org.apache.servicecomb.foundation.common.event.EventManager;
 import org.apache.servicecomb.foundation.common.utils.SPIServiceUtils;
@@ -43,6 +45,8 @@ import 
org.apache.servicecomb.swagger.invocation.SwaggerInvocation;
 public class Invocation extends SwaggerInvocation {
   private static final Collection TRACE_ID_GENERATORS = 
loadTraceIdGenerators();
 
+  protected static final AtomicLong INVOCATION_ID = new AtomicLong();
+
   static Collection loadTraceIdGenerators() {
 return SPIServiceUtils.getPriorityHighestServices(generator -> 
generator.getName(), TraceIdGenerator.class);
   }
@@ -83,6 +87,12 @@ public class Invocation extends SwaggerInvocation {
   // because isEdge() only affect to apm/metrics output, no need to change so 
many logic
   private boolean edge;
 
+  private long invocationId;
+
+  public long getInvocationId() {
+return invocationId;
+  }
+
   public HttpServletRequestEx getRequestEx() {
 return requestEx;
   }
@@ -126,6 +136,7 @@ public class Invocation extends SwaggerInvocation {
   }
 
   private void init(OperationMeta operationMeta, Object[] swaggerArguments) {
+this.invocationId = INVOCATION_ID.getAndIncrement();
 this.schemaMeta = operationMeta.getSchemaMeta();
 this.operationMeta = operationMeta;
 this.swaggerArguments = swaggerArguments;
@@ -237,6 +248,8 @@ public class Invocation extends SwaggerInvocation {
 for (TraceIdGenerator traceIdGenerator : TRACE_ID_GENERATORS) {
   initTraceId(traceIdGenerator);
 }
+
+marker = new ScbMarker(this);
   }
 
   protected void initTraceId(TraceIdGenerator traceIdGenerator) {
diff --git 
a/core/src/main/java/org/apache/servicecomb/core/tracing/ScbMarker.java 
b/core/src/main/java/org/apache/servicecomb/core/tracing/ScbMarker.java
new file mode 100644
index 000..f2b5e76
--- /dev/null
+++ b/core/src/main/java/org/apache/servicecomb/core/tracing/ScbMarker.java
@@ -0,0 +1,89 @@
+/*
+ * 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.tracing;
+
+import java.util.Collections;
+import java.util.Iterator;
+
+import org.apache.servicecomb.core.Invocation;
+import org.

  1   2   3   >