Eclipse GlassFish 5.1 is released

I am very excited to bring you some great news. Today Eclipse GlassFish 5.1 has finally been released and available

on Maven Central:

or can be downloaded from Eclipse web site:

A huge milestone has been reached. Eclipse GlassFish 5.1 is a pure Eclipse release. All components formerly supplied by Oracle have been transferred to the Eclipse Foundation from Oracle Java EE repositories, have passed the Eclipse release review, and have been released to Maven Central with new licensing terms. Eclipse GlassFish 5.1 has passed all CTS/TCK tests (run on Oracle infrastructure) and has been certified as Java EE 8 compatible.

CTS tests results (copied from Oracle infra):

This release doesn’t contain any new features. The feature set is the same as in Oracle GlassFish 5.0.1. The main goal was to demonstrate that GlassFish and all other components transferred from Oracle to Eclipse are buildable, functional and usable.

Another significant change is the license. It’s the first version of GlassFish released under EPL 2.0 + GPL 2.0 with the GNU classpath extension.

And the third change is the modification of Maven coordinates of GlassFish components. To distinguish Jakarta APIs from Java EE APIs we changed their Maven coordinates from javax to jakarta and released new versions. The full list of components used in GlassFish 5.1 can be found here.

In addition to delivering the software we have also learned:

  • How to use Eclipse Development Process to elect committers, submit projects for release reviews, etc.
  • How to use Eclipse build infrastructure to setup build jobs, release components to staging repository and to Maven Central
  • How to communicate with different project teams and work together to achieve shared goals
  • And much more…

The next step for the Jakarta EE community is to complete the Jakarta EE specification process, create Jakarta EE specifications that correspond to all the Java EE specifications and approve all these specifications through the specification process.  That process will no longer require a Reference Implementation, but it will require at least one Compatible Implementation. We hope the community will ensure that Eclipse GlassFish is Jakarta EE 8 compatible and will remain a compatible implementation as the Jakarta EE specification evolves in the future.

It took us more than a year to deliver this release. A huge amount work has been done and we wouldn’t have completed it without community help and support. I would like to say thanks to all people who participated in this release.

First year of Eclipse EE4J

The idea of transferring Java EE sources to the Eclipse Foundation was announced at the last Oracle JavaOne conference. The year has passed and in this article I will try to summarize what was done during this year and where we are now.

First of all, I am happy to announce that

Eclipse GlassFish RC1 is released!

It’s available for download here. This release is not final. It’s a milestone release with a purpose of indicating progress and providing developers the preview of the final product to play with, test it and provide feedback.

No doubt it’s a platinum trophy for the Jakarta EE community and we expect that Eclipse GlassFish sources will become the basis for an implementation of the Jakarta EE specifications.

It took us a year to achieve it. We transferred projects one by one from Oracle Java EE repositories and it was a challenging process. We had to go through a bunch of approvals on Oracle and Eclipse side. You can read more about it here.

There are currently 39 projects created and 88 repositories transferred.

I collected the information about when project sources were transferred on the picture below.

From Java EE to Jakarta EE (EclipseCon EU 2018).png

As you see we started with EclipseLink and Yasson, which were already at Eclipse Foundation, but under RT project. The first projects which were transferred from Oracle GitHub were JSONP, JMS, WebSocket and OpenMQ. It was done in January 2018. GlassFish repository and CTS/TCK repositories were transferred in Sep 2018.

Most of projects have the EPL 2.0 license, but some of them were transferred under the more permissive EDL license. This is true for projects that shared their codebase with the JDK in the past, such as JAXB and JAX-WS.

Now I would like to provide you some vision about the volume of work done. Let’s take a look at the Java EE codebase. Some projects (like most of the API projects) are relatively small. Implementations are usually much bigger and the TCK codebase is huge.

To be more precise, Java EE source-code contains over 5.5 million lines of code and over 2.2 million lines of comments in more than 61,000 files. For comparison, it’s around the same as the server side of World of Warcraft and the Linux Kernel 2.6.0.

CTS/TCK contains over 4.6 million lines of code and over 1.1 million lines of comments in more than 34,000 files. It’s comparable with the codebase of Windows NT 3.1 and Photoshop CS6.

In total we transferred 13.5 million lines of code in 95k files.

Screen Shot 2018-10-19 at 22.58.58.pngBased on data provided by https://informationisbeautiful.net

It’s worth mentioning that TCK/CTS sources were closed. It’s the first time the community has seen it and started contributing.

A lot of work is done, but there are still things to do. Here is a current status of projects from Eclipse EE4J web site:

Screen Shot 2018-10-19 at 23.02.01.png

The above graph charts the following progress:

  • 20% Project Proposal has been posted for community review
  • 40% Project committers and resources have been provisioned
  • 60% Initial Contribution provided to the Eclipse IP Team
  • 80% Initial Contribution Pushed to Git Repository
  • 100% Project has engaged in its first Release Review

Not all projects are at 100% yet. Most of the projects are still need to pass the release reviews and release the first Eclipse version. This work is in progress and it goes well so far. The community is highly involved. I counted people having more than 5 commits/bug reports and there are

more than 80 active contributors

from different vendors including Oracle, IBM, Red Hat, Payara, Tomitribe and others.

I created two pie-charts demonstrating how different vendors are participating in EE4J projects.

The first chart is demonstrating committers per organization. It represents 213 committers in total. If the employer of the person is not defined, they were assigned to At Large group.

Screen Shot 2018-10-19 at 23.03.22.png

The second chart demonstrated project leads by organization.

Screen Shot 2018-10-19 at 23.04.09.png

In order to achieve our goals the activity and participation levels must be kept high. The main goal currently is completing Java EE 8 certification and releasing the final version of Eclipse GlassFish.

The following is the current schedule:

Sep 21 — All code required for GF build contributed.
Sep 23 — Eclipse GlassFish builds.
Oct 1 — Java EE 8 CTS testing. Running CTS tests on Eclipse GlassFish.
Oct 22 — Eclipse GlassFish 5.1-RC1 milestone release.
Oct 29 — CI/CD release pipelines completed.
Nov 5 — Dependencies updated. All projects are released to OSSRH and have dependencies to Eclipse version of other components.
Nov 30 — Release Review completed.
Dec 14 — Eclipse GlassFish 5.1 release. All CTS tests are passed.

So far we are on schedule. We need to keep up the cadence and make a final push to release the final version of Eclipse GlassFish on Dec 14, 2018.

At the end of the article I would like to say thanks to the community and vendor support Jakarta EE has received. While Oracle is making the bulk of contribution effort, it will take a community to continue evolving and enhancing Jakarta EE. In addition to Oracle, this release will be delivered with assistance from Payara, Tomitribe, Red Hat, IBM, and various independent community members. We are very pleased to see this community come together and we look forward to further growth in the coming months.

Also, I would like to use this opportunity and invite people to participate in Jakarta EE efforts. This is the interesting time, don’t miss it!

 

EclipseLink repository is moved to GitHub

As part of a process of transferring Java EE 8 to the Eclipse Foundation, EclipseLink source code repository was moved from Eclipse git to eclipse-ee4j organization on GitHub. It aligns EclipseLink with other EE4J projects and makes it more open to the community.

If you are a committer don’t forget to update your local copy!

New Location Old Location
Repository EE4J GitHub Eclipse git + Mirror
Issues Tracker EE4J GitHub + Eclipse BugZilla Eclipse BugZilla

From now on GitHub repository becomes a main working repository. All pull request and code reviews must be done there. Old repository on Eclipse git is switched to read only mode and will be eventually deleted as well as it’s mirror on GitHub.

I am also recommending using GitHib issues tracker for bugs submission the same way as other EE4J projects are doing. The old issues tracker is still active though.

Other project repositories (examples, etc.) will be also moved to EE4J GitHub in the nearest future.

JSON-P Sources are Transferred to Eclipse Foundation

Screen Shot 2018-01-11 at 21.43.24

Today is a big date. I just pushed JSON Processing sources to Eclipse EE4J GitHub repository.

See it live here: https://github.com/eclipse-ee4j/jsonp

It’s first sources which are actually transferred from Oracle to Eclipse. First two projects (Yasson and EclipseLink) were already in Eclipse Foundation, but under different root project.

More project coming soon! The firsts make history. And the first one was JSON-P!