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/09 22:17:34 UTC

[jspwiki] 24/32: remove getEngine from PageManager, you should already have access to it if you've grabbed the 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 27f6209bdb8c6902ab06dd5689b0e5540f2a060d
Author: juanpablo <ju...@apache.org>
AuthorDate: Wed Jan 8 00:23:13 2020 +0100

    remove getEngine from PageManager, you should already have access to it if you've grabbed the PageManager
    
    Also, it doesn't extend WikiEventListener anymore, just DefaultPageManager implements it
---
 .../org/apache/wiki/event/WikiEventListener.java   |   9 +-
 .../org/apache/wiki/pages/DefaultPageManager.java  |  21 +++--
 .../java/org/apache/wiki/pages/PageManager.java    |  23 +----
 .../org/apache/wiki/plugin/WeblogEntryPlugin.java  | 100 +++++++--------------
 4 files changed, 52 insertions(+), 101 deletions(-)

diff --git a/jspwiki-main/src/main/java/org/apache/wiki/event/WikiEventListener.java b/jspwiki-main/src/main/java/org/apache/wiki/event/WikiEventListener.java
index 5b2542d..6fbbfae 100644
--- a/jspwiki-main/src/main/java/org/apache/wiki/event/WikiEventListener.java
+++ b/jspwiki-main/src/main/java/org/apache/wiki/event/WikiEventListener.java
@@ -21,20 +21,19 @@ package org.apache.wiki.event;
 
 import  java.util.EventListener;
 
+
 /**
   * Defines an interface for an object that listens for WikiEvents.
   *
   * @since   2.3.92
   */
-public interface WikiEventListener extends EventListener
-{
+public interface WikiEventListener extends EventListener {
 
    /**
      * Fired when a WikiEvent is triggered by an event source.
      *
-     * @param event    a WikiEvent object
+     * @param event a WikiEvent object
      */
     void actionPerformed( WikiEvent event );
 
-
-} // end com.ecryd.jspwiki.event.WikiEventListener
+}
diff --git a/jspwiki-main/src/main/java/org/apache/wiki/pages/DefaultPageManager.java b/jspwiki-main/src/main/java/org/apache/wiki/pages/DefaultPageManager.java
index 229889e..2090371 100644
--- a/jspwiki-main/src/main/java/org/apache/wiki/pages/DefaultPageManager.java
+++ b/jspwiki-main/src/main/java/org/apache/wiki/pages/DefaultPageManager.java
@@ -35,6 +35,7 @@ import org.apache.wiki.auth.acl.AclEntry;
 import org.apache.wiki.auth.acl.AclEntryImpl;
 import org.apache.wiki.auth.user.UserProfile;
 import org.apache.wiki.event.WikiEvent;
+import org.apache.wiki.event.WikiEventListener;
 import org.apache.wiki.event.WikiEventManager;
 import org.apache.wiki.event.WikiPageEvent;
 import org.apache.wiki.event.WikiSecurityEvent;
@@ -75,7 +76,7 @@ import java.util.concurrent.ConcurrentHashMap;
 // FIXME: This class currently only functions just as an extra layer over providers,
 //        complicating things.  We need to move more provider-specific functionality
 //        from WikiEngine (which is too big now) into this class.
-public class DefaultPageManager extends ModuleManager implements PageManager {
+public class DefaultPageManager extends ModuleManager implements PageManager, WikiEventListener {
 
     private static final Logger LOG = Logger.getLogger( DefaultPageManager.class );
 
@@ -218,11 +219,11 @@ public class DefaultPageManager extends ModuleManager implements PageManager {
     }
 
     /**
-     * {@inheritDoc}
-     * @see org.apache.wiki.pages.PageManager#getEngine()
+     * Returns the WikiEngine to which this PageManager belongs to.
+     *
+     * @return The WikiEngine object.
      */
-    @Override
-    public WikiEngine getEngine() {
+    protected WikiEngine getEngine() {
         return m_engine;
     }
 
@@ -636,8 +637,14 @@ public class DefaultPageManager extends ModuleManager implements PageManager {
     	return null;
     }
 
-    /* (non-Javadoc)
-     * @see org.apache.wiki.pages.PageManager#actionPerformed(org.apache.wiki.event.WikiEvent)
+    /**
+     * Listens for {@link org.apache.wiki.event.WikiSecurityEvent#PROFILE_NAME_CHANGED}
+     * events. If a user profile's name changes, each page ACL is inspected. If an entry contains
+     * a name that has changed, it is replaced with the new one. No events are emitted
+     * as a consequence of this method, because the page contents are still the same; it is
+     * only the representations of the names within the ACL that are changing.
+     *
+     * @param event The event
      */
     @Override
     public void actionPerformed( final WikiEvent event ) {
diff --git a/jspwiki-main/src/main/java/org/apache/wiki/pages/PageManager.java b/jspwiki-main/src/main/java/org/apache/wiki/pages/PageManager.java
index 632e3b4..0c48a48 100644
--- a/jspwiki-main/src/main/java/org/apache/wiki/pages/PageManager.java
+++ b/jspwiki-main/src/main/java/org/apache/wiki/pages/PageManager.java
@@ -18,11 +18,8 @@
  */
 package org.apache.wiki.pages;
 
-import org.apache.wiki.WikiEngine;
 import org.apache.wiki.WikiPage;
 import org.apache.wiki.api.exceptions.ProviderException;
-import org.apache.wiki.event.WikiEvent;
-import org.apache.wiki.event.WikiEventListener;
 import org.apache.wiki.providers.WikiPageProvider;
 
 import java.util.Collection;
@@ -30,7 +27,7 @@ import java.util.List;
 import java.util.Set;
 
 
-public interface PageManager extends WikiEventListener {
+public interface PageManager {
 
     /** The property value for setting the current page provider.  Value is {@value}. */
     String PROP_PAGEPROVIDER = "jspwiki.pageProvider";
@@ -136,13 +133,6 @@ public interface PageManager extends WikiEventListener {
     }
 
     /**
-     * Returns the WikiEngine to which this PageManager belongs to.
-     *
-     * @return The WikiEngine object.
-     */
-    WikiEngine getEngine();
-
-    /**
      * Puts the page text into the repository.  Note that this method does NOT update
      * JSPWiki internal data structures, and therefore you should always use WikiEngine.saveText()
      *
@@ -356,17 +346,6 @@ public interface PageManager extends WikiEventListener {
     void deletePage( WikiPage page ) throws ProviderException;
 
     /**
-     * Listens for {@link org.apache.wiki.event.WikiSecurityEvent#PROFILE_NAME_CHANGED}
-     * events. If a user profile's name changes, each page ACL is inspected. If an entry contains
-     * a name that has changed, it is replaced with the new one. No events are emitted
-     * as a consequence of this method, because the page contents are still the same; it is
-     * only the representations of the names within the ACL that are changing.
-     *
-     * @param event The event
-     */
-    void actionPerformed(WikiEvent event);
-
-    /**
      * Returns the configured {@link PageSorter}.
      * 
      * @return the configured {@link PageSorter}.
diff --git a/jspwiki-main/src/main/java/org/apache/wiki/plugin/WeblogEntryPlugin.java b/jspwiki-main/src/main/java/org/apache/wiki/plugin/WeblogEntryPlugin.java
index 2630372..7e71e6e 100644
--- a/jspwiki-main/src/main/java/org/apache/wiki/plugin/WeblogEntryPlugin.java
+++ b/jspwiki-main/src/main/java/org/apache/wiki/plugin/WeblogEntryPlugin.java
@@ -18,13 +18,6 @@
  */
 package org.apache.wiki.plugin;
 
-import java.text.SimpleDateFormat;
-import java.util.Collection;
-import java.util.Date;
-import java.util.Iterator;
-import java.util.Map;
-import java.util.ResourceBundle;
-
 import org.apache.log4j.Logger;
 import org.apache.wiki.WikiContext;
 import org.apache.wiki.WikiEngine;
@@ -33,10 +26,15 @@ import org.apache.wiki.api.exceptions.PluginException;
 import org.apache.wiki.api.exceptions.ProviderException;
 import org.apache.wiki.api.plugin.WikiPlugin;
 import org.apache.wiki.pages.PageLock;
-import org.apache.wiki.pages.PageManager;
 import org.apache.wiki.preferences.Preferences;
 import org.apache.wiki.util.TextUtil;
 
+import java.text.SimpleDateFormat;
+import java.util.Collection;
+import java.util.Date;
+import java.util.Map;
+import java.util.ResourceBundle;
+
 /**
  * Builds a simple weblog.
  * <p/>
@@ -49,8 +47,8 @@ import org.apache.wiki.util.TextUtil;
  * @since 1.9.21
  */
 public class WeblogEntryPlugin implements WikiPlugin {
-    private static Logger log = Logger.getLogger(WeblogEntryPlugin.class);
 
+    private static final Logger log = Logger.getLogger(WeblogEntryPlugin.class);
     private static final int MAX_BLOG_ENTRIES = 10000; // Just a precaution.
 
     /**
@@ -58,8 +56,7 @@ public class WeblogEntryPlugin implements WikiPlugin {
      */
     public static final String PARAM_ENTRYTEXT = "entrytext";
     /**
-     * Optional parameter: page that actually contains the blog.
-     * This lets us provide a "new entry" link for a blog page
+     * Optional parameter: page that actually contains the blog. This lets us provide a "new entry" link for a blog page
      * somewhere else than on the page itself.
      */
     // "page" for uniform naming with WeblogPlugin...
@@ -69,97 +66,66 @@ public class WeblogEntryPlugin implements WikiPlugin {
     public static final String PARAM_BLOGNAME = "page";
 
     /**
-     * Returns a new page name for entries.  It goes through the list of
-     * all blog pages, and finds out the next in line.
+     * Returns a new page name for entries.  It goes through the list of all blog pages, and finds out the next in line.
      *
      * @param engine   A WikiEngine
      * @param blogName The page (or blog) name.
      * @return A new name.
      * @throws ProviderException If something goes wrong.
      */
-    public String getNewEntryPage(WikiEngine engine, String blogName)
-            throws ProviderException {
-        SimpleDateFormat fmt = new SimpleDateFormat(WeblogPlugin.DEFAULT_DATEFORMAT);
-        String today = fmt.format(new Date());
+    public String getNewEntryPage( final WikiEngine engine, final String blogName ) throws ProviderException {
+        final SimpleDateFormat fmt = new SimpleDateFormat(WeblogPlugin.DEFAULT_DATEFORMAT);
+        final String today = fmt.format(new Date());
+        final int entryNum = findFreeEntry( engine, blogName, today );
 
-        int entryNum = findFreeEntry(engine.getPageManager(),
-                blogName,
-                today);
-
-
-        String blogPage = WeblogPlugin.makeEntryPage(blogName,
-                today,
-                "" + entryNum);
-
-        return blogPage;
+        return WeblogPlugin.makeEntryPage( blogName, today,"" + entryNum );
     }
 
     /**
      * {@inheritDoc}
      */
-    public String execute(WikiContext context, Map<String, String> params)
-            throws PluginException {
-        ResourceBundle rb = Preferences.getBundle(context, WikiPlugin.CORE_PLUGINS_RESOURCEBUNDLE);
+    public String execute( final WikiContext context, final Map< String, String > params ) throws PluginException {
+        final ResourceBundle rb = Preferences.getBundle(context, WikiPlugin.CORE_PLUGINS_RESOURCEBUNDLE);
+        final WikiEngine engine = context.getEngine();
 
         String weblogName = params.get(PARAM_BLOGNAME);
         if (weblogName == null) {
             weblogName = context.getPage().getName();
         }
-        WikiEngine engine = context.getEngine();
 
-        StringBuilder sb = new StringBuilder();
-
-        String entryText = TextUtil.replaceEntities( params.get(PARAM_ENTRYTEXT) );
+        String entryText = TextUtil.replaceEntities( params.get( PARAM_ENTRYTEXT ) );
         if (entryText == null) {
             entryText = rb.getString("weblogentryplugin.newentry");
         }
 
-        String url = context.getURL(WikiContext.NONE, "NewBlogEntry.jsp", "page=" + engine.encodeName(weblogName));
-
-        sb.append("<a href=\"" + url + "\">" + entryText + "</a>");
-
-        return sb.toString();
+        final String url = context.getURL(WikiContext.NONE, "NewBlogEntry.jsp", "page=" + engine.encodeName( weblogName ) );
+        return "<a href=\"" + url + "\">" + entryText + "</a>";
     }
 
-    private int findFreeEntry(PageManager mgr,
-                              String baseName,
-                              String date)
-            throws ProviderException {
-        Collection< WikiPage > everyone = mgr.getAllPages();
+    private int findFreeEntry( final WikiEngine engine, final String baseName, final String date ) throws ProviderException {
+        final Collection< WikiPage > everyone = engine.getPageManager().getAllPages();
+        final String startString = WeblogPlugin.makeEntryPage(baseName, date, "");
         int max = 0;
 
-        String startString = WeblogPlugin.makeEntryPage(baseName, date, "");
-
-        for (Iterator< WikiPage > i = everyone.iterator(); i.hasNext(); ) {
-            WikiPage p = i.next();
-
-            if (p.getName().startsWith(startString)) {
+        for( final WikiPage p : everyone ) {
+            if( p.getName().startsWith( startString ) ) {
                 try {
-                    String probableId = p.getName().substring(startString.length());
-
-                    int id = Integer.parseInt(probableId);
-
-                    if (id > max) {
+                    final String probableId = p.getName().substring( startString.length() );
+                    final int id = Integer.parseInt( probableId );
+                    if( id > max ) {
                         max = id;
                     }
-                } catch (NumberFormatException e) {
-                    log.debug("Was not a log entry: " + p.getName());
+                } catch( final NumberFormatException e ) {
+                    log.debug( "Was not a log entry: " + p.getName() );
                 }
             }
         }
 
-        //
         //  Find the first page that has no page lock.
-        //
         int idx = max + 1;
-
-        while (idx < MAX_BLOG_ENTRIES) {
-            WikiPage page = new WikiPage(mgr.getEngine(),
-                    WeblogPlugin.makeEntryPage(baseName,
-                            date,
-                            Integer.toString(idx)));
-            PageLock lock = mgr.getCurrentLock(page);
-
+        while( idx < MAX_BLOG_ENTRIES ) {
+            final WikiPage page = new WikiPage( engine, WeblogPlugin.makeEntryPage( baseName, date, Integer.toString( idx ) ) );
+            final PageLock lock = engine.getPageManager().getCurrentLock(page);
             if (lock == null) {
                 break;
             }