Paquetes opcionales instalados
Los Paquetes opcionales instalados permiten a las aplicaciones utilizar las clases de los archivos Java™ Archive (.jar) sin necesidad de incluirlos explícitamente en una classpath. Un paquete opcional instalado es un archivo .jar que contiene etiquetas especializadas en su archivo de manifiesto con los que el servidor de aplicaciones puede identificarlo. Un paquete opcional instalado declara uno o varios archivos .jar de biblioteca compartida en el archivo de manifiesto de una aplicación. Cuando se instala la aplicación en un servidor o un clúster, las clases representadas por las bibliotecas compartidas se cargan en el cargador de clases de la aplicación, con lo que las clases pasan a estar disponibles para la aplicación.
Cuando se instala una aplicación Java EE (Java Platform, Enterprise Edition) en un servidor o en un clúster, se especifica información de dependencia en su archivo de manifiesto. El producto lee la información de dependencia de la aplicación (el archivo .ear) para asociar automáticamente la aplicación con un archivo .jar del paquete opcional instalado. El producto añade los archivos .jar de los paquetes opcionales instalados a la vía de acceso de clases de la aplicación. Las clases de los paquetes opcionales instalados pasan a estar disponibles para las clases de aplicación.
Los paquetes opcionales instalados que utiliza el producto se describen en la sección 8.2 de la especificación J2EE (Java 2 Platform, Enterprise Edition), Versión 1.4 en http://docs.oracle.com/javaee/.
El producto da soporte al uso del archivo de manifiesto (manifest.mf) en archivos .jar de biblioteca compartida y archivos .ear de aplicación. El producto no da soporte a la semántica del paquete opcional instalado J2SE (Java 2 Platform Standard Edition) utilizada en la especificación J2SE (http://docs.oracle.com/javase/1.3/docs/), la cual primordialmente se utiliza en el entorno del applet. El producto ignora los códigos específicos de applet en los archivos de manifiesto.
Archivo manifest.mf de ejemplo
A continuación, se proporciona un archivo de manifiesto de ejemplo para un archivo app1.ear de aplicación que hace referencia a un solo archivo util.jar de biblioteca compartida:
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
La sintaxis de una entrada de manifiesto depende de si la entrada se aplica a un miembro con un rol de definición (la biblioteca compartida) o a un miembro con un rol de referencia (una aplicación Java EE o un módulo dentro de una aplicación Java EE).
Etiquetas de entradas de manifiesto
Las entradas de manifiesto utilizan las siguientes etiquetas principales:
- Extension-List
- Una etiqueta necesaria con una sintaxis variable. Dentro del contexto del rol de referencia (el manifiesto de la aplicación), es una lista delimitada por espacios que identifica y construye símbolos exclusivos Extension-Name, Extension-Specification para cada elemento de la lista. Dentro del contexto del rol de definición (biblioteca compartida), este símbolo no es válido.
- Extension-Name
- Una etiqueta necesaria que proporciona un nombre y enlaza los miembros de definición y de referencia. La sintaxis del elemento dentro del rol de referencia es colocar la serie <ListElement> como prefijo del elemento. Para cada elemento en Extension-List, hay un distintivo <ListElement>-Extension-Name correspondiente. El valor literal de la serie de definición de este símbolo (en el ejemplo anterior, com/example/util1) se utiliza para comparar (en una prueba de igualdad) los símbolos correspondientes entre los roles de definición y de referencia.
- Specification-Version
- Una etiqueta necesaria que identifica la versión de la especificación y enlaza los miembros de definición y de referencia.
- Implementation-Version
- Una etiqueta opcional que identifica la versión de la implementación y enlaza los miembros de definición y de referencia.
Encontrará más información sobre estas etiquetas en la especificación de archivo .jar en http://docs.oracle.com/javase/1.4.2/docs/.