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/03/16 21:58:30 UTC

[jspwiki] 40/47: JSPWIKI-303: introduce Page instead of WikiPage (ACL handling still needs to be done) 1/2

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 2c9e057f2d7f3cee38bdfbecc504bf24da1a196a
Author: juanpablo <ju...@apache.org>
AuthorDate: Mon Mar 16 14:34:46 2020 +0100

    JSPWIKI-303: introduce Page instead of WikiPage (ACL handling still needs to be done) 1/2
---
 .../src/main/java/org/apache/wiki/WikiContext.java |  2 +-
 .../src/main/java/org/apache/wiki/WikiEngine.java  |  3 +-
 .../apache/wiki/attachment/AttachmentServlet.java  |  3 +-
 .../wiki/auth/DefaultAuthorizationManager.java     |  5 +-
 .../wiki/auth/permissions/PermissionFactory.java   | 13 ++---
 .../apache/wiki/content/DefaultPageRenamer.java    | 17 +++---
 .../java/org/apache/wiki/filters/SpamFilter.java   |  8 +--
 .../apache/wiki/plugin/AbstractReferralPlugin.java | 62 ++++++++--------------
 .../main/java/org/apache/wiki/plugin/Image.java    |  2 +-
 .../java/org/apache/wiki/plugin/InsertPage.java    |  4 +-
 .../apache/wiki/plugin/RecentChangesPlugin.java    |  5 +-
 .../apache/wiki/plugin/ReferringPagesPlugin.java   |  4 +-
 .../main/java/org/apache/wiki/plugin/Search.java   |  2 +-
 .../apache/wiki/plugin/WeblogArchivePlugin.java    | 10 ++--
 .../org/apache/wiki/plugin/WeblogEntryPlugin.java  |  5 +-
 .../java/org/apache/wiki/plugin/WeblogPlugin.java  | 20 +++----
 .../wiki/references/DefaultReferenceManager.java   |  9 ++--
 .../apache/wiki/references/ReferenceManager.java   |  3 +-
 .../org/apache/wiki/rpc/atom/AtomAPIServlet.java   | 11 ++--
 .../main/java/org/apache/wiki/rss/AtomFeed.java    |  6 +--
 .../src/main/java/org/apache/wiki/rss/Entry.java   | 31 ++++++-----
 .../main/java/org/apache/wiki/rss/RSS10Feed.java   |  4 +-
 .../main/java/org/apache/wiki/rss/RSS20Feed.java   | 51 +++++++-----------
 .../java/org/apache/wiki/rss/RSSGenerator.java     | 29 +++++-----
 .../apache/wiki/search/DefaultSearchManager.java   |  5 +-
 .../java/org/apache/wiki/search/SearchManager.java |  1 +
 .../apache/wiki/tags/AttachmentsIteratorTag.java   | 11 ++--
 .../java/org/apache/wiki/tags/CheckVersionTag.java | 14 ++---
 .../java/org/apache/wiki/tags/DiffLinkTag.java     | 15 +++---
 .../java/org/apache/wiki/tags/EditLinkTag.java     |  4 +-
 .../java/org/apache/wiki/tags/InsertPageTag.java   | 10 ++--
 .../main/java/org/apache/wiki/tags/LinkTag.java    | 11 ++--
 .../java/org/apache/wiki/tags/NoSuchPageTag.java   | 10 ++--
 .../java/org/apache/wiki/tags/PermissionTag.java   | 12 ++---
 .../java/org/apache/wiki/ui/CommandResolver.java   |  4 +-
 .../org/apache/wiki/ui/DefaultCommandResolver.java |  7 +--
 .../wiki/ui/admin/beans/SearchManagerBean.java     |  6 +--
 .../org/apache/wiki/xmlrpc/AbstractRPCHandler.java | 15 +++---
 .../org/apache/wiki/xmlrpc/MetaWeblogHandler.java  | 32 +++++------
 .../java/org/apache/wiki/xmlrpc/RPCHandler.java    | 16 +++---
 .../org/apache/wiki/xmlrpc/RPCHandlerUTF8.java     | 22 ++++----
 .../org/apache/wiki/xmlrpc/WikiRPCHandler.java     | 16 +++---
 42 files changed, 254 insertions(+), 266 deletions(-)

diff --git a/jspwiki-main/src/main/java/org/apache/wiki/WikiContext.java b/jspwiki-main/src/main/java/org/apache/wiki/WikiContext.java
index bde31c9..2255a8d 100644
--- a/jspwiki-main/src/main/java/org/apache/wiki/WikiContext.java
+++ b/jspwiki-main/src/main/java/org/apache/wiki/WikiContext.java
@@ -200,7 +200,7 @@ public class WikiContext implements Context, Command {
 
         // If page not supplied, default to front page to avoid NPEs
         if( m_page == null ) {
-            m_page = m_engine.getManager( PageManager.class ).getPage( m_engine.getFrontPage() );
+            m_page = ( WikiPage )m_engine.getManager( PageManager.class ).getPage( m_engine.getFrontPage() );
 
             // Front page does not exist?
             if( m_page == null ) {
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 3b6e81a..1af886b 100644
--- a/jspwiki-main/src/main/java/org/apache/wiki/WikiEngine.java
+++ b/jspwiki-main/src/main/java/org/apache/wiki/WikiEngine.java
@@ -23,6 +23,7 @@ import org.apache.log4j.Logger;
 import org.apache.log4j.PropertyConfigurator;
 import org.apache.wiki.api.Release;
 import org.apache.wiki.api.core.Engine;
+import org.apache.wiki.api.core.Page;
 import org.apache.wiki.api.exceptions.ProviderException;
 import org.apache.wiki.api.exceptions.WikiException;
 import org.apache.wiki.attachment.AttachmentManager;
@@ -592,7 +593,7 @@ public class WikiEngine implements Engine {
      */
     public void initReferenceManager() throws WikiException {
         try {
-            final ArrayList< WikiPage > pages = new ArrayList<>();
+            final ArrayList< Page > pages = new ArrayList<>();
             pages.addAll( m_pageManager.getAllPages() );
             pages.addAll( m_attachmentManager.getAllAttachments() );
 
diff --git a/jspwiki-main/src/main/java/org/apache/wiki/attachment/AttachmentServlet.java b/jspwiki-main/src/main/java/org/apache/wiki/attachment/AttachmentServlet.java
index 345e12f..3edf733 100644
--- a/jspwiki-main/src/main/java/org/apache/wiki/attachment/AttachmentServlet.java
+++ b/jspwiki-main/src/main/java/org/apache/wiki/attachment/AttachmentServlet.java
@@ -29,6 +29,7 @@ import org.apache.wiki.WikiContext;
 import org.apache.wiki.WikiEngine;
 import org.apache.wiki.WikiPage;
 import org.apache.wiki.WikiSession;
+import org.apache.wiki.api.core.Attachment;
 import org.apache.wiki.api.core.Engine;
 import org.apache.wiki.api.core.Session;
 import org.apache.wiki.api.exceptions.ProviderException;
@@ -546,7 +547,7 @@ public class AttachmentServlet extends HttpServlet {
         //  same name than some other previous attachment, then that attachment gains a new version.
         Attachment att = mgr.getAttachmentInfo( context.getPage().getName() );
         if( att == null ) {
-            att = new Attachment( m_engine, parentPage, filename );
+            att = new org.apache.wiki.attachment.Attachment( m_engine, parentPage, filename );
             created = true;
         }
         att.setSize( contentLength );
diff --git a/jspwiki-main/src/main/java/org/apache/wiki/auth/DefaultAuthorizationManager.java b/jspwiki-main/src/main/java/org/apache/wiki/auth/DefaultAuthorizationManager.java
index 4fc5cc6..edb6a5a 100644
--- a/jspwiki-main/src/main/java/org/apache/wiki/auth/DefaultAuthorizationManager.java
+++ b/jspwiki-main/src/main/java/org/apache/wiki/auth/DefaultAuthorizationManager.java
@@ -21,7 +21,6 @@ package org.apache.wiki.auth;
 import org.apache.log4j.Logger;
 import org.apache.wiki.WikiContext;
 import org.apache.wiki.WikiPage;
-import org.apache.wiki.WikiSession;
 import org.apache.wiki.api.core.Context;
 import org.apache.wiki.api.core.Engine;
 import org.apache.wiki.api.core.Session;
@@ -70,7 +69,7 @@ import java.util.WeakHashMap;
  * <p>Default implementation for {@link AuthorizationManager}</p>
  * {@inheritDoc}
  *
- * <p>See the {@link #checkPermission(WikiSession, Permission)} and {@link #hasRoleOrPrincipal(WikiSession, Principal)} methods for more
+ * <p>See the {@link #checkPermission(Session, Permission)} and {@link #hasRoleOrPrincipal(Session, Principal)} methods for more
  * information on the authorization logic.</p>
  * @since 2.3
  * @see AuthenticationManager
@@ -128,7 +127,7 @@ public class DefaultAuthorizationManager implements AuthorizationManager {
 
         // If the page or ACL is null, it's allowed.
         final String pageName = ((PagePermission)permission).getPage();
-        final WikiPage page = m_engine.getManager( PageManager.class ).getPage( pageName );
+        final WikiPage page = ( WikiPage )m_engine.getManager( PageManager.class ).getPage( pageName );
         final Acl acl = ( page == null) ? null : m_engine.getManager( AclManager.class ).getPermissions( page );
         if( page == null ||  acl == null || acl.isEmpty() ) {
             fireEvent( WikiSecurityEvent.ACCESS_ALLOWED, user, permission );
diff --git a/jspwiki-main/src/main/java/org/apache/wiki/auth/permissions/PermissionFactory.java b/jspwiki-main/src/main/java/org/apache/wiki/auth/permissions/PermissionFactory.java
index 4be6c6f..3e372bf 100644
--- a/jspwiki-main/src/main/java/org/apache/wiki/auth/permissions/PermissionFactory.java
+++ b/jspwiki-main/src/main/java/org/apache/wiki/auth/permissions/PermissionFactory.java
@@ -18,9 +18,10 @@
  */
 package org.apache.wiki.auth.permissions;
 
+import org.apache.wiki.api.core.Page;
+
 import java.util.WeakHashMap;
 
-import org.apache.wiki.WikiPage;
 
 /**
  *  Provides a factory for Permission objects.  Since the Permissions are immutable,
@@ -40,7 +41,7 @@ public final class PermissionFactory
      *  This is a WeakHashMap<Integer,PagePermission>, which stores the
      *  cached page permissions.
      */
-    private static WeakHashMap<Integer, PagePermission> c_cache = new WeakHashMap<Integer, PagePermission>();
+    private static WeakHashMap<Integer, PagePermission> c_cache = new WeakHashMap<>();
     
     /**
      *  Get a permission object for a WikiPage and a set of actions.
@@ -49,7 +50,7 @@ public final class PermissionFactory
      *  @param actions A list of actions.
      *  @return A PagePermission object, presenting this page+actions combination.
      */
-    public static PagePermission getPagePermission( WikiPage page, String actions )
+    public static PagePermission getPagePermission( final Page page, final String actions )
     {
         return getPagePermission( page.getWiki(), page.getName(), actions );
     }
@@ -61,7 +62,7 @@ public final class PermissionFactory
      *  @param actions A list of actions.
      *  @return A PagePermission object, presenting this page+actions combination.
      */
-    public static PagePermission getPagePermission( String page, String actions )
+    public static PagePermission getPagePermission( final String page, final String actions )
     {
         return getPagePermission( "", page, actions );
     }
@@ -74,7 +75,7 @@ public final class PermissionFactory
      *  @param actions A list of actions.
      *  @return A PagePermission object.
      */
-    private static PagePermission getPagePermission( String wiki, String page, String actions )
+    private static PagePermission getPagePermission( final String wiki, String page, final String actions )
     {
         PagePermission perm;
         //
@@ -86,7 +87,7 @@ public final class PermissionFactory
         // Alternative implementation below, but it does create an extra StringBuffer.
         //String         key = wiki+":"+page+":"+actions;
         
-        Integer key = wiki.hashCode() ^ page.hashCode() ^ actions.hashCode();
+        final Integer key = wiki.hashCode() ^ page.hashCode() ^ actions.hashCode();
    
         //
         //  It's fine if two threads update the cache, since the objects mean the same
diff --git a/jspwiki-main/src/main/java/org/apache/wiki/content/DefaultPageRenamer.java b/jspwiki-main/src/main/java/org/apache/wiki/content/DefaultPageRenamer.java
index 3df9abd..c472e45 100644
--- a/jspwiki-main/src/main/java/org/apache/wiki/content/DefaultPageRenamer.java
+++ b/jspwiki-main/src/main/java/org/apache/wiki/content/DefaultPageRenamer.java
@@ -22,10 +22,11 @@ import org.apache.log4j.Logger;
 import org.apache.wiki.InternalWikiException;
 import org.apache.wiki.WikiContext;
 import org.apache.wiki.WikiPage;
+import org.apache.wiki.api.core.Attachment;
 import org.apache.wiki.api.core.Engine;
+import org.apache.wiki.api.core.Page;
 import org.apache.wiki.api.exceptions.ProviderException;
 import org.apache.wiki.api.exceptions.WikiException;
-import org.apache.wiki.attachment.Attachment;
 import org.apache.wiki.attachment.AttachmentManager;
 import org.apache.wiki.event.WikiEventManager;
 import org.apache.wiki.event.WikiPageRenameEvent;
@@ -83,11 +84,11 @@ public class DefaultPageRenamer implements PageRenamer {
         
         //  Preconditions: "from" page must exist, and "to" page must not yet exist.
         final Engine engine = context.getEngine();
-        final WikiPage fromPage = engine.getManager( PageManager.class ).getPage( renameFrom );
+        final Page fromPage = engine.getManager( PageManager.class ).getPage( renameFrom );
         if( fromPage == null ) {
             throw new WikiException("No such page "+renameFrom);
         }
-        WikiPage toPage = engine.getManager( PageManager.class ).getPage( renameToClean );
+        Page toPage = engine.getManager( PageManager.class ).getPage( renameToClean );
         if( toPage != null ) {
             throw new WikiException( "Page already exists " + renameToClean );
         }
@@ -98,7 +99,7 @@ public class DefaultPageRenamer implements PageRenamer {
         //  Remove references to attachments under old name
         final List< Attachment > attachmentsOldName = engine.getManager( AttachmentManager.class ).listAttachments( fromPage );
         for( final Attachment att: attachmentsOldName ) {
-            final WikiPage fromAttPage = engine.getManager( PageManager.class ).getPage( att.getName() );
+            final Page fromAttPage = engine.getManager( PageManager.class ).getPage( att.getName() );
             engine.getManager( ReferenceManager.class ).pageRemoved( fromAttPage );
         }
 
@@ -130,7 +131,7 @@ public class DefaultPageRenamer implements PageRenamer {
         
         final Collection< Attachment > attachmentsNewName = engine.getManager( AttachmentManager.class ).listAttachments( toPage );
         for( final Attachment att:attachmentsNewName ) {
-            final WikiPage toAttPage = engine.getManager( PageManager.class ).getPage( att.getName() );
+            final Page toAttPage = engine.getManager( PageManager.class ).getPage( att.getName() );
             // add reference to attachment under new page name
             engine.getManager( ReferenceManager.class ).updateReferences( toAttPage );
             engine.getManager( SearchManager.class ).reindexPage( att );
@@ -163,7 +164,7 @@ public class DefaultPageRenamer implements PageRenamer {
      *  @param fromPage The old page
      *  @param toPage The new page
      */
-    private void updateReferrers( final WikiContext context, final WikiPage fromPage, final WikiPage toPage, final Set< String > referrers ) {
+    private void updateReferrers( final WikiContext context, final Page fromPage, final Page toPage, final Set< String > referrers ) {
         if( referrers.isEmpty() ) { // No referrers
             return;
         }
@@ -175,7 +176,7 @@ public class DefaultPageRenamer implements PageRenamer {
                 pageName = toPage.getName();
             }
             
-            final WikiPage p = engine.getManager( PageManager.class ).getPage( pageName );
+            final Page p = engine.getManager( PageManager.class ).getPage( pageName );
 
             final String sourceText = engine.getManager( PageManager.class ).getPureText( p );
             String newText = replaceReferrerString( context, sourceText, fromPage.getName(), toPage.getName() );
@@ -200,7 +201,7 @@ public class DefaultPageRenamer implements PageRenamer {
         }
     }
 
-    private Set<String> getReferencesToChange( final WikiPage fromPage, final Engine engine ) {
+    private Set<String> getReferencesToChange( final Page fromPage, final Engine engine ) {
         final Set< String > referrers = new TreeSet<>();
         final Collection< String > r = engine.getManager( ReferenceManager.class ).findReferrers( fromPage.getName() );
         if( r != null ) {
diff --git a/jspwiki-main/src/main/java/org/apache/wiki/filters/SpamFilter.java b/jspwiki-main/src/main/java/org/apache/wiki/filters/SpamFilter.java
index c19d285..0338d49 100644
--- a/jspwiki-main/src/main/java/org/apache/wiki/filters/SpamFilter.java
+++ b/jspwiki-main/src/main/java/org/apache/wiki/filters/SpamFilter.java
@@ -31,6 +31,7 @@ import org.apache.oro.text.regex.Perl5Matcher;
 import org.apache.wiki.InternalWikiException;
 import org.apache.wiki.WikiContext;
 import org.apache.wiki.WikiPage;
+import org.apache.wiki.api.core.Attachment;
 import org.apache.wiki.api.core.Context;
 import org.apache.wiki.api.core.Engine;
 import org.apache.wiki.api.core.Page;
@@ -38,7 +39,6 @@ import org.apache.wiki.api.exceptions.ProviderException;
 import org.apache.wiki.api.exceptions.RedirectException;
 import org.apache.wiki.api.filters.BasePageFilter;
 import org.apache.wiki.api.providers.WikiProvider;
-import org.apache.wiki.attachment.Attachment;
 import org.apache.wiki.attachment.AttachmentManager;
 import org.apache.wiki.auth.user.UserProfile;
 import org.apache.wiki.pages.PageManager;
@@ -368,7 +368,7 @@ public class SpamFilter extends BasePageFilter {
      * @param list
      * @return A Collection of the Patterns that were found from the lists.
      */
-    private Collection< Pattern > parseWordList( final WikiPage source, final String list ) {
+    private Collection< Pattern > parseWordList( final Page source, final String list ) {
         final ArrayList< Pattern > compiledpatterns = new ArrayList<>();
 
         if( list != null ) {
@@ -676,7 +676,7 @@ public class SpamFilter extends BasePageFilter {
             boolean rebuild = false;
 
             //  Rebuild, if the spam words page, the attachment or the IP ban page has changed since.
-            final WikiPage sourceSpam = context.getEngine().getManager( PageManager.class ).getPage( m_forbiddenWordsPage );
+            final Page sourceSpam = context.getEngine().getManager( PageManager.class ).getPage( m_forbiddenWordsPage );
             if( sourceSpam != null ) {
                 if( m_spamPatterns == null || m_spamPatterns.isEmpty() || sourceSpam.getLastModified().after( m_lastRebuild ) ) {
                     rebuild = true;
@@ -690,7 +690,7 @@ public class SpamFilter extends BasePageFilter {
                 }
             }
 
-            final WikiPage sourceIPs = context.getEngine().getManager( PageManager.class ).getPage( m_forbiddenIPsPage );
+            final Page sourceIPs = context.getEngine().getManager( PageManager.class ).getPage( m_forbiddenIPsPage );
             if( sourceIPs != null ) {
                 if( m_IPPatterns == null || m_IPPatterns.isEmpty() || sourceIPs.getLastModified().after( m_lastRebuild ) ) {
                     rebuild = true;
diff --git a/jspwiki-main/src/main/java/org/apache/wiki/plugin/AbstractReferralPlugin.java b/jspwiki-main/src/main/java/org/apache/wiki/plugin/AbstractReferralPlugin.java
index 9532848..de5a355 100644
--- a/jspwiki-main/src/main/java/org/apache/wiki/plugin/AbstractReferralPlugin.java
+++ b/jspwiki-main/src/main/java/org/apache/wiki/plugin/AbstractReferralPlugin.java
@@ -27,9 +27,9 @@ import org.apache.oro.text.regex.PatternCompiler;
 import org.apache.oro.text.regex.PatternMatcher;
 import org.apache.oro.text.regex.Perl5Matcher;
 import org.apache.wiki.StringTransmutator;
-import org.apache.wiki.WikiPage;
 import org.apache.wiki.api.core.Context;
 import org.apache.wiki.api.core.Engine;
+import org.apache.wiki.api.core.Page;
 import org.apache.wiki.api.exceptions.PluginException;
 import org.apache.wiki.api.plugin.Plugin;
 import org.apache.wiki.pages.PageManager;
@@ -252,7 +252,7 @@ public abstract class AbstractReferralPlugin implements Plugin {
         initSorter( context, params );
     }
 
-    protected List< WikiPage > filterWikiPageCollection( final Collection< WikiPage > pages ) {
+    protected List< Page > filterWikiPageCollection( final Collection< Page > pages ) {
         final List< String > pageNames = filterCollection( pages.stream()
                                                           .map( page -> page.getName() )
                                                           .collect( Collectors.toList() ) );
@@ -273,10 +273,7 @@ public abstract class AbstractReferralPlugin implements Plugin {
 
         final PatternMatcher pm = new Perl5Matcher();
 
-        for( final Iterator< String > i = c.iterator(); i.hasNext(); )
-        {
-            final String pageName = i.next();
-
+        for( final String pageName : c ) {
             //
             //  If include parameter exists, then by default we include only those
             //  pages in it (excluding the ones in the exclude pattern list).
@@ -285,48 +282,37 @@ public abstract class AbstractReferralPlugin implements Plugin {
             //
             boolean includeThis = m_include == null;
 
-            if( m_include != null )
-            {
-                for( int j = 0; j < m_include.length; j++ )
-                {
-                    if( pm.matches( pageName, m_include[j] ) )
-                    {
+            if( m_include != null ) {
+                for( final Pattern pattern : m_include ) {
+                    if( pm.matches( pageName, pattern ) ) {
                         includeThis = true;
                         break;
                     }
                 }
             }
 
-            if( m_exclude != null )
-            {
-                for( int j = 0; j < m_exclude.length; j++ )
-                {
-                    if( pm.matches( pageName, m_exclude[j] ) )
-                    {
+            if( m_exclude != null ) {
+                for( final Pattern pattern : m_exclude ) {
+                    if( pm.matches( pageName, pattern ) ) {
                         includeThis = false;
                         break; // The inner loop, continue on the next item
                     }
                 }
             }
 
-            if( includeThis )
-            {
+            if( includeThis ) {
                 result.add( pageName );
                 //
                 //  if we want to show the last modified date of the most recently change page, we keep a "high watermark" here:
-                WikiPage page = null;
-                if( m_lastModified )
-                {
+                final Page page;
+                if( m_lastModified ) {
                     page = m_engine.getManager( PageManager.class ).getPage( pageName );
-                    if( page != null )
-                    {
+                    if( page != null ) {
                         final Date lastModPage = page.getLastModified();
-                        if( log.isDebugEnabled() )
-                        {
+                        if( log.isDebugEnabled() ) {
                             log.debug( "lastModified Date of page " + pageName + " : " + m_dateLastModified );
                         }
-                        if( lastModPage.after( m_dateLastModified ) )
-                        {
+                        if( lastModPage.after( m_dateLastModified ) ) {
                             m_dateLastModified = lastModPage;
                         }
                     }
@@ -358,10 +344,10 @@ public abstract class AbstractReferralPlugin implements Plugin {
      *  @param numItems How many items to show.
      *  @return The WikiText
      */
-    protected String wikitizeCollection( final Collection< String > links, final String separator, final int numItems )
-    {
-        if( links == null || links.isEmpty() )
+    protected String wikitizeCollection( final Collection< String > links, final String separator, final int numItems ) {
+        if( links == null || links.isEmpty() ) {
             return "";
+        }
 
         final StringBuilder output = new StringBuilder();
 
@@ -404,25 +390,19 @@ public abstract class AbstractReferralPlugin implements Plugin {
      *  @return HTML
      *  @since 1.6.4
      */
-    protected String makeHTML( final Context context, final String wikitext )
-    {
+    protected String makeHTML( final Context context, final String wikitext ) {
         String result = "";
 
         final RenderingManager mgr = m_engine.getManager( RenderingManager.class );
 
-        try
-        {
+        try {
             final MarkupParser parser = mgr.getParser(context, wikitext);
-
             parser.addLinkTransmutator( new CutMutator(m_maxwidth) );
             parser.enableImageInlining( false );
 
             final WikiDocument doc = parser.parse();
-
             result = mgr.getHTML( context, doc );
-        }
-        catch( final IOException e )
-        {
+        } catch( final IOException e ) {
             log.error("Failed to convert page data to HTML", e);
         }
 
diff --git a/jspwiki-main/src/main/java/org/apache/wiki/plugin/Image.java b/jspwiki-main/src/main/java/org/apache/wiki/plugin/Image.java
index 96d3bd0..ad27ef0 100644
--- a/jspwiki-main/src/main/java/org/apache/wiki/plugin/Image.java
+++ b/jspwiki-main/src/main/java/org/apache/wiki/plugin/Image.java
@@ -19,12 +19,12 @@
 package org.apache.wiki.plugin;
 
 import org.apache.wiki.WikiContext;
+import org.apache.wiki.api.core.Attachment;
 import org.apache.wiki.api.core.Context;
 import org.apache.wiki.api.core.Engine;
 import org.apache.wiki.api.exceptions.PluginException;
 import org.apache.wiki.api.exceptions.ProviderException;
 import org.apache.wiki.api.plugin.Plugin;
-import org.apache.wiki.attachment.Attachment;
 import org.apache.wiki.attachment.AttachmentManager;
 import org.apache.wiki.util.TextUtil;
 
diff --git a/jspwiki-main/src/main/java/org/apache/wiki/plugin/InsertPage.java b/jspwiki-main/src/main/java/org/apache/wiki/plugin/InsertPage.java
index 38d806e..22e634c 100644
--- a/jspwiki-main/src/main/java/org/apache/wiki/plugin/InsertPage.java
+++ b/jspwiki-main/src/main/java/org/apache/wiki/plugin/InsertPage.java
@@ -19,9 +19,9 @@
 package org.apache.wiki.plugin;
 
 import org.apache.wiki.WikiContext;
-import org.apache.wiki.WikiPage;
 import org.apache.wiki.api.core.Context;
 import org.apache.wiki.api.core.Engine;
+import org.apache.wiki.api.core.Page;
 import org.apache.wiki.api.exceptions.PluginException;
 import org.apache.wiki.api.exceptions.ProviderException;
 import org.apache.wiki.api.plugin.Plugin;
@@ -106,7 +106,7 @@ public class InsertPage implements Plugin {
         }
 
         if( includedPage != null ) {
-            final WikiPage page;
+            final Page page;
             try {
                 final String pageName = engine.getFinalPageName( includedPage );
                 if( pageName != null ) {
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 1a60b8f..1482429 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
@@ -24,6 +24,7 @@ import org.apache.wiki.WikiContext;
 import org.apache.wiki.WikiPage;
 import org.apache.wiki.api.core.Context;
 import org.apache.wiki.api.core.Engine;
+import org.apache.wiki.api.core.Page;
 import org.apache.wiki.api.exceptions.PluginException;
 import org.apache.wiki.api.plugin.Plugin;
 import org.apache.wiki.attachment.Attachment;
@@ -103,7 +104,7 @@ public class RecentChangesPlugin extends AbstractReferralPlugin implements Plugi
         log.debug("Calculating recent changes from "+sincedate.getTime());
 
         // FIXME: Should really have a since date on the getRecentChanges method.
-        Collection< WikiPage > changes = engine.getManager( PageManager.class ).getRecentChanges();
+        Collection< Page > changes = engine.getManager( PageManager.class ).getRecentChanges();
         super.initialize( context, params );
         changes = filterWikiPageCollection( changes );
         
@@ -117,7 +118,7 @@ public class RecentChangesPlugin extends AbstractReferralPlugin implements Plugi
             rt.setAttribute( XHTML.ATTR_class, "recentchanges" );
             rt.setAttribute( XHTML.ATTR_cellpadding, spacing );
 
-            for( final WikiPage pageref : changes ) {
+            for( final Page pageref : changes ) {
                 final Date lastmod = pageref.getLastModified();
 
                 if( lastmod.before( sincedate.getTime() ) ) {
diff --git a/jspwiki-main/src/main/java/org/apache/wiki/plugin/ReferringPagesPlugin.java b/jspwiki-main/src/main/java/org/apache/wiki/plugin/ReferringPagesPlugin.java
index d0c1239..026d7e9 100644
--- a/jspwiki-main/src/main/java/org/apache/wiki/plugin/ReferringPagesPlugin.java
+++ b/jspwiki-main/src/main/java/org/apache/wiki/plugin/ReferringPagesPlugin.java
@@ -20,8 +20,8 @@ package org.apache.wiki.plugin;
 
 import org.apache.log4j.Logger;
 import org.apache.wiki.WikiContext;
-import org.apache.wiki.WikiPage;
 import org.apache.wiki.api.core.Context;
+import org.apache.wiki.api.core.Page;
 import org.apache.wiki.api.exceptions.PluginException;
 import org.apache.wiki.api.plugin.Plugin;
 import org.apache.wiki.pages.PageManager;
@@ -78,7 +78,7 @@ public class ReferringPagesPlugin extends AbstractReferralPlugin {
             pageName = context.getPage().getName();
         }
 
-        final WikiPage page = context.getEngine().getManager( PageManager.class ).getPage( pageName );
+        final Page page = context.getEngine().getManager( PageManager.class ).getPage( pageName );
 
         if( page != null ) {
             Collection< String > links  = refmgr.findReferrers( page.getName() );
diff --git a/jspwiki-main/src/main/java/org/apache/wiki/plugin/Search.java b/jspwiki-main/src/main/java/org/apache/wiki/plugin/Search.java
index 0f4ffac..4edbcf1 100644
--- a/jspwiki-main/src/main/java/org/apache/wiki/plugin/Search.java
+++ b/jspwiki-main/src/main/java/org/apache/wiki/plugin/Search.java
@@ -25,9 +25,9 @@ import org.apache.wiki.api.core.Engine;
 import org.apache.wiki.api.exceptions.PluginException;
 import org.apache.wiki.api.exceptions.ProviderException;
 import org.apache.wiki.api.plugin.Plugin;
+import org.apache.wiki.api.search.SearchResult;
 import org.apache.wiki.render.RenderingManager;
 import org.apache.wiki.search.SearchManager;
-import org.apache.wiki.search.SearchResult;
 import org.apache.wiki.util.XHTML;
 import org.apache.wiki.util.XhtmlUtil;
 import org.jdom2.Element;
diff --git a/jspwiki-main/src/main/java/org/apache/wiki/plugin/WeblogArchivePlugin.java b/jspwiki-main/src/main/java/org/apache/wiki/plugin/WeblogArchivePlugin.java
index b2b4a22..f1ee8be 100644
--- a/jspwiki-main/src/main/java/org/apache/wiki/plugin/WeblogArchivePlugin.java
+++ b/jspwiki-main/src/main/java/org/apache/wiki/plugin/WeblogArchivePlugin.java
@@ -19,9 +19,9 @@
 package org.apache.wiki.plugin;
 
 import org.apache.wiki.WikiContext;
-import org.apache.wiki.WikiPage;
 import org.apache.wiki.api.core.Context;
 import org.apache.wiki.api.core.Engine;
+import org.apache.wiki.api.core.Page;
 import org.apache.wiki.api.exceptions.PluginException;
 import org.apache.wiki.api.plugin.Plugin;
 import org.apache.wiki.util.TextUtil;
@@ -82,13 +82,13 @@ public class WeblogArchivePlugin implements Plugin {
 
         if( months.size() > 0 ) {
             year = ( months.iterator().next() ).get( Calendar.YEAR );
-            sb.append( "<li class=\"archiveyear\">" + year + "</li>\n" );
+            sb.append( "<li class=\"archiveyear\">" ).append( year ).append( "</li>\n" );
         }
 
         for( final Calendar cal : months ) {
             if( cal.get( Calendar.YEAR ) != year ) {
                 year = cal.get( Calendar.YEAR );
-                sb.append( "<li class=\"archiveyear\">" + year + "</li>\n" );
+                sb.append( "<li class=\"archiveyear\">" ).append( year ).append( "</li>\n" );
             }
             sb.append( "  <li>" );
             sb.append( getMonthLink( cal ) );
@@ -106,9 +106,9 @@ public class WeblogArchivePlugin implements Plugin {
 
         final WeblogPlugin pl = new WeblogPlugin();
 
-        final List< WikiPage > blogEntries = pl.findBlogEntries( engine, page, new Date(0L), new Date() );
+        final List< Page > blogEntries = pl.findBlogEntries( engine, page, new Date(0L), new Date() );
 
-        for( final WikiPage p : blogEntries ) {
+        for( final Page p : blogEntries ) {
             // FIXME: Not correct, should parse page creation time.
             final Date d = p.getLastModified();
             final Calendar cal = Calendar.getInstance();
diff --git a/jspwiki-main/src/main/java/org/apache/wiki/plugin/WeblogEntryPlugin.java b/jspwiki-main/src/main/java/org/apache/wiki/plugin/WeblogEntryPlugin.java
index 80ce30c..1424c9a 100644
--- a/jspwiki-main/src/main/java/org/apache/wiki/plugin/WeblogEntryPlugin.java
+++ b/jspwiki-main/src/main/java/org/apache/wiki/plugin/WeblogEntryPlugin.java
@@ -23,6 +23,7 @@ import org.apache.wiki.WikiContext;
 import org.apache.wiki.WikiPage;
 import org.apache.wiki.api.core.Context;
 import org.apache.wiki.api.core.Engine;
+import org.apache.wiki.api.core.Page;
 import org.apache.wiki.api.exceptions.PluginException;
 import org.apache.wiki.api.exceptions.ProviderException;
 import org.apache.wiki.api.plugin.Plugin;
@@ -108,11 +109,11 @@ public class WeblogEntryPlugin implements Plugin {
     }
 
     private int findFreeEntry( final Engine engine, final String baseName, final String date ) throws ProviderException {
-        final Collection< WikiPage > everyone = engine.getManager( PageManager.class ).getAllPages();
+        final Collection< Page > everyone = engine.getManager( PageManager.class ).getAllPages();
         final String startString = WeblogPlugin.makeEntryPage(baseName, date, "");
         int max = 0;
 
-        for( final WikiPage p : everyone ) {
+        for( final Page p : everyone ) {
             if( p.getName().startsWith( startString ) ) {
                 try {
                     final String probableId = p.getName().substring( startString.length() );
diff --git a/jspwiki-main/src/main/java/org/apache/wiki/plugin/WeblogPlugin.java b/jspwiki-main/src/main/java/org/apache/wiki/plugin/WeblogPlugin.java
index abdeace..64de099 100644
--- a/jspwiki-main/src/main/java/org/apache/wiki/plugin/WeblogPlugin.java
+++ b/jspwiki-main/src/main/java/org/apache/wiki/plugin/WeblogPlugin.java
@@ -20,9 +20,9 @@ package org.apache.wiki.plugin;
 
 import org.apache.log4j.Logger;
 import org.apache.wiki.WikiContext;
-import org.apache.wiki.WikiPage;
 import org.apache.wiki.api.core.Context;
 import org.apache.wiki.api.core.Engine;
+import org.apache.wiki.api.core.Page;
 import org.apache.wiki.api.exceptions.PluginException;
 import org.apache.wiki.api.exceptions.ProviderException;
 import org.apache.wiki.api.plugin.ParserStagePlugin;
@@ -243,13 +243,13 @@ public class WeblogPlugin implements Plugin, ParserStagePlugin {
         stopTime.set( Calendar.SECOND, 59 );
 
         final StringBuilder sb = new StringBuilder();
-        final List<WikiPage> blogEntries = findBlogEntries( engine, weblogName, startTime.getTime(), stopTime.getTime() );
+        final List< Page > blogEntries = findBlogEntries( engine, weblogName, startTime.getTime(), stopTime.getTime() );
         blogEntries.sort( new PageDateComparator() );
 
         sb.append("<div class=\"weblog\">\n");
 
-        for( final Iterator< WikiPage > i = blogEntries.iterator(); i.hasNext() && maxEntries-- > 0 ; ) {
-            final WikiPage p = i.next();
+        for( final Iterator< Page > i = blogEntries.iterator(); i.hasNext() && maxEntries-- > 0 ; ) {
+            final Page p = i.next();
             if( mgr.checkPermission( context.getWikiSession(), new PagePermission(p, PagePermission.VIEW_ACTION) ) ) {
                 addEntryHTML( context, entryFormat, hasComments, sb, p, params );
             }
@@ -271,7 +271,7 @@ public class WeblogPlugin implements Plugin, ParserStagePlugin {
      *  @throws ProviderException
      */
     private void addEntryHTML( final Context context, final DateFormat entryFormat, final boolean hasComments,
-                               final StringBuilder buffer, final WikiPage entry, final Map< String, String > params) {
+                               final StringBuilder buffer, final Page entry, final Map< String, String > params) {
         final Engine engine = context.getEngine();
         final ResourceBundle rb = Preferences.getBundle(context, Plugin.CORE_PLUGINS_RESOURCEBUNDLE);
 
@@ -398,17 +398,17 @@ public class WeblogPlugin implements Plugin, ParserStagePlugin {
      *  @param end   The end date which is the last to be considered
      *  @return a list of pages with their FIRST revisions.
      */
-    public List< WikiPage > findBlogEntries( final Engine engine, String baseName, final Date start, final Date end ) {
+    public List< Page > findBlogEntries( final Engine engine, String baseName, final Date start, final Date end ) {
         final PageManager mgr = engine.getManager( PageManager.class );
         final Set< String > allPages = engine.getManager( ReferenceManager.class ).findCreated();
-        final ArrayList<WikiPage> result = new ArrayList<>();
+        final ArrayList< Page > result = new ArrayList<>();
 
         baseName = makeEntryPage( baseName );
 
         for( final String pageName : allPages ) {
             if( pageName.startsWith( baseName ) ) {
                 try {
-                    final WikiPage firstVersion = mgr.getPageInfo( pageName, 1 );
+                    final Page firstVersion = mgr.getPageInfo( pageName, 1 );
                     final Date d = firstVersion.getLastModified();
 
                     if( d.after( start ) && d.before( end ) ) {
@@ -426,11 +426,11 @@ public class WeblogPlugin implements Plugin, ParserStagePlugin {
     /**
      *  Reverse comparison.
      */
-    private static class PageDateComparator implements Comparator< WikiPage > {
+    private static class PageDateComparator implements Comparator< Page > {
 
         /**{@inheritDoc}*/
         @Override
-        public int compare( final WikiPage page1, final WikiPage page2 ) {
+        public int compare( final Page page1, final Page page2 ) {
             if( page1 == null || page2 == null ) {
                 return 0;
             }
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 e88496d..14ed653 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
@@ -23,7 +23,6 @@ import org.apache.log4j.Logger;
 import org.apache.wiki.InternalWikiException;
 import org.apache.wiki.LinkCollector;
 import org.apache.wiki.WikiContext;
-import org.apache.wiki.WikiPage;
 import org.apache.wiki.api.core.Attachment;
 import org.apache.wiki.api.core.Context;
 import org.apache.wiki.api.core.Engine;
@@ -187,7 +186,7 @@ public class DefaultReferenceManager extends BasePageFilter implements Reference
      *  @throws ProviderException If reading of pages fails.
      */
     @Override
-    public void initialize( final Collection< WikiPage > pages ) throws ProviderException {
+    public void initialize( final Collection< Page > pages ) throws ProviderException {
         log.debug( "Initializing new ReferenceManager with " + pages.size() + " initial pages." );
         final StopWatch sw = new StopWatch();
         sw.start();
@@ -226,7 +225,7 @@ public class DefaultReferenceManager extends BasePageFilter implements Reference
             buildKeyLists( pages );
 
             // Scan the existing pages from disk and update references in the manager.
-            for( final WikiPage page : pages ) {
+            for( final Page page : pages ) {
                 // We cannot build a reference list from the contents of attachments, so we skip them.
                 if( !( page instanceof Attachment ) ) {
                     updatePageReferences( page );
@@ -628,7 +627,7 @@ public class DefaultReferenceManager extends BasePageFilter implements Reference
      *
      * @param pages a Collection containing WikiPage objects.
      */
-    private synchronized void buildKeyLists( final Collection< WikiPage > pages ) {
+    private synchronized void buildKeyLists( final Collection< Page > pages ) {
         m_refersTo.clear();
         m_referredBy.clear();
         if( pages == null ) {
@@ -636,7 +635,7 @@ public class DefaultReferenceManager extends BasePageFilter implements Reference
         }
 
         try {
-            for( final WikiPage page : pages ) {
+            for( final Page page : pages ) {
                 // We add a non-null entry to referredBy to indicate the referred page exists
                 m_referredBy.put( page.getName(), new TreeSet<>() );
                 // Just add a key to refersTo; the keys need to be in sync with referredBy.
diff --git a/jspwiki-main/src/main/java/org/apache/wiki/references/ReferenceManager.java b/jspwiki-main/src/main/java/org/apache/wiki/references/ReferenceManager.java
index 6a10adf..484464c 100644
--- a/jspwiki-main/src/main/java/org/apache/wiki/references/ReferenceManager.java
+++ b/jspwiki-main/src/main/java/org/apache/wiki/references/ReferenceManager.java
@@ -18,7 +18,6 @@
  */
 package org.apache.wiki.references;
 
-import org.apache.wiki.WikiPage;
 import org.apache.wiki.api.core.Page;
 import org.apache.wiki.api.exceptions.ProviderException;
 import org.apache.wiki.api.filters.PageFilter;
@@ -52,7 +51,7 @@ public interface ReferenceManager extends PageFilter, InternalModule, WikiEventL
      *  @since 2.2
      *  @throws ProviderException If reading of pages fails.
      */
-    void initialize( final Collection<WikiPage> pages ) throws ProviderException;
+    void initialize( final Collection< Page > pages ) throws ProviderException;
 
     /**
      *  Reads a WikiPageful of data from a String and returns all links internal to this Wiki in a Collection.
diff --git a/jspwiki-main/src/main/java/org/apache/wiki/rpc/atom/AtomAPIServlet.java b/jspwiki-main/src/main/java/org/apache/wiki/rpc/atom/AtomAPIServlet.java
index 66add1a..a4e8223 100644
--- a/jspwiki-main/src/main/java/org/apache/wiki/rpc/atom/AtomAPIServlet.java
+++ b/jspwiki-main/src/main/java/org/apache/wiki/rpc/atom/AtomAPIServlet.java
@@ -23,6 +23,7 @@ import org.apache.wiki.WikiContext;
 import org.apache.wiki.WikiEngine;
 import org.apache.wiki.WikiPage;
 import org.apache.wiki.api.core.Engine;
+import org.apache.wiki.api.core.Page;
 import org.apache.wiki.api.exceptions.ProviderException;
 import org.apache.wiki.api.exceptions.WikiException;
 import org.apache.wiki.pages.PageManager;
@@ -104,7 +105,7 @@ public class AtomAPIServlet extends HttpServlet {
 
         try {
             final String blogid = getPageName( request );
-            final WikiPage page = m_engine.getManager( PageManager.class ).getPage( blogid );
+            final Page page = m_engine.getManager( PageManager.class ).getPage( blogid );
             if( page == null ) {
                 throw new ServletException( "Page " + blogid + " does not exist, cannot add blog post." );
             }
@@ -174,8 +175,8 @@ public class AtomAPIServlet extends HttpServlet {
     }
 
     private Entry getBlogEntry( final String entryid ) {
-        final WikiPage page = m_engine.getManager( PageManager.class ).getPage( entryid );
-        final WikiPage firstVersion = m_engine.getManager( PageManager.class ).getPage( entryid, 1 );
+        final Page page = m_engine.getManager( PageManager.class ).getPage( entryid );
+        final Page firstVersion = m_engine.getManager( PageManager.class ).getPage( entryid, 1 );
         final Entry entry = SyndicationFactory.newSyndicationEntry();
         final String pageText = m_engine.getManager( PageManager.class ).getText(page.getName());
         final int firstLine = pageText.indexOf('\n');
@@ -207,12 +208,12 @@ public class AtomAPIServlet extends HttpServlet {
      *  Creates and outputs a full list of all available blogs
      */
     private Feed listBlogs() throws ProviderException {
-        final Collection< WikiPage > pages = m_engine.getManager( PageManager.class ).getAllPages();
+        final Collection< Page > pages = m_engine.getManager( PageManager.class ).getAllPages();
         final Feed feed = SyndicationFactory.newSyndicationFeed();
         feed.setTitle("List of blogs at this site");
         feed.setModified( new Date() );
 
-        for( final WikiPage p : pages ) {
+        for( final Page p : pages ) {
             //  List only weblogs
             //  FIXME: Unfortunately, a weblog is not known until it has een executed once, because plugins are off during the initial startup phase.
             log.debug( p.getName() + " = " + p.getAttribute( WeblogPlugin.ATTR_ISWEBLOG ) );
diff --git a/jspwiki-main/src/main/java/org/apache/wiki/rss/AtomFeed.java b/jspwiki-main/src/main/java/org/apache/wiki/rss/AtomFeed.java
index a67539a..86c5ad3 100644
--- a/jspwiki-main/src/main/java/org/apache/wiki/rss/AtomFeed.java
+++ b/jspwiki-main/src/main/java/org/apache/wiki/rss/AtomFeed.java
@@ -20,11 +20,11 @@ package org.apache.wiki.rss;
 
 import org.apache.commons.lang3.time.DateFormatUtils;
 import org.apache.wiki.WikiContext;
-import org.apache.wiki.WikiPage;
 import org.apache.wiki.api.Release;
+import org.apache.wiki.api.core.Attachment;
 import org.apache.wiki.api.core.Engine;
+import org.apache.wiki.api.core.Page;
 import org.apache.wiki.api.exceptions.ProviderException;
-import org.apache.wiki.attachment.Attachment;
 import org.apache.wiki.attachment.AttachmentManager;
 import org.jdom2.Element;
 import org.jdom2.Namespace;
@@ -84,7 +84,7 @@ public class AtomFeed extends Feed {
         }
 
         for( final Entry e : m_entries ) {
-            final WikiPage p = e.getPage();
+            final Page p = e.getPage();
             final Element entryEl = getElement( "entry" );
 
             //  Mandatory elements
diff --git a/jspwiki-main/src/main/java/org/apache/wiki/rss/Entry.java b/jspwiki-main/src/main/java/org/apache/wiki/rss/Entry.java
index aaf0daf..a27fda2 100644
--- a/jspwiki-main/src/main/java/org/apache/wiki/rss/Entry.java
+++ b/jspwiki-main/src/main/java/org/apache/wiki/rss/Entry.java
@@ -18,25 +18,25 @@
  */
 package org.apache.wiki.rss;
 
-import org.apache.wiki.WikiPage;
+import org.apache.wiki.api.core.Page;
+
 
 /**
  *  Represents an entry, that is, an unit of change, in a Feed.
  */
 public class Entry
 {
-    private String   m_content;
-    private String   m_url;
-    private String   m_title;
-    private WikiPage m_page;
-    private String   m_author;
-
-    /**
+    private String m_content;
+    private String m_url;
+    private String m_title;
+    private Page   m_page;
+    private String m_author;
+   /**
      *  Set the author of this entry.
      *  
      *  @param author Name of the author.
      */
-    public void setAuthor( String author )
+    public void setAuthor( final String author )
     {
         m_author = author;
     }
@@ -52,11 +52,11 @@ public class Entry
     }
 
     /**
-     *  Returns the page set by {@link #setPage(WikiPage)}.
+     *  Returns the page set by {@link #setPage(Page)}.
      *  
      *  @return The WikiPage to which this Entry refers to.
      */
-    public WikiPage getPage()
+    public Page getPage()
     {
         return m_page;
     }
@@ -66,8 +66,7 @@ public class Entry
      *  
      *  @param p A valid WikiPage.
      */
-    public void setPage( WikiPage p )
-    {
+    public void setPage( final Page p ) {
         m_page = p;
     }
 
@@ -77,7 +76,7 @@ public class Entry
      *  
      *  @param title A String description of the change.
      */
-    public void setTitle( String title )
+    public void setTitle( final String title )
     {
         m_title = title;
     }
@@ -97,7 +96,7 @@ public class Entry
      *  
      *  @param url An absolute URL to the entry.
      */
-    public void setURL( String url )
+    public void setURL( final String url )
     {
         m_url = url;
     }
@@ -117,7 +116,7 @@ public class Entry
      *  
      *  @param content A String of the content.
      */
-    public void setContent( String content )
+    public void setContent( final String content )
     {
         m_content = content;
     }
diff --git a/jspwiki-main/src/main/java/org/apache/wiki/rss/RSS10Feed.java b/jspwiki-main/src/main/java/org/apache/wiki/rss/RSS10Feed.java
index 57c8d07..bf85987 100644
--- a/jspwiki-main/src/main/java/org/apache/wiki/rss/RSS10Feed.java
+++ b/jspwiki-main/src/main/java/org/apache/wiki/rss/RSS10Feed.java
@@ -19,8 +19,8 @@
 package org.apache.wiki.rss;
 
 import org.apache.wiki.WikiContext;
-import org.apache.wiki.WikiPage;
 import org.apache.wiki.api.core.Engine;
+import org.apache.wiki.api.core.Page;
 import org.apache.wiki.util.XhtmlUtil;
 import org.jdom2.Element;
 import org.jdom2.Namespace;
@@ -80,7 +80,7 @@ public class RSS10Feed extends Feed {
             content.addContent( entry.getContent() );
             item.addContent( content );
 
-            final WikiPage p = entry.getPage();
+            final Page p = entry.getPage();
             if( p.getVersion() != -1 ) {
                 item.addContent( new Element( "version", NS_WIKI ).addContent( Integer.toString( p.getVersion() ) ) );
             }
diff --git a/jspwiki-main/src/main/java/org/apache/wiki/rss/RSS20Feed.java b/jspwiki-main/src/main/java/org/apache/wiki/rss/RSS20Feed.java
index 52874d7..31e9a4d 100644
--- a/jspwiki-main/src/main/java/org/apache/wiki/rss/RSS20Feed.java
+++ b/jspwiki-main/src/main/java/org/apache/wiki/rss/RSS20Feed.java
@@ -19,11 +19,11 @@
 package org.apache.wiki.rss;
 
 import org.apache.wiki.WikiContext;
-import org.apache.wiki.WikiPage;
 import org.apache.wiki.api.Release;
+import org.apache.wiki.api.core.Attachment;
 import org.apache.wiki.api.core.Engine;
+import org.apache.wiki.api.core.Page;
 import org.apache.wiki.api.exceptions.ProviderException;
-import org.apache.wiki.attachment.Attachment;
 import org.apache.wiki.attachment.AttachmentManager;
 import org.apache.wiki.variables.VariableManager;
 import org.jdom2.Element;
@@ -68,45 +68,32 @@ public class RSS20Feed extends Feed
         if( m_wikiContext.getHttpRequest() != null )
             servletContext = m_wikiContext.getHttpRequest().getSession().getServletContext();
 
-        for( final Iterator< Entry > i = m_entries.iterator(); i.hasNext(); )
-        {
-            final Entry e = i.next();
-            final WikiPage p = e.getPage();
-
+        for( final Entry e : m_entries ) {
+            final Page p = e.getPage();
             final String url = e.getURL();
-
-            final Element item = new Element("item");
-
-            item.addContent( new Element("link").setText(url) );
-
-            item.addContent( new Element("title").setText( e.getTitle()) );
-
-            item.addContent( new Element("description").setText( e.getContent()) );
+            final Element item = new Element( "item" );
+            item.addContent( new Element( "link" ).setText( url ) );
+            item.addContent( new Element( "title" ).setText( e.getTitle() ) );
+            item.addContent( new Element( "description" ).setText( e.getContent() ) );
 
             //
             //  Attachments for enclosures
             //
+            if( engine.getManager( AttachmentManager.class ).hasAttachments( p ) && servletContext != null ) {
+                try {
+                    final List< Attachment > c = engine.getManager( AttachmentManager.class ).listAttachments( p );
 
-            if( engine.getManager( AttachmentManager.class ).hasAttachments(p) && servletContext != null )
-            {
-                try
-                {
-                    final List< Attachment > c = engine.getManager( AttachmentManager.class ).listAttachments(p);
-
-                    for( final Iterator< Attachment > a = c.iterator(); a.hasNext(); )
-                    {
+                    for( final Iterator< Attachment > a = c.iterator(); a.hasNext(); ) {
                         final Attachment att = a.next();
 
-                        final Element attEl = new Element("enclosure");
+                        final Element attEl = new Element( "enclosure" );
                         attEl.setAttribute( "url", engine.getURL( WikiContext.ATTACH, att.getName(), null ) );
-                        attEl.setAttribute( "length", Long.toString(att.getSize()) );
+                        attEl.setAttribute( "length", Long.toString( att.getSize() ) );
                         attEl.setAttribute( "type", getMimeType( servletContext, att.getFileName() ) );
 
                         item.addContent( attEl );
                     }
-                }
-                catch( final ProviderException ex )
-                {
+                } catch( final ProviderException ex ) {
                     // FIXME: log.info("Can't get attachment data",ex);
                 }
             }
@@ -116,11 +103,11 @@ public class RSS20Feed extends Feed
             //
             final Calendar cal = Calendar.getInstance();
             cal.setTime( p.getLastModified() );
-            cal.add( Calendar.MILLISECOND,
-                     - (cal.get( Calendar.ZONE_OFFSET ) +
-                        (cal.getTimeZone().inDaylightTime( p.getLastModified() ) ? cal.get( Calendar.DST_OFFSET ) : 0 )) );
+            cal.add( Calendar.MILLISECOND, -( cal.get( Calendar.ZONE_OFFSET ) + ( cal.getTimeZone().inDaylightTime( p.getLastModified() ) ?
+                    cal.get( Calendar.DST_OFFSET ) :
+                    0 ) ) );
 
-            item.addContent( new Element("pubDate").setText(fmt.format(cal.getTime())) );
+            item.addContent( new Element( "pubDate" ).setText( fmt.format( cal.getTime() ) ) );
 
             list.add( item );
         }
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 ff11ba1..59ac8c1 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
@@ -23,6 +23,7 @@ import org.apache.wiki.WikiContext;
 import org.apache.wiki.WikiPage;
 import org.apache.wiki.WikiSession;
 import org.apache.wiki.api.core.Engine;
+import org.apache.wiki.api.core.Page;
 import org.apache.wiki.api.core.Session;
 import org.apache.wiki.api.providers.WikiProvider;
 import org.apache.wiki.attachment.Attachment;
@@ -151,7 +152,7 @@ public class RSSGenerator {
         return s.trim();
     }
 
-    private String getAuthor( final WikiPage page ) {
+    private String getAuthor( final Page page ) {
         String author = page.getAuthor();
         if( author == null ) {
             author = "An unknown author";
@@ -181,7 +182,7 @@ public class RSSGenerator {
         return sb.toString();
     }
 
-    private String getPageDescription( final WikiPage page ) {
+    private String getPageDescription( final Page page ) {
         final StringBuilder buf = new StringBuilder();
         final String author = getAuthor( page );
         final WikiContext ctx = new WikiContext( m_engine, page );
@@ -200,7 +201,7 @@ public class RSSGenerator {
         return buf.toString();
     }
 
-    private String getEntryDescription( final WikiPage page ) {
+    private String getEntryDescription( final Page page ) {
         final String res;
         if( page instanceof Attachment ) {
             res = getAttachmentDescription( (Attachment)page );
@@ -212,7 +213,7 @@ public class RSSGenerator {
     }
 
     // FIXME: This should probably return something more intelligent
-    private String getEntryTitle( final WikiPage page )
+    private String getEntryTitle( final Page page )
     {
         return page.getName() + ", version " + page.getVersion();
     }
@@ -256,7 +257,7 @@ public class RSSGenerator {
      * @return Fully formed XML.
      * @throws IllegalArgumentException If an illegal mode is given.
      */
-    public String generateFeed( final WikiContext wikiContext, final List< WikiPage > changed, final String mode, final String type ) throws IllegalArgumentException {
+    public String generateFeed( final WikiContext wikiContext, final List< Page > changed, final String mode, final String type ) throws IllegalArgumentException {
         final Feed feed;
         final String res;
 
@@ -317,12 +318,12 @@ public class RSSGenerator {
         feed.setChannelLanguage( m_channelLanguage );
         feed.setChannelDescription( m_channelDescription );
 
-        final Set< WikiPage > changed = m_engine.getManager( PageManager.class ).getRecentChanges();
+        final Set< Page > changed = m_engine.getManager( PageManager.class ).getRecentChanges();
 
         final Session session = WikiSession.guestSession( m_engine );
         int items = 0;
-        for( final Iterator< WikiPage > i = changed.iterator(); i.hasNext() && items < 15; items++ ) {
-            final WikiPage page = i.next();
+        for( final Iterator< Page > i = changed.iterator(); i.hasNext() && items < 15; items++ ) {
+            final Page page = i.next();
 
             //  Check if the anonymous user has view access to this page.
             if( !m_engine.getManager( AuthorizationManager.class ).checkPermission(session, new PagePermission(page,PagePermission.VIEW_ACTION) ) ) {
@@ -358,7 +359,7 @@ public class RSSGenerator {
      * @param feed A Feed object to fill.
      * @return the RSS representation of the wiki context
      */
-    protected String generateWikiPageRSS( final WikiContext wikiContext, final List< WikiPage > changed, final Feed feed ) {
+    protected String generateWikiPageRSS( final WikiContext wikiContext, final List< Page > changed, final Feed feed ) {
         feed.setChannelTitle( m_engine.getApplicationName()+": "+wikiContext.getPage().getName() );
         feed.setFeedURL( wikiContext.getViewURL( wikiContext.getPage().getName() ) );
         final String language = m_engine.getManager( VariableManager.class ).getVariable( wikiContext, PROP_CHANNEL_LANGUAGE );
@@ -377,8 +378,8 @@ public class RSSGenerator {
         changed.sort( new PageTimeComparator() );
 
         int items = 0;
-        for( final Iterator< WikiPage > i = changed.iterator(); i.hasNext() && items < 15; items++ ) {
-            final WikiPage page = i.next();
+        for( final Iterator< Page > i = changed.iterator(); i.hasNext() && items < 15; items++ ) {
+            final Page page = i.next();
             final Entry e = new Entry();
             e.setPage( page );
             String url;
@@ -411,7 +412,7 @@ public class RSSGenerator {
      *  @param feed A valid Feed object.  The feed will be used to create the RSS/Atom, depending on which kind of an object you want to put in it.
      *  @return A String of valid RSS or Atom.
      */
-    protected String generateBlogRSS( final WikiContext wikiContext, final List< WikiPage > changed, final Feed feed ) {
+    protected String generateBlogRSS( final WikiContext wikiContext, final List< Page > changed, final Feed feed ) {
         if( log.isDebugEnabled() ) {
             log.debug( "Generating RSS for blog, size=" + changed.size() );
         }
@@ -440,8 +441,8 @@ public class RSSGenerator {
         changed.sort( new PageTimeComparator() );
 
         int items = 0;
-        for( final Iterator< WikiPage > i = changed.iterator(); i.hasNext() && items < 15; items++ ) {
-            final WikiPage page = i.next();
+        for( final Iterator< Page > i = changed.iterator(); i.hasNext() && items < 15; items++ ) {
+            final Page page = i.next();
             final Entry e = new Entry();
             e.setPage( page );
             final String url;
diff --git a/jspwiki-main/src/main/java/org/apache/wiki/search/DefaultSearchManager.java b/jspwiki-main/src/main/java/org/apache/wiki/search/DefaultSearchManager.java
index 7172221..824c20a 100644
--- a/jspwiki-main/src/main/java/org/apache/wiki/search/DefaultSearchManager.java
+++ b/jspwiki-main/src/main/java/org/apache/wiki/search/DefaultSearchManager.java
@@ -22,14 +22,15 @@ import org.apache.commons.lang3.StringUtils;
 import org.apache.commons.lang3.time.StopWatch;
 import org.apache.log4j.Logger;
 import org.apache.wiki.WikiContext;
-import org.apache.wiki.WikiPage;
 import org.apache.wiki.ajax.AjaxUtil;
 import org.apache.wiki.ajax.WikiAjaxDispatcherServlet;
 import org.apache.wiki.ajax.WikiAjaxServlet;
 import org.apache.wiki.api.core.Engine;
+import org.apache.wiki.api.core.Page;
 import org.apache.wiki.api.exceptions.FilterException;
 import org.apache.wiki.api.exceptions.NoRequiredPropertyException;
 import org.apache.wiki.api.filters.BasePageFilter;
+import org.apache.wiki.api.search.SearchResult;
 import org.apache.wiki.event.WikiEvent;
 import org.apache.wiki.event.WikiEventManager;
 import org.apache.wiki.event.WikiPageEvent;
@@ -261,7 +262,7 @@ public class DefaultSearchManager extends BasePageFilter implements SearchManage
         if( event instanceof WikiPageEvent && event.getType() == WikiPageEvent.PAGE_DELETE_REQUEST ) {
             final String pageName = ( ( WikiPageEvent ) event ).getPageName();
 
-            final WikiPage p = m_engine.getManager( PageManager.class ).getPage( pageName );
+            final Page p = m_engine.getManager( PageManager.class ).getPage( pageName );
             if( p != null ) {
                 pageRemoved( p );
             }
diff --git a/jspwiki-main/src/main/java/org/apache/wiki/search/SearchManager.java b/jspwiki-main/src/main/java/org/apache/wiki/search/SearchManager.java
index 9c784f2..a483212 100644
--- a/jspwiki-main/src/main/java/org/apache/wiki/search/SearchManager.java
+++ b/jspwiki-main/src/main/java/org/apache/wiki/search/SearchManager.java
@@ -22,6 +22,7 @@ import org.apache.wiki.api.core.Context;
 import org.apache.wiki.api.core.Page;
 import org.apache.wiki.api.exceptions.ProviderException;
 import org.apache.wiki.api.filters.PageFilter;
+import org.apache.wiki.api.search.SearchResult;
 import org.apache.wiki.event.WikiEventListener;
 import org.apache.wiki.modules.InternalModule;
 
diff --git a/jspwiki-main/src/main/java/org/apache/wiki/tags/AttachmentsIteratorTag.java b/jspwiki-main/src/main/java/org/apache/wiki/tags/AttachmentsIteratorTag.java
index 1825aca..8f249a0 100644
--- a/jspwiki-main/src/main/java/org/apache/wiki/tags/AttachmentsIteratorTag.java
+++ b/jspwiki-main/src/main/java/org/apache/wiki/tags/AttachmentsIteratorTag.java
@@ -21,9 +21,10 @@ package org.apache.wiki.tags;
 import org.apache.log4j.Logger;
 import org.apache.wiki.WikiContext;
 import org.apache.wiki.WikiPage;
+import org.apache.wiki.api.core.Attachment;
+import org.apache.wiki.api.core.Context;
 import org.apache.wiki.api.core.Engine;
 import org.apache.wiki.api.exceptions.ProviderException;
-import org.apache.wiki.attachment.Attachment;
 import org.apache.wiki.attachment.AttachmentManager;
 import org.apache.wiki.pages.PageManager;
 
@@ -80,9 +81,9 @@ public class AttachmentsIteratorTag extends IteratorTag {
 
                 if( m_iterator.hasNext() ) {
                     final Attachment  att = (Attachment) m_iterator.next();
-                    final WikiContext context = (WikiContext)m_wikiContext.clone();
+                    final Context context = m_wikiContext.clone();
                     context.setPage( att );
-                    pageContext.setAttribute( WikiContext.ATTR_CONTEXT, context, PageContext.REQUEST_SCOPE );
+                    pageContext.setAttribute( Context.ATTR_CONTEXT, context, PageContext.REQUEST_SCOPE );
                     pageContext.setAttribute( getId(), att );
                 } else {
                     return SKIP_BODY;
@@ -118,9 +119,9 @@ public class AttachmentsIteratorTag extends IteratorTag {
 
         if( m_iterator != null && m_iterator.hasNext() ) {
             final Attachment att = ( Attachment )m_iterator.next();
-            final WikiContext context = ( WikiContext )m_wikiContext.clone();
+            final Context context = m_wikiContext.clone();
             context.setPage( att );
-            pageContext.setAttribute( WikiContext.ATTR_CONTEXT,  context, PageContext.REQUEST_SCOPE );
+            pageContext.setAttribute( Context.ATTR_CONTEXT,  context, PageContext.REQUEST_SCOPE );
             pageContext.setAttribute( getId(), att );
 
             return EVAL_BODY_BUFFERED;
diff --git a/jspwiki-main/src/main/java/org/apache/wiki/tags/CheckVersionTag.java b/jspwiki-main/src/main/java/org/apache/wiki/tags/CheckVersionTag.java
index 58d4676..28e7ea9 100644
--- a/jspwiki-main/src/main/java/org/apache/wiki/tags/CheckVersionTag.java
+++ b/jspwiki-main/src/main/java/org/apache/wiki/tags/CheckVersionTag.java
@@ -21,6 +21,7 @@ package org.apache.wiki.tags;
 import org.apache.wiki.InternalWikiException;
 import org.apache.wiki.WikiPage;
 import org.apache.wiki.api.core.Engine;
+import org.apache.wiki.api.core.Page;
 import org.apache.wiki.pages.PageManager;
 
 
@@ -80,19 +81,18 @@ public class CheckVersionTag extends WikiTagBase {
         final Engine engine = m_wikiContext.getEngine();
         final WikiPage page   = m_wikiContext.getPage();
 
-        if( page != null && engine.getManager( PageManager.class ).wikiPageExists(page.getName()) ) {
+        if( page != null && engine.getManager( PageManager.class ).wikiPageExists( page.getName() ) ) {
             final int version = page.getVersion();
             final boolean include;
-            final WikiPage latest = engine.getManager( PageManager.class ).getPage( page.getName() );
+            final Page latest = engine.getManager( PageManager.class ).getPage( page.getName() );
 
             switch( m_mode ) {
-                case LATEST    : include = (version < 0) || (latest.getVersion() == version); break;
-                case NOTLATEST : include = (version > 0) && (latest.getVersion() != version); break;
-                case FIRST     : include = (version == 1 ) || (version < 0 && latest.getVersion() == 1); break;
+                case LATEST    : include = ( version < 0 ) || ( latest.getVersion() == version ); break;
+                case NOTLATEST : include = ( version > 0 ) && ( latest.getVersion() != version ); break;
+                case FIRST     : include = ( version == 1 ) || ( version < 0 && latest.getVersion() == 1 ); break;
                 case NOTFIRST  : include = version > 1; break;
-                default: throw new InternalWikiException("Mode which is not available!");
+                default: throw new InternalWikiException( "Mode which is not available!" );
             }
-
             if( include ) {
                 return EVAL_BODY_INCLUDE;
             }
diff --git a/jspwiki-main/src/main/java/org/apache/wiki/tags/DiffLinkTag.java b/jspwiki-main/src/main/java/org/apache/wiki/tags/DiffLinkTag.java
index 6c75691..c90d478 100644
--- a/jspwiki-main/src/main/java/org/apache/wiki/tags/DiffLinkTag.java
+++ b/jspwiki-main/src/main/java/org/apache/wiki/tags/DiffLinkTag.java
@@ -19,8 +19,8 @@
 package org.apache.wiki.tags;
 
 import org.apache.wiki.WikiContext;
-import org.apache.wiki.WikiPage;
 import org.apache.wiki.api.core.Engine;
+import org.apache.wiki.api.core.Page;
 import org.apache.wiki.api.providers.WikiProvider;
 import org.apache.wiki.pages.PageManager;
 
@@ -54,8 +54,8 @@ public class DiffLinkTag extends WikiLinkTag {
     private String m_version    = VER_LATEST;
     private String m_newVersion = VER_LATEST;
 
-    @Override public void initTag()
-    {
+    @Override
+    public void initTag() {
         super.initTag();
         m_version = m_newVersion = VER_LATEST;
     }
@@ -80,7 +80,8 @@ public class DiffLinkTag extends WikiLinkTag {
         m_newVersion = arg;
     }
 
-    @Override public final int doWikiStartTag() throws IOException {
+    @Override
+    public final int doWikiStartTag() throws IOException {
         final Engine engine = m_wikiContext.getEngine();
         String pageName = m_pageName;
 
@@ -102,8 +103,8 @@ public class DiffLinkTag extends WikiLinkTag {
             return SKIP_BODY;
         }
 
-        if( VER_LATEST.equals(getVersion()) ) {
-            final WikiPage latest = engine.getManager( PageManager.class ).getPage( pageName, WikiProvider.LATEST_VERSION );
+        if( VER_LATEST.equals( getVersion() ) ) {
+            final Page latest = engine.getManager( PageManager.class ).getPage( pageName, WikiProvider.LATEST_VERSION );
             if( latest == null ) {
                 // This may occur if matchEnglishPlurals is on, and we access the wrong page name
                 return SKIP_BODY;
@@ -119,7 +120,7 @@ public class DiffLinkTag extends WikiLinkTag {
         }
 
         if( VER_LATEST.equals( getNewVersion() ) ) {
-            final WikiPage latest = engine.getManager( PageManager.class ).getPage( pageName, WikiProvider.LATEST_VERSION );
+            final Page latest = engine.getManager( PageManager.class ).getPage( pageName, WikiProvider.LATEST_VERSION );
             r2 = latest.getVersion();
         } else if( VER_PREVIOUS.equals( getNewVersion() ) ) {
             r2 = m_wikiContext.getPage().getVersion() - 1;
diff --git a/jspwiki-main/src/main/java/org/apache/wiki/tags/EditLinkTag.java b/jspwiki-main/src/main/java/org/apache/wiki/tags/EditLinkTag.java
index 62622e1..ad0957b 100644
--- a/jspwiki-main/src/main/java/org/apache/wiki/tags/EditLinkTag.java
+++ b/jspwiki-main/src/main/java/org/apache/wiki/tags/EditLinkTag.java
@@ -19,8 +19,8 @@
 package org.apache.wiki.tags;
 
 import org.apache.wiki.WikiContext;
-import org.apache.wiki.WikiPage;
 import org.apache.wiki.api.core.Engine;
+import org.apache.wiki.api.core.Page;
 import org.apache.wiki.pages.PageManager;
 
 import javax.servlet.jsp.JspWriter;
@@ -73,7 +73,7 @@ public class EditLinkTag extends WikiLinkTag {
     @Override
     public final int doWikiStartTag() throws IOException {
         final Engine engine   = m_wikiContext.getEngine();
-        WikiPage page = null;
+        Page page = null;
         String versionString = "";
         final String pageName;
         
diff --git a/jspwiki-main/src/main/java/org/apache/wiki/tags/InsertPageTag.java b/jspwiki-main/src/main/java/org/apache/wiki/tags/InsertPageTag.java
index 1497f93..f8b36ce 100644
--- a/jspwiki-main/src/main/java/org/apache/wiki/tags/InsertPageTag.java
+++ b/jspwiki-main/src/main/java/org/apache/wiki/tags/InsertPageTag.java
@@ -21,6 +21,7 @@ package org.apache.wiki.tags;
 import org.apache.log4j.Logger;
 import org.apache.wiki.WikiPage;
 import org.apache.wiki.api.core.Engine;
+import org.apache.wiki.api.core.Page;
 import org.apache.wiki.api.exceptions.ProviderException;
 import org.apache.wiki.pages.PageManager;
 import org.apache.wiki.render.RenderingManager;
@@ -60,7 +61,8 @@ public class InsertPageTag extends WikiTagBase {
     protected String m_pageName = null;
     private   int    m_mode = HTML;
 
-    @Override public void initTag() {
+    @Override
+    public void initTag() {
         super.initTag();
         m_pageName = null;
         m_mode = HTML;
@@ -84,9 +86,10 @@ public class InsertPageTag extends WikiTagBase {
         }
     }
 
-    @Override public final int doWikiStartTag() throws IOException, ProviderException {
+    @Override
+    public final int doWikiStartTag() throws IOException, ProviderException {
         final Engine engine = m_wikiContext.getEngine();
-        final WikiPage insertedPage;
+        final Page insertedPage;
 
         //
         //  NB: The page might not really exist if the user is currently
@@ -120,4 +123,5 @@ public class InsertPageTag extends WikiTagBase {
 
         return SKIP_BODY;
     }
+
 }
diff --git a/jspwiki-main/src/main/java/org/apache/wiki/tags/LinkTag.java b/jspwiki-main/src/main/java/org/apache/wiki/tags/LinkTag.java
index e7565ea..872aa83 100644
--- a/jspwiki-main/src/main/java/org/apache/wiki/tags/LinkTag.java
+++ b/jspwiki-main/src/main/java/org/apache/wiki/tags/LinkTag.java
@@ -21,10 +21,11 @@ package org.apache.wiki.tags;
 import org.apache.log4j.Logger;
 import org.apache.wiki.WikiContext;
 import org.apache.wiki.WikiPage;
+import org.apache.wiki.api.core.Attachment;
 import org.apache.wiki.api.core.Engine;
+import org.apache.wiki.api.core.Page;
 import org.apache.wiki.api.exceptions.ProviderException;
 import org.apache.wiki.api.providers.WikiProvider;
-import org.apache.wiki.attachment.Attachment;
 import org.apache.wiki.attachment.AttachmentManager;
 import org.apache.wiki.pages.PageManager;
 import org.apache.wiki.parser.LinkParsingOperations;
@@ -208,7 +209,7 @@ public class LinkTag extends WikiLinkTag implements ParamHandler, BodyTag {
                 final String parms = (m_version != null) ? "version="+getVersion() : null;
 
                 //  Internal wiki link, but is it an attachment link?
-                final WikiPage p = engine.getManager( PageManager.class ).getPage( m_pageName );
+                final Page p = engine.getManager( PageManager.class ).getPage( m_pageName );
                 if( p instanceof Attachment ) {
                     url = m_wikiContext.getURL( WikiContext.ATTACH, m_pageName );
                 } else if( (hashMark = m_ref.indexOf('#')) != -1 ) {
@@ -234,7 +235,7 @@ public class LinkTag extends WikiLinkTag implements ParamHandler, BodyTag {
                 }
             }
         } else if( m_pageName != null && m_pageName.length() > 0 ) {
-            final WikiPage p = engine.getManager( PageManager.class ).getPage( m_pageName );
+            final Page p = engine.getManager( PageManager.class ).getPage( m_pageName );
 
             String parms = (m_version != null) ? "version="+getVersion() : null;
 
@@ -294,7 +295,7 @@ public class LinkTag extends WikiLinkTag implements ParamHandler, BodyTag {
             int r2;
 
             if( DiffLinkTag.VER_LATEST.equals( getVersion() ) ) {
-                final WikiPage latest = engine.getManager( PageManager.class ).getPage( page, WikiProvider.LATEST_VERSION );
+                final Page latest = engine.getManager( PageManager.class ).getPage( page, WikiProvider.LATEST_VERSION );
 
                 r1 = latest.getVersion();
             } else if( DiffLinkTag.VER_PREVIOUS.equals(getVersion()) ) {
@@ -307,7 +308,7 @@ public class LinkTag extends WikiLinkTag implements ParamHandler, BodyTag {
             }
 
             if( DiffLinkTag.VER_LATEST.equals(m_compareToVersion) ) {
-                final WikiPage latest = engine.getManager( PageManager.class ).getPage( page, WikiProvider.LATEST_VERSION );
+                final Page latest = engine.getManager( PageManager.class ).getPage( page, WikiProvider.LATEST_VERSION );
 
                 r2 = latest.getVersion();
             } else if( DiffLinkTag.VER_PREVIOUS.equals(m_compareToVersion) ) {
diff --git a/jspwiki-main/src/main/java/org/apache/wiki/tags/NoSuchPageTag.java b/jspwiki-main/src/main/java/org/apache/wiki/tags/NoSuchPageTag.java
index adbfacc..a5edfa7 100644
--- a/jspwiki-main/src/main/java/org/apache/wiki/tags/NoSuchPageTag.java
+++ b/jspwiki-main/src/main/java/org/apache/wiki/tags/NoSuchPageTag.java
@@ -18,8 +18,8 @@
  */
 package org.apache.wiki.tags;
 
-import org.apache.wiki.WikiPage;
 import org.apache.wiki.api.core.Engine;
+import org.apache.wiki.api.core.Page;
 import org.apache.wiki.api.exceptions.ProviderException;
 import org.apache.wiki.pages.PageManager;
 
@@ -36,7 +36,8 @@ public class NoSuchPageTag extends WikiTagBase {
     
     private String m_pageName;
 
-    @Override public void initTag() {
+    @Override
+    public void initTag() {
         super.initTag();
         m_pageName = null;
     }
@@ -51,9 +52,10 @@ public class NoSuchPageTag extends WikiTagBase {
         return m_pageName;
     }
 
-    @Override public int doWikiStartTag() throws IOException, ProviderException {
+    @Override
+    public int doWikiStartTag() throws IOException, ProviderException {
         final Engine engine = m_wikiContext.getEngine();
-        final WikiPage page;
+        final Page page;
 
         if( m_pageName == null ) {
             page = m_wikiContext.getPage();
diff --git a/jspwiki-main/src/main/java/org/apache/wiki/tags/PermissionTag.java b/jspwiki-main/src/main/java/org/apache/wiki/tags/PermissionTag.java
index 5bf62a3..c1b6bf4 100644
--- a/jspwiki-main/src/main/java/org/apache/wiki/tags/PermissionTag.java
+++ b/jspwiki-main/src/main/java/org/apache/wiki/tags/PermissionTag.java
@@ -19,8 +19,8 @@
 package org.apache.wiki.tags;
 
 import org.apache.commons.lang3.StringUtils;
-import org.apache.wiki.WikiPage;
 import org.apache.wiki.api.core.Command;
+import org.apache.wiki.api.core.Page;
 import org.apache.wiki.api.core.Session;
 import org.apache.wiki.api.providers.WikiProvider;
 import org.apache.wiki.auth.AuthorizationManager;
@@ -103,10 +103,10 @@ public class PermissionTag extends WikiTagBase {
      *  @return true if granted, false if not
      */
     private boolean checkPermission( final String permission ) {
-        final Session session            = m_wikiContext.getWikiSession();
-        final WikiPage    page           = m_wikiContext.getPage();
-        final AuthorizationManager mgr   = m_wikiContext.getEngine().getManager( AuthorizationManager.class );
-        boolean gotPermission      = false;
+        final Session session          = m_wikiContext.getWikiSession();
+        final Page page                = m_wikiContext.getPage();
+        final AuthorizationManager mgr = m_wikiContext.getEngine().getManager( AuthorizationManager.class );
+        boolean gotPermission          = false;
         
         if ( CREATE_GROUPS.equals( permission ) || CREATE_PAGES.equals( permission ) || EDIT_PREFERENCES.equals( permission ) || EDIT_PROFILE.equals( permission ) || LOGIN.equals( permission ) ) {
             gotPermission = mgr.checkPermission( session, new WikiPermission( page.getWiki(), permission ) );
@@ -131,7 +131,7 @@ public class PermissionTag extends WikiTagBase {
             //  Edit tag also checks that we're not trying to edit an old version: they cannot be edited.
             //
             if( EDIT.equals(permission) ) {
-                final WikiPage latest = m_wikiContext.getEngine().getManager( PageManager.class ).getPage( page.getName() );
+                final Page latest = m_wikiContext.getEngine().getManager( PageManager.class ).getPage( page.getName() );
                 if( page.getVersion() != WikiProvider.LATEST_VERSION && latest.getVersion() != page.getVersion() ) {
                     return false;
                 }
diff --git a/jspwiki-main/src/main/java/org/apache/wiki/ui/CommandResolver.java b/jspwiki-main/src/main/java/org/apache/wiki/ui/CommandResolver.java
index f24f830..fd913c8 100644
--- a/jspwiki-main/src/main/java/org/apache/wiki/ui/CommandResolver.java
+++ b/jspwiki-main/src/main/java/org/apache/wiki/ui/CommandResolver.java
@@ -18,8 +18,8 @@
  */
 package org.apache.wiki.ui;
 
-import org.apache.wiki.WikiPage;
 import org.apache.wiki.api.core.Command;
+import org.apache.wiki.api.core.Page;
 import org.apache.wiki.api.exceptions.ProviderException;
 
 import javax.servlet.http.HttpServletRequest;
@@ -135,6 +135,6 @@ public interface CommandResolver {
      * @param page the name of the page to look up; this page <em>must</em> exist
      * @return the wiki page
      */
-    WikiPage resolvePage( HttpServletRequest request, String page );
+    Page resolvePage( HttpServletRequest request, String page );
 
 }
diff --git a/jspwiki-main/src/main/java/org/apache/wiki/ui/DefaultCommandResolver.java b/jspwiki-main/src/main/java/org/apache/wiki/ui/DefaultCommandResolver.java
index a2a5c82..c80aad5 100644
--- a/jspwiki-main/src/main/java/org/apache/wiki/ui/DefaultCommandResolver.java
+++ b/jspwiki-main/src/main/java/org/apache/wiki/ui/DefaultCommandResolver.java
@@ -23,6 +23,7 @@ import org.apache.wiki.InternalWikiException;
 import org.apache.wiki.WikiPage;
 import org.apache.wiki.api.core.Command;
 import org.apache.wiki.api.core.Engine;
+import org.apache.wiki.api.core.Page;
 import org.apache.wiki.api.exceptions.ProviderException;
 import org.apache.wiki.api.providers.WikiProvider;
 import org.apache.wiki.auth.GroupPrincipal;
@@ -149,7 +150,7 @@ public final class DefaultCommandResolver implements CommandResolver {
         // If we were passed a page parameter, try to resolve it
         if ( command instanceof PageCommand && pageName != null ) {
             // If there's a matching WikiPage, "wrap" the command
-            final WikiPage page = resolvePage( request, pageName );
+            final Page page = resolvePage( request, pageName );
             return command.targetedCommand( page );
         }
 
@@ -294,7 +295,7 @@ public final class DefaultCommandResolver implements CommandResolver {
      * {@inheritDoc}
      */
     @Override
-    public WikiPage resolvePage( final HttpServletRequest request, String page ) {
+    public Page resolvePage( final HttpServletRequest request, String page ) {
         // See if the user included a version parameter
         int version = WikiProvider.LATEST_VERSION;
         final String rev = request.getParameter( "version" );
@@ -307,7 +308,7 @@ public final class DefaultCommandResolver implements CommandResolver {
             }
         }
 
-        WikiPage wikipage = m_engine.getManager( PageManager.class ).getPage( page, version );
+        Page wikipage = m_engine.getManager( PageManager.class ).getPage( page, version );
         if ( wikipage == null ) {
             page = MarkupParser.cleanLink( page );
             wikipage = new WikiPage( m_engine, page );
diff --git a/jspwiki-main/src/main/java/org/apache/wiki/ui/admin/beans/SearchManagerBean.java b/jspwiki-main/src/main/java/org/apache/wiki/ui/admin/beans/SearchManagerBean.java
index 6ec3f71..fd7f22e 100644
--- a/jspwiki-main/src/main/java/org/apache/wiki/ui/admin/beans/SearchManagerBean.java
+++ b/jspwiki-main/src/main/java/org/apache/wiki/ui/admin/beans/SearchManagerBean.java
@@ -20,8 +20,8 @@ package org.apache.wiki.ui.admin.beans;
 
 import org.apache.wiki.WikiBackgroundThread;
 import org.apache.wiki.WikiContext;
-import org.apache.wiki.WikiPage;
 import org.apache.wiki.api.core.Engine;
+import org.apache.wiki.api.core.Page;
 import org.apache.wiki.pages.PageManager;
 import org.apache.wiki.search.SearchManager;
 import org.apache.wiki.ui.admin.SimpleAdminBean;
@@ -90,7 +90,7 @@ public class SearchManagerBean extends SimpleAdminBean {
 
                 @Override
                 public void backgroundTask() throws Exception {
-                    final Collection< WikiPage > allPages = m_engine.getManager( PageManager.class ).getAllPages();
+                    final Collection< Page > allPages = m_engine.getManager( PageManager.class ).getAllPages();
 
                     final SearchManager mgr = m_engine.getManager( SearchManager.class );
                     m_max = allPages.size();
@@ -104,7 +104,7 @@ public class SearchManagerBean extends SimpleAdminBean {
                     };
                     m_engine.getManager( ProgressManager.class ).startProgress( pi, PROGRESS_ID );
 
-                    for( final WikiPage page : allPages ) {
+                    for( final Page page : allPages ) {
                         mgr.reindexPage( page );
                         m_count++;
                     }
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 bd7cbc1..ec7f88c 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,9 +18,9 @@
  */
 package org.apache.wiki.xmlrpc;
 
-import org.apache.wiki.WikiContext;
-import org.apache.wiki.WikiPage;
+import org.apache.wiki.api.core.Context;
 import org.apache.wiki.api.core.Engine;
+import org.apache.wiki.api.core.Page;
 import org.apache.wiki.auth.AuthorizationManager;
 import org.apache.wiki.auth.permissions.PagePermission;
 import org.apache.wiki.auth.permissions.WikiPermission;
@@ -56,21 +56,22 @@ public abstract class AbstractRPCHandler implements WikiRPCHandler {
     public static final String LINK_INLINE   = "inline";
 
     protected Engine m_engine;
-    protected WikiContext m_context;
+    protected Context m_context;
 
     /** This is the currently implemented JSPWiki XML-RPC code revision. */
     public static final int RPC_VERSION = 1;
 
-    @Override public void initialize( final WikiContext context ) {
+    @Override
+    public void initialize( final Context context ) {
         m_context = context;
         m_engine  = context.getEngine();
     }
 
-    protected abstract Hashtable encodeWikiPage( WikiPage p );
+    protected abstract Hashtable encodeWikiPage( Page p );
 
     public Vector getRecentChanges( final Date since ) {
         checkPermission( PagePermission.VIEW );
-        final Set< WikiPage > pages = m_engine.getManager( PageManager.class ).getRecentChanges();
+        final Set< Page > pages = m_engine.getManager( PageManager.class ).getRecentChanges();
         final Vector< Hashtable< ?, ? > > result = new Vector<>();
 
         // Transform UTC into local time.
@@ -79,7 +80,7 @@ public abstract class AbstractRPCHandler implements WikiRPCHandler {
         cal.add( Calendar.MILLISECOND, cal.get( Calendar.ZONE_OFFSET ) +
                   (cal.getTimeZone().inDaylightTime( since ) ? cal.get( Calendar.DST_OFFSET ) : 0 ) );
 
-        for( final WikiPage page : pages ) {
+        for( final Page page : pages ) {
             if( page.getLastModified().after( cal.getTime() ) ) {
                 result.add( encodeWikiPage( page ) );
             }
diff --git a/jspwiki-main/src/main/java/org/apache/wiki/xmlrpc/MetaWeblogHandler.java b/jspwiki-main/src/main/java/org/apache/wiki/xmlrpc/MetaWeblogHandler.java
index fbd82a9..b9cd7a2 100644
--- a/jspwiki-main/src/main/java/org/apache/wiki/xmlrpc/MetaWeblogHandler.java
+++ b/jspwiki-main/src/main/java/org/apache/wiki/xmlrpc/MetaWeblogHandler.java
@@ -21,7 +21,9 @@ package org.apache.wiki.xmlrpc;
 import org.apache.log4j.Logger;
 import org.apache.wiki.WikiContext;
 import org.apache.wiki.WikiPage;
+import org.apache.wiki.api.core.Context;
 import org.apache.wiki.api.core.Engine;
+import org.apache.wiki.api.core.Page;
 import org.apache.wiki.attachment.Attachment;
 import org.apache.wiki.attachment.AttachmentManager;
 import org.apache.wiki.auth.AuthenticationManager;
@@ -56,13 +58,13 @@ public class MetaWeblogHandler implements WikiRPCHandler {
 
     private static final Logger log = Logger.getLogger( MetaWeblogHandler.class );
 
-    private WikiContext m_context;
+    private Context m_context;
 
     /**
      *  {@inheritDoc}
      */
     @Override
-    public void initialize( final WikiContext context )
+    public void initialize( final Context context )
     {
         m_context = context;
     }
@@ -76,7 +78,7 @@ public class MetaWeblogHandler implements WikiRPCHandler {
      *
      *  @throws XmlRpcException with the correct error message, if auth fails.
      */
-    private void checkPermissions( final WikiPage page,
+    private void checkPermissions( final Page page,
                                    final String username,
                                    final String password,
                                    final String permission ) throws XmlRpcException {
@@ -106,7 +108,7 @@ public class MetaWeblogHandler implements WikiRPCHandler {
      *  @return An empty hashtable.
      */
     public Hashtable< Object, Object > getCategories( final String blogid, final String username, final String password )  throws XmlRpcException {
-        final WikiPage page = m_context.getEngine().getManager( PageManager.class ).getPage( blogid );
+        final Page page = m_context.getEngine().getManager( PageManager.class ).getPage( blogid );
         checkPermissions( page, username, password, "view" );
         return new Hashtable<>();
     }
@@ -121,8 +123,8 @@ public class MetaWeblogHandler implements WikiRPCHandler {
      *  @param page The actual entry page
      *  @return A metaWeblog entry struct.
      */
-    private Hashtable< String,Object > makeEntry( final WikiPage page ) {
-        final WikiPage firstVersion = m_context.getEngine().getManager( PageManager.class ).getPage( page.getName(), 1 );
+    private Hashtable< String,Object > makeEntry( final Page page ) {
+        final Page firstVersion = m_context.getEngine().getManager( PageManager.class ).getPage( page.getName(), 1 );
         final Hashtable< String, Object > ht = new Hashtable<>();
         ht.put( "dateCreated", firstVersion.getLastModified() );
         ht.put( "link", getURL(page.getName() ) );
@@ -167,16 +169,16 @@ public class MetaWeblogHandler implements WikiRPCHandler {
     public Hashtable getRecentPosts( final String blogid, final String username, final String password, final int numberOfPosts ) throws XmlRpcException {
         final Hashtable<String, Hashtable<String, Object>> result = new Hashtable<>();
         log.info( "metaWeblog.getRecentPosts() called");
-        final WikiPage page = m_context.getEngine().getManager( PageManager.class ).getPage( blogid );
+        final Page page = m_context.getEngine().getManager( PageManager.class ).getPage( blogid );
         checkPermissions( page, username, password, "view" );
 
         final WeblogPlugin plugin = new WeblogPlugin();
-        final List< WikiPage > changed = plugin.findBlogEntries( m_context.getEngine(), blogid, new Date( 0L ), new Date() );
+        final List< Page > changed = plugin.findBlogEntries( m_context.getEngine(), blogid, new Date( 0L ), new Date() );
         changed.sort( new PageTimeComparator() );
 
         int items = 0;
-        for( final Iterator< WikiPage > i = changed.iterator(); i.hasNext() && items < numberOfPosts; items++ ) {
-            final WikiPage p = i.next();
+        for( final Iterator< Page > i = changed.iterator(); i.hasNext() && items < numberOfPosts; items++ ) {
+            final Page p = i.next();
             result.put( "entry", makeEntry( p ) );
         }
 
@@ -201,7 +203,7 @@ public class MetaWeblogHandler implements WikiRPCHandler {
                            final boolean publish ) throws XmlRpcException {
         log.info("metaWeblog.newPost() called");
         final Engine engine = m_context.getEngine();
-        final WikiPage page = engine.getManager( PageManager.class ).getPage( blogid );
+        final Page page = engine.getManager( PageManager.class ).getPage( blogid );
         checkPermissions( page, username, password, "createPages" );
 
         try {
@@ -248,7 +250,7 @@ public class MetaWeblogHandler implements WikiRPCHandler {
 
         log.info( "metaWeblog.newMediaObject() called" );
 
-        final WikiPage page = engine.getManager( PageManager.class ).getPage( blogid );
+        final Page page = engine.getManager( PageManager.class ).getPage( blogid );
         checkPermissions( page, username, password, "upload" );
 
         final String name = (String) content.get( "name" );
@@ -286,11 +288,11 @@ public class MetaWeblogHandler implements WikiRPCHandler {
         log.info("metaWeblog.editPost("+postid+") called");
 
         // FIXME: Is postid correct?  Should we determine it from the page name?
-        final WikiPage page = engine.getManager( PageManager.class ).getPage( postid );
+        final Page page = engine.getManager( PageManager.class ).getPage( postid );
         checkPermissions( page, username, password, "edit" );
 
         try {
-            final WikiPage entryPage = (WikiPage)page.clone();
+            final Page entryPage = page.clone();
             entryPage.setAuthor( username );
 
             final WikiContext context = new WikiContext( engine, entryPage );
@@ -317,7 +319,7 @@ public class MetaWeblogHandler implements WikiRPCHandler {
      */
     Hashtable< String, Object > getPost( final String postid, final String username, final String password ) throws XmlRpcException {
         final String wikiname = "FIXME";
-        final WikiPage page = m_context.getEngine().getManager( PageManager.class ).getPage( wikiname );
+        final Page page = m_context.getEngine().getManager( PageManager.class ).getPage( wikiname );
         checkPermissions( page, username, password, "view" );
         return makeEntry( page );
     }
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 f343a63..41d48cb 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
@@ -20,7 +20,7 @@ package org.apache.wiki.xmlrpc;
 
 import org.apache.wiki.LinkCollector;
 import org.apache.wiki.WikiContext;
-import org.apache.wiki.WikiPage;
+import org.apache.wiki.api.core.Page;
 import org.apache.wiki.attachment.Attachment;
 import org.apache.wiki.auth.permissions.PagePermission;
 import org.apache.wiki.auth.permissions.PermissionFactory;
@@ -76,10 +76,10 @@ public class RPCHandler extends AbstractRPCHandler {
 
     public Vector< String > getAllPages() {
         checkPermission( PagePermission.VIEW );
-        final Collection< WikiPage > pages = m_engine.getManager( PageManager.class ).getRecentChanges();
+        final Collection< Page > pages = m_engine.getManager( PageManager.class ).getRecentChanges();
         final Vector< String > result = new Vector<>();
 
-        for( final WikiPage p : pages ) {
+        for( final Page p : pages ) {
             if( !( p instanceof Attachment ) ) {
                 result.add( toRPCString( p.getName() ) );
             }
@@ -92,7 +92,7 @@ public class RPCHandler extends AbstractRPCHandler {
      *  Encodes a single wiki page info into a Hashtable.
      */
     @Override
-    protected Hashtable<String,Object> encodeWikiPage( final WikiPage page ) {
+    protected Hashtable<String,Object> encodeWikiPage( final Page page ) {
         final Hashtable<String, Object> ht = new Hashtable<>();
         ht.put( "name", toRPCString(page.getName()) );
 
@@ -127,7 +127,7 @@ public class RPCHandler extends AbstractRPCHandler {
     @Override
     public Vector< Hashtable< String, Object > > getRecentChanges( Date since ) {
         checkPermission( PagePermission.VIEW );
-        final Set< WikiPage > pages = m_engine.getManager( PageManager.class ).getRecentChanges();
+        final Set< Page > pages = m_engine.getManager( PageManager.class ).getRecentChanges();
         final Vector< Hashtable< String, Object > > result = new Vector<>();
 
         final Calendar cal = Calendar.getInstance();
@@ -141,7 +141,7 @@ public class RPCHandler extends AbstractRPCHandler {
                   (cal.getTimeZone().inDaylightTime(since) ? cal.get( Calendar.DST_OFFSET ) : 0 ) ) );
         since = cal.getTime();
 
-        for( final WikiPage page : pages ) {
+        for( final Page page : pages ) {
             if( page.getLastModified().after( since ) && !(page instanceof Attachment) ) {
                 result.add( encodeWikiPage( page ) );
             }
@@ -165,7 +165,7 @@ public class RPCHandler extends AbstractRPCHandler {
             throw new XmlRpcException( ERR_NOPAGE, "No such page '"+pagename+"' found, o master." );
         }
 
-        final WikiPage p = m_engine.getManager( PageManager.class ).getPage( pagename );
+        final Page p = m_engine.getManager( PageManager.class ).getPage( pagename );
 
         checkPermission( PermissionFactory.getPagePermission( p, PagePermission.VIEW_ACTION ) );
 
@@ -209,7 +209,7 @@ public class RPCHandler extends AbstractRPCHandler {
     public Vector< Hashtable< String, String > > listLinks( String pagename ) throws XmlRpcException {
         pagename = parsePageCheckCondition( pagename );
 
-        final WikiPage page = m_engine.getManager( PageManager.class ).getPage( pagename );
+        final Page page = m_engine.getManager( PageManager.class ).getPage( pagename );
         final String pagedata = m_engine.getManager( PageManager.class ).getPureText( page );
 
         final LinkCollector localCollector = new LinkCollector();
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 a184ec2..9808333 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
@@ -20,8 +20,8 @@ package org.apache.wiki.xmlrpc;
 
 import org.apache.wiki.LinkCollector;
 import org.apache.wiki.WikiContext;
-import org.apache.wiki.WikiPage;
-import org.apache.wiki.attachment.Attachment;
+import org.apache.wiki.api.core.Attachment;
+import org.apache.wiki.api.core.Page;
 import org.apache.wiki.auth.permissions.PagePermission;
 import org.apache.wiki.auth.permissions.PermissionFactory;
 import org.apache.wiki.pages.PageManager;
@@ -51,10 +51,10 @@ public class RPCHandlerUTF8 extends AbstractRPCHandler {
     public Vector< String > getAllPages() {
         checkPermission( PagePermission.VIEW );
 
-        final Set< WikiPage > pages = m_engine.getManager( PageManager.class ).getRecentChanges();
+        final Set< Page > pages = m_engine.getManager( PageManager.class ).getRecentChanges();
         final Vector< String > result = new Vector<>();
 
-        for( final WikiPage p : pages ) {
+        for( final Page p : pages ) {
             if( !( p instanceof Attachment ) ) {
                 result.add( p.getName() );
             }
@@ -66,7 +66,8 @@ public class RPCHandlerUTF8 extends AbstractRPCHandler {
     /**
      *  Encodes a single wiki page info into a Hashtable.
      */
-    @Override protected Hashtable<String, Object> encodeWikiPage( final WikiPage page ) {
+    @Override
+    protected Hashtable<String, Object> encodeWikiPage( final Page page ) {
         final Hashtable<String, Object> ht = new Hashtable<>();
         ht.put( "name", page.getName() );
 
@@ -92,10 +93,11 @@ public class RPCHandlerUTF8 extends AbstractRPCHandler {
         return ht;
     }
 
-    @Override public Vector< Hashtable< String, Object > > getRecentChanges( Date since ) {
+    @Override
+    public Vector< Hashtable< String, Object > > getRecentChanges( Date since ) {
         checkPermission( PagePermission.VIEW );
 
-        final Set< WikiPage > pages = m_engine.getManager( PageManager.class ).getRecentChanges();
+        final Set< Page > pages = m_engine.getManager( PageManager.class ).getRecentChanges();
         final Vector< Hashtable< String, Object > > result = new Vector<>();
 
         final Calendar cal = Calendar.getInstance();
@@ -109,7 +111,7 @@ public class RPCHandlerUTF8 extends AbstractRPCHandler {
                   (cal.getTimeZone().inDaylightTime(since) ? cal.get( Calendar.DST_OFFSET ) : 0 ) ) );
         since = cal.getTime();
 
-        for( final WikiPage page : pages ) {
+        for( final Page page : pages ) {
             if( page.getLastModified().after( since ) && !( page instanceof Attachment ) ) {
                 result.add( encodeWikiPage( page ) );
             }
@@ -131,7 +133,7 @@ public class RPCHandlerUTF8 extends AbstractRPCHandler {
             throw new XmlRpcException( ERR_NOPAGE, "No such page '"+pagename+"' found, o master." );
         }
 
-        final WikiPage p = m_engine.getManager( PageManager.class ).getPage( pagename );
+        final Page p = m_engine.getManager( PageManager.class ).getPage( pagename );
 
         checkPermission( PermissionFactory.getPagePermission( p, PagePermission.VIEW_ACTION ) );
         return pagename;
@@ -166,7 +168,7 @@ public class RPCHandlerUTF8 extends AbstractRPCHandler {
     public Vector< Hashtable< String, String > > listLinks( String pagename ) throws XmlRpcException {
         pagename = parsePageCheckCondition( pagename );
 
-        final WikiPage page = m_engine.getManager( PageManager.class ).getPage( pagename );
+        final Page page = m_engine.getManager( PageManager.class ).getPage( pagename );
         final String pagedata = m_engine.getManager( PageManager.class ).getPureText( page );
 
         final LinkCollector localCollector = new LinkCollector();
diff --git a/jspwiki-main/src/main/java/org/apache/wiki/xmlrpc/WikiRPCHandler.java b/jspwiki-main/src/main/java/org/apache/wiki/xmlrpc/WikiRPCHandler.java
index fcc650c..dd75fe2 100644
--- a/jspwiki-main/src/main/java/org/apache/wiki/xmlrpc/WikiRPCHandler.java
+++ b/jspwiki-main/src/main/java/org/apache/wiki/xmlrpc/WikiRPCHandler.java
@@ -18,17 +18,17 @@
  */
 package org.apache.wiki.xmlrpc;
 
-import org.apache.wiki.WikiContext;
+import org.apache.wiki.api.core.Context;
+
 
 /**
- *  Any wiki RPC handler should implement this so that they can be properly
- *  initialized and recognized by JSPWiki.
+ *  Any wiki RPC handler should implement this so that they can be properly initialized and recognized by JSPWiki.
  *
  *  @since 2.1.7
  */
-// FIXME3.0: This class is fast becoming obsolete.  It should be moved to the "rpc" package
-//           in 3.0
-public interface WikiRPCHandler
-{
-    void initialize( WikiContext context );
+// FIXME3.0: This class is fast becoming obsolete.  It should be moved to the "rpc" package in 3.0
+public interface WikiRPCHandler {
+
+    void initialize( Context context );
+
 }