|[ee4j-community] Feedback to Joint Community Open Letter on Java EE Naming and Packaging
Reza Rahman has recently posted a Joint Community Open Letter on Java EE Naming and Packaging. Our feedback is given below - most of it is context explaining our direction. We hope it is helpful.
Oracle has previously communicated that it intends to work with the EE4J community to:
1) Define a branding strategy for the platform, including a new name for Java EE to be determined.
2) Enable use of existing javax package names, and enable extension of existing javax namespaces (e.g. javax.servlet.*) to enable compatibility and evolution of existing APIs.
3) Use a different namespace naming convention, i.e. different from “javax.*”, for net new APIs/technologies.
Note that doing the above remains work in process, but it remains our intent.
The open letter requests that Oracle and other EE4J stakeholders work together:
1) To allow the new platform to retain the Java EE name
2) To allow use of existing “javax” packages for existing technologies
3) To allow use of the “javax.enterprise” package for new technologies
Oracle has already expressed its intent to do what is requested in point #2 above. This would allow for compatibility between EE4J releases and existing Java EE releases at the package level. We will focus on points #1 and #3 below. Why not allow use of the Java EE name, and why not allow use of the javax.enterprise namespace for all new EE4J technologies?
The industry has changed since the Java EE development process was originally created. The process was not seen as being nimble, flexible or open enough. Our shared goal is to create a more nimble process, with more flexible licensing, and more open governance that is not dependent on a single vendor. We believe this will encourage more participation and innovation. We see general support for this new direction from across the community.
This new direction implies many changes, starting with a change in the technology development process. The Java EE process, or to be more specific, the JCP process that was used for Java EE development, is a highly structured process that grants specification leads significant influence over how technologies are specified and implemented. The EE4J process will be different. It will be more open. Single vendors including Oracle will continue to contribute, but will no longer have the same level of influence over how new EE4J technologies evolve. We believe there is consensus that this is a positive step for the community.
This new development process drives choices around use of the Java EE name, and use of the javax.* package names for new technologies. The Java EE and javax.* names leverage the Java trademark, and indicate that the source of these technologies is Oracle and community processes managed by Oracle. As a critical identifier of the source of products to our users, we must continue to reserve use of such names using the Java trademark to serving that fundamental source identifying function. This will help us to maintain the Java trademark, which is in Oracle’s interest and in the community’s interest. We recognize there are likely to be requirements to create new versions of existing Java EE specifications that were already created using the existing JCP process. We believe we can work out an approach to allow use of javax.* names for extensions to these existing specifications in order to accommodate these requirements. However, if we adopt a new process for new EE4J technologies, as is desired by the community, we believe we must require that a new namespace be used for the new EE4J technologies that are developed using that process, and a new brand (other than Java EE) that includes these new technologies. There is a tradeoff here, and we believe that the net benefit of the new process warrants the adoption of a new namespace for new EE4J technologies, and a new brand.
We will work with the EE4J community to mitigate continuity concerns that accompany this change. We are making it very clear that EE4J will be an evolution of existing Java EE 8 technologies:
• We are contributing our existing GlassFish Java EE 8 Reference Implementation sources to EE4J.
• We will contribute our existing TCKs.
• We are intending to allow certain uses of existing javax packages as those packages evolve for compatibility.
• We are intending to allow use of existing specification names for component specifications.
• We are building an initial EE4J implementation that is intended to be both Java EE 8 and “EE4J” compatible.
• We will work with the EE4J community to promote the new brand.
These are positive steps we can take.
We support the efforts of the EE4J Project Management Committee to make branding recommendations to the Eclipse Foundation. We encourage the community to support the effort as well, and extend thanks to all for the continued interest in Java EE and EE4J technologies. And we hope to deliver soon more new projects with GlassFish sources contributed to EE4J!
Back to the top