You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@servicecomb.apache.org by li...@apache.org on 2019/12/03 06:18:29 UTC
[servicecomb-java-chassis] branch 1.3.x updated (c074de8 -> ef6895e)
This is an automated email from the ASF dual-hosted git repository.
liubao pushed a change to branch 1.3.x
in repository https://gitbox.apache.org/repos/asf/servicecomb-java-chassis.git.
from c074de8 Preparing 1.3.1.SNAPSHOT
new 8a219ac Bump checkstyle from 7.6 to 8.18
new 9323300 [SCB-1582] Delete unused thirdparty dependencies
new 433804e [SCB-1557] Fix application start info log incorrect
new e530ae2 [SCB-1582] Delete unused thirdParty dependencies
new c5d673b [SCB-1582] Bump jackson version from 2.9.8 to 2.10.0 and fix incompatible issues
new 1e8b28c ServerListFilterExt add switch
new 06d7f23 [SCB-1592]upgrade vert.x and netty.(1)update pom and fix compile errors
new 52f3f6a [SCB-1592]upgrade vert.x and netty.(2)fixed interface change
new dde1623 [SCB-1592]upgrade vert.x and netty.(3)fixed testing failures and upgrade tcnetty
new 8e12613 [SCB-1592]upgrade vert.x and netty.(4)update license and fix conflicts
new 25274e9 [SCB-1582] Upgrading thirdParty dependency versions
new fa049bb [SCB-1582] Update thirdparty dependency versions and delete unused dependencies
new cc14795 [SCB-1601]Abandon waiting 30 seconds after waiting request timeout.
new ef6895e [SCB-1616]refactor edge dispatcher to make them more extensible (#1406)
The 14 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/fix/TestDoSFix.java | 8 +-
.../org/apache/servicecomb/core/SCBEngine.java | 1 +
.../core/bootup/AddressInformationCollector.java | 4 +-
.../core/bootup/ServiceInformationCollector.java | 10 +-
.../definition/schema/StaticSchemaFactoryTest.java | 4 +-
core/src/test/resources/test/test/schema.yaml | 2 +-
.../src/main/resources/schemas/helloworld.yaml | 2 +-
.../src/main/resources/schemas/helloworld.yaml | 2 +-
.../demo/edge/service/EdgeDispatcher.java | 3 +-
.../service/encrypt/EncryptEdgeDispatcher.java | 3 +-
.../resources/microservices/jaxrs/compute.yaml | 20 +-
.../microservices/pojo/helloworld.Greeter.yaml | 4 +-
.../main/resources/microservices/pojo/server.yaml | 18 +-
.../resources/microservices/pojo/tcc-server.yaml | 4 +-
.../microservices/springmvc/controller.yaml | 10 +-
.../microservices/pojo/helloworld.Greeter.yaml | 4 +-
.../main/resources/microservices/pojo/server.yaml | 14 +-
.../resources/microservices/pojo/tcc-server.yaml | 4 +-
.../springmvc/server/ProducerTestsAfterBootup.java | 4 +-
.../config/client/ConfigCenterClient.java | 46 +-
.../edge/core/DefaultEdgeDispatcher.java | 7 +-
.../edge/core/URLMappedConfigurationItem.java | 54 +-
.../edge/core/URLMappedConfigurationLoader.java | 83 ++
.../edge/core/URLMappedEdgeDispatcher.java | 100 +-
.../servicecomb/edge/core/TestEdgeInvocation.java | 7 +-
.../edge/core/TestURLMappedEdgeDispatcher.java | 21 +-
.../main/java/io/vertx/core/impl/SyncContext.java | 28 +-
.../main/java/io/vertx/core/impl/SyncVertx.java | 53 -
.../main/java/io/vertx/core/impl/VertxImpl.java | 1137 --------------------
.../main/java/io/vertx/core/impl/VertxImpl.java | 1118 -------------------
.../vertx/ext/web/impl/HttpServerRequestUtils.java | 26 -
.../VertxServerRequestToHttpServletRequest.java | 4 +-
.../vertx/stream/InputStreamToReadStream.java | 3 +-
.../vertx/stream/OutputStreamToWriteStream.java | 25 +-
.../ext/web/impl/TestHttpServerRequestUtils.java | 8 -
.../foundation/vertx/TestVertxUtils.java | 6 +-
.../vertx/client/TestClientPoolManager.java | 20 +-
.../vertx/client/tcp/TestTcpClientConnection.java | 1 +
.../foundation/vertx/http/TestReadStreamPart.java | 10 +-
...TestVertxServerRequestToHttpServletRequest.java | 11 +-
...stVertxServerResponseToHttpServletResponse.java | 17 +-
.../foundation/vertx/stream/TestPumpFromPart.java | 4 +-
.../servicecomb/loadbalance/LoadBalancer.java | 3 +
inspector/src/test/resources/schema1.yaml | 2 +-
inspector/src/test/resources/schema2.yaml | 4 +-
.../apache/servicecomb/it/edge/EdgeDispatcher.java | 3 +-
.../it/edge/encrypt/EncryptEdgeDispatcher.java | 3 +-
.../resources/microservices/jaxrs/schemaFirst.yaml | 30 +-
java-chassis-dependencies/default/pom.xml | 99 +-
java-chassis-dependencies/springboot2/pom.xml | 64 ++
java-chassis-distribution/src/release/LICENSE | 73 +-
.../metrics/core/publish/DefaultLogPublisher.java | 6 +-
.../metrics/core/TestVertxMetersInitializer.java | 2 +
pom.xml | 2 +-
scripts/travis.sh | 2 +-
.../client/http/WebsocketUtils.java | 46 +-
.../src/test/resources/schemas/allMethod.yaml | 70 +-
.../src/test/resources/schemas/allType.yaml | 2 +-
.../src/test/resources/schemas/apiOperation.yaml | 2 +-
.../src/test/resources/schemas/apiResponse.yaml | 2 +-
.../src/test/resources/schemas/array.yaml | 2 +-
.../src/test/resources/schemas/boolean.yaml | 2 +-
.../src/test/resources/schemas/booleanObject.yaml | 2 +-
.../src/test/resources/schemas/byte.yaml | 2 +-
.../src/test/resources/schemas/byteObject.yaml | 2 +-
.../src/test/resources/schemas/bytes.yaml | 2 +-
.../src/test/resources/schemas/bytesObject.yaml | 2 +-
.../src/test/resources/schemas/char.yaml | 2 +-
.../src/test/resources/schemas/charObject.yaml | 2 +-
.../test/resources/schemas/completableFuture.yaml | 2 +-
.../src/test/resources/schemas/date.yaml | 2 +-
.../src/test/resources/schemas/double.yaml | 2 +-
.../src/test/resources/schemas/doubleObject.yaml | 2 +-
.../src/test/resources/schemas/enum.yaml | 2 +-
.../src/test/resources/schemas/float.yaml | 2 +-
.../src/test/resources/schemas/floatObject.yaml | 2 +-
.../src/test/resources/schemas/int.yaml | 2 +-
.../src/test/resources/schemas/intObject.yaml | 2 +-
.../src/test/resources/schemas/list.yaml | 2 +-
.../src/test/resources/schemas/long.yaml | 2 +-
.../src/test/resources/schemas/longObject.yaml | 2 +-
.../src/test/resources/schemas/map.yaml | 2 +-
.../src/test/resources/schemas/mapList.yaml | 2 +-
.../src/test/resources/schemas/multiParam.yaml | 2 +-
.../src/test/resources/schemas/object.yaml | 2 +-
.../src/test/resources/schemas/responseHeader.yaml | 2 +-
.../src/test/resources/schemas/set.yaml | 2 +-
.../src/test/resources/schemas/short.yaml | 2 +-
.../src/test/resources/schemas/shortObject.yaml | 2 +-
.../src/test/resources/schemas/string.yaml | 2 +-
.../schemas/testCompletableFutureOptional.yaml | 2 +-
.../src/test/resources/schemas/testOptional.yaml | 2 +-
.../src/test/resources/swagger1.yaml | 2 +-
.../src/test/resources/swagger2.yaml | 2 +-
.../src/test/resources/schemas/cookie.yaml | 2 +-
.../src/test/resources/schemas/echo.yaml | 2 +-
.../src/test/resources/schemas/emptyPath.yaml | 2 +-
.../src/test/resources/schemas/enumBody.yaml | 2 +-
.../src/test/resources/schemas/form.yaml | 2 +-
.../src/test/resources/schemas/query.yaml | 2 +-
.../resources/schemas/rawJsonStringMethod.yaml | 2 +-
.../src/test/resources/schemas/response.yaml | 2 +-
.../test/resources/schemas/MethodEmptyPath.yaml | 10 +-
.../resources/schemas/asyncResponseEntity.yaml | 2 +-
.../test/resources/schemas/defaultParameter.yaml | 12 +-
.../src/test/resources/schemas/emptyPath.yaml | 2 +-
.../src/test/resources/schemas/enumBody.yaml | 2 +-
.../test/resources/schemas/inheritHttpMethod.yaml | 2 +-
.../test/resources/schemas/mixupAnnotations.yaml | 12 +-
.../resources/schemas/rawJsonStringMethod.yaml | 2 +-
.../src/test/resources/schemas/responseEntity.yaml | 12 +-
...estCompletableFutureResponseEntityOptional.yaml | 2 +-
.../schemas/testResponseEntityOptional.yaml | 2 +-
.../response/TestJaxrsConsumerResponseMapper.java | 6 +-
.../transport/highway/HighwayServerVerticle.java | 4 +-
.../core/http/impl/Http1xConnectionBaseEx.java | 2 +-
.../client/http/TestDefaultHttpClientFilter.java | 4 +-
.../rest/client/http/TestRestClientInvocation.java | 3 +-
.../transport/rest/vertx/RestServerVerticle.java | 4 +
.../transport/rest/vertx/VertxRestDispatcher.java | 19 +-
.../vertx/accesslog/element/impl/CookieItem.java | 10 +-
.../rest/vertx/TestRestServerVerticle.java | 2 +
.../rest/vertx/TestVertxRestDispatcher.java | 55 +-
.../accesslog/element/impl/CookieItemTest.java | 22 +-
.../vertx/accesslog/impl/AccessLogHandlerTest.java | 10 +-
125 files changed, 773 insertions(+), 2837 deletions(-)
copy integration-tests/it-consumer/src/main/java/org/apache/servicecomb/it/deploy/MicroserviceDeployDefinition.java => edge/edge-core/src/main/java/org/apache/servicecomb/edge/core/URLMappedConfigurationItem.java (54%)
create mode 100644 edge/edge-core/src/main/java/org/apache/servicecomb/edge/core/URLMappedConfigurationLoader.java
delete mode 100644 foundations/foundation-test-scaffolding/src/main/java/io/vertx/core/impl/SyncVertx.java
delete mode 100644 foundations/foundation-test-scaffolding/src/main/java/io/vertx/core/impl/VertxImpl.java
delete mode 100644 foundations/foundation-vertx/src/main/java/io/vertx/core/impl/VertxImpl.java
delete mode 100644 foundations/foundation-vertx/src/main/java/io/vertx/ext/web/impl/HttpServerRequestUtils.java
[servicecomb-java-chassis] 05/14: [SCB-1582] Bump jackson version
from 2.9.8 to 2.10.0 and fix incompatible issues
Posted by li...@apache.org.
This is an automated email from the ASF dual-hosted git repository.
liubao pushed a commit to branch 1.3.x
in repository https://gitbox.apache.org/repos/asf/servicecomb-java-chassis.git
commit c5d673bc39be5ffee63d3a7fff5aa21040358349
Author: AngLi2 <li...@qq.com>
AuthorDate: Mon Nov 11 10:28:35 2019 +0800
[SCB-1582] Bump jackson version from 2.9.8 to 2.10.0 and fix
incompatible issues
---
.../common/rest/codec/fix/TestDoSFix.java | 8 +--
.../definition/schema/StaticSchemaFactoryTest.java | 4 +-
core/src/test/resources/test/test/schema.yaml | 2 +-
.../src/main/resources/schemas/helloworld.yaml | 2 +-
.../src/main/resources/schemas/helloworld.yaml | 2 +-
.../resources/microservices/jaxrs/compute.yaml | 20 +++----
.../microservices/pojo/helloworld.Greeter.yaml | 4 +-
.../main/resources/microservices/pojo/server.yaml | 18 +++---
.../resources/microservices/pojo/tcc-server.yaml | 4 +-
.../microservices/springmvc/controller.yaml | 10 ++--
.../microservices/pojo/helloworld.Greeter.yaml | 4 +-
.../main/resources/microservices/pojo/server.yaml | 14 ++---
.../resources/microservices/pojo/tcc-server.yaml | 4 +-
.../springmvc/server/ProducerTestsAfterBootup.java | 4 +-
.../config/client/ConfigCenterClient.java | 2 +-
inspector/src/test/resources/schema1.yaml | 2 +-
inspector/src/test/resources/schema2.yaml | 4 +-
.../resources/microservices/jaxrs/schemaFirst.yaml | 30 +++++-----
java-chassis-dependencies/default/pom.xml | 13 +++-
java-chassis-dependencies/springboot2/pom.xml | 64 ++++++++++++++++++++
java-chassis-distribution/src/release/LICENSE | 20 +++----
.../metrics/core/publish/DefaultLogPublisher.java | 6 +-
.../src/test/resources/schemas/allMethod.yaml | 70 +++++++++++-----------
.../src/test/resources/schemas/allType.yaml | 2 +-
.../src/test/resources/schemas/apiOperation.yaml | 2 +-
.../src/test/resources/schemas/apiResponse.yaml | 2 +-
.../src/test/resources/schemas/array.yaml | 2 +-
.../src/test/resources/schemas/boolean.yaml | 2 +-
.../src/test/resources/schemas/booleanObject.yaml | 2 +-
.../src/test/resources/schemas/byte.yaml | 2 +-
.../src/test/resources/schemas/byteObject.yaml | 2 +-
.../src/test/resources/schemas/bytes.yaml | 2 +-
.../src/test/resources/schemas/bytesObject.yaml | 2 +-
.../src/test/resources/schemas/char.yaml | 2 +-
.../src/test/resources/schemas/charObject.yaml | 2 +-
.../test/resources/schemas/completableFuture.yaml | 2 +-
.../src/test/resources/schemas/date.yaml | 2 +-
.../src/test/resources/schemas/double.yaml | 2 +-
.../src/test/resources/schemas/doubleObject.yaml | 2 +-
.../src/test/resources/schemas/enum.yaml | 2 +-
.../src/test/resources/schemas/float.yaml | 2 +-
.../src/test/resources/schemas/floatObject.yaml | 2 +-
.../src/test/resources/schemas/int.yaml | 2 +-
.../src/test/resources/schemas/intObject.yaml | 2 +-
.../src/test/resources/schemas/list.yaml | 2 +-
.../src/test/resources/schemas/long.yaml | 2 +-
.../src/test/resources/schemas/longObject.yaml | 2 +-
.../src/test/resources/schemas/map.yaml | 2 +-
.../src/test/resources/schemas/mapList.yaml | 2 +-
.../src/test/resources/schemas/multiParam.yaml | 2 +-
.../src/test/resources/schemas/object.yaml | 2 +-
.../src/test/resources/schemas/responseHeader.yaml | 2 +-
.../src/test/resources/schemas/set.yaml | 2 +-
.../src/test/resources/schemas/short.yaml | 2 +-
.../src/test/resources/schemas/shortObject.yaml | 2 +-
.../src/test/resources/schemas/string.yaml | 2 +-
.../schemas/testCompletableFutureOptional.yaml | 2 +-
.../src/test/resources/schemas/testOptional.yaml | 2 +-
.../src/test/resources/swagger1.yaml | 2 +-
.../src/test/resources/swagger2.yaml | 2 +-
.../src/test/resources/schemas/cookie.yaml | 2 +-
.../src/test/resources/schemas/echo.yaml | 2 +-
.../src/test/resources/schemas/emptyPath.yaml | 2 +-
.../src/test/resources/schemas/enumBody.yaml | 2 +-
.../src/test/resources/schemas/form.yaml | 2 +-
.../src/test/resources/schemas/query.yaml | 2 +-
.../resources/schemas/rawJsonStringMethod.yaml | 2 +-
.../src/test/resources/schemas/response.yaml | 2 +-
.../test/resources/schemas/MethodEmptyPath.yaml | 10 ++--
.../resources/schemas/asyncResponseEntity.yaml | 2 +-
.../test/resources/schemas/defaultParameter.yaml | 12 ++--
.../src/test/resources/schemas/emptyPath.yaml | 2 +-
.../src/test/resources/schemas/enumBody.yaml | 2 +-
.../test/resources/schemas/inheritHttpMethod.yaml | 2 +-
.../test/resources/schemas/mixupAnnotations.yaml | 12 ++--
.../resources/schemas/rawJsonStringMethod.yaml | 2 +-
.../src/test/resources/schemas/responseEntity.yaml | 12 ++--
...estCompletableFutureResponseEntityOptional.yaml | 2 +-
.../schemas/testResponseEntityOptional.yaml | 2 +-
.../client/http/TestDefaultHttpClientFilter.java | 4 +-
80 files changed, 270 insertions(+), 195 deletions(-)
diff --git a/common/common-rest/src/test/java/org/apache/servicecomb/common/rest/codec/fix/TestDoSFix.java b/common/common-rest/src/test/java/org/apache/servicecomb/common/rest/codec/fix/TestDoSFix.java
index 2692cb3..a8b175a 100644
--- a/common/common-rest/src/test/java/org/apache/servicecomb/common/rest/codec/fix/TestDoSFix.java
+++ b/common/common-rest/src/test/java/org/apache/servicecomb/common/rest/codec/fix/TestDoSFix.java
@@ -26,7 +26,7 @@ import org.apache.servicecomb.foundation.test.scaffolding.model.Color;
import org.junit.Assert;
import org.junit.Test;
-import com.fasterxml.jackson.core.JsonParseException;
+import com.fasterxml.jackson.core.exc.InputCoercionException;
import com.fasterxml.jackson.databind.JsonMappingException;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.fasterxml.jackson.databind.exc.InvalidFormatException;
@@ -108,7 +108,7 @@ public class TestDoSFix {
}
void batFastFail(Class<?> cls) {
- batFastFail(cls, JsonParseException.class, InvalidFormatException.class);
+ batFastFail(cls, InputCoercionException.class, InvalidFormatException.class);
}
void batFastFail(String fieldName, Class<?> e1, Class<?> e2) {
@@ -130,8 +130,8 @@ public class TestDoSFix {
@Test
public void testChar() {
- batFastFail(char.class, JsonParseException.class, MismatchedInputException.class);
- batFastFail(Character.class, JsonParseException.class, MismatchedInputException.class);
+ batFastFail(char.class, InputCoercionException.class, MismatchedInputException.class);
+ batFastFail(Character.class, InputCoercionException.class, MismatchedInputException.class);
batFastFail("cValue", JsonMappingException.class, MismatchedInputException.class);
batFastFail("cObjValue", JsonMappingException.class, MismatchedInputException.class);
diff --git a/core/src/test/java/org/apache/servicecomb/core/definition/schema/StaticSchemaFactoryTest.java b/core/src/test/java/org/apache/servicecomb/core/definition/schema/StaticSchemaFactoryTest.java
index 4468ada..068acb7 100644
--- a/core/src/test/java/org/apache/servicecomb/core/definition/schema/StaticSchemaFactoryTest.java
+++ b/core/src/test/java/org/apache/servicecomb/core/definition/schema/StaticSchemaFactoryTest.java
@@ -138,7 +138,7 @@ public class StaticSchemaFactoryTest {
+ " default: 0\n"
+ " format: \"int32\"\n"
+ " responses:\n"
- + " 200:\n"
+ + " \"200\":\n"
+ " description: \"response of 200\"\n"
+ " schema:\n"
+ " type: \"integer\"\n"
@@ -160,7 +160,7 @@ public class StaticSchemaFactoryTest {
+ " default: 0\n"
+ " format: \"int32\"\n"
+ " responses:\n"
- + " 200:\n"
+ + " \"200\":\n"
+ " description: \"response of 200\"\n"
+ " schema:\n"
+ " type: \"integer\"\n"
diff --git a/core/src/test/resources/test/test/schema.yaml b/core/src/test/resources/test/test/schema.yaml
index b3e6aaa..1fc4b15 100644
--- a/core/src/test/resources/test/test/schema.yaml
+++ b/core/src/test/resources/test/test/schema.yaml
@@ -37,7 +37,7 @@ paths:
schema:
$ref: "#/definitions/testintBody"
responses:
- 200:
+ "200":
description: "response of 200"
definitions:
testintBody:
diff --git a/demo/demo-crossapp/crossapp-client/src/main/resources/schemas/helloworld.yaml b/demo/demo-crossapp/crossapp-client/src/main/resources/schemas/helloworld.yaml
index a00b21c..4a98f86 100644
--- a/demo/demo-crossapp/crossapp-client/src/main/resources/schemas/helloworld.yaml
+++ b/demo/demo-crossapp/crossapp-client/src/main/resources/schemas/helloworld.yaml
@@ -30,7 +30,7 @@ paths:
get:
operationId: sayHello
responses:
- 200:
+ "200":
description: say hello
schema:
type: string
diff --git a/demo/demo-crossapp/crossapp-server/src/main/resources/schemas/helloworld.yaml b/demo/demo-crossapp/crossapp-server/src/main/resources/schemas/helloworld.yaml
index a00b21c..4a98f86 100644
--- a/demo/demo-crossapp/crossapp-server/src/main/resources/schemas/helloworld.yaml
+++ b/demo/demo-crossapp/crossapp-server/src/main/resources/schemas/helloworld.yaml
@@ -30,7 +30,7 @@ paths:
get:
operationId: sayHello
responses:
- 200:
+ "200":
description: say hello
schema:
type: string
diff --git a/demo/demo-schema/src/main/resources/microservices/jaxrs/compute.yaml b/demo/demo-schema/src/main/resources/microservices/jaxrs/compute.yaml
index 66eb476..badbda8 100644
--- a/demo/demo-schema/src/main/resources/microservices/jaxrs/compute.yaml
+++ b/demo/demo-schema/src/main/resources/microservices/jaxrs/compute.yaml
@@ -51,7 +51,7 @@ paths:
type: integer
format: int32
responses:
- 200:
+ "200":
description: add numer
schema:
type: integer
@@ -71,7 +71,7 @@ paths:
type: integer
format: int32
responses:
- 200:
+ "200":
description: reduce
schema:
type: integer
@@ -86,7 +86,7 @@ paths:
schema:
$ref: '#/definitions/Person'
responses:
- 200:
+ "200":
description: say hello
schema:
$ref: '#/definitions/Person'
@@ -100,7 +100,7 @@ paths:
x-raw-json: true
type: string
responses:
- 200:
+ "200":
description: test RawJson String
schema:
type: string
@@ -118,7 +118,7 @@ paths:
schema:
$ref: '#/definitions/Person'
responses:
- 200:
+ "200":
description: say something
schema:
type: string
@@ -131,7 +131,7 @@ paths:
required: true
type: string
responses:
- 200:
+ "200":
description: say hi
schema:
type: string
@@ -148,7 +148,7 @@ paths:
required: true
type: string
responses:
- 200:
+ "200":
description: say hi
schema:
type: string
@@ -161,7 +161,7 @@ paths:
required: true
type: string
responses:
- 200:
+ "200":
description: say hi
schema:
type: string
@@ -169,7 +169,7 @@ paths:
get:
operationId: isTrue
responses:
- 200:
+ "200":
description: is true
schema:
type: boolean
@@ -186,7 +186,7 @@ paths:
items:
type: string
responses:
- 200:
+ "200":
description: add string
schema:
type: string
diff --git a/demo/demo-schema/src/main/resources/microservices/pojo/helloworld.Greeter.yaml b/demo/demo-schema/src/main/resources/microservices/pojo/helloworld.Greeter.yaml
index c3272c1..d503f15 100644
--- a/demo/demo-schema/src/main/resources/microservices/pojo/helloworld.Greeter.yaml
+++ b/demo/demo-schema/src/main/resources/microservices/pojo/helloworld.Greeter.yaml
@@ -46,7 +46,7 @@ paths:
schema:
type: string
responses:
- 200:
+ "200":
description: asdf
schema:
type: string
@@ -64,7 +64,7 @@ paths:
schema:
type: string
responses:
- 200:
+ "200":
description: asdf
schema:
type: string
diff --git a/demo/demo-schema/src/main/resources/microservices/pojo/server.yaml b/demo/demo-schema/src/main/resources/microservices/pojo/server.yaml
index 15b1d82..d521ccd 100644
--- a/demo/demo-schema/src/main/resources/microservices/pojo/server.yaml
+++ b/demo/demo-schema/src/main/resources/microservices/pojo/server.yaml
@@ -47,7 +47,7 @@ paths:
items:
type: string
responses:
- 200:
+ "200":
description: asdf
schema:
type: string
@@ -60,7 +60,7 @@ paths:
required: false
type: string
responses:
- 200:
+ "200":
description: asdf
schema:
type: string
@@ -73,7 +73,7 @@ paths:
type: integer
format: int32
responses:
- 200:
+ "200":
description: asdf
schema:
type: string
@@ -86,7 +86,7 @@ paths:
type: integer
format: int32
responses:
- 200:
+ "200":
description: asdf
schema:
type: string
@@ -100,7 +100,7 @@ paths:
type: integer
format: int32
responses:
- 200:
+ "200":
description: asdf
schema:
type: string
@@ -136,7 +136,7 @@ paths:
schema:
$ref: '#/definitions/User'
responses:
- 200:
+ "200":
description: asdf
schema:
$ref: '#/definitions/User'
@@ -154,7 +154,7 @@ paths:
schema:
$ref: '#/definitions/TestRequest'
responses:
- 200:
+ "200":
description: asdf
schema:
$ref: '#/definitions/User'
@@ -173,7 +173,7 @@ paths:
items:
type: string
responses:
- 200:
+ "200":
description: add string
schema:
type: string
@@ -181,7 +181,7 @@ paths:
get:
operationId: testTraceId
responses:
- 200:
+ "200":
description: get trace id
schema:
type: string
diff --git a/demo/demo-schema/src/main/resources/microservices/pojo/tcc-server.yaml b/demo/demo-schema/src/main/resources/microservices/pojo/tcc-server.yaml
index 677cce1..4af831b 100644
--- a/demo/demo-schema/src/main/resources/microservices/pojo/tcc-server.yaml
+++ b/demo/demo-schema/src/main/resources/microservices/pojo/tcc-server.yaml
@@ -49,7 +49,7 @@ paths:
schema:
$ref: '#/definitions/User'
responses:
- 200:
+ "200":
description: asdf
schema:
$ref: '#/definitions/User'
@@ -67,7 +67,7 @@ paths:
schema:
$ref: '#/definitions/TestRequest'
responses:
- 200:
+ "200":
description: asdf
schema:
$ref: '#/definitions/User'
diff --git a/demo/demo-schema/src/main/resources/microservices/springmvc/controller.yaml b/demo/demo-schema/src/main/resources/microservices/springmvc/controller.yaml
index bc18418..9bea47b 100644
--- a/demo/demo-schema/src/main/resources/microservices/springmvc/controller.yaml
+++ b/demo/demo-schema/src/main/resources/microservices/springmvc/controller.yaml
@@ -51,7 +51,7 @@ paths:
type: integer
format: int32
responses:
- 200:
+ "200":
description: add numer
schema:
type: integer
@@ -66,7 +66,7 @@ paths:
required: true
type: string
responses:
- 200:
+ "200":
description: say hello
schema:
type: string
@@ -84,7 +84,7 @@ paths:
schema:
$ref: '#/definitions/Person'
responses:
- 200:
+ "200":
description: say something
schema:
type: string
@@ -97,7 +97,7 @@ paths:
required: true
type: string
responses:
- 200:
+ "200":
description: say hi
schema:
type: string
@@ -110,7 +110,7 @@ paths:
required: true
type: string
responses:
- 200:
+ "200":
description: say hei
schema:
type: string
diff --git a/demo/demo-spring-boot-transport/demo-spring-boot-pojo-server/src/main/resources/microservices/pojo/helloworld.Greeter.yaml b/demo/demo-spring-boot-transport/demo-spring-boot-pojo-server/src/main/resources/microservices/pojo/helloworld.Greeter.yaml
index c3272c1..d503f15 100644
--- a/demo/demo-spring-boot-transport/demo-spring-boot-pojo-server/src/main/resources/microservices/pojo/helloworld.Greeter.yaml
+++ b/demo/demo-spring-boot-transport/demo-spring-boot-pojo-server/src/main/resources/microservices/pojo/helloworld.Greeter.yaml
@@ -46,7 +46,7 @@ paths:
schema:
type: string
responses:
- 200:
+ "200":
description: asdf
schema:
type: string
@@ -64,7 +64,7 @@ paths:
schema:
type: string
responses:
- 200:
+ "200":
description: asdf
schema:
type: string
diff --git a/demo/demo-spring-boot-transport/demo-spring-boot-pojo-server/src/main/resources/microservices/pojo/server.yaml b/demo/demo-spring-boot-transport/demo-spring-boot-pojo-server/src/main/resources/microservices/pojo/server.yaml
index 876bb19..16602e5 100644
--- a/demo/demo-spring-boot-transport/demo-spring-boot-pojo-server/src/main/resources/microservices/pojo/server.yaml
+++ b/demo/demo-spring-boot-transport/demo-spring-boot-pojo-server/src/main/resources/microservices/pojo/server.yaml
@@ -47,7 +47,7 @@ paths:
items:
type: string
responses:
- 200:
+ "200":
description: asdf
schema:
type: string
@@ -60,7 +60,7 @@ paths:
required: true
type: string
responses:
- 200:
+ "200":
description: asdf
schema:
type: string
@@ -73,7 +73,7 @@ paths:
type: integer
format: int32
responses:
- 200:
+ "200":
description: asdf
schema:
type: string
@@ -87,7 +87,7 @@ paths:
type: integer
format: int32
responses:
- 200:
+ "200":
description: asdf
schema:
type: string
@@ -122,7 +122,7 @@ paths:
schema:
$ref: '#/definitions/User'
responses:
- 200:
+ "200":
description: asdf
schema:
$ref: '#/definitions/User'
@@ -140,7 +140,7 @@ paths:
schema:
$ref: '#/definitions/TestRequest'
responses:
- 200:
+ "200":
description: asdf
schema:
$ref: '#/definitions/User'
@@ -159,7 +159,7 @@ paths:
items:
type: string
responses:
- 200:
+ "200":
description: add string
schema:
type: string
diff --git a/demo/demo-spring-boot-transport/demo-spring-boot-pojo-server/src/main/resources/microservices/pojo/tcc-server.yaml b/demo/demo-spring-boot-transport/demo-spring-boot-pojo-server/src/main/resources/microservices/pojo/tcc-server.yaml
index 677cce1..4af831b 100644
--- a/demo/demo-spring-boot-transport/demo-spring-boot-pojo-server/src/main/resources/microservices/pojo/tcc-server.yaml
+++ b/demo/demo-spring-boot-transport/demo-spring-boot-pojo-server/src/main/resources/microservices/pojo/tcc-server.yaml
@@ -49,7 +49,7 @@ paths:
schema:
$ref: '#/definitions/User'
responses:
- 200:
+ "200":
description: asdf
schema:
$ref: '#/definitions/User'
@@ -67,7 +67,7 @@ paths:
schema:
$ref: '#/definitions/TestRequest'
responses:
- 200:
+ "200":
description: asdf
schema:
$ref: '#/definitions/User'
diff --git a/demo/demo-springmvc/springmvc-server/src/main/java/org/apache/servicecomb/demo/springmvc/server/ProducerTestsAfterBootup.java b/demo/demo-springmvc/springmvc-server/src/main/java/org/apache/servicecomb/demo/springmvc/server/ProducerTestsAfterBootup.java
index 6023d1d..1d4ad5c 100644
--- a/demo/demo-springmvc/springmvc-server/src/main/java/org/apache/servicecomb/demo/springmvc/server/ProducerTestsAfterBootup.java
+++ b/demo/demo-springmvc/springmvc-server/src/main/java/org/apache/servicecomb/demo/springmvc/server/ProducerTestsAfterBootup.java
@@ -53,9 +53,9 @@ public class ProducerTestsAfterBootup implements BootListener {
CodeFirstSpringmvcForSchema.class,
new CodeFirstSpringmvcForSchema());
String codeFirst = getSwaggerContent(meta.getSwagger());
- TestMgr.check("2986daa46b229ec125443122dd7b51ee9a64879f1750d0996f948ce0718685c7",
+ TestMgr.check("608f6cbb3554839de311d90d16a44ffc41ef66575101e172eb54ccc255e8675d",
RegistryUtils.calcSchemaSummary(codeFirst));
- TestMgr.check(codeFirst.length(), 889);
+ TestMgr.check(codeFirst.length(), 891);
}
public void testRegisteredBasePath() {
diff --git a/dynamic-config/config-cc/src/main/java/org/apache/servicecomb/config/client/ConfigCenterClient.java b/dynamic-config/config-cc/src/main/java/org/apache/servicecomb/config/client/ConfigCenterClient.java
index eed0d7d..ac0f88a 100644
--- a/dynamic-config/config-cc/src/main/java/org/apache/servicecomb/config/client/ConfigCenterClient.java
+++ b/dynamic-config/config-cc/src/main/java/org/apache/servicecomb/config/client/ConfigCenterClient.java
@@ -384,7 +384,7 @@ public class ConfigCenterClient {
try {
parseConfigUtils
.refreshConfigItems(JsonUtils.OBJ_MAPPER.readValue(buf.toString(),
- new TypeReference<LinkedHashMap<String, Map<String, String>>>() {
+ new TypeReference<LinkedHashMap<String, Map<String, Object>>>() {
}));
EventManager.post(new ConnSuccEvent());
} catch (IOException e) {
diff --git a/inspector/src/test/resources/schema1.yaml b/inspector/src/test/resources/schema1.yaml
index 040caa4..6bf42c9 100644
--- a/inspector/src/test/resources/schema1.yaml
+++ b/inspector/src/test/resources/schema1.yaml
@@ -37,7 +37,7 @@ paths:
description: "illegal request content"
schema:
type: "string"
- 200:
+ "200":
description: "response of 200"
schema:
type: "object"
diff --git a/inspector/src/test/resources/schema2.yaml b/inspector/src/test/resources/schema2.yaml
index 2bf360e..eee3fab 100644
--- a/inspector/src/test/resources/schema2.yaml
+++ b/inspector/src/test/resources/schema2.yaml
@@ -33,7 +33,7 @@ paths:
operationId: "checkHealth"
parameters: []
responses:
- 200:
+ "200":
description: "response of 200"
schema:
type: "boolean"
@@ -42,7 +42,7 @@ paths:
operationId: "checkHealthDetails"
parameters: []
responses:
- 200:
+ "200":
description: "response of 200"
schema:
type: "object"
diff --git a/integration-tests/jaxrs-tests/src/test/resources/microservices/jaxrs/schemaFirst.yaml b/integration-tests/jaxrs-tests/src/test/resources/microservices/jaxrs/schemaFirst.yaml
index c9ccda1..e401a48 100644
--- a/integration-tests/jaxrs-tests/src/test/resources/microservices/jaxrs/schemaFirst.yaml
+++ b/integration-tests/jaxrs-tests/src/test/resources/microservices/jaxrs/schemaFirst.yaml
@@ -40,7 +40,7 @@ paths:
type: integer
format: int32
responses:
- 200:
+ "200":
description: add numer
schema:
type: integer
@@ -60,7 +60,7 @@ paths:
type: integer
format: int32
responses:
- 200:
+ "200":
description: reduce
schema:
type: integer
@@ -75,7 +75,7 @@ paths:
schema:
$ref: '#/definitions/Person'
responses:
- 200:
+ "200":
description: say hello
schema:
$ref: '#/definitions/Person'
@@ -89,7 +89,7 @@ paths:
x-raw-json: true
type: string
responses:
- 200:
+ "200":
description: test RawJson String
schema:
type: string
@@ -107,7 +107,7 @@ paths:
schema:
$ref: '#/definitions/Person'
responses:
- 200:
+ "200":
description: say something
schema:
type: string
@@ -125,7 +125,7 @@ paths:
schema:
$ref: '#/definitions/Person'
responses:
- 200:
+ "200":
description: say something
schema:
type: string
@@ -138,7 +138,7 @@ paths:
required: true
type: string
responses:
- 200:
+ "200":
description: say hi
schema:
type: string
@@ -155,7 +155,7 @@ paths:
required: true
type: string
responses:
- 200:
+ "200":
description: say hi
schema:
type: string
@@ -163,7 +163,7 @@ paths:
get:
operationId: isTrue
responses:
- 200:
+ "200":
description: is true
schema:
type: boolean
@@ -180,7 +180,7 @@ paths:
items:
type: string
responses:
- 200:
+ "200":
description: add string
schema:
type: string
@@ -197,7 +197,7 @@ paths:
additionalProperties:
$ref: '#/definitions/User'
responses:
- 200:
+ "200":
description: response of 200
schema:
type: object
@@ -218,7 +218,7 @@ paths:
type: integer
format: int64
responses:
- 200:
+ "200":
description: response of 200
schema:
type: string
@@ -235,7 +235,7 @@ paths:
schema:
type: string
responses:
- 200:
+ "200":
description: response of 200
schema:
type: string
@@ -244,7 +244,7 @@ paths:
operationId: defaultPath
parameters: []
responses:
- 200:
+ "200":
description: response of 200
schema:
type: integer
@@ -260,7 +260,7 @@ paths:
type: string
format: byte
responses:
- 200:
+ "200":
description: response of 200
schema:
type: string
diff --git a/java-chassis-dependencies/default/pom.xml b/java-chassis-dependencies/default/pom.xml
index 3413ad5..58d06e5 100644
--- a/java-chassis-dependencies/default/pom.xml
+++ b/java-chassis-dependencies/default/pom.xml
@@ -59,7 +59,7 @@
<hibernate-validator.version>6.0.14.Final</hibernate-validator.version>
<httpcomponents.version>4.5.7</httpcomponents.version>
<hystrix.version>1.5.18</hystrix.version>
- <jackson.version>2.9.8</jackson.version>
+ <jackson.version>2.10.0</jackson.version>
<javassist.version>3.24.0-GA</javassist.version>
<javakaffee.version>0.26</javakaffee.version>
<javax-annotation.version>1.3.2</javax-annotation.version>
@@ -210,6 +210,17 @@
</dependency>
<dependency>
+ <groupId>com.fasterxml.jackson.module</groupId>
+ <artifactId>jackson-module-jaxb-annotations</artifactId>
+ <version>${jackson.version}</version>
+ </dependency>
+ <dependency>
+ <groupId>com.fasterxml.jackson.module</groupId>
+ <artifactId>jackson-module-afterburner</artifactId>
+ <version>${jackson.version}</version>
+ </dependency>
+
+ <dependency>
<groupId>com.github.seanyinx</groupId>
<artifactId>unit-scaffolding</artifactId>
<version>${seanyinx.version}</version>
diff --git a/java-chassis-dependencies/springboot2/pom.xml b/java-chassis-dependencies/springboot2/pom.xml
index 1cb053b..1e7d366 100644
--- a/java-chassis-dependencies/springboot2/pom.xml
+++ b/java-chassis-dependencies/springboot2/pom.xml
@@ -32,6 +32,7 @@
<properties>
<!-- Dependency versions -->
+ <jackson.version>2.10.0</jackson.version>
<spring-boot.version>2.1.6.RELEASE</spring-boot.version>
<spring-cloud.version>Greenwich.RELEASE</spring-cloud.version>
<!-- Plugin versions -->
@@ -40,6 +41,69 @@
<dependencyManagement>
<dependencies>
+ <dependency>
+ <groupId>com.fasterxml.jackson.core</groupId>
+ <artifactId>jackson-annotations</artifactId>
+ <version>${jackson.version}</version>
+ </dependency>
+ <dependency>
+ <groupId>com.fasterxml.jackson.core</groupId>
+ <artifactId>jackson-core</artifactId>
+ <version>${jackson.version}</version>
+ </dependency>
+ <dependency>
+ <groupId>com.fasterxml.jackson.core</groupId>
+ <artifactId>jackson-databind</artifactId>
+ <version>${jackson.version}</version>
+ </dependency>
+
+ <dependency>
+ <groupId>com.fasterxml.jackson.dataformat</groupId>
+ <artifactId>jackson-dataformat-protobuf</artifactId>
+ <version>${jackson.version}</version>
+ </dependency>
+ <dependency>
+ <groupId>com.fasterxml.jackson.dataformat</groupId>
+ <artifactId>jackson-dataformat-xml</artifactId>
+ <version>${jackson.version}</version>
+ <exclusions>
+ <exclusion>
+ <groupId>com.fasterxml.woodstox</groupId>
+ <artifactId>woodstox-core</artifactId>
+ </exclusion>
+ </exclusions>
+ </dependency>
+ <dependency>
+ <groupId>com.fasterxml.jackson.datatype</groupId>
+ <artifactId>jackson-datatype-jdk8</artifactId>
+ <version>${jackson.version}</version>
+ </dependency>
+ <dependency>
+ <groupId>com.fasterxml.jackson.datatype</groupId>
+ <artifactId>jackson-datatype-jsr310</artifactId>
+ <version>${jackson.version}</version>
+ </dependency>
+ <dependency>
+ <groupId>com.fasterxml.jackson.module</groupId>
+ <artifactId>jackson-module-afterburner</artifactId>
+ <version>${jackson.version}</version>
+ </dependency>
+ <dependency>
+ <groupId>com.fasterxml.jackson.module</groupId>
+ <artifactId>jackson-module-parameter-names</artifactId>
+ <version>${jackson.version}</version>
+ </dependency>
+ <dependency>
+ <groupId>com.fasterxml.jackson.dataformat</groupId>
+ <artifactId>jackson-dataformat-yaml</artifactId>
+ <version>${jackson.version}</version>
+ </dependency>
+
+ <dependency>
+ <groupId>com.fasterxml.jackson.module</groupId>
+ <artifactId>jackson-module-jaxb-annotations</artifactId>
+ <version>${jackson.version}</version>
+ </dependency>
<!-- Error occur when changing the sequence of dependencies -->
<dependency>
<groupId>org.springframework.cloud</groupId>
diff --git a/java-chassis-distribution/src/release/LICENSE b/java-chassis-distribution/src/release/LICENSE
index 3b7b0f8..9a0d073 100644
--- a/java-chassis-distribution/src/release/LICENSE
+++ b/java-chassis-distribution/src/release/LICENSE
@@ -491,16 +491,16 @@ For details, see their respective project links.
* hystrix-serialization (com.netflix.hystrix:hystrix-serialization:1.5.18 - https://github.com/Netflix/Hystrix)
* invokebinder (com.headius:invokebinder:1.11 - http://maven.apache.org)
* J2ObjC Annotations (com.google.j2objc:j2objc-annotations:1.1 - https://github.com/google/j2objc/)
-* Jackson-annotations (com.fasterxml.jackson.core:jackson-annotations:2.9.8 - http://github.com/FasterXML/jackson)
-* Jackson-core (com.fasterxml.jackson.core:jackson-core:2.9.8 - https://github.com/FasterXML/jackson-core)
-* jackson-databind (com.fasterxml.jackson.core:jackson-databind:2.9.8 - http://github.com/FasterXML/jackson)
-* Jackson-dataformat-XML (com.fasterxml.jackson.dataformat:jackson-dataformat-xml:2.9.8 - http://wiki.fasterxml.com/JacksonExtensionXmlDataBinding)
-* Jackson-dataformat-YAML (com.fasterxml.jackson.dataformat:jackson-dataformat-yaml:2.9.8 - https://github.com/FasterXML/jackson-dataformats-text)
-* Jackson datatype: jdk8 (com.fasterxml.jackson.datatype:jackson-datatype-jdk8:2.8.11 - https://github.com/FasterXML/jackson-modules-java8/jackson-datatype-jdk8)
-* Jackson datatype: JSR310 (com.fasterxml.jackson.datatype:jackson-datatype-jsr310:2.8.11 - https://github.com/FasterXML/jackson-modules-java8/jackson-datatype-jsr310)
-* Jackson module: Afterburner (com.fasterxml.jackson.module:jackson-module-afterburner:2.8.11 - https://github.com/FasterXML/jackson-modules-base)
-* Jackson module: JAXB-annotations (com.fasterxml.jackson.module:jackson-module-jaxb-annotations:2.8.11 - http://github.com/FasterXML/jackson-module-jaxb-annotations)
-* Jackson-module-parameter-names (com.fasterxml.jackson.module:jackson-module-parameter-names:2.8.11 - https://github.com/FasterXML/jackson-modules-java8/jackson-module-parameter-names)
+* Jackson-annotations (com.fasterxml.jackson.core:jackson-annotations:2.10.0 - http://github.com/FasterXML/jackson)
+* Jackson-core (com.fasterxml.jackson.core:jackson-core:2.10.0 - https://github.com/FasterXML/jackson-core)
+* jackson-databind (com.fasterxml.jackson.core:jackson-databind:2.10.0 - http://github.com/FasterXML/jackson)
+* Jackson-dataformat-XML (com.fasterxml.jackson.dataformat:jackson-dataformat-xml:2.10.0 - http://wiki.fasterxml.com/JacksonExtensionXmlDataBinding)
+* Jackson-dataformat-YAML (com.fasterxml.jackson.dataformat:jackson-dataformat-yaml:2.10.0 - https://github.com/FasterXML/jackson-dataformats-text)
+* Jackson datatype: jdk8 (com.fasterxml.jackson.datatype:jackson-datatype-jdk8:2.10.0 - https://github.com/FasterXML/jackson-modules-java8/jackson-datatype-jdk8)
+* Jackson datatype: JSR310 (com.fasterxml.jackson.datatype:jackson-datatype-jsr310:2.10.0 - https://github.com/FasterXML/jackson-modules-java8/jackson-datatype-jsr310)
+* Jackson module: Afterburner (com.fasterxml.jackson.module:jackson-module-afterburner:2.10.0 - https://github.com/FasterXML/jackson-modules-base)
+* Jackson module: JAXB-annotations (com.fasterxml.jackson.module:jackson-module-jaxb-annotations:2.10.0 - http://github.com/FasterXML/jackson-module-jaxb-annotations)
+* Jackson-module-parameter-names (com.fasterxml.jackson.module:jackson-module-parameter-names:2.10.0 - https://github.com/FasterXML/jackson-modules-java8/jackson-module-parameter-names)
* javax.inject (javax.inject:javax.inject:1 - http://code.google.com/p/atinject/)
* JBoss Logging 3 (org.jboss.logging:jboss-logging:3.3.2.Final - http://www.jboss.org)
* JCommander (com.beust:jcommander:1.35 - http://beust.com/jcommander)
diff --git a/metrics/metrics-core/src/main/java/org/apache/servicecomb/metrics/core/publish/DefaultLogPublisher.java b/metrics/metrics-core/src/main/java/org/apache/servicecomb/metrics/core/publish/DefaultLogPublisher.java
index e49e9ff..4ede81a 100644
--- a/metrics/metrics-core/src/main/java/org/apache/servicecomb/metrics/core/publish/DefaultLogPublisher.java
+++ b/metrics/metrics-core/src/main/java/org/apache/servicecomb/metrics/core/publish/DefaultLogPublisher.java
@@ -350,7 +350,7 @@ public class DefaultLogPublisher implements MetricsInitializer {
private StringBuilder printProducerDetailsPerf(OperationPerfGroup perfGroup) {
StringBuilder sb = new StringBuilder();
- //append rest.200:
+ //append rest."200":
sb.append(" ")
.append(perfGroup.getTransport())
.append(".")
@@ -391,7 +391,7 @@ public class DefaultLogPublisher implements MetricsInitializer {
private StringBuilder printConsumerDetailsPerf(OperationPerfGroup perfGroup) {
StringBuilder sb = new StringBuilder();
- //append rest.200:
+ //append rest."200":
sb.append(" ")
.append(perfGroup.getTransport())
.append(".")
@@ -438,7 +438,7 @@ public class DefaultLogPublisher implements MetricsInitializer {
private StringBuilder printEdgeDetailsPerf(OperationPerfGroup perfGroup) {
StringBuilder sb = new StringBuilder();
- //append rest.200:
+ //append rest."200":
sb.append(" ")
.append(perfGroup.getTransport())
.append(".")
diff --git a/swagger/swagger-generator/generator-core/src/test/resources/schemas/allMethod.yaml b/swagger/swagger-generator/generator-core/src/test/resources/schemas/allMethod.yaml
index 7fb1207..eefd555 100644
--- a/swagger/swagger-generator/generator-core/src/test/resources/schemas/allMethod.yaml
+++ b/swagger/swagger-generator/generator-core/src/test/resources/schemas/allMethod.yaml
@@ -37,14 +37,14 @@ paths:
schema:
$ref: "#/definitions/AllType"
responses:
- 200:
+ "200":
description: "response of 200"
/testApiOperation:
post:
operationId: "testApiOperation"
parameters: []
responses:
- 200:
+ "200":
description: "response of 200"
headers:
h:
@@ -54,7 +54,7 @@ paths:
operationId: "testApiResponse"
parameters: []
responses:
- 200:
+ "200":
description: "response of 200"
headers:
h:
@@ -69,7 +69,7 @@ paths:
schema:
$ref: "#/definitions/testArrayBody"
responses:
- 200:
+ "200":
description: "response of 200"
/testBoolean:
post:
@@ -81,7 +81,7 @@ paths:
schema:
$ref: "#/definitions/testBooleanBody"
responses:
- 200:
+ "200":
description: "response of 200"
/testByte:
post:
@@ -93,7 +93,7 @@ paths:
schema:
$ref: "#/definitions/testByteBody"
responses:
- 200:
+ "200":
description: "response of 200"
/testBytes:
post:
@@ -105,7 +105,7 @@ paths:
schema:
$ref: "#/definitions/testBytesBody"
responses:
- 200:
+ "200":
description: "response of 200"
/testChar:
post:
@@ -117,14 +117,14 @@ paths:
schema:
$ref: "#/definitions/testCharBody"
responses:
- 200:
+ "200":
description: "response of 200"
/testCompletableFuture:
post:
operationId: "testCompletableFuture"
parameters: []
responses:
- 200:
+ "200":
description: "response of 200"
schema:
type: "string"
@@ -133,7 +133,7 @@ paths:
operationId: "testCompletableFutureOptional"
parameters: []
responses:
- 200:
+ "200":
description: "response of 200"
schema:
type: "string"
@@ -142,7 +142,7 @@ paths:
operationId: "testDate"
parameters: []
responses:
- 200:
+ "200":
description: "response of 200"
schema:
type: "string"
@@ -157,7 +157,7 @@ paths:
schema:
$ref: "#/definitions/testDoubleBody"
responses:
- 200:
+ "200":
description: "response of 200"
/testEnum:
post:
@@ -169,7 +169,7 @@ paths:
schema:
$ref: "#/definitions/testEnumBody"
responses:
- 200:
+ "200":
description: "response of 200"
/testFloat:
post:
@@ -181,7 +181,7 @@ paths:
schema:
$ref: "#/definitions/testFloatBody"
responses:
- 200:
+ "200":
description: "response of 200"
/testInteger:
post:
@@ -193,7 +193,7 @@ paths:
schema:
$ref: "#/definitions/testIntegerBody"
responses:
- 200:
+ "200":
description: "response of 200"
/testList:
post:
@@ -205,7 +205,7 @@ paths:
schema:
$ref: "#/definitions/testListBody"
responses:
- 200:
+ "200":
description: "response of 200"
/testLong:
post:
@@ -217,7 +217,7 @@ paths:
schema:
$ref: "#/definitions/testLongBody"
responses:
- 200:
+ "200":
description: "response of 200"
/testMap:
post:
@@ -229,7 +229,7 @@ paths:
schema:
$ref: "#/definitions/testMapBody"
responses:
- 200:
+ "200":
description: "response of 200"
/testMapList:
post:
@@ -241,7 +241,7 @@ paths:
schema:
$ref: "#/definitions/testMapListBody"
responses:
- 200:
+ "200":
description: "response of 200"
/testMultiParam:
post:
@@ -253,7 +253,7 @@ paths:
schema:
$ref: "#/definitions/testMultiParamBody"
responses:
- 200:
+ "200":
description: "response of 200"
schema:
type: "array"
@@ -269,14 +269,14 @@ paths:
schema:
$ref: "#/definitions/User"
responses:
- 200:
+ "200":
description: "response of 200"
/testOptional:
post:
operationId: "testOptional"
parameters: []
responses:
- 200:
+ "200":
description: "response of 200"
schema:
type: "string"
@@ -285,7 +285,7 @@ paths:
operationId: "testResponseHeader"
parameters: []
responses:
- 200:
+ "200":
description: "response of 200"
headers:
h:
@@ -300,7 +300,7 @@ paths:
schema:
$ref: "#/definitions/testSetBody"
responses:
- 200:
+ "200":
description: "response of 200"
/testShort:
post:
@@ -312,7 +312,7 @@ paths:
schema:
$ref: "#/definitions/testShortBody"
responses:
- 200:
+ "200":
description: "response of 200"
/testString:
post:
@@ -324,7 +324,7 @@ paths:
schema:
$ref: "#/definitions/testStringBody"
responses:
- 200:
+ "200":
description: "response of 200"
/testboolean:
post:
@@ -336,7 +336,7 @@ paths:
schema:
$ref: "#/definitions/testbooleanBody"
responses:
- 200:
+ "200":
description: "response of 200"
/testbyte:
post:
@@ -348,7 +348,7 @@ paths:
schema:
$ref: "#/definitions/testbyteBody"
responses:
- 200:
+ "200":
description: "response of 200"
/testbytes:
post:
@@ -360,7 +360,7 @@ paths:
schema:
$ref: "#/definitions/testbytesBody"
responses:
- 200:
+ "200":
description: "response of 200"
/testchar:
post:
@@ -372,7 +372,7 @@ paths:
schema:
$ref: "#/definitions/testcharBody"
responses:
- 200:
+ "200":
description: "response of 200"
/testdouble:
post:
@@ -384,7 +384,7 @@ paths:
schema:
$ref: "#/definitions/testdoubleBody"
responses:
- 200:
+ "200":
description: "response of 200"
/testfloat:
post:
@@ -396,7 +396,7 @@ paths:
schema:
$ref: "#/definitions/testfloatBody"
responses:
- 200:
+ "200":
description: "response of 200"
/testint:
post:
@@ -408,7 +408,7 @@ paths:
schema:
$ref: "#/definitions/testintBody"
responses:
- 200:
+ "200":
description: "response of 200"
/testlong:
post:
@@ -420,7 +420,7 @@ paths:
schema:
$ref: "#/definitions/testlongBody"
responses:
- 200:
+ "200":
description: "response of 200"
/testshort:
post:
@@ -432,7 +432,7 @@ paths:
schema:
$ref: "#/definitions/testshortBody"
responses:
- 200:
+ "200":
description: "response of 200"
definitions:
AllType:
diff --git a/swagger/swagger-generator/generator-core/src/test/resources/schemas/allType.yaml b/swagger/swagger-generator/generator-core/src/test/resources/schemas/allType.yaml
index 0cf6e85..12f1f8f 100644
--- a/swagger/swagger-generator/generator-core/src/test/resources/schemas/allType.yaml
+++ b/swagger/swagger-generator/generator-core/src/test/resources/schemas/allType.yaml
@@ -37,7 +37,7 @@ paths:
schema:
$ref: "#/definitions/AllType"
responses:
- 200:
+ "200":
description: "response of 200"
definitions:
AllType:
diff --git a/swagger/swagger-generator/generator-core/src/test/resources/schemas/apiOperation.yaml b/swagger/swagger-generator/generator-core/src/test/resources/schemas/apiOperation.yaml
index 84cdcb4..9e32433 100644
--- a/swagger/swagger-generator/generator-core/src/test/resources/schemas/apiOperation.yaml
+++ b/swagger/swagger-generator/generator-core/src/test/resources/schemas/apiOperation.yaml
@@ -32,7 +32,7 @@ paths:
operationId: "testApiOperation"
parameters: []
responses:
- 200:
+ "200":
description: "response of 200"
headers:
h:
diff --git a/swagger/swagger-generator/generator-core/src/test/resources/schemas/apiResponse.yaml b/swagger/swagger-generator/generator-core/src/test/resources/schemas/apiResponse.yaml
index 9a01043..51d9e6d 100644
--- a/swagger/swagger-generator/generator-core/src/test/resources/schemas/apiResponse.yaml
+++ b/swagger/swagger-generator/generator-core/src/test/resources/schemas/apiResponse.yaml
@@ -32,7 +32,7 @@ paths:
operationId: "testApiResponse"
parameters: []
responses:
- 200:
+ "200":
description: "response of 200"
headers:
h:
diff --git a/swagger/swagger-generator/generator-core/src/test/resources/schemas/array.yaml b/swagger/swagger-generator/generator-core/src/test/resources/schemas/array.yaml
index d82251d..1786c4f 100644
--- a/swagger/swagger-generator/generator-core/src/test/resources/schemas/array.yaml
+++ b/swagger/swagger-generator/generator-core/src/test/resources/schemas/array.yaml
@@ -37,7 +37,7 @@ paths:
schema:
$ref: "#/definitions/testArrayBody"
responses:
- 200:
+ "200":
description: "response of 200"
definitions:
testArrayBody:
diff --git a/swagger/swagger-generator/generator-core/src/test/resources/schemas/boolean.yaml b/swagger/swagger-generator/generator-core/src/test/resources/schemas/boolean.yaml
index f142dd4..481f990 100644
--- a/swagger/swagger-generator/generator-core/src/test/resources/schemas/boolean.yaml
+++ b/swagger/swagger-generator/generator-core/src/test/resources/schemas/boolean.yaml
@@ -37,7 +37,7 @@ paths:
schema:
$ref: "#/definitions/testbooleanBody"
responses:
- 200:
+ "200":
description: "response of 200"
definitions:
testbooleanBody:
diff --git a/swagger/swagger-generator/generator-core/src/test/resources/schemas/booleanObject.yaml b/swagger/swagger-generator/generator-core/src/test/resources/schemas/booleanObject.yaml
index b3d688e..89d45be 100644
--- a/swagger/swagger-generator/generator-core/src/test/resources/schemas/booleanObject.yaml
+++ b/swagger/swagger-generator/generator-core/src/test/resources/schemas/booleanObject.yaml
@@ -37,7 +37,7 @@ paths:
schema:
$ref: "#/definitions/testBooleanBody"
responses:
- 200:
+ "200":
description: "response of 200"
definitions:
testBooleanBody:
diff --git a/swagger/swagger-generator/generator-core/src/test/resources/schemas/byte.yaml b/swagger/swagger-generator/generator-core/src/test/resources/schemas/byte.yaml
index 26fdbd2..37145cd 100644
--- a/swagger/swagger-generator/generator-core/src/test/resources/schemas/byte.yaml
+++ b/swagger/swagger-generator/generator-core/src/test/resources/schemas/byte.yaml
@@ -37,7 +37,7 @@ paths:
schema:
$ref: "#/definitions/testbyteBody"
responses:
- 200:
+ "200":
description: "response of 200"
definitions:
testbyteBody:
diff --git a/swagger/swagger-generator/generator-core/src/test/resources/schemas/byteObject.yaml b/swagger/swagger-generator/generator-core/src/test/resources/schemas/byteObject.yaml
index 5093836..30e4f38 100644
--- a/swagger/swagger-generator/generator-core/src/test/resources/schemas/byteObject.yaml
+++ b/swagger/swagger-generator/generator-core/src/test/resources/schemas/byteObject.yaml
@@ -37,7 +37,7 @@ paths:
schema:
$ref: "#/definitions/testByteBody"
responses:
- 200:
+ "200":
description: "response of 200"
definitions:
testByteBody:
diff --git a/swagger/swagger-generator/generator-core/src/test/resources/schemas/bytes.yaml b/swagger/swagger-generator/generator-core/src/test/resources/schemas/bytes.yaml
index 823c709..4226256 100644
--- a/swagger/swagger-generator/generator-core/src/test/resources/schemas/bytes.yaml
+++ b/swagger/swagger-generator/generator-core/src/test/resources/schemas/bytes.yaml
@@ -37,7 +37,7 @@ paths:
schema:
$ref: "#/definitions/testbytesBody"
responses:
- 200:
+ "200":
description: "response of 200"
definitions:
testbytesBody:
diff --git a/swagger/swagger-generator/generator-core/src/test/resources/schemas/bytesObject.yaml b/swagger/swagger-generator/generator-core/src/test/resources/schemas/bytesObject.yaml
index 3b4986c..5b6754f 100644
--- a/swagger/swagger-generator/generator-core/src/test/resources/schemas/bytesObject.yaml
+++ b/swagger/swagger-generator/generator-core/src/test/resources/schemas/bytesObject.yaml
@@ -37,7 +37,7 @@ paths:
schema:
$ref: "#/definitions/testBytesBody"
responses:
- 200:
+ "200":
description: "response of 200"
definitions:
testBytesBody:
diff --git a/swagger/swagger-generator/generator-core/src/test/resources/schemas/char.yaml b/swagger/swagger-generator/generator-core/src/test/resources/schemas/char.yaml
index 9bc81cb..16965f7 100644
--- a/swagger/swagger-generator/generator-core/src/test/resources/schemas/char.yaml
+++ b/swagger/swagger-generator/generator-core/src/test/resources/schemas/char.yaml
@@ -37,7 +37,7 @@ paths:
schema:
$ref: "#/definitions/testcharBody"
responses:
- 200:
+ "200":
description: "response of 200"
definitions:
testcharBody:
diff --git a/swagger/swagger-generator/generator-core/src/test/resources/schemas/charObject.yaml b/swagger/swagger-generator/generator-core/src/test/resources/schemas/charObject.yaml
index 4e1b55c..990a2c9 100644
--- a/swagger/swagger-generator/generator-core/src/test/resources/schemas/charObject.yaml
+++ b/swagger/swagger-generator/generator-core/src/test/resources/schemas/charObject.yaml
@@ -37,7 +37,7 @@ paths:
schema:
$ref: "#/definitions/testCharBody"
responses:
- 200:
+ "200":
description: "response of 200"
definitions:
testCharBody:
diff --git a/swagger/swagger-generator/generator-core/src/test/resources/schemas/completableFuture.yaml b/swagger/swagger-generator/generator-core/src/test/resources/schemas/completableFuture.yaml
index ffbdc84..212ceca 100644
--- a/swagger/swagger-generator/generator-core/src/test/resources/schemas/completableFuture.yaml
+++ b/swagger/swagger-generator/generator-core/src/test/resources/schemas/completableFuture.yaml
@@ -32,7 +32,7 @@ paths:
operationId: "testCompletableFuture"
parameters: []
responses:
- 200:
+ "200":
description: "response of 200"
schema:
type: "string"
diff --git a/swagger/swagger-generator/generator-core/src/test/resources/schemas/date.yaml b/swagger/swagger-generator/generator-core/src/test/resources/schemas/date.yaml
index fdb3aa3..a6d1763 100644
--- a/swagger/swagger-generator/generator-core/src/test/resources/schemas/date.yaml
+++ b/swagger/swagger-generator/generator-core/src/test/resources/schemas/date.yaml
@@ -32,7 +32,7 @@ paths:
operationId: "testDate"
parameters: []
responses:
- 200:
+ "200":
description: "response of 200"
schema:
type: "string"
diff --git a/swagger/swagger-generator/generator-core/src/test/resources/schemas/double.yaml b/swagger/swagger-generator/generator-core/src/test/resources/schemas/double.yaml
index 23274d0..b58aa2c 100644
--- a/swagger/swagger-generator/generator-core/src/test/resources/schemas/double.yaml
+++ b/swagger/swagger-generator/generator-core/src/test/resources/schemas/double.yaml
@@ -37,7 +37,7 @@ paths:
schema:
$ref: "#/definitions/testdoubleBody"
responses:
- 200:
+ "200":
description: "response of 200"
definitions:
testdoubleBody:
diff --git a/swagger/swagger-generator/generator-core/src/test/resources/schemas/doubleObject.yaml b/swagger/swagger-generator/generator-core/src/test/resources/schemas/doubleObject.yaml
index 030554f..f1f2a83 100644
--- a/swagger/swagger-generator/generator-core/src/test/resources/schemas/doubleObject.yaml
+++ b/swagger/swagger-generator/generator-core/src/test/resources/schemas/doubleObject.yaml
@@ -37,7 +37,7 @@ paths:
schema:
$ref: "#/definitions/testDoubleBody"
responses:
- 200:
+ "200":
description: "response of 200"
definitions:
testDoubleBody:
diff --git a/swagger/swagger-generator/generator-core/src/test/resources/schemas/enum.yaml b/swagger/swagger-generator/generator-core/src/test/resources/schemas/enum.yaml
index b9c30be..91e0a67 100644
--- a/swagger/swagger-generator/generator-core/src/test/resources/schemas/enum.yaml
+++ b/swagger/swagger-generator/generator-core/src/test/resources/schemas/enum.yaml
@@ -37,7 +37,7 @@ paths:
schema:
$ref: "#/definitions/testEnumBody"
responses:
- 200:
+ "200":
description: "response of 200"
definitions:
testEnumBody:
diff --git a/swagger/swagger-generator/generator-core/src/test/resources/schemas/float.yaml b/swagger/swagger-generator/generator-core/src/test/resources/schemas/float.yaml
index 49d606e..500cdb2 100644
--- a/swagger/swagger-generator/generator-core/src/test/resources/schemas/float.yaml
+++ b/swagger/swagger-generator/generator-core/src/test/resources/schemas/float.yaml
@@ -37,7 +37,7 @@ paths:
schema:
$ref: "#/definitions/testfloatBody"
responses:
- 200:
+ "200":
description: "response of 200"
definitions:
testfloatBody:
diff --git a/swagger/swagger-generator/generator-core/src/test/resources/schemas/floatObject.yaml b/swagger/swagger-generator/generator-core/src/test/resources/schemas/floatObject.yaml
index e7757ba..56d1967 100644
--- a/swagger/swagger-generator/generator-core/src/test/resources/schemas/floatObject.yaml
+++ b/swagger/swagger-generator/generator-core/src/test/resources/schemas/floatObject.yaml
@@ -37,7 +37,7 @@ paths:
schema:
$ref: "#/definitions/testFloatBody"
responses:
- 200:
+ "200":
description: "response of 200"
definitions:
testFloatBody:
diff --git a/swagger/swagger-generator/generator-core/src/test/resources/schemas/int.yaml b/swagger/swagger-generator/generator-core/src/test/resources/schemas/int.yaml
index b3e6aaa..1fc4b15 100644
--- a/swagger/swagger-generator/generator-core/src/test/resources/schemas/int.yaml
+++ b/swagger/swagger-generator/generator-core/src/test/resources/schemas/int.yaml
@@ -37,7 +37,7 @@ paths:
schema:
$ref: "#/definitions/testintBody"
responses:
- 200:
+ "200":
description: "response of 200"
definitions:
testintBody:
diff --git a/swagger/swagger-generator/generator-core/src/test/resources/schemas/intObject.yaml b/swagger/swagger-generator/generator-core/src/test/resources/schemas/intObject.yaml
index bbf92af..ed16f26 100644
--- a/swagger/swagger-generator/generator-core/src/test/resources/schemas/intObject.yaml
+++ b/swagger/swagger-generator/generator-core/src/test/resources/schemas/intObject.yaml
@@ -37,7 +37,7 @@ paths:
schema:
$ref: "#/definitions/testIntegerBody"
responses:
- 200:
+ "200":
description: "response of 200"
definitions:
testIntegerBody:
diff --git a/swagger/swagger-generator/generator-core/src/test/resources/schemas/list.yaml b/swagger/swagger-generator/generator-core/src/test/resources/schemas/list.yaml
index 8266177..c894e8b 100644
--- a/swagger/swagger-generator/generator-core/src/test/resources/schemas/list.yaml
+++ b/swagger/swagger-generator/generator-core/src/test/resources/schemas/list.yaml
@@ -37,7 +37,7 @@ paths:
schema:
$ref: "#/definitions/testListBody"
responses:
- 200:
+ "200":
description: "response of 200"
definitions:
User:
diff --git a/swagger/swagger-generator/generator-core/src/test/resources/schemas/long.yaml b/swagger/swagger-generator/generator-core/src/test/resources/schemas/long.yaml
index c5e6c1b..1de9207 100644
--- a/swagger/swagger-generator/generator-core/src/test/resources/schemas/long.yaml
+++ b/swagger/swagger-generator/generator-core/src/test/resources/schemas/long.yaml
@@ -37,7 +37,7 @@ paths:
schema:
$ref: "#/definitions/testlongBody"
responses:
- 200:
+ "200":
description: "response of 200"
definitions:
testlongBody:
diff --git a/swagger/swagger-generator/generator-core/src/test/resources/schemas/longObject.yaml b/swagger/swagger-generator/generator-core/src/test/resources/schemas/longObject.yaml
index a3c8c7e..eeb67d3 100644
--- a/swagger/swagger-generator/generator-core/src/test/resources/schemas/longObject.yaml
+++ b/swagger/swagger-generator/generator-core/src/test/resources/schemas/longObject.yaml
@@ -37,7 +37,7 @@ paths:
schema:
$ref: "#/definitions/testLongBody"
responses:
- 200:
+ "200":
description: "response of 200"
definitions:
testLongBody:
diff --git a/swagger/swagger-generator/generator-core/src/test/resources/schemas/map.yaml b/swagger/swagger-generator/generator-core/src/test/resources/schemas/map.yaml
index 229c90f..cd7f812 100644
--- a/swagger/swagger-generator/generator-core/src/test/resources/schemas/map.yaml
+++ b/swagger/swagger-generator/generator-core/src/test/resources/schemas/map.yaml
@@ -37,7 +37,7 @@ paths:
schema:
$ref: "#/definitions/testMapBody"
responses:
- 200:
+ "200":
description: "response of 200"
definitions:
User:
diff --git a/swagger/swagger-generator/generator-core/src/test/resources/schemas/mapList.yaml b/swagger/swagger-generator/generator-core/src/test/resources/schemas/mapList.yaml
index a5cecd7..c94873c 100644
--- a/swagger/swagger-generator/generator-core/src/test/resources/schemas/mapList.yaml
+++ b/swagger/swagger-generator/generator-core/src/test/resources/schemas/mapList.yaml
@@ -37,7 +37,7 @@ paths:
schema:
$ref: "#/definitions/testMapListBody"
responses:
- 200:
+ "200":
description: "response of 200"
definitions:
User:
diff --git a/swagger/swagger-generator/generator-core/src/test/resources/schemas/multiParam.yaml b/swagger/swagger-generator/generator-core/src/test/resources/schemas/multiParam.yaml
index fe39c2d..3f80849 100644
--- a/swagger/swagger-generator/generator-core/src/test/resources/schemas/multiParam.yaml
+++ b/swagger/swagger-generator/generator-core/src/test/resources/schemas/multiParam.yaml
@@ -37,7 +37,7 @@ paths:
schema:
$ref: "#/definitions/testMultiParamBody"
responses:
- 200:
+ "200":
description: "response of 200"
schema:
type: "array"
diff --git a/swagger/swagger-generator/generator-core/src/test/resources/schemas/object.yaml b/swagger/swagger-generator/generator-core/src/test/resources/schemas/object.yaml
index 9cff4cd..0679237 100644
--- a/swagger/swagger-generator/generator-core/src/test/resources/schemas/object.yaml
+++ b/swagger/swagger-generator/generator-core/src/test/resources/schemas/object.yaml
@@ -37,7 +37,7 @@ paths:
schema:
$ref: "#/definitions/User"
responses:
- 200:
+ "200":
description: "response of 200"
definitions:
User:
diff --git a/swagger/swagger-generator/generator-core/src/test/resources/schemas/responseHeader.yaml b/swagger/swagger-generator/generator-core/src/test/resources/schemas/responseHeader.yaml
index 061f81d..bbefa65 100644
--- a/swagger/swagger-generator/generator-core/src/test/resources/schemas/responseHeader.yaml
+++ b/swagger/swagger-generator/generator-core/src/test/resources/schemas/responseHeader.yaml
@@ -32,7 +32,7 @@ paths:
operationId: "testResponseHeader"
parameters: []
responses:
- 200:
+ "200":
description: "response of 200"
headers:
h:
diff --git a/swagger/swagger-generator/generator-core/src/test/resources/schemas/set.yaml b/swagger/swagger-generator/generator-core/src/test/resources/schemas/set.yaml
index a3c585a..aec0806 100644
--- a/swagger/swagger-generator/generator-core/src/test/resources/schemas/set.yaml
+++ b/swagger/swagger-generator/generator-core/src/test/resources/schemas/set.yaml
@@ -37,7 +37,7 @@ paths:
schema:
$ref: "#/definitions/testSetBody"
responses:
- 200:
+ "200":
description: "response of 200"
definitions:
testSetBody:
diff --git a/swagger/swagger-generator/generator-core/src/test/resources/schemas/short.yaml b/swagger/swagger-generator/generator-core/src/test/resources/schemas/short.yaml
index 5832aa5..5c07dc5 100644
--- a/swagger/swagger-generator/generator-core/src/test/resources/schemas/short.yaml
+++ b/swagger/swagger-generator/generator-core/src/test/resources/schemas/short.yaml
@@ -37,7 +37,7 @@ paths:
schema:
$ref: "#/definitions/testshortBody"
responses:
- 200:
+ "200":
description: "response of 200"
definitions:
testshortBody:
diff --git a/swagger/swagger-generator/generator-core/src/test/resources/schemas/shortObject.yaml b/swagger/swagger-generator/generator-core/src/test/resources/schemas/shortObject.yaml
index b7d0ce7..b24bc53 100644
--- a/swagger/swagger-generator/generator-core/src/test/resources/schemas/shortObject.yaml
+++ b/swagger/swagger-generator/generator-core/src/test/resources/schemas/shortObject.yaml
@@ -37,7 +37,7 @@ paths:
schema:
$ref: "#/definitions/testShortBody"
responses:
- 200:
+ "200":
description: "response of 200"
definitions:
testShortBody:
diff --git a/swagger/swagger-generator/generator-core/src/test/resources/schemas/string.yaml b/swagger/swagger-generator/generator-core/src/test/resources/schemas/string.yaml
index b7d10f3..3b0ce3d 100644
--- a/swagger/swagger-generator/generator-core/src/test/resources/schemas/string.yaml
+++ b/swagger/swagger-generator/generator-core/src/test/resources/schemas/string.yaml
@@ -37,7 +37,7 @@ paths:
schema:
$ref: "#/definitions/testStringBody"
responses:
- 200:
+ "200":
description: "response of 200"
definitions:
testStringBody:
diff --git a/swagger/swagger-generator/generator-core/src/test/resources/schemas/testCompletableFutureOptional.yaml b/swagger/swagger-generator/generator-core/src/test/resources/schemas/testCompletableFutureOptional.yaml
index 731cbc7..e6a8e0f 100644
--- a/swagger/swagger-generator/generator-core/src/test/resources/schemas/testCompletableFutureOptional.yaml
+++ b/swagger/swagger-generator/generator-core/src/test/resources/schemas/testCompletableFutureOptional.yaml
@@ -32,7 +32,7 @@ paths:
operationId: "testCompletableFutureOptional"
parameters: []
responses:
- 200:
+ "200":
description: "response of 200"
schema:
type: "string"
diff --git a/swagger/swagger-generator/generator-core/src/test/resources/schemas/testOptional.yaml b/swagger/swagger-generator/generator-core/src/test/resources/schemas/testOptional.yaml
index c1afc4c..8778e96 100644
--- a/swagger/swagger-generator/generator-core/src/test/resources/schemas/testOptional.yaml
+++ b/swagger/swagger-generator/generator-core/src/test/resources/schemas/testOptional.yaml
@@ -32,7 +32,7 @@ paths:
operationId: "testOptional"
parameters: []
responses:
- 200:
+ "200":
description: "response of 200"
schema:
type: "string"
diff --git a/swagger/swagger-generator/generator-core/src/test/resources/swagger1.yaml b/swagger/swagger-generator/generator-core/src/test/resources/swagger1.yaml
index 14d10c4..ef32763 100644
--- a/swagger/swagger-generator/generator-core/src/test/resources/swagger1.yaml
+++ b/swagger/swagger-generator/generator-core/src/test/resources/swagger1.yaml
@@ -33,7 +33,7 @@ paths:
required: true
type: string
responses:
- 200:
+ "200":
description: say hello
schema:
type: string
\ No newline at end of file
diff --git a/swagger/swagger-generator/generator-core/src/test/resources/swagger2.yaml b/swagger/swagger-generator/generator-core/src/test/resources/swagger2.yaml
index 5f2f23f..329ec35 100644
--- a/swagger/swagger-generator/generator-core/src/test/resources/swagger2.yaml
+++ b/swagger/swagger-generator/generator-core/src/test/resources/swagger2.yaml
@@ -34,7 +34,7 @@ paths:
schema:
type: string
responses:
- 200:
+ "200":
description: say hello
schema:
type: string
\ No newline at end of file
diff --git a/swagger/swagger-generator/generator-jaxrs/src/test/resources/schemas/cookie.yaml b/swagger/swagger-generator/generator-jaxrs/src/test/resources/schemas/cookie.yaml
index 13c4e1d..896793e 100644
--- a/swagger/swagger-generator/generator-jaxrs/src/test/resources/schemas/cookie.yaml
+++ b/swagger/swagger-generator/generator-jaxrs/src/test/resources/schemas/cookie.yaml
@@ -36,7 +36,7 @@ paths:
required: false
type: "string"
responses:
- 200:
+ "200":
description: "response of 200"
schema:
type: "string"
diff --git a/swagger/swagger-generator/generator-jaxrs/src/test/resources/schemas/echo.yaml b/swagger/swagger-generator/generator-jaxrs/src/test/resources/schemas/echo.yaml
index e6e943c..3849665 100644
--- a/swagger/swagger-generator/generator-jaxrs/src/test/resources/schemas/echo.yaml
+++ b/swagger/swagger-generator/generator-jaxrs/src/test/resources/schemas/echo.yaml
@@ -55,7 +55,7 @@ paths:
required: false
type: "string"
responses:
- 200:
+ "200":
description: "response of 200"
schema:
type: "string"
diff --git a/swagger/swagger-generator/generator-jaxrs/src/test/resources/schemas/emptyPath.yaml b/swagger/swagger-generator/generator-jaxrs/src/test/resources/schemas/emptyPath.yaml
index ed7dd88..f76bd99 100644
--- a/swagger/swagger-generator/generator-jaxrs/src/test/resources/schemas/emptyPath.yaml
+++ b/swagger/swagger-generator/generator-jaxrs/src/test/resources/schemas/emptyPath.yaml
@@ -32,5 +32,5 @@ paths:
operationId: "emptyPath"
parameters: []
responses:
- 200:
+ "200":
description: "response of 200"
diff --git a/swagger/swagger-generator/generator-jaxrs/src/test/resources/schemas/enumBody.yaml b/swagger/swagger-generator/generator-jaxrs/src/test/resources/schemas/enumBody.yaml
index 65c4731..b5b78b0 100644
--- a/swagger/swagger-generator/generator-jaxrs/src/test/resources/schemas/enumBody.yaml
+++ b/swagger/swagger-generator/generator-jaxrs/src/test/resources/schemas/enumBody.yaml
@@ -41,5 +41,5 @@ paths:
- "YELLOW"
- "BLUE"
responses:
- 200:
+ "200":
description: "response of 200"
diff --git a/swagger/swagger-generator/generator-jaxrs/src/test/resources/schemas/form.yaml b/swagger/swagger-generator/generator-jaxrs/src/test/resources/schemas/form.yaml
index 46d7c82..911269c 100644
--- a/swagger/swagger-generator/generator-jaxrs/src/test/resources/schemas/form.yaml
+++ b/swagger/swagger-generator/generator-jaxrs/src/test/resources/schemas/form.yaml
@@ -36,7 +36,7 @@ paths:
required: false
type: "string"
responses:
- 200:
+ "200":
description: "response of 200"
schema:
type: "string"
diff --git a/swagger/swagger-generator/generator-jaxrs/src/test/resources/schemas/query.yaml b/swagger/swagger-generator/generator-jaxrs/src/test/resources/schemas/query.yaml
index 78b36ea..be256d1 100644
--- a/swagger/swagger-generator/generator-jaxrs/src/test/resources/schemas/query.yaml
+++ b/swagger/swagger-generator/generator-jaxrs/src/test/resources/schemas/query.yaml
@@ -36,7 +36,7 @@ paths:
required: false
type: "string"
responses:
- 200:
+ "200":
description: "response of 200"
schema:
type: "string"
diff --git a/swagger/swagger-generator/generator-jaxrs/src/test/resources/schemas/rawJsonStringMethod.yaml b/swagger/swagger-generator/generator-jaxrs/src/test/resources/schemas/rawJsonStringMethod.yaml
index 27f968f..a482f6c 100644
--- a/swagger/swagger-generator/generator-jaxrs/src/test/resources/schemas/rawJsonStringMethod.yaml
+++ b/swagger/swagger-generator/generator-jaxrs/src/test/resources/schemas/rawJsonStringMethod.yaml
@@ -38,5 +38,5 @@ paths:
type: "string"
x-raw-json: true
responses:
- 200:
+ "200":
description: "response of 200"
diff --git a/swagger/swagger-generator/generator-jaxrs/src/test/resources/schemas/response.yaml b/swagger/swagger-generator/generator-jaxrs/src/test/resources/schemas/response.yaml
index 01398bf..b4db5ae 100644
--- a/swagger/swagger-generator/generator-jaxrs/src/test/resources/schemas/response.yaml
+++ b/swagger/swagger-generator/generator-jaxrs/src/test/resources/schemas/response.yaml
@@ -32,7 +32,7 @@ paths:
operationId: "response"
parameters: []
responses:
- 200:
+ "200":
description: "response of 200"
schema:
type: "integer"
diff --git a/swagger/swagger-generator/generator-springmvc/src/test/resources/schemas/MethodEmptyPath.yaml b/swagger/swagger-generator/generator-springmvc/src/test/resources/schemas/MethodEmptyPath.yaml
index cab4658..958dc7d 100644
--- a/swagger/swagger-generator/generator-springmvc/src/test/resources/schemas/MethodEmptyPath.yaml
+++ b/swagger/swagger-generator/generator-springmvc/src/test/resources/schemas/MethodEmptyPath.yaml
@@ -32,29 +32,29 @@ paths:
operationId: "usingGetMapping"
parameters: []
responses:
- 200:
+ "200":
description: "response of 200"
post:
operationId: "usingPostMapping"
parameters: []
responses:
- 200:
+ "200":
description: "response of 200"
put:
operationId: "usingPutMapping"
parameters: []
responses:
- 200:
+ "200":
description: "response of 200"
delete:
operationId: "usingDeleteMapping"
parameters: []
responses:
- 200:
+ "200":
description: "response of 200"
patch:
operationId: "usingPatchMapping"
parameters: []
responses:
- 200:
+ "200":
description: "response of 200"
diff --git a/swagger/swagger-generator/generator-springmvc/src/test/resources/schemas/asyncResponseEntity.yaml b/swagger/swagger-generator/generator-springmvc/src/test/resources/schemas/asyncResponseEntity.yaml
index 05c2848..cb3125f 100644
--- a/swagger/swagger-generator/generator-springmvc/src/test/resources/schemas/asyncResponseEntity.yaml
+++ b/swagger/swagger-generator/generator-springmvc/src/test/resources/schemas/asyncResponseEntity.yaml
@@ -34,7 +34,7 @@ paths:
operationId: "asyncResponseEntity"
parameters: []
responses:
- 200:
+ "200":
description: "response of 200"
schema:
type: "array"
diff --git a/swagger/swagger-generator/generator-springmvc/src/test/resources/schemas/defaultParameter.yaml b/swagger/swagger-generator/generator-springmvc/src/test/resources/schemas/defaultParameter.yaml
index b793167..f8f4de1 100644
--- a/swagger/swagger-generator/generator-springmvc/src/test/resources/schemas/defaultParameter.yaml
+++ b/swagger/swagger-generator/generator-springmvc/src/test/resources/schemas/defaultParameter.yaml
@@ -37,7 +37,7 @@ paths:
type: "integer"
format: "int32"
responses:
- 200:
+ "200":
description: "response of 200"
/usingGetMapping:
get:
@@ -49,7 +49,7 @@ paths:
type: "integer"
format: "int32"
responses:
- 200:
+ "200":
description: "response of 200"
/usingPatchMapping:
patch:
@@ -61,7 +61,7 @@ paths:
type: "integer"
format: "int32"
responses:
- 200:
+ "200":
description: "response of 200"
/usingPostMapping:
post:
@@ -73,7 +73,7 @@ paths:
type: "integer"
format: "int32"
responses:
- 200:
+ "200":
description: "response of 200"
/usingPutMapping:
put:
@@ -85,7 +85,7 @@ paths:
type: "integer"
format: "int32"
responses:
- 200:
+ "200":
description: "response of 200"
/usingRequestMapping:
put:
@@ -97,5 +97,5 @@ paths:
type: "integer"
format: "int32"
responses:
- 200:
+ "200":
description: "response of 200"
diff --git a/swagger/swagger-generator/generator-springmvc/src/test/resources/schemas/emptyPath.yaml b/swagger/swagger-generator/generator-springmvc/src/test/resources/schemas/emptyPath.yaml
index 6b76052..7b292cb 100644
--- a/swagger/swagger-generator/generator-springmvc/src/test/resources/schemas/emptyPath.yaml
+++ b/swagger/swagger-generator/generator-springmvc/src/test/resources/schemas/emptyPath.yaml
@@ -34,5 +34,5 @@ paths:
operationId: "emptyPath"
parameters: []
responses:
- 200:
+ "200":
description: "response of 200"
diff --git a/swagger/swagger-generator/generator-springmvc/src/test/resources/schemas/enumBody.yaml b/swagger/swagger-generator/generator-springmvc/src/test/resources/schemas/enumBody.yaml
index b7e877b..449ac41 100644
--- a/swagger/swagger-generator/generator-springmvc/src/test/resources/schemas/enumBody.yaml
+++ b/swagger/swagger-generator/generator-springmvc/src/test/resources/schemas/enumBody.yaml
@@ -43,5 +43,5 @@ paths:
- "YELLOW"
- "BLUE"
responses:
- 200:
+ "200":
description: "response of 200"
diff --git a/swagger/swagger-generator/generator-springmvc/src/test/resources/schemas/inheritHttpMethod.yaml b/swagger/swagger-generator/generator-springmvc/src/test/resources/schemas/inheritHttpMethod.yaml
index 86f5c57..69f8051 100644
--- a/swagger/swagger-generator/generator-springmvc/src/test/resources/schemas/inheritHttpMethod.yaml
+++ b/swagger/swagger-generator/generator-springmvc/src/test/resources/schemas/inheritHttpMethod.yaml
@@ -39,5 +39,5 @@ paths:
type: "integer"
format: "int32"
responses:
- 200:
+ "200":
description: "response of 200"
diff --git a/swagger/swagger-generator/generator-springmvc/src/test/resources/schemas/mixupAnnotations.yaml b/swagger/swagger-generator/generator-springmvc/src/test/resources/schemas/mixupAnnotations.yaml
index 3b5fe1d..ae7adc8 100644
--- a/swagger/swagger-generator/generator-springmvc/src/test/resources/schemas/mixupAnnotations.yaml
+++ b/swagger/swagger-generator/generator-springmvc/src/test/resources/schemas/mixupAnnotations.yaml
@@ -59,7 +59,7 @@ paths:
required: true
type: "string"
responses:
- 200:
+ "200":
description: "response of 200"
schema:
type: "string"
@@ -95,7 +95,7 @@ paths:
required: true
type: "string"
responses:
- 200:
+ "200":
description: "response of 200"
schema:
type: "string"
@@ -131,7 +131,7 @@ paths:
required: true
type: "string"
responses:
- 200:
+ "200":
description: "response of 200"
schema:
type: "string"
@@ -167,7 +167,7 @@ paths:
required: true
type: "string"
responses:
- 200:
+ "200":
description: "response of 200"
schema:
type: "string"
@@ -203,7 +203,7 @@ paths:
required: true
type: "string"
responses:
- 200:
+ "200":
description: "response of 200"
schema:
type: "string"
@@ -239,7 +239,7 @@ paths:
required: true
type: "string"
responses:
- 200:
+ "200":
description: "response of 200"
schema:
type: "string"
diff --git a/swagger/swagger-generator/generator-springmvc/src/test/resources/schemas/rawJsonStringMethod.yaml b/swagger/swagger-generator/generator-springmvc/src/test/resources/schemas/rawJsonStringMethod.yaml
index bed74e2..94c17f0 100644
--- a/swagger/swagger-generator/generator-springmvc/src/test/resources/schemas/rawJsonStringMethod.yaml
+++ b/swagger/swagger-generator/generator-springmvc/src/test/resources/schemas/rawJsonStringMethod.yaml
@@ -40,5 +40,5 @@ paths:
type: "string"
x-raw-json: true
responses:
- 200:
+ "200":
description: "response of 200"
diff --git a/swagger/swagger-generator/generator-springmvc/src/test/resources/schemas/responseEntity.yaml b/swagger/swagger-generator/generator-springmvc/src/test/resources/schemas/responseEntity.yaml
index 455afb4..8784ffe 100644
--- a/swagger/swagger-generator/generator-springmvc/src/test/resources/schemas/responseEntity.yaml
+++ b/swagger/swagger-generator/generator-springmvc/src/test/resources/schemas/responseEntity.yaml
@@ -32,7 +32,7 @@ paths:
operationId: "usingDeleteMapping"
parameters: []
responses:
- 200:
+ "200":
description: "response of 200"
schema:
type: "array"
@@ -43,7 +43,7 @@ paths:
operationId: "usingGetMapping"
parameters: []
responses:
- 200:
+ "200":
description: "response of 200"
schema:
type: "array"
@@ -54,7 +54,7 @@ paths:
operationId: "usingPatchMapping"
parameters: []
responses:
- 200:
+ "200":
description: "response of 200"
schema:
type: "array"
@@ -65,7 +65,7 @@ paths:
operationId: "usingPostMapping"
parameters: []
responses:
- 200:
+ "200":
description: "response of 200"
schema:
type: "array"
@@ -76,7 +76,7 @@ paths:
operationId: "usingPutMapping"
parameters: []
responses:
- 200:
+ "200":
description: "response of 200"
schema:
type: "array"
@@ -87,7 +87,7 @@ paths:
operationId: "usingRequestMapping"
parameters: []
responses:
- 200:
+ "200":
description: "response of 200"
schema:
type: "array"
diff --git a/swagger/swagger-generator/generator-springmvc/src/test/resources/schemas/testCompletableFutureResponseEntityOptional.yaml b/swagger/swagger-generator/generator-springmvc/src/test/resources/schemas/testCompletableFutureResponseEntityOptional.yaml
index c1df298..d7970e1 100644
--- a/swagger/swagger-generator/generator-springmvc/src/test/resources/schemas/testCompletableFutureResponseEntityOptional.yaml
+++ b/swagger/swagger-generator/generator-springmvc/src/test/resources/schemas/testCompletableFutureResponseEntityOptional.yaml
@@ -34,7 +34,7 @@ paths:
operationId: "testCompletableFutureResponseEntityOptional"
parameters: []
responses:
- 200:
+ "200":
description: "response of 200"
schema:
type: "string"
diff --git a/swagger/swagger-generator/generator-springmvc/src/test/resources/schemas/testResponseEntityOptional.yaml b/swagger/swagger-generator/generator-springmvc/src/test/resources/schemas/testResponseEntityOptional.yaml
index bf4ae81..b31a173 100644
--- a/swagger/swagger-generator/generator-springmvc/src/test/resources/schemas/testResponseEntityOptional.yaml
+++ b/swagger/swagger-generator/generator-springmvc/src/test/resources/schemas/testResponseEntityOptional.yaml
@@ -34,7 +34,7 @@ paths:
operationId: "testResponseEntityOptional"
parameters: []
responses:
- 200:
+ "200":
description: "response of 200"
schema:
type: "string"
diff --git a/transports/transport-rest/transport-rest-client/src/test/java/org/apache/servicecomb/transport/rest/client/http/TestDefaultHttpClientFilter.java b/transports/transport-rest/transport-rest-client/src/test/java/org/apache/servicecomb/transport/rest/client/http/TestDefaultHttpClientFilter.java
index 9c0028b..f8d0a04 100644
--- a/transports/transport-rest/transport-rest-client/src/test/java/org/apache/servicecomb/transport/rest/client/http/TestDefaultHttpClientFilter.java
+++ b/transports/transport-rest/transport-rest-client/src/test/java/org/apache/servicecomb/transport/rest/client/http/TestDefaultHttpClientFilter.java
@@ -161,7 +161,7 @@ public class TestDefaultHttpClientFilter {
Assert.assertEquals(
"InvocationException: code=400;msg=CommonExceptionData [message=method null, path null, statusCode 400, reasonPhrase null, response content-type null is not supported]",
invocationException.getMessage());
- Assert.assertEquals("Unrecognized token 'abc': was expecting ('true', 'false' or 'null')\n"
+ Assert.assertEquals("Unrecognized token 'abc': was expecting (JSON String, Number, Array, Object or token 'null', 'true' or 'false')\n"
+ " at [Source: (org.apache.servicecomb.foundation.vertx.stream.BufferInputStream); line: 1, column: 7]",
invocationException.getCause().getMessage());
Assert.assertEquals(CommonExceptionData.class, invocationException.getErrorData().getClass());
@@ -209,7 +209,7 @@ public class TestDefaultHttpClientFilter {
Assert.assertEquals(
"InvocationException: code=400;msg=CommonExceptionData [message=method null, path null, statusCode 200, reasonPhrase null, response content-type null is not supported]",
invocationException.getMessage());
- Assert.assertEquals("Unrecognized token 'abc': was expecting ('true', 'false' or 'null')\n"
+ Assert.assertEquals("Unrecognized token 'abc': was expecting (JSON String, Number, Array, Object or token 'null', 'true' or 'false')\n"
+ " at [Source: (org.apache.servicecomb.foundation.vertx.stream.BufferInputStream); line: 1, column: 7]",
invocationException.getCause().getMessage());
Assert.assertEquals(CommonExceptionData.class, invocationException.getErrorData().getClass());
[servicecomb-java-chassis] 08/14: [SCB-1592]upgrade vert.x and
netty.(2)fixed interface change
Posted by li...@apache.org.
This is an automated email from the ASF dual-hosted git repository.
liubao pushed a commit to branch 1.3.x
in repository https://gitbox.apache.org/repos/asf/servicecomb-java-chassis.git
commit 52f3f6a74d2fbdc2d5ea710c43d74c4e844a2e39
Author: liubao <bi...@qq.com>
AuthorDate: Fri Nov 15 11:23:56 2019 +0800
[SCB-1592]upgrade vert.x and netty.(2)fixed interface change
---
.../demo/edge/service/EdgeDispatcher.java | 3 +-
.../service/encrypt/EncryptEdgeDispatcher.java | 3 +-
.../config/client/ConfigCenterClient.java | 44 +++++++++++----------
.../edge/core/DefaultEdgeDispatcher.java | 3 +-
.../edge/core/URLMappedEdgeDispatcher.java | 7 ++--
.../apache/servicecomb/it/edge/EdgeDispatcher.java | 3 +-
.../it/edge/encrypt/EncryptEdgeDispatcher.java | 3 +-
.../metrics/core/TestVertxMetersInitializer.java | 2 +
.../client/http/WebsocketUtils.java | 46 +++++++++++-----------
.../transport/highway/HighwayServerVerticle.java | 4 +-
.../core/http/impl/Http1xConnectionBaseEx.java | 2 +-
.../rest/client/http/TestRestClientInvocation.java | 3 +-
.../transport/rest/vertx/RestServerVerticle.java | 4 ++
.../transport/rest/vertx/VertxRestDispatcher.java | 3 +-
.../vertx/accesslog/element/impl/CookieItem.java | 10 ++---
.../rest/vertx/TestRestServerVerticle.java | 2 +
.../accesslog/element/impl/CookieItemTest.java | 22 +++++------
.../vertx/accesslog/impl/AccessLogHandlerTest.java | 10 ++---
18 files changed, 91 insertions(+), 83 deletions(-)
diff --git a/demo/demo-edge/edge-service/src/main/java/org/apache/servicecomb/demo/edge/service/EdgeDispatcher.java b/demo/demo-edge/edge-service/src/main/java/org/apache/servicecomb/demo/edge/service/EdgeDispatcher.java
index d5643d3..0eef0ba 100644
--- a/demo/demo-edge/edge-service/src/main/java/org/apache/servicecomb/demo/edge/service/EdgeDispatcher.java
+++ b/demo/demo-edge/edge-service/src/main/java/org/apache/servicecomb/demo/edge/service/EdgeDispatcher.java
@@ -25,7 +25,6 @@ import org.apache.servicecomb.edge.core.EdgeInvocation;
import io.vertx.ext.web.Router;
import io.vertx.ext.web.RoutingContext;
-import io.vertx.ext.web.handler.CookieHandler;
public class EdgeDispatcher extends AbstractEdgeDispatcher {
private CompatiblePathVersionMapper versionMapper = new CompatiblePathVersionMapper();
@@ -38,7 +37,7 @@ public class EdgeDispatcher extends AbstractEdgeDispatcher {
@Override
public void init(Router router) {
String regex = "/api/([^\\\\/]+)/([^\\\\/]+)/(.*)";
- router.routeWithRegex(regex).handler(CookieHandler.create());
+ // cookies handler are enabled by default start from 3.8.3
router.routeWithRegex(regex).handler(createBodyHandler());
router.routeWithRegex(regex).failureHandler(this::onFailure).handler(this::onRequest);
}
diff --git a/demo/demo-edge/edge-service/src/main/java/org/apache/servicecomb/demo/edge/service/encrypt/EncryptEdgeDispatcher.java b/demo/demo-edge/edge-service/src/main/java/org/apache/servicecomb/demo/edge/service/encrypt/EncryptEdgeDispatcher.java
index 5c8a9a5..c4900a6 100644
--- a/demo/demo-edge/edge-service/src/main/java/org/apache/servicecomb/demo/edge/service/encrypt/EncryptEdgeDispatcher.java
+++ b/demo/demo-edge/edge-service/src/main/java/org/apache/servicecomb/demo/edge/service/encrypt/EncryptEdgeDispatcher.java
@@ -30,7 +30,6 @@ import org.slf4j.LoggerFactory;
import io.vertx.core.http.HttpServerRequest;
import io.vertx.ext.web.Router;
import io.vertx.ext.web.RoutingContext;
-import io.vertx.ext.web.handler.CookieHandler;
public class EncryptEdgeDispatcher extends AbstractEdgeDispatcher {
private static final Logger LOGGER = LoggerFactory.getLogger(EncryptEdgeDispatcher.class);
@@ -50,7 +49,7 @@ public class EncryptEdgeDispatcher extends AbstractEdgeDispatcher {
public void init(Router router) {
{
String regex = "/" + prefix + "/([^\\\\/]+)/([^\\\\/]+)/(.*)";
- router.routeWithRegex(regex).handler(CookieHandler.create());
+ // cookies handler are enabled by default start from 3.8.3
router.routeWithRegex(regex).handler(createBodyHandler());
router.routeWithRegex(regex).failureHandler(this::onFailure).handler(this::onRequest);
}
diff --git a/dynamic-config/config-cc/src/main/java/org/apache/servicecomb/config/client/ConfigCenterClient.java b/dynamic-config/config-cc/src/main/java/org/apache/servicecomb/config/client/ConfigCenterClient.java
index ac0f88a..8ad91bd 100644
--- a/dynamic-config/config-cc/src/main/java/org/apache/servicecomb/config/client/ConfigCenterClient.java
+++ b/dynamic-config/config-cc/src/main/java/org/apache/servicecomb/config/client/ConfigCenterClient.java
@@ -70,6 +70,7 @@ import io.vertx.core.http.CaseInsensitiveHeaders;
import io.vertx.core.http.HttpClientOptions;
import io.vertx.core.http.HttpClientRequest;
import io.vertx.core.http.WebSocket;
+import io.vertx.core.http.WebSocketConnectOptions;
import io.vertx.core.http.impl.FrameType;
import io.vertx.core.http.impl.ws.WebSocketFrameImpl;
import io.vertx.core.net.ProxyOptions;
@@ -285,28 +286,35 @@ public class ConfigCenterClient {
Map<String, String> authHeaders = new HashMap<>();
authHeaderProviders.forEach(provider -> authHeaders.putAll(provider.getSignAuthHeaders(
createSignRequest(null, configCenter + url, headers, null))));
-
- client.websocket(refreshPort,
- ipPort.getHostOrIp(),
- url,
- new CaseInsensitiveHeaders().addAll(headers)
- .addAll(authHeaders),
- ws -> {
- ws.exceptionHandler(e -> {
+ WebSocketConnectOptions options = new WebSocketConnectOptions();
+ options.setHost(ipPort.getHostOrIp()).setPort(refreshPort).setURI(url)
+ .setHeaders(new CaseInsensitiveHeaders().addAll(headers)
+ .addAll(authHeaders));
+ client.webSocket(options, asyncResult -> {
+ if (asyncResult.failed()) {
+ LOGGER.error(
+ "watcher connect to config center {} refresh port {} failed. Error message is [{}]",
+ configCenter,
+ refreshPort,
+ asyncResult.cause().getMessage());
+ waiter.countDown();
+ } else {
+ {
+ asyncResult.result().exceptionHandler(e -> {
LOGGER.error("watch config read fail", e);
stopHeartBeatThread();
isWatching = false;
});
- ws.closeHandler(v -> {
+ asyncResult.result().closeHandler(v -> {
LOGGER.warn("watching config connection is closed accidentally");
stopHeartBeatThread();
isWatching = false;
});
- ws.pongHandler(pong -> {
+ asyncResult.result().pongHandler(pong -> {
// ignore, just prevent NPE.
});
- ws.frameHandler(frame -> {
+ asyncResult.result().frameHandler(frame -> {
Buffer action = frame.binaryData();
LOGGER.info("watching config recieved {}", action);
Map<String, Object> mAction = action.toJsonObject().getMap();
@@ -319,18 +327,12 @@ public class ConfigCenterClient {
parseConfigUtils.refreshConfigItemsIncremental(mAction);
}
});
- startHeartBeatThread(ws);
+ startHeartBeatThread(asyncResult.result());
isWatching = true;
waiter.countDown();
- },
- e -> {
- LOGGER.error(
- "watcher connect to config center {} refresh port {} failed. Error message is [{}]",
- configCenter,
- refreshPort,
- e.getMessage());
- waiter.countDown();
- });
+ }
+ }
+ });
});
waiter.await();
}
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 b6eadfe..0d195c6 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
@@ -23,7 +23,6 @@ import com.netflix.config.DynamicPropertyFactory;
import io.vertx.ext.web.Router;
import io.vertx.ext.web.RoutingContext;
-import io.vertx.ext.web.handler.CookieHandler;
/**
* Provide an easy mapping dispatcher that starts with a common prefix pattern.
@@ -66,7 +65,7 @@ public class DefaultEdgeDispatcher extends AbstractEdgeDispatcher {
} else {
regex = "/" + prefix + "/([^\\\\/]+)/(.*)";
}
- router.routeWithRegex(regex).handler(CookieHandler.create());
+ // cookies handler are enabled by default start from 3.8.3
router.routeWithRegex(regex).handler(createBodyHandler());
router.routeWithRegex(regex).failureHandler(this::onFailure).handler(this::onRequest);
}
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 fe30068..c734b40 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
@@ -31,7 +31,6 @@ import com.netflix.config.DynamicPropertyFactory;
import io.vertx.ext.web.Router;
import io.vertx.ext.web.RoutingContext;
-import io.vertx.ext.web.handler.CookieHandler;
/**
* Provide a URL mapping based dispatcher. Users configure witch URL patterns dispatch to a target service.
@@ -68,7 +67,7 @@ public class URLMappedEdgeDispatcher extends AbstractEdgeDispatcher {
private Map<String, ConfigurationItem> configurations = new HashMap<>();
public URLMappedEdgeDispatcher() {
- if(this.enabled()) {
+ if (this.enabled()) {
loadConfigurations();
}
}
@@ -85,7 +84,7 @@ public class URLMappedEdgeDispatcher extends AbstractEdgeDispatcher {
@Override
public void init(Router router) {
- router.routeWithRegex(PATTERN_ANY).handler(CookieHandler.create());
+ // cookies handler are enabled by default start from 3.8.3
router.routeWithRegex(PATTERN_ANY).handler(createBodyHandler());
router.routeWithRegex(PATTERN_ANY).failureHandler(this::onFailure).handler(this::onRequest);
}
@@ -138,7 +137,7 @@ public class URLMappedEdgeDispatcher extends AbstractEdgeDispatcher {
configurations.entrySet().forEach(stringConfigurationItemEntry -> {
ConfigurationItem item = stringConfigurationItemEntry.getValue();
LOG.info("config item: key=" + stringConfigurationItemEntry.getKey() + ";pattern=" + item.stringPattern
- + ";service=" + item.microserviceName + ";versionRule=" + item.versionRule);
+ + ";service=" + item.microserviceName + ";versionRule=" + item.versionRule);
});
}
diff --git a/integration-tests/it-edge/src/main/java/org/apache/servicecomb/it/edge/EdgeDispatcher.java b/integration-tests/it-edge/src/main/java/org/apache/servicecomb/it/edge/EdgeDispatcher.java
index 7770c7c..4afda81 100644
--- a/integration-tests/it-edge/src/main/java/org/apache/servicecomb/it/edge/EdgeDispatcher.java
+++ b/integration-tests/it-edge/src/main/java/org/apache/servicecomb/it/edge/EdgeDispatcher.java
@@ -25,7 +25,6 @@ import org.apache.servicecomb.edge.core.EdgeInvocation;
import io.vertx.ext.web.Router;
import io.vertx.ext.web.RoutingContext;
-import io.vertx.ext.web.handler.CookieHandler;
public class EdgeDispatcher extends AbstractEdgeDispatcher {
private CompatiblePathVersionMapper versionMapper = new CompatiblePathVersionMapper();
@@ -38,7 +37,7 @@ public class EdgeDispatcher extends AbstractEdgeDispatcher {
@Override
public void init(Router router) {
String regex = "/api/([^\\\\/]+)/([^\\\\/]+)/(.*)";
- router.routeWithRegex(regex).handler(CookieHandler.create());
+ // cookies handler are enabled by default start from 3.8.3
router.routeWithRegex(regex).handler(createBodyHandler());
router.routeWithRegex(regex).failureHandler(this::onFailure).handler(this::onRequest);
}
diff --git a/integration-tests/it-edge/src/main/java/org/apache/servicecomb/it/edge/encrypt/EncryptEdgeDispatcher.java b/integration-tests/it-edge/src/main/java/org/apache/servicecomb/it/edge/encrypt/EncryptEdgeDispatcher.java
index 6c2bca7..7b48f04 100644
--- a/integration-tests/it-edge/src/main/java/org/apache/servicecomb/it/edge/encrypt/EncryptEdgeDispatcher.java
+++ b/integration-tests/it-edge/src/main/java/org/apache/servicecomb/it/edge/encrypt/EncryptEdgeDispatcher.java
@@ -30,7 +30,6 @@ import org.slf4j.LoggerFactory;
import io.vertx.core.http.HttpServerRequest;
import io.vertx.ext.web.Router;
import io.vertx.ext.web.RoutingContext;
-import io.vertx.ext.web.handler.CookieHandler;
public class EncryptEdgeDispatcher extends AbstractEdgeDispatcher {
private static final Logger LOGGER = LoggerFactory.getLogger(EncryptEdgeDispatcher.class);
@@ -50,7 +49,7 @@ public class EncryptEdgeDispatcher extends AbstractEdgeDispatcher {
public void init(Router router) {
{
String regex = "/" + prefix + "/([^\\\\/]+)/([^\\\\/]+)/(.*)";
- router.routeWithRegex(regex).handler(CookieHandler.create());
+ // cookies handler are enabled by default start from 3.8.3
router.routeWithRegex(regex).handler(createBodyHandler());
router.routeWithRegex(regex).failureHandler(this::onFailure).handler(this::onRequest);
}
diff --git a/metrics/metrics-core/src/test/java/org/apache/servicecomb/metrics/core/TestVertxMetersInitializer.java b/metrics/metrics-core/src/test/java/org/apache/servicecomb/metrics/core/TestVertxMetersInitializer.java
index 536cc47..17850ff 100644
--- a/metrics/metrics-core/src/test/java/org/apache/servicecomb/metrics/core/TestVertxMetersInitializer.java
+++ b/metrics/metrics-core/src/test/java/org/apache/servicecomb/metrics/core/TestVertxMetersInitializer.java
@@ -67,6 +67,8 @@ public class TestVertxMetersInitializer {
public static class TestServerVerticle extends AbstractVerticle {
@Override
+ @SuppressWarnings("deprecation")
+ // TODO: vert.x 3.8.3 does not update startListen to promise, so we keep use deprecated API now. update in newer version.
public void start(Future<Void> startFuture) {
Router mainRouter = Router.router(vertx);
mainRouter.route("/").handler(context -> {
diff --git a/service-registry/src/main/java/org/apache/servicecomb/serviceregistry/client/http/WebsocketUtils.java b/service-registry/src/main/java/org/apache/servicecomb/serviceregistry/client/http/WebsocketUtils.java
index 39db844..1536058 100644
--- a/service-registry/src/main/java/org/apache/servicecomb/serviceregistry/client/http/WebsocketUtils.java
+++ b/service-registry/src/main/java/org/apache/servicecomb/serviceregistry/client/http/WebsocketUtils.java
@@ -27,6 +27,7 @@ import org.slf4j.LoggerFactory;
import io.vertx.core.Handler;
import io.vertx.core.buffer.Buffer;
import io.vertx.core.http.HttpMethod;
+import io.vertx.core.http.WebSocketConnectOptions;
/**
* Created by on 2017/4/28.
@@ -42,28 +43,29 @@ public final class WebsocketUtils {
Handler<Throwable> onConnectFailed) {
HttpClientWithContext vertxHttpClient = WebsocketClientPool.INSTANCE.getClient();
vertxHttpClient.runOnContext(client -> {
- client.websocket(ipPort.getPort(),
- ipPort.getHostOrIp(),
- url,
- RestUtils.getDefaultHeaders().addAll(RestUtils.getSignAuthHeaders(
- RestUtils.createSignRequest(HttpMethod.GET.name(), ipPort, new RequestParam(), url, new HashMap<>()))),
- ws -> {
- onOpen.handle(null);
-
- ws.exceptionHandler(v -> {
- onException.handle(v);
- try {
- ws.close();
- } catch (Exception err) {
- LOGGER.error("ws close error.", err);
- }
- });
- ws.closeHandler(v -> {
- onClose.handle(v);
- });
- ws.handler(onMessage);
- },
- onConnectFailed);
+ WebSocketConnectOptions options = new WebSocketConnectOptions();
+ options.setHost(ipPort.getHostOrIp()).setPort(ipPort.getPort()).setURI(url)
+ .setHeaders(RestUtils.getDefaultHeaders().addAll(RestUtils.getSignAuthHeaders(
+ RestUtils.createSignRequest(HttpMethod.GET.name(), ipPort, new RequestParam(), url, new HashMap<>()))));
+ client.webSocket(options, asyncResult -> {
+ if (asyncResult.failed()) {
+ onConnectFailed.handle(asyncResult.cause());
+ } else {
+ onOpen.handle(null);
+ asyncResult.result().exceptionHandler(v -> {
+ onException.handle(v);
+ try {
+ asyncResult.result().close();
+ } catch (Exception err) {
+ LOGGER.error("ws close error.", err);
+ }
+ });
+ asyncResult.result().closeHandler(v -> {
+ onClose.handle(v);
+ });
+ asyncResult.result().handler(onMessage);
+ }
+ });
});
}
}
diff --git a/transports/transport-highway/src/main/java/org/apache/servicecomb/transport/highway/HighwayServerVerticle.java b/transports/transport-highway/src/main/java/org/apache/servicecomb/transport/highway/HighwayServerVerticle.java
index 3d6efc4..8104ecc 100644
--- a/transports/transport-highway/src/main/java/org/apache/servicecomb/transport/highway/HighwayServerVerticle.java
+++ b/transports/transport-highway/src/main/java/org/apache/servicecomb/transport/highway/HighwayServerVerticle.java
@@ -59,8 +59,10 @@ public class HighwayServerVerticle extends AbstractVerticle {
}
}
+ @SuppressWarnings("deprecation")
+ // TODO: vert.x 3.8.3 does not update startListen to promise, so we keep use deprecated API now. update in newer version.
protected void startListen(Future<Void> startFuture) {
- // 如果本地未配置地址,则表示不必监听,只需要作为客户端使用即可
+ // if listen address is not provided, do not fail and maybe a consumer service.
if (endpointObject == null) {
LOGGER.warn("highway listen address is not configured, will not listen.");
startFuture.complete();
diff --git a/transports/transport-rest/transport-rest-client/src/test/java/io/vertx/core/http/impl/Http1xConnectionBaseEx.java b/transports/transport-rest/transport-rest-client/src/test/java/io/vertx/core/http/impl/Http1xConnectionBaseEx.java
index 524647f..09dab11 100644
--- a/transports/transport-rest/transport-rest-client/src/test/java/io/vertx/core/http/impl/Http1xConnectionBaseEx.java
+++ b/transports/transport-rest/transport-rest-client/src/test/java/io/vertx/core/http/impl/Http1xConnectionBaseEx.java
@@ -22,7 +22,7 @@ import io.vertx.core.impl.ContextInternal;
import io.vertx.core.impl.VertxInternal;
import io.vertx.core.spi.metrics.NetworkMetrics;
-public abstract class Http1xConnectionBaseEx extends Http1xConnectionBase{
+public abstract class Http1xConnectionBaseEx<S extends WebSocketImplBase<S>> extends Http1xConnectionBase<S>{
public Http1xConnectionBaseEx(VertxInternal vertx, ChannelHandlerContext chctx,
ContextInternal context) {
super(vertx, chctx, context);
diff --git a/transports/transport-rest/transport-rest-client/src/test/java/org/apache/servicecomb/transport/rest/client/http/TestRestClientInvocation.java b/transports/transport-rest/transport-rest-client/src/test/java/org/apache/servicecomb/transport/rest/client/http/TestRestClientInvocation.java
index e00c3e3..c690091 100644
--- a/transports/transport-rest/transport-rest-client/src/test/java/org/apache/servicecomb/transport/rest/client/http/TestRestClientInvocation.java
+++ b/transports/transport-rest/transport-rest-client/src/test/java/org/apache/servicecomb/transport/rest/client/http/TestRestClientInvocation.java
@@ -74,6 +74,7 @@ import io.vertx.core.http.HttpClientRequest;
import io.vertx.core.http.HttpClientResponse;
import io.vertx.core.http.RequestOptions;
import io.vertx.core.http.impl.Http1xConnectionBaseEx;
+import io.vertx.core.http.impl.WebSocketImpl;
import io.vertx.core.http.impl.headers.VertxHttpHeaders;
import io.vertx.core.net.NetSocket;
import io.vertx.core.net.SocketAddress;
@@ -128,7 +129,7 @@ public class TestRestClientInvocation {
static long nanoTime = 123;
@Mocked
- Http1xConnectionBaseEx connectionBase;
+ Http1xConnectionBaseEx<WebSocketImpl> connectionBase;
OperationConfig operationConfig = new OperationConfig();
diff --git a/transports/transport-rest/transport-rest-vertx/src/main/java/org/apache/servicecomb/transport/rest/vertx/RestServerVerticle.java b/transports/transport-rest/transport-rest-vertx/src/main/java/org/apache/servicecomb/transport/rest/vertx/RestServerVerticle.java
index a07c5a6..1047464 100644
--- a/transports/transport-rest/transport-rest-vertx/src/main/java/org/apache/servicecomb/transport/rest/vertx/RestServerVerticle.java
+++ b/transports/transport-rest/transport-rest-vertx/src/main/java/org/apache/servicecomb/transport/rest/vertx/RestServerVerticle.java
@@ -76,6 +76,8 @@ public class RestServerVerticle extends AbstractVerticle {
this.endpointObject = (URIEndpointObject) endpoint.getAddress();
}
+ @SuppressWarnings("deprecation")
+ // TODO: vert.x 3.8.3 does not update startListen to promise, so we keep use deprecated API now. update in newer version.
@Override
public void start(Future<Void> startFuture) throws Exception {
try {
@@ -212,6 +214,8 @@ public class RestServerVerticle extends AbstractVerticle {
}
}
+ @SuppressWarnings("deprecation")
+ // TODO: vert.x 3.8.3 does not update startListen to promise, so we keep use deprecated API now. update in newer version.
private void startListen(HttpServer server, Future<Void> startFuture) {
server.listen(endpointObject.getPort(), endpointObject.getHostOrIp(), ar -> {
if (ar.succeeded()) {
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 b90bc78..763a360 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
@@ -42,7 +42,6 @@ import io.netty.handler.codec.http.multipart.HttpPostRequestDecoder.ErrorDataDec
import io.vertx.core.json.JsonObject;
import io.vertx.ext.web.Router;
import io.vertx.ext.web.RoutingContext;
-import io.vertx.ext.web.handler.CookieHandler;
public class VertxRestDispatcher extends AbstractVertxHttpDispatcher {
private static final Logger LOGGER = LoggerFactory.getLogger(VertxRestDispatcher.class);
@@ -63,7 +62,7 @@ public class VertxRestDispatcher extends AbstractVertxHttpDispatcher {
@Override
public void init(Router router) {
- router.route().handler(CookieHandler.create());
+ // cookies handler are enabled by default start from 3.8.3
router.route().handler(createBodyHandler());
router.route().failureHandler(this::failureHandler).handler(this::onRequest);
}
diff --git a/transports/transport-rest/transport-rest-vertx/src/main/java/org/apache/servicecomb/transport/rest/vertx/accesslog/element/impl/CookieItem.java b/transports/transport-rest/transport-rest-vertx/src/main/java/org/apache/servicecomb/transport/rest/vertx/accesslog/element/impl/CookieItem.java
index aa20a02..331ef60 100644
--- a/transports/transport-rest/transport-rest-vertx/src/main/java/org/apache/servicecomb/transport/rest/vertx/accesslog/element/impl/CookieItem.java
+++ b/transports/transport-rest/transport-rest-vertx/src/main/java/org/apache/servicecomb/transport/rest/vertx/accesslog/element/impl/CookieItem.java
@@ -17,12 +17,12 @@
package org.apache.servicecomb.transport.rest.vertx.accesslog.element.impl;
-import java.util.Set;
+import java.util.Map;
import org.apache.servicecomb.transport.rest.vertx.accesslog.AccessLogParam;
import org.apache.servicecomb.transport.rest.vertx.accesslog.element.AccessLogItem;
-import io.vertx.ext.web.Cookie;
+import io.vertx.core.http.Cookie;
import io.vertx.ext.web.RoutingContext;
public class CookieItem implements AccessLogItem<RoutingContext> {
@@ -37,13 +37,13 @@ public class CookieItem implements AccessLogItem<RoutingContext> {
@Override
public String getFormattedItem(AccessLogParam<RoutingContext> accessLogParam) {
- Set<Cookie> cookieSet = accessLogParam.getContextData().cookies();
- if (null == cookieSet) {
+ Map<String, Cookie> cookieMap = accessLogParam.getContextData().cookieMap();
+ if (null == cookieMap) {
return RESULT_NOT_FOUND;
}
String result = null;
- for (Cookie cookie : cookieSet) {
+ for (Cookie cookie : cookieMap.values()) {
if (varName.equals(cookie.getName())) {
result = cookie.getValue();
}
diff --git a/transports/transport-rest/transport-rest-vertx/src/test/java/org/apache/servicecomb/transport/rest/vertx/TestRestServerVerticle.java b/transports/transport-rest/transport-rest-vertx/src/test/java/org/apache/servicecomb/transport/rest/vertx/TestRestServerVerticle.java
index c9846cf..5808aa5 100644
--- a/transports/transport-rest/transport-rest-vertx/src/test/java/org/apache/servicecomb/transport/rest/vertx/TestRestServerVerticle.java
+++ b/transports/transport-rest/transport-rest-vertx/src/test/java/org/apache/servicecomb/transport/rest/vertx/TestRestServerVerticle.java
@@ -61,6 +61,8 @@ public class TestRestServerVerticle {
Future<Void> startFuture = null;
@Before
+ @SuppressWarnings("deprecation")
+ // TODO: vert.x 3.8.3 does not update startListen to promise, so we keep use deprecated API now. update in newer version.
public void setUp() {
instance = new RestServerVerticle();
startFuture = Future.future();
diff --git a/transports/transport-rest/transport-rest-vertx/src/test/java/org/apache/servicecomb/transport/rest/vertx/accesslog/element/impl/CookieItemTest.java b/transports/transport-rest/transport-rest-vertx/src/test/java/org/apache/servicecomb/transport/rest/vertx/accesslog/element/impl/CookieItemTest.java
index d8977aa..68db0db 100644
--- a/transports/transport-rest/transport-rest-vertx/src/test/java/org/apache/servicecomb/transport/rest/vertx/accesslog/element/impl/CookieItemTest.java
+++ b/transports/transport-rest/transport-rest-vertx/src/test/java/org/apache/servicecomb/transport/rest/vertx/accesslog/element/impl/CookieItemTest.java
@@ -17,14 +17,14 @@
package org.apache.servicecomb.transport.rest.vertx.accesslog.element.impl;
-import java.util.HashSet;
+import java.util.HashMap;
import org.apache.servicecomb.transport.rest.vertx.accesslog.AccessLogParam;
import org.junit.Assert;
import org.junit.Test;
import org.mockito.Mockito;
-import io.vertx.ext.web.Cookie;
+import io.vertx.core.http.Cookie;
import io.vertx.ext.web.RoutingContext;
import io.vertx.ext.web.impl.CookieImpl;
@@ -38,13 +38,13 @@ public class CookieItemTest {
public void getFormattedElement() {
AccessLogParam<RoutingContext> param = new AccessLogParam<>();
RoutingContext mockContext = Mockito.mock(RoutingContext.class);
- HashSet<Cookie> cookieSet = new HashSet<>();
+ HashMap<String, Cookie> cookieSet = new HashMap<>();
String cookieValue = "cookieValue";
CookieImpl cookie = new CookieImpl(COOKIE_NAME, cookieValue);
- cookieSet.add(cookie);
+ cookieSet.put(cookie.getName(), cookie);
Mockito.when(mockContext.cookieCount()).thenReturn(1);
- Mockito.when(mockContext.cookies()).thenReturn(cookieSet);
+ Mockito.when(mockContext.cookieMap()).thenReturn(cookieSet);
param.setContextData(mockContext);
String result = ELEMENT.getFormattedItem(param);
@@ -56,10 +56,10 @@ public class CookieItemTest {
public void getFormattedElementOnCookieCountIsZero() {
AccessLogParam<RoutingContext> param = new AccessLogParam<>();
RoutingContext mockContext = Mockito.mock(RoutingContext.class);
- HashSet<Cookie> cookieSet = new HashSet<>();
+ HashMap<String, Cookie> cookieSet = new HashMap<>();
Mockito.when(mockContext.cookieCount()).thenReturn(0);
- Mockito.when(mockContext.cookies()).thenReturn(cookieSet);
+ Mockito.when(mockContext.cookieMap()).thenReturn(cookieSet);
param.setContextData(mockContext);
String result = ELEMENT.getFormattedItem(param);
@@ -73,7 +73,7 @@ public class CookieItemTest {
RoutingContext mockContext = Mockito.mock(RoutingContext.class);
Mockito.when(mockContext.cookieCount()).thenReturn(1);
- Mockito.when(mockContext.cookies()).thenReturn(null);
+ Mockito.when(mockContext.cookieMap()).thenReturn(null);
param.setContextData(mockContext);
String result = ELEMENT.getFormattedItem(param);
@@ -85,13 +85,13 @@ public class CookieItemTest {
public void getFormattedElementOnNotFound() {
AccessLogParam<RoutingContext> param = new AccessLogParam<>();
RoutingContext mockContext = Mockito.mock(RoutingContext.class);
- HashSet<Cookie> cookieSet = new HashSet<>();
+ HashMap<String, Cookie> cookieSet = new HashMap<>();
String cookieValue = "cookieValue";
CookieImpl cookie = new CookieImpl("anotherCookieName", cookieValue);
- cookieSet.add(cookie);
+ cookieSet.put(cookie.getName(), cookie);
Mockito.when(mockContext.cookieCount()).thenReturn(1);
- Mockito.when(mockContext.cookies()).thenReturn(cookieSet);
+ Mockito.when(mockContext.cookieMap()).thenReturn(cookieSet);
param.setContextData(mockContext);
String result = ELEMENT.getFormattedItem(param);
diff --git a/transports/transport-rest/transport-rest-vertx/src/test/java/org/apache/servicecomb/transport/rest/vertx/accesslog/impl/AccessLogHandlerTest.java b/transports/transport-rest/transport-rest-vertx/src/test/java/org/apache/servicecomb/transport/rest/vertx/accesslog/impl/AccessLogHandlerTest.java
index 0ef62e5..d9b788c 100644
--- a/transports/transport-rest/transport-rest-vertx/src/test/java/org/apache/servicecomb/transport/rest/vertx/accesslog/impl/AccessLogHandlerTest.java
+++ b/transports/transport-rest/transport-rest-vertx/src/test/java/org/apache/servicecomb/transport/rest/vertx/accesslog/impl/AccessLogHandlerTest.java
@@ -17,7 +17,7 @@
package org.apache.servicecomb.transport.rest.vertx.accesslog.impl;
-import java.util.HashSet;
+import java.util.HashMap;
import java.util.concurrent.TimeUnit;
import javax.xml.ws.Holder;
@@ -31,10 +31,10 @@ import org.junit.Test;
import org.mockito.Mockito;
import io.vertx.core.Handler;
+import io.vertx.core.http.Cookie;
import io.vertx.core.http.HttpServerRequest;
import io.vertx.core.http.HttpServerResponse;
import io.vertx.core.net.SocketAddress;
-import io.vertx.ext.web.Cookie;
import io.vertx.ext.web.RoutingContext;
import mockit.Mock;
import mockit.MockUp;
@@ -59,7 +59,7 @@ public class AccessLogHandlerTest {
@Test
public void testHandle() {
RoutingContext routingContext = Mockito.mock(RoutingContext.class);
- HashSet<Cookie> cookies = new HashSet<>();
+ HashMap<String, Cookie> cookies = new HashMap<>();
Cookie cookie = Mockito.mock(Cookie.class);
HttpServerResponse httpServerResponse = new MockUp<HttpServerResponse>() {
@Mock
@@ -93,10 +93,10 @@ public class AccessLogHandlerTest {
return 123L;
}
};
- cookies.add(cookie);
+ cookies.put(cookie.getName(), cookie);
Mockito.when(cookie.getName()).thenReturn("cookie-name");
Mockito.when(cookie.getValue()).thenReturn("cookie-value");
- Mockito.when(routingContext.cookies()).thenReturn(cookies);
+ Mockito.when(routingContext.cookieMap()).thenReturn(cookies);
Mockito.when(routingContext.response()).thenReturn(httpServerResponse);
Mockito.when(routingContext.request()).thenReturn(httpServerRequest);
Mockito.when(httpServerRequest.remoteAddress()).thenReturn(remoteSocketAddress);
[servicecomb-java-chassis] 10/14: [SCB-1592]upgrade vert.x and
netty.(4)update license and fix conflicts
Posted by li...@apache.org.
This is an automated email from the ASF dual-hosted git repository.
liubao pushed a commit to branch 1.3.x
in repository https://gitbox.apache.org/repos/asf/servicecomb-java-chassis.git
commit 8e12613fc9312130f8b45624465edf8a69f61716
Author: liubao <bi...@qq.com>
AuthorDate: Fri Nov 15 16:06:08 2019 +0800
[SCB-1592]upgrade vert.x and netty.(4)update license and fix conflicts
---
java-chassis-dependencies/default/pom.xml | 4 +--
java-chassis-distribution/src/release/LICENSE | 41 +++++++++++++--------------
2 files changed, 22 insertions(+), 23 deletions(-)
diff --git a/java-chassis-dependencies/default/pom.xml b/java-chassis-dependencies/default/pom.xml
index 93117ea..698f33e 100644
--- a/java-chassis-dependencies/default/pom.xml
+++ b/java-chassis-dependencies/default/pom.xml
@@ -82,7 +82,7 @@
<mock-server.version>3.10.4</mock-server.version>
<narayana.version>5.3.2.Final</narayana.version>
<netflix-commons.version>0.3.0</netflix-commons.version>
- <netty.version>4.1.31.Final</netty.version>
+ <netty.version>4.1.43.Final</netty.version>
<okhttp3.version>3.14.2</okhttp3.version>
<powermock.version>1.6.2</powermock.version>
<prometheus.version>0.6.0</prometheus.version>
@@ -105,7 +105,7 @@
<tcnetty.version>2.0.26.Final</tcnetty.version>
<tec-zkclient.version>0.10</tec-zkclient.version>
<tomakehurst.version>2.6.0</tomakehurst.version>
- <vertx.version>3.6.3</vertx.version>
+ <vertx.version>3.8.3</vertx.version>
<xstream.version>1.4.11.1</xstream.version>
<zipkin.version>2.9.3</zipkin.version>
<zipkin-reporter.version>2.7.13</zipkin-reporter.version>
diff --git a/java-chassis-distribution/src/release/LICENSE b/java-chassis-distribution/src/release/LICENSE
index 9a0d073..a4f65dd 100644
--- a/java-chassis-distribution/src/release/LICENSE
+++ b/java-chassis-distribution/src/release/LICENSE
@@ -242,9 +242,7 @@ You can find a copy of the License at licenses/LICENSE-epl-v20
* JRuby Core (org.jruby:jruby-core:9.2.6.0 - https://github.com/jruby/jruby/jruby-core)
* JRuby Lib Setup (org.jruby:jruby-stdlib:9.2.6.0 - https://github.com/jruby/jruby/jruby-stdlib)
* JRuby Main Maven Artifact (org.jruby:jruby:9.2.6.0 - https://github.com/jruby/jruby/jruby-artifacts/jruby)
-* Vert.x Core (io.vertx:vertx-core:3.6.3 - http://nexus.sonatype.org/oss-repository-hosting.html/vertx-parent/vertx-core)
-* vertx-web (io.vertx:vertx-web:3.6.3 - http://nexus.sonatype.org/oss-repository-hosting.html/vertx-parent/vertx-ext/vertx-ext-parent/vertx-web-parent/vertx-web)
-
+* Vert.x Core (io.vertx:vertx-core:3.8.3 - https://github.com/eclipse-vertx/vert.x)
================================================================
This product bundles libraries which are licensed under the
@@ -517,21 +515,21 @@ For details, see their respective project links.
* nailgun-server (com.martiansoftware:nailgun-server:0.9.1 - http://martiansoftware.com/nailgun)
* netflix-commons-util (com.netflix.netflix-commons:netflix-commons-util:0.1.1 - https://github.com/Netflix/netflix-commons)
* netflix-statistics (com.netflix.netflix-commons:netflix-statistics:0.1.1 - https://github.com/Netflix/netflix-commons)
-* Netty/Buffer (io.netty:netty-buffer:4.1.28.Final - http://netty.io/netty-buffer/)
-* Netty/Codec/DNS (io.netty:netty-codec-dns:4.1.28.Final - http://netty.io/netty-codec-dns/)
-* Netty/Codec/HTTP (io.netty:netty-codec-http:4.1.28.Final - http://netty.io/netty-codec-http/)
-* Netty/Codec/HTTP2 (io.netty:netty-codec-http2:4.1.28.Final - http://netty.io/netty-codec-http2/)
-* Netty/Codec/Socks (io.netty:netty-codec-socks:4.1.28.Final - http://netty.io/netty-codec-socks/)
-* Netty/Codec (io.netty:netty-codec:4.1.28.Final - http://netty.io/netty-codec/)
-* Netty/Common (io.netty:netty-common:4.1.28.Final - http://netty.io/netty-common/)
-* Netty/Handler/Proxy (io.netty:netty-handler-proxy:4.1.28.Final - http://netty.io/netty-handler-proxy/)
-* Netty/Handler (io.netty:netty-handler:4.1.28.Final - http://netty.io/netty-handler/)
-* Netty/Resolver/DNS (io.netty:netty-resolver-dns:4.1.28.Final - http://netty.io/netty-resolver-dns/)
-* Netty/Resolver (io.netty:netty-resolver:4.1.28.Final - http://netty.io/netty-resolver/)
-* Netty/TomcatNative [BoringSSL - Static] (io.netty:netty-tcnative-boringssl-static:2.0.14.Final - https://github.com/netty/netty-tcnative/netty-tcnative-boringssl-static/)
-* Netty/Transport/Native/Epoll (io.netty:netty-transport-native-epoll:4.1.32.Final - http://netty.io/netty-transport-native-epoll/)
-* Netty/Transport/Native/Unix/Common (io.netty:netty-transport-native-unix-common:4.1.32.Final - http://netty.io/netty-transport-native-unix-common/)
-* Netty/Transport (io.netty:netty-transport:4.1.28.Final - http://netty.io/netty-transport/)
+* Netty/Buffer (io.netty:netty-buffer:4.1.43.Final - http://netty.io/netty-buffer/)
+* Netty/Codec/DNS (io.netty:netty-codec-dns:4.1.43.Final - http://netty.io/netty-codec-dns/)
+* Netty/Codec/HTTP (io.netty:netty-codec-http:4.1.43.Final - http://netty.io/netty-codec-http/)
+* Netty/Codec/HTTP2 (io.netty:netty-codec-http2:4.1.43.Final - http://netty.io/netty-codec-http2/)
+* Netty/Codec/Socks (io.netty:netty-codec-socks:4.1.43.Final - http://netty.io/netty-codec-socks/)
+* Netty/Codec (io.netty:netty-codec:4.1.43.Final - http://netty.io/netty-codec/)
+* Netty/Common (io.netty:netty-common:4.1.43.Final - http://netty.io/netty-common/)
+* Netty/Handler/Proxy (io.netty:netty-handler-proxy:4.1.43.Final - http://netty.io/netty-handler-proxy/)
+* Netty/Handler (io.netty:netty-handler:4.1.43.Final - http://netty.io/netty-handler/)
+* Netty/Resolver/DNS (io.netty:netty-resolver-dns:4.1.43.Final - http://netty.io/netty-resolver-dns/)
+* Netty/Resolver (io.netty:netty-resolver:4.1.43.Final - http://netty.io/netty-resolver/)
+* Netty/TomcatNative [BoringSSL - Static] (io.netty:netty-tcnative-boringssl-static:2.0.26.Final - https://github.com/netty/netty-tcnative/netty-tcnative-boringssl-static/)
+* Netty/Transport/Native/Epoll (io.netty:netty-transport-native-epoll:4.1.36.Final - http://netty.io/netty-transport-native-epoll/)
+* Netty/Transport/Native/Unix/Common (io.netty:netty-transport-native-unix-common:4.1.36.Final - http://netty.io/netty-transport-native-unix-common/)
+* Netty/Transport (io.netty:netty-transport:4.1.43.Final - http://netty.io/netty-transport/)
* nio-multipart-parser (org.synchronoss.cloud:nio-multipart-parser:1.1.0 - https://github.com/synchronoss/nio-multipart/nio-multipart-parser)
* Objenesis (org.objenesis:objenesis:2.5.1 - http://objenesis.org)
* OkHttp (com.squareup.okhttp3:okhttp:3.14.2 - https://github.com/square/okhttp/okhttp)
@@ -636,6 +634,7 @@ For details, see their respective project links.
* msg-simple (com.github.fge:msg-simple:1.1 - https://github.com/fge/msg-simple)
* uri-template (com.github.fge:uri-template:0.9 - https://github.com/fge/uri-template)
* Javassist (org.javassist:javassist:3.24.0-GA - http://www.javassist.org/)
-* Vert.x Bridge Common (io.vertx:vertx-bridge-common:3.6.3 - http://nexus.sonatype.org/oss-repository-hosting.html/vertx-parent/vertx-ext/vertx-ext-parent/vertx-bridge-common)
-* vertx-auth-common (io.vertx:vertx-auth-common:3.6.3 - http://nexus.sonatype.org/oss-repository-hosting.html/vertx-parent/vertx-ext/vertx-ext-parent/vertx-auth/vertx-auth-common)
-* vertx-web-common (io.vertx:vertx-web-common:3.6.3 - http://nexus.sonatype.org/oss-repository-hosting.html/vertx-parent/vertx-ext/vertx-ext-parent/vertx-web-parent/vertx-web-common)
+* Vert.x Bridge Common (io.vertx:vertx-bridge-common:3.8.3 - https://github.com/vert-x3/vertx-bridge-common)
+* vertx-auth-common (io.vertx:vertx-auth-common:3.8.3 - https://github.com/vert-x3/vertx-auth)
+* vertx-web-common (io.vertx:vertx-web-common:3.8.3 - https://github.com/vert-x3/vertx-web)
+* vertx-web (io.vertx:vertx-web:3.8.3 - https://github.com/vert-x3/vertx-web)
\ No newline at end of file
[servicecomb-java-chassis] 04/14: [SCB-1582] Delete unused
thirdParty dependencies
Posted by li...@apache.org.
This is an automated email from the ASF dual-hosted git repository.
liubao pushed a commit to branch 1.3.x
in repository https://gitbox.apache.org/repos/asf/servicecomb-java-chassis.git
commit e530ae2ec8f7ce614da2cc462b9078910b6b234e
Author: AngLi2 <li...@qq.com>
AuthorDate: Thu Nov 14 09:54:44 2019 +0800
[SCB-1582] Delete unused thirdParty dependencies
---
java-chassis-dependencies/default/pom.xml | 28 ++++++++++++++++++++--------
1 file changed, 20 insertions(+), 8 deletions(-)
diff --git a/java-chassis-dependencies/default/pom.xml b/java-chassis-dependencies/default/pom.xml
index c9b7669..3413ad5 100644
--- a/java-chassis-dependencies/default/pom.xml
+++ b/java-chassis-dependencies/default/pom.xml
@@ -106,7 +106,6 @@
<tec-zkclient.version>0.10</tec-zkclient.version>
<tomakehurst.version>2.6.0</tomakehurst.version>
<vertx.version>3.6.3</vertx.version>
- <woodstox.version>4.4.1</woodstox.version>
<xstream.version>1.4.11.1</xstream.version>
<zipkin.version>2.9.3</zipkin.version>
<zipkin-reporter.version>2.7.13</zipkin-reporter.version>
@@ -192,6 +191,10 @@
<groupId>com.fasterxml.woodstox</groupId>
<artifactId>woodstox-core</artifactId>
</exclusion>
+ <exclusion>
+ <groupId>org.codehaus.woodstox</groupId>
+ <artifactId>woodstox-core-asl</artifactId>
+ </exclusion>
</exclusions>
</dependency>
<dependency>
@@ -418,6 +421,10 @@
<groupId>io.swagger</groupId>
<artifactId>swagger-compat-spec-parser</artifactId>
</exclusion>
+ <exclusion>
+ <groupId>commons-collections</groupId>
+ <artifactId>commons-collections</artifactId>
+ </exclusion>
</exclusions>
</dependency>
@@ -533,6 +540,12 @@
<groupId>io.protostuff</groupId>
<artifactId>protostuff-parser</artifactId>
<version>${protostuff-parser.version}</version>
+ <exclusions>
+ <exclusion>
+ <groupId>org.abego.treelayout</groupId>
+ <artifactId>org.abego.treelayout.core</artifactId>
+ </exclusion>
+ </exclusions>
</dependency>
<dependency>
<groupId>io.protostuff</groupId>
@@ -750,6 +763,12 @@
<groupId>org.asciidoctor</groupId>
<artifactId>asciidoctorj</artifactId>
<version>${asciidoctorj.version}</version>
+ <exclusions>
+ <exclusion>
+ <groupId>com.jcraft</groupId>
+ <artifactId>jzlib</artifactId>
+ </exclusion>
+ </exclusions>
</dependency>
<dependency>
@@ -773,13 +792,6 @@
</dependency>
<dependency>
- <groupId>org.codehaus.woodstox</groupId>
- <artifactId>woodstox-core-asl</artifactId>
- <version>${woodstox.version}</version>
- <scope>provided</scope>
- </dependency>
-
- <dependency>
<groupId>org.glassfish.jersey.core</groupId>
<artifactId>jersey-common</artifactId>
<version>${jersey.version}</version>
[servicecomb-java-chassis] 01/14: Bump checkstyle from 7.6 to 8.18
Posted by li...@apache.org.
This is an automated email from the ASF dual-hosted git repository.
liubao pushed a commit to branch 1.3.x
in repository https://gitbox.apache.org/repos/asf/servicecomb-java-chassis.git
commit 8a219accfca901e36c022cd1368de85d8618c231
Author: dependabot[bot] <49...@users.noreply.github.com>
AuthorDate: Thu Oct 31 08:23:27 2019 +0000
Bump checkstyle from 7.6 to 8.18
Bumps [checkstyle](https://github.com/checkstyle/checkstyle) from 7.6 to 8.18.
- [Release notes](https://github.com/checkstyle/checkstyle/releases)
- [Commits](https://github.com/checkstyle/checkstyle/compare/checkstyle-7.6...checkstyle-8.18)
Signed-off-by: dependabot[bot] <su...@github.com>
---
pom.xml | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/pom.xml b/pom.xml
index 9dd3bf5..f29126e 100644
--- a/pom.xml
+++ b/pom.xml
@@ -417,7 +417,7 @@
<dependency>
<groupId>com.puppycrawl.tools</groupId>
<artifactId>checkstyle</artifactId>
- <version>7.6</version>
+ <version>8.18</version>
</dependency>
</dependencies>
</plugin>
[servicecomb-java-chassis] 14/14: [SCB-1616]refactor edge
dispatcher to make them more extensible (#1406)
Posted by li...@apache.org.
This is an automated email from the ASF dual-hosted git repository.
liubao pushed a commit to branch 1.3.x
in repository https://gitbox.apache.org/repos/asf/servicecomb-java-chassis.git
commit ef6895ef508b1fbd00d40e8cd92a1e51cd0bec04
Author: bao liu <bi...@qq.com>
AuthorDate: Tue Nov 26 10:47:28 2019 +0800
[SCB-1616]refactor edge dispatcher to make them more extensible (#1406)
---
.../edge/core/DefaultEdgeDispatcher.java | 4 +-
.../edge/core/URLMappedConfigurationItem.java | 72 ++++++++++++++++
.../edge/core/URLMappedConfigurationLoader.java | 83 +++++++++++++++++++
.../edge/core/URLMappedEdgeDispatcher.java | 95 +++++-----------------
.../edge/core/TestURLMappedEdgeDispatcher.java | 21 +++--
.../transport/rest/vertx/VertxRestDispatcher.java | 16 +++-
6 files changed, 200 insertions(+), 91 deletions(-)
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 0d195c6..19f9f65 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
@@ -30,6 +30,8 @@ import io.vertx.ext.web.RoutingContext;
public class DefaultEdgeDispatcher extends AbstractEdgeDispatcher {
private static final String KEY_ENABLED = "servicecomb.http.dispatcher.edge.default.enabled";
+ private static final String KEY_ORDER = "servicecomb.http.dispatcher.edge.default.order";
+
private static final String KEY_PREFIX = "servicecomb.http.dispatcher.edge.default.prefix";
private static final String KEY_WITH_VERSION = "servicecomb.http.dispatcher.edge.default.withVersion";
@@ -46,7 +48,7 @@ public class DefaultEdgeDispatcher extends AbstractEdgeDispatcher {
@Override
public int getOrder() {
- return 20000;
+ return DynamicPropertyFactory.getInstance().getIntProperty(KEY_ORDER, 20_000).get();
}
@Override
diff --git a/edge/edge-core/src/main/java/org/apache/servicecomb/edge/core/URLMappedConfigurationItem.java b/edge/edge-core/src/main/java/org/apache/servicecomb/edge/core/URLMappedConfigurationItem.java
new file mode 100644
index 0000000..2fa3846
--- /dev/null
+++ b/edge/edge-core/src/main/java/org/apache/servicecomb/edge/core/URLMappedConfigurationItem.java
@@ -0,0 +1,72 @@
+/*
+ * 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.edge.core;
+
+import java.util.regex.Pattern;
+
+public class URLMappedConfigurationItem {
+ private String microserviceName;
+
+ private String versionRule;
+
+ private int prefixSegmentCount;
+
+ private Pattern pattern;
+
+ private String stringPattern;
+
+ public String getMicroserviceName() {
+ return microserviceName;
+ }
+
+ public void setMicroserviceName(String microserviceName) {
+ this.microserviceName = microserviceName;
+ }
+
+ public String getVersionRule() {
+ return versionRule;
+ }
+
+ public void setVersionRule(String versionRule) {
+ this.versionRule = versionRule;
+ }
+
+ public int getPrefixSegmentCount() {
+ return prefixSegmentCount;
+ }
+
+ public void setPrefixSegmentCount(int prefixSegmentCount) {
+ this.prefixSegmentCount = prefixSegmentCount;
+ }
+
+ public Pattern getPattern() {
+ return pattern;
+ }
+
+ public void setPattern(Pattern pattern) {
+ this.pattern = pattern;
+ }
+
+ public String getStringPattern() {
+ return stringPattern;
+ }
+
+ public void setStringPattern(String stringPattern) {
+ this.stringPattern = stringPattern;
+ }
+}
diff --git a/edge/edge-core/src/main/java/org/apache/servicecomb/edge/core/URLMappedConfigurationLoader.java b/edge/edge-core/src/main/java/org/apache/servicecomb/edge/core/URLMappedConfigurationLoader.java
new file mode 100644
index 0000000..a6f7522
--- /dev/null
+++ b/edge/edge-core/src/main/java/org/apache/servicecomb/edge/core/URLMappedConfigurationLoader.java
@@ -0,0 +1,83 @@
+/*
+ * 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.edge.core;
+
+import java.util.HashMap;
+import java.util.Iterator;
+import java.util.Map;
+import java.util.regex.Pattern;
+
+import org.apache.commons.lang3.StringUtils;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+import com.netflix.config.ConcurrentCompositeConfiguration;
+import com.netflix.config.DynamicPropertyFactory;
+
+public class URLMappedConfigurationLoader {
+ private static final Logger LOG = LoggerFactory.getLogger(URLMappedConfigurationLoader.class);
+
+ private static final String KEY_MAPPING_PATH = ".path";
+
+ private static final String KEY_MAPPING_SERVICE_NAME = "%s.%s.microserviceName";
+
+ private static final String KEY_MAPPING_VERSION_RULE = "%s.%s.versionRule";
+
+ private static final String KEY_MAPPING_PREFIX_SEGMENT_COUNT = "%s.%s.prefixSegmentCount";
+
+ public static Map<String, URLMappedConfigurationItem> loadConfigurations(
+ ConcurrentCompositeConfiguration config, String configPrefix) {
+ Map<String, URLMappedConfigurationItem> configurations = new HashMap<>();
+ Iterator<String> configsItems = config.getKeys(configPrefix);
+ while (configsItems.hasNext()) {
+ String pathKey = configsItems.next();
+ if (pathKey.endsWith(KEY_MAPPING_PATH)) {
+ URLMappedConfigurationItem configurationItem = new URLMappedConfigurationItem();
+ String pattern = DynamicPropertyFactory.getInstance()
+ .getStringProperty(pathKey, null).get();
+ if (StringUtils.isEmpty(pattern)) {
+ continue;
+ }
+ configurationItem.setPattern(Pattern.compile(pattern));
+ configurationItem.setStringPattern(pattern);
+ String pathKeyItem = pathKey
+ .substring(configPrefix.length() + 1, pathKey.length() - KEY_MAPPING_PATH.length());
+ configurationItem.setMicroserviceName(DynamicPropertyFactory.getInstance()
+ .getStringProperty(String.format(KEY_MAPPING_SERVICE_NAME, configPrefix, pathKeyItem), null).get());
+ if (StringUtils.isEmpty(configurationItem.getMicroserviceName())) {
+ continue;
+ }
+ configurationItem.setPrefixSegmentCount(DynamicPropertyFactory.getInstance()
+ .getIntProperty(String.format(KEY_MAPPING_PREFIX_SEGMENT_COUNT, configPrefix, pathKeyItem), 0).get());
+ configurationItem.setVersionRule(DynamicPropertyFactory.getInstance()
+ .getStringProperty(String.format(KEY_MAPPING_VERSION_RULE, configPrefix, pathKeyItem), "0.0.0+").get());
+ configurations.put(pathKeyItem, configurationItem);
+ }
+ }
+ logConfigurations(configurations);
+ return configurations;
+ }
+
+ private static void logConfigurations(Map<String, URLMappedConfigurationItem> configurations) {
+ configurations.entrySet().forEach(stringConfigurationItemEntry -> {
+ URLMappedConfigurationItem item = stringConfigurationItemEntry.getValue();
+ LOG.info("config item: key=" + stringConfigurationItemEntry.getKey() + ";pattern=" + item.getStringPattern()
+ + ";service=" + item.getMicroserviceName() + ";versionRule=" + item.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 c734b40..31d6936 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
@@ -18,11 +18,8 @@
package org.apache.servicecomb.edge.core;
import java.util.HashMap;
-import java.util.Iterator;
import java.util.Map;
-import java.util.regex.Pattern;
-import org.apache.commons.lang3.StringUtils;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@@ -36,35 +33,19 @@ import io.vertx.ext.web.RoutingContext;
* Provide a URL mapping based dispatcher. Users configure witch URL patterns dispatch to a target service.
*/
public class URLMappedEdgeDispatcher extends AbstractEdgeDispatcher {
- class ConfigurationItem {
- String microserviceName;
-
- String versionRule;
-
- int prefixSegmentCount;
-
- Pattern pattern;
-
- String stringPattern;
- }
-
private static final Logger LOG = LoggerFactory.getLogger(URLMappedEdgeDispatcher.class);
private static final String PATTERN_ANY = "/(.*)";
- private static final String KEY_ENABLED = "servicecomb.http.dispatcher.edge.url.enabled";
-
- private static final String KEY_MAPPING_PREIX = "servicecomb.http.dispatcher.edge.url.mappings";
-
- private static final String KEY_MAPPING_PATH = ".path";
+ private static final String KEY_ORDER = "servicecomb.http.dispatcher.edge.url.order";
- private static final String KEY_MAPPING_SERVICE_NAME = "servicecomb.http.dispatcher.edge.url.mappings.%s.microserviceName";
+ private static final String KEY_ENABLED = "servicecomb.http.dispatcher.edge.url.enabled";
- private static final String KEY_MAPPING_VERSION_RULE = "servicecomb.http.dispatcher.edge.url.mappings.%s.versionRule";
+ private static final String KEY_PATTERN = "servicecomb.http.dispatcher.edge.url.pattern";
- private static final String KEY_MAPPING_PREFIX_SEGMENT_COUNT = "servicecomb.http.dispatcher.edge.url.mappings.%s.prefixSegmentCount";
+ private static final String KEY_MAPPING_PREIX = "servicecomb.http.dispatcher.edge.url.mappings";
- private Map<String, ConfigurationItem> configurations = new HashMap<>();
+ private Map<String, URLMappedConfigurationItem> configurations = new HashMap<>();
public URLMappedEdgeDispatcher() {
if (this.enabled()) {
@@ -74,7 +55,7 @@ public class URLMappedEdgeDispatcher extends AbstractEdgeDispatcher {
@Override
public int getOrder() {
- return 30000;
+ return DynamicPropertyFactory.getInstance().getIntProperty(KEY_ORDER, 30_000).get();
}
@Override
@@ -85,82 +66,44 @@ public class URLMappedEdgeDispatcher extends AbstractEdgeDispatcher {
@Override
public void init(Router router) {
// cookies handler are enabled by default start from 3.8.3
- router.routeWithRegex(PATTERN_ANY).handler(createBodyHandler());
- router.routeWithRegex(PATTERN_ANY).failureHandler(this::onFailure).handler(this::onRequest);
+ String pattern = DynamicPropertyFactory.getInstance().getStringProperty(KEY_PATTERN, PATTERN_ANY).get();
+ router.routeWithRegex(pattern).handler(createBodyHandler());
+ router.routeWithRegex(pattern).failureHandler(this::onFailure).handler(this::onRequest);
}
private void loadConfigurations() {
ConcurrentCompositeConfiguration config = (ConcurrentCompositeConfiguration) DynamicPropertyFactory
.getBackingConfigurationSource();
- loadConfigurations(config);
+ configurations = URLMappedConfigurationLoader.loadConfigurations(config, KEY_MAPPING_PREIX);
config.addConfigurationListener(event -> {
if (event.getPropertyName().startsWith(KEY_MAPPING_PREIX)) {
LOG.info("Map rule have been changed. Reload configurations. Event=" + event.getType());
- loadConfigurations(config);
+ configurations = URLMappedConfigurationLoader.loadConfigurations(config, KEY_MAPPING_PREIX);
}
});
}
- private void loadConfigurations(ConcurrentCompositeConfiguration config) {
- Map<String, ConfigurationItem> configurations = new HashMap<>();
- Iterator<String> configsItems = config.getKeys(KEY_MAPPING_PREIX);
- while (configsItems.hasNext()) {
- String pathKey = configsItems.next();
- if (pathKey.endsWith(KEY_MAPPING_PATH)) {
- ConfigurationItem configurationItem = new ConfigurationItem();
- String pattern = DynamicPropertyFactory.getInstance()
- .getStringProperty(pathKey, null).get();
- if (StringUtils.isEmpty(pattern)) {
- continue;
- }
- configurationItem.pattern = Pattern.compile(pattern);
- configurationItem.stringPattern = pattern;
- String pathKeyItem = pathKey
- .substring(KEY_MAPPING_PREIX.length() + 1, pathKey.length() - KEY_MAPPING_PATH.length());
- configurationItem.microserviceName = DynamicPropertyFactory.getInstance()
- .getStringProperty(String.format(KEY_MAPPING_SERVICE_NAME, pathKeyItem), null).get();
- if (StringUtils.isEmpty(configurationItem.microserviceName)) {
- continue;
- }
- configurationItem.prefixSegmentCount = DynamicPropertyFactory.getInstance()
- .getIntProperty(String.format(KEY_MAPPING_PREFIX_SEGMENT_COUNT, pathKeyItem), 0).get();
- configurationItem.versionRule = DynamicPropertyFactory.getInstance()
- .getStringProperty(String.format(KEY_MAPPING_VERSION_RULE, pathKeyItem), "0.0.0+").get();
- configurations.put(pathKeyItem, configurationItem);
- }
- }
- this.configurations = configurations;
- logConfigurations();
- }
-
- private void logConfigurations() {
- configurations.entrySet().forEach(stringConfigurationItemEntry -> {
- ConfigurationItem item = stringConfigurationItemEntry.getValue();
- LOG.info("config item: key=" + stringConfigurationItemEntry.getKey() + ";pattern=" + item.stringPattern
- + ";service=" + item.microserviceName + ";versionRule=" + item.versionRule);
- });
- }
protected void onRequest(RoutingContext context) {
- ConfigurationItem configurationItem = findConfigurationItem(context.request().path());
+ URLMappedConfigurationItem configurationItem = findConfigurationItem(context.request().path());
if (configurationItem == null) {
context.next();
return;
}
- String path = Utils.findActualPath(context.request().path(), configurationItem.prefixSegmentCount);
+ String path = Utils.findActualPath(context.request().path(), configurationItem.getPrefixSegmentCount());
EdgeInvocation edgeInvocation = createEdgeInvocation();
- if (configurationItem.versionRule != null) {
- edgeInvocation.setVersionRule(configurationItem.versionRule);
+ if (configurationItem.getVersionRule() != null) {
+ edgeInvocation.setVersionRule(configurationItem.getVersionRule());
}
- edgeInvocation.init(configurationItem.microserviceName, context, path, httpServerFilters);
+ edgeInvocation.init(configurationItem.getMicroserviceName(), context, path, httpServerFilters);
edgeInvocation.edgeInvoke();
}
- private ConfigurationItem findConfigurationItem(String path) {
- for (ConfigurationItem item : configurations.values()) {
- if (item.pattern.matcher(path).matches()) {
+ private URLMappedConfigurationItem findConfigurationItem(String path) {
+ for (URLMappedConfigurationItem item : configurations.values()) {
+ if (item.getPattern().matcher(path).matches()) {
return item;
}
}
diff --git a/edge/edge-core/src/test/java/org/apache/servicecomb/edge/core/TestURLMappedEdgeDispatcher.java b/edge/edge-core/src/test/java/org/apache/servicecomb/edge/core/TestURLMappedEdgeDispatcher.java
index 353051c..b308d2c 100644
--- a/edge/edge-core/src/test/java/org/apache/servicecomb/edge/core/TestURLMappedEdgeDispatcher.java
+++ b/edge/edge-core/src/test/java/org/apache/servicecomb/edge/core/TestURLMappedEdgeDispatcher.java
@@ -19,7 +19,6 @@ package org.apache.servicecomb.edge.core;
import java.util.Map;
-import org.apache.servicecomb.edge.core.URLMappedEdgeDispatcher.ConfigurationItem;
import org.apache.servicecomb.foundation.common.utils.Log4jUtils;
import org.apache.servicecomb.foundation.test.scaffolding.config.ArchaiusUtils;
import org.junit.After;
@@ -51,7 +50,7 @@ public class TestURLMappedEdgeDispatcher {
ArchaiusUtils.setProperty("servicecomb.http.dispatcher.edge.url.enabled", true);
URLMappedEdgeDispatcher dispatcher = new URLMappedEdgeDispatcher();
- Map<String, ConfigurationItem> items = Deencapsulation
+ Map<String, URLMappedConfigurationItem> items = Deencapsulation
.getField(dispatcher, "configurations");
Assert.assertEquals(items.size(), 0);
@@ -68,21 +67,21 @@ public class TestURLMappedEdgeDispatcher {
ArchaiusUtils.setProperty("servicecomb.http.dispatcher.edge.url.mappings.service1.versionRule", "2.0.0+");
items = Deencapsulation.getField(dispatcher, "configurations");
Assert.assertEquals(items.size(), 1);
- ConfigurationItem item = items.get("service1");
- Assert.assertEquals(item.microserviceName, "serviceName");
- Assert.assertEquals(item.prefixSegmentCount, 2);
- Assert.assertEquals(item.stringPattern, "/a/b/c/.*");
- Assert.assertEquals(item.versionRule, "2.0.0+");
+ URLMappedConfigurationItem item = items.get("service1");
+ Assert.assertEquals(item.getMicroserviceName(), "serviceName");
+ Assert.assertEquals(item.getPrefixSegmentCount(), 2);
+ Assert.assertEquals(item.getStringPattern(), "/a/b/c/.*");
+ Assert.assertEquals(item.getVersionRule(), "2.0.0+");
ArchaiusUtils.setProperty("servicecomb.http.dispatcher.edge.url.mappings.service2.versionRule", "2.0.0+");
ArchaiusUtils.setProperty("servicecomb.http.dispatcher.edge.url.mappings.service3.path", "/b/c/d/.*");
items = Deencapsulation.getField(dispatcher, "configurations");
Assert.assertEquals(items.size(), 1);
item = items.get("service1");
- Assert.assertEquals(item.microserviceName, "serviceName");
- Assert.assertEquals(item.prefixSegmentCount, 2);
- Assert.assertEquals(item.stringPattern, "/a/b/c/.*");
- Assert.assertEquals(item.versionRule, "2.0.0+");
+ Assert.assertEquals(item.getMicroserviceName(), "serviceName");
+ Assert.assertEquals(item.getPrefixSegmentCount(), 2);
+ Assert.assertEquals(item.getStringPattern(), "/a/b/c/.*");
+ Assert.assertEquals(item.getVersionRule(), "2.0.0+");
new Expectations() {
{
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 763a360..bbecec5 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
@@ -46,13 +46,17 @@ import io.vertx.ext.web.RoutingContext;
public class VertxRestDispatcher extends AbstractVertxHttpDispatcher {
private static final Logger LOGGER = LoggerFactory.getLogger(VertxRestDispatcher.class);
+ private static final String KEY_ORDER = "servicecomb.http.dispatcher.rest.order";
+
private static final String KEY_ENABLED = "servicecomb.http.dispatcher.rest.enabled";
+ private static final String KEY_PATTERN = "servicecomb.http.dispatcher.rest.pattern";
+
private Transport transport;
@Override
public int getOrder() {
- return Integer.MAX_VALUE;
+ return DynamicPropertyFactory.getInstance().getIntProperty(KEY_ORDER, Integer.MAX_VALUE).get();
}
@Override
@@ -63,8 +67,14 @@ public class VertxRestDispatcher extends AbstractVertxHttpDispatcher {
@Override
public void init(Router router) {
// cookies handler are enabled by default start from 3.8.3
- router.route().handler(createBodyHandler());
- router.route().failureHandler(this::failureHandler).handler(this::onRequest);
+ String pattern = DynamicPropertyFactory.getInstance().getStringProperty(KEY_PATTERN, null).get();
+ if(pattern == null) {
+ router.route().handler(createBodyHandler());
+ router.route().failureHandler(this::failureHandler).handler(this::onRequest);
+ } else {
+ router.routeWithRegex(pattern).handler(createBodyHandler());
+ router.routeWithRegex(pattern).failureHandler(this::failureHandler).handler(this::onRequest);
+ }
}
protected void failureHandler(RoutingContext context) {
[servicecomb-java-chassis] 11/14: [SCB-1582] Upgrading thirdParty
dependency versions
Posted by li...@apache.org.
This is an automated email from the ASF dual-hosted git repository.
liubao pushed a commit to branch 1.3.x
in repository https://gitbox.apache.org/repos/asf/servicecomb-java-chassis.git
commit 25274e94502aa27863ca4e99bdfb1b87d52efda9
Author: AngLi2 <li...@qq.com>
AuthorDate: Fri Nov 15 15:57:28 2019 +0800
[SCB-1582] Upgrading thirdParty dependency versions
---
java-chassis-dependencies/default/pom.xml | 28 ++++++++++++++++++++++++++-
java-chassis-distribution/src/release/LICENSE | 12 ++++++------
2 files changed, 33 insertions(+), 7 deletions(-)
diff --git a/java-chassis-dependencies/default/pom.xml b/java-chassis-dependencies/default/pom.xml
index 698f33e..e66246f 100644
--- a/java-chassis-dependencies/default/pom.xml
+++ b/java-chassis-dependencies/default/pom.xml
@@ -38,6 +38,7 @@
<aspectj.version>1.9.3</aspectj.version>
<awaitility.version>3.0.0</awaitility.version>
<brave.version>5.6.0</brave.version>
+ <classmate.version>1.5.0</classmate.version>
<commons-beanutils.version>1.9.3</commons-beanutils.version>
<commons-configuration.version>1.10</commons-configuration.version>
<commons-io.version>2.6</commons-io.version>
@@ -55,6 +56,7 @@
<guava.version>26.0-jre</guava.version>
<guice.version>4.2.0</guice.version>
<hamcrest.version>1.3</hamcrest.version>
+ <hdr-histogram.version>2.1.10</hdr-histogram.version>
<hibernate.version>6.0.2.Final</hibernate.version>
<hibernate-validator.version>6.0.14.Final</hibernate-validator.version>
<httpcomponents.version>4.5.7</httpcomponents.version>
@@ -100,6 +102,7 @@
<spring.version>4.3.20.RELEASE</spring.version>
<spring-boot.version>1.5.19.RELEASE</spring-boot.version>
<spring-cloud.version>Edgware.SR3</spring-cloud.version> <!-- Spring Zuul handling of gzip response has bug in version Dalston.SR1 -->
+ <stax2-api.version>4.2</stax2-api.version>
<swagger.version>1.5.22</swagger.version>
<swagger2markup.version>1.3.3</swagger2markup.version>
<tcnetty.version>2.0.26.Final</tcnetty.version>
@@ -107,7 +110,7 @@
<tomakehurst.version>2.6.0</tomakehurst.version>
<vertx.version>3.8.3</vertx.version>
<xstream.version>1.4.11.1</xstream.version>
- <zipkin.version>2.9.3</zipkin.version>
+ <zipkin.version>2.19.1</zipkin.version>
<zipkin-reporter.version>2.7.13</zipkin-reporter.version>
<zookeeper.version>3.4.14</zookeeper.version>
<!-- Base dir of main -->
@@ -162,6 +165,12 @@
</dependency>
<dependency>
+ <groupId>com.fasterxml</groupId>
+ <artifactId>classmate</artifactId>
+ <version>${classmate.version}</version>
+ </dependency>
+
+ <dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-annotations</artifactId>
<version>${jackson.version}</version>
@@ -624,6 +633,11 @@
<dependency>
<groupId>io.zipkin.reporter2</groupId>
+ <artifactId>zipkin-reporter</artifactId>
+ <version>${zipkin-reporter.version}</version>
+ </dependency>
+ <dependency>
+ <groupId>io.zipkin.reporter2</groupId>
<artifactId>zipkin-sender-okhttp3</artifactId>
<version>${zipkin-reporter.version}</version>
</dependency>
@@ -803,6 +817,12 @@
</dependency>
<dependency>
+ <groupId>org.codehaus.woodstox</groupId>
+ <artifactId>stax2-api</artifactId>
+ <version>${stax2-api.version}</version>
+ </dependency>
+
+ <dependency>
<groupId>org.glassfish.jersey.core</groupId>
<artifactId>jersey-common</artifactId>
<version>${jersey.version}</version>
@@ -844,6 +864,12 @@
</dependency>
<dependency>
+ <groupId>org.hdrhistogram</groupId>
+ <artifactId>HdrHistogram</artifactId>
+ <version>${hdr-histogram.version}</version>
+ </dependency>
+
+ <dependency>
<groupId>org.javassist</groupId>
<artifactId>javassist</artifactId>
<version>${javassist.version}</version>
diff --git a/java-chassis-distribution/src/release/LICENSE b/java-chassis-distribution/src/release/LICENSE
index a4f65dd..71233df 100644
--- a/java-chassis-distribution/src/release/LICENSE
+++ b/java-chassis-distribution/src/release/LICENSE
@@ -222,7 +222,7 @@ This product bundles files from stax2 which is licensed under the
For details, see http://wiki.fasterxml.com/WoodstoxStax2
You can find a copy of the License at licenses/LICENSE-woodstox-stax2-api
-* Stax2 API (org.codehaus.woodstox:stax2-api:3.1.4 - http://wiki.fasterxml.com/WoodstoxStax2)
+* Stax2 API (org.codehaus.woodstox:stax2-api:4.2 - http://wiki.fasterxml.com/WoodstoxStax2)
================================================================
This product bundles libraries which are licensed under the
@@ -277,7 +277,7 @@ You can find a copy of the License at licenses/LICENSE-cddl
* JavaMail API jar (javax.mail:mailapi:1.4.3 - http://java.sun.com/projects/javamail/mailapi)
* Expression Language 3.0 (org.glassfish:javax.el:3.0.0 - http://el-spec.java.net)
* Java Servlet API (javax.servlet:javax.servlet-api:4.0.1 - http://servlet-spec.java.net)
-* javax.ws.rs-api (javax.ws.rs:javax.ws.rs-api:2.0.1 - http://jax-rs-spec.java.net)
+* javax.ws.rs-api (javax.ws.rs:javax.ws.rs-api:2.1 - http://jax-rs-spec.java.net)
* Jersey Apache HTTP Client 4.x (com.sun.jersey.contribs:jersey-apache-client4:2.27 - https://jersey.java.net/jersey-contribs/jersey-apache-client4/)
* jersey-client (com.sun.jersey:jersey-client:2.27 - https://jersey.java.net/jersey-client/)
* jersey-core (com.sun.jersey:jersey-core:2.27 - https://jersey.java.net/jersey-core/)
@@ -289,7 +289,7 @@ Public domain.
For details, see https://github.com/HdrHistogram/HdrHistogram
You can find a copy of the License at licenses/LICENSE-hdrhistogram
-* HdrHistogram (org.hdrhistogram:HdrHistogram:2.1.9 - http://hdrhistogram.github.io/HdrHistogram/)
+* HdrHistogram (org.hdrhistogram:HdrHistogram:2.1.10 - http://hdrhistogram.github.io/HdrHistogram/)
================================================================
This product bundles animal-sniffer-annotations which is licensed under the
@@ -473,7 +473,7 @@ For details, see their respective project links.
* Brave Instrumentation: Http Adapters (io.zipkin.brave:brave-instrumentation-http:5.6.0 - https://github.com/openzipkin/brave/brave-instrumentation-parent/brave-instrumentation-http)
* Brave Instrumentation: Servlet (io.zipkin.brave:brave-instrumentation-servlet:5.6.0 - https://github.com/openzipkin/brave/brave-instrumentation-parent/brave-instrumentation-servlet)
* Brave Spring Factory Beans (io.zipkin.brave:brave-spring-beans:5.6.0 - https://github.com/openzipkin/brave/brave-spring-beans)
-* ClassMate (com.fasterxml:classmate:1.3.4 - http://github.com/FasterXML/java-classmate)
+* ClassMate (com.fasterxml:classmate:1.5.0 - http://github.com/FasterXML/java-classmate)
* Commons Lang (commons-lang:commons-lang:2.6 - http://commons.apache.org/lang/)
* Core Reactor components (io.projectreactor:reactor-core:2.0.8.RELEASE - https://github.com/reactor/reactor)
* error-prone annotations (com.google.errorprone:error_prone_annotations:2.1.3 - http://nexus.sonatype.org/oss-repository-hosting.html/error_prone_parent/error_prone_annotations)
@@ -621,10 +621,10 @@ For details, see their respective project links.
* Vavr (io.vavr:vavr:0.9.1 - http://vavr.io)
* Vavr Match (io.vavr:vavr-match:0.9.1 - http://vavr.io)
* Woodstox (com.fasterxml.woodstox:woodstox-core:5.0.3 - https://github.com/FasterXML/woodstox)
-* Zipkin Reporter: Core (io.zipkin.reporter2:zipkin-reporter:2.5.0 - https://github.com/openzipkin/zipkin-reporter-java/zipkin-reporter)
+* Zipkin Reporter: Core (io.zipkin.reporter2:zipkin-reporter:2.7.13 - https://github.com/openzipkin/zipkin-reporter-java/zipkin-reporter)
* Zipkin Reporter Spring Factory Beans (io.zipkin.reporter2:zipkin-reporter-spring-beans:2.7.13 - https://github.com/openzipkin/zipkin-reporter-java/zipkin-reporter-spring-beans)
* Zipkin Sender: OkHttp 3 (io.zipkin.reporter2:zipkin-sender-okhttp3:2.7.13 - https://github.com/openzipkin/zipkin-reporter-java/zipkin-sender-okhttp3)
-* Zipkin v2 (io.zipkin.zipkin2:zipkin:2.9.3 - https://github.com/openzipkin/zipkin/zipkin)
+* Zipkin v2 (io.zipkin.zipkin2:zipkin:2.19.1 - https://github.com/openzipkin/zipkin/zipkin)
* zuul-core (com.netflix.zuul:zuul-core:1.3.0 - https://github.com/Netflix/zuul)
* json-schema-core (com.github.java-json-tools:json-schema-core:1.2.8 - https://github.com/java-json-tools/json-schema-core)
* json-schema-validator (com.github.java-json-tools:json-schema-validator:2.2.8 - https://github.com/box-metadata/json-schema-validator)
[servicecomb-java-chassis] 02/14: [SCB-1582] Delete unused
thirdparty dependencies
Posted by li...@apache.org.
This is an automated email from the ASF dual-hosted git repository.
liubao pushed a commit to branch 1.3.x
in repository https://gitbox.apache.org/repos/asf/servicecomb-java-chassis.git
commit 93233004f7f8845041f0f365aedc40ee8095fcb3
Author: AngLi2 <li...@qq.com>
AuthorDate: Wed Nov 13 17:23:59 2019 +0800
[SCB-1582] Delete unused thirdparty dependencies
---
java-chassis-dependencies/default/pom.xml | 24 +++++++++++++++++++++++-
1 file changed, 23 insertions(+), 1 deletion(-)
diff --git a/java-chassis-dependencies/default/pom.xml b/java-chassis-dependencies/default/pom.xml
index 59bfdd4..c9b7669 100644
--- a/java-chassis-dependencies/default/pom.xml
+++ b/java-chassis-dependencies/default/pom.xml
@@ -187,6 +187,12 @@
<groupId>com.fasterxml.jackson.dataformat</groupId>
<artifactId>jackson-dataformat-xml</artifactId>
<version>${jackson.version}</version>
+ <exclusions>
+ <exclusion>
+ <groupId>com.fasterxml.woodstox</groupId>
+ <artifactId>woodstox-core</artifactId>
+ </exclusion>
+ </exclusions>
</dependency>
<dependency>
<groupId>com.fasterxml.jackson.dataformat</groupId>
@@ -228,7 +234,17 @@
<dependency>
<groupId>com.google.guava</groupId>
<artifactId>guava</artifactId>
- <version>26.0-jre</version>
+ <version>${guava.version}</version>
+ <exclusions>
+ <exclusion>
+ <groupId>com.google.errorprone</groupId>
+ <artifactId>error_prone_annotations</artifactId>
+ </exclusion>
+ <exclusion>
+ <groupId>org.codehaus.mojo</groupId>
+ <artifactId>animal-sniffer-annotations</artifactId>
+ </exclusion>
+ </exclusions>
</dependency>
<dependency>
@@ -397,6 +413,12 @@
<groupId>io.github.swagger2markup</groupId>
<artifactId>swagger2markup</artifactId>
<version>${swagger2markup.version}</version>
+ <exclusions>
+ <exclusion>
+ <groupId>io.swagger</groupId>
+ <artifactId>swagger-compat-spec-parser</artifactId>
+ </exclusion>
+ </exclusions>
</dependency>
<dependency>
[servicecomb-java-chassis] 06/14: ServerListFilterExt add switch
Posted by li...@apache.org.
This is an automated email from the ASF dual-hosted git repository.
liubao pushed a commit to branch 1.3.x
in repository https://gitbox.apache.org/repos/asf/servicecomb-java-chassis.git
commit 1e8b28c74919f406b03a1a60fc4a3787fb3a75ec
Author: GuoYL <gy...@gmail.com>
AuthorDate: Fri Nov 8 12:35:03 2019 +0800
ServerListFilterExt add switch
---
.../src/main/java/org/apache/servicecomb/loadbalance/LoadBalancer.java | 3 +++
1 file changed, 3 insertions(+)
diff --git a/handlers/handler-loadbalance/src/main/java/org/apache/servicecomb/loadbalance/LoadBalancer.java b/handlers/handler-loadbalance/src/main/java/org/apache/servicecomb/loadbalance/LoadBalancer.java
index 6439cec..aced1f5 100644
--- a/handlers/handler-loadbalance/src/main/java/org/apache/servicecomb/loadbalance/LoadBalancer.java
+++ b/handlers/handler-loadbalance/src/main/java/org/apache/servicecomb/loadbalance/LoadBalancer.java
@@ -58,6 +58,9 @@ public class LoadBalancer {
List<ServiceCombServer> servers = invocation.getLocalContext(LoadbalanceHandler.CONTEXT_KEY_SERVER_LIST);
int serversCount = servers.size();
for (ServerListFilterExt filterExt : filters) {
+ if(!filterExt.enabled()) {
+ continue;
+ }
servers = filterExt.getFilteredListOfServers(servers, invocation);
if (servers.isEmpty() && serversCount > 0) {
LOGGER.warn("There are not servers exist after filtered by {}.", filterExt.getClass());
[servicecomb-java-chassis] 09/14: [SCB-1592]upgrade vert.x and
netty.(3)fixed testing failures and upgrade tcnetty
Posted by li...@apache.org.
This is an automated email from the ASF dual-hosted git repository.
liubao pushed a commit to branch 1.3.x
in repository https://gitbox.apache.org/repos/asf/servicecomb-java-chassis.git
commit dde1623585ff844654cc3321b289ecfb3389c684
Author: liubao <bi...@qq.com>
AuthorDate: Fri Nov 15 15:36:09 2019 +0800
[SCB-1592]upgrade vert.x and netty.(3)fixed testing failures and upgrade tcnetty
---
.../org/apache/servicecomb/edge/core/TestEdgeInvocation.java | 10 ++++++++++
java-chassis-dependencies/default/pom.xml | 2 +-
scripts/travis.sh | 2 +-
.../transport/rest/vertx/TestVertxRestDispatcher.java | 10 +++++++++-
4 files changed, 21 insertions(+), 3 deletions(-)
diff --git a/edge/edge-core/src/test/java/org/apache/servicecomb/edge/core/TestEdgeInvocation.java b/edge/edge-core/src/test/java/org/apache/servicecomb/edge/core/TestEdgeInvocation.java
index 8995cbd..177c44c 100644
--- a/edge/edge-core/src/test/java/org/apache/servicecomb/edge/core/TestEdgeInvocation.java
+++ b/edge/edge-core/src/test/java/org/apache/servicecomb/edge/core/TestEdgeInvocation.java
@@ -50,6 +50,7 @@ import org.junit.Test;
import org.junit.rules.ExpectedException;
import io.vertx.core.Context;
+import io.vertx.core.Vertx;
import io.vertx.core.impl.VertxImpl;
import io.vertx.ext.web.RoutingContext;
import mockit.Deencapsulation;
@@ -61,6 +62,8 @@ import mockit.Mocked;
public class TestEdgeInvocation {
String microserviceName = "ms";
+ @Mocked Vertx vertx;
+
@Mocked
RoutingContext routingContext;
@@ -87,6 +90,13 @@ public class TestEdgeInvocation {
@Before
public void setup() {
+ new Expectations() {
+ {
+ Vertx.currentContext();
+ result = context;
+ }
+ };
+
referenceConfig.setMicroserviceVersionRule(microserviceVersionRule);
referenceConfig.setTransport("rest");
diff --git a/java-chassis-dependencies/default/pom.xml b/java-chassis-dependencies/default/pom.xml
index 58d06e5..93117ea 100644
--- a/java-chassis-dependencies/default/pom.xml
+++ b/java-chassis-dependencies/default/pom.xml
@@ -102,7 +102,7 @@
<spring-cloud.version>Edgware.SR3</spring-cloud.version> <!-- Spring Zuul handling of gzip response has bug in version Dalston.SR1 -->
<swagger.version>1.5.22</swagger.version>
<swagger2markup.version>1.3.3</swagger2markup.version>
- <tcnetty.version>2.0.22.Final</tcnetty.version>
+ <tcnetty.version>2.0.26.Final</tcnetty.version>
<tec-zkclient.version>0.10</tec-zkclient.version>
<tomakehurst.version>2.6.0</tomakehurst.version>
<vertx.version>3.6.3</vertx.version>
diff --git a/scripts/travis.sh b/scripts/travis.sh
index 3d14395..7ce9978 100755
--- a/scripts/travis.sh
+++ b/scripts/travis.sh
@@ -31,7 +31,7 @@ if [ "$1" == "install" ]; then
if [ "$TAGGEDCOMMIT" == "true" ]; then
echo "Skipping the installation as it is tagged commit"
else
- mvn apache-rat:check -Dorg.slf4j.simpleLogger.log.org.apache.maven.cli.transfer.Slf4jMavenTransferListener=warn -B -Pit,samples,distribution
+ mvn apache-rat:check -Dorg.slf4j.simpleLogger.log.org.apache.maven.cli.transfer.Slf4jMavenTransferListener=warn -B -Pit,distribution
if [ $? != 0 ]; then
echo "${red}Rat check failed.${reset}"
exit 1
diff --git a/transports/transport-rest/transport-rest-vertx/src/test/java/org/apache/servicecomb/transport/rest/vertx/TestVertxRestDispatcher.java b/transports/transport-rest/transport-rest-vertx/src/test/java/org/apache/servicecomb/transport/rest/vertx/TestVertxRestDispatcher.java
index 2d8185c..b6e1861 100644
--- a/transports/transport-rest/transport-rest-vertx/src/test/java/org/apache/servicecomb/transport/rest/vertx/TestVertxRestDispatcher.java
+++ b/transports/transport-rest/transport-rest-vertx/src/test/java/org/apache/servicecomb/transport/rest/vertx/TestVertxRestDispatcher.java
@@ -47,6 +47,7 @@ import io.vertx.core.AsyncResult;
import io.vertx.core.Context;
import io.vertx.core.Handler;
import io.vertx.core.MultiMap;
+import io.vertx.core.Vertx;
import io.vertx.core.buffer.Buffer;
import io.vertx.core.http.Cookie;
import io.vertx.core.http.HttpMethod;
@@ -278,7 +279,7 @@ public class TestVertxRestDispatcher {
}
@Test
- public void onRequest(@Mocked Context context, @Mocked HttpServerRequest request,
+ public void onRequest(@Mocked Vertx vertx, @Mocked Context context, @Mocked HttpServerRequest request,
@Mocked SocketAddress socketAdrress) {
Map<String, Object> map = new HashMap<>();
RoutingContext routingContext = new MockUp<RoutingContext>() {
@@ -294,6 +295,13 @@ public class TestVertxRestDispatcher {
}
}.getMockInstance();
+ new Expectations() {
+ {
+ Vertx.currentContext();
+ result = context;
+ }
+ };
+
Deencapsulation.invoke(dispatcher, "onRequest", routingContext);
Assert.assertEquals(VertxRestInvocation.class, map.get(RestConst.REST_PRODUCER_INVOCATION).getClass());
[servicecomb-java-chassis] 07/14: [SCB-1592]upgrade vert.x and
netty.(1)update pom and fix compile errors
Posted by li...@apache.org.
This is an automated email from the ASF dual-hosted git repository.
liubao pushed a commit to branch 1.3.x
in repository https://gitbox.apache.org/repos/asf/servicecomb-java-chassis.git
commit 06d7f23c1848751597f5913fb2f4a7b938276ea7
Author: liubao <bi...@qq.com>
AuthorDate: Fri Nov 15 09:24:30 2019 +0800
[SCB-1592]upgrade vert.x and netty.(1)update pom and fix compile errors
---
.../servicecomb/edge/core/TestEdgeInvocation.java | 7 -
.../main/java/io/vertx/core/impl/SyncContext.java | 28 +-
.../main/java/io/vertx/core/impl/SyncVertx.java | 53 -
.../main/java/io/vertx/core/impl/VertxImpl.java | 1137 --------------------
.../main/java/io/vertx/core/impl/VertxImpl.java | 1118 -------------------
.../vertx/ext/web/impl/HttpServerRequestUtils.java | 26 -
.../VertxServerRequestToHttpServletRequest.java | 4 +-
.../vertx/stream/InputStreamToReadStream.java | 3 +-
.../vertx/stream/OutputStreamToWriteStream.java | 25 +-
.../ext/web/impl/TestHttpServerRequestUtils.java | 8 -
.../foundation/vertx/TestVertxUtils.java | 6 +-
.../vertx/client/TestClientPoolManager.java | 20 +-
.../vertx/client/tcp/TestTcpClientConnection.java | 1 +
.../foundation/vertx/http/TestReadStreamPart.java | 10 +-
...TestVertxServerRequestToHttpServletRequest.java | 11 +-
...stVertxServerResponseToHttpServletResponse.java | 17 +-
.../foundation/vertx/stream/TestPumpFromPart.java | 4 +-
.../rest/vertx/TestVertxRestDispatcher.java | 53 +-
18 files changed, 122 insertions(+), 2409 deletions(-)
diff --git a/edge/edge-core/src/test/java/org/apache/servicecomb/edge/core/TestEdgeInvocation.java b/edge/edge-core/src/test/java/org/apache/servicecomb/edge/core/TestEdgeInvocation.java
index a566085..8995cbd 100644
--- a/edge/edge-core/src/test/java/org/apache/servicecomb/edge/core/TestEdgeInvocation.java
+++ b/edge/edge-core/src/test/java/org/apache/servicecomb/edge/core/TestEdgeInvocation.java
@@ -87,13 +87,6 @@ public class TestEdgeInvocation {
@Before
public void setup() {
- new Expectations(VertxImpl.class) {
- {
- VertxImpl.context();
- result = context;
- }
- };
-
referenceConfig.setMicroserviceVersionRule(microserviceVersionRule);
referenceConfig.setTransport("rest");
diff --git a/foundations/foundation-test-scaffolding/src/main/java/io/vertx/core/impl/SyncContext.java b/foundations/foundation-test-scaffolding/src/main/java/io/vertx/core/impl/SyncContext.java
index 4fd3369..0640b48 100644
--- a/foundations/foundation-test-scaffolding/src/main/java/io/vertx/core/impl/SyncContext.java
+++ b/foundations/foundation-test-scaffolding/src/main/java/io/vertx/core/impl/SyncContext.java
@@ -19,20 +19,28 @@ package io.vertx.core.impl;
import java.util.concurrent.Executor;
import io.vertx.core.AsyncResult;
-import io.vertx.core.Future;
import io.vertx.core.Handler;
+import io.vertx.core.Promise;
+import io.vertx.core.Vertx;
import io.vertx.core.spi.metrics.PoolMetrics;
public class SyncContext extends EventLoopContext {
+ protected VertxInternal owner;
+
public SyncContext() {
this(null);
}
public SyncContext(VertxInternal vertx) {
super(vertx, null, null, null, null, null, null);
- if (SyncVertx.class.isInstance(vertx)) {
- ((SyncVertx) vertx).setContext(this);
- }
+ }
+
+ public VertxInternal owner() {
+ return owner;
+ }
+
+ public void setOwner(VertxInternal owner) {
+ this.owner = owner;
}
@Override
@@ -40,9 +48,9 @@ public class SyncContext extends EventLoopContext {
task.handle(null);
}
- public static <T> void syncExecuteBlocking(Handler<Future<T>> blockingCodeHandler,
+ public static <T> void syncExecuteBlocking(Handler<Promise<T>> blockingCodeHandler,
Handler<AsyncResult<T>> asyncResultHandler) {
- Future<T> res = Future.future();
+ Promise<T> res = Promise.promise();
try {
blockingCodeHandler.handle(res);
@@ -51,11 +59,11 @@ public class SyncContext extends EventLoopContext {
return;
}
- res.setHandler(asyncResultHandler);
+ res.future().setHandler(asyncResultHandler);
}
@Override
- public <T> void executeBlockingInternal(Handler<Future<T>> action, Handler<AsyncResult<T>> resultHandler) {
+ public <T> void executeBlockingInternal(Handler<Promise<T>> action, Handler<AsyncResult<T>> resultHandler) {
syncExecuteBlocking((future) -> {
try {
action.handle(future);
@@ -66,13 +74,13 @@ public class SyncContext extends EventLoopContext {
}
@Override
- public <T> void executeBlocking(Handler<Future<T>> blockingCodeHandler, boolean ordered,
+ public <T> void executeBlocking(Handler<Promise<T>> blockingCodeHandler, boolean ordered,
Handler<AsyncResult<T>> asyncResultHandler) {
syncExecuteBlocking(blockingCodeHandler, asyncResultHandler);
}
@Override
- <T> void executeBlocking(Handler<Future<T>> blockingCodeHandler,
+ <T> void executeBlocking(Handler<Promise<T>> blockingCodeHandler,
Handler<AsyncResult<T>> resultHandler,
Executor exec, TaskQueue queue, @SuppressWarnings("rawtypes") PoolMetrics metrics) {
syncExecuteBlocking(blockingCodeHandler, resultHandler);
diff --git a/foundations/foundation-test-scaffolding/src/main/java/io/vertx/core/impl/SyncVertx.java b/foundations/foundation-test-scaffolding/src/main/java/io/vertx/core/impl/SyncVertx.java
deleted file mode 100644
index c200ed7..0000000
--- a/foundations/foundation-test-scaffolding/src/main/java/io/vertx/core/impl/SyncVertx.java
+++ /dev/null
@@ -1,53 +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 io.vertx.core.AsyncResult;
-import io.vertx.core.Handler;
-import io.vertx.core.Vertx;
-import io.vertx.core.VertxOptions;
-import io.vertx.core.net.impl.transport.Transport;
-
-/**
- * after test finished, need to invoke vertx.close
- */
-public class SyncVertx extends VertxImpl {
- private ContextImpl context = new SyncContext(this);
-
- public SyncVertx() {
- this(new VertxOptions(), null);
- }
-
- protected SyncVertx(VertxOptions options, Handler<AsyncResult<Vertx>> resultHandler) {
- super(options, Transport.transport(options.getPreferNativeTransport()));
- init();
- }
-
- @Override
- public ContextImpl getContext() {
- return context;
- }
-
- public void setContext(ContextImpl context) {
- this.context = context;
- }
-
- @Override
- public ContextImpl getOrCreateContext() {
- return context;
- }
-}
diff --git a/foundations/foundation-test-scaffolding/src/main/java/io/vertx/core/impl/VertxImpl.java b/foundations/foundation-test-scaffolding/src/main/java/io/vertx/core/impl/VertxImpl.java
deleted file mode 100644
index 92dd1d0..0000000
--- a/foundations/foundation-test-scaffolding/src/main/java/io/vertx/core/impl/VertxImpl.java
+++ /dev/null
@@ -1,1137 +0,0 @@
-/*
- * Copyright (c) 2011-2017 Contributors to the Eclipse Foundation
- *
- * 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
- */
-
-package io.vertx.core.impl;
-
-import java.io.File;
-import java.io.IOException;
-import java.net.InetAddress;
-import java.net.InetSocketAddress;
-import java.util.ArrayList;
-import java.util.HashMap;
-import java.util.HashSet;
-import java.util.Map;
-import java.util.Objects;
-import java.util.Set;
-import java.util.concurrent.ConcurrentHashMap;
-import java.util.concurrent.ConcurrentMap;
-import java.util.concurrent.ExecutorService;
-import java.util.concurrent.Executors;
-import java.util.concurrent.ThreadFactory;
-import java.util.concurrent.TimeUnit;
-import java.util.concurrent.atomic.AtomicBoolean;
-import java.util.concurrent.atomic.AtomicInteger;
-import java.util.concurrent.atomic.AtomicLong;
-import java.util.function.Supplier;
-
-import io.netty.channel.EventLoop;
-import io.netty.channel.EventLoopGroup;
-import io.netty.resolver.AddressResolverGroup;
-import io.netty.util.ResourceLeakDetector;
-import io.netty.util.concurrent.GenericFutureListener;
-import io.vertx.core.AsyncResult;
-import io.vertx.core.Closeable;
-import io.vertx.core.Context;
-import io.vertx.core.DeploymentOptions;
-import io.vertx.core.Future;
-import io.vertx.core.Handler;
-import io.vertx.core.ServiceHelper;
-import io.vertx.core.TimeoutStream;
-import io.vertx.core.Verticle;
-import io.vertx.core.Vertx;
-import io.vertx.core.VertxOptions;
-import io.vertx.core.datagram.DatagramSocket;
-import io.vertx.core.datagram.DatagramSocketOptions;
-import io.vertx.core.datagram.impl.DatagramSocketImpl;
-import io.vertx.core.dns.AddressResolverOptions;
-import io.vertx.core.dns.DnsClient;
-import io.vertx.core.dns.DnsClientOptions;
-import io.vertx.core.dns.impl.DnsClientImpl;
-import io.vertx.core.eventbus.EventBus;
-import io.vertx.core.eventbus.impl.EventBusImpl;
-import io.vertx.core.eventbus.impl.clustered.ClusteredEventBus;
-import io.vertx.core.file.FileSystem;
-import io.vertx.core.file.impl.FileResolver;
-import io.vertx.core.file.impl.FileSystemImpl;
-import io.vertx.core.file.impl.WindowsFileSystem;
-import io.vertx.core.http.HttpClient;
-import io.vertx.core.http.HttpClientOptions;
-import io.vertx.core.http.HttpServer;
-import io.vertx.core.http.HttpServerOptions;
-import io.vertx.core.http.impl.HttpClientImpl;
-import io.vertx.core.http.impl.HttpServerImpl;
-import io.vertx.core.impl.resolver.DnsResolverProvider;
-import io.vertx.core.json.JsonObject;
-import io.vertx.core.logging.Logger;
-import io.vertx.core.logging.LoggerFactory;
-import io.vertx.core.net.NetClient;
-import io.vertx.core.net.NetClientOptions;
-import io.vertx.core.net.NetServer;
-import io.vertx.core.net.NetServerOptions;
-import io.vertx.core.net.impl.NetClientImpl;
-import io.vertx.core.net.impl.NetServerImpl;
-import io.vertx.core.net.impl.ServerID;
-import io.vertx.core.net.impl.transport.Transport;
-import io.vertx.core.shareddata.SharedData;
-import io.vertx.core.shareddata.impl.SharedDataImpl;
-import io.vertx.core.spi.VerticleFactory;
-import io.vertx.core.spi.VertxMetricsFactory;
-import io.vertx.core.spi.cluster.ClusterManager;
-import io.vertx.core.spi.metrics.Metrics;
-import io.vertx.core.spi.metrics.MetricsProvider;
-import io.vertx.core.spi.metrics.PoolMetrics;
-import io.vertx.core.spi.metrics.VertxMetrics;
-
-/**
- * @author <a href="http://tfox.org">Tim Fox</a>
- */
-public class VertxImpl implements VertxInternal, MetricsProvider {
-
- private static final Logger log = LoggerFactory.getLogger(VertxImpl.class);
-
- private static final String CLUSTER_MAP_NAME = "__vertx.haInfo";
- private static final String NETTY_IO_RATIO_PROPERTY_NAME = "vertx.nettyIORatio";
- private static final int NETTY_IO_RATIO = Integer.getInteger(NETTY_IO_RATIO_PROPERTY_NAME, 50);
-
- static {
- // Netty resource leak detection has a performance overhead and we do not need it in Vert.x
- ResourceLeakDetector.setLevel(ResourceLeakDetector.Level.DISABLED);
- // Use the JDK deflater/inflater by default
- System.setProperty("io.netty.noJdkZlibDecoder", "false");
- }
-
- static VertxImpl vertx(VertxOptions options) {
- VertxImpl vertx = new VertxImpl(options, Transport.transport(options.getPreferNativeTransport()));
- vertx.init();
- return vertx;
- }
-
- static VertxImpl vertx(VertxOptions options, Transport transport) {
- VertxImpl vertx = new VertxImpl(options, transport);
- vertx.init();
- return vertx;
- }
-
- static void clusteredVertx(VertxOptions options, Handler<AsyncResult<Vertx>> resultHandler) {
- VertxImpl vertx = new VertxImpl(options, Transport.transport(options.getPreferNativeTransport()));
- vertx.joinCluster(options, resultHandler);
- }
-
- private final FileSystem fileSystem = getFileSystem();
- private final SharedData sharedData;
- private final VertxMetrics metrics;
- private final ConcurrentMap<Long, InternalTimerHandler> timeouts = new ConcurrentHashMap<>();
- private final AtomicLong timeoutCounter = new AtomicLong(0);
- private final ClusterManager clusterManager;
- private final DeploymentManager deploymentManager;
- private final FileResolver fileResolver;
- private final Map<ServerID, HttpServerImpl> sharedHttpServers = new HashMap<>();
- private final Map<ServerID, NetServerImpl> sharedNetServers = new HashMap<>();
- final WorkerPool workerPool;
- final WorkerPool internalBlockingPool;
- private final ThreadFactory eventLoopThreadFactory;
- private final EventLoopGroup eventLoopGroup;
- private final EventLoopGroup acceptorEventLoopGroup;
- private final BlockedThreadChecker checker;
- private final AddressResolver addressResolver;
- private final AddressResolverOptions addressResolverOptions;
- private final EventBus eventBus;
- private volatile HAManager haManager;
- private boolean closed;
- private volatile Handler<Throwable> exceptionHandler;
- private final Map<String, SharedWorkerPool> namedWorkerPools;
- private final int defaultWorkerPoolSize;
- private final long defaultWorkerMaxExecTime;
- private final CloseHooks closeHooks;
- private final Transport transport;
-
- @SuppressWarnings("rawtypes")
- public VertxImpl(VertxOptions options, Transport transport) {
- // Sanity check
- if (Vertx.currentContext() != null) {
- log.warn("You're already on a Vert.x context, are you sure you want to create a new Vertx instance?");
- }
- closeHooks = new CloseHooks(log);
- checker = new BlockedThreadChecker(options.getBlockedThreadCheckInterval(), options.getBlockedThreadCheckIntervalUnit(), options.getWarningExceptionTime(), options.getWarningExceptionTimeUnit());
- eventLoopThreadFactory = new VertxThreadFactory("vert.x-eventloop-thread-", checker, false, options.getMaxEventLoopExecuteTime(), options.getMaxEventLoopExecuteTimeUnit());
- eventLoopGroup = transport.eventLoopGroup(options.getEventLoopPoolSize(), eventLoopThreadFactory, NETTY_IO_RATIO);
- ThreadFactory acceptorEventLoopThreadFactory = new VertxThreadFactory("vert.x-acceptor-thread-", checker, false, options.getMaxEventLoopExecuteTime(), options.getMaxEventLoopExecuteTimeUnit());
- // The acceptor event loop thread needs to be from a different pool otherwise can get lags in accepted connections
- // under a lot of load
- acceptorEventLoopGroup = transport.eventLoopGroup(1, acceptorEventLoopThreadFactory, 100);
-
- metrics = initialiseMetrics(options);
-
- ExecutorService workerExec = Executors.newFixedThreadPool(options.getWorkerPoolSize(),
- new VertxThreadFactory("vert.x-worker-thread-", checker, true, options.getMaxWorkerExecuteTime(), options.getMaxWorkerExecuteTimeUnit()));
- PoolMetrics workerPoolMetrics = metrics != null ? metrics.createPoolMetrics("worker", "vert.x-worker-thread", options.getWorkerPoolSize()) : null;
- ExecutorService internalBlockingExec = Executors.newFixedThreadPool(options.getInternalBlockingPoolSize(),
- new VertxThreadFactory("vert.x-internal-blocking-", checker, true, options.getMaxWorkerExecuteTime(), options.getMaxWorkerExecuteTimeUnit()));
- PoolMetrics internalBlockingPoolMetrics = metrics != null ? metrics.createPoolMetrics("worker", "vert.x-internal-blocking", options.getInternalBlockingPoolSize()) : null;
- internalBlockingPool = new WorkerPool(internalBlockingExec, internalBlockingPoolMetrics);
- namedWorkerPools = new HashMap<>();
- workerPool = new WorkerPool(workerExec, workerPoolMetrics);
- defaultWorkerPoolSize = options.getWorkerPoolSize();
- defaultWorkerMaxExecTime = options.getMaxWorkerExecuteTime();
-
- this.transport = transport;
- this.fileResolver = new FileResolver(options.getFileSystemOptions());
- this.addressResolverOptions = options.getAddressResolverOptions();
- this.addressResolver = new AddressResolver(this, options.getAddressResolverOptions());
- this.deploymentManager = new DeploymentManager(this);
- if (options.isClustered()) {
- this.clusterManager = getClusterManager(options);
- this.eventBus = new ClusteredEventBus(this, options, clusterManager);
- } else {
- this.clusterManager = null;
- this.eventBus = new EventBusImpl(this);
- }
- this.sharedData = new SharedDataImpl(this, clusterManager);
- }
-
- public void init() {
- eventBus.start(ar -> {});
- if (metrics != null) {
- metrics.vertxCreated(this);
- }
- }
-
- private void joinCluster(VertxOptions options, Handler<AsyncResult<Vertx>> resultHandler) {
- clusterManager.setVertx(this);
- clusterManager.join(ar -> {
- if (ar.succeeded()) {
- createHaManager(options, resultHandler);
- } else {
- log.error("Failed to join cluster", ar.cause());
- resultHandler.handle(Future.failedFuture(ar.cause()));
- }
- });
- }
-
- private void createHaManager(VertxOptions options, Handler<AsyncResult<Vertx>> resultHandler) {
- this.<Map<String, String>>executeBlocking(fut -> {
- fut.complete(clusterManager.getSyncMap(CLUSTER_MAP_NAME));
- }, false, ar -> {
- if (ar.succeeded()) {
- Map<String, String> clusterMap = ar.result();
- haManager = new HAManager(this, deploymentManager, clusterManager, clusterMap, options.getQuorumSize(), options.getHAGroup(), options.isHAEnabled());
- startEventBus(resultHandler);
- } else {
- log.error("Failed to start HAManager", ar.cause());
- resultHandler.handle(Future.failedFuture(ar.cause()));
- }
- });
- }
-
- private void startEventBus(Handler<AsyncResult<Vertx>> resultHandler) {
- eventBus.start(ar -> {
- if (ar.succeeded()) {
- initializeHaManager(resultHandler);
- } else {
- log.error("Failed to start event bus", ar.cause());
- resultHandler.handle(Future.failedFuture(ar.cause()));
- }
- });
- }
-
- private void initializeHaManager(Handler<AsyncResult<Vertx>> resultHandler) {
- this.executeBlocking(fut -> {
- // Init the manager (i.e register listener and check the quorum)
- // after the event bus has been fully started and updated its state
- // it will have also set the clustered changed view handler on the ha manager
- haManager.init();
- fut.complete();
- }, false, ar -> {
- if (ar.succeeded()) {
- if (metrics != null) {
- metrics.vertxCreated(this);
- }
- resultHandler.handle(Future.succeededFuture(this));
- } else {
- log.error("Failed to initialize HAManager", ar.cause());
- resultHandler.handle(Future.failedFuture(ar.cause()));
- }
- });
- }
-
- /**
- * @return The FileSystem implementation for the OS
- */
- protected FileSystem getFileSystem() {
- return Utils.isWindows() ? new WindowsFileSystem(this) : new FileSystemImpl(this);
- }
-
- @Override
- public DatagramSocket createDatagramSocket(DatagramSocketOptions options) {
- return DatagramSocketImpl.create(this, options);
- }
-
- @Override
- public DatagramSocket createDatagramSocket() {
- return createDatagramSocket(new DatagramSocketOptions());
- }
-
- public NetServer createNetServer(NetServerOptions options) {
- return new NetServerImpl(this, options);
- }
-
- @Override
- public NetServer createNetServer() {
- return createNetServer(new NetServerOptions());
- }
-
- public NetClient createNetClient(NetClientOptions options) {
- return new NetClientImpl(this, options);
- }
-
- @Override
- public NetClient createNetClient() {
- return createNetClient(new NetClientOptions());
- }
-
- @Override
- public Transport transport() {
- return transport;
- }
-
- @Override
- public boolean isNativeTransportEnabled() {
- return transport != Transport.JDK;
- }
-
- public FileSystem fileSystem() {
- return fileSystem;
- }
-
- public SharedData sharedData() {
- return sharedData;
- }
-
- public HttpServer createHttpServer(HttpServerOptions serverOptions) {
- return new HttpServerImpl(this, serverOptions);
- }
-
- @Override
- public HttpServer createHttpServer() {
- return createHttpServer(new HttpServerOptions());
- }
-
- public HttpClient createHttpClient(HttpClientOptions options) {
- return new HttpClientImpl(this, options);
- }
-
- @Override
- public HttpClient createHttpClient() {
- return createHttpClient(new HttpClientOptions());
- }
-
- public EventBus eventBus() {
- return eventBus;
- }
-
- public long setPeriodic(long delay, Handler<Long> handler) {
- return scheduleTimeout(getOrCreateContext(), handler, delay, true);
- }
-
- @Override
- public TimeoutStream periodicStream(long delay) {
- return new TimeoutStreamImpl(delay, true);
- }
-
- public long setTimer(long delay, Handler<Long> handler) {
- return scheduleTimeout(getOrCreateContext(), handler, delay, false);
- }
-
- @Override
- public TimeoutStream timerStream(long delay) {
- return new TimeoutStreamImpl(delay, false);
- }
-
- public void runOnContext(Handler<Void> task) {
- ContextImpl context = getOrCreateContext();
- context.runOnContext(task);
- }
-
- // The background pool is used for making blocking calls to legacy synchronous APIs
- public ExecutorService getWorkerPool() {
- return workerPool.executor();
- }
-
- public EventLoopGroup getEventLoopGroup() {
- return eventLoopGroup;
- }
-
- public EventLoopGroup getAcceptorEventLoopGroup() {
- return acceptorEventLoopGroup;
- }
-
- public ContextImpl getOrCreateContext() {
- ContextImpl ctx = getContext();
- if (ctx == null) {
- // We are running embedded - Create a context
- ctx = createEventLoopContext(null, null, new JsonObject(), Thread.currentThread().getContextClassLoader());
- }
- return ctx;
- }
-
- public Map<ServerID, HttpServerImpl> sharedHttpServers() {
- return sharedHttpServers;
- }
-
- public Map<ServerID, NetServerImpl> sharedNetServers() {
- return sharedNetServers;
- }
-
- @Override
- public boolean isMetricsEnabled() {
- return metrics != null;
- }
-
- @Override
- public Metrics getMetrics() {
- return metrics;
- }
-
- public boolean cancelTimer(long id) {
- InternalTimerHandler handler = timeouts.remove(id);
- if (handler != null) {
- handler.context.removeCloseHook(handler);
- return handler.cancel();
- } else {
- return false;
- }
- }
-
- @Override
- public EventLoopContext createEventLoopContext(String deploymentID, WorkerPool workerPool, JsonObject config, ClassLoader tccl) {
- return new EventLoopContext(this, internalBlockingPool, workerPool != null ? workerPool : this.workerPool, deploymentID, config, tccl);
- }
-
- @Override
- public ContextImpl createWorkerContext(boolean multiThreaded, String deploymentID, WorkerPool workerPool, JsonObject config,
- ClassLoader tccl) {
- if (workerPool == null) {
- workerPool = this.workerPool;
- }
- if (multiThreaded) {
- return new MultiThreadedWorkerContext(this, internalBlockingPool, workerPool, deploymentID, config, tccl);
- } else {
- return new WorkerContext(this, internalBlockingPool, workerPool, deploymentID, config, tccl);
- }
- }
-
- @Override
- public DnsClient createDnsClient(int port, String host) {
- return createDnsClient(new DnsClientOptions().setHost(host).setPort(port));
- }
-
- @Override
- public DnsClient createDnsClient() {
- return createDnsClient(new DnsClientOptions());
- }
-
- @Override
- public DnsClient createDnsClient(DnsClientOptions options) {
- String host = options.getHost();
- int port = options.getPort();
- if (host == null || port < 0) {
- DnsResolverProvider provider = new DnsResolverProvider(this, addressResolverOptions);
- InetSocketAddress address = provider.nameServerAddresses().get(0);
- // provide the host and port
- options = new DnsClientOptions(options)
- .setHost(address.getAddress().getHostAddress())
- .setPort(address.getPort());
- }
- return new DnsClientImpl(this, options);
- }
-
- private VertxMetrics initialiseMetrics(VertxOptions options) {
- if (options.getMetricsOptions() != null && options.getMetricsOptions().isEnabled()) {
- VertxMetricsFactory factory = options.getMetricsOptions().getFactory();
- if (factory == null) {
- factory = ServiceHelper.loadFactoryOrNull(VertxMetricsFactory.class);
- if (factory == null) {
- log.warn("Metrics has been set to enabled but no VertxMetricsFactory found on classpath");
- }
- }
- if (factory != null) {
- VertxMetrics metrics = factory.metrics(options);
- Objects.requireNonNull(metrics, "The metric instance created from " + factory + " cannot be null");
- return metrics;
- }
- }
- return null;
- }
-
- private ClusterManager getClusterManager(VertxOptions options) {
- ClusterManager mgr = options.getClusterManager();
- if (mgr == null) {
- String clusterManagerClassName = System.getProperty("vertx.cluster.managerClass");
- if (clusterManagerClassName != null) {
- // We allow specify a sys prop for the cluster manager factory which overrides ServiceLoader
- try {
- Class<?> clazz = Class.forName(clusterManagerClassName);
- mgr = (ClusterManager) clazz.newInstance();
- } catch (Exception e) {
- throw new IllegalStateException("Failed to instantiate " + clusterManagerClassName, e);
- }
- } else {
- mgr = ServiceHelper.loadFactoryOrNull(ClusterManager.class);
- if (mgr == null) {
- throw new IllegalStateException("No ClusterManagerFactory instances found on classpath");
- }
- }
- }
- return mgr;
- }
-
- private long scheduleTimeout(ContextImpl context, Handler<Long> handler, long delay, boolean periodic) {
- if (delay < 1) {
- throw new IllegalArgumentException("Cannot schedule a timer with delay < 1 ms");
- }
- long timerId = timeoutCounter.getAndIncrement();
- InternalTimerHandler task = new InternalTimerHandler(timerId, handler, periodic, delay, context);
- timeouts.put(timerId, task);
- context.addCloseHook(task);
- return timerId;
- }
-
- public static Context context() {
- Thread current = Thread.currentThread();
- if (current instanceof VertxThread) {
- return ((VertxThread) current).getContext();
- }
- return null;
- }
-
- public ContextImpl getContext() {
- ContextImpl context = (ContextImpl) context();
- if (context != null && context.owner == this) {
- return context;
- }
- return null;
- }
-
- public ClusterManager getClusterManager() {
- return clusterManager;
- }
-
- @Override
- public void close() {
- close(null);
- }
-
- private void closeClusterManager(Handler<AsyncResult<Void>> completionHandler) {
- if (clusterManager != null) {
- clusterManager.leave(ar -> {
- if (ar.failed()) {
- log.error("Failed to leave cluster", ar.cause());
- }
- if (completionHandler != null) {
- runOnContext(v -> completionHandler.handle(Future.succeededFuture()));
- }
- });
- } else if (completionHandler != null) {
- runOnContext(v -> completionHandler.handle(Future.succeededFuture()));
- }
- }
-
- @Override
- public synchronized void close(Handler<AsyncResult<Void>> completionHandler) {
- if (closed || eventBus == null) {
- // Just call the handler directly since pools shutdown
- if (completionHandler != null) {
- completionHandler.handle(Future.succeededFuture());
- }
- return;
- }
- closed = true;
-
- closeHooks.run(ar -> {
- deploymentManager.undeployAll(ar1 -> {
- HAManager haManager = haManager();
- Future<Void> haFuture = Future.future();
- if (haManager != null) {
- this.executeBlocking(fut -> {
- haManager.stop();
- fut.complete();
- }, false, haFuture);
- } else {
- haFuture.complete();
- }
- haFuture.setHandler(ar2 -> {
- addressResolver.close(ar3 -> {
- eventBus.close(ar4 -> {
- closeClusterManager(ar5 -> {
- // Copy set to prevent ConcurrentModificationException
- Set<HttpServerImpl> httpServers = new HashSet<>(sharedHttpServers.values());
- Set<NetServerImpl> netServers = new HashSet<>(sharedNetServers.values());
- sharedHttpServers.clear();
- sharedNetServers.clear();
-
- int serverCount = httpServers.size() + netServers.size();
-
- AtomicInteger serverCloseCount = new AtomicInteger();
-
- Handler<AsyncResult<Void>> serverCloseHandler = res -> {
- if (res.failed()) {
- log.error("Failure in shutting down server", res.cause());
- }
- if (serverCloseCount.incrementAndGet() == serverCount) {
- deleteCacheDirAndShutdown(completionHandler);
- }
- };
-
- for (HttpServerImpl server : httpServers) {
- server.closeAll(serverCloseHandler);
- }
- for (NetServerImpl server : netServers) {
- server.closeAll(serverCloseHandler);
- }
- if (serverCount == 0) {
- deleteCacheDirAndShutdown(completionHandler);
- }
- });
- });
- });
- });
- });
- });
- }
-
- @Override
- public void deployVerticle(Verticle verticle) {
- deployVerticle(verticle, new DeploymentOptions(), null);
- }
-
- @Override
- public void deployVerticle(Verticle verticle, Handler<AsyncResult<String>> completionHandler) {
- deployVerticle(verticle, new DeploymentOptions(), completionHandler);
- }
-
- @Override
- public void deployVerticle(String name, Handler<AsyncResult<String>> completionHandler) {
- deployVerticle(name, new DeploymentOptions(), completionHandler);
- }
-
- @Override
- public void deployVerticle(Verticle verticle, DeploymentOptions options) {
- deployVerticle(verticle, options, null);
- }
-
- @Override
- public void deployVerticle(Class<? extends Verticle> verticleClass, DeploymentOptions options) {
- deployVerticle(() -> {
- try {
- return verticleClass.newInstance();
- } catch (Exception e) {
- throw new RuntimeException(e);
- }
- }, options);
- }
-
- @Override
- public void deployVerticle(Supplier<Verticle> verticleSupplier, DeploymentOptions options) {
- deployVerticle(verticleSupplier, options, null);
- }
-
- @Override
- public void deployVerticle(Verticle verticle, DeploymentOptions options, Handler<AsyncResult<String>> completionHandler) {
- if (options.getInstances() != 1) {
- throw new IllegalArgumentException("Can't specify > 1 instances for already created verticle");
- }
- deployVerticle(() -> verticle, options, completionHandler);
- }
-
- @Override
- public void deployVerticle(Class<? extends Verticle> verticleClass, DeploymentOptions options, Handler<AsyncResult<String>> completionHandler) {
- deployVerticle(() -> {
- try {
- return verticleClass.newInstance();
- } catch (Exception e) {
- throw new RuntimeException(e);
- }
- }, options, completionHandler);
- }
-
- @Override
- public void deployVerticle(Supplier<Verticle> verticleSupplier, DeploymentOptions options, Handler<AsyncResult<String>> completionHandler) {
- boolean closed;
- synchronized (this) {
- closed = this.closed;
- }
- if (closed) {
- if (completionHandler != null) {
- completionHandler.handle(Future.failedFuture("Vert.x closed"));
- }
- } else {
- deploymentManager.deployVerticle(verticleSupplier, options, completionHandler);
- }
- }
-
- @Override
- public void deployVerticle(String name) {
- deployVerticle(name, new DeploymentOptions(), null);
- }
-
- @Override
- public void deployVerticle(String name, DeploymentOptions options) {
- deployVerticle(name, options, null);
- }
-
- @Override
- public void deployVerticle(String name, DeploymentOptions options, Handler<AsyncResult<String>> completionHandler) {
- if (options.isHa() && haManager() != null && haManager().isEnabled()) {
- haManager().deployVerticle(name, options, completionHandler);
- } else {
- deploymentManager.deployVerticle(name, options, completionHandler);
- }
- }
-
- @Override
- public String getNodeID() {
- return clusterManager.getNodeID();
- }
-
- @Override
- public void undeploy(String deploymentID) {
- undeploy(deploymentID, res -> {
- });
- }
-
- @Override
- public void undeploy(String deploymentID, Handler<AsyncResult<Void>> completionHandler) {
- HAManager haManager = haManager();
- Future<Void> haFuture = Future.future();
- if (haManager != null && haManager.isEnabled()) {
- this.executeBlocking(fut -> {
- haManager.removeFromHA(deploymentID);
- fut.complete();
- }, false, haFuture);
- } else {
- haFuture.complete();
- }
- haFuture.compose(v -> {
- Future<Void> deploymentFuture = Future.future();
- deploymentManager.undeployVerticle(deploymentID, deploymentFuture);
- return deploymentFuture;
- }).setHandler(completionHandler);
- }
-
- @Override
- public Set<String> deploymentIDs() {
- return deploymentManager.deployments();
- }
-
- @Override
- public void registerVerticleFactory(VerticleFactory factory) {
- deploymentManager.registerVerticleFactory(factory);
- }
-
- @Override
- public void unregisterVerticleFactory(VerticleFactory factory) {
- deploymentManager.unregisterVerticleFactory(factory);
- }
-
- @Override
- public Set<VerticleFactory> verticleFactories() {
- return deploymentManager.verticleFactories();
- }
-
- @Override
- public <T> void executeBlockingInternal(Handler<Future<T>> blockingCodeHandler, Handler<AsyncResult<T>> resultHandler) {
- ContextImpl context = getOrCreateContext();
-
- context.executeBlockingInternal(blockingCodeHandler, resultHandler);
- }
-
- @Override
- public <T> void executeBlocking(Handler<Future<T>> blockingCodeHandler, boolean ordered,
- Handler<AsyncResult<T>> asyncResultHandler) {
- ContextImpl context = getOrCreateContext();
- context.executeBlocking(blockingCodeHandler, ordered, asyncResultHandler);
- }
-
- @Override
- public <T> void executeBlocking(Handler<Future<T>> blockingCodeHandler,
- Handler<AsyncResult<T>> asyncResultHandler) {
- executeBlocking(blockingCodeHandler, true, asyncResultHandler);
- }
-
- @Override
- public boolean isClustered() {
- return clusterManager != null;
- }
-
- @Override
- public EventLoopGroup nettyEventLoopGroup() {
- return eventLoopGroup;
- }
-
- // For testing
- public void simulateKill() {
- if (haManager() != null) {
- haManager().simulateKill();
- }
- }
-
- @Override
- public Deployment getDeployment(String deploymentID) {
- return deploymentManager.getDeployment(deploymentID);
- }
-
- @Override
- public synchronized void failoverCompleteHandler(FailoverCompleteHandler failoverCompleteHandler) {
- if (haManager() != null) {
- haManager().setFailoverCompleteHandler(failoverCompleteHandler);
- }
- }
-
- @Override
- public boolean isKilled() {
- return haManager().isKilled();
- }
-
- @Override
- public void failDuringFailover(boolean fail) {
- if (haManager() != null) {
- haManager().failDuringFailover(fail);
- }
- }
-
- @Override
- public VertxMetrics metricsSPI() {
- return metrics;
- }
-
- @Override
- public File resolveFile(String fileName) {
- return fileResolver.resolveFile(fileName);
- }
-
- @Override
- public void resolveAddress(String hostname, Handler<AsyncResult<InetAddress>> resultHandler) {
- addressResolver.resolveHostname(hostname, resultHandler);
- }
-
- @Override
- public AddressResolver addressResolver() {
- return addressResolver;
- }
-
- @Override
- public AddressResolverGroup<InetSocketAddress> nettyAddressResolverGroup() {
- return addressResolver.nettyAddressResolverGroup();
- }
-
- @SuppressWarnings({"unchecked", "rawtypes"})
- private void deleteCacheDirAndShutdown(Handler<AsyncResult<Void>> completionHandler) {
- executeBlockingInternal(fut -> {
- try {
- fileResolver.close();
- fut.complete();
- } catch (IOException e) {
- fut.tryFail(e);
- }
- }, ar -> {
-
- workerPool.close();
- internalBlockingPool.close();
- new ArrayList<>(namedWorkerPools.values()).forEach(WorkerPool::close);
-
- acceptorEventLoopGroup.shutdownGracefully(0, 10, TimeUnit.SECONDS).addListener(new GenericFutureListener() {
- @Override
- public void operationComplete(io.netty.util.concurrent.Future future) throws Exception {
- if (!future.isSuccess()) {
- log.warn("Failure in shutting down acceptor event loop group", future.cause());
- }
- eventLoopGroup.shutdownGracefully(0, 10, TimeUnit.SECONDS).addListener(new GenericFutureListener() {
- @Override
- public void operationComplete(io.netty.util.concurrent.Future future) throws Exception {
- if (!future.isSuccess()) {
- log.warn("Failure in shutting down event loop group", future.cause());
- }
- if (metrics != null) {
- metrics.close();
- }
-
- checker.close();
-
- if (completionHandler != null) {
- eventLoopThreadFactory.newThread(() -> {
- completionHandler.handle(Future.succeededFuture());
- }).start();
- }
- }
- });
- }
- });
- });
- }
-
- public HAManager haManager() {
- return haManager;
- }
-
- private class InternalTimerHandler implements Handler<Void>, Closeable {
- final Handler<Long> handler;
- final boolean periodic;
- final long timerID;
- final ContextImpl context;
- final java.util.concurrent.Future<?> future;
- final AtomicBoolean cancelled;
-
- boolean cancel() {
- if (cancelled.compareAndSet(false, true)) {
- if (metrics != null) {
- metrics.timerEnded(timerID, true);
- }
- future.cancel(false);
- return true;
- } else {
- return false;
- }
- }
-
- InternalTimerHandler(long timerID, Handler<Long> runnable, boolean periodic, long delay, ContextImpl context) {
- this.context = context;
- this.timerID = timerID;
- this.handler = runnable;
- this.periodic = periodic;
- this.cancelled = new AtomicBoolean();
- EventLoop el = context.nettyEventLoop();
- Runnable toRun = () -> context.runOnContext(this);
- if (periodic) {
- future = el.scheduleAtFixedRate(toRun, delay, delay, TimeUnit.MILLISECONDS);
- } else {
- future = el.schedule(toRun, delay, TimeUnit.MILLISECONDS);
- }
- if (metrics != null) {
- metrics.timerCreated(timerID);
- }
- }
-
- public void handle(Void v) {
- if (!cancelled.get()) {
- try {
- handler.handle(timerID);
- } finally {
- if (!periodic) {
- // Clean up after it's fired
- cleanupNonPeriodic();
- }
- }
- }
- }
-
- private void cleanupNonPeriodic() {
- VertxImpl.this.timeouts.remove(timerID);
- if (metrics != null) {
- metrics.timerEnded(timerID, false);
- }
- ContextImpl context = getContext();
- if (context != null) {
- context.removeCloseHook(this);
- }
- }
-
- // Called via Context close hook when Verticle is undeployed
- public void close(Handler<AsyncResult<Void>> completionHandler) {
- VertxImpl.this.timeouts.remove(timerID);
- cancel();
- completionHandler.handle(Future.succeededFuture());
- }
-
- }
-
- /*
- *
- * This class is optimised for performance when used on the same event loop that is was passed to the handler with.
- * However it can be used safely from other threads.
- *
- * The internal state is protected using the synchronized keyword. If always used on the same event loop, then
- * we benefit from biased locking which makes the overhead of synchronized near zero.
- *
- */
- private class TimeoutStreamImpl implements TimeoutStream, Handler<Long> {
-
- private final long delay;
- private final boolean periodic;
-
- private Long id;
- private Handler<Long> handler;
- private Handler<Void> endHandler;
- private long demand;
-
- public TimeoutStreamImpl(long delay, boolean periodic) {
- this.delay = delay;
- this.periodic = periodic;
- this.demand = Long.MAX_VALUE;
- }
-
- @Override
- public synchronized void handle(Long event) {
- try {
- if (demand > 0) {
- demand--;
- handler.handle(event);
- }
- } finally {
- if (!periodic && endHandler != null) {
- endHandler.handle(null);
- }
- }
- }
-
- @Override
- public synchronized TimeoutStream fetch(long amount) {
- demand += amount;
- if (demand < 0) {
- demand = Long.MAX_VALUE;
- }
- return this;
- }
-
- @Override
- public TimeoutStream exceptionHandler(Handler<Throwable> handler) {
- return this;
- }
-
- @Override
- public void cancel() {
- if (id != null) {
- VertxImpl.this.cancelTimer(id);
- }
- }
-
- @Override
- public synchronized TimeoutStream handler(Handler<Long> handler) {
- if (handler != null) {
- if (id != null) {
- throw new IllegalStateException();
- }
- this.handler = handler;
- id = scheduleTimeout(getOrCreateContext(), this, delay, periodic);
- } else {
- cancel();
- }
- return this;
- }
-
- @Override
- public synchronized TimeoutStream pause() {
- demand = 0;
- return this;
- }
-
- @Override
- public synchronized TimeoutStream resume() {
- demand = Long.MAX_VALUE;
- return this;
- }
-
- @Override
- public synchronized TimeoutStream endHandler(Handler<Void> endHandler) {
- this.endHandler = endHandler;
- return this;
- }
- }
-
- class SharedWorkerPool extends WorkerPool {
-
- private final String name;
- private int refCount = 1;
-
- @SuppressWarnings("rawtypes")
- SharedWorkerPool(String name, ExecutorService workerExec, PoolMetrics workerMetrics) {
- super(workerExec, workerMetrics);
- this.name = name;
- }
-
- @Override
- void close() {
- synchronized (VertxImpl.this) {
- if (refCount > 0) {
- refCount = 0;
- super.close();
- }
- }
- }
-
- void release() {
- synchronized (VertxImpl.this) {
- if (--refCount == 0) {
- namedWorkerPools.remove(name);
- super.close();
- }
- }
- }
- }
-
- @Override
- public WorkerExecutorImpl createSharedWorkerExecutor(String name) {
- return createSharedWorkerExecutor(name, defaultWorkerPoolSize);
- }
-
- @Override
- public WorkerExecutorImpl createSharedWorkerExecutor(String name, int poolSize) {
- return createSharedWorkerExecutor(name, poolSize, defaultWorkerMaxExecTime);
- }
-
- @Override
- public synchronized WorkerExecutorImpl createSharedWorkerExecutor(String name, int poolSize, long maxExecuteTime) {
- return createSharedWorkerExecutor(name, poolSize, maxExecuteTime, TimeUnit.NANOSECONDS);
- }
-
- @SuppressWarnings("rawtypes")
- @Override
- public synchronized WorkerExecutorImpl createSharedWorkerExecutor(String name, int poolSize, long maxExecuteTime, TimeUnit maxExecuteTimeUnit) {
- if (poolSize < 1) {
- throw new IllegalArgumentException("poolSize must be > 0");
- }
- if (maxExecuteTime < 1) {
- throw new IllegalArgumentException("maxExecuteTime must be > 0");
- }
- SharedWorkerPool sharedWorkerPool = namedWorkerPools.get(name);
- if (sharedWorkerPool == null) {
- ExecutorService workerExec = Executors.newFixedThreadPool(poolSize, new VertxThreadFactory(name + "-", checker, true, maxExecuteTime, maxExecuteTimeUnit));
- PoolMetrics workerMetrics = metrics != null ? metrics.createPoolMetrics("worker", name, poolSize) : null;
- namedWorkerPools.put(name, sharedWorkerPool = new SharedWorkerPool(name, workerExec, workerMetrics));
- } else {
- sharedWorkerPool.refCount++;
- }
- ContextImpl context = getOrCreateContext();
- WorkerExecutorImpl namedExec = new WorkerExecutorImpl(context, sharedWorkerPool);
- context.addCloseHook(namedExec);
- return namedExec;
- }
-
- @Override
- public Vertx exceptionHandler(Handler<Throwable> handler) {
- exceptionHandler = handler;
- return this;
- }
-
- @Override
- public Handler<Throwable> exceptionHandler() {
- return exceptionHandler;
- }
-
- @Override
- public void addCloseHook(Closeable hook) {
- closeHooks.add(hook);
- }
-
- @Override
- public void removeCloseHook(Closeable hook) {
- closeHooks.remove(hook);
- }
-}
diff --git a/foundations/foundation-vertx/src/main/java/io/vertx/core/impl/VertxImpl.java b/foundations/foundation-vertx/src/main/java/io/vertx/core/impl/VertxImpl.java
deleted file mode 100644
index ef61ee2..0000000
--- a/foundations/foundation-vertx/src/main/java/io/vertx/core/impl/VertxImpl.java
+++ /dev/null
@@ -1,1118 +0,0 @@
-/*
- * Copyright (c) 2011-2017 Contributors to the Eclipse Foundation
- *
- * 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
- */
-
-package io.vertx.core.impl;
-
-import io.netty.channel.EventLoop;
-import io.netty.channel.EventLoopGroup;
-import io.netty.resolver.AddressResolverGroup;
-import io.netty.util.ResourceLeakDetector;
-import io.netty.util.concurrent.GenericFutureListener;
-import io.vertx.core.*;
-import io.vertx.core.Future;
-import io.vertx.core.datagram.DatagramSocket;
-import io.vertx.core.datagram.DatagramSocketOptions;
-import io.vertx.core.datagram.impl.DatagramSocketImpl;
-import io.vertx.core.dns.AddressResolverOptions;
-import io.vertx.core.dns.DnsClient;
-import io.vertx.core.dns.DnsClientOptions;
-import io.vertx.core.dns.impl.DnsClientImpl;
-import io.vertx.core.eventbus.EventBus;
-import io.vertx.core.eventbus.impl.EventBusImpl;
-import io.vertx.core.eventbus.impl.clustered.ClusteredEventBus;
-import io.vertx.core.file.FileSystem;
-import io.vertx.core.file.impl.FileResolver;
-import io.vertx.core.file.impl.FileSystemImpl;
-import io.vertx.core.file.impl.WindowsFileSystem;
-import io.vertx.core.http.HttpClient;
-import io.vertx.core.http.HttpClientOptions;
-import io.vertx.core.http.HttpServer;
-import io.vertx.core.http.HttpServerOptions;
-import io.vertx.core.http.impl.HttpClientImpl;
-import io.vertx.core.http.impl.HttpServerImpl;
-import io.vertx.core.impl.resolver.DnsResolverProvider;
-import io.vertx.core.json.JsonObject;
-import io.vertx.core.logging.Logger;
-import io.vertx.core.logging.LoggerFactory;
-import io.vertx.core.net.NetClient;
-import io.vertx.core.net.NetClientOptions;
-import io.vertx.core.net.NetServer;
-import io.vertx.core.net.NetServerOptions;
-import io.vertx.core.net.impl.NetClientImpl;
-import io.vertx.core.net.impl.NetServerImpl;
-import io.vertx.core.net.impl.ServerID;
-import io.vertx.core.net.impl.transport.Transport;
-import io.vertx.core.shareddata.SharedData;
-import io.vertx.core.shareddata.impl.SharedDataImpl;
-import io.vertx.core.spi.VerticleFactory;
-import io.vertx.core.spi.VertxMetricsFactory;
-import io.vertx.core.spi.cluster.ClusterManager;
-import io.vertx.core.spi.metrics.Metrics;
-import io.vertx.core.spi.metrics.MetricsProvider;
-import io.vertx.core.spi.metrics.PoolMetrics;
-import io.vertx.core.spi.metrics.VertxMetrics;
-
-import java.io.File;
-import java.io.IOException;
-import java.net.InetAddress;
-import java.net.InetSocketAddress;
-import java.util.*;
-import java.util.concurrent.*;
-import java.util.concurrent.atomic.AtomicBoolean;
-import java.util.concurrent.atomic.AtomicInteger;
-import java.util.concurrent.atomic.AtomicLong;
-import java.util.function.Supplier;
-
-/**
- * @author <a href="http://tfox.org">Tim Fox</a>
- */
-public class VertxImpl implements VertxInternal, MetricsProvider {
-
- private static final Logger log = LoggerFactory.getLogger(VertxImpl.class);
-
- private static final String CLUSTER_MAP_NAME = "__vertx.haInfo";
- private static final String NETTY_IO_RATIO_PROPERTY_NAME = "vertx.nettyIORatio";
- private static final int NETTY_IO_RATIO = Integer.getInteger(NETTY_IO_RATIO_PROPERTY_NAME, 50);
-
- static {
- // Netty resource leak detection has a performance overhead and we do not need it in Vert.x
- ResourceLeakDetector.setLevel(ResourceLeakDetector.Level.DISABLED);
- // Use the JDK deflater/inflater by default
- System.setProperty("io.netty.noJdkZlibDecoder", "false");
- }
-
- static VertxImpl vertx(VertxOptions options) {
- VertxImpl vertx = new VertxImpl(options, Transport.transport(options.getPreferNativeTransport()));
- vertx.init();
- return vertx;
- }
-
- static VertxImpl vertx(VertxOptions options, Transport transport) {
- VertxImpl vertx = new VertxImpl(options, transport);
- vertx.init();
- return vertx;
- }
-
- static void clusteredVertx(VertxOptions options, Handler<AsyncResult<Vertx>> resultHandler) {
- VertxImpl vertx = new VertxImpl(options, Transport.transport(options.getPreferNativeTransport()));
- vertx.joinCluster(options, resultHandler);
- }
-
- private final FileSystem fileSystem = getFileSystem();
- private final SharedData sharedData;
- private final VertxMetrics metrics;
- private final ConcurrentMap<Long, InternalTimerHandler> timeouts = new ConcurrentHashMap<>();
- private final AtomicLong timeoutCounter = new AtomicLong(0);
- private final ClusterManager clusterManager;
- private final DeploymentManager deploymentManager;
- private final FileResolver fileResolver;
- private final Map<ServerID, HttpServerImpl> sharedHttpServers = new HashMap<>();
- private final Map<ServerID, NetServerImpl> sharedNetServers = new HashMap<>();
- final WorkerPool workerPool;
- final WorkerPool internalBlockingPool;
- private final ThreadFactory eventLoopThreadFactory;
- private final EventLoopGroup eventLoopGroup;
- private final EventLoopGroup acceptorEventLoopGroup;
- private final BlockedThreadChecker checker;
- private final AddressResolver addressResolver;
- private final AddressResolverOptions addressResolverOptions;
- private final EventBus eventBus;
- private volatile HAManager haManager;
- private boolean closed;
- private volatile Handler<Throwable> exceptionHandler;
- private final Map<String, SharedWorkerPool> namedWorkerPools;
- private final int defaultWorkerPoolSize;
- private final long defaultWorkerMaxExecTime;
- private final CloseHooks closeHooks;
- private final Transport transport;
-
- @SuppressWarnings("rawtypes")
- public VertxImpl(VertxOptions options, Transport transport) {
- // Sanity check
- if (Vertx.currentContext() != null) {
- log.warn("You're already on a Vert.x context, are you sure you want to create a new Vertx instance?");
- }
- closeHooks = new CloseHooks(log);
- checker = new BlockedThreadChecker(options.getBlockedThreadCheckInterval(), options.getBlockedThreadCheckIntervalUnit(), options.getWarningExceptionTime(), options.getWarningExceptionTimeUnit());
- eventLoopThreadFactory = new VertxThreadFactory("vert.x-eventloop-thread-", checker, false, options.getMaxEventLoopExecuteTime(), options.getMaxEventLoopExecuteTimeUnit());
- eventLoopGroup = transport.eventLoopGroup(options.getEventLoopPoolSize(), eventLoopThreadFactory, NETTY_IO_RATIO);
- ThreadFactory acceptorEventLoopThreadFactory = new VertxThreadFactory("vert.x-acceptor-thread-", checker, false, options.getMaxEventLoopExecuteTime(), options.getMaxEventLoopExecuteTimeUnit());
- // The acceptor event loop thread needs to be from a different pool otherwise can get lags in accepted connections
- // under a lot of load
- acceptorEventLoopGroup = transport.eventLoopGroup(1, acceptorEventLoopThreadFactory, 100);
-
- metrics = initialiseMetrics(options);
-
- ExecutorService workerExec = Executors.newFixedThreadPool(options.getWorkerPoolSize(),
- new VertxThreadFactory("vert.x-worker-thread-", checker, true, options.getMaxWorkerExecuteTime(), options.getMaxWorkerExecuteTimeUnit()));
- PoolMetrics workerPoolMetrics = metrics != null ? metrics.createPoolMetrics("worker", "vert.x-worker-thread", options.getWorkerPoolSize()) : null;
- ExecutorService internalBlockingExec = Executors.newFixedThreadPool(options.getInternalBlockingPoolSize(),
- new VertxThreadFactory("vert.x-internal-blocking-", checker, true, options.getMaxWorkerExecuteTime(), options.getMaxWorkerExecuteTimeUnit()));
- PoolMetrics internalBlockingPoolMetrics = metrics != null ? metrics.createPoolMetrics("worker", "vert.x-internal-blocking", options.getInternalBlockingPoolSize()) : null;
- internalBlockingPool = new WorkerPool(internalBlockingExec, internalBlockingPoolMetrics);
- namedWorkerPools = new HashMap<>();
- workerPool = new WorkerPool(workerExec, workerPoolMetrics);
- defaultWorkerPoolSize = options.getWorkerPoolSize();
- defaultWorkerMaxExecTime = options.getMaxWorkerExecuteTime();
-
- this.transport = transport;
- this.fileResolver = new FileResolver(options.getFileSystemOptions());
- this.addressResolverOptions = options.getAddressResolverOptions();
- this.addressResolver = new AddressResolver(this, options.getAddressResolverOptions());
- this.deploymentManager = new DeploymentManager(this);
- if (options.isClustered()) {
- this.clusterManager = getClusterManager(options);
- this.eventBus = new ClusteredEventBus(this, options, clusterManager);
- } else {
- this.clusterManager = null;
- this.eventBus = new EventBusImpl(this);
- }
- this.sharedData = new SharedDataImpl(this, clusterManager);
- }
-
- public void init() {
- eventBus.start(ar -> {});
- if (metrics != null) {
- metrics.vertxCreated(this);
- }
- }
-
- private void joinCluster(VertxOptions options, Handler<AsyncResult<Vertx>> resultHandler) {
- clusterManager.setVertx(this);
- clusterManager.join(ar -> {
- if (ar.succeeded()) {
- createHaManager(options, resultHandler);
- } else {
- log.error("Failed to join cluster", ar.cause());
- resultHandler.handle(Future.failedFuture(ar.cause()));
- }
- });
- }
-
- private void createHaManager(VertxOptions options, Handler<AsyncResult<Vertx>> resultHandler) {
- this.<Map<String, String>>executeBlocking(fut -> {
- fut.complete(clusterManager.getSyncMap(CLUSTER_MAP_NAME));
- }, false, ar -> {
- if (ar.succeeded()) {
- Map<String, String> clusterMap = ar.result();
- haManager = new HAManager(this, deploymentManager, clusterManager, clusterMap, options.getQuorumSize(), options.getHAGroup(), options.isHAEnabled());
- startEventBus(resultHandler);
- } else {
- log.error("Failed to start HAManager", ar.cause());
- resultHandler.handle(Future.failedFuture(ar.cause()));
- }
- });
- }
-
- private void startEventBus(Handler<AsyncResult<Vertx>> resultHandler) {
- eventBus.start(ar -> {
- if (ar.succeeded()) {
- initializeHaManager(resultHandler);
- } else {
- log.error("Failed to start event bus", ar.cause());
- resultHandler.handle(Future.failedFuture(ar.cause()));
- }
- });
- }
-
- private void initializeHaManager(Handler<AsyncResult<Vertx>> resultHandler) {
- this.executeBlocking(fut -> {
- // Init the manager (i.e register listener and check the quorum)
- // after the event bus has been fully started and updated its state
- // it will have also set the clustered changed view handler on the ha manager
- haManager.init();
- fut.complete();
- }, false, ar -> {
- if (ar.succeeded()) {
- if (metrics != null) {
- metrics.vertxCreated(this);
- }
- resultHandler.handle(Future.succeededFuture(this));
- } else {
- log.error("Failed to initialize HAManager", ar.cause());
- resultHandler.handle(Future.failedFuture(ar.cause()));
- }
- });
- }
-
- /**
- * @return The FileSystem implementation for the OS
- */
- protected FileSystem getFileSystem() {
- return Utils.isWindows() ? new WindowsFileSystem(this) : new FileSystemImpl(this);
- }
-
- @Override
- public DatagramSocket createDatagramSocket(DatagramSocketOptions options) {
- return DatagramSocketImpl.create(this, options);
- }
-
- @Override
- public DatagramSocket createDatagramSocket() {
- return createDatagramSocket(new DatagramSocketOptions());
- }
-
- public NetServer createNetServer(NetServerOptions options) {
- return new NetServerImpl(this, options);
- }
-
- @Override
- public NetServer createNetServer() {
- return createNetServer(new NetServerOptions());
- }
-
- public NetClient createNetClient(NetClientOptions options) {
- return new NetClientImpl(this, options);
- }
-
- @Override
- public NetClient createNetClient() {
- return createNetClient(new NetClientOptions());
- }
-
- @Override
- public Transport transport() {
- return transport;
- }
-
- @Override
- public boolean isNativeTransportEnabled() {
- return transport != Transport.JDK;
- }
-
- public FileSystem fileSystem() {
- return fileSystem;
- }
-
- public SharedData sharedData() {
- return sharedData;
- }
-
- public HttpServer createHttpServer(HttpServerOptions serverOptions) {
- return new HttpServerImpl(this, serverOptions);
- }
-
- @Override
- public HttpServer createHttpServer() {
- return createHttpServer(new HttpServerOptions());
- }
-
- public HttpClient createHttpClient(HttpClientOptions options) {
- return new HttpClientImpl(this, options);
- }
-
- @Override
- public HttpClient createHttpClient() {
- return createHttpClient(new HttpClientOptions());
- }
-
- public EventBus eventBus() {
- return eventBus;
- }
-
- public long setPeriodic(long delay, Handler<Long> handler) {
- return scheduleTimeout(getOrCreateContext(), handler, delay, true);
- }
-
- @Override
- public TimeoutStream periodicStream(long delay) {
- return new TimeoutStreamImpl(delay, true);
- }
-
- public long setTimer(long delay, Handler<Long> handler) {
- return scheduleTimeout(getOrCreateContext(), handler, delay, false);
- }
-
- @Override
- public TimeoutStream timerStream(long delay) {
- return new TimeoutStreamImpl(delay, false);
- }
-
- public void runOnContext(Handler<Void> task) {
- ContextImpl context = getOrCreateContext();
- context.runOnContext(task);
- }
-
- // The background pool is used for making blocking calls to legacy synchronous APIs
- public ExecutorService getWorkerPool() {
- return workerPool.executor();
- }
-
- public EventLoopGroup getEventLoopGroup() {
- return eventLoopGroup;
- }
-
- public EventLoopGroup getAcceptorEventLoopGroup() {
- return acceptorEventLoopGroup;
- }
-
- public ContextImpl getOrCreateContext() {
- ContextImpl ctx = getContext();
- if (ctx == null) {
- // We are running embedded - Create a context
- ctx = createEventLoopContext(null, null, new JsonObject(), Thread.currentThread().getContextClassLoader());
- }
- return ctx;
- }
-
- public Map<ServerID, HttpServerImpl> sharedHttpServers() {
- return sharedHttpServers;
- }
-
- public Map<ServerID, NetServerImpl> sharedNetServers() {
- return sharedNetServers;
- }
-
- @Override
- public boolean isMetricsEnabled() {
- return metrics != null;
- }
-
- @Override
- public Metrics getMetrics() {
- return metrics;
- }
-
- public boolean cancelTimer(long id) {
- InternalTimerHandler handler = timeouts.remove(id);
- if (handler != null) {
- handler.context.removeCloseHook(handler);
- return handler.cancel();
- } else {
- return false;
- }
- }
-
- @Override
- public EventLoopContext createEventLoopContext(String deploymentID, WorkerPool workerPool, JsonObject config, ClassLoader tccl) {
- return new EventLoopContext(this, internalBlockingPool, workerPool != null ? workerPool : this.workerPool, deploymentID, config, tccl);
- }
-
- @Override
- public ContextImpl createWorkerContext(boolean multiThreaded, String deploymentID, WorkerPool workerPool, JsonObject config,
- ClassLoader tccl) {
- if (workerPool == null) {
- workerPool = this.workerPool;
- }
- if (multiThreaded) {
- return new MultiThreadedWorkerContext(this, internalBlockingPool, workerPool, deploymentID, config, tccl);
- } else {
- return new WorkerContext(this, internalBlockingPool, workerPool, deploymentID, config, tccl);
- }
- }
-
- @Override
- public DnsClient createDnsClient(int port, String host) {
- return createDnsClient(new DnsClientOptions().setHost(host).setPort(port));
- }
-
- @Override
- public DnsClient createDnsClient() {
- return createDnsClient(new DnsClientOptions());
- }
-
- @Override
- public DnsClient createDnsClient(DnsClientOptions options) {
- String host = options.getHost();
- int port = options.getPort();
- if (host == null || port < 0) {
- DnsResolverProvider provider = new DnsResolverProvider(this, addressResolverOptions);
- InetSocketAddress address = provider.nameServerAddresses().get(0);
- // provide the host and port
- options = new DnsClientOptions(options)
- .setHost(address.getAddress().getHostAddress())
- .setPort(address.getPort());
- }
- return new DnsClientImpl(this, options);
- }
-
- private VertxMetrics initialiseMetrics(VertxOptions options) {
- if (options.getMetricsOptions() != null && options.getMetricsOptions().isEnabled()) {
- VertxMetricsFactory factory = options.getMetricsOptions().getFactory();
- if (factory == null) {
- factory = ServiceHelper.loadFactoryOrNull(VertxMetricsFactory.class);
- if (factory == null) {
- log.warn("Metrics has been set to enabled but no VertxMetricsFactory found on classpath");
- }
- }
- if (factory != null) {
- VertxMetrics metrics = factory.metrics(options);
- Objects.requireNonNull(metrics, "The metric instance created from " + factory + " cannot be null");
- return metrics;
- }
- }
- return null;
- }
-
- private ClusterManager getClusterManager(VertxOptions options) {
- ClusterManager mgr = options.getClusterManager();
- if (mgr == null) {
- String clusterManagerClassName = System.getProperty("vertx.cluster.managerClass");
- if (clusterManagerClassName != null) {
- // We allow specify a sys prop for the cluster manager factory which overrides ServiceLoader
- try {
- Class<?> clazz = Class.forName(clusterManagerClassName);
- mgr = (ClusterManager) clazz.newInstance();
- } catch (Exception e) {
- throw new IllegalStateException("Failed to instantiate " + clusterManagerClassName, e);
- }
- } else {
- mgr = ServiceHelper.loadFactoryOrNull(ClusterManager.class);
- if (mgr == null) {
- throw new IllegalStateException("No ClusterManagerFactory instances found on classpath");
- }
- }
- }
- return mgr;
- }
-
- private long scheduleTimeout(ContextImpl context, Handler<Long> handler, long delay, boolean periodic) {
- if (delay < 1) {
- throw new IllegalArgumentException("Cannot schedule a timer with delay < 1 ms");
- }
- long timerId = timeoutCounter.getAndIncrement();
- InternalTimerHandler task = new InternalTimerHandler(timerId, handler, periodic, delay, context);
- timeouts.put(timerId, task);
- context.addCloseHook(task);
- return timerId;
- }
-
- public static Context context() {
- Thread current = Thread.currentThread();
- if (current instanceof VertxThread) {
- return ((VertxThread) current).getContext();
- }
- return null;
- }
-
- public ContextImpl getContext() {
- ContextImpl context = (ContextImpl) context();
- if (context != null && context.owner == this) {
- return context;
- }
- return null;
- }
-
- public ClusterManager getClusterManager() {
- return clusterManager;
- }
-
- @Override
- public void close() {
- close(null);
- }
-
- private void closeClusterManager(Handler<AsyncResult<Void>> completionHandler) {
- if (clusterManager != null) {
- clusterManager.leave(ar -> {
- if (ar.failed()) {
- log.error("Failed to leave cluster", ar.cause());
- }
- if (completionHandler != null) {
- runOnContext(v -> completionHandler.handle(Future.succeededFuture()));
- }
- });
- } else if (completionHandler != null) {
- runOnContext(v -> completionHandler.handle(Future.succeededFuture()));
- }
- }
-
- @Override
- public synchronized void close(Handler<AsyncResult<Void>> completionHandler) {
- if (closed || eventBus == null) {
- // Just call the handler directly since pools shutdown
- if (completionHandler != null) {
- completionHandler.handle(Future.succeededFuture());
- }
- return;
- }
- closed = true;
-
- closeHooks.run(ar -> {
- deploymentManager.undeployAll(ar1 -> {
- HAManager haManager = haManager();
- Future<Void> haFuture = Future.future();
- if (haManager != null) {
- this.executeBlocking(fut -> {
- haManager.stop();
- fut.complete();
- }, false, haFuture);
- } else {
- haFuture.complete();
- }
- haFuture.setHandler(ar2 -> {
- addressResolver.close(ar3 -> {
- eventBus.close(ar4 -> {
- closeClusterManager(ar5 -> {
- // Copy set to prevent ConcurrentModificationException
- Set<HttpServerImpl> httpServers = new HashSet<>(sharedHttpServers.values());
- Set<NetServerImpl> netServers = new HashSet<>(sharedNetServers.values());
- sharedHttpServers.clear();
- sharedNetServers.clear();
-
- int serverCount = httpServers.size() + netServers.size();
-
- AtomicInteger serverCloseCount = new AtomicInteger();
-
- Handler<AsyncResult<Void>> serverCloseHandler = res -> {
- if (res.failed()) {
- log.error("Failure in shutting down server", res.cause());
- }
- if (serverCloseCount.incrementAndGet() == serverCount) {
- deleteCacheDirAndShutdown(completionHandler);
- }
- };
-
- for (HttpServerImpl server : httpServers) {
- server.closeAll(serverCloseHandler);
- }
- for (NetServerImpl server : netServers) {
- server.closeAll(serverCloseHandler);
- }
- if (serverCount == 0) {
- deleteCacheDirAndShutdown(completionHandler);
- }
- });
- });
- });
- });
- });
- });
- }
-
- @Override
- public void deployVerticle(Verticle verticle) {
- deployVerticle(verticle, new DeploymentOptions(), null);
- }
-
- @Override
- public void deployVerticle(Verticle verticle, Handler<AsyncResult<String>> completionHandler) {
- deployVerticle(verticle, new DeploymentOptions(), completionHandler);
- }
-
- @Override
- public void deployVerticle(String name, Handler<AsyncResult<String>> completionHandler) {
- deployVerticle(name, new DeploymentOptions(), completionHandler);
- }
-
- @Override
- public void deployVerticle(Verticle verticle, DeploymentOptions options) {
- deployVerticle(verticle, options, null);
- }
-
- @Override
- public void deployVerticle(Class<? extends Verticle> verticleClass, DeploymentOptions options) {
- deployVerticle(() -> {
- try {
- return verticleClass.newInstance();
- } catch (Exception e) {
- throw new RuntimeException(e);
- }
- }, options);
- }
-
- @Override
- public void deployVerticle(Supplier<Verticle> verticleSupplier, DeploymentOptions options) {
- deployVerticle(verticleSupplier, options, null);
- }
-
- @Override
- public void deployVerticle(Verticle verticle, DeploymentOptions options, Handler<AsyncResult<String>> completionHandler) {
- if (options.getInstances() != 1) {
- throw new IllegalArgumentException("Can't specify > 1 instances for already created verticle");
- }
- deployVerticle(() -> verticle, options, completionHandler);
- }
-
- @Override
- public void deployVerticle(Class<? extends Verticle> verticleClass, DeploymentOptions options, Handler<AsyncResult<String>> completionHandler) {
- deployVerticle(() -> {
- try {
- return verticleClass.newInstance();
- } catch (Exception e) {
- throw new RuntimeException(e);
- }
- }, options, completionHandler);
- }
-
- @Override
- public void deployVerticle(Supplier<Verticle> verticleSupplier, DeploymentOptions options, Handler<AsyncResult<String>> completionHandler) {
- boolean closed;
- synchronized (this) {
- closed = this.closed;
- }
- if (closed) {
- if (completionHandler != null) {
- completionHandler.handle(Future.failedFuture("Vert.x closed"));
- }
- } else {
- deploymentManager.deployVerticle(verticleSupplier, options, completionHandler);
- }
- }
-
- @Override
- public void deployVerticle(String name) {
- deployVerticle(name, new DeploymentOptions(), null);
- }
-
- @Override
- public void deployVerticle(String name, DeploymentOptions options) {
- deployVerticle(name, options, null);
- }
-
- @Override
- public void deployVerticle(String name, DeploymentOptions options, Handler<AsyncResult<String>> completionHandler) {
- if (options.isHa() && haManager() != null && haManager().isEnabled()) {
- haManager().deployVerticle(name, options, completionHandler);
- } else {
- deploymentManager.deployVerticle(name, options, completionHandler);
- }
- }
-
- @Override
- public String getNodeID() {
- return clusterManager.getNodeID();
- }
-
- @Override
- public void undeploy(String deploymentID) {
- undeploy(deploymentID, res -> {
- });
- }
-
- @Override
- public void undeploy(String deploymentID, Handler<AsyncResult<Void>> completionHandler) {
- HAManager haManager = haManager();
- Future<Void> haFuture = Future.future();
- if (haManager != null && haManager.isEnabled()) {
- this.executeBlocking(fut -> {
- haManager.removeFromHA(deploymentID);
- fut.complete();
- }, false, haFuture);
- } else {
- haFuture.complete();
- }
- haFuture.compose(v -> {
- Future<Void> deploymentFuture = Future.future();
- deploymentManager.undeployVerticle(deploymentID, deploymentFuture);
- return deploymentFuture;
- }).setHandler(completionHandler);
- }
-
- @Override
- public Set<String> deploymentIDs() {
- return deploymentManager.deployments();
- }
-
- @Override
- public void registerVerticleFactory(VerticleFactory factory) {
- deploymentManager.registerVerticleFactory(factory);
- }
-
- @Override
- public void unregisterVerticleFactory(VerticleFactory factory) {
- deploymentManager.unregisterVerticleFactory(factory);
- }
-
- @Override
- public Set<VerticleFactory> verticleFactories() {
- return deploymentManager.verticleFactories();
- }
-
- @Override
- public <T> void executeBlockingInternal(Handler<Future<T>> blockingCodeHandler, Handler<AsyncResult<T>> resultHandler) {
- ContextImpl context = getOrCreateContext();
-
- context.executeBlockingInternal(blockingCodeHandler, resultHandler);
- }
-
- @Override
- public <T> void executeBlocking(Handler<Future<T>> blockingCodeHandler, boolean ordered,
- Handler<AsyncResult<T>> asyncResultHandler) {
- ContextImpl context = getOrCreateContext();
- context.executeBlocking(blockingCodeHandler, ordered, asyncResultHandler);
- }
-
- @Override
- public <T> void executeBlocking(Handler<Future<T>> blockingCodeHandler,
- Handler<AsyncResult<T>> asyncResultHandler) {
- executeBlocking(blockingCodeHandler, true, asyncResultHandler);
- }
-
- @Override
- public boolean isClustered() {
- return clusterManager != null;
- }
-
- @Override
- public EventLoopGroup nettyEventLoopGroup() {
- return eventLoopGroup;
- }
-
- // For testing
- public void simulateKill() {
- if (haManager() != null) {
- haManager().simulateKill();
- }
- }
-
- @Override
- public Deployment getDeployment(String deploymentID) {
- return deploymentManager.getDeployment(deploymentID);
- }
-
- @Override
- public synchronized void failoverCompleteHandler(FailoverCompleteHandler failoverCompleteHandler) {
- if (haManager() != null) {
- haManager().setFailoverCompleteHandler(failoverCompleteHandler);
- }
- }
-
- @Override
- public boolean isKilled() {
- return haManager().isKilled();
- }
-
- @Override
- public void failDuringFailover(boolean fail) {
- if (haManager() != null) {
- haManager().failDuringFailover(fail);
- }
- }
-
- @Override
- public VertxMetrics metricsSPI() {
- return metrics;
- }
-
- @Override
- public File resolveFile(String fileName) {
- return fileResolver.resolveFile(fileName);
- }
-
- @Override
- public void resolveAddress(String hostname, Handler<AsyncResult<InetAddress>> resultHandler) {
- addressResolver.resolveHostname(hostname, resultHandler);
- }
-
- @Override
- public AddressResolver addressResolver() {
- return addressResolver;
- }
-
- @Override
- public AddressResolverGroup<InetSocketAddress> nettyAddressResolverGroup() {
- return addressResolver.nettyAddressResolverGroup();
- }
-
- @SuppressWarnings({"unchecked", "rawtypes"})
- private void deleteCacheDirAndShutdown(Handler<AsyncResult<Void>> completionHandler) {
- executeBlockingInternal(fut -> {
- try {
- fileResolver.close();
- fut.complete();
- } catch (IOException e) {
- fut.tryFail(e);
- }
- }, ar -> {
-
- workerPool.close();
- internalBlockingPool.close();
- new ArrayList<>(namedWorkerPools.values()).forEach(WorkerPool::close);
-
- acceptorEventLoopGroup.shutdownGracefully(0, 10, TimeUnit.SECONDS).addListener(new GenericFutureListener() {
- @Override
- public void operationComplete(io.netty.util.concurrent.Future future) throws Exception {
- if (!future.isSuccess()) {
- log.warn("Failure in shutting down acceptor event loop group", future.cause());
- }
- eventLoopGroup.shutdownGracefully(0, 10, TimeUnit.SECONDS).addListener(new GenericFutureListener() {
- @Override
- public void operationComplete(io.netty.util.concurrent.Future future) throws Exception {
- if (!future.isSuccess()) {
- log.warn("Failure in shutting down event loop group", future.cause());
- }
- if (metrics != null) {
- metrics.close();
- }
-
- checker.close();
-
- if (completionHandler != null) {
- eventLoopThreadFactory.newThread(() -> {
- completionHandler.handle(Future.succeededFuture());
- }).start();
- }
- }
- });
- }
- });
- });
- }
-
- public HAManager haManager() {
- return haManager;
- }
-
- private class InternalTimerHandler implements Handler<Void>, Closeable {
- final Handler<Long> handler;
- final boolean periodic;
- final long timerID;
- final ContextImpl context;
- final java.util.concurrent.Future<?> future;
- final AtomicBoolean cancelled;
-
- boolean cancel() {
- if (cancelled.compareAndSet(false, true)) {
- if (metrics != null) {
- metrics.timerEnded(timerID, true);
- }
- future.cancel(false);
- return true;
- } else {
- return false;
- }
- }
-
- InternalTimerHandler(long timerID, Handler<Long> runnable, boolean periodic, long delay, ContextImpl context) {
- this.context = context;
- this.timerID = timerID;
- this.handler = runnable;
- this.periodic = periodic;
- this.cancelled = new AtomicBoolean();
- EventLoop el = context.nettyEventLoop();
- Runnable toRun = () -> context.runOnContext(this);
- if (periodic) {
- future = el.scheduleAtFixedRate(toRun, delay, delay, TimeUnit.MILLISECONDS);
- } else {
- future = el.schedule(toRun, delay, TimeUnit.MILLISECONDS);
- }
- if (metrics != null) {
- metrics.timerCreated(timerID);
- }
- }
-
- public void handle(Void v) {
- if (!cancelled.get()) {
- try {
- handler.handle(timerID);
- } finally {
- if (!periodic) {
- // Clean up after it's fired
- cleanupNonPeriodic();
- }
- }
- }
- }
-
- private void cleanupNonPeriodic() {
- VertxImpl.this.timeouts.remove(timerID);
- if (metrics != null) {
- metrics.timerEnded(timerID, false);
- }
- ContextImpl context = getContext();
- if (context != null) {
- context.removeCloseHook(this);
- }
- }
-
- // Called via Context close hook when Verticle is undeployed
- public void close(Handler<AsyncResult<Void>> completionHandler) {
- VertxImpl.this.timeouts.remove(timerID);
- cancel();
- completionHandler.handle(Future.succeededFuture());
- }
-
- }
-
- /*
- *
- * This class is optimised for performance when used on the same event loop that is was passed to the handler with.
- * However it can be used safely from other threads.
- *
- * The internal state is protected using the synchronized keyword. If always used on the same event loop, then
- * we benefit from biased locking which makes the overhead of synchronized near zero.
- *
- */
- private class TimeoutStreamImpl implements TimeoutStream, Handler<Long> {
-
- private final long delay;
- private final boolean periodic;
-
- private Long id;
- private Handler<Long> handler;
- private Handler<Void> endHandler;
- private long demand;
-
- public TimeoutStreamImpl(long delay, boolean periodic) {
- this.delay = delay;
- this.periodic = periodic;
- this.demand = Long.MAX_VALUE;
- }
-
- @Override
- public synchronized void handle(Long event) {
- try {
- if (demand > 0) {
- demand--;
- handler.handle(event);
- }
- } finally {
- if (!periodic && endHandler != null) {
- endHandler.handle(null);
- }
- }
- }
-
- @Override
- public synchronized TimeoutStream fetch(long amount) {
- demand += amount;
- if (demand < 0) {
- demand = Long.MAX_VALUE;
- }
- return this;
- }
-
- @Override
- public TimeoutStream exceptionHandler(Handler<Throwable> handler) {
- return this;
- }
-
- @Override
- public void cancel() {
- if (id != null) {
- VertxImpl.this.cancelTimer(id);
- }
- }
-
- @Override
- public synchronized TimeoutStream handler(Handler<Long> handler) {
- if (handler != null) {
- if (id != null) {
- throw new IllegalStateException();
- }
- this.handler = handler;
- id = scheduleTimeout(getOrCreateContext(), this, delay, periodic);
- } else {
- cancel();
- }
- return this;
- }
-
- @Override
- public synchronized TimeoutStream pause() {
- demand = 0;
- return this;
- }
-
- @Override
- public synchronized TimeoutStream resume() {
- demand = Long.MAX_VALUE;
- return this;
- }
-
- @Override
- public synchronized TimeoutStream endHandler(Handler<Void> endHandler) {
- this.endHandler = endHandler;
- return this;
- }
- }
-
- class SharedWorkerPool extends WorkerPool {
-
- private final String name;
- private int refCount = 1;
-
- @SuppressWarnings("rawtypes")
- SharedWorkerPool(String name, ExecutorService workerExec, PoolMetrics workerMetrics) {
- super(workerExec, workerMetrics);
- this.name = name;
- }
-
- @Override
- void close() {
- synchronized (VertxImpl.this) {
- if (refCount > 0) {
- refCount = 0;
- super.close();
- }
- }
- }
-
- void release() {
- synchronized (VertxImpl.this) {
- if (--refCount == 0) {
- namedWorkerPools.remove(name);
- super.close();
- }
- }
- }
- }
-
- @Override
- public WorkerExecutorImpl createSharedWorkerExecutor(String name) {
- return createSharedWorkerExecutor(name, defaultWorkerPoolSize);
- }
-
- @Override
- public WorkerExecutorImpl createSharedWorkerExecutor(String name, int poolSize) {
- return createSharedWorkerExecutor(name, poolSize, defaultWorkerMaxExecTime);
- }
-
- @Override
- public synchronized WorkerExecutorImpl createSharedWorkerExecutor(String name, int poolSize, long maxExecuteTime) {
- return createSharedWorkerExecutor(name, poolSize, maxExecuteTime, TimeUnit.NANOSECONDS);
- }
-
- @SuppressWarnings("rawtypes")
- @Override
- public synchronized WorkerExecutorImpl createSharedWorkerExecutor(String name, int poolSize, long maxExecuteTime, TimeUnit maxExecuteTimeUnit) {
- if (poolSize < 1) {
- throw new IllegalArgumentException("poolSize must be > 0");
- }
- if (maxExecuteTime < 1) {
- throw new IllegalArgumentException("maxExecuteTime must be > 0");
- }
- SharedWorkerPool sharedWorkerPool = namedWorkerPools.get(name);
- if (sharedWorkerPool == null) {
- ExecutorService workerExec = Executors.newFixedThreadPool(poolSize, new VertxThreadFactory(name + "-", checker, true, maxExecuteTime, maxExecuteTimeUnit));
- PoolMetrics workerMetrics = metrics != null ? metrics.createPoolMetrics("worker", name, poolSize) : null;
- namedWorkerPools.put(name, sharedWorkerPool = new SharedWorkerPool(name, workerExec, workerMetrics));
- } else {
- sharedWorkerPool.refCount++;
- }
- ContextImpl context = getOrCreateContext();
- WorkerExecutorImpl namedExec = new WorkerExecutorImpl(context, sharedWorkerPool);
- context.addCloseHook(namedExec);
- return namedExec;
- }
-
- @Override
- public Vertx exceptionHandler(Handler<Throwable> handler) {
- exceptionHandler = handler;
- return this;
- }
-
- @Override
- public Handler<Throwable> exceptionHandler() {
- return exceptionHandler;
- }
-
- @Override
- public void addCloseHook(Closeable hook) {
- closeHooks.add(hook);
- }
-
- @Override
- public void removeCloseHook(Closeable hook) {
- closeHooks.remove(hook);
- }
-}
diff --git a/foundations/foundation-vertx/src/main/java/io/vertx/ext/web/impl/HttpServerRequestUtils.java b/foundations/foundation-vertx/src/main/java/io/vertx/ext/web/impl/HttpServerRequestUtils.java
deleted file mode 100644
index 257770e..0000000
--- a/foundations/foundation-vertx/src/main/java/io/vertx/ext/web/impl/HttpServerRequestUtils.java
+++ /dev/null
@@ -1,26 +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.ext.web.impl;
-
-import io.vertx.core.http.HttpServerRequest;
-
-public interface HttpServerRequestUtils {
- static void setPath(HttpServerRequest request, String path) {
- ((HttpServerRequestWrapper) request).setPath(path);
- }
-}
diff --git a/foundations/foundation-vertx/src/main/java/org/apache/servicecomb/foundation/vertx/http/VertxServerRequestToHttpServletRequest.java b/foundations/foundation-vertx/src/main/java/org/apache/servicecomb/foundation/vertx/http/VertxServerRequestToHttpServletRequest.java
index a670480..516419d 100644
--- a/foundations/foundation-vertx/src/main/java/org/apache/servicecomb/foundation/vertx/http/VertxServerRequestToHttpServletRequest.java
+++ b/foundations/foundation-vertx/src/main/java/org/apache/servicecomb/foundation/vertx/http/VertxServerRequestToHttpServletRequest.java
@@ -95,10 +95,10 @@ public class VertxServerRequestToHttpServletRequest extends AbstractHttpServletR
@Override
public Cookie[] getCookies() {
if (cookies == null) {
- Set<io.vertx.ext.web.Cookie> vertxCookies = context.cookies();
+ Map<String, io.vertx.core.http.Cookie> vertxCookies = context.cookieMap();
Cookie tmpCookies[] = new Cookie[vertxCookies.size()];
int idx = 0;
- for (io.vertx.ext.web.Cookie oneVertxCookie : vertxCookies) {
+ for (io.vertx.core.http.Cookie oneVertxCookie : vertxCookies.values()) {
Cookie cookie = new Cookie(oneVertxCookie.getName(), oneVertxCookie.getValue());
tmpCookies[idx] = cookie;
idx++;
diff --git a/foundations/foundation-vertx/src/main/java/org/apache/servicecomb/foundation/vertx/stream/InputStreamToReadStream.java b/foundations/foundation-vertx/src/main/java/org/apache/servicecomb/foundation/vertx/stream/InputStreamToReadStream.java
index 18ed274..6a0592e 100644
--- a/foundations/foundation-vertx/src/main/java/org/apache/servicecomb/foundation/vertx/stream/InputStreamToReadStream.java
+++ b/foundations/foundation-vertx/src/main/java/org/apache/servicecomb/foundation/vertx/stream/InputStreamToReadStream.java
@@ -28,6 +28,7 @@ import io.vertx.core.AsyncResult;
import io.vertx.core.Context;
import io.vertx.core.Future;
import io.vertx.core.Handler;
+import io.vertx.core.Promise;
import io.vertx.core.buffer.Buffer;
import io.vertx.core.streams.ReadStream;
@@ -120,7 +121,7 @@ public class InputStreamToReadStream implements ReadStream<Buffer> {
}
}
- private synchronized void readInWorker(Future<ReadResult> future) {
+ private synchronized void readInWorker(Promise<ReadResult> future) {
try {
ReadResult readResult = new ReadResult();
readResult.doRead();
diff --git a/foundations/foundation-vertx/src/main/java/org/apache/servicecomb/foundation/vertx/stream/OutputStreamToWriteStream.java b/foundations/foundation-vertx/src/main/java/org/apache/servicecomb/foundation/vertx/stream/OutputStreamToWriteStream.java
index 9e69759..d449ddf 100644
--- a/foundations/foundation-vertx/src/main/java/org/apache/servicecomb/foundation/vertx/stream/OutputStreamToWriteStream.java
+++ b/foundations/foundation-vertx/src/main/java/org/apache/servicecomb/foundation/vertx/stream/OutputStreamToWriteStream.java
@@ -24,9 +24,10 @@ import java.util.concurrent.ConcurrentLinkedQueue;
import org.apache.servicecomb.foundation.common.io.AsyncCloseable;
+import io.vertx.core.AsyncResult;
import io.vertx.core.Context;
-import io.vertx.core.Future;
import io.vertx.core.Handler;
+import io.vertx.core.Promise;
import io.vertx.core.buffer.Buffer;
import io.vertx.core.streams.WriteStream;
@@ -89,19 +90,24 @@ public class OutputStreamToWriteStream implements WriteStream<Buffer>, AsyncClos
@Override
public synchronized WriteStream<Buffer> write(Buffer data) {
+ return write(data, ar -> {
+ if (ar.failed()) {
+ handleException(ar.cause());
+ }
+ });
+ }
+
+ @Override
+ public WriteStream<Buffer> write(Buffer data, Handler<AsyncResult<Void>> handler) {
currentBufferCount++;
buffers.add(data);
context.executeBlocking(this::writeInWorker,
true,
- ar -> {
- if (ar.failed()) {
- handleException(ar.cause());
- }
- });
+ handler);
return this;
}
- protected void writeInWorker(Future<Object> future) {
+ protected void writeInWorker(Promise<Void> future) {
while (true) {
Buffer buffer = buffers.poll();
if (buffer == null) {
@@ -127,6 +133,11 @@ public class OutputStreamToWriteStream implements WriteStream<Buffer>, AsyncClos
@Override
public void end() {
+ end((Handler<AsyncResult<Void>>)null);
+ }
+
+ @Override
+ public void end(Handler<AsyncResult<Void>> handler) {
close();
}
diff --git a/foundations/foundation-vertx/src/test/java/io/vertx/ext/web/impl/TestHttpServerRequestUtils.java b/foundations/foundation-vertx/src/test/java/io/vertx/ext/web/impl/TestHttpServerRequestUtils.java
index 7730bb6..0b4fdbc 100644
--- a/foundations/foundation-vertx/src/test/java/io/vertx/ext/web/impl/TestHttpServerRequestUtils.java
+++ b/foundations/foundation-vertx/src/test/java/io/vertx/ext/web/impl/TestHttpServerRequestUtils.java
@@ -28,14 +28,6 @@ import mockit.Mocked;
public class TestHttpServerRequestUtils {
@Test
- public void setPath(@Mocked HttpServerRequest request) {
- HttpServerRequestWrapper wrapper = new HttpServerRequestWrapper(request);
- HttpServerRequestUtils.setPath(wrapper, "abc");
-
- Assert.assertEquals("abc", wrapper.path());
- }
-
- @Test
public void VertxServerRequestToHttpServletRequest(@Mocked RoutingContext context,
@Mocked HttpServerRequest request) {
HttpServerRequestWrapper wrapper = new HttpServerRequestWrapper(request);
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 3da853d..8683b1d 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
@@ -28,7 +28,6 @@ import javax.xml.ws.Holder;
import org.apache.commons.io.FileUtils;
import org.apache.servicecomb.foundation.test.scaffolding.config.ArchaiusUtils;
import org.apache.servicecomb.foundation.vertx.stream.BufferInputStream;
-import org.junit.AfterClass;
import org.junit.Assert;
import org.junit.Test;
@@ -60,7 +59,8 @@ public class TestVertxUtils {
public void testCreateVertxWithFileCPResolving() {
// Prepare
ArchaiusUtils.resetConfig();
- String cacheDirBase = System.getProperty(FileResolver.CACHE_DIR_BASE_PROP_NAME, ".vertx");
+ String cacheDirBase = System.getProperty(FileResolver.CACHE_DIR_BASE_PROP_NAME,
+ System.getProperty("java.io.tmpdir", ".") + File.separator + "vertx-cache");
File file = new File(cacheDirBase);
// create .vertx folder
@@ -92,7 +92,7 @@ public class TestVertxUtils {
@Test
public void testVertxUtilsInitWithOptions() {
VertxOptions oOptions = new VertxOptions();
- oOptions.setClustered(false);
+ oOptions.getEventBusOptions().setClustered(false);
Vertx vertx = VertxUtils.init(oOptions);
Assert.assertNotEquals(null, vertx);
diff --git a/foundations/foundation-vertx/src/test/java/org/apache/servicecomb/foundation/vertx/client/TestClientPoolManager.java b/foundations/foundation-vertx/src/test/java/org/apache/servicecomb/foundation/vertx/client/TestClientPoolManager.java
index 6709ca5..dc86d9b 100644
--- a/foundations/foundation-vertx/src/test/java/org/apache/servicecomb/foundation/vertx/client/TestClientPoolManager.java
+++ b/foundations/foundation-vertx/src/test/java/org/apache/servicecomb/foundation/vertx/client/TestClientPoolManager.java
@@ -145,11 +145,11 @@ public class TestClientPoolManager {
HttpClientWithContext notMatchPool = new HttpClientWithContext(null, null);
pools.add(notMatchPool);
- new Expectations(VertxImpl.class) {
+ new Expectations() {
{
factory.createClientPool(context);
result = new HttpClientWithContext(null, null);
- VertxImpl.context();
+ Vertx.currentContext();
result = context;
}
};
@@ -167,9 +167,9 @@ public class TestClientPoolManager {
pools.add(pool1);
pools.add(pool2);
- new Expectations(VertxImpl.class) {
+ new Expectations() {
{
- VertxImpl.context();
+ Vertx.currentContext();
result = null;
}
};
@@ -188,9 +188,9 @@ public class TestClientPoolManager {
HttpClientWithContext pool = new HttpClientWithContext(null, null);
pools.add(pool);
- new Expectations(VertxImpl.class) {
+ new Expectations() {
{
- VertxImpl.context();
+ Vertx.currentContext();
result = null;
}
};
@@ -203,9 +203,9 @@ public class TestClientPoolManager {
HttpClientWithContext pool = new HttpClientWithContext(null, null);
pools.add(pool);
- new Expectations(VertxImpl.class) {
+ new Expectations() {
{
- VertxImpl.context();
+ Vertx.currentContext();
result = otherContext;
otherContext.owner();
result = otherVertx;
@@ -220,9 +220,9 @@ public class TestClientPoolManager {
HttpClientWithContext pool = new HttpClientWithContext(null, null);
pools.add(pool);
- new Expectations(VertxImpl.class) {
+ new Expectations() {
{
- VertxImpl.context();
+ Vertx.currentContext();
result = workerContext;
workerContext.owner();
result = vertx;
diff --git a/foundations/foundation-vertx/src/test/java/org/apache/servicecomb/foundation/vertx/client/tcp/TestTcpClientConnection.java b/foundations/foundation-vertx/src/test/java/org/apache/servicecomb/foundation/vertx/client/tcp/TestTcpClientConnection.java
index 860e141..c2756e9 100644
--- a/foundations/foundation-vertx/src/test/java/org/apache/servicecomb/foundation/vertx/client/tcp/TestTcpClientConnection.java
+++ b/foundations/foundation-vertx/src/test/java/org/apache/servicecomb/foundation/vertx/client/tcp/TestTcpClientConnection.java
@@ -172,6 +172,7 @@ public class TestTcpClientConnection {
{
tcpClientPackage.getMsgId();
result = msgId;
+ tcpClientConnection.write((ByteBuf) any);
}
};
new MockUp<Context>(context) {
diff --git a/foundations/foundation-vertx/src/test/java/org/apache/servicecomb/foundation/vertx/http/TestReadStreamPart.java b/foundations/foundation-vertx/src/test/java/org/apache/servicecomb/foundation/vertx/http/TestReadStreamPart.java
index 5080839..50c151d 100644
--- a/foundations/foundation-vertx/src/test/java/org/apache/servicecomb/foundation/vertx/http/TestReadStreamPart.java
+++ b/foundations/foundation-vertx/src/test/java/org/apache/servicecomb/foundation/vertx/http/TestReadStreamPart.java
@@ -38,12 +38,13 @@ import org.junit.Test;
import org.junit.rules.ExpectedException;
import io.vertx.core.Handler;
+import io.vertx.core.Vertx;
import io.vertx.core.buffer.Buffer;
import io.vertx.core.file.FileSystemException;
import io.vertx.core.file.OpenOptions;
import io.vertx.core.http.HttpClientResponse;
-import io.vertx.core.impl.ContextInternal;
-import io.vertx.core.impl.SyncVertx;
+import io.vertx.core.impl.SyncContext;
+import io.vertx.core.impl.VertxInternal;
import io.vertx.core.streams.WriteStream;
import mockit.Expectations;
import mockit.Mock;
@@ -51,9 +52,9 @@ import mockit.MockUp;
import mockit.Mocked;
public class TestReadStreamPart {
- static SyncVertx vertx = new SyncVertx();
+ static Vertx vertx = Vertx.vertx();
- static ContextInternal context = vertx.getContext();
+ static SyncContext context = new SyncContext();
static String src = "src";
@@ -68,6 +69,7 @@ public class TestReadStreamPart {
@Before
public void setup() throws IOException {
+ context.setOwner((VertxInternal)vertx);
inputStream.reset();
}
diff --git a/foundations/foundation-vertx/src/test/java/org/apache/servicecomb/foundation/vertx/http/TestVertxServerRequestToHttpServletRequest.java b/foundations/foundation-vertx/src/test/java/org/apache/servicecomb/foundation/vertx/http/TestVertxServerRequestToHttpServletRequest.java
index 0ec60b8..bcec03f 100644
--- a/foundations/foundation-vertx/src/test/java/org/apache/servicecomb/foundation/vertx/http/TestVertxServerRequestToHttpServletRequest.java
+++ b/foundations/foundation-vertx/src/test/java/org/apache/servicecomb/foundation/vertx/http/TestVertxServerRequestToHttpServletRequest.java
@@ -20,9 +20,8 @@ package org.apache.servicecomb.foundation.vertx.http;
import java.io.IOException;
import java.util.Collections;
import java.util.HashMap;
-import java.util.LinkedHashSet;
+import java.util.LinkedHashMap;
import java.util.Map;
-import java.util.Set;
import javax.servlet.AsyncContext;
import javax.servlet.ServletInputStream;
@@ -118,12 +117,12 @@ public class TestVertxServerRequestToHttpServletRequest {
@Test
public void testGetCookies() {
- Set<io.vertx.ext.web.Cookie> vertxCookies = new LinkedHashSet<>();
- vertxCookies.add(io.vertx.ext.web.Cookie.cookie("c1", "c1v"));
- vertxCookies.add(io.vertx.ext.web.Cookie.cookie("c2", "c2v"));
+ Map<String, io.vertx.core.http.Cookie> vertxCookies = new LinkedHashMap<>();
+ vertxCookies.put("c1", io.vertx.core.http.Cookie.cookie("c1", "c1v"));
+ vertxCookies.put("c2", io.vertx.core.http.Cookie.cookie("c2", "c2v"));
new Expectations() {
{
- context.cookies();
+ context.cookieMap();
result = vertxCookies;
}
};
diff --git a/foundations/foundation-vertx/src/test/java/org/apache/servicecomb/foundation/vertx/http/TestVertxServerResponseToHttpServletResponse.java b/foundations/foundation-vertx/src/test/java/org/apache/servicecomb/foundation/vertx/http/TestVertxServerResponseToHttpServletResponse.java
index 215ea56..e82c662 100644
--- a/foundations/foundation-vertx/src/test/java/org/apache/servicecomb/foundation/vertx/http/TestVertxServerResponseToHttpServletResponse.java
+++ b/foundations/foundation-vertx/src/test/java/org/apache/servicecomb/foundation/vertx/http/TestVertxServerResponseToHttpServletResponse.java
@@ -42,14 +42,13 @@ import org.junit.rules.ExpectedException;
import io.vertx.core.AsyncResult;
import io.vertx.core.Context;
-import io.vertx.core.Future;
import io.vertx.core.Handler;
import io.vertx.core.MultiMap;
+import io.vertx.core.Promise;
import io.vertx.core.Vertx;
import io.vertx.core.buffer.Buffer;
import io.vertx.core.http.HttpServerResponse;
import io.vertx.core.impl.SyncContext;
-import io.vertx.core.impl.VertxImpl;
import io.vertx.core.streams.WriteStream;
import mockit.Deencapsulation;
import mockit.Expectations;
@@ -139,9 +138,9 @@ public class TestVertxServerResponseToHttpServletResponse {
}
}.getMockInstance();
- new Expectations(VertxImpl.class) {
+ new Expectations() {
{
- VertxImpl.context();
+ Vertx.currentContext();
result = context;
}
};
@@ -154,7 +153,7 @@ public class TestVertxServerResponseToHttpServletResponse {
}
@Mock
- <T> void executeBlocking(Handler<Future<T>> blockingCodeHandler, boolean ordered,
+ <T> void executeBlocking(Handler<Promise<T>> blockingCodeHandler, boolean ordered,
Handler<AsyncResult<T>> resultHandler) {
SyncContext.syncExecuteBlocking(blockingCodeHandler, resultHandler);
}
@@ -170,9 +169,9 @@ public class TestVertxServerResponseToHttpServletResponse {
@Test
public void construct_invalid() throws IOException {
- new Expectations(VertxImpl.class) {
+ new Expectations() {
{
- VertxImpl.context();
+ Vertx.currentContext();
result = null;
}
};
@@ -270,9 +269,9 @@ public class TestVertxServerResponseToHttpServletResponse {
@Test
public void flushBuffer_diffContext() throws IOException {
- new Expectations(VertxImpl.class) {
+ new Expectations() {
{
- VertxImpl.context();
+ Vertx.currentContext();
result = null;
}
};
diff --git a/foundations/foundation-vertx/src/test/java/org/apache/servicecomb/foundation/vertx/stream/TestPumpFromPart.java b/foundations/foundation-vertx/src/test/java/org/apache/servicecomb/foundation/vertx/stream/TestPumpFromPart.java
index 9ba8a28..befcc2e 100644
--- a/foundations/foundation-vertx/src/test/java/org/apache/servicecomb/foundation/vertx/stream/TestPumpFromPart.java
+++ b/foundations/foundation-vertx/src/test/java/org/apache/servicecomb/foundation/vertx/stream/TestPumpFromPart.java
@@ -33,7 +33,7 @@ import org.junit.Assert;
import org.junit.Test;
import io.vertx.core.Context;
-import io.vertx.core.Future;
+import io.vertx.core.Promise;
import io.vertx.core.impl.SyncContext;
import mockit.Expectations;
import mockit.Mock;
@@ -121,7 +121,7 @@ public class TestPumpFromPart {
public void pump_read_error() throws IOException {
new MockUp<InputStreamToReadStream>() {
@Mock
- void readInWorker(Future<ReadResult> future) {
+ void readInWorker(Promise<ReadResult> future) {
future.fail(error);
}
};
diff --git a/transports/transport-rest/transport-rest-vertx/src/test/java/org/apache/servicecomb/transport/rest/vertx/TestVertxRestDispatcher.java b/transports/transport-rest/transport-rest-vertx/src/test/java/org/apache/servicecomb/transport/rest/vertx/TestVertxRestDispatcher.java
index f02ee0e..2d8185c 100644
--- a/transports/transport-rest/transport-rest-vertx/src/test/java/org/apache/servicecomb/transport/rest/vertx/TestVertxRestDispatcher.java
+++ b/transports/transport-rest/transport-rest-vertx/src/test/java/org/apache/servicecomb/transport/rest/vertx/TestVertxRestDispatcher.java
@@ -42,11 +42,13 @@ import org.junit.Before;
import org.junit.Test;
import io.netty.handler.codec.http.multipart.HttpPostRequestDecoder.ErrorDataDecoderException;
+import io.vertx.codegen.annotations.Nullable;
import io.vertx.core.AsyncResult;
import io.vertx.core.Context;
import io.vertx.core.Handler;
import io.vertx.core.MultiMap;
import io.vertx.core.buffer.Buffer;
+import io.vertx.core.http.Cookie;
import io.vertx.core.http.HttpMethod;
import io.vertx.core.http.HttpServerRequest;
import io.vertx.core.http.HttpServerResponse;
@@ -292,12 +294,6 @@ public class TestVertxRestDispatcher {
}
}.getMockInstance();
- new Expectations(VertxImpl.class) {
- {
- VertxImpl.context();
- result = context;
- }
- };
Deencapsulation.invoke(dispatcher, "onRequest", routingContext);
Assert.assertEquals(VertxRestInvocation.class, map.get(RestConst.REST_PRODUCER_INVOCATION).getClass());
@@ -381,12 +377,22 @@ class MockHttpServerResponse implements HttpServerResponse {
}
@Override
+ public void end(Handler<AsyncResult<Void>> handler) {
+
+ }
+
+ @Override
public void end(String chunk) {
responseEnded = true;
responseChunk = chunk;
}
@Override
+ public void end(String s, Handler<AsyncResult<Void>> handler) {
+
+ }
+
+ @Override
public HttpServerResponse exceptionHandler(Handler<Throwable> handler) {
return null;
}
@@ -397,6 +403,11 @@ class MockHttpServerResponse implements HttpServerResponse {
}
@Override
+ public HttpServerResponse write(Buffer buffer, Handler<AsyncResult<Void>> handler) {
+ return null;
+ }
+
+ @Override
public HttpServerResponse setWriteQueueMaxSize(int maxSize) {
return null;
}
@@ -492,11 +503,21 @@ class MockHttpServerResponse implements HttpServerResponse {
}
@Override
+ public HttpServerResponse write(String s, String s1, Handler<AsyncResult<Void>> handler) {
+ return null;
+ }
+
+ @Override
public HttpServerResponse write(String chunk) {
return null;
}
@Override
+ public HttpServerResponse write(String s, Handler<AsyncResult<Void>> handler) {
+ return null;
+ }
+
+ @Override
public HttpServerResponse writeContinue() {
return null;
}
@@ -507,11 +528,21 @@ class MockHttpServerResponse implements HttpServerResponse {
}
@Override
+ public void end(String s, String s1, Handler<AsyncResult<Void>> handler) {
+
+ }
+
+ @Override
public void end(Buffer chunk) {
}
@Override
+ public void end(Buffer buffer, Handler<AsyncResult<Void>> handler) {
+
+ }
+
+ @Override
public HttpServerResponse sendFile(String filename, long offset, long length) {
return null;
}
@@ -589,4 +620,14 @@ class MockHttpServerResponse implements HttpServerResponse {
public HttpServerResponse writeCustomFrame(int type, int flags, Buffer payload) {
return null;
}
+
+ @Override
+ public HttpServerResponse addCookie(Cookie cookie) {
+ return null;
+ }
+
+ @Override
+ public @Nullable Cookie removeCookie(String s, boolean b) {
+ return null;
+ }
}
[servicecomb-java-chassis] 12/14: [SCB-1582] Update thirdparty
dependency versions and delete unused dependencies
Posted by li...@apache.org.
This is an automated email from the ASF dual-hosted git repository.
liubao pushed a commit to branch 1.3.x
in repository https://gitbox.apache.org/repos/asf/servicecomb-java-chassis.git
commit fa049bb101d557fec40d1410e67d10d347309927
Author: AngLi2 <li...@qq.com>
AuthorDate: Mon Nov 18 15:18:57 2019 +0800
[SCB-1582] Update thirdparty dependency versions and delete unused dependencies
---
java-chassis-dependencies/default/pom.xml | 20 +++++++++++---------
.../response/TestJaxrsConsumerResponseMapper.java | 6 +++++-
2 files changed, 16 insertions(+), 10 deletions(-)
diff --git a/java-chassis-dependencies/default/pom.xml b/java-chassis-dependencies/default/pom.xml
index e66246f..a65867b 100644
--- a/java-chassis-dependencies/default/pom.xml
+++ b/java-chassis-dependencies/default/pom.xml
@@ -32,7 +32,6 @@
<properties>
<!-- Dependency versions -->
- <apache-commons.version>3.7</apache-commons.version>
<archaius.version>0.7.6</archaius.version>
<asciidoctorj.version>1.6.2</asciidoctorj.version>
<aspectj.version>1.9.3</aspectj.version>
@@ -43,6 +42,7 @@
<commons-configuration.version>1.10</commons-configuration.version>
<commons-io.version>2.6</commons-io.version>
<commons-lang.version>2.6</commons-lang.version>
+ <commons-lang3.version>3.9</commons-lang3.version>
<commons-logging.version>1.2</commons-logging.version>
<cxf.version>3.3.1</cxf.version>
<dyuproject-protostuff.version>1.0.7.fixed.3500</dyuproject-protostuff.version>
@@ -70,7 +70,7 @@
<javax-servlet.version>4.0.1</javax-servlet.version>
<javax-transaction.version>1.2</javax-transaction.version>
<javax-validation.version>2.0.1.Final</javax-validation.version>
- <javax-ws-rs.version>2.0.1</javax-ws-rs.version>
+ <javax-ws-rs.version>2.1</javax-ws-rs.version>
<jedis.version>2.9.0</jedis.version>
<jersey.version>2.27</jersey.version>
<jettison.version>1.4.0</jettison.version>
@@ -260,12 +260,8 @@
<version>${guava.version}</version>
<exclusions>
<exclusion>
- <groupId>com.google.errorprone</groupId>
- <artifactId>error_prone_annotations</artifactId>
- </exclusion>
- <exclusion>
- <groupId>org.codehaus.mojo</groupId>
- <artifactId>animal-sniffer-annotations</artifactId>
+ <groupId>*</groupId>
+ <artifactId>*</artifactId>
</exclusion>
</exclusions>
</dependency>
@@ -274,6 +270,12 @@
<groupId>com.google.inject</groupId>
<artifactId>guice</artifactId>
<version>${guice.version}</version>
+ <exclusions>
+ <exclusion>
+ <groupId>aopalliance</groupId>
+ <artifactId>aopalliance</artifactId>
+ </exclusion>
+ </exclusions>
</dependency>
<dependency>
@@ -719,7 +721,7 @@
<dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-lang3</artifactId>
- <version>${apache-commons.version}</version>
+ <version>${commons-lang3.version}</version>
</dependency>
<dependency>
diff --git a/swagger/swagger-invocation/invocation-jaxrs/src/test/java/org/apache/servicecomb/swagger/invocation/jaxrs/response/TestJaxrsConsumerResponseMapper.java b/swagger/swagger-invocation/invocation-jaxrs/src/test/java/org/apache/servicecomb/swagger/invocation/jaxrs/response/TestJaxrsConsumerResponseMapper.java
index b35a4e9..2a32415 100644
--- a/swagger/swagger-invocation/invocation-jaxrs/src/test/java/org/apache/servicecomb/swagger/invocation/jaxrs/response/TestJaxrsConsumerResponseMapper.java
+++ b/swagger/swagger-invocation/invocation-jaxrs/src/test/java/org/apache/servicecomb/swagger/invocation/jaxrs/response/TestJaxrsConsumerResponseMapper.java
@@ -40,6 +40,8 @@ public class TestJaxrsConsumerResponseMapper {
int status;
+ String reason;
+
Object entity;
Map<String, Object> headers = new LinkedHashMap<>();
@@ -53,8 +55,9 @@ public class TestJaxrsConsumerResponseMapper {
public void setup() {
responseBuilder = new MockUp<ResponseBuilder>() {
@Mock
- ResponseBuilder status(int status) {
+ ResponseBuilder status(int status, String reasonPhrase) {
TestJaxrsConsumerResponseMapper.this.status = status;
+ TestJaxrsConsumerResponseMapper.this.reason = reasonPhrase;
return responseBuilder;
}
@@ -98,6 +101,7 @@ public class TestJaxrsConsumerResponseMapper {
mapper.mapResponse(response);
Assert.assertEquals(Status.OK.getStatusCode(), status);
+ Assert.assertEquals(Status.OK.getReasonPhrase(), reason);
Assert.assertEquals("ret", entity);
Assert.assertEquals(0, headers.size());
}
[servicecomb-java-chassis] 03/14: [SCB-1557] Fix application start
info log incorrect
Posted by li...@apache.org.
This is an automated email from the ASF dual-hosted git repository.
liubao pushed a commit to branch 1.3.x
in repository https://gitbox.apache.org/repos/asf/servicecomb-java-chassis.git
commit 433804eb13787e1d0ae816d4c4a59b91a88bc91b
Author: AngLi2 <li...@qq.com>
AuthorDate: Thu Nov 14 20:14:50 2019 +0800
[SCB-1557] Fix application start info log incorrect
---
.../servicecomb/core/bootup/AddressInformationCollector.java | 4 ++--
.../servicecomb/core/bootup/ServiceInformationCollector.java | 10 +++++-----
2 files changed, 7 insertions(+), 7 deletions(-)
diff --git a/core/src/main/java/org/apache/servicecomb/core/bootup/AddressInformationCollector.java b/core/src/main/java/org/apache/servicecomb/core/bootup/AddressInformationCollector.java
index ca7cf7d..c8f79aa 100644
--- a/core/src/main/java/org/apache/servicecomb/core/bootup/AddressInformationCollector.java
+++ b/core/src/main/java/org/apache/servicecomb/core/bootup/AddressInformationCollector.java
@@ -23,9 +23,9 @@ import org.apache.servicecomb.deployment.SystemBootstrapInfo;
public class AddressInformationCollector implements BootUpInformationCollector {
@Override
public String collect() {
- return "service center: "
+ return "Service Center: "
+ getCenterInfo(Deployment.getSystemBootStrapInfo("ServiceCenter"))
- + "\n" + "config center: "
+ + "\n" + "Config Center: "
+ getCenterInfo(Deployment.getSystemBootStrapInfo("ConfigCenter"));
}
diff --git a/core/src/main/java/org/apache/servicecomb/core/bootup/ServiceInformationCollector.java b/core/src/main/java/org/apache/servicecomb/core/bootup/ServiceInformationCollector.java
index d1fd864..d299b92 100644
--- a/core/src/main/java/org/apache/servicecomb/core/bootup/ServiceInformationCollector.java
+++ b/core/src/main/java/org/apache/servicecomb/core/bootup/ServiceInformationCollector.java
@@ -24,12 +24,12 @@ public class ServiceInformationCollector implements BootUpInformationCollector {
@Override
public String collect() {
- return "AppID: " + RegistryUtils.getMicroservice().getAppId()
- + "\n" + "ServiceName: " + RegistryUtils.getMicroservice().getServiceName()
+ return "App ID: " + RegistryUtils.getMicroservice().getAppId()
+ + "\n" + "Service Name: " + RegistryUtils.getMicroservice().getServiceName()
+ "\n" + "Version: " + RegistryUtils.getMicroservice().getVersion()
- + "\n" + "Environment: " + RegistryUtils.getMicroserviceInstance().getEnvironment()
- + "\n" + "ServiceID: " + RegistryUtils.getMicroserviceInstance().getServiceId()
- + "\n" + "InstanceID; " + RegistryUtils.getMicroserviceInstance().getInstanceId();
+ + "\n" + "Environment: " + RegistryUtils.getMicroservice().getEnvironment()
+ + "\n" + "Service ID: " + RegistryUtils.getMicroserviceInstance().getServiceId()
+ + "\n" + "Instance ID: " + RegistryUtils.getMicroserviceInstance().getInstanceId();
}
@Override
[servicecomb-java-chassis] 13/14: [SCB-1601]Abandon waiting 30
seconds after waiting request timeout.
Posted by li...@apache.org.
This is an automated email from the ASF dual-hosted git repository.
liubao pushed a commit to branch 1.3.x
in repository https://gitbox.apache.org/repos/asf/servicecomb-java-chassis.git
commit cc14795775dd428059a540d9d9d40741efe44b67
Author: zhangchi02 <14...@qq.com>
AuthorDate: Mon Nov 18 17:09:29 2019 +0800
[SCB-1601]Abandon waiting 30 seconds after waiting request timeout.
---
core/src/main/java/org/apache/servicecomb/core/SCBEngine.java | 1 +
1 file changed, 1 insertion(+)
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 489c1a0..c7870b2 100644
--- a/core/src/main/java/org/apache/servicecomb/core/SCBEngine.java
+++ b/core/src/main/java/org/apache/servicecomb/core/SCBEngine.java
@@ -337,6 +337,7 @@ public class SCBEngine {
if (System.currentTimeMillis() - start > TimeUnit.SECONDS.toMillis(30)) {
LOGGER.error("wait for all requests timeout, abandon waiting, remaining requests: {}.", remaining);
+ return;
}
TimeUnit.SECONDS.sleep(1);
}