Yearly Archives: 2013

GlassFish Commercial is Dead, WildFly and JBoss EAP to the Rescue

I, along with several others, spent 6+ years at Oracle creating and nurturing the GlassFish community. ~852 blog entries on blogs.oracle.com/arungupta/tags/glassfish vouch for that. I still remember when our team got a presidential award at Sun Microsystems for growing the downloads from 0 to 5 million in 3 years. I was also popularly known as “GlassFish Guy” all around the world. Lots of fond memories …

left Oracle and joined Red Hat a little over 4 weeks ago. Even though we have a competing (better 😉 project in WildFly and product in JBoss EAP but will always have high respect for GlassFish. It is the Reference Implementation as required by JCP and so by design will be always at the leading edge of technology. One of common myths I had to unravel all the time was that GlassFish can be used as a production application server because Sun/Oracle offered commercial support for it.

This was changed by Oracle’s announcement to abandon commercial support for GlassFish. Specifically …

Oracle will no longer release future major releases of Oracle GlassFish Server with commercial support – specifically Oracle GlassFish Server 4.x with commercial Java EE 7 support will not be released.
Commercial Java EE 7 support will be provided from WebLogic Server.

This means GlassFish will continue to be at the leading edge of technology (hopefully) but is now merely reduced to a toy. You can use GlassFish as a reference to ensure your code is using pure Java EE 7 APIs but any production deployments should seriously think twice before considering it as a choice of application server. This is also expressed by Antonio Goncalves:

GlassFish will stay open source. Yes, but with no commercial support it will not be used in organizations

Earlier today GlassFish plugin for Eclipse was removed from java.net. I suspect we’ll continue to see more news items like this making GlassFish truly for reference only.

This also means that today there are no vendors offering commercial support for Java EE 7 applications. Johan Vos from Lodgon jumped on the opportunity and offered commercial support for GlassFish. Johan (disclaimer: a great friend) is extremely knowledgeable about the internals and the codebase so he would be your good bet in case you want production support.

This decision from Oracle makes business sense as having two application server from one company is always confusing. This is the reason Sun (unfortunately) could not survive and Oracle will. David Blevins explained wonderfully in his post that open source isn’t free. In addition to WildFly, TomEE is the only open source application server that is now commercially supported by Tomitribe.

The announcement also said:

Oracle recommends that existing commercial Oracle GlassFish Server customers begin planning to move to Oracle WebLogic Server, which is a natural technical and license migration path forward

This would again make sense from Oracle’s perspective, at least for license, but not so much from customers or community perspective. Forester research analyst John Rhymer was quoted on that:

Folks that prefer GlassFish as their Oracle-supported production Java server now are looking at a big rise in costs

Agreed that Java EE is the common binding thread between the two application servers and there is some support for deployment descriptors across the two application servers. But that’s where the connection stops. Migrating an application from GlassFish to WebLogic is like migrating from one application server to another application server, and InfoQ agrees with that. They even said:

This needs more planning and effort, compared to moving to GlassFish with commercial support, or switching from WildFly to JBoss EAP. 

Deployment descriptor interoperability is good to get started with but Markus Eisele explained in his blog entry R.I.P. GlassFish – Thanks for all the fish.:

Even that both WLS and GF understand at least a bit of each others deployment descriptors there is a high risk buried in here that such a setting is the road to trouble.

Even if there is a knowledge of deployment descriptors but is that how the application will go into production as well ? What if support for GlassFish deployment descriptors is dropped from WebLogic ? Migrate again ?

Oracle also talks about shared code between GlassFish and WebLogic. If applications are built using standard Java EE APIs then the underlying implementations does not really matter much. Anyway most migration effort is associated with monitoring, management, clustering, and administration which is completely different between the GlassFish and WebLoigic servers. Customers estimating the level of effort to migrate away from GlassFish have the same analysis to perform for WebLogic or JBoss Enterprise Application Platform. Antonio also highlighted this aspect:

WildFly and JBoss have the same code base, GlassFish and Weblogic don’t (and that makes a huge difference between RedHat and Oracle app servers)

Commercial GlassFish customers who want to explore a migration to WebLogic will need to evaluate the cost of both code and license migration. Oracle has not announced any license credit or reduced upgrade pricing for commercial GlassFish customers considering migration to WebLogic. The latest Oracle price list dated October 17, 2013 lists the per processor price of GlassFish at $5,000 and WebLogic Server Enterprise Edition at $25,000, you do the Math!

JBoss EAP calculator helps you compare ongoing subscription cost of JBoss EAP and upfront license and ongoing support/maintenance costs of WebLogic and WebSphere. As shown in the EAP calculator there is 92% savings using JBoss EAP over WebLogic over 3 years.

6 Facts blog talk about WebLogic is not always more expensive than Oracle GlassFish Server. The blog seems correct on the cost analysis but it does not mention that WebLogic Standard Edition does not offer any clustering and failover capabilities. That also makes the Standard Edition that much less attractive an offering. You get what you pay for!

WildFly is the bleeding edge innovation engine for Red Hat and JBoss EAP allows customers to consume open source with ease. If you are looking for an open source application platform with commercial support from a large vendor, then your only choice is Red Hat.

We are open and this is also stated in a very objective opinion from Sharat Chander (a great friend and my ex-colleague):

 

Here is one tweet that I saw after the announcement and we’ll continue to see more of these …

What can you do ?

  • WildFly 8 is getting ready to be released and is passing ~99% TCK for Java EE 7 compliance. Make sure to try your applications on WildFly and report any bugs. Tech Tip #1 shows how to get started.
  • Watch a Deep Dive into WildFly 8 and Java EE 7 webinar to learn more about WildFly 8.
  • Download JBoss EAP and try your applications on it. You can always reach out to Red Hat Consulting if you need help with migration efforts.
  • Try your Java EE 6 applications on OpenShift (deployed on JBoss EAP 6) or Java EE 7 applications using WildFly cartridge.

Red Hat and I are here to help!

Red Hat moments at Devoxx

Complete set of pictures from Devoxx 2013 are available in this flickr album. Lets meet some of the Red Hatters and community members from the conference and learn about them.

Meet Guillaume Scheibel (@g_scheibel) and ask him anything about Hibernate OGM. This is how you’ll add support for NoSQL to your Java EE applications.

Some of the best technical strategist in middleware are at Red Hat, check out Jeremy Brown (@tenforty) on the right corner…

This is how we welcome Devoxxians (@RedHatEvents)…

Meet Eric Schabell (@ericschabell) and ask him anything about any integration or BPM products at JBoss, particularly JBoss BRMS and Drools …

Meet Gavin King, the man who was the specification lead for Contexts and Dependency Injection and now Ceylon…

Meet Tim Fox (@timfox) and ask him anything about reactive functional and polyglot programming using Vert.x …

Meet Burr Sutter (@burrsutter) and ask him anything about JBoss Tools and how to bring your enterprise and mobile together using AeroGear …

Meet Jason Porter (@lightguardjp) and ask him anything about JBoss Developer Framework, rapid Java EE app development using JBoss Forge, text-based document authoring using AsciiDoc, testing your enterprise applications in a container-independent way using Arquillian …

Ask Emmanuel Bernard (@emmanuelbernard) anything about Hibernate, Hibernate OGM, Ceylon, his podcasts – JBoss Community Asylum and Les Cast Codeurs …

And this me …

Ask me anything about Red Hat, JBoss, Java EE 7, WildFly, community engagement, speaking opportunities, or anything that comes to your mind :)

There were a lot more Red Hatters at Devoxx and you can check out some more pics in the following album:

Notes from Java EE meetup at Devoxx

Devoxx provides a great opportunity for the key Java EE players to meet and discuss topics of interest. With the recently released Java EE 7 platform this year’s Birds of Feather session goal was to collect feedback on Java EE 7, ideas and wishes for Java EE 8, and any thing else that would encourage wider participation from the community.

David Delabassee (Oracle), David Blevins (Tomitribe), Peter Pilgrim (independent), Johan Vos (Lodgon), several JUG leaders, and other interested community members were present in this meetup. And of course I was there too!

Here are my notes from the discussion:

  • Feedback on Java EE 7: JCP 2.9 allowed different Java EE 7 JSRs to run transparently. Each project had a xxx-spec.java.net project (e.g. javaee-spec.java.net) and encouraged participation from the wider Java community. Interim spec drafts and API jar files were made available on the project Downloads area (e.g. javaee-spec downloads). Adopt-a-JSR allowed 20+ JUGs around the world to help shape up Java EE 7 platform.
  • API and Specification source: The source files of the API classes and source of the specification needs to be checked into the workspace. This will enable interested members to play with the API classes and provide alternative proposals. A text-based format (e.g. AsciiDoc) for the specification source is strongly preferred. This will allow community members to provide concrete proposals for specific sections from the specification. This will also help the specification lead to easily merge the submitted proposals in the existing specification. A git-based repository is strongly preferred as it enables and encourages collaboration. For example, source code for CDI API classes is available here and the text-based specification here. If  git-based repository cannot be created then a mirror between the existing repository and git must be established.
  • TCK should be open-sourced: A JSR consists of three components: Specification, Reference Implementation, and TCK. The specification is released under a fairly standard license. However as discussed above the source for API classes and specification needs to be made more publicly available. The Reference Implementations are released under an OSI-approved license. IBM led JSR 352 and the TCK is available under Apache License 2.0. Similarly Red Hat led JSR 346 and 349 and the TCK is available under Apache License 2.0. However TCKs for Oracle-led JSRs are available under this license (similar ones for other specifications). Open sourcing the TCK has been discussed multiple times in the past and Oracle already offers TCK to non-profits like Apache and Eclipse Foundation at no charge. However this still seems a last bit of “closed” piece in the otherwise fairly open and transparent process. TCK tests can also serve as extremely valuable resource for the developers to learn the technology. Adam Bien’s SmokeTests and Java EE 7 samples are turning out valuable resources for the developers and container implementors in lack of an open source TCK.A later discussion with David Blevins (founder of Tomitribe) revealed that it is very important to have TCK from the very beginning in order to implement the container and pass compliance eventually. Otherwise significant parts of the container need to be rewritten, as was done for Apache Geronimo, to get compliance. Open sourcing the TCK would certainly allow Tomitribe to work towards Java EE 7 compliance as well.
  • Testing: 90% of the attendees were using Arquillian for testing their apps against single/multiple containers. There was no need felt to file a JSR and standardize it as that could possibly stunt the innovation in this area.
  • Making contributions easier: Steps to contribute a patch to the Reference Implementation should be clearly listed. This is not restricted to but can typically include how to checkout and build workspace, high-level package overview, run smoke tests, steps to add new tests.
  • Potential topics for Java EE 8: Simpler security, standalone CDI, Action-based framework, Event-driven system, standard way of achieving high availability on application server, ability to generate native mobile apps with a Java EE backend.

All in all, Hildeberto Mendonça summarized in three words “Because we care” on why the attendees showed up for the 7pm BoF. If you do care, get involved!

WildFly 8 is getting dressed and Candidate Release 1 is now anyday!

 

Java EE 7 Hackergarten @ Devoxx 2013

What is Hackergarten ?

Hackergarten is a craftmen’s workshop, classroom, a laboratory, a social circle, a writing group, a playground, and an artist’s studio. Our goal is to create something that others can use; whether it be working software, improved documentation, or better educational materials. Our intent is to end each meeting with a patch or similar contribution submitted to an open and public project. Membership is open to anyone willing to contribution their time.

hackergarten-logo

In short, changing the open source world, one commit at a time!

And that’s what we did at Devoxx 2013 yesterday. Several of us got together in the back of a room, did a poll on what technologies everybody is interested in, gathered around the tables, and started hacking right away!

I was coordinating a team that helped create Arquillian tests for Java EE 7 samples. It was pretty amazing that most of the folks stayed from 9:30am – 5pm, without any break. We had lots of interesting discussions, tons of information exchange on how Java EE 7 work, how Arquillian enables to write container-independent tests and run them in a managed or remote environment easily, how to file bugs on JCP specs, and much more.

Here are some pictures from the event:

   
   

Here is the state of samples repo the morning of hackergarten:

devoxx2013-github-before-hackergarten

And here is the state the morning after hackergarten:

devoxx2013-github-after-hackergarten

As you can see the repo got:

  • 5 new contributors
  • 63 new commits
  • 10 more forks

And to give a slightly better idea of what we did in the hackergarten, here is a pulse of samples repo in the last 24 hrs:

devoxx2013-hackergarten-pulse

This to me, summarizes the power of hackergarten.

Many thanks to @aslakknutsen, @radcortez, @pdudits, @alexishassler, @g_scheibel, @xcoulon, @lightguardjp and many others who helped in making this successful. Even @jfarcand participated remotely in this hackergarten and contributed a new sample.

Of course, this was not possible without Andres Almiray‘s initiative!

A Jenkins job is running on cloudbees and will hopefully generate a consolidated test report on WildFly soon.

The whole experience completely blew away my expectations and I’m truly learning the power of Red Hat’s spirit of “Community Powered Collaboration”.

The formal conference starts in a few hours, and I better get my run in before that. Come talk to me and lets talk you can help with this effort.

See you there!

 

Java EE 7 University at Devoxx 2013

Antonio and I gave a What’s New in Java EE 7 Platform University Session at Devoxx 2013 earlier today. The room was pretty big and almost 90% full. We basically took our “50 tips for Java EE 7 in 50 minutes” from JavaOne 2013 and explained each feature with a lot more code samples. We both really enjoyed sharing our passion with the attendees and think highly interactive attendees also had fun. At least that’s what ~98 tweets asked during the session indicate.

The slides from the session are available:

Java EE 7: Whats New in the Java EE Platform @ Devoxx 2013

And all the code samples used in the talk are available at github.com/arun-gupta/javaee7-samples.

And here are some sample tweets from during/after the session:

 

 

 

 

 

And last but not the least:

If you want to learn more about Java EE 7, we’d love to see you at the Hackergarten tomorrow. Help us write tests for these samples and learn some WildFly, GlassFish, and Aquillian skills. Aslak Knutsen, the Arquillian man, will be there himself. And then we have our Java EE 7 hands-on lab on Wednesday, 14:00 – 17:00.

Enjoy some pictures from the event so far …

 
 
   

And the evolving album so far …

I hope to meet lots of you. See ya at Hackergarten tomorrow, 9:30 by back wall of the exhibitor hall!

One session at #Devoxx 2013

I had an interesting time getting into Antwerp. Almost didn’t made it after the only Lufthansa flight from Cluj-Napoca to Munich got cancelled because of technical problems. We were asked to unboard the flight but luckily the flight technicians fixed the problem. So we boarded again and here I’m sitting in my hotel room on the eve of Devoxx 2013. Thank you Lufthansa for your promptness and allowing me to participate in a top-notch conference!

devoxx13-mainpage

With 195 speakers and 200 presentations at Devoxx 2013, there is a lot to choose from. I believe “hallway track” is the best as that allows you to engage with the best developers in the world. Most likely that’s how I’m going to spend my time at the conference and anyway all these sessions will be available on parleys.com later. Anyhow, here is my list of one session that I’d like to attend, if I want to, during each timeslot:

Monday
9:30-12:30: AngularJS end to end by Igor Minar and Misko Hevery
1:30-4:30: Java EE 7: Whats New in the Java EE Platform University by Antonio Goncalves, David Delabassee, Arun Gupta (of course!)
16:45 – 17:15 From Legacy to Cloud in Under an Hour – Live Coding by David Gageot
17:25 – 17:55: Discover the Zen of Writing (Ascii)Docs by Dan Allen
18:05 – 18:35: A hint of NoSQL into My Java EE by Guillaume Scheibel
20:00 – 21:00: Apache Cassandra BOF by Hayato Shimizu

Tuesday
All Day: Java EE 7 Hackergarten by Hackers and Arun Gupta
9:30 – 12:30: Lambda Programming Lab by Stuart Marks, Angela Caicedo, Simon Ritter
13:30 – 16:30 The Modern Java Developer by Matt Raible
16:45 – 17:15 JUnit PowerUp: Practical Testing Tips by James McGivern
17:25 – 17:55 OpenShift Primer: Get your Applications Into the Cloud by Eric Schabell
19:00 – 20:00 HTTP 2.0/SPDY and Jetty in Depth by Simone Bordet and Thomas Becker
21:00 – 22:00 No So Secrets of REST API Versioning by Stephane Rondal

Wednesday
9:30 – 10:15: Devoxx Welcome and Announcements
10:15 – 10:55 Java8 and Beyond Keynote by Mark Reinhold and Brian Goetz
10:55 – 11:30 Java, Chess, and the Internet of Things by Stephen Chin, Richard Bair
12:00 – 13:00 How to do Kickass Software Development by Sven Peters
13:10 – 13:25 Patterns Shmmaterns by Chet Hasse
13:35 – 13:50 HTTP Caching in Practice by Xavier Coulon
14:00 – 17:00 Java EE 7 Hands-on Lab by Antonio Goncalves, Arun Gupta (of course!)
If not giving the lab, then would like to attend:
14:00 – 15:00 What Java EE can learn from Dynamic Languages ? by Remi Forax
15:10 – 16:10 Introducing Vert.x 2.0 – Taking polyglot application to the next level by Tim Fox
16:40 – 17:40 The Curious Case of JavaScript on the JVM by Attila Szegedi
17:50 – 18:50 Push, Mobile & Cloud Oh My! by Burr Sutter
19:00 – 20:00 Java EE Gathering by David Delabasse
20:00 – 21:00 WildFly Application Server – Community BOF by Dimitris Andreadis

Thursday
9:30 – 9:40 Movie and Practical Info
9:40 – 10:20 Shaping the future of Web Development by Lars Bak
10:50 – 11:50 Programmers are Way Cooler Than Musicians by Gert Beevin
12:00 – 13:00 Java EE 7’s Java API for WebSocket by Arun Gupta (of course)
Otherwise would love to attend: A real-time Architecture using Hadoop and Storm by Nathan Bijnens
13:10 – 13:25 Asciidoctor: Because writing docs does not have to suck by Andres Almiray
13:35 – 13:50 Intoducing Forge 2 by Koen Ars
14:00 – 15:00 Building an Application with Backbone.js by Tim Branyen
15:10 – 16:10 JavaPosse LIVE by Dick Wall and Chet Haase
16:40 – 17:40 MongoDB for JPA Developers by Justin Lee
17:50 – 18:50 Devoxx4Kids Best Practice by Daniel de Luca, Regina ten Bruggencate, Roy van Rijn
19:00 – 20:00 Lessons Learned from Devoxx4Kids by Daniel De Luca, Konrad Malawski, Roy van Rijn, Tasha Carl, Linda van der Pal
20:00 – 21:00 JUG Leaders BOF by Mattias Karlsson, Marijn Verburg, Stephan Janssen
20:00 – 22:00 Devoxx Movie
22:00 – … Noxx

I’m leaving Friday early morning and so didn’t care to look through the schedule. There are no lunch/dinner/social breaks in this schedule, so in all practicality I’ll not be able to meet it. And guess that’s why its a wish list!

Don’t feel bad if your session is missing from this list. This is likely because I’ve already seen it at some other conference, familiar with the topic, or probably more interested in the topic listed above … nothing personal 😉

Any suggestions if I’m missing any particularly good session ?

BTW, JBoss/Red Hat has a big contingent at Devoxx and giving lots of interesting sessions!

And most imporantly, please feel free to reach out and talk to me. I’d hate to miss the opportunity to talk to you!

And lets wait to see if we see any naked men in the keynote now 😉

devoxx13-nakedman

Lets Devoxx!

Java EE 7 at Transylvania JUG

Transylvania JUG is now Java EE 7 ready!


(picture by Constantin Pârțac, more pics in his album)

I connected with Gabriel Pop (JUG leader) at QCon London earlier this year and we have been working on dates since then. I’m so glad it finally worked out. The session was scheduled for about 2 hrs but ~130 attendees were having fun and went for an hour beyond that. This was all the more impressive given that it was a weekday.

Their logo is indeed one of the best ones

I walked through lots of Java EE 7 samples and enjoyed the interaction with the attendees. I used a mix of WildFly 8 beta 2 snapshot (get started now) and GlassFish 4 to run different samples. The walkthrough included the following samples:

  • websocket/whiteboard
  • batch/chunk-csv-database
  • batch/chunk-partition
  • batch/listeners
  • jms/send-receive
  • cdi/bean-discovery-all
  • cdi/vetoed
  • concurrency/managedexecutor
  • jaxrs/jaxrs-client
  • jaxrs/async-client
  • jaxrs/async-server
  • json/streaming-parser
  • json/object-parser
  • jta/transaction-scope
  • validation/methods
  • javamail/definition

Slides are, well slides, code is king! :-) IMHO, this is the best way to understand Java EE 7.

Is your JUG interested in getting a similar session for Java EE 7 ? Drop me a note or leave a comment on this blog.

In this country of Nadia Comăneci, it was pretty impressive to see that 30-40% of the attendees were women. And somebody in the audience even made a comment “Women in Romania are smarter than men” 😉 This was very inspiring for me as typically the female attendees are far lower in number.

About 90% of the attendees use some open source technology in their daily life. But only ~6 contribute back. I’m not surprised by that because that is a very typical ratio. David Blevins has written an excellent post on why All Open Source communities need your support. I highly encourage you to read it. Open Source is very much the DNA of Red Hat. jboss.org has plenty of projects that provide you an opportunity to get involved. I highly encourage you to pick a project and start contributing – bugs, patch, docs, feature, anything goes a long way!

Romania is a very running friendly country. Constantin introduced me to a local night 10k  and so I signed up for that. I met some members of local Road Runners club and we instantly connected. Java community is the best and allows me to meet from developers all around the world. We instantly start talking same language, same issues, get into our religious battles. Running community very much mimics that 😉

I enjoyed the course so much that I went back for another 10 miler this morning.

Check out some pictures from the trip:

   
 
   

And the complete album:

I also spent some time clean up github.com/arun-gupta/javaee7-samples in order to prepare for Devoxx Hackergarten. I’d love to see you there!

J-Fall 2013 Report

1 day, 32 sessions, 4 hands-on lab, 1200 developers, 41 speakers = AWESOME J-Fall 2013! There probably was no better way to celebrate the 10th anniversary of this conference.

This was my third J-Fall (2009 and 2011) and the numer of attendees and overall quality of this conference has improved significantly every time.

The conference started for me at Schiphol where I met Sharat Chander from Oracle. The long ride from the airport to Nijkerk gave us lot of time to catch up with my recent ex-colleague. The speakers’ dinner in the evening was very enjoyable and helped with fighting the jetlag.

The very first session was a talk by Jaap ter Woerds on Building scalable network applications with Netty. The talk gave a quick introduction to Netty and showed a sample application built using it. The slides are available. You can always reach out directly to the speaker or to Norman Maurer – core developer of @netty_project.

My very first talk of the conference turned out to be a replacement talk because of a “missing speaker”. The slides are available:


Getting Started with WebSockets and Server-Sent Events
from Arun Gupta

Twitter feedback seems to indicate that ~60 attendees enjoyed the talk. This session is recorded and should be available on parleys.

The second talk was about code-drive introduction to Java EE 7. This talk used Java EE 7 Samples and explained the new/major improvements to the platform. Here are the specific samples explained in the talk:

  • websocket/whiteboard
  • batch/chunk-csv-database
  • json/streaming-generate
  • concurrency/managedexecutor
  • jms/send-receive
  • jaxrs/jaxrs-client
  • cdi/bean-discovery-annotated

All of these samples were created using GlassFish and work on WildFly Beta2 Snapshot (build your self as explained in Tech Tip #1) as well. This session should be available on parleys as well.

The afternoon was packed with the Java EE 7 hands-on lab using NetBeans/GlassFish to about 25 attendees. The latest lab content is always available at github.com/arun-gupta/javaee7-hol. A WildFly version of this lab will is already being worked upon.

And here is my twitter list of the people I met: @BertBertman, @BertBreeman, @Sharat_Chander, @javafxpert, @steveonjava, @hansolo_, @pbakker, @sander_mak, @lucasjellema, @reginatb38, @momatwork, @Bogaart, @tgrall, @JavaWithMarcus, …

Check out some pics …

   
 
 

And the complete album at:

Luxembourg JUG and JAX London Report

My first speaking engagement at Red Hat started with the visit to a new country – Luxembourg, one of the richest in the world and my 37th!

About 85+ JUG members got introduced to Java EE 7 in a typical slide-free code-driven session. The power of Java EE 7 was quite evident as there was about 20% more than usual attendance. WildFly Beta 1 and GlassFish 4 were used to showcase different samples. This also shows the Write Once Deploy Anywhere (WODA) capabilities of the platform. All samples used in the talk are available at github.com/arun-gupta/javaee7-samples.

The visit got arranged after I hooked up with Nick Mpallas on twitter. He showed very warm hospitality during the short visit and I enjoyed learning about JBoss ecosystem from him. I’m pretty impressed by his prompt pull request to add Arquillian support to Java EE 7 samples.

Enjoy some pictures from this visit:

This was followed by a speaking engagement at JAX London. This is my third visit to this annual conference by S&S Media. (2011 Fall, 2011 Spring). I spoke on two different topics and their slide decks are available:


Java EE 7: Boosting Productivity and Embracing HTML5
from Arun Gupta

 


Getting Started with WebSockets and Server-Sent Events
from Arun Gupta

There were ~50 attendees for the platform talk and about ~35 for the WebSocket talk.

In addition, I also spoke at my very first GlassFish Users Group, London meetup as part of JAX London Community Night. Interactive audience and slide-free code-driven introduction to Java EE 7 kept the session entertaining. This was organized by C2B2 Consulting Group who are independent middleware experts based in London. This entire session was recorded and is available:

I had an opportunity to spend some time with Richard Warburton from jClarity – JVM performance analysis and tooling company. They are using Vert.x across different VMs to gather data. Vert.x is a lightweight, high performance application platform for the JVM that’s designed for modern mobile, web, and enterprise applications. More details on vert.x would be available in a subsequent blog but in the meanwhile learn all about jClarity’s usage of Vert.x in this brief interview with Richard:

I also talked briefly with jaxenter.com on my move to Red Hat, wild popularity of the Java EE 7 platform, on what attracts me to JAX London year over year. That interview is also available:

Enjoy some pictures from this visit:

 
 

O’Reilly had a booth and was able to sell most of the best-selling Java EE 7 Essentials copies. But you can always order your own from amazon.com or shop.oreilly.com. I’ve seen O’Reilly.com offering discounts on a regular basis so keep checking. Alternatively attend one of my Java EE 7 hands-on lab at any conference and the first one to complete all the exercises gets a copy from me 😉

And the complete album:

Now on my way to JFall, Transylvania JUG, and Devoxx!

JFall, Transylvania JUG, and Devoxx

Barely back from an exciting trip to Luxembourg JUG and JAX London, and now heading back to Europe again!

This time to JFall, Transylvania JUG, and Devoxx!

nljug-logo

JFall is an annual conference organized by Netherlands JUG (NLJUG). The conference is free for the JUG members after they’ve paid annual subscription. At about 1000+ attendees  (limited by the venue) the conference is a big hit for the local attendees.

I’ll be giving two sessions at JFall 2013 (Nov 6):

  • Java EE 7 Hands-on Lab
  • Code-driven introduction to Java EE 7

I seem to have an odd year cadence with JFall. My first two trips in 2009 and 2011 were with Oracle, and now this year as Red Hat.

This is then followed by a visit to Transylvania JUG in Romania (Nov 7).

transylvania-jug-logo

Looking forward to meet Romanian developers and hopefully sneak a visit to Dracula Castle 😉

And concluding this trip with one of the finest Java conferences:

devoxx_logo

  • Java EE 7: What’s New in the Java EE Platform (11/11)
  • Java EE 7 Hands-on Lab (11/13)
  • Java EE 7’s Java API for WebSocket (11/14)

Read more about why Devoxx is pretty unique. Even though other conferences have taken cues from here over the years but there are still quite a few items that make Devoxx what it is!

Looking forward to meet friends and make new friends!

Feel free to ask me any thing about WildFly or suggest a Tech Tip that needs to be written.

Where will I see you ?

Java EE 7 Sessions from JavaOne 2013

Oracle has released first batch of sessions from JavaOne 2013 on parleys.com.

I gave a few Java EE 7 sessions and couple of them are now available:

Several other Java EE sessions are released in this batch:

  • Architecting Enterprise JavaFX 8 Applications (by Adam Bien)
  • Demsytifying Java EE (by Adam Bien)
  • Java Persistence API 2.1 (by Linda DeMichiel)
  • JSR 356: Inside the Java WebSocket API (by Danny Coward)
  • JMS, WebSocket, and the Internet of Things (by David Witherspoon and Prashant Khanai)
  • REST Security by JAX-WS (by Frank Kim)

And some of my favorite ones:

  • Building Modular Cloud Applications in Java (by Bert Ertman and Paul Bakker)
  • Home Automation for Geeks (by Kai Kruzer)
  • Is it a Car ? Is it a Computer ? No, Its a Raspberry Pi JavaFX Informatics System (by Simon Ritter, Tom Angelucci, Aleksander Belokrylov)

Thank you Oracle for releasing these sessions rather quickly! Looking forward to the next batch now.

Java EE 7 Implementations in WildFly (Tech Tip #3)

WildFly Beta 1 has been available for some time now. Tech Tip #1 shows you how to get started with it. Have you tried it ?

Wildfly_logo

This tip will inform you of where all the different Java EE 7 component implementations are coming from:

Component JSR Implementation
Java API for WebSocket 356 Undertow (lightweight Web server for WildFly)
Java API for JSON Processing 353 Used from GlassFish
Concurrency Utilities for Java EE 236 Used from GlassFish
Batch Applications for the Java Platform 352 jberet
Java API for RESTful Web Services 339 RESTEasy rest-easy-logo
Java Message Service (JSR 343) 343 HornetQ hornetq
Contexts and Dependency Injection 346 Weld weld-logo
Bean Validation 349 Hibernate Validator hibernate-validator-logo
Java API for Persistence 338 Hibernate hibernate-logo
Java Connector Architecture 322 IronJacamar iron-jacamar-logo
Java Transaction API 907 Narayana naryana-logo
JavaServer Faces 344 Used from GlassFish
Expression Language 341 Used from GlassFish
Servlet 340 Undertow
Enterprise JavaBeans 345 WildFly
Java API for XML-based Web Services 224 JBossWS jbossws-logo (Apache CXF is default)

 

And in case you are wondering, here is a pancake diagram that shows how these technologies fit together:

javaee7-pancake

Have you tried any of the implementations by itself ?

Java EE 7 Samples (Tech Tip #2)

Where do you find a comprehensive list of Java EE 7 samples ?

github.com/arun-gupta/javaee7-samples
WebSocket (31 samples for JSR 356)
chat
websocket-client-programmatic
endpoint
javase-client
endpoint-singleton
httpsession
encoder
parameters
injection
endpoint-config
binary
encoder-programmatic
websocket-client
endpoint-programmatic-injection
endpoint-programmatic
properties
endpoint-programmatic-async
endpoint-async
websocket-vs-rest
websocket-client-programmatic-config
websocket-client-programmatic-encoders
subprotocol
messagesize
endpoint-programmatic-config
websocket-client-config
whiteboard
endpoint-partial
endpoint-security
endpoint-programmatic-partial
encoder-client
endpoint-javatype
JAX-RS (25 samples for JSR 339)
server-sent-event
server-negotiation
readerwriter-json
moxy
invocation
readerwriter
filter-interceptor
client-negotiation
jsonp
link
singleton-annotation
resource-validation
mapping-exceptions
request-binding
interceptor
invocation-async
jaxrs-endpoint
async-client
dynamicfilter
singleton-application
async-server
filter
beanvalidation
jaxrs-client
readerwriter-injection
JSON Processing (4 samples for JSR 353)
object-reader
streaming-parser
object-builder
streaming-generate
Batch Processing (14 samples for JSR 352)
batchlet-simple
multiple-steps
listeners
chunk-optional-processor
flow
chunk-exception
split
chunk-mapper
chunk-simple-nobeans
chunk-partition
chunk-checkpoint
chunk-simple
chunk-csv-database
decision
Java Message Service (4 samples for JSR 343)
jmscontext-cdi
send-receive-simple
send-receive
temp-destination
Contexts & Dependency Injection (16 samples for JSR 346)
bean-discovery-all
alternatives
extension-impl
bean-discovery-none
scopes
nobeans-xml
bean-discovery-annotated
vetoed
beanmanager
extension
decorators
built-in
interceptors
beansxml-noversion
pkg-level
exclude-filter
Concurrency Utilities for Java EE (4 samples for JSR 236)
managedscheduledexecutor
managedexecutor
dynamicproxy
manageablethread
Java Persistence API (15 samples for JSR 338)
jndi-context
schema-gen
locking-pessimistic
entitygraph
native-sql
listeners
schema-gen-scripts-external
criteria
storedprocedure
multiple-pu
locking-optimistic
pu-typesafe
native-sql-resultset-mapping
schema-gen-scripts-generate
schema-gen-scripts
Servlet (13 samples for JSR 340)
metadata-complete
protocol-handler
async-servlet
servlet-security
cookies
nonblocking
form-based-security
resource-packaging
file-upload
servlet-filters
web-fragment
error-mapping
event-listeners
Java Server Faces (18 samples for JSR 344)
resource-handling
components
simple-facelet
contracts
radio-buttons
http-get
contracts-library
composite-component
bean-validation
flows-programmatic
flows-simple
flows-declarative
file-upload
ajax
passthrough
flows-mixed
server-extension
viewscoped
Java Connector Architecture (2 samples for JSR 322)
connector-simple/connector
connector-simple
Enterprise Java Beans (6 samples for JSR 345)
embeddable
lifecycle
timer
stateless
stateful
singleton
Java Transaction API (4 samples for JSR 907)
user-transaction
transactional
transaction-scope
tx-exception
Bean Validation (2 samples for JSR 349)
custom-constraint
methods
JavaMail (1 sample for JSR 919)
definition
Expression Language (1 sample for JSR 341)
standalone
Extra
quartz
NoSQL
neo4j
voldemort
riak
oracle
cassandra
couchbase
redis
hbase
mongo
twitter-search

In addition, you can also read the Java EE 7 Tutorial or a complete reference guide in Java EE 7 Essentials.

Most of the samples work on GlassFish 4 and some need some further research. I’ve started trying them on WildFly Beta 1 as well. If the samples don’t work or you’d like to see an additional sample, please file an issue.

Java EE 7 at Luxembourg JUG and JAX London

After new hire orientation at Red Hat earlier this week, my first public speaking engagement  is going to be at Luxemboug JUG (Oct 28).

yajug-javaee7-oct2013-large

You’ll get to hear all about Java EE 7 in full glory!

I plan to use a mix of JBoss Tools and NetBeans from tooling perspective. And GlassFish and WildFly Beta 1 and GlassFish for runtime. Here are couple of pointers:

This is my first trip to Luxembourg and so looking forward to it!

jaxlondon2013-logo

The next country on this trip will be London. It starts with a couple of sessions at JAX London on (Oct 29):

  • Getting Started with WebSocket and Server-Sent Events using Java
  • Java EE 7 Platform: Boosting Productivity and Embracing HTML5

Here are other Red Hat talks at JAX London:

  • OpenShift Primer: Get Your JBoss Into the Cloud
  • Introducing Vert.x 2.0 – Taking Polyglot Application Development to the Next Level

Finally it concludes with a code-driven introduction to Java EE 7 at JAX London Community Night (Oct 29). This talk is at the GlassFish User Group and organized by C2B2 Consulting.

Make sure to register for this free event.

Here is one of my favorite pics from JAX London 2011:

Where will I see you ?

Getting Started with WildFly (TechTip #1)

Wildfly_logo

JBoss Community hosts ~100 projects focused on integration, business rules, processes, NoSQL, cloud, mobile, polyglot, messaging, tooling, alternative development frameworks and more. WildFly (nee JBoss Application Server or JBoss AS) is undoubtedly the most popular project in this community.

This Tech Tip will show how to get started with WildFly.

  • JDK7: WildFly requires JDK 7. So if you do not have it already installed on your machine then download your platform-specific package for JDK 7 U45 and install.
  • Binary or Source Bundle: Download WildFly 8.0 Beta1 binary.You can also download associated source code and build it yourself too!
  • Operation Mode: WildFly has two modes of operation: Standalone and Domain. In Standalone mode, a single instance of WildFly server is started. WildFly Domain mode allows you to control and configure multiple instances.Standalone WildFly instance can be started as:./bin/standalone.shIt displays a message like:

    And now you can watch the following page at localhost:8080:

    tt1-wildfly-welcome

And that’s it!

Now you are running WildFly on your machine. Lets see what are the key features of WildFly 8:

  • Java EE 7 support – At this point all user facing APIs have been implemented, more on this in a subsequent blog.
  • Fast Startup: Server started in about 5 seconds.
  • Small Footprint by minimizing GC pauses and starting/stopping service on demand.
  • Modular Design by loading classes on demand using JBoss Modules. OSGi 4.2 support is available out-of-the-box.
  • Unified Configuration and Management available from polished user-friendly web console, Java and HTTP APIs, and CLI. Only three ports are exposed in beta 1 (8080 for applications and 9990 for management, and the third port 9999 will be deprecated) by multiplexing protocols.

Here are some handy useful resources to take your WildFly experience to the next level:

  • Release Notes
  • Documentation
  • Glossary
  • WildFly project page
  • WildFly issue tracker
  • WildFly user forum
  • WildFly wiki
  • WildFly source

Want to learn more about WildFly ? Watch Introduction to WildFly webinar by Jason Greene and Stuart Douglas.

I built the source code on my machine (with no .m2 directory) and saw the following message:

How long it takes on your machine ?