<?xml version="1.0" encoding="utf-8"?>
<!-- 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153
-->
<?xml-stylesheet type="text/xsl" href="https://rollerweblogger.org/roller-ui/styles/rss.xsl" media="screen"?><rss version="2.0" 
  xmlns:dc="http://purl.org/dc/elements/1.1/"
  xmlns:atom="http://www.w3.org/2005/Atom" >
<channel>
  <title>Blogging Roller</title>
  <link>https://rollerweblogger.org/roller/</link>
    <atom:link rel="self" type="application/rss+xml" href="https://rollerweblogger.org/roller/feed/entries/rss?tags=javaee" />
  <description>Dave Johnson on open web technologies, social software and software development</description>
  <language>en-us</language>
  <copyright>Copyright 2026</copyright>
  <lastBuildDate>Tue, 28 Apr 2026 07:02:22 +0000</lastBuildDate>
  <generator>Apache Roller 6.1.5</generator>
  <item>
    <guid isPermaLink="true">https://rollerweblogger.org/roller/entry/roller_5_and_websphere_8</guid>
    <title>Roller 5 and WebSphere 8 (beta)</title>
    <dc:creator>Dave Johnson</dc:creator>
    <link>https://rollerweblogger.org/roller/entry/roller_5_and_websphere_8</link>
    <pubDate>Wed, 9 Feb 2011 22:18:55 +0000</pubDate>
    <category>Roller</category>
    <category>java</category>
    <category>javaee</category>
    <category>websphere</category>
<atom:summary type="html">&lt;p&gt;&lt;img src=&quot;http://rollerweblogger.org/roller/mediaresource/8413ae9f-d4a2-418a-9d37-0fab7644e413&quot; alt=&quot;Websphere logo&quot; align=&quot;right&quot;&gt;In my quest to get Roller running on the latest in Java EE servers, the last server I tacked was the &lt;a href=&quot;http://www-01.ibm.com/software/webservers/appserv/was/&quot;&gt;WebSphere Application Server&lt;/a&gt;. Unlike Glassfish and JBoss, WebSphere&amp;#39;s Java EE 6 offering is not available in final form yet. Java EE 6 support is coming in WebSphere 8. So, for this exercise I used the WebSphere 8 beta, which was made &lt;a href=&quot;http://www.ibm.com/developerworks/forums/thread.jspa?messageID=14482785&quot;&gt;available in July 2010&lt;/a&gt;. In this blog I&amp;#39;ll describe how I approached the problem what I learned along the way.&lt;/p&gt;</atom:summary><description>&lt;p&gt;&lt;img src=&quot;http://rollerweblogger.org/roller/mediaresource/8413ae9f-d4a2-418a-9d37-0fab7644e413&quot; alt=&quot;Websphere logo&quot; align=&quot;right&quot;&gt;In my quest to get Roller running on the latest in Java EE servers, the last server I tacked was the &lt;a href=&quot;http://www-01.ibm.com/software/webservers/appserv/was/&quot;&gt;WebSphere Application Server&lt;/a&gt;. Unlike Glassfish and JBoss, WebSphere&amp;#39;s Java EE 6 offering is not available in final form yet. Java EE 6 support is coming in WebSphere 8. So, for this exercise I used the WebSphere 8 beta, which was made &lt;a href=&quot;http://www.ibm.com/developerworks/forums/thread.jspa?messageID=14482785&quot;&gt;available in July 2010&lt;/a&gt;. In this blog I&amp;#39;ll describe how I approached the problem what I learned along the way.&lt;/p&gt;
&lt;h4&gt;Deployed the Java EE version of the Roller WAR&lt;/h4&gt;
&lt;p&gt;If you remember my back to my post on &lt;a href=&quot;http://rollerweblogger.org/roller/entry/roller_5_and_glassfish_3&quot;&gt;Glassfish&lt;/a&gt;, I ended up with two WARs, one for Tomcat and one for Java EE. Then in my post on &lt;a href=&quot;http://rollerweblogger.org/roller/entry/roller_5_and_jboss_6&quot;&gt;JBoss&lt;/a&gt;, I had to add a special WAR just for JBoss. Fortunately for WebSphere, I was able to use same &amp;quot;Java EE&amp;quot; WAR that I used on Glassfish. It didn&amp;#39;t work the first time I tried, but with some code changes and installation guide adjustments, I was able to make it work. Here&amp;#39;s a quick summary of the problems I hit:&lt;/p&gt;
&lt;h4&gt;Problem 1: Commons Logging&lt;/h4&gt;
&lt;p&gt;I was able to deploy Roller successfully via the WebSphere console, but when I tried to load the Roller setup page I got a 404 error. I looked for the Roller log and found nothing. Something was preventing Commons Logging or Log4J from working properly. After some googling, I learned that this has been a problem on WebSphere for some time and there&amp;#39;s an easy (but annoying) fix. I had to add a property file to Roller and ask those installing Roller to add a property file to their WebSphere installation, details are here (&lt;a href=&quot;https://issues.apache.org/jira/browse/ROL-1895&quot;&gt;ROL-1895&lt;/a&gt;).&lt;/p&gt;
&lt;h4&gt;Problem 2: Filter compatibility&lt;/h4&gt;
&lt;p&gt;I had logging working but that didn&amp;#39;t really help me figure out what was going wrong. Eventually, I remembered the WebSphere Filter Compatibility issue. Servlet Filters are a standard feature of the Servlet API for years, but for some reason they are turned off by default in WebSphere. The solution is to set the &lt;code&gt;com.ibm.ws.webcontainer.invokeFiltersCompatibility&lt;/code&gt; flag to true via the WebSphere console and so that&amp;#39;s what I did. It worked.&lt;/p&gt;
&lt;h4&gt;Problem 3: Struts mapping&lt;/h4&gt;
&lt;p&gt;Once I got beyond the setup page, the Roller bootstrapping page would not load. After some investigation I found that the Struts filter was not being executed. Roller was using the mapping &lt;code&gt;/*&lt;/code&gt; meaning that all requests go through Struts. When I changed that to &lt;code&gt;*.rol&lt;/code&gt;, which is the extension we use for all Struts actions, things started working. That&amp;#39;s what we should have been doing anyway, so I made the change and moved on.&lt;/p&gt;
&lt;h4&gt;Wrapping up...&lt;/h4&gt;
&lt;p&gt;In the end, I was able to make Roller&amp;#39;s Java EE WAR work on WebSphere and that&amp;#39;s a good thing. I really don&amp;#39;t want to have a separate WAR for each app server. As I did for the other three servers, I added detailed step-by-step installation instructions for WebSphere to the &lt;a href=&quot;http://people.apache.org/~snoopdave/apache-roller-5.0/roller-install-guide.pdf&quot;&gt;Roller 5 Install Guide (2MB PDF)&lt;/a&gt;, with screenshots.&lt;/p&gt;
&lt;p&gt;See also: &lt;a href=&quot;http://rollerweblogger.org/roller/entry/roller_5_and_java_ee&quot;&gt;Roller 5 and Java EE 6&lt;/a&gt;, &lt;a href=&quot;http://rollerweblogger.org/roller/entry/roller_5_and_glassfish_3&quot;&gt;Roller 5 on Glassfish 3&lt;/a&gt; and &lt;a href=&quot;http://rollerweblogger.org/roller/entry/roller_5_and_jboss_6&quot;&gt;Roller 5 on JBoss AS 6&lt;/a&gt;.&lt;/p&gt;</description>  </item>
  <item>
    <guid isPermaLink="true">https://rollerweblogger.org/roller/entry/roller_5_and_jboss_6</guid>
    <title>Roller 5 and JBoss 6</title>
    <dc:creator>Dave Johnson</dc:creator>
    <link>https://rollerweblogger.org/roller/entry/roller_5_and_jboss_6</link>
    <pubDate>Thu, 20 Jan 2011 18:00:15 +0000</pubDate>
    <category>Roller</category>
    <category>asf</category>
    <category>hibernate</category>
    <category>javaee</category>
    <category>jboss</category>
<atom:summary type="html">&lt;p&gt;&lt;img align=&quot;right&quot; src=&quot;http://rollerweblogger.org/roller/mediaresource/d94dc4cc-d79c-423a-a9bc-ee93853ee422&quot; alt=&quot;JBoss logo&quot;&gt; In my quest to make Roller work on Java EE 6, the next server that I tackled was JBoss 6. In this blog I&amp;#39;ll describe how I approached the problem what I learned along the way.&lt;/p&gt;

&lt;h4&gt;Tested with Hibernate JPA&lt;/h4&gt;

&lt;p&gt;Roller uses &lt;a href=&quot;http://en.wikipedia.org/wiki/Java_Persistence_API&quot;&gt;JPA&lt;/a&gt; for database storage and specifically the &lt;a href=&quot;http://openjpa.apache.org/&quot;&gt;Apache OpenJPA&lt;/a&gt; implementation. I knew that JBoss uses the &lt;a href=&quot;http://www.hibernate.org&quot;&gt;Hibernate JPA&lt;/a&gt; implementation and I suspected that there would be JPA portability problems, so I decided to run Roller&amp;#39;s JUnit tests against Hibernate JPA. There were many test failures and fortunately, the failures were easy to fix.&lt;/p&gt;</atom:summary><description>&lt;p&gt;&lt;img align=&quot;right&quot; src=&quot;http://rollerweblogger.org/roller/mediaresource/d94dc4cc-d79c-423a-a9bc-ee93853ee422&quot; alt=&quot;JBoss logo&quot;&gt; In my quest to make Roller work on Java EE 6, the next server that I tackled was JBoss 6. In this blog I&amp;#39;ll describe how I approached the problem what I learned along the way.&lt;/p&gt;

&lt;h4&gt;Tested with Hibernate JPA&lt;/h4&gt;

&lt;p&gt;Roller uses &lt;a href=&quot;http://en.wikipedia.org/wiki/Java_Persistence_API&quot;&gt;JPA&lt;/a&gt; for database storage and specifically the &lt;a href=&quot;http://openjpa.apache.org/&quot;&gt;Apache OpenJPA&lt;/a&gt; implementation. I knew that JBoss uses the &lt;a href=&quot;http://www.hibernate.org&quot;&gt;Hibernate JPA&lt;/a&gt; implementation and I suspected that there would be JPA portability problems, so I decided to run Roller&amp;#39;s JUnit tests against Hibernate JPA. There were many test failures and fortunately, the failures were easy to fix.&lt;/p&gt;

&lt;p&gt;Where OpenJPA is lenient, Hibernate JPA is strict about declaring transients fields as transient. So, wherever Hibernate complained, I added the appropriate transient declaration and soon all tests were passing. There were a lot of changes, but they were all trivially easy. Since I first &amp;quot;ported&amp;quot; Roller to ElipseLink JPA, its possible that some of the changes I made for EclipseLink helped with the port to Hibernate JPA.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;http://rollerweblogger.org/roller/mediaresource/31c02555-27cd-4391-b951-38161b88e8c2&quot; alt=&quot;HIbernate logo&quot; align=&quot;right&quot;&gt;Those of you who are familiar with Roller&amp;#39;s history might remember that this is the second time I worked to &lt;a href=&quot;http://rollerweblogger.org/roller/entry/powered_by_struts_1_1&quot;&gt;make Roller work with Hibernate&lt;/a&gt;. Early versions of Roller ran on Hibernate until Roller 4, when we ripped it out because Apache policy does not allow LGPL. With Java EE 6, Roller can run on Hibernate and we don&amp;#39;t have to ship the Hibernate jars to do so.&lt;/p&gt;

&lt;h4&gt;Tried using the Java EE version of the Roller WAR&lt;/h4&gt;

&lt;p&gt;Since JBoss 6 is a Java EE 6 server, just like Glassfish, I figured I could use the same WAR that I created for Glassfish. That didn&amp;#39;t really work out, as you will see below. When I attempted to deploy the Roller WAR to JBoss I ran into two problems:&lt;/p&gt;

&lt;h4&gt;Problem 1: Xerces and JavaAssist&lt;/h4&gt;

&lt;p&gt;When I tried to deploy the Roller WAR to JBoss, I ran into class-cast exceptions that indicated that the version the the Xerces XML parser included with Roller conflicts with the one that is included in JBoss. I encountered a similar problem for the JavAssist jars, which are also part of Roller. This was quite surprising to me. Apparently, JBoss uses Xerces and JavAssist internally and for some reason the JBoss internals bleed through and interfere with applications; seems like a bug to me. So, we have to have a special Roller WAR for JBoss without the Xerces and JavaAssist jars in the Roller WAR.&lt;/p&gt;

&lt;h4&gt;Problem 2: JNDI Datasource Name&lt;/h4&gt;

&lt;p&gt;The next problem that I encountered was the datasource name. Roller uses the JNDI naming API to lookup its JDBC datasource. In all of the other app servers, we tell people to setup a datasource with the JNDI name &amp;#39;jdbc/rollerdb&amp;#39; but that name did not work for JBoss. For JBoss, I could only get names of names of the format &amp;quot;java:/name&amp;quot; to work. Unfortunately, with JPA the datasource name must be embedded in the &lt;code&gt;persistence.xml&lt;/code&gt; file which is embedded in a JAR file which is embedded in the Roller WAR file. It&amp;#39;s in there deep, so we have to produce a special Roller WAR for JBoss with a JBoss-friendly datasource name.&lt;/p&gt;

&lt;p&gt;*Please* correct me if I&amp;#39;m wrong. I would love to be wrong about either of these two problems.&lt;/p&gt;

&lt;h4&gt;Created special Roller WAR just for JBoss&lt;/h4&gt;

&lt;p&gt;Due to those two problems, I modified the Roller build process to create a special Roller WAR for JBoss without the OpenJPA, Xerces and JavAssist JARs and with the JBoss friendly JNDI name &lt;code&gt;java:/RollerDS&lt;/code&gt; inside all included &lt;code&gt;persistence.xml&lt;/code&gt; files.&lt;/p&gt;

&lt;h4&gt;Deployed, tested and updated the docs&lt;/h4&gt;

&lt;p&gt;Once I worked around those two problems, installing Roller on JBoss was easy. I did the whole thing via the JBoss web console, which was not familiar to me but was pretty easy to understand and use. I documented the whole process in the &lt;a href=&quot;http://people.apache.org/~snoopdave/apache-roller-5.0/roller-install-guide.pdf&quot;&gt;Roller 5 Install Guide (2MB PDF)&lt;/a&gt;, with screenshots.&lt;/p&gt;

&lt;p&gt;Next up: Roller 5 on WebSphere 8 (beta)&lt;/p&gt; 

&lt;p&gt;See also: &lt;a href=&quot;http://rollerweblogger.org/roller/entry/roller_5_and_java_ee&quot;&gt;Roller 5 and Java EE 6&lt;/a&gt; and &lt;a href=&quot;http://rollerweblogger.org/roller/entry/roller_5_and_glassfish_3&quot;&gt;Roller 5 on Glassfish 3&lt;/a&gt;.&lt;/p&gt; 
</description>  </item>
  <item>
    <guid isPermaLink="true">https://rollerweblogger.org/roller/entry/roller_5_and_glassfish_3</guid>
    <title>Roller 5 and Glassfish 3</title>
    <dc:creator>Dave Johnson</dc:creator>
    <link>https://rollerweblogger.org/roller/entry/roller_5_and_glassfish_3</link>
    <pubDate>Mon, 10 Jan 2011 17:29:36 +0000</pubDate>
    <category>Roller</category>
    <category>asf</category>
    <category>glassfish</category>
    <category>java</category>
    <category>javaee</category>
    <category>jpa</category>
<atom:summary type="html">&lt;p&gt;&lt;img src=&quot;http://rollerweblogger.org/roller/mediaresource/1ae0d27d-6c18-4b34-89a8-2c4db15313a3&quot; alt=&quot;Duke and GlassFish&quot; align=&quot;right&quot;&gt;In my quest to make Roller work on Java EE 6, the first server that I decided to tackle was &lt;a href=&quot;http://glassfish.java.net&quot;&gt;Glassfish 3&lt;/a&gt;. In this blog I&amp;#39;ll describe how I approached the problem and what I learned along the way.&lt;/p&gt;

&lt;h4&gt;Tested with EclipseLink JPA&lt;/h4&gt;

&lt;p&gt;Roller uses &lt;a href=&quot;http://en.wikipedia.org/wiki/Java_Persistence_API&quot;&gt;JPA&lt;/a&gt; for persistence and specifically the &lt;a href=&quot;http://openjpa.apache.org/&quot;&gt;Apache OpenJPA&lt;/a&gt; implementation. I knew that GlassFish uses the &lt;a href=&quot;http://www.eclipse.org/eclipselink/&quot;&gt;EclipseLink JPA&lt;/a&gt; implementation and I suspected that there would be JPA portability problems, so I decided to run Roller&amp;#39;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.&lt;/p&gt;</atom:summary><description>&lt;p&gt;&lt;img src=&quot;http://rollerweblogger.org/roller/mediaresource/1ae0d27d-6c18-4b34-89a8-2c4db15313a3&quot; alt=&quot;Duke and GlassFish&quot; align=&quot;right&quot;&gt;In my quest to make Roller work on Java EE 6, the first server that I decided to tackle was &lt;a href=&quot;http://glassfish.java.net&quot;&gt;Glassfish 3&lt;/a&gt;. In this blog I&amp;#39;ll describe how I approached the problem and what I learned along the way.&lt;/p&gt;

&lt;h4&gt;Tested with EclipseLink JPA&lt;/h4&gt;

&lt;p&gt;Roller uses &lt;a href=&quot;http://en.wikipedia.org/wiki/Java_Persistence_API&quot;&gt;JPA&lt;/a&gt; for persistence and specifically the &lt;a href=&quot;http://openjpa.apache.org/&quot;&gt;Apache OpenJPA&lt;/a&gt; implementation. I knew that GlassFish uses the &lt;a href=&quot;http://www.eclipse.org/eclipselink/&quot;&gt;EclipseLink JPA&lt;/a&gt; implementation and I suspected that there would be JPA portability problems, so I decided to run Roller&amp;#39;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.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;http://rollerweblogger.org/roller/mediaresource/c55737d5-bb41-4cf5-ab58-fed6a783aa08&quot; alt=&quot;EclipseLink logo&quot; align=&quot;right&quot;&gt;Where OpenJPA is lenient about bi-directional relationships, EclipseLink requires you to manage both ends. For example, with OpenJPA you can get away with adding a bookmark to a folder with &lt;code&gt;folder.addBookmark(bookmark)&lt;/code&gt;, but with EclipseLink you&amp;#39;d also have to add &lt;code&gt;bookmark.setFolder(folder)&lt;/code&gt;. &lt;/p&gt;

&lt;p&gt;Where OpenJPA is lenient about use of unmanaged objects, EclipseLink will complain bitterly whenever it finds one in a persisted collection or relationship. This was more of a problem in the tests than in the actual Roller code, which usually deals only with managed objects (i.e. those persisted to / loaded from the database and managed by the JPA implementation).&lt;/p&gt;

&lt;p&gt;I was able to fix those problems easily and move onto the next step.&lt;/p&gt;

&lt;h4&gt;Created a Roller WAR without OpenJPA&lt;/h4&gt;

&lt;p&gt;I also knew that Roller included some jars needed for Tomcat but that are not needed, or worse, problematic, on true Java EE servers. For example, we include the Apache OpenJPA implementation because Tomcat doesn&amp;#39;t have one of its own. I modified the Roller build process to create two builds. One build is for Tomcat and includes OpenJPA and the other build is for Java EE and does not.&lt;/p&gt;

&lt;h4&gt;Deployed, tested and updated the docs&lt;/h4&gt;

&lt;p&gt;Next, I figured out how to deploy Roller to GlassFish 3 via the GlassFish web console, which was pleasant to use and familiar to me. I didn&amp;#39;t run into any problems along the way and later I documented the whole process in the &lt;a href=&quot;http://people.apache.org/~snoopdave/apache-roller-5.0/roller-install-guide.pdf&quot;&gt;Roller 5 Install Guide (2MB PDF)&lt;/a&gt;, with screenshots.&lt;/p&gt;

&lt;p&gt;Next up: &lt;a href=&quot;http://rollerweblogger.org/roller/entry/roller_5_and_jboss_6&quot;&gt;Roller 5 on JBoss 6&lt;/a&gt;&lt;/p&gt; 
</description>  </item>
  <item>
    <guid isPermaLink="true">https://rollerweblogger.org/roller/entry/roller_5_and_java_ee</guid>
    <title>Roller 5 and Java EE 6</title>
    <dc:creator>Dave Johnson</dc:creator>
    <link>https://rollerweblogger.org/roller/entry/roller_5_and_java_ee</link>
    <pubDate>Wed, 5 Jan 2011 08:15:53 +0000</pubDate>
    <category>Roller</category>
    <category>asf</category>
    <category>glassfish</category>
    <category>javaee</category>
    <category>jboss</category>
    <category>tomcat</category>
    <category>websphere</category>
<atom:summary type="html">&lt;p&gt;
It&amp;#39;s hard to believe, but I&amp;#39;ve been dorking around with &lt;a href=&quot;http://roller.apache.org&quot;&gt;Roller&lt;/a&gt;, the blog software that powers this site, for almost 10 years now. I started in summer 2001. In the past couple of years, I&amp;#39;ve had a lot less time to work on Roller. I devoted some of that time to mentoring student developers, which was fun and rewarding. I also spent time making Roller more consumable for developers by making it easier to build, run and deploy to modern Java app servers, which was not really fun but was definitely educational, bloggable even.&lt;/p&gt;
</atom:summary><description>&lt;p&gt;
It&amp;#39;s hard to believe, but I&amp;#39;ve been dorking around with &lt;a href=&quot;http://roller.apache.org&quot;&gt;Roller&lt;/a&gt;, the blog software that powers this site, for almost 10 years now. I started in summer 2001. In the past couple of years, I&amp;#39;ve had a lot less time to work on Roller. I devoted some of that time to mentoring student developers, which was fun and rewarding. I also spent time making Roller more consumable for developers by making it easier to build, run and deploy to modern Java app servers, which was not really fun but was definitely educational, bloggable even.&lt;/p&gt;

&lt;h4&gt;Roller 5 as Java EE 6 case study&lt;/h4&gt;

&lt;p&gt;Making Roller work on the new crop of &amp;quot;modern&amp;quot; Java EE 6 servers was an interesting experience and the story makes a pretty good case study in Java EE application portability. I&amp;#39;ve put together a short series of blog posts to tell the story and this is the first, an overview. In subsequent posts I&amp;#39;ll explain the changes I had to make to get Roller working on:&lt;/p&gt; 

&lt;table&gt;
&lt;tr&gt;
&lt;td&gt;&lt;img src=&quot;http://rollerweblogger.org/roller/mediaresource/0e4abe0f-fa37-4de2-b07c-00bf12094e55&quot; alt=&quot;glassfish logo&quot;&gt;&lt;/td&gt;
&lt;td&gt;&lt;a href=&quot;http://glassfish.java.net/downloads/3.0.1-final.html&quot;&gt;GlassFish 3&lt;/a&gt; (released June 2010)&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;&lt;img src=&quot;http://rollerweblogger.org/roller/mediaresource/f409b73d-9ed0-4372-9654-5bf2b6461f01&quot; alt=&quot;jboss logo&quot;&gt; &lt;/td&gt;
&lt;td&gt;&lt;a href=&quot;http://community.jboss.org/wiki/AS600FinalReleaseNotes&quot;&gt;JBoss 6&lt;/a&gt; (released December 2010)&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;&lt;img src=&quot;http://rollerweblogger.org/roller/mediaresource/98f178c9-22d7-4d71-8be3-4d4583257e32&quot; alt=&quot;websphere logo&quot;&gt;&lt;/td&gt;
&lt;td&gt;&lt;a href=&quot;http://webspherecommunity.blogspot.com/2010/07/websphere-application-server-v80-beta.html&quot;&gt;WebSphere 8&lt;/a&gt; (beta released July 2010)&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;&lt;img src=&quot;http://rollerweblogger.org/roller/mediaresource/9d655f3a-50dd-46e8-9cd2-4bd0c67800a3&quot; alt=&quot;tomcat logo&quot;&gt;&lt;/td&gt;
&lt;td&gt;&lt;a href=&quot;http://tomcat.apache.org/&quot;&gt;Tomcat&lt;/a&gt; 6 and 7 (not Java EE but Roller just has to work on Tomcat)&lt;/td&gt;
&lt;/tr&gt;
&lt;/table&gt;

&lt;p&gt;There are other Java EE 6 servers out there and there&amp;#39;s a &lt;a href=&quot;http://blogs.sun.com/theaquarium/entry/from_2_to_8_java&quot;&gt;good summary of them on The Aquarium&lt;/a&gt;; those are just the ones I had time to explore.&lt;/p&gt;

&lt;h4&gt;Overview of Java EE 6 changes&lt;/h4&gt;

&lt;p&gt;There were three categories of things I changed to accomodate Java EE 6 servers. The first is changes to the Roller code base to make Roller work on all of my targets. Most of these changes were in way Roller uses calls the Java Persistence APIs (JPA), needed because of differences in the JPA implementations used by each server. GlassFish uses EclipseLink JPA and JBoss uses Hibernate JPA.  On WebSphere and Tomcat, Apache OpenJPA is the implementation. Fortunately, nowhere did I have to use any conditional code or introduce special behavior for any platform.&lt;/p&gt;

&lt;p&gt;The second category of changes is additions to the Roller install guide to mention the special settings required to make Roller work on all targets. On some platforms, special behaviors must be enabled for Roller, for example the &amp;quot;filter compatibility&amp;quot; flag on WebSphere. I added a section to the install guide for each server and documented the details there.&lt;/p&gt;

&lt;p&gt;The third category is changes to the Roller build process to create special versions of Roller for some servers. Unfortunately, due to Tomcat not being a full Java EE server and some JBoss classloader issues, I&amp;#39;m not able to provide one Roller release that runs on all servers. The latest Roller 5 release candidate comes in three flavors, one for Tomcat 6/7, one for JBoss 6 and one for &amp;quot;Java EE&amp;quot; which is the one intended for use with Glassfish 3.1 and WebSphere 8.&lt;/p&gt;  

&lt;h4&gt;Up next: GlassFish 3&lt;/h4&gt;

&lt;p&gt;In the next post I&amp;#39;ll tell you what I had to do to get Roller running on Glassfish 3 with EclipseLink JPA.&lt;/p&gt;</description>  </item>
</channel>
</rss>