La lecci�n La Gran Imagen explic� que un proveedor de servicio normalmente contiene varios componentes. Normalmente un proveedor de servicio se entrega empaquetando todos sus componentes en un fichero JAR. Este fichero deber�a contener los ficheros class de los diferentes componentes y los ficheros de recursos JNDI. Los ficheros de recursos permiten a los programas usar el proveedor de servicio con una m�nima configuraci�n.
Aqu� tenemos los contenidos de un fichero JAR para un ejemplo t�pico de proveedor de servicio:
tut/SampleContextImpl.class tut/SampleContextImpl$Parser.class tut/SampleContextImpl$ListEnum.class tut/SampleContextImpl$BindingEnum.class tut/SampleContextImpl$SearchEnum.class tut/SampleInitialContextFactory.class tut/OneObjectFactory.class tut/TwoObjectFactory.class tut/ThreeObjectFactory.class tut/OneStateFactory.class tut/TwoStateFactory.class tut/SampleResponseControlFactory.class tut/OneResponseControl.class tut/TwoResponseControl.class tut/ThreeResponseControl.class tut/SampleObjectFactory.class tut/sam/samURLContextFactory.class tut/sam/samURLContext.class tut/jndiprovider.properties jndi.properties
Este proveedor de ejemplo est� en el paquete tut. Contiene una implementaci�n de contexto (tut.SampleContextImpl y sus clases internas) y una factor�a de contextos iniciales (tut.SampleInitialContextFactory). Usa varias factor�as de objetos, de estado y de controles de respuesta, algunas de las cuales est�n incluidas en los ficheros de recursos del proveedor, tut/jndiprovider.properties. El contenido de este fichero es el siguiente:
java.naming.factory.object=tut.ThreeObjectFactory java.naming.factory.state=tut.OneStateFactory:tut.TwoStateFactory java.naming.factory.control=tut.SampleResponseControlFactory
El incluir este fichero hace que las factor�as listadas sean visibles s�lo para esta implementaci�n de contexto, como se describi� en la lecci�n Propiedades de Entorno. Las dos factor�as de objetos, tut.OneObjectFactory y tut.TwoObjectFactory, no est�n incluidas en el fichero jndiprovider.properties porque siempre son referenciadas por sus nombres de clase. (En otras palabras, cualquier referencia que use una de estas factor�as tendr� su nombre de clase en getFactoryClassName().)
El proveedor tambi�n contiene una factor�a de objetos para la propia implementaci�n de contexto, llamada tut.SampleObjectFactory. Esta clase es responsable de crear un ejemplar tut.SampleContextImpl, cuando se le de una referencia para �l.
El proveedor soporta el esquema de URL sam y proporciona la correspondiente factor�a de contextos URL y las clases de implementaci�n tut.sam.samURLContextFactory y tut.sam.samURLContext. El fichero JAR contiene un fichero jndi.properties que nombra el prefijo del paquete de la factor�a de contexto URL sam. Esto permite que la factor�a de contexto URL sea considerada autom�ticamente cuando el JNDI busque factor�as de contexto URL. Este es el contenido del fichero jndi.properties:
java.naming.factory.initial=tut.SampleInitialContextFactory java.naming.factory.url.pkgs=tut
Este fichero tambi�n incluye una configuraci�n para la factor�a del contexto inicial. Esto har� que cualquier programa que use este fichero JAR use, por defecto, tut.SampleInitialContextFactory como la factor�a de contextos iniciales.