Sistema de Nombrado en Java (JNDI) [Parte I]

El ejemplo referencia ilustra c�mo un ejemplar de una clase Referenceable, Fruit es almacenado y recuperado desde el directorio. Cuando se busca una referencia en el directorio, Context.lookup() convierte los datos le�dos del directorio en un ejemplar de Fruit.

Fruit f2 = (Fruit) ctx.lookup("cn=favorite");

Esto sucede debido a lo siguiente.

  1. El proveedor de servicio que se est� usando (LDAP de Sun) llam� a DirectoryManager.getObjectInstance() y suministra al m�todo los datos (una referencia) que el proveedor lee desde el directorio para la entrada� "cn=favorite".
  2. La referencia identifica FruitFactory como el nombre de la clase de la factor�a de objetos.
  3. FruitFactory.getObjectInstance() devuelve un ejemplar de Fruit.

FruitFactory.getObjectInstance() es simple. Primero verifica que puede hacer algo con los datos. Es decir, chequea que el dato es una Reference que contiene una direcci�n del tipo "fruit" y que la referencia es para objetos de la clase Fruit. Si esta verificaci�n falla, la factor�a devuelve null para que otras factor�as, si las hay, puedan intentarlo. Si tiene �xito, se usa el contenido de la direcci�n (en este caso "orange") para crear un nuevo ejemplar de Fruit, que luego es devuelto.

Aqu� tenemos la definici�n de FruitFactory.getObjectInstance().

public Object getObjectInstance(Object obj, Name name, Context ctx,
    Hashtable env) throws Exception {
    if (obj instanceof Reference) {
        Reference ref = (Reference)obj;
        if (ref.getClassName().equals(Fruit.class.getClassName())) {
	    RefAddr addr = ref.get("fruit");
	    if (addr != null) {
  	        return new Fruit((String)addr.getContent());
	    }
        }
    }
    return null;
}

COMPARTE ESTE ARTÍCULO

COMPARTIR EN FACEBOOK
COMPARTIR EN TWITTER
COMPARTIR EN LINKEDIN
COMPARTIR EN WHATSAPP
SIGUIENTE ARTÍCULO