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 +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.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 +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 models = new java.util.ArrayList(); + + /** + * 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 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 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 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 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 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 - 1.1-9 +- Port to current QDox and xmlgraphics-commons + * Mon Jun 16 2014 Michal Srb - 1.1-8 - Fix FTBFS