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 910e586975e3929c1929bad927c1fac3bfc0dab1 Author: juanpablo <[email protected]> AuthorDate: Wed Feb 26 13:11:14 2020 +0100 JSPWIKI-120: ModuleManager and implementing classes use Engine instead of WikiEngine --- .../apache/wiki/filters/DefaultFilterManager.java | 18 +-- .../org/apache/wiki/modules/ModuleManager.java | 45 +++---- .../org/apache/wiki/pages/DefaultPageManager.java | 101 +++++++------- .../apache/wiki/plugin/DefaultPluginManager.java | 148 ++++++++++----------- .../java/org/apache/wiki/ui/EditorManager.java | 5 +- .../java/org/apache/wiki/ui/TemplateManager.java | 4 +- 6 files changed, 161 insertions(+), 160 deletions(-) diff --git a/jspwiki-main/src/main/java/org/apache/wiki/filters/DefaultFilterManager.java b/jspwiki-main/src/main/java/org/apache/wiki/filters/DefaultFilterManager.java index 6409ee0..b0004ef 100644 --- a/jspwiki-main/src/main/java/org/apache/wiki/filters/DefaultFilterManager.java +++ b/jspwiki-main/src/main/java/org/apache/wiki/filters/DefaultFilterManager.java @@ -20,7 +20,7 @@ package org.apache.wiki.filters; import org.apache.log4j.Logger; import org.apache.wiki.WikiContext; -import org.apache.wiki.WikiEngine; +import org.apache.wiki.api.core.Engine; import org.apache.wiki.api.engine.FilterManager; import org.apache.wiki.api.exceptions.FilterException; import org.apache.wiki.api.exceptions.WikiException; @@ -100,7 +100,7 @@ public class DefaultFilterManager extends ModuleManager implements FilterManager * @param props Properties to initialize the FilterManager with * @throws WikiException If something goes wrong. */ - public DefaultFilterManager( final WikiEngine engine, final Properties props ) throws WikiException { + public DefaultFilterManager( final Engine engine, final Properties props ) throws WikiException { super( engine ); initialize( props ); } @@ -116,7 +116,7 @@ public class DefaultFilterManager extends ModuleManager implements FilterManager * @param priority The priority in which position to add it in. * @throws IllegalArgumentException If the PageFilter is null or invalid. */ - public void addPageFilter( final PageFilter f, final int priority ) throws IllegalArgumentException { + @Override public void addPageFilter( final PageFilter f, final int priority ) throws IllegalArgumentException { if( f == null ) { throw new IllegalArgumentException("Attempt to provide a null filter - this should never happen. Please check your configuration (or if you're a developer, check your own code.)"); } @@ -240,7 +240,7 @@ public class DefaultFilterManager extends ModuleManager implements FilterManager * * @see PageFilter#preTranslate(WikiContext, String) */ - public String doPreTranslateFiltering( final WikiContext context, String pageData ) throws FilterException { + @Override public String doPreTranslateFiltering( final WikiContext context, String pageData ) throws FilterException { fireEvent( WikiPageEvent.PRE_TRANSLATE_BEGIN, context ); for( final PageFilter f : m_pageFilters ) { pageData = f.preTranslate( context, pageData ); @@ -260,7 +260,7 @@ public class DefaultFilterManager extends ModuleManager implements FilterManager * @return The modified HTML * @see PageFilter#postTranslate(WikiContext, String) */ - public String doPostTranslateFiltering( final WikiContext context, String htmlData ) throws FilterException { + @Override public String doPostTranslateFiltering( final WikiContext context, String htmlData ) throws FilterException { fireEvent( WikiPageEvent.POST_TRANSLATE_BEGIN, context ); for( final PageFilter f : m_pageFilters ) { htmlData = f.postTranslate( context, htmlData ); @@ -280,7 +280,7 @@ public class DefaultFilterManager extends ModuleManager implements FilterManager * @return The modified WikiMarkup * @see PageFilter#preSave(WikiContext, String) */ - public String doPreSaveFiltering( final WikiContext context, String pageData ) throws FilterException { + @Override public String doPreSaveFiltering( final WikiContext context, String pageData ) throws FilterException { fireEvent( WikiPageEvent.PRE_SAVE_BEGIN, context ); for( final PageFilter f : m_pageFilters ) { pageData = f.preSave( context, pageData ); @@ -300,7 +300,7 @@ public class DefaultFilterManager extends ModuleManager implements FilterManager * * @see PageFilter#postSave(WikiContext, String) */ - public void doPostSaveFiltering( final WikiContext context, final String pageData ) throws FilterException { + @Override public void doPostSaveFiltering( final WikiContext context, final String pageData ) throws FilterException { fireEvent( WikiPageEvent.POST_SAVE_BEGIN, context ); for( final PageFilter f : m_pageFilters ) { // log.info("POSTSAVE: "+f.toString() ); @@ -316,7 +316,7 @@ public class DefaultFilterManager extends ModuleManager implements FilterManager * * @return A List of PageFilter objects */ - public List< PageFilter > getFilterList() + @Override public List< PageFilter > getFilterList() { return m_pageFilters; } @@ -326,7 +326,7 @@ public class DefaultFilterManager extends ModuleManager implements FilterManager * Notifies PageFilters to clean up their ressources. * */ - public void destroy() { + @Override public void destroy() { for( final PageFilter f : m_pageFilters ) { f.destroy( m_engine ); } diff --git a/jspwiki-main/src/main/java/org/apache/wiki/modules/ModuleManager.java b/jspwiki-main/src/main/java/org/apache/wiki/modules/ModuleManager.java index e0e5b82..a59e401 100644 --- a/jspwiki-main/src/main/java/org/apache/wiki/modules/ModuleManager.java +++ b/jspwiki-main/src/main/java/org/apache/wiki/modules/ModuleManager.java @@ -18,28 +18,24 @@ */ package org.apache.wiki.modules; +import org.apache.wiki.Release; +import org.apache.wiki.api.core.Engine; + import java.util.Collection; import java.util.Iterator; import java.util.Set; import java.util.TreeSet; -import org.apache.wiki.Release; -import org.apache.wiki.WikiEngine; - /** * Superclass for all JSPWiki managers for modules (plugins, etc). */ -public abstract class ModuleManager -{ +public abstract class ModuleManager { - /** - * Location of the property-files of plugins. - * (Each plugin should include this property-file in its jar-file) - */ + /** Location of the property-files of plugins. (Each plugin should include this property-file in its jar-file) */ public static final String PLUGIN_RESOURCE_LOCATION = "ini/jspwiki_module.xml"; - protected WikiEngine m_engine; + protected Engine m_engine; private boolean m_loadIncompatibleModules = false; @@ -48,8 +44,7 @@ public abstract class ModuleManager * * @param engine The WikiEngine which owns this manager. */ - public ModuleManager( WikiEngine engine ) - { + public ModuleManager( final Engine engine ) { m_engine = engine; } @@ -59,12 +54,10 @@ public abstract class ModuleManager * @param info The module to check * @return True, if the module is compatible. */ - public boolean checkCompatibility( WikiModuleInfo info ) - { - if( !m_loadIncompatibleModules ) - { - String minVersion = info.getMinVersion(); - String maxVersion = info.getMaxVersion(); + public boolean checkCompatibility( final WikiModuleInfo info ) { + if( !m_loadIncompatibleModules ) { + final String minVersion = info.getMinVersion(); + final String maxVersion = info.getMaxVersion(); return Release.isNewerOrEqual( minVersion ) && Release.isOlderOrEqual( maxVersion ); } @@ -81,12 +74,13 @@ public abstract class ModuleManager */ public abstract Collection< WikiModuleInfo > modules(); - protected < T extends WikiModuleInfo > Collection< WikiModuleInfo > modules( Iterator< T > iterator ) { - Set< WikiModuleInfo > ls = new TreeSet<>(); - - for( Iterator< T > i = iterator; i.hasNext(); ) { - WikiModuleInfo wmi = i.next(); - if( !ls.contains( wmi ) ) ls.add( wmi ); + protected < T extends WikiModuleInfo > Collection< WikiModuleInfo > modules( final Iterator< T > iterator ) { + final Set< WikiModuleInfo > ls = new TreeSet<>(); + for( final Iterator< T > i = iterator; i.hasNext(); ) { + final WikiModuleInfo wmi = i.next(); + if( !ls.contains( wmi ) ) { + ls.add( wmi ); + } } return ls; @@ -94,8 +88,9 @@ public abstract class ModuleManager /** * Returns the {@link WikiModuleInfo} information about the provided moduleName. + * * @param moduleName * @return The wikiModuleInfo */ - public abstract WikiModuleInfo getModuleInfo(String moduleName); + public abstract WikiModuleInfo getModuleInfo( final String moduleName ); } 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 8dcaa8f..fbbedc7 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 @@ -25,15 +25,18 @@ import org.apache.wiki.WikiContext; import org.apache.wiki.WikiEngine; import org.apache.wiki.WikiPage; import org.apache.wiki.WikiProvider; +import org.apache.wiki.api.core.Engine; import org.apache.wiki.api.exceptions.NoRequiredPropertyException; import org.apache.wiki.api.exceptions.ProviderException; import org.apache.wiki.api.exceptions.WikiException; import org.apache.wiki.attachment.Attachment; +import org.apache.wiki.attachment.AttachmentManager; import org.apache.wiki.auth.WikiPrincipal; import org.apache.wiki.auth.WikiSecurityException; import org.apache.wiki.auth.acl.Acl; import org.apache.wiki.auth.acl.AclEntry; import org.apache.wiki.auth.acl.AclEntryImpl; +import org.apache.wiki.auth.acl.AclManager; import org.apache.wiki.auth.user.UserProfile; import org.apache.wiki.diff.DifferenceManager; import org.apache.wiki.event.WikiEvent; @@ -45,6 +48,9 @@ import org.apache.wiki.modules.WikiModuleInfo; import org.apache.wiki.providers.RepositoryModifiedException; import org.apache.wiki.providers.WikiPageProvider; import org.apache.wiki.references.ReferenceManager; +import org.apache.wiki.search.SearchManager; +import org.apache.wiki.tasks.TasksManager; +import org.apache.wiki.ui.CommandResolver; import org.apache.wiki.util.ClassUtil; import org.apache.wiki.util.TextUtil; import org.apache.wiki.workflow.Decision; @@ -103,21 +109,17 @@ public class DefaultPageManager extends ModuleManager implements PageManager { * @throws NoSuchElementException {@value #PROP_PAGEPROVIDER} property not found on WikiEngine properties * @throws WikiException If anything goes wrong, you get this. */ - public DefaultPageManager(final WikiEngine engine, final Properties props) throws NoSuchElementException, WikiException { + public DefaultPageManager(final Engine engine, final Properties props) throws NoSuchElementException, WikiException { super(engine); final String classname; - m_engine = engine; - final boolean useCache = "true".equals(props.getProperty(PROP_USECACHE)); + final boolean useCache = "true".equals( props.getProperty( PROP_USECACHE ) ); + m_expiryTime = TextUtil.parseIntParameter( props.getProperty( PROP_LOCKEXPIRY ), 60 ); - m_expiryTime = TextUtil.parseIntParameter(props.getProperty(PROP_LOCKEXPIRY), 60); - - // // If user wants to use a cache, then we'll use the CachingProvider. - // - if (useCache) { + if( useCache ) { classname = "org.apache.wiki.providers.CachingProvider"; } else { - classname = TextUtil.getRequiredProperty(props, PROP_PAGEPROVIDER); + classname = TextUtil.getRequiredProperty( props, PROP_PAGEPROVIDER ); } pageSorter.initialize( props ); @@ -187,7 +189,7 @@ public class DefaultPageManager extends ModuleManager implements PageManager { final WikiPage p = m_provider.getPageInfo( pageName, version ); m_engine.getManager( ReferenceManager.class ).updateReferences( p ); - m_engine.getSearchManager().reindexPage( p ); + m_engine.getManager( SearchManager.class ).reindexPage( p ); text = m_provider.getPageText( pageName, version ); } @@ -243,8 +245,8 @@ public class DefaultPageManager extends ModuleManager implements PageManager { // messages will appear in his/her workflow inbox. final WorkflowBuilder builder = WorkflowBuilder.getBuilder( m_engine ); final Principal submitter = context.getCurrentUser(); - final Step prepTask = m_engine.getTasksManager().buildPreSaveWikiPageTask( context, proposedText ); - final Step completionTask = m_engine.getTasksManager().buildSaveWikiPageTask(); + final Step prepTask = m_engine.getManager( TasksManager.class ).buildPreSaveWikiPageTask( context, proposedText ); + final Step completionTask = m_engine.getManager( TasksManager.class ).buildSaveWikiPageTask(); final String diffText = m_engine.getManager( DifferenceManager.class ).makeDiff( context, oldText, proposedText ); final boolean isAuthenticated = context.getWikiSession().isAuthenticated(); final Fact[] facts = new Fact[ 5 ]; @@ -261,7 +263,7 @@ public class DefaultPageManager extends ModuleManager implements PageManager { facts, completionTask, rejectKey ); - m_engine.getWorkflowManager().start( workflow ); + m_engine.getManager( WorkflowManager.class ).start( workflow ); // Let callers know if the page-save requires approval if ( workflow.getCurrentStep() instanceof Decision ) { @@ -274,7 +276,7 @@ public class DefaultPageManager extends ModuleManager implements PageManager { * * @return The WikiEngine object. */ - protected WikiEngine getEngine() { + protected Engine getEngine() { return m_engine; } @@ -377,7 +379,7 @@ public class DefaultPageManager extends ModuleManager implements PageManager { try { WikiPage p = getPageInfo( pagereq, version ); if( p == null ) { - p = m_engine.getAttachmentManager().getAttachmentInfo( null, pagereq ); + p = m_engine.getManager( AttachmentManager.class ).getAttachmentInfo( null, pagereq ); } return p; @@ -419,17 +421,17 @@ public class DefaultPageManager extends ModuleManager implements PageManager { * {@inheritDoc} * @see org.apache.wiki.pages.PageManager#getVersionHistory(java.lang.String) */ - @Override + @Override @SuppressWarnings( "unchecked" ) public < T extends WikiPage > List< T > getVersionHistory( final String pageName ) { List< T > c = null; try { if( pageExists( pageName ) ) { - c = (List< T >)m_provider.getVersionHistory( pageName ); + c = ( List< T > )m_provider.getVersionHistory( pageName ); } if( c == null ) { - c = (List< T >)m_engine.getAttachmentManager().getVersionHistory( pageName ); + c = ( List< T > )m_engine.getManager( AttachmentManager.class ).getVersionHistory( pageName ); } } catch( final ProviderException e ) { LOG.error( "ProviderException requesting version history for " + pageName, e ); @@ -442,15 +444,17 @@ public class DefaultPageManager extends ModuleManager implements PageManager { * {@inheritDoc} * @see org.apache.wiki.pages.PageManager#getCurrentProvider() */ - @Override public String getCurrentProvider() { + @Override + public String getCurrentProvider() { return getProvider().getClass().getName(); } /** * {@inheritDoc} + * * @see org.apache.wiki.pages.PageManager#getProviderDescription() */ - @Override + @Override public String getProviderDescription() { return m_provider.getProviderInfo(); } @@ -478,7 +482,7 @@ public class DefaultPageManager extends ModuleManager implements PageManager { try { final TreeSet< WikiPage > sortedPages = new TreeSet<>( new PageTimeComparator() ); sortedPages.addAll( getAllPages() ); - sortedPages.addAll( m_engine.getAttachmentManager().getAllAttachments() ); + sortedPages.addAll( m_engine.getManager( AttachmentManager.class ).getAllAttachments() ); return sortedPages; } catch( final ProviderException e ) { @@ -506,23 +510,24 @@ public class DefaultPageManager extends ModuleManager implements PageManager { */ @Override public boolean pageExists( final String pageName, final int version ) throws ProviderException { - if (pageName == null || pageName.length() == 0) { - throw new ProviderException("Illegal page name"); + if( pageName == null || pageName.length() == 0 ) { + throw new ProviderException( "Illegal page name" ); } - if (version == WikiProvider.LATEST_VERSION) { - return pageExists(pageName); + if( version == WikiProvider.LATEST_VERSION ) { + return pageExists( pageName ); } - return m_provider.pageExists(pageName, version); + return m_provider.pageExists( pageName, version ); } /** * {@inheritDoc} * @see org.apache.wiki.pages.PageManager#wikiPageExists(java.lang.String) */ - @Override public boolean wikiPageExists( final String page ) { - if( m_engine.getCommandResolver().getSpecialPageReference( page ) != null ) { + @Override + public boolean wikiPageExists( final String page ) { + if( m_engine.getManager( CommandResolver.class ).getSpecialPageReference( page ) != null ) { return true; } @@ -532,7 +537,7 @@ public class DefaultPageManager extends ModuleManager implements PageManager { return true; } - att = m_engine.getAttachmentManager().getAttachmentInfo( null, page ); + att = m_engine.getManager( AttachmentManager.class ).getAttachmentInfo( null, page ); } catch( final ProviderException e ) { LOG.debug( "pageExists() failed to find attachments", e ); } @@ -544,8 +549,9 @@ public class DefaultPageManager extends ModuleManager implements PageManager { * {@inheritDoc} * @see org.apache.wiki.pages.PageManager#wikiPageExists(java.lang.String, int) */ - @Override public boolean wikiPageExists( final String page, final int version ) throws ProviderException { - if( m_engine.getCommandResolver().getSpecialPageReference( page ) != null ) { + @Override + public boolean wikiPageExists( final String page, final int version ) throws ProviderException { + if( m_engine.getManager( CommandResolver.class ).getSpecialPageReference( page ) != null ) { return true; } @@ -558,7 +564,7 @@ public class DefaultPageManager extends ModuleManager implements PageManager { if( !isThere ) { // Go check if such an attachment exists. try { - isThere = m_engine.getAttachmentManager().getAttachmentInfo( null, page, version ) != null; + isThere = m_engine.getManager( AttachmentManager.class ).getAttachmentInfo( null, page, version ) != null; } catch( final ProviderException e ) { LOG.debug( "wikiPageExists() failed to find attachments", e ); } @@ -574,7 +580,7 @@ public class DefaultPageManager extends ModuleManager implements PageManager { @Override public void deleteVersion( final WikiPage page ) throws ProviderException { if( page instanceof Attachment ) { - m_engine.getAttachmentManager().deleteVersion( ( Attachment )page ); + m_engine.getManager( AttachmentManager.class ).deleteVersion( ( Attachment )page ); } else { m_provider.deleteVersion( page.getName(), page.getVersion() ); // FIXME: If this was the latest, reindex Lucene, update RefMgr @@ -585,23 +591,24 @@ public class DefaultPageManager extends ModuleManager implements PageManager { * {@inheritDoc} * @see org.apache.wiki.pages.PageManager#deletePage(java.lang.String) */ - @Override public void deletePage( final String pageName ) throws ProviderException { + @Override + public void deletePage( final String pageName ) throws ProviderException { final WikiPage p = getPage( pageName ); if( p != null ) { if( p instanceof Attachment ) { - m_engine.getAttachmentManager().deleteAttachment( ( Attachment )p ); + m_engine.getManager( AttachmentManager.class ).deleteAttachment( ( Attachment )p ); } else { final Collection< String > refTo = m_engine.getManager( ReferenceManager.class ).findRefersTo( pageName ); // May return null, if the page does not exist or has not been indexed yet. - if( m_engine.getAttachmentManager().hasAttachments( p ) ) { - final List< Attachment > attachments = m_engine.getAttachmentManager().listAttachments( p ); + if( m_engine.getManager( AttachmentManager.class ).hasAttachments( p ) ) { + final List< Attachment > attachments = m_engine.getManager( AttachmentManager.class ).listAttachments( p ); for( final Attachment attachment : attachments ) { if( refTo != null ) { refTo.remove( attachment.getName() ); } - m_engine.getAttachmentManager().deleteAttachment( attachment ); + m_engine.getManager( AttachmentManager.class ).deleteAttachment( attachment ); } } deletePage( p ); @@ -632,9 +639,9 @@ public class DefaultPageManager extends ModuleManager implements PageManager { * * @param engine WikiEngine to own this thread. */ - public LockReaper( final WikiEngine engine) { - super(engine, 60); - setName("JSPWiki Lock Reaper"); + public LockReaper( final Engine engine) { + super( engine, 60 ); + setName( "JSPWiki Lock Reaper" ); } @Override @@ -720,7 +727,7 @@ public class DefaultPageManager extends ModuleManager implements PageManager { if( aclChanged ) { // If the Acl needed changing, change it now try { - m_engine.getAclManager().setPermissions( page, page.getAcl() ); + m_engine.getManager( AclManager.class ).setPermissions( page, page.getAcl() ); } catch( final WikiSecurityException e ) { LOG.error("Could not change page ACL for page " + page.getName() + ": " + e.getMessage(), e); } @@ -753,18 +760,18 @@ public class DefaultPageManager extends ModuleManager implements PageManager { final Collection< AclEntry > entriesToRemove = new ArrayList<>(); while( entries.hasMoreElements() ) { final AclEntry entry = entries.nextElement(); - if( ArrayUtils.contains(oldPrincipals, entry.getPrincipal() ) ) { + if( ArrayUtils.contains( oldPrincipals, entry.getPrincipal() ) ) { // Create new entry final AclEntry newEntry = new AclEntryImpl(); newEntry.setPrincipal( newPrincipal ); - final Enumeration<Permission> permissions = entry.permissions(); + final Enumeration< Permission > permissions = entry.permissions(); while( permissions.hasMoreElements() ) { final Permission permission = permissions.nextElement(); - newEntry.addPermission(permission); + newEntry.addPermission( permission ); } pageChanged = true; - entriesToRemove.add(entry); - entriesToAdd.add(newEntry); + entriesToRemove.add( entry ); + entriesToAdd.add( newEntry ); } } for( final AclEntry entry : entriesToRemove ) { diff --git a/jspwiki-main/src/main/java/org/apache/wiki/plugin/DefaultPluginManager.java b/jspwiki-main/src/main/java/org/apache/wiki/plugin/DefaultPluginManager.java index 90c8131..55b6d6b 100644 --- a/jspwiki-main/src/main/java/org/apache/wiki/plugin/DefaultPluginManager.java +++ b/jspwiki-main/src/main/java/org/apache/wiki/plugin/DefaultPluginManager.java @@ -34,6 +34,7 @@ import org.apache.wiki.WikiContext; import org.apache.wiki.WikiEngine; import org.apache.wiki.ajax.WikiAjaxDispatcherServlet; import org.apache.wiki.ajax.WikiAjaxServlet; +import org.apache.wiki.api.core.Engine; import org.apache.wiki.api.engine.PluginManager; import org.apache.wiki.api.exceptions.PluginException; import org.apache.wiki.api.plugin.InitializablePlugin; @@ -59,7 +60,6 @@ import java.text.MessageFormat; import java.util.ArrayList; import java.util.Collection; import java.util.HashMap; -import java.util.Iterator; import java.util.List; import java.util.Map; import java.util.NoSuchElementException; @@ -185,22 +185,22 @@ public class DefaultPluginManager extends ModuleManager implements PluginManager * @param engine WikiEngine which owns this manager. * @param props Contents of a "jspwiki.properties" file. */ - public DefaultPluginManager( WikiEngine engine, Properties props ) { + public DefaultPluginManager( final WikiEngine engine, final Properties props ) { super( engine ); - String packageNames = props.getProperty( PROP_SEARCHPATH ); + final String packageNames = props.getProperty( PROP_SEARCHPATH ); if ( packageNames != null ) { - StringTokenizer tok = new StringTokenizer( packageNames, "," ); + final StringTokenizer tok = new StringTokenizer( packageNames, "," ); while( tok.hasMoreTokens() ) { m_searchPath.add( tok.nextToken().trim() ); } } - String externalJars = props.getProperty( PROP_EXTERNALJARS ); + final String externalJars = props.getProperty( PROP_EXTERNALJARS ); if( externalJars != null ) { - StringTokenizer tok = new StringTokenizer( externalJars, "," ); + final StringTokenizer tok = new StringTokenizer( externalJars, "," ); while( tok.hasMoreTokens() ) { m_externalJars.add( tok.nextToken().trim() ); @@ -215,11 +215,11 @@ public class DefaultPluginManager extends ModuleManager implements PluginManager m_searchPath.add( DEFAULT_PACKAGE ); m_searchPath.add( DEFAULT_FORMS_PACKAGE ); - PatternCompiler compiler = new Perl5Compiler(); + final PatternCompiler compiler = new Perl5Compiler(); try { m_pluginPattern = compiler.compile( PLUGIN_INSERT_PATTERN ); - } catch( MalformedPatternException e ) { + } catch( final MalformedPatternException e ) { log.fatal( "Internal error: someone messed with pluginmanager patterns.", e ); throw new InternalWikiException( "PluginManager patterns are broken" , e); } @@ -230,7 +230,7 @@ public class DefaultPluginManager extends ModuleManager implements PluginManager * {@inheritDoc} */ @Override - public void enablePlugins( boolean enabled ) { + public void enablePlugins( final boolean enabled ) { m_pluginsEnabled = enabled; } @@ -268,30 +268,29 @@ public class DefaultPluginManager extends ModuleManager implements PluginManager * * @throws ClassNotFoundException if no such class exists. */ - private Class< ? > findPluginClass( String classname ) throws ClassNotFoundException { + private Class< ? > findPluginClass( final String classname ) throws ClassNotFoundException { return ClassUtil.findClass( m_searchPath, m_externalJars, classname ); } /** * Outputs a HTML-formatted version of a stack trace. */ - private String stackTrace( Map<String,String> params, Throwable t ) + private String stackTrace( final Map<String,String> params, final Throwable t ) { - Element div = XhtmlUtil.element(XHTML.div,"Plugin execution failed, stack trace follows:"); + final Element div = XhtmlUtil.element(XHTML.div,"Plugin execution failed, stack trace follows:"); div.setAttribute(XHTML.ATTR_class,"debug"); - StringWriter out = new StringWriter(); + final StringWriter out = new StringWriter(); t.printStackTrace(new PrintWriter(out)); div.addContent(XhtmlUtil.element(XHTML.pre,out.toString())); div.addContent(XhtmlUtil.element(XHTML.b,"Parameters to the plugin")); - Element list = XhtmlUtil.element(XHTML.ul); + final Element list = XhtmlUtil.element(XHTML.ul); - for( Iterator<Map.Entry<String,String>> i = params.entrySet().iterator(); i.hasNext(); ) { - Map.Entry<String,String> e = i.next(); - String key = e.getKey(); - list.addContent(XhtmlUtil.element(XHTML.li,key + "'='" + e.getValue())); + for( final Map.Entry< String, String > e : params.entrySet() ) { + final String key = e.getKey(); + list.addContent( XhtmlUtil.element( XHTML.li, key + "'='" + e.getValue() ) ); } div.addContent(list); @@ -318,18 +317,18 @@ public class DefaultPluginManager extends ModuleManager implements PluginManager * @since 2.0 */ @Override - public String execute( WikiContext context, String classname, Map< String, String > params ) throws PluginException { + public String execute( final WikiContext context, final String classname, final Map< String, String > params ) throws PluginException { if( !m_pluginsEnabled ) { return ""; } - ResourceBundle rb = Preferences.getBundle( context, WikiPlugin.CORE_PLUGINS_RESOURCEBUNDLE ); - boolean debug = TextUtil.isPositive( params.get( PARAM_DEBUG ) ); + final ResourceBundle rb = Preferences.getBundle( context, WikiPlugin.CORE_PLUGINS_RESOURCEBUNDLE ); + final boolean debug = TextUtil.isPositive( params.get( PARAM_DEBUG ) ); try { // // Create... // - WikiPlugin plugin = newWikiPlugin( classname, rb ); + final WikiPlugin plugin = newWikiPlugin( classname, rb ); if( plugin == null ) { return "Plugin '" + classname + "' not compatible with this version of JSPWiki"; } @@ -339,14 +338,14 @@ public class DefaultPluginManager extends ModuleManager implements PluginManager // try { return plugin.execute( context, params ); - } catch( PluginException e ) { + } catch( final PluginException e ) { if( debug ) { return stackTrace( params, e ); } // Just pass this exception onward. throw ( PluginException )e.fillInStackTrace(); - } catch( Throwable t ) { + } catch( final Throwable t ) { // But all others get captured here. log.info( "Plugin failed while executing:", t ); if( debug ) { @@ -356,7 +355,7 @@ public class DefaultPluginManager extends ModuleManager implements PluginManager throw new PluginException( rb.getString( "plugin.error.failed" ), t ); } - } catch( ClassCastException e ) { + } catch( final ClassCastException e ) { throw new PluginException( MessageFormat.format( rb.getString( "plugin.error.notawikiplugin" ), classname ), e ); } } @@ -382,23 +381,22 @@ public class DefaultPluginManager extends ModuleManager implements PluginManager * @throws IOException If the parsing fails. */ @Override - public Map< String, String > parseArgs( String argstring ) throws IOException { - Map< String, String > arglist = new HashMap< >(); + public Map< String, String > parseArgs( final String argstring ) throws IOException { + final Map< String, String > arglist = new HashMap<>(); - // // Protection against funny users. - // - if( argstring == null ) return arglist; + if( argstring == null ) { + return arglist; + } arglist.put( PARAM_CMDLINE, argstring ); - StringReader in = new StringReader(argstring); - StreamTokenizer tok = new StreamTokenizer(in); + final StringReader in = new StringReader(argstring); + final StreamTokenizer tok = new StreamTokenizer(in); int type; - String param = null; - String value = null; + String value; tok.eolIsSignificant( true ); @@ -406,7 +404,7 @@ public class DefaultPluginManager extends ModuleManager implements PluginManager boolean quit = false; while( !quit ) { - String s; + final String s; type = tok.nextToken(); switch( type ) { @@ -461,10 +459,10 @@ public class DefaultPluginManager extends ModuleManager implements PluginManager // Now, we'll check the body. // if( potentialEmptyLine ) { - StringWriter out = new StringWriter(); + final StringWriter out = new StringWriter(); FileUtil.copyContents( in, out ); - String bodyContent = out.toString(); + final String bodyContent = out.toString(); if( bodyContent != null ) { arglist.put( PARAM_BODY, bodyContent ); @@ -489,32 +487,32 @@ public class DefaultPluginManager extends ModuleManager implements PluginManager * @throws PluginException From the plugin itself, it propagates, waah! */ @Override - public String execute( WikiContext context, String commandline ) throws PluginException { + public String execute( final WikiContext context, final String commandline ) throws PluginException { if( !m_pluginsEnabled ) { return ""; } - ResourceBundle rb = Preferences.getBundle( context, WikiPlugin.CORE_PLUGINS_RESOURCEBUNDLE ); - PatternMatcher matcher = new Perl5Matcher(); + final ResourceBundle rb = Preferences.getBundle( context, WikiPlugin.CORE_PLUGINS_RESOURCEBUNDLE ); + final PatternMatcher matcher = new Perl5Matcher(); try { if( matcher.contains( commandline, m_pluginPattern ) ) { - MatchResult res = matcher.getMatch(); + final MatchResult res = matcher.getMatch(); - String plugin = res.group(2); - String args = commandline.substring(res.endOffset(0), + final String plugin = res.group(2); + final String args = commandline.substring(res.endOffset(0), commandline.length() - (commandline.charAt(commandline.length()-1) == '}' ? 1 : 0 ) ); - Map<String, String> arglist = parseArgs( args ); + final Map<String, String> arglist = parseArgs( args ); return execute( context, plugin, arglist ); } - } catch( NoSuchElementException e ) { - String msg = "Missing parameter in plugin definition: "+commandline; + } catch( final NoSuchElementException e ) { + final String msg = "Missing parameter in plugin definition: "+commandline; log.warn( msg, e ); throw new PluginException( MessageFormat.format( rb.getString( "plugin.error.missingparameter" ), commandline ) ); - } catch( IOException e ) { - String msg = "Zyrf. Problems with parsing arguments: "+commandline; + } catch( final IOException e ) { + final String msg = "Zyrf. Problems with parsing arguments: "+commandline; log.warn( msg, e ); throw new PluginException( MessageFormat.format( rb.getString( "plugin.error.parsingarguments" ), commandline ) ); } @@ -528,7 +526,7 @@ public class DefaultPluginManager extends ModuleManager implements PluginManager /** * Register a plugin. */ - private void registerPlugin( WikiPluginInfo pluginClass ) { + private void registerPlugin( final WikiPluginInfo pluginClass ) { String name; // Registrar the plugin with the className without the package-part @@ -557,16 +555,16 @@ public class DefaultPluginManager extends ModuleManager implements PluginManager private void registerPlugins() { log.info( "Registering plugins" ); - List< Element > plugins = XmlUtil.parse( PLUGIN_RESOURCE_LOCATION, "/modules/plugin" ); + final List< Element > plugins = XmlUtil.parse( PLUGIN_RESOURCE_LOCATION, "/modules/plugin" ); // // Register all plugins which have created a resource containing its properties. // // Get all resources of all plugins. // - for( Element pluginEl : plugins ) { - String className = pluginEl.getAttributeValue( "class" ); - WikiPluginInfo pluginInfo = WikiPluginInfo.newInstance( className, pluginEl ,m_searchPath, m_externalJars); + for( final Element pluginEl : plugins ) { + final String className = pluginEl.getAttributeValue( "class" ); + final WikiPluginInfo pluginInfo = WikiPluginInfo.newInstance( className, pluginEl ,m_searchPath, m_externalJars); if( pluginInfo != null ) { registerPlugin( pluginInfo ); @@ -601,10 +599,10 @@ public class DefaultPluginManager extends ModuleManager implements PluginManager * @param externalJars the list of external jars to search * @return A WikiPluginInfo object. */ - protected static WikiPluginInfo newInstance( String className, Element el, List<String> searchPath, List<String> externalJars ) { + protected static WikiPluginInfo newInstance( final String className, final Element el, final List<String> searchPath, final List<String> externalJars ) { if( className == null || className.length() == 0 ) return null; - WikiPluginInfo info = new WikiPluginInfo( className ); + final WikiPluginInfo info = new WikiPluginInfo( className ); info.initializeFromXML( el ); return info; } @@ -618,24 +616,24 @@ public class DefaultPluginManager extends ModuleManager implements PluginManager * @param searchPath A List of Strings, containing different package names. * @param externalJars the list of external jars to search */ - protected void initializePlugin( WikiPluginInfo info, WikiEngine engine , List<String> searchPath, List<String> externalJars) { + protected void initializePlugin( final WikiPluginInfo info, final Engine engine , final List<String> searchPath, final List<String> externalJars) { if( !m_initialized ) { // This makes sure we only try once per class, even if init fails. m_initialized = true; try { - WikiPlugin p = newPluginInstance(searchPath, externalJars); + final WikiPlugin p = newPluginInstance(searchPath, externalJars); if( p instanceof InitializablePlugin ) { ( ( InitializablePlugin )p ).initialize( engine ); } if( p instanceof WikiAjaxServlet ) { WikiAjaxDispatcherServlet.registerServlet( (WikiAjaxServlet) p ); - String ajaxAlias = info.getAjaxAlias(); + final String ajaxAlias = info.getAjaxAlias(); if (StringUtils.isNotBlank(ajaxAlias)) { WikiAjaxDispatcherServlet.registerServlet( info.getAjaxAlias(), (WikiAjaxServlet) p ); } } - } catch( Exception e ) { + } catch( final Exception e ) { log.info( "Cannot initialize plugin " + m_className, e ); } } @@ -645,7 +643,7 @@ public class DefaultPluginManager extends ModuleManager implements PluginManager * {@inheritDoc} */ @Override - protected void initializeFromXML( Element el ) { + protected void initializeFromXML( final Element el ) { super.initializeFromXML( el ); m_alias = el.getChildText( "alias" ); m_ajaxAlias = el.getChildText( "ajaxAlias" ); @@ -657,16 +655,16 @@ public class DefaultPluginManager extends ModuleManager implements PluginManager * @param clazz The class to check * @return A WikiPluginInfo instance */ - protected static WikiPluginInfo newInstance( Class< ? > clazz ) { + protected static WikiPluginInfo newInstance( final Class< ? > clazz ) { return new WikiPluginInfo( clazz.getName() ); } - private WikiPluginInfo( String className ) { + private WikiPluginInfo( final String className ) { super( className ); setClassName( className ); } - private void setClassName( String fullClassName ) { + private void setClassName( final String fullClassName ) { m_name = ClassUtils.getShortClassName( fullClassName ); m_className = fullClassName; } @@ -707,7 +705,7 @@ public class DefaultPluginManager extends ModuleManager implements PluginManager * @throws IllegalAccessException If the class cannot be accessed. */ - public WikiPlugin newPluginInstance(List<String> searchPath, List<String> externalJars) throws ClassNotFoundException, InstantiationException, IllegalAccessException { + public WikiPlugin newPluginInstance( final List<String> searchPath, final List<String> externalJars) throws ClassNotFoundException, InstantiationException, IllegalAccessException { if( m_clazz == null ) { m_clazz = ClassUtil.findClass(searchPath, externalJars ,m_className); } @@ -721,14 +719,14 @@ public class DefaultPluginManager extends ModuleManager implements PluginManager * @param type Either "script" or "stylesheet" * @return Text, or an empty string, if there is nothing to be included. */ - public String getIncludeText( String type ) { + public String getIncludeText( final String type ) { try { if( "script".equals( type ) ) { return getScriptText(); } else if( "stylesheet".equals( type ) ) { return getStylesheetText(); } - } catch( Exception ex ) { + } catch( final Exception ex ) { // We want to fail gracefully here return ex.getMessage(); } @@ -747,7 +745,7 @@ public class DefaultPluginManager extends ModuleManager implements PluginManager try { m_scriptText = getTextResource(m_scriptLocation); - } catch( IOException ex ) { + } catch( final IOException ex ) { // Only throw this exception once! m_scriptText = ""; throw ex; @@ -767,7 +765,7 @@ public class DefaultPluginManager extends ModuleManager implements PluginManager try { m_stylesheetText = getTextResource(m_stylesheetLocation); - } catch( IOException ex ) { + } catch( final IOException ex ) { // Only throw this exception once! m_stylesheetText = ""; throw ex; @@ -799,7 +797,7 @@ public class DefaultPluginManager extends ModuleManager implements PluginManager * {@inheritDoc} */ @Override - public WikiPluginInfo getModuleInfo(String moduleName) { + public WikiPluginInfo getModuleInfo( final String moduleName) { return m_pluginClassMap.get(moduleName); } @@ -812,7 +810,7 @@ public class DefaultPluginManager extends ModuleManager implements PluginManager * @throws PluginException if there is a problem building the {@link WikiPlugin}. */ @Override - public WikiPlugin newWikiPlugin( String pluginName, ResourceBundle rb ) throws PluginException { + public WikiPlugin newWikiPlugin( final String pluginName, final ResourceBundle rb ) throws PluginException { WikiPlugin plugin = null; WikiPluginInfo pluginInfo = m_pluginClassMap.get( pluginName ); try { @@ -822,18 +820,18 @@ public class DefaultPluginManager extends ModuleManager implements PluginManager } if( !checkCompatibility( pluginInfo ) ) { - String msg = "Plugin '" + pluginInfo.getName() + "' not compatible with this version of JSPWiki"; + final String msg = "Plugin '" + pluginInfo.getName() + "' not compatible with this version of JSPWiki"; log.info( msg ); } else { plugin = pluginInfo.newPluginInstance(m_searchPath, m_externalJars); } - } catch( ClassNotFoundException e ) { + } catch( final ClassNotFoundException e ) { throw new PluginException( MessageFormat.format( rb.getString( "plugin.error.couldnotfind" ), pluginName ), e ); - } catch( InstantiationException e ) { + } catch( final InstantiationException e ) { throw new PluginException( MessageFormat.format( rb.getString( "plugin.error.cannotinstantiate" ), pluginName ), e ); - } catch( IllegalAccessException e ) { + } catch( final IllegalAccessException e ) { throw new PluginException( MessageFormat.format( rb.getString( "plugin.error.notallowed" ), pluginName ), e ); - } catch( Exception e ) { + } catch( final Exception e ) { throw new PluginException( MessageFormat.format( rb.getString( "plugin.error.instantationfailed" ), pluginName ), e ); } return plugin; diff --git a/jspwiki-main/src/main/java/org/apache/wiki/ui/EditorManager.java b/jspwiki-main/src/main/java/org/apache/wiki/ui/EditorManager.java index 217c1bd..0d2f5f3 100644 --- a/jspwiki-main/src/main/java/org/apache/wiki/ui/EditorManager.java +++ b/jspwiki-main/src/main/java/org/apache/wiki/ui/EditorManager.java @@ -26,6 +26,7 @@ import org.apache.wiki.modules.ModuleManager; import org.apache.wiki.modules.WikiModuleInfo; import org.apache.wiki.preferences.Preferences; import org.apache.wiki.util.XmlUtil; +import org.apache.wiki.variables.VariableManager; import org.jdom2.Element; import javax.servlet.jsp.PageContext; @@ -147,7 +148,7 @@ public class EditorManager extends ModuleManager { if( editor == null ) { // or use the default editor in jspwiki.properties try { - editor = m_engine.getVariableManager().getValue( context, PROP_EDITORTYPE ); + editor = m_engine.getManager( VariableManager.class ).getValue( context, PROP_EDITORTYPE ); } catch( final NoSuchVariableException e ) {} // This is fine } @@ -224,7 +225,7 @@ public class EditorManager extends ModuleManager { return info; } - protected void initializeFromXML( final Element el ) { + @Override protected void initializeFromXML( final Element el ) { super.initializeFromXML( el ); m_path = el.getChildText("path"); } diff --git a/jspwiki-main/src/main/java/org/apache/wiki/ui/TemplateManager.java b/jspwiki-main/src/main/java/org/apache/wiki/ui/TemplateManager.java index c2db396..68441f9 100644 --- a/jspwiki-main/src/main/java/org/apache/wiki/ui/TemplateManager.java +++ b/jspwiki-main/src/main/java/org/apache/wiki/ui/TemplateManager.java @@ -22,7 +22,7 @@ import org.apache.commons.lang3.StringUtils; import org.apache.log4j.Logger; import org.apache.wiki.InternalWikiException; import org.apache.wiki.WikiContext; -import org.apache.wiki.WikiEngine; +import org.apache.wiki.api.core.Engine; import org.apache.wiki.i18n.InternationalizationManager; import org.apache.wiki.modules.ModuleManager; import org.apache.wiki.modules.WikiModuleInfo; @@ -122,7 +122,7 @@ public class TemplateManager extends ModuleManager { * @param engine The owning engine. * @param properties The property list used to initialize this. */ - public TemplateManager( final WikiEngine engine, final Properties properties ) { + public TemplateManager( final Engine engine, final Properties properties ) { super( engine ); //
