====== 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(); } }