Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Update the code to provide support for JPMS in Vert.x 5.
This contribution does not add JPMS support yet, it prepares the vertx-core artefacts to use JPMS.
The main motivations driving this effort are:
export pkg to module
) since this approach couples the modules to the users of this module, which workrs only in a closed world (i.e vertx stack exclusively)The pattern used to implement this is the following:
Users in practice will use the impl module, will see the api module but will not see the internal module unless they explicitly require it.
In the context of vertx-core the mapping is
io.vertx.core.api
, GAV=vertx-core-api
, package=io.vertx.core
io.vertx.core.internal
, GAV=vertx-core-internal
, package=io.vertx.internal.core
io.vertx.core
, GAV=vertx-core
, package=io.vertx.impl.core
This approach keeps the
io.vertx.core
package forvertx-core-api
and preserves the backward compatibility of existing APIs. The internal API and the implementation however package names are changed in order to avoid a JPMS split package.An alternative of #5233