Author: metskem
Date: Sat Dec  8 10:44:42 2012
New Revision: 1418640

URL: http://svn.apache.org/viewvc?rev=1418640&view=rev
Log:
2012-12-08  Harry Metske <[email protected]>

       * 2.9.1-svn-4
       
       * fixed JSPWIKI-754 Have PageViewPlugin work with page renames (thanks 
to Glen Mazza)

Modified:
    incubator/jspwiki/trunk/ChangeLog
    incubator/jspwiki/trunk/src/org/apache/wiki/Release.java
    incubator/jspwiki/trunk/src/org/apache/wiki/WikiEngine.java
    incubator/jspwiki/trunk/src/org/apache/wiki/event/WikiPageRenameEvent.java
    incubator/jspwiki/trunk/src/org/apache/wiki/plugin/PageViewPlugin.java

Modified: incubator/jspwiki/trunk/ChangeLog
URL: 
http://svn.apache.org/viewvc/incubator/jspwiki/trunk/ChangeLog?rev=1418640&r1=1418639&r2=1418640&view=diff
==============================================================================
--- incubator/jspwiki/trunk/ChangeLog (original)
+++ incubator/jspwiki/trunk/ChangeLog Sat Dec  8 10:44:42 2012
@@ -1,3 +1,9 @@
+2012-12-08  Harry Metske <[email protected]>
+
+       * 2.9.1-svn-4
+       
+       * fixed JSPWIKI-754 Have PageViewPlugin work with page renames (thanks 
to Glen Mazza)
+       
 2012-12-06  Juan Pablo Santos (juanpablo AT apache DOT org)
 
        * 2.9.1-svn-3

Modified: incubator/jspwiki/trunk/src/org/apache/wiki/Release.java
URL: 
http://svn.apache.org/viewvc/incubator/jspwiki/trunk/src/org/apache/wiki/Release.java?rev=1418640&r1=1418639&r2=1418640&view=diff
==============================================================================
--- incubator/jspwiki/trunk/src/org/apache/wiki/Release.java (original)
+++ incubator/jspwiki/trunk/src/org/apache/wiki/Release.java Sat Dec  8 
10:44:42 2012
@@ -75,7 +75,7 @@ public final class Release
      *  <p>
      *  If the build identifier is empty, it is not added.
      */
-    public static final String     BUILD         = "3";
+    public static final String     BUILD         = "4";
     
     /**
      *  This is the generic version string you should use

Modified: incubator/jspwiki/trunk/src/org/apache/wiki/WikiEngine.java
URL: 
http://svn.apache.org/viewvc/incubator/jspwiki/trunk/src/org/apache/wiki/WikiEngine.java?rev=1418640&r1=1418639&r2=1418640&view=diff
==============================================================================
--- incubator/jspwiki/trunk/src/org/apache/wiki/WikiEngine.java (original)
+++ incubator/jspwiki/trunk/src/org/apache/wiki/WikiEngine.java Sat Dec  8 
10:44:42 2012
@@ -49,6 +49,7 @@ import org.apache.wiki.event.WikiEngineE
 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.filters.FilterException;
 import org.apache.wiki.filters.FilterManager;
 import org.apache.wiki.i18n.InternationalizationManager;
@@ -2278,7 +2279,9 @@ public class WikiEngine
                               boolean changeReferrers)
         throws WikiException
     {
-        return m_pageRenamer.renamePage(context, renameFrom, renameTo, 
changeReferrers);
+        String newPageName = m_pageRenamer.renamePage(context, renameFrom, 
renameTo, changeReferrers);
+        firePageRenameEvent(renameFrom, newPageName);
+        return newPageName;
     }
 
     /**
@@ -2425,6 +2428,19 @@ 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(String oldName, 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.
      *

Modified: 
incubator/jspwiki/trunk/src/org/apache/wiki/event/WikiPageRenameEvent.java
URL: 
http://svn.apache.org/viewvc/incubator/jspwiki/trunk/src/org/apache/wiki/event/WikiPageRenameEvent.java?rev=1418640&r1=1418639&r2=1418640&view=diff
==============================================================================
--- incubator/jspwiki/trunk/src/org/apache/wiki/event/WikiPageRenameEvent.java 
(original)
+++ incubator/jspwiki/trunk/src/org/apache/wiki/event/WikiPageRenameEvent.java 
Sat Dec  8 10:44:42 2012
@@ -86,7 +86,7 @@ public class WikiPageRenameEvent extends
      */
     public static boolean isValidType( int type )
     {
-        return type >= PAGE_LOCK && type <= PAGE_RENAMED;
+        return type == PAGE_RENAMED;
     }
 
 

Modified: incubator/jspwiki/trunk/src/org/apache/wiki/plugin/PageViewPlugin.java
URL: 
http://svn.apache.org/viewvc/incubator/jspwiki/trunk/src/org/apache/wiki/plugin/PageViewPlugin.java?rev=1418640&r1=1418639&r2=1418640&view=diff
==============================================================================
--- incubator/jspwiki/trunk/src/org/apache/wiki/plugin/PageViewPlugin.java 
(original)
+++ incubator/jspwiki/trunk/src/org/apache/wiki/plugin/PageViewPlugin.java Sat 
Dec  8 10:44:42 2012
@@ -43,6 +43,7 @@ import org.apache.wiki.event.WikiEngineE
 import org.apache.wiki.event.WikiEvent;
 import org.apache.wiki.event.WikiEventListener;
 import org.apache.wiki.event.WikiPageEvent;
+import org.apache.wiki.event.WikiPageRenameEvent;
 import org.apache.wiki.plugin.InitializablePlugin;
 import org.apache.wiki.plugin.PluginException;
 import org.apache.wiki.plugin.PluginManager;
@@ -289,6 +290,17 @@ public class PageViewPlugin extends Abst
                     handleShutdown();
                 }
             } 
+            else if( (event instanceof WikiPageRenameEvent) && 
(event.getType() == WikiPageRenameEvent.PAGE_RENAMED) )
+            {
+                 String oldPageName = ((WikiPageRenameEvent) 
event).getOldPageName();
+                 String newPageName = ((WikiPageRenameEvent) 
event).getNewPageName();
+                 m_storage.remove(oldPageName);
+                 Counter oldCounter = m_counters.get( oldPageName );
+                 m_counters.put( newPageName, oldCounter );
+                 m_storage.setProperty( newPageName, oldCounter.toString() );
+                 m_counters.remove(oldPageName);
+                 m_dirty = true;
+            }
             else if( (event instanceof WikiPageEvent) && (event.getType() == 
WikiPageEvent.PAGE_DELETED) )
             {
                  String pageName = ((WikiPageEvent) event).getPageName();
@@ -406,6 +418,13 @@ public class PageViewPlugin extends Abst
                     else if( PARAM_COUNT.equals( show ) )
                     {
                         // show page count
+                        if( counter == null )
+                        {
+                            counter = new Counter();
+                            m_counters.put( pagename, counter );
+                            m_storage.setProperty( pagename, 
counter.toString() );
+                            m_dirty = true;
+                        }
                         result = counter.toString();
 
                     }


Reply via email to