Author: sdumitriu
Date: 2008-02-25 21:11:36 +0100 (Mon, 25 Feb 2008)
New Revision: 7941

Added:
   
xwiki-platform/core/trunk/xwiki-core/src/main/aspect/compatibility/com/xpn/xwiki/plugin/
   
xwiki-platform/core/trunk/xwiki-core/src/main/aspect/compatibility/com/xpn/xwiki/plugin/PluginApiAspect.aj
Modified:
   
xwiki-platform/core/trunk/xwiki-core/src/main/java/com/xpn/xwiki/plugin/PluginApi.java
   
xwiki-platform/core/trunk/xwiki-core/src/main/java/com/xpn/xwiki/plugin/calendar/CalendarPluginApi.java
   
xwiki-platform/core/trunk/xwiki-core/src/main/java/com/xpn/xwiki/plugin/fileupload/FileUploadPluginApi.java
   
xwiki-platform/core/trunk/xwiki-core/src/main/java/com/xpn/xwiki/plugin/lucene/LucenePluginApi.java
Log:
XWIKI-2136: PluginAPI#getPlugin should always require programming rights, and 
provide an getInternalPlugin methods for in-java usage
getPlugin was deprecated, getInternalPlugin replaced getPlugin (public, but 
requires programming rights), and getProtectedPlugin is for in-java usage.


Added: 
xwiki-platform/core/trunk/xwiki-core/src/main/aspect/compatibility/com/xpn/xwiki/plugin/PluginApiAspect.aj
===================================================================
--- 
xwiki-platform/core/trunk/xwiki-core/src/main/aspect/compatibility/com/xpn/xwiki/plugin/PluginApiAspect.aj
                          (rev 0)
+++ 
xwiki-platform/core/trunk/xwiki-core/src/main/aspect/compatibility/com/xpn/xwiki/plugin/PluginApiAspect.aj
  2008-02-25 20:11:36 UTC (rev 7941)
@@ -0,0 +1,20 @@
+package com.xpn.xwiki.plugin;
+
+/**
+ * Add a backward compatibility layer to the [EMAIL PROTECTED] 
com.xpn.xwiki.plugin.PluginApi} class.
+ *
+ * @version $Id: $
+ */
+public privileged aspect PluginApiAspect
+{
+    /**
+     * Add a backward compatibility layer to the [EMAIL PROTECTED] 
com.xpn.xwiki.XWiki} class.
+     *
+     * @version $Id: $
+     */
+    public XWikiPluginInterface PluginApi.getPlugin()
+    {
+        return this.plugin;
+    }
+
+}

Modified: 
xwiki-platform/core/trunk/xwiki-core/src/main/java/com/xpn/xwiki/plugin/PluginApi.java
===================================================================
--- 
xwiki-platform/core/trunk/xwiki-core/src/main/java/com/xpn/xwiki/plugin/PluginApi.java
      2008-02-25 20:04:17 UTC (rev 7940)
+++ 
xwiki-platform/core/trunk/xwiki-core/src/main/java/com/xpn/xwiki/plugin/PluginApi.java
      2008-02-25 20:11:36 UTC (rev 7941)
@@ -49,30 +49,30 @@
     }
 
     /**
-     * Return the inner plugin object, if the user has the required 
programming rights.
+     * Return the inner plugin object. This method is only for the plugin 
API's internal use, and
+     * should not be exposed to scripting languages. It is an XWiki practice 
to expose all the
+     * functionality using an API, and allow access to the internal objects 
only to users with
+     * Programming Rights.
      * 
      * @return The wrapped plugin object.
+     * @since 1.3RC1
      */
-    public XWikiPluginInterface getPlugin()
+    protected XWikiPluginInterface getProtectedPlugin()
     {
-        if (hasProgrammingRights()) {
-            return plugin;
-        }
-        return null;
+        return plugin;
     }
 
     /**
-     * Return the inner plugin object. This method is only for the plugin 
API's internal use, and
-     * should not be exposed to scripting languages. It is an XWiki practice 
to expose all the
-     * functionality using an API, and allow access to the internal objects 
only to users with
-     * Programming Rights.
+     * Return the inner plugin object, if the user has the required 
programming rights.
      * 
      * @return The wrapped plugin object.
-     * @since 1.3RC1
      */
-    protected XWikiPluginInterface getInternalPlugin()
+    public XWikiPluginInterface getInternalPlugin()
     {
-        return plugin;
+        if (hasProgrammingRights()) {
+            return plugin;
+        }
+        return null;
     }
 
     /**

Modified: 
xwiki-platform/core/trunk/xwiki-core/src/main/java/com/xpn/xwiki/plugin/calendar/CalendarPluginApi.java
===================================================================
--- 
xwiki-platform/core/trunk/xwiki-core/src/main/java/com/xpn/xwiki/plugin/calendar/CalendarPluginApi.java
     2008-02-25 20:04:17 UTC (rev 7940)
+++ 
xwiki-platform/core/trunk/xwiki-core/src/main/java/com/xpn/xwiki/plugin/calendar/CalendarPluginApi.java
     2008-02-25 20:11:36 UTC (rev 7941)
@@ -224,11 +224,11 @@
     }
 
     public String getHTMLCalendarFromICal(CalendarParams calendarParams, 
String surl, String user) throws XWikiException, ParserException, IOException {
-        return getPlugin().getHTMLCalendar(calendarParams, 
getCalendarEvents(surl, user), getXWikiContext());
+        return plugin.getHTMLCalendar(calendarParams, getCalendarEvents(surl, 
user), getXWikiContext());
     }
 
     public String getHTMLCalendarFromICal(CalendarParams calendarParams, 
String surl, String user, String username, String password) throws 
XWikiException, ParserException, IOException {
-        return getPlugin().getHTMLCalendar(calendarParams, 
getCalendarEvents(surl, user, username, password), getXWikiContext());
+        return plugin.getHTMLCalendar(calendarParams, getCalendarEvents(surl, 
user, username, password), getXWikiContext());
     }
 
 }

Modified: 
xwiki-platform/core/trunk/xwiki-core/src/main/java/com/xpn/xwiki/plugin/fileupload/FileUploadPluginApi.java
===================================================================
--- 
xwiki-platform/core/trunk/xwiki-core/src/main/java/com/xpn/xwiki/plugin/fileupload/FileUploadPluginApi.java
 2008-02-25 20:04:17 UTC (rev 7940)
+++ 
xwiki-platform/core/trunk/xwiki-core/src/main/java/com/xpn/xwiki/plugin/fileupload/FileUploadPluginApi.java
 2008-02-25 20:11:36 UTC (rev 7941)
@@ -56,7 +56,7 @@
      */
     private FileUploadPlugin getFileUploadPlugin()
     {
-        return (FileUploadPlugin) getPlugin();
+        return (FileUploadPlugin) getProtectedPlugin();
     }
 
     /**

Modified: 
xwiki-platform/core/trunk/xwiki-core/src/main/java/com/xpn/xwiki/plugin/lucene/LucenePluginApi.java
===================================================================
--- 
xwiki-platform/core/trunk/xwiki-core/src/main/java/com/xpn/xwiki/plugin/lucene/LucenePluginApi.java
 2008-02-25 20:04:17 UTC (rev 7940)
+++ 
xwiki-platform/core/trunk/xwiki-core/src/main/java/com/xpn/xwiki/plugin/lucene/LucenePluginApi.java
 2008-02-25 20:11:36 UTC (rev 7941)
@@ -19,12 +19,13 @@
  */
 package com.xpn.xwiki.plugin.lucene;
 
-import com.xpn.xwiki.XWikiContext;
-import com.xpn.xwiki.api.Api;
-import com.xpn.xwiki.api.Context;
 import org.apache.commons.logging.Log;
 import org.apache.commons.logging.LogFactory;
 
+import com.xpn.xwiki.XWikiContext;
+import com.xpn.xwiki.api.Context;
+import com.xpn.xwiki.plugin.PluginApi;
+
 /**
  * This plugin allows index based search in the contents of Wiki Pages and 
their attachments, as far
  * as any text can be extracted from them. Text can be extracted from 
OpenOffice Writer, MSWord,
@@ -37,18 +38,20 @@
  * 
  * @version $Id: $
  */
-public class LucenePluginApi extends Api
+public class LucenePluginApi extends PluginApi
 {
     private static final Log LOG = LogFactory.getLog(LucenePluginApi.class);
 
-    private LucenePlugin plugin;
-
     public LucenePluginApi(LucenePlugin plugin, XWikiContext context)
     {
-        super(context);
-        setPlugin(plugin);
+        super(plugin, context);
     }
 
+    public LucenePlugin getLucenePlugin()
+    {
+        return (LucenePlugin) getProtectedPlugin();
+    }
+
     /**
      * Starts a rebuild of the whole index.
      * 
@@ -58,7 +61,7 @@
     {
         int nbDocuments = -1;
         if (hasAdminRights()) {
-            nbDocuments = getPlugin().rebuildIndex(context);
+            nbDocuments = getLucenePlugin().rebuildIndex(context);
         }
 
         return nbDocuments;
@@ -76,7 +79,7 @@
     {
         int nbDocuments = -1;
         if (wiki.hasAdminRights()) {
-            nbDocuments = getPlugin().rebuildIndex(context.getContext());
+            nbDocuments = getLucenePlugin().rebuildIndex(context.getContext());
         }
 
         return nbDocuments;
@@ -97,7 +100,7 @@
         String languages, com.xpn.xwiki.api.XWiki wiki)
     {
         try {
-            return getPlugin().getSearchResults(query, (String) null, 
indexDirs, languages,
+            return getLucenePlugin().getSearchResults(query, (String) null, 
indexDirs, languages,
                 context);
         } catch (Exception e) {
             e.printStackTrace();
@@ -158,8 +161,8 @@
     {
         try {
             SearchResults retval =
-                getPlugin().getSearchResults(query, (String) null, 
virtualWikiNames, languages,
-                    context);
+                getLucenePlugin().getSearchResults(query, (String) null, 
virtualWikiNames,
+                    languages, context);
             if (LOG.isDebugEnabled())
                 LOG.debug("returning " + retval.getHitcount() + " results");
             return retval;
@@ -175,7 +178,7 @@
      */
     public long getQueueSize()
     {
-        return plugin.getQueueSize();
+        return getLucenePlugin().getQueueSize();
     }
 
     /**
@@ -183,7 +186,7 @@
      */
     public long getActiveQueueSize()
     {
-        return plugin.getActiveQueueSize();
+        return getLucenePlugin().getActiveQueueSize();
     }
 
     /**
@@ -191,29 +194,10 @@
      */
     public long getLuceneDocCount()
     {
-        return plugin.getLuceneDocCount();
+        return getLucenePlugin().getLuceneDocCount();
     }
 
     /**
-     * @param plugin plugin instance we are the facade for.
-     */
-    public void setPlugin(LucenePlugin plugin)
-    {
-        this.plugin = plugin;
-    }
-
-    /**
-     * @return the plugin instance we are the facade for.
-     */
-    public LucenePlugin getPlugin()
-    {
-        if (hasProgrammingRights()) {
-            return plugin;
-        }
-        return null;
-    }
-
-    /**
      * Searches the named indexes using the given query for documents in the 
given languages
      * 
      * @param query the query entered by the user
@@ -226,7 +210,7 @@
         String languages)
     {
         try {
-            return getPlugin().getSearchResults(query, (String) null, 
indexDirs, languages,
+            return getLucenePlugin().getSearchResults(query, (String) null, 
indexDirs, languages,
                 context);
         } catch (Exception e) {
             e.printStackTrace();
@@ -273,7 +257,8 @@
         String indexDirs, String languages)
     {
         try {
-            return getPlugin().getSearchResults(query, sortField, indexDirs, 
languages, context);
+            return getLucenePlugin().getSearchResults(query, sortField, 
indexDirs, languages,
+                context);
         } catch (Exception e) {
             e.printStackTrace();
         } // end of try-catch
@@ -295,7 +280,8 @@
         String indexDirs, String languages)
     {
         try {
-            return getPlugin().getSearchResults(query, sortField, indexDirs, 
languages, context);
+            return getLucenePlugin().getSearchResults(query, sortField, 
indexDirs, languages,
+                context);
         } catch (Exception e) {
             e.printStackTrace();
         } // end of try-catch
@@ -353,7 +339,7 @@
     {
         try {
             SearchResults retval =
-                getPlugin().getSearchResults(query, sortField, 
virtualWikiNames, languages,
+                getLucenePlugin().getSearchResults(query, sortField, 
virtualWikiNames, languages,
                     context);
             if (LOG.isDebugEnabled())
                 LOG.debug("returning " + retval.getHitcount() + " results");
@@ -415,7 +401,7 @@
     {
         try {
             SearchResults retval =
-                getPlugin().getSearchResults(query, sortField, 
virtualWikiNames, languages,
+                getLucenePlugin().getSearchResults(query, sortField, 
virtualWikiNames, languages,
                     context);
             if (LOG.isDebugEnabled())
                 LOG.debug("returning " + retval.getHitcount() + " results");

_______________________________________________
notifications mailing list
[email protected]
http://lists.xwiki.org/mailman/listinfo/notifications

Reply via email to