Hashtag Jakarta EE #18

Welcome to the eighteenth issue of Hashtag Jakarta EE!

In the following video, you can watch an interview I did with Martijn Verburg regarding his nomination to the Jakarta EE Steering Group representing London Java Community.

“Vote for the voice of the Java Community, vote for Martijn!”

When talking about YouTube, I have been busy recording a couple of tech tips for how to sign off your Git commits when contributing to Eclipse Foundation projects. All these tips are collected in a Playlist in the Studio Jakarta EE YouTube channel.

For convenience, I have listed a summary of the commands I used in the video here.

# rebase
git rebase -i [hash of the commit before the one you want to fix]

# replace the word 'pick' with 'edit', save

# add signed-off comment to the commit
git commit --amend -s

# continue the rebase
git rebase --continue

# finally force push the updated commits
git push origin [your branch] --force

And we’re not done with YouTube just yet. This week, we launched the Jakarta EE YouTube channel.

How is this different from Studio Jakarta EE, you may wonder…

The answer to that is that I don’t know yet. It may make sense to merge them sometime in the future. Or keep them apart since the type of content may be a little different. My idea with the Studio Jakarta EE channel is to have a lightweight platform for Jakarta EE related content of varying types, such as interviews, tech tips, live streams, panels, trip reports from conferences, etc. So please, go ahead and subscribe to both. That way you are sure not to miss out on anything.

Hashtag Jakarta EE #17

Welcome to the seventeenth issue of Hashtag Jakarta EE!

The nomination period for the Jakarta EE Working group elections has closed. Now, it is up to the candidates to convince you why they should get YOUR vote. To help with this, I have offered each candidate a short Studio Jakarta EE interview.

“Vote for experience and continuity, vote for Werner!”
“Vote for real world experience, vote for Arjan!”

Next week, I will be conducting interviews with more of the candidates. So, tune in to Studio Jakarta EE to learn more about the candidates before casting your vote!

At the end of this hashtag, I want to remind you of the Jakarta EE 2020 Developer Survey.

To fork, or not to fork

There is a very interesting discussion ongoing on the Jakarta EE Community mailing list about forking Eclipse MicroProfile as Jakarta Configuration. While the discussion on the mailing list initially is about the MicroProfile Config specification specifically, it also raises the question of how the strategy of Jakarta EE should be for technical alignment with Eclipse MicroProfile.

Background

A couple of weeks ago, there was a vote in the Eclipse MicroProfile community about how the technical alignment with downstream consumers. Two approaches, the Pull Model and the Push Model were voted on. The Pull Model got the most votes, and thus was selected as the strategy for technical alignment.

In parallel, the discussions regarding the creation of a MicroProfile working group have been going on since October last year. Several suggestions have been explored, including separate working groups, a combined working group with Jakarta EE, or a combination of the two with two working groups linked together with an umbrella working group.

The latest development in this working group discussion is that the Eclipse Foundation has asked the MicroProfile Community to define a charter for a MicroProfile working group independent from Jakarta EE.

Why Fork?

Whether there is a single working group, a group of working groups under an umbrella working group, or just independent working groups is actually not relevant to this discussion. The technical alignment will still be the same. The MicroProfile community has chosen the Pull Model, and this is something Jakarta EE needs to figure out how to relate to.

In my mind, it is pretty simple. Jakarta EE should create a fork of the specifications that makes sense to make a part of the Jakarta EE Platform. There are several reasons for this. I have touched upon a couple of them here.

1. Stability

MicroProfile wants to move fast and break things, while Jakarta EE wants to maintain a certain level of backward compatibility. By creating a fork, Jakarta EE won’t have to address this concern since it will then control the life cycle of its specifications.

2. Cohesion

Java EE, and by succession Jakarta EE, has always been a very cohesive platform. A central piece like configuration will be used throughout the entire platform and it only makes sense that it is in the same namespace as the rest of the platform.

3. Flexibility

By maintaining a fork of the specification, Jakarta EE is free to make modifications that are relevant for Jakarta EE, but maybe wouldn’t be relevant for MicroProfile.

Some Thoughts

As I pointed out in Hashtag Jakarta EE #11, the headache of diverging tines of the fork lands on the vendors that support both Jakarta EE and MicroProfile in the same product. Therefore, it is kind of interesting to see that the vendors that were most in favor of the Pull approach that are all shipping products that are both Jakarta EE and MicroProfile compliant. So, clearly, they must have thought about this and have a solution in place.

Some other reads on the same topic

MicroProfile and Jakarta EE Technical Alignment – Steve Millidge
Proposal on Jakarta EE’s innovation & relationship with MicroProfile – Sebastian Daschner

Hashtag Jakarta EE #12

Welcome to the twelfth issue of Hashtag Jakarta EE!

This week, I should have been speaking at JavaLand, one of my favorite conferences.

But as you are aware of, this conference was added to the long list of cancelled events this spring.

Being a Developer Advocate normally involves a lot of travel and interacting with people face-to-face. Now that we’re all grounded in one way or the other, I have been exploring the various options for creating video content, either by live-streaming or prerecorded sessions. It is a jungle! The rest of this post describes some of the efforts we have started up this week.

I am super happy with the free Crowdcast channel for JUGs that we were able to set up with funding from Jakarta EE. Make sure to add it to your bookmarks and follow the channel for updates on upcoming events.

This morning I created the Studio Jakarta EE YouTube channel and uploaded the first video, so I can now officially call my self a Youtuber 🙂

At the Eclipse Foundation, we will also start streaming a series of interviews, discussions and live events on the Eclipse Foundation Crowdcast channel.

If you are still hungry for more, take look at the recordings from last year’s Jakarta One LiveStream.

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 #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!

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.

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.

Hashtag Jakarta EE #3

Welcome to the third issue of Hashtag Jakarta EE!

Most of this week was spent at the Eclipse Foundation office in Ottawa. It is great to have the opportunity to meet the people I work with daily in person once in a while.

On Tuesday, January 14, there was an off-week MicroProfile Hangout dedicated to the discussions around the Working Group proposals for MicroProfile. The hangout was pretty well attended with the usual suspects doing most of the talking. See the presentation and meeting minutes for more details. The session was even recorded.

This week, we also had a Jakarta Tech talk by Adam Bien. He gave a great presentation about Jakarta EE application servers and Docker.

We even had a Jakarta EE Community Update Call where we talked about Jakarta EE 9, the Jakartification of the specification documents as well as the 2020 program and budget.

In the blog space, there is a lot being written about Jakarta EE. I will point to a couple of posts here. Will Lyons summarises The Jakarta EE 8 Community Retrospective and you can read about the approval of the Jakarta EE 9 release plan in Mike Milinkovich’ post Moving Forward with Jakarta EE 9,

Hashtag Jakarta EE #2

Welcome to the second issue of Hashtag Jakarta EE!

This week, I have been in Sandusky, Ohio for CodeMash. This awesome conference is organized by an Ohio Non-Profit Organization and is held at the Kalahari resort in Sandusky, Ohio.

In addition to meeting a bunch of awesome people, I had a talk about Eclipse MicroProfile.

Attending conferences like CodeMash that are not entirely Java-centric is a great reminder that outside our bubble, most developers haven’t heard about Jakarta EE or MicroProfile at all!

It is both challenging and rewarding to give a talk where you are not preaching to the choir. I encourage you all to do this more often. This is how we spread the message! This is how we grow our community!

In the Jakarta EE space, we started the week with an EE4J PMC meeting followed by the Jakarta EE Steering- and Specification committees. The most important agenda item discussed is the ongoing ballot for approval of the Jakarta EE 9 release plan in the Specification Committee. You can follow the ongoing ballot on the Jakarta EE Specification Committee mailing list.

At the end of last year, the Java EE Guardians completed their rebranding to become the Jakarta EE Ambassadors. I am really happy that I was able to help in the process of getting the new logo created. This is the first approved usage of the Jakarta EE brand and logo outside of the Jakarta EE Working Group. A milestone in itself!