[servicecomb-java-chassis] branch master updated: [SCB-2269]fix deadlock of XmlViewResolver and SPI bean autowire in blockDeploy
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
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
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
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)
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
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
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
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
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
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
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
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
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
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
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)
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
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
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
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
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
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
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
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)
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
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
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
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
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
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
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)
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)
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
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
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)
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
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
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)
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
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
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)
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
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
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
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
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)
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
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
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)
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
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
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)
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
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)
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)
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)
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)
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
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)
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
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)
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)
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)
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)
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)
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)
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)
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)
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
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)
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.
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)
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
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
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)
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)
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
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
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
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)
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)
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)
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
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
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
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)
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)
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)
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
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.
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)
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)
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)
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
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)
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
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.
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)
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
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
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.