Status message

A Eclipse Coffee Builder for Jakarta EE Creation Review has been created for this proposal.

Eclipse Coffee Builder for Jakarta EE

Monday, August 10, 2026 - 19:09 by Diego Silva Límaco
This proposal is in the Project Proposal Phase (as defined in the Eclipse Development Process) and is written to declare its intent and scope. We solicit additional participation and input from the community. Please login and add your feedback in the comments section.
Parent Project
Proposal State
Community Review
Background

Eclipse Coffee Builder for Jakarta EE was created to make it easier for developers to start building Jakarta EE applications while understanding the structure, dependencies, configuration, and technologies involved.

Starting a Jakarta EE application often requires developers to make several decisions early in the development process, including which platform capabilities to use, which dependencies and Maven plugins are required, and how the initial project structure should be configured.

Eclipse Coffee Builder approaches this by providing a minimal Jakarta EE project foundation that can be extended incrementally as the application evolves. Developers can introduce capabilities as they are needed, while keeping the resulting project structure and configuration explicit and understandable.

The project is intended to support learning by building and to provide developers with a clear view of what is being added to their application and why.

Scope

Eclipse Coffee Builder for Jakarta EE provides tooling that helps developers create and evolve Jakarta EE applications incrementally.

Eclipse Coffee Builder provides a minimal Jakarta EE project foundation and allows developers to introduce selected Jakarta EE capabilities as needed, including the corresponding dependencies, Maven configuration, and supporting project structure.

The project aims to:

  • provide a simple and understandable starting point for Jakarta EE applications;
  • support the incremental addition of Jakarta EE capabilities as an application evolves;
  • make the dependencies, build configuration, and project structure associated with those capabilities explicit;
  • help developers understand how Jakarta EE technologies are introduced into Maven-based applications;
  • support both developers learning Jakarta EE and developers looking for a lightweight starting point for new applications.

Eclipse Coffee Builder is not intended to define new Jakarta EE APIs or specifications, provide an implementation of Jakarta EE specifications, or introduce an application framework on top of Jakarta EE.

The project builds on and demonstrates Jakarta EE technologies while remaining aligned with the Jakarta EE platform and its specifications.

Description

Eclipse Coffee Builder for Jakarta EE is an open source tool that helps developers create and evolve Jakarta EE applications progressively.

Eclipse Coffee Builder creates a small and understandable Jakarta EE project foundation that developers can extend by adding capabilities as their application evolves. Each capability can introduce the dependencies, Maven configuration, and supporting project structure required for the selected Jakarta EE technologies.

The central idea of Eclipse Coffee Builder is:

"Eclipse Coffee Builder generates the foundation. The developer builds the application."

This approach keeps the generated project transparent and allows developers to understand how Jakarta EE technologies are introduced into the application, including their dependencies, build configuration, and project structure.

Eclipse Coffee Builder is intended to serve primarily as a practical development tool while also supporting developers who want to better understand how Jakarta EE applications are assembled. By making the evolution of the generated project explicit, Eclipse Coffee Builder encourages developers to remain in control of the resulting application rather than treating generated code and configuration as a black box.

Why Here?

Eclipse Coffee Builder is fundamentally built around Jakarta EE.

Its purpose is to help developers adopt, understand, and use Jakarta EE technologies when building applications. Hosting the project within the Eclipse Foundation and under the EE4J top-level project would place Coffee Builder close to the specifications, implementations, tools, contributors, and community that define and evolve the Jakarta EE ecosystem.

As a community-governed project, Coffee Builder would be able to evolve in collaboration with Jakarta EE contributors and users, helping ensure that its capabilities remain aligned with the direction of the platform and with practical developer needs.

Being part of EE4J would also provide a vendor-neutral environment in which Coffee Builder can grow beyond the stewardship of a single individual or organization. This would encourage broader participation, shared ownership, and long-term sustainability of the project.

Coffee Builder can also provide practical feedback from developers using Jakarta EE technologies in real applications, helping strengthen the connection between specifications, implementations, tooling, and the overall developer experience.

Future Work

Over the next twelve to eighteen months, Eclipse Coffee Builder for Jakarta EE is expected to expand the set of Jakarta EE capabilities that developers can add to generated projects. Planned areas include support for additional Jakarta EE technologies such as Jakarta NoSQL and Jakarta Security, as well as improvements to project customization, including configurable Java package names instead of relying on predefined values.

The project also plans to broaden runtime support based on the Jakarta EE implementations represented by the Jakarta EE Starter ecosystem, including Apache TomEE, Open Liberty, WildFly, Payara, and GlassFish, where compatible versions are available.

Eclipse Coffee Builder intends to evolve alongside Jakarta EE platform releases, with the goal of providing corresponding support for new Jakarta EE versions as they become available. Emerging Jakarta EE technologies may also be exposed through experimental or preview-oriented capabilities so that developers can explore new platform features before they become part of the project's stable functionality.

Documentation is another important area of future work. The project plans to improve both user-facing documentation and contributor documentation so that developers can better understand how Eclipse Coffee Builder works, how generated projects are structured, and how to contribute new capabilities or improvements.

Community growth will be an important part of the project's development. Eclipse Coffee Builder welcomes contributions of all kinds, including code, documentation, testing, issue reports, examples, and feature proposals. The project plans to make contribution opportunities easier to discover and to collaborate with Jakarta EE specification and implementation communities where appropriate in order to validate capabilities from both technical and developer-experience perspectives.

Before its first official release, a primary goal is to increase the number of Jakarta EE technologies and runtime combinations supported by the project while keeping the generated projects understandable, maintainable, and aligned with Jakarta EE.

Project Scheduling

The project is expected to begin by completing the Eclipse Foundation project creation and provisioning process.

Following provisioning, the existing Eclipse Coffee Builder codebase will be contributed as the project's initial contribution and migrated to the source code repositories established for the project. The project will then focus on ensuring that the existing application builds correctly within the Eclipse Foundation infrastructure and that the required project documentation, legal files, and contribution guidelines are in place.

Early development milestones will focus on stabilizing the existing functionality, improving documentation, and preparing the project for broader community participation.

Subsequent milestones are expected to introduce additional Jakarta EE capabilities, improve project customization, and expand support for Jakarta EE runtimes.

The project intends to produce milestone builds during the incubation phase in order to gather feedback from users and contributors. A first official release is expected after the initial codebase has been integrated, the project documentation has been strengthened, and support for additional Jakarta EE technologies has been added.

The exact schedule will evolve based on community participation, feedback, and coordination with the EE4J community and Eclipse Foundation processes.

Initial Contribution

The initial contribution consists of the existing Coffee Builder for Jakarta EE codebase, currently maintained in the Coffee Builder GitHub organization. The contribution includes the Coffee Builder Maven Plugin, the Jakarta EE Essentials Maven archetype, and the project configuration resources used by Coffee Builder.

The Coffee Builder Maven Plugin provides the tooling used to incrementally introduce Jakarta EE capabilities into Maven-based projects. The Jakarta EE Essentials archetype provides the minimal Jakarta EE project foundation from which applications can be created and subsequently extended. The configuration repository contains supporting configuration resources used by the Coffee Builder tooling.

The existing code was created and developed independently by Diego Silva Límaco as a personal open source project to address recurring challenges encountered when creating and configuring Jakarta EE applications. Diego Silva Límaco is the original author and current copyright holder of the contributed code. The code was not developed as part of an employment or client engagement and is currently distributed under the Apache License, Version 2.0.

Development of the project has so far been primarily carried out by its original author, including development and pull request activity. The project does not yet have an established external contributor community. One of the goals of bringing Coffee Builder to the Eclipse Foundation is to open its development more broadly, encourage contributions from the Jakarta EE community, and establish a sustainable contributor and user community around the project.

The current Coffee Builder Maven Plugin uses the following direct third-party dependencies:

  • Apache Maven API, Core, Artifact and Compatibility components – Apache License 2.0
  • Apache Maven Plugin Tools Annotations – Apache License 2.0
  • Apache Commons Lang – Apache License 2.0
  • Apache Commons IO – Apache License 2.0
  • Apache Commons Validator – Apache License 2.0
  • Apache Commons Codec – Apache License 2.0
  • Apache FreeMarker – Apache License 2.0
  • Eclipse Parsson – Eclipse Public License 2.0, with the secondary license option described by the project
  • JUnit Jupiter – Eclipse Public License 2.0
  • Mockito – MIT License
  • SLF4J – MIT License
  • dom4j – BSD 3-Clause License
  • Jaxen – BSD License

The Jakarta EE Essentials component primarily uses Maven build and archetype tooling rather than application runtime libraries. The complete dependency and third-party content inventory will be reviewed as part of the Eclipse Foundation intellectual property review process for the initial contribution.

Source Repository Type