Commit Graph

4212 Commits

Author SHA1 Message Date
Julien Viet
6949cd26a6 Releasing 4.0.0-milestone4 4.0.0-milestone4 2019-12-06 14:34:23 +01:00
Paulo Lopes
047dde2470 Code changed to solve the JSON RFCs (#3197)
* Code changed to solve the JSON RFCs

Signed-off-by: Paulo Lopes <pmlopes@gmail.com>

* remove check for String

Signed-off-by: Paulo Lopes <pmlopes@gmail.com>

* Ensure that array remove can work with unwrapped values too.

Signed-off-by: Paulo Lopes <pmlopes@gmail.com>

* Use system encoder

* Silently cast to String

Signed-off-by: Paulo Lopes <pmlopes@gmail.com>

* avoid encode during copy

Signed-off-by: Paulo Lopes <pmlopes@gmail.com>

* test byte[] and instant are not serialized internally

* Revert "Silently cast to String"

This reverts commit f35876b7

Signed-off-by: Paulo Lopes <pmlopes@gmail.com>
2019-12-06 14:15:45 +01:00
Julien Viet
19ea967a98 Change HTTP/1 outbound back-pressure to use eventual consistency to avoid race on missed signals: currently the HTTP/1 client request and server response use the TCP socket writability directly. As now a connection might use message passing with its streams, this can result in a missed back-pressure signal or an inacurate back-pressure measurement, e.b writeQueueFull() might return a wrong value or a drain handler might not be called. Now each stream maintain its writability flag and will update it when the connection writability changes so the stream will always show the most recent value on this stream resulting in a loss of signal misses. 2019-12-06 13:56:41 +01:00
Julien Viet
960276c3c8 Create HTTP/1 stream on event loop 2019-12-06 12:53:55 +01:00
Julien Viet
2f6faf8cf3 Remove unused field 2019-12-06 12:44:52 +01:00
Julien Viet
ab1464c8df Improve Http1xTest#testContexts that will now overrun the client connection with buffers 2019-12-06 01:06:15 +01:00
Paulo Lopes
73f46c0097 Avoid eventbus npe on verticle factories (#3206)
* Avoid eventbus npe on verticle factories

Signed-off-by: Paulo Lopes <pmlopes@gmail.com>

* Added a regression test that asserts that eventbus and shared data are not null at factory init.

Signed-off-by: Paulo Lopes <pmlopes@gmail.com>
2019-12-05 15:55:52 +01:00
Julien Viet
d663a5c7fb Make sure that all HTTP/1 client connection writes are serialized without reordering due to back-pressure 2019-12-05 14:28:29 +01:00
Julien Viet
24368ac06e Remove FileStreamChannel that is not used anymore 2019-12-04 23:48:02 +01:00
Julien Viet
3be3ce6a79 Improve HTTP/1 metrics reporting 2019-12-04 20:01:30 +01:00
Julien Viet
3eb8e765cf Rename HttpServerRequestImpl -> Http1xServerRequest and HttpServerResponseImpl -> Http1xServerResponse 2019-12-04 16:17:57 +01:00
Julien Viet
a1b8c283c9 Improve racy Http2ClientTest#testStreamPriorityNoChange and disable it because it cannot reliably pass for now 2019-12-04 16:17:57 +01:00
Julien Viet
2b5a3c94a8 HttpClientRequest#end(Handler) might not callback the handler 2019-12-04 14:33:27 +01:00
Julien Viet
f32b26bb26 Improve HttpMetricsTestBase#testHttpClientLifecycle 2019-12-04 13:58:22 +01:00
Julien Viet
5878f6f866 Fixing race test and race code for HttpClient request reset 2019-12-04 12:24:04 +01:00
Julien Viet
3eb1b3c29f Fix racy test 2019-12-04 11:04:37 +01:00
Julien Viet
959f33c75b Improve metrics test for datagrams 2019-12-04 10:30:48 +01:00
Julien Viet
5700b170e7 Fix incorrect HTTP/2 testing stream priority change 2019-12-04 10:24:24 +01:00
Julien Viet
2c4cc53246 Improve HttpTest#testClientDecompressionError 2019-12-04 09:56:48 +01:00
Julien Viet
9967fff86b A few necessary fixes 2019-12-04 00:47:32 +01:00
Julien Viet
159c34c2eb Use correct test address in HttpTest#testWorkerServer so it works with native test profile 2019-12-03 23:52:37 +01:00
Julien Viet
ea2c1b71a5 Duplicate contexts should maintain their own ordered task queue instead of relying on the original context queue, so that worker tasks are serialised for the duplicate context and not for all duplicate contexts of the same original context. This allow for better concurrency processing in HTTP worker servers. This fixes #3217 2019-12-03 23:48:45 +01:00
Julien Viet
abb2de2160 Make sure that the HttpServer connection handler is always called on the event-loop context (even for worker contexts) 2019-12-03 23:48:40 +01:00
Julien Viet
4f23ce260d The VertxHandler does not handle anymore the dispatch to the Vertx Context and instead the connection has full control on the dispatch to the application allowing each protocol to perform application dispatch according to its concurrency.
Support worker contexts in the HTTP server implementation for the HTTP/2 protocol: the implementation uses message passing between the connection event loop and the HTTP streams when the stream are delivered on a worker context, otherwise this will be a simple method call.

Metrics and tracing are now always reported from the IO thread in all cases.

This fixes #3216 .
2019-12-03 22:46:28 +01:00
Julien Viet
c7c18b1e37 HTTP/2 client requests should use their own context - Fixes #3215 2019-12-02 12:06:11 +01:00
Julien Viet
7cfbc84aa8 Rework the HttpClientRequest#sendHead method so it will perform the callback when the header has been sent using HttpClientConnection#writeHead method and also report when writing the headers is a failure. For this purpose the sendHead method callback is changed to Handler<AsyncResult<HttpVersion>> instead of Handler<HttpVersion>. Fixes #3213 - fixes #3214 2019-12-02 10:42:09 +01:00
Julien Viet
223418d0fd Call HTTP client connection handler before service - closes #321 2019-12-01 18:07:39 +01:00
Julien Viet
8330a3cd62 Change HTTP/1.1 client connection implementation so each request will have its own event-loop. When the request event-loop is the same than the connection event-loop this will a method call, when the event-loop are distincts, this will do message passing between the event loops. This fixes #3210 2019-11-28 00:10:54 +01:00
Julien Viet
33b1cff459 NetClient and HttpClient should return a failed future instead of throwing an exception when the transport cannot create a domain socket. 2019-11-27 14:54:54 +01:00
Thomas Segismont
765eb6e7fc Missing verify goal in failsafe plugins execution.
Also, remove the phase so that both goals bind to their default one.

Signed-off-by: Thomas Segismont <tsegismont@gmail.com>
2019-11-25 18:24:10 +01:00
Julien Viet
d1df71fe09 Properly redeliver accumulated messages in the pipeline during a client NetSocket upgrade 2019-11-25 16:40:09 +01:00
Julien Viet
4ad507ca72 Update HTTP client NetSocket handling for our tests 2019-11-25 15:32:04 +01:00
Julien Viet
cbad29becd HTTP client asynchronous NetSocket connect - fixes #3207 2019-11-25 14:08:37 +01:00
Julien Viet
f1fed310a7 Replaced tabs by spaces 2019-11-22 16:59:41 +01:00
Julien Viet
b03361afe8 Use default methods in Promise instead of being on FutureImpl 2019-11-22 11:57:33 +01:00
Julien Viet
a794a8ff69 Added promise on VertxInternal to create them from the current context 2019-11-21 12:01:16 +01:00
Julien Viet
8fc6a5806c Unify HTTP/1 client connection progress queues - see #3204 2019-11-20 16:07:38 +01:00
Julien Viet
7e587a0079 Remove unused parameter in HttpClientRequestImpl 2019-11-20 00:15:53 +01:00
Julien Viet
8a4de51ea4 Rename methods on ContextInternal with better names 2019-11-19 15:20:26 +01:00
Thomas Segismont
6b13bdc3d5 Merge pull request #3167 from hengyunabc/master
fix cli @Option acceptValue support.
2019-11-18 12:30:51 +01:00
Julien Viet
7fc8a7a93a Annotate EventBus body parameters with Nullable - see #3199 2019-11-17 11:34:14 +01:00
Radim Vansa
8370289db2 Replace LinkedBlockingQueue with LinkedTransferQueue in worker-pool
Signed-off-by: Radim Vansa <rvansa@redhat.com>
2019-11-16 13:36:39 +01:00
Julien Viet
ba74b71985 Improve MetricsTest#testBroadcastMessage to avoid race when the metrics has not yet fully published the collected metrics which are asserted 2019-11-15 13:01:28 +01:00
Julien Viet
d84bc2c99e Fix racy test DeploymentTest#testSimpleChildDeployment 2019-11-15 12:40:26 +01:00
Julien Viet
c4fec42922 HTTP/1 stream should synchronise when updating the connection stream - see #3196 2019-11-15 11:46:47 +01:00
Julien Viet
8374efd9e9 Refactor and move the HTTP/1 request creation/send in Http1xClientConnection 2019-11-15 11:41:21 +01:00
Julien Viet
24c4526440 Internal refactor of the deployment to decouple the DeploymentManager from the VerticleFactory management and classloading. The DeploymentManager now deploys Callable<Verticle> instead of Supplier<Verticle> and only cares about that, the newly introduced VerticleManager provides Callable<Verticle> to the DeploymentManager for creating Verticle instances. This also changes the VerticleFactory creation contract as it fixes #3195 2019-11-13 23:47:02 +01:00
zenios
58f2c881ba Fixes incomplete promise when a child verticle could not be deployed … (#3186)
* Fixes incomplete promise when a child verticle could not be deployed because its parent has been undeployed

Signed-off-by: zenios <dimitris.zenios@gmail.com>

* Added tests

Signed-off-by: zenios <dimitris.zenios@gmail.com>

* Fail the promise after undeploy is completed

Signed-off-by: zenios <dimitris.zenios@gmail.com>

* Simplify test using onSuccess / onFailure

Signed-off-by: zenios <dimitris.zenios@gmail.com>

* Use await / testComplete instead of CountDownLatch

Signed-off-by: zenios <dimitris.zenios@gmail.com>
2019-11-13 23:25:01 +01:00
Julien Viet
97d3614496 Minor rename 2019-11-12 14:31:01 +01:00
Julien Viet
f1537e7116 Change the Closeable contract to provide a promise instead of an handler - closes #3192 2019-11-12 14:25:24 +01:00