-
Notifications
You must be signed in to change notification settings - Fork 1.5k
WIP: [AMQ-9359] Jetty-12 conversion #1344
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
base: main
Are you sure you want to change the base?
Conversation
|
I'm already working on this for 6.2./6.3.x. |
93cd60b to
1c0c19c
Compare
|
Is there any reason not to bump to Java EE 10? Jetty 12.x can run multiple EE versions simultaneously so there's not really a reason to not just go to Servlet 6.0 and Jakarta EE 10 that I can think of. A user that depends on embedded Jetty and AMQ wants to use EE9 for other servlets could still include those jars and be compatible. |
|
I think EE10 makes more sense. However, if we jump straight to EE10, I think we’d need to rev to 7.x. Staying with EE9 would allow us to get to Jetty 12 in 6.x minor release |
Looking at it in more detail and reading https://jetty.org/docs/jetty/12/operations-guide/deploy/index.html , I don't think it's compatible after all for EE9 and EE10 when embedded. EE10 removes some stuff from the API and i took a look at the Jetty 12 download and they actually package all 3 versions of both the API and modules separately (EE8, EE9, EE10) and each war file is isolated for deployment so you can run independently. This of course does not work for something embedded. So we can probably stick with EE9 until 7.x. I guess if someone wants to use EE10 and with an embedded version of AMQ they could probably still do so as long as they were not using anything that relied on the EE9 stuff (any of the AMQ websockets or servlets, etc) and they would have to exclude the EE9 transitive dependencies from AMQ |
57d7ad0 to
bd063b1
Compare
If users embed, they should be able to do EE10 runtime by excluding activemq-http and activemq-web-* modules. I believe the other EE specs in use are forward compatible b/w EE9 and EE10. |
60ab4ab to
26dddfd
Compare
|
Heads up-- I'm leaning towards writing a simple Spring bean wrapper that loads pure jetty.xml files from a conf/jetty folder. This will simplify consuming jetty.xml configuration and allow users/admins to reuse config and config samples directly from jetty vs having to map jetty beans to spring beans. |
|
@coheigea I'm working on converting the Jetty from Spring to use Jetty-native xml. This will reduce the security risk, by being able to leverage stock Jetty configurations and allow users to leverage more Jetty features without having to translate from Jetty bean to Spring bean for configuration. edited: Latest commit has ActiveMQ booting with Jetty 12 using jetty-based xml configuration files. The console and api are deploying, but both error out currently. |
@mattrpav What's the most fundamental thing to look at? I was looking at the distribution, but then I saw the activemq-web-console tests were failing as well. |
|
@coheigea I updated the list at the top of this PR.
Help with tasks 1, 3, and 4 is most welcome! |
|
Current /admin console error |
|
I don't see version 12.x here: https://repo1.maven.org/maven2/org/eclipse/jetty/apache-jsp/ but I see version 11... maybe the API has changed? I checked this one: so I'm not sure what's the problem... I may have a look tomorrow. Maybe |
|
@grgrzybek FYI: the org.mortbay.jasper/apache-jsp/10.x dependency (where error is being thrown) is transitive from org.eclipse.jetty.ee9/jetty-ee9-apache-jsp/12.x. I appear to have the correct dependencies: commons-bin.xml Update: I'm googling around seeing notes that the TldCache may need to be initialized differently now. Also noted that pre-compile JSPs at build time may avoid the need for runtime compilation and tld caching. @jbonofre worked on this same issue on this JIRA https://issues.apache.org/jira/browse/AMQ-9327 |
|
UPDATE: TldCache error resolved by adding two jetty-ee9 dependencies to the distribution: jetty-ee9-annotations and jetty-ee9-plus. (h/t @jbonofre's earlier JIRA notes) New error is missing tag libary |
TODO: