Added a new output module for print publishing of Mediawiki files.
authorl.morris <l.morris@localhost>
Mon, 16 Sep 2013 12:06:59 +0000 (12:06 +0000)
committerl.morris <l.morris@localhost>
Mon, 16 Sep 2013 12:06:59 +0000 (12:06 +0000)
.gitattributes
cdmlib-print/src/main/java/eu/etaxonomy/cdm/print/out/mediawiki/MediawikiOutputModule.java [new file with mode: 0644]

index 12191bd8cf790dfd95a66206b03e281d90a608a0..26e15d5f89274c75ef8b31551c4ad594219587f0 100644 (file)
@@ -1626,6 +1626,7 @@ cdmlib-print/src/main/java/eu/etaxonomy/cdm/print/XMLHelper.java -text
 cdmlib-print/src/main/java/eu/etaxonomy/cdm/print/XmlEntityFactoryBase.java -text
 cdmlib-print/src/main/java/eu/etaxonomy/cdm/print/out/IPublishOutputModule.java -text
 cdmlib-print/src/main/java/eu/etaxonomy/cdm/print/out/PublishOutputModuleBase.java -text
+cdmlib-print/src/main/java/eu/etaxonomy/cdm/print/out/mediawiki/MediawikiOutputModule.java -text
 cdmlib-print/src/main/java/eu/etaxonomy/cdm/print/out/odf/DocumentCreator.java -text
 cdmlib-print/src/main/java/eu/etaxonomy/cdm/print/out/odf/IStyleNames.java -text
 cdmlib-print/src/main/java/eu/etaxonomy/cdm/print/out/odf/OdfOutputModule.java -text
diff --git a/cdmlib-print/src/main/java/eu/etaxonomy/cdm/print/out/mediawiki/MediawikiOutputModule.java b/cdmlib-print/src/main/java/eu/etaxonomy/cdm/print/out/mediawiki/MediawikiOutputModule.java
new file mode 100644 (file)
index 0000000..b737e4e
--- /dev/null
@@ -0,0 +1,132 @@
+// $Id$\r
+/**\r
+* Copyright (C) 2009 EDIT\r
+* European Distributed Institute of Taxonomy \r
+* http://www.e-taxonomy.eu\r
+* \r
+* The contents of this file are subject to the Mozilla Public License Version 1.1\r
+* See LICENSE.TXT at the top of this package for the full license terms.\r
+*/\r
+package eu.etaxonomy.cdm.print.out.mediawiki;\r
+\r
+import java.io.File;\r
+import java.io.FileOutputStream;\r
+import java.io.IOException;\r
+import java.io.InputStream;\r
+import java.io.OutputStream;\r
+import java.net.URI;\r
+import java.net.URL;\r
+\r
+import javax.security.auth.login.LoginException;\r
+import javax.xml.transform.Result;\r
+import javax.xml.transform.Transformer;\r
+import javax.xml.transform.TransformerException;\r
+import javax.xml.transform.TransformerFactory;\r
+import javax.xml.transform.sax.SAXResult;\r
+import javax.xml.transform.stream.StreamSource;\r
+\r
+import org.apache.log4j.Logger;\r
+import org.jdom.Document;\r
+import org.jdom.transform.JDOMSource;\r
+\r
+import eu.etaxonomy.cdm.common.monitor.IProgressMonitor;\r
+import eu.etaxonomy.cdm.print.PublishConfigurator;\r
+import eu.etaxonomy.cdm.print.out.PublishOutputModuleBase;\r
+\r
+\r
+/**\r
+ * @author l.morris\r
+ * @date Sep 11, 2013\r
+ *\r
+ */\r
+public class MediawikiOutputModule extends PublishOutputModuleBase {\r
+       \r
+       private static final Logger logger = Logger\r
+                       .getLogger(MediawikiOutputModule.class);\r
+       \r
+       public static String STYLESHEET_RESOURCE_DEFAULT = "/stylesheets/mediawiki/multipages.xsl";\r
+       \r
+       public void output(Document document, File exportFolder, IProgressMonitor progressMonitor) {\r
+               \r
+               super.output(document, exportFolder, progressMonitor);\r
+               \r
+               try{            \r
+                       \r
+                       URL xslURL = new URL("file:///C:/Users/l.morris/workspace/cdmlib/cdmlib-print/src/main/resources/stylesheets/mediawiki/multipages.xsl");\r
+\r
+\r
+                String xslID = xslURL.toString();\r
+               \r
+                       // Setup output\r
+                       String filePath = getFilePath(exportFolder);\r
+                       OutputStream out = new FileOutputStream(filePath);\r
+                       out = new java.io.BufferedOutputStream(out);\r
+               \r
+                       try{\r
+\r
+                   // Setup XSLT\r
+                   //InputStream xslt = getXsltInputStream();\r
+                   TransformerFactory factory = TransformerFactory.newInstance();\r
+                   Transformer transformer = factory.newTransformer(new StreamSource(xslID));//(xslt));\r
+\r
+\r
+                   // Setup input for XSLT transformation\r
+                   JDOMSource source = new JDOMSource(document);\r
+\r
+                   // Resulting SAX events (the generated FO) must be piped through to FOP\r
+                   //Result result = new SAXResult(fop.getDefaultHandler());\r
+                   Result result = new SAXResult();\r
+                 \r
+\r
+                   // Start XSLT transformation and FOP processing\r
+                   transformer.transform(source, result);\r
+                   \r
+                   //get the wikitext of the generated file\r
+                   //use fr_jussieu_snv_lis.wiki.bot.WikiBot to upload the file and images\r
+                   \r
+                   \r
+                   \r
+            } finally {\r
+                out.close();\r
+                logger.info("PDF file created: " + filePath);\r
+            }\r
+                       \r
+               }catch (TransformerException te) {\r
+                       \r
+                       logger.error(te.getLocalizedMessage());\r
+                       logger.error(te.getCause());\r
+                       logger.error("TransformerException. Could not generate document", te);\r
+                       \r
+               } catch (Exception e) {\r
+                       logger.error("Could not generate document", e);\r
+               }\r
+               \r
+               \r
+       }\r
+\r
+       /* (non-Javadoc)\r
+        * @see eu.etaxonomy.cdm.print.out.IPublishOutputModule#getOutputFileSuffix()\r
+        */\r
+       @Override\r
+       public String getOutputFileSuffix() {\r
+               return "xml";\r
+       }\r
+       \r
+       public InputStream getDefaultXsltInputStream(){\r
+               return MediawikiOutputModule.class.getResourceAsStream(STYLESHEET_RESOURCE_DEFAULT);\r
+       }\r
+       \r
+       \r
+       public static void main(String[] args) {\r
+\r
+               MediawikiOutputModule outputModule = new MediawikiOutputModule();\r
+               PublishConfigurator configurator = PublishConfigurator.NewRemoteInstance();\r
+               configurator.setExportFolder(new File("/Users/l.morris/Documents")); \r
+               Document document = new Document();\r
+               \r
+               outputModule.output(document, configurator.getExportFolder(), configurator.getProgressMonitor());\r
+\r
+       }\r
+\r
+\r
+}\r