This is an automated email from the ASF dual-hosted git repository.

juanpablo pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/jspwiki.git

commit 8d2e5ee0ac09c1a9d04f842ac4ada734acd754c6
Author: juanpablo <[email protected]>
AuthorDate: Mon Feb 24 17:15:34 2020 +0100

    JSPWIKI-120: propagate WikiContext#getEngine() now returns Engine instead 
of WikiEngine (7)
---
 .../apache/wiki/parser/JSPWikiMarkupParser.java    | 259 +++++++++++----------
 .../apache/wiki/parser/LinkParsingOperations.java  |   5 +-
 .../java/org/apache/wiki/parser/MarkupParser.java  |   4 +-
 .../java/org/apache/wiki/parser/PluginContent.java |  15 +-
 .../org/apache/wiki/parser/VariableContent.java    |   9 +-
 .../org/apache/wiki/preferences/Preferences.java   |  70 +++---
 .../wiki/references/DefaultReferenceManager.java   |  39 ++--
 .../wiki/render/DefaultRenderingManager.java       |   6 +-
 8 files changed, 205 insertions(+), 202 deletions(-)

diff --git 
a/jspwiki-main/src/main/java/org/apache/wiki/parser/JSPWikiMarkupParser.java 
b/jspwiki-main/src/main/java/org/apache/wiki/parser/JSPWikiMarkupParser.java
index 178e468..23eee96 100644
--- a/jspwiki-main/src/main/java/org/apache/wiki/parser/JSPWikiMarkupParser.java
+++ b/jspwiki-main/src/main/java/org/apache/wiki/parser/JSPWikiMarkupParser.java
@@ -34,12 +34,17 @@ import org.apache.wiki.WikiContext;
 import org.apache.wiki.WikiPage;
 import org.apache.wiki.api.exceptions.PluginException;
 import org.apache.wiki.api.plugin.WikiPlugin;
+import org.apache.wiki.attachment.AttachmentManager;
+import org.apache.wiki.auth.AuthorizationManager;
+import org.apache.wiki.auth.UserManager;
 import org.apache.wiki.auth.WikiSecurityException;
 import org.apache.wiki.auth.acl.Acl;
+import org.apache.wiki.auth.acl.AclManager;
 import org.apache.wiki.i18n.InternationalizationManager;
 import org.apache.wiki.preferences.Preferences;
 import org.apache.wiki.util.TextUtil;
 import org.apache.wiki.util.XmlUtil;
+import org.apache.wiki.variables.VariableManager;
 import org.jdom2.Attribute;
 import org.jdom2.Content;
 import org.jdom2.Element;
@@ -165,7 +170,7 @@ public class JSPWikiMarkupParser extends MarkupParser {
      *  @param context The WikiContext which controls the parsing
      *  @param in Where the data is read from.
      */
-    public JSPWikiMarkupParser( WikiContext context, Reader in )
+    public JSPWikiMarkupParser( final WikiContext context, final Reader in )
     {
         super( context, in );
         initialize();
@@ -207,7 +212,7 @@ public class JSPWikiMarkupParser extends MarkupParser {
         m_allowHTML          = m_context.getBooleanWikiProperty( 
PROP_ALLOWHTML, m_allowHTML );
         m_useRelNofollow     = m_context.getBooleanWikiProperty( 
PROP_USERELNOFOLLOW, m_useRelNofollow );
 
-        if( m_engine.getUserManager().getUserDatabase() == null || 
m_engine.getAuthorizationManager() == null ) {
+        if( m_engine.getManager( UserManager.class ).getUserDatabase() == null 
|| m_engine.getManager( AuthorizationManager.class ) == null ) {
             disableAccessRules();
         }
 
@@ -238,13 +243,13 @@ public class JSPWikiMarkupParser extends MarkupParser {
      *
      * @param param A Heading object.
      */
-    protected void callHeadingListenerChain( Heading param )
+    protected void callHeadingListenerChain( final Heading param )
     {
-        List< HeadingListener > list = m_headingListenerChain;
+        final List< HeadingListener > list = m_headingListenerChain;
 
-        for( Iterator< HeadingListener > i = list.iterator(); i.hasNext(); )
+        for( final Iterator< HeadingListener > i = list.iterator(); 
i.hasNext(); )
         {
-            HeadingListener h = i.next();
+            final HeadingListener h = i.next();
 
             h.headingAdded( m_context, param );
         }
@@ -261,18 +266,18 @@ public class JSPWikiMarkupParser extends MarkupParser {
      *  @return An A element.
      *  @since 2.4.78
      */
-    protected Element createAnchor(int type, String link, String text, String 
section)
+    protected Element createAnchor( final int type, final String link, String 
text, String section)
     {
         text = escapeHTMLEntities( text );
         section = escapeHTMLEntities( section );
-        Element el = new Element("a");
+        final Element el = new Element("a");
         el.setAttribute("class",CLASS_TYPES[type]);
         el.setAttribute("href",link+section);
         el.addContent(text);
         return el;
     }
 
-    private Element makeLink( int type, String link, String text, String 
section, Iterator< Attribute > attributes )
+    private Element makeLink( int type, final String link, String text, String 
section, final Iterator< Attribute > attributes )
     {
         Element el = null;
 
@@ -289,7 +294,7 @@ public class JSPWikiMarkupParser extends MarkupParser {
         {
             type = EMPTY;
         }
-        ResourceBundle rb = Preferences.getBundle( m_context, 
InternationalizationManager.CORE_BUNDLE );
+        final ResourceBundle rb = Preferences.getBundle( m_context, 
InternationalizationManager.CORE_BUNDLE );
 
         switch(type)
         {
@@ -344,7 +349,7 @@ public class JSPWikiMarkupParser extends MarkupParser {
                 break;
 
             case IMAGEWIKILINK:
-                String pagelink = m_context.getURL(WikiContext.VIEW,text);
+                final String pagelink = 
m_context.getURL(WikiContext.VIEW,text);
                 el = new Element("img").setAttribute("class","inline");
                 el.setAttribute("src",link);
                 el.setAttribute("alt",text);
@@ -361,18 +366,18 @@ public class JSPWikiMarkupParser extends MarkupParser {
                 break;
 
             case ATTACHMENT:
-                String attlink = m_context.getURL( WikiContext.ATTACH,
+                final String attlink = m_context.getURL( WikiContext.ATTACH,
                                                    link );
 
-                String infolink = m_context.getURL( WikiContext.INFO,
+                final String infolink = m_context.getURL( WikiContext.INFO,
                                                     link );
 
-                String imglink = m_context.getURL( WikiContext.NONE,
+                final String imglink = m_context.getURL( WikiContext.NONE,
                                                    
"images/attachment_small.png" );
 
                 el = createAnchor( ATTACHMENT, attlink, text, "" );
 
-                if(  m_engine.getAttachmentManager().forceDownload( attlink ) )
+                if(  m_engine.getManager( AttachmentManager.class 
).forceDownload( attlink ) )
                 {
                     el.setAttribute("download", "");
                 }
@@ -403,7 +408,7 @@ public class JSPWikiMarkupParser extends MarkupParser {
         {
             while( attributes.hasNext() )
             {
-                Attribute attr = attributes.next();
+                final Attribute attr = attributes.next();
                 if( attr != null )
                 {
                     el.setAttribute(attr);
@@ -428,7 +433,7 @@ public class JSPWikiMarkupParser extends MarkupParser {
         "hr", "noscript", "ol", "p", "pre", "table", "ul"
     };
 
-    private static boolean isBlockLevel( String name )
+    private static boolean isBlockLevel( final String name )
     {
         return Arrays.binarySearch( BLOCK_ELEMENTS, name ) >= 0;
     }
@@ -444,7 +449,7 @@ public class JSPWikiMarkupParser extends MarkupParser {
     private String peekAheadLine()
         throws IOException
     {
-        String s = readUntilEOL().toString();
+        final String s = readUntilEOL().toString();
 
         if( s.length() > PUSHBACK_BUFFER_SIZE )
         {
@@ -457,7 +462,7 @@ public class JSPWikiMarkupParser extends MarkupParser {
             {
                 pushBack( s );
             }
-            catch( IOException e )
+            catch( final IOException e )
             {
                 log.warn("Pushback failed: the line is probably too long.  
Attempting to recover.");
             }
@@ -467,7 +472,7 @@ public class JSPWikiMarkupParser extends MarkupParser {
 
     private int flushPlainText()
     {
-        int numChars = m_plainTextBuf.length();
+        final int numChars = m_plainTextBuf.length();
 
         if( numChars > 0 )
         {
@@ -503,15 +508,15 @@ public class JSPWikiMarkupParser extends MarkupParser {
 
                     while( m_camelCaseMatcher.contains( buf, 
m_camelCasePattern ) )
                     {
-                        MatchResult result = m_camelCaseMatcher.getMatch();
+                        final MatchResult result = 
m_camelCaseMatcher.getMatch();
 
-                        String firstPart = 
buf.substring(0,result.beginOffset(0));
+                        final String firstPart = 
buf.substring(0,result.beginOffset(0));
                         String prefix = result.group(1);
 
                         if( prefix == null ) prefix = "";
 
-                        String camelCase = result.group(2);
-                        String protocol  = result.group(3);
+                        final String camelCase = result.group(2);
+                        final String protocol  = result.group(3);
                         String uri       = protocol+result.group(4);
                         buf              = buf.substring(result.endOffset(0));
 
@@ -547,7 +552,7 @@ public class JSPWikiMarkupParser extends MarkupParser {
                         //
                         if( protocol != null )
                         {
-                            char c = uri.charAt(uri.length()-1);
+                            final char c = uri.charAt(uri.length()-1);
                             if( c == '.' || c == ',' )
                             {
                                 uri = uri.substring(0,uri.length()-1);
@@ -578,7 +583,7 @@ public class JSPWikiMarkupParser extends MarkupParser {
                     m_currentElement.addContent( buf );
                 }
             }
-            catch( IllegalDataException e )
+            catch( final IllegalDataException e )
             {
                 //
                 // Sometimes it's possible that illegal XML chars is added to 
the data.
@@ -598,13 +603,13 @@ public class JSPWikiMarkupParser extends MarkupParser {
      *  @param buf
      *  @return An escaped string.
      */
-    private String escapeHTMLEntities(String buf)
+    private String escapeHTMLEntities( final String buf)
     {
-        StringBuilder tmpBuf = new StringBuilder( buf.length() + 20 );
+        final StringBuilder tmpBuf = new StringBuilder( buf.length() + 20 );
 
         for( int i = 0; i < buf.length(); i++ )
         {
-            char ch = buf.charAt(i);
+            final char ch = buf.charAt(i);
 
             if( ch == '<' )
             {
@@ -626,13 +631,13 @@ public class JSPWikiMarkupParser extends MarkupParser {
                 //
 
                 boolean isEntity = false;
-                StringBuilder entityBuf = new StringBuilder();
+                final StringBuilder entityBuf = new StringBuilder();
 
                 if( i < buf.length() -1 )
                 {
                     for( int j = i; j < buf.length(); j++ )
                     {
-                        char ch2 = buf.charAt(j);
+                        final char ch2 = buf.charAt(j);
 
                         if( Character.isLetterOrDigit( ch2 ) || (ch2 == '#' && 
j == i+1) || ch2 == ';' || ch2 == '&' )
                         {
@@ -671,7 +676,7 @@ public class JSPWikiMarkupParser extends MarkupParser {
         return tmpBuf.toString();
     }
 
-    private Element pushElement( Element e )
+    private Element pushElement( final Element e )
     {
         flushPlainText();
         m_currentElement.addContent( e );
@@ -680,7 +685,7 @@ public class JSPWikiMarkupParser extends MarkupParser {
         return e;
     }
 
-    private Element addElement( Content e )
+    private Element addElement( final Content e )
     {
         if( e != null )
         {
@@ -705,9 +710,9 @@ public class JSPWikiMarkupParser extends MarkupParser {
      *  @param s
      *  @return The new current element, or null, if there was no such element 
in the entire stack.
      */
-    private Element popElement( String s )
+    private Element popElement( final String s )
     {
-        int flushedBytes = flushPlainText();
+        final int flushedBytes = flushPlainText();
 
         Element currEl = m_currentElement;
 
@@ -744,10 +749,10 @@ public class JSPWikiMarkupParser extends MarkupParser {
      *  ending characters, or stream end.  The ending character will be left
      *  in the stream.
      */
-    private String readUntil( String endChars )
+    private String readUntil( final String endChars )
         throws IOException
     {
-        StringBuilder sb = new StringBuilder( 80 );
+        final StringBuilder sb = new StringBuilder( 80 );
         int ch = nextToken();
 
         while( ch != -1 )
@@ -779,10 +784,10 @@ public class JSPWikiMarkupParser extends MarkupParser {
      *  Reads the stream while the characters that have been specified are
      *  in the stream, returning then the result as a String.
      */
-    private String readWhile( String endChars )
+    private String readWhile( final String endChars )
         throws IOException
     {
-        StringBuilder sb = new StringBuilder( 80 );
+        final StringBuilder sb = new StringBuilder( 80 );
         int ch = nextToken();
 
         while( ch != -1 )
@@ -897,9 +902,9 @@ public class JSPWikiMarkupParser extends MarkupParser {
      *  a proper HTML link for it.  The local link mutator
      *  chain is also called.
      */
-    private Element makeCamelCaseLink( String wikiname )
+    private Element makeCamelCaseLink( final String wikiname )
     {
-        String matchedLink = m_linkParsingOperations.linkIfExists( wikiname );
+        final String matchedLink = m_linkParsingOperations.linkIfExists( 
wikiname );
 
         callMutatorChain( m_localLinkMutatorChain, wikiname );
 
@@ -955,7 +960,7 @@ public class JSPWikiMarkupParser extends MarkupParser {
      */
     private Element makeDirectURILink( String url )
     {
-        Element result;
+        final Element result;
         String last = null;
 
         if( url.endsWith(",") || url.endsWith(".") )
@@ -999,9 +1004,9 @@ public class JSPWikiMarkupParser extends MarkupParser {
      */
 
     // FIXME: isExternalLink() is called twice.
-    private Element handleImageLink( String reallink, String link, boolean 
hasLinkText )
+    private Element handleImageLink( final String reallink, final String link, 
final boolean hasLinkText )
     {
-        String possiblePage = MarkupParser.cleanLink( link );
+        final String possiblePage = MarkupParser.cleanLink( link );
 
         if( m_linkParsingOperations.isExternalLink( link ) && hasLinkText )
         {
@@ -1044,7 +1049,7 @@ public class JSPWikiMarkupParser extends MarkupParser {
         }
 
         try {
-            final Acl acl = m_engine.getAclManager().parseAcl( page, ruleLine 
);
+            final Acl acl = m_engine.getManager( AclManager.class ).parseAcl( 
page, ruleLine );
             page.setAcl( acl );
 
             if( log.isDebugEnabled() ) {
@@ -1080,7 +1085,7 @@ public class JSPWikiMarkupParser extends MarkupParser {
             // log.debug("SET name='"+name+"', value='"+val+"'.");
 
             if( name.length() > 0 && val.length() > 0 ) {
-                val = m_engine.getVariableManager().expandVariables( 
m_context, val );
+                val = m_engine.getManager( VariableManager.class 
).expandVariables( m_context, val );
                 m_context.getPage().setAttribute( name, val );
             }
         } catch( final Exception e ) {
@@ -1104,19 +1109,15 @@ public class JSPWikiMarkupParser extends MarkupParser {
     /**
      *  Gobbles up all hyperlinks that are encased in square brackets.
      */
-    private Element handleHyperlinks( String linktext, int pos )
-    {
-        ResourceBundle rb = Preferences.getBundle( m_context, 
InternationalizationManager.CORE_BUNDLE );
-
-        StringBuilder sb = new StringBuilder(linktext.length()+80);
+    private Element handleHyperlinks( String linktext, final int pos ) {
+        final ResourceBundle rb = Preferences.getBundle( m_context, 
InternationalizationManager.CORE_BUNDLE );
+        final StringBuilder sb = new StringBuilder(linktext.length()+80);
 
-        if( m_linkParsingOperations.isAccessRule( linktext ) )
-        {
+        if( m_linkParsingOperations.isAccessRule( linktext ) ) {
             return handleAccessRule( linktext );
         }
 
-        if( m_linkParsingOperations.isMetadata( linktext ) )
-        {
+        if( m_linkParsingOperations.isMetadata( linktext ) ) {
             return handleMetadata( linktext );
         }
 
@@ -1124,7 +1125,7 @@ public class JSPWikiMarkupParser extends MarkupParser {
         {
             try
             {
-                PluginContent pluginContent = PluginContent.parsePluginLine( 
m_context, linktext, pos );
+                final PluginContent pluginContent = 
PluginContent.parsePluginLine( m_context, linktext, pos );
                 //
                 //  This might sometimes fail, especially if there is 
something which looks
                 //  like a plugin invocation but is really not.
@@ -1136,13 +1137,13 @@ public class JSPWikiMarkupParser extends MarkupParser {
                     pluginContent.executeParse( m_context );
                 }
             }
-            catch( PluginException e )
+            catch( final PluginException e )
             {
                 log.info( m_context.getRealPage().getWiki() + " : " + 
m_context.getRealPage().getName() + " - Failed to insert plugin: " + 
e.getMessage() );
                 //log.info( "Root cause:",e.getRootThrowable() );
                 if( !m_wysiwygEditorMode )
                 {
-                    ResourceBundle rbPlugin = Preferences.getBundle( 
m_context, WikiPlugin.CORE_PLUGINS_RESOURCEBUNDLE );
+                    final ResourceBundle rbPlugin = Preferences.getBundle( 
m_context, WikiPlugin.CORE_PLUGINS_RESOURCEBUNDLE );
                     return addElement( makeError( MessageFormat.format( 
rbPlugin.getString( "plugin.error.insertionfailed" ),
                                                                            
m_context.getRealPage().getWiki(),
                                                                            
m_context.getRealPage().getName(),
@@ -1155,7 +1156,7 @@ public class JSPWikiMarkupParser extends MarkupParser {
 
         try
         {
-            LinkParser.Link link = m_linkParser.parse(linktext);
+            final LinkParser.Link link = m_linkParser.parse(linktext);
             linktext       = link.getText();
             String linkref = link.getReference();
 
@@ -1168,7 +1169,7 @@ public class JSPWikiMarkupParser extends MarkupParser {
             //
             if( m_linkParsingOperations.isVariableLink( linktext ) )
             {
-                Content el = new VariableContent(linktext);
+                final Content el = new VariableContent(linktext);
 
                 addElement( el );
             }
@@ -1201,8 +1202,8 @@ public class JSPWikiMarkupParser extends MarkupParser {
                 //        is using, so you'll have to write the entire name as 
it appears
                 //        in the URL.  Bugger.
 
-                String extWiki  = link.getExternalWiki();
-                String wikiPage = link.getExternalWikiPage();
+                final String extWiki  = link.getExternalWiki();
+                final String wikiPage = link.getExternalWikiPage();
 
                 if( m_wysiwygEditorMode )
                 {
@@ -1233,7 +1234,7 @@ public class JSPWikiMarkupParser extends MarkupParser {
                     }
                     else
                     {
-                        Object[] args = { escapeHTMLEntities(extWiki) };
+                        final Object[] args = { escapeHTMLEntities(extWiki) };
 
                         addElement( makeError( MessageFormat.format( 
rb.getString( "markupparser.error.nointerwikiref" ), args ) ) );
                     }
@@ -1256,7 +1257,7 @@ public class JSPWikiMarkupParser extends MarkupParser {
                 //
                 //  Internal wiki link, but is it an attachment link?
                 //
-                String attachment = 
m_engine.getAttachmentManager().getAttachmentInfoName( m_context, linkref );
+                String attachment = m_engine.getManager( 
AttachmentManager.class ).getAttachmentInfoName( m_context, linkref );
                 if( attachment != null )
                 {
                     callMutatorChain( m_attachmentLinkMutatorChain, attachment 
);
@@ -1275,14 +1276,14 @@ public class JSPWikiMarkupParser extends MarkupParser {
                 {
                     // It's an internal Wiki link, but to a named section
 
-                    String namedSection = linkref.substring( hashMark+1 );
+                    final String namedSection = linkref.substring( hashMark+1 
);
                     linkref = linkref.substring( 0, hashMark );
 
                     linkref = MarkupParser.cleanLink( linkref );
 
                     callMutatorChain( m_localLinkMutatorChain, linkref );
 
-                    String matchedLink = m_linkParsingOperations.linkIfExists( 
linkref );
+                    final String matchedLink = 
m_linkParsingOperations.linkIfExists( linkref );
                     if( matchedLink != null ) {
                         String sectref = 
"section-"+m_engine.encodeName(matchedLink+"-"+wikifyLink(namedSection));
                         sectref = sectref.replace('%', '_');
@@ -1298,7 +1299,7 @@ public class JSPWikiMarkupParser extends MarkupParser {
 
                     callMutatorChain( m_localLinkMutatorChain, linkref );
 
-                    String matchedLink = m_linkParsingOperations.linkIfExists( 
linkref );
+                    final String matchedLink = 
m_linkParsingOperations.linkIfExists( linkref );
                     if( matchedLink != null ) {
                         makeLink( READ, matchedLink, linktext, null, 
link.getAttributes() );
                     } else {
@@ -1307,10 +1308,10 @@ public class JSPWikiMarkupParser extends MarkupParser {
                 }
             }
         }
-        catch( ParseException e )
+        catch( final ParseException e )
         {
             log.info("Parser failure: ",e);
-            Object[] args = { e.getMessage() };
+            final Object[] args = { e.getMessage() };
             addElement( makeError( MessageFormat.format( rb.getString( 
"markupparser.error.parserfailure" ), args ) ) );
         }
 
@@ -1323,7 +1324,7 @@ public class JSPWikiMarkupParser extends MarkupParser {
      *
      *  @since 2.1.77
      */
-    private void pushBack( String s )
+    private void pushBack( final String s )
         throws IOException
     {
         for( int i = s.length()-1; i >= 0; i-- )
@@ -1335,11 +1336,11 @@ public class JSPWikiMarkupParser extends MarkupParser {
     private Element handleBackslash()
         throws IOException
     {
-        int ch = nextToken();
+        final int ch = nextToken();
 
         if( ch == '\\' )
         {
-            int ch2 = nextToken();
+            final int ch2 = nextToken();
 
             if( ch2 == '\\' )
             {
@@ -1361,7 +1362,7 @@ public class JSPWikiMarkupParser extends MarkupParser {
     private Element handleUnderscore()
         throws IOException
     {
-        int ch = nextToken();
+        final int ch = nextToken();
         Element el = null;
 
         if( ch == '_' )
@@ -1391,7 +1392,7 @@ public class JSPWikiMarkupParser extends MarkupParser {
     private Element handleApostrophe()
         throws IOException
     {
-        int ch = nextToken();
+        final int ch = nextToken();
         Element el = null;
 
         if( ch == '\'' )
@@ -1414,14 +1415,14 @@ public class JSPWikiMarkupParser extends MarkupParser {
         return el;
     }
 
-    private Element handleOpenbrace( boolean isBlock )
+    private Element handleOpenbrace( final boolean isBlock )
         throws IOException
     {
-        int ch = nextToken();
+        final int ch = nextToken();
 
         if( ch == '{' )
         {
-            int ch2 = nextToken();
+            final int ch2 = nextToken();
 
             if( ch2 == '{' )
             {
@@ -1454,11 +1455,11 @@ public class JSPWikiMarkupParser extends MarkupParser {
     private Element handleClosebrace()
         throws IOException
     {
-        int ch2 = nextToken();
+        final int ch2 = nextToken();
 
         if( ch2 == '}' )
         {
-            int ch3 = nextToken();
+            final int ch3 = nextToken();
 
             if( ch3 == '}' )
             {
@@ -1502,11 +1503,11 @@ public class JSPWikiMarkupParser extends MarkupParser {
 
         if( ch == '-' )
         {
-            int ch2 = nextToken();
+            final int ch2 = nextToken();
 
             if( ch2 == '-' )
             {
-                int ch3 = nextToken();
+                final int ch3 = nextToken();
 
                 if( ch3 == '-' )
                 {
@@ -1539,31 +1540,31 @@ public class JSPWikiMarkupParser extends MarkupParser {
     {
         Element el = null;
 
-        int ch  = nextToken();
+        final int ch  = nextToken();
 
-        Heading hd = new Heading();
+        final Heading hd = new Heading();
 
         if( ch == '!' )
         {
-            int ch2 = nextToken();
+            final int ch2 = nextToken();
 
             if( ch2 == '!' )
             {
-                String title = peekAheadLine();
+                final String title = peekAheadLine();
 
                 el = makeHeading( Heading.HEADING_LARGE, title, hd);
             }
             else
             {
                 pushBack( ch2 );
-                String title = peekAheadLine();
+                final String title = peekAheadLine();
                 el = makeHeading( Heading.HEADING_MEDIUM, title, hd );
             }
         }
         else
         {
             pushBack( ch );
-            String title = peekAheadLine();
+            final String title = peekAheadLine();
             el = makeHeading( Heading.HEADING_SMALL, title, hd );
         }
 
@@ -1584,7 +1585,7 @@ public class JSPWikiMarkupParser extends MarkupParser {
         throws IOException
     {
         int ch;
-        StringBuilder buf = new StringBuilder( 256 );
+        final StringBuilder buf = new StringBuilder( 256 );
 
         while( true )
         {
@@ -1634,7 +1635,7 @@ public class JSPWikiMarkupParser extends MarkupParser {
         m_isbold   = false;
     }
 
-    private static String getListType( char c )
+    private static String getListType( final char c )
     {
         if( c == '*' )
         {
@@ -1660,7 +1661,7 @@ public class JSPWikiMarkupParser extends MarkupParser {
 
          String strBullets = readWhile( "*#" );
          // String strBulletsRaw = strBullets;      // to know what was 
original before phpwiki style substitution
-         int numBullets = strBullets.length();
+         final int numBullets = strBullets.length();
 
          // override the beginning portion of bullet pattern to be like the 
previous
          // to simulate PHPWiki style lists
@@ -1733,7 +1734,7 @@ public class JSPWikiMarkupParser extends MarkupParser {
              //  The pattern has changed, unwind and restart
              //
              int  numEqualBullets;
-             int  numCheckBullets;
+             final int  numCheckBullets;
 
              // find out how much is the same
              numEqualBullets = 0;
@@ -1817,8 +1818,8 @@ public class JSPWikiMarkupParser extends MarkupParser {
     private Element handleOpenbracket()
         throws IOException
     {
-        StringBuilder sb = new StringBuilder(40);
-        int pos = getPosition();
+        final StringBuilder sb = new StringBuilder(40);
+        final int pos = getPosition();
         int ch = nextToken();
         boolean isPlugin = false;
 
@@ -1860,7 +1861,7 @@ public class JSPWikiMarkupParser extends MarkupParser {
 
         while( ch != -1 )
         {
-            int ch2 = nextToken(); pushBack(ch2);
+            final int ch2 = nextToken(); pushBack(ch2);
 
             if( isPlugin )
             {
@@ -1911,10 +1912,10 @@ public class JSPWikiMarkupParser extends MarkupParser {
     /**
      *  Reads the stream until the current brace is closed or stream end.
      */
-    private String readBraceContent( char opening, char closing )
+    private String readBraceContent( final char opening, final char closing )
         throws IOException
     {
-        StringBuilder sb = new StringBuilder(40);
+        final StringBuilder sb = new StringBuilder(40);
         int braceLevel = 1;
         int ch;
         while(( ch = nextToken() ) != -1 )
@@ -1947,7 +1948,7 @@ public class JSPWikiMarkupParser extends MarkupParser {
      * @return An Element containing the div or span, depending on the 
situation.
      * @throws IOException
      */
-    private Element handleDiv( boolean newLine )
+    private Element handleDiv( final boolean newLine )
         throws IOException
     {
         int ch = nextToken();
@@ -2010,7 +2011,7 @@ public class JSPWikiMarkupParser extends MarkupParser {
 
                 try
                 {
-                    Boolean isSpan = m_styleStack.pop();
+                    final Boolean isSpan = m_styleStack.pop();
 
                     if( isSpan == null )
                     {
@@ -2025,7 +2026,7 @@ public class JSPWikiMarkupParser extends MarkupParser {
                         el = popElement( "div" );
                     }
                 }
-                catch( EmptyStackException e )
+                catch( final EmptyStackException e )
                 {
                     log.debug("Page '"+m_context.getName()+"' closes a 
%%-block that has not been opened.");
                     return m_currentElement;
@@ -2044,24 +2045,24 @@ public class JSPWikiMarkupParser extends MarkupParser {
                 if( style != null && style.indexOf("javascript:") != -1 )
                 {
                     log.debug("Attempt to output javascript within 
CSS:"+style);
-                    ResourceBundle rb = Preferences.getBundle( m_context, 
InternationalizationManager.CORE_BUNDLE );
+                    final ResourceBundle rb = Preferences.getBundle( 
m_context, InternationalizationManager.CORE_BUNDLE );
                     return addElement( makeError( rb.getString( 
"markupparser.error.javascriptattempt" ) ) );
                 }
             }
-            catch( NumberFormatException e )
+            catch( final NumberFormatException e )
             {
                 //
                 //  If there are unknown entities, we don't want the parser to 
stop.
                 //
-                ResourceBundle rb = Preferences.getBundle( m_context, 
InternationalizationManager.CORE_BUNDLE );
-                String msg = MessageFormat.format( rb.getString( 
"markupparser.error.parserfailure"), e.getMessage() );
+                final ResourceBundle rb = Preferences.getBundle( m_context, 
InternationalizationManager.CORE_BUNDLE );
+                final String msg = MessageFormat.format( rb.getString( 
"markupparser.error.parserfailure"), e.getMessage() );
                 return addElement( makeError( msg ) );
             }
 
             //
             //  Decide if we should open a div or a span?
             //
-            String eol = peekAheadLine();
+            final String eol = peekAheadLine();
 
             if( eol.trim().length() > 0 )
             {
@@ -2090,10 +2091,10 @@ public class JSPWikiMarkupParser extends MarkupParser {
         return el;
     }
 
-    private Element handleSlash( boolean newLine )
+    private Element handleSlash( final boolean newLine )
         throws IOException
     {
-        int ch = nextToken();
+        final int ch = nextToken();
 
         pushBack(ch);
         if( ch == '%' && !m_styleStack.isEmpty() )
@@ -2104,7 +2105,7 @@ public class JSPWikiMarkupParser extends MarkupParser {
         return null;
     }
 
-    private Element handleBar( boolean newLine )
+    private Element handleBar( final boolean newLine )
         throws IOException
     {
         Element el = null;
@@ -2130,7 +2131,7 @@ public class JSPWikiMarkupParser extends MarkupParser {
             }
 
             m_rowNum++;
-            Element tr = ( m_rowNum % 2 != 0 )
+            final Element tr = ( m_rowNum % 2 != 0 )
                        ? new Element("tr").setAttribute("class", "odd")
                        : new Element("tr");
             el = pushElement( tr );
@@ -2140,7 +2141,7 @@ public class JSPWikiMarkupParser extends MarkupParser {
         //  Check out which table cell element to start;
         //  a header element (th) or a regular element (td).
         //
-        int ch = nextToken();
+        final int ch = nextToken();
 
         if( ch == '|' )
         {
@@ -2173,7 +2174,7 @@ public class JSPWikiMarkupParser extends MarkupParser {
     private Element handleTilde()
         throws IOException
     {
-        int ch = nextToken();
+        final int ch = nextToken();
 
         if( ch == ' ' )
         {
@@ -2204,7 +2205,7 @@ public class JSPWikiMarkupParser extends MarkupParser {
         return null;
     }
 
-    private void fillBuffer( Element startElement )
+    private void fillBuffer( final Element startElement )
         throws IOException
     {
         m_currentElement = startElement;
@@ -2215,7 +2216,7 @@ public class JSPWikiMarkupParser extends MarkupParser {
 
         while(!quitReading)
         {
-            int ch = nextToken();
+            final int ch = nextToken();
 
             if( ch == -1 ) break;
 
@@ -2299,7 +2300,7 @@ public class JSPWikiMarkupParser extends MarkupParser {
             {
                 skip = parseToken( ch );
             }
-            catch( IllegalDataException e )
+            catch( final IllegalDataException e )
             {
                 log.info("Page "+m_context.getPage().getName()+" contains data 
which cannot be added to DOM tree: "+e.getMessage());
 
@@ -2337,13 +2338,13 @@ public class JSPWikiMarkupParser extends MarkupParser {
         popElement("domroot");
     }
 
-    private String cleanupSuspectData( String s )
+    private String cleanupSuspectData( final String s )
     {
-        StringBuilder sb = new StringBuilder( s.length() );
+        final StringBuilder sb = new StringBuilder( s.length() );
 
         for( int i = 0; i < s.length(); i++ )
         {
-            char c = s.charAt(i);
+            final char c = s.charAt(i);
 
             if( Verifier.isXMLCharacter( c ) ) sb.append( c );
             else sb.append( "0x"+Integer.toString(c,16).toUpperCase() );
@@ -2375,7 +2376,7 @@ public class JSPWikiMarkupParser extends MarkupParser {
      * @return {@link #ELEMENT}, {@link #CHARACTER} or {@link #IGNORE}.
      * @throws IOException If parsing fails.
      */
-    protected int parseToken( int ch )
+    protected int parseToken( final int ch )
         throws IOException
     {
         Element el = null;
@@ -2415,7 +2416,7 @@ public class JSPWikiMarkupParser extends MarkupParser {
                 //  Figure out which elements cannot be enclosed inside
                 //  a <p></p> pair according to XHTML rules.
                 //
-                String nextLine = peekAheadLine();
+                final String nextLine = peekAheadLine();
                 if( nextLine.length() == 0 ||
                     (nextLine.length() > 0 &&
                      !nextLine.startsWith("{{{") &&
@@ -2564,10 +2565,10 @@ public class JSPWikiMarkupParser extends MarkupParser {
     public WikiDocument parse()
         throws IOException
     {
-        WikiDocument d = new WikiDocument( m_context.getPage() );
+        final WikiDocument d = new WikiDocument( m_context.getPage() );
         d.setContext( m_context );
 
-        Element rootElement = new Element("domroot");
+        final Element rootElement = new Element("domroot");
 
         d.setRootElement( rootElement );
 
@@ -2583,25 +2584,25 @@ public class JSPWikiMarkupParser extends MarkupParser {
      *
      *  @param rootElement
      */
-    private void paragraphify(Element rootElement)
+    private void paragraphify( final Element rootElement)
     {
         //
         //  Add the paragraph tag to the first paragraph
         //
-        List< Content > kids = rootElement.getContent();
+        final List< Content > kids = rootElement.getContent();
 
         if( rootElement.getChild("p") != null )
         {
-            ArrayList<Content> ls = new ArrayList<>();
+            final ArrayList<Content> ls = new ArrayList<>();
             int idxOfFirstContent = 0;
             int count = 0;
 
-            for( Iterator< Content > i = kids.iterator(); i.hasNext(); count++ 
)
+            for( final Iterator< Content > i = kids.iterator(); i.hasNext(); 
count++ )
             {
-                Content c = i.next();
+                final Content c = i.next();
                 if( c instanceof Element )
                 {
-                    String name = ( ( Element )c ).getName();
+                    final String name = ( ( Element )c ).getName();
                     if( isBlockLevel( name ) ) break;
                 }
 
@@ -2618,11 +2619,11 @@ public class JSPWikiMarkupParser extends MarkupParser {
             //
             if( ls.size() > 0 )
             {
-                Element newel = new Element("p");
+                final Element newel = new Element("p");
 
-                for( Iterator< Content > i = ls.iterator(); i.hasNext(); )
+                for( final Iterator< Content > i = ls.iterator(); i.hasNext(); 
)
                 {
-                    Content c = i.next();
+                    final Content c = i.next();
 
                     c.detach();
                     newel.addContent(c);
diff --git 
a/jspwiki-main/src/main/java/org/apache/wiki/parser/LinkParsingOperations.java 
b/jspwiki-main/src/main/java/org/apache/wiki/parser/LinkParsingOperations.java
index 58fd889..63cb21c 100644
--- 
a/jspwiki-main/src/main/java/org/apache/wiki/parser/LinkParsingOperations.java
+++ 
b/jspwiki-main/src/main/java/org/apache/wiki/parser/LinkParsingOperations.java
@@ -23,6 +23,7 @@ import org.apache.oro.text.regex.Pattern;
 import org.apache.oro.text.regex.Perl5Matcher;
 import org.apache.wiki.WikiContext;
 import org.apache.wiki.api.exceptions.ProviderException;
+import org.apache.wiki.render.RenderingManager;
 
 import java.util.Arrays;
 import java.util.Comparator;
@@ -152,9 +153,9 @@ public class LinkParsingOperations {
      *  determine whether it should be treated as an inline image or not.
      */
     public boolean isImageLink( String link ) {
-        if( wikiContext.getEngine().getRenderingManager().getParser( 
wikiContext, link ).isImageInlining() ) {
+        if( wikiContext.getEngine().getManager( RenderingManager.class 
).getParser( wikiContext, link ).isImageInlining() ) {
             link = link.toLowerCase();
-            final List< Pattern > inlineImagePatterns = 
wikiContext.getEngine().getRenderingManager()
+            final List< Pattern > inlineImagePatterns = 
wikiContext.getEngine().getManager( RenderingManager.class )
                                                                   .getParser( 
wikiContext, link ).getInlineImagePatterns();
 
             for( final Pattern p : inlineImagePatterns ) {
diff --git 
a/jspwiki-main/src/main/java/org/apache/wiki/parser/MarkupParser.java 
b/jspwiki-main/src/main/java/org/apache/wiki/parser/MarkupParser.java
index 4acb8a7..aed6c63 100644
--- a/jspwiki-main/src/main/java/org/apache/wiki/parser/MarkupParser.java
+++ b/jspwiki-main/src/main/java/org/apache/wiki/parser/MarkupParser.java
@@ -25,7 +25,7 @@ import org.apache.oro.text.regex.Pattern;
 import org.apache.oro.text.regex.PatternCompiler;
 import org.apache.wiki.StringTransmutator;
 import org.apache.wiki.WikiContext;
-import org.apache.wiki.WikiEngine;
+import org.apache.wiki.api.core.Engine;
 import org.apache.wiki.util.TextUtil;
 import org.jdom2.Element;
 
@@ -50,7 +50,7 @@ public abstract class MarkupParser {
     protected PushbackReader m_in;
     private int m_pos = -1; // current position in reader stream
 
-    protected WikiEngine m_engine;
+    protected Engine m_engine;
     protected WikiContext m_context;
 
     /** Optionally stores internal wikilinks */
diff --git 
a/jspwiki-main/src/main/java/org/apache/wiki/parser/PluginContent.java 
b/jspwiki-main/src/main/java/org/apache/wiki/parser/PluginContent.java
index a7f6f1c..506da58 100644
--- a/jspwiki-main/src/main/java/org/apache/wiki/parser/PluginContent.java
+++ b/jspwiki-main/src/main/java/org/apache/wiki/parser/PluginContent.java
@@ -24,13 +24,14 @@ import org.apache.oro.text.regex.PatternMatcher;
 import org.apache.oro.text.regex.Perl5Matcher;
 import org.apache.wiki.InternalWikiException;
 import org.apache.wiki.WikiContext;
-import org.apache.wiki.WikiEngine;
+import org.apache.wiki.api.core.Engine;
 import org.apache.wiki.api.engine.PluginManager;
 import org.apache.wiki.api.exceptions.PluginException;
-import org.apache.wiki.api.plugin.PluginElement;
 import org.apache.wiki.api.plugin.ParserStagePlugin;
+import org.apache.wiki.api.plugin.PluginElement;
 import org.apache.wiki.api.plugin.WikiPlugin;
 import org.apache.wiki.preferences.Preferences;
+import org.apache.wiki.variables.VariableManager;
 import org.jdom2.Text;
 
 import java.io.IOException;
@@ -154,16 +155,16 @@ public class PluginContent extends Text implements 
PluginElement {
                     return BLANK;
                 }
 
-                final WikiEngine engine = context.getEngine();
+                final Engine engine = context.getEngine();
                 final Map< String, String > parsedParams = new HashMap<>();
 
                 //  Parse any variable instances from the string
                 for( final Map.Entry< String, String > e : m_params.entrySet() 
) {
                     String val = e.getValue();
-                    val = engine.getVariableManager().expandVariables( 
context, val );
+                    val = engine.getManager( 
VariableManager.class).expandVariables( context, val );
                     parsedParams.put( e.getKey(), val );
                 }
-                final PluginManager pm = engine.getPluginManager();
+                final PluginManager pm = engine.getManager( 
PluginManager.class );
                 result = pm.execute( context, m_pluginName, parsedParams );
             }
         } catch( final Exception e ) {
@@ -185,7 +186,7 @@ public class PluginContent extends Text implements 
PluginElement {
     /**{@inheritDoc}*/
     @Override
     public void executeParse( final WikiContext context ) throws 
PluginException {
-        final PluginManager pm = context.getEngine().getPluginManager();
+        final PluginManager pm = context.getEngine().getManager( 
PluginManager.class );
         if( pm.pluginsEnabled() ) {
             final ResourceBundle rb = Preferences.getBundle(context, 
WikiPlugin.CORE_PLUGINS_RESOURCEBUNDLE);
             final Map< String, String > params = getParameters();
@@ -214,7 +215,7 @@ public class PluginContent extends Text implements 
PluginElement {
         final PatternMatcher matcher = new Perl5Matcher();
 
         try {
-            final PluginManager pm = context.getEngine().getPluginManager();
+            final PluginManager pm = context.getEngine().getManager( 
PluginManager.class );
             if( matcher.contains( commandline, pm.getPluginPattern() ) ) {
                 final MatchResult res = matcher.getMatch();
                 final String plugin = res.group( 2 );
diff --git 
a/jspwiki-main/src/main/java/org/apache/wiki/parser/VariableContent.java 
b/jspwiki-main/src/main/java/org/apache/wiki/parser/VariableContent.java
index 2d7ba47..6c9d397 100644
--- a/jspwiki-main/src/main/java/org/apache/wiki/parser/VariableContent.java
+++ b/jspwiki-main/src/main/java/org/apache/wiki/parser/VariableContent.java
@@ -21,6 +21,7 @@ package org.apache.wiki.parser;
 import org.apache.commons.text.StringEscapeUtils;
 import org.apache.wiki.WikiContext;
 import org.apache.wiki.api.exceptions.NoSuchVariableException;
+import org.apache.wiki.variables.VariableManager;
 import org.jdom2.Text;
 
 /**
@@ -52,7 +53,7 @@ public class VariableContent extends Text {
      *   
      *   @return The rendered value of the variable.
      */
-    public String getValue() {
+    @Override public String getValue() {
         String result;
         final WikiDocument root = (WikiDocument) getDocument();
 
@@ -71,7 +72,7 @@ public class VariableContent extends Text {
             result = "[" + m_varName + "]";
         } else {
             try {
-                result = 
context.getEngine().getVariableManager().parseAndGetValue( context, m_varName );
+                result = context.getEngine().getManager( VariableManager.class 
).parseAndGetValue( context, m_varName );
             } catch( final NoSuchVariableException e ) {
                 result = MarkupParser.makeError( "No such variable: " + 
e.getMessage() ).getText(); 
             }
@@ -84,7 +85,7 @@ public class VariableContent extends Text {
      *  Returns exactly getValue().
      *  @return Whatever getValue() returns.
      */
-    public String getText() {
+    @Override public String getText() {
         return getValue();
     }
 
@@ -92,7 +93,7 @@ public class VariableContent extends Text {
      *  Returns a debug-suitable string.
      *  @return Debug string
      */
-    public String toString() {
+    @Override public String toString() {
         return "VariableElement[\"" + m_varName + "\"]";
     }
 
diff --git 
a/jspwiki-main/src/main/java/org/apache/wiki/preferences/Preferences.java 
b/jspwiki-main/src/main/java/org/apache/wiki/preferences/Preferences.java
index 2753b2e..7299981 100644
--- a/jspwiki-main/src/main/java/org/apache/wiki/preferences/Preferences.java
+++ b/jspwiki-main/src/main/java/org/apache/wiki/preferences/Preferences.java
@@ -73,7 +73,7 @@ public class Preferences
      *
      *  @param pageContext The JSP PageContext.
      */
-    public static void setupPreferences( PageContext pageContext )
+    public static void setupPreferences( final PageContext pageContext )
     {
         //HttpSession session = pageContext.getSession();
 
@@ -93,14 +93,13 @@ public class Preferences
     //        happened to first arrive to the site with.  This, unfortunately, 
means that
     //        even if the user changes e.g. language preferences (like in a 
web cafe),
     //        the old preferences still remain in a site cookie.
-    public static void reloadPreferences( PageContext pageContext )
+    public static void reloadPreferences( final PageContext pageContext )
     {
-        Preferences prefs = new Preferences();
-        Properties props = PropertyReader.loadWebAppProps( 
pageContext.getServletContext() );
-        WikiContext ctx = WikiContext.findContext( pageContext );
-        String dateFormat = 
ctx.getEngine().getInternationalizationManager().get( 
InternationalizationManager.CORE_BUNDLE,
-                                                                               
   getLocale( ctx ),
-                                                                               
   "common.datetimeformat" );
+        final Preferences prefs = new Preferences();
+        final Properties props = PropertyReader.loadWebAppProps( 
pageContext.getServletContext() );
+        final WikiContext ctx = WikiContext.findContext( pageContext );
+        final String dateFormat = ctx.getEngine().getManager( 
InternationalizationManager.class )
+                                           .get( 
InternationalizationManager.CORE_BUNDLE, getLocale( ctx ), 
"common.datetimeformat" );
 
         prefs.put("SkinName", TextUtil.getStringProperty( props, 
"jspwiki.defaultprefs.template.skinname", "PlainVanilla" ) );
         prefs.put("DateFormat", TextUtil.getStringProperty( props, 
"jspwiki.defaultprefs.template.dateformat", dateFormat ) );
@@ -137,18 +136,17 @@ public class Preferences
      *  @param prefs The default hashmap of preferences
      *
      */
-       private static void parseJSONPreferences( HttpServletRequest request, 
Preferences prefs ) {
-        String prefVal = TextUtil.urlDecodeUTF8( HttpUtil.retrieveCookieValue( 
request, "JSPWikiUserPrefs" ) );
+       private static void parseJSONPreferences( final HttpServletRequest 
request, final Preferences prefs ) {
+        final String prefVal = TextUtil.urlDecodeUTF8( 
HttpUtil.retrieveCookieValue( request, "JSPWikiUserPrefs" ) );
 
         if( prefVal != null ) {
             // Convert prefVal JSON to a generic hashmap
-            @SuppressWarnings("unchecked")
-            Map<String,String> map = new Gson().fromJson(prefVal, Map.class );
+            @SuppressWarnings("unchecked") final Map<String,String> map = new 
Gson().fromJson(prefVal, Map.class );
 
             for (String key : map.keySet()) {
                 key = TextUtil.replaceEntities( key );
                 // Sometimes this is not a String as it comes from the Cookie 
set by Javascript
-                Object value = map.get(key);
+                final Object value = map.get(key);
                 if (value != null) {
                     prefs.put( key, value.toString() );
                 }
@@ -164,11 +162,11 @@ public class Preferences
      *  @param name
      *  @return the preference value
      */
-    public static String getPreference( WikiContext wikiContext, String name ) 
{
-        HttpServletRequest request = wikiContext.getHttpRequest();
+    public static String getPreference( final WikiContext wikiContext, final 
String name ) {
+        final HttpServletRequest request = wikiContext.getHttpRequest();
         if ( request == null ) return null;
 
-        Preferences prefs = (Preferences)request.getSession().getAttribute( 
SESSIONPREFS );
+        final Preferences prefs = 
(Preferences)request.getSession().getAttribute( SESSIONPREFS );
 
         if( prefs != null ) {
             return prefs.get( name );
@@ -185,9 +183,9 @@ public class Preferences
      *  @param name
      *  @return the preference value
      */
-    public static String getPreference( PageContext pageContext, String name )
+    public static String getPreference( final PageContext pageContext, final 
String name )
     {
-        Preferences prefs = 
(Preferences)pageContext.getSession().getAttribute( SESSIONPREFS );
+        final Preferences prefs = 
(Preferences)pageContext.getSession().getAttribute( SESSIONPREFS );
 
         if( prefs != null )
             return prefs.get( name );
@@ -203,10 +201,10 @@ public class Preferences
      * @return a Locale object.
      * @since 2.8
      */
-    public static Locale getLocale( WikiContext context ) {
+    public static Locale getLocale( final WikiContext context ) {
         Locale loc = null;
 
-        String langSetting = getPreference( context, "Language" );
+        final String langSetting = getPreference( context, "Language" );
 
         // parse language and construct valid Locale object
         if( langSetting != null ) {
@@ -214,7 +212,7 @@ public class Preferences
             String country  = "";
             String variant  = "";
 
-            String[] res = StringUtils.split( langSetting, "-_" );
+            final String[] res = StringUtils.split( langSetting, "-_" );
 
             if( res.length > 2 ) variant = res[2];
             if( res.length > 1 ) country = res[1];
@@ -228,17 +226,17 @@ public class Preferences
 
         // see if default locale is set server side
         if( loc == null ) {
-            String locale = 
context.getEngine().getWikiProperties().getProperty( 
"jspwiki.preferences.default-locale" );
+            final String locale = 
context.getEngine().getWikiProperties().getProperty( 
"jspwiki.preferences.default-locale" );
             try {
                 loc = LocaleUtils.toLocale( locale );
-            } catch( IllegalArgumentException iae ) {
+            } catch( final IllegalArgumentException iae ) {
                 log.error( iae.getMessage() );
             }
         }
 
         // otherwise try to find out the browser's preferred language setting, 
or use the JVM's default
         if( loc == null ) {
-            HttpServletRequest request = context.getHttpRequest();
+            final HttpServletRequest request = context.getHttpRequest();
             loc = ( request != null ) ? request.getLocale() : 
Locale.getDefault();
         }
 
@@ -256,11 +254,11 @@ public class Preferences
      *  @return A localized string (or from the default language, if not found)
      *  @throws MissingResourceException If the bundle cannot be found
      */
-    public static ResourceBundle getBundle( WikiContext context, String bundle 
)
+    public static ResourceBundle getBundle( final WikiContext context, final 
String bundle )
         throws MissingResourceException
     {
-        Locale loc = getLocale( context );
-        InternationalizationManager i18n = 
context.getEngine().getInternationalizationManager();
+        final Locale loc = getLocale( context );
+        final InternationalizationManager i18n = 
context.getEngine().getManager( InternationalizationManager.class );
         return i18n.getBundle( bundle, loc );
     }
 
@@ -274,11 +272,11 @@ public class Preferences
      *  @return A SimpleTimeFormat object which you can use to render
      *  @since 2.8
      */
-    public static SimpleDateFormat getDateFormat( WikiContext context, 
TimeFormat tf )
+    public static SimpleDateFormat getDateFormat( final WikiContext context, 
final TimeFormat tf )
     {
-        InternationalizationManager imgr = 
context.getEngine().getInternationalizationManager();
-        Locale clientLocale = getLocale( context );
-        String prefTimeZone = getPreference( context, "TimeZone" );
+        final InternationalizationManager imgr = 
context.getEngine().getManager( InternationalizationManager.class );
+        final Locale clientLocale = getLocale( context );
+        final String prefTimeZone = getPreference( context, "TimeZone" );
         String prefDateFormat;
 
         log.debug("Checking for preferences...");
@@ -311,11 +309,11 @@ public class Preferences
 
         try
         {
-            SimpleDateFormat fmt = new SimpleDateFormat( prefDateFormat, 
clientLocale );
+            final SimpleDateFormat fmt = new SimpleDateFormat( prefDateFormat, 
clientLocale );
 
             if( prefTimeZone != null )
             {
-                TimeZone tz = TimeZone.getTimeZone( prefTimeZone );
+                final TimeZone tz = TimeZone.getTimeZone( prefTimeZone );
                 // TimeZone tz = TimeZone.getDefault();
                 // tz.setRawOffset(Integer.parseInt(prefTimeZone));
 
@@ -324,7 +322,7 @@ public class Preferences
 
             return fmt;
         }
-        catch( Exception e )
+        catch( final Exception e )
         {
             return null;
         }
@@ -340,9 +338,9 @@ public class Preferences
      *  @return A ready-rendered date.
      *  @since 2.8
      */
-    public static String renderDate( WikiContext context, Date date, 
TimeFormat tf )
+    public static String renderDate( final WikiContext context, final Date 
date, final TimeFormat tf )
     {
-        DateFormat df = getDateFormat( context, tf );
+        final DateFormat df = getDateFormat( context, tf );
 
         return df.format( date );
     }
diff --git 
a/jspwiki-main/src/main/java/org/apache/wiki/references/DefaultReferenceManager.java
 
b/jspwiki-main/src/main/java/org/apache/wiki/references/DefaultReferenceManager.java
index 5ebe5cc..e01de27 100644
--- 
a/jspwiki-main/src/main/java/org/apache/wiki/references/DefaultReferenceManager.java
+++ 
b/jspwiki-main/src/main/java/org/apache/wiki/references/DefaultReferenceManager.java
@@ -32,6 +32,7 @@ import org.apache.wiki.attachment.Attachment;
 import org.apache.wiki.event.WikiEvent;
 import org.apache.wiki.event.WikiEventManager;
 import org.apache.wiki.event.WikiPageEvent;
+import org.apache.wiki.pages.PageManager;
 import org.apache.wiki.providers.WikiPageProvider;
 import org.apache.wiki.util.TextUtil;
 
@@ -163,7 +164,7 @@ public class DefaultReferenceManager extends 
BasicPageFilter implements Referenc
      *  Does a full reference update.  Does not sync; assumes that you do it 
afterwards.
      */
     private void updatePageReferences( final WikiPage page ) throws 
ProviderException {
-        final String content = m_engine.getPageManager().getPageText( 
page.getName(), WikiPageProvider.LATEST_VERSION );
+        final String content = m_engine.getManager( PageManager.class 
).getPageText( page.getName(), WikiPageProvider.LATEST_VERSION );
         final Collection< String > links = scanWikiLinks( page, content );
         final TreeSet< String > res = new TreeSet<>( links );
         final List< Attachment > attachments = 
m_engine.getAttachmentManager().listAttachments( page );
@@ -181,7 +182,7 @@ public class DefaultReferenceManager extends 
BasicPageFilter implements Referenc
      *  @since 2.2
      *  @throws ProviderException If reading of pages fails.
      */
-    public void initialize( final Collection< WikiPage > pages ) throws 
ProviderException {
+    @Override public void initialize( final Collection< WikiPage > pages ) 
throws ProviderException {
         log.debug( "Initializing new ReferenceManager with " + pages.size() + 
" initial pages." );
         final StopWatch sw = new StopWatch();
         sw.start();
@@ -205,7 +206,7 @@ public class DefaultReferenceManager extends 
BasicPageFilter implements Referenc
             for( final WikiPage page : pages ) {
                 if( !( page instanceof Attachment ) ) {
                     // Refresh with the latest copy
-                    final WikiPage wp = m_engine.getPageManager().getPage( 
page.getName() );
+                    final WikiPage wp = m_engine.getManager( PageManager.class 
).getPage( page.getName() );
 
                     if( wp.getLastModified() == null ) {
                         log.fatal( "Provider returns null lastModified.  
Please submit a bug report." );
@@ -234,7 +235,7 @@ public class DefaultReferenceManager extends 
BasicPageFilter implements Referenc
         sw.stop();
         log.info( "Cross reference scan done in "+sw );
 
-        WikiEventManager.getInstance().addWikiEventListener( 
m_engine.getPageManager(), this );
+        WikiEventManager.getInstance().addWikiEventListener( 
m_engine.getManager( PageManager.class ), this );
     }
 
     /**
@@ -426,7 +427,7 @@ public class DefaultReferenceManager extends 
BasicPageFilter implements Referenc
      *  @param pagedata The page contents
      *  @return a Collection of Strings
      */
-    public Collection< String > scanWikiLinks( final WikiPage page, final 
String pagedata ) {
+    @Override public Collection< String > scanWikiLinks( final WikiPage page, 
final String pagedata ) {
         final LinkCollector localCollector = new LinkCollector();
         m_engine.getRenderingManager().textToHTML( new WikiContext( m_engine, 
page ),
                                                    pagedata,
@@ -448,7 +449,7 @@ public class DefaultReferenceManager extends 
BasicPageFilter implements Referenc
      *
      *  @param page Name of the page to remove from the maps.
      */
-    public synchronized void pageRemoved( final WikiPage page ) {
+    @Override public synchronized void pageRemoved( final WikiPage page ) {
         pageRemoved( page.getName() );
     }
 
@@ -467,7 +468,7 @@ public class DefaultReferenceManager extends 
BasicPageFilter implements Referenc
 
                 // We won't put it back again if it becomes empty and does not 
exist.  It will be added
                 // later on anyway, if it becomes referenced again.
-                if( !( refBy.isEmpty() && 
!m_engine.getPageManager().wikiPageExists( referredPageName ) ) ) {
+                if( !( refBy.isEmpty() && !m_engine.getManager( 
PageManager.class ).wikiPageExists( referredPageName ) ) ) {
                     m_referredBy.put( referredPageName, refBy );
                 }
             }
@@ -499,8 +500,8 @@ public class DefaultReferenceManager extends 
BasicPageFilter implements Referenc
      *
      *  @param page wiki page for which references should be updated
      */
-    public void updateReferences( final WikiPage page ) {
-        final String pageData = m_engine.getPageManager().getPureText( 
page.getName(), WikiProvider.LATEST_VERSION );
+    @Override public void updateReferences( final WikiPage page ) {
+        final String pageData = m_engine.getManager( PageManager.class 
).getPureText( page.getName(), WikiProvider.LATEST_VERSION );
         updateReferences( page.getName(), scanWikiLinks( page, pageData ) );
     }
 
@@ -514,7 +515,7 @@ public class DefaultReferenceManager extends 
BasicPageFilter implements Referenc
      *  @param page Name of the page to update.
      *  @param references A Collection of Strings, each one pointing to a page 
this page references.
      */
-    public synchronized void updateReferences( final String page, final 
Collection< String > references ) {
+    @Override public synchronized void updateReferences( final String page, 
final Collection< String > references ) {
         internalUpdateReferences( page, references );
         serializeToDisk();
     }
@@ -603,7 +604,7 @@ public class DefaultReferenceManager extends 
BasicPageFilter implements Referenc
 
             // If the page is referred to by no one AND it doesn't even exist, 
we might just as well forget about this
             // entry. It will be added again elsewhere if new references 
appear.
-            if( ( oldRefBy == null || oldRefBy.isEmpty() ) && 
!m_engine.getPageManager().wikiPageExists( referredPage ) ) {
+            if( ( oldRefBy == null || oldRefBy.isEmpty() ) && 
!m_engine.getManager( PageManager.class ).wikiPageExists( referredPage ) ) {
                 m_referredBy.remove( referredPage );
             }
         }
@@ -673,7 +674,7 @@ public class DefaultReferenceManager extends 
BasicPageFilter implements Referenc
      *
      * @param pagename  Name of the page to clear references for.
      */
-    public synchronized void clearPageEntries( String pagename ) {
+    @Override public synchronized void clearPageEntries( String pagename ) {
         pagename = getFinalPageName( pagename );
 
         //  Remove this item from the referredBy list of any page which this 
item refers to.
@@ -696,7 +697,7 @@ public class DefaultReferenceManager extends 
BasicPageFilter implements Referenc
      *
      *  @return The Collection of Strings
      */
-    public synchronized Collection< String > findUnreferenced() {
+    @Override public synchronized Collection< String > findUnreferenced() {
         final ArrayList< String > unref = new ArrayList<>();
         for( final String key : m_referredBy.keySet() ) {
             final Set< ? > refs = getReferenceList( m_referredBy, key );
@@ -718,7 +719,7 @@ public class DefaultReferenceManager extends 
BasicPageFilter implements Referenc
      *
      * @return A Collection of Strings
      */
-    public synchronized Collection< String > findUncreated() {
+    @Override public synchronized Collection< String > findUncreated() {
         final TreeSet< String > uncreated = new TreeSet<>();
 
         // Go through m_refersTo values and check that m_refersTo has the 
corresponding keys.
@@ -727,7 +728,7 @@ public class DefaultReferenceManager extends 
BasicPageFilter implements Referenc
         for( final Collection<String> refs : allReferences ) {
             if( refs != null ) {
                 for( final String aReference : refs ) {
-                    if( !m_engine.getPageManager().wikiPageExists( aReference 
) ) {
+                    if( !m_engine.getManager( PageManager.class 
).wikiPageExists( aReference ) ) {
                         uncreated.add( aReference );
                     }
                 }
@@ -776,7 +777,7 @@ public class DefaultReferenceManager extends 
BasicPageFilter implements Referenc
      * @param pagename The page to find referrers for.
      * @return A Set of Strings.  May return null, if the page does not exist, 
or if it has no references.
      */
-    public synchronized Set< String > findReferrers( final String pagename ) {
+    @Override public synchronized Set< String > findReferrers( final String 
pagename ) {
         final Set< String > refs = getReferenceList( m_referredBy, pagename );
         if( refs == null || refs.isEmpty() ) {
             return null;
@@ -798,7 +799,7 @@ public class DefaultReferenceManager extends 
BasicPageFilter implements Referenc
      *         not exist or has not been indexed yet.
      * @since 2.2.33
      */
-    public Set< String > findReferredBy( final String pageName ) {
+    @Override public Set< String > findReferredBy( final String pageName ) {
         return m_unmutableReferredBy.get( getFinalPageName(pageName) );
     }
 
@@ -816,7 +817,7 @@ public class DefaultReferenceManager extends 
BasicPageFilter implements Referenc
      *         does not exist or has not been indexed yet.
      * @since 2.2.33
      */
-    public Collection< String > findRefersTo( final String pageName ) {
+    @Override public Collection< String > findRefersTo( final String pageName 
) {
         return m_unmutableRefersTo.get( getFinalPageName( pageName ) );
     }
 
@@ -859,7 +860,7 @@ public class DefaultReferenceManager extends 
BasicPageFilter implements Referenc
      *  @return A Set of all defined page names that ReferenceManager knows 
about.
      *  @since 2.3.24
      */
-    public Set< String > findCreated() {
+    @Override public Set< String > findCreated() {
         return new HashSet<>( m_refersTo.keySet() );
     }
 
diff --git 
a/jspwiki-main/src/main/java/org/apache/wiki/render/DefaultRenderingManager.java
 
b/jspwiki-main/src/main/java/org/apache/wiki/render/DefaultRenderingManager.java
index c260455..bf7d9d3 100644
--- 
a/jspwiki-main/src/main/java/org/apache/wiki/render/DefaultRenderingManager.java
+++ 
b/jspwiki-main/src/main/java/org/apache/wiki/render/DefaultRenderingManager.java
@@ -272,7 +272,7 @@ public class DefaultRenderingManager implements 
RenderingManager {
      */
     @Override
     public String getHTML( final WikiContext context, final WikiPage page ) {
-        final String pagedata = m_engine.getPageManager().getPureText( 
page.getName(), page.getVersion() );
+        final String pagedata = m_engine.getManager( PageManager.class 
).getPureText( page.getName(), page.getVersion() );
         return textToHTML( context, pagedata );
     }
 
@@ -284,8 +284,8 @@ public class DefaultRenderingManager implements 
RenderingManager {
      *  @param version Version number to fetch
      *  @return HTML-rendered page text.
      */
-    public String getHTML( final String pagename, final int version ) {
-        final WikiPage page = m_engine.getPageManager().getPage( pagename, 
version );
+    @Override public String getHTML( final String pagename, final int version 
) {
+        final WikiPage page = m_engine.getManager( PageManager.class 
).getPage( pagename, version );
         final WikiContext context = new WikiContext( m_engine, page );
         context.setRequestContext( WikiContext.NONE );
         return getHTML( context, page );

Reply via email to