You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@jspwiki.apache.org by ju...@apache.org on 2020/01/16 23:07:39 UTC

[jspwiki] 19/26: JSPWIKI-120: move remaining textToHtml(..) method from WikiEngine to PageManager

This is an automated email from the ASF dual-hosted git repository.

juanpablo pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/jspwiki.git

commit 6a83a537b2925c72f4c6c657ceb2690ae67d2eb8
Author: juanpablo <ju...@apache.org>
AuthorDate: Thu Jan 16 00:04:50 2020 +0100

    JSPWIKI-120: move remaining textToHtml(..) method from WikiEngine to PageManager
---
 .../src/main/java/org/apache/wiki/WikiEngine.java  | 40 +--------------
 .../main/java/org/apache/wiki/plugin/IfPlugin.java |  2 +-
 .../java/org/apache/wiki/plugin/InsertPage.java    |  2 +-
 .../org/apache/wiki/plugin/PageViewPlugin.java     |  2 +-
 .../wiki/render/DefaultRenderingManager.java       | 33 ++++++++++++
 .../org/apache/wiki/render/RenderingManager.java   |  9 ++++
 .../java/org/apache/wiki/rss/RSSGenerator.java     |  4 +-
 .../java/org/apache/wiki/tags/TranslateTag.java    |  2 +-
 .../apache/wiki/tasks/pages/SaveWikiPageTask.java  | 16 +++---
 .../java/org/apache/wiki/workflow/Workflow.java    | 13 +++--
 .../wiki/plugin/UndefinedPagesPluginTest.java      | 58 ++++++++--------------
 11 files changed, 84 insertions(+), 97 deletions(-)

diff --git a/jspwiki-main/src/main/java/org/apache/wiki/WikiEngine.java b/jspwiki-main/src/main/java/org/apache/wiki/WikiEngine.java
index 9f9895b..de440ae 100644
--- a/jspwiki-main/src/main/java/org/apache/wiki/WikiEngine.java
+++ b/jspwiki-main/src/main/java/org/apache/wiki/WikiEngine.java
@@ -19,13 +19,11 @@
 package org.apache.wiki;
 
 import org.apache.commons.lang3.StringUtils;
-import org.apache.commons.lang3.time.StopWatch;
 import org.apache.log4j.Logger;
 import org.apache.log4j.PropertyConfigurator;
 import org.apache.wiki.api.engine.AdminBeanManager;
 import org.apache.wiki.api.engine.FilterManager;
 import org.apache.wiki.api.engine.PluginManager;
-import org.apache.wiki.api.exceptions.FilterException;
 import org.apache.wiki.api.exceptions.ProviderException;
 import org.apache.wiki.api.exceptions.WikiException;
 import org.apache.wiki.attachment.AttachmentManager;
@@ -932,7 +930,7 @@ public class WikiEngine  {
      */
     public String getHTML( final WikiContext context, final WikiPage page ) {
         final String pagedata = getPageManager().getPureText( page.getName(), page.getVersion() );
-        return textToHTML( context, pagedata );
+        return m_renderingManager.textToHTML( context, pagedata );
     }
 
     /**
@@ -962,42 +960,6 @@ public class WikiEngine  {
     }
 
     /**
-     *  Converts raw page data to HTML.
-     *
-     *  @param pagedata Raw page data to convert to HTML
-     *  @param context  The WikiContext in which the page is to be rendered
-     *  @return Rendered page text
-     */
-    public String textToHTML( final WikiContext context, String pagedata ) {
-        String result = "";
-
-        final boolean runFilters = "true".equals(m_variableManager.getValue(context,VariableManager.VAR_RUNFILTERS,"true"));
-
-        final StopWatch sw = new StopWatch();
-        sw.start();
-        try {
-            if( runFilters ) {
-                pagedata = m_filterManager.doPreTranslateFiltering( context, pagedata );
-            }
-
-            result = m_renderingManager.getHTML( context, pagedata );
-
-            if( runFilters ) {
-                result = m_filterManager.doPostTranslateFiltering( context, result );
-            }
-        } catch( final FilterException e ) {
-            log.error( "page filter threw exception: ", e );
-            // FIXME: Don't yet know what to do
-        }
-        sw.stop();
-        if( log.isDebugEnabled() ) {
-            log.debug( "Page " + context.getRealPage().getName() + " rendered, took " + sw );
-        }
-
-        return result;
-    }
-
-    /**
      * Protected method that signals that the WikiEngine will be shut down by the servlet container. It is called by
      * {@link WikiServlet#destroy()}. When this method is called, it fires a "shutdown" WikiEngineEvent to all registered listeners.
      */
diff --git a/jspwiki-main/src/main/java/org/apache/wiki/plugin/IfPlugin.java b/jspwiki-main/src/main/java/org/apache/wiki/plugin/IfPlugin.java
index 64305d0..a6cb392 100644
--- a/jspwiki-main/src/main/java/org/apache/wiki/plugin/IfPlugin.java
+++ b/jspwiki-main/src/main/java/org/apache/wiki/plugin/IfPlugin.java
@@ -141,7 +141,7 @@ public class IfPlugin implements WikiPlugin
      */
     public String execute( final WikiContext context, final Map< String, String > params ) throws PluginException {
         return ifInclude( context,params )
-                ? context.getEngine().textToHTML( context, params.get( DefaultPluginManager.PARAM_BODY ) )
+                ? context.getEngine().getRenderingManager().textToHTML( context, params.get( DefaultPluginManager.PARAM_BODY ) )
                 : "" ;
     }
 
diff --git a/jspwiki-main/src/main/java/org/apache/wiki/plugin/InsertPage.java b/jspwiki-main/src/main/java/org/apache/wiki/plugin/InsertPage.java
index e34e990..d2b9449 100644
--- a/jspwiki-main/src/main/java/org/apache/wiki/plugin/InsertPage.java
+++ b/jspwiki-main/src/main/java/org/apache/wiki/plugin/InsertPage.java
@@ -206,7 +206,7 @@ public class InsertPage
                 if( showOnce ) res.append("\" data-once=\""+cookieName );
                 res.append("\" >");
 
-                res.append( engine.textToHTML( includedContext, pageData ) );
+                res.append( engine.getRenderingManager().textToHTML( includedContext, pageData ) );
                 res.append( moreLink );
 
                 res.append("</div>");
diff --git a/jspwiki-main/src/main/java/org/apache/wiki/plugin/PageViewPlugin.java b/jspwiki-main/src/main/java/org/apache/wiki/plugin/PageViewPlugin.java
index 12f312b..1981a44 100644
--- a/jspwiki-main/src/main/java/org/apache/wiki/plugin/PageViewPlugin.java
+++ b/jspwiki-main/src/main/java/org/apache/wiki/plugin/PageViewPlugin.java
@@ -517,7 +517,7 @@ public class PageViewPlugin extends AbstractReferralPlugin implements WikiPlugin
                         buf.append( footer );
 
                         // let the engine render the list
-                        result = engine.textToHTML( context, buf.toString() );
+                        result = engine.getRenderingManager().textToHTML( context, buf.toString() );
                     }
                 }
             }
diff --git a/jspwiki-main/src/main/java/org/apache/wiki/render/DefaultRenderingManager.java b/jspwiki-main/src/main/java/org/apache/wiki/render/DefaultRenderingManager.java
index 331ad7d..686070c 100644
--- a/jspwiki-main/src/main/java/org/apache/wiki/render/DefaultRenderingManager.java
+++ b/jspwiki-main/src/main/java/org/apache/wiki/render/DefaultRenderingManager.java
@@ -270,6 +270,39 @@ public class DefaultRenderingManager implements RenderingManager {
      *  {@inheritDoc}
      */
     @Override
+    public String textToHTML( final WikiContext context, String pagedata ) {
+        String result = "";
+
+        final boolean runFilters = "true".equals( m_engine.getVariableManager().getValue( context,VariableManager.VAR_RUNFILTERS,"true" ) );
+
+        final StopWatch sw = new StopWatch();
+        sw.start();
+        try {
+            if( runFilters ) {
+                pagedata = m_engine.getFilterManager().doPreTranslateFiltering( context, pagedata );
+            }
+
+            result = getHTML( context, pagedata );
+
+            if( runFilters ) {
+                result = m_engine.getFilterManager().doPostTranslateFiltering( context, result );
+            }
+        } catch( final FilterException e ) {
+            log.error( "page filter threw exception: ", e );
+            // FIXME: Don't yet know what to do
+        }
+        sw.stop();
+        if( log.isDebugEnabled() ) {
+            log.debug( "Page " + context.getRealPage().getName() + " rendered, took " + sw );
+        }
+
+        return result;
+    }
+
+    /**
+     *  {@inheritDoc}
+     */
+    @Override
     public String textToHTML( final WikiContext context,
                               String pagedata,
                               final StringTransmutator localLinkHook,
diff --git a/jspwiki-main/src/main/java/org/apache/wiki/render/RenderingManager.java b/jspwiki-main/src/main/java/org/apache/wiki/render/RenderingManager.java
index 937fce7..ac2c4b0 100644
--- a/jspwiki-main/src/main/java/org/apache/wiki/render/RenderingManager.java
+++ b/jspwiki-main/src/main/java/org/apache/wiki/render/RenderingManager.java
@@ -162,6 +162,15 @@ public interface RenderingManager extends WikiEventListener, InternalModule {
     }
 
     /**
+     *  Converts raw page data to HTML.
+     *
+     *  @param pagedata Raw page data to convert to HTML
+     *  @param context  The WikiContext in which the page is to be rendered
+     *  @return Rendered page text
+     */
+    String textToHTML( WikiContext context, String pagedata );
+
+    /**
      *  Helper method for doing the HTML translation.
      *
      *  @param context The WikiContext in which to do the conversion
diff --git a/jspwiki-main/src/main/java/org/apache/wiki/rss/RSSGenerator.java b/jspwiki-main/src/main/java/org/apache/wiki/rss/RSSGenerator.java
index 53e5fe2..d4e5687 100644
--- a/jspwiki-main/src/main/java/org/apache/wiki/rss/RSSGenerator.java
+++ b/jspwiki-main/src/main/java/org/apache/wiki/rss/RSSGenerator.java
@@ -533,9 +533,7 @@ public class RSSGenerator {
                 if( maxlen > MAX_CHARACTERS ) maxlen = MAX_CHARACTERS;
 
                 if( maxlen > 0 ) {
-                    pageText = m_engine.textToHTML( wikiContext,
-                                                    pageText.substring( firstLine+1,
-                                                                        maxlen ).trim() );
+                    pageText = m_engine.getRenderingManager().textToHTML( wikiContext, pageText.substring( firstLine + 1, maxlen ).trim() );
 
                     if( maxlen == MAX_CHARACTERS ) {
                         pageText += "...";
diff --git a/jspwiki-main/src/main/java/org/apache/wiki/tags/TranslateTag.java b/jspwiki-main/src/main/java/org/apache/wiki/tags/TranslateTag.java
index f6cbd0c..f4355d2 100644
--- a/jspwiki-main/src/main/java/org/apache/wiki/tags/TranslateTag.java
+++ b/jspwiki-main/src/main/java/org/apache/wiki/tags/TranslateTag.java
@@ -52,7 +52,7 @@ public class TranslateTag
 
             if( wikiText != null ) {
                 wikiText = wikiText.trim();
-                final String result = context.getEngine().textToHTML( context, wikiText );
+                final String result = context.getEngine().getRenderingManager().textToHTML( context, wikiText );
                 getPreviousOut().write( result );
             }
         } catch( final Exception e ) {
diff --git a/jspwiki-main/src/main/java/org/apache/wiki/tasks/pages/SaveWikiPageTask.java b/jspwiki-main/src/main/java/org/apache/wiki/tasks/pages/SaveWikiPageTask.java
index 72ee1b3..e076fb8 100644
--- a/jspwiki-main/src/main/java/org/apache/wiki/tasks/pages/SaveWikiPageTask.java
+++ b/jspwiki-main/src/main/java/org/apache/wiki/tasks/pages/SaveWikiPageTask.java
@@ -48,19 +48,19 @@ public class SaveWikiPageTask extends Task {
     @Override
     public Outcome execute() throws WikiException {
         // Retrieve attributes
-        WikiContext context = (WikiContext) getWorkflow().getAttribute( WorkflowManager.WF_WP_SAVE_ATTR_PRESAVE_WIKI_CONTEXT );
-        String proposedText = (String) getWorkflow().getAttribute( WorkflowManager.WF_WP_SAVE_FACT_PROPOSED_TEXT );
+        final WikiContext context = ( WikiContext ) getWorkflow().getAttribute( WorkflowManager.WF_WP_SAVE_ATTR_PRESAVE_WIKI_CONTEXT );
+        final String proposedText = (String) getWorkflow().getAttribute( WorkflowManager.WF_WP_SAVE_FACT_PROPOSED_TEXT );
 
-        WikiEngine engine = context.getEngine();
-        WikiPage page = context.getPage();
+        final WikiEngine engine = context.getEngine();
+        final WikiPage page = context.getPage();
 
         // Let the rest of the engine handle actual saving.
-        engine.getPageManager().putPageText(page, proposedText);
+        engine.getPageManager().putPageText( page, proposedText );
 
         // Refresh the context for post save filtering.
-        engine.getPageManager().getPage(page.getName());
-        engine.textToHTML(context, proposedText);
-        engine.getFilterManager().doPostSaveFiltering(context, proposedText);
+        engine.getPageManager().getPage( page.getName() );
+        engine.getRenderingManager().textToHTML( context, proposedText );
+        engine.getFilterManager().doPostSaveFiltering( context, proposedText );
 
         return Outcome.STEP_COMPLETE;
     }
diff --git a/jspwiki-main/src/main/java/org/apache/wiki/workflow/Workflow.java b/jspwiki-main/src/main/java/org/apache/wiki/workflow/Workflow.java
index 80aa960..3a0883b 100644
--- a/jspwiki-main/src/main/java/org/apache/wiki/workflow/Workflow.java
+++ b/jspwiki-main/src/main/java/org/apache/wiki/workflow/Workflow.java
@@ -18,6 +18,11 @@
  */
 package org.apache.wiki.workflow;
 
+import org.apache.wiki.api.exceptions.WikiException;
+import org.apache.wiki.event.WikiEventListener;
+import org.apache.wiki.event.WikiEventManager;
+import org.apache.wiki.event.WorkflowEvent;
+
 import java.io.Serializable;
 import java.security.Principal;
 import java.util.ArrayList;
@@ -28,11 +33,6 @@ import java.util.LinkedList;
 import java.util.List;
 import java.util.Map;
 
-import org.apache.wiki.api.exceptions.WikiException;
-import org.apache.wiki.event.WikiEventListener;
-import org.apache.wiki.event.WikiEventManager;
-import org.apache.wiki.event.WorkflowEvent;
-
 /**
  * <p>
  * Sequence of {@link Step} objects linked together. Workflows are always
@@ -382,8 +382,7 @@ public class Workflow implements Serializable
      * Retrieves a named Object associated with this Workflow. If the Workflow
      * has completed or aborted, this method always returns <code>null</code>.
      *
-     * @param attr
-     *            the name of the attribute
+     * @param attr the name of the attribute
      * @return the value
      */
     public final synchronized Object getAttribute( String attr )
diff --git a/jspwiki-main/src/test/java/org/apache/wiki/plugin/UndefinedPagesPluginTest.java b/jspwiki-main/src/test/java/org/apache/wiki/plugin/UndefinedPagesPluginTest.java
index c0a7dad..58aab45 100644
--- a/jspwiki-main/src/test/java/org/apache/wiki/plugin/UndefinedPagesPluginTest.java
+++ b/jspwiki-main/src/test/java/org/apache/wiki/plugin/UndefinedPagesPluginTest.java
@@ -19,8 +19,7 @@
 
 package org.apache.wiki.plugin;
 
-import java.util.Properties;
-
+import net.sf.ehcache.CacheManager;
 import org.apache.wiki.TestEngine;
 import org.apache.wiki.WikiContext;
 import org.apache.wiki.WikiPage;
@@ -31,19 +30,18 @@ import org.junit.jupiter.api.Assertions;
 import org.junit.jupiter.api.BeforeEach;
 import org.junit.jupiter.api.Test;
 
-import net.sf.ehcache.CacheManager;
+import java.util.Properties;
+
+
+public class UndefinedPagesPluginTest {
 
-public class UndefinedPagesPluginTest
-{
     Properties props = TestEngine.getTestProperties();
     TestEngine testEngine;
     WikiContext context;
     PluginManager manager;
 
     @BeforeEach
-    public void setUp()
-        throws Exception
-    {
+    public void setUp() throws Exception {
         CacheManager.getInstance().removeAllCaches();
         testEngine = new TestEngine(props);
 
@@ -55,16 +53,14 @@ public class UndefinedPagesPluginTest
     }
 
     @AfterEach
-    public void tearDown()
-    {
+    public void tearDown() {
         testEngine.deleteTestPage( "TestPage" );
         testEngine.deleteTestPage( "Foobar" );
         TestEngine.emptyWorkDir();
     }
 
-    private String wikitize( String s )
-    {
-        return testEngine.textToHTML( context, s );
+    private String wikitize( final String s ) {
+        return testEngine.getRenderingManager().textToHTML( context, s );
     }
 
     /**
@@ -73,39 +69,29 @@ public class UndefinedPagesPluginTest
      *  be listed as non-existent.
      */
     @Test
-    public void testSimpleUndefined()
-        throws Exception
-    {
-        WikiContext context2 = new WikiContext( testEngine, new WikiPage(testEngine, "Foobar") );
-
-        String res = manager.execute( context2,
-                                      "{INSERT org.apache.wiki.plugin.UndefinedPagesPlugin");
+    public void testSimpleUndefined() throws Exception {
+        final WikiContext context2 = new WikiContext( testEngine, new WikiPage( testEngine, "Foobar" ) );
+        final String res = manager.execute( context2,"{INSERT org.apache.wiki.plugin.UndefinedPagesPlugin" );
+        final String exp = "[Foobar 2]\\\\";
 
-        String exp = "[Foobar 2]\\\\";
-
-        Assertions.assertEquals( wikitize(exp), res );
+        Assertions.assertEquals( wikitize( exp ), res );
     }
 
     @Test
-    public void testCount() throws Exception
-    {
-        String result = null;
-        result = manager.execute(context, "{UndefinedPagesPlugin show=count}");
-        Assertions.assertEquals("1", result);
+    public void testCount() throws Exception {
+        final String result = manager.execute( context, "{UndefinedPagesPlugin show=count}");
+        Assertions.assertEquals("1", result );
 
         // test if the proper exception is thrown:
-        String expectedExceptionString = "parameter showLastModified is not valid for the UndefinedPagesPlugin";
+        final String expectedExceptionString = "parameter showLastModified is not valid for the UndefinedPagesPlugin";
         String exceptionString = null;
-        try
-        {
-            result = manager.execute(context, "{UndefinedPagesPlugin,show=count,showLastModified=true}");
-        }
-        catch (PluginException pe)
-        {
+        try {
+            manager.execute( context, "{UndefinedPagesPlugin,show=count,showLastModified=true}" );
+        } catch( final PluginException pe ) {
             exceptionString = pe.getMessage();
         }
 
-        Assertions.assertEquals(expectedExceptionString, exceptionString);
+        Assertions.assertEquals( expectedExceptionString, exceptionString );
     }
 
 }