Programación en castellano Añadir una dirección | Buscador | Cursos | Artículos | Foros | Formación

Sistema de Nombrado en Java (JNDI) [Parte I]
Autor: Sun
Traductor: Juan Antonio Palos (Ozito)


En esta página:


Personalizar un Proveedor de Servicios

Las propiedades de entorno permiten a una aplicación y a un usuario personalizar el uso del JNDI. Podemos personalizar un proveedor de servicio particular usando un fichero de recursos de proveedor. Al igual que un fichero de recursos de aplicación, un fichero de recursos de proveedor contiene parejas de clave/valor presentadas en el formato de propiedades de fichero (ver java.util.Properties).

Un fichero de recursos de proveedor tiene el nombre.

prefijo/]jndiprovider.properties

donde prefijo es el nombre de la implementación del contexto del proveedor, con cada punto convertido en una barra inclinidad. Por ejemplo, supongamos que el nombre de la clase de la implementación del contexto es com.sun.jndi.ldap.LdapCtx; su nombre de fichero de recursos de proveedor sería "com/sun/jndi/ldap/jndiprovider.properties".

Mientras que una simple aplicación puede usar varios ficheros de recursos de aplicación, sólo puede haber un fichero de recursos de proveedor por cada provedor. De echo, el fichero de recursos de proveedor normalmente viene empaquetado con el proveedor de servicios y se carga usando el mismo cargador de clases que carga el proveedor de servicios.

Utilización

El fichero de recursos del proveedor tiene dos propósitos. Primero, permitir al proveedor de servicios construirse sin componentes cableados, como un objeto o factorias de estado, y a la vez permite especificar algunos valores por defecto.

Segundo, puede usarse como un mecanismo de despliegue. Por ejemplo, supongamos que obtenemos un proveedor de servicio LDAP de un vendedor. Podemos personalizar ese proveedor añadiendo, por ejemplo, algunos objetos y factorías de estado disponibles para nuestro enterprise, como factorías para contabilidad y objetos de empleados. Cuando nuestras aplicaciones con enterprise usen este proveedor, aquellas factorías de estado se utilizarán atomáticamente sin que la aplicación o el usuario hayan especificado las propiedades relevantes mediante ficheros de recursos de aplicación, propiedades de sistema, parámetros de applets o parámetros del entorno del contexto inicial.

El grado en que podemos manipular el fichero de recursos de un proveedor de servicios depende de cómo esté empaquetado el propio proveedor. Por ejemplo si el proveedor está empaquetado en un fichero JAR, podemos suministar un fichero de recursos de proveedor actualizado extrayendo primero los contenidos del fichero JAR y reempaquetándolos con el nuevo fichero de recursos actualizado.

Observa que este procedimiento no está recomendado para los proveedores de servicios que están enpaquetados en la Java 2 SDK/JRE, Standard Edition, v1.3. Para estos proveedores de servicios no deberíamos intentar actualizar los ficheros de recursos de proveedor. En su lugar, deberíamos usar ficheros de recursos de aplicación como se describio en una lección anterior.

Propiedades Afectadas

Aunque un fichero de recursos de proveedor puede contener cualquier propiedad, el JNDI busca sólo las siguientes propiedades en un fichero de recursos de proveedor.

java.naming.factory.object
java.naming.factory.state
java.naming.factory.control
java.naming.factory.url.pkgs

Al contrario que los contenidos de un fichero de recursos de aplicación, los contenidos de un fichero de recursos de proveedor no se añaden al entorno. En su lugar, estos contenidos aumentan el valor del entorno suministrado a los siguientes métodos.

Cuando un proveedor de servicio llama a uno de estos métodos, le suministra un ejemplar del Context desde el que se llama al método y el entorno del contexto. El JNDI usa el cargador de clases del contexto para encontrar el fichero de recursos del proveedor y añadir los valores de la propiedad (importantes para el método) a la misma propiedad encontrada en el entorno. Luego usa la propiedad resultante como una lista ordenada de factorías donde buscar.

Por ejemplo, supongamos que el proveedor de servicios LDAP, está implementado usando la clase  com.sun.jndi.ldap.LdapCtx, llama a DirectoryManager.getObjectInstance(). El JNDI encontrará el valor de la propiedad "java.naming.factory.object" desde el fichero com/sun/jndi/ldap/jndiprovider.properties y lo añade al valor de la propiedad "java.naming.factory.object" encontrada en el parámetro de  entorno (Hashtable). El JNDI usa esta lista de factorías para encontrar una factoría de objetos que devuelva una respuesta no-null.

Un proveedor de servicios es libre para acceder a otras propiedades del fichero de recursos de proveedor pero el comportamiento es específico del proveedor.


Principio Página
© 1999-2002, Programación en castellano, s.l.
Contacto - Datos legales

ReD Internet: Hospedaje Web | envio sms gratis | Salvapantallas | Fondos de Escritorio, famosas | melodias moviles gratis| Gratis