blank
Reza Rahman - Professional Homepage
blank Home Home | Navigation Site Map blank Resume | Projects | Blog | Downloads | Links | Contact

My ramblings on Java EE, Java SE and the crazy World of technology in general.

Monday, June 27, 2016

JSON-B Public Review Draft Now Available

The JSON-B (Java API for JSON Binding) specification has recently released a public review draft. For those unaware, JSON-B is one of the key APIs slated to be included in Java EE 8. It is a very high level declarative, annotation-based API for processing JSON. Java EE 8 is also scoped to include an important revision of the lower level JSON-P (Java API for JSON Processing) specification.

These two APIs together are extremely important in making JSON a first class citizen of the standard Java platform, just like JAXP (Java API for XML Processing) and JAXB (Java API for XML Binding) did many years ago for XML. With these two APIs in place Java developers can simply think of JSON as yet another Java serialization format. No more third party libraries and no more configuration - things will simply work out of the box when it comes to processing JSON. In my view these APIs are so critical they should indeed be moved to a modular Java SE release, much like JAXB and JAXP are already a part of Java SE.

You can download and take a look at the draft specification from the JCP site. A release of the reference implementation is also available here, complete with Maven coordinates. You should also note the read-only GitHub mirror. If you are looking for a gentler introduction, the best resource is a slide deck from specification lead Dmitry Kornilov (click here if you can't see the embedded slide deck).


You should do your part demonstrating first hand that JSON-B is a critical standard for Java - by engaging actively. Here are the many ways you can engage (most of this comes directly from the Adopt-a-JSR page I drafted while still at Oracle):
  • You can join the specification itself as an expert or a contributor. You can do that via the JCP page for the specification.
  • You can have your JUG officially support the standard through Adopt-a-JSR.
  • You can simply join the discussion without any ceremony by subscribing to the JSON-B specification user alias.
  • You can share ideas and feedback, possibly by entering issues in the public issue tracker.
  • You can read the public draft specification now.
  • You can try out the reference implementation now.
  • You can write or speak about JSON-B now.
  • You can encourage others to participate.
The next step is up to you. You can be a real part of Java's ongoing success yourself instead of simply being a passive consumer. If you have any questions I am happy to try to help - just drop me a note any time.

Sunday, June 26, 2016

JBoss EAP 7 Brings Red Hat Commercial Support for Java EE 7

JBoss EAP 7 has recently been fully Java EE 7 certified. For most developers this essentially represents serious commitment from Red Hat towards commercial support for Java EE 7. As many of us know WildFly (the upstream community project for JBoss EAP) was one of the earliest Java EE application servers to get certified against Java EE 7. There are already numerous publicly known adoption stories for Java EE 7 on WildFly. However lack of Red Hat commercial support for WildFly had been a show-stopper for many - particularly very large enterprises. JBoss EAP removes this hurdle and is bound be to a further boost to Java EE 7 adoption. Indeed in my view JBoss for many years has ranked as one of the best Java EE implementations with one of the most adoption. That said one of the most valuable characteristics of Java EE is the rich implementation choices it offers (and hence the freedom from vendor lock-in).

JBoss EAP 7 joins the Java EE 7 compatible ranks of GlassFish 4, WildFly, WebSphere Liberty Profile 8.5, WebLogic 12.2.1, Hitachi Cosminexus and TmaxSoft JEUS. All of the Java EE certified offerings are always listed on the official Java EE compatibility page. For some perspective few other open standards such as SQL have as many available implementations as Java EE 7 already has (and this is bound to only just keep getting better).


Under the hood JBoss EAP 7 is the same core runtime as WildFly 10. Here is the download link for JBoss EAP 7. You can try it for free although you will need to register with the site (you don't need to do that with WildFly). Unlike WildFly there is also a GUI installer that is not too cumbersome and does make customized setup easier.

To test things out I ported over the demo code for my Java EE 7 testing talk using Arquillian to JBoss EAP 7. The porting process was very trivial and the overall experience was great. Like most modern modular Java EE application servers startup, shutdown, deployment and undeployment was blazing fast - in the order of seconds (in fact many of my integration tests finished in less than a second!). One of the things that I felt was a strong point for GlassFish was it's mature administration features. JBoss and WildFly seem to be catching up fast both with their CLI (command line) and GUI admin console. The JBoss EAP console was genuinely impressive.

Overall I definitely recommend taking JBoss EAP 7 for a spin perhaps using my demo code (the demo code comes with setup instructions). If you haven't tried out vanilla Java EE code in a while the demo may be an eye opener for you in terms of simplicity, power, productivity and ease-of-use.

Sunday, May 15, 2016

Introduction to the JCP by Heather VanCura at the Philadelphia JUG

On May 11th the Philadelphia JUG held it's third successful meeting after the leadership changing of the guard. We were very proud to host my former Oracle colleague Heather VanCura who gave an excellent talk introducing the Java Community Process (JCP). All the details for the talk are here. You should note that the Philadelphia JUG is now on meetup.com. This follows in the footsteps of many other JUGs and is a timely transition to a very capable platform. The JUG is now also on Twitter.

Heather's talk was very well received at the JUG. A number of JUG members expressed interest in actively participating in the JCP after the talk. This is certainly something the Philadelphia JUG can effectively facilitate and we will discuss the topic in the leadership board soon. Heather's slides can be downloaded here. Photos from the meeting are here.


It was also very good to see presence from the neighboring Delaware JUG at the meeting. This is the kind of local and regional coordination we are eager to encourage at the Philadelphia JUG. JUG leader Tariq Ali Hook was very impressed by Heather's talk. I offered to give my rendition of the JCP talk at the Delaware JUG. In a similar vein tomorrow I am giving my pragmatic microservices with vanilla Java EE talk remotely on Google Hangout for the Central Pennsylvania JUG. I am grateful to Central Pennsylvania JUG leader Roger Diller for the kind invitation.

After the meeting I took Heather to a Philadelphia cultural institution visited by many global luminaries including the commander-in-chief Barack Obama himself for a very late dinner. If you are a long-time Philly resident you will have no trouble guessing I am talking about Pat's King of Steaks - home of the one and only authentic Philly Cheese Steak.


We hope Heather enjoyed our characteristically down-to-earth but sincere hospitality. It's nothing fancy but it's Philly.

The Philadelphia JUG has a similarly great lineup of talks setup all the way to Fall. Please do stay tuned and help make the JUG all that it can be. We are trying everything we can in the leadership on your behalf to move the JUG onward and upward.

Tuesday, May 10, 2016

Java EE @ Great Indian Developer Summit 2016

The Great Indian Developer Summit (GIDS) 2016 was held on April 26-29 in Bangalore, with a follow-on GIDS.Mini held on April 30 in Pune. GIDS is very easily the largest and most significant developer event in Asia. Perhaps reflecting global demographic shifts in software development, GIDS may also now have become one of the largest developer conferences in the world. This was yet another highly successful year for the event. As usual it drew some of the best and brightest minds in Java and beyond. It was truly a privilege to be invited to speak at the event again and I was even more fortunate to have had a number of Java EE sessions there.


I started GIDS on the 28th in the morning with my talk on effectively testing Java EE applications using Arquillian. The talk basically goes through each major Java EE API and demonstrates through code how the API could be tested using Arquillian. The slides for the talk is posted below:


The code for the talk is available on GitHub. If you are looking into testing Java EE applications using Arquillian, the code should be very helpful to you. Feel free to give me a holler if you need any help. The talk went well and had some excellent Q & A.

In the late afternoon I delivered one my most recent talks titled "Down-to-Earth Microservices with Java EE". The talk has two aims. The first is to try to do the right thing in explaining what microservices really are, what practical value they offer for most of us and when you should consider them (or not). The second aim is to demonstrate why Java EE makes perfect natural sense for developing sensible real world microservices, so called "monoliths" and everything in between. I also briefly explore the work that some parts of the Java EE community is doing to support what I lovingly call "microservices Nirvana" (spoiler: I don't think most of us can or need to achieve this Nirvana state). The slide deck for this talk is below (click here if you can't see the embedded slide deck):


Despite being later in the day the talk was very well attended. It is clearly popular, on the mark and well received. There was good Q & A during the talk and some very nice feedback afterwards. I presented this same talk along with Steve Millidge (C2B2, Payara co-founder) at JavaOne. You can view the JavaOne recording of the talk here. Concurrent to my talk Sebastien Blanc of Red Hat delivered a talk on Forge + Java EE 7 while Ivar Grimstad delivered a talk on the MVC 1.0 API slated for Java EE 8.

In the next time slot I delivered my latest talk on HTTP/2 and Servlet 4 titled "HTTP/2 and What it Means for the Java EE Ecosystem". The talk goes through the very important changes in HTTP/2 and how these changes need to be adopted by various Java EE 8 APIs like Servlet 4 and JSF 2.3. Towards the end of the talk I discussed the very worrisome lack of progress by Oracle-led Java EE 8 JSRs including the foundational Servlet 4 JSR. I also mentioned the very important Java EE Guardian initiative I have become a part of after leaving Oracle. While the initiative is not fully public yet, it has already received a fair bit of press coverage. After the initiative becomes fully public I plan to write about it here. It is an initiative every Java developer should wholeheartedly support if they care about the longevity of server-side Java. The slide deck for the talk is below (click here if you can't see the embedded slide deck):


The next day in the afternoon I delivered my talk titled "Using NoSQL with JPA, CDI and Java EE". The talk covers an interesting gap that there is surprisingly little material on out there. The talk has three parts -- a birds-eye view of the NoSQL landscape, how to use NoSQL via a JPA centric facade using EclipseLink NoSQL, Hibernate OGM, DataNucleus, Kundera, Easy-Cassandra, etc and how to use NoSQL native APIs in Java EE via CDI. The slides for the talk are here:


The JPA based demo is available here, while the CDI based demo is available here. Both demos use MongoDB as the data store. Do let me know if you need help getting the demos up and running.

At GIDS.Mini I repeated my talks on Java EE microservices and testing Java EE using Arquillian.

The conference aside, from the moment my plane landed to the moment it took off India proved the land of warmhearted, kind, hospitable people yet again. I don't mean just the good folks in the Java community but literally every one of the many people I encountered in India. Indians may still have many things that they must do without but Indians are not short of pride, hope, civility and hospitality. All in all my trip to India was a thorough pleasure and I look forward to going back again soon.

Saturday, March 26, 2016

Microsoft Comes to the Philadelphia JUG!

On March 22 Microsoft's Brian Benz spoke at the Philadelphia JUG. This was the first meeting after the leadership switch at the JUG and all considering the meeting went pretty well. Brian spoke to us about using Java on Microsoft's Azure cloud computing platform.

Martin Snyder - current president of the Philadelphia JUG - could not attend due to personal reasons and sent his regrets. We did however have good representation from the board. I served as site coordinator this time and Paul Barton as well as Paul Snyder also attended. We introduced ourselves to the attendees before Brian's talk. Brian's talk was very well received including good Q + A. The slides for his talk are embedded below (click here is you can't see the slides).

Below are some cool photos from the meeting (the photos are also linked here). It's worth noting how remarkable it is for Microsoft to be coming to speak at a Java user group. It was unthinkable a mere few years ago but Microsoft is making genuine attempts to court Java developers to Azure. More than anything else this speaks to the continued strength of Java. Whatever one thinks about Microsoft the reality is that the company has always made strong efforts to engage developers. Some sections of Oracle could learn a thing or two about how to engage developers. Indeed I think Microsoft could make a big difference by contributing directly to the JCP. I asked Brian about this during Q + A - he chuckled and suggested this was not the first time he was asked the question. Microsoft's interest in Java is such that my former colleague Yoshio Terada - a long-time Japanese Java EE evangelist with Sun/Oracle - is now working in the Azure team with Brian to engage the Java community.

Java on Azure

Besides coming to speak at the JUG, Microsoft very generously also sponsored dinner for attendees and brought some very cool T-shirts highlighting their support of the Java community (the shirts are pictured below). Brian left behind plenty of T-shirts for us to give away in subsequent meetings. Make sure to pick one up if you come to the JUG meetings the next few months.


Our next monthly meeting is going to be on the currently white hot Apache Spark. The month after that we will have two separate meetings - my former colleague Heather VanCura talk about the JCP and we will have Java powered NAO robots (demoed at JavaOne)! I will finish off the season with a talk myself before the JUG goes on brief Summer break.

I hope to see you at a Philadelphia JUG meeting soon!

Wednesday, March 23, 2016

Recharging the Philadelphia JUG

This might come as a surprise to some - the Philadelphia JUG is one of the oldest, most active and largest Java User Groups in the world. Since early 2000 the JUG has had regular meetings with many local and world-class speakers (I have had the honor to speak at the JUG myself in years past). The JUG membership is well over 1200 and meetings easily see 70-100 developers attending regularly. Believe it or not this is largely thanks to one man - Dave Fecak. After fifteen odd years of remarkable service last year it was quite understandably time for Dave to move on. Unfortunately this meant that the Philadelphia JUG had been struggling to keep it's footing the past few months - until now.

It is simply unacceptable for a JUG with the size and scope of the Philadelphia JUG to be on a downward trajectory. It would be unprecedented for the Java ecosystem and a great loss for the local community. Thankfully a number of us - including myself - stepped up to the task of moving the JUG forward in absence of Dave. In the process the Philadelphia JUG is moving to a collaborative team based leadership model now common to most larger JUGs. We now have setup a leadership board with a president serving Dave's informal designation of JUGMaster. Myself, Jason Young, Paul Burton and Paul Snyder (in no particular order) are board members while Martin Snyder has graciously agreed to accept the JUGMaster role. Brief bios for Martin, Jason, Paul B. and Paul S. are at the end of this post. Beyond the obvious benefits of teamwork the leadership format will allow the JUG to become a legal non-profit entity down the road. As has been the case for other JUGs this may prove to be invaluable in making the JUG not just locally successful but globally influential and we hope a model for up-and-coming JUGs around the world to follow. We also aspire to fully engage Philly JUG members through an open governance model.

As a solid initial step we have lined up some great sessions for the rest of the season ending in Summer - including from Microsoft on using Java on Azure, uber cool NAO robots demoed at JavaOne as well as a very important talk on the Java Community Process from my former colleague Heather VanCura. Indeed we had our first meeting under the new leadership yesterday - I will blog in detail on that meeting in the next few days. I will have the honor of giving the finishing talk for the season in June. During our brief Summer break the leadership will try to plot a course for the future to move the Philadelphia JUG onward and upward.

In doing all of this we need your help. We need all the local volunteers, great speakers, generous event hosts and strong sponsors we can get. If you can help us, please don't hesitate to reach out. I will personally be reaching out to folks in the Java community including star speakers and regional JUG leaders for their support shortly. Together, let's make the Philadelphia JUG another valuable part of Java's ongoing success!

Martin Snyder is the CTO of Wingspan Technology. He brings over 20 years of experience as an executive and architect for enterprise applications, integration, and document management for global enterprise applications. Prior to Wingspan Martin founded and operated Ethermoon Entertainment, a video game development company. He has held leadership positions in Philadelphia, Boston, and Silicon Valley. Martin has also published and presented on a variety of topics over the years, most recently on the Scala programming language and Functional Programming. Martin is very active in the Philadelphia software development community serving as an organizer for Philly JUG, PHASE, Philly ETE and the Northeast Scala Symposium.

Paul Burton is the Technology Director for the Investment Management Unit at SEI Investments. He has been in the Software Industry for over 25 years, working in many positions from Apprentice through Architect to CTO. He is serving as Chair for the British Computer Society's USA Section, a fellow of the society, and a member of their Council. Paul has attended Philly JUG meetings for seven years and wishes to help the group thrive.

Paul Snyder currently works for the consulting arm for FIS (formerly
SunGard). He's been working with Java and JVM languages for over twelve years including Scala, Clojure, and Groovy. He has been involved in the Philly tech scene since 2001, with the Philadelphia Linux Users Group. He founded the first suburban chapter of that group, PLUG West, and is currently a PLUG organizer. He's also a co-organizer for Clojadelphia (the Philadelphia Clojure meetup), the Philly Lambda functional programming group.

Jason Young has been a Java developer since Java 1.0 and has contributed to the success of a range of software projects from modeling/simulation of space systems at Lockheed Martin, to web analytics for Toys R Us, to the Integration Platform as a Service offered by Dell Boomi, to healthcare software for GSI Health. Recently he started a consulting company. Active in the technology community as part of Philly Startup Leaders, he also enjoys helping people on Github and running a technology blog.

Wednesday, March 09, 2016

CFP Opens for Oredev, the Little Scandinavian Conference with a Big Heart

Oredev is set to take place November 7-11 in Malmo, Sweden. The CFP for Oredev started just a few days ago and will run until March 31.

Although I regularly speak at much larger conferences Oredev has a special place in my heart and this year I've joined the Java track of the program committee for Oredev. There are a few reasons for this. Along with Java2Days, Bulgaria and TDC, Brazil this conference was one of the first to invite me as an international speaker some years ago. Since then I have spoken there quite a few times and every time time it is simply an outstanding experience. In fact one of my most popular talks - Reactive Java EE, Let Me Count the Ways - was born there through brainstorming with an ordinary Oredev attendee with extraordinary ideas. The conference itself is very unique. Although it has roots in .NET, it tries very hard to appeal to a broad audience most certainly including Java developers (the content itself really spans all of IT today). It is one of the few conferences that relies heavily on inviting deserving speakers and paying expenses for all speakers (in Oredev tradition I will be shortly inviting a few folks in the Java community). As a result the conference inevitably curates some of the best speaking talent on the planet. The conference has a strong focus on diversity and social responsibility so you know you are supporting a good cause whether you are speaking or attending. Another very unique thing about the conference is that it is strongly supported by the town of Malmo itself - indeed the speaker dinner is hosted at the Malmo Town Hall with local (nontechnical) dignitaries attending.


The location of Oredev is actually unique too. Malmo sits right at the southern most corner of Sweden literally a channel across from Denmark. The city is small but very cosmopolitan with local tourist attractions and a vibrant nightlife. Very nearby (literally within an hour) you also have Copenhagen, Denmark as well as breathtaking viking artifacts littering a beautiful country side (look at the photos I took from my visit last year). To top all that off the conference itself has regularly organized tours of the city and a party that features a hot Swedish sauna and a naked dip in the freezing cold ocean waters for both speakers and attendees (the naked freezing cold water dip is completely optional of course).


Please do consider submitting to the CFP and joining us in Malmo in November.
Home   |   Site Map   |   Resume   |   Projects   |   Blog   |   Downloads   |   Links   |   Contact