--- /dev/null
+// $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