Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.
Comment: Migrated to Confluence 5.3

In SCA, applications are packaged in one or more contributions. Contributions can be a variety of formats. Fabric3 supports the following formats and can be extended to support others:

  • JAR archives
  • OSGi bundles
  • WAR archives
  • ZIP archives
  • XML documents 

JAR contributions

Most SCA applications will be packaged as one or more JARs. In addition to including application classes and artifacts, a JAR-based contribution may contain an sca-contribution.xml manifest file in the META-INF directory. This manifest file contains contribution metadata, including a list of deployable composites. Deployable composites are those composites that are contained in the contribution which may be deployed to a domain. A contribution may contain other composites but if they are not marked as deployable, they may not be directly included in the domain (i.e. they may only be used by a deployable composite). An example sca-contribution.xml file is shown below:

...


<contribution xmlns="http://docs.oasis-open.org/ns/opencsa/sca/200912" xmlns:sample="urn:tempuri.org">
   <deployable composite="sample:TheComposite"/>
</contribution>

Applications often require third-party libraries. Fabric3 supports two ways of packaging and deploying these libraries: by embedding them in the JAR; and importing them from another contribution. Similar to WARs, Fabric3 allows contribution JARs to bundle third-party libraries by placing their JARs in the META-INF/lib directory of the contribution. Any JAR placed in the META-INF/lib directory will be made available on the contribution classpath.

The Fabric3 Contribution Plugin

...

Contribution Imports and Exports

...

  • XML resource sharing
  • Java package sharing
  •  

In both cases, a resource (or set of resources) are exported by one contribution and imported by another. Imports and exports are specified in the contribution manifest file.

XML Resource Sharing

...

Java Package Sharing

...

Fabric3 and OSGi Classloading

...

OSGi Bundles

...

WAR Archives

...

Excluding Contribution Contents

Sometimes it is necessary to exclude contents of a contribution from being scanned. For example, generated XML files that contain invalid markup. Exclude patters can be specified using the <scan> element from the Fabric3 namespace in an sca-contribution.xml manifest with a REGEX pattern:
<contribution ....>
<f3:scan exclude=".*\.ds\.xml"/>
</contribution>This chapter covers application and runtime packaging, including best practices for preparing code for deployment.

Page Tree
root@self