Friday, 30 November 2012

Mostly Earless

OpenQuote 2.0 will be an earless release. As I blogged last time, up until 2.0 OpenQuote was packaged into an EAR, but issues with Liferay's support for portlets within EARs has lead us down a different road now, and it's not one I'm sorry to be travelling down.

So, since the latest commits into the 2.0 tree, the EAR is history. Our various JEE components now all sit in the deployments folder and their dependencies are managed using JBoss modules and are resolved at build time using Ivy.

The move to JBoss modules and Ivy was pretty smooth. Very smooth in fact. The only slight annoyance left is that I can't as yet find a way to have Ant resolve classpaths for javac (etc) with respect to modules. What I'd really like to do is to derive a classpath by referring to a bunch of module names, but right now the build still has to do this using combinations of <fileset> and <dirset>. This leads to some duplication.

Even so, this is a big step forward, so the classpath issue hasn't dampened my sense of satisfaction too much.

Of course, Ivy is only part of the picture. Our old dependency repository, hosted at openquotecommunity.org, has done a fine job, but it would have needed some serious restructuring to make it work well with Ivy. So, enter, Sonatype's Nexus! We now have an instance of the same running on openquotecommunity.org.

I have to say, I'd thoroughly recommend Nexus. It was an absolute breeze to setup and configure. The only wrinkle being that I originally wanted deploy it as a WAR in our existing JBoss development server - which hosts JIRA and Bamboo. The WAR deployed okay, but it exhibited some odd authentication behaviour. Logging into Nexus as the default "admin" user apparently worked, but none of the admin menus appeared. Weird.

I put this down to the fact that we're running a pretty old version of JBoss on that server. As we're going to be moving to Atlassian's on demand service, I didn't want to spend time picking about in that particular can of worms, so I installed Nexus as a standalone (Jetty based) server instead. And that works like a dream.

You gotta love open source!

No comments:

Post a Comment