Thursday Feb 12, 2015
By David Delabassee-Oracle on Feb 12, 2015
The flagship Java technology conference is returning to Latin America! JavaOne will take place on June 23–25 in São Paulo - Brazil.
We all know Brazilians are vocal Java supporters but clearly, this event open to all! And in order to have a strong Server-Side track, we need your support. So please make sure to submit your Java EE related proposals as soon as possible as there are only 2 weeks left to do so (the CFP is closing end of February).
Registration will open soon. For more information about JavaOne Latin America, you can check this site. Site which will be updated with more details as we get closer to the event.
Wednesday Feb 11, 2015
By reza_rahman on Feb 11, 2015
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
- 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.
Tuesday Feb 10, 2015
By David Delabassee-Oracle on Feb 10, 2015
The Java EE 7 specification (JSR 342) was finalised end of May 2013 and since then, various minors errors have been reported. Those will soon be addressed as the Java EE 7 specification will go through a maintenance release (see Linda's announcement here).
Those proposed corrections should only impact the specification document itself and not the Reference Implementation nor the TCK. So once this MR will be done and voted, the version of the specification should be Java EE 7 Rev A.
Friday Feb 06, 2015
By reza_rahman on Feb 06, 2015
JDK.IO 2014 was held in Denmark on January 19-20 at the IT University of Copenhagen. It is the yearly conference of 'JavaGruppen', the Danish JUG. The conference sessions covered a variety of Java topics ranging from core Java, Java EE, and JavaFX. Speakers included my colleague David Delabassee, Simon Ritter, Adam Bien, Heinz M. Kabutz, Bert Ertman, Ryan Cuprak, Simon Maple and Markus Eisele.
David covered the Java EE portion of the keynote. He also presented a talk on Java EE 8. His slides from SlideShare are embedded below:
My friend, fellow co-author of EJB 3 in Action, Connecticut JUG leader and JavaOne Rock Star Ryan Cuprak presented a couple of very cool sessions. The first one, titled Hybrid Mobile Development with Apache Cordova and Java EE 7 demonstrates how Java EE can be used as a very effective mobile development back-end using APIs like JAX-RS, WebSocket and JSON-P. The talk was delivered at JavaOne 2014 as a tutorial and includes an excellent end-to-end demo. Video from the JavaOne talk is embedded below:
Ryan also presented another popular talk from JavaOne 2014 - 50 EJB 3 Best Practices in 50 Minutes. At JavaOne he had co-presented the talk with my other co-author Michael Remijan. The video from that talk is embedded below:
Ryan wrote up a very nice trip report of JDK.IO on his personal blog that you should check out. Other Java EE related talks included one by Markus Eisele on Java EE 7 and Apache Camel.
Thursday Feb 05, 2015
By reza_rahman on Feb 05, 2015
As many of you know application servers like GlassFish have excellent built-in support for common authentication providers like a database or LDAP. Using these as security realms is typically just as simple as a few clicks on an admin console UI or a command (or two) using the admin CLI. But what if your authentication storage mechanism is a little more exotic? How about something really exotic like the popular MongoDB NoSQL database? Is there a way to make it work with GlassFish/Java EE security?
Not to worry - in that case you are looking at creating a custom JAAS based authentication module, configuring it with GlassFish and using it as a Java EE security realm instead of using one of the built-in choices. It's really not as scary as it sounds - Lee Chuk Munn from the Advanced Technology Applications Practice for the National University of Singapore, Institute of Systems Science shows us exactly how to do it, step-by-step. In a characteristically awesome blog post, he explains the basics of GlassFish security realms, creating a JAAS based custom authentication module for MongoDB, registering the module as a security realm and using it. Enjoy!
Wednesday Feb 04, 2015
By reza_rahman on Feb 04, 2015
One of the key Java EE 8 APIs, MVC 1.0 (JSR 371) is solidly moving forward. A key decision for the expert group to consider was whether to base the specification on Servlet or JAX-RS. MVC clearly has many semantic commonalities with both specifications such as HTTP method mapping, mime-type handling, session/request/cookie manipulation and so on. Specifications like JSF and JAX-RS are based on Servlet so it is not unnatural to base MVC on the foundational Java EE specification too. However basing MVC on the lower level Servlet specification would likely mean introducing many APIs that are potential duplicates of what is already available in the higher level JAX-RS API. On the other hand basing MVC on JAX-RS would mean significantly minimizing the possibility of API duplication. It would also mean the programming model between JAX-RS and MVC would be very similar, reducing the learning curve for both newcomers and experienced Java EE developers.
For these reasons it is not too surprising that the expert group has decided to move ahead by basing MVC on JAX-RS. MVC expert group member Ivar Grimstad shares the details including an early view on how the API may wind up looking like in a recent post. Do you have an opinion to share on this?
Tuesday Feb 03, 2015
By David Delabassee-Oracle on Feb 03, 2015
During last JavaOne, we held a Hands-on-Lab on JSR 352. JSR 352 is one of the new Java EE 7 APIs. The formal API is name is 'Batch Applications for the Java Platform' but it is often referred to as the 'Batch API'.
- Exercice 1 will introduce you the main concepts of JSR 352 such as Step, Job, JSL, etc.
- Exercice 2 will enhance the first exercise and introduce mutli-steps jobs combining Chunk step with a Batchlet step.
- Exercice 3 will cover checkpoint and the JobOperator interface which can be used to resume a failed job.
- Exercice 4 will build introduce you to listeners, a mechanism that can be used to intervene within the life-cycle of a batch job (e.g. to catch errors).
- Exercice 5 will introduce the concept of Job Partitioning, a more advanced feature of JSR 352.
Monday Feb 02, 2015
By reza_rahman on Feb 02, 2015
For those of us that have been using CDI for a while it's easy to forget that basic refreshers are extremely valuable for newcomers. Fortunately this point is not lost on current CDI specification lead Antoine Sabot-Durand. He recently finished presenting a three-part webinar covering CDI and DeltaSpike.
In the first of these webinars Antoine covered the very basics of CDI (along with some advanced features). The slides are here and the video is below:
In the second webinar in the sequence Antoine covered a few more advanced features, most notably CDI portable extensions. The slides are here and the video is below:
In the third webinar installment Antoine gave a basic overview of DeltaSpike. DeltaSpike is a very handy set of CDI plugins that all Java EE developers should we aware of. DeltaSpike very deservedly won the Duke's Choice Award for 2014. The slides are here and the video is below:
You should also check out Antoine's more forward looking JavaOne 2014 talk on CDI 2 posted here.
Friday Jan 30, 2015
By reza_rahman on Jan 30, 2015
At it's heart Java EE is a standard API and SPI for developing applications that are deployed to an application server runtime. Though some people miss this point most application servers like WebLogic and GlassFish are far more than vessels for applications. Application servers also typically provide a rich set of features geared towards scalability, security, systems integration, optimization, diagnostics, management and monitoring. The GlassFish command line interface (CLI) is a great example of just such a feature. Though many people prefer to administer GlassFish though the graphical admin console, the CLI is extremely useful for scripting administration tasks as well as potentially getting things done faster.
If you haven't explored the GlassFish CLI you should definitely take a look to get a sense of it's power and utility. Andy Pielage of C2B2 consulting has one of the best write-ups that I have seen for the GlassFish CLI. He explains the basics, offers useful insights and explores some of the most useful commands using great examples. It's a fantastic resource for getting started with the CLI.
Thursday Jan 29, 2015
By David Delabassee-Oracle on Jan 29, 2015
Wednesday Jan 28, 2015
By reza_rahman on Jan 28, 2015
There's so much going on in the Java EE ecosystem that it's very hard to stay up-to-date without getting overwhelmed. As one of the curators of this humble blog I know that all too well. For those very short of time one of the resources that can help you is the JSFCentral Enterprise Java Newscast. It is led by Kito Mann - well respected enterprise consultant, author, blogger and JSF community member. Kito has been a long time supporter of JSF with a long track record of contributing as a JCP standards group expert. The newscast is in fact part of the JSFCentral portal. In the newscast Kito and company discuss interesting recent releases, news items and upcoming events. They also tend to have fairly lively discussion on the newscast on hot topics.
Kito very kindly invited me to join the latest newscast (episode 24). We covered a wide variety of topics including Java EE 8 JSRs, Jersey, RichFaces, Infinispan, Hibernate OGM, WebLogic, Adopt-a-JSR, JavaOne videos and some of my upcoming conferences. The MP3 audio for the episode is available on the linked page. The following are some of the items I contributed (most from this blog):
Tuesday Jan 27, 2015
By David Delabassee-Oracle on Jan 27, 2015
Monday Jan 26, 2015
By reza_rahman on Jan 26, 2015
My former colleague at Oracle and fellow Java EE advocate Arun Gupta has been up to something pretty cool - what he calls "Java EE Hanginars". The idea is essentially to have a series of webinars on various Java EE topics using Google Hangout. The format is also a bit different - the idea is to be more code and Q & A centric rather than lecture centric. He gathers a set of questions from the community on the topic before the webinar for live discussion. Thus far he has had good success covering a number of topics including Hibernate OGM, OSGi, jOOQ and CI/CD using Java EE. You can find all of the webinars thus far here. For the fifth webinar in the series, it's now my turn :-).
I'll be talking about a topic that's been near and dear to me as a former Java EE architect/consultant for a while - Java EE and DDD (Domain-Driven Design). The Java EE part is probably obvious to most of you, but the DDD part may or may not be. DDD is an architectural style that strongly emphasizes reflecting the business domain in software development. Though there are some superficial similarities with the classical J2EE design patterns, in my view DDD is a cleaner, more modern and more OO centric design paradigm. Interestingly DDD concepts like the bounded context are becoming increasing important in determining sensible application partitioning amongst the microservices hype of the day. I think Java EE is actually an excellent fit for DDD (and vice versa). To demonstrate how marrying Java EE and DDD is done, I started a small side project a few years ago at Oracle named Cargo Tracker. As a nice (somewhat intended) side-effect the project is actually a good non-trivial example of a working Java EE (7) application. Do feel free to check out the linked site if this intrigues you.
During the webinar, I hope to go over a little bit of the very basics of DDD, demo cargo tracker, show some key code and answer questions. If so inclined, you could add your own questions here. The webinar will start a few minutes before 10 AM Pacific Time (PT) on Thursday January 29th. You should join live here. Hope to see you there?
Please note that any views expressed here are my own only and certainly does not reflect the position of Oracle as a company.
Friday Jan 23, 2015
By reza_rahman on Jan 23, 2015
While some people miss this point, one of the key goals of introducing CDI into Java EE was to easily enable integrating solutions outside the standard into the platform. I was recently reminded of this myself when I saw the announcement that Vaadin now officially supports CDI and Java EE.
Another great GWT based Java web framework worth checking out that works with CDI and Java EE is Errai.
Podcasts & Videos
- Servlet 4 Early Draft Needs You!
- Java EE @ Voxxed Days Istanbul 2015
- Ivar Grimstad's Java EE Sessions at JavaOne 2015
- Some JSF news
- WebSphere Liberty Now Java EE 7 Compatible!
- Using HTML 5 with JSF 2.2/Java EE 7
- Java EE @ GIDS 2015
- Java EE 7 Maintenance Release
- Java EE 7 in Production at safsms.com
- MyEclipse and Java EE 7