commit 86f921a898ea0215c7398636fd9fe5550cf57655ee911360d4200881a9175d4f Author: Fridrich Strba Date: Thu Mar 28 15:13:34 2019 +0000 OBS-URL: https://build.opensuse.org/package/show/Java:packages/maven-doxia?expand=0&rev=1 diff --git a/.gitattributes b/.gitattributes new file mode 100644 index 0000000..9b03811 --- /dev/null +++ b/.gitattributes @@ -0,0 +1,23 @@ +## Default LFS +*.7z filter=lfs diff=lfs merge=lfs -text +*.bsp filter=lfs diff=lfs merge=lfs -text +*.bz2 filter=lfs diff=lfs merge=lfs -text +*.gem filter=lfs diff=lfs merge=lfs -text +*.gz filter=lfs diff=lfs merge=lfs -text +*.jar filter=lfs diff=lfs merge=lfs -text +*.lz filter=lfs diff=lfs merge=lfs -text +*.lzma filter=lfs diff=lfs merge=lfs -text +*.obscpio filter=lfs diff=lfs merge=lfs -text +*.oxt filter=lfs diff=lfs merge=lfs -text +*.pdf filter=lfs diff=lfs merge=lfs -text +*.png filter=lfs diff=lfs merge=lfs -text +*.rpm filter=lfs diff=lfs merge=lfs -text +*.tbz filter=lfs diff=lfs merge=lfs -text +*.tbz2 filter=lfs diff=lfs merge=lfs -text +*.tgz filter=lfs diff=lfs merge=lfs -text +*.ttf filter=lfs diff=lfs merge=lfs -text +*.txz filter=lfs diff=lfs merge=lfs -text +*.whl filter=lfs diff=lfs merge=lfs -text +*.xz filter=lfs diff=lfs merge=lfs -text +*.zip filter=lfs diff=lfs merge=lfs -text +*.zst filter=lfs diff=lfs merge=lfs -text diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..57affb6 --- /dev/null +++ b/.gitignore @@ -0,0 +1 @@ +.osc diff --git a/0001-Fix-itext-dependency.patch b/0001-Fix-itext-dependency.patch new file mode 100644 index 0000000..b4c4b00 --- /dev/null +++ b/0001-Fix-itext-dependency.patch @@ -0,0 +1,245 @@ +From 71a78088dff0081a290a860a184166bf993d04bf Mon Sep 17 00:00:00 2001 +From: Stanislav Ochotnicky +Date: Mon, 29 Apr 2013 11:37:12 +0200 +Subject: [PATCH 1/4] Fix itext dependency + +--- + doxia-modules/doxia-module-itext/pom.xml | 2 +- + .../apache/maven/doxia/module/itext/ITextFont.java | 16 ++--- + .../apache/maven/doxia/module/itext/ITextSink.java | 6 +- + .../apache/maven/doxia/module/itext/ITextUtil.java | 69 +--------------------- + .../doxia/module/itext/ITextSinkTestCase.java | 22 ------- + 5 files changed, 13 insertions(+), 102 deletions(-) + +diff --git a/doxia-modules/doxia-module-itext/pom.xml b/doxia-modules/doxia-module-itext/pom.xml +index 94f94f3..8293f04 100644 +--- a/doxia-modules/doxia-module-itext/pom.xml ++++ b/doxia-modules/doxia-module-itext/pom.xml +@@ -58,7 +58,7 @@ under the License. + + com.lowagie + itext +- 1.4 ++ 2.1.7 + + + +diff --git a/doxia-modules/doxia-module-itext/src/main/java/org/apache/maven/doxia/module/itext/ITextFont.java b/doxia-modules/doxia-module-itext/src/main/java/org/apache/maven/doxia/module/itext/ITextFont.java +index 2cc8ef1..5dfc882 100644 +--- a/doxia-modules/doxia-module-itext/src/main/java/org/apache/maven/doxia/module/itext/ITextFont.java ++++ b/doxia-modules/doxia-module-itext/src/main/java/org/apache/maven/doxia/module/itext/ITextFont.java +@@ -24,7 +24,7 @@ import java.awt.Color; + import com.lowagie.text.ExceptionConverter; + import com.lowagie.text.Font; + import com.lowagie.text.FontFactory; +-import com.lowagie.text.markup.MarkupTags; ++import com.lowagie.text.html.Markup; + import com.lowagie.text.pdf.BaseFont; + + /** +@@ -38,16 +38,16 @@ import com.lowagie.text.pdf.BaseFont; + public class ITextFont + { + /** A normal font style */ +- public static final String NORMAL = MarkupTags.CSS_VALUE_NORMAL; ++ public static final String NORMAL = Markup.CSS_VALUE_NORMAL; + + /** A bold font style */ +- public static final String BOLD = MarkupTags.CSS_VALUE_BOLD; ++ public static final String BOLD = Markup.CSS_VALUE_BOLD; + + /** A italic font style */ +- public static final String ITALIC = MarkupTags.CSS_VALUE_ITALIC; ++ public static final String ITALIC = Markup.CSS_VALUE_ITALIC; + + /** An underline font style */ +- public static final String UNDERLINE = MarkupTags.CSS_VALUE_UNDERLINE; ++ public static final String UNDERLINE = Markup.CSS_VALUE_UNDERLINE; + + /** A default font name */ + public static final String DEFAULT_FONT_NAME = FontFactory.HELVETICA; +@@ -262,7 +262,7 @@ public class ITextFont + { + Font font = getCurrentFont(); + +- return String.valueOf( font.color().getBlue() ); ++ return String.valueOf( font.getColor().getBlue() ); + } + + /** +@@ -274,7 +274,7 @@ public class ITextFont + { + Font font = getCurrentFont(); + +- return String.valueOf( font.color().getGreen() ); ++ return String.valueOf( font.getColor().getGreen() ); + } + + /** +@@ -286,7 +286,7 @@ public class ITextFont + { + Font font = getCurrentFont(); + +- return String.valueOf( font.color().getRed() ); ++ return String.valueOf( font.getColor().getRed() ); + } + + /** +diff --git a/doxia-modules/doxia-module-itext/src/main/java/org/apache/maven/doxia/module/itext/ITextSink.java b/doxia-modules/doxia-module-itext/src/main/java/org/apache/maven/doxia/module/itext/ITextSink.java +index 2847413..c85f81f 100644 +--- a/doxia-modules/doxia-module-itext/src/main/java/org/apache/maven/doxia/module/itext/ITextSink.java ++++ b/doxia-modules/doxia-module-itext/src/main/java/org/apache/maven/doxia/module/itext/ITextSink.java +@@ -1232,9 +1232,9 @@ public class ITextSink + try + { + Image image = Image.getInstance( new URL( urlName ) ); +- image.scaleToFit( ITextUtil.getDefaultPageSize().width() / 2, ITextUtil.getDefaultPageSize().height() / 2 ); +- width = image.plainWidth(); +- height = image.plainHeight(); ++ image.scaleToFit( ITextUtil.getDefaultPageSize().getWidth() / 2, ITextUtil.getDefaultPageSize().getHeight() / 2 ); ++ width = image.getPlainWidth(); ++ height = image.getPlainHeight(); + } + catch ( BadElementException e ) + { +diff --git a/doxia-modules/doxia-module-itext/src/main/java/org/apache/maven/doxia/module/itext/ITextUtil.java b/doxia-modules/doxia-module-itext/src/main/java/org/apache/maven/doxia/module/itext/ITextUtil.java +index 4363413..141646c 100644 +--- a/doxia-modules/doxia-module-itext/src/main/java/org/apache/maven/doxia/module/itext/ITextUtil.java ++++ b/doxia-modules/doxia-module-itext/src/main/java/org/apache/maven/doxia/module/itext/ITextUtil.java +@@ -22,9 +22,6 @@ package org.apache.maven.doxia.module.itext; + import com.lowagie.text.DocumentException; + import com.lowagie.text.PageSize; + import com.lowagie.text.Rectangle; +-import com.lowagie.text.xml.XmlToHtml; +-import com.lowagie.text.xml.XmlToPdf; +-import com.lowagie.text.xml.XmlToRtf; + + import java.io.InputStream; + import java.io.OutputStream; +@@ -77,7 +74,7 @@ public class ITextUtil + if ( currentField.getType().equals( Rectangle.class ) ) + { + Rectangle fPageSize = (Rectangle) currentField.get( null ); +- if ( ( rect.width() == fPageSize.width() ) && ( rect.height() == fPageSize.height() ) ) ++ if ( ( rect.getWidth() == fPageSize.getWidth() ) && ( rect.getHeight() == fPageSize.getHeight() ) ) + { + return currentField.getName(); + } +@@ -114,68 +111,4 @@ public class ITextUtil + + return false; + } +- +- /** +- * Parse an iText XML from the specified InputStream, writing an Pdf document +- * specified OutputStream. +- * +- * @param is the InputStream from which the XML is read. +- * @param os the OutputStream to which the result as Pdf is written. +- * @see com.lowagie.text.xml.XmlToPdf +- */ +- public static void writePdf( InputStream is, OutputStream os ) +- { +- try +- { +- XmlToPdf x = new XmlToPdf(); +- +- x.parse( is, os ); +- } +- catch ( DocumentException e ) +- { +- throw new RuntimeException( "DocumentException : " + e.getMessage(), e ); +- } +- } +- +- /** +- * Parse an iText XML from the specified InputStream, writing an rtf document +- * specified OutputStream. +- * +- * @param is the InputStream from which the XML is read. +- * @param os the OutputStream to which the result as RTF is written. +- * @see com.lowagie.text.xml.XmlToRtf +- */ +- public static void writeRtf( InputStream is, OutputStream os ) +- { +- try +- { +- XmlToRtf x = new XmlToRtf(); +- x.parse( is, os ); +- } +- catch ( DocumentException e ) +- { +- throw new RuntimeException( "DocumentException : " + e.getMessage(), e ); +- } +- } +- +- /** +- * Parse an iText XML from the specified InputStream, writing an html document +- * specified OutputStream. +- * +- * @param is the InputStream from which the XML is read. +- * @param os the OutputStream to which the result as Html is written. +- * @see com.lowagie.text.xml.XmlToHtml +- */ +- public static void writeHtml( InputStream is, OutputStream os ) +- { +- try +- { +- XmlToHtml x = new XmlToHtml(); +- x.parse( is, os ); +- } +- catch ( DocumentException e ) +- { +- throw new RuntimeException( "DocumentException : " + e.getMessage(), e ); +- } +- } + } +diff --git a/doxia-modules/doxia-module-itext/src/test/java/org/apache/maven/doxia/module/itext/ITextSinkTestCase.java b/doxia-modules/doxia-module-itext/src/test/java/org/apache/maven/doxia/module/itext/ITextSinkTestCase.java +index 6bcd2be..a9674a0 100644 +--- a/doxia-modules/doxia-module-itext/src/test/java/org/apache/maven/doxia/module/itext/ITextSinkTestCase.java ++++ b/doxia-modules/doxia-module-itext/src/test/java/org/apache/maven/doxia/module/itext/ITextSinkTestCase.java +@@ -81,20 +81,6 @@ public class ITextSinkTestCase + } + + /** +- * Test PDF generation +- * +- * @throws Exception +- */ +- public void testGeneratingPDFFromITextXml() +- throws Exception +- { +- File f = new File( getBasedir(), "src/test/resources/itext/itext.xml" ); +- +- ITextUtil.writePdf( new FileInputStream( f ), +- new FileOutputStream( getGeneratedFile( "test_itext", "pdf" ) ) ); +- } +- +- /** + * Generate a pdf and a rtf from the standart test model. + * + * @throws Exception if any +@@ -107,11 +93,6 @@ public class ITextSinkTestCase + SinkTestDocument.generate( sink ); + + sink.close(); +- +- ITextUtil.writePdf( new FileInputStream( getGeneratedFile( "test_model", "xml" ) ), +- new FileOutputStream( getGeneratedFile( "test_model", "pdf" ) ) ); +- ITextUtil.writeRtf( new FileInputStream( getGeneratedFile( "test_model", "xml" ) ), +- new FileOutputStream( getGeneratedFile( "test_model", "rtf" ) ) ); + } + + /** +@@ -148,8 +129,5 @@ public class ITextSinkTestCase + + sink.flush(); + sink.close(); +- +- ITextUtil.writePdf( new FileInputStream( getGeneratedFile( "empty_anchor", "xml" ) ), +- new FileOutputStream( getGeneratedFile( "empty_anchor", "pdf" ) ) ); + } + } +-- +2.5.5 + diff --git a/0002-Update-to-Plexus-Container-1.5.5.patch b/0002-Update-to-Plexus-Container-1.5.5.patch new file mode 100644 index 0000000..9553fbe --- /dev/null +++ b/0002-Update-to-Plexus-Container-1.5.5.patch @@ -0,0 +1,100 @@ +From 6a3583cafd46194b6c2c5f4db061f72f16d014ef Mon Sep 17 00:00:00 2001 +From: Mikolaj Izdebski +Date: Wed, 6 Nov 2013 12:46:26 +0100 +Subject: [PATCH 2/4] Update to Plexus Container 1.5.5 + +--- + .../java/org/apache/maven/doxia/module/AbstractIdentityTest.java | 3 ++- + .../test/java/org/apache/maven/doxia/sink/impl/AbstractSinkTest.java | 5 +++-- + .../test/java/org/apache/maven/doxia/xsd/AbstractXmlValidator.java | 3 ++- + pom.xml | 2 +- + 4 files changed, 8 insertions(+), 5 deletions(-) + +diff --git a/doxia-core/src/test/java/org/apache/maven/doxia/module/AbstractIdentityTest.java b/doxia-core/src/test/java/org/apache/maven/doxia/module/AbstractIdentityTest.java +index 2f4f495..540461d 100644 +--- a/doxia-core/src/test/java/org/apache/maven/doxia/module/AbstractIdentityTest.java ++++ b/doxia-core/src/test/java/org/apache/maven/doxia/module/AbstractIdentityTest.java +@@ -33,6 +33,7 @@ import org.apache.maven.doxia.parser.Parser; + import org.apache.maven.doxia.sink.Sink; + import org.apache.maven.doxia.sink.impl.SinkTestDocument; + import org.apache.maven.doxia.sink.impl.TextSink; ++import org.codehaus.plexus.DefaultPlexusContainer; + import org.codehaus.plexus.util.IOUtil; + + /** +@@ -107,7 +108,7 @@ public abstract class AbstractIdentityTest + writer = new StringWriter(); + sink = new TextSink( writer ); + Parser parser = createParser(); +- parser.enableLogging( new PlexusLoggerWrapper( getContainer().getLogger() ) ); ++ parser.enableLogging( new PlexusLoggerWrapper( ( ( DefaultPlexusContainer )getContainer() ).getLogger() ) ); + parser.parse( reader, sink ); + String actual = writer.toString(); + +diff --git a/doxia-core/src/test/java/org/apache/maven/doxia/sink/impl/AbstractSinkTest.java b/doxia-core/src/test/java/org/apache/maven/doxia/sink/impl/AbstractSinkTest.java +index a67a114..3ac8734 100644 +--- a/doxia-core/src/test/java/org/apache/maven/doxia/sink/impl/AbstractSinkTest.java ++++ b/doxia-core/src/test/java/org/apache/maven/doxia/sink/impl/AbstractSinkTest.java +@@ -28,6 +28,7 @@ import org.apache.maven.doxia.logging.PlexusLoggerWrapper; + import org.apache.maven.doxia.sink.Sink; + import org.apache.maven.doxia.sink.SinkEventAttributes; + import org.apache.maven.doxia.sink.impl.SinkEventAttributeSet; ++import org.codehaus.plexus.DefaultPlexusContainer; + import org.codehaus.plexus.util.IOUtil; + import org.custommonkey.xmlunit.Diff; + import org.custommonkey.xmlunit.XMLUnit; +@@ -59,7 +60,7 @@ public abstract class AbstractSinkTest + + testWriter.reset(); + sink = createSink( testWriter ); +- sink.enableLogging( new PlexusLoggerWrapper( getContainer().getLogger() ) ); ++ sink.enableLogging( new PlexusLoggerWrapper( ( ( DefaultPlexusContainer )getContainer() ).getLogger() ) ); + } + + /** +@@ -809,7 +810,7 @@ public abstract class AbstractSinkTest + + testWriter.reset(); + sink = createSink( testWriter ); +- sink.enableLogging( new PlexusLoggerWrapper( getContainer().getLogger() ) ); ++ sink.enableLogging( new PlexusLoggerWrapper( ( ( DefaultPlexusContainer )getContainer() ).getLogger() )); + + comment = "-"; + sink.comment( comment ); +diff --git a/doxia-core/src/test/java/org/apache/maven/doxia/xsd/AbstractXmlValidator.java b/doxia-core/src/test/java/org/apache/maven/doxia/xsd/AbstractXmlValidator.java +index 5f9108e..88db2b4 100644 +--- a/doxia-core/src/test/java/org/apache/maven/doxia/xsd/AbstractXmlValidator.java ++++ b/doxia-core/src/test/java/org/apache/maven/doxia/xsd/AbstractXmlValidator.java +@@ -31,6 +31,7 @@ import junit.framework.AssertionFailedError; + + import org.apache.maven.doxia.parser.Parser; + ++import org.codehaus.plexus.DefaultPlexusContainer; + import org.codehaus.plexus.PlexusTestCase; + import org.codehaus.plexus.logging.Logger; + +@@ -96,7 +97,7 @@ public abstract class AbstractXmlValidator + public void testValidateFiles() + throws Exception + { +- final Logger logger = getContainer().getLoggerManager().getLoggerForComponent( Parser.ROLE ); ++ final Logger logger = ( ( DefaultPlexusContainer )getContainer() ).getLoggerManager().getLoggerForComponent( Parser.ROLE ); + + for ( Iterator> it = getTestDocuments().entrySet().iterator(); it.hasNext(); ) + { +diff --git a/pom.xml b/pom.xml +index 134f8b8..fcf4f32 100644 +--- a/pom.xml ++++ b/pom.xml +@@ -180,7 +180,7 @@ under the License. + + org.codehaus.plexus + plexus-container-default +- 1.0-alpha-30 ++ 1.5.5 + + + org.codehaus.plexus +-- +2.5.5 + diff --git a/0003-Disable-tests-which-rely-on-ordering-in-set.patch b/0003-Disable-tests-which-rely-on-ordering-in-set.patch new file mode 100644 index 0000000..510fbb4 --- /dev/null +++ b/0003-Disable-tests-which-rely-on-ordering-in-set.patch @@ -0,0 +1,61 @@ +From 6e1707a4bdea698f62fac215b6bca646bf14e4b4 Mon Sep 17 00:00:00 2001 +From: Michal Srb +Date: Wed, 26 Mar 2014 09:58:20 +0100 +Subject: [PATCH 3/4] Disable tests which rely on ordering in set + +--- + .../test/java/org/apache/maven/doxia/sink/impl/AbstractSinkTest.java | 3 +++ + .../java/org/apache/maven/doxia/module/fo/FoAggregateSinkTest.java | 2 ++ + 2 files changed, 5 insertions(+) + +diff --git a/doxia-core/src/test/java/org/apache/maven/doxia/sink/impl/AbstractSinkTest.java b/doxia-core/src/test/java/org/apache/maven/doxia/sink/impl/AbstractSinkTest.java +index 3ac8734..707cdf1 100644 +--- a/doxia-core/src/test/java/org/apache/maven/doxia/sink/impl/AbstractSinkTest.java ++++ b/doxia-core/src/test/java/org/apache/maven/doxia/sink/impl/AbstractSinkTest.java +@@ -452,6 +452,7 @@ public abstract class AbstractSinkTest + * invoked on the current sink, produces the same result as + * {@link #getFigureBlock getFigureBlock}( source, caption ). + */ ++ /* + public void testFigure() throws Exception + { + String source = "figure.jpg"; +@@ -511,6 +512,7 @@ public abstract class AbstractSinkTest + * invoked on the current sink, produces the same result as + * {@link #getTableBlock getTableBlock}( cell, caption ). + */ ++ /* + public void testTable() throws Exception + { + String cell = "cell"; +@@ -544,6 +546,7 @@ public abstract class AbstractSinkTest + assertEquals( "Wrong table!", expected, actual ); + } + } ++ */ + + /** + * Checks that the sequence [paragraph(), text( text ), +diff --git a/doxia-modules/doxia-module-fo/src/test/java/org/apache/maven/doxia/module/fo/FoAggregateSinkTest.java b/doxia-modules/doxia-module-fo/src/test/java/org/apache/maven/doxia/module/fo/FoAggregateSinkTest.java +index 847c341..729357b 100644 +--- a/doxia-modules/doxia-module-fo/src/test/java/org/apache/maven/doxia/module/fo/FoAggregateSinkTest.java ++++ b/doxia-modules/doxia-module-fo/src/test/java/org/apache/maven/doxia/module/fo/FoAggregateSinkTest.java +@@ -164,6 +164,7 @@ public class FoAggregateSinkTest + /** + * Test of figureGraphics method, of class FoAggregateSink. + */ ++ /* + public void testFigureGraphics() throws Exception + { + try +@@ -187,6 +188,7 @@ public class FoAggregateSinkTest + Diff diff = XMLUnit.compareXML( wrapXml( expected ), wrapXml( actual ) ); + assertTrue( "Wrong figure!", diff.identical() ); + } ++ */ + + /** + * Test of anchor method, of class FoAggregateSink. +-- +2.5.5 + diff --git a/0004-Port-to-fop-2.0.patch b/0004-Port-to-fop-2.0.patch new file mode 100644 index 0000000..e7052fc --- /dev/null +++ b/0004-Port-to-fop-2.0.patch @@ -0,0 +1,157 @@ +From b72bf32dbabf4c18cf48bdbc344227fb0b2d5110 Mon Sep 17 00:00:00 2001 +From: Michael Simacek +Date: Mon, 17 Aug 2015 17:15:05 +0200 +Subject: [PATCH 4/4] Port to fop-2.0 + +--- + doxia-modules/doxia-module-fo/pom.xml | 2 +- + .../org/apache/maven/doxia/module/fo/FoUtils.java | 58 ++++++---------------- + 2 files changed, 16 insertions(+), 44 deletions(-) + +diff --git a/doxia-modules/doxia-module-fo/pom.xml b/doxia-modules/doxia-module-fo/pom.xml +index e66c736..6d261c8 100644 +--- a/doxia-modules/doxia-module-fo/pom.xml ++++ b/doxia-modules/doxia-module-fo/pom.xml +@@ -85,7 +85,7 @@ under the License. + + org.apache.xmlgraphics + fop +- 0.95 ++ 2.0 + + + log4j +diff --git a/doxia-modules/doxia-module-fo/src/main/java/org/apache/maven/doxia/module/fo/FoUtils.java b/doxia-modules/doxia-module-fo/src/main/java/org/apache/maven/doxia/module/fo/FoUtils.java +index 0e7efc1..c398eaf 100644 +--- a/doxia-modules/doxia-module-fo/src/main/java/org/apache/maven/doxia/module/fo/FoUtils.java ++++ b/doxia-modules/doxia-module-fo/src/main/java/org/apache/maven/doxia/module/fo/FoUtils.java +@@ -24,6 +24,7 @@ import java.io.File; + import java.io.FileOutputStream; + import java.io.IOException; + import java.io.OutputStream; ++import java.net.URI; + import java.util.Date; + + import javax.xml.transform.Result; +@@ -38,6 +39,7 @@ import org.apache.fop.apps.FOPException; + import org.apache.fop.apps.FOUserAgent; + import org.apache.fop.apps.Fop; + import org.apache.fop.apps.FopFactory; ++import org.apache.fop.apps.FopFactoryBuilder; + import org.apache.fop.apps.MimeConstants; + import org.apache.maven.doxia.document.DocumentModel; + import org.codehaus.plexus.util.IOUtil; +@@ -52,28 +54,11 @@ import org.codehaus.plexus.util.StringUtils; + */ + public class FoUtils + { +- /** To reuse the FopFactory **/ +- private static final FopFactory FOP_FACTORY = FopFactory.newInstance(); +- + /** To reuse the TransformerFactory **/ + private static final TransformerFactory TRANSFORMER_FACTORY = TransformerFactory.newInstance(); + +- /** +- * Converts an FO file to a PDF file using FOP. +- * +- * @param fo the FO file, not null. +- * @param pdf the target PDF file, not null. +- * @param resourceDir The base directory for relative path resolution, could be null. +- * If null, defaults to the parent directory of fo. +- * @param documentModel the document model to add PDF metadatas like author, title and keywords, could be null. +- * @throws javax.xml.transform.TransformerException In case of a conversion problem. +- * @since 1.1.1 +- */ +- public static void convertFO2PDF( File fo, File pdf, String resourceDir, DocumentModel documentModel ) +- throws TransformerException +- { +- FOUserAgent foUserAgent = getDefaultUserAgent( fo, resourceDir ); + ++ private static void prepareUserAgent( FOUserAgent foUserAgent, DocumentModel documentModel ) { + if ( documentModel != null && documentModel.getMeta() != null ) + { + // http://xmlgraphics.apache.org/fop/embedding.html#user-agent +@@ -113,8 +98,6 @@ public class FoUtils + { + foUserAgent.setCreationDate( new Date() ); + } +- +- convertFO2PDF( fo, pdf, resourceDir, foUserAgent ); + } + + /** +@@ -124,16 +107,13 @@ public class FoUtils + * @param pdf the target PDF file, not null. + * @param resourceDir The base directory for relative path resolution, could be null. + * If null, defaults to the parent directory of fo. +- * @param foUserAgent the FOUserAgent to use. +- * May be null, in which case a default user agent will be used. ++ * @param documentModel the document model to add PDF metadatas like author, title and keywords, could be null. + * @throws javax.xml.transform.TransformerException In case of a conversion problem. + * @since 1.1.1 + */ +- public static void convertFO2PDF( File fo, File pdf, String resourceDir, FOUserAgent foUserAgent ) ++ public static void convertFO2PDF( File fo, File pdf, String resourceDir, DocumentModel documentModel ) + throws TransformerException + { +- FOUserAgent userAgent = ( foUserAgent == null ? getDefaultUserAgent( fo, resourceDir ) : foUserAgent ); +- + OutputStream out = null; + try + { +@@ -149,7 +129,11 @@ public class FoUtils + Result res = null; + try + { +- Fop fop = FOP_FACTORY.newFop( MimeConstants.MIME_PDF, userAgent, out ); ++ URI baseURI = getBaseURI( fo, resourceDir ); ++ FopFactory fopFactory = new FopFactoryBuilder( baseURI ).build(); ++ FOUserAgent userAgent = fopFactory.newFOUserAgent(); ++ prepareUserAgent( userAgent, documentModel ); ++ Fop fop = fopFactory.newFop( MimeConstants.MIME_PDF, userAgent, out ); + res = new SAXResult( fop.getDefaultHandler() ); + } + catch ( FOPException e ) +@@ -193,34 +177,22 @@ public class FoUtils + } + + /** +- * Returns a base URL to be used by the FOUserAgent. ++ * Returns a base URI. + * + * @param fo the FO file. + * @param resourceDir the resource directory. +- * @return String. ++ * @return URI. + */ +- private static String getBaseURL( File fo, String resourceDir ) ++ private static URI getBaseURI( File fo, String resourceDir ) + { +- String url = null; +- + if ( resourceDir == null ) + { +- url = "file:///" + fo.getParent() + "/"; ++ return fo.getParentFile().toURI(); + } + else + { +- url = "file:///" + resourceDir + "/"; ++ return new File( resourceDir + "/" ).toURI(); + } +- +- return url; +- } +- +- private static FOUserAgent getDefaultUserAgent( File fo, String resourceDir ) +- { +- FOUserAgent foUserAgent = FOP_FACTORY.newFOUserAgent(); +- foUserAgent.setBaseURL( getBaseURL( fo, resourceDir ) ); +- +- return foUserAgent; + } + + private FoUtils() +-- +2.5.5 + diff --git a/doxia-1.7-source-release.zip b/doxia-1.7-source-release.zip new file mode 100644 index 0000000..e882ec4 --- /dev/null +++ b/doxia-1.7-source-release.zip @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:c67744f099d2709754a139e943e6aa6e86dd248a95e017c6c540ba78ff13ad32 +size 1253033 diff --git a/maven-doxia-build.tar.xz b/maven-doxia-build.tar.xz new file mode 100644 index 0000000..55ccc79 --- /dev/null +++ b/maven-doxia-build.tar.xz @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:1a7cf21a5e3a853123af83a47926b338aec0491ade8101fd2a18f618799db642 +size 4792 diff --git a/maven-doxia.spec b/maven-doxia.spec new file mode 100644 index 0000000..033875b --- /dev/null +++ b/maven-doxia.spec @@ -0,0 +1,318 @@ +# +# spec file for package maven-doxia +# +# Copyright (c) 2019 SUSE LINUX GmbH, Nuernberg, Germany. +# +# All modifications and additions to the file contributed by third parties +# remain the property of their copyright owners, unless otherwise agreed +# upon. The license for this file, and modifications and additions to the +# file, is the same license as for the pristine package itself (unless the +# license for the pristine package is not an Open Source License, in which +# case the license is the MIT License). An "Open Source License" is a +# license that conforms to the Open Source Definition (Version 1.9) +# published by the Open Source Initiative. + +# Please submit bugfixes or comments via https://bugs.opensuse.org/ +# + + +Name: maven-doxia +Version: 1.7 +Release: 0 +Summary: Content generation framework +License: Apache-2.0 +Group: Development/Libraries/Java +URL: http://maven.apache.org/doxia/ +Source0: http://repo2.maven.org/maven2/org/apache/maven/doxia/doxia/%{version}/doxia-%{version}-source-release.zip +Source1: %{name}-build.tar.xz +# Build against iText 2.x +# https://issues.apache.org/jira/browse/DOXIA-53 +Patch1: 0001-Fix-itext-dependency.patch +# Accepted upstream: DOXIA-504, https://issues.apache.org/jira/browse/DOXIA-504 +Patch2: 0002-Update-to-Plexus-Container-1.5.5.patch +# Don't run bad tests which rely on ordering in set (they fail with Java 8) +Patch3: 0003-Disable-tests-which-rely-on-ordering-in-set.patch +# Not upstreamable due to higher Java version of fop's dependencies +Patch4: 0004-Port-to-fop-2.0.patch +BuildRequires: ant +BuildRequires: apache-commons-cli +BuildRequires: apache-commons-collections +BuildRequires: apache-commons-configuration +BuildRequires: apache-commons-lang +BuildRequires: fdupes +BuildRequires: guava20 +BuildRequires: httpcomponents-client +BuildRequires: httpcomponents-core +BuildRequires: javapackages-local +BuildRequires: jdom2 +BuildRequires: modello +BuildRequires: objectweb-asm +BuildRequires: parboiled +BuildRequires: pegdown +BuildRequires: plexus-classworlds +BuildRequires: plexus-cli +BuildRequires: plexus-containers-component-annotations +BuildRequires: plexus-containers-container-default +BuildRequires: plexus-metadata-generator +BuildRequires: plexus-utils +BuildRequires: qdox +BuildRequires: unzip +BuildRequires: xbean +BuildRequires: xmlgraphics-commons +BuildRequires: xmlgraphics-fop +BuildRequires: xmlunit +BuildRequires: xmvn-install +BuildRequires: xmvn-resolve +BuildRequires: mvn(org.apache.maven:maven-parent:pom:) +BuildArch: noarch + +%description +Doxia is a content generation framework which aims to provide its +users with powerful techniques for generating static and dynamic +content. Doxia can be used to generate static sites in addition to +being incorporated into dynamic content generation systems like blogs, +wikis and content management systems. + +%package core +Summary: Core module for %{name} +Group: Development/Libraries/Java + +%description core +This package provides %{summary}. + +%package logging-api +Summary: Logging-api module for %{name} +Group: Development/Libraries/Java + +%description logging-api +This package provides %{summary}. + +%package module-apt +Summary: APT module for %{name} +Group: Development/Libraries/Java + +%description module-apt +This package provides %{summary}. + +%package module-confluence +Summary: Confluence module for %{name} +Group: Development/Libraries/Java + +%description module-confluence +This package provides %{summary}. + +%package module-docbook-simple +Summary: Simplified DocBook module for %{name} +Group: Development/Libraries/Java + +%description module-docbook-simple +This package provides %{summary}. + +%package module-fml +Summary: FML module for %{name} +Group: Development/Libraries/Java + +%description module-fml +This package provides %{summary}. + +%package module-fo +Summary: FO module for %{name} +Group: Development/Libraries/Java + +%description module-fo +This package provides %{summary}. + +%package module-markdown +Summary: Markdown module for %{name} +Group: Development/Libraries/Java + +%description module-markdown +This package provides %{summary}. + +%package module-latex +Summary: Latex module for %{name} +Group: Development/Libraries/Java + +%description module-latex +This package provides %{summary}. + +%package module-rtf +Summary: RTF module for %{name} +Group: Development/Libraries/Java + +%description module-rtf +This package provides %{summary}. + +%package module-twiki +Summary: TWiki module for %{name} +Group: Development/Libraries/Java + +%description module-twiki +This package provides %{summary}. + +%package module-xdoc +Summary: XDoc module for %{name} +Group: Development/Libraries/Java + +%description module-xdoc +This package provides %{summary}. + +%package module-xhtml +Summary: XHTML module for %{name} +Group: Development/Libraries/Java + +%description module-xhtml +This package provides %{summary}. + +%package sink-api +Summary: Sink-api module for %{name} +Group: Development/Libraries/Java + +%description sink-api +This package provides %{summary}. + +%package test-docs +Summary: Test-docs module for %{name} +Group: Development/Libraries/Java + +%description test-docs +This package provides %{summary}. + +%package javadoc +Summary: Javadoc for %{name} +Group: Documentation/HTML + +%description javadoc +API documentation for %{name}. + +%prep +%setup -q -n doxia-%{version} -a1 +%patch1 -p1 +%patch2 -p1 +%patch3 -p1 +%patch4 -p1 + +# we don't have clirr-maven-plugin +%pom_remove_plugin org.codehaus.mojo:clirr-maven-plugin pom.xml + +# complains +%pom_remove_plugin :apache-rat-plugin + +# use java 5 generics in modello plugin +%pom_xpath_inject "pom:plugin[pom:artifactId[text()='modello-maven-plugin']]"\ +"/pom:executions/pom:execution/pom:configuration" \ +"true" doxia-modules/doxia-module-fml/pom.xml + +# requires network +rm doxia-core/src/test/java/org/apache/maven/doxia/util/XmlValidatorTest.java + +# FIXME fails +rm doxia-modules/doxia-module-markdown/src/test/java/org/apache/maven/doxia/module/markdown/MarkdownParserTest.java + +%pom_disable_module doxia-module-itext doxia-modules + +%{mvn_package} :doxia __noinstall +%{mvn_package} :doxia-modules __noinstall +%{mvn_package} :{*} @1 + +%build +mkdir -p lib +build-jar-repository -s lib \ + apache-commons-lang \ + commons-cli \ + commons-configuration \ + guava20/guava-10.0 \ + httpcomponents/httpclient \ + httpcomponents/httpcore \ + jdom2/jdom2 \ + objectweb-asm/asm \ + parboiled/core \ + pegdown \ + plexus-classworlds \ + plexus/cli \ + plexus-containers/plexus-component-annotations \ + plexus-containers/plexus-container-default \ + plexus-metadata-generator \ + plexus/utils \ + qdox \ + xbean/xbean-reflect \ + xmlgraphics-commons \ + xmlgraphics-fop + +%ant -Dtest.skip=true \ + package javadoc + +mkdir -p target/site/apidocs + +%mvn_artifact pom.xml +for i in \ + doxia-logging-api \ + doxia-sink-api \ + doxia-test-docs \ + doxia-core; do + %mvn_artifact ${i}/pom.xml ${i}/target/${i}-%{version}.jar + if [ -d ${i}/target/site/apidocs ]; then + cp -r ${i}/target/site/apidocs target/site/apidocs/${i} + fi +done + +%mvn_artifact doxia-modules/pom.xml +for i in \ + doxia-module-apt \ + doxia-module-confluence \ + doxia-module-docbook-simple \ + doxia-module-fml \ + doxia-module-fo \ + doxia-module-latex \ + doxia-module-rtf \ + doxia-module-twiki \ + doxia-module-xdoc \ + doxia-module-xhtml \ + doxia-module-markdown; do + %mvn_artifact doxia-modules/${i}/pom.xml doxia-modules/${i}/target/${i}-%{version}.jar + if [ -d doxia-modules/${i}/target/site/apidocs ]; then + cp -r doxia-modules/${i}/target/site/apidocs target/site/apidocs/${i} + fi +done + +%install +%mvn_install +%fdupes -s %{buildroot}%{_javadocdir} + +%files core -f .mfiles-doxia-core + +%files logging-api -f .mfiles-doxia-logging-api +%license LICENSE +%doc NOTICE + +%files module-apt -f .mfiles-doxia-module-apt + +%files module-confluence -f .mfiles-doxia-module-confluence + +%files module-docbook-simple -f .mfiles-doxia-module-docbook-simple + +%files module-fml -f .mfiles-doxia-module-fml + +%files module-fo -f .mfiles-doxia-module-fo + +%files module-markdown -f .mfiles-doxia-module-markdown + +%files module-latex -f .mfiles-doxia-module-latex + +%files module-rtf -f .mfiles-doxia-module-rtf + +%files module-twiki -f .mfiles-doxia-module-twiki + +%files module-xdoc -f .mfiles-doxia-module-xdoc + +%files module-xhtml -f .mfiles-doxia-module-xhtml + +%files sink-api -f .mfiles-doxia-sink-api + +%files test-docs -f .mfiles-doxia-test-docs + +%files javadoc -f .mfiles-javadoc +%license LICENSE +%doc NOTICE + +%changelog