Dave Johnson on open web technologies, social software and Java
In my quest to make Roller work on Java EE 6, the first server that I decided to tackle was Glassfish 3. In this blog I'll describe how I approached the problem and what I learned along the way.
Roller uses JPA for persistence and specifically the Apache OpenJPA implementation. I knew that GlassFish uses the EclipseLink JPA implementation and I suspected that there would be JPA portability problems, so I decided to run Roller's JUnit tests against EclipseLink JPA. I wanted to find and fix those problems before even touching GlassFish. The tests ran and there were many JPA related failures and errors, most due to differences in the way that EclipseLink handles bi-directional relationships and the use of unmanaged objects.[Read More]
On the last day of 2010, I made available the third release candidate for Apache Roller 5.0. The main difference between this new candidate and the previous one is that the new RC3 runs on Java EE 6 servers: Glassfish 3, JBoss 6 and Websphere 8 (currently in beta). Making this happen took a lot more work than I expected and I'll blog about that over the next couple of weeks as it is an interesting case study in Java EE 6 portability.
Here's the announcement:
Apache Roller 5.0 Release Candidate RC3 is now available for testing. Note that this is NOT a release of the Apache Software Foundation or anybody else; this release candidate is for testing purposes only and not recommended for production. What's new in Roller 5.0: https://cwiki.apache.org/confluence/display/ROLLER/What's+new+in+Roller+5.0 Change list (issues resolved since 4.0) http://bit.ly/gAhDWR Issues resolved since last release candidate (RC3) http://bit.ly/dZ27Nx Signed binary and source files. Also, documentation in PDF form http://people.apache.org/~snoopdave/apache-roller-5.0/ The biggest change in RC3 is the new support for Java EE 6 application servers: Glassfish 3, JBoss 6 and Websphere 8 (beta). I've been able to verify that Roller runs on all of those servers, and I updated the installation guide to explain in detail how you install on Glassfish, JBoss and WebSphere. If you would like to help out then please test RC3, discuss the problems you encounter here and file specific bugs with steps to reproduce in the Roller JIRA bug tracking system. Thanks, DaveThat announcement is available here: http://markmail.org/message/my5wbld2xqvhqpyg
I stayed up a little too late last night upgrading this site (rollerweblogger.org) to the latest Roller 4.0 code base, which includes the new Struts2 based Admin UI and a new OpenJPA based back-end. No more Hibernate for me. The upgrade was a bit of a rocky road, but the site seems to be working OK now.
Congrats to the OpenJPA team.
Patrick Linksey: Last week, OpenJPA graduated from the Apache incubator, meaning that it's now a fully-fledged Apache project. We're graduating to a top-level project, so once the infrastructure administrivia gets worked out, the new URL will be http://openjpa.apache.org.
I'd like to thank Craig Russell for pushing the project through the last mile of graduation details, and our incubation mentors (Brian McAllister, Eddie O'Neil, and Geir Magnusson) for all their help transitioning into the Apache world.
I'm pushing to replace Hibernate with JPA in Roller and OpenJPA seems the most likely candidate, so I'm glad to hear the community is thriving.
Note that we now have two possible replacements for our old Hibernate back-end. We've got a Java Persistence Architecture (JPA) based back-end developed by Sun's Craig Russell and Mitesh Meswani and IBM is getting ready to contribute an iBatis based back-end. How do we choose which one to use in Roller? Consensus seems to be that we'll have a bake-off. We'll compare the programming models, test performance and discuss the pros and cons -- and let the best framework win.