Overview | Package | Class | Use | Tree | Deprecated | Index | Help
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD

## 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

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

Overview | Package | Class | Use | Tree | Deprecated | Index | Help
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD