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/16 21:58:10 UTC

[jspwiki] 20/47: JSPWIKI-303: use o.a.w.api.plugin.Plugin instead of o.a.w.api.plugin.WikiPlugin

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 d12dce02eb513dea94be05c809c672e8a620628f
Author: juanpablo <ju...@apache.org>
AuthorDate: Sat Mar 14 19:57:19 2020 +0100

    JSPWIKI-303: use o.a.w.api.plugin.Plugin instead of o.a.w.api.plugin.WikiPlugin
---
 .../main/java/org/apache/wiki/forms/FormClose.java |  37 +++----
 .../java/org/apache/wiki/forms/FormElement.java    |  30 +++---
 .../java/org/apache/wiki/forms/FormHandler.java    |  12 +--
 .../main/java/org/apache/wiki/forms/FormInfo.java  |  26 ++---
 .../main/java/org/apache/wiki/forms/FormInput.java |  48 ++++-----
 .../main/java/org/apache/wiki/forms/FormOpen.java  |  80 ++++++---------
 .../java/org/apache/wiki/forms/FormOutput.java     |   8 +-
 .../java/org/apache/wiki/forms/FormSelect.java     |  69 ++++++-------
 .../main/java/org/apache/wiki/forms/FormSet.java   |  37 +++----
 .../java/org/apache/wiki/forms/FormTextarea.java   |  64 ++++++------
 .../apache/wiki/plugin/AbstractReferralPlugin.java |  15 ++-
 .../org/apache/wiki/plugin/BugReportHandler.java   |  12 ++-
 .../main/java/org/apache/wiki/plugin/Counter.java  |   9 +-
 .../org/apache/wiki/plugin/CurrentTimePlugin.java  |  51 +++++-----
 .../apache/wiki/plugin/DefaultPluginManager.java   |   7 +-
 .../main/java/org/apache/wiki/plugin/Denounce.java |  76 +++++++--------
 .../main/java/org/apache/wiki/plugin/Groups.java   |   7 +-
 .../main/java/org/apache/wiki/plugin/IfPlugin.java |  25 ++---
 .../main/java/org/apache/wiki/plugin/Image.java    | 107 +++++++++------------
 .../java/org/apache/wiki/plugin/IndexPlugin.java   |  60 ++++++------
 .../java/org/apache/wiki/plugin/InsertPage.java    |  84 ++++++----------
 .../org/apache/wiki/plugin/ListLocksPlugin.java    |   8 +-
 .../src/main/java/org/apache/wiki/plugin/Note.java |  33 +++----
 .../org/apache/wiki/plugin/PageViewPlugin.java     |  13 +--
 .../java/org/apache/wiki/plugin/PluginManager.java |   3 +-
 .../apache/wiki/plugin/RecentChangesPlugin.java    |  12 ++-
 .../apache/wiki/plugin/ReferredPagesPlugin.java    |  16 +--
 .../apache/wiki/plugin/ReferringPagesPlugin.java   |  48 ++++-----
 .../wiki/plugin/ReferringUndefinedPagesPlugin.java |   5 +-
 .../org/apache/wiki/plugin/SampleAjaxPlugin.java   |  39 ++++----
 .../main/java/org/apache/wiki/plugin/Search.java   |  57 ++++-------
 .../org/apache/wiki/plugin/SessionsPlugin.java     |   8 +-
 .../org/apache/wiki/plugin/TableOfContents.java    |  73 ++++++--------
 .../apache/wiki/plugin/UndefinedPagesPlugin.java   |   5 +-
 .../org/apache/wiki/plugin/UnusedPagesPlugin.java  |   5 +-
 .../apache/wiki/plugin/WeblogArchivePlugin.java    |  37 ++++---
 .../org/apache/wiki/plugin/WeblogEntryPlugin.java  |   6 +-
 .../java/org/apache/wiki/plugin/WeblogPlugin.java  |  11 ++-
 .../org/apache/wiki/plugin/JavaScriptPlugin.java   |  12 ++-
 .../java/org/apache/wiki/plugin/SamplePlugin.java  |   7 +-
 .../java/org/apache/wiki/plugin/SamplePlugin3.java |  24 ++---
 41 files changed, 561 insertions(+), 725 deletions(-)

diff --git a/jspwiki-main/src/main/java/org/apache/wiki/forms/FormClose.java b/jspwiki-main/src/main/java/org/apache/wiki/forms/FormClose.java
index 6baaa42..7c80963 100644
--- a/jspwiki-main/src/main/java/org/apache/wiki/forms/FormClose.java
+++ b/jspwiki-main/src/main/java/org/apache/wiki/forms/FormClose.java
@@ -18,47 +18,40 @@
  */
 package org.apache.wiki.forms;
 
-import java.util.Map;
-import java.util.ResourceBundle;
-
-import org.apache.wiki.WikiContext;
+import org.apache.wiki.api.core.Context;
 import org.apache.wiki.api.exceptions.PluginException;
 import org.apache.wiki.api.plugin.WikiPlugin;
 import org.apache.wiki.preferences.Preferences;
 
+import java.util.Map;
+import java.util.ResourceBundle;
+
 /**
  *  Closes a WikiForm.
  *
  */
-public class FormClose
-    extends FormElement
-{
+public class FormClose extends FormElement {
+
     /**
      * Builds a Form close tag. Removes any information on the form from
      * the WikiContext.
      * 
      * {@inheritDoc}
      */
-    public String execute( WikiContext ctx, Map< String, String > params )
-        throws PluginException
-    {
-    	StringBuilder tags = new StringBuilder();
-        tags.append( "</form>\n" );
-        tags.append( "</div>" );
-
+    @Override
+    public String execute( final Context ctx, final Map< String, String > params ) throws PluginException {
         // Don't render if no error and error-only-rendering is on.
-        FormInfo info = getFormInfo( ctx );
-        if( info != null && info.hide() )
-        {
-            ResourceBundle rb = Preferences.getBundle( ctx, WikiPlugin.CORE_PLUGINS_RESOURCEBUNDLE );
+        final FormInfo info = getFormInfo( ctx );
+        if( info != null && info.hide() ) {
+            final ResourceBundle rb = Preferences.getBundle( ctx, WikiPlugin.CORE_PLUGINS_RESOURCEBUNDLE );
             return "<p>" + rb.getString( "formclose.noneedtoshow" ) + "</p>";
         }
 
-        // Get rid of remaining form data, so it doesn't mess up other forms.
-        // After this, it is safe to add other Forms.
+        // Get rid of remaining form data, so it doesn't mess up other forms. After this, it is safe to add other Forms.
         storeFormInfo( ctx, null );
 
-        return tags.toString();
-
+        return "  </form>\n" +
+               "</div>";
     }
+
 }
diff --git a/jspwiki-main/src/main/java/org/apache/wiki/forms/FormElement.java b/jspwiki-main/src/main/java/org/apache/wiki/forms/FormElement.java
index 9df5191..7e7d818 100644
--- a/jspwiki-main/src/main/java/org/apache/wiki/forms/FormElement.java
+++ b/jspwiki-main/src/main/java/org/apache/wiki/forms/FormElement.java
@@ -18,14 +18,13 @@
  */
 package org.apache.wiki.forms;
 
-import org.apache.wiki.WikiContext;
-import org.apache.wiki.api.plugin.WikiPlugin;
+import org.apache.wiki.api.core.Context;
+import org.apache.wiki.api.plugin.Plugin;
 
 /**
  */
-public abstract class FormElement
-    implements WikiPlugin
-{
+public abstract class FormElement implements Plugin {
+
     /**
      * In order to make the form-to-handler parameter transfer easier,
      * we prefix all user-specified FORM element names with HANDLERPARAM_PREFIX
@@ -43,9 +42,7 @@ public abstract class FormElement
      */
     public static final String FORM_VALUES_CARRIER = "nbpf_values";
 
-    /**
-     *   Show values.  Value is <tt>{@value}</tt>.
-     */
+    /** Show values.  Value is <tt>{@value}</tt>. */
     public static final String HIDE_SUCCESS = "onsuccess";
 
     // Parameter names:
@@ -53,10 +50,7 @@ public abstract class FormElement
     public static final String PARAM_SUBMITHANDLER = "submit";
     /** Plugin parameter, mandatory, indicates what form element to insert. */
     public static final String PARAM_ELEMENT    = "element";
-    /** 
-     * Plugin parameter, mandatory in output element, indicates
-     * WikiPlugin to use to handle form submitted data.
-     */
+    /** Plugin parameter, mandatory in output element, indicates Plugin to use to handle form submitted data. */
     public static final String PARAM_HANDLER    = "handler";
     /** Plugin parameter, mandatory in open/output: name of the form. */
     public static final String PARAM_FORM       = "form";
@@ -82,25 +76,23 @@ public abstract class FormElement
     //public static final String CONTEXT_FORMINFO = "FormPluginInfo";
 
     /**
-     * Utility method stores a FormInfo object into the WikiContext.
+     * Utility method stores a FormInfo object into the Context.
      * 
      * @param ctx The Context to store it in
      * @param info The FormInfo to store.
      */
-    protected void storeFormInfo( WikiContext ctx, FormInfo info )
-    {
+    protected void storeFormInfo( final Context ctx, final FormInfo info ) {
         ctx.setVariable( FORM_VALUES_CARRIER, info );
     }
 
     /**
-     * Attempts to retrieve information on the currently handled
-     * form from the WikiContext.
+     * Attempts to retrieve information on the currently handled form from the Context.
      * 
      * @param ctx The Context
      * @return The FormInfo from the context
      */
-    protected FormInfo getFormInfo( WikiContext ctx )
-    {
+    protected FormInfo getFormInfo( final Context ctx ) {
         return ( FormInfo )ctx.getVariable( FORM_VALUES_CARRIER );
     }
+
 }
diff --git a/jspwiki-main/src/main/java/org/apache/wiki/forms/FormHandler.java b/jspwiki-main/src/main/java/org/apache/wiki/forms/FormHandler.java
index 21e55b6..f49d086 100644
--- a/jspwiki-main/src/main/java/org/apache/wiki/forms/FormHandler.java
+++ b/jspwiki-main/src/main/java/org/apache/wiki/forms/FormHandler.java
@@ -20,15 +20,11 @@ package org.apache.wiki.forms;
 
 
 /**
- * A FormHandler performs logic based on input from an
- * HTTP FORM, transmitted through a JSPWiki WikiPlugin
+ * A FormHandler performs logic based on input from an HTTP FORM, transmitted through a JSPWiki WikiPlugin
  * (see Form.java).
  * 
- * <P>This interface is currently empty and unused. It acts
- * as a place holder: we probably want to switch from 
- * WikiPlugins to FormHandlers in Form.java, to enforce
- * authentication, form execution permissions, and so on.
+ * <P>This interface is currently empty and unused. It acts as a place holder: we probably want to switch from
+ * Plugins to FormHandlers in Form.java, to enforce authentication, form execution permissions, and so on.
  */
-public interface FormHandler
-{
+public interface FormHandler {
 }
diff --git a/jspwiki-main/src/main/java/org/apache/wiki/forms/FormInfo.java b/jspwiki-main/src/main/java/org/apache/wiki/forms/FormInfo.java
index 5872d50..7cbb3af 100644
--- a/jspwiki-main/src/main/java/org/apache/wiki/forms/FormInfo.java
+++ b/jspwiki-main/src/main/java/org/apache/wiki/forms/FormInfo.java
@@ -23,10 +23,10 @@ import java.util.HashMap;
 import java.util.Map;
 
 /**
- * Container for carrying HTTP FORM information between
- * WikiPlugin invocations in the Session.
+ * Container for carrying HTTP FORM information between Plugin invocations in the Session.
  */
 public class FormInfo implements Serializable {
+
     private static final long serialVersionUID = 0L;
 
     /**
@@ -65,7 +65,7 @@ public class FormInfo implements Serializable {
      *
      * @param val EXECUTED, OK or ERROR.
      */
-    public void setStatus(int val) {
+    public void setStatus( final int val) {
         m_status = val;
     }
 
@@ -83,7 +83,7 @@ public class FormInfo implements Serializable {
      *
      * @param val True or false.
      */
-    public void setHide(boolean val) {
+    public void setHide( final boolean val) {
         m_hide = val;
     }
 
@@ -101,7 +101,7 @@ public class FormInfo implements Serializable {
      *
      * @param val A value parameter.
      */
-    public void setAction(String val) {
+    public void setAction( final String val) {
         m_action = val;
     }
 
@@ -119,7 +119,7 @@ public class FormInfo implements Serializable {
      *
      * @param val The name of the form.
      */
-    public void setName(String val) {
+    public void setName( final String val) {
         m_name = val;
     }
 
@@ -137,7 +137,7 @@ public class FormInfo implements Serializable {
      *
      * @param val The name of the class.
      */
-    public void setHandler(String val) {
+    public void setHandler( final String val) {
         m_handler = val;
     }
 
@@ -155,7 +155,7 @@ public class FormInfo implements Serializable {
      *
      * @param val The result.
      */
-    public void setResult(String val) {
+    public void setResult( final String val) {
         m_result = val;
     }
 
@@ -173,7 +173,7 @@ public class FormInfo implements Serializable {
      *
      * @param val An error string.
      */
-    public void setError(String val) {
+    public void setError( final String val) {
         m_error = val;
     }
 
@@ -191,8 +191,8 @@ public class FormInfo implements Serializable {
      *
      * @param val parameter name-value pairs for a Form handler WikiPlugin
      */
-    public void setSubmission(Map<String, String> val) {
-        m_submission = new HashMap<String, String>();
+    public void setSubmission( final Map<String, String> val) {
+        m_submission = new HashMap<>();
         m_submission.putAll(val);
     }
 
@@ -201,9 +201,9 @@ public class FormInfo implements Serializable {
      *
      * @param val parameter name-value pairs for a Form handler WikiPlugin
      */
-    public void addSubmission(Map<String, String> val) {
+    public void addSubmission( final Map<String, String> val) {
         if (m_submission == null) {
-            m_submission = new HashMap<String, String>();
+            m_submission = new HashMap<>();
         }
         m_submission.putAll(val);
     }
diff --git a/jspwiki-main/src/main/java/org/apache/wiki/forms/FormInput.java b/jspwiki-main/src/main/java/org/apache/wiki/forms/FormInput.java
index c6b3174..f324504 100644
--- a/jspwiki-main/src/main/java/org/apache/wiki/forms/FormInput.java
+++ b/jspwiki-main/src/main/java/org/apache/wiki/forms/FormInput.java
@@ -19,7 +19,7 @@
 
 package org.apache.wiki.forms;
 
-import org.apache.wiki.WikiContext;
+import org.apache.wiki.api.core.Context;
 import org.apache.wiki.api.exceptions.PluginException;
 import org.apache.wiki.api.plugin.WikiPlugin;
 import org.apache.wiki.preferences.Preferences;
@@ -35,8 +35,8 @@ import java.util.ResourceBundle;
 /**
  *  Creates a simple input text field.
  */
-public class FormInput extends FormElement
-{
+public class FormInput extends FormElement {
+
     /** Parameter name for setting the type.  Value is <tt>{@value}</tt>. */
     public static final String PARAM_TYPE  = "type";
 
@@ -50,15 +50,14 @@ public class FormInput extends FormElement
      * 
      * {@inheritDoc}
      */
-    public String execute( WikiContext ctx, Map< String, String > params )
-        throws PluginException
-    {
-        String inputName  = params.get( PARAM_INPUTNAME );
+    @Override
+    public String execute( final Context ctx, final Map< String, String > params ) throws PluginException {
+        final String inputName  = params.get( PARAM_INPUTNAME );
         String inputValue = params.get( PARAM_VALUE );
-        String inputType  = params.get( PARAM_TYPE );
-        String size       = params.get( PARAM_SIZE );
-        String checked    = params.get( PARAM_CHECKED );
-        ResourceBundle rb = Preferences.getBundle( ctx, WikiPlugin.CORE_PLUGINS_RESOURCEBUNDLE );
+        final String inputType  = params.get( PARAM_TYPE );
+        final String size       = params.get( PARAM_SIZE );
+        final String checked    = params.get( PARAM_CHECKED );
+        final ResourceBundle rb = Preferences.getBundle( ctx, WikiPlugin.CORE_PLUGINS_RESOURCEBUNDLE );
 
         if ( inputName == null ) {
             throw new PluginException( rb.getString( "forminput.namemissing" ) );
@@ -68,35 +67,29 @@ public class FormInput extends FormElement
         }
         
         // Don't render if no error and error-only-rendering is on.
-        FormInfo info = getFormInfo( ctx );
+        final FormInfo info = getFormInfo( ctx );
         Map< String, String > previousValues = null;
-        if ( info != null )
-        {
-            if ( info.hide() )
-            {
+        if ( info != null ) {
+            if ( info.hide() ) {
 //              return XhtmlUtil.serialize(XhtmlUtil.element(XHTML.p,rb.getString("forminput.noneedtoshow"))); // nope
                 return "<p>" + rb.getString( "forminput.noneedtoshow" ) + "</p>";
             }
             previousValues = info.getSubmission();
         }
 
-        if ( previousValues == null )
-        {
-            previousValues = new HashMap< String, String >();
+        if ( previousValues == null ) {
+            previousValues = new HashMap<>();
         }
 
         // In order to isolate posted form elements into their own
         // map, prefix the variable name here. It will be stripped
         // when the handler plugin is executed.
         
-        Element field = XhtmlUtil.input(inputType,HANDLERPARAM_PREFIX + inputName,inputValue);
-        
-        field.setAttribute(XHTML.ATTR_class,
-                String.valueOf(TextUtil.isPositive(checked) || "checked".equalsIgnoreCase(checked)));
-        
-        String oldValue = previousValues.get( inputName );
-        if ( oldValue != null )
-        {
+        final Element field = XhtmlUtil.input(inputType,HANDLERPARAM_PREFIX + inputName,inputValue);
+        field.setAttribute( XHTML.ATTR_class, String.valueOf( TextUtil.isPositive( checked ) || "checked".equalsIgnoreCase( checked ) ) );
+
+        final String oldValue = previousValues.get( inputName );
+        if ( oldValue != null ) {
             field.setAttribute(XHTML.ATTR_value,oldValue);
         }
 
@@ -106,4 +99,5 @@ public class FormInput extends FormElement
 
         return XhtmlUtil.serialize(field); // ctx.getEngine().getContentEncoding()
     }
+
 }
diff --git a/jspwiki-main/src/main/java/org/apache/wiki/forms/FormOpen.java b/jspwiki-main/src/main/java/org/apache/wiki/forms/FormOpen.java
index bef7652..fdaba9f 100644
--- a/jspwiki-main/src/main/java/org/apache/wiki/forms/FormOpen.java
+++ b/jspwiki-main/src/main/java/org/apache/wiki/forms/FormOpen.java
@@ -18,15 +18,17 @@
  */
 package org.apache.wiki.forms;
 
-import java.text.MessageFormat;
-import java.util.Map;
-import java.util.ResourceBundle;
-
+import org.apache.log4j.Logger;
 import org.apache.wiki.WikiContext;
+import org.apache.wiki.api.core.Context;
 import org.apache.wiki.api.exceptions.PluginException;
 import org.apache.wiki.api.plugin.WikiPlugin;
 import org.apache.wiki.preferences.Preferences;
 
+import java.text.MessageFormat;
+import java.util.Map;
+import java.util.ResourceBundle;
+
 /**
  *  Opens a WikiForm.
  *
@@ -63,11 +65,9 @@ import org.apache.wiki.preferences.Preferences;
  * be a useless option.)
  *
  */
-public class FormOpen
-    extends FormElement
-{
-    private static org.apache.log4j.Logger log =
-        org.apache.log4j.Logger.getLogger( FormOpen.class );
+public class FormOpen extends FormElement {
+
+    private static final Logger log = Logger.getLogger( FormOpen.class );
 
     /** Parameter name for setting the method (GET or POST).  Value is <tt>{@value}</tt>. */
     public static final String PARAM_METHOD = "method";
@@ -75,17 +75,15 @@ public class FormOpen
     /**
      *  {@inheritDoc}
      */
-    public String execute( WikiContext ctx, Map< String, String > params )
-        throws PluginException
-    {
-        ResourceBundle rb = Preferences.getBundle( ctx, WikiPlugin.CORE_PLUGINS_RESOURCEBUNDLE );
-        String formName = params.get( PARAM_FORM );
-        if( formName == null )
-        {
+    @Override
+    public String execute( final Context ctx, final Map< String, String > params ) throws PluginException {
+        final ResourceBundle rb = Preferences.getBundle( ctx, WikiPlugin.CORE_PLUGINS_RESOURCEBUNDLE );
+        final String formName = params.get( PARAM_FORM );
+        if( formName == null ) {
             throw new PluginException( MessageFormat.format( rb.getString( "formopen.missingparam" ), PARAM_FORM ) );
         }
-        String hide     = params.get( PARAM_HIDEFORM );
-        String sourcePage = ctx.getPage().getName();
+        final String hide     = params.get( PARAM_HIDEFORM );
+        final String sourcePage = ctx.getPage().getName();
         String submitServlet = params.get( PARAM_SUBMITHANDLER );
         if( submitServlet == null )
             submitServlet = ctx.getURL( WikiContext.VIEW, sourcePage );
@@ -93,41 +91,28 @@ public class FormOpen
         String method = params.get( PARAM_METHOD );
         if( method == null ) method="post";
 
-        if( !(method.equalsIgnoreCase("get") || method.equalsIgnoreCase("post")) )
-        {
+        if( !( method.equalsIgnoreCase( "get" ) || method.equalsIgnoreCase( "post" ) ) ) {
             throw new PluginException( rb.getString( "formopen.postorgetonly" ) );
         }
 
         FormInfo info = getFormInfo( ctx );
-        if( info != null )
-        {
+        if( info != null ) {
             // Previous information may be the result of submitting
             // this form, or of a FormSet plugin, or both. If it
             // exists and is for this form, fine.
-            if( formName.equals( info.getName() ) )
-            {
+            if( formName.equals( info.getName() ) ) {
                 log.debug( "Previous FormInfo for this form was found in context." );
-                // If the FormInfo exists, and if we're supposed to display on
-                // error only, we need to exit now.
-                if( hide != null &&
-                    HIDE_SUCCESS.equals( hide ) &&
-                    info.getStatus() == FormInfo.EXECUTED )
-                {
+                // If the FormInfo exists, and if we're supposed to display on error only, we need to exit now.
+                if( HIDE_SUCCESS.equals( hide ) && info.getStatus() == FormInfo.EXECUTED ) {
                     info.setHide( true );
                     return "<p>" + rb.getString( "formopen.noneedtoshow" ) + "</p>";
                 }
-            }
-            else
-            {
-                // This would mean that a new form was started without
-                // closing an old one.  Get rid of the garbage.
+            } else {
+                // This would mean that a new form was started without closing an old one.  Get rid of the garbage.
                 info = new FormInfo();
             }
-        }
-        else
-        {
-            // No previous FormInfo available; store now, so it'll be
-            // available for upcoming Form input elements.
+        } else {
+            // No previous FormInfo available; store now, so it'll be available for upcoming Form input elements.
             info = new FormInfo();
             storeFormInfo( ctx, info );
         }
@@ -135,16 +120,11 @@ public class FormOpen
         info.setName( formName );
         info.setAction( submitServlet );
 
-        StringBuilder tag = new StringBuilder( 40 );
-        tag.append( "<div class=\"wikiform\">\n" );
-        tag.append( "<form action=\"" + submitServlet );
-        tag.append( "\" name=\"" + formName );
-        tag.append( "\" accept-charset=\"" + ctx.getEngine().getContentEncoding() );
-        tag.append( "\" method=\""+method+"\" enctype=\"application/x-www-form-urlencoded\">\n" );
-        tag.append( "  <input type=\"hidden\" name=\"" + PARAM_FORMNAMEHIDDEN );
-        tag.append( "\" value=\"" + formName + "\"/>\n" );
-
-        return tag.toString();
+        return "<div class=\"wikiform\">\n" +
+                  "<form action=\"" + submitServlet + "\" name=\"" + formName + "\" " +
+                        "accept-charset=\"" + ctx.getEngine().getContentEncoding() + "\" " +
+                        "method=\"" + method + "\" enctype=\"application/x-www-form-urlencoded\">\n" +
+                  "  <input type=\"hidden\" name=\"" + PARAM_FORMNAMEHIDDEN + "\" value=\"" + formName + "\"/>\n";
     }
 
 }
diff --git a/jspwiki-main/src/main/java/org/apache/wiki/forms/FormOutput.java b/jspwiki-main/src/main/java/org/apache/wiki/forms/FormOutput.java
index 9c82ec2..fffb2ce 100644
--- a/jspwiki-main/src/main/java/org/apache/wiki/forms/FormOutput.java
+++ b/jspwiki-main/src/main/java/org/apache/wiki/forms/FormOutput.java
@@ -20,6 +20,7 @@
 package org.apache.wiki.forms;
 
 import org.apache.wiki.WikiContext;
+import org.apache.wiki.api.core.Context;
 import org.apache.wiki.api.exceptions.PluginException;
 import org.apache.wiki.api.plugin.WikiPlugin;
 import org.apache.wiki.plugin.DefaultPluginManager;
@@ -33,9 +34,7 @@ import java.util.ResourceBundle;
 
 /**
  */
-public class FormOutput
-        extends FormElement
-{
+public class FormOutput extends FormElement {
     /**
      * Executes the FormHandler specified in a Form 'output' plugin,
      * using entries provided in the HttpRequest as FormHandler
@@ -55,7 +54,8 @@ public class FormOutput
      * @param params {@inheritDoc}
      * @return {@inheritDoc}
      */
-    @Override public String execute( final WikiContext ctx, final Map< String, String > params ) throws PluginException {
+    @Override
+    public String execute( final Context ctx, final Map< String, String > params ) throws PluginException {
         //  If there is no HTTP request, returns immediately.
         if( ctx.getHttpRequest() == null ) {
             return "";
diff --git a/jspwiki-main/src/main/java/org/apache/wiki/forms/FormSelect.java b/jspwiki-main/src/main/java/org/apache/wiki/forms/FormSelect.java
index 62f627a..08d8f52 100644
--- a/jspwiki-main/src/main/java/org/apache/wiki/forms/FormSelect.java
+++ b/jspwiki-main/src/main/java/org/apache/wiki/forms/FormSelect.java
@@ -19,7 +19,7 @@
 
 package org.apache.wiki.forms;
 
-import org.apache.wiki.WikiContext;
+import org.apache.wiki.api.core.Context;
 import org.apache.wiki.api.exceptions.PluginException;
 import org.apache.wiki.api.plugin.WikiPlugin;
 import org.apache.wiki.preferences.Preferences;
@@ -34,36 +34,30 @@ import java.util.ResourceBundle;
 /**
  *  Creates a Form select field.
  */
-public class FormSelect
-    extends FormElement
-{
+public class FormSelect extends FormElement {
+
     /**
      *  {@inheritDoc}
      */
-    public String execute( WikiContext ctx, Map< String, String > params )
-        throws PluginException
-    {
+    @Override
+    public String execute( final Context ctx, final Map< String, String > params ) throws PluginException {
         // Don't render if no error and error-only-rendering is on.
-        FormInfo info = getFormInfo( ctx );
-
-        ResourceBundle rb = Preferences.getBundle( ctx, WikiPlugin.CORE_PLUGINS_RESOURCEBUNDLE );
+        final FormInfo info = getFormInfo( ctx );
+        final ResourceBundle rb = Preferences.getBundle( ctx, WikiPlugin.CORE_PLUGINS_RESOURCEBUNDLE );
         Map< String, String > previousValues = null;
-        
-        if ( info != null )
-        {
-            if ( info.hide() )
-            {
+
+        if( info != null ) {
+            if( info.hide() ) {
                 return "<p>" + rb.getString( "forminput.noneedtoshow" ) + "</p>";
             }
             previousValues = info.getSubmission();
         }
 
-        if ( previousValues == null )
-        {
-            previousValues = new HashMap< String, String >();
+        if( previousValues == null ) {
+            previousValues = new HashMap<>();
         }
 
-        Element field = buildSelect( params, previousValues, rb );
+        final Element field = buildSelect( params, previousValues, rb );
 
         // We should look for extra params, e.g. width, ..., here.
         return XhtmlUtil.serialize(field); // ctx.getEngine().getContentEncoding()
@@ -74,12 +68,11 @@ public class FormSelect
      * Builds a Select element.
      */
     private Element buildSelect(
-            Map<String,String> pluginParams,
-            Map<String,String> ctxValues, 
-            ResourceBundle rb )
-            throws PluginException
-    {
-        String inputName = pluginParams.get( PARAM_INPUTNAME );
+            final Map< String, String > pluginParams,
+            final Map< String, String > ctxValues,
+            final ResourceBundle rb )
+            throws PluginException {
+        final String inputName = pluginParams.get( PARAM_INPUTNAME );
         if ( inputName == null ) {
             throw new PluginException( rb.getString( "formselect.namemissing" ) );
         }
@@ -87,8 +80,7 @@ public class FormSelect
         String inputValue = pluginParams.get( PARAM_VALUE );
         String previousValue = ctxValues.get( inputName );
         //
-        // We provide several ways to override the separator, in case
-        // some input application the default value.
+        // We provide several ways to override the separator, in case some input application the default value.
         //
         String optionSeparator = pluginParams.get( "separator" );
         if ( optionSeparator == null ) {
@@ -118,30 +110,26 @@ public class FormSelect
         	inputValue = "";
         }
 
-        // If values from the context contain the separator, we assume
-        // that the plugin or something else has given us a better
+        // If values from the context contain the separator, we assume that the plugin or something else has given us a better
         // list to display.
         boolean contextValueOverride = false;
         if ( previousValue != null ) {
-            if ( previousValue.indexOf( optionSeparator ) != -1 ) {
+            if ( previousValue.contains( optionSeparator ) ) {
                 inputValue = previousValue;
                 previousValue = null;
             } else {
-                // If a context value exists, but it's not a list,
-                // it'll just override any existing selector
-                // indications.
+                // If a context value exists, but it's not a list, it'll just override any existing selector indications.
                 contextValueOverride = true;
             }
         }
 
-        String[] options = inputValue.split( optionSeparator );
+        final String[] options = inputValue.split( optionSeparator );
         int previouslySelected = -1;
         
-        Element[] optionElements = new Element[options.length];
+        final Element[] optionElements = new Element[options.length];
         
         //
-        //  Figure out which one of the options to select: prefer the one
-        //  that was previously selected, otherwise try to find the one
+        //  Figure out which one of the options to select: prefer the one that was previously selected, otherwise try to find the one
         //  with the "select" marker.
         //
         for( int i = 0; i < options.length; i++ ) {
@@ -155,7 +143,7 @@ public class FormSelect
             if ( previouslySelected == -1 ) {
                 if ( !contextValueOverride && indicated > 0 ) {
                     previouslySelected = indicated;
-                } else if ( previousValue != null && options[i].equals( previousValue ) ) {
+                } else if ( options[ i ].equals( previousValue ) ) {
                     previouslySelected = i;
                 }
             }
@@ -171,11 +159,12 @@ public class FormSelect
         	optionElements[previouslySelected].setAttribute(XHTML.ATTR_selected,"true");
         }
 
-        Element select = XhtmlUtil.element(XHTML.select);
+        final Element select = XhtmlUtil.element(XHTML.select);
         select.setAttribute(XHTML.ATTR_name,HANDLERPARAM_PREFIX + inputName);
-        for ( Element option : optionElements ) {
+        for ( final Element option : optionElements ) {
             select.addContent(option);
         }
         return select;
     }
+
 }
diff --git a/jspwiki-main/src/main/java/org/apache/wiki/forms/FormSet.java b/jspwiki-main/src/main/java/org/apache/wiki/forms/FormSet.java
index 64e3677..c9c593e 100644
--- a/jspwiki-main/src/main/java/org/apache/wiki/forms/FormSet.java
+++ b/jspwiki-main/src/main/java/org/apache/wiki/forms/FormSet.java
@@ -18,13 +18,13 @@
  */
 package org.apache.wiki.forms;
 
+import org.apache.wiki.api.core.Context;
+import org.apache.wiki.api.exceptions.PluginException;
+import org.apache.wiki.api.plugin.Plugin;
+
 import java.util.HashMap;
 import java.util.Map;
 
-import org.apache.wiki.WikiContext;
-import org.apache.wiki.api.exceptions.PluginException;
-import org.apache.wiki.api.plugin.WikiPlugin;
-
 /**
  * FormSet is a companion WikiPlugin for Form. 
  * 
@@ -56,39 +56,32 @@ import org.apache.wiki.api.plugin.WikiPlugin;
  *
  * @see FormInfo
  */
-public class FormSet
-    implements WikiPlugin
-{    
+public class FormSet implements Plugin {
+
     /**
      *  {@inheritDoc}
      */
-    public String execute( WikiContext ctx, Map< String, String > params )
-        throws PluginException
-    {
-        String formName = params.get( FormElement.PARAM_FORM );
-        if( formName == null || formName.trim().length() == 0 )
-        {
+    @Override
+    public String execute( final Context ctx, final Map< String, String > params ) throws PluginException {
+        final String formName = params.get( FormElement.PARAM_FORM );
+        if( formName == null || formName.trim().length() == 0 ) {
             return "";
         }
 
-        FormInfo info = (FormInfo)ctx.getVariable( FormElement.FORM_VALUES_CARRIER );
+        FormInfo info = ctx.getVariable( FormElement.FORM_VALUES_CARRIER );
 
-        if( info == null || formName.equals( info.getName() ) == false )
-        {
+        if( info == null || !formName.equals( info.getName() ) ) {
             info = new FormInfo();
             ctx.setVariable( FormElement.FORM_VALUES_CARRIER, info );
         }
 
         //
-        //  Create a copy for the context.  Unfortunately we need to 
-        //  create slightly modified copy, because otherwise on next
-        //  invocation this might be coming from a cache; so we can't
-        //  modify the original param string.
+        //  Create a copy for the context.  Unfortunately we need to create slightly modified copy, because otherwise on next
+        //  invocation this might be coming from a cache; so we can't modify the original param string.
         //
         info.setName( formName );
-        Map< String, String > hm = new HashMap< String, String >();
+        final Map< String, String > hm = new HashMap<>();
         hm.putAll( params );
-        
         hm.remove( FormElement.PARAM_FORM );
         info.addSubmission( hm );
         
diff --git a/jspwiki-main/src/main/java/org/apache/wiki/forms/FormTextarea.java b/jspwiki-main/src/main/java/org/apache/wiki/forms/FormTextarea.java
index a2e4be2..ac48afb 100644
--- a/jspwiki-main/src/main/java/org/apache/wiki/forms/FormTextarea.java
+++ b/jspwiki-main/src/main/java/org/apache/wiki/forms/FormTextarea.java
@@ -19,11 +19,7 @@
 
 package org.apache.wiki.forms;
 
-import java.util.HashMap;
-import java.util.Map;
-import java.util.ResourceBundle;
-
-import org.apache.wiki.WikiContext;
+import org.apache.wiki.api.core.Context;
 import org.apache.wiki.api.exceptions.PluginException;
 import org.apache.wiki.api.plugin.WikiPlugin;
 import org.apache.wiki.preferences.Preferences;
@@ -31,13 +27,16 @@ import org.apache.wiki.util.XHTML;
 import org.apache.wiki.util.XhtmlUtil;
 import org.jdom2.Element;
 
+import java.util.HashMap;
+import java.util.Map;
+import java.util.ResourceBundle;
+
 /**
- *  Creates a Form text area element.   You may specify the size of the textarea
+ *  Creates a Form text area element. You may specify the size of the textarea
  *  by using the {@link #PARAM_COLS} and {@link #PARAM_ROWS} to signify the width
  *  and height of the area.
  */
-public class FormTextarea extends FormElement
-{
+public class FormTextarea extends FormElement {
     /** Parameter name for setting the rows value.  Value is <tt>{@value}</tt>. */
     public static final String PARAM_ROWS = "rows";
 
@@ -47,11 +46,12 @@ public class FormTextarea extends FormElement
     /**
      *  {@inheritDoc}
      */
-    public String execute( WikiContext ctx, Map< String, String > params ) throws PluginException {
+    @Override
+    public String execute( final Context ctx, final Map< String, String > params ) throws PluginException {
         // Don't render if no error and error-only-rendering is on.
-        FormInfo info = getFormInfo( ctx );
+        final FormInfo info = getFormInfo( ctx );
         Map< String, String > previousValues = null;
-        ResourceBundle rb = Preferences.getBundle( ctx, WikiPlugin.CORE_PLUGINS_RESOURCEBUNDLE );
+        final ResourceBundle rb = Preferences.getBundle( ctx, WikiPlugin.CORE_PLUGINS_RESOURCEBUNDLE );
 
         if ( info != null ) {
             if ( info.hide() ) {
@@ -61,33 +61,31 @@ public class FormTextarea extends FormElement
         }
 
         if ( previousValues == null ) {
-            previousValues = new HashMap< String, String >();
+            previousValues = new HashMap<>();
         }
 
-        Element field = buildTextArea( params, previousValues, rb );
+        final Element field = buildTextArea( params, previousValues, rb );
 
         // We should look for extra params, e.g. width, ..., here.
         return XhtmlUtil.serialize(field, XhtmlUtil.EXPAND_EMPTY_NODES ); // ctx.getEngine().getContentEncoding()
     }
 
     private Element buildTextArea(
-            Map<String,String> params,
-            Map<String,String> previousValues,
-            ResourceBundle rb )
-            throws PluginException
-    {
-        String inputName = params.get(PARAM_INPUTNAME);
-        String rows = params.get(PARAM_ROWS);
-        String cols = params.get(PARAM_COLS);
+            final Map< String, String > params,
+            final Map< String, String > previousValues,
+            final ResourceBundle rb )
+            throws PluginException {
+        final String inputName = params.get(PARAM_INPUTNAME);
+        final String rows = params.get(PARAM_ROWS);
+        final String cols = params.get(PARAM_COLS);
 
         if ( inputName == null ) {
         	throw new PluginException( rb.getString( "formtextarea.namemissing" ) );
         }
 
-        // In order to isolate posted form elements into their own
-        // map, prefix the variable name here. It will be stripped
+        // In order to isolate posted form elements into their own map, prefix the variable name here. It will be stripped
         // when the handler plugin is executed.
-        Element field = XhtmlUtil.element(XHTML.textarea);
+        final Element field = XhtmlUtil.element(XHTML.textarea);
         field.setAttribute(XHTML.ATTR_name,HANDLERPARAM_PREFIX + inputName);
         if ( rows != null ) {
             field.setAttribute(XHTML.ATTR_rows,rows);
@@ -96,18 +94,14 @@ public class FormTextarea extends FormElement
             field.setAttribute(XHTML.ATTR_cols,cols);
         }
 
-        if ( previousValues != null )
-        {
+        if ( previousValues != null ) {
             String oldValue = previousValues.get( inputName );
-            if ( oldValue != null )
-            {
-                field.addContent(oldValue);
-            }
-            else
-            {
-                oldValue = params.get(PARAM_VALUE);
-                if ( oldValue != null ) {
-                	field.addContent(oldValue);
+            if( oldValue != null ) {
+                field.addContent( oldValue );
+            } else {
+                oldValue = params.get( PARAM_VALUE );
+                if( oldValue != null ) {
+                    field.addContent( oldValue );
                 }
             }
         }
diff --git a/jspwiki-main/src/main/java/org/apache/wiki/plugin/AbstractReferralPlugin.java b/jspwiki-main/src/main/java/org/apache/wiki/plugin/AbstractReferralPlugin.java
index 5d552e4..b26878b 100644
--- a/jspwiki-main/src/main/java/org/apache/wiki/plugin/AbstractReferralPlugin.java
+++ b/jspwiki-main/src/main/java/org/apache/wiki/plugin/AbstractReferralPlugin.java
@@ -29,9 +29,10 @@ import org.apache.oro.text.regex.Perl5Matcher;
 import org.apache.wiki.StringTransmutator;
 import org.apache.wiki.WikiContext;
 import org.apache.wiki.WikiPage;
+import org.apache.wiki.api.core.Context;
 import org.apache.wiki.api.core.Engine;
 import org.apache.wiki.api.exceptions.PluginException;
-import org.apache.wiki.api.plugin.WikiPlugin;
+import org.apache.wiki.api.plugin.Plugin;
 import org.apache.wiki.pages.PageManager;
 import org.apache.wiki.pages.PageSorter;
 import org.apache.wiki.parser.MarkupParser;
@@ -77,8 +78,8 @@ import java.util.stream.Collectors;
  *  </ul>
  *
  */
-public abstract class AbstractReferralPlugin implements WikiPlugin
-{
+public abstract class AbstractReferralPlugin implements Plugin {
+
     private static Logger log = Logger.getLogger( AbstractReferralPlugin.class );
 
     /** Magic value for rendering all items. */
@@ -143,9 +144,7 @@ public abstract class AbstractReferralPlugin implements WikiPlugin
      * @throws PluginException if any of the plugin parameters are malformed
      */
     // FIXME: The compiled pattern strings should really be cached somehow.
-    public void initialize( final WikiContext context, final Map<String, String> params )
-        throws PluginException
-    {
+    public void initialize( final Context context, final Map<String, String> params ) throws PluginException {
         m_dateFormat = Preferences.getDateFormat( context, TimeFormat.DATETIME );
         m_engine = context.getEngine();
         m_maxwidth = TextUtil.parseIntParameter( params.get( PARAM_MAXWIDTH ), Integer.MAX_VALUE );
@@ -406,7 +405,7 @@ public abstract class AbstractReferralPlugin implements WikiPlugin
      *  @return HTML
      *  @since 1.6.4
      */
-    protected String makeHTML( final WikiContext context, final String wikitext )
+    protected String makeHTML( final Context context, final String wikitext )
     {
         String result = "";
 
@@ -456,7 +455,7 @@ public abstract class AbstractReferralPlugin implements WikiPlugin
     /**
      * Helper method to initialize the comparator for this page.
      */
-    private void initSorter( final WikiContext context, final Map< String, String > params ) {
+    private void initSorter( final Context context, final Map< String, String > params ) {
         final String order = params.get( PARAM_SORTORDER );
         if( order == null || order.length() == 0 ) {
             // Use the configured comparator
diff --git a/jspwiki-main/src/main/java/org/apache/wiki/plugin/BugReportHandler.java b/jspwiki-main/src/main/java/org/apache/wiki/plugin/BugReportHandler.java
index 37eeda2..3e63964 100644
--- a/jspwiki-main/src/main/java/org/apache/wiki/plugin/BugReportHandler.java
+++ b/jspwiki-main/src/main/java/org/apache/wiki/plugin/BugReportHandler.java
@@ -19,12 +19,13 @@
 package org.apache.wiki.plugin;
 
 import org.apache.log4j.Logger;
-import org.apache.wiki.WikiContext;
 import org.apache.wiki.WikiPage;
+import org.apache.wiki.api.core.Context;
 import org.apache.wiki.api.core.Engine;
 import org.apache.wiki.api.exceptions.PluginException;
 import org.apache.wiki.api.exceptions.RedirectException;
 import org.apache.wiki.api.exceptions.WikiException;
+import org.apache.wiki.api.plugin.Plugin;
 import org.apache.wiki.api.plugin.WikiPlugin;
 import org.apache.wiki.pages.PageManager;
 import org.apache.wiki.parser.MarkupParser;
@@ -54,7 +55,7 @@ import java.util.StringTokenizer;
  *  </ul>
  *
  */
-public class BugReportHandler implements WikiPlugin {
+public class BugReportHandler implements Plugin {
 
     private static final Logger log = Logger.getLogger( BugReportHandler.class );
     private static final String DEFAULT_DATEFORMAT = "dd-MMM-yyyy HH:mm:ss zzz";
@@ -73,7 +74,8 @@ public class BugReportHandler implements WikiPlugin {
     /**
      *  {@inheritDoc}
      */
-    @Override public String execute( final WikiContext context, final Map< String, String > params ) throws PluginException {
+    @Override
+    public String execute( final Context context, final Map< String, String > params ) throws PluginException {
         final String title = params.get( PARAM_TITLE );
         String description = params.get( PARAM_DESCRIPTION );
         String version = params.get( PARAM_VERSION );
@@ -140,7 +142,7 @@ public class BugReportHandler implements WikiPlugin {
             //  Now create a new page for this bug report
             final String pageName = findNextPage( context, title, params.get( PARAM_PAGE ) );
             final WikiPage newPage = new WikiPage( context.getEngine(), pageName );
-            final WikiContext newContext = (WikiContext)context.clone();
+            final Context newContext = (Context)context.clone();
             newContext.setPage( newPage );
             context.getEngine().getManager( PageManager.class ).saveText( newContext, str.toString() );
 
@@ -162,7 +164,7 @@ public class BugReportHandler implements WikiPlugin {
      *  Finds a free page name for adding the bug report.  Tries to construct a page, and if it's found, adds a number to it
      *  and tries again.
      */
-    private synchronized String findNextPage( final WikiContext context, final String title, final String baseName ) {
+    private synchronized String findNextPage( final Context context, final String title, final String baseName ) {
         final String basicPageName = ( ( baseName != null ) ? baseName : "Bug" ) + MarkupParser.cleanLink( title );
         final Engine engine = context.getEngine();
 
diff --git a/jspwiki-main/src/main/java/org/apache/wiki/plugin/Counter.java b/jspwiki-main/src/main/java/org/apache/wiki/plugin/Counter.java
index 44a8ad7..331af6c 100644
--- a/jspwiki-main/src/main/java/org/apache/wiki/plugin/Counter.java
+++ b/jspwiki-main/src/main/java/org/apache/wiki/plugin/Counter.java
@@ -18,9 +18,9 @@
  */
 package org.apache.wiki.plugin;
 
-import org.apache.wiki.WikiContext;
+import org.apache.wiki.api.core.Context;
 import org.apache.wiki.api.exceptions.PluginException;
-import org.apache.wiki.api.plugin.WikiPlugin;
+import org.apache.wiki.api.plugin.Plugin;
 import org.apache.wiki.util.TextUtil;
 
 import java.util.Map;
@@ -39,7 +39,7 @@ import java.util.Map;
  *
  *  @since 1.9.30
  */
-public class Counter implements WikiPlugin {
+public class Counter implements Plugin {
     // private static Logger log = Logger.getLogger( Counter.class );
 
     /** Parameter name for setting the name.  Value is <tt>{@value}</tt>. */
@@ -57,7 +57,8 @@ public class Counter implements WikiPlugin {
     /**
      *  {@inheritDoc}
      */
-    public String execute( final WikiContext context, final Map< String, String > params ) throws PluginException {
+    @Override
+    public String execute( final Context context, final Map< String, String > params ) throws PluginException {
         //  First, determine which kind of name we use to store in the WikiContext.
         String  countername = params.get(  PARAM_NAME);
 
diff --git a/jspwiki-main/src/main/java/org/apache/wiki/plugin/CurrentTimePlugin.java b/jspwiki-main/src/main/java/org/apache/wiki/plugin/CurrentTimePlugin.java
index bc1c177..5c54a44 100644
--- a/jspwiki-main/src/main/java/org/apache/wiki/plugin/CurrentTimePlugin.java
+++ b/jspwiki-main/src/main/java/org/apache/wiki/plugin/CurrentTimePlugin.java
@@ -18,17 +18,18 @@
  */
 package org.apache.wiki.plugin;
 
-import java.text.SimpleDateFormat;
-import java.util.Date;
-import java.util.Map;
-import java.util.ResourceBundle;
-
-import org.apache.wiki.WikiContext;
+import org.apache.wiki.api.core.Context;
 import org.apache.wiki.api.exceptions.PluginException;
+import org.apache.wiki.api.plugin.Plugin;
 import org.apache.wiki.api.plugin.WikiPlugin;
 import org.apache.wiki.preferences.Preferences;
 import org.apache.wiki.preferences.Preferences.TimeFormat;
 
+import java.text.SimpleDateFormat;
+import java.util.Date;
+import java.util.Map;
+import java.util.ResourceBundle;
+
 /**
  *  Just displays the current date and time.
  *  The time format is exactly like in the java.text.SimpleDateFormat class.
@@ -38,40 +39,32 @@ import org.apache.wiki.preferences.Preferences.TimeFormat;
  *  @since 1.7.8
  *  @see java.text.SimpleDateFormat
  */
-public class CurrentTimePlugin implements WikiPlugin
-{
+public class CurrentTimePlugin implements Plugin {
+
     // private static Logger log = Logger.getLogger( CurrentTimePlugin.class );
 
     /**
      *  {@inheritDoc}
      */
-    public String execute( WikiContext context, Map<String, String> params )
-        throws PluginException
-    {
-        String formatString = params.get("format");
-        
-        try
-        {
-            SimpleDateFormat fmt;
-            
-            if( formatString != null )
-            {
+    @Override
+    public String execute( final Context context, final Map< String, String > params ) throws PluginException {
+        final String formatString = params.get( "format" );
+
+        try {
+            final SimpleDateFormat fmt;
+            if( formatString != null ) {
                 fmt = new SimpleDateFormat( formatString );
-            }
-            else
-            {
+            } else {
                 fmt = Preferences.getDateFormat( context, TimeFormat.DATETIME );
             }
 
-            Date d = new Date();  // Now.
+            final Date d = new Date();  // Now.
 
             return fmt.format( d );
-        }
-        catch( IllegalArgumentException e )
-        {
-            ResourceBundle rb = Preferences.getBundle( context, WikiPlugin.CORE_PLUGINS_RESOURCEBUNDLE );
-            
-            throw new PluginException( rb.getString("currenttimeplugin.badformat") + e.getMessage() );
+        } catch( final IllegalArgumentException e ) {
+            final ResourceBundle rb = Preferences.getBundle( context, WikiPlugin.CORE_PLUGINS_RESOURCEBUNDLE );
+
+            throw new PluginException( rb.getString( "currenttimeplugin.badformat" ) + e.getMessage() );
         }
     }
 
diff --git a/jspwiki-main/src/main/java/org/apache/wiki/plugin/DefaultPluginManager.java b/jspwiki-main/src/main/java/org/apache/wiki/plugin/DefaultPluginManager.java
index 8515af7..c6ee77a 100644
--- a/jspwiki-main/src/main/java/org/apache/wiki/plugin/DefaultPluginManager.java
+++ b/jspwiki-main/src/main/java/org/apache/wiki/plugin/DefaultPluginManager.java
@@ -33,6 +33,7 @@ import org.apache.wiki.InternalWikiException;
 import org.apache.wiki.WikiContext;
 import org.apache.wiki.ajax.WikiAjaxDispatcherServlet;
 import org.apache.wiki.ajax.WikiAjaxServlet;
+import org.apache.wiki.api.core.Context;
 import org.apache.wiki.api.core.Engine;
 import org.apache.wiki.api.exceptions.PluginException;
 import org.apache.wiki.api.plugin.InitializablePlugin;
@@ -315,7 +316,7 @@ public class DefaultPluginManager extends BaseModuleManager implements PluginMan
      *  @since 2.0
      */
     @Override
-    public String execute( final WikiContext context, final String classname, final Map< String, String > params ) throws PluginException {
+    public String execute( final Context context, final String classname, final Map< String, String > params ) throws PluginException {
         if( !m_pluginsEnabled ) {
             return "";
         }
@@ -323,17 +324,13 @@ public class DefaultPluginManager extends BaseModuleManager implements PluginMan
         final ResourceBundle rb = Preferences.getBundle( context, WikiPlugin.CORE_PLUGINS_RESOURCEBUNDLE );
         final boolean debug = TextUtil.isPositive( params.get( PARAM_DEBUG ) );
         try {
-            //
             //   Create...
-            //
             final WikiPlugin plugin = newWikiPlugin( classname, rb );
             if( plugin == null ) {
                 return "Plugin '" + classname + "' not compatible with this version of JSPWiki";
             }
 
-            //
             //  ...and launch.
-            //
             try {
                 return plugin.execute( context, params );
             } catch( final PluginException e ) {
diff --git a/jspwiki-main/src/main/java/org/apache/wiki/plugin/Denounce.java b/jspwiki-main/src/main/java/org/apache/wiki/plugin/Denounce.java
index 55b8bbf..1f5ebbe 100644
--- a/jspwiki-main/src/main/java/org/apache/wiki/plugin/Denounce.java
+++ b/jspwiki-main/src/main/java/org/apache/wiki/plugin/Denounce.java
@@ -20,17 +20,6 @@
  */
 package org.apache.wiki.plugin;
 
-import java.io.IOException;
-import java.io.InputStream;
-import java.util.ArrayList;
-import java.util.Enumeration;
-import java.util.Iterator;
-import java.util.List;
-import java.util.Map;
-import java.util.Properties;
-
-import javax.servlet.http.HttpServletRequest;
-
 import org.apache.log4j.Logger;
 import org.apache.oro.text.GlobCompiler;
 import org.apache.oro.text.regex.MalformedPatternException;
@@ -38,11 +27,20 @@ import org.apache.oro.text.regex.Pattern;
 import org.apache.oro.text.regex.PatternCompiler;
 import org.apache.oro.text.regex.PatternMatcher;
 import org.apache.oro.text.regex.Perl5Matcher;
-import org.apache.wiki.WikiContext;
+import org.apache.wiki.api.core.Context;
 import org.apache.wiki.api.exceptions.PluginException;
-import org.apache.wiki.api.plugin.WikiPlugin;
+import org.apache.wiki.api.plugin.Plugin;
 import org.apache.wiki.util.TextUtil;
 
+import javax.servlet.http.HttpServletRequest;
+import java.io.IOException;
+import java.io.InputStream;
+import java.util.ArrayList;
+import java.util.Enumeration;
+import java.util.List;
+import java.util.Map;
+import java.util.Properties;
+
 /**
  *  Denounces a link by removing it from any search engine.
  *  <br> The bots are listed in org/apache/wiki/plugin/denounce.properties.
@@ -55,9 +53,9 @@ import org.apache.wiki.util.TextUtil;
  *
  *  @since 2.1.40.
  */
-public class Denounce implements WikiPlugin
-{
-    private static Logger     log = Logger.getLogger(Denounce.class);
+public class Denounce implements Plugin {
+
+    private static final Logger log = Logger.getLogger(Denounce.class);
 
     /** Parameter name for setting the link.  Value is <tt>{@value}</tt>. */
     public static final String PARAM_LINK = "link";
@@ -85,24 +83,24 @@ public class Denounce implements WikiPlugin
     {
         try
         {
-            PatternCompiler compiler = new GlobCompiler();
-            ClassLoader loader = Denounce.class.getClassLoader();
+            final PatternCompiler compiler = new GlobCompiler();
+            final ClassLoader loader = Denounce.class.getClassLoader();
 
-            InputStream in = loader.getResourceAsStream( PROPERTYFILE );
+            final InputStream in = loader.getResourceAsStream( PROPERTYFILE );
 
             if( in == null )
             {
                 throw new IOException("No property file found! (Check the installation, it should be there.)");
             }
 
-            Properties props = new Properties();
+            final Properties props = new Properties();
             props.load( in );
 
             c_denounceText = props.getProperty( PROP_DENOUNCETEXT, c_denounceText );
 
-            for( Enumeration< ? > e = props.propertyNames(); e.hasMoreElements(); )
+            for( final Enumeration< ? > e = props.propertyNames(); e.hasMoreElements(); )
             {
-                String name = (String) e.nextElement();
+                final String name = (String) e.nextElement();
 
                 try
                 {
@@ -119,7 +117,7 @@ public class Denounce implements WikiPlugin
                         c_hostPatterns.add( compiler.compile( props.getProperty(name) ) );
                     }
                 }
-                catch( MalformedPatternException ex )
+                catch( final MalformedPatternException ex )
                 {
                     log.error( "Malformed URL pattern in "+PROPERTYFILE+": "+props.getProperty(name), ex );
                 }
@@ -127,11 +125,11 @@ public class Denounce implements WikiPlugin
 
             log.debug("Added "+c_refererPatterns.size()+c_agentPatterns.size()+c_hostPatterns.size()+" crawlers to denounce list.");
         }
-        catch( IOException e )
+        catch( final IOException e )
         {
             log.error( "Unable to load URL patterns from "+PROPERTYFILE, e );
         }
-        catch( Exception e )
+        catch( final Exception e )
         {
             log.error( "Unable to initialize Denounce plugin", e );
         }
@@ -141,10 +139,8 @@ public class Denounce implements WikiPlugin
      *  {@inheritDoc}
      */
     @Override
-    public String execute( WikiContext context, Map<String, String> params )
-        throws PluginException
-    {
-        String link = params.get( PARAM_LINK );
+    public String execute( final Context context, final Map<String, String> params ) throws PluginException {
+        final String link = params.get( PARAM_LINK );
         String text = params.get( PARAM_TEXT );
         boolean linkAllowed = true;
 
@@ -153,7 +149,7 @@ public class Denounce implements WikiPlugin
             throw new PluginException("Denounce: No parameter "+PARAM_LINK+" defined!");
         }
 
-        HttpServletRequest request = context.getHttpRequest();
+        final HttpServletRequest request = context.getHttpRequest();
 
         if( request != null )
         {
@@ -174,14 +170,10 @@ public class Denounce implements WikiPlugin
     /**
      *  Returns true, if the path is found among the referers.
      */
-    private boolean matchPattern( List< Pattern > list, String path )
-    {
-        PatternMatcher matcher = new Perl5Matcher();
-
-        for( Iterator< Pattern > i = list.iterator(); i.hasNext(); )
-        {
-            if( matcher.matches( path, i.next() ) )
-            {
+    private boolean matchPattern( final List< Pattern > list, final String path ) {
+        final PatternMatcher matcher = new Perl5Matcher();
+        for( final Pattern pattern : list ) {
+            if( matcher.matches( path, pattern ) ) {
                 return true;
             }
         }
@@ -191,13 +183,13 @@ public class Denounce implements WikiPlugin
 
     // FIXME: Should really return immediately when a match is found.
 
-    private boolean matchHeaders( HttpServletRequest request )
+    private boolean matchHeaders( final HttpServletRequest request )
     {
         //
         //  User Agent
         //
 
-        String userAgent = request.getHeader("User-Agent");
+        final String userAgent = request.getHeader("User-Agent");
 
         if( userAgent != null && matchPattern( c_agentPatterns, userAgent ) )
         {
@@ -209,7 +201,7 @@ public class Denounce implements WikiPlugin
         //  Referrer header
         //
 
-        String refererPath = request.getHeader("Referer");
+        final String refererPath = request.getHeader("Referer");
 
         if( refererPath != null && matchPattern( c_refererPatterns, refererPath ) )
         {
@@ -221,7 +213,7 @@ public class Denounce implements WikiPlugin
         //  Host
         //
 
-        String host = request.getRemoteHost();
+        final String host = request.getRemoteHost();
 
         if( host != null && matchPattern( c_hostPatterns, host ) )
         {
diff --git a/jspwiki-main/src/main/java/org/apache/wiki/plugin/Groups.java b/jspwiki-main/src/main/java/org/apache/wiki/plugin/Groups.java
index 1e5facc..f3f3808 100644
--- a/jspwiki-main/src/main/java/org/apache/wiki/plugin/Groups.java
+++ b/jspwiki-main/src/main/java/org/apache/wiki/plugin/Groups.java
@@ -19,9 +19,10 @@
 package org.apache.wiki.plugin;
 
 import org.apache.wiki.WikiContext;
+import org.apache.wiki.api.core.Context;
 import org.apache.wiki.api.core.Engine;
 import org.apache.wiki.api.exceptions.PluginException;
-import org.apache.wiki.api.plugin.WikiPlugin;
+import org.apache.wiki.api.plugin.Plugin;
 import org.apache.wiki.auth.authorize.GroupManager;
 import org.apache.wiki.url.URLConstructor;
 import org.apache.wiki.util.comparators.PrincipalComparator;
@@ -40,7 +41,7 @@ import java.util.Map;
  *
  *  @since 2.4.19
  */
-public class Groups implements WikiPlugin {
+public class Groups implements Plugin {
 
     private static final Comparator<Principal> COMPARATOR = new PrincipalComparator();
     
@@ -48,7 +49,7 @@ public class Groups implements WikiPlugin {
      *  {@inheritDoc}
      */
     @Override
-    public String execute( final WikiContext context, final Map<String, String> params ) throws PluginException {
+    public String execute( final Context context, final Map<String, String> params ) throws PluginException {
         // Retrieve groups, and sort by name
         final Engine engine = context.getEngine();
         final GroupManager groupMgr = engine.getManager( GroupManager.class );
diff --git a/jspwiki-main/src/main/java/org/apache/wiki/plugin/IfPlugin.java b/jspwiki-main/src/main/java/org/apache/wiki/plugin/IfPlugin.java
index 4461a77..61ec79a 100644
--- a/jspwiki-main/src/main/java/org/apache/wiki/plugin/IfPlugin.java
+++ b/jspwiki-main/src/main/java/org/apache/wiki/plugin/IfPlugin.java
@@ -26,10 +26,10 @@ import org.apache.oro.text.regex.PatternCompiler;
 import org.apache.oro.text.regex.PatternMatcher;
 import org.apache.oro.text.regex.Perl5Compiler;
 import org.apache.oro.text.regex.Perl5Matcher;
-import org.apache.wiki.WikiContext;
-import org.apache.wiki.WikiProvider;
+import org.apache.wiki.api.core.Context;
 import org.apache.wiki.api.exceptions.PluginException;
-import org.apache.wiki.api.plugin.WikiPlugin;
+import org.apache.wiki.api.plugin.Plugin;
+import org.apache.wiki.api.providers.WikiProvider;
 import org.apache.wiki.auth.AuthorizationManager;
 import org.apache.wiki.pages.PageManager;
 import org.apache.wiki.render.RenderingManager;
@@ -109,13 +109,13 @@ import java.util.Map;
  *
  *  <p>The functional, decision-making part of this plugin may be called from
  *  other code (e.g., other plugins) since it is available as a static method
- *  {@link #ifInclude(WikiContext,Map)}. Note that the plugin body may contain
+ *  {@link #ifInclude(Context,Map)}. Note that the plugin body may contain
  *  references to other plugins.</p>
  *
  *  @since 2.6
  */
-public class IfPlugin implements WikiPlugin
-{
+public class IfPlugin implements Plugin {
+
     /** The parameter name for setting the group to check.  Value is <tt>{@value}</tt>. */
     public static final String PARAM_GROUP    = "group";
 
@@ -143,7 +143,8 @@ public class IfPlugin implements WikiPlugin
     /**
      *  {@inheritDoc}
      */
-    @Override public String execute( final WikiContext context, final Map< String, String > params ) throws PluginException {
+    @Override 
+    public String execute( final Context context, final Map< String, String > params ) throws PluginException {
         return ifInclude( context,params )
                 ? context.getEngine().getManager( RenderingManager.class ).textToHTML( context, params.get( DefaultPluginManager.PARAM_BODY ) )
                 : "" ;
@@ -161,7 +162,7 @@ public class IfPlugin implements WikiPlugin
      * @throws PluginException If something goes wrong
      * @return True, if the condition holds.
      */
-    public static boolean ifInclude( final WikiContext context, final Map< String, String > params ) throws PluginException {
+    public static boolean ifInclude( final Context context, final Map< String, String > params ) throws PluginException {
         final String group    = params.get( PARAM_GROUP );
         final String user     = params.get( PARAM_USER );
         final String ip       = params.get( PARAM_IP );
@@ -192,7 +193,7 @@ public class IfPlugin implements WikiPlugin
         return include;
     }
 
-    private static boolean checkExists( final WikiContext context, final String page, final String exists ) {
+    private static boolean checkExists( final Context context, final String page, final String exists ) {
         if( exists == null ) {
             return false;
         }
@@ -206,7 +207,7 @@ public class IfPlugin implements WikiPlugin
         return varContent == null ^ TextUtil.isPositive( exists );
     }
 
-    private static boolean checkGroup( final WikiContext context, final String group ) {
+    private static boolean checkGroup( final Context context, final String group ) {
         if( group == null ) {
             return false;
         }
@@ -230,7 +231,7 @@ public class IfPlugin implements WikiPlugin
         return include;
     }
 
-    private static boolean checkUser( final WikiContext context, final String user ) {
+    private static boolean checkUser( final Context context, final String user ) {
         if( user == null || context.getCurrentUser() == null ) {
             return false;
         }
@@ -255,7 +256,7 @@ public class IfPlugin implements WikiPlugin
     }
 
     // TODO: Add subnetwork matching, e.g. 10.0.0.0/8
-    private static boolean checkIP( final WikiContext context, final String ipaddr ) {
+    private static boolean checkIP( final Context context, final String ipaddr ) {
         if( ipaddr == null || context.getHttpRequest() == null ) {
             return false;
         }
diff --git a/jspwiki-main/src/main/java/org/apache/wiki/plugin/Image.java b/jspwiki-main/src/main/java/org/apache/wiki/plugin/Image.java
index 16f7811..96d3bd0 100644
--- a/jspwiki-main/src/main/java/org/apache/wiki/plugin/Image.java
+++ b/jspwiki-main/src/main/java/org/apache/wiki/plugin/Image.java
@@ -19,10 +19,11 @@
 package org.apache.wiki.plugin;
 
 import org.apache.wiki.WikiContext;
+import org.apache.wiki.api.core.Context;
 import org.apache.wiki.api.core.Engine;
 import org.apache.wiki.api.exceptions.PluginException;
 import org.apache.wiki.api.exceptions.ProviderException;
-import org.apache.wiki.api.plugin.WikiPlugin;
+import org.apache.wiki.api.plugin.Plugin;
 import org.apache.wiki.attachment.Attachment;
 import org.apache.wiki.attachment.AttachmentManager;
 import org.apache.wiki.util.TextUtil;
@@ -51,12 +52,10 @@ import java.util.Map;
  *
  *  @since 2.1.4.
  */
-// FIXME: It is not yet possible to do wiki internal links.  In order to
-//        do this cleanly, a TranslatorReader revamp is needed.
+// FIXME: It is not yet possible to do wiki internal links.  In order to do this cleanly, a TranslatorReader revamp is needed.
+
+public class Image implements Plugin {
 
-public class Image
-    implements WikiPlugin
-{
     /** The parameter name for setting the src.  Value is <tt>{@value}</tt>. */
     public static final String PARAM_SRC      = "src";
     /** The parameter name for setting the align.  Value is <tt>{@value}</tt>. */
@@ -87,98 +86,81 @@ public class Image
      *  This method is used to clean away things like quotation marks which
      *  a malicious user could use to stop processing and insert javascript.
      */
-    private static String getCleanParameter( final Map<String, String> params, final String paramId )
-    {
+    private static String getCleanParameter( final Map< String, String > params, final String paramId ) {
         return TextUtil.replaceEntities( params.get( paramId ) );
     }
 
     /**
      *  {@inheritDoc}
      */
-    @Override public String execute( final WikiContext context, final Map<String, String> params )
-        throws PluginException
-    {
-        final Engine engine = context.getEngine();
-        String src     = getCleanParameter( params, PARAM_SRC );
+    @Override
+    public String execute( final Context context, final Map<String, String> params ) throws PluginException {
+        final Engine engine  = context.getEngine();
+        String src           = getCleanParameter( params, PARAM_SRC );
         final String align   = getCleanParameter( params, PARAM_ALIGN );
         final String ht      = getCleanParameter( params, PARAM_HEIGHT );
         final String wt      = getCleanParameter( params, PARAM_WIDTH );
         final String alt     = getCleanParameter( params, PARAM_ALT );
         final String caption = getCleanParameter( params, PARAM_CAPTION );
         final String link    = getCleanParameter( params, PARAM_LINK );
-        String target  = getCleanParameter( params, PARAM_TARGET );
+        String target        = getCleanParameter( params, PARAM_TARGET );
         final String style   = getCleanParameter( params, PARAM_STYLE );
         final String cssclass= getCleanParameter( params, PARAM_CLASS );
-        // String map     = getCleanParameter( params, PARAM_MAP );
+        // String map        = getCleanParameter( params, PARAM_MAP );
         final String border  = getCleanParameter( params, PARAM_BORDER );
         final String title   = getCleanParameter( params, PARAM_TITLE );
 
-        if( src == null )
-        {
+        if( src == null ) {
             throw new PluginException("Parameter 'src' is required for Image plugin");
         }
 
         //if( cssclass == null ) cssclass = "imageplugin";
 
-        if( target != null && !validTargetValue(target) )
-        {
+        if( target != null && !validTargetValue(target) ) {
             target = null; // not a valid value so ignore
         }
 
-        try
-        {
+        try {
             final AttachmentManager mgr = engine.getManager( AttachmentManager.class );
-            final Attachment        att = mgr.getAttachmentInfo( context, src );
+            final Attachment att = mgr.getAttachmentInfo( context, src );
 
-            if( att != null )
-            {
+            if( att != null ) {
                 src = context.getURL( WikiContext.ATTACH, att.getName() );
             }
-        }
-        catch( final ProviderException e )
-        {
-            throw new PluginException( "Attachment info failed: "+e.getMessage() );
+        } catch( final ProviderException e ) {
+            throw new PluginException( "Attachment info failed: " + e.getMessage() );
         }
 
         final StringBuilder result = new StringBuilder();
 
         result.append( "<table border=\"0\" class=\"imageplugin\"" );
 
-        if( title != null )
-        {
-            result.append(" title=\""+title+"\"");
+        if( title != null ) {
+            result.append( " title=\"" + title + "\"" );
         }
 
-        if( align != null )
-        {
-            if( align.equals("center") )
-            {
-                result.append(" style=\"margin-left: auto; margin-right: auto; text-align:center; vertical-align:middle;\"");
-            }
-            else
-            {
-                result.append(" style=\"float:" + align + ";\"");
+        if( align != null ) {
+            if( align.equals( "center" ) ) {
+                result.append( " style=\"margin-left: auto; margin-right: auto; text-align:center; vertical-align:middle;\"" );
+            } else {
+                result.append( " style=\"float:" + align + ";\"" );
             }
         }
 
         result.append( ">\n" );
 
-        if( caption != null )
-        {
-            result.append("<caption>"+caption+"</caption>\n");
+        if( caption != null ) {
+            result.append( "<caption>" + caption + "</caption>\n" );
         }
 
-        //move css class and style to the container of the image,
-        //so it doesn't affect the caption
+        // move css class and style to the container of the image, so it doesn't affect the caption
         result.append( "<tr><td" );
 
-        if( cssclass != null )
-        {
+        if( cssclass != null ) {
             result.append(" class=\""+cssclass+"\"");
         }
 
-        if( style != null )
-        {
+        if( style != null ) {
             result.append(" style=\""+style);
 
             // Make sure that we add a ";" to the end of the style string
@@ -189,11 +171,9 @@ public class Image
 
         result.append( ">" );
 
-        if( link != null )
-        {
+        if( link != null ) {
             result.append("<a href=\""+link+"\"");
-            if( target != null )
-            {
+            if( target != null ) {
                 result.append(" target=\""+target+"\"");
             }
             result.append(">");
@@ -201,16 +181,25 @@ public class Image
 
         result.append( "<img src=\""+src+"\"" );
 
-        if( ht != null )     result.append(" height=\""+ht+"\"");
-        if( wt != null )     result.append(" width=\""+wt+"\"");
-        if( alt != null )    result.append(" alt=\""+alt+"\"");
-        if( border != null ) result.append(" border=\""+border+"\"");
+        if( ht != null ) {
+            result.append(" height=\""+ht+"\"");
+        }
+        if( wt != null ) {
+            result.append(" width=\""+wt+"\"");
+        }
+        if( alt != null ) {
+            result.append(" alt=\""+alt+"\"");
+        }
+        if( border != null ) {
+            result.append(" border=\""+border+"\"");
+        }
         // if( map != null )    result.append(" map=\""+map+"\"");
 
         result.append(" />");
-        if( link != null )  result.append("</a>");
+        if( link != null ) {
+            result.append("</a>");
+        }
         result.append("</td></tr>\n");
-
         result.append("</table>\n");
 
         return result.toString();
diff --git a/jspwiki-main/src/main/java/org/apache/wiki/plugin/IndexPlugin.java b/jspwiki-main/src/main/java/org/apache/wiki/plugin/IndexPlugin.java
index 3147d49..d062319 100644
--- a/jspwiki-main/src/main/java/org/apache/wiki/plugin/IndexPlugin.java
+++ b/jspwiki-main/src/main/java/org/apache/wiki/plugin/IndexPlugin.java
@@ -21,9 +21,10 @@ package org.apache.wiki.plugin;
 
 import org.apache.log4j.Logger;
 import org.apache.wiki.WikiContext;
+import org.apache.wiki.api.core.Context;
 import org.apache.wiki.api.exceptions.PluginException;
 import org.apache.wiki.api.exceptions.ProviderException;
-import org.apache.wiki.api.plugin.WikiPlugin;
+import org.apache.wiki.api.plugin.Plugin;
 import org.apache.wiki.pages.PageManager;
 import org.apache.wiki.references.ReferenceManager;
 import org.jdom2.Element;
@@ -32,14 +33,13 @@ import org.jdom2.output.Format;
 import org.jdom2.output.XMLOutputter;
 
 import java.util.ArrayList;
-import java.util.Iterator;
 import java.util.List;
 import java.util.Map;
 import java.util.Set;
 import java.util.regex.Pattern;
 
 /**
- *  A WikiPlugin that creates an index of pages according to a certain pattern.
+ *  A Plugin that creates an index of pages according to a certain pattern.
  *  <br />
  *  The default is to include all pages.
  *  <p>
@@ -55,17 +55,17 @@ import java.util.regex.Pattern;
  *  
  * @author Ichiro Furusato
  */
-public class IndexPlugin extends AbstractReferralPlugin implements WikiPlugin
-{
-    private static Logger log = Logger.getLogger(IndexPlugin.class);
+public class IndexPlugin extends AbstractReferralPlugin implements Plugin {
+
+    private static final Logger log = Logger.getLogger(IndexPlugin.class);
 
     private Namespace xmlns_XHTML = Namespace.getNamespace("http://www.w3.org/1999/xhtml");
     
     /**
      * {@inheritDoc}
      */
-    @Override public String execute( final WikiContext context, final Map<String,String> params ) throws PluginException
-    {
+    @Override
+    public String execute( final Context context, final Map<String,String> params ) throws PluginException {
         final String include = params.get(PARAM_INCLUDE);
         final String exclude = params.get(PARAM_EXCLUDE);
         
@@ -102,34 +102,27 @@ public class IndexPlugin extends AbstractReferralPlugin implements WikiPlugin
         return out.outputString(masterDiv);
     }
 
-
-    private Element getLink( final String href, final String content )
-    {
-        final Element a = new Element("a",xmlns_XHTML);
-        a.setAttribute("href",href);
-        a.addContent(content);
+    private Element getLink( final String href, final String content ) {
+        final Element a = new Element( "a", xmlns_XHTML );
+        a.setAttribute( "href", href );
+        a.addContent( content );
         return a;
     }
 
-    
-    private Element makeHeader( final String initialChar )
-    {
-        final Element span = getElement("span","section");
-        final Element a = new Element("a",xmlns_XHTML);
-        a.setAttribute("id",initialChar);
-        a.addContent(initialChar);
-        span.addContent(a);
+    private Element makeHeader( final String initialChar ) {
+        final Element span = getElement( "span", "section" );
+        final Element a = new Element( "a", xmlns_XHTML );
+        a.setAttribute( "id", initialChar );
+        a.addContent( initialChar );
+        span.addContent( a );
         return span;
     }
 
-    
-    private Element getElement( final String gi, final String classValue )
-    {
-        final Element elt = new Element(gi,xmlns_XHTML);
-        elt.setAttribute("class",classValue);
+    private Element getElement( final String gi, final String classValue ) {
+        final Element elt = new Element( gi, xmlns_XHTML );
+        elt.setAttribute( "class", classValue );
         return elt;
     }
-    
 
     /**
      *  Grabs a list of all pages and filters them according to the include/exclude patterns.
@@ -140,15 +133,16 @@ public class IndexPlugin extends AbstractReferralPlugin implements WikiPlugin
      * @return A list containing page names which matched the filters.
      * @throws ProviderException
      */
-    private List<String> listPages( final WikiContext context, final String include, final String exclude ) throws ProviderException {
+    private List<String> listPages( final Context context, final String include, final String exclude ) throws ProviderException {
         final Pattern includePtrn = include != null ? Pattern.compile( include ) : Pattern.compile(".*");
         final Pattern excludePtrn = exclude != null ? Pattern.compile( exclude ) : Pattern.compile("\\p{Cntrl}"); // there are no control characters in page names
         final List< String > result = new ArrayList<>();
         final Set< String > pages = context.getEngine().getManager( ReferenceManager.class ).findCreated();
-        for ( final Iterator<String> i = pages.iterator(); i.hasNext(); ) {
-            final String pageName = i.next();
-            if ( excludePtrn.matcher( pageName ).matches() ) continue;
-            if ( includePtrn.matcher( pageName ).matches() ) {
+        for( final String pageName : pages ) {
+            if( excludePtrn.matcher( pageName ).matches() ) {
+                continue;
+            }
+            if( includePtrn.matcher( pageName ).matches() ) {
                 result.add( pageName );
             }
         }
diff --git a/jspwiki-main/src/main/java/org/apache/wiki/plugin/InsertPage.java b/jspwiki-main/src/main/java/org/apache/wiki/plugin/InsertPage.java
index 2cca1b4..1553a20 100644
--- a/jspwiki-main/src/main/java/org/apache/wiki/plugin/InsertPage.java
+++ b/jspwiki-main/src/main/java/org/apache/wiki/plugin/InsertPage.java
@@ -20,9 +20,11 @@ package org.apache.wiki.plugin;
 
 import org.apache.wiki.WikiContext;
 import org.apache.wiki.WikiPage;
+import org.apache.wiki.api.core.Context;
 import org.apache.wiki.api.core.Engine;
 import org.apache.wiki.api.exceptions.PluginException;
 import org.apache.wiki.api.exceptions.ProviderException;
+import org.apache.wiki.api.plugin.Plugin;
 import org.apache.wiki.api.plugin.WikiPlugin;
 import org.apache.wiki.auth.AuthorizationManager;
 import org.apache.wiki.auth.permissions.PermissionFactory;
@@ -53,9 +55,8 @@ import java.util.ResourceBundle;
  *
  *  @since 2.1.37
  */
-public class InsertPage
-    implements WikiPlugin
-{
+public class InsertPage implements Plugin {
+
     /** Parameter name for setting the page.  Value is <tt>{@value}</tt>. */
     public static final String PARAM_PAGENAME  = "page";
     /** Parameter name for setting the style.  Value is <tt>{@value}</tt>. */
@@ -75,37 +76,37 @@ public class InsertPage
 
     private static final String ONCE_COOKIE = "JSPWiki.Once.";
 
-    /** This attribute is stashed in the WikiContext to make sure that we don't
-     *  have circular references.
-     */
+    /** This attribute is stashed in the WikiContext to make sure that we don't have circular references. */
     public static final String ATTR_RECURSE    = "org.apache.wiki.plugin.InsertPage.recurseCheck";
 
     /**
      *  {@inheritDoc}
      */
     @Override @SuppressWarnings("unchecked")
-    public String execute( final WikiContext context, final Map<String, String> params ) throws PluginException {
+    public String execute( final Context context, final Map<String, String> params ) throws PluginException {
         final Engine engine = context.getEngine();
 
         final StringBuilder res = new StringBuilder();
 
         final String clazz        = params.get( PARAM_CLASS );
         final String includedPage = params.get( PARAM_PAGENAME );
-        String style        = params.get( PARAM_STYLE );
-        final Boolean showOnce    = "once".equals( params.get( PARAM_SHOW ) );
+        String style              = params.get( PARAM_STYLE );
+        final boolean showOnce    = "once".equals( params.get( PARAM_SHOW ) );
         final String defaultstr   = params.get( PARAM_DEFAULT );
-        final int    section      = TextUtil.parseIntParameter(params.get( PARAM_SECTION ), -1 );
-        int    maxlen       = TextUtil.parseIntParameter(params.get( PARAM_MAXLENGTH ), -1 );
+        final int section         = TextUtil.parseIntParameter(params.get( PARAM_SECTION ), -1 );
+        int maxlen                = TextUtil.parseIntParameter(params.get( PARAM_MAXLENGTH ), -1 );
 
         final ResourceBundle rb = Preferences.getBundle( context, WikiPlugin.CORE_PLUGINS_RESOURCEBUNDLE );
 
+        if( style == null ) {
+            style = DEFAULT_STYLE;
+        }
 
-        if( style == null ) style = DEFAULT_STYLE;
-
-        if( maxlen == -1 ) maxlen = Integer.MAX_VALUE;
+        if( maxlen == -1 ) {
+            maxlen = Integer.MAX_VALUE;
+        }
 
-        if( includedPage != null )
-        {
+        if( includedPage != null ) {
             final WikiPage page;
             try {
                 final String pageName = engine.getFinalPageName( includedPage );
@@ -119,29 +120,19 @@ public class InsertPage
                 return res.toString();
             }
 
-            if( page != null )
-            {
-                //
+            if( page != null ) {
                 //  Check for recursivity
-                //
-
-                List<String> previousIncludes = (List<String>)context.getVariable( ATTR_RECURSE );
+                List<String> previousIncludes = context.getVariable( ATTR_RECURSE );
 
-                if( previousIncludes != null )
-                {
-                    if( previousIncludes.contains( page.getName() ) )
-                    {
+                if( previousIncludes != null ) {
+                    if( previousIncludes.contains( page.getName() ) ) {
                         return "<span class=\"error\">Error: Circular reference - you can't include a page in itself!</span>";
                     }
-                }
-                else
-                {
+                } else {
                     previousIncludes = new ArrayList<>();
                 }
 
-                //
                 // Check for permissions
-                //
                 final AuthorizationManager mgr = engine.getManager( AuthorizationManager.class );
 
                 if( !mgr.checkPermission( context.getWikiSession(), PermissionFactory.getPagePermission( page, "view") ) ) {
@@ -149,10 +140,8 @@ public class InsertPage
                     return res.toString();
                 }
 
-                //
                 // Show Once
                 // Check for page-cookie, only include page if cookie is not yet set
-                //
                 String cookieName = "";
 
                 if( showOnce ) {
@@ -187,8 +176,7 @@ public class InsertPage
                     }
                 }
 
-                if( pageData.length() > maxlen )
-                {
+                if( pageData.length() > maxlen ) {
                     pageData = pageData.substring( 0, maxlen )+" ...";
                     moreLink = "<p><a href=\""+context.getURL(WikiContext.VIEW,includedPage)+"\">"+rb.getString("insertpage.more")+"</a></p>";
                 }
@@ -209,27 +197,19 @@ public class InsertPage
                 //
                 previousIncludes.remove( page.getName() );
                 context.setVariable( ATTR_RECURSE, previousIncludes );
-            }
-            else
-            {
-                if( defaultstr != null )
-                {
+            } else {
+                if( defaultstr != null ) {
                     res.append( defaultstr );
-                }
-                else
-                {
-                    res.append("There is no page called '"+includedPage+"'.  Would you like to ");
-                    res.append("<a href=\""+context.getURL( WikiContext.EDIT, includedPage )+"\">create it?</a>");
+                } else {
+                    res.append( "There is no page called '" + includedPage + "'.  Would you like to " );
+                    res.append( "<a href=\"" + context.getURL( WikiContext.EDIT, includedPage ) + "\">create it?</a>" );
                 }
             }
+        } else {
+            res.append( "<span class=\"error\">" );
+            res.append( "You have to define a page!" );
+            res.append( "</span>" );
         }
-        else
-        {
-            res.append("<span class=\"error\">");
-            res.append("You have to define a page!");
-            res.append("</span>");
-        }
-
         return res.toString();
     }
 
diff --git a/jspwiki-main/src/main/java/org/apache/wiki/plugin/ListLocksPlugin.java b/jspwiki-main/src/main/java/org/apache/wiki/plugin/ListLocksPlugin.java
index d88b00e..5ae6037 100644
--- a/jspwiki-main/src/main/java/org/apache/wiki/plugin/ListLocksPlugin.java
+++ b/jspwiki-main/src/main/java/org/apache/wiki/plugin/ListLocksPlugin.java
@@ -18,8 +18,9 @@
  */
 package org.apache.wiki.plugin;
 
-import org.apache.wiki.WikiContext;
+import org.apache.wiki.api.core.Context;
 import org.apache.wiki.api.exceptions.PluginException;
+import org.apache.wiki.api.plugin.Plugin;
 import org.apache.wiki.api.plugin.WikiPlugin;
 import org.apache.wiki.pages.PageLock;
 import org.apache.wiki.pages.PageManager;
@@ -36,12 +37,13 @@ import java.util.ResourceBundle;
  *   NONE
  *  @since 2.0.22.
  */
-public class ListLocksPlugin implements WikiPlugin {
+public class ListLocksPlugin implements Plugin {
 
     /**
      *  {@inheritDoc}
      */
-    @Override public String execute( final WikiContext context, final Map< String, String > params ) throws PluginException {
+    @Override
+    public String execute( final Context context, final Map< String, String > params ) throws PluginException {
     	final StringBuilder result = new StringBuilder();
         final PageManager mgr = context.getEngine().getManager( PageManager.class );
         final List< PageLock > locks = mgr.getActiveLocks();
diff --git a/jspwiki-main/src/main/java/org/apache/wiki/plugin/Note.java b/jspwiki-main/src/main/java/org/apache/wiki/plugin/Note.java
index 4f9147d..ae90b30 100644
--- a/jspwiki-main/src/main/java/org/apache/wiki/plugin/Note.java
+++ b/jspwiki-main/src/main/java/org/apache/wiki/plugin/Note.java
@@ -21,9 +21,10 @@
 package org.apache.wiki.plugin;
 
 import org.apache.wiki.WikiContext;
+import org.apache.wiki.api.core.Context;
 import org.apache.wiki.api.core.Engine;
 import org.apache.wiki.api.exceptions.PluginException;
-import org.apache.wiki.api.plugin.WikiPlugin;
+import org.apache.wiki.api.plugin.Plugin;
 import org.apache.wiki.ui.TemplateManager;
 import org.apache.wiki.util.TextUtil;
 
@@ -46,26 +47,21 @@ import java.util.Map;
  *  </ul>
  *  
  */
-public class Note implements WikiPlugin
-{
-    /**
-     *  Property name for setting the image for the note.  Value is <tt>{@value}</tt>.
-     */
+public class Note implements Plugin {
+
+    /** Property name for setting the image for the note.  Value is <tt>{@value}</tt>. */
     public static final String PROP_NOTE_IMAGE    = "notePlugin.imageName";
     
-    /**
-     *  The default name for the note.  Value is <tt>{@value}</tt>.
-     */
+    /** The default name for the note.  Value is <tt>{@value}</tt>. */
     public static final String DEFAULT_NOTE_IMAGE = "note.png";
 
     /**
      *  {@inheritDoc}
      */
-    @Override public String execute( final WikiContext context, final Map<String, String> params) throws PluginException
-    {
+    @Override
+    public String execute( final Context context, final Map<String, String> params) throws PluginException {
         final String commandline = params.get(DefaultPluginManager.PARAM_CMDLINE);
-        if (commandline == null || commandline.length() == 0)
-        {
+        if (commandline == null || commandline.length() == 0) {
             return "Unable to obtain plugin command line from parameter'" + DefaultPluginManager.PARAM_CMDLINE + "'"; // I18N
         }
 
@@ -77,18 +73,15 @@ public class Note implements WikiPlugin
                commentText + "\" title=\"" + commentText + "\"/>";
     }
 
-    private String imageUrl( final WikiContext ctx )
-    {
+    private String imageUrl( final Context ctx ) {
         final Engine engine = ctx.getEngine();
-        String commentImage = engine.getWikiProperties().getProperty(PROP_NOTE_IMAGE,
-                                                                     DEFAULT_NOTE_IMAGE);
-
-        commentImage = "images/"+commentImage;
+        String commentImage = engine.getWikiProperties().getProperty( PROP_NOTE_IMAGE, DEFAULT_NOTE_IMAGE );
+        commentImage = "images/" + commentImage;
         
         String resource = engine.getManager( TemplateManager.class ).findResource( ctx, engine.getTemplateDir(), commentImage );
         
         // JSPWIKI-876 Fixed error with Note Plugin. Only one preceding "/" is needed.
-        if (resource != null && resource.startsWith("/")) {
+        if( resource != null && resource.startsWith( "/" ) ) {
         	resource = resource.substring(1);
         }
         return ctx.getURL( WikiContext.NONE, resource );
diff --git a/jspwiki-main/src/main/java/org/apache/wiki/plugin/PageViewPlugin.java b/jspwiki-main/src/main/java/org/apache/wiki/plugin/PageViewPlugin.java
index 7572450..2c041fb 100644
--- a/jspwiki-main/src/main/java/org/apache/wiki/plugin/PageViewPlugin.java
+++ b/jspwiki-main/src/main/java/org/apache/wiki/plugin/PageViewPlugin.java
@@ -29,11 +29,12 @@ import org.apache.oro.text.regex.PatternMatcher;
 import org.apache.oro.text.regex.Perl5Matcher;
 import org.apache.wiki.WikiBackgroundThread;
 import org.apache.wiki.WikiContext;
-import org.apache.wiki.WikiPage;
+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.PluginException;
 import org.apache.wiki.api.plugin.InitializablePlugin;
-import org.apache.wiki.api.plugin.WikiPlugin;
+import org.apache.wiki.api.plugin.Plugin;
 import org.apache.wiki.event.WikiEngineEvent;
 import org.apache.wiki.event.WikiEvent;
 import org.apache.wiki.event.WikiEventListener;
@@ -76,7 +77,7 @@ import java.util.TreeMap;
  * 
  * @since 2.8
  */
-public class PageViewPlugin extends AbstractReferralPlugin implements WikiPlugin, InitializablePlugin {
+public class PageViewPlugin extends AbstractReferralPlugin implements Plugin, InitializablePlugin {
 
     private static final Logger log = Logger.getLogger( PageViewPlugin.class );
 
@@ -156,7 +157,7 @@ public class PageViewPlugin extends AbstractReferralPlugin implements WikiPlugin
      *  {@inheritDoc}
      */
     @Override
-    public String execute( final WikiContext context, final Map< String, String > params ) throws PluginException {
+    public String execute( final Context context, final Map< String, String > params ) throws PluginException {
         final PageViewManager manager = c_singleton;
         String result = STR_EMPTY;
 
@@ -285,9 +286,9 @@ public class PageViewPlugin extends AbstractReferralPlugin implements WikiPlugin
          * @return String Wiki page snippet
          * @throws PluginException Malformed pattern parameter.
          */
-        public String execute( final WikiContext context, final Map< String, String > params ) throws PluginException {
+        public String execute( final Context context, final Map< String, String > params ) throws PluginException {
             final Engine engine = context.getEngine();
-            final WikiPage page = context.getPage();
+            final Page page = context.getPage();
             String result = STR_EMPTY;
 
             if( page != null ) {
diff --git a/jspwiki-main/src/main/java/org/apache/wiki/plugin/PluginManager.java b/jspwiki-main/src/main/java/org/apache/wiki/plugin/PluginManager.java
index a8fa7ad..2389695 100644
--- a/jspwiki-main/src/main/java/org/apache/wiki/plugin/PluginManager.java
+++ b/jspwiki-main/src/main/java/org/apache/wiki/plugin/PluginManager.java
@@ -20,6 +20,7 @@ package org.apache.wiki.plugin;
 
 import org.apache.oro.text.regex.Pattern;
 import org.apache.wiki.WikiContext;
+import org.apache.wiki.api.core.Context;
 import org.apache.wiki.api.exceptions.PluginException;
 import org.apache.wiki.api.plugin.WikiPlugin;
 import org.apache.wiki.modules.ModuleManager;
@@ -97,7 +98,7 @@ public interface PluginManager extends ModuleManager {
      *
      * @since 2.0
      */
-    String execute( WikiContext context, String classname, Map< String, String > params ) throws PluginException;
+    String execute( Context context, String classname, Map< String, String > params ) throws PluginException;
 
     /**
      * Parses plugin arguments.  Handles quotes and all other kewl stuff.
diff --git a/jspwiki-main/src/main/java/org/apache/wiki/plugin/RecentChangesPlugin.java b/jspwiki-main/src/main/java/org/apache/wiki/plugin/RecentChangesPlugin.java
index 4351603..1a60b8f 100644
--- a/jspwiki-main/src/main/java/org/apache/wiki/plugin/RecentChangesPlugin.java
+++ b/jspwiki-main/src/main/java/org/apache/wiki/plugin/RecentChangesPlugin.java
@@ -22,9 +22,10 @@ import org.apache.commons.lang3.StringUtils;
 import org.apache.log4j.Logger;
 import org.apache.wiki.WikiContext;
 import org.apache.wiki.WikiPage;
+import org.apache.wiki.api.core.Context;
 import org.apache.wiki.api.core.Engine;
 import org.apache.wiki.api.exceptions.PluginException;
-import org.apache.wiki.api.plugin.WikiPlugin;
+import org.apache.wiki.api.plugin.Plugin;
 import org.apache.wiki.attachment.Attachment;
 import org.apache.wiki.i18n.InternationalizationManager;
 import org.apache.wiki.pages.PageManager;
@@ -56,7 +57,7 @@ import java.util.Map;
  *  <li><b>dateFormat</b> - the date format to use, the default is "dd.MM.yyyy"</li>
  *  </ul>
  */
-public class RecentChangesPlugin extends AbstractReferralPlugin implements WikiPlugin {
+public class RecentChangesPlugin extends AbstractReferralPlugin implements Plugin {
 	
     private static final Logger log = Logger.getLogger( RecentChangesPlugin.class );
     
@@ -76,7 +77,8 @@ public class RecentChangesPlugin extends AbstractReferralPlugin implements WikiP
     /**
      * {@inheritDoc}
      */
-    @Override public String execute( final WikiContext context, final Map< String, String > params ) throws PluginException {
+    @Override
+    public String execute( final Context context, final Map< String, String > params ) throws PluginException {
         final int since = TextUtil.parseIntParameter( params.get( "since" ), DEFAULT_DAYS );
         String spacing  = "4";
         boolean showAuthor = true;
@@ -227,7 +229,7 @@ public class RecentChangesPlugin extends AbstractReferralPlugin implements WikiP
     // locale, but that is at odds with the 1st version of this plugin. We seek to preserve the
     // behaviour of that first version, so to get the default format, the user must explicitly do
     // something like: dateFormat='' timeformat='' which is a odd, but probably okay.
-    private DateFormat getTimeFormat( final WikiContext context, final Map< String, String > params ) {
+    private DateFormat getTimeFormat( final Context context, final Map< String, String > params ) {
         final String formatString = get( params, DEFAULT_TIME_FORMAT, PARAM_TIME_FORMAT );
         if( StringUtils.isBlank( formatString ) ) {
             return Preferences.getDateFormat( context, TimeFormat.TIME );
@@ -236,7 +238,7 @@ public class RecentChangesPlugin extends AbstractReferralPlugin implements WikiP
         return new SimpleDateFormat( formatString );
     }
 
-    private DateFormat getDateFormat( final WikiContext context, final Map< String, String > params ) {
+    private DateFormat getDateFormat( final Context context, final Map< String, String > params ) {
         final String formatString = get( params, DEFAULT_DATE_FORMAT, PARAM_DATE_FORMAT );
         if( StringUtils.isBlank( formatString ) ) {
             return Preferences.getDateFormat( context, TimeFormat.DATE );
diff --git a/jspwiki-main/src/main/java/org/apache/wiki/plugin/ReferredPagesPlugin.java b/jspwiki-main/src/main/java/org/apache/wiki/plugin/ReferredPagesPlugin.java
index ab4b122..f2f4fff 100644
--- a/jspwiki-main/src/main/java/org/apache/wiki/plugin/ReferredPagesPlugin.java
+++ b/jspwiki-main/src/main/java/org/apache/wiki/plugin/ReferredPagesPlugin.java
@@ -26,10 +26,11 @@ import org.apache.oro.text.regex.PatternMatcher;
 import org.apache.oro.text.regex.Perl5Compiler;
 import org.apache.oro.text.regex.Perl5Matcher;
 import org.apache.wiki.WikiContext;
-import org.apache.wiki.WikiPage;
+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.PluginException;
-import org.apache.wiki.api.plugin.WikiPlugin;
+import org.apache.wiki.api.plugin.Plugin;
 import org.apache.wiki.pages.PageManager;
 import org.apache.wiki.references.ReferenceManager;
 import org.apache.wiki.util.TextUtil;
@@ -54,7 +55,7 @@ import java.util.Map;
  *  </ul>
  *
  */
-public class ReferredPagesPlugin implements WikiPlugin {
+public class ReferredPagesPlugin implements Plugin {
 
     private static final Logger log = Logger.getLogger( ReferredPagesPlugin.class );
     private Engine         m_engine;
@@ -94,9 +95,10 @@ public class ReferredPagesPlugin implements WikiPlugin {
     /**
      *  {@inheritDoc}
      */
-    @Override public String execute( final WikiContext context, final Map<String, String> params ) throws PluginException {
+    @Override
+    public String execute( final Context context, final Map<String, String> params ) throws PluginException {
         m_engine = context.getEngine();
-        final WikiPage page = context.getPage();
+        final Page page = context.getPage();
         if( page == null ) {
             return "";
         }
@@ -179,7 +181,7 @@ public class ReferredPagesPlugin implements WikiPlugin {
     /**
      * Retrieves a list of all referred pages. Is called recursively depending on the depth parameter.
      */
-    private void getReferredPages( final WikiContext context, final String pagename, int depth ) {
+    private void getReferredPages( final Context context, final String pagename, int depth ) {
         if( depth >= m_depth ) {
             return;  // end of recursion
         }
@@ -195,7 +197,7 @@ public class ReferredPagesPlugin implements WikiPlugin {
         handleLinks( context, allPages, ++depth, pagename );
     }
 
-    private void handleLinks( final WikiContext context, final Collection<String> links, final int depth, final String pagename) {
+    private void handleLinks( final Context context, final Collection<String> links, final int depth, final String pagename) {
         boolean isUL = false;
         final HashSet< String > localLinkSet = new HashSet<>();  // needed to skip multiple
         // links to the same page
diff --git a/jspwiki-main/src/main/java/org/apache/wiki/plugin/ReferringPagesPlugin.java b/jspwiki-main/src/main/java/org/apache/wiki/plugin/ReferringPagesPlugin.java
index c889e92..2f5187f 100644
--- a/jspwiki-main/src/main/java/org/apache/wiki/plugin/ReferringPagesPlugin.java
+++ b/jspwiki-main/src/main/java/org/apache/wiki/plugin/ReferringPagesPlugin.java
@@ -21,6 +21,7 @@ package org.apache.wiki.plugin;
 import org.apache.log4j.Logger;
 import org.apache.wiki.WikiContext;
 import org.apache.wiki.WikiPage;
+import org.apache.wiki.api.core.Context;
 import org.apache.wiki.api.exceptions.PluginException;
 import org.apache.wiki.api.plugin.WikiPlugin;
 import org.apache.wiki.pages.PageManager;
@@ -49,45 +50,37 @@ import java.util.ResourceBundle;
  *  <li><b>maxwidth</b> - maximum width, in chars, of generated links.</li>
  *  </ul>
  */
-public class ReferringPagesPlugin
-    extends AbstractReferralPlugin
-{
-    private static Logger log = Logger.getLogger( ReferringPagesPlugin.class );
+public class ReferringPagesPlugin extends AbstractReferralPlugin {
+
+    private static final Logger log = Logger.getLogger( ReferringPagesPlugin.class );
 
     /** Parameter name for setting the maximum items to show.  Value is <tt>{@value}</tt>. */
     public static final String PARAM_MAX      = "max";
 
-    /** Parameter name for setting the text to show when the maximum items is overruled.
-     *  Value is <tt>{@value}</tt>.
-     */
+    /** Parameter name for setting the text to show when the maximum items is overruled. Value is <tt>{@value}</tt>. */
     public static final String PARAM_EXTRAS   = "extras";
 
-    /**
-     *  Parameter name for choosing the page.  Value is <tt>{@value}</tt>.
-     */
+    /** Parameter name for choosing the page.  Value is <tt>{@value}</tt>. */
     public static final String PARAM_PAGE     = "page";
 
     /**
      *  {@inheritDoc}
      */
-    @Override public String execute( final WikiContext context, final Map<String, String> params )
-        throws PluginException
-    {
+    @Override
+    public String execute( final Context context, final Map<String, String> params ) throws PluginException {
         final ReferenceManager refmgr = context.getEngine().getManager( ReferenceManager.class );
         String pageName = params.get( PARAM_PAGE );
         final ResourceBundle rb = Preferences.getBundle( context, WikiPlugin.CORE_PLUGINS_RESOURCEBUNDLE );
 
         StringBuilder result = new StringBuilder( 256 );
 
-        if( pageName == null )
-        {
+        if( pageName == null ) {
             pageName = context.getPage().getName();
         }
 
         final WikiPage page = context.getEngine().getManager( PageManager.class ).getPage( pageName );
 
-        if( page != null )
-        {
+        if( page != null ) {
             Collection< String > links  = refmgr.findReferrers( page.getName() );
             String wikitext = "";
 
@@ -96,8 +89,7 @@ public class ReferringPagesPlugin
             final int items = TextUtil.parseIntParameter( params.get( PARAM_MAX ), ALL_ITEMS );
 
             String extras = TextUtil.replaceEntities( params.get( PARAM_EXTRAS ) );
-            if( extras == null )
-            {
+            if( extras == null ) {
                 extras = rb.getString("referringpagesplugin.more");
             }
 
@@ -105,8 +97,7 @@ public class ReferringPagesPlugin
                 log.debug( "Fetching referring pages for " + page.getName() + " with a max of "+items);
             }
 
-            if( links != null && links.size() > 0 )
-            {
+            if( links != null && links.size() > 0 ) {
                 links = filterAndSortCollection( links );
                 wikitext = wikitizeCollection( links, m_separator, items );
 
@@ -126,20 +117,15 @@ public class ReferringPagesPlugin
             //
             // If nothing was left after filtering or during search
             //
-            if (links == null || links.size() == 0)
-            {
-                wikitext = rb.getString("referringpagesplugin.nobody");
+            if( links == null || links.size() == 0 ) {
+                wikitext = rb.getString( "referringpagesplugin.nobody" );
 
                 result.append( makeHTML( context, wikitext ) );
-            }
-            else
-            {
-                if( m_show.equals( PARAM_SHOW_VALUE_COUNT ) )
-                {
+            } else {
+                if( m_show.equals( PARAM_SHOW_VALUE_COUNT ) ) {
                     result = new StringBuilder();
                     result.append( links.size() );
-                    if( m_lastModified )
-                    {
+                    if( m_lastModified ) {
                         result.append( " (" + m_dateFormat.format( m_dateLastModified ) + ")" );
                     }
                 }
diff --git a/jspwiki-main/src/main/java/org/apache/wiki/plugin/ReferringUndefinedPagesPlugin.java b/jspwiki-main/src/main/java/org/apache/wiki/plugin/ReferringUndefinedPagesPlugin.java
index af03f85..35a0bed 100644
--- a/jspwiki-main/src/main/java/org/apache/wiki/plugin/ReferringUndefinedPagesPlugin.java
+++ b/jspwiki-main/src/main/java/org/apache/wiki/plugin/ReferringUndefinedPagesPlugin.java
@@ -18,7 +18,7 @@
  */
 package org.apache.wiki.plugin;
 
-import org.apache.wiki.WikiContext;
+import org.apache.wiki.api.core.Context;
 import org.apache.wiki.api.exceptions.PluginException;
 import org.apache.wiki.api.plugin.WikiPlugin;
 import org.apache.wiki.preferences.Preferences;
@@ -45,7 +45,8 @@ public class ReferringUndefinedPagesPlugin extends AbstractReferralPlugin {
     /** Parameter name for setting the text to show when the maximum items is overruled. Value is <tt>{@value}</tt>. */
     public static final String PARAM_EXTRAS = "extras";
 
-    @Override public String execute( final WikiContext context, final Map<String, String> params) throws PluginException {
+    @Override
+    public String execute( final Context context, final Map<String, String> params) throws PluginException {
         final ResourceBundle rb = Preferences.getBundle(context, WikiPlugin.CORE_PLUGINS_RESOURCEBUNDLE);
 
         final ReferenceManager referenceManager = context.getEngine().getManager( ReferenceManager.class );
diff --git a/jspwiki-main/src/main/java/org/apache/wiki/plugin/SampleAjaxPlugin.java b/jspwiki-main/src/main/java/org/apache/wiki/plugin/SampleAjaxPlugin.java
index 779fa5d..e6ee24a 100644
--- a/jspwiki-main/src/main/java/org/apache/wiki/plugin/SampleAjaxPlugin.java
+++ b/jspwiki-main/src/main/java/org/apache/wiki/plugin/SampleAjaxPlugin.java
@@ -18,30 +18,29 @@
  */
 package org.apache.wiki.plugin;
 
-import java.io.IOException;
-import java.util.List;
-import java.util.Map;
+import org.apache.wiki.ajax.WikiAjaxServlet;
+import org.apache.wiki.api.core.Context;
+import org.apache.wiki.api.exceptions.PluginException;
+import org.apache.wiki.api.plugin.Plugin;
 
 import javax.servlet.ServletException;
 import javax.servlet.http.HttpServletRequest;
 import javax.servlet.http.HttpServletResponse;
-
-import org.apache.wiki.WikiContext;
-import org.apache.wiki.ajax.WikiAjaxServlet;
-import org.apache.wiki.api.exceptions.PluginException;
-import org.apache.wiki.api.plugin.WikiPlugin;
+import java.io.IOException;
+import java.util.List;
+import java.util.Map;
 
 /**
  * @since 2.10.2-svn10
  */
-public class SampleAjaxPlugin implements WikiPlugin, WikiAjaxServlet {
+public class SampleAjaxPlugin implements Plugin, WikiAjaxServlet {
 	
 	private static final String SERVLET_MAPPING = "SampleAjaxPlugin";
 
 	@Override
-    public String execute(WikiContext context, Map<String, String> params) throws PluginException {
-    	String id = Integer.toString(this.hashCode());
-        String html= "<div onclick='Wiki.ajaxHtmlCall(\"/"+SERVLET_MAPPING+"/ajaxAction\",[12,45],\"result"+id+"\",\"Loading...\")' style='color: blue; cursor: pointer'>Press Me</div>\n"+
+    public String execute( final Context context, final Map<String, String> params) throws PluginException {
+    	final String id = Integer.toString(this.hashCode());
+        final String html= "<div onclick='Wiki.ajaxHtmlCall(\"/"+SERVLET_MAPPING+"/ajaxAction\",[12,45],\"result"+id+"\",\"Loading...\")' style='color: blue; cursor: pointer'>Press Me</div>\n"+
                         "<div id='result"+id+"'></div>";
         return html;
     }
@@ -50,15 +49,15 @@ public class SampleAjaxPlugin implements WikiPlugin, WikiAjaxServlet {
 	public String getServletMapping() {
 		return SERVLET_MAPPING;
 	}
-	
+
 	@Override
-	public void service(HttpServletRequest request, HttpServletResponse response, String actionName, List<String> params) throws ServletException, IOException {
-        try {
-            Thread.sleep(5000); // Wait 5 seconds
-        } catch (Exception e) {}
-        response.getWriter().print("You called! actionName="+actionName+" params="+params);		
+	public void service( final HttpServletRequest request, final HttpServletResponse response, final String actionName, final List< String > params )
+			throws ServletException, IOException {
+		try {
+			Thread.sleep( 5000 ); // Wait 5 seconds
+		} catch( final Exception e ) {
+		}
+		response.getWriter().print( "You called! actionName=" + actionName + " params=" + params );
 	}
 
-
-
 }
diff --git a/jspwiki-main/src/main/java/org/apache/wiki/plugin/Search.java b/jspwiki-main/src/main/java/org/apache/wiki/plugin/Search.java
index 0006a51..0f4ffac 100644
--- a/jspwiki-main/src/main/java/org/apache/wiki/plugin/Search.java
+++ b/jspwiki-main/src/main/java/org/apache/wiki/plugin/Search.java
@@ -20,10 +20,11 @@ package org.apache.wiki.plugin;
 
 import org.apache.log4j.Logger;
 import org.apache.wiki.WikiContext;
+import org.apache.wiki.api.core.Context;
 import org.apache.wiki.api.core.Engine;
 import org.apache.wiki.api.exceptions.PluginException;
 import org.apache.wiki.api.exceptions.ProviderException;
-import org.apache.wiki.api.plugin.WikiPlugin;
+import org.apache.wiki.api.plugin.Plugin;
 import org.apache.wiki.render.RenderingManager;
 import org.apache.wiki.search.SearchManager;
 import org.apache.wiki.search.SearchResult;
@@ -48,7 +49,7 @@ import java.util.Map;
  *
  *  @since
  */
-public class Search implements WikiPlugin {
+public class Search implements Plugin {
 
     private static final Logger log = Logger.getLogger(Search.class);
 
@@ -67,58 +68,44 @@ public class Search implements WikiPlugin {
     /**
      * {@inheritDoc}
      */
-    @SuppressWarnings("unchecked")
     @Override
-    public String execute( final WikiContext context, final Map<String, String> params ) throws PluginException {
+    public String execute( final Context context, final Map<String, String> params ) throws PluginException {
         int maxItems = Integer.MAX_VALUE;
-        Collection<SearchResult> results = null;
+        final Collection< SearchResult > results;
 
         final String queryString = params.get( PARAM_QUERY );
-        String set         = params.get( PARAM_SET );
+        String set               = params.get( PARAM_SET );
         final String max         = params.get( PARAM_MAX );
 
         if ( set == null ) set = DEFAULT_SETNAME;
         if ( max != null ) maxItems = Integer.parseInt( max );
 
-        if ( queryString == null )
-        {
-            results = (Collection<SearchResult>)context.getVariable( set );
-        }
-        else
-        {
-            try
-            {
+        if ( queryString == null ) {
+            results = context.getVariable( set );
+        } else {
+            try {
                 results = doBasicQuery( context, queryString );
                 context.setVariable( set, results );
-            }
-            catch( final Exception e )
-            {
-                return "<div class='error'>"+e.getMessage()+"</div>\n";
+            } catch( final Exception e ) {
+                return "<div class='error'>" + e.getMessage() + "</div>\n";
             }
         }
 
         String res = "";
 
-        if ( results != null )
-        {
+        if ( results != null ) {
             res = renderResults(results,context,maxItems);
         }
 
         return res;
     }
 
-    private Collection<SearchResult> doBasicQuery( final WikiContext context, final String query )
-        throws ProviderException, IOException
-    {
-        log.debug("Searching for string "+query);
-
-        final Collection<SearchResult> list = context.getEngine().getManager( SearchManager.class ).findPages( query, context );
-
-        return list;
+    private Collection<SearchResult> doBasicQuery( final Context context, final String query ) throws ProviderException, IOException {
+        log.debug( "Searching for string " + query );
+        return context.getEngine().getManager( SearchManager.class ).findPages( query, context );
     }
 
-    private String renderResults( final Collection<SearchResult> results, final WikiContext context, final int maxItems )
-    {
+    private String renderResults( final Collection<SearchResult> results, final Context context, final int maxItems ) {
         final Engine engine = context.getEngine();
 
         final Element table = XhtmlUtil.element(XHTML.table);
@@ -139,16 +126,15 @@ public class Search implements WikiPlugin {
         row.addContent(th2);
 
         int idx = 0;
-        for ( final Iterator<SearchResult> i = results.iterator(); i.hasNext() && idx++ <= maxItems; )
-        {
+        for ( final Iterator<SearchResult> i = results.iterator(); i.hasNext() && idx++ <= maxItems; ) {
             final SearchResult sr = i.next();
             row = XhtmlUtil.element(XHTML.tr);
 
             final Element name = XhtmlUtil.element(XHTML.td);
             name.setAttribute(XHTML.ATTR_width,"30%");
 
-            name.addContent( XhtmlUtil.link(context.getURL( WikiContext.VIEW, sr.getPage().getName()),
-                    engine.getManager( RenderingManager.class ).beautifyTitle(sr.getPage().getName())) );
+            name.addContent( XhtmlUtil.link(context.getURL( WikiContext.VIEW, sr.getPage().getName() ),
+                             engine.getManager( RenderingManager.class ).beautifyTitle(sr.getPage().getName() ) ) );
 
             row.addContent(name);
 
@@ -157,8 +143,7 @@ public class Search implements WikiPlugin {
             table.addContent(row);
         }
 
-        if ( results.isEmpty() )
-        {
+        if ( results.isEmpty() ) {
             row = XhtmlUtil.element(XHTML.tr);
 
             final Element td = XhtmlUtil.element(XHTML.td);
diff --git a/jspwiki-main/src/main/java/org/apache/wiki/plugin/SessionsPlugin.java b/jspwiki-main/src/main/java/org/apache/wiki/plugin/SessionsPlugin.java
index b8df39a..541650c 100644
--- a/jspwiki-main/src/main/java/org/apache/wiki/plugin/SessionsPlugin.java
+++ b/jspwiki-main/src/main/java/org/apache/wiki/plugin/SessionsPlugin.java
@@ -18,10 +18,10 @@
  */
 package org.apache.wiki.plugin;
 
-import org.apache.wiki.WikiContext;
+import org.apache.wiki.api.core.Context;
 import org.apache.wiki.api.core.Engine;
 import org.apache.wiki.api.exceptions.PluginException;
-import org.apache.wiki.api.plugin.WikiPlugin;
+import org.apache.wiki.api.plugin.Plugin;
 import org.apache.wiki.auth.SessionMonitor;
 import org.apache.wiki.util.TextUtil;
 
@@ -43,7 +43,7 @@ import java.util.Map;
  *  </ul>
  *  @since 2.3.84
  */
-public class SessionsPlugin implements WikiPlugin {
+public class SessionsPlugin implements Plugin {
 
     /** The parameter name for setting the property value. */
     public static final String PARAM_PROP = "property";
@@ -52,7 +52,7 @@ public class SessionsPlugin implements WikiPlugin {
      *  {@inheritDoc}
      */
     @Override
-    public String execute( final WikiContext context, final Map<String, String> params ) throws PluginException {
+    public String execute( final Context context, final Map<String, String> params ) throws PluginException {
         final Engine engine = context.getEngine();
         final String prop = params.get( PARAM_PROP );
 
diff --git a/jspwiki-main/src/main/java/org/apache/wiki/plugin/TableOfContents.java b/jspwiki-main/src/main/java/org/apache/wiki/plugin/TableOfContents.java
index 4ef0e13..e91eff1 100644
--- a/jspwiki-main/src/main/java/org/apache/wiki/plugin/TableOfContents.java
+++ b/jspwiki-main/src/main/java/org/apache/wiki/plugin/TableOfContents.java
@@ -20,10 +20,11 @@ package org.apache.wiki.plugin;
 
 import org.apache.log4j.Logger;
 import org.apache.wiki.InternalWikiException;
-import org.apache.wiki.WikiContext;
-import org.apache.wiki.WikiPage;
+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.PluginException;
+import org.apache.wiki.api.plugin.Plugin;
 import org.apache.wiki.api.plugin.WikiPlugin;
 import org.apache.wiki.filters.FilterManager;
 import org.apache.wiki.pages.PageManager;
@@ -51,10 +52,9 @@ import java.util.ResourceBundle;
  *
  *  @since 2.2
  */
-public class TableOfContents
-    implements WikiPlugin, HeadingListener
-{
-    private static Logger log = Logger.getLogger( TableOfContents.class );
+public class TableOfContents implements Plugin, HeadingListener {
+
+    private static final Logger log = Logger.getLogger( TableOfContents.class );
 
     /** Parameter name for setting the title. */
     public static final String PARAM_TITLE = "title";
@@ -82,12 +82,11 @@ public class TableOfContents
     /**
      *  {@inheritDoc}
      */
-    @Override public void headingAdded( final WikiContext context, final Heading hd )
-    {
-        log.debug("HD: "+hd.m_level+", "+hd.m_titleText+", "+hd.m_titleAnchor);
+    @Override
+    public void headingAdded( final Context context, final Heading hd ) {
+        log.debug( "HD: " + hd.m_level + ", " + hd.m_titleText + ", " + hd.m_titleAnchor );
 
-        switch( hd.m_level )
-        {
+        switch( hd.m_level ) {
           case Heading.HEADING_SMALL:
             m_buf.append("<li class=\"toclevel-3\">");
             m_level3Index++;
@@ -104,18 +103,15 @@ public class TableOfContents
             throw new InternalWikiException("Unknown depth in toc! (Please submit a bug report.)");
         }
 
-        if (m_level1Index < m_starting)
-        {
+        if( m_level1Index < m_starting ) {
             // in case we never had a large heading ...
             m_level1Index++;
         }
-        if ((m_lastLevel == Heading.HEADING_SMALL) && (hd.m_level != Heading.HEADING_SMALL))
-        {
+        if( ( m_lastLevel == Heading.HEADING_SMALL ) && ( hd.m_level != Heading.HEADING_SMALL ) ) {
             m_level3Index = 0;
         }
-        if ( ((m_lastLevel == Heading.HEADING_SMALL) || (m_lastLevel == Heading.HEADING_MEDIUM)) &&
-                  (hd.m_level == Heading.HEADING_LARGE) )
-        {
+        if( ( ( m_lastLevel == Heading.HEADING_SMALL ) || ( m_lastLevel == Heading.HEADING_MEDIUM ) ) && ( hd.m_level
+                == Heading.HEADING_LARGE ) ) {
             m_level3Index = 0;
             m_level2Index = 0;
         }
@@ -151,15 +147,13 @@ public class TableOfContents
     /**
      *  {@inheritDoc}
      */
-    @Override public String execute( final WikiContext context, final Map<String, String> params )
-        throws PluginException
-    {
+    @Override
+    public String execute( final Context context, final Map<String, String> params ) throws PluginException {
         final Engine engine = context.getEngine();
-        final WikiPage page = context.getPage();
+        final Page page = context.getPage();
         final ResourceBundle rb = Preferences.getBundle( context, WikiPlugin.CORE_PLUGINS_RESOURCEBUNDLE );
 
-        if( context.getVariable( VAR_ALREADY_PROCESSING ) != null )
-        {
+        if( context.getVariable( VAR_ALREADY_PROCESSING ) != null ) {
             //return rb.getString("tableofcontents.title");
             return "<a href=\"#section-TOC\" class=\"toc\">"+rb.getString("tableofcontents.title")+"</a>";
         }
@@ -171,38 +165,29 @@ public class TableOfContents
 
         final String title = params.get(PARAM_TITLE);
         sb.append("<h4 id=\"section-TOC\">");
-        if( title != null )
-        {
-            sb.append(TextUtil.replaceEntities(title));
-        }
-        else
-        {
-            sb.append(rb.getString("tableofcontents.title"));
+        if( title != null ) {
+            sb.append( TextUtil.replaceEntities( title ) );
+        } else {
+            sb.append( rb.getString( "tableofcontents.title" ) );
         }
-        sb.append("</h4>\n");
+        sb.append( "</h4>\n" );
 
         // should we use an ordered list?
         m_usingNumberedList = false;
-        if (params.containsKey(PARAM_NUMBERED))
-        {
-            final String numbered = params.get(PARAM_NUMBERED);
-            if (numbered.equalsIgnoreCase("true"))
-            {
+        if( params.containsKey( PARAM_NUMBERED ) ) {
+            final String numbered = params.get( PARAM_NUMBERED );
+            if( numbered.equalsIgnoreCase( "true" ) ) {
                 m_usingNumberedList = true;
-            }
-            else if (numbered.equalsIgnoreCase("yes"))
-            {
+            } else if( numbered.equalsIgnoreCase( "yes" ) ) {
                 m_usingNumberedList = true;
             }
         }
 
         // if we are using a numbered list, get the rest of the parameters (if any) ...
-        if (m_usingNumberedList)
-        {
+        if (m_usingNumberedList) {
             int start = 0;
             final String startStr = params.get(PARAM_START);
-            if ((startStr != null) && (startStr.matches("^\\d+$")))
-            {
+            if( ( startStr != null ) && ( startStr.matches( "^\\d+$" ) ) ) {
                 start = Integer.parseInt(startStr);
             }
             if (start < 0) start = 0;
diff --git a/jspwiki-main/src/main/java/org/apache/wiki/plugin/UndefinedPagesPlugin.java b/jspwiki-main/src/main/java/org/apache/wiki/plugin/UndefinedPagesPlugin.java
index 642f637..8196fba 100644
--- a/jspwiki-main/src/main/java/org/apache/wiki/plugin/UndefinedPagesPlugin.java
+++ b/jspwiki-main/src/main/java/org/apache/wiki/plugin/UndefinedPagesPlugin.java
@@ -18,7 +18,7 @@
  */
 package org.apache.wiki.plugin;
 
-import org.apache.wiki.WikiContext;
+import org.apache.wiki.api.core.Context;
 import org.apache.wiki.api.exceptions.PluginException;
 import org.apache.wiki.references.ReferenceManager;
 
@@ -40,7 +40,8 @@ public class UndefinedPagesPlugin extends AbstractReferralPlugin {
     /**
      *  {@inheritDoc}
      */
-    @Override public String execute( final WikiContext context, final Map< String, String > params ) throws PluginException {
+    @Override
+    public String execute( final Context context, final Map< String, String > params ) throws PluginException {
         final ReferenceManager refmgr = context.getEngine().getManager( ReferenceManager.class );
         super.initialize( context, params );
 
diff --git a/jspwiki-main/src/main/java/org/apache/wiki/plugin/UnusedPagesPlugin.java b/jspwiki-main/src/main/java/org/apache/wiki/plugin/UnusedPagesPlugin.java
index 46e9332..094eeea 100644
--- a/jspwiki-main/src/main/java/org/apache/wiki/plugin/UnusedPagesPlugin.java
+++ b/jspwiki-main/src/main/java/org/apache/wiki/plugin/UnusedPagesPlugin.java
@@ -18,7 +18,7 @@
  */
 package org.apache.wiki.plugin;
 
-import org.apache.wiki.WikiContext;
+import org.apache.wiki.api.core.Context;
 import org.apache.wiki.api.exceptions.PluginException;
 import org.apache.wiki.references.ReferenceManager;
 import org.apache.wiki.util.TextUtil;
@@ -44,7 +44,8 @@ public class UnusedPagesPlugin extends AbstractReferralPlugin {
     /**
      *  {@inheritDoc}
      */
-    @Override public String execute( final WikiContext context, final Map< String, String > params ) throws PluginException {
+    @Override
+    public String execute( final Context context, final Map< String, String > params ) throws PluginException {
         final ReferenceManager refmgr = context.getEngine().getManager( ReferenceManager.class );
         Collection< String > links = refmgr.findUnreferenced();
 
diff --git a/jspwiki-main/src/main/java/org/apache/wiki/plugin/WeblogArchivePlugin.java b/jspwiki-main/src/main/java/org/apache/wiki/plugin/WeblogArchivePlugin.java
index 857bb9e..b2b4a22 100644
--- a/jspwiki-main/src/main/java/org/apache/wiki/plugin/WeblogArchivePlugin.java
+++ b/jspwiki-main/src/main/java/org/apache/wiki/plugin/WeblogArchivePlugin.java
@@ -20,9 +20,10 @@ package org.apache.wiki.plugin;
 
 import org.apache.wiki.WikiContext;
 import org.apache.wiki.WikiPage;
+import org.apache.wiki.api.core.Context;
 import org.apache.wiki.api.core.Engine;
 import org.apache.wiki.api.exceptions.PluginException;
-import org.apache.wiki.api.plugin.WikiPlugin;
+import org.apache.wiki.api.plugin.Plugin;
 import org.apache.wiki.util.TextUtil;
 
 import java.text.SimpleDateFormat;
@@ -45,7 +46,7 @@ import java.util.TreeSet;
  *
  *  @since 1.9.21
  */
-public class WeblogArchivePlugin implements WikiPlugin {
+public class WeblogArchivePlugin implements Plugin {
 
     /** Parameter name for setting the page.  Value is <tt>{@value}</tt>. */
     public static final String PARAM_PAGE = "page";
@@ -55,18 +56,19 @@ public class WeblogArchivePlugin implements WikiPlugin {
     /**
      *  {@inheritDoc}
      */
-    @Override public String execute( final WikiContext context, final Map< String, String > params ) throws PluginException {
+    @Override
+    public String execute( final Context context, final Map< String, String > params ) throws PluginException {
         final Engine engine = context.getEngine();
 
         //  Parameters
         String weblogName = params.get( PARAM_PAGE );
 
-        if( weblogName == null ) weblogName = context.getPage().getName();
-
+        if( weblogName == null ) {
+            weblogName = context.getPage().getName();
+        }
 
-        m_monthUrlFormat = new SimpleDateFormat("'"+
-                                                context.getURL( WikiContext.VIEW, weblogName,
-                                                                "weblog.startDate='ddMMyy'&amp;weblog.days=%d")+"'");
+        final String pttrn = "'" + context.getURL( WikiContext.VIEW, weblogName,"weblog.startDate='ddMMyy'&amp;weblog.days=%d" ) + "'";
+        m_monthUrlFormat = new SimpleDateFormat( pttrn );
 
         final StringBuilder sb = new StringBuilder();
         sb.append( "<div class=\"weblogarchive\">\n" );
@@ -122,12 +124,9 @@ public class WeblogArchivePlugin implements WikiPlugin {
         final SimpleDateFormat monthfmt = new SimpleDateFormat( "MMMM" );
         final String result;
 
-        if( m_monthUrlFormat == null )
-        {
+        if( m_monthUrlFormat == null ) {
             result = monthfmt.format( day.getTime() );
-        }
-        else
-        {
+        } else {
             final Calendar cal = (Calendar)day.clone();
             final int firstDay = cal.getActualMinimum( Calendar.DATE );
             final int lastDay  = cal.getActualMaximum( Calendar.DATE );
@@ -151,16 +150,13 @@ public class WeblogArchivePlugin implements WikiPlugin {
      */
     private static class ArchiveComparator implements Comparator< Calendar > {
 
-        @Override public int compare( final Calendar a, final Calendar b )
-        {
-            if( a == null || b == null )
-            {
+        @Override
+        public int compare( final Calendar a, final Calendar b ) {
+            if( a == null || b == null ) {
                 throw new ClassCastException( "Invalid calendar supplied for comparison." );
             }
 
-            if( a.get( Calendar.YEAR ) == b.get( Calendar.YEAR ) &&
-                a.get( Calendar.MONTH ) == b.get( Calendar.MONTH ) )
-            {
+            if( a.get( Calendar.YEAR ) == b.get( Calendar.YEAR ) && a.get( Calendar.MONTH ) == b.get( Calendar.MONTH ) ) {
                 return 0;
             }
 
@@ -168,4 +164,5 @@ public class WeblogArchivePlugin implements WikiPlugin {
             return b.getTime().before( a.getTime() ) ? -1 : 1;
         }
     }
+
 }
diff --git a/jspwiki-main/src/main/java/org/apache/wiki/plugin/WeblogEntryPlugin.java b/jspwiki-main/src/main/java/org/apache/wiki/plugin/WeblogEntryPlugin.java
index 1ad6022..76af006 100644
--- a/jspwiki-main/src/main/java/org/apache/wiki/plugin/WeblogEntryPlugin.java
+++ b/jspwiki-main/src/main/java/org/apache/wiki/plugin/WeblogEntryPlugin.java
@@ -21,9 +21,11 @@ package org.apache.wiki.plugin;
 import org.apache.log4j.Logger;
 import org.apache.wiki.WikiContext;
 import org.apache.wiki.WikiPage;
+import org.apache.wiki.api.core.Context;
 import org.apache.wiki.api.core.Engine;
 import org.apache.wiki.api.exceptions.PluginException;
 import org.apache.wiki.api.exceptions.ProviderException;
+import org.apache.wiki.api.plugin.Plugin;
 import org.apache.wiki.api.plugin.WikiPlugin;
 import org.apache.wiki.pages.PageLock;
 import org.apache.wiki.pages.PageManager;
@@ -47,7 +49,7 @@ import java.util.ResourceBundle;
  *
  * @since 1.9.21
  */
-public class WeblogEntryPlugin implements WikiPlugin {
+public class WeblogEntryPlugin implements Plugin {
 
     private static final Logger log = Logger.getLogger(WeblogEntryPlugin.class);
     private static final int MAX_BLOG_ENTRIES = 10_000; // Just a precaution.
@@ -88,7 +90,7 @@ public class WeblogEntryPlugin implements WikiPlugin {
      * {@inheritDoc}
      */
     @Override
-    public String execute( final WikiContext context, final Map< String, String > params ) throws PluginException {
+    public String execute( final Context context, final Map< String, String > params ) throws PluginException {
         final ResourceBundle rb = Preferences.getBundle(context, WikiPlugin.CORE_PLUGINS_RESOURCEBUNDLE);
         final Engine engine = context.getEngine();
 
diff --git a/jspwiki-main/src/main/java/org/apache/wiki/plugin/WeblogPlugin.java b/jspwiki-main/src/main/java/org/apache/wiki/plugin/WeblogPlugin.java
index 06a514b..9c70e98 100644
--- a/jspwiki-main/src/main/java/org/apache/wiki/plugin/WeblogPlugin.java
+++ b/jspwiki-main/src/main/java/org/apache/wiki/plugin/WeblogPlugin.java
@@ -21,14 +21,15 @@ package org.apache.wiki.plugin;
 import org.apache.log4j.Logger;
 import org.apache.wiki.WikiContext;
 import org.apache.wiki.WikiPage;
-import org.apache.wiki.WikiProvider;
 import org.apache.wiki.api.core.Context;
 import org.apache.wiki.api.core.Engine;
 import org.apache.wiki.api.exceptions.PluginException;
 import org.apache.wiki.api.exceptions.ProviderException;
 import org.apache.wiki.api.plugin.ParserStagePlugin;
+import org.apache.wiki.api.plugin.Plugin;
 import org.apache.wiki.api.plugin.PluginElement;
 import org.apache.wiki.api.plugin.WikiPlugin;
+import org.apache.wiki.api.providers.WikiProvider;
 import org.apache.wiki.auth.AuthorizationManager;
 import org.apache.wiki.auth.permissions.PagePermission;
 import org.apache.wiki.pages.PageManager;
@@ -84,7 +85,7 @@ import java.util.regex.Pattern;
 // FIXME: Add "entries" param as an alternative to "days".
 // FIXME: Entries arrive in wrong order.
 
-public class WeblogPlugin implements WikiPlugin, ParserStagePlugin {
+public class WeblogPlugin implements Plugin, ParserStagePlugin {
 
     private static final Logger log = Logger.getLogger(WeblogPlugin.class);
     private static final Pattern HEADINGPATTERN;
@@ -159,7 +160,7 @@ public class WeblogPlugin implements WikiPlugin, ParserStagePlugin {
      *  {@inheritDoc}
      */
     @Override
-    public String execute( final WikiContext context, final Map< String, String > params ) throws PluginException {
+    public String execute( final Context context, final Map< String, String > params ) throws PluginException {
         final Calendar   startTime;
         final Calendar   stopTime;
         int        numDays = DEFAULT_DAYS;
@@ -270,7 +271,7 @@ public class WeblogPlugin implements WikiPlugin, ParserStagePlugin {
      *  @param entry
      *  @throws ProviderException
      */
-    private void addEntryHTML( final WikiContext context, final DateFormat entryFormat, final boolean hasComments,
+    private void addEntryHTML( final Context context, final DateFormat entryFormat, final boolean hasComments,
                                final StringBuilder buffer, final WikiPage entry, final Map< String, String > params) {
         final Engine engine = context.getEngine();
         final ResourceBundle rb = Preferences.getBundle(context, WikiPlugin.CORE_PLUGINS_RESOURCEBUNDLE);
@@ -289,7 +290,7 @@ public class WeblogPlugin implements WikiPlugin, ParserStagePlugin {
         //
         //  Append the text of the latest version.  Reset the context to that page.
         //
-        final WikiContext entryCtx = (WikiContext) context.clone();
+        final Context entryCtx = context.clone();
         entryCtx.setPage( entry );
 
         String html = engine.getManager( RenderingManager.class ).getHTML( entryCtx, engine.getManager( PageManager.class ).getPage( entry.getName() ) );
diff --git a/jspwiki-main/src/test/java/org/apache/wiki/plugin/JavaScriptPlugin.java b/jspwiki-main/src/test/java/org/apache/wiki/plugin/JavaScriptPlugin.java
index 5ab8b01..f75c86d 100644
--- a/jspwiki-main/src/test/java/org/apache/wiki/plugin/JavaScriptPlugin.java
+++ b/jspwiki-main/src/test/java/org/apache/wiki/plugin/JavaScriptPlugin.java
@@ -18,11 +18,11 @@
  */
 package org.apache.wiki.plugin;
 
-import org.apache.wiki.WikiContext;
+import org.apache.wiki.api.core.Context;
 import org.apache.wiki.api.core.Engine;
 import org.apache.wiki.api.exceptions.PluginException;
 import org.apache.wiki.api.plugin.InitializablePlugin;
-import org.apache.wiki.api.plugin.WikiPlugin;
+import org.apache.wiki.api.plugin.Plugin;
 
 import java.util.Map;
 
@@ -32,15 +32,17 @@ import java.util.Map;
  *  <P>
  *  Parameters: text - text to return.
  */
-public class JavaScriptPlugin implements WikiPlugin, InitializablePlugin {
+public class JavaScriptPlugin implements Plugin, InitializablePlugin {
 
     protected static boolean c_inited = false;
     
-    @Override public String execute( final WikiContext context, final Map< String, String > params ) throws PluginException {
+    @Override
+    public String execute( final Context context, final Map< String, String > params ) throws PluginException {
         return "<script language=\"JavaScript\"><!--\nfoo='';\n--></script>\n";
     }
 
-    @Override public void initialize( final Engine engine ) throws PluginException {
+    @Override
+    public void initialize( final Engine engine ) throws PluginException {
         c_inited = true;
     }
 
diff --git a/jspwiki-main/src/test/java/org/apache/wiki/plugin/SamplePlugin.java b/jspwiki-main/src/test/java/org/apache/wiki/plugin/SamplePlugin.java
index 50663fb..1c239cf 100644
--- a/jspwiki-main/src/test/java/org/apache/wiki/plugin/SamplePlugin.java
+++ b/jspwiki-main/src/test/java/org/apache/wiki/plugin/SamplePlugin.java
@@ -18,11 +18,10 @@
  */
 package org.apache.wiki.plugin;
 
-import org.apache.wiki.WikiContext;
 import org.apache.wiki.api.core.Context;
 import org.apache.wiki.api.plugin.ParserStagePlugin;
+import org.apache.wiki.api.plugin.Plugin;
 import org.apache.wiki.api.plugin.PluginElement;
-import org.apache.wiki.api.plugin.WikiPlugin;
 
 import java.util.Map;
 
@@ -32,12 +31,12 @@ import java.util.Map;
  *  Parameters: text - text to return.
  *  Any _body content gets appended between brackets.
  */
-public class SamplePlugin implements WikiPlugin, ParserStagePlugin {
+public class SamplePlugin implements Plugin, ParserStagePlugin {
 	
     protected static boolean c_rendered = false;
     
     @Override
-    public String execute( final WikiContext context, final Map< String, String > params ) {
+    public String execute( final Context context, final Map< String, String > params ) {
         final StringBuilder sb = new StringBuilder();
         final String text = params.get("text");
 
diff --git a/jspwiki-main/src/test/java/org/apache/wiki/plugin/SamplePlugin3.java b/jspwiki-main/src/test/java/org/apache/wiki/plugin/SamplePlugin3.java
index dc10d00..f7afdca 100644
--- a/jspwiki-main/src/test/java/org/apache/wiki/plugin/SamplePlugin3.java
+++ b/jspwiki-main/src/test/java/org/apache/wiki/plugin/SamplePlugin3.java
@@ -18,30 +18,26 @@
  */
 package org.apache.wiki.plugin;
 
+import org.apache.wiki.api.core.Context;
+import org.apache.wiki.api.core.Engine;
+import org.apache.wiki.api.exceptions.PluginException;
+import org.apache.wiki.api.plugin.Plugin;
+
 import java.util.Map;
 
-import org.apache.wiki.WikiContext;
-import org.apache.wiki.WikiEngine;
-import org.apache.wiki.api.exceptions.PluginException;
 
 /**
  *  Implements a simple plugin that just returns its text.
  *  <P>
  *  Parameters: text - text to return.
- *
  */
-public class SamplePlugin3
-    implements org.apache.wiki.api.plugin.WikiPlugin
-{
-    public void initialize( WikiEngine engine )
-        throws PluginException
-    {
+public class SamplePlugin3 implements Plugin {
+
+    public void initialize( final Engine engine ) throws PluginException {
     }
 
-    public String execute( WikiContext context, Map< String, String > params )
-        throws PluginException
-    {
-        return params.get("text");
+    public String execute( final Context context, final Map< String, String > params ) throws PluginException {
+        return params.get( "text" );
     }
 
 }