Projects:Remove FOP support/Specs
Contents |
Introduction
Jasper Reports was introduced in Openbravo 2.50 as default reports engine, since that point Apache FOP, was considered as obsolete keep only for backward compatibility.
The goal of this project is to remove from core support for Apache FOP reports moving this support to a legacy unmaintained module just in case there are still reports using it. Together with this, remove all transitive dependencies included to support FOP.
Transitive dependencies
Current FOP version (1.1) distributed with Openbravo declares a big amount of transitive dependencies (listed in Appendix below). Those dependencies will also be removed from the distribution after ensuring they are not directly used by any other component.
The complete list libraries that will finally be removed are:
- fop-1.1.jar
- avalon-framework-4.1.5.jar
- barcode4j-fop-ext-complete.jar
- batik-anim.jar
- batik-awt-util.jar
- batik-bridge.jar
- batik-css.jar
- batik-dom.jar
- batik-ext.jar
- batik-gvt.jar
- batik-parser.jar
- batik-script.jar
- batik-svg-dom.jar
- batik-svggen.jar
- batik-util.jar
- batik-xml.jar
Backward compatibility
In order to keep backward compatibility if required, the following actions will be taking:
Existing modules creating FOP reports
Although it is highly recommended to refactor those reports to be implemented with Jasper Reports, it will still be posible to make use of it by installing Modules:Legacy_FOP_Support and doing some minor changes to the sources described also in the module's page.
Existing core reports
Currently, there are still a few reports in core generated with FOP, these are very old reports that are barely used. They will be moved to a new Legacy Reports module.
Barcode generation
Reports, even Jasper Reports, that include barcodes made use of barcode4j (or alternatively barbecue). Barcode4j was included in the distribution through barcode4j-fop-ext-complete.jar
which is an uber-jar containing not only fop extension but also barcode4j itself.
From now on, this will be moved to Barcode_generation_in_reports module.
Analytics export to PDF
Analytics module has an experimental feature that allows to export reports to PDF. This feature will depend on Legacy FOP Module being installed, but not explicit dependency will be declared from Analytics module, so if it is installed, this feature will be enabled but if it is not installed, it will be disabled.
Appdendix
Tranitive dependencies tree
+--- org.apache.xmlgraphics:fop:1.1 | +--- org.apache.xmlgraphics:xmlgraphics-commons:1.5 | | +--- commons-io:commons-io:1.3.1 | | \--- commons-logging:commons-logging:1.0.4 -> 1.2 | +--- org.apache.xmlgraphics:batik-svg-dom:1.7 | | +--- org.apache.xmlgraphics:batik-anim:1.7 | | | +--- org.apache.xmlgraphics:batik-awt-util:1.7 | | | | \--- org.apache.xmlgraphics:batik-util:1.7 | | | +--- org.apache.xmlgraphics:batik-dom:1.7 | | | | +--- org.apache.xmlgraphics:batik-css:1.7 | | | | | +--- org.apache.xmlgraphics:batik-ext:1.7 | | | | | | \--- xml-apis:xml-apis:1.3.04 -> 2.0.2 | | | | | +--- org.apache.xmlgraphics:batik-util:1.7 | | | | | +--- xml-apis:xml-apis:1.3.04 -> 2.0.2 | | | | | \--- xml-apis:xml-apis-ext:1.3.04 | | | | +--- org.apache.xmlgraphics:batik-ext:1.7 (*) | | | | +--- org.apache.xmlgraphics:batik-util:1.7 | | | | +--- org.apache.xmlgraphics:batik-xml:1.7 | | | | | \--- org.apache.xmlgraphics:batik-util:1.7 | | | | +--- xalan:xalan:2.6.0 | | | | | \--- xml-apis:xml-apis:2.0.2 | | | | +--- xml-apis:xml-apis:1.3.04 -> 2.0.2 | | | | \--- xml-apis:xml-apis-ext:1.3.04 | | | +--- org.apache.xmlgraphics:batik-ext:1.7 (*) | | | +--- org.apache.xmlgraphics:batik-parser:1.7 | | | | +--- org.apache.xmlgraphics:batik-awt-util:1.7 (*) | | | | +--- org.apache.xmlgraphics:batik-util:1.7 | | | | \--- org.apache.xmlgraphics:batik-xml:1.7 (*) | | | +--- org.apache.xmlgraphics:batik-svg-dom:1.7 (*) | | | +--- org.apache.xmlgraphics:batik-util:1.7 | | | +--- xml-apis:xml-apis:1.3.04 -> 2.0.2 | | | \--- xml-apis:xml-apis-ext:1.3.04 | | +--- org.apache.xmlgraphics:batik-awt-util:1.7 (*) | | +--- org.apache.xmlgraphics:batik-css:1.7 (*) | | +--- org.apache.xmlgraphics:batik-dom:1.7 (*) | | +--- org.apache.xmlgraphics:batik-ext:1.7 (*) | | +--- org.apache.xmlgraphics:batik-parser:1.7 (*) | | +--- org.apache.xmlgraphics:batik-util:1.7 | | +--- xml-apis:xml-apis:1.3.04 -> 2.0.2 | | \--- xml-apis:xml-apis-ext:1.3.04 | +--- org.apache.xmlgraphics:batik-bridge:1.7 | | +--- org.apache.xmlgraphics:batik-anim:1.7 (*) | | +--- org.apache.xmlgraphics:batik-awt-util:1.7 (*) | | +--- org.apache.xmlgraphics:batik-css:1.7 (*) | | +--- org.apache.xmlgraphics:batik-dom:1.7 (*) | | +--- org.apache.xmlgraphics:batik-ext:1.7 (*) | | +--- org.apache.xmlgraphics:batik-gvt:1.7 | | | +--- org.apache.xmlgraphics:batik-awt-util:1.7 (*) | | | +--- org.apache.xmlgraphics:batik-bridge:1.7 (*) | | | +--- org.apache.xmlgraphics:batik-util:1.7 | | | \--- xml-apis:xml-apis:1.3.04 -> 2.0.2 | | +--- org.apache.xmlgraphics:batik-parser:1.7 (*) | | +--- org.apache.xmlgraphics:batik-script:1.7 | | | +--- org.apache.xmlgraphics:batik-bridge:1.7 (*) | | | +--- org.apache.xmlgraphics:batik-dom:1.7 (*) | | | +--- org.apache.xmlgraphics:batik-ext:1.7 (*) | | | +--- org.apache.xmlgraphics:batik-svg-dom:1.7 (*) | | | +--- org.apache.xmlgraphics:batik-util:1.7 | | | +--- org.apache.xmlgraphics:batik-js:1.7 | | | | \--- xml-apis:xml-apis:1.3.04 -> 2.0.2 | | | \--- xml-apis:xml-apis:1.3.04 -> 2.0.2 | | +--- org.apache.xmlgraphics:batik-svg-dom:1.7 (*) | | +--- org.apache.xmlgraphics:batik-util:1.7 | | +--- org.apache.xmlgraphics:batik-xml:1.7 (*) | | +--- xalan:xalan:2.6.0 (*) | | +--- xml-apis:xml-apis:1.3.04 -> 2.0.2 | | \--- xml-apis:xml-apis-ext:1.3.04 | +--- org.apache.xmlgraphics:batik-awt-util:1.7 (*) | +--- org.apache.xmlgraphics:batik-gvt:1.7 (*) | +--- org.apache.xmlgraphics:batik-transcoder:1.7 | | +--- org.apache.xmlgraphics:batik-awt-util:1.7 (*) | | +--- org.apache.xmlgraphics:batik-bridge:1.7 (*) | | +--- org.apache.xmlgraphics:batik-dom:1.7 (*) | | +--- org.apache.xmlgraphics:batik-gvt:1.7 (*) | | +--- org.apache.xmlgraphics:batik-svg-dom:1.7 (*) | | +--- org.apache.xmlgraphics:batik-svggen:1.7 | | | +--- org.apache.xmlgraphics:batik-awt-util:1.7 (*) | | | +--- org.apache.xmlgraphics:batik-util:1.7 | | | \--- xml-apis:xml-apis:1.3.04 -> 2.0.2 | | +--- org.apache.xmlgraphics:batik-util:1.7 | | +--- org.apache.xmlgraphics:batik-xml:1.7 (*) | | +--- xml-apis:xml-apis:1.3.04 -> 2.0.2 | | \--- xml-apis:xml-apis-ext:1.3.04 | +--- org.apache.xmlgraphics:batik-extension:1.7 | | +--- org.apache.xmlgraphics:batik-awt-util:1.7 (*) | | +--- org.apache.xmlgraphics:batik-bridge:1.7 (*) | | +--- org.apache.xmlgraphics:batik-css:1.7 (*) | | +--- org.apache.xmlgraphics:batik-dom:1.7 (*) | | +--- org.apache.xmlgraphics:batik-ext:1.7 (*) | | +--- org.apache.xmlgraphics:batik-gvt:1.7 (*) | | +--- org.apache.xmlgraphics:batik-parser:1.7 (*) | | +--- org.apache.xmlgraphics:batik-svg-dom:1.7 (*) | | +--- org.apache.xmlgraphics:batik-util:1.7 | | +--- xml-apis:xml-apis:1.3.04 -> 2.0.2 | | \--- xml-apis:xml-apis-ext:1.3.04 | +--- org.apache.xmlgraphics:batik-ext:1.7 (*) | +--- commons-logging:commons-logging:1.0.4 -> 1.2 | +--- commons-io:commons-io:1.3.1 | +--- org.apache.avalon.framework:avalon-framework-api:4.2.0 -> avalon-framework:avalon-framework-api:4.2.0 | \--- org.apache.avalon.framework:avalon-framework-impl:4.2.0 -> avalon-framework:avalon-framework-impl:4.2.0 \--- net.sf.barcode4j:barcode4j-fop-ext-complete:2.0 +--- org.apache.xmlgraphics:fop:0.93 -> 1.1 (*) \--- xml-apis:xml-apis:1.3.04 -> 2.0.2
(*) - dependencies omitted (listed previously)