-
Notifications
You must be signed in to change notification settings - Fork 148
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
Xbootclasspath removed from templates #25175
Conversation
- It was to allow older GF versions with JDK8 to use ALPN and NPN. - Even later JDK8 versions have the support backported from JDK9. Signed-off-by: David Matějček <[email protected]>
If we just remove grizzly-npn from the classpath, we get an exception from Grizzly if HTTP2 is enabled (which is by default):
|
That is why the PR is just a draft, however together with my other changes it passed all tests. Which is bit suspicious :-) |
It seems that the Grizzly NPN classes are still pulled by the GlassfishBootstrapClassLoader into the classpath. In fact, the Xbootclasspath was already removed from the templates from the server-config config, in 1d6cdb2. This PR only removes it from default-config. I think the Grizzly NPN still must be on the classpath, otherwise the GlassFish Grizzly listener will throw the exception I mentioned when initializing HTTP2. We'll need to refactor the GlassFish listener to use the Java ALPN API instead of Grzilly NPN, and then we can remove Grizzly NPN dependency completely, from GlassfishBootstrapClassLoader, from GlassFish Embedded, and from the static shell manifest. |
- however it is still required by grizzly-http2's Http2AddOn, so I added it to the nucleus-grizzly-all. Signed-off-by: David Matějček <[email protected]>
Not exactly, the point is that grizzly-http2 uses the
Meaning:
However you are basically right that Grizzly doesn't need it any more, now it uses reflection to call the setter when it could call it directly. Even with latest JDK8. |
Notes:
I created an issue for the library too, however it can stay there for years: eclipse-ee4j/grizzly-npn#21
Reproducer, which was failing when the change was not complete (just first commit + removed npn and npn-osgi dependencies):