com.ejie.r01f.businessdelegate
Class BaseAPI

java.lang.Object
  extended bycom.ejie.r01f.businessdelegate.BaseBusinessDelegateFactory
      extended bycom.ejie.r01f.businessdelegate.BaseAPI
Direct Known Subclasses:
TestAPI

public abstract class BaseAPI
extends BaseBusinessDelegateFactory

Clase base para APIs IMPORTANTE ---------- La función principal de esta clase es: - "Aislar" al cliente de la forma en que se ejecuta la funcionalidad especificada en el API (Bzd) Las funciones del API 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]-->[API]-->[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 el fichero de properties de la aplicación: Class com.ejie.r01m.services.R01MStorageConfigLoaderBzd com.ejie.r01m.config.loaders.R01MStorageConfigLoader Class com.ejie.r01m.services.R01MTypologyConfigLoaderBzd com.ejie.r01m.config.loaders.R01MTypologyConfigLoader Los valores permitidos son: - Class: Todo está en la misma VM y por lo tanto se puede acceder directamente a la clase que carga las configuraciones - EJB: Se utiliza un EJB cuya interfaz remota implementa el BZD y que carga la configuración - HTTP: Se accede via un Servlet que devuelve un XML con la configuración - WS: Se utiliza un WebService que devuelve un XML con la configuracións La utilizacion normal de esta clase es EXTENDERLA: public class MyAPI extends BaseAPI { MyAPIBzd getAPI() { // Obtener un Bzd configurado en el fichero de propiedades de la aplicación // bajo un oid dado. return = (MyAPIBzd)super.getBzd("codigoApp","oidConfigBzd"); } } Es tambien posible utilizar el API SIN NECESIDAD DEL FICHERO DE PROPIEDADES. Para utilizar el API 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 MyAPI extends BaseAPI { MyAPIBzd getAPI() { // Obtener un BZD sin fichero de configuracion return (MyAPIBzd)super.getClassBzd("com.ejie.client.MyAPIBzd","com.ejie.server.MyAPIBzdImpl"); } } * Para obtener un API soportado "por detrás" por un EJB: public class MyAPI extends BaseAPI { MyAPIBzd getAPI() { // Obtener un BZD sin fichero de configuracion return (MyAPIBzd)super.getEJBBzd("com.ejie.client.MyAPIBzd","myAPIEjb","com.ejie.server.ejb.MyAPIEJBHome"); } } 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