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 2019/12/19 22:11:34 UTC

[jspwiki] 04/06: JSPWIKI-120: Separate rendering engine from core

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 dc06bef45ce4bdc4d3b04b9fa9cd63d5685df627
Author: juanpablo <ju...@apache.org>
AuthorDate: Thu Dec 19 22:55:43 2019 +0100

    JSPWIKI-120: Separate rendering engine from core
    
    * pageRename(..) method deleted from WikiEngine, use the one located on PageRenamer
    * custom PageRenamers should also fire the appropiate WikiPageRenameEvent on their pageRename(..) method
---
 .../src/main/java/org/apache/wiki/WikiEngine.java  | 39 -------------------
 .../java/org/apache/wiki/content/PageRenamer.java  | 16 +++++++-
 .../org/apache/wiki/content/PageRenamerTest.java   | 44 ++++++++++------------
 jspwiki-war/src/main/webapp/Rename.jsp             |  2 +-
 4 files changed, 34 insertions(+), 67 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 6c2b5ee..a37e3da 100644
--- a/jspwiki-main/src/main/java/org/apache/wiki/WikiEngine.java
+++ b/jspwiki-main/src/main/java/org/apache/wiki/WikiEngine.java
@@ -42,7 +42,6 @@ import org.apache.wiki.event.WikiEngineEvent;
 import org.apache.wiki.event.WikiEventListener;
 import org.apache.wiki.event.WikiEventManager;
 import org.apache.wiki.event.WikiPageEvent;
-import org.apache.wiki.event.WikiPageRenameEvent;
 import org.apache.wiki.i18n.InternationalizationManager;
 import org.apache.wiki.pages.PageManager;
 import org.apache.wiki.pages.PageTimeComparator;
@@ -2049,33 +2048,6 @@ public class WikiEngine  {
     }
 
     /**
-     * Renames, or moves, a wiki page. Can also alter referring wiki
-     * links to point to the renamed page.
-     *
-     * @param context           The context during which this rename takes
-     *                          place.
-     * @param renameFrom        Name of the source page.
-     * @param renameTo          Name of the destination page.
-     * @param changeReferrers   If true, then changes any referring links
-     *                          to point to the renamed page.
-     *
-     * @return The name of the page that the source was renamed to.
-     *
-     * @throws WikiException    In the case of an error, such as the destination
-     *                          page already existing.
-     */
-    public String renamePage( WikiContext context,
-                              String renameFrom,
-                              String renameTo,
-                              boolean changeReferrers )
-        throws WikiException
-    {
-        String newPageName = m_pageRenamer.renamePage(context, renameFrom, renameTo, changeReferrers);
-        firePageRenameEvent(renameFrom, newPageName);
-        return newPageName;
-    }
-
-    /**
      *  Returns the PageRenamer employed by this WikiEngine.
      *  @since 2.5.141
      *  @return The current PageRenamer instance.
@@ -2222,17 +2194,6 @@ public class WikiEngine  {
     }
 
     /**
-     * Fires a WikiPageRenameEvent to all registered listeners.
-     * @param oldName the former page name
-     * @param newName the new page name
-     */
-    protected final void firePageRenameEvent( final String oldName, final String newName ) {
-        if( WikiEventManager.isListening(this) ) {
-            WikiEventManager.fireEvent(this, new WikiPageRenameEvent(this, oldName, newName ) );
-        }
-    }
-
-    /**
      * Adds an attribute to the engine for the duration of this engine.  The
      * value is not persisted.
      *
diff --git a/jspwiki-main/src/main/java/org/apache/wiki/content/PageRenamer.java b/jspwiki-main/src/main/java/org/apache/wiki/content/PageRenamer.java
index 5063c1d..0bf86c9 100644
--- a/jspwiki-main/src/main/java/org/apache/wiki/content/PageRenamer.java
+++ b/jspwiki-main/src/main/java/org/apache/wiki/content/PageRenamer.java
@@ -131,14 +131,26 @@ public class PageRenamer {
             engine.getSearchManager().reindexPage( att );
         }
 
-        // Currently not used internally by JSPWiki itself, but you can use it for something else.
-        WikiEventManager.fireEvent( this, new WikiPageRenameEvent( this, renameFrom, renameToClean ) );
+        firePageRenameEvent( renameFrom, renameToClean );
 
         //  Done, return the new name.
         return renameToClean;
     }
 
     /**
+     * Fires a WikiPageRenameEvent to all registered listeners. Currently not used internally by JSPWiki itself, but you can use it for
+     * something else.
+     *
+     * @param oldName the former page name
+     * @param newName the new page name
+     */
+    public void firePageRenameEvent( final String oldName, final String newName ) {
+        if( WikiEventManager.isListening(this) ) {
+            WikiEventManager.fireEvent(this, new WikiPageRenameEvent(this, oldName, newName ) );
+        }
+    }
+
+    /**
      *  This method finds all the pages which have anything to do with the fromPage and
      *  change any referrers it can figure out in that page.
      *  
diff --git a/jspwiki-main/src/test/java/org/apache/wiki/content/PageRenamerTest.java b/jspwiki-main/src/test/java/org/apache/wiki/content/PageRenamerTest.java
index 799d09f..c4dc60e 100644
--- a/jspwiki-main/src/test/java/org/apache/wiki/content/PageRenamerTest.java
+++ b/jspwiki-main/src/test/java/org/apache/wiki/content/PageRenamerTest.java
@@ -17,16 +17,7 @@
     under the License.
  */
 package org.apache.wiki.content;
-import org.junit.jupiter.api.BeforeEach;
-import org.junit.jupiter.api.AfterEach;
-
-import java.util.Collection;
-import java.util.Properties;
-
-import org.junit.jupiter.api.Test;
-import org.junit.jupiter.api.Assertions;
 import net.sf.ehcache.CacheManager;
-
 import org.apache.wiki.TestEngine;
 import org.apache.wiki.WikiContext;
 import org.apache.wiki.WikiEngine;
@@ -34,14 +25,20 @@ import org.apache.wiki.WikiPage;
 import org.apache.wiki.WikiProvider;
 import org.apache.wiki.api.exceptions.WikiException;
 import org.apache.wiki.attachment.Attachment;
+import org.junit.jupiter.api.AfterEach;
+import org.junit.jupiter.api.Assertions;
+import org.junit.jupiter.api.BeforeEach;
+import org.junit.jupiter.api.Test;
+
+import java.util.Collection;
+import java.util.Properties;
 
 public class PageRenamerTest
 {
     TestEngine m_engine;
 
     @BeforeEach
-    public void setUp() throws Exception
-    {
+    public void setUp() throws Exception {
         Properties props = TestEngine.getTestProperties();
         props.setProperty( WikiEngine.PROP_MATCHPLURALS, "true" );
         CacheManager.getInstance().removeAllCaches();
@@ -50,8 +47,7 @@ public class PageRenamerTest
     }
 
     @AfterEach
-    public void tearDown() throws Exception
-    {
+    public void tearDown() {
         m_engine.deleteTestPage("TestPage");
         m_engine.deleteTestPage("TestPage2");
         m_engine.deleteTestPage("FooTest");
@@ -73,10 +69,8 @@ public class PageRenamerTest
     }
 
     @Test
-    public void testSimpleRename()
-        throws Exception
-    {
-        // Count the numberof existing references
+    public void testSimpleRename() throws Exception {
+        // Count the number of existing references
         int refCount = m_engine.getReferenceManager().findCreated().size();
 
         m_engine.saveText("TestPage", "the big lazy dog thing" );
@@ -85,7 +79,7 @@ public class PageRenamerTest
 
         WikiContext context = new WikiContext(m_engine, p);
 
-        m_engine.renamePage(context, "TestPage", "FooTest", false);
+        m_engine.getPageRenamer().renamePage(context, "TestPage", "FooTest", false);
 
         WikiPage newpage = m_engine.getPage("FooTest");
 
@@ -111,7 +105,7 @@ public class PageRenamerTest
 
         WikiContext context = new WikiContext(m_engine, p);
 
-        m_engine.renamePage(context, "TestPage", "FooTest", true);
+        m_engine.getPageRenamer().renamePage(context, "TestPage", "FooTest", true);
 
         String data = m_engine.getPureText("TestPage2", WikiProvider.LATEST_VERSION);
 
@@ -137,7 +131,7 @@ public class PageRenamerTest
 
         WikiContext context = new WikiContext(m_engine, p);
 
-        m_engine.renamePage(context, "TestPage", "FooTest", true);
+        m_engine.getPageRenamer().renamePage(context, "TestPage", "FooTest", true);
 
         String data = m_engine.getPureText("TestPage2", WikiProvider.LATEST_VERSION);
 
@@ -162,7 +156,7 @@ public class PageRenamerTest
 
         WikiContext context = new WikiContext(m_engine, p);
 
-        m_engine.renamePage(context, "TestPage", "FooTest", true);
+        m_engine.getPageRenamer().renamePage(context, "TestPage", "FooTest", true);
 
         String data = m_engine.getPureText("TestPage2", WikiProvider.LATEST_VERSION);
 
@@ -187,7 +181,7 @@ public class PageRenamerTest
 
         WikiContext context = new WikiContext(m_engine, p);
 
-        m_engine.renamePage(context, "TestPage", "FooTest", true);
+        m_engine.getPageRenamer().renamePage(context, "TestPage", "FooTest", true);
 
         String data = m_engine.getPureText("TestPage2", WikiProvider.LATEST_VERSION);
 
@@ -215,7 +209,7 @@ public class PageRenamerTest
 
         WikiContext context = new WikiContext(m_engine, p);
 
-        m_engine.renamePage(context, "Test", "TestPage", true);
+        m_engine.getPageRenamer().renamePage(context, "Test", "TestPage", true);
 
         String data = m_engine.getPureText("TestPage2", WikiProvider.LATEST_VERSION );
 
@@ -235,7 +229,7 @@ public class PageRenamerTest
 
         WikiContext context = new WikiContext(m_engine, p);
 
-        m_engine.renamePage(context, "TestPage", "FooTest", true);
+        m_engine.getPageRenamer().renamePage(context, "TestPage", "FooTest", true);
 
         String data = m_engine.getPureText("TestPage2", WikiProvider.LATEST_VERSION);
 
@@ -314,7 +308,7 @@ public class PageRenamerTest
 
         WikiContext context = new WikiContext(m_engine, p);
 
-        m_engine.renamePage(context, src, dst, true);
+        m_engine.getPageRenamer().renamePage(context, src, dst, true);
     }
 
     @Test
diff --git a/jspwiki-war/src/main/webapp/Rename.jsp b/jspwiki-war/src/main/webapp/Rename.jsp
index 703787d..2df7fa5 100644
--- a/jspwiki-war/src/main/webapp/Rename.jsp
+++ b/jspwiki-war/src/main/webapp/Rename.jsp
@@ -64,7 +64,7 @@
     {
         if (renameTo.length() > 0)
         {
-            String renamedTo = wiki.renamePage(wikiContext, renameFrom, renameTo, changeReferences);
+            String renamedTo = wiki.getPageRenamer().renamePage(wikiContext, renameFrom, renameTo, changeReferences);
 
             FixedQueue trail = (FixedQueue) session.getAttribute( BreadcrumbsTag.BREADCRUMBTRAIL_KEY );
             if( trail != null )