Wednesday Oct 07, 2015

GlassFish 4.1.1 is now available!

GlassFish 4.1.1 has just been released and despite the minor version increase, 4.1.1 is certainly not an insignificant update!

During the course of last year; we have seen specifications updates for JAX-RS (JSR 339), JMS (JSR 343), CDI (JSR 346) and WebSocket (JSR 356). Those different Maintenance Releases are now integrated in GlassFish 4.1.1. During that period, the umbrella Java EE 7 specification (JSR 342) also went through the Maintenance Release process but that revision was just about specification clarifications; so the Java EE 7 MR had technically no impact on the Reference Implementation, on GlassFish.

In this 4.1.1 release, most the underlying GlassFish components have been updated. The list below contains some of the updated components.
  • Jersey 2.21 (JAX-RS 2.0.1 aka JAX-RS 2.0 rev A) 
  • Weld 2.2.13.Final (CDI 1.2)
  • MQ 5.1.1-b02 (JMS 2.0.1)  
  • Tyrus 1.11 (WebSocket 1.1 )
  • Mojarra 2.2.12
  • EclipseLink 2.6.1-RC1
  • Grizzly 2.3.23
  • HK2 2.4.0-b31
  • JBatch Runtime 1.0.1-b09
  • JSON-P RI 1.0.4
  • etc.

Finally, it should also be mentioned that and in addition to various bug fixes, GlassFish 4.1.1 also includes several security related fixes.

You can download GlassFish 4.1.1 here and grab the source code here.

Monday Jul 13, 2015

Java EE 7 in Production at

One of the most important things to do at this stage of the life-cycle of Java EE is highlight successful adoption stories at a regular cadence. We have been doing just that for a long time through our adoption stories blog, this humble blog as well as JavaOne. In the past few months celebrated Java EE advocate and Java Champion Adam Bien has been really helping out in this regard as well through his popular blog. One of the interesting adoption cases Adam highlighted is production Java EE 7 usage at

SAFSMS stands for SAF School Management Software. It comes out of Nigeria's vibrant startup ecosystem and is a web-based application for managing school processes and student records. Currently over 200 schools are using SAFSMS. It is completely based on Java EE on the server side. SAFSMS is soon going to be offered as Software as a Service (SaaS) likely via Amazon EC2. Faiz Bashir, the key engineer behind SAFSMS, noted the simplicity, ease-of-use and productivity offered by Java EE 7 that makes it well suited to ambitious startups like his. SAFSMS utilizes GlassFish 4.x, Git, NetBeans, Arquillian and Docker. They are also considering adopting Java SE 8 and Jenkins. Faiz confidently remarked "I will choose Java EE always without any hesitation". You can read the full details of the adoption story on Adam's blog.

JavaOne 2015 was particularly good in terms of compelling Java EE adoption story session proposals that we could accept. You should start seeing those sessions show up in the live content catalog. We will of course share those stories here if you cannot come to JavaOne.

If you have a similarly great Java EE adoption story to share with the community (particularly migration stories from other technologies), please do feel encouraged to reach out. In the spirit of Java EE centric vendor neutrality, what Java EE implementation or tool set you choose does not matter at all and neither does which part of the globe you are in.

Monday Jun 08, 2015

The Ghosts of Java EE 7 in Production: Past, Present and Future

In the past few days I've seen a certain predictable group of folks on the Interwebs feigning concern over the viability of using Java EE 7 in production. I have to be honest in that I think it is fairly obvious these concerns are more -ahem- opportunistic than sincere or well-intentioned. Nevertheless I think this is a great trigger to discuss something valuable to the Java EE community anyway - Java EE 7 production adoption in the near past, present and near future.

Head over to my personal blog to read what I hope is a slightly entertaining toungue-in-cheeck but hopefully useful personal insights on the matter. I've dicussed what makes Java EE 7 important both in terms of challenge and opportunity, summarized what we know of real world Java EE 7 adoption right at this moment as well as what we can share shortly, how you can go about using Java EE 7 now and in the near future as well as a brief shot in the dark as to what wonders the future might bring for us all :-). Enjoy!

Please note that any views expressed here are my own only and certainly does not reflect the position of Oracle as a company

Monday Mar 16, 2015

Migrating a JSF Application from Spring to Java EE 7/CDI

One of the most important things to do at this stage of the life-cycle of Java EE is highlight successful adoption stories. We have been doing just that for a long time through our adoption stories blog as well as JavaOne. JavaOne 2014 was particularly good in this regard and JavaOne 2015 looks to be even better. Indeed we hope the folks with great adoption stories that submitted last year but did not get accepted will resubmit next year. We will continue to highlight some of those sessions from JavaOne 2014 in the next few months. In this vein I'd like to highlight a very interesting real world story of migrating a JSF based web application from Spring to Java EE 7 and CDI shared by Mario-Leander Reimer of QAware.

Mario's division is a small German based project consulting practice. He was tasked by a major German auto manufacturer to undertake this migration effort (it won't take most Germans much effort to figure out who this auto manufacturer might be since Mario shares that they are based in Munich). The reasons cited for the migration include streamlining/simplifying company-wide application architecture, reducing framework explosion/dependencies, standardization and reducing cost. In just about a month Mario was able to successfully migrate over the application that made extensive long-term use of Spring to CDI and Java EE 7! Mario also made use of great CDI ecosystem tools such as DeltaSpike and Arquillian (both projects have been Duke's Choice award winners, DeltaSpike being the more recent recipient). He also used PrimeFaces with JSF.

During his talk Mario highlighted his journey in learning CDI/Java EE 7 (he was previously a heavy Spring user), the parts of CDI and Java EE he really came to appreciate as well as the challenges he faced and successfully overcame. His talk highlights the ever careful balance struck between feature bloat and simplicity in a Java EE standard like CDI as well as the power of the CDI portable extensions API when you really need to break out of what CDI provides out-of-the-box. You can see Mario's awesome JavaOne 2014 presentation below (if you are having trouble seeing the embedded video it is available here).

If you have a similarly great Java EE adoption story to share, please do drop us a note (particularly migration stories from other technologies). In the spirit of Java EE centric vendor neutrality, what Java EE implementation or tool set you choose does not matter at all and neither does which part of the globe you are in.

Thursday Feb 05, 2015

MongoDB as a Glassfish Security Realm

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!

Friday Jan 30, 2015

GlassFish 4 Command Line 101

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.

Monday Jan 05, 2015

Vasilis Souvatzis's Java EE 7 Thesis Using GlassFish

Hoping all of our readers happiness, health and wealth in this first post of the year! It's an awesome stroke of good luck to be able to start the year off by sharing a pretty cool Java EE 7/GlassFish 4.1 adoption/learning story. Vasilis Souvatzis, a computer science student at the Alexander Technological Educational Institute of Thessaloniki (ATEITHE) in Greece, decided to do his thesis project on Java EE 7. He basically taught himself Java EE 7, Java SE 8, GlassFish, NetBeans and PrimeFaces with little more than what is freely available online. He is now proudly a fan of the technology stack, particularly Java EE 7.

The end result of his project is a pretty sophisticated, non-trivial working code base simulating a web-based tutorial (there aren't too many students that I know of that has those bragging rights :-)). He actually made the project available on GitHub for all to see. He demos the project in the video below he took the time to create:

The GitHub project has instructions on how to setup and explore the project yourself. He would also welcome any contributions if you are so inclined. Enjoy and don't forget to spread the word on Vasilis's hard work useful to the Java EE community if you think it is cool!

Friday Dec 12, 2014

Season's Greetings and Happy New Year from the GlassFish/Java EE Team!

On behalf of the GlassFish and Java EE team at Oracle I wish you and your family Season's Greetings and a very Happy New Year!

I am very happy to say this has been yet another busy and eventful year for us. We finished the community survey effort to help drive the agenda for Java EE 8 and GlassFish 5; we released GlassFish 4.1 with support for Java EE 7, CDI 1.2, WebSocket 1.1 and Java SE 8; we released WebLogic 12.1.3 with support for WebSocket, JSON-P, JAX-RS 2, JPA 2.1 and Java SE 8; we officially launched the Java EE 8 JSRs; we are now in the process of spinning up Adopt-a-JSR for Java EE 8. We are ever thankful for your support and we hope to continue to try our best to serve your interests, perhaps against what many would consider pretty tall odds.

In the coming year, we will look forward to working harder than ever in engaging you through our development and evangelism efforts including this humble community blog. We hope the next year will bring a far more concrete vision of Java EE 8, some early work on GlassFish 5 and a fully Java EE 7 capable version of the best-in-class WebLogic commercial offering. We will also continue our work to strengthen the broader Java EE community and align the platform with emergent forces the likes of Java SE 8, HTTP 2, JavaScript/HTML5, Reactive Programming, Microservices, Docker, Big Data and the Cloud.

As you know, I and my colleague David Delabassee are the primary maintainers of this blog with some occasional help from folks like Bruno Borges and John Clingan. Both David and I will be enjoying some well-earned time-off with our families the next few weeks. As a result the guns will be mostly quiet at this particular Java bulwark to return recharged and full force in the new year. Others on our team will continue to work hard behind the scenes towards the goals stated.

Until then, thanks and best wishes once again. We hope to see you next year!

Thursday Sep 25, 2014

Spotlight on GlassFish 4.1: #11 Enable Remote Admin

Spotlight on GlassFish 4.1' is a series of posts that highlights specific enhancements of the latest GF release, GlassFish 4.1. It could be a new feature, a fix, a behavior change, a tip, etc.

#11 Enable Remote Admin

When you unzip GlassFish 4.1, the Administration user has no password set. This was introduced quite some time ago to simplify the developer experience. For obvious security reasons, the remote admin capabilities are also disabled. So the default Admin user is 'admin' and its password is empty.

To enable remote Admin, you should first define a password for the admin user and then enable remote admin. The trick is that the change-admin-password command is asking the admin password, in that case you should leave it empty.

./asadmin change-admin-password 
Enter admin user name [default: admin]> [leave it empty to use the default value]
Enter the admin password> [make sure to leave this field empty]
Enter the new admin password> myNewPassword
Enter the new admin password again> myNewPassword
Command change-admin-password execute

You can enable the securre-admin.

./asadmin enable-secure-admin
Enter admin password for user "admin"> [fill in the new password you have defined]
You must restart all running servers for the change in secure admin to take effect. Command enable-secure-admin executed successfully.

And just restart the domain and you are all set!

./asadmin restart-domain domain1

The 'empty admin password' is mentionned in the initial page of the first chapter of the Administration Guide.

Monday Sep 08, 2014

Why Join the JavaOne GlassFish Community Events?

If you are active in the GlassFish community, you probably already know about the GlassFish community events that take place on the Sunday that kicks off JavaOne San Francisco. The event has long been the rallying point for the GlassFish community at JavaOne.

This year, the events are taking place from 10:00 AM to 11:45 AM. Our agenda is grouped into two separate sessions with a brief break in the middle:

To add to these sessions to your schedule, follow the session links above to the JavaOne Content Catalog and use the Schedule Builder widget on the top right hand side.

If you are a GlassFish user or even just a friend, this is the most important JavaOne event that you really should not miss, and for good reasons:

  • Learn the insider's view of Java EE 7, Java EE 8, GlassFish 4.1, GlassFish 5, community, success, metrics and roadmap for the future from none other than GlassFish product manager John Clingan himself.
  • Get a chance to listen to and interact directly with the Oracle Executives responsible for Java EE and GlassFish during the GlassFish Executive Panel.
  • Hear success stories from real world Java EE/GlassFish users and get to ask them your questions. This year Mohammed Taman will be sharing the story of the first known real world deployment of Java EE 7 on GlassFish 4. Mohammed will tell us about a highly innovative and important project he helped develop for the United Nations High Commissioner for Refugees (UNHCR) and the World Food Program (WFP). The project won the Duke's Choice Award for 2014.
  • Learn about the coolest features included in GlassFish from the GlassFish engineers themselves. This year key GlassFish engineer Martin Mares will be sharing the details on the GlassFish extensible command line framework.
  • Meet key members of the Oracle GlassFish team and community including Advocates, Architects, Java EE spec leads, and Product Managers.
  • Attending the event is one of the strongest ways you can show your support for GlassFish and Java EE under Oracle, get your voice heard and help shape the future.

Note that this is a JavaOne Sunday User Group session, so you will need a JavaOne pass to get in. Like all JavaOne events, there is a limited amount of registrants allowed for the session, so if you think this is something that is worth your while, you would be wise to pre-register via the JavaOne Schedule Builder as soon as possible.

Do check out the details for the event on the JavaOne Sunday Community Events Page, including the agenda, timings, panel question ideas, participant bios and story outlines. There's also the details on how to join the evening after-party.

You should also consider attending the GlassFish Birds-of-a-Feather session and a Birds-of-a-Feather session I am holding with the London GlassFish User Group on contributing to GlassFish - especially if you cannot make it on Sunday.

Thursday Aug 07, 2014

Java EE 101 Using GlassFish 4 and NetBeans

While a lot of folks (our team included) spend most of their efforts spreading the good word on Java EE 7 and now increasingly Java EE 8, sometimes it helps to get back to the basics. This is especially true for beginners to Java EE and GlassFish. This point is fortunately not lost on Andrew Pielage of C2B2 consulting (the good folks that run the London GlassFish user group). In this extremely well written blog post Andrew explains step-by-step how to write, deploy and run a very simple web application using GlassFish 4 and NetBeans. He uses Windows in his instructions and I know that will actually be helpful to many of you since most corporate desktop environments still standardize on Windows.

If you know someone who could benefit from the nicely done entry, do make sure to share it. As such, there's few write-ups out there that are so basic and yet so incredibly helpful to the right person.

Monday Jun 23, 2014

Please Join FishCAT, GlassFish 4.0.1 Community Acceptance Testing

As many of you may already be aware, the GlassFish team has been diligently working on the upcoming 4.0.1 release. The overall goals of GlassFish 4.0.1 is very specific and focused:

  • JDK 8 certification.
  • Fixing high priority bugs, especially potential Java EE 7 compatibility gaps.
  • Hardening security and fixing security bugs.
  • Incorporating updates to all GlassFish components such as Mojarra, Jersey, Grizzly, OpenMQ, HK2, EclipseLink, JAXB, Weld and so on. These updates contain mostly bug fixes and some new features.

Our team has been talking about the 4.0.1 release at various venues:

  • GlassFish product manager John Clingan did an extensive interview with Adam Bien on the future of GlassFish - check out the interview text here.
  • I (Reza Rahman) did a GlassFish community open round table with the London GlassFish User Group - check out video here.
  • My colleague David Delabassee held a GlassFish BoF recently at Devoxx UK.

Steve Millidge of the London GlassFish User Group very recently shared his thoughts on 4.0.1, the future of GlassFish and community contributions.

Many of you may also be aware of FishCAT. It stands for the GlassFish Community Acceptance Testing program. Through the program community members can help test early builds of GlassFish before the final release. Contributing to GlassFish through the FishCAT program is one of the easiest, most valuable and most effective ways in helping the Java EE and GlassFish communities move forward. We are now launching FishCAT for GlassFish 4.0.1. You can find the details for FishCAT for GlassFish 4.0.1 here.

The voice of the community has always been important to us and we need your help. Please do consider donating some of your time to the FishCAT program.

Thursday May 29, 2014

GlassFish/Java EE Community Open Forum Tomorrow!

Still have lingering questions on the goals and future of GlassFish? Want to know a little more about the upcoming GlassFish 4.0.1 release? Something on your mind about Java EE 8/GlassFish 5? You have a golden opportunity to pose your questions and speak your mind tomorrow!

The good folks over at C2B2 have gone through a lot of time and effort to organize a very useful online event for the London GlassFish User Group - they are having me answer all your questions online, in real time, "face-to-face". Steve Millidge of C2B2 will be moderating the questions and joining the conversation. Did I mention the event was online, free and open to anyone?

The event is tomorrow (May 30th), so make sure to register as soon as possible through the C2B2 website (the registration page has more details on the event). It will be held at 4:30 PM BST / 11:30 AM EST / 8:30 AM PST - you must register to participate. Hope to talk to you tomorrow?

Tuesday May 27, 2014

Java EE/GlassFish Adoption Story by Kerry Wilson/Vanderbilt University

Kerry Wilson is a Software Engineer at the Vanderbilt University Medical Center. He served in a consultant role to design a lightweight systems integration solution for the next generation Foundations Recovery Network using GlassFish, Java EE 6, JPA, @Scheduled EJBs, CDI, JAX-RS and JSF. He shared his story at the JavaOne 2013 Sunday GlassFish community event - check out the video below:

Kerry outlined some of the details of the implementation and emphasized the fact that Java EE can be a great solution for applications that are considered small/lightweight. He mentioned the productivity gains through the modern Java EE programming model centered on annotations, POJOs and zero-configuration - comparing it with competing frameworks that aim towards similar productivity for lightweight applications. Kerry also stressed the quality of the excellent NetBeans integration with GlassFish and the need for community self-support in free, non-commercial open source projects like GlassFish. You can check out the details of his story on the GlassFish stories blog.

Do you have a Java EE/GlassFish adoption story to share? Let us know and we will highlight it for the community.

Friday May 23, 2014

GlassFish 4.0.1 Update

The GlassFish team would like to give an update on the GlassFish Server Open Source Edition 4.0.1 (GlassFish 4.0.1) release that we have been diligently working on.  GlassFish 4.0.1 plans include:

  • Bug fixes. This release will, or course, incorporate the many bugs fixes that have already been addressed in the trunk since GlassFish 4.0. We continue to work hard fixing bugs as we head towards release.  Oracle is committed to delivering a high quality development experience with GlassFish! 

  • Refresh component libraries.  GlassFish 4.0.1 plans to use updated versions of many sub-projects it relies on, like Jersey, Tyrus, Mojarra, JavaDB, and more. These projects bring their own set of bug fixes and even some incremental features.

  • Java 8 certification. The latest and greatest JDK.

  • Java EE 7 SDK Update.  Bundles GlassFish 4.0.1 and tutorial updates to improve your Java EE 7 learning experience. 

  • NetBeans 8.0.1 alignment. GlassFish and NetBeans together offer a seamless Java EE development experience. We are planning to align our respective roadmaps to deliver GlassFish 4.0.1 with NetBeans 8.0.1.

Oracle is committed to delivering a high quality development experience with GlassFish! 

From a scheduling perspective, we'd like to go into JavaOne 2014 with GlassFish 4.0.1 on your hard drive and/or in your cloud.

We'll see you at JavaOne 2014!