Wednesday Aug 26, 2015

JSON-P 1.1/Java EE 8 Webinar at Istanbul JUG

The Istanbul JUG has been spinning up it's participation in Java EE 8 through Adopt-a-JSR. They have already taken an interest in JSON-P 1.1, MVC and JMS 2.1 with many more Java EE 8 JSRs on their radar. The Istanbul JUG is the first Turkish JUG to engage with Adopt-a-JSR and Java EE 8.

Towards this end the JUG is hosting an online webinar on the proposed changes in JSON-P 1.1 to better involve JUG members. These changes include support for JSON Pointer, JSON Patch and JSON Patch-Merge as well as Java SE 8 alignment. They will be using the recently released specification early draft to drive the discussion. The meeting will be hosted online so anyone can participate. The event will be held on September 3rd, 9:00 PM Istanbul time. Details of the meeting can be found here. The linked page also includes a registration form for the webinar. Note the meeting will be in Turkish.

The Adopt-a-JSR program is one the key things we are trying hard to do differently for Java EE 8 with the goal making this version of the platform one of the most community driven technologies ever developed. Here are just some of the things you could help do via the program right now:

The full details for Adopt-a-JSR/Java EE 8 is always available here. Remember that if you have any questions on any of this, you are always welcome to drop me a note.

Monday Aug 24, 2015

Java API for JSON Binding (JSON-B) 1.0 Early Draft Now Available!

The first early draft of the Java API for JSON Binding (JSON-B) 1.0 is now available for you to review: https://jcp.org/aboutJava/communityprocess/edr/jsr367/index.html. As discussed below this is distinct from the Java API for JSON Processing (JSON-P) 1.1, which also recently published it's own first early draft. Like all early drafts for JSRs, the goal is to foster dialog, feedback and participation. Although it is just an early draft the thirty-five page specification document is actually fairly far along so providing useful feedback should be easy.

JSON is increasingly becoming the de-facto data interchange format on the web, be it for mobile, HTML5/JavaScript rich-client or microservices applications. While Jersey, EclipseLink, GlassFish and WebLogic have long provided strong support for JSON via EclipeLink MOXy, it has been a goal in the Java EE platform to make JSON a first class citizen to the degree where it can become just another natural serialization format for Java. Towards that goal Java EE 7 provided simple JSON processing support via JSON-P. That support is being beefed up further in Java EE 8 by supporting more JSON standards in JSON-P such as JSON Pointer, JSON-Patch and the like. As a parallel effort Java EE 8 also plans to provide a much higher level JSON binding API via JSON-B. The idea is to make JSON handling in the platform so ubiquitous and easy-to-use that it is almost invisible akin to JAXB in the XML world.

If these are ideas that interest you, now is the time to get involved with JSON-B and join other folks in the community that are already helping out. The JSON-B early draft gives special thanks to Olena Syrota, Oleg Tsal-Tsalko and the Ukraine JUG for their contributions even at this stage. These folks have helped us with feedback, community building as well as evangelizing.

There are many ways for you to get involved as always. You are always welcome to join the expert group proper via the JCP page for the specification. You can always simply join the discussion by subscribing to the JSON-B specification user alias. If you would rather participate as a group through your JUG you can do that easily via Adopt-a-JSR.

Wednesday Aug 19, 2015

Java EE @ Chicago Coder Conference 2015

The Chicago Coder Conference 2015 was held on May 14-15. The conference is locally organized by the community including the Chicago JUG, which is why it was important for us to support the event. The event is somewhat Java leaning but also has great presence from the web, .NET, database, etc communities.

I delivered talks on JMS 2 and aligning JavaScript/HTML5 with Java EE 7. Chicago based Java EE advocate Josh Juneau covered what's coming in Java EE 8. More details on the sessions and the trip to Turkey, including slide decks and code, posted on my personal blog.

Tuesday Aug 18, 2015

A new CDI scope in Java EE 8 ?

At this stage, it is probably safe to say that a new CDI scope will be introduced in Java EE 8 as the MVC Expert Group (JSR 371) is in the process of introducing a new CDI custom scope (@RedirectScoped) to support redirect. 

The idea is simple; an MCV controller can decide to redirect a client to a specific URL, to a specific controller method. A typical example would be that an anonymous user hits a page that required to be logged; the controller will then redirect the user to a login page. To do this, the controller uses HTTP 302 ('moved temporarily') to invite the client to make a new request to a different URL, to a different controller.  That second request implies a new (and thus different) request-response cycle. And that's the 'raison-d'être' of this new @RedirectScoped scope, i.e. to allow maintaining some state between the 2 request-response cycles of a redirect. Note that this new scope is for the MVC API only. That new scope is sometime referred as the 'Flash scope'. You can see how both redirect and @RedirectScoped works here.

The great thing about this new scope is that it is just a new CDI custom scope. This is a great example on how the Java EE Platform leverages its foundation to evolve. 

And last but not least, make sure to provide feedback as JSR 371 is in Early Draft period review.

Wednesday Aug 12, 2015

Adopt-a-JSR/Java EE 8 at Istanbul JUG

The Istanbul JUG has been spinning up it's participation in Java EE 8 through Adopt-a-JSR. They have already taken an interest in MVC and JMS 2.1 with many more Java EE 8 JSRs on their radar. The Istanbul JUG is the first Turkish JUG to engage with Adopt-a-JSR and Java EE 8.

Towards this end, the JUG is hosting an event on Adopt-a-JSR to better involve JUG members. The intent of the meeting is to introduce the program and how members can participate in various Java EE 8 JSRs. The meeting will be held on August 13th, 7:30 PM at the Koc University Incubation center. Details of the meeting can be found here (the page is in Turkish and geared towards Istanbul residents).

The Adopt-a-JSR program is one the key things we are trying hard to do differently for Java EE 8 with the goal making this version of the platform one of the most community driven technologies ever developed. Here are just some of the things you could help do via the program right now:

The full details for Adopt-a-JSR/Java EE 8 is always available here. Remember that if you have any questions on any of this, you are always welcome to drop me a note.

Friday Aug 07, 2015

JSF 2.3 Early Draft Needs You!

The JSF ecosystem continues to grow even after many years in a very competitive space. JSF 2.3 aims to keep the specification strong by addressing the needs of the community in the next few years and further beyond. The JSF 2.3 specification is now gearing up for it's first early draft. The intent is to publish the early draft by JavaOne 2015. If you have an interest in JSF 2.3, this is a perfect time to get involved in helping shape the draft. The items specification lead Ed Burns has in his mind at the bare minimum for inclusion into the early draft includes:

  • Multi-component validation.
  • Java SE 8 Date and Time support.
  • f:socket tag.
  • Option to render Ajax traffic using JSON.
  • Complete CDI alignment.
  • Any other open issues.

There are many ways for you to get involved as always. You are always welcome to join the expert group proper via the JCP page for the specification. You can always simply join the discussion by subscribing to the JSF 2.3 specification user alias. If you would rather participate as a group through your JUG you can do that easily via Adopt-a-JSR.

Wednesday Aug 05, 2015

JavaOne 2015 Java EE Track Content Finalized (A Detailed Preview)

I am very pleased to share with you that the JavaOne Java EE track content is now finalized. In this brief but detail-rich entry on my personal blog, I want to take this opportunity to tell you a little bit about the track, key content and star speakers this year. The collective passion and dedication of all the folks that submitted helped us construct a very strong offering for the community at large. JavaOne is a key part of the global Java community far beyond the walls of Oracle and all of you are a large part of keeping it successful.

I hope to see you all at JavaOne. In the next coming weeks and months we will be sharing more details on the Java EE track, content and speakers at JavaOne. Lastly having been on the other side of the fence I know as much as you might come to JavaOne, it might not be a practical reality for you for a variety of good reasons. I want to remind you that we make a point to make JavaOne content openly available to all. That being said I want to tell you that you should make the pilgrimage to JavaOne at least once as a Java developer.

Tuesday Aug 04, 2015

JSON-P 1.1 Early Draft Released!

The JSR 374 Expert Group has just posted the first Early Draft of the 'Java API for JSON Processing specification version 1.1' also known as 'JSON-P 1.1 EDR1'. 

This is the first cut of the JSON-P 1.1 API that is slated for inclusion in Java EE 8. The scope of any specification might (slightly) evolve, things might be removed and/or added. For example, the support of JSON Merge Patch wasn't originaly planned when this JSR was started but it is now part of EDR1. On the other hand, support for 'Big JSON' is still being discussed but again, it's a draft, the API will still evolve. 

At this stage, it is important that you read the Javadoc and try the API to provide feedback. There are still plenty of time to adjust things so feedback is really important. To easily get started on JSON-P 1.1, you might want to check those ressources.

On a practical note, the Javadoc *is* the specification so don't look for a PDF specification document. The Early Draft period will be closed on October, 2. In the meantime, the EG is eagerly awating your feedback! As usual, comments and feedback should be sent to the JSON-P users mailing list.

Friday Jul 31, 2015

Servlet 4 Early Draft Needs You!

HTTP/2 support via Servlet 4 is one of the most significant changes coming in Java EE 8. The Servlet 4 specification is now gearing up for it's first early draft. The intent is to publish the early draft by JavaOne 2015. If you have an interest in Servlet 4, this is a perfect time to get involved in helping shape the draft. The two items specification lead Ed Burns has in his mind at the bare minimum for inclusion into the early draft includes:

  • Support for HTTP/2 server push.
  • A decision to pursue or deliberately ignore the Reactive Streams concept.
  • Any open issues on the mailing list at the moment.
There are many ways for you to get involved as always. You are always welcome to join the expert group proper via the JCP page for the specification. You can always simply join the discussion by subscribing to the Servlet 4 specification user alias. If you would rather participate as a group through your JUG you can do that easily via Adopt-a-JSR.

Wednesday Jul 29, 2015

Java EE @ Voxxed Days Istanbul 2015

Voxxed Days Istanbul 2015 was held on May 9th. This was the first large scale independent Java focused conference ever to be held in Turkey. It attracted some of the best and brightest in the Java ecosystem including Gavin King and Arun Gupta not to mention local Java luminaries like Cagatay Civici (PrimeFaces lead) and Murat Yener (Java Champion). Topics included Java SE, mobile, NoSQL, methodology and of course Java EE. Indeed Java EE had a fairly strong presence at the event. I feel very privileged to be invited to this inaugural event. While in Turkey I am very happy to say I also spoke at two of the largest Java user groups in Turkey - the Ankara JUG as well as the Istanbul JUG.

At Voxxed Days I delivered talks on WebLogic, Java EE 8 and DDD/CargoTracker + Java EE. Others covered topics such as microservices + Java EE, Docker + Java EE, JSF and WildFly. At the Ankara and Istanbul JUGs I delivered demo driven workshops on Java EE 7. More details on the sessions and the trip to Turkey, including slide decks and code, posted on my personal blog.

Monday Jul 27, 2015

Ivar Grimstad's Java EE Sessions at JavaOne 2015

For the Java EE track at JavaOne 2015 we are highlighting some key sessions and speakers to better inform you of what you can expect, right up until the start of the conference.

To this end we recently interviewed Ivar Grimstad. Ivar is a Java EE advocate, speaker, blogger and open source hacker. He is a part of the Java EE 8 MVC and Security JSRs. We wanted to talk to him about his two accepted sessions at JavaOne 2015, his expectations for JavaOne and his experiences in the JCP (click here if you can't see the embedded video):

The following are the sessions we talked about:

Besides Ivar's sessions, we have a very strong program for the Java EE track and JavaOne overall - just explore the content catalog. If you can't make it, you can be assured that we will make key content available after the conference just as we have always done.

Thursday Jul 23, 2015

Some JSF news

The JSF Team has just released 2 updates of Mojarra (JSF Reference Implementation) : Mojara 2.2.12 (release notes, download) and the 3rd milestone of Mojarra 2.3.0 (release notes, download).

Mojarra 2.3.0 will be the JSF 2.3 Reference Implementation, which is targeted for inclusion in Java EE 8. So it is clearly 'work in progress' as the JSF 2.3 specification itself (JSR 372) is currently being worked-on.

It should also be mentioned the Arjan Tijms has been recently granted committer rights on Mojarra. There is no need to introduce Arjan as he is well known in the JSF eco-system, e.g. he is one of the 'faces' behind OmniFaces. In this interview, Arajn clarifies the relation between JSF, OmniFaces and PrimeFaces. In addition to JSF, Arjan is also a very active (and vocal) EG member of the 'Java EE Security' JSR (JSR 375). “Proficiat Arjan”; it's great to see community members being so involved!

Wednesday Jul 15, 2015

Java EE @ GIDS 2015

The Great Indian Developer Summit (GIDS) 2015 was held on April 21-24 in Bangalore, with a follow-on GIDS.Mini held on April 25 in Hyderabad. GIDS is very easily the largest and most significant developer event in South Asia. Perhaps reflecting global demographic shifts in software development, GIDS may also now have become one of the largest developer conferences in the world. It was truly a privilege to be able to speak at the event and I am even more fortunate to have had a number of Java EE sessions there. While in India I am very happy to say I spoke at a couple of entirely community driven JUG events at the Madras JUG (Chennai) and the Hyderabad JUG before and after GIDS.

At GIDS and GIDS.Mini I delivered talks on JavaScript/HTML 5 + Java EE, Reactive + Java EE and DDD/CargoTracker + Java EE. The Madras JUG hosted multiple talks on the same day before GIDS. I delivered talks on the JCP, open standards and Java EE, Java EE 8 as well as Microservices + Java EE at the Madras JUG. The Hyderabad JUG hosted the official Java EE 7 Hands-on-Lab as a full day workshop after GIDS.Mini. More details on the sessions and the trip to India, including slide decks and code, posted on my personal blog.

Wednesday Jul 08, 2015

Java EE @ Java Day Tokyo 2015

Java Day Tokyo 2015 was held on April 8th. Organized by Oracle Japan, it is the largest Java developer event in the country. This was another highly successful year for the event with a fully sold out venue packed with youthful, energetic developers. Speakers included Steve Chin, Simon Ritter, Cameron Purdy and Linda DeMichiel. Topics included Java SE, Java EE, IoT and cloud. Java EE always has a strong showing at the event and this year was no exception.

I delivered talks on Domain Driven Design with Java EE using Cargo Tracker and Reactive Java EE in addition to a Java EE 7 workshop. Other Java EE sessions were on Java EE 8, CDI/EJB alignment, Java EE 7, JPA, JSF and real world Java EE adoption in addition to the official Java EE 7 Hands-on-Lab. More details on the sessions and Java Day Tokyo 2015, including slide decks and code, posted on my personal blog.

Tuesday Jul 07, 2015

JPA and Java SE 8 Streams

Retrieving a large, i.e. a very large, dataset using JPA might be tricky as the whole result set has to fit within a java.util.List instance. So a very large data set might potentially hit the memory limits of the sever the application is running on.

For those scenarios with (very) large result set, pagination can be used to work-around that limitation.  See for example this "How To Stream/Serialize JPA Result As JAX-RS Response For Large Data" article.  But for those scenarios, the Java 8 Streams API would also be a good fit! Unfortunately, Streams are not supported in the current release of JPA (JPA 2.1 - JSR 338) as it predates Java SE 8. But this is clearly a potential RFE for the next update of JPA (see this specification RFE here). In addition, some of the JPA implementations have already started to add support for Java 8 Streams (e.g. Hibernate and EclipseLink).

We will have to wait a bit more to see what the scope of 'JPA.next' will be. What do you think? Would you like to see Java SE 8 Streams supported in 'JPA.Next'?