Migrating from Gemini Blueprint 1.0.x to 2.0.0

  • Bug 356683: extender configuration is created once rather than twice and then applied to both Blueprint and Spring DM extenders.
  • Bug 393960: Gemini Blueprint 2.0.0 is built with Java 6, unlike 1.0.x which was built with Java 5.
  • Bug 394116: No attempt is made to activate bundles with a lazy activation policy. The 1.0.x code attempted to do this but was only successful on Equinox due to an Equinox bug nnnnnn which is now fixed.

Migrating from Spring Dynamic Modules to Eclipse Gemini Blueprint

This guide is aimed at helping developers using Spring DM in their application to migrate to Eclipse Gemini Blueprint.

Overview

Gemini Blueprint was created through the migration of Spring Dynamic Modules to the Eclipse Foundation. While certain things have changed in the process, mainly to reflect the new project name and hosting infrastructure, the project architecture, ideas, code base and dependencies have remained intact. Use this to your advantage when encountering errors, by looking first for references to 'old' packages or classes as these are likely to be the problem in the vast majority of cases.

1.0.0.RC1

Changed Package Name

The most disruptive change for Spring DM users when transitioning to Gemini Blueprint is the renaming of the project packages: from org.springframework.osgi to org.eclipse.gemini.blueprint. If you are referring to the Spring DM classes, in any way, either inside Java code or XML configuration, you need to update the package.
The actual class names and method signatures have not been changed so in most cases the changed can be accommodated through a simple "search & replace" operation.
Note that for configuration purposes, one can shield itself from the package change by relying on the Spring DM/Eclipse Gemini Blueprint namespaces which hide the actual classes used for configuring, making the change transparent.

Changed Exported Packages (Versions Included)

Inherent to the package name changes, the artifact manifests have been updated as well. Besides changing the imported package names as indicated above, consumers should modify the imported version to 1.0.0 (or 1.0.0.M1 for wiring only to the M1 artifact).

Deprecated Namespace/Schema Location

The existing Spring DM schema definition (named spring-osgi.xsd and located at http://www.springframework.org/schema/osgi) are still available and supported by Eclipse Gemini Blueprint. However we recommend users to migrate to the newly added schemas at http://www.eclipse.org/gemini/blueprint/schema/blueprint/gemini-blueprint.xsd and http://www.eclipse.org/gemini/blueprint/schema/blueprint-compendium/gemini-blueprint-compendium.xsd. Except for the schema location, the new schemas are identical to the old ones and will be the target of any new improvements and further development.

Deprecated Spring-DM specific service properties

Similar to the schema deprecation, the Spring-DM specific properties on exported services (such as org.springframework.osgi.bean.name) have been deprecated. While they are still supported users are recommended to use the newly introduced Gemini Blueprint props (simply replace org.sprinframework.osgi prefix with org.eclipse.gemini.blueprint).

Removed deprecated classes

During the move, several deprecated or unused classes have been removed. If you cannot find a class name in the new package, it's likely that it has been removed in the process. Feel free to confirm this over the forums.

Removed deprecated modules

As of Gemini Blueprint M1, not all modules or projects inside Spring DM have been moved. At the moment only the io, core, extender and test modules have transitioned are provided in M1. With the up-coming release of OSGi RFC-66, the web support is being discontinued. Existing users are encouraged to look at Eclipse Gemini Web project. The plans for the Maven archetype and annotation extension are undefined for the moment and these modules are NOT included in Gemini Blueprint project.

Changed Maven artifact groupId/artifactId and repository

The Maven artifacts have changed as well during the transition. For the time being, the artifacts are hosted at a new repository (zodiac.springsource.com):

  <repository>
    <id>zodiac-repository</id>
    <name>Zodiac Milestone Repository</name>
    <url>http://zodiac.springsource.com/maven/bundles/milestone</url>
  </repository>
  	 
The groupId has changed from org.springframework.osgi to org.eclipse.gemini.blueprint and artifactId from spring-osgi-* to gemini-blueprint-* (e.g. spring-osgi-core is now gemini-blueprint-core).

The content and names of the artifacts have remained mainly unchanged.