Re: [xwiki-devs] [xwiki-notifications] r22431 - in sandbox/gsoc/importexport/xwiki-core-importer/src: main/java/org/xwiki/platform main/java/org/xwiki/platform/internal test/java/org/xwiki/platform/mediawiki
Hi Arun, On Aug 8, 2009, at 10:29 PM, arun (SVN) wrote:
Author: arun Date: 2009-08-08 22:29:54 +0200 (Sat, 08 Aug 2009) New Revision: 22431
Modified: sandbox/gsoc/importexport/xwiki-core-importer/src/main/java/org/ xwiki/platform/WikiImporter.java sandbox/gsoc/importexport/xwiki-core-importer/src/main/java/org/ xwiki/platform/internal/ConfluenceWikiImporter.java sandbox/gsoc/importexport/xwiki-core-importer/src/main/java/org/ xwiki/platform/internal/MediaWikiImporter.java sandbox/gsoc/importexport/xwiki-core-importer/src/test/java/org/ xwiki/platform/mediawiki/MediaWikiTest.java Log: [Changes] New Rendering Module Syntax Converter component is used to conver Wiki Syntax.
Modified: sandbox/gsoc/importexport/xwiki-core-importer/src/main/ java/org/xwiki/platform/WikiImporter.java =================================================================== --- sandbox/gsoc/importexport/xwiki-core-importer/src/main/java/org/ xwiki/platform/WikiImporter.java 2009-08-08 19:44:33 UTC (rev 22430) +++ sandbox/gsoc/importexport/xwiki-core-importer/src/main/java/org/ xwiki/platform/WikiImporter.java 2009-08-08 20:29:54 UTC (rev 22431) @@ -44,9 +44,9 @@ T parse(byte[] bytes) throws Exception;
/** - * Creates XWiki Pages based on the given Wiki Instance and Wiki Type + * Import Wiki content based on the given Wiki Instance and Wiki Type * - * @param wiki Wiki object returned by {@link #processInputDump(byte[], String)} + * @param wiki Wiki object returned after parsing the input. * @return Summary of import process as a list. * @throws Exception */
Modified: sandbox/gsoc/importexport/xwiki-core-importer/src/main/ java/org/xwiki/platform/internal/ConfluenceWikiImporter.java =================================================================== --- sandbox/gsoc/importexport/xwiki-core-importer/src/main/java/org/ xwiki/platform/internal/ConfluenceWikiImporter.java 2009-08-08 19:44:33 UTC (rev 22430) +++ sandbox/gsoc/importexport/xwiki-core-importer/src/main/java/org/ xwiki/platform/internal/ConfluenceWikiImporter.java 2009-08-08 20:29:54 UTC (rev 22431) @@ -20,6 +20,7 @@ package org.xwiki.platform.internal;
import java.io.ByteArrayInputStream; +import java.io.StringReader; import java.util.ArrayList; import java.util.Iterator; import java.util.List; @@ -38,11 +39,11 @@ import org.xwiki.platform.internal.confluence.ConfluenceSpace; import org.xwiki.platform.internal.confluence.ConfluenceWiki; import org.xwiki.platform.internal.confluence.ProcessConfluenceXml; -import org.xwiki.platform.parser.ImportWikiParser; -import org.xwiki.platform.renderer.ImportWikiRenderer; import org.xwiki.platform.wiki.Summary; +import org.xwiki.rendering.converter.Converter; import org.xwiki.rendering.parser.Syntax; -import org.xwiki.rendering.parser.SyntaxType; +import org.xwiki.rendering.renderer.printer.DefaultWikiPrinter; +import org.xwiki.rendering.renderer.printer.WikiPrinter;
/** * Confluence Wiki Importer processes the Input data and creates wiki pages. @@ -66,11 +67,8 @@ private DocumentAccessBridge docAccessBridge;
@Requirement - private ImportWikiParser parser; + private Converter converter;
- @Requirement - private ImportWikiRenderer renderer; - /** * Process Input data and returns Wiki object of Confluence Wiki Type. * <p> @@ -153,7 +151,6 @@ { Map<String, ConfluenceRevision> revisions = page.getConfluenceRevisions(); Iterator<String> iterator = revisions.keySet().iterator(); - Syntax syntax = new Syntax(SyntaxType.CONFLUENCE, "1.0"); String title = "";
// Title @@ -169,7 +166,9 @@ // Revisions. while (iterator.hasNext()) { ConfluenceRevision rev = revisions.get(iterator.next()); - String text = this .renderer.renderFromWikiXdom(this.parser.getWikiXdom(rev.getText(), syntax)); + WikiPrinter printer = new DefaultWikiPrinter(); + converter.convert(new StringReader(rev.getText()), Syntax.CONFLUENCE_1_0, Syntax.XWIKI_2_0, printer); + String text = printer.toString(); this.docAccessBridge.setDocumentContent(title, text, rev.getComment(), rev.getMinorEdit());
}
Modified: sandbox/gsoc/importexport/xwiki-core-importer/src/main/ java/org/xwiki/platform/internal/MediaWikiImporter.java =================================================================== --- sandbox/gsoc/importexport/xwiki-core-importer/src/main/java/org/ xwiki/platform/internal/MediaWikiImporter.java 2009-08-08 19:44:33 UTC (rev 22430) +++ sandbox/gsoc/importexport/xwiki-core-importer/src/main/java/org/ xwiki/platform/internal/MediaWikiImporter.java 2009-08-08 20:29:54 UTC (rev 22431) @@ -20,6 +20,7 @@ package org.xwiki.platform.internal;
import java.io.ByteArrayInputStream; +import java.io.StringReader; import java.util.ArrayList; import java.util.List;
@@ -34,11 +35,11 @@ import org.xwiki.platform.internal.mediawiki.MediaWikiPage; import org.xwiki.platform.internal.mediawiki.MediaWikiRevision; import org.xwiki.platform.internal.mediawiki.ProcessMediaWikiXml; -import org.xwiki.platform.parser.ImportWikiParser; -import org.xwiki.platform.renderer.ImportWikiRenderer; import org.xwiki.platform.wiki.Summary; +import org.xwiki.rendering.converter.Converter; import org.xwiki.rendering.parser.Syntax; -import org.xwiki.rendering.parser.SyntaxType; +import org.xwiki.rendering.renderer.printer.DefaultWikiPrinter; +import org.xwiki.rendering.renderer.printer.WikiPrinter;
/** * Default Wiki Importer - Imports other Wiki types into XWiki. @@ -62,11 +63,8 @@ private DocumentAccessBridge docAccessBridge;
@Requirement - private ImportWikiParser parser; + private Converter converter;
- @Requirement - private ImportWikiRenderer renderer; - public void initialize() throws InitializationException { getLogger().debug("MediaWiki Importer Intialized"); @@ -113,16 +111,18 @@ private List<Summary> importMediaWiki(MediaWiki mediawiki) throws Exception { List<Summary> wikiSummary = new ArrayList<Summary>(); - Syntax syntax = new Syntax(SyntaxType.MEDIAWIKI, "1.0");
// For every mediawiki page for (MediaWikiPage mediaWikiPage : mediawiki.getWikiPages()) { // Fore every mediawiki revision of a page for (MediaWikiRevision mediaWikiRevision : mediaWikiPage.getRevisions()) {
- // Read the body content parse it to xdom and render it into XWiki Syntax. - String text = - this .renderer .renderFromWikiXdom (this.parser.getWikiXdom(mediaWikiRevision.getText(), syntax)); + // Read the body content convert it into XWiki Syntax. + WikiPrinter printer = new DefaultWikiPrinter(); + converter.convert(new StringReader(mediaWikiRevision.getText()), Syntax.MEDIAWIKI_1_0, + Syntax.XWIKI_2_0, printer); + String text = printer.toString(); + // Create the page using document access bridge
this.docAccessBridge.setDocumentContent(mediaWikiPage.getPageName(), text, mediaWikiRevision .getComment(), mediaWikiRevision.getMinorEdit());
Modified: sandbox/gsoc/importexport/xwiki-core-importer/src/test/ java/org/xwiki/platform/mediawiki/MediaWikiTest.java =================================================================== --- sandbox/gsoc/importexport/xwiki-core-importer/src/test/java/org/ xwiki/platform/mediawiki/MediaWikiTest.java 2009-08-08 19:44:33 UTC (rev 22430) +++ sandbox/gsoc/importexport/xwiki-core-importer/src/test/java/org/ xwiki/platform/mediawiki/MediaWikiTest.java 2009-08-08 20:29:54 UTC (rev 22431) @@ -19,15 +19,21 @@ */ package org.xwiki.platform.mediawiki;
+import java.io.StringReader; import java.util.List; import java.util.Map; import java.util.TreeMap;
import junit.framework.TestCase;
+import org.xwiki.component.embed.EmbeddableComponentManager; import org.xwiki.platform.internal.mediawiki.MediaWiki; import org.xwiki.platform.internal.mediawiki.MediaWikiPage; import org.xwiki.platform.internal.mediawiki.ProcessMediaWikiXml; +import org.xwiki.rendering.converter.Converter; +import org.xwiki.rendering.parser.Syntax; +import org.xwiki.rendering.renderer.printer.DefaultWikiPrinter; +import org.xwiki.rendering.renderer.printer.WikiPrinter;
/** * @version $Id$ @@ -66,5 +72,21 @@
}
+ public void renderXWiki20SyntaxAsXHTML() throws Exception + { + // Initialize Rendering components and allow getting instances + EmbeddableComponentManager ecm = new EmbeddableComponentManager(); + ecm.initialize(this.getClass().getClassLoader());
This should be getComponentManager() instead from AbstractComponentTestCase Thanks -Vincent
+ + // Use a the Converter component to convert between one syntax to another. + Converter converter = ecm.lookup(Converter.class);
+ // Convert input in XWiki Syntax 2.0 into XHTML. The result is stored in the printer. + WikiPrinter printer = new DefaultWikiPrinter(); + converter.convert(new StringReader("This is **bold**"), Syntax.XWIKI_2_0, Syntax.XHTML_1_0, printer); + + assertEquals("<p>This is <strong>bold</strong></p>", printer.toString()); + } +
participants (1)
-
Vincent Massol