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 2016/02/06 00:35:43 UTC

svn commit: r1728776 - in /jspwiki/trunk: ./ jspwiki-war/src/main/java/org/apache/wiki/ jspwiki-war/src/main/java/org/apache/wiki/parser/ jspwiki-war/src/main/java/org/apache/wiki/plugin/ jspwiki-war/src/main/java/org/apache/wiki/render/ jspwiki-war/sr...

Author: juanpablo
Date: Fri Feb  5 23:35:42 2016
New Revision: 1728776

URL: http://svn.apache.org/viewvc?rev=1728776&view=rev
Log:
* 2.10.2-svn-42

* JSPWIKI-570: Cannot use another MarkupParser - hardcoded references to RenderingManager and JSPWikiMarkupParser
** new property on jspwiki.properties to specify the markup parser, jspwiki.renderingManager.markupParser (defaults to JSPWikiMarkupParser)
** RenderingManager is no longer directly instantiated (except perhaps on tests)
** JSPWikiMarkupParser is no longer directly instantiated or referenced (except perhaps on tests or in the class itself)
** moved makeError method from JSPWikiMarkupParser to MarkupParser as it is not specific of JSPWiki markup

* thanks to Piotr Tarnowski for all the analysis at JSPWIKI-570

Modified:
    jspwiki/trunk/ChangeLog
    jspwiki/trunk/jspwiki-war/src/main/java/org/apache/wiki/Release.java
    jspwiki/trunk/jspwiki-war/src/main/java/org/apache/wiki/parser/JSPWikiMarkupParser.java
    jspwiki/trunk/jspwiki-war/src/main/java/org/apache/wiki/parser/MarkupParser.java
    jspwiki/trunk/jspwiki-war/src/main/java/org/apache/wiki/parser/PluginContent.java
    jspwiki/trunk/jspwiki-war/src/main/java/org/apache/wiki/parser/VariableContent.java
    jspwiki/trunk/jspwiki-war/src/main/java/org/apache/wiki/plugin/TableOfContents.java
    jspwiki/trunk/jspwiki-war/src/main/java/org/apache/wiki/render/RenderingManager.java
    jspwiki/trunk/jspwiki-war/src/main/java/org/apache/wiki/util/ClassUtil.java
    jspwiki/trunk/jspwiki-war/src/main/resources/ini/jspwiki.properties
    jspwiki/trunk/jspwiki-war/src/main/webapp/templates/default/editors/CKeditor.jsp
    jspwiki/trunk/jspwiki-war/src/main/webapp/templates/default/editors/FCK.jsp
    jspwiki/trunk/jspwiki-war/src/main/webapp/templates/default/editors/TinyMCE.jsp
    jspwiki/trunk/jspwiki-war/src/main/webapp/templates/haddock/editors/CKeditor.jsp
    jspwiki/trunk/jspwiki-war/src/main/webapp/templates/haddock/editors/TinyMCE.jsp
    jspwiki/trunk/jspwiki-war/src/main/webapp/templates/haddock/editors/wysiwyg.jsp
    jspwiki/trunk/jspwiki-war/src/test/java/org/apache/wiki/render/RenderingManagerTest.java
    jspwiki/trunk/jspwiki-war/src/test/java/org/apache/wiki/util/ClassUtilTest.java

Modified: jspwiki/trunk/ChangeLog
URL: http://svn.apache.org/viewvc/jspwiki/trunk/ChangeLog?rev=1728776&r1=1728775&r2=1728776&view=diff
==============================================================================
--- jspwiki/trunk/ChangeLog (original)
+++ jspwiki/trunk/ChangeLog Fri Feb  5 23:35:42 2016
@@ -1,3 +1,11 @@
+2016-02-06  Juan Pablo Santos (juanpablo AT apache DOT org)
+
+       * 2.10.2-svn-42
+
+       * JSPWIKI-570: Cannot use another MarkupParser - hardcoded references to 
+         RenderingManager and JSPWikiMarkupParser - thanks to Piotr Tarnowski for all the 
+         analysis at JSPWIKI-570
+
 2016-02-02  Juan Pablo Santos (juanpablo AT apache DOT org)
 
        * 2.10.2-svn-41

Modified: jspwiki/trunk/jspwiki-war/src/main/java/org/apache/wiki/Release.java
URL: http://svn.apache.org/viewvc/jspwiki/trunk/jspwiki-war/src/main/java/org/apache/wiki/Release.java?rev=1728776&r1=1728775&r2=1728776&view=diff
==============================================================================
--- jspwiki/trunk/jspwiki-war/src/main/java/org/apache/wiki/Release.java (original)
+++ jspwiki/trunk/jspwiki-war/src/main/java/org/apache/wiki/Release.java Fri Feb  5 23:35:42 2016
@@ -72,7 +72,7 @@ public final class Release {
      *  <p>
      *  If the build identifier is empty, it is not added.
      */
-    public static final String     BUILD         = "41";
+    public static final String     BUILD         = "42";
 
     /**
      *  This is the generic version string you should use when printing out the version.  It is of 

Modified: jspwiki/trunk/jspwiki-war/src/main/java/org/apache/wiki/parser/JSPWikiMarkupParser.java
URL: http://svn.apache.org/viewvc/jspwiki/trunk/jspwiki-war/src/main/java/org/apache/wiki/parser/JSPWikiMarkupParser.java?rev=1728776&r1=1728775&r2=1728776&view=diff
==============================================================================
--- jspwiki/trunk/jspwiki-war/src/main/java/org/apache/wiki/parser/JSPWikiMarkupParser.java (original)
+++ jspwiki/trunk/jspwiki-war/src/main/java/org/apache/wiki/parser/JSPWikiMarkupParser.java Fri Feb  5 23:35:42 2016
@@ -741,20 +741,6 @@ public class JSPWikiMarkupParser extends
         return s;
     }
 
-
-    /**
-     *  Writes HTML for error message.  Does not add it to the document, you
-     *  have to do it yourself.
-     *
-     *  @param error The error string.
-     *  @return An Element containing the error.
-     */
-
-    public static Element makeError( String error )
-    {
-        return new Element("span").setAttribute("class","error").addContent(error);
-    }
-
     private int flushPlainText()
     {
         int numChars = m_plainTextBuf.length();

Modified: jspwiki/trunk/jspwiki-war/src/main/java/org/apache/wiki/parser/MarkupParser.java
URL: http://svn.apache.org/viewvc/jspwiki/trunk/jspwiki-war/src/main/java/org/apache/wiki/parser/MarkupParser.java?rev=1728776&r1=1728775&r2=1728776&view=diff
==============================================================================
--- jspwiki/trunk/jspwiki-war/src/main/java/org/apache/wiki/parser/MarkupParser.java (original)
+++ jspwiki/trunk/jspwiki-war/src/main/java/org/apache/wiki/parser/MarkupParser.java Fri Feb  5 23:35:42 2016
@@ -27,6 +27,7 @@ import java.util.ArrayList;
 import org.apache.wiki.StringTransmutator;
 import org.apache.wiki.WikiContext;
 import org.apache.wiki.WikiEngine;
+import org.jdom2.Element;
 
 /**
  *   Provides an abstract class for the parser instances.
@@ -243,6 +244,19 @@ public abstract class MarkupParser
             m_in.unread( c );
         }
     }
+    
+    /**
+     *  Writes HTML for error message.  Does not add it to the document, you
+     *  have to do it yourself.
+     *
+     *  @param error The error string.
+     *  @return An Element containing the error.
+     */
+
+    public static Element makeError( String error )
+    {
+        return new Element("span").setAttribute("class","error").addContent(error);
+    }
 
     /**
      *  Cleans a Wiki name.  The functionality of this method was changed in 2.6

Modified: jspwiki/trunk/jspwiki-war/src/main/java/org/apache/wiki/parser/PluginContent.java
URL: http://svn.apache.org/viewvc/jspwiki/trunk/jspwiki-war/src/main/java/org/apache/wiki/parser/PluginContent.java?rev=1728776&r1=1728775&r2=1728776&view=diff
==============================================================================
--- jspwiki/trunk/jspwiki-war/src/main/java/org/apache/wiki/parser/PluginContent.java (original)
+++ jspwiki/trunk/jspwiki-war/src/main/java/org/apache/wiki/parser/PluginContent.java Fri Feb  5 23:35:42 2016
@@ -199,10 +199,10 @@ public class PluginContent extends Text
             } else {
                 // log.info("Failed to execute plugin",e);
                 ResourceBundle rb = Preferences.getBundle(context, WikiPlugin.CORE_PLUGINS_RESOURCEBUNDLE);
-                result = JSPWikiMarkupParser.makeError( MessageFormat.format( rb.getString("plugin.error.insertionfailed"), 
-                		                                                      context.getRealPage().getWiki(), 
-                		                                                      context.getRealPage().getName(), 
-                		                                                      e.getMessage())).getText();
+                result = MarkupParser.makeError( MessageFormat.format( rb.getString( "plugin.error.insertionfailed" ), 
+                		                                               context.getRealPage().getWiki(), 
+                		                                               context.getRealPage().getName(), 
+                		                                               e.getMessage() ) ).getText();
             }
         }
 

Modified: jspwiki/trunk/jspwiki-war/src/main/java/org/apache/wiki/parser/VariableContent.java
URL: http://svn.apache.org/viewvc/jspwiki/trunk/jspwiki-war/src/main/java/org/apache/wiki/parser/VariableContent.java?rev=1728776&r1=1728775&r2=1728776&view=diff
==============================================================================
--- jspwiki/trunk/jspwiki-war/src/main/java/org/apache/wiki/parser/VariableContent.java (original)
+++ jspwiki/trunk/jspwiki-war/src/main/java/org/apache/wiki/parser/VariableContent.java Fri Feb  5 23:35:42 2016
@@ -84,7 +84,7 @@ public class VariableContent extends Tex
             }
             catch( NoSuchVariableException e )
             {
-                result = JSPWikiMarkupParser.makeError("No such variable: "+e.getMessage()).getText(); 
+                result = MarkupParser.makeError( "No such variable: " + e.getMessage() ).getText(); 
             }
         }
 

Modified: jspwiki/trunk/jspwiki-war/src/main/java/org/apache/wiki/plugin/TableOfContents.java
URL: http://svn.apache.org/viewvc/jspwiki/trunk/jspwiki-war/src/main/java/org/apache/wiki/plugin/TableOfContents.java?rev=1728776&r1=1728775&r2=1728776&view=diff
==============================================================================
--- jspwiki/trunk/jspwiki-war/src/main/java/org/apache/wiki/plugin/TableOfContents.java (original)
+++ jspwiki/trunk/jspwiki-war/src/main/java/org/apache/wiki/plugin/TableOfContents.java Fri Feb  5 23:35:42 2016
@@ -19,7 +19,6 @@
 package org.apache.wiki.plugin;
 
 import java.io.IOException;
-import java.io.StringReader;
 import java.util.Map;
 import java.util.ResourceBundle;
 
@@ -33,7 +32,7 @@ import org.apache.wiki.api.exceptions.Pl
 import org.apache.wiki.api.plugin.WikiPlugin;
 import org.apache.wiki.parser.Heading;
 import org.apache.wiki.parser.HeadingListener;
-import org.apache.wiki.parser.JSPWikiMarkupParser;
+import org.apache.wiki.parser.MarkupParser;
 import org.apache.wiki.preferences.Preferences;
 import org.apache.wiki.util.TextUtil;
 
@@ -220,28 +219,23 @@ public class TableOfContents
         try
         {
             String wikiText = engine.getPureText( page );
-            boolean runFilters = 
-                "true".equals(engine.getVariableManager().getValue(context,WikiEngine.PROP_RUNFILTERS,"true"));
+            boolean runFilters = "true".equals( engine.getVariableManager().getValue( context, WikiEngine.PROP_RUNFILTERS, "true" ) );
             
-            try
-            {
-                if( runFilters ) 
-                {
-                    FilterManager fm = engine.getFilterManager();
-                    wikiText = fm.doPreTranslateFiltering( context, wikiText );
-                }
-            }
-            catch(Exception e) 
-            {
-                log.error("Could not construct table of contents: Filter Error", e);
-                throw new PluginException("Unable to construct table of contents (see logs)");
+            if( runFilters ) {
+				try {
+					FilterManager fm = engine.getFilterManager();
+					wikiText = fm.doPreTranslateFiltering(context, wikiText);
+
+				} catch (Exception e) {
+					log.error("Could not construct table of contents: Filter Error", e);
+					throw new PluginException("Unable to construct table of contents (see logs)");
+				}
             }
             
             context.setVariable( VAR_ALREADY_PROCESSING, "x" );
-            JSPWikiMarkupParser parser = new JSPWikiMarkupParser( context,
-                                                                  new StringReader(wikiText) );
+            
+            MarkupParser parser = engine.getRenderingManager().getParser( context, wikiText );
             parser.addHeadingListener( this );
-
             parser.parse();
 
             sb.append( "<ul>\n"+m_buf.toString()+"</ul>\n" );

Modified: jspwiki/trunk/jspwiki-war/src/main/java/org/apache/wiki/render/RenderingManager.java
URL: http://svn.apache.org/viewvc/jspwiki/trunk/jspwiki-war/src/main/java/org/apache/wiki/render/RenderingManager.java?rev=1728776&r1=1728775&r2=1728776&view=diff
==============================================================================
--- jspwiki/trunk/jspwiki-war/src/main/java/org/apache/wiki/render/RenderingManager.java (original)
+++ jspwiki/trunk/jspwiki-war/src/main/java/org/apache/wiki/render/RenderingManager.java Fri Feb  5 23:35:42 2016
@@ -41,6 +41,8 @@ import org.apache.wiki.modules.InternalM
 import org.apache.wiki.parser.JSPWikiMarkupParser;
 import org.apache.wiki.parser.MarkupParser;
 import org.apache.wiki.parser.WikiDocument;
+import org.apache.wiki.util.ClassUtil;
+
 
 /**
  *  This class provides a facade towards the differing rendering routines.  You should
@@ -57,28 +59,32 @@ public class RenderingManager implements
 {
     private static Logger log = Logger.getLogger( RenderingManager.class );
 
-    private              int    m_cacheExpiryPeriod = 24*60*60; // This can be relatively long
+    private int        m_cacheExpiryPeriod = 24*60*60; // This can be relatively long
 
-    private          WikiEngine m_engine;
+    private WikiEngine m_engine;
 
     private CacheManager m_cacheManager = CacheManager.getInstance();
 
     /** The capacity of the caches, if you want something else, tweak ehcache.xml. */
     private static final int    DEFAULT_CACHESIZE = 1000;
     private static final String VERSION_DELIMITER = "::";
+    private static final String PROP_PARSER       = "jspwiki.renderingManager.markupParser";
     private static final String PROP_RENDERER     = "jspwiki.renderingManager.renderer";
 
     /** The name of the default renderer. */
+    public static final String DEFAULT_PARSER = JSPWikiMarkupParser.class.getName();
+    
+    /** The name of the default renderer. */
     public  static final String DEFAULT_RENDERER  = XHTMLRenderer.class.getName();
 
-    /**
-     *  Stores the WikiDocuments that have been cached.
-     */
+    /** Stores the WikiDocuments that have been cached. */
     private Cache m_documentCache;
+    
     /** Name of the regular page cache. */
     public static final String DOCUMENTCACHE_NAME = "jspwiki.renderingCache";
 
-    private         Constructor m_rendererConstructor;
+    private Constructor< ? > m_rendererConstructor;
+    private String m_markupParserClass = DEFAULT_PARSER;
 
     /**
      *  Name of the WikiContext variable which is set to Boolean.TRUE or Boolean.FALSE
@@ -106,6 +112,13 @@ public class RenderingManager implements
         throws WikiException
     {
         m_engine = engine;
+        
+        m_markupParserClass = properties.getProperty( PROP_PARSER, DEFAULT_PARSER );
+        if( !ClassUtil.assignable( m_markupParserClass, MarkupParser.class.getName() ) ) {
+        	log.warn( m_markupParserClass + " does not subclass " + MarkupParser.class.getName() + " reverting to default markup parser." );
+        	m_markupParserClass = DEFAULT_PARSER;
+        }
+        log.info( "Using " + m_markupParserClass + " as markup parser." );
 
         String documentCacheName = engine.getApplicationName() + "." + DOCUMENTCACHE_NAME;
 
@@ -117,31 +130,21 @@ public class RenderingManager implements
             m_cacheManager.addCache(m_documentCache);
         }
 
-        String renderImplName = properties.getProperty( PROP_RENDERER );
-        if( renderImplName == null )
-        {
-            renderImplName = DEFAULT_RENDERER;
-        }
-        Class[] rendererParams = { WikiContext.class, WikiDocument.class };
-        try
-        {
+        String renderImplName = properties.getProperty( PROP_RENDERER, DEFAULT_RENDERER );
+        
+        Class< ? >[] rendererParams = { WikiContext.class, WikiDocument.class };
+        try {
             Class< ? > c = Class.forName( renderImplName );
             m_rendererConstructor = c.getConstructor( rendererParams );
-        }
-        catch( ClassNotFoundException e )
-        {
+        } catch( ClassNotFoundException e ) {
             log.error( "Unable to find WikiRenderer implementation " + renderImplName );
-        }
-        catch( SecurityException e )
-        {
+        } catch( SecurityException e ) {
             log.error( "Unable to access the WikiRenderer(WikiContext,WikiDocument) constructor for "  + renderImplName );
-        }
-        catch( NoSuchMethodException e )
-        {
+        } catch( NoSuchMethodException e ) {
             log.error( "Unable to locate the WikiRenderer(WikiContext,WikiDocument) constructor for "  + renderImplName );
         }
-        if( m_rendererConstructor == null )
-        {
+        
+        if( m_rendererConstructor == null ) {
             throw new WikiException( "Failed to get WikiRenderer '" + renderImplName + "'." );
         }
         log.info( "Rendering content with " + renderImplName + "." );
@@ -154,11 +157,13 @@ public class RenderingManager implements
      *  @param pagedata the page data
      *  @return A MarkupParser instance.
      */
-    public MarkupParser getParser( WikiContext context, String pagedata )
-    {
-        MarkupParser parser = new JSPWikiMarkupParser( context, new StringReader(pagedata) );
-
-        return parser;
+    public MarkupParser getParser( WikiContext context, String pagedata ) {
+    	try {
+			return ( MarkupParser )ClassUtil.getMappedObject( m_markupParserClass, context, new StringReader( pagedata ) );
+		} catch( WikiException e ) {
+			log.error( "unable to get an instance of " + m_markupParserClass + " (" + e.getMessage() + "), returning default markup parser." );
+			return new JSPWikiMarkupParser( context, new StringReader( pagedata ) );
+		}
     }
 
     /**
@@ -284,7 +289,6 @@ public class RenderingManager implements
      * @see org.apache.wiki.event.WikiEventListener#actionPerformed(org.apache.wiki.event.WikiEvent)
      * @param event {@inheritDoc}
      */
-    @SuppressWarnings("deprecation")
     public void actionPerformed(WikiEvent event)
     {
         if( (event instanceof WikiPageEvent) && (event.getType() == WikiPageEvent.POST_SAVE_BEGIN) )

Modified: jspwiki/trunk/jspwiki-war/src/main/java/org/apache/wiki/util/ClassUtil.java
URL: http://svn.apache.org/viewvc/jspwiki/trunk/jspwiki-war/src/main/java/org/apache/wiki/util/ClassUtil.java?rev=1728776&r1=1728775&r2=1728776&view=diff
==============================================================================
--- jspwiki/trunk/jspwiki-war/src/main/java/org/apache/wiki/util/ClassUtil.java (original)
+++ jspwiki/trunk/jspwiki-war/src/main/java/org/apache/wiki/util/ClassUtil.java Fri Feb  5 23:35:42 2016
@@ -427,4 +427,23 @@ public final class ClassUtil {
             throw new WikiException("Failed to instantiate class "+requestedClass, e );
         }
     }
+    
+    /**
+     * checks if {@code srcClassName} is a subclass of {@code parentClassname}.
+     * 
+     * @param srcClassName expected subclass.
+     * @param parentClassName expected parent class.
+     * @return {@code true} if {@code srcClassName} is a subclass of {@code parentClassname}, {@code false} otherwise.
+     */
+    public static boolean assignable( String srcClassName, String parentClassName ) {
+    	try {
+			Class< ? > src = Class.forName( srcClassName );
+			Class< ? > parent = Class.forName( parentClassName );
+			return parent.isAssignableFrom( src );
+		} catch( Exception e ) {
+			log.error( e.getMessage(), e );
+		}
+    	return false;
+    }
+    
 }

Modified: jspwiki/trunk/jspwiki-war/src/main/resources/ini/jspwiki.properties
URL: http://svn.apache.org/viewvc/jspwiki/trunk/jspwiki-war/src/main/resources/ini/jspwiki.properties?rev=1728776&r1=1728775&r2=1728776&view=diff
==============================================================================
--- jspwiki/trunk/jspwiki-war/src/main/resources/ini/jspwiki.properties (original)
+++ jspwiki/trunk/jspwiki-war/src/main/resources/ini/jspwiki.properties Fri Feb  5 23:35:42 2016
@@ -464,6 +464,9 @@ jspwiki.plugin.externalJars =
 # This may be necessary if you require custom rendering that must not be cached.
 #jspwiki.renderingManager.useCache = false
 
+# Markup parser class name; it must be a subclass of org.apache.wiki.parser.MarkupParser
+jspwiki.renderingManager.markupParser=org.apache.wiki.parser.JSPWikiMarkupParser
+
 
 #############################################################################
 #

Modified: jspwiki/trunk/jspwiki-war/src/main/webapp/templates/default/editors/CKeditor.jsp
URL: http://svn.apache.org/viewvc/jspwiki/trunk/jspwiki-war/src/main/webapp/templates/default/editors/CKeditor.jsp?rev=1728776&r1=1728775&r2=1728776&view=diff
==============================================================================
--- jspwiki/trunk/jspwiki-war/src/main/webapp/templates/default/editors/CKeditor.jsp (original)
+++ jspwiki/trunk/jspwiki-war/src/main/webapp/templates/default/editors/CKeditor.jsp Fri Feb  5 23:35:42 2016
@@ -94,7 +94,7 @@
 <%
    if( usertext == null ) usertext = "";
 
-   RenderingManager renderingManager = new RenderingManager();
+   RenderingManager renderingManager = engine.getRenderingManager();
 
    // since the WikiProperties are shared, we'll want to make our own copy of it for modifying.
    Properties copyOfWikiProperties = new Properties();

Modified: jspwiki/trunk/jspwiki-war/src/main/webapp/templates/default/editors/FCK.jsp
URL: http://svn.apache.org/viewvc/jspwiki/trunk/jspwiki-war/src/main/webapp/templates/default/editors/FCK.jsp?rev=1728776&r1=1728775&r2=1728776&view=diff
==============================================================================
--- jspwiki/trunk/jspwiki-war/src/main/webapp/templates/default/editors/FCK.jsp (original)
+++ jspwiki/trunk/jspwiki-war/src/main/webapp/templates/default/editors/FCK.jsp Fri Feb  5 23:35:42 2016
@@ -81,7 +81,7 @@
 </wiki:CheckRequestContext>
 <% if( usertext == null ) usertext = "";
 
-   RenderingManager renderingManager = new RenderingManager();
+   RenderingManager renderingManager = engine.getRenderingManager();
 
    // since the WikiProperties are shared, we'll want to make our own copy of it for modifying.
    Properties copyOfWikiProperties = new Properties();

Modified: jspwiki/trunk/jspwiki-war/src/main/webapp/templates/default/editors/TinyMCE.jsp
URL: http://svn.apache.org/viewvc/jspwiki/trunk/jspwiki-war/src/main/webapp/templates/default/editors/TinyMCE.jsp?rev=1728776&r1=1728775&r2=1728776&view=diff
==============================================================================
--- jspwiki/trunk/jspwiki-war/src/main/webapp/templates/default/editors/TinyMCE.jsp (original)
+++ jspwiki/trunk/jspwiki-war/src/main/webapp/templates/default/editors/TinyMCE.jsp Fri Feb  5 23:35:42 2016
@@ -94,7 +94,7 @@
 <%
    if( usertext == null ) usertext = "";
 
-   RenderingManager renderingManager = new RenderingManager();
+   RenderingManager renderingManager = engine.getRenderingManager();
 
    // since the WikiProperties are shared, we'll want to make our own copy of it for modifying.
    Properties copyOfWikiProperties = new Properties();

Modified: jspwiki/trunk/jspwiki-war/src/main/webapp/templates/haddock/editors/CKeditor.jsp
URL: http://svn.apache.org/viewvc/jspwiki/trunk/jspwiki-war/src/main/webapp/templates/haddock/editors/CKeditor.jsp?rev=1728776&r1=1728775&r2=1728776&view=diff
==============================================================================
--- jspwiki/trunk/jspwiki-war/src/main/webapp/templates/haddock/editors/CKeditor.jsp (original)
+++ jspwiki/trunk/jspwiki-war/src/main/webapp/templates/haddock/editors/CKeditor.jsp Fri Feb  5 23:35:42 2016
@@ -95,7 +95,7 @@
 <%
     if( usertext == null ) usertext = "";
 
-    RenderingManager renderingManager = new RenderingManager();
+    RenderingManager renderingManager = engine.getRenderingManager();
 
     // since the WikiProperties are shared, we'll want to make our own copy of it for modifying.
     Properties copyOfWikiProperties = new Properties();

Modified: jspwiki/trunk/jspwiki-war/src/main/webapp/templates/haddock/editors/TinyMCE.jsp
URL: http://svn.apache.org/viewvc/jspwiki/trunk/jspwiki-war/src/main/webapp/templates/haddock/editors/TinyMCE.jsp?rev=1728776&r1=1728775&r2=1728776&view=diff
==============================================================================
--- jspwiki/trunk/jspwiki-war/src/main/webapp/templates/haddock/editors/TinyMCE.jsp (original)
+++ jspwiki/trunk/jspwiki-war/src/main/webapp/templates/haddock/editors/TinyMCE.jsp Fri Feb  5 23:35:42 2016
@@ -96,7 +96,7 @@
 <%
     if( usertext == null ) usertext = "";
 
-    RenderingManager renderingManager = new RenderingManager();
+    RenderingManager renderingManager = engine.getRenderingManager();
 
     // since the WikiProperties are shared, we'll want to make our own copy of it for modifying.
     Properties copyOfWikiProperties = new Properties();

Modified: jspwiki/trunk/jspwiki-war/src/main/webapp/templates/haddock/editors/wysiwyg.jsp
URL: http://svn.apache.org/viewvc/jspwiki/trunk/jspwiki-war/src/main/webapp/templates/haddock/editors/wysiwyg.jsp?rev=1728776&r1=1728775&r2=1728776&view=diff
==============================================================================
--- jspwiki/trunk/jspwiki-war/src/main/webapp/templates/haddock/editors/wysiwyg.jsp (original)
+++ jspwiki/trunk/jspwiki-war/src/main/webapp/templates/haddock/editors/wysiwyg.jsp Fri Feb  5 23:35:42 2016
@@ -89,7 +89,7 @@
 <%
     if( usertext == null ) usertext = "";
 
-    RenderingManager renderingManager = new RenderingManager();
+    RenderingManager renderingManager = engine.getRenderingManager();
 
     // since the WikiProperties are shared, we'll want to make our own copy of it for modifying.
     Properties copyOfWikiProperties = new Properties();

Modified: jspwiki/trunk/jspwiki-war/src/test/java/org/apache/wiki/render/RenderingManagerTest.java
URL: http://svn.apache.org/viewvc/jspwiki/trunk/jspwiki-war/src/test/java/org/apache/wiki/render/RenderingManagerTest.java?rev=1728776&r1=1728775&r2=1728776&view=diff
==============================================================================
--- jspwiki/trunk/jspwiki-war/src/test/java/org/apache/wiki/render/RenderingManagerTest.java (original)
+++ jspwiki/trunk/jspwiki-war/src/test/java/org/apache/wiki/render/RenderingManagerTest.java Fri Feb  5 23:35:42 2016
@@ -32,23 +32,20 @@ import org.apache.wiki.WikiPage;
 import org.apache.wiki.parser.MarkupParser;
 import org.apache.wiki.parser.WikiDocument;
 
-public class RenderingManagerTest extends TestCase
-{
+public class RenderingManagerTest extends TestCase {
+	
     RenderingManager m_manager;
     TestEngine       m_engine;
     
-    protected void setUp() throws Exception
-    {
+    protected void setUp() throws Exception {
         CacheManager.getInstance().removeAllCaches();
         Properties props = TestEngine.getTestProperties();
         m_engine = new TestEngine( props );
         
-        m_manager = new RenderingManager();
-        m_manager.initialize( m_engine, props );
+        m_manager = m_engine.getRenderingManager();
     }
 
-    protected void tearDown() throws Exception
-    {
+    protected void tearDown() throws Exception {
         m_engine.deletePage( "TestPage" );
     }
         

Modified: jspwiki/trunk/jspwiki-war/src/test/java/org/apache/wiki/util/ClassUtilTest.java
URL: http://svn.apache.org/viewvc/jspwiki/trunk/jspwiki-war/src/test/java/org/apache/wiki/util/ClassUtilTest.java?rev=1728776&r1=1728775&r2=1728776&view=diff
==============================================================================
--- jspwiki/trunk/jspwiki-war/src/test/java/org/apache/wiki/util/ClassUtilTest.java (original)
+++ jspwiki/trunk/jspwiki-war/src/test/java/org/apache/wiki/util/ClassUtilTest.java Fri Feb  5 23:35:42 2016
@@ -60,7 +60,7 @@ public class ClassUtilTest extends TestC
     public void testFindClass()
         throws Exception
     {
-        Class foo = ClassUtil.findClass( "org.apache.wiki", "WikiPage" );
+        Class< ? > foo = ClassUtil.findClass( "org.apache.wiki", "WikiPage" );
 
         assertEquals( foo.getName(), "org.apache.wiki.WikiPage" );
     }
@@ -73,14 +73,22 @@ public class ClassUtilTest extends TestC
     {
         try
         {
-            Class foo = ClassUtil.findClass( "org.apache.wiki", "MubbleBubble" );
-            fail("Found class:"+foo);
+            Class< ? > foo = ClassUtil.findClass( "org.apache.wiki", "MubbleBubble" );
+            fail( "Found class:" + foo );
         }
         catch( ClassNotFoundException e )
         {
             // Expected
         }
     }
+    
+    public void testAssignable() {
+    	assertTrue( ClassUtil.assignable( "org.apache.wiki.parser.JSPWikiMarkupParser", "org.apache.wiki.parser.MarkupParser" ) );
+    	assertFalse( ClassUtil.assignable( "org.apache.wiki.parser.MarkupParser", "org.apache.wiki.parser.JSPWikiMarkupParser" ) );
+    	assertFalse( ClassUtil.assignable( null, "org.apache.wiki.parser.JSPWikiMarkupParser" ) );
+    	assertFalse( ClassUtil.assignable( "org.apache.wiki.parser.MarkupParser", null ) );
+    	assertFalse( ClassUtil.assignable( "org.apache.wiki.parser.MarkupParser", "org.apache.wiki.WikiEngine" ) );
+    }
 
     public static Test suite()
     {