Establish new EE Common for Jetty 13.0.x
- Dominant language
- Java
- Stars
- 4.1k
- Forks
- 2k
- Avg merge
- 3d 56m
- Merged PRs (30d)
- 48
Description
Starting in Jetty 13, were we want to support EE12, we want to have a common EE codebase and just represent the differences in each EE# version in a way that minimizes code duplication across EE# code trees.
Tasks:
- [x] Create `/jetty-ee/` tree to house common codebase.
- [x] Base initial code of `/jetty-ee/` from existing `/jetty-ee11/` code tree.
- [x] Rename all path segments with `ee11` to `ee` in new `/jetty-ee/` tree.
- [x] Rename all internal file references with `ee11` to `ee` in new `/jetty-ee/` tree. (poms, package names, artifactIds, etc)
- [x] Rename all internal file references with `EE11` to `EECommon` in new `/jetty-ee/` tree (pom names, web.xml contents, etc)
- [x] Remove existing code (not `module-info.java`) from `/jetty-ee11/` tree.
- [x] Remove existing code (not `module-info.java`) from `/jetty-ee10/` tree.
- [x] Move existing `/jetty-core/jetty-ee/` tree into new root level `/jetty-ee/` tree. #14825
- [ ] Establish EE# specific examples from previous `/jetty-ee#-demos/` trees.
- [ ] Maybe leave `/jetty-ee#-demos/` trees alone in their previous locations.
- [ ] Leave `/jetty-ee#-osgi/` trees in previous locations.
- [ ] Remove "ee" and "jakarta" properties from new `/jetty-ee/` poms.
- [ ] Implement EE version specific changes into `/jetty-ee/` tree.
- [ ] Introduce some kind of enum class for EE support levels (should be spec neutral in naming, don't use "Servlet" or things referencing a specific spec that for this class name)
- [ ] Implement differences in EE versions using this new enum class across the `/jetty-ee/` tree (security, jsp, jstl, websocket, servlet, etc)
- [ ] For specs that require more detail, implement spec specific enum (eg: Servlet has an API requirement to expose the whole version, major version, and minor version of the Servlet spec being supported by that EE level)
- [ ] Figure out what to do for EE# specific WebApp Configuration handling (eg: `META-INF/services/org.eclipse.jetty.ee11.webapp.Configuration`)
- [ ] See if `jetty-ee#-jspc-maven-plugin` can be removed in favor of using only the `jetty-ee-jspc-maven-plugin` instead.
- [ ] See if `jetty-ee#-maven-plugin` can be removed in favor of using only the `jetty-ee-maven-plugin` instead.
- [ ] Evaluate each old `/jetty-ee#/jetty-ee#-tests/jetty-ee#-*-webapp/` to see if we need to keep them around for EE# specific testing (eg: the web.xml descriptor and feature tests unique to that version of EE#)
- [ ] Old test modules (eg: `/jetty-ee11/jetty-ee11-websocket/jetty-ee11-websocket-jakarta-tests/`) that don't have OSGi manifests, or module-info.class files, and no longer and source files should be evaluated for removal from their original locations.
- [ ] Once `/jetty-ee11/` tree and `/jetty-ee10/` tree work with new `/jetty-ee/` (EECommon) codebase, copy the `/jetty-ee11/` tree to a new `/jetty-ee12/` tree to initialize the new EE12 support in the `jetty-13.0.x` branch.
Contributor guide
Assessment
This issue has not been assessed yet.