Run with Jakarta EE at Devnexus

Devnexus in Atlanta is coming up next week. If you are like me and haven’t packed your bags yet, don’t forget to pack your running shoes!

I can never repeat too often that the best way to start a day at any conference anywhere in the World, is to go for a refreshing morning run. And Devnexus is no exception. Meet me every morning at 06:30 am by the Olympic Rings in Downtown Atlanta and experience the beautiful sunrise while going for a 1K, 2K, 3K, or 5K run. The distance is up to you, the pace is up to you. We are a very accommodating bunch.

I will bring a limited supply of high-quality, Jakarta EE branded running shirts (and yes, I do have women’s sizes as well). Ping me before I pack my bags on Monday morning if you want to make sure I pack one in your size…

MVC 1.0 goes to Eclipse Foundation

Last year when waiting for my flight home from JavaOne, I blogged Possible Ways forward for MVC 1.0. Now, I am sitting here at SFO again writing a follow-up on that article.

As we all now, the JSR was was transferred to me from Oracle to be completed as a standalone JSR. Since then, Christian Kaltepoth has joined me as specification lead. We never did anything about the actual IP, all in full agreement. After all, we are developers and not lawyers and just wanted to get going with the actual work.

It has never been my intention to capitalize on the IP, and I wanted to figure out a way to donate it all back to the community. As those of you who follow the EE4J Community Mailing List probably noticed, I announced the intention to transfer MVC 1.0 to Eclipse Foundation. Read the announcement here:

https://dev.eclipse.org/mhonarc/lists/ee4j-community/msg00106.html

This does not imply any changes to the current specification work, expert group or time plan. There may be some practical changes, such as a new mailing list and moving the repositories under the Eclipse GitHub Organization, but that is way in the future.

So why Eclipse and not Apache?
Well, it makes sense to follow the other Java EE technologies when they are transferred to the EE4J umbrella project in Eclipse Foundation. MVC would be a natural fit there, but the exact details will be handled by the EE4J PMC.

 

 

A Comment on the Jigsaw Vote

Anyone who followed the discussions and comments about JSR 376 – Java™ Platform Module System, aka Jigsaw, the last couple of weeks, should not be very surprised by the result of the Public Review Ballot. As you can see below, 13 out of 23 EC Member voted no and 10 voted yes.

Please see the Ballot Result Page for details. Make sure you read comments in the vote log to understand the reasoning for the votes. Summarized, the two following comments seems to be trending:

  • The specification was not ready to move on as it was submitted
  • The discussions and progress during the 14 day ballot period shows that it is going in the right direction

Is this a bad think for Java™ 9?

I don’t think so. This is just an example that the process is working and that the JCP fulfills its role of ensuring the quality of Java™.

Will Java™ 9 be delayed by this?

Not necessarily. It gives the Expert Group an additional 30 days to respond to the comments from the EC before submitting for a Reconsideration Ballot. The actual release date is nothing that is controlled by the JCP.

An update from JSR 371 (MVC 1.0)

The work in the Expert Group for JSR 371 progresses and here is a small update. A couple of decisions have been made and the most important one is that the JSR will be layered on top of JAX-RS. The decision was made by voting between this and the alternative of layering it on top of the Servlet API.

What this means for you as a developer is that the stuff you are familiar with from JAX-RS is directly transferable to MVC. As you can see in the simple example below, the only thing that differs from JAX-RS is the @Controller and @View annotations.

Note that this code is highly experimental and will most likely change as the work with the specification continues.

import javax.ws.rs.GET;
import javax.ws.rs.Path;
import javax.ws.rs.PathParam;
import javax.ws.rs.Produces;

import javax.mvc.Controller;
import javax.mvc.View;

@Path("count")
public class CountController {

   @GET
   @Controller
   @Produces("text/html")
   @Path("{id}")
   @View("counter.jsp")
   public void view(@PathParam("id") String id) {
   }
}

A more complete example with a little more details can be found at https://github.com/ivargrimstad/mvc-samples. I will continue evolving this example as we go.

The latest versions of the spec and reference implementation can be found here: