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 f3005db149bbfa8c8c38f03eb3bddcbe286fa67e Author: juanpablo <[email protected]> AuthorDate: Wed Feb 26 19:23:50 2020 +0100 JSPWIKI-120: remove use of WikiEngine throughout the code as much as possible and use Engine instead (5) --- .../java/org/apache/wiki/ui/CommandResolver.java | 4 +- .../org/apache/wiki/ui/DefaultCommandResolver.java | 15 +-- .../java/org/apache/wiki/ui/EditorManager.java | 35 +++--- .../main/java/org/apache/wiki/ui/Installer.java | 15 +-- .../main/java/org/apache/wiki/ui/WikiCommand.java | 18 +-- .../java/org/apache/wiki/ui/WikiJSPFilter.java | 30 +++-- .../org/apache/wiki/ui/WikiRequestWrapper.java | 10 +- .../java/org/apache/wiki/ui/WikiServletFilter.java | 22 ++-- .../wiki/ui/admin/DefaultAdminBeanManager.java | 135 ++++++++++----------- .../org/apache/wiki/ui/admin/SimpleAdminBean.java | 74 +++++------ .../org/apache/wiki/ui/admin/beans/ModuleBean.java | 11 +- 11 files changed, 178 insertions(+), 191 deletions(-) diff --git a/jspwiki-main/src/main/java/org/apache/wiki/ui/CommandResolver.java b/jspwiki-main/src/main/java/org/apache/wiki/ui/CommandResolver.java index 350523f..c684b2a 100644 --- a/jspwiki-main/src/main/java/org/apache/wiki/ui/CommandResolver.java +++ b/jspwiki-main/src/main/java/org/apache/wiki/ui/CommandResolver.java @@ -26,7 +26,7 @@ import java.util.Arrays; /** - * <p>Resolves special pages, JSPs and Commands on behalf of a WikiEngine. CommandResolver will automatically resolve page names + * <p>Resolves special pages, JSPs and Commands on behalf of a Engine. CommandResolver will automatically resolve page names * with singular/plural variants. It can also detect the correct Command based on parameters supplied in an HTTP request, or due to the * JSP being accessed.</p> * <p> @@ -36,7 +36,7 @@ import java.util.Arrays; * <p>For more complex lookups in which the caller supplies an HTTP request, {@link #findCommand(HttpServletRequest, String)} will * look up and return the correct Command. The String parameter <code>defaultContext</code> supplies the request context to use * if it cannot be detected. However, note that the default wiki context may be overridden if the request was for a "special page."</p> - * <p>For example, suppose the WikiEngine's properties specify a special page called <code>UserPrefs</code> that redirects to + * <p>For example, suppose the Engine's properties specify a special page called <code>UserPrefs</code> that redirects to * <code>UserPreferences.jsp</code>. The ordinary lookup method {@linkplain #findCommand(String)} using a supplied context <code>view</code> * would return {@link PageCommand#VIEW}. But the {@linkplain #findCommand(HttpServletRequest, String)} method, when passed the same context * (<code>view</code>) and an HTTP request containing the page parameter value <code>UserPrefs</code>, will instead return diff --git a/jspwiki-main/src/main/java/org/apache/wiki/ui/DefaultCommandResolver.java b/jspwiki-main/src/main/java/org/apache/wiki/ui/DefaultCommandResolver.java index ce25685..1ee198e 100644 --- a/jspwiki-main/src/main/java/org/apache/wiki/ui/DefaultCommandResolver.java +++ b/jspwiki-main/src/main/java/org/apache/wiki/ui/DefaultCommandResolver.java @@ -20,13 +20,14 @@ package org.apache.wiki.ui; import org.apache.log4j.Logger; import org.apache.wiki.InternalWikiException; -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.ProviderException; import org.apache.wiki.auth.GroupPrincipal; import org.apache.wiki.pages.PageManager; import org.apache.wiki.parser.MarkupParser; +import org.apache.wiki.url.URLConstructor; import org.apache.wiki.util.TextUtil; import javax.servlet.http.HttpServletRequest; @@ -62,7 +63,7 @@ public final class DefaultCommandResolver implements CommandResolver { private static final Logger LOG = Logger.getLogger( DefaultCommandResolver.class ); - private final WikiEngine m_engine; + private final Engine m_engine; /** If true, we'll also consider english plurals (+s) a match. */ private final boolean m_matchEnglishPlurals; @@ -71,13 +72,13 @@ public final class DefaultCommandResolver implements CommandResolver { private final Map<String, Command> m_specialPages; /** - * Constructs a CommandResolver for a given WikiEngine. This constructor will extract the special page references for this wiki and + * Constructs a CommandResolver for a given Engine. This constructor will extract the special page references for this wiki and * store them in a cache used for resolution. * * @param engine the wiki engine * @param properties the properties used to initialize the wiki */ - public DefaultCommandResolver( final WikiEngine engine, final Properties properties ) { + public DefaultCommandResolver( final Engine engine, final Properties properties ) { m_engine = engine; m_specialPages = new HashMap<>(); @@ -101,7 +102,7 @@ public final class DefaultCommandResolver implements CommandResolver { } // Do we match plurals? - m_matchEnglishPlurals = TextUtil.getBooleanProperty( properties, WikiEngine.PROP_MATCHPLURALS, true ); + m_matchEnglishPlurals = TextUtil.getBooleanProperty( properties, Engine.PROP_MATCHPLURALS, true ); } /** @@ -214,7 +215,7 @@ public final class DefaultCommandResolver implements CommandResolver { public String getSpecialPageReference( final String page ) { final Command command = m_specialPages.get( page ); if ( command != null ) { - return m_engine.getURLConstructor().makeURL( command.getRequestContext(), command.getURLPattern(), null ); + return m_engine.getManager( URLConstructor.class ).makeURL( command.getRequestContext(), command.getURLPattern(), null ); } return null; @@ -266,7 +267,7 @@ public final class DefaultCommandResolver implements CommandResolver { public String extractPageFromParameter( final String requestContext, final HttpServletRequest request ) { // Extract the page name from the URL directly try { - String page = m_engine.getURLConstructor().parsePage( requestContext, request, m_engine.getContentEncoding() ); + String page = m_engine.getManager( URLConstructor.class ).parsePage( requestContext, request, m_engine.getContentEncoding() ); if ( page != null ) { try { // Look for singular/plural variants; if one not found, take the one the user supplied 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 0d2f5f3..9d173fd 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 @@ -20,7 +20,7 @@ package org.apache.wiki.ui; 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.exceptions.NoSuchVariableException; import org.apache.wiki.modules.ModuleManager; import org.apache.wiki.modules.WikiModuleInfo; @@ -39,21 +39,19 @@ import java.util.Set; /** - * Defines an editor manager. An editor can be added by adding a - * suitable JSP file under templates/default/editors - * If you want your editor to include any scripts or something, you - * can simply request it by adding the following in your - * ini/jspwiki_module.xml: + * Defines an editor manager. An editor can be added by adding a suitable JSP file under templates/default/editors + * If you want your editor to include any scripts or something, you can simply request it by adding the following in your + * {@code ini/jspwiki_module.xml}: * * <pre> - * <modules> - * <editor name="myeditor"> - * <author>Janne Jalkanen</author> - * <script>foo.js</script> - * <stylesheet>foo.css</stylesheet> - * <path>editors/myeditor.jsp</path> - * </editor> - * </modules> + * <modules> + * <editor name="myeditor"> + * <author>Janne Jalkanen</author> + * <script>foo.js</script> + * <stylesheet>foo.css</stylesheet> + * <path>editors/myeditor.jsp</path> + * </editor> + * </modules> * </pre> * * @since 2.4 @@ -82,7 +80,7 @@ public class EditorManager extends ModuleManager { private static final Logger log = Logger.getLogger( EditorManager.class ); - public EditorManager( final WikiEngine engine ) { + public EditorManager( final Engine engine ) { super( engine ); } @@ -96,9 +94,7 @@ public class EditorManager extends ModuleManager { } /** - * This method goes through the jspwiki_module.xml files and hunts for editors. - * Any editors found are put in the registry. - * + * This method goes through the jspwiki_module.xml files and hunts for editors. Any editors found are put in the registry. */ private void registerEditors() { log.info( "Registering editor modules" ); @@ -225,7 +221,8 @@ public class EditorManager extends ModuleManager { return info; } - @Override 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/Installer.java b/jspwiki-main/src/main/java/org/apache/wiki/ui/Installer.java index 243a67b..cad8a35 100644 --- a/jspwiki-main/src/main/java/org/apache/wiki/ui/Installer.java +++ b/jspwiki-main/src/main/java/org/apache/wiki/ui/Installer.java @@ -20,6 +20,7 @@ package org.apache.wiki.ui; import org.apache.wiki.WikiEngine; import org.apache.wiki.WikiSession; +import org.apache.wiki.api.core.Engine; import org.apache.wiki.auth.NoSuchPrincipalException; import org.apache.wiki.auth.UserManager; import org.apache.wiki.auth.WikiPrincipal; @@ -58,17 +59,17 @@ public class Installer { public static final String INSTALL_INFO = "Installer.Info"; public static final String INSTALL_ERROR = "Installer.Error"; public static final String INSTALL_WARNING = "Installer.Warning"; - public static final String APP_NAME = WikiEngine.PROP_APPNAME; + public static final String APP_NAME = Engine.PROP_APPNAME; public static final String STORAGE_DIR = BasicAttachmentProvider.PROP_STORAGEDIR; public static final String PAGE_DIR = FileSystemProvider.PROP_PAGEDIR; - public static final String WORK_DIR = WikiEngine.PROP_WORKDIR; + public static final String WORK_DIR = Engine.PROP_WORKDIR; public static final String ADMIN_GROUP = "Admin"; public static final String PROPFILENAME = "jspwiki-custom.properties" ; public static final String TMP_DIR = System.getProperty("java.io.tmpdir"); private final WikiSession m_session; private final File m_propertyFile; private final Properties m_props; - private final WikiEngine m_engine; + private final Engine m_engine; private HttpServletRequest m_request; private boolean m_validated; @@ -93,7 +94,7 @@ public class Installer { */ public boolean adminExists() { // See if the admin user exists already - final UserManager userMgr = m_engine.getUserManager(); + final UserManager userMgr = m_engine.getManager( UserManager.class ); final UserDatabase userDb = userMgr.getUserDatabase(); try { userDb.findByLoginName( ADMIN_ID ); @@ -118,7 +119,7 @@ public class Installer { } // See if the admin user exists already - final UserManager userMgr = m_engine.getUserManager(); + final UserManager userMgr = m_engine.getManager( UserManager.class ); final UserDatabase userDb = userMgr.getUserDatabase(); String password = null; @@ -135,7 +136,7 @@ public class Installer { } // Create a new admin group - final GroupManager groupMgr = m_engine.getGroupManager(); + final GroupManager groupMgr = m_engine.getManager( GroupManager.class ); Group group; try { group = groupMgr.getGroup( ADMIN_GROUP ); @@ -166,7 +167,7 @@ public class Installer { } /** - * Returns a property from the WikiEngine's properties. + * Returns a property from the Engine's properties. * @param key the property key * @return the property value */ diff --git a/jspwiki-main/src/main/java/org/apache/wiki/ui/WikiCommand.java b/jspwiki-main/src/main/java/org/apache/wiki/ui/WikiCommand.java index 1f22b44..1d81475 100644 --- a/jspwiki-main/src/main/java/org/apache/wiki/ui/WikiCommand.java +++ b/jspwiki-main/src/main/java/org/apache/wiki/ui/WikiCommand.java @@ -27,7 +27,7 @@ import java.security.Permission; * <p>Defines Commands for wiki-wide operations such as creating groups, editing preferences and profiles, and logging in/out. * WikiCommands can be combined with Strings (representing the name of a wiki instance) to produce targeted Commands.</p> * - * @see org.apache.wiki.WikiEngine#getApplicationName() + * @see org.apache.wiki.api.core.Engine#getApplicationName() * @since 2.4.22 */ public final class WikiCommand extends AbstractCommand { @@ -91,11 +91,13 @@ public final class WikiCommand extends AbstractCommand { } /** - * Constructs an admin command. + * Constructs an admin command. * - * @param requestContext - * @param urlPattern - * @param contentTemplate + * @param requestContext the request context + * @param urlPattern the URL pattern + * @param contentTemplate the content template; may be <code>null</code> + * @param target the target of the command, such as a WikiPage; may be <code>null</code> + * @throws IllegalArgumentException if the request content or URL pattern is <code>null</code> */ private WikiCommand( final String requestContext, final String urlPattern, final String contentTemplate, final String target ) { super( requestContext, urlPattern, contentTemplate, target ); @@ -111,7 +113,7 @@ public final class WikiCommand extends AbstractCommand { * @return the new targeted command * @throws IllegalArgumentException if the target is not of the correct type */ - public Command targetedCommand( final Object target ) { + @Override public Command targetedCommand( final Object target ) { if ( !( target instanceof String ) ) { throw new IllegalArgumentException( "Target must non-null and of type String." ); } @@ -123,14 +125,14 @@ public final class WikiCommand extends AbstractCommand { * * @see org.apache.wiki.ui.Command#getName() */ - public String getName() { + @Override public String getName() { return getJSPFriendlyName(); } /** * @see org.apache.wiki.ui.Command#requiredPermission() */ - public Permission requiredPermission() { + @Override public Permission requiredPermission() { return m_permission; } diff --git a/jspwiki-main/src/main/java/org/apache/wiki/ui/WikiJSPFilter.java b/jspwiki-main/src/main/java/org/apache/wiki/ui/WikiJSPFilter.java index 03e16cd..3924000 100644 --- a/jspwiki-main/src/main/java/org/apache/wiki/ui/WikiJSPFilter.java +++ b/jspwiki-main/src/main/java/org/apache/wiki/ui/WikiJSPFilter.java @@ -23,7 +23,7 @@ import org.apache.log4j.Logger; import org.apache.log4j.NDC; import org.apache.wiki.WatchDog; import org.apache.wiki.WikiContext; -import org.apache.wiki.WikiEngine; +import org.apache.wiki.api.core.Engine; import org.apache.wiki.event.WikiEventManager; import org.apache.wiki.event.WikiPageEvent; import org.apache.wiki.url.DefaultURLConstructor; @@ -77,14 +77,16 @@ public class WikiJSPFilter extends WikiServletFilter { private boolean useEncoding; /** {@inheritDoc} */ - @Override public void init( final FilterConfig config ) throws ServletException { + @Override + public void init( final FilterConfig config ) throws ServletException { super.init( config ); - m_wiki_encoding = m_engine.getWikiProperties().getProperty(WikiEngine.PROP_ENCODING); + m_wiki_encoding = m_engine.getWikiProperties().getProperty( Engine.PROP_ENCODING ); - useEncoding = !( Boolean.valueOf( m_engine.getWikiProperties().getProperty( WikiEngine.PROP_NO_FILTER_ENCODING, "false" ).trim() ).booleanValue() ); + useEncoding = !Boolean.parseBoolean( m_engine.getWikiProperties().getProperty( Engine.PROP_NO_FILTER_ENCODING, "false" ).trim() ); } - @Override public void doFilter( final ServletRequest request, final ServletResponse response, final FilterChain chain ) throws ServletException, IOException { + @Override + public void doFilter( final ServletRequest request, final ServletResponse response, final FilterChain chain ) throws ServletException, IOException { final WatchDog w = WatchDog.getCurrentWatchDog( m_engine ); try { NDC.push( m_engine.getApplicationName()+":"+((HttpServletRequest)request).getRequestURI() ); @@ -226,18 +228,19 @@ public class WikiJSPFilter extends WikiServletFilter { m_response = r; } - /** - * Returns a writer for output; this wraps the internal buffer into a PrintWriter. - */ - @Override public PrintWriter getWriter() { + /** Returns a writer for output; this wraps the internal buffer into a PrintWriter. */ + @Override + public PrintWriter getWriter() { return m_writer; } - @Override public ServletOutputStream getOutputStream() { + @Override + public ServletOutputStream getOutputStream() { return m_servletOut; } - @Override public void flushBuffer() throws IOException { + @Override + public void flushBuffer() throws IOException { m_writer.flush(); super.flushBuffer(); } @@ -272,7 +275,8 @@ public class WikiJSPFilter extends WikiServletFilter { } /** Returns whatever was written so far into the Writer. */ - @Override public String toString() { + @Override + public String toString() { try { flushBuffer(); } catch( final IOException e ) { @@ -298,7 +302,7 @@ public class WikiJSPFilter extends WikiServletFilter { /** * Fires a WikiPageEvent of the provided type and page name - * to all registered listeners of the current WikiEngine. + * to all registered listeners of the current Engine. * * @see org.apache.wiki.event.WikiPageEvent * @param type the event type to be fired diff --git a/jspwiki-main/src/main/java/org/apache/wiki/ui/WikiRequestWrapper.java b/jspwiki-main/src/main/java/org/apache/wiki/ui/WikiRequestWrapper.java index a0a9f48..5abfd26 100644 --- a/jspwiki-main/src/main/java/org/apache/wiki/ui/WikiRequestWrapper.java +++ b/jspwiki-main/src/main/java/org/apache/wiki/ui/WikiRequestWrapper.java @@ -18,8 +18,8 @@ */ package org.apache.wiki.ui; -import org.apache.wiki.WikiEngine; import org.apache.wiki.WikiSession; +import org.apache.wiki.api.core.Engine; import org.apache.wiki.auth.SessionMonitor; import org.apache.wiki.auth.authorize.Role; @@ -43,7 +43,7 @@ public class WikiRequestWrapper extends HttpServletRequestWrapper { * @param engine the wiki engine * @param request the request to wrap */ - public WikiRequestWrapper( final WikiEngine engine, final HttpServletRequest request ) { + public WikiRequestWrapper( final Engine engine, final HttpServletRequest request ) { super( request ); // Get and stash a reference to the current WikiSession @@ -56,7 +56,7 @@ public class WikiRequestWrapper extends HttpServletRequestWrapper { * WikiSession is an authenticated session (that is, {@link WikiSession#isAuthenticated()} returns <code>true</code>, * this method returns the name of the principal returned by {@link WikiSession#getLoginPrincipal()}. */ - public String getRemoteUser() { + @Override public String getRemoteUser() { if( super.getRemoteUser() != null ) { return super.getRemoteUser(); } @@ -73,7 +73,7 @@ public class WikiRequestWrapper extends HttpServletRequestWrapper { * WikiSession is an authenticated session (that is, {@link WikiSession#isAuthenticated()} returns * <code>true</code>, this method returns the value of {@link WikiSession#getLoginPrincipal()}. */ - public Principal getUserPrincipal() { + @Override public Principal getUserPrincipal() { if( super.getUserPrincipal() != null ) { return super.getUserPrincipal(); } @@ -90,7 +90,7 @@ public class WikiRequestWrapper extends HttpServletRequestWrapper { * this method iterates through the built-in Role objects (<em>e.g.</em>, ANONYMOUS, ASSERTED, AUTHENTICATED) returned by * {@link WikiSession#getRoles()} and checks to see if any of these principals' names match the supplied role. */ - public boolean isUserInRole( final String role ) { + @Override public boolean isUserInRole( final String role ) { final boolean hasContainerRole = super.isUserInRole(role); if( hasContainerRole ) { return true; diff --git a/jspwiki-main/src/main/java/org/apache/wiki/ui/WikiServletFilter.java b/jspwiki-main/src/main/java/org/apache/wiki/ui/WikiServletFilter.java index 33c9454..39ff442 100644 --- a/jspwiki-main/src/main/java/org/apache/wiki/ui/WikiServletFilter.java +++ b/jspwiki-main/src/main/java/org/apache/wiki/ui/WikiServletFilter.java @@ -23,6 +23,8 @@ import org.apache.log4j.NDC; import org.apache.wiki.WikiContext; import org.apache.wiki.WikiEngine; import org.apache.wiki.WikiSession; +import org.apache.wiki.api.core.Engine; +import org.apache.wiki.auth.AuthenticationManager; import org.apache.wiki.auth.SessionMonitor; import org.apache.wiki.auth.WikiSecurityException; @@ -39,7 +41,7 @@ import java.io.IOException; import java.io.PrintWriter; /** - * Filter that verifies that the {@link org.apache.wiki.WikiEngine} is running, and sets the authentication status for the user's + * Filter that verifies that the {@link org.apache.wiki.api.core.Engine} is running, and sets the authentication status for the user's * WikiSession. Each HTTP request processed by this filter is wrapped by a {@link WikiRequestWrapper}. The wrapper's primary responsibility * is to return the correct <code>userPrincipal</code> and <code>remoteUser</code> for authenticated JSPWiki users (whether authenticated * by container or by JSPWiki's custom system). The wrapper's other responsibility is to incorporate JSPWiki built-in roles @@ -50,7 +52,7 @@ import java.io.PrintWriter; public class WikiServletFilter implements Filter { private static final Logger log = Logger.getLogger( WikiServletFilter.class ); - protected WikiEngine m_engine = null; + protected Engine m_engine = null; /** * Creates a Wiki Servlet Filter. @@ -64,14 +66,14 @@ public class WikiServletFilter implements Filter { * Initializes the WikiServletFilter. * * @param config The FilterConfig. - * @throws ServletException If a WikiEngine cannot be started. + * @throws ServletException If a Engine cannot be started. */ - public void init( final FilterConfig config ) throws ServletException { + @Override public void init( final FilterConfig config ) throws ServletException { final ServletContext context = config.getServletContext(); // TODO REMOVEME when resolving JSPWIKI-129 if( System.getSecurityManager() != null ) { - context.log( "== JSPWIKI WARNING == : This container is running with a security manager. JSPWiki does not yet really support that right now. See issue JSPWIKI-129 for details and information on how to proceed." ); + context.log( "== JSPWIKI WARNING == : This container is running with a security manager. JSPWiki does not yet really support that right now. See issue JSPWIKI-129 for details and information on how to proceed." ); } m_engine = WikiEngine.getInstance( context, null ); @@ -80,11 +82,11 @@ public class WikiServletFilter implements Filter { /** * Destroys the WikiServletFilter. */ - public void destroy() { + @Override public void destroy() { } /** - * Checks that the WikiEngine is running ok, wraps the current HTTP request, and sets the correct authentication state for the users's + * Checks that the Engine is running ok, wraps the current HTTP request, and sets the correct authentication state for the users's * WikiSession. First, the method {@link org.apache.wiki.auth.AuthenticationManager#login(HttpServletRequest)} * executes, which sets the authentication state. Then, the request is wrapped with a * {@link WikiRequestWrapper}. @@ -94,7 +96,7 @@ public class WikiServletFilter implements Filter { * @throws ServletException if {@link org.apache.wiki.auth.AuthenticationManager#login(HttpServletRequest)} fails for any reason * @throws IOException If writing to the servlet response fails. */ - public void doFilter( final ServletRequest request, final ServletResponse response, final FilterChain chain ) throws IOException, ServletException { + @Override public void doFilter( final ServletRequest request, final ServletResponse response, final FilterChain chain ) throws IOException, ServletException { // Sanity check; it might be true in some conditions, but we need to know where. if( chain == null ) { throw new ServletException("FilterChain is null, even if it should not be. Please report this to the jspwiki development team."); @@ -125,7 +127,7 @@ public class WikiServletFilter implements Filter { if ( !isWrapped( request ) ) { // Prepare the WikiSession try { - m_engine.getAuthenticationManager().login( httpRequest ); + m_engine.getManager( AuthenticationManager.class ).login( httpRequest ); final WikiSession wikiSession = SessionMonitor.getInstance( m_engine ).find( httpRequest.getSession() ); httpRequest = new WikiRequestWrapper( m_engine, httpRequest ); if ( log.isDebugEnabled() ) { @@ -137,7 +139,7 @@ public class WikiServletFilter implements Filter { } try { - NDC.push( m_engine.getApplicationName()+":"+httpRequest.getRequestURL() ); + NDC.push( m_engine.getApplicationName() + ":" + httpRequest.getRequestURL() ); chain.doFilter( httpRequest, response ); } finally { NDC.pop(); diff --git a/jspwiki-main/src/main/java/org/apache/wiki/ui/admin/DefaultAdminBeanManager.java b/jspwiki-main/src/main/java/org/apache/wiki/ui/admin/DefaultAdminBeanManager.java index ff94ccc..8fc3500 100644 --- a/jspwiki-main/src/main/java/org/apache/wiki/ui/admin/DefaultAdminBeanManager.java +++ b/jspwiki-main/src/main/java/org/apache/wiki/ui/admin/DefaultAdminBeanManager.java @@ -18,35 +18,36 @@ */ package org.apache.wiki.ui.admin; -import java.lang.management.ManagementFactory; -import java.util.ArrayList; -import java.util.Collection; -import java.util.Iterator; -import java.util.List; - -import javax.management.DynamicMBean; -import javax.management.InstanceAlreadyExistsException; -import javax.management.InstanceNotFoundException; -import javax.management.MBeanRegistrationException; -import javax.management.MBeanServer; -import javax.management.MalformedObjectNameException; -import javax.management.NotCompliantMBeanException; -import javax.management.ObjectName; - import org.apache.log4j.Logger; import org.apache.wiki.Release; -import org.apache.wiki.WikiEngine; +import org.apache.wiki.api.core.Engine; import org.apache.wiki.api.engine.AdminBeanManager; +import org.apache.wiki.api.engine.FilterManager; +import org.apache.wiki.api.engine.PluginManager; import org.apache.wiki.event.WikiEngineEvent; import org.apache.wiki.event.WikiEvent; import org.apache.wiki.event.WikiEventListener; import org.apache.wiki.modules.WikiModuleInfo; +import org.apache.wiki.ui.EditorManager; import org.apache.wiki.ui.admin.beans.CoreBean; import org.apache.wiki.ui.admin.beans.FilterBean; import org.apache.wiki.ui.admin.beans.PluginBean; import org.apache.wiki.ui.admin.beans.SearchManagerBean; import org.apache.wiki.ui.admin.beans.UserBean; +import javax.management.DynamicMBean; +import javax.management.InstanceAlreadyExistsException; +import javax.management.InstanceNotFoundException; +import javax.management.MBeanRegistrationException; +import javax.management.MBeanServer; +import javax.management.MalformedObjectNameException; +import javax.management.NotCompliantMBeanException; +import javax.management.ObjectName; +import java.lang.management.ManagementFactory; +import java.util.ArrayList; +import java.util.Collection; +import java.util.List; + /** * Provides a manager class for all AdminBeans within JSPWiki. This class also manages registration for any @@ -56,14 +57,13 @@ import org.apache.wiki.ui.admin.beans.UserBean; */ public class DefaultAdminBeanManager implements WikiEventListener, AdminBeanManager { - private WikiEngine m_engine; + private Engine m_engine; private ArrayList< AdminBean > m_allBeans; + private MBeanServer m_mbeanServer; - private MBeanServer m_mbeanServer = null; + private static final Logger log = Logger.getLogger(DefaultAdminBeanManager.class); - private static Logger log = Logger.getLogger(DefaultAdminBeanManager.class); - - public DefaultAdminBeanManager( WikiEngine engine ) { + public DefaultAdminBeanManager( final Engine engine ) { log.info("Using JDK 1.5 Platform MBeanServer"); m_mbeanServer = MBeanServerFactory15.getServer(); @@ -86,7 +86,7 @@ public class DefaultAdminBeanManager implements WikiEventListener, AdminBeanMana reload(); } - private String getJMXTitleString( int title ) { + private String getJMXTitleString( final int title ) { switch( title ) { case AdminBean.CORE: return "Core"; @@ -102,15 +102,14 @@ public class DefaultAdminBeanManager implements WikiEventListener, AdminBeanMana /** - * Register an AdminBean. If the AdminBean is also a JMX MBean, it also gets registered to the MBeanServer - * we've found. + * Register an AdminBean. If the AdminBean is also a JMX MBean, it also gets registered to the MBeanServer we've found. * * @param ab AdminBean to register. */ - private void registerAdminBean( AdminBean ab ) { + private void registerAdminBean( final AdminBean ab ) { try { if( ab instanceof DynamicMBean && m_mbeanServer != null ) { - ObjectName name = getObjectName( ab ); + final ObjectName name = getObjectName( ab ); if( !m_mbeanServer.isRegistered( name ) ) { m_mbeanServer.registerMBean( ab, name ); @@ -120,25 +119,23 @@ public class DefaultAdminBeanManager implements WikiEventListener, AdminBeanMana m_allBeans.add( ab ); log.info("Registered new admin bean "+ab.getTitle()); - } catch( InstanceAlreadyExistsException e ) { + } catch( final InstanceAlreadyExistsException e ) { log.error("Admin bean already registered to JMX",e); - } catch( MBeanRegistrationException e ) { + } catch( final MBeanRegistrationException e ) { log.error("Admin bean cannot be registered to JMX",e); - } catch( NotCompliantMBeanException e ) { + } catch( final NotCompliantMBeanException e ) { log.error("Your admin bean is not very good",e); - } catch( MalformedObjectNameException e ) { + } catch( final MalformedObjectNameException e ) { log.error("Your admin bean name is not very good",e); - } catch( NullPointerException e ) { + } catch( final NullPointerException e ) { log.error("Evil NPE occurred",e); } } - private ObjectName getObjectName(AdminBean ab) throws MalformedObjectNameException { - String component = getJMXTitleString( ab.getType() ); - String title = ab.getTitle(); - - ObjectName name = new ObjectName( Release.APPNAME + ":component="+component+",name="+title ); - return name; + private ObjectName getObjectName( final AdminBean ab ) throws MalformedObjectNameException { + final String component = getJMXTitleString( ab.getType() ); + final String title = ab.getTitle(); + return new ObjectName( Release.APPNAME + ":component="+component+",name="+title ); } /** @@ -147,21 +144,16 @@ public class DefaultAdminBeanManager implements WikiEventListener, AdminBeanMana * * @param c Collection of WikiModuleInfo instances */ - private void registerBeans( Collection< WikiModuleInfo > c ) { - for( Iterator< WikiModuleInfo > i = c.iterator(); i.hasNext(); ) { - String abname = i.next().getAdminBeanClass(); - + private void registerBeans( final Collection< WikiModuleInfo > c ) { + for( final WikiModuleInfo wikiModuleInfo : c ) { + final String abname = wikiModuleInfo.getAdminBeanClass(); try { if( abname != null && abname.length() > 0 ) { - Class< ? > abclass = Class.forName( abname ); - AdminBean ab = ( AdminBean ) abclass.newInstance(); + final Class< ? > abclass = Class.forName( abname ); + final AdminBean ab = ( AdminBean )abclass.newInstance(); registerAdminBean( ab ); } - } catch (ClassNotFoundException e) { - log.error( e.getMessage(), e ); - } catch (InstantiationException e) { - log.error( e.getMessage(), e ); - } catch (IllegalAccessException e) { + } catch( final ClassNotFoundException | InstantiationException | IllegalAccessException e ) { log.error( e.getMessage(), e ); } } @@ -170,7 +162,7 @@ public class DefaultAdminBeanManager implements WikiEventListener, AdminBeanMana // FIXME: Should unload the beans first. private void reload() { - m_allBeans = new ArrayList<AdminBean>(); + m_allBeans = new ArrayList<>(); try { registerAdminBean( new CoreBean( m_engine ) ); @@ -178,12 +170,12 @@ public class DefaultAdminBeanManager implements WikiEventListener, AdminBeanMana registerAdminBean( new SearchManagerBean( m_engine ) ); registerAdminBean( new PluginBean( m_engine ) ); registerAdminBean( new FilterBean( m_engine ) ); - } catch( NotCompliantMBeanException e ) { + } catch( final NotCompliantMBeanException e ) { log.error( e.getMessage(), e ); } - registerBeans( m_engine.getEditorManager().modules() ); - registerBeans( m_engine.getPluginManager().modules() ); - registerBeans( m_engine.getFilterManager().modules() ); + registerBeans( m_engine.getManager( EditorManager.class ).modules() ); + registerBeans( m_engine.getManager( PluginManager.class ).modules() ); + registerBeans( m_engine.getManager( FilterManager.class ).modules() ); } /* (non-Javadoc) @@ -202,12 +194,10 @@ public class DefaultAdminBeanManager implements WikiEventListener, AdminBeanMana * @see org.apache.wiki.ui.admin.AdminBeanManager#findBean(java.lang.String) */ @Override - public AdminBean findBean( String id ) { - for( Iterator< AdminBean > i = m_allBeans.iterator(); i.hasNext(); ) { - AdminBean ab = i.next(); - - if( ab.getId().equals(id) ) { - return ab; + public AdminBean findBean( final String id ) { + for( final AdminBean ab : m_allBeans ) { + if( ab.getId().equals( id ) ) { + return ab; } } @@ -234,7 +224,7 @@ public class DefaultAdminBeanManager implements WikiEventListener, AdminBeanMana * @return A type value. */ @Override - public int getTypeFromString( String type ) { + public int getTypeFromString( final String type ) { if( "core".equals( type ) ) { return AdminBean.CORE; } else if( "editors".equals( type ) ) { @@ -248,23 +238,22 @@ public class DefaultAdminBeanManager implements WikiEventListener, AdminBeanMana * @see org.apache.wiki.ui.admin.AdminBeanManager#actionPerformed(org.apache.wiki.event.WikiEvent) */ @Override - public void actionPerformed(WikiEvent event) { + public void actionPerformed( final WikiEvent event ) { if( event instanceof WikiEngineEvent ) { - if( ( ( WikiEngineEvent )event ).getType() == WikiEngineEvent.SHUTDOWN ) { - for( Iterator< AdminBean > i = m_allBeans.iterator(); i.hasNext(); ) { + if( event.getType() == WikiEngineEvent.SHUTDOWN ) { + for( final AdminBean m_allBean : m_allBeans ) { try { - AdminBean ab = i.next(); - ObjectName on = getObjectName( ab ); + final ObjectName on = getObjectName( m_allBean ); if( m_mbeanServer.isRegistered( on ) ) { - m_mbeanServer.unregisterMBean(on); - log.info("Unregistered AdminBean "+ab.getTitle()); + m_mbeanServer.unregisterMBean( on ); + log.info( "Unregistered AdminBean " + m_allBean.getTitle() ); } - } catch( MalformedObjectNameException e ) { - log.error("Malformed object name when unregistering",e); - } catch (InstanceNotFoundException e) { - log.error("Object was registered; yet claims that it's not there",e); - } catch (MBeanRegistrationException e) { - log.error("Registration exception while unregistering",e); + } catch( final MalformedObjectNameException e ) { + log.error( "Malformed object name when unregistering", e ); + } catch( final InstanceNotFoundException e ) { + log.error( "Object was registered; yet claims that it's not there", e ); + } catch( final MBeanRegistrationException e ) { + log.error( "Registration exception while unregistering", e ); } } } diff --git a/jspwiki-main/src/main/java/org/apache/wiki/ui/admin/SimpleAdminBean.java b/jspwiki-main/src/main/java/org/apache/wiki/ui/admin/SimpleAdminBean.java index b1e0ed5..95faf07 100644 --- a/jspwiki-main/src/main/java/org/apache/wiki/ui/admin/SimpleAdminBean.java +++ b/jspwiki-main/src/main/java/org/apache/wiki/ui/admin/SimpleAdminBean.java @@ -35,12 +35,9 @@ import javax.management.NotCompliantMBeanException; * * @since 2.5.52 */ -public abstract class SimpleAdminBean extends SimpleMBean implements AdminBean -{ - /** - * Provides access to a WikiEngine instance to which this AdminBean - * belongs to. - */ +public abstract class SimpleAdminBean extends SimpleMBean implements AdminBean { + + /** Provides access to a Engine instance to which this AdminBean belongs to. */ protected Engine m_engine; /** @@ -48,15 +45,15 @@ public abstract class SimpleAdminBean extends SimpleMBean implements AdminBean * * @throws NotCompliantMBeanException */ - protected SimpleAdminBean() throws NotCompliantMBeanException - { + protected SimpleAdminBean() throws NotCompliantMBeanException { super(); } /** - * Initialize the AdminBean by setting up a WikiEngine instance internally. + * Initialize the AdminBean by setting up a Engine instance internally. */ - @Override public void initialize( final Engine engine ) + @Override + public void initialize( final Engine engine ) { m_engine = engine; } @@ -67,38 +64,31 @@ public abstract class SimpleAdminBean extends SimpleMBean implements AdminBean * attribute is read-only, a readonly input widget is created. * The value is determined by the toString() method of the attribute. */ - @Override public String doGet( final WikiContext context) - { + @Override + public String doGet( final WikiContext context ) { final MBeanInfo info = getMBeanInfo(); final MBeanAttributeInfo[] attributes = info.getAttributes(); final StringBuilder sb = new StringBuilder(); - - for( int i = 0; i < attributes.length; i++ ) - { - sb.append("<div class='block'>\n"); - - sb.append( "<label>"+StringUtils.capitalize( attributes[i].getName() )+"</label>\n"); - - try - { - final Object value = getAttribute( attributes[i].getName() ); - if( attributes[i].isWritable() ) - { - sb.append( "<input type='text' name='question' size='30' value='"+value+"' />\n" ); - } - else - { - sb.append( "<input type='text' class='readonly' readonly='true' size='30' value='"+value+"' />\n" ); + + for( int i = 0; i < attributes.length; i++ ) { + sb.append( "<div class='block'>\n" ); + + sb.append( "<label>" + StringUtils.capitalize( attributes[ i ].getName() ) + "</label>\n" ); + + try { + final Object value = getAttribute( attributes[ i ].getName() ); + if( attributes[ i ].isWritable() ) { + sb.append( "<input type='text' name='question' size='30' value='" + value + "' />\n" ); + } else { + sb.append( "<input type='text' class='readonly' readonly='true' size='30' value='" + value + "' />\n" ); } - } - catch( final Exception e ) - { - sb.append("Exception: "+e.getMessage()); + } catch( final Exception e ) { + sb.append( "Exception: " + e.getMessage() ); } - sb.append( "<div class='description'>"+attributes[i].getDescription()+"</div>\n"); - - sb.append("</div>\n"); + sb.append( "<div class='description'>" + attributes[ i ].getDescription() + "</div>\n" ); + + sb.append( "</div>\n" ); } return sb.toString(); } @@ -106,18 +96,18 @@ public abstract class SimpleAdminBean extends SimpleMBean implements AdminBean /** * Not implemented yet. */ - @Override public String doPost( final WikiContext context) - { - // TODO Auto-generated method stub + @Override + public String doPost( final WikiContext context) { return null; } /** - * By default, this method returns the class name of the bean. This is - * suitable, if you have a singleton bean. + * By default, this method returns the class name of the bean. This is suitable, if you have a singleton bean. */ - @Override public String getId() + @Override + public String getId() { return getClass().getName(); } + } diff --git a/jspwiki-main/src/main/java/org/apache/wiki/ui/admin/beans/ModuleBean.java b/jspwiki-main/src/main/java/org/apache/wiki/ui/admin/beans/ModuleBean.java index aa84a5f..228e50a 100644 --- a/jspwiki-main/src/main/java/org/apache/wiki/ui/admin/beans/ModuleBean.java +++ b/jspwiki-main/src/main/java/org/apache/wiki/ui/admin/beans/ModuleBean.java @@ -33,8 +33,6 @@ import java.util.Collection; public abstract class ModuleBean extends SimpleAdminBean { - //protected WikiEngine m_engine; //inherited protected field from SimpleAdminBean - private static final String VER_WARNING = "<span class='warning'>This module is not compatible with this version of JSPWiki.</span>"; public ModuleBean( final Engine engine ) throws NotCompliantMBeanException { @@ -44,21 +42,24 @@ public abstract class ModuleBean extends SimpleAdminBean { /** * {@inheritDoc} */ - @Override public String[] getAttributeNames() { + @Override + public String[] getAttributeNames() { return new String[0]; } /** * {@inheritDoc} */ - @Override public String[] getMethodNames() { + @Override + public String[] getMethodNames() { return new String[0]; } /** * {@inheritDoc} */ - @Override public String doGet( final WikiContext context ) { + @Override + public String doGet( final WikiContext context ) { final Collection< WikiModuleInfo > filters = modules(); final Element root = title(); final Element tb = containerForModuleDetail( root );
