SHA256
1
0
forked from pool/maven-doxia
Fridrich Strba 2019-03-28 15:13:34 +00:00 committed by Git OBS Bridge
commit 86f921a898
9 changed files with 911 additions and 0 deletions

23
.gitattributes vendored Normal file
View File

@ -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

1
.gitignore vendored Normal file
View File

@ -0,0 +1 @@
.osc

View File

@ -0,0 +1,245 @@
From 71a78088dff0081a290a860a184166bf993d04bf Mon Sep 17 00:00:00 2001
From: Stanislav Ochotnicky <sochotnicky@redhat.com>
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.
<dependency>
<groupId>com.lowagie</groupId>
<artifactId>itext</artifactId>
- <version>1.4</version>
+ <version>2.1.7</version>
</dependency>
</dependencies>
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 <CODE>InputStream</CODE>, writing an Pdf document
- * specified <CODE>OutputStream</CODE>.
- *
- * @param is the <CODE>InputStream</CODE> from which the XML is read.
- * @param os the <CODE>OutputStream</CODE> 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 <CODE>InputStream</CODE>, writing an rtf document
- * specified <CODE>OutputStream</CODE>.
- *
- * @param is the <CODE>InputStream</CODE> from which the XML is read.
- * @param os the <CODE>OutputStream</CODE> 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 <CODE>InputStream</CODE>, writing an html document
- * specified <CODE>OutputStream</CODE>.
- *
- * @param is the <CODE>InputStream</CODE> from which the XML is read.
- * @param os the <CODE>OutputStream</CODE> 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

View File

@ -0,0 +1,100 @@
From 6a3583cafd46194b6c2c5f4db061f72f16d014ef Mon Sep 17 00:00:00 2001
From: Mikolaj Izdebski <mizdebsk@redhat.com>
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<Map.Entry<String, String>> 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.
<dependency>
<groupId>org.codehaus.plexus</groupId>
<artifactId>plexus-container-default</artifactId>
- <version>1.0-alpha-30</version>
+ <version>1.5.5</version>
</dependency>
<dependency>
<groupId>org.codehaus.plexus</groupId>
--
2.5.5

View File

@ -0,0 +1,61 @@
From 6e1707a4bdea698f62fac215b6bca646bf14e4b4 Mon Sep 17 00:00:00 2001
From: Michal Srb <msrb@redhat.com>
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 <code>[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

157
0004-Port-to-fop-2.0.patch Normal file
View File

@ -0,0 +1,157 @@
From b72bf32dbabf4c18cf48bdbc344227fb0b2d5110 Mon Sep 17 00:00:00 2001
From: Michael Simacek <msimacek@redhat.com>
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.
<dependency>
<groupId>org.apache.xmlgraphics</groupId>
<artifactId>fop</artifactId>
- <version>0.95</version>
+ <version>2.0</version>
</dependency>
<dependency>
<groupId>log4j</groupId>
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

View File

@ -0,0 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:c67744f099d2709754a139e943e6aa6e86dd248a95e017c6c540ba78ff13ad32
size 1253033

3
maven-doxia-build.tar.xz Normal file
View File

@ -0,0 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:1a7cf21a5e3a853123af83a47926b338aec0491ade8101fd2a18f618799db642
size 4792

318
maven-doxia.spec Normal file
View File

@ -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" \
"<useJava5>true</useJava5>" 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