Herramientas de usuario

Herramientas del sitio


plugins:creacionjar

Creacion del archivo jar con componentes y metadatos

Componentes del jar

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):

  • manifest.properties: Indica las especificaciones del plugin (nombre, versión, etc.). Este archivo es obligatorio y debe respetar un formato y contenido predefinido (el cual se detalla posteriormente). El mismo se genera automáticamente al disparar el proceso de creación de un plugin: Exportar Plugin.
  • preinstall.sql: Opcional. Conjunto de sentencias SQL para la modificación estructural de la base de datos (nuevas tablas, columnas, funciones, etc.). El proceso Exportar Plugin sugerirá un sql básico basado en la información existente en los metadatos de la aplicación, el cual deberá adecuarse según corresponda.
  • install.xml: Opcional. Contenido generado automáticamente desde el proceso Exportar Plugin a partir de los metadatos de la aplicación.
  • postinstall.xml: Opcional. Contenido generado automáticamente desde el proceso Exportar Plugin a partir de los datos transaccionales de la aplicación.

Cabe mencionar que, dependiendo del tipo de plugin que se está creando, es posible que no sean necesarios todos los archivos. Algunos ejemplos:

  • Un plugin que no realiza modificación alguna sobre la base de datos, solo requiere el manifest.
  • Un plugin que modifica una ventana o la definición de un proceso, requiere: manifest + install
  • Un plugin que crea o modifica la estructura de una tabla, requiere: manifest + preinstall + install
  • Un plugin que crea un nuevo artículo o entidad comercial, requiere: manifest + postinstall

El archivo manifest.properties generado contendrá los siguientes datos (obtenido de la información de Componente y versión):

  • VERSION: Versión del plugin.
  • PREFIX: Prefijo del plugin.
  • PACKAGENAME: Package inicial del plugin.
  • PUBLICNAME: Nombre público del plugin.
  • AUTHOR: Autor del plugin.
  • CORELEVEL: Nivel de core.
  • INSTALLPROCESS: Optativo. En caso de requerir una customización de postInstall, se disparará este proceso para requerir parámetros específicos (más de esto luego). En el manifest se guarda la clave universal del proceso.

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

Configuración ad-hoc de post Instalación

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.

Como generar el archivo .jar

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:

  • disytel_plugin
    • bin
      • ar (directorio del package inicial el cual contendrá las clases Java compiladas )
      • manifest.properties
      • preinstall.sql
      • install.xml
      • postinstall.xml
    • src

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.

plugins/creacionjar.txt · Última modificación: 2021/04/30 19:19 (editor externo)