You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@jspwiki.apache.org by me...@apache.org on 2008/12/28 17:41:25 UTC

svn commit: r729753 - in /incubator/jspwiki/trunk: ./ etc/ src/com/ecyrd/jspwiki/ src/com/ecyrd/jspwiki/plugin/ tests/com/ecyrd/jspwiki/plugin/ tests/etc/

Author: metskem
Date: Sun Dec 28 08:41:25 2008
New Revision: 729753

URL: http://svn.apache.org/viewvc?rev=729753&view=rev
Log:
3.0.0-svn-40 JSPWIKI-459 PluginIndexPlugin

cleaned up the test version of jspwiki.properties.tmpl  
if you want to run individual junit tests from within eclipse, you can add log4j to the classpath of the test config (this is not necessary if you run 'ant tests')

Added:
    incubator/jspwiki/trunk/src/com/ecyrd/jspwiki/plugin/PluginIndexPlugin.java
    incubator/jspwiki/trunk/tests/com/ecyrd/jspwiki/plugin/PluginIndexPluginTest.java
Removed:
    incubator/jspwiki/trunk/etc/commons-logging.properties
Modified:
    incubator/jspwiki/trunk/ChangeLog
    incubator/jspwiki/trunk/ReleaseNotes
    incubator/jspwiki/trunk/src/com/ecyrd/jspwiki/Release.java
    incubator/jspwiki/trunk/tests/com/ecyrd/jspwiki/plugin/AllTests.java
    incubator/jspwiki/trunk/tests/etc/jspwiki.properties.tmpl

Modified: incubator/jspwiki/trunk/ChangeLog
URL: http://svn.apache.org/viewvc/incubator/jspwiki/trunk/ChangeLog?rev=729753&r1=729752&r2=729753&view=diff
==============================================================================
--- incubator/jspwiki/trunk/ChangeLog (original)
+++ incubator/jspwiki/trunk/ChangeLog Sun Dec 28 08:41:25 2008
@@ -1,3 +1,9 @@
+2008-12-28  Harry Metske <me...@apache.org>
+
+        * 3.0.0-svn-40
+
+        * JSPWIKI-459 PluginIndexPlugin
+
 2008-12-22  Andrew Jaquith <ajaquith AT apache DOT org>
 
         * 3.0.0-svn-39

Modified: incubator/jspwiki/trunk/ReleaseNotes
URL: http://svn.apache.org/viewvc/incubator/jspwiki/trunk/ReleaseNotes?rev=729753&r1=729752&r2=729753&view=diff
==============================================================================
--- incubator/jspwiki/trunk/ReleaseNotes (original)
+++ incubator/jspwiki/trunk/ReleaseNotes Sun Dec 28 08:41:25 2008
@@ -13,7 +13,7 @@
 
 * JSPWiki now requires JDK 1.5 to run.
 
-* Simplified Chinese, Dutch and Italian localizations added!
+* Simplified Chinese, Dutch, Russian and Italian localizations added!
 
 * Logging by JSPWiki is now done with slf4j, see http://www.slf4j.org for details.
   You can now decide at runtime which logging implementation you want, just pick
@@ -22,6 +22,8 @@
   you have a good reason.
   The log4j configuration statements have been moved to a separate file log4j.properties, 
   this file should be on your CLASSPATH, by default it is placed in WEB-INF/classes
+  
+* A new plugin was added that shows you all plugins that are available: PluginIndexPlugin
 
 The full log of any issues fixed can be found at:
 

Modified: incubator/jspwiki/trunk/src/com/ecyrd/jspwiki/Release.java
URL: http://svn.apache.org/viewvc/incubator/jspwiki/trunk/src/com/ecyrd/jspwiki/Release.java?rev=729753&r1=729752&r2=729753&view=diff
==============================================================================
--- incubator/jspwiki/trunk/src/com/ecyrd/jspwiki/Release.java (original)
+++ incubator/jspwiki/trunk/src/com/ecyrd/jspwiki/Release.java Sun Dec 28 08:41:25 2008
@@ -77,7 +77,7 @@
      *  <p>
      *  If the build identifier is empty, it is not added.
      */
-    public static final String     BUILD         = "39";
+    public static final String     BUILD         = "40";
     
     /**
      *  This is the generic version string you should use

Added: incubator/jspwiki/trunk/src/com/ecyrd/jspwiki/plugin/PluginIndexPlugin.java
URL: http://svn.apache.org/viewvc/incubator/jspwiki/trunk/src/com/ecyrd/jspwiki/plugin/PluginIndexPlugin.java?rev=729753&view=auto
==============================================================================
--- incubator/jspwiki/trunk/src/com/ecyrd/jspwiki/plugin/PluginIndexPlugin.java (added)
+++ incubator/jspwiki/trunk/src/com/ecyrd/jspwiki/plugin/PluginIndexPlugin.java Sun Dec 28 08:41:25 2008
@@ -0,0 +1,117 @@
+/* 
+    JSPWiki - a JSP-based WikiWiki clone.
+
+    Licensed to the Apache Software Foundation (ASF) under one
+    or more contributor license agreements.  See the NOTICE file
+    distributed with this work for additional information
+    regarding copyright ownership.  The ASF licenses this file
+    to you under the Apache License, Version 2.0 (the
+    "License"); you may not use this file except in compliance
+    with the License.  You may obtain a copy of the License at
+
+       http://www.apache.org/licenses/LICENSE-2.0
+
+    Unless required by applicable law or agreed to in writing,
+    software distributed under the License is distributed on an
+    "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+    KIND, either express or implied.  See the License for the
+    specific language governing permissions and limitations
+    under the License.  
+ */
+package com.ecyrd.jspwiki.plugin;
+
+import java.util.Collection;
+import java.util.Map;
+
+import org.apache.jspwiki.api.ModuleData;
+import org.apache.jspwiki.api.PluginException;
+
+import com.ecyrd.jspwiki.WikiContext;
+import com.ecyrd.jspwiki.plugin.PluginManager.WikiPluginInfo;
+
+/**
+ * <p>
+ * Displays which plugins are available in this wiki. Also shows all metadata
+ * available for each plugin in an HTML table
+ * <p>
+ * Parameters :
+ * </p>
+ * <ul>
+ * <li><b>details</b> - value can be true or false, default is false, in which
+ * case only the name of the plugin is listed. If true, then all available meta
+ * data of the plugin is shown</li>
+ * </ul>
+ * 
+ * @since 3.0
+ * @author Harry Metske
+ */
+@ModuleData( author = "Harry Metske", minVersion = "3.0", maxVersion = "1000000", minAPIVersion = "2.8" )
+public class PluginIndexPlugin extends AbstractReferralPlugin implements WikiPlugin
+{
+    /** Parameter name for the details parameter. Value is <tt>{@value}</tt>. */
+    public static final String PARAM_DETAILS = "details";
+
+    private static final String BLANK = "&nbsp;";
+
+    /**
+     * {@inheritDoc}
+     */
+    public String execute( WikiContext context, Map params ) throws PluginException
+    {
+        super.initialize( context, params );
+
+        String details = (String) params.get( PARAM_DETAILS );
+
+        String summaryHeader = "\n||name";
+        String detailHeader = "\n||Name||Class Name||alias's||author||minVersion||maxVersion||adminBean Class";
+
+        Collection<WikiPluginInfo> plugins = context.getEngine().getPluginManager().modules();
+
+        StringBuilder wikitext = new StringBuilder();
+
+        if( "true".equals( details ) )
+        {
+            wikitext.append( detailHeader );
+            for( WikiPluginInfo pluginInfo : plugins )
+            {
+                String name = pluginInfo.getName();
+                String clazz = pluginInfo.getClassName();
+                String[] aliass = pluginInfo.getAliases();
+                String author = pluginInfo.getAuthor();
+                if( author == null )
+                    author = BLANK;
+                String minVersion = pluginInfo.getMinVersion();
+                if( minVersion == null )
+                    minVersion = BLANK;
+                String maxVersion = pluginInfo.getMaxVersion();
+                if( maxVersion == null )
+                    maxVersion = BLANK;
+                String adminBeanClazz = pluginInfo.getAdminBeanClass();
+                if( adminBeanClazz == null )
+                    adminBeanClazz = BLANK;
+                StringBuilder aliassString = new StringBuilder( BLANK );
+
+                if( aliass != null )
+                {
+                    for( int i = 0; i < aliass.length; i++ )
+                    {
+                        aliassString.append( " " + aliass[i] );
+                    }
+                }
+
+                wikitext.append( "\n|" + name + "|" + clazz + "|" + aliassString + "|" + author + "|" + minVersion + "|"
+                                 + maxVersion + "|" + adminBeanClazz );
+            }
+        }
+        else
+        {
+            wikitext.append( summaryHeader );
+            for( WikiPluginInfo pluginInfo : plugins )
+            {
+                String name = pluginInfo.getName();
+                wikitext.append( "\n|" + name );
+            }
+        }
+        return makeHTML( context, wikitext.toString() );
+    }
+}

Modified: incubator/jspwiki/trunk/tests/com/ecyrd/jspwiki/plugin/AllTests.java
URL: http://svn.apache.org/viewvc/incubator/jspwiki/trunk/tests/com/ecyrd/jspwiki/plugin/AllTests.java?rev=729753&r1=729752&r2=729753&view=diff
==============================================================================
--- incubator/jspwiki/trunk/tests/com/ecyrd/jspwiki/plugin/AllTests.java (original)
+++ incubator/jspwiki/trunk/tests/com/ecyrd/jspwiki/plugin/AllTests.java Sun Dec 28 08:41:25 2008
@@ -41,6 +41,7 @@
         suite.addTest( CounterPluginTest.suite() );
         suite.addTest( GroupsTest.suite() );
         suite.addTest( InsertPageTest.suite() );
+        suite.addTest( PluginIndexPluginTest.suite() );
         suite.addTest( PluginManagerTest.suite() );
         suite.addTest( ReferringPagesPluginTest.suite() );
         suite.addTest( TableOfContentsTest.suite() );

Added: incubator/jspwiki/trunk/tests/com/ecyrd/jspwiki/plugin/PluginIndexPluginTest.java
URL: http://svn.apache.org/viewvc/incubator/jspwiki/trunk/tests/com/ecyrd/jspwiki/plugin/PluginIndexPluginTest.java?rev=729753&view=auto
==============================================================================
--- incubator/jspwiki/trunk/tests/com/ecyrd/jspwiki/plugin/PluginIndexPluginTest.java (added)
+++ incubator/jspwiki/trunk/tests/com/ecyrd/jspwiki/plugin/PluginIndexPluginTest.java Sun Dec 28 08:41:25 2008
@@ -0,0 +1,81 @@
+package com.ecyrd.jspwiki.plugin;
+
+import java.util.Properties;
+
+import org.apache.jspwiki.api.PluginException;
+
+import junit.framework.Test;
+import junit.framework.TestCase;
+import junit.framework.TestSuite;
+
+import com.ecyrd.jspwiki.TestEngine;
+import com.ecyrd.jspwiki.WikiContext;
+
+public class PluginIndexPluginTest extends TestCase
+{
+    Properties props = new Properties();
+
+    TestEngine engine;
+
+    WikiContext context;
+
+    PluginManager manager;
+
+    public PluginIndexPluginTest( String s )
+    {
+        super( s );
+    }
+
+    public void setUp() throws Exception
+    {
+        props.load( TestEngine.findTestProperties() );
+
+        // prevent "create" links :
+        props.setProperty( "jspwiki.translatorReader.camelCaseLinks", "false" );
+
+        engine = new TestEngine( props );
+
+        manager = new PluginManager( engine, props );
+
+        context = engine.getWikiContextFactory().newViewContext( engine.createPage( "TestPage" ) );
+    }
+
+    public void tearDown()
+    {
+        TestEngine.emptyWorkDir();
+    }
+
+    public static Test suite()
+    {
+        return new TestSuite( PluginIndexPluginTest.class );
+    }
+
+    /**
+     * Test for : PluginIndexPlugin details=false Shows only the plugin names
+     * 
+     * @throws PluginException
+     */
+    public void testDetailsFalse() throws PluginException
+    {
+        String expectedResult = "<p />\n<table class=\"wikitable\" border=\"1\"><tr class=\"odd\"><th>name</th></tr>\n<tr><td>BugReportHandler</td></tr>\n<tr class=\"odd\"><td>Counter</td></tr>\n<tr><td>CurrentTimePlugin</td></tr>\n<tr class=\"odd\"><td>Denounce</td></tr>\n<tr><td>FormClose</td></tr>\n<tr class=\"odd\"><td>FormInput</td></tr>\n<tr><td>FormOpen</td></tr>\n<tr class=\"odd\"><td>FormOutput</td></tr>\n<tr><td>FormSelect</td></tr>\n<tr class=\"odd\"><td>FormSet</td></tr>\n<tr><td>FormTextarea</td></tr>\n<tr class=\"odd\"><td>Groups</td></tr>\n<tr><td>IfPlugin</td></tr>\n<tr class=\"odd\"><td>Image</td></tr>\n<tr><td>IndexPlugin</td></tr>\n<tr class=\"odd\"><td>InsertPage</td></tr>\n<tr><td>JavaScriptPlugin</td></tr>\n<tr class=\"odd\"><td>ListLocksPlugin</td></tr>\n<tr><td>Note</td></tr>\n<tr class=\"odd\"><td>PluginIndexPlugin</td></tr>\n<tr><td>RPCSamplePlugin</td></tr>\n<tr class=\"odd\"><td>RecentChangesPlugin</td></tr>\n<tr><td>ReferredPagesPlugin</td></tr>\
 n<tr class=\"odd\"><td>ReferringPagesPlugin</td></tr>\n<tr><td>SamplePlugin</td></tr>\n<tr class=\"odd\"><td>Search</td></tr>\n<tr><td>SessionsPlugin</td></tr>\n<tr class=\"odd\"><td>TableOfContents</td></tr>\n<tr><td>UndefinedPagesPlugin</td></tr>\n<tr class=\"odd\"><td>UnusedPagesPlugin</td></tr>\n<tr><td>WeblogArchivePlugin</td></tr>\n<tr class=\"odd\"><td>WeblogEntryPlugin</td></tr>\n<tr><td>WeblogPlugin</td></tr></table>";
+        String result = manager.execute( context, "{PluginIndexPlugin details=false}" );
+
+        // now this is a very straightforward test, if a new plugin is added, a plugin is removed, this test will have to be modified 
+        assertEquals( expectedResult, result );
+    }
+
+    /**
+     * Test for : PluginIndexPlugin details=true Shows the plugin names
+     * including all attributes
+     * 
+     * @throws PluginException
+     */
+    public void testDetailsTrue() throws PluginException
+    {
+        String expectedResult = "<p />\n<table class=\"wikitable\" border=\"1\"><tr class=\"odd\"><th>Name</th><th>Class Name</th><th>alias's</th><th>author</th><th>minVersion</th><th>maxVersion</th><th>adminBean Class</th></tr>\n<tr><td>BugReportHandler</td><td>com.ecyrd.jspwiki.plugin.BugReportHandler</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td></tr>\n<tr class=\"odd\"><td>Counter</td><td>com.ecyrd.jspwiki.plugin.Counter</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td></tr>\n<tr><td>CurrentTimePlugin</td><td>com.ecyrd.jspwiki.plugin.CurrentTimePlugin</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td></tr>\n<tr class=\"odd\"><td>Denounce</td><td>com.ecyrd.jspwiki.plugin.Denounce</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td></tr>\n<tr><td>FormClose</td><td>com.ecyrd.jspwiki.forms.FormClose</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;
 </td><td>&nbsp;</td></tr>\n<tr class=\"odd\"><td>FormInput</td><td>com.ecyrd.jspwiki.forms.FormInput</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td></tr>\n<tr><td>FormOpen</td><td>com.ecyrd.jspwiki.forms.FormOpen</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td></tr>\n<tr class=\"odd\"><td>FormOutput</td><td>com.ecyrd.jspwiki.forms.FormOutput</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td></tr>\n<tr><td>FormSelect</td><td>com.ecyrd.jspwiki.forms.FormSelect</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td></tr>\n<tr class=\"odd\"><td>FormSet</td><td>com.ecyrd.jspwiki.forms.FormSet</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td></tr>\n<tr><td>FormTextarea</td><td>com.ecyrd.jspwiki.forms.FormTextarea</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td></tr>\n<tr class=\"odd\"><td>Groups</td><td>com
 .ecyrd.jspwiki.plugin.Groups</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td></tr>\n<tr><td>IfPlugin</td><td>com.ecyrd.jspwiki.plugin.IfPlugin</td><td>&nbsp; If</td><td>AnonymousCoward</td><td>0.0</td><td>1000000.0</td><td /></tr>\n<tr class=\"odd\"><td>Image</td><td>com.ecyrd.jspwiki.plugin.Image</td><td>&nbsp; </td><td>JSPWiki development group</td><td>0.0</td><td>1000000.0</td><td /></tr>\n<tr><td>IndexPlugin</td><td>com.ecyrd.jspwiki.plugin.IndexPlugin</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td></tr>\n<tr class=\"odd\"><td>InsertPage</td><td>com.ecyrd.jspwiki.plugin.InsertPage</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td></tr>\n<tr><td>JavaScriptPlugin</td><td>com.ecyrd.jspwiki.plugin.JavaScriptPlugin</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td></tr>\n<tr class=\"odd\"><td>ListLocksPlugin</td><td>com.ecyrd.jspwiki.plugin.ListLocksPlugin<
 /td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td></tr>\n<tr><td>Note</td><td>com.ecyrd.jspwiki.plugin.Note</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td></tr>\n<tr class=\"odd\"><td>PluginIndexPlugin</td><td>com.ecyrd.jspwiki.plugin.PluginIndexPlugin</td><td>&nbsp; </td><td>Harry Metske</td><td>3.0</td><td>1000000</td><td /></tr>\n<tr><td>RPCSamplePlugin</td><td>com.ecyrd.jspwiki.plugin.RPCSamplePlugin</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td></tr>\n<tr class=\"odd\"><td>RecentChangesPlugin</td><td>com.ecyrd.jspwiki.plugin.RecentChangesPlugin</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td></tr>\n<tr><td>ReferredPagesPlugin</td><td>com.ecyrd.jspwiki.plugin.ReferredPagesPlugin</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td></tr>\n<tr class=\"odd\"><td>ReferringPagesPlugin</td><td>com.ecyrd.jspwiki.plugin.ReferringP
 agesPlugin</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td></tr>\n<tr><td>SamplePlugin</td><td>com.ecyrd.jspwiki.plugin.SamplePlugin</td><td>&nbsp; samplealias2 samplealias</td><td>Urgle Burgle</td><td>0.0</td><td>1000000.0</td><td /></tr>\n<tr class=\"odd\"><td>Search</td><td>com.ecyrd.jspwiki.plugin.Search</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td></tr>\n<tr><td>SessionsPlugin</td><td>com.ecyrd.jspwiki.plugin.SessionsPlugin</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td></tr>\n<tr class=\"odd\"><td>TableOfContents</td><td>com.ecyrd.jspwiki.plugin.TableOfContents</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td></tr>\n<tr><td>UndefinedPagesPlugin</td><td>com.ecyrd.jspwiki.plugin.UndefinedPagesPlugin</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td></tr>\n<tr class=\"odd\"><td>UnusedPagesPlugin</td><td>com.ecyrd.jspwi
 ki.plugin.UnusedPagesPlugin</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td></tr>\n<tr><td>WeblogArchivePlugin</td><td>com.ecyrd.jspwiki.plugin.WeblogArchivePlugin</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td></tr>\n<tr class=\"odd\"><td>WeblogEntryPlugin</td><td>com.ecyrd.jspwiki.plugin.WeblogEntryPlugin</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td></tr>\n<tr><td>WeblogPlugin</td><td>com.ecyrd.jspwiki.plugin.WeblogPlugin</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td></tr></table>";
+        String result = manager.execute( context, "{PluginIndexPlugin details=true}" );
+        
+        // now this is a very straightforward test, if a new plugin is added, a plugin is removed, this test will have to be modified 
+        assertEquals( expectedResult, result );
+    }
+}

Modified: incubator/jspwiki/trunk/tests/etc/jspwiki.properties.tmpl
URL: http://svn.apache.org/viewvc/incubator/jspwiki/trunk/tests/etc/jspwiki.properties.tmpl?rev=729753&r1=729752&r2=729753&view=diff
==============================================================================
--- incubator/jspwiki/trunk/tests/etc/jspwiki.properties.tmpl (original)
+++ incubator/jspwiki/trunk/tests/etc/jspwiki.properties.tmpl Sun Dec 28 08:41:25 2008
@@ -103,47 +103,6 @@
 jspwiki.groupdatabase.modified=modified
 jspwiki.groupdatabase.modifier=modifier
 
-#
-#  Configure logs.
-#
-#  Send mail on alerts
-#
-#
-#  Log only interesting stuff on screen.
-#
-#log4j.appender.console = org.apache.log4j.ConsoleAppender
-#log4j.appender.console.Threshold = WARN
- 
-#log4j.appender.console.layout = org.apache.log4j.PatternLayout
-#log4j.appender.console.layout.ConversionPattern = %-5p: %m%n
-
-#
-#  Log everything into a file.
-log4j.rootCategory=INFO,FileLog
-log4j.logger.com.ecyrd.jspwiki=INFO, FileLog
-log4j.logger.org.mortbay=INFO, TestContainerLog
-log4j.logger.SecurityLog=INFO, SecurityAppender
-
-log4j.appender.FileLog = org.apache.log4j.RollingFileAppender
-log4j.appender.FileLog.MaxFileSize    = 10MB
-log4j.appender.FileLog.MaxBackupIndex = 14
-log4j.appender.FileLog.File = @tests.logfile@
-log4j.appender.FileLog.layout = org.apache.log4j.PatternLayout
-log4j.appender.FileLog.layout.ConversionPattern=%d [%t] %p %c %x - %m%n
-
-log4j.appender.SecurityAppender = org.apache.log4j.RollingFileAppender
-log4j.appender.SecurityAppender.MaxFileSize    = 10MB
-log4j.appender.SecurityAppender.MaxBackupIndex = 14
-log4j.appender.SecurityAppender.File = @securitylog@
-log4j.appender.SecurityAppender.layout = org.apache.log4j.PatternLayout
-log4j.appender.SecurityAppender.layout.ConversionPattern=%d %p - %m%n
-
-log4j.appender.TestContainerLog = org.apache.log4j.RollingFileAppender
-log4j.appender.TestContainerLog.MaxFileSize    = 10MB
-log4j.appender.TestContainerLog.MaxBackupIndex = 14
-log4j.appender.TestContainerLog.layout = org.apache.log4j.PatternLayout
-log4j.appender.TestContainerLog.layout.ConversionPattern=%d [%t] %p %c %x - %m%n
-
 # JavaMail properties
 mail.smtp.host = 127.0.0.1
 mail.smtp.port = 25



Re: svn commit: r729753 - in /incubator/jspwiki/trunk: ./ etc/ src/com/ecyrd/jspwiki/ src/com/ecyrd/jspwiki/plugin/ tests/com/ecyrd/jspwiki/plugin/ tests/etc/

Posted by Harry Metske <ha...@gmail.com>.
yes, that was exactly what I meant with the comment statement :-)
This was a 0.9 version, I'll fix that coming week.

thanks,
Harry

2008/12/28 Janne Jalkanen <Ja...@ecyrd.com>

>
> Harry,
>
> you might want to just test for the presence of particular plugins (as with
> String.indexOf()) as opposed to testing against the entire HTML.  The
> current one is a very brittle test which breaks if any plugins are added or
> removed.
>
> /Janne
>
> On Dec 28, 2008, at 18:41 , metskem@apache.org wrote:
>
>  Author: metskem
>> Date: Sun Dec 28 08:41:25 2008
>> New Revision: 729753
>>
>> URL: http://svn.apache.org/viewvc?rev=729753&view=rev
>> Log:
>> 3.0.0-svn-40 JSPWIKI-459 PluginIndexPlugin
>>
>> cleaned up the test version of jspwiki.properties.tmpl
>> if you want to run individual junit tests from within eclipse, you can add
>> log4j to the classpath of the test config (this is not necessary if you run
>> 'ant tests')
>>
>> Added:
>>
>>  incubator/jspwiki/trunk/src/com/ecyrd/jspwiki/plugin/PluginIndexPlugin.java
>>
>>  incubator/jspwiki/trunk/tests/com/ecyrd/jspwiki/plugin/PluginIndexPluginTest.java
>> Removed:
>>    incubator/jspwiki/trunk/etc/commons-logging.properties
>> Modified:
>>    incubator/jspwiki/trunk/ChangeLog
>>    incubator/jspwiki/trunk/ReleaseNotes
>>    incubator/jspwiki/trunk/src/com/ecyrd/jspwiki/Release.java
>>    incubator/jspwiki/trunk/tests/com/ecyrd/jspwiki/plugin/AllTests.java
>>    incubator/jspwiki/trunk/tests/etc/jspwiki.properties.tmpl
>>
>> Modified: incubator/jspwiki/trunk/ChangeLog
>> URL: http://svn.apache.org/viewvc/incubator/jspwiki/trunk/ChangeLog
>> ?rev=729753&r1=729752&r2=729753&view=diff
>>
>> ==============================================================================
>> --- incubator/jspwiki/trunk/ChangeLog (original)
>> +++ incubator/jspwiki/trunk/ChangeLog Sun Dec 28 08:41:25 2008
>> @@ -1,3 +1,9 @@
>> +2008-12-28  Harry Metske <me...@apache.org>
>> +
>> +        * 3.0.0-svn-40
>> +
>> +        * JSPWIKI-459 PluginIndexPlugin
>> +
>>  2008-12-22  Andrew Jaquith <ajaquith AT apache DOT org>
>>
>>         * 3.0.0-svn-39
>>
>> Modified: incubator/jspwiki/trunk/ReleaseNotes
>> URL: http://svn.apache.org/viewvc/incubator/jspwiki/trunk/
>> ReleaseNotes?rev=729753&r1=729752&r2=729753&view=diff
>>
>> ==============================================================================
>> --- incubator/jspwiki/trunk/ReleaseNotes (original)
>> +++ incubator/jspwiki/trunk/ReleaseNotes Sun Dec 28 08:41:25 2008
>> @@ -13,7 +13,7 @@
>>
>>  * JSPWiki now requires JDK 1.5 to run.
>>
>> -* Simplified Chinese, Dutch and Italian localizations added!
>> +* Simplified Chinese, Dutch, Russian and Italian localizations added!
>>
>>  * Logging by JSPWiki is now done with slf4j, see http://www.slf4j.orgfor details.
>>   You can now decide at runtime which logging implementation you want,
>> just pick
>> @@ -22,6 +22,8 @@
>>   you have a good reason.
>>   The log4j configuration statements have been moved to a separate file
>> log4j.properties,
>>   this file should be on your CLASSPATH, by default it is placed in
>> WEB-INF/classes
>> +
>> +* A new plugin was added that shows you all plugins that are available:
>> PluginIndexPlugin
>>
>>  The full log of any issues fixed can be found at:
>>
>>
>> Modified: incubator/jspwiki/trunk/src/com/ecyrd/jspwiki/Release.java
>> URL: http://svn.apache.org/viewvc/incubator/jspwiki/trunk/src/com/
>> ecyrd/jspwiki/Release.java?rev=729753&r1=729752&r2=729753&view=diff
>>
>> ==============================================================================
>> --- incubator/jspwiki/trunk/src/com/ecyrd/jspwiki/Release.java (original)
>> +++ incubator/jspwiki/trunk/src/com/ecyrd/jspwiki/Release.java Sun Dec 28
>> 08:41:25 2008
>> @@ -77,7 +77,7 @@
>>      *  <p>
>>      *  If the build identifier is empty, it is not added.
>>      */
>> -    public static final String     BUILD         = "39";
>> +    public static final String     BUILD         = "40";
>>
>>     /**
>>      *  This is the generic version string you should use
>>
>> Added:
>> incubator/jspwiki/trunk/src/com/ecyrd/jspwiki/plugin/PluginIndexPlugin.java
>> URL: http://svn.apache.org/viewvc/incubator/jspwiki/trunk/src/com/
>> ecyrd/jspwiki/plugin/PluginIndexPlugin.java?rev=729753&view=auto
>>
>> ==============================================================================
>> ---
>> incubator/jspwiki/trunk/src/com/ecyrd/jspwiki/plugin/PluginIndexPlugin.java
>> (added)
>> +++
>> incubator/jspwiki/trunk/src/com/ecyrd/jspwiki/plugin/PluginIndexPlugin.java
>> Sun Dec 28 08:41:25 2008
>> @@ -0,0 +1,117 @@
>> +/*
>> +    JSPWiki - a JSP-based WikiWiki clone.
>> +
>> +    Licensed to the Apache Software Foundation (ASF) under one
>> +    or more contributor license agreements.  See the NOTICE file
>> +    distributed with this work for additional information
>> +    regarding copyright ownership.  The ASF licenses this file
>> +    to you under the Apache License, Version 2.0 (the
>> +    "License"); you may not use this file except in compliance
>> +    with the License.  You may obtain a copy of the License at
>> +
>> +       http://www.apache.org/licenses/LICENSE-2.0
>> +
>> +    Unless required by applicable law or agreed to in writing,
>> +    software distributed under the License is distributed on an
>> +    "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
>> +    KIND, either express or implied.  See the License for the
>> +    specific language governing permissions and limitations
>> +    under the License.
>> + */
>> +package com.ecyrd.jspwiki.plugin;
>> +
>> +import java.util.Collection;
>> +import java.util.Map;
>> +
>> +import org.apache.jspwiki.api.ModuleData;
>> +import org.apache.jspwiki.api.PluginException;
>> +
>> +import com.ecyrd.jspwiki.WikiContext;
>> +import com.ecyrd.jspwiki.plugin.PluginManager.WikiPluginInfo;
>> +
>> +/**
>> + * <p>
>> + * Displays which plugins are available in this wiki. Also shows all
>> metadata
>> + * available for each plugin in an HTML table
>> + * <p>
>> + * Parameters :
>> + * </p>
>> + * <ul>
>> + * <li><b>details</b> - value can be true or false, default is false, in
>> which
>> + * case only the name of the plugin is listed. If true, then all
>> available meta
>> + * data of the plugin is shown</li>
>> + * </ul>
>> + *
>> + * @since 3.0
>> + * @author Harry Metske
>> + */
>> +@ModuleData( author = "Harry Metske", minVersion = "3.0", maxVersion =
>> "1000000", minAPIVersion = "2.8" )
>> +public class PluginIndexPlugin extends AbstractReferralPlugin implements
>> WikiPlugin
>> +{
>> +    /** Parameter name for the details parameter. Value is
>> <tt>{@value}</tt>. */
>> +    public static final String PARAM_DETAILS = "details";
>> +
>> +    private static final String BLANK = "&nbsp;";
>> +
>> +    /**
>> +     * {@inheritDoc}
>> +     */
>> +    public String execute( WikiContext context, Map params ) throws
>> PluginException
>> +    {
>> +        super.initialize( context, params );
>> +
>> +        String details = (String) params.get( PARAM_DETAILS );
>> +
>> +        String summaryHeader = "\n||name";
>> +        String detailHeader = "\n||Name||Class
>> Name||alias's||author||minVersion||maxVersion||adminBean Class";
>> +
>> +        Collection<WikiPluginInfo> plugins =
>> context.getEngine().getPluginManager().modules();
>> +
>> +        StringBuilder wikitext = new StringBuilder();
>> +
>> +        if( "true".equals( details ) )
>> +        {
>> +            wikitext.append( detailHeader );
>> +            for( WikiPluginInfo pluginInfo : plugins )
>> +            {
>> +                String name = pluginInfo.getName();
>> +                String clazz = pluginInfo.getClassName();
>> +                String[] aliass = pluginInfo.getAliases();
>> +                String author = pluginInfo.getAuthor();
>> +                if( author == null )
>> +                    author = BLANK;
>> +                String minVersion = pluginInfo.getMinVersion();
>> +                if( minVersion == null )
>> +                    minVersion = BLANK;
>> +                String maxVersion = pluginInfo.getMaxVersion();
>> +                if( maxVersion == null )
>> +                    maxVersion = BLANK;
>> +                String adminBeanClazz = pluginInfo.getAdminBeanClass();
>> +                if( adminBeanClazz == null )
>> +                    adminBeanClazz = BLANK;
>> +                StringBuilder aliassString = new StringBuilder( BLANK );
>> +
>> +                if( aliass != null )
>> +                {
>> +                    for( int i = 0; i < aliass.length; i++ )
>> +                    {
>> +                        aliassString.append( " " + aliass[i] );
>> +                    }
>> +                }
>> +
>> +                wikitext.append( "\n|" + name + "|" + clazz + "|" +
>> aliassString + "|" + author + "|" + minVersion + "|"
>> +                                 + maxVersion + "|" + adminBeanClazz );
>> +            }
>> +        }
>> +        else
>> +        {
>> +            wikitext.append( summaryHeader );
>> +            for( WikiPluginInfo pluginInfo : plugins )
>> +            {
>> +                String name = pluginInfo.getName();
>> +                wikitext.append( "\n|" + name );
>> +            }
>> +        }
>> +        return makeHTML( context, wikitext.toString() );
>> +    }
>> +}
>>
>> Modified:
>> incubator/jspwiki/trunk/tests/com/ecyrd/jspwiki/plugin/AllTests.java
>> URL: http://svn.apache.org/viewvc/incubator/jspwiki/trunk/tests/com/
>> ecyrd/jspwiki/plugin/AllTests.java?rev=729753&r1=729752&r2=729753&view=diff
>>
>> ==============================================================================
>> --- incubator/jspwiki/trunk/tests/com/ecyrd/jspwiki/plugin/AllTests.java
>> (original)
>> +++ incubator/jspwiki/trunk/tests/com/ecyrd/jspwiki/plugin/AllTests.java
>> Sun Dec 28 08:41:25 2008
>> @@ -41,6 +41,7 @@
>>         suite.addTest( CounterPluginTest.suite() );
>>         suite.addTest( GroupsTest.suite() );
>>         suite.addTest( InsertPageTest.suite() );
>> +        suite.addTest( PluginIndexPluginTest.suite() );
>>         suite.addTest( PluginManagerTest.suite() );
>>         suite.addTest( ReferringPagesPluginTest.suite() );
>>         suite.addTest( TableOfContentsTest.suite() );
>>
>> Added:
>> incubator/jspwiki/trunk/tests/com/ecyrd/jspwiki/plugin/PluginIndexPluginTest.java
>> URL: http://svn.apache.org/viewvc/incubator/jspwiki/trunk/tests/com/
>> ecyrd/jspwiki/plugin/PluginIndexPluginTest.java?rev=729753&view=auto
>>
>> ==============================================================================
>> ---
>> incubator/jspwiki/trunk/tests/com/ecyrd/jspwiki/plugin/PluginIndexPluginTest.java
>> (added)
>> +++
>> incubator/jspwiki/trunk/tests/com/ecyrd/jspwiki/plugin/PluginIndexPluginTest.java
>> Sun Dec 28 08:41:25 2008
>> @@ -0,0 +1,81 @@
>> +package com.ecyrd.jspwiki.plugin;
>> +
>> +import java.util.Properties;
>> +
>> +import org.apache.jspwiki.api.PluginException;
>> +
>> +import junit.framework.Test;
>> +import junit.framework.TestCase;
>> +import junit.framework.TestSuite;
>> +
>> +import com.ecyrd.jspwiki.TestEngine;
>> +import com.ecyrd.jspwiki.WikiContext;
>> +
>> +public class PluginIndexPluginTest extends TestCase
>> +{
>> +    Properties props = new Properties();
>> +
>> +    TestEngine engine;
>> +
>> +    WikiContext context;
>> +
>> +    PluginManager manager;
>> +
>> +    public PluginIndexPluginTest( String s )
>> +    {
>> +        super( s );
>> +    }
>> +
>> +    public void setUp() throws Exception
>> +    {
>> +        props.load( TestEngine.findTestProperties() );
>> +
>> +        // prevent "create" links :
>> +        props.setProperty( "jspwiki.translatorReader.camelCaseLinks",
>> "false" );
>> +
>> +        engine = new TestEngine( props );
>> +
>> +        manager = new PluginManager( engine, props );
>> +
>> +        context = engine.getWikiContextFactory().newViewContext(
>> engine.createPage( "TestPage" ) );
>> +    }
>> +
>> +    public void tearDown()
>> +    {
>> +        TestEngine.emptyWorkDir();
>> +    }
>> +
>> +    public static Test suite()
>> +    {
>> +        return new TestSuite( PluginIndexPluginTest.class );
>> +    }
>> +
>> +    /**
>> +     * Test for : PluginIndexPlugin details=false Shows only the plugin
>> names
>> +     *
>> +     * @throws PluginException
>> +     */
>> +    public void testDetailsFalse() throws PluginException
>> +    {
>> +        String expectedResult = "<p />\n<table class=\"wikitable\"
>> border=\"1\"><tr
>> class=\"odd\"><th>name</th></tr>\n<tr><td>BugReportHandler</td></tr>\n<tr
>> class=\"odd\"><td>Counter</td></tr>\n<tr><td>CurrentTimePlugin</td></tr>\n<tr
>> class=\"odd\"><td>Denounce</td></tr>\n<tr><td>FormClose</td></tr>\n<tr
>> class=\"odd\"><td>FormInput</td></tr>\n<tr><td>FormOpen</td></tr>\n<tr
>> class=\"odd\"><td>FormOutput</td></tr>\n<tr><td>FormSelect</td></tr>\n<tr
>> class=\"odd\"><td>FormSet</td></tr>\n<tr><td>FormTextarea</td></tr>\n<tr
>> class=\"odd\"><td>Groups</td></tr>\n<tr><td>IfPlugin</td></tr>\n<tr
>> class=\"odd\"><td>Image</td></tr>\n<tr><td>IndexPlugin</td></tr>\n<tr
>> class=\"odd\"><td>InsertPage</td></tr>\n<tr><td>JavaScriptPlugin</td></tr>\n<tr
>> class=\"odd\"><td>ListLocksPlugin</td></tr>\n<tr><td>Note</td></tr>\n<tr
>> class=\"odd\"><td>PluginIndexPlugin</td></tr>\n<tr><td>RPCSamplePlugin</td></tr>\n<tr
>> class=\"odd\"><td>RecentChangesPlugin</td></tr>\n<tr><td>ReferredPagesPlugin</td></tr>\
>>  n<tr
>> class=\"odd\"><td>ReferringPagesPlugin</td></tr>\n<tr><td>SamplePlugin</td></tr>\n<tr
>> class=\"odd\"><td>Search</td></tr>\n<tr><td>SessionsPlugin</td></tr>\n<tr
>> class=\"odd\"><td>TableOfContents</td></tr>\n<tr><td>UndefinedPagesPlugin</td></tr>\n<tr
>> class=\"odd\"><td>UnusedPagesPlugin</td></tr>\n<tr><td>WeblogArchivePlugin</td></tr>\n<tr
>> class=\"odd\"><td>WeblogEntryPlugin</td></tr>\n<tr><td>WeblogPlugin</td></tr></table>";
>> +        String result = manager.execute( context, "{PluginIndexPlugin
>> details=false}" );
>> +
>> +        // now this is a very straightforward test, if a new plugin is
>> added, a plugin is removed, this test will have to be modified
>> +        assertEquals( expectedResult, result );
>> +    }
>> +
>> +    /**
>> +     * Test for : PluginIndexPlugin details=true Shows the plugin names
>> +     * including all attributes
>> +     *
>> +     * @throws PluginException
>> +     */
>> +    public void testDetailsTrue() throws PluginException
>> +    {
>> +        String expectedResult = "<p />\n<table class=\"wikitable\"
>> border=\"1\"><tr class=\"odd\"><th>Name</th><th>Class
>> Name</th><th>alias's</th><th>author</th><th>minVersion</th><th>maxVersion</th><th>adminBean
>> Class</th></tr>\n<tr><td>BugReportHandler</td><td>com.ecyrd.jspwiki.plugin.BugReportHandler</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td></tr>\n<tr
>> class=\"odd\"><td>Counter</td><td>com.ecyrd.jspwiki.plugin.Counter</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td></tr>\n<tr><td>CurrentTimePlugin</td><td>com.ecyrd.jspwiki.plugin.CurrentTimePlugin</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td></tr>\n<tr
>> class=\"odd\"><td>Denounce</td><td>com.ecyrd.jspwiki.plugin.Denounce</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td></tr>\n<tr><td>FormClose</td><td>com.ecyrd.jspwiki.forms.FormClose</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;
>>  </td><td>&nbsp;</td></tr>\n<tr
>> class=\"odd\"><td>FormInput</td><td>com.ecyrd.jspwiki.forms.FormInput</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td></tr>\n<tr><td>FormOpen</td><td>com.ecyrd.jspwiki.forms.FormOpen</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td></tr>\n<tr
>> class=\"odd\"><td>FormOutput</td><td>com.ecyrd.jspwiki.forms.FormOutput</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td></tr>\n<tr><td>FormSelect</td><td>com.ecyrd.jspwiki.forms.FormSelect</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td></tr>\n<tr
>> class=\"odd\"><td>FormSet</td><td>com.ecyrd.jspwiki.forms.FormSet</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td></tr>\n<tr><td>FormTextarea</td><td>com.ecyrd.jspwiki.forms.FormTextarea</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td></tr>\n<tr
>> class=\"odd\"><td>Groups</td><td>com
>>  .ecyrd.jspwiki.plugin.Groups</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td></tr>\n<tr><td>IfPlugin</td><td>com.ecyrd.jspwiki.plugin.IfPlugin</td><td>&nbsp;
>> If</td><td>AnonymousCoward</td><td>0.0</td><td>1000000.0</td><td
>> /></tr>\n<tr
>> class=\"odd\"><td>Image</td><td>com.ecyrd.jspwiki.plugin.Image</td><td>&nbsp;
>> </td><td>JSPWiki development group</td><td>0.0</td><td>1000000.0</td><td
>> /></tr>\n<tr><td>IndexPlugin</td><td>com.ecyrd.jspwiki.plugin.IndexPlugin</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td></tr>\n<tr
>> class=\"odd\"><td>InsertPage</td><td>com.ecyrd.jspwiki.plugin.InsertPage</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td></tr>\n<tr><td>JavaScriptPlugin</td><td>com.ecyrd.jspwiki.plugin.JavaScriptPlugin</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td></tr>\n<tr
>> class=\"odd\"><td>ListLocksPlugin</td><td>com.ecyrd.jspwiki.plugin.ListLocksPlugin<
>>  /td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td></tr>\n<tr><td>Note</td><td>com.ecyrd.jspwiki.plugin.Note</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td></tr>\n<tr
>> class=\"odd\"><td>PluginIndexPlugin</td><td>com.ecyrd.jspwiki.plugin.PluginIndexPlugin</td><td>&nbsp;
>> </td><td>Harry Metske</td><td>3.0</td><td>1000000</td><td
>> /></tr>\n<tr><td>RPCSamplePlugin</td><td>com.ecyrd.jspwiki.plugin.RPCSamplePlugin</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td></tr>\n<tr
>> class=\"odd\"><td>RecentChangesPlugin</td><td>com.ecyrd.jspwiki.plugin.RecentChangesPlugin</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td></tr>\n<tr><td>ReferredPagesPlugin</td><td>com.ecyrd.jspwiki.plugin.ReferredPagesPlugin</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td></tr>\n<tr
>> class=\"odd\"><td>ReferringPagesPlugin</td><td>com.ecyrd.jspwiki.plugin.ReferringP
>>  agesPlugin</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td></tr>\n<tr><td>SamplePlugin</td><td>com.ecyrd.jspwiki.plugin.SamplePlugin</td><td>&nbsp;
>> samplealias2 samplealias</td><td>Urgle
>> Burgle</td><td>0.0</td><td>1000000.0</td><td /></tr>\n<tr
>> class=\"odd\"><td>Search</td><td>com.ecyrd.jspwiki.plugin.Search</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td></tr>\n<tr><td>SessionsPlugin</td><td>com.ecyrd.jspwiki.plugin.SessionsPlugin</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td></tr>\n<tr
>> class=\"odd\"><td>TableOfContents</td><td>com.ecyrd.jspwiki.plugin.TableOfContents</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td></tr>\n<tr><td>UndefinedPagesPlugin</td><td>com.ecyrd.jspwiki.plugin.UndefinedPagesPlugin</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td></tr>\n<tr
>> class=\"odd\"><td>UnusedPagesPlugin</td><td>com.ecyrd.jspwi
>>  ki.plugin.UnusedPagesPlugin</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td></tr>\n<tr><td>WeblogArchivePlugin</td><td>com.ecyrd.jspwiki.plugin.WeblogArchivePlugin</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td></tr>\n<tr
>> class=\"odd\"><td>WeblogEntryPlugin</td><td>com.ecyrd.jspwiki.plugin.WeblogEntryPlugin</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td></tr>\n<tr><td>WeblogPlugin</td><td>com.ecyrd.jspwiki.plugin.WeblogPlugin</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td></tr></table>";
>> +        String result = manager.execute( context, "{PluginIndexPlugin
>> details=true}" );
>> +
>> +        // now this is a very straightforward test, if a new plugin is
>> added, a plugin is removed, this test will have to be modified
>> +        assertEquals( expectedResult, result );
>> +    }
>> +}
>>
>> Modified: incubator/jspwiki/trunk/tests/etc/jspwiki.properties.tmpl
>> URL: http://svn.apache.org/viewvc/incubator/jspwiki/trunk/tests/etc/
>> jspwiki.properties.tmpl?rev=729753&r1=729752&r2=729753&view=diff
>>
>> ==============================================================================
>> --- incubator/jspwiki/trunk/tests/etc/jspwiki.properties.tmpl (original)
>> +++ incubator/jspwiki/trunk/tests/etc/jspwiki.properties.tmpl Sun Dec 28
>> 08:41:25 2008
>> @@ -103,47 +103,6 @@
>>  jspwiki.groupdatabase.modified=modified
>>  jspwiki.groupdatabase.modifier=modifier
>>
>> -#
>> -#  Configure logs.
>> -#
>> -#  Send mail on alerts
>> -#
>> -#
>> -#  Log only interesting stuff on screen.
>> -#
>> -#log4j.appender.console = org.apache.log4j.ConsoleAppender
>> -#log4j.appender.console.Threshold = WARN
>> -
>> -#log4j.appender.console.layout = org.apache.log4j.PatternLayout
>> -#log4j.appender.console.layout.ConversionPattern = %-5p: %m%n
>> -
>> -#
>> -#  Log everything into a file.
>> -log4j.rootCategory=INFO,FileLog
>> -log4j.logger.com.ecyrd.jspwiki=INFO, FileLog
>> -log4j.logger.org.mortbay=INFO, TestContainerLog
>> -log4j.logger.SecurityLog=INFO, SecurityAppender
>> -
>> -log4j.appender.FileLog = org.apache.log4j.RollingFileAppender
>> -log4j.appender.FileLog.MaxFileSize    = 10MB
>> -log4j.appender.FileLog.MaxBackupIndex = 14
>> -log4j.appender.FileLog.File = @tests.logfile@
>> -log4j.appender.FileLog.layout = org.apache.log4j.PatternLayout
>> -log4j.appender.FileLog.layout.ConversionPattern=%d [%t] %p %c %x - %m%n
>> -
>> -log4j.appender.SecurityAppender = org.apache.log4j.RollingFileAppender
>> -log4j.appender.SecurityAppender.MaxFileSize    = 10MB
>> -log4j.appender.SecurityAppender.MaxBackupIndex = 14
>> -log4j.appender.SecurityAppender.File = @securitylog@
>> -log4j.appender.SecurityAppender.layout = org.apache.log4j.PatternLayout
>> -log4j.appender.SecurityAppender.layout.ConversionPattern=%d %p - %m%n
>> -
>> -log4j.appender.TestContainerLog = org.apache.log4j.RollingFileAppender
>> -log4j.appender.TestContainerLog.MaxFileSize    = 10MB
>> -log4j.appender.TestContainerLog.MaxBackupIndex = 14
>> -log4j.appender.TestContainerLog.layout = org.apache.log4j.PatternLayout
>> -log4j.appender.TestContainerLog.layout.ConversionPattern=%d [%t] %p %c %x
>> - %m%n
>> -
>>  # JavaMail properties
>>  mail.smtp.host = 127.0.0.1
>>  mail.smtp.port = 25
>>
>>
>

Re: svn commit: r729753 - in /incubator/jspwiki/trunk: ./ etc/ src/com/ecyrd/jspwiki/ src/com/ecyrd/jspwiki/plugin/ tests/com/ecyrd/jspwiki/plugin/ tests/etc/

Posted by Janne Jalkanen <Ja...@ecyrd.com>.
Harry,

you might want to just test for the presence of particular plugins  
(as with String.indexOf()) as opposed to testing against the entire  
HTML.  The current one is a very brittle test which breaks if any  
plugins are added or removed.

/Janne

On Dec 28, 2008, at 18:41 , metskem@apache.org wrote:

> Author: metskem
> Date: Sun Dec 28 08:41:25 2008
> New Revision: 729753
>
> URL: http://svn.apache.org/viewvc?rev=729753&view=rev
> Log:
> 3.0.0-svn-40 JSPWIKI-459 PluginIndexPlugin
>
> cleaned up the test version of jspwiki.properties.tmpl
> if you want to run individual junit tests from within eclipse, you  
> can add log4j to the classpath of the test config (this is not  
> necessary if you run 'ant tests')
>
> Added:
>     incubator/jspwiki/trunk/src/com/ecyrd/jspwiki/plugin/ 
> PluginIndexPlugin.java
>     incubator/jspwiki/trunk/tests/com/ecyrd/jspwiki/plugin/ 
> PluginIndexPluginTest.java
> Removed:
>     incubator/jspwiki/trunk/etc/commons-logging.properties
> Modified:
>     incubator/jspwiki/trunk/ChangeLog
>     incubator/jspwiki/trunk/ReleaseNotes
>     incubator/jspwiki/trunk/src/com/ecyrd/jspwiki/Release.java
>     incubator/jspwiki/trunk/tests/com/ecyrd/jspwiki/plugin/ 
> AllTests.java
>     incubator/jspwiki/trunk/tests/etc/jspwiki.properties.tmpl
>
> Modified: incubator/jspwiki/trunk/ChangeLog
> URL: http://svn.apache.org/viewvc/incubator/jspwiki/trunk/ChangeLog? 
> rev=729753&r1=729752&r2=729753&view=diff
> ====================================================================== 
> ========
> --- incubator/jspwiki/trunk/ChangeLog (original)
> +++ incubator/jspwiki/trunk/ChangeLog Sun Dec 28 08:41:25 2008
> @@ -1,3 +1,9 @@
> +2008-12-28  Harry Metske <me...@apache.org>
> +
> +        * 3.0.0-svn-40
> +
> +        * JSPWIKI-459 PluginIndexPlugin
> +
>  2008-12-22  Andrew Jaquith <ajaquith AT apache DOT org>
>
>          * 3.0.0-svn-39
>
> Modified: incubator/jspwiki/trunk/ReleaseNotes
> URL: http://svn.apache.org/viewvc/incubator/jspwiki/trunk/ 
> ReleaseNotes?rev=729753&r1=729752&r2=729753&view=diff
> ====================================================================== 
> ========
> --- incubator/jspwiki/trunk/ReleaseNotes (original)
> +++ incubator/jspwiki/trunk/ReleaseNotes Sun Dec 28 08:41:25 2008
> @@ -13,7 +13,7 @@
>
>  * JSPWiki now requires JDK 1.5 to run.
>
> -* Simplified Chinese, Dutch and Italian localizations added!
> +* Simplified Chinese, Dutch, Russian and Italian localizations added!
>
>  * Logging by JSPWiki is now done with slf4j, see http:// 
> www.slf4j.org for details.
>    You can now decide at runtime which logging implementation you  
> want, just pick
> @@ -22,6 +22,8 @@
>    you have a good reason.
>    The log4j configuration statements have been moved to a separate  
> file log4j.properties,
>    this file should be on your CLASSPATH, by default it is placed  
> in WEB-INF/classes
> +
> +* A new plugin was added that shows you all plugins that are  
> available: PluginIndexPlugin
>
>  The full log of any issues fixed can be found at:
>
>
> Modified: incubator/jspwiki/trunk/src/com/ecyrd/jspwiki/Release.java
> URL: http://svn.apache.org/viewvc/incubator/jspwiki/trunk/src/com/ 
> ecyrd/jspwiki/Release.java?rev=729753&r1=729752&r2=729753&view=diff
> ====================================================================== 
> ========
> --- incubator/jspwiki/trunk/src/com/ecyrd/jspwiki/Release.java  
> (original)
> +++ incubator/jspwiki/trunk/src/com/ecyrd/jspwiki/Release.java Sun  
> Dec 28 08:41:25 2008
> @@ -77,7 +77,7 @@
>       *  <p>
>       *  If the build identifier is empty, it is not added.
>       */
> -    public static final String     BUILD         = "39";
> +    public static final String     BUILD         = "40";
>
>      /**
>       *  This is the generic version string you should use
>
> Added: incubator/jspwiki/trunk/src/com/ecyrd/jspwiki/plugin/ 
> PluginIndexPlugin.java
> URL: http://svn.apache.org/viewvc/incubator/jspwiki/trunk/src/com/ 
> ecyrd/jspwiki/plugin/PluginIndexPlugin.java?rev=729753&view=auto
> ====================================================================== 
> ========
> --- incubator/jspwiki/trunk/src/com/ecyrd/jspwiki/plugin/ 
> PluginIndexPlugin.java (added)
> +++ incubator/jspwiki/trunk/src/com/ecyrd/jspwiki/plugin/ 
> PluginIndexPlugin.java Sun Dec 28 08:41:25 2008
> @@ -0,0 +1,117 @@
> +/*
> +    JSPWiki - a JSP-based WikiWiki clone.
> +
> +    Licensed to the Apache Software Foundation (ASF) under one
> +    or more contributor license agreements.  See the NOTICE file
> +    distributed with this work for additional information
> +    regarding copyright ownership.  The ASF licenses this file
> +    to you under the Apache License, Version 2.0 (the
> +    "License"); you may not use this file except in compliance
> +    with the License.  You may obtain a copy of the License at
> +
> +       http://www.apache.org/licenses/LICENSE-2.0
> +
> +    Unless required by applicable law or agreed to in writing,
> +    software distributed under the License is distributed on an
> +    "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
> +    KIND, either express or implied.  See the License for the
> +    specific language governing permissions and limitations
> +    under the License.
> + */
> +package com.ecyrd.jspwiki.plugin;
> +
> +import java.util.Collection;
> +import java.util.Map;
> +
> +import org.apache.jspwiki.api.ModuleData;
> +import org.apache.jspwiki.api.PluginException;
> +
> +import com.ecyrd.jspwiki.WikiContext;
> +import com.ecyrd.jspwiki.plugin.PluginManager.WikiPluginInfo;
> +
> +/**
> + * <p>
> + * Displays which plugins are available in this wiki. Also shows  
> all metadata
> + * available for each plugin in an HTML table
> + * <p>
> + * Parameters :
> + * </p>
> + * <ul>
> + * <li><b>details</b> - value can be true or false, default is  
> false, in which
> + * case only the name of the plugin is listed. If true, then all  
> available meta
> + * data of the plugin is shown</li>
> + * </ul>
> + *
> + * @since 3.0
> + * @author Harry Metske
> + */
> +@ModuleData( author = "Harry Metske", minVersion = "3.0",  
> maxVersion = "1000000", minAPIVersion = "2.8" )
> +public class PluginIndexPlugin extends AbstractReferralPlugin  
> implements WikiPlugin
> +{
> +    /** Parameter name for the details parameter. Value is <tt> 
> {@value}</tt>. */
> +    public static final String PARAM_DETAILS = "details";
> +
> +    private static final String BLANK = "&nbsp;";
> +
> +    /**
> +     * {@inheritDoc}
> +     */
> +    public String execute( WikiContext context, Map params )  
> throws PluginException
> +    {
> +        super.initialize( context, params );
> +
> +        String details = (String) params.get( PARAM_DETAILS );
> +
> +        String summaryHeader = "\n||name";
> +        String detailHeader = "\n||Name||Class Name||alias's|| 
> author||minVersion||maxVersion||adminBean Class";
> +
> +        Collection<WikiPluginInfo> plugins = context.getEngine 
> ().getPluginManager().modules();
> +
> +        StringBuilder wikitext = new StringBuilder();
> +
> +        if( "true".equals( details ) )
> +        {
> +            wikitext.append( detailHeader );
> +            for( WikiPluginInfo pluginInfo : plugins )
> +            {
> +                String name = pluginInfo.getName();
> +                String clazz = pluginInfo.getClassName();
> +                String[] aliass = pluginInfo.getAliases();
> +                String author = pluginInfo.getAuthor();
> +                if( author == null )
> +                    author = BLANK;
> +                String minVersion = pluginInfo.getMinVersion();
> +                if( minVersion == null )
> +                    minVersion = BLANK;
> +                String maxVersion = pluginInfo.getMaxVersion();
> +                if( maxVersion == null )
> +                    maxVersion = BLANK;
> +                String adminBeanClazz =  
> pluginInfo.getAdminBeanClass();
> +                if( adminBeanClazz == null )
> +                    adminBeanClazz = BLANK;
> +                StringBuilder aliassString = new StringBuilder 
> ( BLANK );
> +
> +                if( aliass != null )
> +                {
> +                    for( int i = 0; i < aliass.length; i++ )
> +                    {
> +                        aliassString.append( " " + aliass[i] );
> +                    }
> +                }
> +
> +                wikitext.append( "\n|" + name + "|" + clazz + "|"  
> + aliassString + "|" + author + "|" + minVersion + "|"
> +                                 + maxVersion + "|" +  
> adminBeanClazz );
> +            }
> +        }
> +        else
> +        {
> +            wikitext.append( summaryHeader );
> +            for( WikiPluginInfo pluginInfo : plugins )
> +            {
> +                String name = pluginInfo.getName();
> +                wikitext.append( "\n|" + name );
> +            }
> +        }
> +        return makeHTML( context, wikitext.toString() );
> +    }
> +}
>
> Modified: incubator/jspwiki/trunk/tests/com/ecyrd/jspwiki/plugin/ 
> AllTests.java
> URL: http://svn.apache.org/viewvc/incubator/jspwiki/trunk/tests/com/ 
> ecyrd/jspwiki/plugin/AllTests.java? 
> rev=729753&r1=729752&r2=729753&view=diff
> ====================================================================== 
> ========
> --- incubator/jspwiki/trunk/tests/com/ecyrd/jspwiki/plugin/ 
> AllTests.java (original)
> +++ incubator/jspwiki/trunk/tests/com/ecyrd/jspwiki/plugin/ 
> AllTests.java Sun Dec 28 08:41:25 2008
> @@ -41,6 +41,7 @@
>          suite.addTest( CounterPluginTest.suite() );
>          suite.addTest( GroupsTest.suite() );
>          suite.addTest( InsertPageTest.suite() );
> +        suite.addTest( PluginIndexPluginTest.suite() );
>          suite.addTest( PluginManagerTest.suite() );
>          suite.addTest( ReferringPagesPluginTest.suite() );
>          suite.addTest( TableOfContentsTest.suite() );
>
> Added: incubator/jspwiki/trunk/tests/com/ecyrd/jspwiki/plugin/ 
> PluginIndexPluginTest.java
> URL: http://svn.apache.org/viewvc/incubator/jspwiki/trunk/tests/com/ 
> ecyrd/jspwiki/plugin/PluginIndexPluginTest.java?rev=729753&view=auto
> ====================================================================== 
> ========
> --- incubator/jspwiki/trunk/tests/com/ecyrd/jspwiki/plugin/ 
> PluginIndexPluginTest.java (added)
> +++ incubator/jspwiki/trunk/tests/com/ecyrd/jspwiki/plugin/ 
> PluginIndexPluginTest.java Sun Dec 28 08:41:25 2008
> @@ -0,0 +1,81 @@
> +package com.ecyrd.jspwiki.plugin;
> +
> +import java.util.Properties;
> +
> +import org.apache.jspwiki.api.PluginException;
> +
> +import junit.framework.Test;
> +import junit.framework.TestCase;
> +import junit.framework.TestSuite;
> +
> +import com.ecyrd.jspwiki.TestEngine;
> +import com.ecyrd.jspwiki.WikiContext;
> +
> +public class PluginIndexPluginTest extends TestCase
> +{
> +    Properties props = new Properties();
> +
> +    TestEngine engine;
> +
> +    WikiContext context;
> +
> +    PluginManager manager;
> +
> +    public PluginIndexPluginTest( String s )
> +    {
> +        super( s );
> +    }
> +
> +    public void setUp() throws Exception
> +    {
> +        props.load( TestEngine.findTestProperties() );
> +
> +        // prevent "create" links :
> +        props.setProperty 
> ( "jspwiki.translatorReader.camelCaseLinks", "false" );
> +
> +        engine = new TestEngine( props );
> +
> +        manager = new PluginManager( engine, props );
> +
> +        context = engine.getWikiContextFactory().newViewContext 
> ( engine.createPage( "TestPage" ) );
> +    }
> +
> +    public void tearDown()
> +    {
> +        TestEngine.emptyWorkDir();
> +    }
> +
> +    public static Test suite()
> +    {
> +        return new TestSuite( PluginIndexPluginTest.class );
> +    }
> +
> +    /**
> +     * Test for : PluginIndexPlugin details=false Shows only the  
> plugin names
> +     *
> +     * @throws PluginException
> +     */
> +    public void testDetailsFalse() throws PluginException
> +    {
> +        String expectedResult = "<p />\n<table class=\"wikitable\"  
> border=\"1\"><tr class=\"odd\"><th>name</th></tr> 
> \n<tr><td>BugReportHandler</td></tr>\n<tr class=\"odd 
> \"><td>Counter</td></tr>\n<tr><td>CurrentTimePlugin</td></tr>\n<tr  
> class=\"odd\"><td>Denounce</td></tr>\n<tr><td>FormClose</td></tr> 
> \n<tr class=\"odd\"><td>FormInput</td></tr>\n<tr><td>FormOpen</td></ 
> tr>\n<tr class=\"odd\"><td>FormOutput</td></tr> 
> \n<tr><td>FormSelect</td></tr>\n<tr class=\"odd\"><td>FormSet</td></ 
> tr>\n<tr><td>FormTextarea</td></tr>\n<tr class=\"odd\"><td>Groups</ 
> td></tr>\n<tr><td>IfPlugin</td></tr>\n<tr class=\"odd\"><td>Image</ 
> td></tr>\n<tr><td>IndexPlugin</td></tr>\n<tr class=\"odd 
> \"><td>InsertPage</td></tr>\n<tr><td>JavaScriptPlugin</td></tr> 
> \n<tr class=\"odd\"><td>ListLocksPlugin</td></tr>\n<tr><td>Note</ 
> td></tr>\n<tr class=\"odd\"><td>PluginIndexPlugin</td></tr> 
> \n<tr><td>RPCSamplePlugin</td></tr>\n<tr class=\"odd 
> \"><td>RecentChangesPlugin</td></tr>\n<tr><td>ReferredPagesPlugin</ 
> td></tr>\
>  n<tr class=\"odd\"><td>ReferringPagesPlugin</td></tr> 
> \n<tr><td>SamplePlugin</td></tr>\n<tr class=\"odd\"><td>Search</ 
> td></tr>\n<tr><td>SessionsPlugin</td></tr>\n<tr class=\"odd 
> \"><td>TableOfContents</td></tr>\n<tr><td>UndefinedPagesPlugin</ 
> td></tr>\n<tr class=\"odd\"><td>UnusedPagesPlugin</td></tr> 
> \n<tr><td>WeblogArchivePlugin</td></tr>\n<tr class=\"odd 
> \"><td>WeblogEntryPlugin</td></tr>\n<tr><td>WeblogPlugin</td></tr></ 
> table>";
> +        String result = manager.execute( context,  
> "{PluginIndexPlugin details=false}" );
> +
> +        // now this is a very straightforward test, if a new  
> plugin is added, a plugin is removed, this test will have to be  
> modified
> +        assertEquals( expectedResult, result );
> +    }
> +
> +    /**
> +     * Test for : PluginIndexPlugin details=true Shows the plugin  
> names
> +     * including all attributes
> +     *
> +     * @throws PluginException
> +     */
> +    public void testDetailsTrue() throws PluginException
> +    {
> +        String expectedResult = "<p />\n<table class=\"wikitable\"  
> border=\"1\"><tr class=\"odd\"><th>Name</th><th>Class Name</ 
> th><th>alias's</th><th>author</th><th>minVersion</ 
> th><th>maxVersion</th><th>adminBean Class</th></tr> 
> \n<tr><td>BugReportHandler</ 
> td><td>com.ecyrd.jspwiki.plugin.BugReportHandler</td><td>&nbsp;</ 
> td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td></tr> 
> \n<tr class=\"odd\"><td>Counter</ 
> td><td>com.ecyrd.jspwiki.plugin.Counter</td><td>&nbsp;</ 
> td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td></tr> 
> \n<tr><td>CurrentTimePlugin</ 
> td><td>com.ecyrd.jspwiki.plugin.CurrentTimePlugin</td><td>&nbsp;</ 
> td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td></tr> 
> \n<tr class=\"odd\"><td>Denounce</ 
> td><td>com.ecyrd.jspwiki.plugin.Denounce</td><td>&nbsp;</ 
> td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td></tr> 
> \n<tr><td>FormClose</td><td>com.ecyrd.jspwiki.forms.FormClose</ 
> td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;
>  </td><td>&nbsp;</td></tr>\n<tr class=\"odd\"><td>FormInput</ 
> td><td>com.ecyrd.jspwiki.forms.FormInput</td><td>&nbsp;</ 
> td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td></tr> 
> \n<tr><td>FormOpen</td><td>com.ecyrd.jspwiki.forms.FormOpen</ 
> td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</ 
> td><td>&nbsp;</td></tr>\n<tr class=\"odd\"><td>FormOutput</ 
> td><td>com.ecyrd.jspwiki.forms.FormOutput</td><td>&nbsp;</ 
> td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td></tr> 
> \n<tr><td>FormSelect</td><td>com.ecyrd.jspwiki.forms.FormSelect</ 
> td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</ 
> td><td>&nbsp;</td></tr>\n<tr class=\"odd\"><td>FormSet</ 
> td><td>com.ecyrd.jspwiki.forms.FormSet</td><td>&nbsp;</ 
> td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td></tr> 
> \n<tr><td>FormTextarea</ 
> td><td>com.ecyrd.jspwiki.forms.FormTextarea</td><td>&nbsp;</ 
> td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td></tr> 
> \n<tr class=\"odd\"><td>Groups</td><td>com
>  .ecyrd.jspwiki.plugin.Groups</td><td>&nbsp;</td><td>&nbsp;</ 
> td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td></tr> 
> \n<tr><td>IfPlugin</td><td>com.ecyrd.jspwiki.plugin.IfPlugin</ 
> td><td>&nbsp; If</td><td>AnonymousCoward</td><td>0.0</ 
> td><td>1000000.0</td><td /></tr>\n<tr class=\"odd\"><td>Image</ 
> td><td>com.ecyrd.jspwiki.plugin.Image</td><td>&nbsp; </ 
> td><td>JSPWiki development group</td><td>0.0</td><td>1000000.0</ 
> td><td /></tr>\n<tr><td>IndexPlugin</ 
> td><td>com.ecyrd.jspwiki.plugin.IndexPlugin</td><td>&nbsp;</ 
> td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td></tr> 
> \n<tr class=\"odd\"><td>InsertPage</ 
> td><td>com.ecyrd.jspwiki.plugin.InsertPage</td><td>&nbsp;</ 
> td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td></tr> 
> \n<tr><td>JavaScriptPlugin</ 
> td><td>com.ecyrd.jspwiki.plugin.JavaScriptPlugin</td><td>&nbsp;</ 
> td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td></tr> 
> \n<tr class=\"odd\"><td>ListLocksPlugin</ 
> td><td>com.ecyrd.jspwiki.plugin.ListLocksPlugin<
>  /td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</ 
> td><td>&nbsp;</td></tr>\n<tr><td>Note</ 
> td><td>com.ecyrd.jspwiki.plugin.Note</td><td>&nbsp;</td><td>&nbsp;</ 
> td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td></tr>\n<tr class= 
> \"odd\"><td>PluginIndexPlugin</ 
> td><td>com.ecyrd.jspwiki.plugin.PluginIndexPlugin</td><td>&nbsp; </ 
> td><td>Harry Metske</td><td>3.0</td><td>1000000</td><td /></tr> 
> \n<tr><td>RPCSamplePlugin</ 
> td><td>com.ecyrd.jspwiki.plugin.RPCSamplePlugin</td><td>&nbsp;</ 
> td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td></tr> 
> \n<tr class=\"odd\"><td>RecentChangesPlugin</ 
> td><td>com.ecyrd.jspwiki.plugin.RecentChangesPlugin</td><td>&nbsp;</ 
> td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td></tr> 
> \n<tr><td>ReferredPagesPlugin</ 
> td><td>com.ecyrd.jspwiki.plugin.ReferredPagesPlugin</td><td>&nbsp;</ 
> td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td></tr> 
> \n<tr class=\"odd\"><td>ReferringPagesPlugin</ 
> td><td>com.ecyrd.jspwiki.plugin.ReferringP
>  agesPlugin</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</ 
> td><td>&nbsp;</td><td>&nbsp;</td></tr>\n<tr><td>SamplePlugin</ 
> td><td>com.ecyrd.jspwiki.plugin.SamplePlugin</td><td>&nbsp;  
> samplealias2 samplealias</td><td>Urgle Burgle</td><td>0.0</ 
> td><td>1000000.0</td><td /></tr>\n<tr class=\"odd\"><td>Search</ 
> td><td>com.ecyrd.jspwiki.plugin.Search</td><td>&nbsp;</ 
> td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td></tr> 
> \n<tr><td>SessionsPlugin</ 
> td><td>com.ecyrd.jspwiki.plugin.SessionsPlugin</td><td>&nbsp;</ 
> td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td></tr> 
> \n<tr class=\"odd\"><td>TableOfContents</ 
> td><td>com.ecyrd.jspwiki.plugin.TableOfContents</td><td>&nbsp;</ 
> td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td></tr> 
> \n<tr><td>UndefinedPagesPlugin</ 
> td><td>com.ecyrd.jspwiki.plugin.UndefinedPagesPlugin</ 
> td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</ 
> td><td>&nbsp;</td></tr>\n<tr class=\"odd\"><td>UnusedPagesPlugin</ 
> td><td>com.ecyrd.jspwi
>  ki.plugin.UnusedPagesPlugin</td><td>&nbsp;</td><td>&nbsp;</ 
> td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td></tr> 
> \n<tr><td>WeblogArchivePlugin</ 
> td><td>com.ecyrd.jspwiki.plugin.WeblogArchivePlugin</td><td>&nbsp;</ 
> td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td></tr> 
> \n<tr class=\"odd\"><td>WeblogEntryPlugin</ 
> td><td>com.ecyrd.jspwiki.plugin.WeblogEntryPlugin</td><td>&nbsp;</ 
> td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td></tr> 
> \n<tr><td>WeblogPlugin</ 
> td><td>com.ecyrd.jspwiki.plugin.WeblogPlugin</td><td>&nbsp;</ 
> td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td></ 
> tr></table>";
> +        String result = manager.execute( context,  
> "{PluginIndexPlugin details=true}" );
> +
> +        // now this is a very straightforward test, if a new  
> plugin is added, a plugin is removed, this test will have to be  
> modified
> +        assertEquals( expectedResult, result );
> +    }
> +}
>
> Modified: incubator/jspwiki/trunk/tests/etc/jspwiki.properties.tmpl
> URL: http://svn.apache.org/viewvc/incubator/jspwiki/trunk/tests/etc/ 
> jspwiki.properties.tmpl?rev=729753&r1=729752&r2=729753&view=diff
> ====================================================================== 
> ========
> --- incubator/jspwiki/trunk/tests/etc/jspwiki.properties.tmpl  
> (original)
> +++ incubator/jspwiki/trunk/tests/etc/jspwiki.properties.tmpl Sun  
> Dec 28 08:41:25 2008
> @@ -103,47 +103,6 @@
>  jspwiki.groupdatabase.modified=modified
>  jspwiki.groupdatabase.modifier=modifier
>
> -#
> -#  Configure logs.
> -#
> -#  Send mail on alerts
> -#
> -#
> -#  Log only interesting stuff on screen.
> -#
> -#log4j.appender.console = org.apache.log4j.ConsoleAppender
> -#log4j.appender.console.Threshold = WARN
> -
> -#log4j.appender.console.layout = org.apache.log4j.PatternLayout
> -#log4j.appender.console.layout.ConversionPattern = %-5p: %m%n
> -
> -#
> -#  Log everything into a file.
> -log4j.rootCategory=INFO,FileLog
> -log4j.logger.com.ecyrd.jspwiki=INFO, FileLog
> -log4j.logger.org.mortbay=INFO, TestContainerLog
> -log4j.logger.SecurityLog=INFO, SecurityAppender
> -
> -log4j.appender.FileLog = org.apache.log4j.RollingFileAppender
> -log4j.appender.FileLog.MaxFileSize    = 10MB
> -log4j.appender.FileLog.MaxBackupIndex = 14
> -log4j.appender.FileLog.File = @tests.logfile@
> -log4j.appender.FileLog.layout = org.apache.log4j.PatternLayout
> -log4j.appender.FileLog.layout.ConversionPattern=%d [%t] %p %c %x -  
> %m%n
> -
> -log4j.appender.SecurityAppender =  
> org.apache.log4j.RollingFileAppender
> -log4j.appender.SecurityAppender.MaxFileSize    = 10MB
> -log4j.appender.SecurityAppender.MaxBackupIndex = 14
> -log4j.appender.SecurityAppender.File = @securitylog@
> -log4j.appender.SecurityAppender.layout =  
> org.apache.log4j.PatternLayout
> -log4j.appender.SecurityAppender.layout.ConversionPattern=%d %p - %m%n
> -
> -log4j.appender.TestContainerLog =  
> org.apache.log4j.RollingFileAppender
> -log4j.appender.TestContainerLog.MaxFileSize    = 10MB
> -log4j.appender.TestContainerLog.MaxBackupIndex = 14
> -log4j.appender.TestContainerLog.layout =  
> org.apache.log4j.PatternLayout
> -log4j.appender.TestContainerLog.layout.ConversionPattern=%d [%t] % 
> p %c %x - %m%n
> -
>  # JavaMail properties
>  mail.smtp.host = 127.0.0.1
>  mail.smtp.port = 25
>