geronimo-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From David Jencks <david_jen...@yahoo.com>
Subject Geronimo-JAMES integration
Date Sun, 15 Jun 2008 18:31:20 GMT
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




Mime
View raw message