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

Jetty 12 - Relax JPMS dependencies #9293

Closed
sbordet opened this issue Feb 2, 2023 · 1 comment · Fixed by #9294, #9296, #9299, #9306 or #9307
Closed

Jetty 12 - Relax JPMS dependencies #9293

sbordet opened this issue Feb 2, 2023 · 1 comment · Fixed by #9294, #9296, #9299, #9306 or #9307
Labels
Bug For general bugs on Jetty side

Comments

@sbordet
Copy link
Contributor

sbordet commented Feb 2, 2023

Jetty version(s)
12+

Description
A few Jetty modules use the clause export ... to ... to export internal classes to other Jetty modules.
For example, jetty-client exports internal classes to Jetty modules that implement specific transports such as jetty-http2-client-transport (and same for fcgi and http3).
Another example is jetty-http2-common exporting internal classes to jetty-http2-client and jetty-http2-server.

This (strict) style has the pro that it does not impact users, who will be able to use the various Jetty client transports without problems, even with JPMS.

However, it has the con that it impacts implementers, those that want to extend Jetty (for example, write a custom HttpClient transport, or write an alternative HTTP/2 implementation that reuses the jetty-http2-common classes).
The impact is that they won't be able to see the internal classes unless they add additional JVM command-line options to export the Jetty internal classes to their own classes.

Given the history of Jetty being a very open project whose component are easily extensible for customizations (even without the Jetty developers being aware of these extensions/customizations), the current JPMS rules should be relaxed.

This will also benefit OSGi, because internal packages are special in OSGi and by default are not exported.
Currently, we have to provide special directives to export those packages in order to have our own HTTP/2 modules work in OSGi.

@sbordet sbordet added the Bug For general bugs on Jetty side label Feb 2, 2023
sbordet added a commit that referenced this issue Feb 2, 2023
Relaxed jetty-client JPMS dependencies.

Signed-off-by: Simone Bordet <[email protected]>
@sbordet sbordet linked a pull request Feb 2, 2023 that will close this issue
sbordet added a commit that referenced this issue Feb 2, 2023
Relaxed jetty-http2 and submodules JPMS dependencies.

Signed-off-by: Simone Bordet <[email protected]>
@sbordet sbordet linked a pull request Feb 2, 2023 that will close this issue
sbordet added a commit that referenced this issue Feb 2, 2023
Relaxed jetty-http3 and submodules JPMS dependencies.

Signed-off-by: Simone Bordet <[email protected]>
@sbordet sbordet linked a pull request Feb 2, 2023 that will close this issue
@gregw gregw moved this to 🏗 In progress in Jetty 12.0.0.beta0 - FROZEN Feb 2, 2023
sbordet added a commit that referenced this issue Feb 3, 2023
Issue #9293 - Jetty 12 - Relax JPMS dependencies.
sbordet added a commit that referenced this issue Feb 3, 2023
Relaxed jetty-http3 and submodules JPMS dependencies.

Signed-off-by: Simone Bordet <[email protected]>
sbordet added a commit that referenced this issue Feb 3, 2023
* Issue #9293 - Jetty 12 - Relax JPMS dependencies.

Relaxed jetty-http3 and submodules JPMS dependencies.

Signed-off-by: Simone Bordet <[email protected]>
sbordet added a commit that referenced this issue Feb 3, 2023
Relaxed jetty-http2 and submodules JPMS dependencies.

Signed-off-by: Simone Bordet <[email protected]>
sbordet added a commit that referenced this issue Feb 3, 2023
Relaxed jetty-http2 and submodules JPMS dependencies.

Signed-off-by: Simone Bordet <[email protected]>
sbordet added a commit that referenced this issue Feb 3, 2023
Relaxed jetty-fcgi JPMS dependencies.
Packages generator and parser were not internal,
was just matters of exporting them.

Signed-off-by: Simone Bordet <[email protected]>
@sbordet sbordet linked a pull request Feb 3, 2023 that will close this issue
sbordet added a commit that referenced this issue Feb 3, 2023
Relaxed jetty-quic JPMS dependencies.

Signed-off-by: Simone Bordet <[email protected]>
@sbordet sbordet linked a pull request Feb 3, 2023 that will close this issue
sbordet added a commit that referenced this issue Feb 4, 2023
Relaxed jetty-fcgi JPMS dependencies.
Packages generator and parser were not internal,
was just matters of exporting them.

Signed-off-by: Simone Bordet <[email protected]>
sbordet added a commit that referenced this issue Feb 4, 2023
Relaxed jetty-quic JPMS dependencies.

Signed-off-by: Simone Bordet <[email protected]>
@sbordet
Copy link
Contributor Author

sbordet commented Feb 4, 2023

What remains to fix are the WebSocket JPMS dependencies, tracked by #9233.

@sbordet sbordet closed this as completed Feb 4, 2023
@github-project-automation github-project-automation bot moved this from 🏗 In progress to ✅ Done in Jetty 12.0.0.beta0 - FROZEN Feb 4, 2023
gregpoulos pushed a commit to gregpoulos/jetty.project that referenced this issue Feb 6, 2023
…x-documentation-operations-logging

* upstream/jetty-12.0.x: (42 commits)
  fixed style
  cleanup TODOs for decoration
  Issue jetty#9300 - Rename RetainableByteBufferPool to ByteBufferPool
  Removed TODOs that will not be done.
  Rename Handler Nested & Collection (jetty#9305)
  fix surefire jpms configuration
  fix merge
  fix merge
  Bump maven.surefire.plugin.version from 3.0.0-M5 to 3.0.0-M8 (jetty#9255)
  Rename RetainableByteBufferPool to ByteBufferPool
  Fixed merge
  Fix jetty#9285 use possibly wrapper response for redirection (jetty#9286)
  Issue jetty#9293 - Jetty 12 - Relax JPMS dependencies (quic) (jetty#9307)
  Issue jetty#9293 - Jetty 12 - Relax JPMS dependencies (fcgi) (jetty#9306)
  Jetty 10 - Configurable Unsafe Host Header (jetty#9283)
  Issue jetty#9293 - Jetty 12 - Relax JPMS dependencies. (jetty#9296)
  Issue jetty#9293 - Jetty 12 - Relax JPMS dependencies. (jetty#9299)
  fix dependency
  add used dependency
  this dependency is used in test scope
  ...
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment