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 2012/12/14 19:13:52 UTC

svn commit: r1422020 [1/2] - in /incubator/jspwiki/trunk: ./ etc/ini/ src/org/apache/wiki/ src/org/apache/wiki/forms/ src/org/apache/wiki/parser/ src/org/apache/wiki/plugin/ src/org/apache/wiki/tags/ src/org/apache/wiki/ui/ src/org/apache/wiki/ui/admin...

Author: juanpablo
Date: Fri Dec 14 18:13:37 2012
New Revision: 1422020

URL: http://svn.apache.org/viewvc?rev=1422020&view=rev
Log:
 * 2.9.1-svn-6
  
 * initial commit for JSPWiki API (cfr. JSPWIKI-303), mostly focused on plugin API. Check
   UPGRADING document for details

Added:
    incubator/jspwiki/trunk/tests/org/apache/wiki/plugin/DefaultPluginManagerTest.java
      - copied, changed from r1420900, incubator/jspwiki/trunk/tests/org/apache/wiki/plugin/PluginManagerTest.java
Removed:
    incubator/jspwiki/trunk/tests/org/apache/wiki/plugin/PluginManagerTest.java
Modified:
    incubator/jspwiki/trunk/ChangeLog
    incubator/jspwiki/trunk/UPGRADING
    incubator/jspwiki/trunk/etc/ini/classmappings.xml
    incubator/jspwiki/trunk/src/org/apache/wiki/Release.java
    incubator/jspwiki/trunk/src/org/apache/wiki/WikiEngine.java
    incubator/jspwiki/trunk/src/org/apache/wiki/WikiException.java
    incubator/jspwiki/trunk/src/org/apache/wiki/forms/FormClose.java
    incubator/jspwiki/trunk/src/org/apache/wiki/forms/FormElement.java
    incubator/jspwiki/trunk/src/org/apache/wiki/forms/FormInput.java
    incubator/jspwiki/trunk/src/org/apache/wiki/forms/FormOpen.java
    incubator/jspwiki/trunk/src/org/apache/wiki/forms/FormOutput.java
    incubator/jspwiki/trunk/src/org/apache/wiki/forms/FormSelect.java
    incubator/jspwiki/trunk/src/org/apache/wiki/forms/FormSet.java
    incubator/jspwiki/trunk/src/org/apache/wiki/forms/FormTextarea.java
    incubator/jspwiki/trunk/src/org/apache/wiki/parser/JSPWikiMarkupParser.java
    incubator/jspwiki/trunk/src/org/apache/wiki/parser/PluginContent.java
    incubator/jspwiki/trunk/src/org/apache/wiki/plugin/AbstractReferralPlugin.java
    incubator/jspwiki/trunk/src/org/apache/wiki/plugin/BugReportHandler.java
    incubator/jspwiki/trunk/src/org/apache/wiki/plugin/Counter.java
    incubator/jspwiki/trunk/src/org/apache/wiki/plugin/CurrentTimePlugin.java
    incubator/jspwiki/trunk/src/org/apache/wiki/plugin/Denounce.java
    incubator/jspwiki/trunk/src/org/apache/wiki/plugin/Groups.java
    incubator/jspwiki/trunk/src/org/apache/wiki/plugin/IfPlugin.java
    incubator/jspwiki/trunk/src/org/apache/wiki/plugin/Image.java
    incubator/jspwiki/trunk/src/org/apache/wiki/plugin/IndexPlugin.java
    incubator/jspwiki/trunk/src/org/apache/wiki/plugin/InitializablePlugin.java
    incubator/jspwiki/trunk/src/org/apache/wiki/plugin/InsertPage.java
    incubator/jspwiki/trunk/src/org/apache/wiki/plugin/ListLocksPlugin.java
    incubator/jspwiki/trunk/src/org/apache/wiki/plugin/Note.java
    incubator/jspwiki/trunk/src/org/apache/wiki/plugin/PageViewPlugin.java
    incubator/jspwiki/trunk/src/org/apache/wiki/plugin/ParserStagePlugin.java
    incubator/jspwiki/trunk/src/org/apache/wiki/plugin/PluginException.java
    incubator/jspwiki/trunk/src/org/apache/wiki/plugin/PluginManager.java
    incubator/jspwiki/trunk/src/org/apache/wiki/plugin/RPCSamplePlugin.java
    incubator/jspwiki/trunk/src/org/apache/wiki/plugin/RecentChangesPlugin.java
    incubator/jspwiki/trunk/src/org/apache/wiki/plugin/ReferredPagesPlugin.java
    incubator/jspwiki/trunk/src/org/apache/wiki/plugin/ReferringPagesPlugin.java
    incubator/jspwiki/trunk/src/org/apache/wiki/plugin/Search.java
    incubator/jspwiki/trunk/src/org/apache/wiki/plugin/SessionsPlugin.java
    incubator/jspwiki/trunk/src/org/apache/wiki/plugin/TableOfContents.java
    incubator/jspwiki/trunk/src/org/apache/wiki/plugin/UndefinedPagesPlugin.java
    incubator/jspwiki/trunk/src/org/apache/wiki/plugin/UnusedPagesPlugin.java
    incubator/jspwiki/trunk/src/org/apache/wiki/plugin/WeblogArchivePlugin.java
    incubator/jspwiki/trunk/src/org/apache/wiki/plugin/WeblogEntryPlugin.java
    incubator/jspwiki/trunk/src/org/apache/wiki/plugin/WeblogPlugin.java
    incubator/jspwiki/trunk/src/org/apache/wiki/plugin/WikiPlugin.java
    incubator/jspwiki/trunk/src/org/apache/wiki/tags/PluginTag.java
    incubator/jspwiki/trunk/src/org/apache/wiki/ui/EditorManager.java
    incubator/jspwiki/trunk/src/org/apache/wiki/ui/admin/beans/PluginBean.java
    incubator/jspwiki/trunk/tests/org/apache/wiki/plugin/AllTests.java
    incubator/jspwiki/trunk/tests/org/apache/wiki/plugin/PageViewPluginTest.java
    incubator/jspwiki/trunk/tests/org/apache/wiki/plugin/ReferringPagesPluginTest.java
    incubator/jspwiki/trunk/tests/org/apache/wiki/plugin/UndefinedPagesPluginTest.java

Modified: incubator/jspwiki/trunk/ChangeLog
URL: http://svn.apache.org/viewvc/incubator/jspwiki/trunk/ChangeLog?rev=1422020&r1=1422019&r2=1422020&view=diff
==============================================================================
--- incubator/jspwiki/trunk/ChangeLog (original)
+++ incubator/jspwiki/trunk/ChangeLog Fri Dec 14 18:13:37 2012
@@ -1,9 +1,16 @@
+2012-12-14  Juan Pablo Santos (juanpablo AT apache DOT org)
+
+       * 2.9.1-svn-6
+        
+       * initial commit for JSPWiki API (cfr. JSPWIKI-303), mostly focused on plugin API. Check
+         UPGRADING document for details
+        
 2012-12-12  Harry Metske <me...@apache.org>
 
        * 2.9.1-svn-5
         
-        * fixed JSPWIKI-742 NullPointerException in PriorityList (reported by Rakesh K. Cherukuri)
-        * minor updates to build.xml to properly handle build failures (I am not an ant expert...)
+       * fixed JSPWIKI-742 NullPointerException in PriorityList (reported by Rakesh K. Cherukuri)
+       * minor updates to build.xml to properly handle build failures (I am not an ant expert...)
  
  2012-12-09  Juan Pablo Santos (juanpablo AT apache DOT org)
 

Modified: incubator/jspwiki/trunk/UPGRADING
URL: http://svn.apache.org/viewvc/incubator/jspwiki/trunk/UPGRADING?rev=1422020&r1=1422019&r2=1422020&view=diff
==============================================================================
--- incubator/jspwiki/trunk/UPGRADING (original)
+++ incubator/jspwiki/trunk/UPGRADING Fri Dec 14 18:13:37 2012
@@ -26,7 +26,7 @@ The license file can be found in LICENSE
 Upgrading JSPWiki to 2.9.1
 --------------------------
 
-Beginning with JSPWiki-2.9.1-svn-3, generics have been added to WikiPlugin's execute() signature, 
+1. Beginning with JSPWiki-2.9.1-svn-3, generics have been added to WikiPlugin's execute() signature, 
 which now looks like:
 
 String execute( WikiContext context, Map<String, String> params ) throws PluginException;
@@ -36,6 +36,54 @@ the special _bounds parameter, which was
 is built now as a String and has the form of "pos|end". Other than that, this change of signature
 shouldn't affect your custom plugins.
 
+2. JSPWiki API
+
+The package org.apache.wiki.api aims to provide an API to give access to JSPWiki internals.
+
+Classes affected:
+@Deprecated
+ -> all classes / methods anotated with @Deprecated because of the API changes will be removed 
+       in 2.10 timeframe
+
+api
+ -> new package org.apache.wiki.api, which should compile without depending on other packages
+
+exceptions
+ -> new package org.apache.wiki.api.exceptions with copies of the original Exceptions declared by
+    the API methods
+ -> to retain backwards compatibility, "old" exceptions will inherit new ones, also the former ones 
+    are marked as @Deprecated
+      * e.g.: org.apache.wiki.plugin.PluginException will inherit 
+        org.apache.wiki.api.exceptions.PluginException which (ultimately) inherits WikiException
+      * note that, until the API is completed, regarding exceptions there will be an somewhat 
+        awkward jump: org.apache.wiki.api.exceptions.*Exception -> org.apache.wiki.WikiException ->
+        org.apache.wiki.api.exceptions.WikiException. It allows us to achieve compatibility with 
+        2.9 derived source (regarding exceptions).
+
+org.apache.wiki.plugin.PluginManager
+ -> new interface org.apache.wiki.api.PluginManager
+ -> moved to org.apache.wiki.plugin.DefaultPluginManager
+ -> @Deprecated public static boolean isPluginLink( String link )
+      * equivalent method on org.apache.wiki.parser.JSPWikiMarkupParser
+ -> WikiEngine.getPluginManager returns org.apache.wiki.api.PluginManager
+
+org.apache.wiki.plugin.InitializablePlugin
+ -> new interface org.apache.wiki.api.InitializablePlugin
+ -> all core wikiplugins and wikiforms implementing the "old" interface now implement the new one
+ -> org.apache.wiki.plugin.InitializablePlugin marked with @Deprecated + extends
+    org.apache.wiki.api.InitializablePlugin
+ 
+org.apache.wiki.plugin.ParserStagePlugin
+ -> new interface org.apache.wiki.api.ParserStagePlugin
+ -> all core wikiplugins and wikiforms implementing the "old" interface now implement the new one
+ -> org.apache.wiki.plugin.ParserStagePlugin marked with @Deprecated + extends
+    org.apache.wiki.api.ParserStagePlugin
+ 
+org.apache.wiki.plugin.WikiPlugin
+ -> new interface org.apache.wiki.api.WikiPlugin
+ -> all core wikiplugins and wikiforms implement the new interface
+ -> org.apache.wiki.plugin.WikiPlugin marked with @Deprecated + extends org.apache.wiki.api.WikiPlugin
+
 
 Upgrading JSPWiki from 2.8.x to 2.9.0
 -------------------------------------

Modified: incubator/jspwiki/trunk/etc/ini/classmappings.xml
URL: http://svn.apache.org/viewvc/incubator/jspwiki/trunk/etc/ini/classmappings.xml?rev=1422020&r1=1422019&r2=1422020&view=diff
==============================================================================
--- incubator/jspwiki/trunk/etc/ini/classmappings.xml (original)
+++ incubator/jspwiki/trunk/etc/ini/classmappings.xml Fri Dec 14 18:13:37 2012
@@ -96,8 +96,9 @@
     <mappedClass>org.apache.wiki.i18n.InternationalizationManager</mappedClass>
   </mapping>
   <mapping>
-    <requestedClass>org.apache.wiki.plugin.PluginManager</requestedClass>
-    <mappedClass>org.apache.wiki.plugin.PluginManager</mappedClass>
+    <requestedClass>org.apache.wiki.api.PluginManager</requestedClass>
+    <mappedClass>org.apache.wiki.plugin.PluginManager</mappedClass> <!-- to be replaced in 2.10 -->
+    <!-- <mappedClass>org.apache.wiki.plugin.DefaultPluginManager</mappedClass> --> <!-- replacing the former in 2.10 -->
   </mapping>
   <mapping>
     <requestedClass>org.apache.wiki.render.RenderingManager</requestedClass>

Modified: incubator/jspwiki/trunk/src/org/apache/wiki/Release.java
URL: http://svn.apache.org/viewvc/incubator/jspwiki/trunk/src/org/apache/wiki/Release.java?rev=1422020&r1=1422019&r2=1422020&view=diff
==============================================================================
--- incubator/jspwiki/trunk/src/org/apache/wiki/Release.java (original)
+++ incubator/jspwiki/trunk/src/org/apache/wiki/Release.java Fri Dec 14 18:13:37 2012
@@ -75,7 +75,7 @@ public final class Release
      *  <p>
      *  If the build identifier is empty, it is not added.
      */
-    public static final String     BUILD         = "5";
+    public static final String     BUILD         = "6";
     
     /**
      *  This is the generic version string you should use

Modified: incubator/jspwiki/trunk/src/org/apache/wiki/WikiEngine.java
URL: http://svn.apache.org/viewvc/incubator/jspwiki/trunk/src/org/apache/wiki/WikiEngine.java?rev=1422020&r1=1422019&r2=1422020&view=diff
==============================================================================
--- incubator/jspwiki/trunk/src/org/apache/wiki/WikiEngine.java (original)
+++ incubator/jspwiki/trunk/src/org/apache/wiki/WikiEngine.java Fri Dec 14 18:13:37 2012
@@ -34,7 +34,7 @@ import javax.servlet.http.HttpServletReq
 import org.apache.commons.lang.time.StopWatch;
 import org.apache.log4j.Logger;
 import org.apache.log4j.PropertyConfigurator;
-
+import org.apache.wiki.api.PluginManager;
 import org.apache.wiki.attachment.Attachment;
 import org.apache.wiki.attachment.AttachmentManager;
 import org.apache.wiki.auth.AuthenticationManager;
@@ -45,18 +45,13 @@ import org.apache.wiki.auth.acl.DefaultA
 import org.apache.wiki.auth.authorize.GroupManager;
 import org.apache.wiki.content.PageRenamer;
 import org.apache.wiki.diff.DifferenceManager;
-import org.apache.wiki.event.WikiEngineEvent;
-import org.apache.wiki.event.WikiEventListener;
-import org.apache.wiki.event.WikiEventManager;
-import org.apache.wiki.event.WikiPageEvent;
-import org.apache.wiki.event.WikiPageRenameEvent;
+import org.apache.wiki.event.*;
 import org.apache.wiki.filters.FilterException;
 import org.apache.wiki.filters.FilterManager;
 import org.apache.wiki.i18n.InternationalizationManager;
 import org.apache.wiki.parser.JSPWikiMarkupParser;
 import org.apache.wiki.parser.MarkupParser;
 import org.apache.wiki.parser.WikiDocument;
-import org.apache.wiki.plugin.PluginManager;
 import org.apache.wiki.providers.ProviderException;
 import org.apache.wiki.providers.WikiPageProvider;
 import org.apache.wiki.render.RenderingManager;
@@ -533,7 +528,7 @@ public class WikiEngine
                     TextUtil.getStringProperty( props, PROP_URLCONSTRUCTOR, "DefaultURLConstructor" ) );
             m_urlConstructor = (URLConstructor) urlclass.newInstance();
             m_urlConstructor.initialize( this, props );
-
+            
             m_pageManager       = (PageManager)ClassUtil.getMappedObject(PageManager.class.getName(), this, props );
             m_pluginManager     = (PluginManager)ClassUtil.getMappedObject(PluginManager.class.getName(), this, props );
             m_differenceManager = (DifferenceManager)ClassUtil.getMappedObject(DifferenceManager.class.getName(), this, props );
@@ -1991,13 +1986,16 @@ public class WikiEngine
 
     /**
      *  Returns the current plugin manager.
+     *  
+     *  In 2.10 the PluginManager will be returned instead of the generic
+     *  
      *  @since 1.6.1
      *  @return The current PluginManager instance
      */
-
-    public PluginManager getPluginManager()
+    @SuppressWarnings("unchecked")
+    public < T extends PluginManager > T getPluginManager()
     {
-        return m_pluginManager;
+        return (T)m_pluginManager;
     }
 
     /**

Modified: incubator/jspwiki/trunk/src/org/apache/wiki/WikiException.java
URL: http://svn.apache.org/viewvc/incubator/jspwiki/trunk/src/org/apache/wiki/WikiException.java?rev=1422020&r1=1422019&r2=1422020&view=diff
==============================================================================
--- incubator/jspwiki/trunk/src/org/apache/wiki/WikiException.java (original)
+++ incubator/jspwiki/trunk/src/org/apache/wiki/WikiException.java Fri Dec 14 18:13:37 2012
@@ -24,7 +24,7 @@ package org.apache.wiki;
  *  @since 2.0
  */
 public class WikiException
-    extends Exception
+    extends org.apache.wiki.api.exceptions.WikiException
 {
     private static final long serialVersionUID = 3257290231723210803L;
 

Modified: incubator/jspwiki/trunk/src/org/apache/wiki/forms/FormClose.java
URL: http://svn.apache.org/viewvc/incubator/jspwiki/trunk/src/org/apache/wiki/forms/FormClose.java?rev=1422020&r1=1422019&r2=1422020&view=diff
==============================================================================
--- incubator/jspwiki/trunk/src/org/apache/wiki/forms/FormClose.java (original)
+++ incubator/jspwiki/trunk/src/org/apache/wiki/forms/FormClose.java Fri Dec 14 18:13:37 2012
@@ -22,8 +22,8 @@ import java.util.Map;
 import java.util.ResourceBundle;
 
 import org.apache.wiki.WikiContext;
-import org.apache.wiki.plugin.PluginException;
-import org.apache.wiki.plugin.WikiPlugin;
+import org.apache.wiki.api.WikiPlugin;
+import org.apache.wiki.api.exceptions.PluginException;
 
 /**
  *  Closes a WikiForm.

Modified: incubator/jspwiki/trunk/src/org/apache/wiki/forms/FormElement.java
URL: http://svn.apache.org/viewvc/incubator/jspwiki/trunk/src/org/apache/wiki/forms/FormElement.java?rev=1422020&r1=1422019&r2=1422020&view=diff
==============================================================================
--- incubator/jspwiki/trunk/src/org/apache/wiki/forms/FormElement.java (original)
+++ incubator/jspwiki/trunk/src/org/apache/wiki/forms/FormElement.java Fri Dec 14 18:13:37 2012
@@ -19,7 +19,7 @@
 package org.apache.wiki.forms;
 
 import org.apache.wiki.WikiContext;
-import org.apache.wiki.plugin.WikiPlugin;
+import org.apache.wiki.api.WikiPlugin;
 
 /**
  */

Modified: incubator/jspwiki/trunk/src/org/apache/wiki/forms/FormInput.java
URL: http://svn.apache.org/viewvc/incubator/jspwiki/trunk/src/org/apache/wiki/forms/FormInput.java?rev=1422020&r1=1422019&r2=1422020&view=diff
==============================================================================
--- incubator/jspwiki/trunk/src/org/apache/wiki/forms/FormInput.java (original)
+++ incubator/jspwiki/trunk/src/org/apache/wiki/forms/FormInput.java Fri Dec 14 18:13:37 2012
@@ -25,8 +25,8 @@ import java.util.ResourceBundle;
 import org.apache.ecs.xhtml.input;
 import org.apache.wiki.TextUtil;
 import org.apache.wiki.WikiContext;
-import org.apache.wiki.plugin.PluginException;
-import org.apache.wiki.plugin.WikiPlugin;
+import org.apache.wiki.api.exceptions.PluginException;
+import org.apache.wiki.api.WikiPlugin;
 
 /**
  *  Creates a simple input text field.

Modified: incubator/jspwiki/trunk/src/org/apache/wiki/forms/FormOpen.java
URL: http://svn.apache.org/viewvc/incubator/jspwiki/trunk/src/org/apache/wiki/forms/FormOpen.java?rev=1422020&r1=1422019&r2=1422020&view=diff
==============================================================================
--- incubator/jspwiki/trunk/src/org/apache/wiki/forms/FormOpen.java (original)
+++ incubator/jspwiki/trunk/src/org/apache/wiki/forms/FormOpen.java Fri Dec 14 18:13:37 2012
@@ -23,8 +23,8 @@ import java.util.Map;
 import java.util.ResourceBundle;
 
 import org.apache.wiki.WikiContext;
-import org.apache.wiki.plugin.PluginException;
-import org.apache.wiki.plugin.WikiPlugin;
+import org.apache.wiki.api.WikiPlugin;
+import org.apache.wiki.api.exceptions.PluginException;
 
 /**
  *  Opens a WikiForm.

Modified: incubator/jspwiki/trunk/src/org/apache/wiki/forms/FormOutput.java
URL: http://svn.apache.org/viewvc/incubator/jspwiki/trunk/src/org/apache/wiki/forms/FormOutput.java?rev=1422020&r1=1422019&r2=1422020&view=diff
==============================================================================
--- incubator/jspwiki/trunk/src/org/apache/wiki/forms/FormOutput.java (original)
+++ incubator/jspwiki/trunk/src/org/apache/wiki/forms/FormOutput.java Fri Dec 14 18:13:37 2012
@@ -23,9 +23,9 @@ import java.util.Map;
 import java.util.ResourceBundle;
 
 import org.apache.wiki.WikiContext;
-import org.apache.wiki.plugin.PluginException;
-import org.apache.wiki.plugin.PluginManager;
-import org.apache.wiki.plugin.WikiPlugin;
+import org.apache.wiki.api.WikiPlugin;
+import org.apache.wiki.api.exceptions.PluginException;
+import org.apache.wiki.plugin.DefaultPluginManager;
 import org.apache.wiki.util.FormUtil;
 
 /**
@@ -118,8 +118,8 @@ public class FormOutput
         info.addSubmission( handlerParams );
 
         // Pass the _body parameter from FormOutput on to the handler
-        info.getSubmission().put( PluginManager.PARAM_BODY, 
-                                  params.get(PluginManager.PARAM_BODY)); 
+        info.getSubmission().put( DefaultPluginManager.PARAM_BODY, 
+                                  params.get(DefaultPluginManager.PARAM_BODY)); 
 
         String handlerOutput = null;
         String error = null;

Modified: incubator/jspwiki/trunk/src/org/apache/wiki/forms/FormSelect.java
URL: http://svn.apache.org/viewvc/incubator/jspwiki/trunk/src/org/apache/wiki/forms/FormSelect.java?rev=1422020&r1=1422019&r2=1422020&view=diff
==============================================================================
--- incubator/jspwiki/trunk/src/org/apache/wiki/forms/FormSelect.java (original)
+++ incubator/jspwiki/trunk/src/org/apache/wiki/forms/FormSelect.java Fri Dec 14 18:13:37 2012
@@ -26,8 +26,8 @@ import org.apache.ecs.ConcreteElement;
 import org.apache.ecs.xhtml.option;
 import org.apache.ecs.xhtml.select;
 import org.apache.wiki.WikiContext;
-import org.apache.wiki.plugin.PluginException;
-import org.apache.wiki.plugin.WikiPlugin;
+import org.apache.wiki.api.WikiPlugin;
+import org.apache.wiki.api.exceptions.PluginException;
 
 /**
  *  Creates a Form select field.

Modified: incubator/jspwiki/trunk/src/org/apache/wiki/forms/FormSet.java
URL: http://svn.apache.org/viewvc/incubator/jspwiki/trunk/src/org/apache/wiki/forms/FormSet.java?rev=1422020&r1=1422019&r2=1422020&view=diff
==============================================================================
--- incubator/jspwiki/trunk/src/org/apache/wiki/forms/FormSet.java (original)
+++ incubator/jspwiki/trunk/src/org/apache/wiki/forms/FormSet.java Fri Dec 14 18:13:37 2012
@@ -22,8 +22,8 @@ import java.util.HashMap;
 import java.util.Map;
 
 import org.apache.wiki.WikiContext;
-import org.apache.wiki.plugin.PluginException;
-import org.apache.wiki.plugin.WikiPlugin;
+import org.apache.wiki.api.WikiPlugin;
+import org.apache.wiki.api.exceptions.PluginException;
 
 /**
  * FormSet is a companion WikiPlugin for Form. 

Modified: incubator/jspwiki/trunk/src/org/apache/wiki/forms/FormTextarea.java
URL: http://svn.apache.org/viewvc/incubator/jspwiki/trunk/src/org/apache/wiki/forms/FormTextarea.java?rev=1422020&r1=1422019&r2=1422020&view=diff
==============================================================================
--- incubator/jspwiki/trunk/src/org/apache/wiki/forms/FormTextarea.java (original)
+++ incubator/jspwiki/trunk/src/org/apache/wiki/forms/FormTextarea.java Fri Dec 14 18:13:37 2012
@@ -25,8 +25,8 @@ import java.util.ResourceBundle;
 import org.apache.ecs.ConcreteElement;
 import org.apache.ecs.xhtml.textarea;
 import org.apache.wiki.WikiContext;
-import org.apache.wiki.plugin.PluginException;
-import org.apache.wiki.plugin.WikiPlugin;
+import org.apache.wiki.api.exceptions.PluginException;
+import org.apache.wiki.api.WikiPlugin;
 
 /**
  *  Creates a Form text area element.   You may specify the size of the textarea

Modified: incubator/jspwiki/trunk/src/org/apache/wiki/parser/JSPWikiMarkupParser.java
URL: http://svn.apache.org/viewvc/incubator/jspwiki/trunk/src/org/apache/wiki/parser/JSPWikiMarkupParser.java?rev=1422020&r1=1422019&r2=1422020&view=diff
==============================================================================
--- incubator/jspwiki/trunk/src/org/apache/wiki/parser/JSPWikiMarkupParser.java (original)
+++ incubator/jspwiki/trunk/src/org/apache/wiki/parser/JSPWikiMarkupParser.java Fri Dec 14 18:13:37 2012
@@ -31,20 +31,18 @@ import org.apache.commons.lang.StringUti
 import org.apache.log4j.Logger;
 import org.apache.oro.text.GlobCompiler;
 import org.apache.oro.text.regex.*;
-import org.jdom.*;
-
 import org.apache.wiki.*;
+import org.apache.wiki.api.WikiPlugin;
+import org.apache.wiki.api.exceptions.PluginException;
 import org.apache.wiki.attachment.Attachment;
 import org.apache.wiki.attachment.AttachmentManager;
 import org.apache.wiki.auth.WikiSecurityException;
 import org.apache.wiki.auth.acl.Acl;
 import org.apache.wiki.i18n.InternationalizationManager;
-import org.apache.wiki.plugin.PluginException;
-import org.apache.wiki.plugin.PluginManager;
-import org.apache.wiki.plugin.WikiPlugin;
 import org.apache.wiki.providers.ProviderException;
 import org.apache.wiki.render.CleanTextRenderer;
 import org.apache.wiki.render.RenderingManager;
+import org.jdom.*;
 
 /**
  *  Parses JSPWiki-style markup into a WikiDocument DOM tree.  This class is the
@@ -677,6 +675,22 @@ public class JSPWikiMarkupParser
     }
 
     /**
+     *  Returns true if the link is really command to insert
+     *  a plugin.
+     *  <P>
+     *  Currently we just check if the link starts with "{INSERT",
+     *  or just plain "{" but not "{$".
+     *
+     *  @param link Link text, i.e. the contents of text between [].
+     *  @return True, if this link seems to be a command to insert a plugin here.
+     */
+    public static boolean isPluginLink( String link )
+    {
+        return link.startsWith( "{INSERT" ) ||
+               ( link.startsWith( "{" ) && !link.startsWith( "{$" ) );
+    }
+
+    /**
      *  Matches the given link to the list of image name patterns
      *  to determine whether it should be treated as an inline image
      *  or not.
@@ -1435,7 +1449,7 @@ public class JSPWikiMarkupParser
     {
         addElement( new ProcessingInstruction(Result.PI_DISABLE_OUTPUT_ESCAPING, "") );
     }
-
+    
     /**
      *  Gobbles up all hyperlinks that are encased in square brackets.
      */
@@ -1455,7 +1469,7 @@ public class JSPWikiMarkupParser
             return handleMetadata( linktext );
         }
 
-        if( PluginManager.isPluginLink( linktext ) )
+        if( isPluginLink( linktext ) )
         {
             try
             {
@@ -1480,8 +1494,7 @@ public class JSPWikiMarkupParser
                 if( !m_wysiwygEditorMode )
                 {
                     ResourceBundle rbPlugin = m_context.getBundle(WikiPlugin.CORE_PLUGINS_RESOURCEBUNDLE);
-                    Object[] args = { e.getMessage() };
-                    return addElement( makeError( MessageFormat.format( rbPlugin.getString( "plugin.error.insertionfailed" ), args ) ) );
+                    return addElement( makeError( MessageFormat.format( rbPlugin.getString( "plugin.error.insertionfailed" ), e.getMessage() ) ) );
                 }
             }
 

Modified: incubator/jspwiki/trunk/src/org/apache/wiki/parser/PluginContent.java
URL: http://svn.apache.org/viewvc/incubator/jspwiki/trunk/src/org/apache/wiki/parser/PluginContent.java?rev=1422020&r1=1422019&r2=1422020&view=diff
==============================================================================
--- incubator/jspwiki/trunk/src/org/apache/wiki/parser/PluginContent.java (original)
+++ incubator/jspwiki/trunk/src/org/apache/wiki/parser/PluginContent.java Fri Dec 14 18:13:37 2012
@@ -23,13 +23,12 @@ import java.util.HashMap;
 import java.util.Map;
 import java.util.ResourceBundle;
 
-import org.jdom.Text;
-
 import org.apache.wiki.WikiContext;
 import org.apache.wiki.WikiEngine;
-import org.apache.wiki.plugin.PluginException;
-import org.apache.wiki.plugin.WikiPlugin;
+import org.apache.wiki.api.exceptions.PluginException;
+import org.apache.wiki.api.WikiPlugin;
 import org.apache.wiki.render.RenderingManager;
+import org.jdom.Text;
 
 /**
  *  Stores the contents of a plugin in a WikiDocument DOM tree.

Modified: incubator/jspwiki/trunk/src/org/apache/wiki/plugin/AbstractReferralPlugin.java
URL: http://svn.apache.org/viewvc/incubator/jspwiki/trunk/src/org/apache/wiki/plugin/AbstractReferralPlugin.java?rev=1422020&r1=1422019&r2=1422020&view=diff
==============================================================================
--- incubator/jspwiki/trunk/src/org/apache/wiki/plugin/AbstractReferralPlugin.java (original)
+++ incubator/jspwiki/trunk/src/org/apache/wiki/plugin/AbstractReferralPlugin.java Fri Dec 14 18:13:37 2012
@@ -30,6 +30,8 @@ import org.apache.log4j.Logger;
 import org.apache.oro.text.GlobCompiler;
 import org.apache.oro.text.regex.*;
 import org.apache.wiki.*;
+import org.apache.wiki.api.WikiPlugin;
+import org.apache.wiki.api.exceptions.PluginException;
 import org.apache.wiki.parser.MarkupParser;
 import org.apache.wiki.parser.WikiDocument;
 import org.apache.wiki.preferences.Preferences;

Modified: incubator/jspwiki/trunk/src/org/apache/wiki/plugin/BugReportHandler.java
URL: http://svn.apache.org/viewvc/incubator/jspwiki/trunk/src/org/apache/wiki/plugin/BugReportHandler.java?rev=1422020&r1=1422019&r2=1422020&view=diff
==============================================================================
--- incubator/jspwiki/trunk/src/org/apache/wiki/plugin/BugReportHandler.java (original)
+++ incubator/jspwiki/trunk/src/org/apache/wiki/plugin/BugReportHandler.java Fri Dec 14 18:13:37 2012
@@ -31,6 +31,8 @@ import org.apache.wiki.WikiContext;
 import org.apache.wiki.WikiEngine;
 import org.apache.wiki.WikiException;
 import org.apache.wiki.WikiPage;
+import org.apache.wiki.api.WikiPlugin;
+import org.apache.wiki.api.exceptions.PluginException;
 import org.apache.wiki.filters.RedirectException;
 import org.apache.wiki.parser.MarkupParser;
 

Modified: incubator/jspwiki/trunk/src/org/apache/wiki/plugin/Counter.java
URL: http://svn.apache.org/viewvc/incubator/jspwiki/trunk/src/org/apache/wiki/plugin/Counter.java?rev=1422020&r1=1422019&r2=1422020&view=diff
==============================================================================
--- incubator/jspwiki/trunk/src/org/apache/wiki/plugin/Counter.java (original)
+++ incubator/jspwiki/trunk/src/org/apache/wiki/plugin/Counter.java Fri Dec 14 18:13:37 2012
@@ -18,8 +18,12 @@
  */
 package org.apache.wiki.plugin;
 
-import org.apache.wiki.*;
-import java.util.*;
+import java.util.Map;
+
+import org.apache.wiki.TextUtil;
+import org.apache.wiki.WikiContext;
+import org.apache.wiki.api.WikiPlugin;
+import org.apache.wiki.api.exceptions.PluginException;
 
 /**
  *  Provides a page-specific counter, it is reset every time a page is rendered, so it is not usable as a hitcounter.

Modified: incubator/jspwiki/trunk/src/org/apache/wiki/plugin/CurrentTimePlugin.java
URL: http://svn.apache.org/viewvc/incubator/jspwiki/trunk/src/org/apache/wiki/plugin/CurrentTimePlugin.java?rev=1422020&r1=1422019&r2=1422020&view=diff
==============================================================================
--- incubator/jspwiki/trunk/src/org/apache/wiki/plugin/CurrentTimePlugin.java (original)
+++ incubator/jspwiki/trunk/src/org/apache/wiki/plugin/CurrentTimePlugin.java Fri Dec 14 18:13:37 2012
@@ -24,6 +24,8 @@ import java.util.Map;
 import java.util.ResourceBundle;
 
 import org.apache.wiki.WikiContext;
+import org.apache.wiki.api.WikiPlugin;
+import org.apache.wiki.api.exceptions.PluginException;
 import org.apache.wiki.preferences.Preferences;
 import org.apache.wiki.preferences.Preferences.TimeFormat;
 

Modified: incubator/jspwiki/trunk/src/org/apache/wiki/plugin/Denounce.java
URL: http://svn.apache.org/viewvc/incubator/jspwiki/trunk/src/org/apache/wiki/plugin/Denounce.java?rev=1422020&r1=1422019&r2=1422020&view=diff
==============================================================================
--- incubator/jspwiki/trunk/src/org/apache/wiki/plugin/Denounce.java (original)
+++ incubator/jspwiki/trunk/src/org/apache/wiki/plugin/Denounce.java Fri Dec 14 18:13:37 2012
@@ -20,17 +20,19 @@
  */
 package org.apache.wiki.plugin;
 
-import org.apache.wiki.*;
-import org.apache.log4j.Logger;
-import org.apache.oro.text.*;
-import org.apache.oro.text.regex.*;
-
-import java.util.*;
-import java.io.InputStream;
 import java.io.IOException;
+import java.io.InputStream;
+import java.util.*;
 
 import javax.servlet.http.HttpServletRequest;
 
+import org.apache.log4j.Logger;
+import org.apache.oro.text.GlobCompiler;
+import org.apache.oro.text.regex.*;
+import org.apache.wiki.WikiContext;
+import org.apache.wiki.api.WikiPlugin;
+import org.apache.wiki.api.exceptions.PluginException;
+
 /**
  *  Denounces a link by removing it from any search engine. 
  *  <br> The bots are listed in org/apache/wiki/plugin/denounce.properties.

Modified: incubator/jspwiki/trunk/src/org/apache/wiki/plugin/Groups.java
URL: http://svn.apache.org/viewvc/incubator/jspwiki/trunk/src/org/apache/wiki/plugin/Groups.java?rev=1422020&r1=1422019&r2=1422020&view=diff
==============================================================================
--- incubator/jspwiki/trunk/src/org/apache/wiki/plugin/Groups.java (original)
+++ incubator/jspwiki/trunk/src/org/apache/wiki/plugin/Groups.java Fri Dec 14 18:13:37 2012
@@ -25,6 +25,8 @@ import java.util.Map;
 
 import org.apache.wiki.WikiContext;
 import org.apache.wiki.WikiEngine;
+import org.apache.wiki.api.WikiPlugin;
+import org.apache.wiki.api.exceptions.PluginException;
 import org.apache.wiki.auth.PrincipalComparator;
 import org.apache.wiki.auth.authorize.GroupManager;
 

Modified: incubator/jspwiki/trunk/src/org/apache/wiki/plugin/IfPlugin.java
URL: http://svn.apache.org/viewvc/incubator/jspwiki/trunk/src/org/apache/wiki/plugin/IfPlugin.java?rev=1422020&r1=1422019&r2=1422020&view=diff
==============================================================================
--- incubator/jspwiki/trunk/src/org/apache/wiki/plugin/IfPlugin.java (original)
+++ incubator/jspwiki/trunk/src/org/apache/wiki/plugin/IfPlugin.java Fri Dec 14 18:13:37 2012
@@ -24,10 +24,11 @@ import java.util.Map;
 
 import org.apache.commons.lang.StringUtils;
 import org.apache.oro.text.regex.*;
-
 import org.apache.wiki.TextUtil;
 import org.apache.wiki.WikiContext;
 import org.apache.wiki.WikiProvider;
+import org.apache.wiki.api.WikiPlugin;
+import org.apache.wiki.api.exceptions.PluginException;
 
 /**
  *  The IfPlugin allows parts of a WikiPage to be executed conditionally, and is intended as a flexible way
@@ -135,7 +136,7 @@ public class IfPlugin implements WikiPlu
     public String execute(WikiContext context, Map<String, String> params) throws PluginException
     {
         return ifInclude( context,params )
-                ? context.getEngine().textToHTML( context, params.get( PluginManager.PARAM_BODY ) )
+                ? context.getEngine().textToHTML( context, params.get( DefaultPluginManager.PARAM_BODY ) )
                 : "" ;
     }
 

Modified: incubator/jspwiki/trunk/src/org/apache/wiki/plugin/Image.java
URL: http://svn.apache.org/viewvc/incubator/jspwiki/trunk/src/org/apache/wiki/plugin/Image.java?rev=1422020&r1=1422019&r2=1422020&view=diff
==============================================================================
--- incubator/jspwiki/trunk/src/org/apache/wiki/plugin/Image.java (original)
+++ incubator/jspwiki/trunk/src/org/apache/wiki/plugin/Image.java Fri Dec 14 18:13:37 2012
@@ -23,6 +23,8 @@ import java.util.Map;
 import org.apache.wiki.TextUtil;
 import org.apache.wiki.WikiContext;
 import org.apache.wiki.WikiEngine;
+import org.apache.wiki.api.WikiPlugin;
+import org.apache.wiki.api.exceptions.PluginException;
 import org.apache.wiki.attachment.Attachment;
 import org.apache.wiki.attachment.AttachmentManager;
 import org.apache.wiki.providers.ProviderException;

Modified: incubator/jspwiki/trunk/src/org/apache/wiki/plugin/IndexPlugin.java
URL: http://svn.apache.org/viewvc/incubator/jspwiki/trunk/src/org/apache/wiki/plugin/IndexPlugin.java?rev=1422020&r1=1422019&r2=1422020&view=diff
==============================================================================
--- incubator/jspwiki/trunk/src/org/apache/wiki/plugin/IndexPlugin.java (original)
+++ incubator/jspwiki/trunk/src/org/apache/wiki/plugin/IndexPlugin.java Fri Dec 14 18:13:37 2012
@@ -18,6 +18,7 @@
  */
 package org.apache.wiki.plugin;
 
+
 import java.util.*;
 import java.util.regex.Pattern;
 
@@ -26,6 +27,8 @@ import org.apache.ecs.xhtml.div;
 import org.apache.ecs.xhtml.span;
 import org.apache.log4j.Logger;
 import org.apache.wiki.WikiContext;
+import org.apache.wiki.api.WikiPlugin;
+import org.apache.wiki.api.exceptions.PluginException;
 import org.apache.wiki.providers.ProviderException;
 
 /**

Modified: incubator/jspwiki/trunk/src/org/apache/wiki/plugin/InitializablePlugin.java
URL: http://svn.apache.org/viewvc/incubator/jspwiki/trunk/src/org/apache/wiki/plugin/InitializablePlugin.java?rev=1422020&r1=1422019&r2=1422020&view=diff
==============================================================================
--- incubator/jspwiki/trunk/src/org/apache/wiki/plugin/InitializablePlugin.java (original)
+++ incubator/jspwiki/trunk/src/org/apache/wiki/plugin/InitializablePlugin.java Fri Dec 14 18:13:37 2012
@@ -32,8 +32,11 @@ import org.apache.wiki.WikiEngine;
  *
  *  @since 2.2
  *
+ *  @deprecated will be removed in 2.10 scope. Consider using 
+ *  {@link org.apache.wiki.api.InitializablePlugin} instead
  */
-public interface InitializablePlugin
+@Deprecated
+public interface InitializablePlugin extends org.apache.wiki.api.InitializablePlugin
 {
     /**
      *  Called whenever the plugin is being instantiated for

Modified: incubator/jspwiki/trunk/src/org/apache/wiki/plugin/InsertPage.java
URL: http://svn.apache.org/viewvc/incubator/jspwiki/trunk/src/org/apache/wiki/plugin/InsertPage.java?rev=1422020&r1=1422019&r2=1422020&view=diff
==============================================================================
--- incubator/jspwiki/trunk/src/org/apache/wiki/plugin/InsertPage.java (original)
+++ incubator/jspwiki/trunk/src/org/apache/wiki/plugin/InsertPage.java Fri Dec 14 18:13:37 2012
@@ -26,6 +26,8 @@ import org.apache.wiki.TextUtil;
 import org.apache.wiki.WikiContext;
 import org.apache.wiki.WikiEngine;
 import org.apache.wiki.WikiPage;
+import org.apache.wiki.api.WikiPlugin;
+import org.apache.wiki.api.exceptions.PluginException;
 import org.apache.wiki.auth.AuthorizationManager;
 import org.apache.wiki.auth.permissions.PermissionFactory;
 import org.apache.wiki.providers.ProviderException;

Modified: incubator/jspwiki/trunk/src/org/apache/wiki/plugin/ListLocksPlugin.java
URL: http://svn.apache.org/viewvc/incubator/jspwiki/trunk/src/org/apache/wiki/plugin/ListLocksPlugin.java?rev=1422020&r1=1422019&r2=1422020&view=diff
==============================================================================
--- incubator/jspwiki/trunk/src/org/apache/wiki/plugin/ListLocksPlugin.java (original)
+++ incubator/jspwiki/trunk/src/org/apache/wiki/plugin/ListLocksPlugin.java Fri Dec 14 18:13:37 2012
@@ -26,6 +26,8 @@ import java.util.ResourceBundle;
 import org.apache.wiki.PageLock;
 import org.apache.wiki.PageManager;
 import org.apache.wiki.WikiContext;
+import org.apache.wiki.api.WikiPlugin;
+import org.apache.wiki.api.exceptions.PluginException;
 import org.apache.wiki.preferences.Preferences;
 
 /**

Modified: incubator/jspwiki/trunk/src/org/apache/wiki/plugin/Note.java
URL: http://svn.apache.org/viewvc/incubator/jspwiki/trunk/src/org/apache/wiki/plugin/Note.java?rev=1422020&r1=1422019&r2=1422020&view=diff
==============================================================================
--- incubator/jspwiki/trunk/src/org/apache/wiki/plugin/Note.java (original)
+++ incubator/jspwiki/trunk/src/org/apache/wiki/plugin/Note.java Fri Dec 14 18:13:37 2012
@@ -25,6 +25,8 @@ import java.util.Map;
 import org.apache.wiki.TextUtil;
 import org.apache.wiki.WikiContext;
 import org.apache.wiki.WikiEngine;
+import org.apache.wiki.api.WikiPlugin;
+import org.apache.wiki.api.exceptions.PluginException;
 
 /**
  * Outputs an image with the supplied text as the <tt>title</tt> which is shown as a tooltip by
@@ -60,10 +62,10 @@ public class Note implements WikiPlugin
      */
     public String execute(WikiContext context, Map<String, String> params) throws PluginException
     {
-        String commandline = params.get(PluginManager.PARAM_CMDLINE);
+        String commandline = params.get(DefaultPluginManager.PARAM_CMDLINE);
         if (commandline == null || commandline.length() == 0)
         {
-            return "Unable to obtain plugin command line from parameter'" + PluginManager.PARAM_CMDLINE + "'"; // I18N
+            return "Unable to obtain plugin command line from parameter'" + DefaultPluginManager.PARAM_CMDLINE + "'"; // I18N
         }
 
         String commentImage = imageUrl(context);

Modified: incubator/jspwiki/trunk/src/org/apache/wiki/plugin/PageViewPlugin.java
URL: http://svn.apache.org/viewvc/incubator/jspwiki/trunk/src/org/apache/wiki/plugin/PageViewPlugin.java?rev=1422020&r1=1422019&r2=1422020&view=diff
==============================================================================
--- incubator/jspwiki/trunk/src/org/apache/wiki/plugin/PageViewPlugin.java (original)
+++ incubator/jspwiki/trunk/src/org/apache/wiki/plugin/PageViewPlugin.java Fri Dec 14 18:13:37 2012
@@ -18,46 +18,21 @@
  */
 package org.apache.wiki.plugin;
 
-import java.io.File;
-import java.io.FileInputStream;
-import java.io.FileOutputStream;
-import java.io.IOException;
-import java.io.InputStream;
-import java.io.OutputStream;
+import java.io.*;
 import java.text.MessageFormat;
-import java.util.Collection;
-import java.util.Comparator;
-import java.util.HashSet;
-import java.util.Iterator;
-import java.util.Map;
-import java.util.Properties;
-import java.util.TreeMap;
+import java.util.*;
 import java.util.Map.Entry;
 
-import org.apache.wiki.ReferenceManager;
-import org.apache.wiki.TextUtil;
-import org.apache.wiki.WikiContext;
-import org.apache.wiki.WikiEngine;
-import org.apache.wiki.WikiPage;
-import org.apache.wiki.event.WikiEngineEvent;
-import org.apache.wiki.event.WikiEvent;
-import org.apache.wiki.event.WikiEventListener;
-import org.apache.wiki.event.WikiPageEvent;
-import org.apache.wiki.event.WikiPageRenameEvent;
-import org.apache.wiki.plugin.InitializablePlugin;
-import org.apache.wiki.plugin.PluginException;
-import org.apache.wiki.plugin.PluginManager;
-import org.apache.wiki.plugin.WikiPlugin;
-import org.apache.wiki.util.WikiBackgroundThread;
-
 import org.apache.commons.lang.StringUtils;
 import org.apache.log4j.Logger;
 import org.apache.oro.text.GlobCompiler;
-import org.apache.oro.text.regex.MalformedPatternException;
-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.oro.text.regex.*;
+import org.apache.wiki.*;
+import org.apache.wiki.api.InitializablePlugin;
+import org.apache.wiki.api.WikiPlugin;
+import org.apache.wiki.api.exceptions.PluginException;
+import org.apache.wiki.event.*;
+import org.apache.wiki.util.WikiBackgroundThread;
 
 /**
  * This plugin counts the number of times a page has been viewed.<br/>
@@ -334,7 +309,7 @@ public class PageViewPlugin extends Abst
                 final int max = TextUtil.parseIntParameter( params.get( PARAM_MAX_COUNT ), Integer.MAX_VALUE );
                 final int min = TextUtil.parseIntParameter( params.get( PARAM_MIN_COUNT ), Integer.MIN_VALUE );
                 String sort = params.get( PARAM_SORT );
-                String body = params.get( PluginManager.PARAM_BODY );
+                String body = params.get( DefaultPluginManager.PARAM_BODY );
                 Pattern[] exclude = compileGlobs( PARAM_EXCLUDE, params.get( PARAM_EXCLUDE ) );
                 Pattern[] include = compileGlobs( PARAM_INCLUDE, params.get( PARAM_INCLUDE ) );
                 Pattern[] refer = compileGlobs( PARAM_REFER, params.get( PARAM_REFER ) );

Modified: incubator/jspwiki/trunk/src/org/apache/wiki/plugin/ParserStagePlugin.java
URL: http://svn.apache.org/viewvc/incubator/jspwiki/trunk/src/org/apache/wiki/plugin/ParserStagePlugin.java?rev=1422020&r1=1422019&r2=1422020&view=diff
==============================================================================
--- incubator/jspwiki/trunk/src/org/apache/wiki/plugin/ParserStagePlugin.java (original)
+++ incubator/jspwiki/trunk/src/org/apache/wiki/plugin/ParserStagePlugin.java Fri Dec 14 18:13:37 2012
@@ -28,8 +28,11 @@ import org.apache.wiki.parser.PluginCont
  *  for further documentation.
  * 
  *  @since 2.5.30
+ *  @deprecated will be removed in 2.10 scope. Consider using 
+ *  {@link org.apache.wiki.api.ParserStagePlugin} instead
  */
-public interface ParserStagePlugin
+@Deprecated
+public interface ParserStagePlugin extends org.apache.wiki.api.ParserStagePlugin
 {
     /**
      *  Method which is executed during parsing.

Modified: incubator/jspwiki/trunk/src/org/apache/wiki/plugin/PluginException.java
URL: http://svn.apache.org/viewvc/incubator/jspwiki/trunk/src/org/apache/wiki/plugin/PluginException.java?rev=1422020&r1=1422019&r2=1422020&view=diff
==============================================================================
--- incubator/jspwiki/trunk/src/org/apache/wiki/plugin/PluginException.java (original)
+++ incubator/jspwiki/trunk/src/org/apache/wiki/plugin/PluginException.java Fri Dec 14 18:13:37 2012
@@ -18,14 +18,16 @@
  */
 package org.apache.wiki.plugin;
 
-import org.apache.wiki.WikiException;
 
 /**
  *  Provides a generic PluginException.  This is the kind of
- *  an exception that the plugins should throw.
+ *  an exception that the plugins should throw. 
+ *  @deprecated will be removed in 2.10 scope. Consider using 
+ *  {@link org.apache.wiki.api.exceptions.PluginException} instead
  */
+@Deprecated
 public class PluginException
-    extends WikiException
+    extends org.apache.wiki.api.exceptions.PluginException
 {
     private static final long serialVersionUID = 0L;
 
@@ -53,14 +55,4 @@ public class PluginException
         super( message, original );
         m_throwable = original;
     }
-
-    /**
-     *  Return the original exception.
-     *  
-     *  @return The original exception.
-     */
-    public Throwable getRootThrowable()
-    {
-        return m_throwable;
-    }
 }

Modified: incubator/jspwiki/trunk/src/org/apache/wiki/plugin/PluginManager.java
URL: http://svn.apache.org/viewvc/incubator/jspwiki/trunk/src/org/apache/wiki/plugin/PluginManager.java?rev=1422020&r1=1422019&r2=1422020&view=diff
==============================================================================
--- incubator/jspwiki/trunk/src/org/apache/wiki/plugin/PluginManager.java (original)
+++ incubator/jspwiki/trunk/src/org/apache/wiki/plugin/PluginManager.java Fri Dec 14 18:13:37 2012
@@ -18,25 +18,14 @@
  */
 package org.apache.wiki.plugin;
 
-import java.io.*;
-import java.net.URL;
-import java.text.MessageFormat;
-import java.util.*;
+import java.io.IOException;
+import java.util.Properties;
 
 import org.apache.commons.lang.ClassUtils;
-import org.apache.ecs.xhtml.*;
 import org.apache.log4j.Logger;
-import org.apache.oro.text.regex.*;
-import org.apache.wiki.*;
-import org.apache.wiki.modules.ModuleManager;
+import org.apache.wiki.WikiEngine;
 import org.apache.wiki.modules.WikiModuleInfo;
-import org.apache.wiki.parser.PluginContent;
-import org.apache.wiki.util.ClassUtil;
-import org.jdom.Document;
 import org.jdom.Element;
-import org.jdom.JDOMException;
-import org.jdom.input.SAXBuilder;
-import org.jdom.xpath.XPath;
 
 /**
  *  Manages plugin classes.  There exists a single instance of PluginManager
@@ -128,647 +117,38 @@ import org.jdom.xpath.XPath;
  *  </ul>
  *
  *  @since 1.6.1
+ *  
+ *  @deprecated will be removed in 2.10 scope. Consider using {@link DefaultPluginManager} instead
  */
-public class PluginManager extends ModuleManager
+@Deprecated
+public class PluginManager extends DefaultPluginManager
 {
-    private static final String PLUGIN_INSERT_PATTERN = "\\{?(INSERT)?\\s*([\\w\\._]+)[ \\t]*(WHERE)?[ \\t]*";
 
-    private static Logger log = Logger.getLogger( PluginManager.class );
-
-    /**
-     *  This is the default package to try in case the instantiation
-     *  fails.
-     */
-    public static final String DEFAULT_PACKAGE = "org.apache.wiki.plugin";
-
-    private static final String DEFAULT_FORMS_PACKAGE = "org.apache.wiki.forms";
-
-    /**
-     *  The property name defining which packages will be searched for properties.
-     */
-    public static final String PROP_SEARCHPATH = "jspwiki.plugin.searchPath";
-
-    /**
-     *  The name of the body content.  Current value is "_body".
-     */
-    public static final String PARAM_BODY      = "_body";
-
-    /**
-     *  The name of the command line content parameter. The value is "_cmdline".
-     */
-    public static final String PARAM_CMDLINE   = "_cmdline";
-
-    /**
-     *  The name of the parameter containing the start and end positions in the
-     *  read stream of the plugin text (stored as a two-element int[], start
-     *  and end resp.).
-     */
-    public static final String PARAM_BOUNDS    = "_bounds";
-
-    /**
-     *  A special name to be used in case you want to see debug output
-     */
-    public static final String PARAM_DEBUG     = "debug";
-
-    private ArrayList<String>  m_searchPath = new ArrayList<String>();
-
-    private Pattern m_pluginPattern;
-
-    private boolean m_pluginsEnabled = true;
-
-    /**
-     *  Keeps a list of all known plugin classes.
-     */
-    private Map<String, WikiPluginInfo> m_pluginClassMap = new HashMap<String, WikiPluginInfo>();
-
-
-    /**
-     *  Create a new PluginManager.
-     *
-     *  @param engine WikiEngine which owns this manager.
-     *  @param props Contents of a "jspwiki.properties" file.
-     */
     public PluginManager( WikiEngine engine, Properties props )
     {
-        super(engine);
-        String packageNames = props.getProperty( PROP_SEARCHPATH );
-
-        if( packageNames != null )
-        {
-            StringTokenizer tok = new StringTokenizer( packageNames, "," );
-
-            while( tok.hasMoreTokens() )
-            {
-                m_searchPath.add( tok.nextToken().trim() );
-            }
-        }
-
-        registerPlugins();
-
-        //
-        //  The default packages are always added.
-        //
-        m_searchPath.add( DEFAULT_PACKAGE );
-        m_searchPath.add( DEFAULT_FORMS_PACKAGE );
-
-        PatternCompiler compiler = new Perl5Compiler();
-
-        try
-        {
-            m_pluginPattern = compiler.compile( PLUGIN_INSERT_PATTERN );
-        }
-        catch( MalformedPatternException e )
-        {
-            log.fatal("Internal error: someone messed with pluginmanager patterns.", e );
-            throw new InternalWikiException( "PluginManager patterns are broken" );
-        }
-
-    }
-
-    /**
-     * Enables or disables plugin execution.
-     * 
-     * @param enabled True, if plugins should be globally enabled; false, if disabled.
-     */
-    public void enablePlugins( boolean enabled )
-    {
-        m_pluginsEnabled = enabled;
-    }
-
-    /**
-     * Returns plugin execution status. If false, plugins are not
-     * executed when they are encountered on a WikiPage, and an
-     * empty string is returned in their place.
-     * 
-     * @return True, if plugins are enabled; false otherwise.
-     */
-    public boolean pluginsEnabled()
-    {
-        return m_pluginsEnabled;
-    }
-
-    /**
-     *  Returns true if the link is really command to insert
-     *  a plugin.
-     *  <P>
-     *  Currently we just check if the link starts with "{INSERT",
-     *  or just plain "{" but not "{$".
-     *
-     *  @param link Link text, i.e. the contents of text between [].
-     *  @return True, if this link seems to be a command to insert a plugin here.
-     */
-    public static boolean isPluginLink( String link )
-    {
-        return link.startsWith("{INSERT") ||
-               (link.startsWith("{") && !link.startsWith("{$"));
-    }
-
-    /**
-     *  Attempts to locate a plugin class from the class path
-     *  set in the property file.
-     *
-     *  @param classname Either a fully fledged class name, or just
-     *  the name of the file (that is,
-     *  "org.apache.wiki.plugin.Counter" or just plain "Counter").
-     *
-     *  @return A found class.
-     *
-     *  @throws ClassNotFoundException if no such class exists.
-     */
-    private Class findPluginClass( String classname )
-        throws ClassNotFoundException
-    {
-        return ClassUtil.findClass( m_searchPath, classname );
-    }
-
-    /**
-     *  Outputs a HTML-formatted version of a stack trace.
-     */
-    private String stackTrace( Map< String, String > params, Throwable t )
-    {
-        div d = new div();
-        d.setClass("debug");
-        d.addElement("Plugin execution failed, stack trace follows:");
-        StringWriter out = new StringWriter();
-        t.printStackTrace( new PrintWriter(out) );
-        d.addElement( new pre( out.toString() ) );
-        d.addElement( new b( "Parameters to the plugin" ) );
-
-        ul list = new ul();
-        for( Iterator<Map.Entry< String, String > > i = params.entrySet().iterator(); i.hasNext(); )
-        {
-            Map.Entry< String, String > e = i.next();
-            String key = e.getKey();
-
-            list.addElement(new li( key+"'='"+e.getValue() ) );
-        }
-
-        d.addElement( list );
-
-        return d.toString();
-    }
-
-    /**
-     *  Executes a plugin class in the given context.
-     *  <P>Used to be private, but is public since 1.9.21.
-     *
-     *  @param context The current WikiContext.
-     *  @param classname The name of the class.  Can also be a
-     *  shortened version without the package name, since the class name is searched from the
-     *  package search path.
-     *
-     *  @param params A parsed map of key-value pairs.
-     *
-     *  @return Whatever the plugin returns.
-     *
-     *  @throws PluginException If the plugin execution failed for
-     *  some reason.
-     *
-     *  @since 2.0
-     */
-    public String execute( WikiContext context,
-                           String classname,
-                           Map< String, String > params )
-        throws PluginException
-    {
-        if( !m_pluginsEnabled )
-            return "";
-
-        ResourceBundle rb = context.getBundle(WikiPlugin.CORE_PLUGINS_RESOURCEBUNDLE);
-        Object[] args = { classname };
-        try
-        {
-            WikiPlugin plugin;
-
-            boolean debug = TextUtil.isPositive( params.get( PARAM_DEBUG ) );
-
-            WikiPluginInfo pluginInfo = m_pluginClassMap.get(classname);
-
-            if(pluginInfo == null)
-            {
-                pluginInfo = WikiPluginInfo.newInstance(findPluginClass( classname ));
-                registerPlugin(pluginInfo);
-            }
-
-            if( !checkCompatibility(pluginInfo) )
-            {
-                String msg = "Plugin '"+pluginInfo.getName()+"' not compatible with this version of JSPWiki";
-                log.info(msg);
-                return msg;
-            }
-
-            //
-            //   Create...
-            //
-            try
-            {
-                plugin = pluginInfo.newPluginInstance();
-            }
-            catch( InstantiationException e )
-            {
-                throw new PluginException( MessageFormat.format( rb.getString( "plugin.error.cannotinstantiate" ), args ), e );
-            }
-            catch( IllegalAccessException e )
-            {
-                throw new PluginException( MessageFormat.format( rb.getString( "plugin.error.notallowed" ), args ), e );
-            }
-            catch( Exception e )
-            {
-                throw new PluginException( MessageFormat.format( rb.getString( "plugin.error.instantationfailed" ), args), e );
-            }
-
-            //
-            //  ...and launch.
-            //
-            try
-            {
-                return plugin.execute( context, params );
-            }
-            catch( PluginException e )
-            {
-                if( debug )
-                {
-                    return stackTrace( params, e );
-                }
-
-                // Just pass this exception onward.
-                throw (PluginException) e.fillInStackTrace();
-            }
-            catch( Throwable t )
-            {
-                // But all others get captured here.
-                log.info( "Plugin failed while executing:", t );
-                if( debug )
-                {
-                    return stackTrace( params, t );
-                }
-
-                throw new PluginException( rb.getString( "plugin.error.failed" ), t );
-            }
-
-        }
-        catch( ClassNotFoundException e )
-        {
-            throw new PluginException( MessageFormat.format( rb.getString( "plugin.error.couldnotfind" ), args ), e );
-        }
-        catch( ClassCastException e )
-        {
-            throw new PluginException( MessageFormat.format( rb.getString( "plugin.error.notawikiplugin" ), args ), e );
-        }
+        super(engine, props);
     }
-
-    /**
-     *  Parses plugin arguments.  Handles quotes and all other kewl stuff.
-     *
-     *  <h3>Special parameters</h3>
-     *  The plugin body is put into a special parameter defined by {@link #PARAM_BODY};
-     *  the plugin's command line into a parameter defined by {@link #PARAM_CMDLINE};
-     *  and the bounds of the plugin within the wiki page text by a parameter defined
-     *  by {@link #PARAM_BOUNDS}, whose value is stored as a two-element int[] array,
-     *  i.e., <tt>[start,end]</tt>.
-     *
-     * @param argstring The argument string to the plugin.  This is
-     *  typically a list of key-value pairs, using "'" to escape
-     *  spaces in strings, followed by an empty line and then the
-     *  plugin body.  In case the parameter is null, will return an
-     *  empty parameter list.
-     *
-     * @return A parsed list of parameters.
-     *
-     * @throws IOException If the parsing fails.
-     */
-    public Map<String, String> parseArgs( String argstring )
-        throws IOException
-    {
-        HashMap<String, String> arglist = new HashMap<String, String>();
-
-        //
-        //  Protection against funny users.
-        //
-        if( argstring == null ) return arglist;
-
-        arglist.put( PARAM_CMDLINE, argstring );
-
-        StringReader    in      = new StringReader(argstring);
-        StreamTokenizer tok     = new StreamTokenizer(in);
-        int             type;
-
-
-        String param = null;
-        String value = null;
-
-        tok.eolIsSignificant( true );
-
-        boolean potentialEmptyLine = false;
-        boolean quit               = false;
-
-        while( !quit )
-        {
-            String s;
-
-            type = tok.nextToken();
-
-            switch( type )
-            {
-              case StreamTokenizer.TT_EOF:
-                quit = true;
-                s = null;
-                break;
-
-              case StreamTokenizer.TT_WORD:
-                s = tok.sval;
-                potentialEmptyLine = false;
-                break;
-
-              case StreamTokenizer.TT_EOL:
-                quit = potentialEmptyLine;
-                potentialEmptyLine = true;
-                s = null;
-                break;
-
-              case StreamTokenizer.TT_NUMBER:
-                s = Integer.toString( (int) tok.nval );
-                potentialEmptyLine = false;
-                break;
-
-              case '\'':
-                s = tok.sval;
-                break;
-
-              default:
-                s = null;
-            }
-
-            //
-            //  Assume that alternate words on the line are
-            //  parameter and value, respectively.
-            //
-            if( s != null )
-            {
-                if( param == null )
-                {
-                    param = s;
-                }
-                else
-                {
-                    value = s;
-
-                    arglist.put( param, value );
-
-                    // log.debug("ARG: "+param+"="+value);
-                    param = null;
-                }
-            }
-        }
-
-        //
-        //  Now, we'll check the body.
-        //
-
-        if( potentialEmptyLine )
-        {
-            StringWriter out = new StringWriter();
-            FileUtil.copyContents( in, out );
-
-            String bodyContent = out.toString();
-
-            if( bodyContent != null )
-            {
-                arglist.put( PARAM_BODY, bodyContent );
-            }
-        }
-
-        return arglist;
-    }
-
-    /**
-     *  Parses a plugin.  Plugin commands are of the form:
-     *  [{INSERT myplugin WHERE param1=value1, param2=value2}]
-     *  myplugin may either be a class name or a plugin alias.
-     *  <P>
-     *  This is the main entry point that is used.
-     *
-     *  @param context The current WikiContext.
-     *  @param commandline The full command line, including plugin
-     *  name, parameters and body.
-     *
-     *  @return HTML as returned by the plugin, or possibly an error
-     *  message.
-     *  
-     *  @throws PluginException From the plugin itself, it propagates, waah!
-     */
-    public String execute( WikiContext context,
-                           String commandline )
-        throws PluginException
-    {
-        if( !m_pluginsEnabled )
-            return "";
-
-        ResourceBundle rb = context.getBundle(WikiPlugin.CORE_PLUGINS_RESOURCEBUNDLE);
-        Object[] obArgs = { commandline };
-        PatternMatcher  matcher  = new Perl5Matcher();
-
-        try
-        {
-            if( matcher.contains( commandline, m_pluginPattern ) )
-            {
-                MatchResult res = matcher.getMatch();
-
-                String plugin   = res.group(2);
-                String args     = commandline.substring(res.endOffset(0),
-                                                        commandline.length() -
-                                                        (commandline.charAt(commandline.length()-1) == '}' ? 1 : 0 ) );
-                Map<String, String> arglist  = parseArgs( args );
-
-                return execute( context, plugin, arglist );
-            }
-        }
-        catch( NoSuchElementException e )
-        {
-            String msg =  "Missing parameter in plugin definition: "+commandline;
-            log.warn( msg, e );
-            throw new PluginException( MessageFormat.format( rb.getString( "plugin.error.missingparameter" ), obArgs ) );
-        }
-        catch( IOException e )
-        {
-            String msg = "Zyrf.  Problems with parsing arguments: "+commandline;
-            log.warn( msg, e );
-            throw new PluginException( MessageFormat.format( rb.getString( "plugin.error.parsingarguments" ), obArgs ) );
-        }
-
-        // FIXME: We could either return an empty string "", or
-        // the original line.  If we want unsuccessful requests
-        // to be invisible, then we should return an empty string.
-        return commandline;
-    }
-
-    /**
-     *  Parses a plugin invocation and returns a DOM element.
-     *  
-     *  @param context The WikiContext
-     *  @param commandline The line to parse
-     *  @param pos The position in the stream parsing.
-     *  @return A DOM element
-     *  @throws PluginException If plugin invocation is faulty
-     */
-   public PluginContent parsePluginLine( WikiContext context, String commandline, int pos )
-        throws PluginException
-    {
-        PatternMatcher  matcher  = new Perl5Matcher();
-
-        try
-        {
-            if( matcher.contains( commandline, m_pluginPattern ) )
-            {
-                MatchResult res = matcher.getMatch();
-
-                String plugin   = res.group(2);
-                String args     = commandline.substring(res.endOffset(0),
-                                                        commandline.length() -
-                                                        (commandline.charAt(commandline.length()-1) == '}' ? 1 : 0 ) );
-                Map<String, String> arglist = parseArgs( args );
-
-                // set wikitext bounds of plugin as '_bounds' parameter, e.g., [345,396]
-                if ( pos != -1 )
-                {
-                    int end = pos + commandline.length() + 2;
-                    String bounds = pos + "|" + end;
-                    arglist.put( PARAM_BOUNDS, bounds );
-                }
-
-                PluginContent result = new PluginContent( plugin, arglist );
-
-                return result;
-            }
-        }
-        catch( ClassCastException e )
-        {
-            log.error( "Invalid type offered in parsing plugin arguments.", e );
-            throw new InternalWikiException("Oops, someone offered !String!");
-        }
-        catch( NoSuchElementException e )
-        {
-            String msg =  "Missing parameter in plugin definition: "+commandline;
-            log.warn( msg, e );
-            throw new PluginException( msg );
-        }
-        catch( IOException e )
-        {
-            String msg = "Zyrf.  Problems with parsing arguments: "+commandline;
-            log.warn( msg, e );
-            throw new PluginException( msg );
-        }
-
-        return null;
-    }
-
-    /**
-     *  Register a plugin.
-     */
-    private void registerPlugin(WikiPluginInfo pluginClass)
-    {
-        String name;
-
-        // Registrar the plugin with the className without the package-part
-        name = pluginClass.getName();
-        if(name != null)
-        {
-            log.debug("Registering plugin [name]: " + name);
-            m_pluginClassMap.put(name, pluginClass);
-        }
-
-        // Registrar the plugin with a short convenient name.
-        name = pluginClass.getAlias();
-        if(name != null)
-        {
-            log.debug("Registering plugin [shortName]: " + name);
-            m_pluginClassMap.put(name, pluginClass);
-        }
-
-        // Registrar the plugin with the className with the package-part
-        name = pluginClass.getClassName();
-        if(name != null)
-        {
-            log.debug("Registering plugin [className]: " + name);
-            m_pluginClassMap.put(name, pluginClass);
-        }
-
-        pluginClass.initializePlugin( m_engine );
-    }
-
-    private void registerPlugins()
-    {
-        log.info( "Registering plugins" );
-
-        SAXBuilder builder = new SAXBuilder();
-
-        try
-        {
-            //
-            // Register all plugins which have created a resource containing its properties.
-            //
-            // Get all resources of all plugins.
-            //
-
-            Enumeration resources = getClass().getClassLoader().getResources( PLUGIN_RESOURCE_LOCATION );
-
-            while( resources.hasMoreElements() )
-            {
-                URL resource = (URL) resources.nextElement();
-
-                try
-                {
-                    log.debug( "Processing XML: " + resource );
-
-                    Document doc = builder.build( resource );
-
-                    List plugins = XPath.selectNodes( doc, "/modules/plugin");
-
-                    for( Iterator i = plugins.iterator(); i.hasNext(); )
-                    {
-                        Element pluginEl = (Element) i.next();
-
-                        String className = pluginEl.getAttributeValue("class");
-
-                        WikiPluginInfo pluginInfo = WikiPluginInfo.newInstance( className, pluginEl );
-
-                        if( pluginInfo != null )
-                        {
-                            registerPlugin( pluginInfo );
-                        }
-                    }
-                }
-                catch( java.io.IOException e )
-                {
-                    log.error( "Couldn't load " + PLUGIN_RESOURCE_LOCATION + " resources: " + resource, e );
-                }
-                catch( JDOMException e )
-                {
-                    log.error( "Error parsing XML for plugin: "+PLUGIN_RESOURCE_LOCATION );
-                }
-            }
-        }
-        catch( java.io.IOException e )
-        {
-            log.error( "Couldn't load all " + PLUGIN_RESOURCE_LOCATION + " resources", e );
-        }
-    }
-
+    
     /**
      *  Contains information about a bunch of plugins.
      *
      *
      *  @since
+     *  @deprecated  will be removed in 2.10 scope. Consider using 
+     *  {@link DefaultPluginManager#WikiPluginInfo} instead.
      */
     // FIXME: This class needs a better interface to return all sorts of possible
     //        information from the plugin XML.  In fact, it probably should have
     //        some sort of a superclass system.
+    @Deprecated
     public static final class WikiPluginInfo
         extends WikiModuleInfo
     {
         private String m_className;
         private String m_alias;
         private Class  m_clazz;
+        
+        private static Logger log = Logger.getLogger( WikiPluginInfo.class );
 
         private boolean m_initialized = false;
 
@@ -982,87 +362,5 @@ public class PluginManager extends Modul
             return "Plugin :[name=" + m_name + "][className=" + m_className + "]";
         }
     } // WikiPluginClass
-
-    /**
-     *  {@inheritDoc}
-     */
-    public Collection modules()
-    {
-        TreeSet<WikiModuleInfo> ls = new TreeSet<WikiModuleInfo>();
-        
-        for( Iterator i = m_pluginClassMap.values().iterator(); i.hasNext(); )
-        {
-            WikiModuleInfo wmi = (WikiModuleInfo)i.next();
-            
-            if( !ls.contains(wmi) ) ls.add(wmi);
-        }
-        
-        return ls;
-    }
-
-    /**
-     *  Executes parse stage, unless plugins are disabled.
-     *  
-     *  @param content The content item.
-     *  @param context A WikiContext
-     *  @throws PluginException If something goes wrong.
-     */
-    // FIXME: This method needs to be reintegrated with execute() above, since they
-    //        share plenty of code.
-    public void executeParse(PluginContent content, WikiContext context)
-        throws PluginException
-    {
-        if( !m_pluginsEnabled )
-            return;
-
-        ResourceBundle rb = context.getBundle(WikiPlugin.CORE_PLUGINS_RESOURCEBUNDLE);
-        Object[] args = { content.getPluginName() };
-        Map<String, String> params = content.getParameters();
-        try
-        {
-            WikiPlugin plugin;
-
-            WikiPluginInfo pluginInfo = m_pluginClassMap.get( content.getPluginName() );
-
-            if(pluginInfo == null)
-            {
-                pluginInfo = WikiPluginInfo.newInstance(findPluginClass( content.getPluginName() ));
-                registerPlugin(pluginInfo);
-            }
-
-            if( !checkCompatibility(pluginInfo) )
-            {
-                String msg = "Plugin '"+pluginInfo.getName()+"' not compatible with this version of JSPWiki";
-                log.info(msg);
-                return;
-            }
-
-            plugin = pluginInfo.newPluginInstance();
-
-            if( plugin instanceof ParserStagePlugin )
-            {
-                ((ParserStagePlugin)plugin).executeParser( content, context, params );
-            }
-        }
-        catch( InstantiationException e )
-        {
-            throw new PluginException( MessageFormat.format( rb.getString( "plugin.error.cannotinstantiate" ), args), e );
-        }
-        catch( IllegalAccessException e )
-        {
-            throw new PluginException( MessageFormat.format( rb.getString( "plugin.error.notallowed" ), args), e );
-        }
-        catch( ClassNotFoundException e )
-        {
-            throw new PluginException( MessageFormat.format( rb.getString( "plugin.error.couldnotfind" ), args) );
-        }
-        catch( ClassCastException e )
-        {
-            throw new PluginException( MessageFormat.format( rb.getString( "plugin.error.notawikiplugin" ), args), e );
-        }
-        catch( Exception e )
-        {
-            throw new PluginException( MessageFormat.format( rb.getString( "plugin.error.instantationfailed" ), args), e );
-        }
-    }
+    
 }

Modified: incubator/jspwiki/trunk/src/org/apache/wiki/plugin/RPCSamplePlugin.java
URL: http://svn.apache.org/viewvc/incubator/jspwiki/trunk/src/org/apache/wiki/plugin/RPCSamplePlugin.java?rev=1422020&r1=1422019&r2=1422020&view=diff
==============================================================================
--- incubator/jspwiki/trunk/src/org/apache/wiki/plugin/RPCSamplePlugin.java (original)
+++ incubator/jspwiki/trunk/src/org/apache/wiki/plugin/RPCSamplePlugin.java Fri Dec 14 18:13:37 2012
@@ -21,6 +21,8 @@ package org.apache.wiki.plugin;
 import java.util.Map;
 
 import org.apache.wiki.WikiContext;
+import org.apache.wiki.api.WikiPlugin;
+import org.apache.wiki.api.exceptions.PluginException;
 import org.apache.wiki.rpc.RPCCallable;
 import org.apache.wiki.rpc.json.JSONRPCManager;
 

Modified: incubator/jspwiki/trunk/src/org/apache/wiki/plugin/RecentChangesPlugin.java
URL: http://svn.apache.org/viewvc/incubator/jspwiki/trunk/src/org/apache/wiki/plugin/RecentChangesPlugin.java?rev=1422020&r1=1422019&r2=1422020&view=diff
==============================================================================
--- incubator/jspwiki/trunk/src/org/apache/wiki/plugin/RecentChangesPlugin.java (original)
+++ incubator/jspwiki/trunk/src/org/apache/wiki/plugin/RecentChangesPlugin.java Fri Dec 14 18:13:37 2012
@@ -28,6 +28,8 @@ import org.apache.wiki.TextUtil;
 import org.apache.wiki.WikiContext;
 import org.apache.wiki.WikiEngine;
 import org.apache.wiki.WikiPage;
+import org.apache.wiki.api.WikiPlugin;
+import org.apache.wiki.api.exceptions.PluginException;
 import org.apache.wiki.attachment.Attachment;
 import org.apache.wiki.i18n.InternationalizationManager;
 import org.apache.wiki.preferences.Preferences;

Modified: incubator/jspwiki/trunk/src/org/apache/wiki/plugin/ReferredPagesPlugin.java
URL: http://svn.apache.org/viewvc/incubator/jspwiki/trunk/src/org/apache/wiki/plugin/ReferredPagesPlugin.java?rev=1422020&r1=1422019&r2=1422020&view=diff
==============================================================================
--- incubator/jspwiki/trunk/src/org/apache/wiki/plugin/ReferredPagesPlugin.java (original)
+++ incubator/jspwiki/trunk/src/org/apache/wiki/plugin/ReferredPagesPlugin.java Fri Dec 14 18:13:37 2012
@@ -23,6 +23,8 @@ import java.util.*;
 import org.apache.log4j.Logger;
 import org.apache.oro.text.regex.*;
 import org.apache.wiki.*;
+import org.apache.wiki.api.WikiPlugin;
+import org.apache.wiki.api.exceptions.PluginException;
 
 
 /**

Modified: incubator/jspwiki/trunk/src/org/apache/wiki/plugin/ReferringPagesPlugin.java
URL: http://svn.apache.org/viewvc/incubator/jspwiki/trunk/src/org/apache/wiki/plugin/ReferringPagesPlugin.java?rev=1422020&r1=1422019&r2=1422020&view=diff
==============================================================================
--- incubator/jspwiki/trunk/src/org/apache/wiki/plugin/ReferringPagesPlugin.java (original)
+++ incubator/jspwiki/trunk/src/org/apache/wiki/plugin/ReferringPagesPlugin.java Fri Dec 14 18:13:37 2012
@@ -28,6 +28,8 @@ import org.apache.wiki.ReferenceManager;
 import org.apache.wiki.TextUtil;
 import org.apache.wiki.WikiContext;
 import org.apache.wiki.WikiPage;
+import org.apache.wiki.api.WikiPlugin;
+import org.apache.wiki.api.exceptions.PluginException;
 
 /**
  *  Displays the pages referring to the current page.

Modified: incubator/jspwiki/trunk/src/org/apache/wiki/plugin/Search.java
URL: http://svn.apache.org/viewvc/incubator/jspwiki/trunk/src/org/apache/wiki/plugin/Search.java?rev=1422020&r1=1422019&r2=1422020&view=diff
==============================================================================
--- incubator/jspwiki/trunk/src/org/apache/wiki/plugin/Search.java (original)
+++ incubator/jspwiki/trunk/src/org/apache/wiki/plugin/Search.java Fri Dec 14 18:13:37 2012
@@ -28,6 +28,8 @@ import org.apache.log4j.Logger;
 import org.apache.wiki.SearchResult;
 import org.apache.wiki.WikiContext;
 import org.apache.wiki.WikiEngine;
+import org.apache.wiki.api.WikiPlugin;
+import org.apache.wiki.api.exceptions.PluginException;
 import org.apache.wiki.providers.ProviderException;
 
 /**

Modified: incubator/jspwiki/trunk/src/org/apache/wiki/plugin/SessionsPlugin.java
URL: http://svn.apache.org/viewvc/incubator/jspwiki/trunk/src/org/apache/wiki/plugin/SessionsPlugin.java?rev=1422020&r1=1422019&r2=1422020&view=diff
==============================================================================
--- incubator/jspwiki/trunk/src/org/apache/wiki/plugin/SessionsPlugin.java (original)
+++ incubator/jspwiki/trunk/src/org/apache/wiki/plugin/SessionsPlugin.java Fri Dec 14 18:13:37 2012
@@ -26,6 +26,8 @@ import java.util.Map;
 import org.apache.wiki.WikiContext;
 import org.apache.wiki.WikiEngine;
 import org.apache.wiki.WikiSession;
+import org.apache.wiki.api.WikiPlugin;
+import org.apache.wiki.api.exceptions.PluginException;
 
 /**
  *  <p>Displays information about active wiki sessions. The parameter

Modified: incubator/jspwiki/trunk/src/org/apache/wiki/plugin/TableOfContents.java
URL: http://svn.apache.org/viewvc/incubator/jspwiki/trunk/src/org/apache/wiki/plugin/TableOfContents.java?rev=1422020&r1=1422019&r2=1422020&view=diff
==============================================================================
--- incubator/jspwiki/trunk/src/org/apache/wiki/plugin/TableOfContents.java (original)
+++ incubator/jspwiki/trunk/src/org/apache/wiki/plugin/TableOfContents.java Fri Dec 14 18:13:37 2012
@@ -25,6 +25,8 @@ import java.util.ResourceBundle;
 
 import org.apache.log4j.Logger;
 import org.apache.wiki.*;
+import org.apache.wiki.api.WikiPlugin;
+import org.apache.wiki.api.exceptions.PluginException;
 import org.apache.wiki.parser.Heading;
 import org.apache.wiki.parser.HeadingListener;
 import org.apache.wiki.parser.JSPWikiMarkupParser;

Modified: incubator/jspwiki/trunk/src/org/apache/wiki/plugin/UndefinedPagesPlugin.java
URL: http://svn.apache.org/viewvc/incubator/jspwiki/trunk/src/org/apache/wiki/plugin/UndefinedPagesPlugin.java?rev=1422020&r1=1422019&r2=1422020&view=diff
==============================================================================
--- incubator/jspwiki/trunk/src/org/apache/wiki/plugin/UndefinedPagesPlugin.java (original)
+++ incubator/jspwiki/trunk/src/org/apache/wiki/plugin/UndefinedPagesPlugin.java Fri Dec 14 18:13:37 2012
@@ -23,6 +23,7 @@ import java.util.Map;
 
 import org.apache.wiki.ReferenceManager;
 import org.apache.wiki.WikiContext;
+import org.apache.wiki.api.exceptions.PluginException;
 
 /**
  *  Plugin that enumerates the pages in the wiki that have not yet been defined.

Modified: incubator/jspwiki/trunk/src/org/apache/wiki/plugin/UnusedPagesPlugin.java
URL: http://svn.apache.org/viewvc/incubator/jspwiki/trunk/src/org/apache/wiki/plugin/UnusedPagesPlugin.java?rev=1422020&r1=1422019&r2=1422020&view=diff
==============================================================================
--- incubator/jspwiki/trunk/src/org/apache/wiki/plugin/UnusedPagesPlugin.java (original)
+++ incubator/jspwiki/trunk/src/org/apache/wiki/plugin/UnusedPagesPlugin.java Fri Dec 14 18:13:37 2012
@@ -25,6 +25,7 @@ import java.util.Map;
 import org.apache.wiki.ReferenceManager;
 import org.apache.wiki.TextUtil;
 import org.apache.wiki.WikiContext;
+import org.apache.wiki.api.exceptions.PluginException;
 
 /**
  * Plugin for displaying pages that are not linked to in other pages.

Modified: incubator/jspwiki/trunk/src/org/apache/wiki/plugin/WeblogArchivePlugin.java
URL: http://svn.apache.org/viewvc/incubator/jspwiki/trunk/src/org/apache/wiki/plugin/WeblogArchivePlugin.java?rev=1422020&r1=1422019&r2=1422020&view=diff
==============================================================================
--- incubator/jspwiki/trunk/src/org/apache/wiki/plugin/WeblogArchivePlugin.java (original)
+++ incubator/jspwiki/trunk/src/org/apache/wiki/plugin/WeblogArchivePlugin.java Fri Dec 14 18:13:37 2012
@@ -26,6 +26,8 @@ import org.apache.wiki.TextUtil;
 import org.apache.wiki.WikiContext;
 import org.apache.wiki.WikiEngine;
 import org.apache.wiki.WikiPage;
+import org.apache.wiki.api.WikiPlugin;
+import org.apache.wiki.api.exceptions.PluginException;
 import org.apache.wiki.providers.ProviderException;
 
 /**

Modified: incubator/jspwiki/trunk/src/org/apache/wiki/plugin/WeblogEntryPlugin.java
URL: http://svn.apache.org/viewvc/incubator/jspwiki/trunk/src/org/apache/wiki/plugin/WeblogEntryPlugin.java?rev=1422020&r1=1422019&r2=1422020&view=diff
==============================================================================
--- incubator/jspwiki/trunk/src/org/apache/wiki/plugin/WeblogEntryPlugin.java (original)
+++ incubator/jspwiki/trunk/src/org/apache/wiki/plugin/WeblogEntryPlugin.java Fri Dec 14 18:13:37 2012
@@ -23,6 +23,8 @@ import java.util.*;
 
 import org.apache.log4j.Logger;
 import org.apache.wiki.*;
+import org.apache.wiki.api.WikiPlugin;
+import org.apache.wiki.api.exceptions.PluginException;
 import org.apache.wiki.providers.ProviderException;
 
 /**

Modified: incubator/jspwiki/trunk/src/org/apache/wiki/plugin/WeblogPlugin.java
URL: http://svn.apache.org/viewvc/incubator/jspwiki/trunk/src/org/apache/wiki/plugin/WeblogPlugin.java?rev=1422020&r1=1422019&r2=1422020&view=diff
==============================================================================
--- incubator/jspwiki/trunk/src/org/apache/wiki/plugin/WeblogPlugin.java (original)
+++ incubator/jspwiki/trunk/src/org/apache/wiki/plugin/WeblogPlugin.java Fri Dec 14 18:13:37 2012
@@ -27,6 +27,9 @@ import java.util.regex.Pattern;
 
 import org.apache.log4j.Logger;
 import org.apache.wiki.*;
+import org.apache.wiki.api.ParserStagePlugin;
+import org.apache.wiki.api.WikiPlugin;
+import org.apache.wiki.api.exceptions.PluginException;
 import org.apache.wiki.auth.AuthorizationManager;
 import org.apache.wiki.auth.permissions.PagePermission;
 import org.apache.wiki.parser.PluginContent;

Modified: incubator/jspwiki/trunk/src/org/apache/wiki/plugin/WikiPlugin.java
URL: http://svn.apache.org/viewvc/incubator/jspwiki/trunk/src/org/apache/wiki/plugin/WikiPlugin.java?rev=1422020&r1=1422019&r2=1422020&view=diff
==============================================================================
--- incubator/jspwiki/trunk/src/org/apache/wiki/plugin/WikiPlugin.java (original)
+++ incubator/jspwiki/trunk/src/org/apache/wiki/plugin/WikiPlugin.java Fri Dec 14 18:13:37 2012
@@ -25,9 +25,11 @@ import org.apache.wiki.WikiContext;
 /**
  *  Defines an interface for plugins.  Any instance of a wiki plugin
  *  should implement this interface.
- *
+ * @deprecated will be removed in 2.10 scope. Consider using {@link org.apache.wiki.api.WikiPlugin} 
+ * instead
  */
-public interface WikiPlugin 
+@Deprecated
+public interface WikiPlugin extends org.apache.wiki.api.WikiPlugin
 {
     /**
      *  Name of the default plugin resource bundle.

Modified: incubator/jspwiki/trunk/src/org/apache/wiki/tags/PluginTag.java
URL: http://svn.apache.org/viewvc/incubator/jspwiki/trunk/src/org/apache/wiki/tags/PluginTag.java?rev=1422020&r1=1422019&r2=1422020&view=diff
==============================================================================
--- incubator/jspwiki/trunk/src/org/apache/wiki/tags/PluginTag.java (original)
+++ incubator/jspwiki/trunk/src/org/apache/wiki/tags/PluginTag.java Fri Dec 14 18:13:37 2012
@@ -25,8 +25,8 @@ import javax.servlet.jsp.JspException;
 import javax.servlet.jsp.tagext.BodyContent;
 
 import org.apache.wiki.WikiEngine;
-import org.apache.wiki.plugin.PluginException;
-import org.apache.wiki.plugin.PluginManager;
+import org.apache.wiki.api.PluginManager;
+import org.apache.wiki.api.exceptions.PluginException;
 
 /**
  *  Inserts any Wiki plugin.  The body of the tag becomes then

Modified: incubator/jspwiki/trunk/src/org/apache/wiki/ui/EditorManager.java
URL: http://svn.apache.org/viewvc/incubator/jspwiki/trunk/src/org/apache/wiki/ui/EditorManager.java?rev=1422020&r1=1422019&r2=1422020&view=diff
==============================================================================
--- incubator/jspwiki/trunk/src/org/apache/wiki/ui/EditorManager.java (original)
+++ incubator/jspwiki/trunk/src/org/apache/wiki/ui/EditorManager.java Fri Dec 14 18:13:37 2012
@@ -35,7 +35,7 @@ import org.apache.wiki.WikiContext;
 import org.apache.wiki.WikiEngine;
 import org.apache.wiki.modules.ModuleManager;
 import org.apache.wiki.modules.WikiModuleInfo;
-import org.apache.wiki.plugin.PluginManager;
+import org.apache.wiki.plugin.DefaultPluginManager;
 import org.apache.wiki.preferences.Preferences;
 
 /**
@@ -154,11 +154,11 @@ public class EditorManager extends Modul
                 }
                 catch( java.io.IOException e )
                 {
-                    log.error( "Couldn't load " + PluginManager.PLUGIN_RESOURCE_LOCATION + " resources: " + resource, e );
+                    log.error( "Couldn't load " + DefaultPluginManager.PLUGIN_RESOURCE_LOCATION + " resources: " + resource, e );
                 }
                 catch( JDOMException e )
                 {
-                    log.error( "Error parsing XML for plugin: "+PluginManager.PLUGIN_RESOURCE_LOCATION );
+                    log.error( "Error parsing XML for plugin: "+DefaultPluginManager.PLUGIN_RESOURCE_LOCATION );
                 }
             }
         }

Modified: incubator/jspwiki/trunk/src/org/apache/wiki/ui/admin/beans/PluginBean.java
URL: http://svn.apache.org/viewvc/incubator/jspwiki/trunk/src/org/apache/wiki/ui/admin/beans/PluginBean.java?rev=1422020&r1=1422019&r2=1422020&view=diff
==============================================================================
--- incubator/jspwiki/trunk/src/org/apache/wiki/ui/admin/beans/PluginBean.java (original)
+++ incubator/jspwiki/trunk/src/org/apache/wiki/ui/admin/beans/PluginBean.java Fri Dec 14 18:13:37 2012
@@ -28,7 +28,7 @@ import org.apache.ecs.xhtml.*;
 import org.apache.wiki.Release;
 import org.apache.wiki.WikiContext;
 import org.apache.wiki.WikiEngine;
-import org.apache.wiki.plugin.PluginManager.WikiPluginInfo;
+import org.apache.wiki.plugin.DefaultPluginManager.WikiPluginInfo;
 import org.apache.wiki.ui.admin.SimpleAdminBean;
 
 public class PluginBean extends SimpleAdminBean

Modified: incubator/jspwiki/trunk/tests/org/apache/wiki/plugin/AllTests.java
URL: http://svn.apache.org/viewvc/incubator/jspwiki/trunk/tests/org/apache/wiki/plugin/AllTests.java?rev=1422020&r1=1422019&r2=1422020&view=diff
==============================================================================
--- incubator/jspwiki/trunk/tests/org/apache/wiki/plugin/AllTests.java (original)
+++ incubator/jspwiki/trunk/tests/org/apache/wiki/plugin/AllTests.java Fri Dec 14 18:13:37 2012
@@ -40,7 +40,7 @@ public class AllTests extends TestCase
         suite.addTest( GroupsTest.suite() );
         suite.addTest( IfPluginTest.suite() );
         suite.addTest( InsertPageTest.suite() );
-        suite.addTest( PluginManagerTest.suite() );
+        suite.addTest( DefaultPluginManagerTest.suite() );
         suite.addTest( ReferringPagesPluginTest.suite() );
         suite.addTest( TableOfContentsTest.suite() );
         suite.addTest( UndefinedPagesPluginTest.suite() );

Copied: incubator/jspwiki/trunk/tests/org/apache/wiki/plugin/DefaultPluginManagerTest.java (from r1420900, incubator/jspwiki/trunk/tests/org/apache/wiki/plugin/PluginManagerTest.java)
URL: http://svn.apache.org/viewvc/incubator/jspwiki/trunk/tests/org/apache/wiki/plugin/DefaultPluginManagerTest.java?p2=incubator/jspwiki/trunk/tests/org/apache/wiki/plugin/DefaultPluginManagerTest.java&p1=incubator/jspwiki/trunk/tests/org/apache/wiki/plugin/PluginManagerTest.java&r1=1420900&r2=1422020&rev=1422020&view=diff
==============================================================================
--- incubator/jspwiki/trunk/tests/org/apache/wiki/plugin/PluginManagerTest.java (original)
+++ incubator/jspwiki/trunk/tests/org/apache/wiki/plugin/DefaultPluginManagerTest.java Fri Dec 14 18:13:37 2012
@@ -31,7 +31,7 @@ import org.apache.wiki.WikiEngine;
 import org.apache.wiki.WikiPage;
 import org.apache.wiki.providers.ProviderException;
 
-public class PluginManagerTest extends TestCase
+public class DefaultPluginManagerTest extends TestCase
 {
     public static final String NAME1 = "Test1";
 
@@ -41,9 +41,9 @@ public class PluginManagerTest extends T
 
     WikiContext context;
 
-    PluginManager manager;
+    DefaultPluginManager manager;
 
-    public PluginManagerTest( String s )
+    public DefaultPluginManagerTest( String s )
     {
         super( s );
     }
@@ -55,7 +55,7 @@ public class PluginManagerTest extends T
 
         engine = new TestEngine(props);
         context = new WikiContext( engine, new WikiPage(engine, "Testpage") );
-        manager = new PluginManager( engine, props );
+        manager = new DefaultPluginManager( engine, props );
     }
 
     public void tearDown() throws ProviderException
@@ -87,8 +87,8 @@ public class PluginManagerTest extends T
     public void testSimpleInsertNoPackage2()
         throws Exception
     {
-        props.setProperty( PluginManager.PROP_SEARCHPATH, "com.foo" );
-        PluginManager m = new PluginManager( engine, props );
+        props.setProperty( DefaultPluginManager.PROP_SEARCHPATH, "com.foo" );
+        DefaultPluginManager m = new DefaultPluginManager( engine, props );
         String res = m.execute( context,
                                 "{INSERT SamplePlugin2 WHERE text=foobar}");
 
@@ -99,8 +99,8 @@ public class PluginManagerTest extends T
     public void testSimpleInsertNoPackage3()
         throws Exception
     {
-        props.setProperty( PluginManager.PROP_SEARCHPATH, "com.foo" );
-        PluginManager m = new PluginManager( engine, props );
+        props.setProperty( DefaultPluginManager.PROP_SEARCHPATH, "com.foo" );
+        DefaultPluginManager m = new DefaultPluginManager( engine, props );
         String res = m.execute( context,
                                 "{INSERT SamplePlugin3 WHERE text=foobar}");
 
@@ -112,8 +112,8 @@ public class PluginManagerTest extends T
     public void testSimpleInsertNoPackage4()
         throws Exception
     {
-        props.setProperty( PluginManager.PROP_SEARCHPATH, "com.foo,blat.blaa" );
-        PluginManager m = new PluginManager( engine, props );
+        props.setProperty( DefaultPluginManager.PROP_SEARCHPATH, "com.foo,blat.blaa" );
+        DefaultPluginManager m = new DefaultPluginManager( engine, props );
         String res = m.execute( context,
                                 "{INSERT SamplePlugin WHERE text=foobar}");
 
@@ -218,6 +218,6 @@ public class PluginManagerTest extends T
 
     public static Test suite()
     {
-        return new TestSuite( PluginManagerTest.class );
+        return new TestSuite( DefaultPluginManagerTest.class );
     }
 }