Herramientas de usuario

Herramientas del sitio


plugins:replicacionbinarios

Datos binarios en actualizaciones

MUY IMPORTANTE! Esta ampliación solo se encuentra disponible en LY 11.03 o superior.

La replicación de binarios para la Arquitectura Libertya Components ahora es posible realizarla en el proceso de post-instalación. Respetando ciertas convenciones, el framework brinda facilidades para esta funcionalidad.

Dentro del archivo .jar de una actualización, podrá crearse un nuevo directorio binarios (deberá respetar este nombre), en el cual podrán almacenarse imágenes, precompilados jasper, etc., los cuales luego podrán ser accedidos desde la clase post-install correspondiente.

De esta manera, la estructura completa del archivo .jar será:

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

La gestión de los archivos desde el postinstall se puede realizar apoyándose en la clase JarHelper, la cual brinda el método readBinaryFromJar(), que devuelve el byte[] correspondiente a fin de realizar las acciones necesarias con el archivo binario en cuestión. Dicho método simplemente requiere la URL del archivo jar y el nombre del recurso dentro del archivo jar. El framework ya se encarga de brindarnos la información para el primer parámetro mediante la variable jarFileURL de la superclase de todo proceso postinstall ad-hoc: PluginPostInstallProcess.

A continuación se muestra un proceso de PostInstalación de ejemplo, en el cual se actualiza el Informe de Libro de IVA:

package org.openXpertya.process.release;
 
import org.openXpertya.JasperReport.MJasperReport;
import org.openXpertya.process.PluginPostInstallProcess;
import org.openXpertya.utils.JarHelper;
 
public class PostInstallUpgradeFrom1009 extends PluginPostInstallProcess {
 
  /** UID del reporte de Libro de IVA */
  protected final static String LIBRO_IVA_JASPER_REPORT_UID 		= "CORE-AD_JasperReport-1010024";
  protected final static String LIBRO_IVA_JASPER_REPORT_FILENAME	= "LibroDeIVA.jasper";
 
  protected String doIt() throws Exception {
    super.doIt();
 
    // Actualizar informe binario para reporte de libro de IVA
    MJasperReport.updateBinaryData( get_TrxName(), 
                                    getCtx(), 
                                    LIBRO_IVA_JASPER_REPORT_UID, 
                                    JarHelper.readBinaryFromJar(jarFileURL, getBinaryFileURL(LIBRO_IVA_JASPER_REPORT_FILENAME)));
 
    return "";
  }
 
  protected void prepare() {
    super.prepare();
  }
 
}
plugins/replicacionbinarios.txt · Última modificación: 2021/04/30 19:19 (editor externo)