Hi All, here are the next round of improvements I'd like us to consider for Roller:

1.) Update Spring framework from 2.0.7 & 2.5.6 & 1.2 to the latest RELEASE version (3.2.3.RELEASE apparently: http://mvnrepository.com/artifact/org.springframework). Hopefully we can standardize on one Spring version.

2.) Switch the default JPA framework from Apache OpenJPA (JPA 2.0) to EclipseLink JPA (JPA 2.1). All three frameworks (including Hibernate) are now passing JUnit tests, so we have a choice of any of the three.

Reasons:

-- This will help remove a need for one extra build--presently we have three: Tomcat (OpenJPA), GlassFish/JavaEE (EclipseLink), and JBoss (Hibernate). No guarantees but if we move to Tomcat/EclipseLink we may be able to consolidate the first two. We should have EclipseLink working anyway for GlassFish deployment (as EclipseLink is its default), but there's no corresponding requirement for us to have OpenJPA working on Tomcat, which doesn't have a built-in JPA framework, so we might as well have it use EclipseLink also.

-- OpenJPA seems to have lost most of its paid committers. The project has 624 open issues (https://issues.apache.org/jira/browse/OPENJPA#selectedTab=com.atlassian.jira.plugin.system.project%3Aissues-panel), and they've having resource difficulties in implementing JPA 2.1 (http://openjpa.208410.n2.nabble.com/OpenJPA-support-for-JPA-2-1-when-td7584157.html).

-- EclipseLink already implements JPA 2.1. It's easier to attract committers to Roller when we use the most recent technologies.

-- As with OpenJPA, it's also very easy to activate EclipseLink logging: http://svn.apache.org/viewvc/roller/trunk/app/src/test/resources/roller-custom.properties?revision=1499866&view=markup#l14

-- Open JPA is chatty when you build Roller (https://issues.apache.org/jira/browse/ROL-1436) and it outputs erroneous error messages (https://issues.apache.org/jira/browse/OPENJPA-2401) that falsely make people building Roller think that there's something wrong with our JPA entity classes.

3.) Remove DB connectivity info from the persistence.xml file.

I'd like to remove line #4 (<non-jta-data-source>${datasourceName}</non-jta-data-source>) from our persistence.xml (http://svn.apache.org/viewvc/roller/trunk/app/src/main/resources/META-INF/persistence.xml?revision=1491090&view=markup) and do this configuration in the roller-custom.properties file instead. Our code already handles this:

http://svn.apache.org/viewvc/roller/trunk/app/src/main/java/org/apache/roller/weblogger/business/jpa/JPAPersistenceStrategy.java?revision=1498037&view=markup#l98

Reasons: Unlike OpenJPA, both EclipseLink and Hibernate place precedence on the value in the persistence.xml file over whatever we configure in emfProps in JPAPersistenceStrategy, which forces one to have to comment-out this line when running JUnit tests with either of these two JPA stacks. Removing DB connectivity info from persistence.xml keeps that file workable for either direct JDBC or JNDI configuration regardless of JPA stack. Also, putting the configuration in roller-custom.properties (with a subsequent update in our Installation Guide) strips away a need to have a separate JBoss build, further helpful in build consolidation.

4.) New version of ROME-Propono with the latest ROME dependencies (fixing problem mentioned here: http://mail-archives.apache.org/mod_mbox/roller-dev/201306.mbox/%3C51CF6CF4.3050709%40gmail.com%3E). This would just be a Maven POM change (I can test it out if Dave wouldn't mind applying the patch to ROME so we can get a release out of it). As an alternative, we can switch to Apache Abdera if-and-only-if we have no longer a need for RSS in Roller (is Roller now Atom-only? 5.0.1 seems to indicate that...) Switching from ROME to Abdera in Roller could end up being a lot of work though, probably not worth it unless ROME is really dormant.

Thoughts, comments?

Thanks,
Glen

Reply via email to