Spring Roo 1.0.0 emitted OSGi-compliant applications. We used the SpringSource Enterprise Bundle Repository (EBR) to access OSGi-enabled bundles (JARs) with correct manifests etc. Tasks such as
ROO-138 enabled use of the SpringSource Bundlor utility to help create compliant manifests for Roo-based projects.
After considerable community demand (as shown in
ROO-713 and ROO-973), in Spring Roo 1.1.0 we shifted to using Maven Central as the default source of JARs for Roo-based projects. In doing so many of the Maven Central-hosted dependencies needed to build an OSGi-compliant application were no longer valid bundles.
Quite paradoxically given the above changes, in Roo 1.1.0 we changed Roo itself to start using OSGi as its foundation (see
ROO-728). I actually quite like OSGi and it's a perfect fit for Roo given its modularity requirements. In Roo's case we established a JAR wrapping model (see ROO-977) to handle acquiring OSGi compliant bundles for the few external JARs that Roo and its major add-ons require. But for an enterprise application there are too many non-bundle JARs sourced from Maven Central and a wrapping model therefore isn't particularly feasible.
I'm going to leave this task open to see how many votes it receives. If a large number of votes are forthcoming we could probably produce some documentation explaining how to turn a Roo project into an OSGi-compliant bundle, which JPA implementations are available in that form and so on. But it's worth noting that third-party Roo add-ons in particular will likely use non-compliant JARs (ie not bundles) and this will break efforts to make OSGi applications via Roo.
People interested in using Roo to build OSGi-compliant applications are encouraged to document in the comments of this task the bundles they used and which server they deployed to. This will help others, plus allow us to see the gap in missing bundles.