I've been hoping for a Geronimo-JAMES integration since the start of the Geronimo project. Two fairly recent developments in JAMES have now made this a relatively simple task: the maven build and the spring integration code.

- the maven build enables painless connection between the build systems of the two projects, so changes in JAMES get picked up immediately by the geronimo plugin under development - the spring integration enables a non-avalon expert to construct and start a JAMES server

After a couple days work and fixing a few problems in JAMES I now have a geronimo james plugin that runs a james server inside geronimo.

Instructions:

1. Apply patches for JAMES-840, 841, and 842 to james trunk. Get all the jars needed for the build into the private stage repository (JAMES-840). (I realize these instructions are unclear but they are the best I have at the moment)

2. Build JAMES with maven
mvn clean install -Plocal

3. Build geronimo trunk (I haven't checked to see if sufficiently up to date geronimo snapshots are available. We also have some private repo issues that may make at least one local build of geronimo necessary).

4. check out
svn co https://svn.apache.org/repos/asf/geronimo/plugins/james/trunk

5. build james plugin
mvn clean install -Pwith-assembly

6. Fire up the sample server
cd james-server/target
tar xzf james-server-1.0-SNAPSHOT-bin.tar.gz
./james-server-1.0-SNAPSHOT/bin/gsh geronimo/start-server

I've put the james config files in a geronimo-standard location of var/ james/config. I changed the ports so the server would start without superuser permissions. So far I just know the server starts without errors: I haven't figure out how to test if it can actually do anything.

-----------------------------------

Future directions

Even in its current state this plugin/integration is only viable if the JAMES community
- works to resolve the issues noted in JAMES-840, 841, 842
- continues to maintain the maven build

Currently there is minimal integration between geronimo and JAMES. One really obvious integration point would be to use geroniimo supplied datasources. However glancing at the code there appears to be a certain amount of fishing for configuration rather than dependency injection. I'm wondering whether there is any interest in moving to JPA based database access, and whether this would be significantly harder than just changing the datasource source. Obviously this would imply moving JAMES to java 5.

Another issue I came across is use of com.sun mail classes (I started by trying to use the geronimo mail provider before I understood why the stage repo wasn't working for me). Is this intentional? Are you interested in also supporting the geronimo mail implementation?

Finally I came across some comments that DNS is needed (as you can probably tell I know almost nothing about mail). I wondered if any thought had been given to using apacheds in-vm for this.

thanks
david jencks




---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to