diff --git a/org.adempiere.base/src/org/adempiere/util/ProcessUtil.java b/org.adempiere.base/src/org/adempiere/util/ProcessUtil.java
index 1822ea4c61..2ae25b537e 100644
--- a/org.adempiere.base/src/org/adempiere/util/ProcessUtil.java
+++ b/org.adempiere.base/src/org/adempiere/util/ProcessUtil.java
@@ -53,7 +53,7 @@ import org.compiere.wf.MWorkflow;
*/
public final class ProcessUtil {
- public static final String JASPER_STARTER_CLASS = "org.compiere.report.ReportStarter";
+ public static final String JASPER_STARTER_CLASS = "org.adempiere.report.jasper.ReportStarter";
/** Logger */
private static CLogger log = CLogger.getCLogger(ProcessUtil.class);
diff --git a/org.adempiere.report.jasper.swing/META-INF/MANIFEST.MF b/org.adempiere.report.jasper.swing/META-INF/MANIFEST.MF
index 220e624922..a3c23f3e9f 100644
--- a/org.adempiere.report.jasper.swing/META-INF/MANIFEST.MF
+++ b/org.adempiere.report.jasper.swing/META-INF/MANIFEST.MF
@@ -5,9 +5,11 @@ Bundle-SymbolicName: org.adempiere.report.jasper.swing;singleton:=true
Bundle-Version: 2.0.0.qualifier
Bundle-RequiredExecutionEnvironment: JavaSE-1.6
Require-Bundle: org.adempiere.base;bundle-version="2.0.0",
- org.adempiere.ui.swing;bundle-version="2.0.0",
- org.adempiere.report.jasper;bundle-version="2.0.0",
- org.adempiere.report.jasper.library;bundle-version="2.0.0"
-Import-Package: org.osgi.framework
+ org.adempiere.ui.swing;bundle-version="2.0.0"
+Import-Package: net.sf.jasperreports.engine,
+ net.sf.jasperreports.engine.export,
+ net.sf.jasperreports.view,
+ org.adempiere.report.jasper,
+ org.osgi.framework
Service-Component: OSGI-INF/jrviewerprovider.xml
Bundle-ActivationPolicy: lazy
diff --git a/org.adempiere.report.jasper.swing/OSGI-INF/jrviewerprovider.xml b/org.adempiere.report.jasper.swing/OSGI-INF/jrviewerprovider.xml
index d15ca6e471..1e7305e452 100644
--- a/org.adempiere.report.jasper.swing/OSGI-INF/jrviewerprovider.xml
+++ b/org.adempiere.report.jasper.swing/OSGI-INF/jrviewerprovider.xml
@@ -2,6 +2,6 @@
-
+
diff --git a/org.adempiere.report.jasper.swing/src/org/compiere/report/SwingJRViewerProvider.java b/org.adempiere.report.jasper.swing/src/org/compiere/report/SwingJRViewerProvider.java
index 3c621af3a5..b02603e47e 100644
--- a/org.adempiere.report.jasper.swing/src/org/compiere/report/SwingJRViewerProvider.java
+++ b/org.adempiere.report.jasper.swing/src/org/compiere/report/SwingJRViewerProvider.java
@@ -1,5 +1,7 @@
package org.compiere.report;
+import org.adempiere.report.jasper.JRViewerProvider;
+
import net.sf.jasperreports.engine.JRException;
import net.sf.jasperreports.engine.JasperPrint;
diff --git a/org.adempiere.report.jasper/.project b/org.adempiere.report.jasper/.project
index 1287b5ba0c..69f07bfe3c 100644
--- a/org.adempiere.report.jasper/.project
+++ b/org.adempiere.report.jasper/.project
@@ -25,6 +25,11 @@
+
+ org.eclipse.pde.ds.core.builder
+
+
+
org.eclipse.jem.workbench.JavaEMFNature
diff --git a/org.adempiere.report.jasper/META-INF/MANIFEST.MF b/org.adempiere.report.jasper/META-INF/MANIFEST.MF
index 4b3327de29..eafa69dd5a 100644
--- a/org.adempiere.report.jasper/META-INF/MANIFEST.MF
+++ b/org.adempiere.report.jasper/META-INF/MANIFEST.MF
@@ -4,12 +4,13 @@ Bundle-Name: JasperReport integration
Bundle-SymbolicName: org.adempiere.report.jasper;singleton:=true
Bundle-Version: 2.0.0.qualifier
Bundle-ClassPath: JasperReports.jar
-Export-Package: org.compiere.report,
- org.compiere.utils
-Require-Bundle: org.adempiere.base;bundle-version="2.0.0",
- org.adempiere.report.jasper.library;bundle-version="2.0.0"
Bundle-RequiredExecutionEnvironment: JavaSE-1.6
Import-Package: org.apache.commons.codec;version="1.3.0",
org.apache.commons.codec.binary;version="1.3.0",
org.apache.commons.logging;version="1.1.1",
org.apache.commons.logging.impl;version="1.1.1"
+Require-Bundle: org.adempiere.base;bundle-version="2.0.0",
+ org.adempiere.report.jasper.library;bundle-version="2.0.0"
+Service-Component: OSGI-INF/processfactory.xml
+Export-Package: org.adempiere.report.jasper
+Bundle-ActivationPolicy: lazy
diff --git a/org.adempiere.report.jasper/OSGI-INF/processfactory.xml b/org.adempiere.report.jasper/OSGI-INF/processfactory.xml
new file mode 100644
index 0000000000..4ab516c7e9
--- /dev/null
+++ b/org.adempiere.report.jasper/OSGI-INF/processfactory.xml
@@ -0,0 +1,8 @@
+
+
+
+
+
+
+
+
diff --git a/org.adempiere.report.jasper/build.properties b/org.adempiere.report.jasper/build.properties
index fbee266820..adfe22c4eb 100644
--- a/org.adempiere.report.jasper/build.properties
+++ b/org.adempiere.report.jasper/build.properties
@@ -1,4 +1,5 @@
+bin.includes = META-INF/,\
+ JasperReports.jar,\
+ OSGI-INF/
source.JasperReports.jar = src/
output.JasperReports.jar = build/
-bin.includes = META-INF/,\
- JasperReports.jar
diff --git a/org.adempiere.report.jasper/src/org/compiere/report/Barbecue.java b/org.adempiere.report.jasper/src/org/adempiere/report/jasper/Barbecue.java
similarity index 92%
rename from org.adempiere.report.jasper/src/org/compiere/report/Barbecue.java
rename to org.adempiere.report.jasper/src/org/adempiere/report/jasper/Barbecue.java
index 1ca9aa9249..6cc619f6db 100644
--- a/org.adempiere.report.jasper/src/org/compiere/report/Barbecue.java
+++ b/org.adempiere.report.jasper/src/org/adempiere/report/jasper/Barbecue.java
@@ -1,4 +1,4 @@
-package org.compiere.report;
+package org.adempiere.report.jasper;
import java.awt.Graphics2D;
import java.awt.geom.Rectangle2D;
diff --git a/org.adempiere.report.jasper/src/org/compiere/report/JRViewerProvider.java b/org.adempiere.report.jasper/src/org/adempiere/report/jasper/JRViewerProvider.java
similarity index 82%
rename from org.adempiere.report.jasper/src/org/compiere/report/JRViewerProvider.java
rename to org.adempiere.report.jasper/src/org/adempiere/report/jasper/JRViewerProvider.java
index 50c4b95269..323486b96c 100644
--- a/org.adempiere.report.jasper/src/org/compiere/report/JRViewerProvider.java
+++ b/org.adempiere.report.jasper/src/org/adempiere/report/jasper/JRViewerProvider.java
@@ -1,4 +1,4 @@
-package org.compiere.report;
+package org.adempiere.report.jasper;
import net.sf.jasperreports.engine.JRException;
import net.sf.jasperreports.engine.JasperPrint;
diff --git a/org.adempiere.report.jasper/src/org/adempiere/report/jasper/ProcessFactory.java b/org.adempiere.report.jasper/src/org/adempiere/report/jasper/ProcessFactory.java
new file mode 100644
index 0000000000..bca37fc619
--- /dev/null
+++ b/org.adempiere.report.jasper/src/org/adempiere/report/jasper/ProcessFactory.java
@@ -0,0 +1,47 @@
+/******************************************************************************
+ * Copyright (C) 2014 Thomas Bayen *
+ * Copyright (C) 2014 Jakob Bayen KG & BX Service GmbH *
+ * This program is free software; you can redistribute it and/or modify it *
+ * under the terms version 2 of the GNU General Public License as published *
+ * by the Free Software Foundation. This program is distributed in the hope *
+ * that it will be useful, but WITHOUT ANY WARRANTY; without even the implied *
+ * warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. *
+ * See the GNU General Public License for more details. *
+ * You should have received a copy of the GNU General Public License along *
+ * with this program; if not, write to the Free Software Foundation, Inc., *
+ * 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA. *
+ *****************************************************************************/
+package org.adempiere.report.jasper;
+
+import org.adempiere.base.IProcessFactory;
+import org.adempiere.util.ProcessUtil;
+import org.compiere.process.ProcessCall;
+
+/**
+ * ProcessFactory to start the ReportStarter class.
+ *
+ * Before this Factory was initiated the class was started with the
+ * DefaultProcessFactory because its package namespace was exported and joined
+ * into the org.compiere.report package of the org.adempiere.base plugin via
+ * Split Packages (through the Require-Bundle technique) See
+ * http://wiki.osgi.org/wiki/Split_Packages why this is not the best idea.
+ * Especially this prevents us from exchange the JasperReports plugin with
+ * another implementation.
+ *
+ * @author tbayen
+ */
+public class ProcessFactory implements IProcessFactory {
+
+ public static final String JASPER_STARTER_CLASS_DEPRECATED = "org.compiere.report.ReportStarter";
+
+ @Override
+ public ProcessCall newProcessInstance(String className) {
+ if (ProcessUtil.JASPER_STARTER_CLASS.equals(className))
+ return new ReportStarter();
+ // this is for compatibility with older installations
+ if (JASPER_STARTER_CLASS_DEPRECATED.equals(className))
+ return new ReportStarter();
+ else
+ return null;
+ }
+}
diff --git a/org.adempiere.report.jasper/src/org/compiere/report/ReportStarter.java b/org.adempiere.report.jasper/src/org/adempiere/report/jasper/ReportStarter.java
similarity index 97%
rename from org.adempiere.report.jasper/src/org/compiere/report/ReportStarter.java
rename to org.adempiere.report.jasper/src/org/adempiere/report/jasper/ReportStarter.java
index d4af2c36c3..f76ce1c739 100644
--- a/org.adempiere.report.jasper/src/org/compiere/report/ReportStarter.java
+++ b/org.adempiere.report.jasper/src/org/adempiere/report/jasper/ReportStarter.java
@@ -11,7 +11,7 @@
* 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA. *
* For the text or an alternative of this public license, you may reach us *
*****************************************************************************/
-package org.compiere.report;
+package org.adempiere.report.jasper;
import java.awt.print.PrinterJob;
import java.io.ByteArrayOutputStream;
diff --git a/org.adempiere.server-feature/feature.xml b/org.adempiere.server-feature/feature.xml
index ebaafce5b0..3968098fa9 100644
--- a/org.adempiere.server-feature/feature.xml
+++ b/org.adempiere.server-feature/feature.xml
@@ -38,6 +38,10 @@
id="org.idempiere.felix.webconsole"
version="2.0.0.qualifier"/>
+
+
diff --git a/org.adempiere.server-feature/server.product.launch b/org.adempiere.server-feature/server.product.launch
index 322a1b0344..5cd41a8a12 100644
--- a/org.adempiere.server-feature/server.product.launch
+++ b/org.adempiere.server-feature/server.product.launch
@@ -14,6 +14,7 @@
+
@@ -21,8 +22,8 @@
-
-
+
+
diff --git a/org.adempiere.server/META-INF/MANIFEST.MF b/org.adempiere.server/META-INF/MANIFEST.MF
index 642d429654..d6c421f9c5 100644
--- a/org.adempiere.server/META-INF/MANIFEST.MF
+++ b/org.adempiere.server/META-INF/MANIFEST.MF
@@ -4,9 +4,7 @@ Bundle-Name: org.adempiere.server
Bundle-SymbolicName: org.adempiere.server;singleton:=true
Bundle-Version: 2.0.0.qualifier
Require-Bundle: org.adempiere.base;bundle-version="2.0.0",
- org.eclipse.equinox.app;bundle-version="1.3.0",
- org.adempiere.report.jasper;bundle-version="2.0.0",
- org.adempiere.report.jasper.library;bundle-version="2.0.0"
+ org.eclipse.equinox.app;bundle-version="1.3.0"
Bundle-RequiredExecutionEnvironment: JavaSE-1.6
Web-ContextPath: /
Bundle-ClassPath: WEB-INF/lib/jardiff.jar,
diff --git a/org.adempiere.ui.swing/META-INF/MANIFEST.MF b/org.adempiere.ui.swing/META-INF/MANIFEST.MF
index 8564bbb6a4..4893a5dbcb 100644
--- a/org.adempiere.ui.swing/META-INF/MANIFEST.MF
+++ b/org.adempiere.ui.swing/META-INF/MANIFEST.MF
@@ -69,8 +69,6 @@ Export-Package: com.jgoodies.looks,
org.jdesktop.swingx.util
Require-Bundle: org.adempiere.base;bundle-version="2.0.0",
org.adempiere.ui;bundle-version="2.0.0",
- org.adempiere.report.jasper;bundle-version="2.0.0",
- org.adempiere.report.jasper.library;bundle-version="2.0.0",
org.restlet;bundle-version="2.1.0",
org.restlet.ext.net;bundle-version="2.1.0",
org.restlet.ext.servlet;bundle-version="2.1.0",
@@ -79,6 +77,7 @@ Eclipse-ExtensibleAPI: true
Eclipse-RegisterBuddy: org.adempiere.base
Bundle-RequiredExecutionEnvironment: JavaSE-1.6
Import-Package: javax.net.ssl,
+ net.sf.jasperreports.engine,
org.apache.ecs,
org.apache.ecs.xhtml,
org.apache.poi.hssf.usermodel,
diff --git a/org.adempiere.ui.zk/META-INF/MANIFEST.MF b/org.adempiere.ui.zk/META-INF/MANIFEST.MF
index 24437840a3..ade80c5f59 100644
--- a/org.adempiere.ui.zk/META-INF/MANIFEST.MF
+++ b/org.adempiere.ui.zk/META-INF/MANIFEST.MF
@@ -8,6 +8,10 @@ Import-Package: javax.activation;version="1.1.1",
javax.servlet,
javax.servlet.http,
metainfo.zk,
+ net.sf.jasperreports.engine,
+ net.sf.jasperreports.engine.export,
+ net.sf.jasperreports.engine.util,
+ org.adempiere.report.jasper,
org.apache.commons.codec.binary,
org.apache.ecs,
org.apache.ecs.xhtml,
@@ -79,9 +83,7 @@ Export-Package: fi.jawsy.jawwa.zk.atmosphere,
web.js.jawwa.atmosphere,
web.js.zkforge,
web.js.zkforge.mold
-Require-Bundle: org.adempiere.report.jasper;bundle-version="2.0.0",
- org.adempiere.base;bundle-version="2.0.0",
- org.adempiere.report.jasper.library;bundle-version="2.0.0",
+Require-Bundle: org.adempiere.base;bundle-version="2.0.0",
org.adempiere.ui;bundle-version="2.0.0",
org.zkoss.zk.library;bundle-version="6.0.0"
Bundle-Activator: org.adempiere.webui.WebUIActivator
diff --git a/org.adempiere.ui.zk/OSGI-INF/jrviewerprovider.xml b/org.adempiere.ui.zk/OSGI-INF/jrviewerprovider.xml
index 33b21de28e..802836a337 100644
--- a/org.adempiere.ui.zk/OSGI-INF/jrviewerprovider.xml
+++ b/org.adempiere.ui.zk/OSGI-INF/jrviewerprovider.xml
@@ -2,6 +2,6 @@
-
+
diff --git a/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/window/ZkJRViewerProvider.java b/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/window/ZkJRViewerProvider.java
index 5d4c78d9d7..42ffaaa0f0 100644
--- a/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/window/ZkJRViewerProvider.java
+++ b/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/window/ZkJRViewerProvider.java
@@ -3,11 +3,11 @@ package org.adempiere.webui.window;
import net.sf.jasperreports.engine.JRException;
import net.sf.jasperreports.engine.JasperPrint;
+import org.adempiere.report.jasper.JRViewerProvider;
import org.adempiere.webui.apps.AEnv;
import org.adempiere.webui.component.Window;
import org.adempiere.webui.part.WindowContainer;
import org.adempiere.webui.session.SessionManager;
-import org.compiere.report.JRViewerProvider;
public class ZkJRViewerProvider implements JRViewerProvider {
diff --git a/org.adempiere.webstore/META-INF/MANIFEST.MF b/org.adempiere.webstore/META-INF/MANIFEST.MF
index efaa8f4e0e..7904cc7792 100644
--- a/org.adempiere.webstore/META-INF/MANIFEST.MF
+++ b/org.adempiere.webstore/META-INF/MANIFEST.MF
@@ -3,8 +3,7 @@ Bundle-ManifestVersion: 2
Bundle-Name: org.adempiere.webstore
Bundle-SymbolicName: org.adempiere.webstore;singleton:=true
Bundle-Version: 2.0.0.qualifier
-Require-Bundle: org.adempiere.report.jasper;bundle-version="2.0.0",
- org.adempiere.base;bundle-version="2.0.0",
+Require-Bundle: org.adempiere.base;bundle-version="2.0.0",
org.adempiere.report.jasper.webapp;bundle-version="2.0.0"
Bundle-RequiredExecutionEnvironment: JavaSE-1.6
Web-ContextPath: wstore
diff --git a/org.idempiere.webservices/META-INF/MANIFEST.MF b/org.idempiere.webservices/META-INF/MANIFEST.MF
index a7a41111a6..855fb933c6 100644
--- a/org.idempiere.webservices/META-INF/MANIFEST.MF
+++ b/org.idempiere.webservices/META-INF/MANIFEST.MF
@@ -18,6 +18,9 @@ Import-Package: javax.activation;version="1.1.1",
javax.xml.rpc.server;version="1.1.0.v20110517",
javax.xml.rpc.soap;version="1.1.0.v20110517",
javax.xml.soap;version="1.3.0",
+ net.sf.jasperreports.engine,
+ net.sf.jasperreports.engine.base,
+ net.sf.jasperreports.engine.util,
org.apache.commons.codec.binary;version="1.3.0",
org.apache.commons.logging;version="1.1.1",
org.apache.commons.logging.impl;version="1.1.1",
@@ -57,7 +60,6 @@ Import-Package: javax.activation;version="1.1.1",
org.apache.xml.serialize;version="2.9.0",
org.osgi.framework;version="1.6.0"
Require-Bundle: org.adempiere.base;bundle-version="2.0.0",
- org.adempiere.report.jasper.library;bundle-version="2.0.0",
org.adempiere.ui;bundle-version="2.0.0",
org.apache.ecs;bundle-version="1.0.0"
Bundle-ClassPath: .,