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 2020/01/09 22:17:26 UTC

[jspwiki] 16/32: JSPWIKI-120: move getRecentChanges from WikiEngine to PageManager

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 686c57aa209237799e739303009e6916ef45e399
Author: juanpablo <ju...@apache.org>
AuthorDate: Sun Jan 5 01:48:31 2020 +0100

    JSPWIKI-120: move getRecentChanges from WikiEngine to PageManager
---
 .../src/main/java/org/apache/wiki/WikiEngine.java  |  27 ----
 .../org/apache/wiki/pages/DefaultPageManager.java  |  21 +++
 .../java/org/apache/wiki/pages/PageManager.java    |   9 ++
 .../apache/wiki/plugin/RecentChangesPlugin.java    |   2 +-
 .../java/org/apache/wiki/rss/RSSGenerator.java     |  39 ++----
 .../org/apache/wiki/xmlrpc/AbstractRPCHandler.java |  66 ++++-----
 .../java/org/apache/wiki/xmlrpc/RPCHandler.java    |  18 ++-
 .../org/apache/wiki/xmlrpc/RPCHandlerUTF8.java     | 149 +++++++--------------
 8 files changed, 129 insertions(+), 202 deletions(-)

diff --git a/jspwiki-main/src/main/java/org/apache/wiki/WikiEngine.java b/jspwiki-main/src/main/java/org/apache/wiki/WikiEngine.java
index 56b5e33..8e60b4c 100644
--- a/jspwiki-main/src/main/java/org/apache/wiki/WikiEngine.java
+++ b/jspwiki-main/src/main/java/org/apache/wiki/WikiEngine.java
@@ -43,7 +43,6 @@ import org.apache.wiki.event.WikiEventManager;
 import org.apache.wiki.event.WikiPageEvent;
 import org.apache.wiki.i18n.InternationalizationManager;
 import org.apache.wiki.pages.PageManager;
-import org.apache.wiki.pages.PageTimeComparator;
 import org.apache.wiki.parser.MarkupParser;
 import org.apache.wiki.parser.WikiDocument;
 import org.apache.wiki.providers.WikiPageProvider;
@@ -92,9 +91,7 @@ import java.util.List;
 import java.util.Locale;
 import java.util.Map;
 import java.util.Properties;
-import java.util.Set;
 import java.util.TimeZone;
-import java.util.TreeSet;
 import java.util.concurrent.ConcurrentHashMap;
 
 
@@ -1489,30 +1486,6 @@ public class WikiEngine  {
     }
 
     /**
-     *  Returns a Collection of WikiPages, sorted in time
-     *  order of last change (i.e. first object is the most
-     *  recently changed).  This method also includes attachments.
-     *
-     *  @return Set of WikiPage objects.
-     */
-    public Set< WikiPage > getRecentChanges() {
-        try {
-            final Collection< WikiPage >   pages = m_pageManager.getAllPages();
-            final Collection< Attachment >  atts = m_attachmentManager.getAllAttachments();
-
-            final TreeSet< WikiPage > sortedPages = new TreeSet<>( new PageTimeComparator() );
-
-            sortedPages.addAll( pages );
-            sortedPages.addAll( atts );
-
-            return sortedPages;
-        } catch( final ProviderException e ) {
-            log.error( "Unable to fetch all pages: ",e);
-            return null;
-        }
-    }
-
-    /**
      *  Returns a Collection of WikiPages containing the version history of a page.
      *
      *  @param page Name of the page to look for
diff --git a/jspwiki-main/src/main/java/org/apache/wiki/pages/DefaultPageManager.java b/jspwiki-main/src/main/java/org/apache/wiki/pages/DefaultPageManager.java
index 3d5248e..123ce71 100644
--- a/jspwiki-main/src/main/java/org/apache/wiki/pages/DefaultPageManager.java
+++ b/jspwiki-main/src/main/java/org/apache/wiki/pages/DefaultPageManager.java
@@ -50,12 +50,15 @@ import java.security.Permission;
 import java.security.Principal;
 import java.util.ArrayList;
 import java.util.Collection;
+import java.util.Collections;
 import java.util.Date;
 import java.util.Enumeration;
 import java.util.Iterator;
 import java.util.List;
 import java.util.NoSuchElementException;
 import java.util.Properties;
+import java.util.Set;
+import java.util.TreeSet;
 import java.util.concurrent.ConcurrentHashMap;
 
 
@@ -397,6 +400,24 @@ public class DefaultPageManager extends ModuleManager implements PageManager {
 
     /**
      * {@inheritDoc}
+     * @see org.apache.wiki.pages.PageManager#getRecentChanges()
+     */
+    @Override
+    public Set< WikiPage > getRecentChanges() {
+        try {
+            final TreeSet< WikiPage > sortedPages = new TreeSet<>( new PageTimeComparator() );
+            sortedPages.addAll( getAllPages() );
+            sortedPages.addAll( m_engine.getAttachmentManager().getAllAttachments() );
+
+            return sortedPages;
+        } catch( final ProviderException e ) {
+            LOG.error( "Unable to fetch all pages: ", e );
+            return Collections.emptySet();
+        }
+    }
+
+    /**
+     * {@inheritDoc}
      * @see org.apache.wiki.pages.PageManager#pageExists(java.lang.String)
      */
     @Override
diff --git a/jspwiki-main/src/main/java/org/apache/wiki/pages/PageManager.java b/jspwiki-main/src/main/java/org/apache/wiki/pages/PageManager.java
index 6ff9dcd..1780a5d 100644
--- a/jspwiki-main/src/main/java/org/apache/wiki/pages/PageManager.java
+++ b/jspwiki-main/src/main/java/org/apache/wiki/pages/PageManager.java
@@ -27,6 +27,7 @@ import org.apache.wiki.providers.WikiPageProvider;
 
 import java.util.Collection;
 import java.util.List;
+import java.util.Set;
 
 
 public interface PageManager extends WikiEventListener {
@@ -214,6 +215,14 @@ public interface PageManager extends WikiEventListener {
     int getTotalPageCount();
 
     /**
+     *  Returns a Collection of WikiPages, sorted in time order of last change (i.e. first object is the most recently changed).
+     *  This method also includes attachments.
+     *
+     *  @return Set of WikiPage objects.
+     */
+    Set< WikiPage > getRecentChanges();
+
+    /**
      * Returns true, if the page exists (any version).
      *
      * @param pageName Name of the page.
diff --git a/jspwiki-main/src/main/java/org/apache/wiki/plugin/RecentChangesPlugin.java b/jspwiki-main/src/main/java/org/apache/wiki/plugin/RecentChangesPlugin.java
index 2d3637f..16c1d41 100644
--- a/jspwiki-main/src/main/java/org/apache/wiki/plugin/RecentChangesPlugin.java
+++ b/jspwiki-main/src/main/java/org/apache/wiki/plugin/RecentChangesPlugin.java
@@ -100,7 +100,7 @@ public class RecentChangesPlugin extends AbstractReferralPlugin implements WikiP
         log.debug("Calculating recent changes from "+sincedate.getTime());
 
         // FIXME: Should really have a since date on the getRecentChanges method.
-        Collection< WikiPage > changes = engine.getRecentChanges();
+        Collection< WikiPage > changes = engine.getPageManager().getRecentChanges();
         super.initialize( context, params );
         changes = filterWikiPageCollection( changes );
         
diff --git a/jspwiki-main/src/main/java/org/apache/wiki/rss/RSSGenerator.java b/jspwiki-main/src/main/java/org/apache/wiki/rss/RSSGenerator.java
index 174f0b6..53e5fe2 100644
--- a/jspwiki-main/src/main/java/org/apache/wiki/rss/RSSGenerator.java
+++ b/jspwiki-main/src/main/java/org/apache/wiki/rss/RSSGenerator.java
@@ -328,52 +328,37 @@ public class RSSGenerator {
      *  @param feed A Feed to generate the feed to.
      *  @return feed.getString().
      */
-    protected String generateFullWikiRSS( WikiContext wikiContext, Feed feed )
-    {
+    protected String generateFullWikiRSS( final WikiContext wikiContext, final Feed feed ) {
         feed.setChannelTitle( m_engine.getApplicationName() );
         feed.setFeedURL( m_engine.getBaseURL() );
         feed.setChannelLanguage( m_channelLanguage );
         feed.setChannelDescription( m_channelDescription );
 
-        Set< WikiPage > changed = m_engine.getRecentChanges();
+        final Set< WikiPage > changed = m_engine.getPageManager().getRecentChanges();
 
-        WikiSession session = WikiSession.guestSession( m_engine );
+        final WikiSession session = WikiSession.guestSession( m_engine );
         int items = 0;
-        for( Iterator< WikiPage > i = changed.iterator(); i.hasNext() && items < 15; items++ )
-        {
+        for( final Iterator< WikiPage > i = changed.iterator(); i.hasNext() && items < 15; items++ ) {
             WikiPage page = i.next();
 
             //
             //  Check if the anonymous user has view access to this page.
             //
 
-            if( !m_engine.getAuthorizationManager().checkPermission(session, new PagePermission(page,PagePermission.VIEW_ACTION) ) )
-            {
+            if( !m_engine.getAuthorizationManager().checkPermission(session, new PagePermission(page,PagePermission.VIEW_ACTION) ) ) {
                 // No permission, skip to the next one.
                 continue;
             }
 
-            Entry e = new Entry();
-
-            e.setPage( page );
-
-            String url;
-
-            if( page instanceof Attachment )
-            {
-                url = m_engine.getURL( WikiContext.ATTACH,
-                                       page.getName(),
-                                       null,
-                                       true );
-            }
-            else
-            {
-                url = m_engine.getURL( WikiContext.VIEW,
-                                       page.getName(),
-                                       null,
-                                       true );
+            final String url;
+            if( page instanceof Attachment ) {
+                url = m_engine.getURL( WikiContext.ATTACH, page.getName(),null, true );
+            } else {
+                url = m_engine.getURL( WikiContext.VIEW, page.getName(), null, true );
             }
 
+            final Entry e = new Entry();
+            e.setPage( page );
             e.setURL( url );
             e.setTitle( page.getName() );
             e.setContent( getEntryDescription(page) );
diff --git a/jspwiki-main/src/main/java/org/apache/wiki/xmlrpc/AbstractRPCHandler.java b/jspwiki-main/src/main/java/org/apache/wiki/xmlrpc/AbstractRPCHandler.java
index 5b21b80..3b1406b 100644
--- a/jspwiki-main/src/main/java/org/apache/wiki/xmlrpc/AbstractRPCHandler.java
+++ b/jspwiki-main/src/main/java/org/apache/wiki/xmlrpc/AbstractRPCHandler.java
@@ -18,17 +18,20 @@
  */
 package org.apache.wiki.xmlrpc;
 
-import java.security.Permission;
-import java.util.*;
-
-import org.apache.xmlrpc.AuthenticationFailed;
-
 import org.apache.wiki.WikiContext;
 import org.apache.wiki.WikiEngine;
 import org.apache.wiki.WikiPage;
 import org.apache.wiki.auth.AuthorizationManager;
 import org.apache.wiki.auth.permissions.PagePermission;
 import org.apache.wiki.auth.permissions.WikiPermission;
+import org.apache.xmlrpc.AuthenticationFailed;
+
+import java.security.Permission;
+import java.util.Calendar;
+import java.util.Date;
+import java.util.Hashtable;
+import java.util.Set;
+import java.util.Vector;
 
 /**
  *  Provides definitions for RPC handler routines.
@@ -36,61 +39,47 @@ import org.apache.wiki.auth.permissions.WikiPermission;
  *  @since 1.6.13
  */
 
-public abstract class AbstractRPCHandler
-    implements WikiRPCHandler
-{
+public abstract class AbstractRPCHandler implements WikiRPCHandler {
+
     /** Error code: no such page. */
     public static final int ERR_NOPAGE       = 1;
     public static final int ERR_NOPERMISSION = 2;
 
-    /**
-     *  Link to a local wiki page.
-     */
+    /** Link to a local wiki page. */
     public static final String LINK_LOCAL    = "local";
 
-    /**
-     *  Link to an external resource.
-     */
+    /** Link to an external resource. */
     public static final String LINK_EXTERNAL = "external";
 
-    /**
-     *  This is an inlined image.
-     */
+    /** This is an inlined image. */
     public static final String LINK_INLINE   = "inline";
 
     protected WikiEngine m_engine;
     protected WikiContext m_context;
 
-
-    /**
-     *  This is the currently implemented JSPWiki XML-RPC code revision.
-     */
+    /** This is the currently implemented JSPWiki XML-RPC code revision. */
     public static final int RPC_VERSION = 1;
 
-    public void initialize( WikiContext context )
-    {
+    public void initialize( final WikiContext context ) {
         m_context = context;
         m_engine  = context.getEngine();
     }
 
     protected abstract Hashtable encodeWikiPage( WikiPage p );
 
-    public Vector getRecentChanges( Date since )
-    {
+    public Vector getRecentChanges( final Date since ) {
         checkPermission( PagePermission.VIEW );
-        Collection< WikiPage > pages = m_engine.getRecentChanges();
-        Vector< Hashtable< ?, ? > > result = new Vector<Hashtable< ?, ? > >();
+        final Set< WikiPage > pages = m_engine.getPageManager().getRecentChanges();
+        final Vector< Hashtable< ?, ? > > result = new Vector<>();
 
         // Transform UTC into local time.
-        Calendar cal = Calendar.getInstance();
+        final Calendar cal = Calendar.getInstance();
         cal.setTime( since );
         cal.add( Calendar.MILLISECOND, cal.get( Calendar.ZONE_OFFSET ) +
                   (cal.getTimeZone().inDaylightTime( since ) ? cal.get( Calendar.DST_OFFSET ) : 0 ) );
 
-        for( WikiPage page : pages )
-        {
-            if( page.getLastModified().after( cal.getTime() ) )
-            {
+        for( WikiPage page : pages ) {
+            if( page.getLastModified().after( cal.getTime() ) ) {
                 result.add( encodeWikiPage( page ) );
             }
         }
@@ -104,12 +93,12 @@ public abstract class AbstractRPCHandler
      *
      *  @param perm the Permission to check
      */
-    protected void checkPermission( Permission perm )
-    {
-        AuthorizationManager mgr = m_engine.getAuthorizationManager();
+    protected void checkPermission( final Permission perm ) {
+        final AuthorizationManager mgr = m_engine.getAuthorizationManager();
 
-        if( mgr.checkPermission( m_context.getWikiSession(), perm ) )
+        if( mgr.checkPermission( m_context.getWikiSession(), perm ) ) {
             return;
+        }
 
         throw new AuthenticationFailed( "You have no access to this resource, o master" );
     }
@@ -117,10 +106,9 @@ public abstract class AbstractRPCHandler
     /**
      *  Returns the current supported JSPWiki XML-RPC API.
      */
-    public int getRPCVersionSupported()
-    {
+    public int getRPCVersionSupported() {
         checkPermission( WikiPermission.LOGIN );
-
         return RPC_VERSION;
     }
+
 }
diff --git a/jspwiki-main/src/main/java/org/apache/wiki/xmlrpc/RPCHandler.java b/jspwiki-main/src/main/java/org/apache/wiki/xmlrpc/RPCHandler.java
index 3cb0a83..3ab3355 100644
--- a/jspwiki-main/src/main/java/org/apache/wiki/xmlrpc/RPCHandler.java
+++ b/jspwiki-main/src/main/java/org/apache/wiki/xmlrpc/RPCHandler.java
@@ -35,6 +35,7 @@ import java.util.Collection;
 import java.util.Date;
 import java.util.Hashtable;
 import java.util.Iterator;
+import java.util.Set;
 import java.util.Vector;
 
 /**
@@ -91,7 +92,7 @@ public class RPCHandler
     public Vector getAllPages()
     {
         checkPermission( PagePermission.VIEW );
-        Collection< WikiPage > pages = m_engine.getRecentChanges();
+        Collection< WikiPage > pages = m_engine.getPageManager().getRecentChanges();
         Vector<String> result = new Vector<>();
 
         for( WikiPage p : pages )
@@ -142,13 +143,12 @@ public class RPCHandler
     }
 
     @Override
-    public Vector getRecentChanges( Date since )
-    {
+    public Vector getRecentChanges( Date since ) {
         checkPermission( PagePermission.VIEW );
-        Collection< WikiPage > pages = m_engine.getRecentChanges();
-        Vector<Hashtable<String, Object>> result = new Vector<>();
+        final Set< WikiPage > pages = m_engine.getPageManager().getRecentChanges();
+        final Vector< Hashtable< String, Object > > result = new Vector<>();
 
-        Calendar cal = Calendar.getInstance();
+        final Calendar cal = Calendar.getInstance();
         cal.setTime( since );
 
         //
@@ -159,10 +159,8 @@ public class RPCHandler
                   (cal.getTimeZone().inDaylightTime(since) ? cal.get( Calendar.DST_OFFSET ) : 0 ) ) );
         since = cal.getTime();
 
-        for( WikiPage page : pages )
-        {
-            if( page.getLastModified().after( since ) && !(page instanceof Attachment) )
-            {
+        for( final WikiPage page : pages ) {
+            if( page.getLastModified().after( since ) && !(page instanceof Attachment) ) {
                 result.add( encodeWikiPage( page ) );
             }
         }
diff --git a/jspwiki-main/src/main/java/org/apache/wiki/xmlrpc/RPCHandlerUTF8.java b/jspwiki-main/src/main/java/org/apache/wiki/xmlrpc/RPCHandlerUTF8.java
index 9444453..0390aff 100644
--- a/jspwiki-main/src/main/java/org/apache/wiki/xmlrpc/RPCHandlerUTF8.java
+++ b/jspwiki-main/src/main/java/org/apache/wiki/xmlrpc/RPCHandlerUTF8.java
@@ -28,10 +28,9 @@ import org.apache.wiki.auth.permissions.PermissionFactory;
 import org.apache.xmlrpc.XmlRpcException;
 
 import java.util.Calendar;
-import java.util.Collection;
 import java.util.Date;
 import java.util.Hashtable;
-import java.util.Iterator;
+import java.util.Set;
 import java.util.Vector;
 
 /**
@@ -41,27 +40,21 @@ import java.util.Vector;
  *  @since 1.6.13
  */
 
-public class RPCHandlerUTF8
-    extends AbstractRPCHandler
-{
-    public String getApplicationName()
-    {
-        checkPermission( PagePermission.VIEW );
+public class RPCHandlerUTF8 extends AbstractRPCHandler {
 
+    public String getApplicationName() {
+        checkPermission( PagePermission.VIEW );
         return m_engine.getApplicationName();
     }
 
-    public Vector getAllPages()
-    {
+    public Vector< String > getAllPages() {
         checkPermission( PagePermission.VIEW );
 
-        Collection< WikiPage > pages = m_engine.getRecentChanges();
-        Vector<String> result = new Vector<String>();
+        final Set< WikiPage > pages = m_engine.getPageManager().getRecentChanges();
+        final Vector< String > result = new Vector<>();
 
-        for( WikiPage p : pages )
-        {
-            if( !(p instanceof Attachment) )
-            {
+        for( final WikiPage p : pages ) {
+            if( !( p instanceof Attachment ) ) {
                 result.add( p.getName() );
             }
         }
@@ -72,22 +65,17 @@ public class RPCHandlerUTF8
     /**
      *  Encodes a single wiki page info into a Hashtable.
      */
-    protected Hashtable<String, Object> encodeWikiPage( WikiPage page )
-    {
-        Hashtable<String, Object> ht = new Hashtable<String, Object>();
-
+    protected Hashtable<String, Object> encodeWikiPage( final WikiPage page ) {
+        final Hashtable<String, Object> ht = new Hashtable<>();
         ht.put( "name", page.getName() );
 
-        Date d = page.getLastModified();
+        final Date d = page.getLastModified();
 
         //
-        //  Here we reset the DST and TIMEZONE offsets of the
-        //  calendar.  Unfortunately, I haven't thought of a better
-        //  way to ensure that we're getting the proper date
-        //  from the XML-RPC thingy, except to manually adjust the date.
+        //  Here we reset the DST and TIMEZONE offsets of the calendar.  Unfortunately, I haven't thought of a better
+        //  way to ensure that we're getting the proper date from the XML-RPC thingy, except to manually adjust the date.
         //
-
-        Calendar cal = Calendar.getInstance();
+        final Calendar cal = Calendar.getInstance();
         cal.setTime( d );
         cal.add( Calendar.MILLISECOND,
                  - (cal.get( Calendar.ZONE_OFFSET ) +
@@ -96,22 +84,20 @@ public class RPCHandlerUTF8
         ht.put( "lastModified", cal.getTime() );
         ht.put( "version", page.getVersion() );
 
-        if( page.getAuthor() != null )
-        {
+        if( page.getAuthor() != null ) {
             ht.put( "author", page.getAuthor() );
         }
 
         return ht;
     }
 
-    public Vector getRecentChanges( Date since )
-    {
+    public Vector< Hashtable< String, Object > > getRecentChanges( Date since ) {
         checkPermission( PagePermission.VIEW );
 
-        Collection< WikiPage > pages = m_engine.getRecentChanges();
-        Vector<Hashtable<String, Object>> result = new Vector<>();
+        final Set< WikiPage > pages = m_engine.getPageManager().getRecentChanges();
+        final Vector< Hashtable< String, Object > > result = new Vector<>();
 
-        Calendar cal = Calendar.getInstance();
+        final Calendar cal = Calendar.getInstance();
         cal.setTime( since );
 
         //
@@ -122,10 +108,8 @@ public class RPCHandlerUTF8
                   (cal.getTimeZone().inDaylightTime(since) ? cal.get( Calendar.DST_OFFSET ) : 0 ) ) );
         since = cal.getTime();
 
-        for( WikiPage page : pages )
-        {
-            if( page.getLastModified().after( since ) && !(page instanceof Attachment) )
-            {
+        for( final WikiPage page : pages ) {
+            if( page.getLastModified().after( since ) && !( page instanceof Attachment ) ) {
                 result.add( encodeWikiPage( page ) );
             }
         }
@@ -141,31 +125,22 @@ public class RPCHandlerUTF8
      *  @return Real page name, as Java string.
      *  @throws XmlRpcException, if there is something wrong with the page.
      */
-    private String parsePageCheckCondition( String pagename )
-        throws XmlRpcException
-    {
-        if( !m_engine.pageExists(pagename) )
-        {
+    private String parsePageCheckCondition( final String pagename ) throws XmlRpcException {
+        if( !m_engine.pageExists(pagename) ) {
             throw new XmlRpcException( ERR_NOPAGE, "No such page '"+pagename+"' found, o master." );
         }
 
-        WikiPage p = m_engine.getPageManager().getPage( pagename );
+        final WikiPage p = m_engine.getPageManager().getPage( pagename );
 
         checkPermission( PermissionFactory.getPagePermission( p, PagePermission.VIEW_ACTION ) );
         return pagename;
     }
 
-    public Hashtable getPageInfo( String pagename )
-        throws XmlRpcException
-    {
-        pagename = parsePageCheckCondition( pagename );
-
-        return encodeWikiPage( m_engine.getPageManager().getPage(pagename) );
+    public Hashtable<String, Object> getPageInfo( final String pagename ) throws XmlRpcException {
+        return encodeWikiPage( m_engine.getPageManager().getPage( parsePageCheckCondition( pagename ) ) );
     }
 
-    public Hashtable getPageInfoVersion( String pagename, int version )
-        throws XmlRpcException
-    {
+    public Hashtable<String, Object> getPageInfoVersion( String pagename, final int version ) throws XmlRpcException {
         pagename = parsePageCheckCondition( pagename );
 
         return encodeWikiPage( m_engine.getPageManager().getPage( pagename, version ) );
@@ -183,56 +158,41 @@ public class RPCHandlerUTF8
         return m_engine.getHTML( parsePageCheckCondition( pagename ) );
     }
 
-    public String getPageHTMLVersion( String pagename, int version )
-        throws XmlRpcException
-    {
-        pagename = parsePageCheckCondition( pagename );
-
-        return m_engine.getHTML( pagename, version );
+    public String getPageHTMLVersion( final String pagename, final int version ) throws XmlRpcException {
+        return m_engine.getHTML( parsePageCheckCondition( pagename ), version );
     }
 
-    public Vector listLinks( String pagename )
-        throws XmlRpcException
-    {
+    public Vector< Hashtable< String, String > > listLinks( String pagename ) throws XmlRpcException {
         pagename = parsePageCheckCondition( pagename );
 
-        WikiPage page = m_engine.getPageManager().getPage( pagename );
-        String pagedata = m_engine.getPageManager().getPureText( page );
+        final WikiPage page = m_engine.getPageManager().getPage( pagename );
+        final String pagedata = m_engine.getPageManager().getPureText( page );
 
-        LinkCollector localCollector = new LinkCollector();
-        LinkCollector extCollector   = new LinkCollector();
-        LinkCollector attCollector   = new LinkCollector();
+        final LinkCollector localCollector = new LinkCollector();
+        final LinkCollector extCollector   = new LinkCollector();
+        final LinkCollector attCollector   = new LinkCollector();
 
-        WikiContext context = new WikiContext( m_engine, page );
+        final WikiContext context = new WikiContext( m_engine, page );
         context.setVariable( WikiEngine.PROP_REFSTYLE, "absolute" );
 
-        m_engine.textToHTML( context,
-                             pagedata,
-                             localCollector,
-                             extCollector,
-                             attCollector );
+        m_engine.textToHTML( context, pagedata, localCollector, extCollector, attCollector );
 
-        Vector<Hashtable<String, String>> result = new Vector<>();
+        final Vector< Hashtable< String, String > > result = new Vector<>();
 
         // FIXME: Contains far too much common with RPCHandler.  Refactor!
 
         //
         //  Add local links.
         //
-        for( Iterator< String > i = localCollector.getLinks().iterator(); i.hasNext(); )
-        {
-            String link = i.next();
-            Hashtable< String, String > ht = new Hashtable< String, String >();
+        for( final String link : localCollector.getLinks() ) {
+            final Hashtable<String, String> ht = new Hashtable<>();
             ht.put( "page", link );
             ht.put( "type", LINK_LOCAL );
 
-            if( m_engine.pageExists(link) )
-            {
-                ht.put( "href", context.getViewURL(link) );
-            }
-            else
-            {
-                ht.put( "href", context.getURL(WikiContext.EDIT,link) );
+            if( m_engine.pageExists( link ) ) {
+                ht.put( "href", context.getViewURL( link ) );
+            } else {
+                ht.put( "href", context.getURL( WikiContext.EDIT, link ) );
             }
 
             result.add( ht );
@@ -241,33 +201,26 @@ public class RPCHandlerUTF8
         //
         // Add links to inline attachments
         //
-        for( String link : attCollector.getLinks() )
-        {
-            Hashtable<String, String> ht = new Hashtable<String, String>();
-
+        for( final String link : attCollector.getLinks() ) {
+            final Hashtable<String, String> ht = new Hashtable<>();
             ht.put( "page", link );
             ht.put( "type", LINK_LOCAL );
             ht.put( "href", context.getURL(WikiContext.ATTACH,link) );
-
             result.add( ht );
         }
 
         //
-        // External links don't need to be changed into XML-RPC strings,
-        // simply because URLs are by definition ASCII.
+        // External links don't need to be changed into XML-RPC strings, simply because URLs are by definition ASCII.
         //
-
-        for( String link : extCollector.getLinks() )
-        {
-            Hashtable<String, String> ht = new Hashtable<String, String>();
-
+        for( final String link : extCollector.getLinks() )  {
+            final Hashtable<String, String> ht = new Hashtable<>();
             ht.put( "page", link );
             ht.put( "type", LINK_EXTERNAL );
             ht.put( "href", link );
-
             result.add( ht );
         }
 
         return result;
     }
+
 }