When you convert an enterprise archive (EAR) file to an enterprise bundle archive (EBA)
file, you complete manual tasks to convert any web application archive (WAR) files in the EAR file
to OSGi web application bundles.
Note: If you do not convert a WAR file manually, it is converted automatically when the containing
EBA file is imported as an asset. However, by completing all of the manual steps that are
described here, you can ensure that your web application bundle is configured correctly for your
deployment environment.
To convert a WAR file to
an OSGi web application bundle, complete the following steps:
- Change the file extension from .war to .jar.
- Define general bundle metadata by adding the following
headers to the bundle manifest file, META-INF/MANIFEST.MF:
- Bundle-ManifestVersion
- The version of the syntax in which the bundle manifest file is written. For OSGi Service
Platform Release 4, set the value to 2.
- Bundle-Name
- A human-readable name for the bundle.
- Bundle-SymbolicName
- A non-localizable name that identifies the bundle uniquely.
- Bundle-Version
- The version of the bundle. For more information, see the description of the Bundle-Version header in the
bundle manifest file.
- Import-Package
- The external packages on which the bundle depends. For more information, see the description of
the Import-Package header in
the bundle manifest file.
- Export-Package
- The packages that are visible outside the bundle. For more information, see the description of
the Export-Package header in
the bundle manifest file.
- Define bundle-type-specific metadata by adding the following headers to the bundle manifest file:
- Export-EJB
- The presence of this header identifies the bundle as containing enterprise beans that are to be
loaded and run by the EJB container. Optionally, you can specify, as the value of the this header,
the list of enterprise beans that you want to export as OSGi services. For more information, see the
description of the Export-EJB
header in the bundle manifest file.
- Web-ContextPath
- The default context from which the web content is hosted.
You must set the value of the
Web-ContextPath header to the value of the <context-root> element for the corresponding web
module in the application.xml file of the enterprise application EAR file.
- Specify the bundle classpath by adding a Bundle-Classpath header to the bundle manifest
file.
You must set the value of the Bundle-Classpath header to a comma-separated list of
the names of all the JAR files and class subfolders that are contained in the
WEB-INF/lib folder of the WAR file. Using a value of
./ can be an expensive operation. Making the path more explicit, for
example by specifying WEB-INF/classes or
WEB-INF/lib/acme.jar, rather than ./, can improve
performance.
For more information on the security implications of placing compiled
source code outside of WEB-INF, see section 128.3.5 of the OSGi Service
Platform Release 5 Enterprise Specification.