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/03/24 22:10:30 UTC
[jspwiki] 14/15: extend / implement Initializable
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 72950542993534925e0984508ad3e73e51a1138c
Author: juanpablo <ju...@apache.org>
AuthorDate: Tue Mar 24 23:02:49 2020 +0100
extend / implement Initializable
---
.../org/apache/wiki/auth/AuthenticationManager.java | 16 ++--------------
.../org/apache/wiki/auth/AuthorizationManager.java | 16 ++--------------
.../apache/wiki/auth/DefaultAuthorizationManager.java | 6 +++++-
.../main/java/org/apache/wiki/auth/UserManager.java | 13 ++-----------
.../main/java/org/apache/wiki/auth/acl/AclManager.java | 14 ++------------
.../org/apache/wiki/auth/authorize/GroupManager.java | 3 ++-
.../apache/wiki/render/DefaultRenderingManager.java | 3 +++
.../java/org/apache/wiki/render/RenderingManager.java | 18 ++----------------
.../java/org/apache/wiki/rss/DefaultRSSGenerator.java | 6 +++++-
.../main/java/org/apache/wiki/rss/RSSGenerator.java | 13 ++-----------
.../java/org/apache/wiki/ui/DefaultEditorManager.java | 6 +++++-
.../main/java/org/apache/wiki/ui/EditorManager.java | 13 ++-----------
.../main/java/org/apache/wiki/url/URLConstructor.java | 13 ++-----------
.../apache/wiki/workflow/DefaultWorkflowManager.java | 6 ++++++
.../java/org/apache/wiki/workflow/WorkflowManager.java | 18 ++----------------
15 files changed, 44 insertions(+), 120 deletions(-)
diff --git a/jspwiki-main/src/main/java/org/apache/wiki/auth/AuthenticationManager.java b/jspwiki-main/src/main/java/org/apache/wiki/auth/AuthenticationManager.java
index 143c180..72a93f9 100644
--- a/jspwiki-main/src/main/java/org/apache/wiki/auth/AuthenticationManager.java
+++ b/jspwiki-main/src/main/java/org/apache/wiki/auth/AuthenticationManager.java
@@ -18,9 +18,8 @@
*/
package org.apache.wiki.auth;
-import org.apache.wiki.api.core.Engine;
import org.apache.wiki.api.core.Session;
-import org.apache.wiki.api.exceptions.WikiException;
+import org.apache.wiki.api.engine.Initializable;
import org.apache.wiki.auth.authorize.Role;
import org.apache.wiki.event.WikiEventListener;
import org.apache.wiki.event.WikiEventManager;
@@ -32,7 +31,6 @@ import javax.security.auth.spi.LoginModule;
import javax.servlet.http.HttpServletRequest;
import java.security.Principal;
import java.util.Map;
-import java.util.Properties;
import java.util.Set;
@@ -47,7 +45,7 @@ import java.util.Set;
*
* @since 2.3
*/
-public interface AuthenticationManager {
+public interface AuthenticationManager extends Initializable {
/** If this jspwiki.properties property is <code>true</code>, logs the IP address of the editor on saving. */
String PROP_STOREIPADDRESS = "jspwiki.storeIPAddress";
@@ -68,16 +66,6 @@ public interface AuthenticationManager {
String PROP_LOGIN_MODULE = "jspwiki.loginModule.class";
/**
- * Creates an AuthenticationManager instance for the given Engine and
- * the specified set of properties. All initialization for the modules is
- * done here.
- * @param engine the wiki engine
- * @param props the properties used to initialize the wiki engine
- * @throws WikiException if the AuthenticationManager cannot be initialized
- */
- void initialize( Engine engine, Properties props ) throws WikiException;
-
- /**
* Returns true if this Engine uses container-managed authentication. This method is used primarily for cosmetic purposes in the
* JSP tier, and performs no meaningful security function per se. Delegates to
* {@link org.apache.wiki.auth.authorize.WebContainerAuthorizer#isContainerAuthorized()},
diff --git a/jspwiki-main/src/main/java/org/apache/wiki/auth/AuthorizationManager.java b/jspwiki-main/src/main/java/org/apache/wiki/auth/AuthorizationManager.java
index 328d266..74e11de 100644
--- a/jspwiki-main/src/main/java/org/apache/wiki/auth/AuthorizationManager.java
+++ b/jspwiki-main/src/main/java/org/apache/wiki/auth/AuthorizationManager.java
@@ -19,9 +19,8 @@
package org.apache.wiki.auth;
import org.apache.wiki.api.core.Context;
-import org.apache.wiki.api.core.Engine;
import org.apache.wiki.api.core.Session;
-import org.apache.wiki.api.exceptions.WikiException;
+import org.apache.wiki.api.engine.Initializable;
import org.apache.wiki.auth.authorize.Role;
import org.apache.wiki.event.WikiEventListener;
import org.apache.wiki.event.WikiEventManager;
@@ -32,7 +31,6 @@ import java.io.IOException;
import java.security.AccessController;
import java.security.Permission;
import java.security.Principal;
-import java.util.Properties;
/**
@@ -59,7 +57,7 @@ import java.util.Properties;
* @since 2.3
* @see AuthenticationManager
*/
-public interface AuthorizationManager {
+public interface AuthorizationManager extends Initializable {
/** The default external Authorizer is the {@link org.apache.wiki.auth.authorize.WebContainerAuthorizer} */
String DEFAULT_AUTHORIZER = "org.apache.wiki.auth.authorize.WebContainerAuthorizer";
@@ -198,16 +196,6 @@ public interface AuthorizationManager {
boolean hasAccess( final Context context, final HttpServletResponse response, final boolean redirect ) throws IOException;
/**
- * Initializes AuthorizationManager with an engine and set of properties. Expects to find property 'jspwiki.authorizer' with a valid
- * Authorizer implementation name to take care of role lookup operations.
- *
- * @param engine the wiki engine
- * @param properties the set of properties used to initialize the wiki engine
- * @throws WikiException if the AuthorizationManager cannot be initialized
- */
- void initialize( final Engine engine, final Properties properties ) throws WikiException;
-
- /**
* Checks to see if the local security policy allows a particular static Permission.
* Do not use this method for normal permission checks; use {@link #checkPermission(Session, Permission)} instead.
*
diff --git a/jspwiki-main/src/main/java/org/apache/wiki/auth/DefaultAuthorizationManager.java b/jspwiki-main/src/main/java/org/apache/wiki/auth/DefaultAuthorizationManager.java
index fef2949..3e5de32 100644
--- a/jspwiki-main/src/main/java/org/apache/wiki/auth/DefaultAuthorizationManager.java
+++ b/jspwiki-main/src/main/java/org/apache/wiki/auth/DefaultAuthorizationManager.java
@@ -225,7 +225,11 @@ public class DefaultAuthorizationManager implements AuthorizationManager {
return allowed;
}
- /** {@inheritDoc} */
+ /**
+ * {@inheritDoc}
+ *
+ * Expects to find property 'jspwiki.authorizer' with a valid Authorizer implementation name to take care of role lookup operations.
+ */
@Override
public void initialize( final Engine engine, final Properties properties ) throws WikiException {
m_engine = engine;
diff --git a/jspwiki-main/src/main/java/org/apache/wiki/auth/UserManager.java b/jspwiki-main/src/main/java/org/apache/wiki/auth/UserManager.java
index 266cbe4..953f811 100644
--- a/jspwiki-main/src/main/java/org/apache/wiki/auth/UserManager.java
+++ b/jspwiki-main/src/main/java/org/apache/wiki/auth/UserManager.java
@@ -19,8 +19,8 @@
package org.apache.wiki.auth;
import org.apache.wiki.api.core.Context;
-import org.apache.wiki.api.core.Engine;
import org.apache.wiki.api.core.Session;
+import org.apache.wiki.api.engine.Initializable;
import org.apache.wiki.api.exceptions.WikiException;
import org.apache.wiki.auth.user.DuplicateUserException;
import org.apache.wiki.auth.user.UserDatabase;
@@ -30,7 +30,6 @@ import org.apache.wiki.event.WikiEventManager;
import org.apache.wiki.event.WikiSecurityEvent;
import java.security.Principal;
-import java.util.Properties;
/**
@@ -38,7 +37,7 @@ import java.util.Properties;
*
* @since 2.3
*/
-public interface UserManager {
+public interface UserManager extends Initializable {
/** Message key for the "save profile" message. */
String PROP_DATABASE = "jspwiki.userdatabase";
@@ -46,14 +45,6 @@ public interface UserManager {
String JSON_USERS = "users";
/**
- * Initializes the engine for its nefarious purposes.
- *
- * @param engine the current wiki engine
- * @param props the wiki engine initialization properties
- */
- void initialize( final Engine engine, final Properties props );
-
- /**
* Returns the UserDatabase employed by this Engine. The UserDatabase is lazily initialized by this method, if it does
* not exist yet. If the initialization fails, this method will use the inner class DummyUserDatabase as a default (which
* is enough to get JSPWiki running).
diff --git a/jspwiki-main/src/main/java/org/apache/wiki/auth/acl/AclManager.java b/jspwiki-main/src/main/java/org/apache/wiki/auth/acl/AclManager.java
index 357db2e..d6f2825 100644
--- a/jspwiki-main/src/main/java/org/apache/wiki/auth/acl/AclManager.java
+++ b/jspwiki-main/src/main/java/org/apache/wiki/auth/acl/AclManager.java
@@ -19,26 +19,16 @@
package org.apache.wiki.auth.acl;
import org.apache.wiki.api.core.Acl;
-import org.apache.wiki.api.core.Engine;
import org.apache.wiki.api.core.Page;
+import org.apache.wiki.api.engine.Initializable;
import org.apache.wiki.auth.WikiSecurityException;
-import java.util.Properties;
-
/**
* Specifies how to parse and return ACLs from wiki pages.
*
* @since 2.3
*/
-public interface AclManager {
-
- /**
- * Initializes the AclManager with a supplied wiki engine and properties.
- *
- * @param engine the wiki engine
- * @param props the initialization properties
- */
- void initialize( Engine engine, Properties props );
+public interface AclManager extends Initializable {
/**
* A helper method for parsing textual AccessControlLists. The line is in form
diff --git a/jspwiki-main/src/main/java/org/apache/wiki/auth/authorize/GroupManager.java b/jspwiki-main/src/main/java/org/apache/wiki/auth/authorize/GroupManager.java
index 3deea3a..e2816eb 100644
--- a/jspwiki-main/src/main/java/org/apache/wiki/auth/authorize/GroupManager.java
+++ b/jspwiki-main/src/main/java/org/apache/wiki/auth/authorize/GroupManager.java
@@ -20,6 +20,7 @@ package org.apache.wiki.auth.authorize;
import org.apache.wiki.api.core.Context;
import org.apache.wiki.api.core.Session;
+import org.apache.wiki.api.engine.Initializable;
import org.apache.wiki.auth.Authorizer;
import org.apache.wiki.auth.NoSuchPrincipalException;
import org.apache.wiki.auth.WikiSecurityException;
@@ -41,7 +42,7 @@ import javax.servlet.http.HttpServletRequest;
* </p>
* @since 2.4.19
*/
-public interface GroupManager extends Authorizer, WikiEventListener {
+public interface GroupManager extends Initializable, Authorizer, WikiEventListener {
/** Key used for adding UI messages to a user's Session. */
String MESSAGES_KEY = "group";
diff --git a/jspwiki-main/src/main/java/org/apache/wiki/render/DefaultRenderingManager.java b/jspwiki-main/src/main/java/org/apache/wiki/render/DefaultRenderingManager.java
index 9578916..a140f3a 100644
--- a/jspwiki-main/src/main/java/org/apache/wiki/render/DefaultRenderingManager.java
+++ b/jspwiki-main/src/main/java/org/apache/wiki/render/DefaultRenderingManager.java
@@ -98,6 +98,9 @@ public class DefaultRenderingManager implements RenderingManager {
/**
* {@inheritDoc}
+ *
+ * Checks for cache size settings, initializes the document cache. Looks for alternative WikiRenderers, initializes one, or the
+ * default XHTMLRenderer, for use.
*/
@Override
public void initialize( final Engine engine, final Properties properties ) throws WikiException {
diff --git a/jspwiki-main/src/main/java/org/apache/wiki/render/RenderingManager.java b/jspwiki-main/src/main/java/org/apache/wiki/render/RenderingManager.java
index d049ea7..36ecc32 100644
--- a/jspwiki-main/src/main/java/org/apache/wiki/render/RenderingManager.java
+++ b/jspwiki-main/src/main/java/org/apache/wiki/render/RenderingManager.java
@@ -21,9 +21,8 @@ package org.apache.wiki.render;
import org.apache.log4j.Logger;
import org.apache.wiki.StringTransmutator;
import org.apache.wiki.api.core.Context;
-import org.apache.wiki.api.core.Engine;
import org.apache.wiki.api.core.Page;
-import org.apache.wiki.api.exceptions.WikiException;
+import org.apache.wiki.api.engine.Initializable;
import org.apache.wiki.api.providers.PageProvider;
import org.apache.wiki.event.WikiEventListener;
import org.apache.wiki.modules.InternalModule;
@@ -31,7 +30,6 @@ import org.apache.wiki.parser.MarkupParser;
import org.apache.wiki.parser.WikiDocument;
import java.io.IOException;
-import java.util.Properties;
/**
@@ -44,7 +42,7 @@ import java.util.Properties;
*
* @since 2.4
*/
-public interface RenderingManager extends WikiEventListener, InternalModule {
+public interface RenderingManager extends WikiEventListener, InternalModule, Initializable {
/** markup parser property. */
String PROP_PARSER = "jspwiki.renderingManager.markupParser";
@@ -61,18 +59,6 @@ public interface RenderingManager extends WikiEventListener, InternalModule {
String DOCUMENTCACHE_NAME = "jspwiki.renderingCache";
/**
- * Initializes the RenderingManager.
- * Checks for cache size settings, initializes the document cache.
- * Looks for alternative WikiRenderers, initializes one, or the default
- * XHTMLRenderer, for use.
- *
- * @param engine A Engine instance.
- * @param properties A list of properties to get parameters from.
- * @throws WikiException If the manager could not be initialized.
- */
- void initialize( Engine engine, Properties properties ) throws WikiException;
-
- /**
* Beautifies the title of the page by appending spaces in suitable places, if the user has so decreed in the properties when
* constructing this Engine. However, attachment names are only beautified by the name.
*
diff --git a/jspwiki-main/src/main/java/org/apache/wiki/rss/DefaultRSSGenerator.java b/jspwiki-main/src/main/java/org/apache/wiki/rss/DefaultRSSGenerator.java
index 12ee384..c0fa0cd 100644
--- a/jspwiki-main/src/main/java/org/apache/wiki/rss/DefaultRSSGenerator.java
+++ b/jspwiki-main/src/main/java/org/apache/wiki/rss/DefaultRSSGenerator.java
@@ -76,7 +76,11 @@ public class DefaultRSSGenerator implements RSSGenerator {
m_rssFile = TextUtil.getStringProperty( properties, DefaultRSSGenerator.PROP_RSSFILE, "rss.rdf" );
}
- /** {@inheritDoc} */
+ /**
+ * {@inheritDoc}
+ *
+ * Start the RSS generator & generator thread
+ */
@Override
public void initialize( final Engine engine, final Properties properties ) {
final File rssFile;
diff --git a/jspwiki-main/src/main/java/org/apache/wiki/rss/RSSGenerator.java b/jspwiki-main/src/main/java/org/apache/wiki/rss/RSSGenerator.java
index e44a7ff..a501a4b 100644
--- a/jspwiki-main/src/main/java/org/apache/wiki/rss/RSSGenerator.java
+++ b/jspwiki-main/src/main/java/org/apache/wiki/rss/RSSGenerator.java
@@ -19,12 +19,11 @@
package org.apache.wiki.rss;
import org.apache.wiki.api.core.Context;
-import org.apache.wiki.api.core.Engine;
import org.apache.wiki.api.core.Page;
+import org.apache.wiki.api.engine.Initializable;
import org.apache.wiki.util.TextUtil;
import java.util.List;
-import java.util.Properties;
/**
* The master class for generating different kinds of Feeds (including RSS1.0, 2.0 and Atom).
@@ -40,7 +39,7 @@ import java.util.Properties;
*
* @since 1.7.5.
*/
-public interface RSSGenerator {
+public interface RSSGenerator extends Initializable {
/** Parameter value to represent RSS 1.0 feeds. Value is <tt>{@value}</tt>. */
String RSS10 = "rss10";
@@ -105,14 +104,6 @@ public interface RSSGenerator {
String PROP_RSS_AUTHOREMAIL = "jspwiki.rss.author.email";
/**
- * Start the RSS generator & generator thread
- *
- * @param engine the engine
- * @param properties the properties
- */
- void initialize( Engine engine, Properties properties );
-
- /**
* Generates the RSS resource. You probably want to output this result into a file or something, or serve as output from a servlet.
*
* @return A RSS 1.0 feed in the "full" mode.
diff --git a/jspwiki-main/src/main/java/org/apache/wiki/ui/DefaultEditorManager.java b/jspwiki-main/src/main/java/org/apache/wiki/ui/DefaultEditorManager.java
index 77d42e3..9d74621 100644
--- a/jspwiki-main/src/main/java/org/apache/wiki/ui/DefaultEditorManager.java
+++ b/jspwiki-main/src/main/java/org/apache/wiki/ui/DefaultEditorManager.java
@@ -66,7 +66,11 @@ public class DefaultEditorManager extends BaseModuleManager implements EditorMan
super( engine );
}
- /** {@inheritDoc} */
+ /**
+ * {@inheritDoc}
+ *
+ * Initializes the EditorManager. It also registers any editors it can find.
+ */
@Override
public void initialize( final Engine engine, final Properties props ) {
registerEditors();
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 706ab3d..3c1236a 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
@@ -19,11 +19,10 @@
package org.apache.wiki.ui;
import org.apache.wiki.api.core.Context;
-import org.apache.wiki.api.core.Engine;
+import org.apache.wiki.api.engine.Initializable;
import org.apache.wiki.modules.ModuleManager;
import javax.servlet.jsp.PageContext;
-import java.util.Properties;
/**
@@ -44,7 +43,7 @@ import java.util.Properties;
*
* @since 2.4
*/
-public interface EditorManager extends ModuleManager {
+public interface EditorManager extends ModuleManager, Initializable {
/** The property name for setting the editor. Current value is "jspwiki.editor" - not used anymore: replaced by defaultpref.template.editor */
String PROP_EDITORTYPE = "jspwiki.editor";
@@ -65,14 +64,6 @@ public interface EditorManager extends ModuleManager {
String ATTR_EDITEDTEXT = REQ_EDITEDTEXT;
/**
- * Initializes the EditorManager. It also registers any editors it can find.
- *
- * @param engine engine performing the initialization.
- * @param props Properties for setup.
- */
- void initialize( Engine engine, Properties props );
-
- /**
* Returns an editor for the current context. The editor names are matched in a case insensitive manner. At the moment, the only
* place that this method looks in is the property file, but in the future this will also look at user preferences.
* <p>
diff --git a/jspwiki-main/src/main/java/org/apache/wiki/url/URLConstructor.java b/jspwiki-main/src/main/java/org/apache/wiki/url/URLConstructor.java
index e41f140..8853394 100644
--- a/jspwiki-main/src/main/java/org/apache/wiki/url/URLConstructor.java
+++ b/jspwiki-main/src/main/java/org/apache/wiki/url/URLConstructor.java
@@ -18,12 +18,11 @@
*/
package org.apache.wiki.url;
-import org.apache.wiki.api.core.Engine;
+import org.apache.wiki.api.engine.Initializable;
import javax.servlet.http.HttpServletRequest;
import java.io.IOException;
import java.nio.charset.Charset;
-import java.util.Properties;
/**
@@ -33,15 +32,7 @@ import java.util.Properties;
*
* @since 2.2
*/
-public interface URLConstructor {
- /**
- * Initializes. Note that the engine is not fully initialized at this
- * point, so don't do anything fancy here - use lazy init, if you have to.
- *
- * @param engine The Engine that this URLConstructor belongs to
- * @param properties Properties used to initialize
- */
- void initialize( Engine engine, Properties properties );
+public interface URLConstructor extends Initializable {
/**
* Constructs the URL with a bunch of parameters.
diff --git a/jspwiki-main/src/main/java/org/apache/wiki/workflow/DefaultWorkflowManager.java b/jspwiki-main/src/main/java/org/apache/wiki/workflow/DefaultWorkflowManager.java
index 8ba0838..4703763 100644
--- a/jspwiki-main/src/main/java/org/apache/wiki/workflow/DefaultWorkflowManager.java
+++ b/jspwiki-main/src/main/java/org/apache/wiki/workflow/DefaultWorkflowManager.java
@@ -92,6 +92,12 @@ public class DefaultWorkflowManager implements WorkflowManager {
/**
* {@inheritDoc}
+ *
+ * Any properties that begin with {@link #PROPERTY_APPROVER_PREFIX} will be assumed to be Decisions that require approval. For a given
+ * property key, everything after the prefix denotes the Decision's message key. The property value indicates the Principal (Role,
+ * GroupPrincipal, WikiPrincipal) that must approve the Decision. For example, if the property key/value pair is
+ * {@code jspwiki.approver.workflow.saveWikiPage=Admin}, the Decision's message key is <code>workflow.saveWikiPage</code>. The Principal
+ * <code>Admin</code> will be resolved via {@link org.apache.wiki.auth.AuthorizationManager#resolvePrincipal(String)}.
*/
@Override
public void initialize( final Engine engine, final Properties props ) {
diff --git a/jspwiki-main/src/main/java/org/apache/wiki/workflow/WorkflowManager.java b/jspwiki-main/src/main/java/org/apache/wiki/workflow/WorkflowManager.java
index 6e803c0..a0cfdd2 100644
--- a/jspwiki-main/src/main/java/org/apache/wiki/workflow/WorkflowManager.java
+++ b/jspwiki-main/src/main/java/org/apache/wiki/workflow/WorkflowManager.java
@@ -18,14 +18,13 @@
*/
package org.apache.wiki.workflow;
-import org.apache.wiki.api.core.Engine;
import org.apache.wiki.api.core.Session;
+import org.apache.wiki.api.engine.Initializable;
import org.apache.wiki.api.exceptions.WikiException;
import org.apache.wiki.event.WikiEventListener;
import java.security.Principal;
import java.util.List;
-import java.util.Properties;
import java.util.Set;
@@ -35,7 +34,7 @@ import java.util.Set;
* particular Workflows.
* </p>
*/
-public interface WorkflowManager extends WikiEventListener {
+public interface WorkflowManager extends WikiEventListener, Initializable {
/** The workflow attribute which stores the wikiContext. */
String WF_WP_SAVE_ATTR_PRESAVE_WIKI_CONTEXT = "wikiContext";
@@ -98,19 +97,6 @@ public interface WorkflowManager extends WikiEventListener {
List< Workflow > getCompletedWorkflows();
/**
- * Initializes the WorkflowManager using a specfied Engine and properties. Any properties that begin with
- * {@link #PROPERTY_APPROVER_PREFIX} will be assumed to be Decisions that require approval. For a given property key, everything
- * after the prefix denotes the Decision's message key. The property value indicates the Principal (Role, GroupPrincipal, WikiPrincipal)
- * that must approve the Decision. For example, if the property key/value pair is {@code jspwiki.approver.workflow.saveWikiPage=Admin},
- * the Decision's message key is <code>workflow.saveWikiPage</code>. The Principal <code>Admin</code> will be resolved via
- * {@link org.apache.wiki.auth.AuthorizationManager#resolvePrincipal(String)}.
- *
- * @param engine the wiki engine to associate with this WorkflowManager
- * @param props the wiki engine's properties
- */
- void initialize( Engine engine, Properties props );
-
- /**
* Returns <code>true</code> if a workflow matching a particular key contains an approval step.
*
* @param messageKey the name of the workflow; corresponds to the value returned by {@link Workflow#getMessageKey()}.