From d2b454117c32543f3d08cd16c99d7b769dfcb1f5 Mon Sep 17 00:00:00 2001 From: Heng Sin Low Date: Mon, 1 Apr 2013 16:27:24 +0800 Subject: [PATCH] IDEMPIERE-748 error while print jasper report when using table component in ireport 4.6.0 IDEMPIERE-807 Jasper report not working when adding barcode --- org.adempiere.base-feature/feature.xml | 7 - .../model.generator.launch | 5 +- .../src/org/adempiere/util/ProcessUtil.java | 3 + .../src/org/compiere/Adempiere.java | 3 + .../src/org/compiere/process/SvrProcess.java | 87 +-- .../feature.xml | 2 +- .../feature.xml | 87 +++ .../.classpath | 4 + .../META-INF/MANIFEST.MF | 133 +++- .../build.properties | 6 +- .../compiere/report/JasperReportViewer.java | 17 + .../org/compiere/report/ReportStarter.java | 33 +- .../test/IDEMPIERE-748/order.jrxml | 599 ++++++++++++++++++ .../test/IDEMPIERE-807/barcode.jrxml | 41 ++ .../server.product.eventtest.launch | 6 +- .../server.product.functionaltest.launch | 6 +- .../server.product.launch | 6 +- .../swingclient.product.launch | 6 +- org.adempiere.ui.swing/META-INF/MANIFEST.MF | 7 +- .../src/org/compiere/apps/AMenu.java | 6 +- .../adempiere/webui/window/ZkJRViewer.java | 146 +++-- org.w3c.dom.fragment/.classpath | 8 + org.w3c.dom.fragment/.project | 28 + .../.settings/org.eclipse.jdt.core.prefs | 7 + .../.settings/org.eclipse.pde.core.prefs | 3 + org.w3c.dom.fragment/META-INF/MANIFEST.MF | 11 + org.w3c.dom.fragment/build.properties | 5 + 27 files changed, 1128 insertions(+), 144 deletions(-) create mode 100644 org.adempiere.report.jasper/test/IDEMPIERE-748/order.jrxml create mode 100644 org.adempiere.report.jasper/test/IDEMPIERE-807/barcode.jrxml create mode 100644 org.w3c.dom.fragment/.classpath create mode 100644 org.w3c.dom.fragment/.project create mode 100644 org.w3c.dom.fragment/.settings/org.eclipse.jdt.core.prefs create mode 100644 org.w3c.dom.fragment/.settings/org.eclipse.pde.core.prefs create mode 100644 org.w3c.dom.fragment/META-INF/MANIFEST.MF create mode 100644 org.w3c.dom.fragment/build.properties diff --git a/org.adempiere.base-feature/feature.xml b/org.adempiere.base-feature/feature.xml index 3be27a101e..4263bec49d 100644 --- a/org.adempiere.base-feature/feature.xml +++ b/org.adempiere.base-feature/feature.xml @@ -231,13 +231,6 @@ version="2.7.1.v201005080400" unpack="false"/> - - - + @@ -12,7 +12,6 @@ - @@ -21,7 +20,7 @@ - + diff --git a/org.adempiere.base/src/org/adempiere/util/ProcessUtil.java b/org.adempiere.base/src/org/adempiere/util/ProcessUtil.java index 68c88f3bea..1822ea4c61 100644 --- a/org.adempiere.base/src/org/adempiere/util/ProcessUtil.java +++ b/org.adempiere.base/src/org/adempiere/util/ProcessUtil.java @@ -164,8 +164,10 @@ public final class ProcessUtil { } boolean success = false; + ClassLoader cl = Thread.currentThread().getContextClassLoader(); try { + Thread.currentThread().setContextClassLoader(process.getClass().getClassLoader()); process.setProcessUI(processMonitor); success = process.startProcess(ctx, pi, trx); if (success && trx != null && managedTrx) @@ -190,6 +192,7 @@ public final class ProcessUtil { trx.close(); trx = null; } + Thread.currentThread().setContextClassLoader(cl); } return success; } diff --git a/org.adempiere.base/src/org/compiere/Adempiere.java b/org.adempiere.base/src/org/compiere/Adempiere.java index 81b48a1ecd..2ad1d5139d 100644 --- a/org.adempiere.base/src/org/compiere/Adempiere.java +++ b/org.adempiere.base/src/org/compiere/Adempiere.java @@ -636,6 +636,9 @@ public final class Adempiere if (!isClient) DB.updateMail(); + + System.setProperty("javax.xml.parsers.SAXParserFactory", "org.apache.xerces.jaxp.SAXParserFactoryImpl"); + return true; } // startupEnvironment diff --git a/org.adempiere.base/src/org/compiere/process/SvrProcess.java b/org.adempiere.base/src/org/compiere/process/SvrProcess.java index 2e3901ae57..76cf343fb4 100644 --- a/org.adempiere.base/src/org/compiere/process/SvrProcess.java +++ b/org.adempiere.base/src/org/compiere/process/SvrProcess.java @@ -104,49 +104,58 @@ public abstract class SvrProcess implements ProcessCall if (localTrx) m_trx = Trx.get(Trx.createTrxName("SvrProcess"), true); // - lock(); - - boolean success = false; - ClassLoader contextLoader = Thread.currentThread().getContextClassLoader(); - try - { - Thread.currentThread().setContextClassLoader(getClass().getClassLoader()); - m_ctx.put(PROCESS_INFO_CTX_KEY, m_pi); - if (processUI != null) - m_ctx.put(PROCESS_UI_CTX_KEY, processUI); - success = process(); - } - finally - { - m_ctx.remove(PROCESS_INFO_CTX_KEY); - m_ctx.remove(PROCESS_UI_CTX_KEY); - if (localTrx) - { - if (success) - { - try - { - m_trx.commit(true); - } catch (Exception e) - { - log.log(Level.SEVERE, "Commit failed.", e); - m_pi.addSummary("Commit Failed."); - m_pi.setError(true); - } - } - else - m_trx.rollback(); - m_trx.close(); - m_trx = null; + ClassLoader processLoader = getClass().getClassLoader(); + try { + if (processLoader != contextLoader) { + Thread.currentThread().setContextClassLoader(processLoader); } - - unlock(); + lock(); - // outside transaction processing [ teo_sarca, 1646891 ] - postProcess(!m_pi.isError()); + boolean success = false; + + try + { + m_ctx.put(PROCESS_INFO_CTX_KEY, m_pi); + if (processUI != null) + m_ctx.put(PROCESS_UI_CTX_KEY, processUI); + success = process(); + } + finally + { + m_ctx.remove(PROCESS_INFO_CTX_KEY); + m_ctx.remove(PROCESS_UI_CTX_KEY); + if (localTrx) + { + if (success) + { + try + { + m_trx.commit(true); + } catch (Exception e) + { + log.log(Level.SEVERE, "Commit failed.", e); + m_pi.addSummary("Commit Failed."); + m_pi.setError(true); + } + } + else + m_trx.rollback(); + m_trx.close(); + m_trx = null; + } - Thread.currentThread().setContextClassLoader(contextLoader); + unlock(); + + // outside transaction processing [ teo_sarca, 1646891 ] + postProcess(!m_pi.isError()); + + Thread.currentThread().setContextClassLoader(contextLoader); + } + } finally { + if (processLoader != contextLoader) { + Thread.currentThread().setContextClassLoader(contextLoader); + } } return !m_pi.isError(); diff --git a/org.adempiere.bundles.external-feature/feature.xml b/org.adempiere.bundles.external-feature/feature.xml index 13a2d829e0..b0e2021246 100644 --- a/org.adempiere.bundles.external-feature/feature.xml +++ b/org.adempiere.bundles.external-feature/feature.xml @@ -102,7 +102,7 @@ unpack="false"/> + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/org.adempiere.report.jasper.library/.classpath b/org.adempiere.report.jasper.library/.classpath index 1b183c2a50..ebf95f1e17 100644 --- a/org.adempiere.report.jasper.library/.classpath +++ b/org.adempiere.report.jasper.library/.classpath @@ -1,5 +1,9 @@ + + + + diff --git a/org.adempiere.report.jasper.library/META-INF/MANIFEST.MF b/org.adempiere.report.jasper.library/META-INF/MANIFEST.MF index cfd368e5c5..23003c08f2 100644 --- a/org.adempiere.report.jasper.library/META-INF/MANIFEST.MF +++ b/org.adempiere.report.jasper.library/META-INF/MANIFEST.MF @@ -7,7 +7,11 @@ Bundle-ClassPath: lib/commons-beanutils-1.8.0.jar, lib/commons-digester-2.1.jar, lib/jasperreports-4.6.0.jar, lib/jdt-compiler-3.1.1.jar, - lib/jasperreports-fonts-4.6.0.jar + lib/jasperreports-fonts-4.6.0.jar, + lib/barcode4j-2.0.jar, + lib/jackson-core-asl-1.9.4.jar, + lib/jackson-mapper-asl-1.9.4.jar, + lib/xalan.jar Export-Package: ., net.sf.jasperreports.ant, net.sf.jasperreports.charts, @@ -175,15 +179,124 @@ Import-Package: com.lowagie.text, groovyjarjarasm.asm.signature, groovyjarjarasm.asm.tree, groovyjarjarcommonscli, + org.apache.batik;version="17.0.0", + org.apache.batik.anim;version="1.7.0", + org.apache.batik.anim.timing;version="1.7.0", + org.apache.batik.anim.values;version="1.7.0", + org.apache.batik.bridge;version="1.7.0", + org.apache.batik.bridge.resources;version="1.7.0", + org.apache.batik.bridge.svg12;version="1.7.0", + org.apache.batik.css.dom;version="1.7.0", + org.apache.batik.css.engine;version="1.7.0", + org.apache.batik.css.engine.resources;version="1.7.0", + org.apache.batik.css.engine.sac;version="1.7.0", + org.apache.batik.css.engine.value;version="1.7.0", + org.apache.batik.css.engine.value.css2;version="1.7.0", + org.apache.batik.css.engine.value.resources;version="1.7.0", + org.apache.batik.css.engine.value.svg;version="1.7.0", + org.apache.batik.css.engine.value.svg12;version="1.7.0", + org.apache.batik.css.parser;version="1.7.0", + org.apache.batik.css.parser.resources;version="1.7.0", + org.apache.batik.dom;version="1.7.0", + org.apache.batik.dom.anim;version="1.7.0", + org.apache.batik.dom.events;version="1.7.0", + org.apache.batik.dom.resources;version="1.7.0", + org.apache.batik.dom.svg;version="1.7.0", + org.apache.batik.dom.svg.resources;version="1.7.0", + org.apache.batik.dom.svg12;version="1.7.0", + org.apache.batik.dom.traversal;version="1.7.0", + org.apache.batik.dom.util;version="1.7.0", + org.apache.batik.dom.xbl;version="1.7.0", + org.apache.batik.ext.awt;version="1.7.0", + org.apache.batik.ext.awt.color;version="1.7.0", + org.apache.batik.ext.awt.font;version="1.7.0", + org.apache.batik.ext.awt.g2d;version="1.7.0", + org.apache.batik.ext.awt.geom;version="1.7.0", + org.apache.batik.ext.awt.image;version="1.7.0", + org.apache.batik.ext.awt.image.codec;version="1.7.0", + org.apache.batik.ext.awt.image.codec.jpeg;version="1.7.0", + org.apache.batik.ext.awt.image.codec.png;version="1.7.0", + org.apache.batik.ext.awt.image.codec.tiff;version="1.7.0", + org.apache.batik.ext.awt.image.codec.util;version="1.7.0", + org.apache.batik.ext.awt.image.renderable;version="1.7.0", + org.apache.batik.ext.awt.image.rendered;version="1.7.0", + org.apache.batik.ext.awt.image.spi;version="1.7.0", + org.apache.batik.ext.awt.image.spi.resources;version="1.7.0", + org.apache.batik.ext.swing;version="1.7.0", + org.apache.batik.ext.swing.resources;version="1.7.0", + org.apache.batik.extension;version="1.7.0", + org.apache.batik.extension.svg;version="1.7.0", + org.apache.batik.gvt;version="1.7.0", + org.apache.batik.gvt.event;version="1.7.0", + org.apache.batik.gvt.filter;version="1.7.0", + org.apache.batik.gvt.flow;version="1.7.0", + org.apache.batik.gvt.font;version="1.7.0", + org.apache.batik.gvt.renderer;version="1.7.0", + org.apache.batik.gvt.svg12;version="1.7.0", + org.apache.batik.gvt.text;version="1.7.0", + org.apache.batik.i18n;version="1.7.0", + org.apache.batik.parser;version="1.7.0", + org.apache.batik.parser.resources;version="1.7.0", + org.apache.batik.parser.style.resources;version="1.7.0", + org.apache.batik.script;version="1.7.0", + org.apache.batik.script.rhino;version="1.7.0", + org.apache.batik.script.rhino.resources;version="1.7.0", + org.apache.batik.script.rhino.svg12;version="1.7.0", + org.apache.batik.util;version="1.7.0", + org.apache.batik.util.gui;version="1.7.0", + org.apache.batik.util.gui.resource;version="1.7.0", + org.apache.batik.util.gui.resources;version="1.7.0", + org.apache.batik.util.gui.resources.flags;version="1.7.0", + org.apache.batik.util.gui.xmleditor;version="1.7.0", + org.apache.batik.util.io;version="1.7.0", + org.apache.batik.util.io.resources;version="1.7.0", + org.apache.batik.util.resources;version="1.7.0", + org.apache.batik.xml;version="1.7.0", + org.apache.batik.xml.scanner.resources;version="1.7.0", org.apache.commons.codec;version="1.3.0", org.apache.commons.codec.binary;version="1.3.0", org.apache.commons.collections, org.apache.commons.logging;version="1.1.1", org.apache.commons.logging.impl;version="1.1.1", + org.apache.html.dom, org.apache.poi.hssf.usermodel;version="3.7.0", org.apache.poi.hssf.util;version="3.7.0", org.apache.poi.ss.usermodel;version="3.7.0", org.apache.poi.ss.util;version="3.7.0", + org.apache.xerces.dom;version="2.9.0", + org.apache.xerces.dom.events;version="2.9.0", + org.apache.xerces.dom3.as;version="2.9.0", + org.apache.xerces.impl;version="2.9.0", + org.apache.xerces.impl.dtd;version="2.9.0", + org.apache.xerces.impl.dtd.models;version="2.9.0", + org.apache.xerces.impl.dv;version="2.9.0", + org.apache.xerces.impl.dv.dtd;version="2.9.0", + org.apache.xerces.impl.dv.util;version="2.9.0", + org.apache.xerces.impl.dv.xs;version="2.9.0", + org.apache.xerces.impl.io;version="2.9.0", + org.apache.xerces.impl.msg;version="2.9.0", + org.apache.xerces.impl.validation;version="2.9.0", + org.apache.xerces.impl.xpath;version="2.9.0", + org.apache.xerces.impl.xpath.regex;version="2.9.0", + org.apache.xerces.impl.xs;version="2.9.0", + org.apache.xerces.impl.xs.identity;version="2.9.0", + org.apache.xerces.impl.xs.models;version="2.9.0", + org.apache.xerces.impl.xs.opti;version="2.9.0", + org.apache.xerces.impl.xs.traversers;version="2.9.0", + org.apache.xerces.impl.xs.util;version="2.9.0", + org.apache.xerces.jaxp;version="2.9.0", + org.apache.xerces.jaxp.datatype;version="2.9.0", + org.apache.xerces.jaxp.validation;version="2.9.0", + org.apache.xerces.parsers;version="2.9.0", + org.apache.xerces.util;version="2.9.0", + org.apache.xerces.xinclude;version="2.9.0", + org.apache.xerces.xni;version="2.9.0", + org.apache.xerces.xni.grammars;version="2.9.0", + org.apache.xerces.xni.parser;version="2.9.0", + org.apache.xerces.xpointer;version="2.9.0", + org.apache.xerces.xs;version="2.9.0", + org.apache.xerces.xs.datatypes;version="2.9.0", + org.apache.xml.serialize;version="2.9.0", org.codehaus.groovy, org.codehaus.groovy.ant, org.codehaus.groovy.antlr, @@ -215,7 +328,23 @@ Import-Package: com.lowagie.text, org.codehaus.groovy.tools.xml, org.codehaus.groovy.vmplugin, org.codehaus.groovy.vmplugin.v4, - org.codehaus.groovy.vmplugin.v5 + org.codehaus.groovy.vmplugin.v5, + org.w3c.css.sac;version="1.3.0", + org.w3c.css.sac.helpers;version="1.3.0", + org.w3c.dom;version="3.0.0", + org.w3c.dom.bootstrap;version="3.0.0", + org.w3c.dom.css;version="2.0.0", + org.w3c.dom.events;version="3.0.0", + org.w3c.dom.html;version="2.9.0", + org.w3c.dom.ls;version="2.0.0", + org.w3c.dom.ranges;version="2.0.0", + org.w3c.dom.smil;version="1.0.0", + org.w3c.dom.stylesheets;version="2.0.0", + org.w3c.dom.svg;version="1.1.0", + org.w3c.dom.traversal;version="2.0.0", + org.w3c.dom.views;version="2.0.0", + org.w3c.dom.xpath;version="3.0.0", + org.w3c.tools.codec DynamicImport-Package: * diff --git a/org.adempiere.report.jasper.library/build.properties b/org.adempiere.report.jasper.library/build.properties index 4b983e516a..36d3db9c1a 100644 --- a/org.adempiere.report.jasper.library/build.properties +++ b/org.adempiere.report.jasper.library/build.properties @@ -3,4 +3,8 @@ bin.includes = META-INF/,\ lib/commons-digester-2.1.jar,\ lib/jasperreports-4.6.0.jar,\ lib/jdt-compiler-3.1.1.jar,\ - lib/jasperreports-fonts-4.6.0.jar + lib/jasperreports-fonts-4.6.0.jar,\ + lib/barcode4j-2.0.jar,\ + lib/jackson-core-asl-1.9.4.jar,\ + lib/jackson-mapper-asl-1.9.4.jar,\ + lib/xalan.jar diff --git a/org.adempiere.report.jasper.swing/src/org/compiere/report/JasperReportViewer.java b/org.adempiere.report.jasper.swing/src/org/compiere/report/JasperReportViewer.java index d283f39bda..4db31bb507 100644 --- a/org.adempiere.report.jasper.swing/src/org/compiere/report/JasperReportViewer.java +++ b/org.adempiere.report.jasper.swing/src/org/compiere/report/JasperReportViewer.java @@ -3,6 +3,7 @@ */ package org.compiere.report; +import java.awt.Graphics2D; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.io.File; @@ -19,6 +20,7 @@ import net.sf.jasperreports.engine.JRException; import net.sf.jasperreports.engine.JRExporterParameter; import net.sf.jasperreports.engine.JasperExportManager; import net.sf.jasperreports.engine.JasperPrint; +import net.sf.jasperreports.engine.JasperReport; import net.sf.jasperreports.engine.export.JRXlsExporter; import net.sf.jasperreports.view.JRViewer; @@ -85,6 +87,21 @@ public class JasperReportViewer extends JRViewer { public String getFormat() { return (String) comboBox.getSelectedItem(); } + + + @Override + protected void paintPage(Graphics2D grx) { + ClassLoader cl = Thread.currentThread().getContextClassLoader(); + try { + Thread.currentThread().setContextClassLoader(JasperReport.class.getClassLoader()); + super.paintPage(grx); + } finally { + Thread.currentThread().setContextClassLoader(cl); + } + } + + + } class ExportListener implements ActionListener { diff --git a/org.adempiere.report.jasper/src/org/compiere/report/ReportStarter.java b/org.adempiere.report.jasper/src/org/compiere/report/ReportStarter.java index 9f213ed9f9..50a2e00325 100644 --- a/org.adempiere.report.jasper/src/org/compiere/report/ReportStarter.java +++ b/org.adempiere.report.jasper/src/org/compiere/report/ReportStarter.java @@ -335,7 +335,7 @@ public class ReportStarter implements ProcessCall, ClientProcess public boolean startProcess(Properties ctx, ProcessInfo pi, Trx trx) { ClassLoader cl1 = Thread.currentThread().getContextClassLoader(); - ClassLoader cl2 = getClass().getClassLoader(); + ClassLoader cl2 = JasperReport.class.getClassLoader(); try { if (!cl1.equals(cl2)) { Thread.currentThread().setContextClassLoader(cl2); @@ -464,7 +464,10 @@ public class ReportStarter implements ProcessCall, ClientProcess newQuery.setText(newQueryText); jasperDesign.setQuery(newQuery); - JasperReport newJasperReport = JasperCompileManager.compileReport(jasperDesign); + LocalJasperReportsContext context = new LocalJasperReportsContext(DefaultJasperReportsContext.getInstance()); + context.setClassLoader(JasperReport.class.getClassLoader()); + JasperCompileManager manager = JasperCompileManager.getInstance(context); + JasperReport newJasperReport = manager.compile(jasperDesign); if (newJasperReport != null) { data.jasperReport = newJasperReport; @@ -1115,12 +1118,21 @@ public class ReportStarter implements ProcessCall, ClientProcess params.put( name, pDate); } } else if (pNum != null) { - if (pNumTo!=null) { - params.put( name+"1", pNum); - params.put( name+"2", pNumTo); - } else { - params.put( name, pNum); - } + if (name.endsWith("_ID")) { + if (pNumTo!=null) { + params.put( name+"1", pNum.intValue()); + params.put( name+"2", pNumTo.intValue()); + } else { + params.put( name, pNum.intValue()); + } + } else { + if (pNumTo!=null) { + params.put( name+"1", pNum); + params.put( name+"2", pNumTo); + } else { + params.put( name, pNum); + } + } } // // Add parameter info - teo_sarca FR [ 2581145 ] @@ -1166,7 +1178,10 @@ public class ReportStarter implements ProcessCall, ClientProcess { JasperReport compiledJasperReport = null; try { - JasperCompileManager.compileReportToFile ( reportFile.getAbsolutePath(), jasperFile.getAbsolutePath() ); + LocalJasperReportsContext context = new LocalJasperReportsContext(DefaultJasperReportsContext.getInstance()); + context.setClassLoader(JasperReport.class.getClassLoader()); + JasperCompileManager manager = JasperCompileManager.getInstance(context); + manager.compileToFile(reportFile.getAbsolutePath(), jasperFile.getAbsolutePath() ); jasperFile.setLastModified( reportFile.lastModified()); //Synchronize Dates compiledJasperReport = (JasperReport)JRLoader.loadObject(jasperFile); } catch (JRException e) { diff --git a/org.adempiere.report.jasper/test/IDEMPIERE-748/order.jrxml b/org.adempiere.report.jasper/test/IDEMPIERE-748/order.jrxml new file mode 100644 index 0000000000..6faa0e0f46 --- /dev/null +++ b/org.adempiere.report.jasper/test/IDEMPIERE-748/order.jrxml @@ -0,0 +1,599 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/org.adempiere.report.jasper/test/IDEMPIERE-807/barcode.jrxml b/org.adempiere.report.jasper/test/IDEMPIERE-807/barcode.jrxml new file mode 100644 index 0000000000..53016c4c86 --- /dev/null +++ b/org.adempiere.report.jasper/test/IDEMPIERE-807/barcode.jrxml @@ -0,0 +1,41 @@ + + + + + + + + + + + + + + <band height="79" splitType="Stretch"/> + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/org.adempiere.server-feature/server.product.eventtest.launch b/org.adempiere.server-feature/server.product.eventtest.launch index fa3a9c0ef7..c9c437b07c 100644 --- a/org.adempiere.server-feature/server.product.eventtest.launch +++ b/org.adempiere.server-feature/server.product.eventtest.launch @@ -16,13 +16,13 @@ - + - - + + diff --git a/org.adempiere.server-feature/server.product.functionaltest.launch b/org.adempiere.server-feature/server.product.functionaltest.launch index bacc65cd7f..bf05f3f8e8 100644 --- a/org.adempiere.server-feature/server.product.functionaltest.launch +++ b/org.adempiere.server-feature/server.product.functionaltest.launch @@ -16,13 +16,13 @@ - + - - + + diff --git a/org.adempiere.server-feature/server.product.launch b/org.adempiere.server-feature/server.product.launch index 07a3f843fe..5ae005d453 100644 --- a/org.adempiere.server-feature/server.product.launch +++ b/org.adempiere.server-feature/server.product.launch @@ -16,13 +16,13 @@ - + - - + + diff --git a/org.adempiere.ui.swing-feature/swingclient.product.launch b/org.adempiere.ui.swing-feature/swingclient.product.launch index c872087fc9..87cd32d359 100644 --- a/org.adempiere.ui.swing-feature/swingclient.product.launch +++ b/org.adempiere.ui.swing-feature/swingclient.product.launch @@ -16,13 +16,13 @@ - + - - + + diff --git a/org.adempiere.ui.swing/META-INF/MANIFEST.MF b/org.adempiere.ui.swing/META-INF/MANIFEST.MF index 4c78f8044c..b7b21607f2 100644 --- a/org.adempiere.ui.swing/META-INF/MANIFEST.MF +++ b/org.adempiere.ui.swing/META-INF/MANIFEST.MF @@ -8,7 +8,12 @@ Bundle-ClassPath: client.jar, looks-2.0.4.jar, miglayout-3.7.1-swing.jar, jpedal.jar -Export-Package: de.schaeffer.compiere.tools, +Export-Package: com.jgoodies.looks, + com.jgoodies.looks.common, + com.jgoodies.looks.plastic, + com.jgoodies.looks.plastic.theme, + com.jgoodies.looks.windows, + de.schaeffer.compiere.tools, net.miginfocom.layout, net.miginfocom.swing, org.adempiere.apps.graph, diff --git a/org.adempiere.ui.swing/src/org/compiere/apps/AMenu.java b/org.adempiere.ui.swing/src/org/compiere/apps/AMenu.java index 581c191199..8b64707421 100644 --- a/org.adempiere.ui.swing/src/org/compiere/apps/AMenu.java +++ b/org.adempiere.ui.swing/src/org/compiere/apps/AMenu.java @@ -48,6 +48,7 @@ import javax.swing.JMenu; import javax.swing.JMenuBar; import javax.swing.JProgressBar; import javax.swing.KeyStroke; +import javax.swing.UIManager; import javax.swing.event.ChangeEvent; import javax.swing.event.ChangeListener; @@ -110,7 +111,10 @@ public final class AMenu extends CFrame public AMenu () { super(); - if (log.isLoggable(Level.INFO)) log.info("CodeBase=" + Adempiere.getCodeBase()); + if (log.isLoggable(Level.INFO)) log.info("CodeBase=" + Adempiere.getCodeBase()); + + UIManager.put( "ClassLoader", this.getClass().getClassLoader()); + Splash splash = Splash.getSplash(); // m_WindowNo = AEnv.createWindowNo(this); diff --git a/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/window/ZkJRViewer.java b/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/window/ZkJRViewer.java index 6182be78f5..df7e52ebfe 100644 --- a/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/window/ZkJRViewer.java +++ b/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/window/ZkJRViewer.java @@ -6,14 +6,17 @@ import java.util.logging.Level; import javax.servlet.http.HttpServletRequest; +import net.sf.jasperreports.engine.DefaultJasperReportsContext; import net.sf.jasperreports.engine.JRExporterParameter; import net.sf.jasperreports.engine.JasperPrint; +import net.sf.jasperreports.engine.JasperReport; import net.sf.jasperreports.engine.export.JRCsvExporter; import net.sf.jasperreports.engine.export.JRHtmlExporter; import net.sf.jasperreports.engine.export.JRHtmlExporterParameter; import net.sf.jasperreports.engine.export.JRPdfExporter; import net.sf.jasperreports.engine.export.JRXlsExporter; import net.sf.jasperreports.engine.export.JRXlsExporterParameter; +import net.sf.jasperreports.engine.util.LocalJasperReportsContext; import org.adempiere.exceptions.AdempiereException; import org.adempiere.webui.component.Listbox; @@ -138,75 +141,82 @@ public class ZkJRViewer extends Window implements EventListener, ITabOnCl } private void renderReport() throws Exception { - Listitem selected = previewType.getSelectedItem(); - if (selected == null || "PDF".equals(selected.getValue())) { - String path = System.getProperty("java.io.tmpdir"); - String prefix = makePrefix(jasperPrint.getName()); - if (log.isLoggable(Level.FINE)) - { - log.log(Level.FINE, "Path="+path + " Prefix="+prefix); + ClassLoader cl = Thread.currentThread().getContextClassLoader(); + try { + Thread.currentThread().setContextClassLoader(JasperReport.class.getClassLoader()); + Listitem selected = previewType.getSelectedItem(); + if (selected == null || "PDF".equals(selected.getValue())) { + String path = System.getProperty("java.io.tmpdir"); + String prefix = makePrefix(jasperPrint.getName()); + if (log.isLoggable(Level.FINE)) + { + log.log(Level.FINE, "Path="+path + " Prefix="+prefix); + } + File file = File.createTempFile(prefix, ".pdf", new File(path)); + LocalJasperReportsContext context = new LocalJasperReportsContext(DefaultJasperReportsContext.getInstance()); + context.setClassLoader(JRPdfExporter.class.getClassLoader()); + JRPdfExporter exporter = new JRPdfExporter(context); + exporter.setParameter(JRExporterParameter.JASPER_PRINT, jasperPrint); + exporter.setParameter(JRExporterParameter.OUTPUT_FILE_NAME, file.getAbsolutePath()); + exporter.exportReport(); + media = new AMedia(getTitle(), "pdf", "application/pdf", file, true); + + + } else if ("HTML".equals(previewType.getSelectedItem().getValue())) { + String path = System.getProperty("java.io.tmpdir"); + String prefix = makePrefix(jasperPrint.getName()); + if (log.isLoggable(Level.FINE)) + { + log.log(Level.FINE, "Path="+path + " Prefix="+prefix); + } + File file = File.createTempFile(prefix, ".html", new File(path)); + + JRHtmlExporter exporter = new JRHtmlExporter(); + exporter.setParameter(JRExporterParameter.JASPER_PRINT,jasperPrint); + exporter.setParameter(JRExporterParameter.OUTPUT_FILE, file); + // Make images available for the HTML output + exporter.setParameter(JRHtmlExporterParameter.IS_OUTPUT_IMAGES_TO_DIR, Boolean.TRUE); + exporter.setParameter(JRHtmlExporterParameter.IMAGES_DIR_NAME, Executions.getCurrent().getDesktop().getSession().getWebApp().getRealPath("/images/report/")); + HttpServletRequest request = (HttpServletRequest)Executions.getCurrent().getNativeRequest(); + exporter.setParameter(JRHtmlExporterParameter.IMAGES_URI, request.getContextPath()+"/images/report/"); + exporter.exportReport(); + media = new AMedia(getTitle(), "html", "text/html", file, false); + } else if ("XLS".equals(previewType.getSelectedItem().getValue())) { + String path = System.getProperty("java.io.tmpdir"); + String prefix = makePrefix(jasperPrint.getName()); + if (log.isLoggable(Level.FINE)) + { + log.log(Level.FINE, "Path="+path + " Prefix="+prefix); + } + File file = File.createTempFile(prefix, ".xls", new File(path)); + FileOutputStream fos = new FileOutputStream(file); + + // coding For Excel: + JRXlsExporter exporterXLS = new JRXlsExporter(); + exporterXLS.setParameter(JRXlsExporterParameter.JASPER_PRINT, jasperPrint); + exporterXLS.setParameter(JRXlsExporterParameter.OUTPUT_STREAM, fos); + exporterXLS.setParameter(JRXlsExporterParameter.IS_ONE_PAGE_PER_SHEET, Boolean.FALSE); + exporterXLS.exportReport(); + media = new AMedia(getTitle(), "xls", "application/vnd.ms-excel", file, true); + + }else if ("CSV".equals(previewType.getSelectedItem().getValue())) { + String path = System.getProperty("java.io.tmpdir"); + String prefix = makePrefix(jasperPrint.getName()); + if (log.isLoggable(Level.FINE)) + { + log.log(Level.FINE, "Path="+path + " Prefix="+prefix); + } + File file = File.createTempFile(prefix, ".csv", new File(path)); + FileOutputStream fos = new FileOutputStream(file); + JRCsvExporter exporter= new JRCsvExporter(); + exporter.setParameter(JRExporterParameter.JASPER_PRINT, jasperPrint); + exporter.setParameter(JRExporterParameter.OUTPUT_STREAM, fos); + exporter.exportReport(); + + media = new AMedia(getTitle(), "csv", "application/csv", file, true); } - File file = File.createTempFile(prefix, ".pdf", new File(path)); - JRPdfExporter exporter = new JRPdfExporter(); - exporter.setParameter(JRExporterParameter.JASPER_PRINT, jasperPrint); - exporter.setParameter(JRExporterParameter.OUTPUT_FILE_NAME, file.getAbsolutePath()); - exporter.setParameter(JRExporterParameter.CLASS_LOADER, exporter.getClass().getClassLoader()); - exporter.exportReport(); - media = new AMedia(getTitle(), "pdf", "application/pdf", file, true); - - - } else if ("HTML".equals(previewType.getSelectedItem().getValue())) { - String path = System.getProperty("java.io.tmpdir"); - String prefix = makePrefix(jasperPrint.getName()); - if (log.isLoggable(Level.FINE)) - { - log.log(Level.FINE, "Path="+path + " Prefix="+prefix); - } - File file = File.createTempFile(prefix, ".html", new File(path)); - - JRHtmlExporter exporter = new JRHtmlExporter(); - exporter.setParameter(JRExporterParameter.JASPER_PRINT,jasperPrint); - exporter.setParameter(JRExporterParameter.OUTPUT_FILE, file); - // Make images available for the HTML output - exporter.setParameter(JRHtmlExporterParameter.IS_OUTPUT_IMAGES_TO_DIR, Boolean.TRUE); - exporter.setParameter(JRHtmlExporterParameter.IMAGES_DIR_NAME, Executions.getCurrent().getDesktop().getSession().getWebApp().getRealPath("/images/report/")); - HttpServletRequest request = (HttpServletRequest)Executions.getCurrent().getNativeRequest(); - exporter.setParameter(JRHtmlExporterParameter.IMAGES_URI, request.getContextPath()+"/images/report/"); - exporter.exportReport(); - media = new AMedia(getTitle(), "html", "text/html", file, false); - } else if ("XLS".equals(previewType.getSelectedItem().getValue())) { - String path = System.getProperty("java.io.tmpdir"); - String prefix = makePrefix(jasperPrint.getName()); - if (log.isLoggable(Level.FINE)) - { - log.log(Level.FINE, "Path="+path + " Prefix="+prefix); - } - File file = File.createTempFile(prefix, ".xls", new File(path)); - FileOutputStream fos = new FileOutputStream(file); - - // coding For Excel: - JRXlsExporter exporterXLS = new JRXlsExporter(); - exporterXLS.setParameter(JRXlsExporterParameter.JASPER_PRINT, jasperPrint); - exporterXLS.setParameter(JRXlsExporterParameter.OUTPUT_STREAM, fos); - exporterXLS.setParameter(JRXlsExporterParameter.IS_ONE_PAGE_PER_SHEET, Boolean.FALSE); - exporterXLS.exportReport(); - media = new AMedia(getTitle(), "xls", "application/vnd.ms-excel", file, true); - - }else if ("CSV".equals(previewType.getSelectedItem().getValue())) { - String path = System.getProperty("java.io.tmpdir"); - String prefix = makePrefix(jasperPrint.getName()); - if (log.isLoggable(Level.FINE)) - { - log.log(Level.FINE, "Path="+path + " Prefix="+prefix); - } - File file = File.createTempFile(prefix, ".csv", new File(path)); - FileOutputStream fos = new FileOutputStream(file); - JRCsvExporter exporter= new JRCsvExporter(); - exporter.setParameter(JRExporterParameter.JASPER_PRINT, jasperPrint); - exporter.setParameter(JRExporterParameter.OUTPUT_STREAM, fos); - exporter.exportReport(); - - media = new AMedia(getTitle(), "csv", "application/csv", file, true); + } finally { + Thread.currentThread().setContextClassLoader(cl); } iframe.setSrc(null); diff --git a/org.w3c.dom.fragment/.classpath b/org.w3c.dom.fragment/.classpath new file mode 100644 index 0000000000..88f2aa7215 --- /dev/null +++ b/org.w3c.dom.fragment/.classpath @@ -0,0 +1,8 @@ + + + + + + + + diff --git a/org.w3c.dom.fragment/.project b/org.w3c.dom.fragment/.project new file mode 100644 index 0000000000..10dbcc32c3 --- /dev/null +++ b/org.w3c.dom.fragment/.project @@ -0,0 +1,28 @@ + + + org.w3c.dom.fragment + + + + + + org.eclipse.jdt.core.javabuilder + + + + + org.eclipse.pde.ManifestBuilder + + + + + org.eclipse.pde.SchemaBuilder + + + + + + org.eclipse.pde.PluginNature + org.eclipse.jdt.core.javanature + + diff --git a/org.w3c.dom.fragment/.settings/org.eclipse.jdt.core.prefs b/org.w3c.dom.fragment/.settings/org.eclipse.jdt.core.prefs new file mode 100644 index 0000000000..c537b63063 --- /dev/null +++ b/org.w3c.dom.fragment/.settings/org.eclipse.jdt.core.prefs @@ -0,0 +1,7 @@ +eclipse.preferences.version=1 +org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled +org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.6 +org.eclipse.jdt.core.compiler.compliance=1.6 +org.eclipse.jdt.core.compiler.problem.assertIdentifier=error +org.eclipse.jdt.core.compiler.problem.enumIdentifier=error +org.eclipse.jdt.core.compiler.source=1.6 diff --git a/org.w3c.dom.fragment/.settings/org.eclipse.pde.core.prefs b/org.w3c.dom.fragment/.settings/org.eclipse.pde.core.prefs new file mode 100644 index 0000000000..f29e940a00 --- /dev/null +++ b/org.w3c.dom.fragment/.settings/org.eclipse.pde.core.prefs @@ -0,0 +1,3 @@ +eclipse.preferences.version=1 +pluginProject.extensions=false +resolve.requirebundle=false diff --git a/org.w3c.dom.fragment/META-INF/MANIFEST.MF b/org.w3c.dom.fragment/META-INF/MANIFEST.MF new file mode 100644 index 0000000000..12dc5246d7 --- /dev/null +++ b/org.w3c.dom.fragment/META-INF/MANIFEST.MF @@ -0,0 +1,11 @@ +Manifest-Version: 1.0 +Bundle-ManifestVersion: 2 +Bundle-Name: Fragment +Bundle-SymbolicName: org.w3c.dom.fragment +Bundle-Version: 1.0.0.qualifier +Fragment-Host: system.bundle; extension:=framework +Bundle-RequiredExecutionEnvironment: JavaSE-1.6 +Bundle-ClassPath: batik-ext.jar, + . +Export-Package: org.w3c.dom, + org.w3c.dom.events;version="3.0.0" diff --git a/org.w3c.dom.fragment/build.properties b/org.w3c.dom.fragment/build.properties new file mode 100644 index 0000000000..6fa71ca155 --- /dev/null +++ b/org.w3c.dom.fragment/build.properties @@ -0,0 +1,5 @@ +source.. = src/ +output.. = bin/ +bin.includes = META-INF/,\ + .,\ + batik-ext.jar