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]