com.ejie.r01f.businessdelegate
Class BaseBusinessDelegateFactory
java.lang.Object
com.ejie.r01f.businessdelegate.BaseBusinessDelegateFactory
- Direct Known Subclasses:
- BaseAPI
- public abstract class BaseBusinessDelegateFactory
- extends java.lang.Object
Clase base para BusinessDelegates
IMPORTANTE
----------
La función principal de esta clase es:
- "Aislar" al cliente de la forma en que se ejecuta la funcionalidad especificada
en el BusinessDelegate
Las funciones del BusinessDelegate pueden ser implementadas y llamadas de muchas formas:
- Llamando localmente (memoria) a una clase que implenenta la lógica
- Llamando a un EJB que en su interfaz (local o remota) implementa la lógica
- Llamando a algún web service que expone un método que implementa la lógica
- Haciendo una llamada HTTP / RPC a algún metodo de un módulo que implementa la lógica
- etc
La configuración es:
[Cliente]-->[BusinessDelegate]-->[DynamicProxy que devuelve un Bzd]
||
(local/ws/ejb)
||
\/
[Clase que implementa el Bzd]
La implementación del BusinessDelegate local se obtiene utilizando un DynamicProxy especificado en:
1.- El fichero de properties de la aplicación:
2.- En un fichero de properties especifico con la configuracion de businessDelegate
Para utilizar este sistema, en el fichero de properties de la aplicación debe
existir la entrada:
que simplemente indica dónde se encuentra el fichero de configuración
de BZD (fichero de propiedades normal y corriente)
En ambos casos, la información de configuración de BZD es:
Class
com.ejie.r01m.services.R01MStorageConfigLoaderBzd
com.ejie.r01m.config.loaders.R01MStorageConfigLoader
EJB
com.ejie.r01m.services.R01MStorageConfigLoaderBzd
true/false
ejb/StorageConfigEJBLocal
ejb/StorageConfigEJB
com.ejie.r01m.ejb.config.R01MStorageConfigEJBLocalHome
com.ejie.r01m.ejb.config.R01MStorageConfigEJBHome
RPCServlet
com.ejie.r01m.services.R01MStorageConfigLoaderBzd
http://localhost/r01fTestWar/r01fTestRPCServlet
test
d:/eAdmin/aplic/p12d/html/datos/xmlObj.xml
Los valores permitidos son:
- Class: Todo está en la misma VM y por lo tanto se puede acceder directamente
a la clase remota que implementa el BZD
- EJB: Se utiliza un EJB cuya interfaz remota implementa el BZD
- RPCServlet: Se accede via un Servlet RPC que contiene un metodo que implementa el BZD
- XMLRPC: Se accede via un Servlet que acepta llamadas XML RPC
- WS: Se utiliza un WebService que expone las funciones del BZD
La utilizacion normal de esta clase es EXTENDERLA:
public class MyBusinessDelegateFactory extends BaseBusinessDelegateFactory {
MyBzd getBzd() {
// Obtener un Bzd configurado en el fichero de propiedades de la aplicación
// bajo un oid dado.
return = (MyBzd)super.getBzd("codigoApp","oidConfigBzd");
}
}
Es tambien posible utilizar el BusinessDelegate SIN NECESIDAD DEL FICHERO DE PROPIEDADES.
Para utilizar el BusinessDelegate de esta forma es necesario invocar DIRECTAMENTE a los métodos
apropidados pasando los parametros apropiados:
* Para obtener un API soportado "por detrás" por una clase simple:
public class MyBzd extends BaseBusinessDelegateFactory {
MyBzd getAPI() {
// Obtener un BZD sin fichero de configuracion
return (MyBzd)super.getClassBzd("com.ejie.client.MyBzd","com.ejie.server.MyBzdImpl");
}
}
* Para obtener un Bzd soportado "por detrás" por un EJB:
public class MyBzd extends BaseBusinessDelegateFactory {
MyBzd getAPI() {
// Obtener un BZD sin fichero de configuracion
return (MyBzd)super.getEJBBzd("com.ejie.client.MyBzd","myEjb","com.ejie.server.ejb.MyEJBHome");
}
}
* Para obtener un Bzd soportado "por detrás" por un RPCServlet
public class MyBzd extends BaseBusinessDelegateFactory {
MyBzd getAPI() {
// Obtener un BZD sin fichero de configuracion
return (MyBzd)super.getRPCServletBzd("com.ejie.client.MyBzd",
"http://localhost/r01fTestWar/r01fTestRPCServlet","myModule",
"d:/eAdmin/aplic/p12d/html/datos/xmlObj.xml");
}
}
IMPORTANTE!!!
-------------
La clase se define como abstracta para obligar a una implementacion
concreta en la que se "decida" la forma de utilizarla segun los
ejemplos anteriores
Methods inherited from class java.lang.Object |
equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
BaseBusinessDelegateFactory
public BaseBusinessDelegateFactory()
- Constructor vacio