This is a draft. We invite your feedback. Join the conversation at ee4j-community.
Please see the Frequently Asked Questions.
Eclipse Enterprise for Java (EE4J) is an open source initiative to create standard APIs, implementations of those APIs, and technology compatibility kits for Java runtimes that enable development, deployment, and management of server-side and cloud-native applications. EE4J is based on the Java™ Platform, Enterprise Edition (Java EE) standards, and uses Java EE 8 as the baseline for creating new standards.
Although Java EE was developed in open source, often the Java EE development process was not perceived as nimble, flexible or open enough when compared to other open source projects and processes. EE4J enables the use of more nimble processes, more flexible licensing, and a more open governance process for evolution of the platform.
This charter was developed in accordance with the Eclipse Development Process and will outline the mission of the EE4J Project. This document extends the Eclipse Standard Top-Level Charter v1.2, and includes the required content and overrides that follow. It is anticipated that as the standard charter is updated, this charter will incorporate the changes and make adjustments as seen fit by the PMC, and with approval from the EMO and board of directors.
- Descriptive name: Eclipse Enterprise for Java
- Nickname: EE4J
The mission of Eclipse EE4J is to create standard APIs, implementations of those APIs, and technology compatibility kits for Java runtimes that enable development, deployment, and management of server-side and cloud-native applications. EE4J is based on the Java EE standards, and uses Java EE 8 as the baseline for creating new standards.
EE4J enables the use of nimble processes, flexible licensing, and an open governance process for evolution of the platform. An open process, that is not dependent on a single vendor or lead, encourages participation and innovation, and serves the collective interests of the entire community.
EE4J establishes commonality between its constituent projects by defining an integrated set of standards using common processes and common compatibility requirements. EE4J provides compatibility for existing and new users by providing compatibility across Java EE 8 and EE4J versions.
The success of EE4J depends upon:
- Rapid transition of Java EE 8 technologies to the EE4J project
- A nimble, flexible and open process for evolving EE4J standard APIs, implementations of those APIs, and technology compatibility kits.
- A strong community of developers, vendors, and end users who support and evolve the EE4J technologies.
- Adapting and evolving EE4J technologies, and delivering innovations that address new requirements of existing users, and that attract new users.
- Meeting well-defined compatibility standards across EE4J implementations, and across Java EE 8 and EE4J versions.
- Enabling competing vendors and complementary technology providers to provide innovations that add value to EE4J technologies.
The initial scope of the EE4J project during late CY2017 and early CY2018 is to transition existing Java EE 8 technologies to the project and to define processes for evolving the platform:
- A core set of Java EE 8 technologies, including GlassFish technologies, and Java EE technologies for which Oracle is the specification lead, forms the initial core of the EE4J platform.
- This core includes sources for Java EE 8 Reference Implementations (RIs), Technology Compatibility Kits, project build and test scripts, and product documentation sufficient to build a documented RI from Eclipse Enterprise for Java sources and other software available in open source.
- Some of the EE4J API implementations and technology compatibility kits continue to be available in other open source projects.
- The initial Eclipse Enterprise for Java RI is compatible with GlassFish 5.0, and passes Java EE 8 compatibility tests transitioned to EE4J.
EE4J defines a process for evolving the platform, including updating existing APIs, implementations, and technology compatibility kits, as well as creating new APIs, implementations, and technology compatibility kits. The goal of platform evolution is to enable ongoing delivery, over time, of compatible Java runtime implementations that meet the needs of developers and administrators of server-side and cloud-native applications. In addition to providing an integrated platform, many EE4J projects and technologies can be run standalone in Java SE environments.
EE4J is open to incorporation, integration, and support for innovations that enhance the development, deployment, and management of server-side and cloud-native applications. These include innovations introduced in other open source projects, including closely related projects. Eclipse MicroProfile is such a project that EE4J will review as a source of innovations for incorporation into EE4J.
The projects under this top-level project will be implemented in Java. These projects support many different hardware, OS, and database environments to meet the needs of developers, administrators, application end users, vendors, and partners.
Content produced by projects under the Eclipse EE4J Top Level Project is licensed under the Eclipse Public License v2.0, with the Secondary License GPL 2.0 with Classpath Exception. Alternative licensing schemes must be approved by the Eclipse EE4J Project Management Committee and Eclipse Board of Directors.
- Originally published on September 28/2017
- Revised on October 12/2017