[fop] Port to current QDox and xmlgraphics-commons

Michael Šimáček msimacek at fedoraproject.org
Tue Mar 17 13:36:01 UTC 2015


commit 08a56e4ea965909df980cc71c504c985310732d6
Author: Michael Simacek <msimacek at redhat.com>
Date:   Tue Mar 17 11:36:49 2015 +0100

    Port to current QDox and xmlgraphics-commons

 0001-Port-to-xmlgraphics-commons-2.0.patch |  25 +++++
 0002-Port-to-QDox-2.0.patch                | 159 +++++++++++++++++++++++++++++
 fop.spec                                   |   9 +-
 3 files changed, 192 insertions(+), 1 deletion(-)
---
diff --git a/0001-Port-to-xmlgraphics-commons-2.0.patch b/0001-Port-to-xmlgraphics-commons-2.0.patch
new file mode 100644
index 0000000..7691728
--- /dev/null
+++ b/0001-Port-to-xmlgraphics-commons-2.0.patch
@@ -0,0 +1,25 @@
+From a73c52951332b8399dd74e3482d283e0394bf741 Mon Sep 17 00:00:00 2001
+From: Michael Simacek <msimacek at redhat.com>
+Date: Mon, 16 Mar 2015 16:20:10 +0100
+Subject: [PATCH 1/2] Port to xmlgraphics-commons-2.0
+
+---
+ src/java/org/apache/fop/render/pdf/PDFRenderingUtil.java | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/src/java/org/apache/fop/render/pdf/PDFRenderingUtil.java b/src/java/org/apache/fop/render/pdf/PDFRenderingUtil.java
+index 1f49de7..81608ed 100644
+--- a/src/java/org/apache/fop/render/pdf/PDFRenderingUtil.java
++++ b/src/java/org/apache/fop/render/pdf/PDFRenderingUtil.java
+@@ -353,7 +353,7 @@ class PDFRenderingUtil implements PDFConfigurationConstants {
+         Metadata docXMP = metadata.getMetadata();
+         Metadata fopXMP = PDFMetadata.createXMPFromPDFDocument(pdfDoc);
+         //Merge FOP's own metadata into the one from the XSL-FO document
+-        fopXMP.mergeInto(docXMP);
++        fopXMP.mergeInto(docXMP, java.util.Collections.<Class>emptyList());
+         XMPBasicAdapter xmpBasic = XMPBasicSchema.getAdapter(docXMP);
+         //Metadata was changed so update metadata date
+         xmpBasic.setMetadataDate(new java.util.Date());
+-- 
+2.1.0
+
diff --git a/0002-Port-to-QDox-2.0.patch b/0002-Port-to-QDox-2.0.patch
new file mode 100644
index 0000000..a82efd7
--- /dev/null
+++ b/0002-Port-to-QDox-2.0.patch
@@ -0,0 +1,159 @@
+From 4b72b9270d7362741548e1aa21a1ee868f0be882 Mon Sep 17 00:00:00 2001
+From: Michael Simacek <msimacek at redhat.com>
+Date: Tue, 17 Mar 2015 10:59:41 +0100
+Subject: [PATCH 2/2] Port to QDox 2.0
+
+---
+ .../apache/fop/tools/EventProducerCollector.java   | 59 ++++++++--------------
+ 1 file changed, 22 insertions(+), 37 deletions(-)
+
+diff --git a/src/codegen/java/org/apache/fop/tools/EventProducerCollector.java b/src/codegen/java/org/apache/fop/tools/EventProducerCollector.java
+index c6674ba..e39bf50 100644
+--- a/src/codegen/java/org/apache/fop/tools/EventProducerCollector.java
++++ b/src/codegen/java/org/apache/fop/tools/EventProducerCollector.java
+@@ -21,6 +21,7 @@ package org.apache.fop.tools;
+ 
+ import java.io.File;
+ import java.io.IOException;
++import java.util.Collection;
+ import java.util.Collections;
+ import java.util.List;
+ import java.util.Map;
+@@ -31,14 +32,11 @@ import org.apache.fop.events.model.EventModel;
+ import org.apache.fop.events.model.EventProducerModel;
+ import org.apache.fop.events.model.EventSeverity;
+ 
+-import com.thoughtworks.qdox.JavaDocBuilder;
+-import com.thoughtworks.qdox.model.DefaultDocletTagFactory;
++import com.thoughtworks.qdox.JavaProjectBuilder;
+ import com.thoughtworks.qdox.model.DocletTag;
+-import com.thoughtworks.qdox.model.DocletTagFactory;
+ import com.thoughtworks.qdox.model.JavaClass;
+ import com.thoughtworks.qdox.model.JavaMethod;
+ import com.thoughtworks.qdox.model.JavaParameter;
+-import com.thoughtworks.qdox.model.Type;
+ 
+ /**
+  * Finds EventProducer interfaces and builds the event model for them.
+@@ -61,22 +59,12 @@ class EventProducerCollector {
+         PRIMITIVE_MAP = Collections.unmodifiableMap(m);
+     }
+ 
+-    private DocletTagFactory tagFactory;
+     private List<EventModel> models = new java.util.ArrayList<EventModel>();
+ 
+     /**
+      * Creates a new EventProducerCollector.
+      */
+     EventProducerCollector() {
+-        this.tagFactory = createDocletTagFactory();
+-    }
+-
+-    /**
+-     * Creates the {@link DocletTagFactory} to be used by the collector.
+-     * @return the doclet tag factory
+-     */
+-    protected DocletTagFactory createDocletTagFactory() {
+-        return new DefaultDocletTagFactory();
+     }
+ 
+     /**
+@@ -89,12 +77,11 @@ class EventProducerCollector {
+      */
+     public boolean scanFile(File src)
+             throws IOException, EventConventionException, ClassNotFoundException {
+-        JavaDocBuilder builder = new JavaDocBuilder(this.tagFactory);
++        JavaProjectBuilder builder = new JavaProjectBuilder();
+         builder.addSource(src);
+-        JavaClass[] classes = builder.getClasses();
++        Collection<JavaClass> classes = builder.getClasses();
+         boolean eventProducerFound = false;
+-        for (int i = 0, c = classes.length; i < c; i++) {
+-            JavaClass clazz = classes[i];
++        for (JavaClass clazz: classes) {
+             if (clazz.isInterface() && implementsInterface(clazz, CLASSNAME_EVENT_PRODUCER)) {
+                 processEventProducerInterface(clazz);
+                 eventProducerFound = true;
+@@ -104,9 +91,8 @@ class EventProducerCollector {
+     }
+ 
+     private boolean implementsInterface(JavaClass clazz, String intf) {
+-        JavaClass[] classes = clazz.getImplementedInterfaces();
+-        for (int i = 0, c = classes.length; i < c; i++) {
+-            JavaClass cl = classes[i];
++        List<JavaClass> classes = clazz.getImplementedInterfaces();
++        for (JavaClass cl: classes) {
+             if (cl.getFullyQualifiedName().equals(intf)) {
+                 return true;
+             }
+@@ -123,9 +109,8 @@ class EventProducerCollector {
+     protected void processEventProducerInterface(JavaClass clazz)
+                 throws EventConventionException, ClassNotFoundException {
+         EventProducerModel prodMeta = new EventProducerModel(clazz.getFullyQualifiedName());
+-        JavaMethod[] methods = clazz.getMethods(true);
+-        for (int i = 0, c = methods.length; i < c; i++) {
+-            JavaMethod method = methods[i];
++        List<JavaMethod> methods = clazz.getMethods(true);
++        for (JavaMethod method: methods) {
+             EventMethodModel methodMeta = createMethodModel(method);
+             prodMeta.addMethod(methodMeta);
+         }
+@@ -138,18 +123,18 @@ class EventProducerCollector {
+             throws EventConventionException, ClassNotFoundException {
+         JavaClass clazz = method.getParentClass();
+         //Check EventProducer conventions
+-        if (!method.getReturnType().isVoid()) {
++        if (!method.getReturns().isVoid()) {
+             throw new EventConventionException("All methods of interface "
+                     + clazz.getFullyQualifiedName() + " must have return type 'void'!");
+         }
+         String methodSig = clazz.getFullyQualifiedName() + "." + method.getCallSignature();
+-        JavaParameter[] params = method.getParameters();
+-        if (params.length < 1) {
++        List<JavaParameter> params = method.getParameters();
++        if (params.size() < 1) {
+             throw new EventConventionException("The method " + methodSig
+                     + " must have at least one parameter: 'Object source'!");
+         }
+-        Type firstType = params[0].getType();
+-        if (firstType.isPrimitive() || !"source".equals(params[0].getName())) {
++        JavaClass firstType = params.get(0).getJavaClass();
++        if (firstType.isPrimitive() || !"source".equals(params.get(0).getName())) {
+             throw new EventConventionException("The first parameter of the method " + methodSig
+                     + " must be: 'Object source'!");
+         }
+@@ -164,12 +149,12 @@ class EventProducerCollector {
+         }
+         EventMethodModel methodMeta = new EventMethodModel(
+                 method.getName(), severity);
+-        if (params.length > 1) {
+-            for (int j = 1, cj = params.length; j < cj; j++) {
+-                JavaParameter p = params[j];
++        if (params.size() > 1) {
++            for (int j = 1, cj = params.size(); j < cj; j++) {
++                JavaParameter p = params.get(j);
+                 Class<?> type;
+-                JavaClass pClass = p.getType().getJavaClass();
+-                if (p.getType().isPrimitive()) {
++                JavaClass pClass = p.getJavaClass();
++                if (pClass.isPrimitive()) {
+                     type = PRIMITIVE_MAP.get(pClass.getName());
+                     if (type == null) {
+                         throw new UnsupportedOperationException(
+@@ -182,10 +167,10 @@ class EventProducerCollector {
+                 methodMeta.addParameter(type, p.getName());
+             }
+         }
+-        Type[] exceptions = method.getExceptions();
+-        if (exceptions != null && exceptions.length > 0) {
++        List<JavaClass> exceptions = method.getExceptions();
++        if (exceptions != null && exceptions.size() > 0) {
+             //We only use the first declared exception because that is always thrown
+-            JavaClass cl = exceptions[0].getJavaClass();
++            JavaClass cl = exceptions.get(0);
+             methodMeta.setExceptionClass(cl.getFullyQualifiedName());
+             methodMeta.setSeverity(EventSeverity.FATAL); //In case it's not set in the comments
+         }
+-- 
+2.1.0
+
diff --git a/fop.spec b/fop.spec
index 8373e5f..3fd8124 100644
--- a/fop.spec
+++ b/fop.spec
@@ -1,7 +1,7 @@
 Name:		fop
 Summary:	XSL-driven print formatter
 Version:	1.1
-Release:	8%{?dist}
+Release:	9%{?dist}
 # ASL 1.1:
 # several files in src/java/org/apache/fop/render/awt/viewer/resources/
 # rest is ASL 2.0
@@ -15,6 +15,8 @@ Source3:	http://mirrors.ibiblio.org/pub/mirrors/maven2/org/apache/xmlgraphics/%{
 Source4:	http://www.apache.org/licenses/LICENSE-1.1.txt
 Patch0:		%{name}-main.patch
 Patch1:		%{name}-Use-sRGB.icc-color-profile-from-icc-profiles-openicc.patch
+Patch2:         0001-Port-to-xmlgraphics-commons-2.0.patch
+Patch3:         0002-Port-to-QDox-2.0.patch
 
 BuildArch:	noarch
 
@@ -59,6 +61,8 @@ Javadoc for %{name}.
 %setup -q
 %patch0 -p0
 %patch1 -p1
+%patch2 -p1
+%patch3 -p1
 
 cp %{SOURCE4} LICENSE-1.1
 
@@ -113,6 +117,9 @@ install -p -m 644 %{SOURCE3} %{buildroot}%{_mavenpomdir}/JPP-%{name}.pom
 
 
 %changelog
+* Tue Mar 17 2015 Michael Simacek <msimacek at redhat.com> - 1.1-9
+- Port to current QDox and xmlgraphics-commons
+
 * Mon Jun 16 2014 Michal Srb <msrb at redhat.com> - 1.1-8
 - Fix FTBFS
 


More information about the scm-commits mailing list