-
Notifications
You must be signed in to change notification settings - Fork 5
Open
Description
Vert.x 5 Roadmap
5.1.0
- HTTP/3
- gRPC improvements
5.0.0
- Async result callback removals
- Codegen improvements
- Modularization (Maven)
- Extract api in a vertx-codegen-api project
- Repackage vertx-codegen-processor classes in
io.vertx.codegen.processor
package
- JDK 11 based build: Vert.x 5 should switch to JDK 11 as as minimum version, and builds/CI updated accordingly
- Legacy Java feature cleanup: a couple of Java features are fading away with recent JDK versions, those should be migrated to replacement in Vert.x 5
- Java finalization
- Biased locking
-
synchronized
usage analysis to find un-necessary usage in particular with respect to biased locking - define biased locking removal strategies for each of the various usage
-
- CLI cleanup: the Vert.x CLI will be removed from Vert.x 5 and the references to the CLI should be removed in Vert.x 4 as much as possible
- remove CLI usage in Vert.x examples (Vert.x 4 branch) Cli cleanup vertx-examples#450
- remove vertx-unit's CLI command Remove CLI command vertx-unit#77
- Implement Launcher equivalent with Picocli: Prototype
- Remove CLI usage in Vert.x Core (examples and code) Remove CLI usage in Vert.x Core (examples and code) eclipse-vertx/vert.x#4769
- new repository in Vert.x 5 Initial work eclipse-vertx/vertx-launcher#1
- move the CLI framework to separate JAR (legacy)
- integrate implementation with Picocli
- Udpate vertx-dependencies Add new modules from vertx-launcher repo vertx-dependencies#141
- vertx-stack CLI cleanup CLI Cleanup vertx-stack#140
- command part and deployment to central of the packaged zip
- add new modules to the stack
- Vert.x Shell update (use the new JAR) Add dependency on vertx-launcher-legacy-cli vertx-shell#55
- Website update Vert.x 5 branch vertx-web-site/vertx-web-site.github.io#147
- Starter update (add vertx-application-launcher to Vert.x 5 projects)
- Implement redeployment in the Vert.x Maven Plugin
- Update deprecations and breaking changes doc
- Update Migration guide tsegismont/vertx-5-migration-guide@78d3e4e
- Undocumented system properties analysis and cleanup
- Core API improvements
- CompositeFuture methods should use generic Future<?> type instead of Future raw type
- Remove obsolete stream implementations (timer stream, request/connect/ws streams, UDP socket stream)
- Logging API removal, the internal logging API is preserved
- Replace HTTP client host/port properties by an authority property
- A few HTTP stream writeXXX API are fluent and instead should return a future signaling the success or failure of the write operation
- executeBlocking(Handler<Promise>) ➡ executeBlocking(Callable)
- Replace Future eventually function argument by a supplier argument
- Connect options / per connection SSL options
- ClientWebSocket
- HttpServerResponse close method removal
- Simplified lock API
- Vertx builder
- HTTP client builder
- Timer task as a Vert.x future
- Periodic task duplicates the context
- Local context data SPI
- Inbound read/message queue
- Outbound write/message queue
- TCP shutdown including WebSocket/HTTP
- Buffer fromJson/toJson
- ReadStream collector API
- Deployment API
- Future expectations
- HTTP response expectations
- HTTP client connection
- HTTP stream reset should be asynchronous
- Rename WebsocketVersion to WebSocketVersion
- Integrate io_uring as a transport
void start(Handler<Future<Void>>)
➡Future<T> start()
WriteStream#write(...)
returns a result extendingFuture
allowing the result to signal back-pressure- avoids the write then
writeQueueFull
potentially racy (non event-loop) pattern
- avoids the write then
Future<T>
should not extend anymoreAsyncResult<T>
- Remove
SelfSignedCertificate
that does not work after Java 8 du to JDK changes - Harmonize getter/setter naming convention across the API
- Consider removing
NoStackTraceThrowable
Consider removing NoStackTraceThrowable and NoStackTraceException eclipse-vertx/vert.x#5012
- More data object conversion
- gRPC improvements
- Service proxies improvements
- Usability improvements
- RabbitMQ client
- SQL client improvements
- remove Pool sub interfaces
- remove map of
NetClient
- SqlConnectOptions should not extend anymore NetClientOptions
- remove
Pool#connectionProvider
that is replaced bySupplier<Future<SqlConnectOptions>>
- JDBC implementation use SQL common connection pool
- removal of deprecated legacy SQL client API
- Micrometer
- Service Discovery and load balancing for Vert.x clients
- Address resolver SPI
- Service discovery and load balancing integrating with address resolver SPI
- More load balancing policies More load balancing policies eclipse-vertx/vert.x#5154
- Random
- Power of two choices
- Hash based load-balancing (incl. sticky session) Hash based load balancing policy eclipse-vertx/vert.x#5165
- Generic service lookup
- Health checks dependencies cleanup
- Circuit breaker improvements
- Json Schema deprecated classes cleanup
- Release process
- Netty 4 decoupling
- Infinispan 14 update
- Hazelcast 5 update
- Support request forwarding to Web API Service in OpenAPI Router
- Context
- JPMS support
- codegen split package removal
- vertx-auth split package removal
- Netty JPMS support
- vertx-codegen JPMS support
- vertx-core JPMS preparation alternative 1
- vertx-core JPMS preparation alternative 2
- vertx-core JPMS support
- vertx-sql-client JPMS support
- vertx-jdbc-client JPMS support
- vertx-auth JPMS support
- vertx-uri-template JPMS support
- vertx-json-schema JPMS support
- vertx-openapi JPMS support
- vertx-service-resolver JPMS support
- vertx-grpc JPMS support
- vertx-http-proxy JPMS support
- vertx-grpc io.grpc decoupling
- vertx-redis-client JPMS support
- vertx-mail-client JPMS support
- vertx-cassandra-client JPMS support
- vertx-mongo-client JPMS support
- vertx-bridge-common
- vertx-web
- vertx metrics
- vertx-dropwizard-metrics
- vertx-micrometer-metrics
- vertx-tracing
- vertx-clustering
- vertx-hazelcast
- others
- vertx-unit/junit
- vertx-jdbc-client
- vertx-mqtt
- vertx-stomp
- vertx-service-proxy
- vertx-proton
- vertx-amqp-client
- vertx-consul-client
- vertx-health-checks
- vertx-config
- vertx-circuit-breaker
- cleanup / review assigned module names
- Vert.x Tracing
- Vertx Metrics
- client metrics consistency and documentation
- redis
- sql client
- ...
- metrics implementation should avoid specify a registry (micrometer) and instead it should be set on the vertx builder with a specific VertxMetricsFactory, deprecations in Vert.x 4.x should be applied
- client metrics consistency and documentation
- Review Vert.x 5 backlog
- Release prep
- Ensure we use VerticleBase everywhere
- Example improvements
- Migration guide
- Modular guide
- Investigate GitHub dev container for how-to / example
- Improve generation of release notes / breaking change
- Blog post
5.x
- SQL client
- possibly improve
Query
collector/mapping that are not composable - stored procedure API
- HA support for PostgreSQL or more
- possibly improve
- CouchDB client
- Non racy HTTP client methods when called outside event-loop
- Extra service resolver registry integration
- Core API improvements
- Vertx shutdown / restart
- Service proxies improvements
- service proxy using protobuf transport
- service proxy streaming
Components deprecation
- Service Discovery
- Vert.x gRPC Netty
Components sunset
He-Pin, Jotschi, buiminhhuy, lukasalexanderweber, ItEnkoa and 1 moreHe-Pin, ksm2, lucaguada and Obsolet3