I have just checked in the beginnings of a SpringDeployer (revision
128446).
This requires an updated version of Spring (1.1.3). So, if you tend to
run your builds offline, you will need to hook up and let maven sort
it all out.
A Spring deployable currently looks like this - e.g. :
foo.spr/
META-INF/spring.xml
Foo.class
Bar.class
...
Classes should be deployed unpacked at the top level of the jar :
You should run the org/apache/geronimo/SpringDeployer configuration in
your server to use this functionality.
The org/apache/geronimo/DebugConsole will be useful to look at GBeans
that represent your Spring apps.
e.g.
[EMAIL PROTECTED] cvs]$ java -jar
geronimo/modules/assembly/target/geronimo-1.0-SNAPSHOT/bin/deployer.jar
--user system --password manager deploy foo.spr
Deployed
[EMAIL PROTECTED] cvs]$ java -jar
geronimo/modules/assembly/target/geronimo-1.0-SNAPSHOT/bin/deployer.jar
--user system --password manager undeploy
/tmp/deployer34206.tmpdir/foo.spr
Undeployed /tmp/deployer34206.tmpdir/foo.spr
[EMAIL PROTECTED] cvs]$
output from server :
23:39:45,704 INFO [Daemon] Server startup completed
PLANNING: /tmp/deployer34206.tmpdir/foo.spr
BUILDING: /tmp/deployer34206.tmpdir/foo.spr
23:40:23,556 INFO [XmlBeanDefinitionReader] Loading XML bean
definitions from class path resource [META-INF/spring.xml]
23:40:23,679 INFO [LocalConfigStore:config-store] Installed
configuration /tmp/deployer34206.tmpdir/foo.spr in location 16
23:40:23,730 INFO [ConfigurationManagerImpl] Loaded Configuration
geronimo.config:name="/tmp/deployer34206.tmpdir/foo.spr"
23:40:23,733 INFO [Configuration] Started configuration
/tmp/deployer34206.tmpdir/foo.spr
23:40:38,787 INFO [Container] Started HttpContext[/,/]
23:41:36,069 INFO [Configuration] Stopping configuration
/tmp/deployer34206.tmpdir/foo.spr
23:41:36,078 INFO [ConfigurationManagerImpl] Unloaded
Configuration geronimo.config:name="/tmp/deployer34206.tmpdir/foo.spr"
23:41:36,083 INFO [LocalConfigStore:config-store] Uninstalled
configuration /tmp/deployer34206.tmpdir/foo.spr
Functionality is rudimentary at the moment.
Only one GBean is created per Spring app.
We hope to add the following functionality soon :
1. Support for a META-INF/geronimo-spring.xml (internally or
externally) - this will be used to provide platform specific deploy
time metadata.
2. The possibility of exposing individual Spring generated beans as
GBeans in the Geronimo kernel with all attendant benefits -
management, monitoring and persistent configuration.
3. Transparent injection of platform hosted resources into Spring apps
- allowing seemless hookup between Spring composed apps running in
different containers within Geronimo.
4. Support for nested jars within the .spr.
5. Anything else that looks useful - please join this thread with your
ideas.
The code is in modules/spring-builder if you want to take a look.
If anyone can figure out how to move the Spring-related stuff out of
the j2ee-runtime-deployer-plan.xml and back into the
spring-deployer-plan.xml without losing the deployer they will have my
undying gratitude - I ran out of steam - maybe tomorrow :-)
We will be working closely with the Spring team on this
integration. We
hope that both Geronimo and Spring will benefit substantially from
this.
Enjoy,
Jules