Hashtag Jakarta EE #11

Welcome to the eleventh issue of Hashtag Jakarta EE!

It’s been a special week. But at least, in our industry, we are pretty well equipped and used to remote working. Let’s just cross our fingers and hope that the measures taken will get the situation under control and we can get back to normal as soon as possible.

Supporting the Community

At the end of the week, we launched an initiative sponsored by the Jakarta EE Working Group to enable Java User Groups around the world to stream live events for free using our Crowdcast account. This will be available for at least as long as physical meetups are put on hold due to the Covid-19 situation.

Over to some updates about what is going on in the MicroProfile community.

Push vs Pull

The hangout this Tuesday was in entirety devoted to discussing the Pull vs Push approach for technical alignment with other standardization bodies, such as Jakarta EE. The vote is ongoing and will be closed Tuesday, March 17. Check out the MicroProfile Calendar for details about how to join the MicroProfile hangouts.

The current status of the voting indicates that the decision will be to go for a Pull model. What will this mean for Jakarta EE?

Implications of Pull

The obvious consequence of the Pull model is that if Jakarta EE decides to pull in a MicroProfile specification, it will essentially mean a fork. For those runtimes supporting either MicroProfile or Jakarta EE, but not both, it will be business as usual.

Those supporting both will have the headache of figuring out how to implement this. This will probably not be a hard nut to crack until one, or two of the tines of the fork, start evolving.

A possible Scenario

Let’s say that Jakarta EE decides to pull in MicroProfile Config and create a specification called Jakarta Config. The base package is changed from org.eclipse.microprofile.config to jakarta.config and the specification is added to the Jakarta EE Full and/or Web Profile.

Other Jakarta specifications are now free to reference Jakarta Config and implementations are required to implement it in order to be Jakarta EE Compatible. Products out there supporting both (e.g. OpenLiberty, WildFly, and Payara to mention a few open-source implementations), will now have two configuration options that are more or less identical.

Let’s say, then, that Jakarta Config adds a nifty feature. Should this feature be back-ported to MicroProfile Config? Or should MicroProfile Config be abandoned and Jakarta Config added to the base Jakarta specs required for MicroProfile?

I think these questions need to be addressed somehow, and that it is up to the vendors behind these initiatives to figure out a strategy that is in the best interest of their customers. It is a too easy way out to say that this will self-regulate by the community.

Hashtag Jakarta EE #10

Welcome to the tenth issue of Hashtag Jakarta EE!

Join me in celebrating the 10th issueversity of this series! I can’t believe we’re already at 10.

In the MicroProfile Hangout this week, the discussion around technical alignment with related technologies and standardization efforts (such as Jakarta EE) continued. Two approaches have crystallized themselves and the goal is to come to a decision at the hangout next week (Tuesday, March 10). The models discussed are push and pull.

The Pull Model implies that MicroProfile creates and evolves specifications without regard to downstream consumer requirements (e.g. Jakarta).

With the Push Model, MicroProfile specifications, when mature/stable, are transferred to external organizations (e.g. Jakarta EE).

As I mentioned above, the goal is to settle which approach to go for at the MicroProfile Hangout next week. Make sure to tune in to that one. Refer to the MicroProfile Calendar for details about the call.

The Virus

Due to Covid-19, a large number of events are being canceled. Those I had scheduled to speak at are dev.next, Red Hat Summit and IBM Think so far. All of these will be replaced by virtual events.

While virtual events are better than nothing, I don’t think they will ever be able to fully face-to-face events. The hallway discussions and the social benefit of actually meeting someone physically are what makes conferences irreplaceable. Looking forward to continuing to meet you all at the conference circuit later when the dust has settled. Meanwhile, I will participate in virtual events as well as smaller gatherings and meetups where they are possible to arrange.

Hashtag Jakarta EE #9

Welcome to the ninth issue of Hashtag Jakarta EE!

This week, I had the pleasure of speaking at ConFoo in Montreal. It was my second time speaking at this conference. This was the 18th edition and the number of attendees has increased every year. 839 registered attendees this year!

My first talk was a live coding session where I demoed most aspects of Eclipse MicroProfile.

On the second day, I did the Microservice Patterns talk where I go through a list of microservice patterns and show how each of them is implemented with Eclipse MicroProfile.

An interesting observation regarding the strength of the various brands is that when I did a poll at the beginning of both my talks, about 5% had heard about MicroProfile, about 50% about Jakarta EE and 100% had heard about Spring Boot. It should be noted that ConFoo is originally a PHP conference that has extended out to include more technologies, so the audience was not necessarily 100% hardcore server-side Java developers. But still interesting to see how the awareness of Jakarta EE is growing.

To round of wit something sweet; after the conference, we went on a trip to a Sugar shack outside of Montreal.

The favorite on the table I were seated were bacon with maple syrup!

Hashtag Jakarta EE #8

Welcome to the eigth issue of Hashtag Jakarta EE!

This week, I was at Devnexus in Atlanta. This awesome conference organized by the Atlanta Java User Group has established itself as the place to be if you are a Java developer. This year with 2400 attendees and an amazing line-up of world-class speakers.

On the evening the first day of the conference, the Eclipse Foundation hosted a Cloud Native for Java Meetup. More than 100 participants came together for food, drinks and technical discussions around Jakarta EE and Eclipse MicroProfile.

My talk What’s Going on with Jakarta EE was well received by those who attended. I gave an update on Jakarta EE 9 as well as outlining many of the various ways of getting involved.

The Jakarta EE booth was located in the community corner of the exhibition hall together with Apache, OSI, and AdoptOpenJDK. We had a great time there with lots of good discussions.

Hashtag Jakarta EE #7

Welcome to the seventh issue of Hashtag Jakarta EE!

One of the most common questions I get when talking about Jakarta EE is: “How can I help?”. Well, here is a suggestion: The post “Help wanted: improved signature test tool” by Bill Shannon on the Jakarta EE Community mailing list asks for help improving the signature test tool used by the TCK.

In short, what we need help with is to fix the features of this tool to make it possible to either limit the recorded signatures to the API being tested or exclude the signatures for the JDK classes. See the GitHub issue for details.

MicroProfile will produce specs and it is up to others how they adopt or consume them

This week’s MicroProfile Hangout was dedicated to Working Group discussions. The agenda was, as always, set by the participants and the topic this week quickly became technical alignment between MicroProfile and related technologies, such as Jakarta EE. The result of this discussion is summarized by John Clingan in the thread MicroProfile Working Group discussion – Push vs pull on the MicroProfile mailing list. Basically, what this approach means is that MicroProfile will produce specs and it is up to others how they adopt or consume them.

There is an interesting Twitter discussion going on around Quarkus, CDI and the requirements to claim MicroProfile compatibility. This discussion has moved over to various threads on the MicroProfile mailing list. The disagreement within the MicroProfile community is whether the Java EE specifications (JAX-RS, JSON-B, JSON-P, and CDI) are a part of MicroProfile or just referenced APIs. Why this distinction is important is worth a blog post on its own, but the gist of it is that if CDI is a part of the platform, a product cannot be claimed to be compatible with MicroProfile unless the CDI TCK is passed.

For reference, I have included the graphics describing the content of the first (1.0) and the current (3.2) release of MicroProfile below.

Hashtag Jakarta EE #6

Welcome to the sixth issue of Hashtag Jakarta EE!

On the fun side, I was made aware that my shoutout for the Hashtag series may be a little confusing as you can see in my conversation with Ronnie Zolverda.

I didn’t want to use #5 to indicate number 5 since Twitter would then interpret the hashtag (#) as if I were tagging the number 5. Also interesting that nobody reacted on the first 4 posts…

From this week on, I will tweet that “Hashtag Jakarta EE number X is out!” to avoid confusion in the future 🙂

So, over to the technical side. Gunnar Morling referred me to a recent article of his where he describes how to use the JDK Flight Recorder to monitor REST APIs.

We didn’t have any Jakarta Tech Talks or Update calls this week, but the work with Jakarta EE 9 proceeds as planned. The status is best followed by checking out the project board. We have now passed the deadline for individual component release plans. These are Java Activation Framework 2.0 and Jakarta Enterprise Beans 4.0. The rest will follow the release plan for the full platform.

The discussions regarding establishing a working group for MicroProfile, mentioned in Hashtag Jakarta EE #1 and #3, continue with weekly MicroProfile hangouts as well as being a recurring topic in the Jakarta EE Steering Committee.

So far, there are two proposals on the table; a joint working group or two separate working groups. While the structure of the working group(s) is important, another aspect is the technical alignment of Jakarta EE and MicroProfile. A couple of weeks ago David Belvins put forward a couple of proposals to bootstrap the discussions. A third proposal was presented by Steve Millidge where he proposes that profiles in Jakarta EE are promoted to individual brands and that MicroProfile becomes a profile of Jakarta EE. Interesting thoughts!

Reflect, Relax, Recharge at Devnexus 2020

The next conference I will be attending is Devnexus in Atlanta which is organized by the Atlanta Java User Group.

This year, Devnexus is extended with a JUG Leader Summit scheduled the day before the conference where there will be more than 40 Java User Groups represented.

In my session, What’s going on with Jakarta EE, I will provide an update about the ongoing work with Jakarta EE 9. This talk is also an opportunity to come forward and have a dialogue about everything going on in and around the Jakarta EE Working Group at the Eclipse Foundation.

During the conference, you will probably find me around the Jakarta EE booth with Tanja when I am not attending talks by all the amazing speakers. Please visit ut there for an informal chat about open source or to pick up some of our Jakarta EE swag!

Hashtag Jakarta EE #5

Welcome to the fifth issue of Hashtag Jakarta EE!

This weekend, I attended my first FOSDEM. This is a free event that takes place in Brussels every year. It is quite an experience with fully packed rooms and crowded corridors. Sessions are short (25 mins) and focused. Absolutely a recommendation!

Mike Milinkovich presented Free at Last! The Tale of Jakarta EE for a full Java Dev Room.

Check out the minutes from the weekly Jakarta EE Platform call to follow the progress of Jakarta EE 9.

Earlier this week, I presented Microservices in Practice with Eclipse MicroProfile at Javaforum Malmö.

This demo-heavy talk was well received. There has been a steady increase of participants in our JUG over the last year, a strong indication for the continued popularity of Java.

If you have made it this far, I want to end this hashtag with an encouragement to check out these articles by Nicolas Frankel. He provides some very useful tips and advice about Tricky Servlet Mappings and Creative use of Filters.

Contributing to Jakarta EE

This post is meant to clear up some misunderstandings that occurred during a discussion thread on the Jakarta EE Community mailing list. Some of this is a repetition of what I described in Jakarta EE 9 Shaping Up in December, but such an important topic cannot be stressed enough.

The only thing you need in order to contribute to Jakarta EE specifications is a signed ECA!

First of all, to contribute to any open source project at the Eclipse Foundation, you will need to create an account and sign the Eclipse Contributor Agreement (ECA). See below for a visualization of this process.

Steps to create an Eclipse Account

That’s it!

You can now start contributing by submitting Pull Requests to the projects you are interested in, including Jakarta EE specification projects. It doesn’t cost anything. No signatures from your employer are necessary. Just the ECA. The only thing you need in order to contribute to Jakarta EE specifications is a signed ECA!

The more you contribute, the more likely it is that you will be proposed to become a committer to the project. I will describe the zero-cost way of becoming a committer in a follow-up post to this one.

Hashtag Jakarta EE #4

Welcome to the fourth issue of Hashtag Jakarta EE!

We’re on a roll here! I can’t believe it is already four weeks since I started this series!

Stay tuned for announcements about Jakarta MVC!

A little on the side of Jakarta EE, but still related is that the MVC 1.0 specification (JSR 371) is finally final! We have been working with this for a long time, and special thanks to Christian for his work in getting the release out the door! Without him, I doubt there would be a release of MVC!

So, why isn’t MVC already moved over to the Eclipse Foundation and Jakarta EE? The short answer to that is that we wanted to finish the first release under the JCP in order to have a released project to transfer. We have already transferred Krazo, the reference implementation and the plan is to start the transfer of the specification and the TCK shortly. Stay tuned for announcements about Jakarta MVC!

Jakarta EE 9 is moving forward with great progress. The status of all the work is tracked on the Jakarta EE 9 tracking board. If you are involved in one of the specifications in the Plan Review column, you are encouraged to take a look and see how you can help move these specifications forward to the In Progress column. Instructions can be found in notes at the top of the columns.