Skip to content

Commit b1b51cd

Browse files
committed
chore: mod fop integration for doc-producer #523
1 parent 713cdbe commit b1b51cd

File tree

6 files changed

+76
-8
lines changed

6 files changed

+76
-8
lines changed

fj-doc-base/src/main/java/org/fugerit/java/doc/base/config/VenusVersion.java

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,8 @@ private VenusVersion() {}
1515

1616
public static final String VENUS_CREATOR = String.format( "%s (https://github.com/fugerit-org/fj-doc)", DocConfig.FUGERIT_VENUS_DOC );
1717

18+
public static final String VENUS_PRODUCER_FORMAT = "%s (%s) over %s (%s)";
19+
1820
public static Optional<String> getFjDocCoreVersion() {
1921
return getFjDocModuleVersion( FJ_DOC_BASE_ARTIFACT_ID );
2022
}

fj-doc-base/src/test/java/test/org/fugerit/java/doc/base/config/TestVenusVersion.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@ class TestVenusVersion {
1010
void testVersion() {
1111
Assertions.assertNotNull( VenusVersion.getFjDocCoreVersionS() );
1212
Assertions.assertNotNull( VenusVersion.getFjDocCoreVersionS() );
13+
Assertions.assertNotNull( VenusVersion.getFjDocModuleVersion( "fj-doc-base" ) );
1314
}
1415

1516
}

fj-doc-mod-fop/src/main/java/org/fugerit/java/doc/mod/fop/PdfFopTypeHandler.java

Lines changed: 14 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -22,13 +22,10 @@
2222
import org.fugerit.java.core.lang.helpers.BooleanUtils;
2323
import org.fugerit.java.core.lang.helpers.ClassHelper;
2424
import org.fugerit.java.core.lang.helpers.StringUtils;
25+
import org.fugerit.java.core.util.mvn.MavenProps;
2526
import org.fugerit.java.core.xml.dom.DOMIO;
2627
import org.fugerit.java.core.xml.dom.DOMUtils;
27-
import org.fugerit.java.doc.base.config.DocCharsetProvider;
28-
import org.fugerit.java.doc.base.config.DocConfig;
29-
import org.fugerit.java.doc.base.config.DocInput;
30-
import org.fugerit.java.doc.base.config.DocOutput;
31-
import org.fugerit.java.doc.base.config.DocTypeHandler;
28+
import org.fugerit.java.doc.base.config.*;
3229
import org.fugerit.java.doc.mod.fop.config.FopConfigClassLoaderWrapper;
3330
import org.w3c.dom.Element;
3431
import org.w3c.dom.NodeList;
@@ -121,6 +118,16 @@ public void setFopConfig(FopConfig fopConfig) {
121118

122119
private transient UnsafeConsumer<FopConfigWrap, ConfigException> fopWrapConsumer;
123120

121+
private static String getModuleVersion() {
122+
return VenusVersion.getFjDocModuleVersionS( "fj-doc-mod-fop");
123+
}
124+
125+
private static String getApacheFOPVersion() {
126+
return MavenProps.getProperty( "org.apache.xmlgraphics", "fop", MavenProps.VERSION );
127+
}
128+
129+
private static final String PRODUCER_DEFAULT = String.format( VenusVersion.VENUS_PRODUCER_FORMAT, DocConfig.FUGERIT_VENUS_DOC , getModuleVersion() , "Apache FOP", getApacheFOPVersion() );
130+
124131
public PdfFopTypeHandler( Charset charset, FopConfig fopConfig, boolean accessibility, boolean keepEmptyTags ) {
125132
super( DocConfig.TYPE_PDF, charset );
126133
this.fopConfig = fopConfig;
@@ -172,6 +179,8 @@ private FopConfigWrap newFopWrap() throws ConfigException {
172179
}
173180
foUserAgent.setAccessibility( this.isAccessibility() );
174181
foUserAgent.setKeepEmptyTags( this.isKeepEmptyTags() );
182+
foUserAgent.setProducer( PRODUCER_DEFAULT );
183+
foUserAgent.setCreator( VenusVersion.VENUS_CREATOR );
175184
return new FopConfigWrap( fopFactory, foUserAgent );
176185
}
177186

Lines changed: 37 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,37 @@
1+
package test.org.fugerit.java.doc.mod.fop;
2+
3+
import lombok.extern.slf4j.Slf4j;
4+
import org.fugerit.java.core.function.SafeFunction;
5+
import org.fugerit.java.core.lang.helpers.ClassHelper;
6+
import org.fugerit.java.doc.base.config.DocInput;
7+
import org.fugerit.java.doc.base.config.DocOutput;
8+
import org.fugerit.java.doc.base.config.DocTypeHandler;
9+
import org.fugerit.java.doc.mod.fop.FreeMarkerFopTypeHandlerUTF8;
10+
import org.fugerit.java.doc.mod.fop.InitFopHandler;
11+
import org.fugerit.java.doc.mod.fop.PdfFopTypeHandler;
12+
import org.junit.jupiter.api.Assertions;
13+
import org.junit.jupiter.api.BeforeAll;
14+
import org.junit.jupiter.api.Test;
15+
import test.org.fugerit.java.BasicTest;
16+
17+
import java.io.File;
18+
import java.io.FileOutputStream;
19+
import java.io.InputStreamReader;
20+
21+
@Slf4j
22+
class TestProducer extends BasicTest {
23+
24+
@Test
25+
void testProducer() throws Exception {
26+
DocTypeHandler handler = PdfFopTypeHandler.HANDLER;
27+
String fileName = "doc_producer";
28+
File outputFile = new File( String.format( "target/%s.%s", fileName, handler.getType() ) );
29+
try ( InputStreamReader reader = new InputStreamReader( ClassHelper.loadFromDefaultClassLoader( String.format( "sample/%s.xml", fileName ) ) );
30+
FileOutputStream fos = new FileOutputStream( outputFile ) ) {
31+
handler.handle( DocInput.newInput( handler.getType(), reader ) , DocOutput.newOutput( fos ) );
32+
log.info( "file {}", outputFile.getCanonicalFile() );
33+
Assertions.assertTrue( outputFile.exists() );
34+
}
35+
}
36+
37+
}
Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
<doc xmlns="http://javacoredoc.fugerit.org"
2+
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
3+
xsi:schemaLocation="http://javacoredoc.fugerit.org https://www.fugerit.org/data/java/doc/xsd/doc-2-1.xsd">
4+
<metadata>
5+
<info name="margins">10;10;10;30</info>
6+
<info name="table-border-collapse">collapse</info>
7+
<info name="doc-title">Apache FOP doc-producer</info>
8+
<info name="doc-subject">Integration test for doc-producer info attribure</info>
9+
<info name="doc-author">fugerit79</info>
10+
<info name="doc-creator">My Creator</info>
11+
<footer-ext>
12+
<para align="center">Page ${currentPage}</para>
13+
</footer-ext>
14+
</metadata>
15+
<body>
16+
<h head-level="1">Producer doc sample</h>
17+
<para>Test producer for FOP Module</para>
18+
</body>
19+
</doc>

fj-doc-mod-openpdf-ext/src/main/java/org/fugerit/java/doc/mod/openpdf/ext/helpers/DocumentMetaHelper.java

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -13,15 +13,15 @@ public class DocumentMetaHelper {
1313

1414
private DocumentMetaHelper() {}
1515

16-
public static String getModuleVersion() {
16+
private static String getModuleVersion() {
1717
return VenusVersion.getFjDocModuleVersionS( "fj-doc-mod-openpdf-ext");
1818
}
1919

20-
public static String getOpenPDFVersion() {
20+
private static String getOpenPDFVersion() {
2121
return MavenProps.getProperty( "com.github.librepdf", "openpdf", MavenProps.VERSION );
2222
}
2323

24-
public static final String PRODUCER_DEFAULT = String.format( "%s (%s) over %s (%s)", DocConfig.FUGERIT_VENUS_DOC , getModuleVersion() , Document.getProduct(), getOpenPDFVersion() );
24+
private static final String PRODUCER_DEFAULT = String.format( VenusVersion.VENUS_PRODUCER_FORMAT, DocConfig.FUGERIT_VENUS_DOC , getModuleVersion() , Document.getProduct(), getOpenPDFVersion() );
2525

2626
private static void metaWorker(String property, UnsafeConsumer<String, Exception> fun ) {
2727
SafeFunction.applyIfNotNull( property, () -> fun.accept( property ) );

0 commit comments

Comments
 (0)