OSGi Aware Programming in Tuscany (TUSCANY) created by Luciano Resende
http://cwiki.apache.org/confluence/display/TUSCANY/OSGi+Aware+Programming+in+Tuscany
Content:
---------------------------------------------------------------------
h4.Motivation for OSGi
The Apache Tuscany project has become a large project, with various
extensions and component types that brings to the SCA Runtime different levels
of dependencies. With its growth, Tuscany also started to have it's SPIs
violated by some of these extensions, and some of the boundaries between
sub-systems are broken, as there wasn't any enforcement of these boundaries.
The OSGi model provides a very powerful and flexible framework to develop
applications in a modular fashion with a high degree of control over
classloading inter-dependencies over modules. An OSGi module (a.k.a bundle)
have a manifest file (META-INF\manifest.mf) that contains module information
such as "name", "version" and also a list of what packages are being exported,
and what packages are being imported from the given bundle, providing ways to
easily enforce module boundaries.
h4.Tuscany and OSGi - 3rd party dependencies
Currently we are wrapping the 3rd party dependencies as OSGi bundles, but
leaving it unpacked (a.k.a folder structure)
h4.Tuscany and OSGi - Granularity
The granularity used to define modules should be very familiar to all
tuscany developers,
Tuscany Modules --> OSGi Modules
3rd Party Libraries --> OSGi Modules (using unpacked wrap style bundle)
h4.Defining a OSGi bundle
{code}
Manifest-Version: 1.0
Export-Package: org.apache.tuscany.sca.assembly;uses:="javax.xml.xpath
,org.apache.tuscany.sca.assembly.impl,org.apache.tuscany.sca.policy,o
rg.apache.tuscany.sca.interfacedef,javax.xml.namespace";version="1.4"
,org.apache.tuscany.sca.assembly.impl;uses:="javax.xml.xpath,org.apac
he.tuscany.sca.assembly,org.apache.tuscany.sca.policy,org.apache.tusc
any.sca.interfacedef,javax.xml.namespace";version="1.4",org.apache.tu
scany.sca.assembly.builder;uses:="org.apache.tuscany.sca.assembly,org
.apache.tuscany.sca.definitions,org.apache.tuscany.sca.core,org.apach
e.tuscany.sca.monitor,org.apache.tuscany.sca.interfacedef,org.apache.
tuscany.sca.extensibility";version="1.4"
Private-Package: org.apache.tuscany.sca.assembly.builder.impl;version=
"1.4"
Tool: Bnd-0.0.255
Bundle-Name: Apache Tuscany SCA Assembly Model
Created-By: 1.6.0_07 (Sun Microsystems Inc.)
Bundle-Vendor: The Apache Software Foundation
Bundle-Version: 1.4
Bnd-LastModified: 1225397097203
Bundle-ManifestVersion: 2
Bundle-License: http://www.apache.org/licenses/LICENSE-2.0.txt
Bundle-Description: Apache Tuscany SCA Assembly Model
Import-Package: javax.xml.namespace,javax.xml.parsers,javax.xml.transf
orm,javax.xml.transform.dom,javax.xml.transform.sax,javax.xml.xpath,o
rg.apache.tuscany.sca.assembly;version="1.4",org.apache.tuscany.sca.a
ssembly.builder;version="1.4",org.apache.tuscany.sca.assembly.impl;ve
rsion="1.4",org.apache.tuscany.sca.core;version="1.4",org.apache.tusc
any.sca.definitions;version="1.4",org.apache.tuscany.sca.extensibilit
y;version="1.4",org.apache.tuscany.sca.interfacedef;version="1.4",org
.apache.tuscany.sca.monitor;version="1.4",org.apache.tuscany.sca.poli
cy;version="1.4",org.apache.tuscany.sca.policy.util;version="1.4",org
.w3c.dom,org.xml.sax,junit.framework;resolution:=optional,org.apache.
tuscany.sca.interfacedef.impl;version="1.4";resolution:=optional,org.
junit;resolution:=optional
Bundle-SymbolicName: org.apache.tuscany.sca.assembly
Bundle-DocURL: http://www.apache.org/
{code}
---------------------------------------------------------------------
CONFLUENCE INFORMATION
This message is automatically generated by Confluence
Unsubscribe or edit your notifications preferences
http://cwiki.apache.org/confluence/users/viewnotifications.action
If you think it was sent incorrectly contact one of the administrators
http://cwiki.apache.org/confluence/administrators.action
If you want more information on Confluence, or have a bug to report see
http://www.atlassian.com/software/confluence