type=page
status=published
title=Packaging, Integrating, and Delivering an Add-On Component
next=integration-point-reference.html
prev=session-persistence-modules.html
~~~~~~

= Packaging, Integrating, and Delivering an Add-On Component

[[GSACG00009]][[ghmxp]]


[[packaging-integrating-and-delivering-an-add-on-component]]
== Packaging, Integrating, and Delivering an Add-On Component

Packaging an add-on component enables the component to interact with the
{productName} kernel in the same way as other components. Integrating
a component with {productName} enables {productName} to discover
the component at runtime. If an add-on component is an extension or
update to existing installations of {productName}, deliver the
component through Update Tool.

The following topics are addressed here:

* link:#ghpun[Packaging an Add-On Component]
* link:#ghmne[Integrating an Add-On Component With {productName}]
* link:#ghpuz[Delivering an Add-On Component Through Update Tool]

[[ghpun]][[GSACG00142]][[packaging-an-add-on-component]]

=== Packaging an Add-On Component

To enable an add-on component to plug in to the {productName} kernel
in the same way as other components, package the component as an OSGi
bundle.

A bundle is the unit of deployment in the OSGi module management
subsystem. To package a component as an OSGi bundle, package the
component's constituent files in a Java archive (JAR) file with
appropriate manifest entries. The manifest entries provide information
about the component that is required to enable the component to be
plugged into the {productName} kernel, such as:

* Name
* Version
* Dependencies
* Capabilities

[[ghmne]][[GSACG00143]][[integrating-an-add-on-component-with-glassfish-server]]

=== Integrating an Add-On Component With {productName}

Integrating an add-on component with {productName} enables {productName} to
discover the component at runtime. To integrate an add-on
component with {productName}, ensure that the JAR file that contains
the component is copied to or installed in the as-install``/modules/`` directory.

[[ghpuz]][[GSACG00144]][[delivering-an-add-on-component-through-update-tool]]

=== Delivering an Add-On Component Through Update Tool

If an add-on component is an extension or update to existing
installations of {productName}, deliver the component through Update
Tool. To deliver an add-on component through Update Tool, create an
Image Packaging System (IPS) package to contain the component and add
the package to a suitable IPS package repository.

For information about how to create IPS packages, see the
http://wikis.oracle.com/display/IpsBestPractices/[IPS best practices
document] (`http://wikis.oracle.com/display/IpsBestPractices/`).

