A fin de poder instalar un plugin, es necesario crear el archivo jar correspondiente. El mismo contendrá las clases compiladas con la lógica de persistencia, documentos, procesos, etc.; en conjunto con una serie de archivos necesarios para el correcto deploy. Estos archivos son (respetar minúsculas):
Cabe mencionar que, dependiendo del tipo de plugin que se está creando, es posible que no sean necesarios todos los archivos. Algunos ejemplos:
El archivo manifest.properties generado contendrá los siguientes datos (obtenido de la información de Componente y versión):
Por ejemplo, siguiendo el ejemplo del plugin DISY, esto sería:
# Manifest de ejemplo para Plugin Disytel VERSION = 1.01 PREFIX = DISY PACKAGENAME = ar.com.disytel.plugin PUBLICNAME = Plugin especial de ejemplo AUTHOR = Disytel SA CORELEVEL = 2 # Proceso de instalacion custom INSTALLPROCESS = DISY-AD_Process-1001290 # AUTOGENERADO - NO MODIFICAR COMPONENTUID = DISY-AD_Component-1010001 COMPONENTVERSIONUID = DISY-AD_ComponentVersion-1010001
Durante el desarrollo de un plugin, es posible crear un proceso y párametros a fin de lograr una customización ad-hoc sobre el conjunto de datos contenido en el archivo postinstall.xml. Este es el proceso que debe especificarse en el campo INSTALLPROCESS del manifest.properties (el proceso de exportación de plugin (Exportar Plugin) se encarga de hacer ésto pidiendo el proceso correspondiente al momento de la exportación).
La postinstalacion customizada permite reemplazar un conjunto de valores contenido dentro del XML por los correspondientes valores especificados en los parámetros del proceso ah-hoc.
Por ejemplo, supongamos que un plugin requiere incorporar una nueva entidad comercial: “Agente de Retención”. Dicha entidad comercial se deberá generar específicamente para la compañía donde estamos instalando el plugin, pero la instalación del plugin se realiza bajo System Administrator de la compañía System.
En este caso deberemos especificar dentro del proceso que hemos creado, un parámetro AD_CLIENT_ID. Luego, durante la instalación del plugin, se reemplazaran los valores AD_Client_ID contenidos en el XML por el valor que haya especificado el usuario.
El framework puede encargarse de hacer el mapeo de los parámetros definidos en el proceso creado automáticamente. Simplemente hay que indicar en el proceso creado, la clase org.openXpertya.process.PluginPostInstallProcess (la cual interactua con el parser PluginXMLUpdaterPostInstall). Sin embargo es posible redefinir este proceso para ampliar aun mas su lógica, o bien para permitir realizar acciones posteriores.
Por ejemplo, podemos crear un proceso PluginXMLUpdaterDisy que apunta a una clase ar.com.disytel.plugin.process.PluginXMLUpdaterDisyProcess. Este proceso contendrá los parámetros que deseemos utilizar para reemplazar los valores del XML con los cargados en cada uno de los parámetros. Además del mapeo de estos valores, desde este proceso es posible realizar otras actividades, tales como asignar a un usuario (que también podría recibirse mediante otro parámetro) los permisos para los componentes previamente creados. Recordar que el proceso creado deberá extender de org.openXpertya.process.PluginPostInstallProcess.
En caso de ser necesario un mapeo especial, incluso es posible redefinir el proceso de parseo postinstall general del XML: PluginXMLUpdaterPostInstall, subclasificando dicha clase y redefiniremos el método appendSpecialValues() según sea necesario. En la implementación del proceso que estamos (por ejemplo PluginXMLUpdaterDisyProcess), instanciaremos ésta nueva subclase, la cual contendrá la lógica de reemplazo ad-hoc.
Es necesario incorporar el o los archivos de .properties, .sql, .xml en el directorio bin del proyecto plugin compilado en Eclipse. Siguiendo el ejemplo (ar.com.disytel.plugin), tendremos entonces la siguiente estructura de archivos:
Una vez copiados los archivos, y ubicados en el directorio bin se genera el jar mediante el siguiente comando:
jar cvf nombre.jar *
Recordar que ES IMPORTANTE respetar los nombres de los archivos, las ubicaciones de los mismos, y el formato del archivo manifest.properties. En caso de tener que gestionar archivos binarios, ver replicacionbinarios.
Para su instalación en otro equipo, este archivo luego debe ser ubicado en el directorio lib/plugins del ServidorOXP y ejecutar el Configurar.sh. Finalmente se deberá ejecutar el proceso Instalador de Componentes y Plugins a fin de impactar el contenido del mismo.