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;
}
}