[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