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.

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.

Monday Aug 10, 2015

Help Recognize Java Community Process (JCP) Heroes!

An open standard like Java/EE involves a lot of hard work from a lot of different groups of people. The hard work of these people, largely selflessly, benefit countless developers. For specification leads the work in the JCP is often far beyond just a job. I have seen the same to be true of many vendor experts on a specification. Especially admirable are the independents that contribute to specifications largely on their own time as well as Adopt-a-JSR participants. The annual Java Community Process awards is a small way of recognizing some of these great people and their work. This year's award nominations are now open - you should read the details here. There are four different awards:

  • JCP member or participant of the year
  • Outstanding specification lead
  • Most significant JSR
  • Outstanding Adopt-a-JSR participant

The awards will be presented at JavaOne 2015. These are the nominations I have personally made already:

  • Josh Juneau (for outstanding Adopt-a-JSR participant)
  • Arjan Tijms (for JCP member of the year)
  • Adam Bien (for JCP member of the year)
  • David Blevins (for JCP member of the year)
  • Ivar Grimstad (for JCP member of the year)
  • Antoine Sabot-Durand (for outstanding specification lead)
  • Manfred Riem and Santiago Pericas-Geertsen jointly (for outstanding specification lead)
  • CDI 2 (for most significant JSR)
  • MVC 1.0 (for most significant JSR)
Are there others that deserve nomination this year? If so, please don't hesitate to submit the nomination yourself using the very straightforward form. The form is only open until August 17th, so please do hurry!

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.

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.

Tuesday May 05, 2015

Java EE 7 Maintenance Review Draft

The Java EE 7 Platform Specification (JSR 342) is currently going through a maintenance release process. If you check the proposed changes, you will see that this update is really about clarifying the specification itself; none of the proposed changes will impact the Java EE 7 RI nor the TCK. So clearly, only the specification itself will be slightly impacted.

It seems that a consensus has now been reached amongst the Java EE 7 Experts Group over the proposed changes and if everything goes well, the update will soon be submitted to the JCP to formally initiate the Maintenance Review process. 

Monday Apr 13, 2015

A Preview of Java EE @ GIDS 2015

The Great Indian Developer Summit (GIDS) 2015 will be held on April 21-24 in Bangalore, with a follow-on GIDS.Mini to be 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 is truly a privilege to be able to speak at the event and I am even more fortunate to have a number of Java EE sessions there. While in India I am very happy to say I will also be speaking at a couple of entirely community driven JUG events at the Madras JUG (Chennai) and the Hyderabad Java user group before and after GIDS.

Below are a preview of my talks at GIDS:

  • Using JavaScript/HTML5 Rich Clients with Java EE 7: This is my thus far extremely popular and well-received talk on using Java EE 7 as an effective back-end for JavaScript/HTML5 rich clients. If this is a development model that interests you, the talk should give you some valuable tools to get started. Although I use AngularJS for my examples, the basic participles from a Java EE 7 perspective apply to any JavaScript/HTML5 or native/hybrid mobile client. The slides for the talk are on SlideShare while the demo code is on GitHub. Besides Bangalore, I will be repeating this talk in Hyderabad for GIDS.Mini.
  • Reactive Java EE - Let Me Count the Ways!: This is one of my newest and thus far also extremely popular and well-received talks. It explores how Java EE 7 APIs like JMS, MDB, EJB @Asynchronous, JAX-RS/Servlet/WebSocket async, CDI events and Java EE concurrency utilities along with Java SE 8 features such as lambdas and Completable Futures work to align the platform with the reactive movement. The slides for the talk are here.
  • Applied Domain-Driven Design Blue Prints for Java EE: This talk essentially introduces the Cargo Tracker project. In the talk I cover the very basics of DDD, discuss how DDD constructs apply to Java EE and show how the mapping can be done using Cargo Tracker. The slides for the talk are here.

  • I am very honored that the Madras JUG and Hyderabad JUG invited me to speak to their members while in India for GIDS and very proud that I was able to accept. The GIDS organizers were very gracious in extending their goodwill to support the community. Both the JUGS in Madras and Hyderabad have arranged all day events in slightly different formats, which is awesome.

    The Madras JUG will host multiple talks on the same day. I will be delivering the opening keynote as well as a technical session. For the keynote I will be delivering my thus far very well-received talk titled Why Open Standards and Java/EE Matter. In the talk I will discuss the basic value proposition of open standards like Java and Java EE in maintaining a healthy, competitive, multi-vendor ecosystem. The slides for the talk are here. For the technical talk, I'll be delivering the latest update on Java EE 8. Besides covering the current state of Java EE 8 I also cover how you can get involved in the process including through highly inclusive programs like Adopt-a-JSR. The slides for the Java EE 8 talk are also on SlideShare. The Madras JUG event will be held before GIDS and the details for the event are here.

    The Hyderabad JUG is hosting the Java EE 7 Hands-on-Lab as a full day workshop. This is essentially our flagship lab/workshop at the moment covering Java EE 7. It has always proven popular so far and it is a great way to get some hands-on experience with Java EE 7. The Hyderabad JUG event will take place after GIDS.Mini and the details are here.

    Hope to see you in India soon during at least one of these events? As always never hesitate to reach out to me if there is something I can help with or if you have a question. I'll bring along some Java/Java EE goodies you are welcome to :-).

    Wednesday Mar 18, 2015

    Java EE Management API 2.0 (JSR 373) Spins Up

    As most of you know the initial wave of Java EE 8 JSRs have been underway for a little while now, including the platform JSR itself, CDI 2, JSON-B, JMS 2.1, Servlet 4, JAX-RS 2.1, MVC and JSF 2.3. Three more Java EE 8 JSRs have been more recent additions - Java EE Security, JSON-P 1.1 and Java EE Management 2. The Java EE Management API 2 (JSR 373) had been the last of these to truly spin up and I am happy to report that it too has now gone fully into high gear under the leadership of specification lead Martin Mares. Though the initial expert group has already formed, you should still feel free to join as an expert if you want - just go to the JSR page linked above to nominate yourself.

    Although it does not seem to get as much press thus far, this JSR is actually potentially one of the most interesting and useful parts of Java EE 8. For those familiar, it is essentially a modernization of the very dated "J2EE Management" (JSR 77) API. The intention of the old API was to allow for managing all kinds of resources on an application server - JMS resources, JDBC resources, JCA resources, JavaMail resources, drivers, deployment artifacts, EJBs, Servlets, servers, domains and so on. For various reasons the JSR saw limited success - some have argued that the API was overly complex, abstract and cumbersome. It certainly seems dated today as it is largely centered on EJB remote interfaces.

    The new management API is a great chance to take a fresh look at the problem domain using an updated tool-set. Unlike JSR 77, the new API will make use of REST, SSE and potentially WebSocket. For those familiar with the popular GlassFish REST management interface, we can reasonably expect to see something similar. From an industry standpoint, this means being able to work with all Java EE 8 application servers using a uniform, predictable cross-platform API from all kinds of tools from simple HTTP command-line clients to Chef and Puppet, whether on the cloud or on premise. Though not strictly part of JSR 77, the new management API is also slated to handle deploying artifacts instead of simply managing/monitoring them, which is also extremely useful (for the curious, this was the domain of another very dated relatively obscure API -  "J2EE Deployment" or JSR 88).

    Note that you can always participate in a JSR without officially being part of the expert group by simply subscribing to the JSR user alias. In case of Java EE Management API 2.0 that alias is users at javaee-mgmt dot java dot net - go to the Java EE Management API 2.0 java.net project page to subscribe. Also remember that you can always contribute on an even more lightweight format through Adopt-a-JSR.

    Wednesday Feb 11, 2015

    Java EE @ Java2Days 2014

    Java2Days 2014 was held on November 17-19 in Sofia, Bulgaria. It is far and away the largest Java conference in the Balkans region and now perhaps one of the most important conferences in Europe as a whole. This was another great year for this rapidly growing, vibrant event. It attracted a host of international and local speakers including Arun Gupta, Geertjan Wielenga, Roberto Cortez, Ivan St. Ivanov, Andy Gumbrecht and Andrew Lombardi. Topics included Java SE, Java EE, HTML5/JavaScript, mobile, OSGi, IoT and the cloud. I am extremely grateful that the organizers invited me again this year and very glad that I was able to accept.

    Java EE had a strong showing this year:

    • What's Coming in Java EE 8 - me
    • Nuts and Bolts of WebSocket - Arun
    • Java EE 7 Hands-on Lab - Arun, Ivan and me
    • Apache Tomcat to Apache TomEE in 1-n Steps - Andy Gumbrecht
    • Java EE 7 Batch Processing in the Real World - Roberto and Ivan
    • Coding for Desktop and Mobile with HTML5 and Java EE 7 - Geertjan
    • JavaScript/HTML5 Rich Clients Using Java EE 7 - me, Ivan
    • Forge and Arquillian Hands-on Lab - Ivan, me
    • Why Open Standards and Java/EE Matter (to You) - me

    More details on the sessions and Java2Days, including the slide decks, video and code, posted on my personal blog.

    Thursday Jan 22, 2015

    Java EE @ JMaghreb 2014

    JMaghreb 2014 was held on November 4-6. Organized by the Morocco JUG, JMaghreb is one of the largest Java developer conferences in North Africa. This was yet another brilliant year for the conference. Speakers included Patrick Curran, Werner Keil, Johan Vos, Mohamed Taman, Hazem Saleh, Paul Bakker, Romain Manni-Bucau, Abdelmonaim Remani, Simon Ritter, Angela Caicedo and Mike Milinkovich. Topics included Java SE, Java EE, JavaFX, HTML5/JavaScript, mobile, NoSQL, OSGi, Big Data and the cloud. I am extremely grateful that the organizers invited me and very glad that I was able to accept.

    I delivered talks on open standards/the JCP, aligning the JavaScript ecosystem with Java EE 7, aligning Java EE with Reactive Programming and Java EE 8. More details on the sessions and JMaghreb, including the slide decks and code, posted on my personal blog.

    Thursday Jan 08, 2015

    Initial milestone of JSF 2.3

    The JSF Expert Group has started to work actively on the next version of the JSF specification (JSF 2.3 - JSR 372) that is slated for inclusion in Java EE 8.  We are still far from the planned date for the finalisation of the specification but we can already see progress as they are being made.  The initial milestone of Mojarra (JSF Reference Implementation) has just been released (download it here).  The Release Notes describes the bugs fixed but also the new features introduced in this milestone.  And from that list, we can see that a lot of focus is put around improving the JSF/CDI integration.

    So despite the fact that we are in the early days of JSF 2.3, it is already possible to test some of the new features.  And since Mojarra is open source, it is also possible to use, at any time, the current Mojarra snapshot.  Josh Juneau who is a JSF 2.3 EG member has written a post explaining how to build Mojarra directly from the sources.  So feel free to give JSF 2.3 a(n early) try and provide feedback, this is important for the evolution of the JSF specification. 

    We have the usual fine print to conclude, we are still far from the finalization of JSF 2.3, a lot of things will evolve and this is clearly 'work in progress' but transparency is important!

    Wednesday Dec 10, 2014

    Adopt-a-JSR for Java EE 8 Spinning Up

    As some of you may be aware, Adopt-a-JSR was a very innovative JUG-led program that was initiated during the later parts of the Java EE 7 time-frame. The goal of the program is to make it as easy as possible for rank-and-file Java developers to contribute to the JCP through their local Java User Groups. By all accounts the program was successful as to a good number of JUGs adopting Java EE 7 JSRs. However we should aim a lot higher for Java EE 8 and Adopt-a-JSR. There is no reason not to hope that every major JUG worldwide should adopt at least one Java EE 8 JSR. Indeed although it is still very early a number of JUGs have already committed to helping with defining the next major revision of the platform including the London Java Community, Egypt JUG, Morocco JUG, the Japan Java User Group, Java Hellenic User Group and many others.

    The Java EE/GlassFish team, JCP folks like Heather VanCura and the JUG community itself is trying to do as much as we all can to ensure the success for Adopt-a-JSR for Java EE 8:

    • We put together a page dedicated to Adopt-a-JSR for Java EE on glassfish.org. This page should be your first stop if contributing to Java EE 8 JSRs via the program interests you. We will make a point to keep the page up-to-date throughout the life-cycle of Java EE 8.
    • Heather, spec lead Ed Burns, JUG leader Mohamed Taman and I presented a talk on Adopt-a-JSR for Java EE at JavaOne 2014. Heather covered the Adopt-a-JSR program at a high level, Ed talked about the program from the perspective of a spec lead while Mohamed covered the adopter perspective. I finished by talking about Adopt-a-JSR in the specific context of Java EE 8. Video of the talk should be available soon and we will highlight it here as soon as we can.
    • Both I and Patrick Curran highlighted the program during our keynotes at JMaghreb and Java2Days (stay tuned for trip reports).
    • Heather has been and will continue to organize meetings (especially with spec leads) to keep promoting Adopt-a-JSR. Most recently Heather hosted an open meeting with Java EE 8 platform spec lead Linda DeMichiel. Heather blogged about the meetings here and posted the slides. The next meeting will be on December 19th at 10 AM Pacific time with Ed Burns and Manfred Riem, so stay tuned (details on how to join the meetings are on Heather's post).
    • Java EE/GlassFish author, speaker and advocate Josh Juneau is leading a meeting on Adopt-a-JSR for his local Chicago JUG in January.

    You can help us too by spreading the word on Adopt-a-JSR to your local JUG. If you are interested, never hesitate to reach out as always.

    Thursday Nov 27, 2014

    JSR 375: Java EE Security API

    Java EE has been used to develop and run enterprise applications securely since years.  Obviously, Java EE and its containers are just parts of the global security equation. When we zoom at the Java EE layer, we see that some of the security capabilities are backed into the specification while others security features are proprietary and specific to the different Java EE implementations.  Sometime, some of the security capabilities are also external add-on's (e.g. 3rd party libraries).  Security is not a self-contained matter as interactions between different components are often required (e.g. a Java EE Application Server needs to interact with an LDAP server).  Things also change when we go from an on-premises deployment to a cloud based deployment.  Finally, portability is never simple when it comes to security.

    Java EE needs to evolve to stay relevant and clearly, if we look at the feedback from the Java EE 8 Community Survey, security is an area that could be improved.  And that is the goal of JSR 375 (Java EE Security API) which has just been submitted to the JCP for review.  JSR 375 is slated for inclusion in Java EE 8, its initial scope is based on the community survey feedback, on issues and RFEs filled against the Java EE specifications, on various exchanges EG members had overtime and also on various informal discussions we had during conferences, etc.

    The JSR proposal gives a more detailed overview of what it will try to achieve.  In short, JSR 375’s goal is to simplify, standardize, and modernize the Security API across the platform in different area.

    • User Management: Standardization of a ’user service’ API which would enable an application to perform user management operations (e.g. create a user). The ‘user service’ would rely on a ‘user source’ which would be an abstraction of a physical user store (e.g. LDAP, data-bases, etc.).  The user service would be configurable to match the deployment requirements.
    • Password Aliasing: Standardization of syntax for pointing (alias) to passwords stored in a (secure) password repository.  This password repository might then be bundled with an application (e.g. think cloud deployment).
    • Role Mapping: Definition and standardization of a ‘role service’ API that would enable an application to perform various role mapping operations (e.g. querying a group role).  This would be done via different role mappers (e.g. LDAP, files) that would be adaptable based on the environment’s needs.
    • Authorization: Definition of a new CDI interceptor annotation that would be used to preform application-domain rules at the method level.
    • Authentication: Several enhancements are also planned around authentication (e.g. the ability for a web application to offers different authentication methods).

    This is the just of overview of the initial scope. In addition, the Experts Group will also have to look at how some of the Java EE orthogonal technologies (e.g. CDI events, Expression Language, etc.) can be leveraged in order to simplify the use of those new APIs.  To know more about this JSR, make sure to read the JSR 375 proposal. You can also watch the replay of the "Java EE 8 Overview" that Linda DeMichiel gave during JavaOne as she has touched some of those ideas during her talk.

    JSR 375 has entered the JCP review period; the next step should then be the approval ballot period. And if it passes this ballot, the Experts Group will be formed and the real works (and discussions) will start!   So we are just at the beginning of this effort but it’s nice to see the different pieces of Java EE 8 being put in place...

    Wednesday Nov 26, 2014

    JMS2 + JCP @ Chicago JUG

    On September 4th, I spoke at the Chicago Java User Group on both JMS 2 as well as the basics of the JCP program. Spearheaded by the very capable likes of Freddy Guime and Bob Paulin the Chicago JUG has grown to become one of the most important Java User Groups in the world - both in terms of size, importance and impact. I am proud to say this is my second time to the JUG - a few months ago they had me speak on Java EE 7. My visit this time was very generously sponsored by Jay Zimmerman of the No Fluff Just Stuff (NFJS) tour. NFJS has always made an effort to support Java User Groups around the US.

    I started the evening out with my JMS 2 talk (slides below). I also covered some of the possibilities for JMS 2.1.

    I spent the last half-hour or so giving a very high level overview of the JCP program. I essentially borrowed Heather VanCura's slides (my own slides on the topic are rather old and developed when I was still an independent). Heather's slides can be found on SlideShare. The Chicago JUG has a very active interest in contributing to the JCP, which is why they had me speak on the topic. In fact with some help from US based Java EE/GlassFish advocate Josh Juneau they will soon be adopting one or more of the Java EE 8 JSRs via Adopt-a-JSR. The Java EE community is very lucky to have Josh's presence in the greater Chicago area. Josh is already an incredibly prolific author and blogger - it is awesome to see him become more prominent as a speaker as well including at JavaOne 2015 (and of course at his own local Chicago JUG).

    It was great to be at the Chicago JUG and I hope to return sooner rather than later to the Windy City!

    Monday Sep 22, 2014

    Meet the Java EE 8 Experts at JavaOne

    During JavaOne, you will have many occasions to discuss with different Java EE Specification Leads or other key Java EE staff:

    This year, we have also arranged a Meet the Experts area. It is a designated space in the JavaHub where most of the Specification Leads will be present at a dedicated time (see schedule below). Oracle's Java EE Evangelists and Heather VanCura from the JCP will also be present. It will be the ideal place to carry on informal conversations about Java EE8. Also, keep in mind that the various Expert Groups are being formed so it is also the perfect time to ask what it takes to join an EG!

    Monday, September 29 (Dedicated pavilion hours: 1:30-2:30 PM)

    10-11 AM  Bruno Borges  Adopt-a-JSR for Java EE 8, any Java EE 8 technologies
    11-12 PM  Martin Grebac  JSON-B
    12-1 PM  Kin-man Chung  JSON-P and EL
    1-2 PM

     Marek Potociar

     Pavel Bucek 

     JAX-RS 2.1

     WebSocket 1.1

    2-3 PM  Linda DeMichiel  Java EE 8
    4-5 PM  Reza Rahman  Adopt-a-JSR for Java EE 8, any Java EE 8 technologies

    Tuesday, September 30 (Dedicated pavilion hours: 1:30-2:30 PM)

    10-11 AM  Heather VanCura  JCP/JCP.Next (JSR 364), Adopt-a-JSR
    11-12 PM  Martin Mares  Java EE Management
    12-1 PM  Nigel Deakin  JMS 2.1
    1-2 PM  Reza Rahman  Adopt-a-JSR for Java EE 8, any Java EE 8 technologies
    2-3 PM  Ed Burns, Shing Wai Chan  JSF 2.3 and Servlets 4.0
    4-5 PM  Marek Potociar  JAX-RS 2.1

    Wednesday, October 1 (Dedicated pavilion hours: 2:00-3:00 PM)

    12-1 PM  Brian Oliver  JCache
    1-2 PM  David Delabassée  Adopt-a-JSR for Java EE 8, any Java EE 8 technologies
    2-3 PM  Manfred Riem  MVC 1.0 and JSF 2.3