Equinox Spring Integration
Discussion of integrating Spring with OSGi are going on in the Spring-OSGi mailing list.
The following are steps to getting started with integrating Spring with the Equinox OSGi implementation. These directions assume you already have access to the Spring-OSGi Subversion repository. If you don't have access, stay tuned for details on when the repository will be made public.
- Download Maven 2
- Install Maven 2 according to provided instructions in README.txt
- Install the Subversion Plug-in for Eclipse
- Create your Eclipse workspace, and associate it with Maven by running "mvn -Declipse.workspace=<path-to-eclipse-workspace> eclipse:add-maven-repo"
- Checkout Spring from the Spring CVS repository: :pserver:email@example.com:/cvsroot/springframework
- Within Eclipse, run the build.xml in the project root directory with target "mvn.install.jars"; This will put the Spring JARs in your local Maven repository
- Checkout Spring-OSGi from Subversion
- Populate your local maven repository with the OSGi frameworks: Execute the /spring-osgi/add-frameworks.xml ant script; if you run this from within Eclipse you may need to add the maven/bin directory to your path in the Ant launch configuration dialog.
- Run the maven command "mvn clean install" from the project root to compile and deploy this as an OSGi bundle in your local maven repository.
Running the spell checking example:
- Run "mvn install" from the spring-osgi/samples/spell-checker directory.
- You can now either hack the file spring-osgi/samples/spell-checker/run/config.ini to fix the paths to your local maven repository, and run with the provided build.xml script, or ...
- Copy the bundles listed in config.ini into some directory on your local disk (c:\spring-osgi\plugins); The util-1.0-SNAPSHOT.jar and apache-commons-1.0.jar won't be found, but they don't seem to be needed for anything
- Change the Plugin Development target platform to be this directory (c:\spring-osgi)
- Create an OSGi Framework launch configuration
- Set the start level of each bundle so that they are started in this order:
- Finally, run the launch configuration. From the console, manually increment the start level until all bundles are active