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/28 20:34:30 UTC

[jspwiki] 29/32: remove WikiEventUtils

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 7782b72af40871cf08414c90d8df99247c182f8a
Author: juanpablo <ju...@apache.org>
AuthorDate: Tue Jan 28 21:16:15 2020 +0100

    remove WikiEventUtils
    
    as it was barely used and it basically was a synonym for WikiEventManager.getInstance().addWikiEventListener( client, listener ). While at it, on SearchManager we apply formatting and fixes from intellij
---
 .../java/org/apache/wiki/event/WikiEventUtils.java | 135 ------------------
 .../wiki/references/DefaultReferenceManager.java   |   4 +-
 .../wiki/render/DefaultRenderingManager.java       |   4 +-
 .../java/org/apache/wiki/search/SearchManager.java | 151 ++++++++++-----------
 4 files changed, 74 insertions(+), 220 deletions(-)

diff --git a/jspwiki-main/src/main/java/org/apache/wiki/event/WikiEventUtils.java b/jspwiki-main/src/main/java/org/apache/wiki/event/WikiEventUtils.java
deleted file mode 100644
index 4d54d7c..0000000
--- a/jspwiki-main/src/main/java/org/apache/wiki/event/WikiEventUtils.java
+++ /dev/null
@@ -1,135 +0,0 @@
-/*
-    Licensed to the Apache Software Foundation (ASF) under one
-    or more contributor license agreements.  See the NOTICE file
-    distributed with this work for additional information
-    regarding copyright ownership.  The ASF licenses this file
-    to you under the Apache License, Version 2.0 (the
-    "License"); you may not use this file except in compliance
-    with the License.  You may obtain a copy of the License at
-
-       http://www.apache.org/licenses/LICENSE-2.0
-
-    Unless required by applicable law or agreed to in writing,
-    software distributed under the License is distributed on an
-    "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-    KIND, either express or implied.  See the License for the
-    specific language governing permissions and limitations
-    under the License.  
- */
-
-package org.apache.wiki.event;
-
-import org.apache.wiki.WikiEngine;
-
-/**
- *  A utility class that adds some JSPWiki-specific functionality to the WikiEventManager (which is really a general-purpose event manager).
- *
- * @since 2.4.20
- */
-public class WikiEventUtils {
-
-    /**
-     *  This ungainly convenience method adds a WikiEventListener to the appropriate component of the provided client Object, to listen
-     *  for events of the provided type (or related types, see the table below).
-     *  <p>
-     *  If the type value is valid but does not match any WikiEvent type known to this method, this will just attach the listener to the
-     *  client Object. This may mean that the Object never fires events of the desired type; type-to-client matching is left to you to
-     *  guarantee. Silence is golden, but not if you want those events.
-     *  </p>
-     *  <p>
-     *  Most event types expect a WikiEngine as the client, with the rest attaching the listener directly to the supplied source object, as
-     *  described below:
-     *  </p>
-     *  <table border="1" cellpadding="4">
-     *    <tr><th>WikiEvent Type(s)                          </th><th>Required Source Object    </th><th>Actually Attached To </th></tr>
-     *    <tr><td>any WikiEngineEvent                        </td><td>WikiEngine                </td><td>WikiEngine           </td></tr>
-     *    <tr><td>WikiPageEvent.PAGE_LOCK,
-     *            WikiPageEvent.PAGE_UNLOCK                  </td><td>WikiEngine or PageManager </td><td>PageManager          </td></tr>
-     *    <tr><td>WikiPageEvent.PAGE_REQUESTED,
-     *            WikiPageEvent.PAGE_DELIVERED               </td><td>WikiServletFilter         </td><td>WikiServletFilter    </td></tr>
-     *    <tr><td>WikiPageEvent (<a href="#pbeTypes">phase
-     *                                     boundary event</a>)</td><td>WikiEngine               </td><td>FilterManager         </td></tr>
-     *    <tr><td>WikiPageEvent (<a href="#ipeTypes">in-phase
-     *                                              event</a>)</td><td>WikiEngine               </td><td>WikiEngine            </td></tr>
-     *    <tr><td>WikiPageEvent (in-phase event)              </td><td>any                      </td><td>source object         </td></tr>
-     *    <tr><td>WikiSecurityEvent                           </td><td>any                      </td><td>source object         </td></tr>
-     *    <tr><td>any other valid type                        </td><td>any                      </td><td>source object         </td></tr>
-     *    <tr><td>any invalid type                            </td><td>any                      </td><td>nothing               </td></tr>
-     *  </table>
-     *
-     * <p id="pbeTypes"><small><b>phase boundary event types:</b>
-     * <tt>WikiPageEvent.PRE_TRANSLATE_BEGIN</tt>, <tt>WikiPageEvent.PRE_TRANSLATE_END</tt>, <tt>WikiPageEvent.POST_TRANSLATE_BEGIN</tt>,
-     * <tt>WikiPageEvent.POST_TRANSLATE_END</tt>, <tt>WikiPageEvent.PRE_SAVE_BEGIN</tt>, <tt>WikiPageEvent.PRE_SAVE_END</tt>,
-     * <tt>WikiPageEvent.POST_SAVE_BEGIN</tt>, and <tt>WikiPageEvent.POST_SAVE_END</tt>.
-     * </small></p>
-     * <p id="ipeTypes"><small><b>in-phase event types:</b>
-     * <tt>WikiPageEvent.PRE_TRANSLATE</tt>, <tt>WikiPageEvent.POST_TRANSLATE</tt>, <tt>WikiPageEvent.PRE_SAVE</tt>, and
-     * <tt>WikiPageEvent.POST_SAVE</tt>.
-     * </small></p>
-     *
-     * <p>
-     * <b>Note:</b> The <i>Actually Attached To</i> column may also be considered as the class(es) that fire events of the type(s)
-     * shown in the <i>WikiEvent Type</i> column.
-     * </p>
-     *
-     * @see org.apache.wiki.event.WikiEvent
-     * @see org.apache.wiki.event.WikiEngineEvent
-     * @see org.apache.wiki.event.WikiPageEvent
-     * @see org.apache.wiki.event.WikiSecurityEvent
-     * @throws ClassCastException if there is a type mismatch between certain event types and the client Object
-     */
-    public static synchronized void addWikiEventListener( final Object client, final int type, final WikiEventListener listener ) {
-        // Make sure WikiEventManager exists
-        WikiEventManager.getInstance();
-        
-        // first, figure out what kind of event is expected to be generated this does
-        // tie us into known types, but WikiEvent.isValidType() will return true so
-        // long as the type was set to any non-ERROR or non-UNKNOWN value
-
-        if( WikiEngineEvent.isValidType( type ) ) {
-            // add listener directly to WikiEngine
-            WikiEventManager.addWikiEventListener( client, listener );
-        } else if( WikiPageEvent.isValidType( type ) ) {
-            // add listener to one of several options
-            if(  type == WikiPageEvent.PAGE_LOCK
-              || type == WikiPageEvent.PAGE_UNLOCK ) {
-                // attach to PageManager
-                if( client instanceof WikiEngine ) {
-                    WikiEventManager.addWikiEventListener( ((WikiEngine)client).getPageManager(), listener );
-                } else {
-                    // client instanceof PageManager
-                    WikiEventManager.addWikiEventListener( client, listener );
-                }
-            } else if(  type == WikiPageEvent.PAGE_REQUESTED
-                     || type == WikiPageEvent.PAGE_DELIVERED ) {
-                // attach directly to WikiServletFilter
-                WikiEventManager.addWikiEventListener( client, listener );
-            }
-            else if(  type == WikiPageEvent.PRE_TRANSLATE_BEGIN
-                   || type == WikiPageEvent.PRE_TRANSLATE_END
-                   || type == WikiPageEvent.POST_TRANSLATE_BEGIN
-                   || type == WikiPageEvent.POST_TRANSLATE_END
-                   || type == WikiPageEvent.PRE_SAVE_BEGIN
-                   || type == WikiPageEvent.PRE_SAVE_END
-                   || type == WikiPageEvent.POST_SAVE_BEGIN
-                   || type == WikiPageEvent.POST_SAVE_END ) {
-                // attach to FilterManager
-                WikiEventManager.addWikiEventListener( ((WikiEngine)client).getFilterManager(), listener );
-            } else { //if (  type == WikiPageEvent.PRE_TRANSLATE
-                     //   || type == WikiPageEvent.POST_TRANSLATE
-                     //   || type == WikiPageEvent.PRE_SAVE
-                     //   || type == WikiPageEvent.POST_SAVE ) // attach to client
-                WikiEventManager.addWikiEventListener( client, listener );
-            }
-        } else if( WikiSecurityEvent.isValidType( type ) ) {
-            // currently just attach it to the client (we are ignorant of other options)
-            WikiEventManager.addWikiEventListener( client, listener );
-        } else if( WikiEvent.isValidType( type ) ) {
-            // we don't know what to do
-            WikiEventManager.addWikiEventListener( client, listener );
-        } else {
-            // is error or unknown, why are we being called with this?
-        }
-    }
-
-}
diff --git a/jspwiki-main/src/main/java/org/apache/wiki/references/DefaultReferenceManager.java b/jspwiki-main/src/main/java/org/apache/wiki/references/DefaultReferenceManager.java
index e073b7f..5ebe5cc 100644
--- a/jspwiki-main/src/main/java/org/apache/wiki/references/DefaultReferenceManager.java
+++ b/jspwiki-main/src/main/java/org/apache/wiki/references/DefaultReferenceManager.java
@@ -30,7 +30,7 @@ import org.apache.wiki.api.exceptions.ProviderException;
 import org.apache.wiki.api.filters.BasicPageFilter;
 import org.apache.wiki.attachment.Attachment;
 import org.apache.wiki.event.WikiEvent;
-import org.apache.wiki.event.WikiEventUtils;
+import org.apache.wiki.event.WikiEventManager;
 import org.apache.wiki.event.WikiPageEvent;
 import org.apache.wiki.providers.WikiPageProvider;
 import org.apache.wiki.util.TextUtil;
@@ -234,7 +234,7 @@ public class DefaultReferenceManager extends BasicPageFilter implements Referenc
         sw.stop();
         log.info( "Cross reference scan done in "+sw );
 
-        WikiEventUtils.addWikiEventListener( m_engine.getPageManager(), WikiPageEvent.PAGE_DELETED, this );
+        WikiEventManager.getInstance().addWikiEventListener( m_engine.getPageManager(), this );
     }
 
     /**
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 cd1117a..c260455 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
@@ -33,7 +33,7 @@ import org.apache.wiki.api.exceptions.WikiException;
 import org.apache.wiki.attachment.Attachment;
 import org.apache.wiki.event.WikiEvent;
 import org.apache.wiki.event.WikiEventListener;
-import org.apache.wiki.event.WikiEventUtils;
+import org.apache.wiki.event.WikiEventManager;
 import org.apache.wiki.event.WikiPageEvent;
 import org.apache.wiki.pages.PageManager;
 import org.apache.wiki.parser.JSPWikiMarkupParser;
@@ -128,7 +128,7 @@ public class DefaultRenderingManager implements RenderingManager {
 
         log.info( "Rendering content with " + renderImplName + "." );
 
-        WikiEventUtils.addWikiEventListener(m_engine, WikiPageEvent.POST_SAVE_BEGIN, this);
+        WikiEventManager.getInstance().addWikiEventListener( m_engine.getFilterManager(),this );
     }
 
     private Constructor< ? > initRenderer( final String renderImplName, final Class< ? >[] rendererParams ) throws WikiException {
diff --git a/jspwiki-main/src/main/java/org/apache/wiki/search/SearchManager.java b/jspwiki-main/src/main/java/org/apache/wiki/search/SearchManager.java
index ac256fe..2d975f4 100644
--- a/jspwiki-main/src/main/java/org/apache/wiki/search/SearchManager.java
+++ b/jspwiki-main/src/main/java/org/apache/wiki/search/SearchManager.java
@@ -33,7 +33,7 @@ import org.apache.wiki.api.exceptions.ProviderException;
 import org.apache.wiki.api.filters.BasicPageFilter;
 import org.apache.wiki.event.WikiEvent;
 import org.apache.wiki.event.WikiEventListener;
-import org.apache.wiki.event.WikiEventUtils;
+import org.apache.wiki.event.WikiEventManager;
 import org.apache.wiki.event.WikiPageEvent;
 import org.apache.wiki.modules.InternalModule;
 import org.apache.wiki.parser.MarkupParser;
@@ -59,18 +59,16 @@ import java.util.Set;
  */
 public class SearchManager extends BasicPageFilter implements InternalModule, WikiEventListener {
 
-    private static final Logger log = Logger.getLogger(SearchManager.class);
+    private static final Logger log = Logger.getLogger( SearchManager.class );
 
     private static final String DEFAULT_SEARCHPROVIDER  = "org.apache.wiki.search.LuceneSearchProvider";
 
     /** Property name for setting the search provider. Value is <tt>{@value}</tt>. */
-    public static final String PROP_SEARCHPROVIDER     = "jspwiki.searchProvider";
+    public static final String PROP_SEARCHPROVIDER      = "jspwiki.searchProvider";
 
     private SearchProvider    m_searchProvider;
 
-    /**
-     *  The name of the JSON object that manages search.
-     */
+    /** The name of the JSON object that manages search. */
     public static final String JSON_SEARCH = "search";
 
     /**
@@ -80,13 +78,9 @@ public class SearchManager extends BasicPageFilter implements InternalModule, Wi
      *  @param properties The list of Properties.
      *  @throws FilterException If it cannot be instantiated.
      */
-    public SearchManager( WikiEngine engine, Properties properties )
-        throws FilterException
-    {
+    public SearchManager( final WikiEngine engine, final Properties properties ) throws FilterException {
         initialize( engine, properties );
-
-        WikiEventUtils.addWikiEventListener(m_engine.getPageManager(),
-                                            WikiPageEvent.PAGE_DELETE_REQUEST, this);
+        WikiEventManager.getInstance().addWikiEventListener( m_engine.getPageManager(), this );
 
         //TODO: Replace with custom annotations. See JSPWIKI-566
         WikiAjaxDispatcherServlet.registerServlet( JSON_SEARCH, new JSONSearch() );
@@ -95,57 +89,54 @@ public class SearchManager extends BasicPageFilter implements InternalModule, Wi
     /**
      *  Provides a JSON RPC API to the JSPWiki Search Engine.
      */
-    public class JSONSearch implements WikiAjaxServlet
-    {
-		public static final String AJAX_ACTION_SUGGESTIONS = "suggestions";
-    	public static final String AJAX_ACTION_PAGES = "pages";
-    	public static final int DEFAULT_MAX_RESULTS = 20;
-    	public int maxResults = DEFAULT_MAX_RESULTS;
-
-		@Override
-		public String getServletMapping() {
-			return JSON_SEARCH;
-		}
-
-    	@Override
-    	public void service(HttpServletRequest req, HttpServletResponse resp, String actionName, List<String> params)
-    			throws ServletException, IOException {
-    		String result = "";
-    		if (StringUtils.isNotBlank(actionName)) {
-    			if (params.size()<1) {
-    				return;
-    			}
-    			String itemId = params.get(0);
-    			log.debug("itemId="+itemId);
-    			if (params.size()>1) {
-    				String maxResultsParam  = params.get(1);
-    				log.debug("maxResultsParam="+maxResultsParam);
-    				if (StringUtils.isNotBlank(maxResultsParam) && StringUtils.isNumeric(maxResultsParam)) {
-    					maxResults = Integer.parseInt(maxResultsParam);
-    				}
-    			}
-
-    			if (actionName.equals(AJAX_ACTION_SUGGESTIONS)) {
-    				List<String> callResults = new ArrayList<>();
-    				log.debug("Calling getSuggestions() START");
-    				callResults = getSuggestions(itemId, maxResults);
-    				log.debug("Calling getSuggestions() DONE. "+callResults.size());
-    				result = AjaxUtil.toJson(callResults);
-    			} else if (actionName.equals(AJAX_ACTION_PAGES)) {
-    				final List< Map< String, Object > > callResults;
-    				log.debug("Calling findPages() START");
-    				final WikiContext wikiContext = new WikiContext( m_engine, req, WikiContext.VIEW );
-    				if( wikiContext == null ) {
-    					throw new ServletException( "Could not create a WikiContext from the request " + req );
-    				}
-    				callResults = findPages(itemId, maxResults, wikiContext);
-    				log.debug("Calling findPages() DONE. "+callResults.size());
-    				result = AjaxUtil.toJson(callResults);
-    			}
-    		}
-    		log.debug("result="+result);
-    		resp.getWriter().write(result);
-    	}
+    public class JSONSearch implements WikiAjaxServlet {
+
+        public static final String AJAX_ACTION_SUGGESTIONS = "suggestions";
+        public static final String AJAX_ACTION_PAGES = "pages";
+        public static final int DEFAULT_MAX_RESULTS = 20;
+        public int maxResults = DEFAULT_MAX_RESULTS;
+
+        @Override
+        public String getServletMapping() {
+            return JSON_SEARCH;
+        }
+
+        @Override
+        public void service( final HttpServletRequest req,
+                             final HttpServletResponse resp,
+                             final String actionName,
+                             final List< String > params ) throws ServletException, IOException {
+            String result = "";
+            if( StringUtils.isNotBlank( actionName ) ) {
+                if( params.size() < 1 ) {
+                    return;
+                }
+                final String itemId = params.get( 0 );
+                log.debug( "itemId=" + itemId );
+                if( params.size() > 1 ) {
+                    final String maxResultsParam = params.get( 1 );
+                    log.debug( "maxResultsParam=" + maxResultsParam );
+                    if( StringUtils.isNotBlank( maxResultsParam ) && StringUtils.isNumeric( maxResultsParam ) ) {
+                        maxResults = Integer.parseInt( maxResultsParam );
+                    }
+                }
+
+                if( actionName.equals( AJAX_ACTION_SUGGESTIONS ) ) {
+                    log.debug( "Calling getSuggestions() START" );
+                    final List< String > callResults = getSuggestions( itemId, maxResults );
+                    log.debug( "Calling getSuggestions() DONE. " + callResults.size() );
+                    result = AjaxUtil.toJson( callResults );
+                } else if( actionName.equals( AJAX_ACTION_PAGES ) ) {
+                    log.debug("Calling findPages() START");
+                    final WikiContext wikiContext = new WikiContext( m_engine, req, WikiContext.VIEW );
+                    final List< Map< String, Object > > callResults = findPages( itemId, maxResults, wikiContext );
+                    log.debug( "Calling findPages() DONE. " + callResults.size() );
+                    result = AjaxUtil.toJson( callResults );
+                }
+            }
+            log.debug( "result=" + result );
+            resp.getWriter().write( result );
+        }
 
         /**
          *  Provides a list of suggestions to use for a page name. Currently the algorithm just looks into the value parameter,
@@ -155,16 +146,15 @@ public class SearchManager extends BasicPageFilter implements InternalModule, Wi
          *  @param maxLength maximum number of suggestions
          *  @return the suggestions
          */
-        public List<String> getSuggestions( String wikiName, final int maxLength ) {
+        public List< String > getSuggestions( String wikiName, final int maxLength ) {
             final StopWatch sw = new StopWatch();
             sw.start();
             final List< String > list = new ArrayList<>( maxLength );
 
             if( wikiName.length() > 0 ) {
-
                 // split pagename and attachment filename
                 String filename = "";
-                int pos = wikiName.indexOf("/");
+                final int pos = wikiName.indexOf("/");
                 if( pos >= 0 ) {
                     filename = wikiName.substring( pos ).toLowerCase();
                     wikiName = wikiName.substring( 0, pos );
@@ -175,7 +165,7 @@ public class SearchManager extends BasicPageFilter implements InternalModule, Wi
                 final Set< String > allPages = m_engine.getReferenceManager().findCreated();
 
                 int counter = 0;
-                for( Iterator< String > i = allPages.iterator(); i.hasNext() && counter < maxLength; ) {
+                for( final Iterator< String > i = allPages.iterator(); i.hasNext() && counter < maxLength; ) {
                     final String p = i.next();
                     final String pp = p.toLowerCase();
                     if( pp.startsWith( cleanWikiName) || pp.startsWith( oldStyleName ) ) {
@@ -199,39 +189,38 @@ public class SearchManager extends BasicPageFilter implements InternalModule, Wi
          *  @param maxLength How many hits to return
          *  @return the pages found
          */
-        public List<Map<String,Object>> findPages( String searchString, int maxLength, WikiContext wikiContext )
-        {
-            StopWatch sw = new StopWatch();
+        public List< Map< String, Object > > findPages( final String searchString, final int maxLength, final WikiContext wikiContext ) {
+            final StopWatch sw = new StopWatch();
             sw.start();
 
-            List<Map<String,Object>> list = new ArrayList<>(maxLength);
-
+            final List< Map< String, Object > > list = new ArrayList<>( maxLength );
             if( searchString.length() > 0 ) {
                 try {
-                    Collection< SearchResult > c;
+                    final Collection< SearchResult > c;
 
                     if( m_searchProvider instanceof LuceneSearchProvider ) {
-                        c = ((LuceneSearchProvider)m_searchProvider).findPages( searchString, 0, wikiContext );
+                        c = ( ( LuceneSearchProvider )m_searchProvider ).findPages( searchString, 0, wikiContext );
                     } else {
                         c = m_searchProvider.findPages( searchString, wikiContext );
                     }
 
                     int count = 0;
-                    for( Iterator< SearchResult > i = c.iterator(); i.hasNext() && count < maxLength; count++ )
-                    {
-                        SearchResult sr = i.next();
-                        HashMap<String,Object> hm = new HashMap<>();
+                    for( final Iterator< SearchResult > i = c.iterator(); i.hasNext() && count < maxLength; count++ ) {
+                        final SearchResult sr = i.next();
+                        final HashMap< String, Object > hm = new HashMap<>();
                         hm.put( "page", sr.getPage().getName() );
                         hm.put( "score", sr.getScore() );
                         list.add( hm );
                     }
-                } catch(Exception e) {
-                    log.info("AJAX search failed; ",e);
+                } catch( final Exception e ) {
+                    log.info( "AJAX search failed; ", e );
                 }
             }
 
             sw.stop();
-            if( log.isDebugEnabled() ) log.debug("AJAX search complete in "+sw);
+            if( log.isDebugEnabled() ) {
+                log.debug( "AJAX search complete in " + sw );
+            }
             return list;
         }
     }