Open Development Platform

Eclipse Platform

Subscribe to Eclipse Platform: eMailAlertsEmail Alerts newslettersWeekly Newsletters
Get Eclipse Platform: homepageHomepage mobileMobile rssRSS facebookFacebook twitterTwitter linkedinLinkedIn

Eclipse Platform Authors: Janakiram MSV, Ken Fogel, Marcin Warpechowski, Michael Meiner, Liz McMillan

Related Topics: OSGi, Eclipse Platform, Java Developer Magazine

Blog Feed Post

A Closer Look - OSGi Enablement for Tuscany 2.0

As mentioned in the recent Apache Tuscany SCA 2.0 M1 Announce, Tuscany is moving to support running in an OSGi enabled environment. What exactly does that mean and what are the benefits?

As Tuscany is implemented in the 1.x release, all dependencies are included in one monolithic runtime, a giant sea of classes, all loaded at startup time by a single Java Virtual Machine. There can be versioning problems, dependency clashes, and support problems in this environment (luckily developers take care of this for you.)

With the Tuscany 2.x releases, dependencies are loaded and enabled by the OSGi Dynamic Module System for Java. This unleashes the capability for managed runtimes that can include all or part of a dependency tree. Dependencies can be included and enabled as needed. Runtimes can have modules with different version numbers.

In summary, OSGi enablement:
* Provides modularity for Tuscany to formalize the SPI contracts and enforce the package dependencies across modules.
* Provides versioning and isolation so that Tuscany extensions can depend on different versions of the same library.
* Provides dynamic lifecycle for extensions, to install, uninstall, start, and stop a module.
* Enable Tuscany to work with OSGi environment such as JEE application servers, Eclipse RCP or Spring DM (see

With this OSGi enablement, Tuscany can run in the following environments:
* Java SE with embedded OSGi runtime such as Eclipse Equinox and Apache Felix.
* Inside Eclipse development environment.
* Maven Surefire plugin for testing.
* External OSGi runtime such as Eclipse or Felix Shell.
* Other environment such as JEE (Web Container, EJB container).

Read more about it on the Apache Tuscany site or stayed tuned to this blog.

Read the original blog entry...

More Stories By Raymond Feng

Raymond Feng is a senior software engineer with IBM. He is now working on the Service Component Architecture (SCA) runtime implementation in Apache Tuscany project as a committer. Raymond has been developing SOA for more than 4 years and he was a key developer and team lead for WebSphere Process Server products since 2002.