com.ejie.r01f.businessdelegate
Class BaseBusinessDelegateFactory

java.lang.Object
  extended bycom.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


Constructor Summary
BaseBusinessDelegateFactory()
          Constructor vacio
 
Methods inherited from class java.lang.Object
equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

BaseBusinessDelegateFactory

public BaseBusinessDelegateFactory()
Constructor vacio