Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Feature/http3 support 5.x #5311

Open
wants to merge 604 commits into
base: master
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
604 commits
Select commit Hold shift + click to select a range
f3817ee
Use vertx5-parent version 9
vietj Nov 8, 2024
e640082
Missing docs (#5391)
vietj Nov 15, 2024
31afb88
Rewrite the TCP/HTTP close section and added missing shutdown section.
vietj Nov 16, 2024
cd8fb7b
Javadoc cleanup
vietj Nov 17, 2024
1722740
Save parsing twice numeric IPv4 address
franz1981 Sep 10, 2024
be24038
Save intermediate text encoded buffer copies
franz1981 Oct 10, 2024
de97df6
Small content-length values caching
franz1981 Oct 2, 2024
9d33156
Migrate to VerticleBase in module examples
tsegismont Nov 20, 2024
ae4998b
CompositeFuture should support custom future implementations (#5401)
tsegismont Nov 21, 2024
24a5731
Releasing 5.0.0.CR2
vietj Nov 22, 2024
b302ccb
Set version to 5.0.0-SNAPSHOT
vietj Nov 22, 2024
be68cf7
Improve VertxBuilder documentation.
vietj Nov 26, 2024
e82f8c7
Use 3 nodes for clustered all tests (#5406)
frant-hartm Nov 27, 2024
0cc05fa
HTTP stream reset should be asynchronous.
frant-hartm Nov 27, 2024
498e05e
HTTP client stream should handle a write to a stream which has been r…
vietj Dec 2, 2024
5493fc9
Fix JsonArray contains for non-wrapped JsonArray/JsonObject
kristian Nov 19, 2024
9bc69df
feat: resolve conflicts with master
imz87 Dec 5, 2024
a034bb7
feat: stream close method should be closed before connection close
imz87 Dec 7, 2024
28b015f
feat: resolve testDiscardConnectionWhenChannelBecomesInactive issue
imz87 Dec 7, 2024
29c9498
feat: remove because that was removed from http2
imz87 Dec 7, 2024
8d3e9c2
feat: need in the future
imz87 Dec 7, 2024
9d727a0
feat: organize and rewrite writeSettings
imz87 Dec 8, 2024
e8b4759
feat: make class like http2
imz87 Dec 8, 2024
827be21
feat: improve writeGoAway
imz87 Dec 8, 2024
aa0c9bb
feat: improve writeGoAway
imz87 Dec 8, 2024
1df396b
feat: refactor logic to align with new HTTP/2 implementation
imz87 Dec 8, 2024
a11aa71
feat: remove maxConcurrentStreams modification from http3
imz87 Dec 8, 2024
516da78
feat: refactor logic to align with new HTTP/2 implementation
imz87 Dec 8, 2024
dde6f38
feat: implement customFrameWrite
imz87 Dec 8, 2024
e156714
feat: add Http3ClientResponseParserTest for http3
imz87 Dec 9, 2024
baa2fe7
feat: extract HttpOptionsFactory for options creation
imz87 Dec 9, 2024
4a294d0
feat: remove Http2TestBase and move its logic to its children and to …
imz87 Dec 9, 2024
0f73166
feat: generalize Http2ServerTest to be used as parent of Http3ServerTest
imz87 Dec 9, 2024
03e146f
feat: generalize Http2ClientTest to be used as parent of Http3ClientTest
imz87 Dec 9, 2024
4136e72
feat: move related method from parent(Http2TestBase) to child
imz87 Dec 9, 2024
db73884
feat: add http3 to HttpBandwidthLimitingTest
imz87 Dec 9, 2024
310d5f9
feat: add HttpClientTimeoutTest
imz87 Dec 9, 2024
115b954
feat: remove static import
imz87 Dec 9, 2024
abc81ac
feat: add Http3ServerTest
imz87 Dec 9, 2024
39efdc4
feat: add Http3ClientTest
imz87 Dec 9, 2024
4729f7f
feat: remove initialMaxStreamsBidirectional because it can be accesse…
imz87 Dec 10, 2024
9c37f0e
feat: add http3MultiplexingLimit to options to manage concurrency mor…
imz87 Dec 10, 2024
9b84bc7
feat: resolve testRequestQueuing issue
imz87 Dec 10, 2024
2844607
feat: pass object instead of lots of values
imz87 Dec 10, 2024
7c62e1c
feat: pass options instead of lots of params
imz87 Dec 10, 2024
f0fe1db
feat: use options
imz87 Dec 10, 2024
a14b7f0
feat: use options to configure http3 quic codec
imz87 Dec 10, 2024
0bff395
feat: resolve test issue with new logic for concurrency for http/3
imz87 Dec 10, 2024
ca9096a
feat: resolve test that expect valid http3 settings
imz87 Dec 10, 2024
45e705d
feat: find session correctly in http/3
imz87 Dec 18, 2024
229fcee
feat: enable sni for HTTP/3
imz87 Dec 18, 2024
876fa77
feat: enable sni for HTTP/3 tests
imz87 Dec 18, 2024
a622dbc
feat: enable sni for HTTP/3 tests
imz87 Dec 18, 2024
69e455d
feat: add sni examples
imz87 Dec 18, 2024
1b26d49
feat: add http3TLSTest
imz87 Dec 18, 2024
eea1906
feat: reformat
imz87 Dec 18, 2024
2d1260d
feat: prepare for more tests
imz87 Dec 19, 2024
4b44a9f
feat: quic supports only correct host names
imz87 Dec 19, 2024
5fc283c
feat: resolve two tests
imz87 Dec 19, 2024
9580773
feat: it was needed for http server too
imz87 Dec 19, 2024
48b65c9
feat: ignore tests regards to protocol version
imz87 Dec 19, 2024
d9e00bf
feat: add server file upload test
imz87 Dec 19, 2024
3c8da93
feat: ignore invalid protocol test
imz87 Dec 23, 2024
df9e7d2
feat: cipher suites cannot be modified in QUIC
imz87 Dec 23, 2024
023a4d6
feat: throw SSLHandshakeException on receiving QuicConnectionCloseEvent
imz87 Dec 23, 2024
84f62f1
feat: throw SSLHandshakeException on receiving QuicConnectionCloseEvent
imz87 Dec 23, 2024
58190c0
feat: organize tests
imz87 Dec 23, 2024
c208ea1
feat: ignore test because: trailing dots are not allowed in netty for…
imz87 Dec 26, 2024
7b95b24
feat: resolve more tests issues
imz87 Dec 26, 2024
a1fbc05
feat: make test
imz87 Dec 26, 2024
bcf8472
feat: update SSLOptions for http3 and resolve related tests
imz87 Dec 27, 2024
db506dc
feat: enable load balancing for http3
imz87 Dec 27, 2024
b1ef52a
feat: cover http3 tests
imz87 Jan 1, 2025
368f0bb
feat: correct testListenInvalidPort test
imz87 Jan 4, 2025
3bd6842
feat: prepare vertxHandler to support http/3
imz87 Jan 12, 2025
b84905c
feat: add h3 net test
imz87 Jan 13, 2025
d97614a
feat: simplify the business
imz87 Jan 13, 2025
48f0f21
feat: generalize ChannelInitializer
imz87 Jan 13, 2025
a892808
feat: handle http3 socket regardless of framing
imz87 Jan 15, 2025
ee9e446
feat: use http3 in verxHandler
imz87 Jan 29, 2025
04c4998
feat: add for test purpose
imz87 Jan 29, 2025
26c6790
feat: make simpler
imz87 Jan 29, 2025
edb9a35
feat: solve test issues regards to vertxHandler
imz87 Jan 30, 2025
085c6a0
feat: solve test issues regards to vertxHandler
imz87 Feb 6, 2025
32a2383
feat: solve test issues regards to vertxHandler
imz87 Feb 8, 2025
4255cec
feat: reformat
imz87 Feb 8, 2025
db6d2c6
feat: rename
imz87 Feb 9, 2025
85ba28d
feat: rename option factory
imz87 Feb 10, 2025
6279caf
feat: make test class abstract for http2 and http3
imz87 Feb 10, 2025
15211b6
feat: add http2NetTest
imz87 Feb 10, 2025
9abcfc3
feat: add runnable http3 net tests
imz87 Feb 10, 2025
584c7b4
feat: add author
imz87 Feb 10, 2025
6796449
feat: revert to previous version
imz87 Feb 10, 2025
034fc0b
feat: revert VertxHandler to old version and use another method to ha…
imz87 Feb 10, 2025
9309151
feat: revert VertxHandler
imz87 Feb 10, 2025
636174e
feat: enable datagram option allows sending unreliable connectionless…
imz87 Feb 10, 2025
c2bf018
feat: remove resolved tests
imz87 Feb 10, 2025
4134fef
feat: ignore problematic test
imz87 Feb 10, 2025
c8b0ca8
feat: reconfigure recvQueueLen & sendQueueLen
imz87 Feb 10, 2025
33daf3d
feat: delete extra options
imz87 Feb 10, 2025
0c18b05
feat: remove resolved tests
imz87 Feb 10, 2025
dd0e43e
feat: differ options test for h3 & h2
imz87 Feb 11, 2025
922bc46
feat: differ options test for h3 & h2
imz87 Feb 11, 2025
b710778
feat: resolve test case and remove sslOptions for http3
imz87 Feb 11, 2025
8591b03
feat: resolve options test cases
imz87 Feb 11, 2025
c8de59b
feat: add new examples
imz87 Feb 12, 2025
5104ea3
feat: remove comments
imz87 Feb 12, 2025
3ca85cc
feat: correct test with setting max udp packet size
imz87 Feb 13, 2025
350c1cc
feat: correct some tests by overriding testNetClientInternal_ for http3
imz87 Feb 16, 2025
4224891
feat: correct some tests by overriding testNetClientInternal_ for http3
imz87 Feb 16, 2025
ceb11be
feat: correct some tests by overriding testNetServerInternal_ for http3
imz87 Feb 16, 2025
a080aae
feat: remove encoding like http2
imz87 Feb 27, 2025
fb80eca
Allow configuring Netty compression content size threshold
wvuong Sep 9, 2024
ebaae86
Add javadoc and arg guard
wvuong Sep 11, 2024
2fae0a9
Fix, add tests, update javadoc
wvuong Nov 21, 2024
65017b4
Improve NetBandwidthLimitedTest which seems to have issues with CI
vietj Dec 10, 2024
8dbc949
Complete H2 reset promise as soon as the reset frame has been sent.
vietj Dec 10, 2024
5c96231
Avoid running NetBandwidthLimitingTest with IO_URING
vietj Dec 10, 2024
91da834
Releasing 5.0.0.CR3
vietj Dec 11, 2024
e0e5e57
Set version to 5.0.0-SNAPSHOT
vietj Dec 11, 2024
1e3ebd1
Remove HttpServerRequest cookieMap method
vietj Dec 17, 2024
0015205
Move deprecated HTTP headers validation constants to HttpHeadersInternal
vietj Dec 17, 2024
7bb2b7a
Move deprecated HttpServerResponse push method with string host methods.
vietj Dec 17, 2024
7d16f42
Move Context methods getLocal/removeLocal/putLocal to ContextInternal…
vietj Dec 18, 2024
7f4709c
Use Files.readString instead of Files.readAllBytes (#5428)
geoand Jan 3, 2025
482dab5
Move HostAndPortBenchmark to the benchmarks package
tsegismont Jan 6, 2025
0550f12
Fix wrong inherited javadoc of AsyncFile#exceptionHandler (#5432)
julianladisch Jan 6, 2025
42ac862
Rename test build properties.
vietj Jan 7, 2025
9def00b
Handle properly shadow context in worker executor implementation.
vietj Jan 6, 2025
dedda26
Remove thread sticky context feature.
vietj Jan 8, 2025
4db6f12
The WebSocket client pool should not starve on connect error.
vietj Jan 9, 2025
942b238
allow the 'host' header to be used on HTTP/2 requests if the ':author…
j-white Dec 19, 2024
2986d65
Fixes updates to traffic shaping options with shared servers
vietj Jan 13, 2025
6b5d9ab
Support duplicate context duplication.
vietj Jan 10, 2025
abefee8
Improve HTTP validation for inlining and specialized types
franz1981 Nov 16, 2024
b55b606
Fix InboundMessageQueue Javadoc (#5451)
tsegismont Jan 16, 2025
e4bd7b3
HTTP client form submission.
vietj Jan 22, 2025
d82116c
Correctly propagate the form encoding failure to the response failure
vietj Jan 23, 2025
1112fdc
Improve incorrect content type reporting when sending a form
vietj Jan 23, 2025
7254851
Releasing 5.0.0.CR4
vietj Jan 29, 2025
da21ac2
Set version to 5.0.0-SNAPSHOT
vietj Jan 29, 2025
1ca9672
Let ClientForm/ClientMultipartForm be data object instead of vertx gen
vietj Jan 27, 2025
476d494
Remove test races
vietj Jan 29, 2025
0e3b834
Fix racy test
vietj Jan 29, 2025
9822337
Provide better test failure message
vietj Jan 29, 2025
3a76f50
Remove usage of Jackson TypeReference.
vietj Jan 29, 2025
28e30e5
Improve racy test
vietj Jan 31, 2025
29f8f16
minor
vietj Jan 31, 2025
19a4db2
minor
vietj Jan 31, 2025
bf29cba
Refactor write/add
vietj Jan 31, 2025
6e7b54c
Unify
vietj Feb 3, 2025
7a21650
Rename more appropriately the queue to channel
vietj Feb 3, 2025
bace353
Add inbound testing for SPSC / SingleThread and improve close protoco…
vietj Feb 4, 2025
ddef087
Introduce MessageConsumerOptions.
vietj Jan 31, 2025
05277de
Remove MessageConsumer maxBufferedMessages accessors
vietj Jan 31, 2025
8d5c95d
Reimplement MessageConsumer with InboundMessageChannel
vietj Jan 31, 2025
06c0519
Add message consumer resumption thread correctness
vietj Feb 6, 2025
fcd5011
Async JSON parser should handle large integer (literaly speaking) num…
vietj Feb 6, 2025
2274ea9
Remove AddressHelper class
vietj Feb 7, 2025
1bd3c64
Fix reentrant close in InboundMessageHandler
vietj Feb 10, 2025
69bdd98
Avoid UUID.randomUUID() in Verticle deployment startup code
geoand Jan 31, 2025
e8d70fa
Rework the node selector implementation to handle ordering of select …
vietj Feb 7, 2025
6707b11
Clustered event-bus inbound/outbound connection separation of concerns.
vietj Feb 11, 2025
c068799
Make ClusteredEventBus#defaultAddress public for launcher
vietj Feb 12, 2025
a726cd3
Releasing 5.0.0.CR5
vietj Feb 12, 2025
d6d66e9
Releasing 5.0.0-SNAPSHOT
vietj Feb 12, 2025
53599a5
Introduce HttpRequestHead akin HttpResponseHead
vietj Feb 13, 2025
18b8ff3
Use simple parser instead of regex for parsing resolv.conf (#5439)
geoand Feb 25, 2025
67e22da
Improve racy test
vietj Feb 26, 2025
de942db
feat: resolve merge conflicts
imz87 Feb 27, 2025
da10d68
feat: prepare http3 socks5 proxy prerequisites
imz87 Feb 27, 2025
83ffd0b
feat: prepare http3 socks5 proxy prerequisites test
imz87 Mar 1, 2025
52d3c78
feat: move http3 things to Http3Utils
imz87 Mar 1, 2025
62a03ea
feat: move http3 things to Http3Utils
imz87 Mar 1, 2025
bf4b2a8
feat: move http3 things to Http3Utils
imz87 Mar 1, 2025
8f6b712
refactor: move http3 related functionality to Http3Utils
imz87 Mar 1, 2025
3da010f
refactor: move http3 related functionality to Http3Utils
imz87 Mar 1, 2025
f6a9c81
refactor: move http3 related functionality to Http3Utils
imz87 Mar 1, 2025
1d413bf
refactor: move http3 related functionality to Http3Utils
imz87 Mar 1, 2025
3da6583
refactor: use future instead of promise as return type
imz87 Mar 2, 2025
fcda986
refactor: manage exceptional case cautiously
imz87 Mar 2, 2025
494b1c7
refactor: improve readability
imz87 Mar 2, 2025
f7ab0cf
refactor: add http3 socks5 capability
imz87 Mar 2, 2025
844b139
refactor: simplify calculation of the applicationLayerProtocol
imz87 Mar 3, 2025
8949936
refactor: remove base options for testServerExceptionHandlerOnClose l…
imz87 Mar 3, 2025
441c624
refactor: add two netty proxy classes to vertx in order to implement …
imz87 Mar 4, 2025
c693aaa
refactor: implement proxy simpler with adding two netty proxy classes…
imz87 Mar 4, 2025
c405075
refactor: add todo
imz87 Mar 4, 2025
7398202
refactor: use correct constructor
imz87 Mar 4, 2025
f2644c8
refactor: add tests
imz87 Mar 4, 2025
c6a3707
refactor: reformat
imz87 Mar 4, 2025
dfd4621
refactor: add todo
imz87 Mar 4, 2025
46bff1f
refactor: organize proxy package
imz87 Mar 4, 2025
63d5042
refactor: add Socks4 proxy and not completed http proxy
imz87 Mar 5, 2025
d9ca68a
refactor: add Socks4 proxy and not completed http proxy
imz87 Mar 5, 2025
2ae1bc4
refactor: add a general Http3ControlStreamChannelHandler
imz87 Mar 12, 2025
c6829b3
refactor: build net socket for http proxy
imz87 Mar 12, 2025
23f2ff4
refactor: prepare netty HttpProxyHandler for httpProxy
imz87 Mar 12, 2025
ea445ed
refactor: add proxy handler
imz87 Mar 12, 2025
9bcbf7d
refactor: add http proxy handler test
imz87 Mar 12, 2025
c3cce73
refactor: remove unused method
imz87 Mar 12, 2025
1bfdf7c
refactor: use authority instead of uri
imz87 Mar 12, 2025
0bdab9a
refactor: add todo
imz87 Mar 12, 2025
876a05b
refactor: resolve a test issue
imz87 Mar 12, 2025
8e79b48
Disable IoUring CI until next Netty version
vietj Feb 27, 2025
1658da8
Vert.x Jackson json factory read constraint configuration should be o…
vietj Feb 26, 2025
0b31332
Add a blocking iterator utility for Vert.x read streams.
vietj Feb 28, 2025
9814da5
IteratorTest#testConcurrentReads is racy due to FakeStream implementa…
vietj Mar 3, 2025
1bc89a0
Handle correctly future await from an execute blocking on a virtual t…
vietj Mar 3, 2025
ac62a8e
Internal worker executor task/continuation API simplification.
vietj Mar 3, 2025
eee46b6
Improve the ReadStreamIterator to handle Vert.x virtual threads prope…
vietj Mar 3, 2025
c84e92c
HTTP/1 client connection unsolicited messages should be treated as in…
vietj Mar 4, 2025
9b6f0c6
HTTP/2 client queued writes should fail when stream creation fails.
vietj Mar 4, 2025
85f23e4
Minor cleanup
vietj Mar 5, 2025
75bec10
Remove FileSystem recursive deletion that uses a recursive parameter:…
vietj Mar 5, 2025
b923041
Minor doc suggested improvements
vietj Mar 5, 2025
f8faad5
Move supported get/put/remove local from Context to ContextInternal a…
vietj Mar 7, 2025
dbf21ad
Improve ContextLocal Javadoc
vietj Mar 7, 2025
3aeabda
VertxConnection enhancements.
vietj Mar 9, 2025
f4946b4
AddressResolver now declares a type parameter bound to Address for mo…
vietj Mar 8, 2025
d096c80
Internal API cleanup.
vietj Mar 7, 2025
b8a2fd9
Mitigate the usage of NoStackTraceThrowable.
vietj Mar 7, 2025
1a37728
Improve server trust store SNI configuration documentation
vietj Mar 10, 2025
b835adb
Provide a coherent implementation of hashCode for JsonObject/JsonArra…
vietj Mar 10, 2025
180e39f
Remove un-necessary module-info test requires
vietj Mar 10, 2025
8d4c9d8
Expose the deployment manager internal API.
vietj Mar 10, 2025
8037f76
Remove spurious import of org.apache.commons.math3.analysis
vietj Mar 11, 2025
950f5a2
Fix NPE when handling of HTTP/2 upgrade on server with a malformed ho…
vietj Mar 11, 2025
d181ed7
Update MimeMapping that extension should be in lower case format
vietj Mar 11, 2025
5e40e5b
Make sure ContextBuilder defaults to EL threading model (#5516)
tsegismont Mar 11, 2025
875d844
Rework ClusteredEventBusTest#testPreserveMessageOrderingOnContext (#5…
tsegismont Mar 11, 2025
1f8830c
Case-insensitive filename suffix mime type mapping when sending a file.
vietj Mar 11, 2025
ebdd62a
Small improvements to the FakeClusterManager (#5522)
tsegismont Mar 12, 2025
977978b
Change JsonArray hashCode to reduce collisions
tsegismont Mar 12, 2025
dc8f68d
refactor: resolve merge conflicts with master
imz87 Mar 14, 2025
7300b4d
refactor: add import
imz87 Mar 14, 2025
644dd05
refactor: resolve merge conflicts with master
imz87 Mar 14, 2025
41d9255
refactor: resolve rebase conflicts with master
imz87 Mar 14, 2025
c934032
refactor: resolve rebase conflicts with master
imz87 Mar 14, 2025
33ad06f
refactor: resolve rebase conflicts with master
imz87 Mar 14, 2025
4e61da8
refactor: clean the proxyProvider class
imz87 Mar 16, 2025
1650317
refactor: clean the proxyProvider class
imz87 Mar 16, 2025
d2b248a
refactor: use parent class log variable
imz87 Mar 16, 2025
a9e71b1
refactor: clean the proxyProvider class
imz87 Mar 16, 2025
b3b705d
refactor: clean the proxyProvider class
imz87 Mar 16, 2025
aa56fc7
refactor: cannot use an HTTP proxy without modifying Netty
imz87 Mar 17, 2025
66967e6
refactor: alter netty copy classes to align with originals for easier…
imz87 Mar 17, 2025
aa12c03
refactor: correct proxy tests
imz87 Mar 17, 2025
3b0da18
Merge branch 'master' of github.com:imz87/vert.x into feature/http3-s…
imz87 Mar 18, 2025
4a8ac98
refactor: resolve merge conflicts
imz87 Mar 18, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
5 changes: 5 additions & 0 deletions vertx-core/pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -98,6 +98,11 @@
<artifactId>netty-transport-classes-kqueue</artifactId>
<optional>true</optional>
</dependency>
<dependency>
<groupId>io.netty.incubator</groupId>
<artifactId>netty-incubator-codec-http3</artifactId>
<version>0.0.28.Final</version>
</dependency>

<!-- Jackson -->
<dependency>
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,63 @@
package io.vertx.core.http;

import io.vertx.core.json.JsonObject;
import io.vertx.core.json.JsonArray;
import java.time.Instant;
import java.time.format.DateTimeFormatter;

/**
* Converter and mapper for {@link io.vertx.core.http.Http3Settings}.
* NOTE: This class has been automatically generated from the {@link io.vertx.core.http.Http3Settings} original class using Vert.x codegen.
*/
public class Http3SettingsConverter {

static void fromJson(Iterable<java.util.Map.Entry<String, Object>> json, Http3Settings obj) {
for (java.util.Map.Entry<String, Object> member : json) {
switch (member.getKey()) {
case "qpackMaxTableCapacity":
if (member.getValue() instanceof Number) {
obj.setQpackMaxTableCapacity(((Number)member.getValue()).longValue());
}
break;
case "maxFieldSectionSize":
if (member.getValue() instanceof Number) {
obj.setMaxFieldSectionSize(((Number)member.getValue()).longValue());
}
break;
case "qpackMaxBlockedStreams":
if (member.getValue() instanceof Number) {
obj.setQpackMaxBlockedStreams(((Number)member.getValue()).longValue());
}
break;
case "enableConnectProtocol":
if (member.getValue() instanceof Number) {
obj.setEnableConnectProtocol(((Number)member.getValue()).longValue());
}
break;
case "h3Datagram":
if (member.getValue() instanceof Number) {
obj.setH3Datagram(((Number)member.getValue()).longValue());
}
break;
case "enableMetadata":
if (member.getValue() instanceof Number) {
obj.setEnableMetadata(((Number)member.getValue()).longValue());
}
break;
}
}
}

static void toJson(Http3Settings obj, JsonObject json) {
toJson(obj, json.getMap());
}

static void toJson(Http3Settings obj, java.util.Map<String, Object> json) {
json.put("qpackMaxTableCapacity", obj.getQpackMaxTableCapacity());
json.put("maxFieldSectionSize", obj.getMaxFieldSectionSize());
json.put("qpackMaxBlockedStreams", obj.getQpackMaxBlockedStreams());
json.put("enableConnectProtocol", obj.getEnableConnectProtocol());
json.put("h3Datagram", obj.getH3Datagram());
json.put("enableMetadata", obj.getEnableMetadata());
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -69,11 +69,6 @@ static void fromJson(Iterable<java.util.Map.Entry<String, Object>> json, HttpCli
obj.setDefaultPort(((Number)member.getValue()).intValue());
}
break;
case "protocolVersion":
if (member.getValue() instanceof String) {
obj.setProtocolVersion(io.vertx.core.http.HttpVersion.valueOf((String)member.getValue()));
}
break;
case "maxChunkSize":
if (member.getValue() instanceof Number) {
obj.setMaxChunkSize(((Number)member.getValue()).intValue());
Expand All @@ -94,6 +89,11 @@ static void fromJson(Iterable<java.util.Map.Entry<String, Object>> json, HttpCli
obj.setInitialSettings(new io.vertx.core.http.Http2Settings((io.vertx.core.json.JsonObject)member.getValue()));
}
break;
case "initialHttp3Settings":
if (member.getValue() instanceof JsonObject) {
obj.setInitialHttp3Settings(new io.vertx.core.http.Http3Settings((io.vertx.core.json.JsonObject)member.getValue()));
}
break;
case "alpnVersions":
if (member.getValue() instanceof JsonArray) {
java.util.ArrayList<io.vertx.core.http.HttpVersion> list = new java.util.ArrayList<>();
Expand Down Expand Up @@ -144,6 +144,11 @@ static void fromJson(Iterable<java.util.Map.Entry<String, Object>> json, HttpCli
obj.setName((String)member.getValue());
}
break;
case "http3MultiplexingLimit":
if (member.getValue() instanceof Number) {
obj.setHttp3MultiplexingLimit(((Number)member.getValue()).intValue());
}
break;
}
}
}
Expand All @@ -166,15 +171,15 @@ static void toJson(HttpClientOptions obj, java.util.Map<String, Object> json) {
json.put("defaultHost", obj.getDefaultHost());
}
json.put("defaultPort", obj.getDefaultPort());
if (obj.getProtocolVersion() != null) {
json.put("protocolVersion", obj.getProtocolVersion().name());
}
json.put("maxChunkSize", obj.getMaxChunkSize());
json.put("maxInitialLineLength", obj.getMaxInitialLineLength());
json.put("maxHeaderSize", obj.getMaxHeaderSize());
if (obj.getInitialSettings() != null) {
json.put("initialSettings", obj.getInitialSettings().toJson());
}
if (obj.getInitialHttp3Settings() != null) {
json.put("initialHttp3Settings", obj.getInitialHttp3Settings().toJson());
}
if (obj.getAlpnVersions() != null) {
JsonArray array = new JsonArray();
obj.getAlpnVersions().forEach(item -> array.add(item.name()));
Expand All @@ -192,5 +197,6 @@ static void toJson(HttpClientOptions obj, java.util.Map<String, Object> json) {
if (obj.getName() != null) {
json.put("name", obj.getName());
}
json.put("http3MultiplexingLimit", obj.getHttp3MultiplexingLimit());
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -94,6 +94,11 @@ static void fromJson(Iterable<java.util.Map.Entry<String, Object>> json, HttpSer
obj.setInitialSettings(new io.vertx.core.http.Http2Settings((io.vertx.core.json.JsonObject)member.getValue()));
}
break;
case "initialHttp3Settings":
if (member.getValue() instanceof JsonObject) {
obj.setInitialHttp3Settings(new io.vertx.core.http.Http3Settings((io.vertx.core.json.JsonObject)member.getValue()));
}
break;
case "alpnVersions":
if (member.getValue() instanceof JsonArray) {
java.util.ArrayList<io.vertx.core.http.HttpVersion> list = new java.util.ArrayList<>();
Expand Down Expand Up @@ -209,6 +214,9 @@ static void toJson(HttpServerOptions obj, java.util.Map<String, Object> json) {
if (obj.getInitialSettings() != null) {
json.put("initialSettings", obj.getInitialSettings().toJson());
}
if (obj.getInitialHttp3Settings() != null) {
json.put("initialHttp3Settings", obj.getInitialHttp3Settings().toJson());
}
if (obj.getAlpnVersions() != null) {
JsonArray array = new JsonArray();
obj.getAlpnVersions().forEach(item -> array.add(item.name()));
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,27 @@
package io.vertx.core.http;

import io.vertx.core.json.JsonObject;
import io.vertx.core.json.JsonArray;
import java.time.Instant;
import java.time.format.DateTimeFormatter;

/**
* Converter and mapper for {@link io.vertx.core.http.HttpSettings}.
* NOTE: This class has been automatically generated from the {@link io.vertx.core.http.HttpSettings} original class using Vert.x codegen.
*/
public class HttpSettingsConverter {

static void fromJson(Iterable<java.util.Map.Entry<String, Object>> json, HttpSettings obj) {
for (java.util.Map.Entry<String, Object> member : json) {
switch (member.getKey()) {
}
}
}

static void toJson(HttpSettings obj, JsonObject json) {
toJson(obj, json.getMap());
}

static void toJson(HttpSettings obj, java.util.Map<String, Object> json) {
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,48 @@
package io.vertx.core.http;

import io.vertx.core.json.JsonObject;
import io.vertx.core.json.JsonArray;
import java.time.Instant;
import java.time.format.DateTimeFormatter;

/**
* Converter and mapper for {@link io.vertx.core.http.StreamPriorityBase}.
* NOTE: This class has been automatically generated from the {@link io.vertx.core.http.StreamPriorityBase} original class using Vert.x codegen.
*/
public class StreamPriorityBaseConverter {

static void fromJson(Iterable<java.util.Map.Entry<String, Object>> json, StreamPriorityBase obj) {
for (java.util.Map.Entry<String, Object> member : json) {
switch (member.getKey()) {
case "weight":
if (member.getValue() instanceof Number) {
obj.setWeight(((Number)member.getValue()).shortValue());
}
break;
case "dependency":
if (member.getValue() instanceof Number) {
obj.setDependency(((Number)member.getValue()).intValue());
}
break;
case "exclusive":
if (member.getValue() instanceof Boolean) {
obj.setExclusive((Boolean)member.getValue());
}
break;
case "incremental":
break;
}
}
}

static void toJson(StreamPriorityBase obj, JsonObject json) {
toJson(obj, json.getMap());
}

static void toJson(StreamPriorityBase obj, java.util.Map<String, Object> json) {
json.put("weight", obj.getWeight());
json.put("dependency", obj.getDependency());
json.put("exclusive", obj.isExclusive());
json.put("incremental", obj.isIncremental());
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -19,6 +19,11 @@ static void fromJson(Iterable<java.util.Map.Entry<String, Object>> json, ClientO
obj.setTrustAll((Boolean)member.getValue());
}
break;
case "protocolVersion":
if (member.getValue() instanceof String) {
obj.setProtocolVersion(io.vertx.core.http.HttpVersion.valueOf((String)member.getValue()));
}
break;
case "connectTimeout":
if (member.getValue() instanceof Number) {
obj.setConnectTimeout(((Number)member.getValue()).intValue());
Expand Down Expand Up @@ -59,6 +64,9 @@ static void toJson(ClientOptionsBase obj, JsonObject json) {

static void toJson(ClientOptionsBase obj, java.util.Map<String, Object> json) {
json.put("trustAll", obj.isTrustAll());
if (obj.getProtocolVersion() != null) {
json.put("protocolVersion", obj.getProtocolVersion().name());
}
json.put("connectTimeout", obj.getConnectTimeout());
if (obj.getMetricsName() != null) {
json.put("metricsName", obj.getMetricsName());
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -43,6 +43,41 @@ static void fromJson(Iterable<java.util.Map.Entry<String, Object>> json, SSLOpti
obj.setUseAlpn((Boolean)member.getValue());
}
break;
case "http3":
if (member.getValue() instanceof Boolean) {
obj.setHttp3((Boolean)member.getValue());
}
break;
case "http3InitialMaxStreamsBidirectional":
if (member.getValue() instanceof Number) {
obj.setHttp3InitialMaxStreamsBidirectional(((Number)member.getValue()).longValue());
}
break;
case "http3InitialMaxData":
if (member.getValue() instanceof Number) {
obj.setHttp3InitialMaxData(((Number)member.getValue()).longValue());
}
break;
case "http3InitialMaxStreamDataBidirectionalLocal":
if (member.getValue() instanceof Number) {
obj.setHttp3InitialMaxStreamDataBidirectionalLocal(((Number)member.getValue()).longValue());
}
break;
case "http3InitialMaxStreamDataBidirectionalRemote":
if (member.getValue() instanceof Number) {
obj.setHttp3InitialMaxStreamDataBidirectionalRemote(((Number)member.getValue()).longValue());
}
break;
case "http3InitialMaxStreamDataUnidirectional":
if (member.getValue() instanceof Number) {
obj.setHttp3InitialMaxStreamDataUnidirectional(((Number)member.getValue()).longValue());
}
break;
case "http3InitialMaxStreamsUnidirectional":
if (member.getValue() instanceof Number) {
obj.setHttp3InitialMaxStreamsUnidirectional(((Number)member.getValue()).longValue());
}
break;
case "enabledSecureTransportProtocols":
if (member.getValue() instanceof JsonArray) {
java.util.LinkedHashSet<java.lang.String> list = new java.util.LinkedHashSet<>();
Expand Down Expand Up @@ -98,6 +133,13 @@ static void toJson(SSLOptions obj, java.util.Map<String, Object> json) {
json.put("crlValues", array);
}
json.put("useAlpn", obj.isUseAlpn());
json.put("http3", obj.isHttp3());
json.put("http3InitialMaxStreamsBidirectional", obj.getHttp3InitialMaxStreamsBidirectional());
json.put("http3InitialMaxData", obj.getHttp3InitialMaxData());
json.put("http3InitialMaxStreamDataBidirectionalLocal", obj.getHttp3InitialMaxStreamDataBidirectionalLocal());
json.put("http3InitialMaxStreamDataBidirectionalRemote", obj.getHttp3InitialMaxStreamDataBidirectionalRemote());
json.put("http3InitialMaxStreamDataUnidirectional", obj.getHttp3InitialMaxStreamDataUnidirectional());
json.put("http3InitialMaxStreamsUnidirectional", obj.getHttp3InitialMaxStreamsUnidirectional());
if (obj.getEnabledSecureTransportProtocols() != null) {
JsonArray array = new JsonArray();
obj.getEnabledSecureTransportProtocols().forEach(item -> array.add(item));
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -83,6 +83,11 @@ static void fromJson(Iterable<java.util.Map.Entry<String, Object>> json, TCPSSLO
obj.setUseAlpn((Boolean)member.getValue());
}
break;
case "http3":
if (member.getValue() instanceof Boolean) {
obj.setHttp3((Boolean)member.getValue());
}
break;
case "enabledSecureTransportProtocols":
if (member.getValue() instanceof JsonArray) {
java.util.LinkedHashSet<java.lang.String> list = new java.util.LinkedHashSet<>();
Expand Down Expand Up @@ -158,6 +163,7 @@ static void toJson(TCPSSLOptions obj, java.util.Map<String, Object> json) {
json.put("crlValues", array);
}
json.put("useAlpn", obj.isUseAlpn());
json.put("http3", obj.isHttp3());
if (obj.getEnabledSecureTransportProtocols() != null) {
JsonArray array = new JsonArray();
obj.getEnabledSecureTransportProtocols().forEach(item -> array.add(item));
Expand Down
6 changes: 3 additions & 3 deletions vertx-core/src/main/java/examples/HTTP2Examples.java
Original file line number Diff line number Diff line change
Expand Up @@ -220,17 +220,17 @@ public void example19(Vertx vertx, HttpClientOptions options) {
}

public void example20(HttpConnection connection) {
connection.updateSettings(new Http2Settings().setMaxConcurrentStreams(100));
connection.updateHttpSettings(new Http2Settings().setMaxConcurrentStreams(100));
}

public void example21(HttpConnection connection) {
connection
.updateSettings(new Http2Settings().setMaxConcurrentStreams(100))
.updateHttpSettings(new Http2Settings().setMaxConcurrentStreams(100))
.onSuccess(v -> System.out.println("The settings update has been acknowledged "));
}

public void example22(HttpConnection connection) {
connection.remoteSettingsHandler(settings -> {
connection.remoteHttpSettingsHandler(settings -> {
System.out.println("Received new settings");
});
}
Expand Down
Loading