Spring Dynamic Modules for OSGi(tm) Service Platforms
Introduction
The Spring Dynamic Modules for OSGi(tm) Service Platforms project makes it easy to build Spring applications that run in an OSGi framework. A Spring application written in this way provides better separation of modules, the ability to dynamically add, remove, and update modules in a running system, the ability to deploy multiple versions of a module simultaneously (and have clients automatically bind to the appropriate one), and a dynamic service model. OSGi is a registered trademark of the OSGi Alliance. Project name is used pending approval from the OSGi Alliance.
OSGi 4.2 introduces the Blueprint Service specification based on Spring Dynamic Modules project for which Spring DM (2.x) is the Reference Implementation (RI).
Migration to Eclipse Foundation
In late 2009, Spring DM has been contributed to the Eclipse Foundation as the Gemini Blueprint project. All new development is now hosted and released through the Eclipse foundation. Please see the Gemini Blueprint site for details.
For more information on the Gemini project and Spring DM donation see the links below:
- SpringSource official announcement
- Proposal blog post
- Eclipse Gemini proposal
Downloads
For Blueprint Service RI, use the 2.x+version.>
Spring Dynamic Modules users may also be interested in SpringSource dm Server, an open source, completely modular, OSGi-based Java application server (download). Its documentation is considered a supplement to Spring DM as it explains in detail, how OSGi can be used in various development and production scenarios.
Requirements
Spring DM 2.x:
- Java 1.5 (or greater)
- OSGi R4 (or greater) platform
(Spring DM is tested daily against Eclipse Equinox 3.5.x, Knopflerfish 3.x and Apache Felix 2.x) - Spring Framework 3.0.RC1 or greater
Spring DM 1.x:
- Java 1.4 (or greater)
- OSGi R4 (or greater) platform
(Spring DM is tested daily against Eclipse Equinox 3.3.x, Knopflerfish 2.2.x and Apache Felix 1.4.x) - Spring Framework 2.5.6 or greater
Current GA release - 1.2.1
- Download
- Reference Documentation (HTML | HTML Single | PDF)
- FAQ
- Known Issues
- Javadocs
- Changelog
Previous GA release - 1.1.3
- Download
- Reference Documentation (HTML | HTML Single | PDF)
- FAQ
- Known Issues
- Javadocs
- Changelog
Previous GA release - 1.0.3
- Download
- Reference Documentation (HTML | HTML Single | PDF)
- FAQ
- Known Issues
- Javadocs
- Changelog
Latest release - 2.0.0.M1
- Download
- Reference Documentation (HTML | HTML Single | PDF)
- FAQ
- Known Issues
- Javadocs
- Changelog
Documentation
- Reference documentation
- Screencasts
- SpringSource OSGi blog
- HOWTO create a new Spring Dynamic Modules bundle project
Books
(in chronological order)
- OSGi & Spring DM in action (in Korean)
- Spring Dynamic Modules in Action
- (on Spring DM and dm Server) Pro SpringSource dm Serverâ„¢
- Modular Java: Creating Flexible Applications with OSGi and Spring
- Pro Spring Dynamic Modules
Community Contributions
- Eclipse and Spring-DM tutorial (updated March 22, 2009)
- OSGi and Enteprise Development
- Agile RCP - Presenter First using Spring Dynamic Modules ( PDF | Sources)
- Dependency Injection for Eclipse Extensions
Additional Resources
- SpringSource.com: 1.0 Official Press Release
- InfoQ: Spring-DM 1.0 released
- JavaWorld: Introduction to Spring-DM
OSGi introductions
- DZone: Getting Started with Spring DM refcard
- OSGi.org links and resources
- Glyn Normington blog entry
Presentations
- Blueprint Service (2009)
- OSGi with Spring (2007)
- Spring OSGi (2006)
Follow the team members on Twitter at
- Adrian Colyer: adriancolyer
- Costin Leau: costinl
Samples
Support
For Developers
Snapshots
| Source code repository | (trunk | 1.2.x branch | 1.1.x branch) |
| Javadocs | (trunk | 1.2.x branch | 1.1.x branch) |
| Reference Documentation | trunk |
| Source code | (trunk | 1.2.x branch | 1.1.x branch) |
| Submodules reports | |
| Spring OSGi Core | (trunk | 1.2.x branch | 1.1.x branch) |
| Spring OSGi Extender | (trunk | 1.2.x branch | 1.1.x branch) |
| Spring OSGi JUnit support | (trunk | 1.2.x branch | 1.1.x branch) |
| Spring OSGi Mock | (trunk | 1.2.x branch | 1.1.x branch) |
| Spring OSGi Web | (trunk | 1.2.x branch | 1.1.x branch) |
| Spring OSGi Web Extender | (trunk | 1.2.x branch | 1.1.x branch) |
Maven Repositories
Milestone Repository
Milestone releases (such as 1.2.0-m1 or 1.1.0-rc1) are deployed at:
<repository>
<id>spring-maven-milestone</id>
<name>Springframework Maven Repository</name>
<url>http://maven.springframework.org/milestone</url>
</repository>
Nightly Builds Repository
Nightly snapshot builds are provided for testing and development purposes only. They are built by a Bamboo process automatically using the latest snapshot from Subversion.
The snapshots are deployed to a Maven2 snapshot repository (browsable here). To use them, just add the following repository to the POM:
<repository>
<id>spring-maven-snapshot</id>
<snapshots><enabled>true</enabled></snapshots>
<name>Springframework Maven SNAPSHOT Repository</name>
<url>http://maven.springframework.org/snapshot</url>
</repository>
Individual dependencies can then by added like so:
<dependency> <groupId>org.springframework.osgi</groupId> <artifactId>spring-osgi-core</artifactId> <version>1.0-XXX-SNAPSHOT</version> </dependency>
OSGified Artifacts Repository
OSGified artifacts (such as catalina jasper) are provided for development purposes at:
<repository>
<id>spring-osgified-artifacts</id>
<snapshots><enabled>true</enabled></snapshots>
<name>Springframework Maven OSGified Artifacts Repository</name>
<url>http://maven.springframework.org/osgi</url>
</repository>
Note that the repository is used internally by Spring DM and it is not supported.











