20
votes

Where can I find OSGi bundles for Spring 4? I checked http://ebr.springsource.com/ but can only find Spring 3.2.x and the artifacts in Maven Central are not bundles.

Clarification

I'm not looking for Spring DM or similar. I'm looking for the "Spring Framework" JARs (spring-core, spring-beans, spring-context, …) as OSGi bundles. I'm not trying to create an application context in an OSGi environment. I just need the (exception) classes in an OSGi environment.

5
This thread theserverside.com/discussions/thread.tss?thread_id=71606 suggests it all moved to eclipse.org/gemini a while ago.pd40
The way I read it that was Spring DM. That's not what I'm looking for. I'm just looking for spring-core, spring-context, spring-beans, … OSGi bundles.Philippe Marschall
Good question. I found a list of repos here versioneye.com/java/org.springframework:spring-core/…. Seems after 3.2.5 the bundles are not there.pd40
That spring ebr repo is going away (look at the FAQs). I guess you can "osgify" your own bundles :) Just create a POM with say spring-core dependency then using the bnd plugin private-package everything.codesalsa

5 Answers

17
votes

Spring will NOT support any further releases as OSGi bundles. The official support has been stopped with spring 3.2.4 (although you could find 3.2.5 artifacts here, contradicting the statement made in the Eclipse Forum)

Glyn Normington from Spring source acknowledged that in several places, see here:

However, there is hope. On the Karaf - dev list, one can read that they intend to support spring libraries in the ServiceMix project. Details in the entire thread see here.

15
votes

I found ServiceMix had provided OSGi-fy Spring bundles up to ver. 4.1.4, http://repo2.maven.org/maven2/org/apache/servicemix/bundles/org.apache.servicemix.bundles.spring-aop/

I tried it in my osgi Bundle project, to set dependeny like that :

 <dependency>
        <groupId>org.apache.servicemix.bundles</groupId>
        <artifactId>org.apache.servicemix.bundles.spring-core</artifactId>
        <version>4.1.1.RELEASE_3</version>
 </dependency>

Run in Felix a found sprint bundles are activated :

START LEVEL 1
 ID|State      |Level|Name
...
5|Resolved   |    1|Apache ServiceMix :: Bundles :: spring-expression (4.1.1.RELEASE_3)
6|Active     |    1|Apache Felix Gogo Command (0.14.0)
7|Active     |    1|Apache Felix Gogo Runtime (0.12.1)
8|Active     |    1|Apache Felix Gogo Shell (0.10.0)
...
10|Active     |    1|Apache ServiceMix :: Bundles :: spring-context (4.1.1.RELEASE_3)
11|Active     |    1|Apache ServiceMix :: Bundles :: spring-core (4.1.1.RELEASE_3)
.... 

But in it's latest release 5.4.0, ServiceMix only include spring 3.2.11.

Is there any risk when use spring 4.1.1 in my OSGi environment?

13
votes

Spring source stopped creating jars with OSGI heaaders last year: http://www.infoq.com/news/2012/10/spring-osgi-gradle/

I do not think you will get an official maven repo containing OSGI bundles for spring. We use http://ebr.springsource.com/ frequently for OSGI bundles, but even that does not contain any version after 3.2

Could not add as comment due to low repo, hence adding as answer.

6
votes

I must say that migrating Spring to OSGi is still live in Apache ServiceMix. Get the latest(4.0.2.RELEASE) Spring artifacts with OSGi-enabled manifest from maven repo

0
votes