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 295 commits into
base: master
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
295 commits
Select commit Hold shift + click to select a range
15c5f04
feat: add todo to correct
imz87 Sep 26, 2024
fd1ceb7
feat: use bootstrap because of udp
imz87 Sep 26, 2024
036b28c
feat: add logs for debug
imz87 Sep 26, 2024
749932d
feat: it can be null for udp
imz87 Sep 26, 2024
ad7b89e
feat: create http3 server Ssl Handler
imz87 Sep 26, 2024
cac4392
feat: accept http3 request
imz87 Sep 26, 2024
6591738
feat: prepare for http3
imz87 Sep 26, 2024
d309d84
feat: correct logger
imz87 Sep 26, 2024
a137ebc
feat: init http3 connection
imz87 Sep 26, 2024
9b782fa
feat: add classes for HTTP/3 as counterparts to HTTP/2
imz87 Sep 26, 2024
4403853
feat: add logs and prepare for http3
imz87 Sep 26, 2024
31eb2c0
feat: prepare an example for develop
imz87 Sep 26, 2024
3bbdeb9
feat: typo
imz87 Sep 26, 2024
be1dda9
feat: improve
imz87 Sep 26, 2024
36d8368
feat: improve logs, remove settings from resp, read request correctly
imz87 Sep 26, 2024
5e3e6bd
feat: develop http3 client without Http3FrameToHttpObjectCodec
imz87 Oct 2, 2024
d30abf1
feat: develop http3 client without Http3FrameToHttpObjectCodec
imz87 Oct 2, 2024
d4ed40a
feat: headers can be access simpler
imz87 Oct 2, 2024
fa4d65b
feat: add server part
imz87 Oct 2, 2024
f1696d6
feat: make cleaner
imz87 Oct 2, 2024
ffe3bd3
feat: add http3 test
imz87 Oct 3, 2024
9d85ff2
feat: add http3 examples
imz87 Oct 3, 2024
aa6ef0b
feat: enable settings for server
imz87 Oct 8, 2024
f332780
feat: it is required to be commented for local interaction
imz87 Oct 8, 2024
b415a4b
feat: set correct settings for local client
imz87 Oct 8, 2024
89d3941
feat: set proper default settings
imz87 Oct 8, 2024
528d820
feat: correct test for h3
imz87 Oct 8, 2024
6c9d6a7
feat: make ready for client
imz87 Oct 9, 2024
6ffef44
feat: use only valid http3 settings
imz87 Oct 9, 2024
a1bc253
feat: channelInputClosed() will be called in super
imz87 Oct 22, 2024
8d0c770
feat: should notify for last frame
imz87 Oct 22, 2024
8cfad4c
feat: remove unused method
imz87 Oct 22, 2024
680074f
feat: clean
imz87 Oct 22, 2024
849604c
feat: clean
imz87 Oct 22, 2024
8ff402c
feat: receive the settingsFrame base on order
imz87 Oct 22, 2024
2041fa4
feat: resolve bug
imz87 Oct 22, 2024
e1d9637
feat: resolve bug
imz87 Oct 22, 2024
62a8469
feat: resolve bug
imz87 Oct 22, 2024
d3e7524
feat: use better name
imz87 Oct 23, 2024
22fbe8e
feat: resolve reset channel test issue
imz87 Oct 23, 2024
a6edecf
feat: correct rest signal tests
imz87 Oct 23, 2024
6a99c3e
Merge branch 'feature/http3-server-support-5.x' of github.com:imz87/v…
imz87 Oct 27, 2024
5d6f6b7
feat: remove unused code
imz87 Oct 27, 2024
f9a2f0b
feat: cover all http/3 protocols
imz87 Oct 27, 2024
27ede4f
feat: simplify detect that is ssl channel
imz87 Oct 27, 2024
b584644
Merge branch 'master' of github.com:imz87/vert.x into feature/http3-s…
imz87 Oct 28, 2024
0d7eca9
feat: resolve merge issue
imz87 Oct 28, 2024
75695f1
feat: resolve merge issue
imz87 Oct 28, 2024
0a86fc0
Merge branch '5.x' of github.com:imz87/vert.x into feature/http3-supp…
imz87 Nov 5, 2024
c384246
feat: use correct package
imz87 Nov 5, 2024
2cd9606
fix: resolve settings bug for http2
imz87 Nov 5, 2024
90f0f19
fix: set like http2
imz87 Nov 7, 2024
52356ab
fix: set httpStream on channelStream
imz87 Nov 9, 2024
a705764
fix: set httpStream on channelStream
imz87 Nov 9, 2024
2fffc95
fix: make endOfStream conditionally
imz87 Nov 10, 2024
592fef4
fix: reformat
imz87 Nov 10, 2024
2f0ea2f
fix: organize settings
imz87 Nov 10, 2024
73e8927
fix: manage concurrency count from settings
imz87 Nov 11, 2024
aad2e8d
fix: manage concurrency count from settings
imz87 Nov 11, 2024
e334673
fix: handle shutdown signals
imz87 Nov 11, 2024
8b75081
feat: add development examples
imz87 Nov 11, 2024
cc9ff81
feat: add development examples
imz87 Nov 11, 2024
105b676
feat: add development examples
imz87 Nov 11, 2024
75b33ff
feat: add development examples
imz87 Nov 11, 2024
c101799
feat: add development examples
imz87 Nov 11, 2024
1f51279
feat: close stream channels on connection close
imz87 Nov 11, 2024
b9deace
feat: organize AttributeKey
imz87 Nov 12, 2024
4a8379b
feat: close stream on close input
imz87 Nov 12, 2024
cfcc82a
feat: use VertxHttp3ConnectionHandler as connection(quick channel) ha…
imz87 Nov 12, 2024
f1a5a74
feat: add more logs
imz87 Nov 12, 2024
d0efe0b
feat: rename
imz87 Nov 13, 2024
d6cc411
feat: remove unuseful prop
imz87 Nov 13, 2024
5ca92a4
feat: move streamChannel creation to ConnectionHandler
imz87 Nov 13, 2024
021badd
feat: remove unused
imz87 Nov 13, 2024
7e6702d
feat: add more logs
imz87 Nov 13, 2024
76c1e06
feat: simplify and move settings management to controlChannelStream o…
imz87 Nov 13, 2024
46ddb54
feat: improve logs
imz87 Nov 13, 2024
995a445
feat: convert methods to inner class
imz87 Nov 13, 2024
ecb4459
feat: improve logs
imz87 Nov 13, 2024
2d8222b
feat: improve logs
imz87 Nov 13, 2024
1fd3722
feat: remove two methods
imz87 Nov 13, 2024
553cb14
feat: should call super class to call closeInput method
imz87 Nov 13, 2024
5250302
feat: rename
imz87 Nov 14, 2024
1cbbcb8
feat: remove
imz87 Nov 14, 2024
04e3fc1
feat: add ExceptionHandlingChannelHandler for errors like port unreac…
imz87 Nov 16, 2024
3c512dd
feat: add logs
imz87 Nov 16, 2024
90b16e5
feat: close stream on last frame on server
imz87 Nov 16, 2024
16979ec
feat: remove unused var
imz87 Nov 16, 2024
c16bf91
feat: add async examples
imz87 Nov 16, 2024
1e713fe
feat: change dev example package
imz87 Nov 17, 2024
6c4d2f2
feat: implement the Trailer logic
imz87 Nov 17, 2024
e5a5cc8
feat: remove extra header
imz87 Nov 17, 2024
63ec773
feat: make a common test class
imz87 Nov 18, 2024
8181c62
feat: make a common abstract test class for Http2Test and Http3Test
imz87 Nov 18, 2024
441fd91
feat: change settings architecture
imz87 Nov 18, 2024
e0dee5c
feat: correct settings test
imz87 Nov 18, 2024
0bbe9bc
feat: update settings on demand
imz87 Nov 19, 2024
6080a6c
feat: set httpSettings on creation connection
imz87 Nov 19, 2024
3c09932
fix: remove closing of control Stream channel line
imz87 Nov 19, 2024
1691c91
fix: rename for more convenience
imz87 Nov 20, 2024
e47734a
fix: release frame on finish
imz87 Nov 20, 2024
9cdc552
fix: implement goAwayReceived
imz87 Nov 20, 2024
76f7f17
fix: close streamChannel on end
imz87 Nov 20, 2024
ff62c02
fix: extract a new class to make file shorter
imz87 Nov 20, 2024
202dbec
fix: typo
imz87 Nov 20, 2024
8943fcc
fix: read settings in background
imz87 Nov 23, 2024
fab621c
fix: need to be recreated per each recall
imz87 Nov 23, 2024
30918aa
fix: extract ControlStreamChannelHandler for more clarity
imz87 Nov 23, 2024
88473fb
fix: extract ControlStreamChannelHandler for more clarity
imz87 Nov 23, 2024
7a8409b
fix: remove ping from http/3
imz87 Nov 23, 2024
3e76e3c
fix: remove settings temporary
imz87 Nov 23, 2024
3f8d39c
fix: reformat
imz87 Nov 23, 2024
189b713
fix: add log
imz87 Nov 23, 2024
bb49529
fix: add to pass testStreamResetErrorMapping test case
imz87 Nov 23, 2024
da72eea
fix: organize userEventTriggered
imz87 Nov 23, 2024
3215377
fix: organize userEventTriggered
imz87 Nov 23, 2024
ab2d421
fix: organize httpHeaders
imz87 Nov 24, 2024
5eae99b
fix: remove unused classes
imz87 Nov 24, 2024
3048d4b
fix: require alpn for h3
imz87 Nov 24, 2024
b467262
fix: remove unused header classes
imz87 Nov 24, 2024
7153487
fix: simplify tests
imz87 Nov 24, 2024
8876f3a
fix: ssl for http3
imz87 Nov 24, 2024
2bc1741
fix: correct "connect" related tests
imz87 Nov 26, 2024
d3350f6
fix: correct "connect" related tests
imz87 Nov 26, 2024
ab7f650
fix: correct related tests
imz87 Nov 26, 2024
d2fd777
feat: throw ConnectTimeoutException on connection issue
imz87 Nov 27, 2024
0489ea5
feat: resolve todo
imz87 Nov 27, 2024
5dc08ad
feat: use class stream
imz87 Nov 27, 2024
afff3de
feat: call onStreamClosed on streamChannel close
imz87 Nov 27, 2024
9df2643
feat: determine if trailers received for client by channelInputClosed
imz87 Nov 27, 2024
0caecda
feat: find ssl on datagaram channel
imz87 Nov 27, 2024
dc60a06
feat: move http2 tests testServerDoesNotSupportAlpn and testClientDoe…
imz87 Nov 27, 2024
5a86658
feat: move testAppendToHttpChunks to http3Test because was ignored in…
imz87 Nov 27, 2024
e514809
feat: send goAway onCLose
imz87 Dec 1, 2024
7486e24
feat: add todo for future
imz87 Dec 1, 2024
4cd3762
feat: organize
imz87 Dec 3, 2024
7ca50c4
feat: skip testCloseMulti for http/3
imz87 Dec 3, 2024
018f696
feat: try to resolve testClientDrainHandler issue
imz87 Dec 3, 2024
e9b5b67
feat: improve comment
imz87 Dec 3, 2024
e17f187
feat: resolve testRemoteAddress issue. remoteAddress was null for qui…
imz87 Dec 3, 2024
0d4c26c
feat: ignore problematic tests
imz87 Dec 3, 2024
b8a2ef6
feat: ignore problematic tests
imz87 Dec 3, 2024
e14af9e
feat: remove because connection will be closed on file transfer
imz87 Dec 4, 2024
4f461ee
feat: skip test issues that are not related to http/3
imz87 Dec 4, 2024
b986162
feat: work on http/3
imz87 Dec 4, 2024
452f1d5
feat: move to parent
imz87 Dec 4, 2024
930ccd7
feat: organize packages
imz87 Dec 4, 2024
7deccf4
feat: move priority tests to common
imz87 Dec 4, 2024
36283e4
feat: move priority tests to common
imz87 Dec 4, 2024
9694843
feat: move priority tests to common
imz87 Dec 4, 2024
333fd20
feat: move priority tests back to http2Test; HTTP/3 lacks priority up…
imz87 Dec 4, 2024
3a00038
feat: reformat
imz87 Dec 4, 2024
21dc8aa
feat: remove loop to get udp pipeline
imz87 Dec 4, 2024
ca3924f
Merge branch '5.x' of github.com:imz87/vert.x into feature/http3-supp…
imz87 Dec 5, 2024
205243f
feat: resolve conflicts with master
imz87 Dec 5, 2024
7061c79
Merge branch 'feature/http3-support-5.x' of github.com:imz87/vert.x i…
imz87 Dec 5, 2024
7e82143
feat: stream close method should be closed before connection close
imz87 Dec 7, 2024
4334da2
feat: resolve testDiscardConnectionWhenChannelBecomesInactive issue
imz87 Dec 7, 2024
5467f10
feat: remove because that was removed from http2
imz87 Dec 7, 2024
b39e8b3
feat: need in the future
imz87 Dec 7, 2024
a03ef9f
feat: organize and rewrite writeSettings
imz87 Dec 8, 2024
1c80bbf
feat: make class like http2
imz87 Dec 8, 2024
bb87edb
feat: improve writeGoAway
imz87 Dec 8, 2024
a25468e
feat: improve writeGoAway
imz87 Dec 8, 2024
738a91b
feat: refactor logic to align with new HTTP/2 implementation
imz87 Dec 8, 2024
e0df8b1
feat: remove maxConcurrentStreams modification from http3
imz87 Dec 8, 2024
860dbd8
feat: refactor logic to align with new HTTP/2 implementation
imz87 Dec 8, 2024
67a75fb
feat: implement customFrameWrite
imz87 Dec 8, 2024
131dc54
feat: add Http3ClientResponseParserTest for http3
imz87 Dec 9, 2024
bb46644
feat: extract HttpOptionsFactory for options creation
imz87 Dec 9, 2024
34be138
feat: remove Http2TestBase and move its logic to its children and to …
imz87 Dec 9, 2024
75e4556
feat: generalize Http2ServerTest to be used as parent of Http3ServerTest
imz87 Dec 9, 2024
5350858
feat: generalize Http2ClientTest to be used as parent of Http3ClientTest
imz87 Dec 9, 2024
ea507f3
feat: move related method from parent(Http2TestBase) to child
imz87 Dec 9, 2024
b0526d6
feat: add http3 to HttpBandwidthLimitingTest
imz87 Dec 9, 2024
67ffb97
feat: add HttpClientTimeoutTest
imz87 Dec 9, 2024
b528fbe
feat: remove static import
imz87 Dec 9, 2024
4bc7158
feat: add Http3ServerTest
imz87 Dec 9, 2024
759d812
feat: add Http3ClientTest
imz87 Dec 9, 2024
a199c15
feat: remove initialMaxStreamsBidirectional because it can be accesse…
imz87 Dec 10, 2024
be83747
feat: add http3MultiplexingLimit to options to manage concurrency mor…
imz87 Dec 10, 2024
003a6e0
feat: resolve testRequestQueuing issue
imz87 Dec 10, 2024
e0edf00
feat: pass object instead of lots of values
imz87 Dec 10, 2024
7af97e7
feat: pass options instead of lots of params
imz87 Dec 10, 2024
97adea3
feat: use options
imz87 Dec 10, 2024
916c864
feat: use options to configure http3 quic codec
imz87 Dec 10, 2024
3a84d8f
feat: resolve test issue with new logic for concurrency for http/3
imz87 Dec 10, 2024
2325b9d
feat: resolve test that expect valid http3 settings
imz87 Dec 10, 2024
5feb334
feat: find session correctly in http/3
imz87 Dec 18, 2024
900aa80
feat: enable sni for HTTP/3
imz87 Dec 18, 2024
6363aef
feat: enable sni for HTTP/3 tests
imz87 Dec 18, 2024
12570df
feat: enable sni for HTTP/3 tests
imz87 Dec 18, 2024
c36bb3c
feat: add sni examples
imz87 Dec 18, 2024
f3ec1f9
feat: add http3TLSTest
imz87 Dec 18, 2024
1b775fb
feat: reformat
imz87 Dec 18, 2024
e12bce0
feat: prepare for more tests
imz87 Dec 19, 2024
c875666
feat: quic supports only correct host names
imz87 Dec 19, 2024
8033a29
feat: resolve two tests
imz87 Dec 19, 2024
1bdb7b6
feat: it was needed for http server too
imz87 Dec 19, 2024
28c1f74
feat: ignore tests regards to protocol version
imz87 Dec 19, 2024
f303a56
feat: add server file upload test
imz87 Dec 19, 2024
8c324bd
feat: ignore invalid protocol test
imz87 Dec 23, 2024
52a0e95
feat: cipher suites cannot be modified in QUIC
imz87 Dec 23, 2024
10b583f
feat: throw SSLHandshakeException on receiving QuicConnectionCloseEvent
imz87 Dec 23, 2024
e8295b1
feat: throw SSLHandshakeException on receiving QuicConnectionCloseEvent
imz87 Dec 23, 2024
741754c
feat: organize tests
imz87 Dec 23, 2024
94141ba
feat: ignore test because: trailing dots are not allowed in netty for…
imz87 Dec 26, 2024
cf9a74f
feat: resolve more tests issues
imz87 Dec 26, 2024
6571868
feat: make test
imz87 Dec 26, 2024
b556db6
feat: update SSLOptions for http3 and resolve related tests
imz87 Dec 27, 2024
a2657e0
feat: enable load balancing for http3
imz87 Dec 27, 2024
e4590f1
feat: cover http3 tests
imz87 Jan 1, 2025
cab1e4d
feat: correct testListenInvalidPort test
imz87 Jan 4, 2025
c312e22
feat: prepare vertxHandler to support http/3
imz87 Jan 12, 2025
a8e9e40
feat: add h3 net test
imz87 Jan 13, 2025
23da2be
feat: simplify the business
imz87 Jan 13, 2025
2ce5553
feat: generalize ChannelInitializer
imz87 Jan 13, 2025
677863b
feat: handle http3 socket regardless of framing
imz87 Jan 15, 2025
5f84ab8
feat: use http3 in verxHandler
imz87 Jan 29, 2025
f6ec0a8
feat: add for test purpose
imz87 Jan 29, 2025
815d379
feat: make simpler
imz87 Jan 29, 2025
9bf436c
feat: solve test issues regards to vertxHandler
imz87 Jan 30, 2025
34f293f
feat: solve test issues regards to vertxHandler
imz87 Feb 6, 2025
38857e1
feat: solve test issues regards to vertxHandler
imz87 Feb 8, 2025
f35e511
feat: reformat
imz87 Feb 8, 2025
5c496ef
feat: rename
imz87 Feb 9, 2025
2a56493
feat: rename option factory
imz87 Feb 10, 2025
05d73f3
feat: make test class abstract for http2 and http3
imz87 Feb 10, 2025
59650cf
feat: add http2NetTest
imz87 Feb 10, 2025
ba7253f
feat: add runnable http3 net tests
imz87 Feb 10, 2025
5d7f89f
feat: add author
imz87 Feb 10, 2025
d6d1e0c
feat: revert to previous version
imz87 Feb 10, 2025
e2e79a6
feat: revert VertxHandler to old version and use another method to ha…
imz87 Feb 10, 2025
e60f690
feat: revert VertxHandler
imz87 Feb 10, 2025
09b6a5e
feat: enable datagram option allows sending unreliable connectionless…
imz87 Feb 10, 2025
6b071a3
feat: remove resolved tests
imz87 Feb 10, 2025
fe1e349
feat: ignore problematic test
imz87 Feb 10, 2025
5089e67
feat: reconfigure recvQueueLen & sendQueueLen
imz87 Feb 10, 2025
b62aead
feat: delete extra options
imz87 Feb 10, 2025
d27a25f
feat: remove resolved tests
imz87 Feb 10, 2025
83a60fd
feat: differ options test for h3 & h2
imz87 Feb 11, 2025
2040131
feat: differ options test for h3 & h2
imz87 Feb 11, 2025
7b7c529
feat: resolve test case and remove sslOptions for http3
imz87 Feb 11, 2025
4ac3220
feat: resolve options test cases
imz87 Feb 11, 2025
02275de
feat: add new examples
imz87 Feb 12, 2025
59a1a3f
feat: remove comments
imz87 Feb 12, 2025
270e87a
feat: correct test with setting max udp packet size
imz87 Feb 13, 2025
306ccdc
feat: correct some tests by overriding testNetClientInternal_ for http3
imz87 Feb 16, 2025
3a0d9be
feat: correct some tests by overriding testNetClientInternal_ for http3
imz87 Feb 16, 2025
3c9cbfe
feat: correct some tests by overriding testNetServerInternal_ for http3
imz87 Feb 16, 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 @@ -89,6 +89,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 @@ -203,6 +208,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