Installed optional packages enable applications to use the classes in Java™ archive (.jar) files without having to include them explicitly in a class path. An installed optional package is a .jar file containing specialized tags in its manifest file that enable the application server to identify it. An installed optional package declares one or more shared library .jar files in the manifest file of an application. When the application is installed on a server, the classes represented by the shared libraries are loaded in the class loader of the application, making the classes available to the application.
When a Java Platform, Enterprise Edition (Java EE) application is installed on a server, dependency information is specified in its manifest file. The product reads the dependency information of the application (.ear file) to automatically associate the application with an installed optional package .jar file. The product adds the .jar files in associated optional packages to the application class path. Classes in the installed optional packages are then available to application classes.
Installed optional packages used by the product are described in section 8.2 of the Java 2 Platform, Enterprise Edition (J2EE) specification, Version 1.4 at http://java.sun.com/j2ee/j2ee-1_4-fr-spec.pdf.
The product supports using the manifest file (manifest.mf) in shared library .jar files and application .ear files. The product does not support the Java 2 Platform Standard Edition (J2SE) Installed Optional Package semantics used in the J2SE specification (http://java.sun.com/j2se/1.3/docs/guide/extensions/spec.html), which primarily serve the applet environment. The product ignores applet-specific tags within manifest files.
A sample manifest file follows for an application app1.ear that refers to a single shared library file util.jar:
app1.ear: META-INF/application.xml ejb1.jar: META-INF/MANIFEST.MF: Extension-List: util util-Extension-Name: com/example/util util-Specification-Version: 1.4 META-INF/ejb-jar.xml util.jar: META-INF/MANIFEST.MF: Extension-Name: com/example/util Specification-Title: example.com's util package Specification-Version: 1.4 Specification-Vendor: example.com Implementation-Version: build96
The syntax of a manifest entry depends on whether the entry applies to a member with a defining role (the shared library) or a member with a referencing role (a Java EE application or a module within a Java EE application).
Main tags used for manifest entries include the following:
Further information on these tags is in the .jar file specification at http://java.sun.com/j2se/1.4.2/docs/guide/jar/jar.html#Manifest%20Specification.