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 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
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