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/02/27 15:10:35 UTC
[jspwiki] 10/20: JSPWIKI-120: remove use of WikiEngine throughout
the code as much as possible and use Engine instead (5)
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 <ju...@apache.org>
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 );