r01f.ejb
Class EJB2HomeLocator

java.lang.Object
  extended by r01f.ejb.EJB2HomeLocator

public class EJB2HomeLocator
extends java.lang.Object

ServiceLocator de interfaces home para EJB20


Nested Class Summary
private static class EJB2HomeLocator.LocatorSingletonHolder
          Clase holder de un singleton.
 
Field Summary
private  java.util.Map<java.lang.String,java.lang.Object> _ejbHomeReferencesCache
          Caché con las referencia a los interfaces home indexadas por su nombre jndi
private static java.lang.String LOCALHOME_INTERFACE_JNDINAME_PREFIX
           
private static java.lang.String LOCALHOME_INTERFACE_JNDINAME_SUFFIX
           
private static java.lang.String REMOTEHOME_INTERFACE_JNDINAME_PREFIX
           
private static java.lang.String REMOTEHOME_INTERFACE_JNDINAME_SUFFIX
           
 
Constructor Summary
EJB2HomeLocator()
          Constructor privado para "prevenir" que algun espabiladillo cree una instancia del ServiceLocator La llamada a este constructor está garantizado que es una única vez ya que se hace desde la clase estática LocatorSingletonHolder (ver nota)
 
Method Summary
private  java.lang.Object _retrieveHomeReference(java.lang.String jndiContextProviderURL, java.lang.String jndiName, boolean local)
          Obtiene el Home del ejb de forma transparente para el desarrollador de acuerdo al siguiente algoritmo: de busqueda: 1.- Busca el home en la cache 2.- Busca el home
 boolean existsLocalHome(java.lang.String jndiName)
          Comprueba la existencia el interfaz home local de un ejb
static EJB2HomeLocator getInstance()
          Proporciona acceso a la instancia única de EJB2ServiceLocator
static EJB2HomeLocator getInstance(java.util.Properties props)
          Proporcina acceso a la instancia única de EJB2ServiceLocator
 EJBLocalHome getLocalHome(java.lang.String jndiName)
          Obtiene el Home local del ejb El acceso a este método únicamente puede hacerse a partir de la instancia del singleton: EJB2ServiceLocator.getInstance().getLocalHome(jndiName);
 EJBLocalHome getLocalHome(java.lang.String jndiName, java.lang.Class<?> homeType)
          Obtiene el Home local del ejb El acceso a este método únicamente puede hacerse a partir de la instancia del singleton: EJB2ServiceLocator.getInstance().getLocalHome(jndiName,MyHome.class);
 EJBLocalHome getLocalHome(java.lang.String jndiName, java.lang.String homeClassName)
          Obtiene el Home local del ejb El acceso a este método únicamente puede hacerse a partir de la instancia del singleton: EJB2ServiceLocator.getInstance().getLocalHome(jndiName,"com.acme.ejb.MyHome");
 EJBHome getRemoteHome(java.lang.String jndiName)
          Obtiene el Home remoto del ejb El acceso a este método únicamente puede hacerse a partir de la instancia del singleton: EJB2ServiceLocator.getInstance().getHome(jndiName);
 EJBHome getRemoteHome(java.lang.String jndiName, java.lang.Class<?> homeType)
          Obtiene el Home remoto del ejb El acceso a este método únicamente puede hacerse a partir de la instancia del singleton: EJB2ServiceLocator.getInstance().getHome(jndiName,MyHome.class);
 EJBHome getRemoteHome(java.lang.String jndiContextProviderURL, java.lang.String jndiName)
          Obtiene el Home remoto del ejb El acceso a este método únicamente puede hacerse a partir de la instancia del singleton: EJB2ServiceLocator.getInstance().getHome(jndiName,MyHome.class);
 EJBHome getRemoteHome(java.lang.String jndiContextProviderURL, java.lang.String jndiName, java.lang.Class<?> homeType)
          Obtiene el Home remoto del ejb El acceso a este método únicamente puede hacerse a partir de la instancia del singleton: EJB2ServiceLocator.getInstance().getHome(jndiName,MyHome.class);
 EJBHome getRemoteHome(java.lang.String jndiContextProviderURL, java.lang.String jndiName, java.lang.String homeClassName)
          Obtiene el Home remoto del ejb El acceso a este método únicamente puede hacerse a partir de la instancia del singleton: EJB2ServiceLocator.getInstance().getLocalHome(jndiName,"com.acme.ejb.MyHome");
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

LOCALHOME_INTERFACE_JNDINAME_PREFIX

private static final java.lang.String LOCALHOME_INTERFACE_JNDINAME_PREFIX
See Also:
Constant Field Values

LOCALHOME_INTERFACE_JNDINAME_SUFFIX

private static final java.lang.String LOCALHOME_INTERFACE_JNDINAME_SUFFIX
See Also:
Constant Field Values

REMOTEHOME_INTERFACE_JNDINAME_PREFIX

private static final java.lang.String REMOTEHOME_INTERFACE_JNDINAME_PREFIX
See Also:
Constant Field Values

REMOTEHOME_INTERFACE_JNDINAME_SUFFIX

private static final java.lang.String REMOTEHOME_INTERFACE_JNDINAME_SUFFIX
See Also:
Constant Field Values

_ejbHomeReferencesCache

private transient java.util.Map<java.lang.String,java.lang.Object> _ejbHomeReferencesCache
Caché con las referencia a los interfaces home indexadas por su nombre jndi

Constructor Detail

EJB2HomeLocator

EJB2HomeLocator()
Constructor privado para "prevenir" que algun espabiladillo cree una instancia del ServiceLocator La llamada a este constructor está garantizado que es una única vez ya que se hace desde la clase estática LocatorSingletonHolder (ver nota)

Method Detail

getInstance

public static EJB2HomeLocator getInstance()
Proporciona acceso a la instancia única de EJB2ServiceLocator

Returns:
La instancia del ServiceLocator

getInstance

public static EJB2HomeLocator getInstance(java.util.Properties props)
Proporcina acceso a la instancia única de EJB2ServiceLocator

Parameters:
props - las propiedades para inicializar el contexto jndi
Returns:
La instancia del ServiceLocator

_retrieveHomeReference

private java.lang.Object _retrieveHomeReference(java.lang.String jndiContextProviderURL,
                                                java.lang.String jndiName,
                                                boolean local)
Obtiene el Home del ejb de forma transparente para el desarrollador de acuerdo al siguiente algoritmo: de busqueda: 1.- Busca el home en la cache 2.- Busca el home

Parameters:
jndiContextProviderURL - url del provider de contexto JNDI
jndiName - Nombre jndi del interfaz home local
local - true si se busca el interfaz home local
Returns:
una referencia al interfaz home

getLocalHome

public EJBLocalHome getLocalHome(java.lang.String jndiName)
Obtiene el Home local del ejb El acceso a este método únicamente puede hacerse a partir de la instancia del singleton: EJB2ServiceLocator.getInstance().getLocalHome(jndiName);

Parameters:
jndiName - Nombre jndi del interfaz home local
Returns:
una referencia al interfaz home

getLocalHome

public EJBLocalHome getLocalHome(java.lang.String jndiName,
                                 java.lang.Class<?> homeType)
Obtiene el Home local del ejb El acceso a este método únicamente puede hacerse a partir de la instancia del singleton: EJB2ServiceLocator.getInstance().getLocalHome(jndiName,MyHome.class);

Parameters:
jndiName - Nombre jndi del ejb
homeType - Definición de la Clase (Class) para devolver el objeto tipado
Returns:
El objeto tipado

getLocalHome

public EJBLocalHome getLocalHome(java.lang.String jndiName,
                                 java.lang.String homeClassName)
Obtiene el Home local del ejb El acceso a este método únicamente puede hacerse a partir de la instancia del singleton: EJB2ServiceLocator.getInstance().getLocalHome(jndiName,"com.acme.ejb.MyHome");

Parameters:
jndiName - Nombre jndi del ejb
homeClassName - Nombre de la Clase (Class) para devolver el objeto tipado
Returns:
El objeto tipado

existsLocalHome

public boolean existsLocalHome(java.lang.String jndiName)
Comprueba la existencia el interfaz home local de un ejb

Parameters:
jndiName - El nombre jndi del ejb
Returns:
true si existe el intefaz local en el arbol jndi

getRemoteHome

public EJBHome getRemoteHome(java.lang.String jndiName)
Obtiene el Home remoto del ejb El acceso a este método únicamente puede hacerse a partir de la instancia del singleton: EJB2ServiceLocator.getInstance().getHome(jndiName);

Parameters:
jndiName - Nombre jndi del ejb
Returns:
referencia al interfaz home remoto

getRemoteHome

public EJBHome getRemoteHome(java.lang.String jndiName,
                             java.lang.Class<?> homeType)
Obtiene el Home remoto del ejb El acceso a este método únicamente puede hacerse a partir de la instancia del singleton: EJB2ServiceLocator.getInstance().getHome(jndiName,MyHome.class);

Parameters:
jndiName - Nombre jndi del ejb
homeType - Definición de la Clase (Class) para devolver el objeto tipado
Returns:
referencia al interfaz home remoto

getRemoteHome

public EJBHome getRemoteHome(java.lang.String jndiContextProviderURL,
                             java.lang.String jndiName)
Obtiene el Home remoto del ejb El acceso a este método únicamente puede hacerse a partir de la instancia del singleton: EJB2ServiceLocator.getInstance().getHome(jndiName,MyHome.class);

Parameters:
jndiContextProviderURL - url del provider de contexto JNDI
jndiName - Nombre jndi del ejb
Returns:
referencia al interfaz home remoto

getRemoteHome

public EJBHome getRemoteHome(java.lang.String jndiContextProviderURL,
                             java.lang.String jndiName,
                             java.lang.Class<?> homeType)
Obtiene el Home remoto del ejb El acceso a este método únicamente puede hacerse a partir de la instancia del singleton: EJB2ServiceLocator.getInstance().getHome(jndiName,MyHome.class);

Parameters:
jndiContextProviderURL - url del provider de contexto JNDI
jndiName - Nombre jndi del ejb
homeType - Definición de la Clase (Class) para devolver el objeto tipado
Returns:
El objeto tipado

getRemoteHome

public EJBHome getRemoteHome(java.lang.String jndiContextProviderURL,
                             java.lang.String jndiName,
                             java.lang.String homeClassName)
Obtiene el Home remoto del ejb El acceso a este método únicamente puede hacerse a partir de la instancia del singleton: EJB2ServiceLocator.getInstance().getLocalHome(jndiName,"com.acme.ejb.MyHome");

Parameters:
jndiContextProviderURL - url del provider de contexto JNDI
jndiName - Nombre jndi del ejb
homeClassName - Nombre de la Clase (Class) para devolver el objeto tipado
Returns:
El objeto tipado