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/21 17:04:32 UTC

[jspwiki] 30/36: use getManager( XYZ.class ) instead of getXYZManager methods of WikiEngine

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 3d9931919e36d831b27fa89c0281adf6bd1d50b2
Author: juanpablo <ju...@apache.org>
AuthorDate: Sat Mar 21 16:18:51 2020 +0100

    use getManager( XYZ.class ) instead of getXYZManager methods of WikiEngine
---
 .../wiki/ajax/WikiAjaxDispatcherServlet.java       |  2 +-
 .../test/java/org/apache/wiki/WikiEngineTest.java  | 26 ++++---
 .../test/java/org/apache/wiki/WikiSessionTest.java |  4 +-
 .../wiki/attachment/AttachmentManagerTest.java     |  2 +-
 .../wiki/auth/AuthenticationManagerTest.java       |  6 +-
 .../apache/wiki/auth/AuthorizationManagerTest.java | 19 ++---
 .../java/org/apache/wiki/auth/UserManagerTest.java |  6 +-
 .../java/org/apache/wiki/auth/acl/AclImplTest.java | 76 ++++++------------
 .../auth/login/CookieAssertionLoginModuleTest.java | 63 +++++++--------
 .../org/apache/wiki/auth/user/UserProfileTest.java | 53 +++++--------
 .../org/apache/wiki/content/PageRenamerTest.java   | 58 +++++++-------
 .../apache/wiki/pages/DefaultPageManagerTest.java  | 15 ++--
 .../wiki/parser/JSPWikiMarkupParserTest.java       |  3 +-
 .../wiki/plugin/DefaultPluginManagerTest.java      |  3 +-
 .../java/org/apache/wiki/plugin/GroupsTest.java    |  3 +-
 .../java/org/apache/wiki/plugin/IfPluginTest.java  | 12 +--
 .../org/apache/wiki/plugin/PageViewPluginTest.java | 37 ++++-----
 .../wiki/references/ReferenceManagerTest.java      |  2 +-
 .../apache/wiki/render/RenderingManagerTest.java   | 16 ++--
 .../java/org/apache/wiki/rss/RSSGeneratorTest.java |  8 +-
 .../org/apache/wiki/search/SearchManagerTest.java  |  2 +-
 .../apache/wiki/stress/MassiveRepositoryTest.java  |  3 +-
 .../org/apache/wiki/ui/CommandResolverTest.java    |  2 +-
 .../apache/wiki/workflow/ApprovalWorkflowTest.java | 10 +--
 .../apache/wiki/workflow/DecisionQueueTest.java    |  6 +-
 .../java/org/apache/wiki/workflow/OutcomeTest.java | 91 +++++++++-------------
 .../apache/wiki/workflow/WorkflowManagerTest.java  | 22 +++---
 .../org/apache/wiki/xmlrpc/RPCHandlerTest.java     |  5 +-
 .../wiki/render/markdown/MarkdownRendererTest.java |  3 +-
 .../wiki/search/tika/TikaSearchProviderTest.java   |  3 +-
 30 files changed, 258 insertions(+), 303 deletions(-)

diff --git a/jspwiki-main/src/main/java/org/apache/wiki/ajax/WikiAjaxDispatcherServlet.java b/jspwiki-main/src/main/java/org/apache/wiki/ajax/WikiAjaxDispatcherServlet.java
index 8f055c8..70b872e 100644
--- a/jspwiki-main/src/main/java/org/apache/wiki/ajax/WikiAjaxDispatcherServlet.java
+++ b/jspwiki-main/src/main/java/org/apache/wiki/ajax/WikiAjaxDispatcherServlet.java
@@ -164,7 +164,7 @@ public class WikiAjaxDispatcherServlet extends HttpServlet {
         final WikiEngine e = WikiEngine.getInstance(req.getSession().getServletContext(), null);
         boolean valid = false;
         if( container != null ) {
-            valid = e.getAuthorizationManager().checkPermission( WikiSession.getWikiSession( e, req ), container.permission );
+            valid = e.getManager( AuthorizationManager.class ).checkPermission( WikiSession.getWikiSession( e, req ), container.permission );
         }
         return valid;
     }
diff --git a/jspwiki-main/src/test/java/org/apache/wiki/WikiEngineTest.java b/jspwiki-main/src/test/java/org/apache/wiki/WikiEngineTest.java
index f4d02eb..eb92bba 100644
--- a/jspwiki-main/src/test/java/org/apache/wiki/WikiEngineTest.java
+++ b/jspwiki-main/src/test/java/org/apache/wiki/WikiEngineTest.java
@@ -23,10 +23,12 @@ import net.sf.ehcache.CacheManager;
 import org.apache.wiki.api.core.Page;
 import org.apache.wiki.attachment.Attachment;
 import org.apache.wiki.attachment.AttachmentManager;
+import org.apache.wiki.content.PageRenamer;
 import org.apache.wiki.modules.ModuleManager;
 import org.apache.wiki.pages.PageManager;
 import org.apache.wiki.providers.FileSystemProvider;
 import org.apache.wiki.references.ReferenceManager;
+import org.apache.wiki.render.RenderingManager;
 import org.junit.jupiter.api.AfterEach;
 import org.junit.jupiter.api.Assertions;
 import org.junit.jupiter.api.BeforeEach;
@@ -122,8 +124,8 @@ public class WikiEngineTest {
      */
     @Test
     public void testAttachmentRefs() throws Exception {
-        final ReferenceManager refMgr = m_engine.getReferenceManager();
-        final AttachmentManager attMgr = m_engine.getAttachmentManager();
+        final ReferenceManager refMgr = m_engine.getManager( ReferenceManager.class );
+        final AttachmentManager attMgr = m_engine.getManager( AttachmentManager.class );
         m_engine.saveText( NAME1, "fooBar");
 
         final Attachment att = new Attachment( m_engine, NAME1, "TestAtt.txt" );
@@ -165,8 +167,8 @@ public class WikiEngineTest {
 
     @Test
     public void testAttachmentRefs2() throws Exception {
-        final ReferenceManager refMgr = m_engine.getReferenceManager();
-        final AttachmentManager attMgr = m_engine.getAttachmentManager();
+        final ReferenceManager refMgr = m_engine.getManager( ReferenceManager.class );
+        final AttachmentManager attMgr = m_engine.getManager( AttachmentManager.class );
 
         m_engine.saveText( NAME1, "[TestAtt.txt]");
 
@@ -206,8 +208,8 @@ public class WikiEngineTest {
      */
     @Test
     public void testAttachmentRefs3() throws Exception {
-        final ReferenceManager refMgr = m_engine.getReferenceManager();
-        final AttachmentManager attMgr = m_engine.getAttachmentManager();
+        final ReferenceManager refMgr = m_engine.getManager( ReferenceManager.class );
+        final AttachmentManager attMgr = m_engine.getManager( AttachmentManager.class );
 
         m_engine.saveText( NAME1, "fooBar");
 
@@ -231,8 +233,8 @@ public class WikiEngineTest {
      */
     @Test
     public void testAttachmentRefs4() throws Exception {
-        final ReferenceManager refMgr = m_engine.getReferenceManager();
-        final AttachmentManager attMgr = m_engine.getAttachmentManager();
+        final ReferenceManager refMgr = m_engine.getManager( ReferenceManager.class );
+        final AttachmentManager attMgr = m_engine.getManager( AttachmentManager.class );
 
         m_engine.saveText( NAME1, "[TestPage2]");
 
@@ -279,7 +281,7 @@ public class WikiEngineTest {
     @Test
     public void testParsedVariables() throws Exception {
         m_engine.saveText( "TestPage", "[{SET foo=bar}][{SamplePlugin text='{$foo}'}]");
-        final String res = m_engine.getRenderingManager().getHTML( "TestPage" );
+        final String res = m_engine.getManager( RenderingManager.class ).getHTML( "TestPage" );
 
         Assertions.assertEquals( "bar\n", res );
     }
@@ -292,16 +294,16 @@ public class WikiEngineTest {
         m_engine.saveText( "RenameBugTestPage", "Mary had a little generic object" );
         m_engine.saveText( "OldNameTestPage", "Linked to RenameBugTestPage" );
 
-        Collection< String > pages = m_engine.getReferenceManager().findReferrers( "RenameBugTestPage" );
+        Collection< String > pages = m_engine.getManager( ReferenceManager.class ).findReferrers( "RenameBugTestPage" );
         Assertions.assertEquals( "OldNameTestPage", pages.iterator().next(), "has one" );
 
         final WikiContext ctx = new WikiContext( m_engine, m_engine.getManager( PageManager.class ).getPage("OldNameTestPage") );
-        m_engine.getPageRenamer().renamePage( ctx, "OldNameTestPage", "NewNameTestPage", true );
+        m_engine.getManager( PageRenamer.class ).renamePage( ctx, "OldNameTestPage", "NewNameTestPage", true );
 
         Assertions.assertFalse( m_engine.getManager( PageManager.class ).wikiPageExists( "OldNameTestPage"), "did not vanish" );
         Assertions.assertTrue( m_engine.getManager( PageManager.class ).wikiPageExists( "NewNameTestPage"), "did not appear" );
 
-        pages = m_engine.getReferenceManager().findReferrers( "RenameBugTestPage" );
+        pages = m_engine.getManager( ReferenceManager.class ).findReferrers( "RenameBugTestPage" );
         Assertions.assertEquals( 1, pages.size(),  "wrong # of referrers" );
         Assertions.assertEquals( "NewNameTestPage", pages.iterator().next(), "has wrong referrer" );
     }
diff --git a/jspwiki-main/src/test/java/org/apache/wiki/WikiSessionTest.java b/jspwiki-main/src/test/java/org/apache/wiki/WikiSessionTest.java
index 1fea90b..a49ca99 100644
--- a/jspwiki-main/src/test/java/org/apache/wiki/WikiSessionTest.java
+++ b/jspwiki-main/src/test/java/org/apache/wiki/WikiSessionTest.java
@@ -252,7 +252,7 @@ public class WikiSessionTest
     public static Session assertedSession( final TestEngine engine, final String name, final Principal[] roles ) throws Exception
     {
         // We can use cookies right?
-        if ( !engine.getAuthenticationManager().allowsCookieAssertions() )
+        if ( !engine.getManager( AuthenticationManager.class ).allowsCookieAssertions() )
         {
             throw new IllegalStateException( "Couldn't set up asserted user: login config doesn't allow cookies." );
         }
@@ -292,7 +292,7 @@ public class WikiSessionTest
 
         // Log in the user with credentials
         final Session session = WikiSession.getWikiSession( engine, request );
-        engine.getAuthenticationManager().login( session, request, id, password );
+        engine.getManager( AuthenticationManager.class ).login( session, request, id, password );
 
         // Make sure the user is actually authenticated
         if ( !session.isAuthenticated() )
diff --git a/jspwiki-main/src/test/java/org/apache/wiki/attachment/AttachmentManagerTest.java b/jspwiki-main/src/test/java/org/apache/wiki/attachment/AttachmentManagerTest.java
index 0e37e82..2fb931f 100644
--- a/jspwiki-main/src/test/java/org/apache/wiki/attachment/AttachmentManagerTest.java
+++ b/jspwiki-main/src/test/java/org/apache/wiki/attachment/AttachmentManagerTest.java
@@ -48,7 +48,7 @@ public class AttachmentManagerTest {
     @BeforeEach
     public void setUp() throws Exception {
         m_engine  = TestEngine.build();
-        m_manager = m_engine.getAttachmentManager();
+        m_manager = m_engine.getManager( AttachmentManager.class );
 
         m_engine.saveText( NAME1, "Foobar" );
         m_engine.saveText( NAMEU, "Foobar" );
diff --git a/jspwiki-main/src/test/java/org/apache/wiki/auth/AuthenticationManagerTest.java b/jspwiki-main/src/test/java/org/apache/wiki/auth/AuthenticationManagerTest.java
index b8da2f6..37971e9 100644
--- a/jspwiki-main/src/test/java/org/apache/wiki/auth/AuthenticationManagerTest.java
+++ b/jspwiki-main/src/test/java/org/apache/wiki/auth/AuthenticationManagerTest.java
@@ -89,7 +89,7 @@ public class AuthenticationManagerTest {
     public void setUp() throws Exception {
         final Properties props = TestEngine.getTestProperties();
         m_engine = new TestEngine( props );
-        m_auth = m_engine.getAuthenticationManager();
+        m_auth = m_engine.getManager( AuthenticationManager.class );
         m_groupMgr = m_engine.getGroupManager();
         m_session = WikiSessionTest.adminSession( m_engine );
     }
@@ -138,7 +138,7 @@ public class AuthenticationManagerTest {
         // Init the engine and verify that we initialized with a custom auth
         // login module
         final WikiEngine engine = new TestEngine( props );
-        final DefaultAuthenticationManager authMgr = ( DefaultAuthenticationManager )engine.getAuthenticationManager();
+        final DefaultAuthenticationManager authMgr = ( DefaultAuthenticationManager )engine.getManager( AuthenticationManager.class );
         Assertions.assertEquals( CookieAssertionLoginModule.class, authMgr.m_loginModuleClass );
     }
 
@@ -154,7 +154,7 @@ public class AuthenticationManagerTest {
         // Init the engine and verify that we initialized with the correct
         // options
         final WikiEngine engine = new TestEngine( props );
-        final DefaultAuthenticationManager authMgr = ( DefaultAuthenticationManager )engine.getAuthenticationManager();
+        final DefaultAuthenticationManager authMgr = ( DefaultAuthenticationManager )engine.getManager( AuthenticationManager.class );
         final Map<String, String> options = authMgr.m_loginModuleOptions;
         Assertions.assertEquals( 3, options.size() );
         Assertions.assertTrue( options.containsKey( "key1" ) );
diff --git a/jspwiki-main/src/test/java/org/apache/wiki/auth/AuthorizationManagerTest.java b/jspwiki-main/src/test/java/org/apache/wiki/auth/AuthorizationManagerTest.java
index f2b2b8a..2f86374 100644
--- a/jspwiki-main/src/test/java/org/apache/wiki/auth/AuthorizationManagerTest.java
+++ b/jspwiki-main/src/test/java/org/apache/wiki/auth/AuthorizationManagerTest.java
@@ -26,6 +26,7 @@ import org.apache.wiki.api.core.Session;
 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.auth.acl.UnresolvedPrincipal;
 import org.apache.wiki.auth.authorize.Group;
 import org.apache.wiki.auth.authorize.GroupManager;
@@ -84,7 +85,7 @@ public class AuthorizationManagerTest
 
         // Initialize the test engine
         m_engine = new TestEngine( props );
-        m_auth = m_engine.getAuthorizationManager();
+        m_auth = m_engine.getManager( AuthorizationManager.class );
         m_groupMgr = m_engine.getGroupManager();
         m_session = WikiSessionTest.adminSession( m_engine );
     }
@@ -265,7 +266,7 @@ public class AuthorizationManagerTest
         final File f = m_engine.makeAttachmentFile();
         final Attachment att = new Attachment( m_engine, "Test", "test1.txt" );
         att.setAuthor( "FirstPost" );
-        m_engine.getAttachmentManager().storeAttachment( att, f );
+        m_engine.getManager( AttachmentManager.class ).storeAttachment( att, f );
 
         final Attachment p = (Attachment) m_engine.getManager( PageManager.class ).getPage( "Test/test1.txt" );
         final Permission view = PermissionFactory.getPagePermission( p, "view" );
@@ -282,7 +283,7 @@ public class AuthorizationManagerTest
         Assertions.assertFalse( m_auth.checkPermission( session, edit ), "Bob !view Test/test1.txt" );
 
         // Delete test page & attachment
-        m_engine.getAttachmentManager().deleteAttachment( att );
+        m_engine.getManager( AttachmentManager.class ).deleteAttachment( att );
         m_engine.getManager( PageManager.class ).deletePage( "Test" );
     }
 
@@ -296,7 +297,7 @@ public class AuthorizationManagerTest
         final File f = m_engine.makeAttachmentFile();
         final Attachment att = new Attachment( m_engine, "Test", "test1.txt" );
         att.setAuthor( "FirstPost" );
-        m_engine.getAttachmentManager().storeAttachment( att, f );
+        m_engine.getManager( AttachmentManager.class ).storeAttachment( att, f );
 
         final Attachment p = (Attachment) m_engine.getManager( PageManager.class ).getPage( "Test/test1.txt" );
         final Permission view = PermissionFactory.getPagePermission( p, "view" );
@@ -313,7 +314,7 @@ public class AuthorizationManagerTest
         Assertions.assertFalse( m_auth.checkPermission( session, view ), "Bar !edit Test" );
 
         // Delete test page & attachment
-        m_engine.getAttachmentManager().deleteAttachment( att );
+        m_engine.getManager( AttachmentManager.class ).deleteAttachment( att );
         m_engine.getManager( PageManager.class ).deletePage( "Test" );
     }
 
@@ -510,13 +511,13 @@ public class AuthorizationManagerTest
     public void testResolveUsers() throws WikiException
     {
         // We should be able to resolve a user by login, user, or wiki name
-        final UserProfile profile = m_engine.getUserManager().getUserDatabase().newProfile();
+        final UserProfile profile = m_engine.getManager( UserManager.class ).getUserDatabase().newProfile();
         profile.setEmail( "authmanagertest@tester.net" );
         profile.setFullname( "AuthorizationManagerTest User" );
         profile.setLoginName( "authmanagertest" );
         try
         {
-            m_engine.getUserManager().getUserDatabase().save( profile );
+            m_engine.getManager( UserManager.class ).getUserDatabase().save( profile );
         }
         catch( final WikiSecurityException e )
         {
@@ -527,7 +528,7 @@ public class AuthorizationManagerTest
         Assertions.assertEquals( new WikiPrincipal( "AuthorizationManagerTestUser", WikiPrincipal.WIKI_NAME ), m_auth.resolvePrincipal( "AuthorizationManagerTestUser" ) );
         try
         {
-            m_engine.getUserManager().getUserDatabase().deleteByLoginName( "authmanagertest" );
+            m_engine.getManager( UserManager.class ).getUserDatabase().deleteByLoginName( "authmanagertest" );
         }
         catch( final WikiSecurityException e )
         {
@@ -668,7 +669,7 @@ public class AuthorizationManagerTest
 
         // Initialize the test engine
         m_engine = new TestEngine( props );
-        m_auth = m_engine.getAuthorizationManager();
+        m_auth = m_engine.getManager( AuthorizationManager.class );
         m_groupMgr = m_engine.getGroupManager();
         m_session = WikiSessionTest.adminSession( m_engine );
 
diff --git a/jspwiki-main/src/test/java/org/apache/wiki/auth/UserManagerTest.java b/jspwiki-main/src/test/java/org/apache/wiki/auth/UserManagerTest.java
index 1f3d189..3849b5a 100644
--- a/jspwiki-main/src/test/java/org/apache/wiki/auth/UserManagerTest.java
+++ b/jspwiki-main/src/test/java/org/apache/wiki/auth/UserManagerTest.java
@@ -102,7 +102,7 @@ public class UserManagerTest {
         final int oldUserCount = m_db.getWikiNames().length;
         final GroupManager groupManager = m_engine.getGroupManager();
         final PageManager pageManager = m_engine.getManager( PageManager.class );
-        final AuthorizationManager authManager = m_engine.getAuthorizationManager();
+        final AuthorizationManager authManager = m_engine.getManager( AuthorizationManager.class );
         final int oldGroupCount = groupManager.getRoles().length;
         final int oldPageCount = pageManager.getTotalPageCount();
 
@@ -315,7 +315,7 @@ public class UserManagerTest {
         Assertions.assertEquals( oldUserCount, m_db.getWikiNames().length );
 
         // Now, look in Admin's queue, and verify there's a pending Decision there
-        final DecisionQueue dq = m_engine.getWorkflowManager().getDecisionQueue();
+        final DecisionQueue dq = m_engine.getManager( WorkflowManager.class ).getDecisionQueue();
         final Collection< Decision > decisions = dq.getActorDecisions( m_engine.adminSession() );
         Assertions.assertEquals( 1, decisions.size() );
 
@@ -366,7 +366,7 @@ public class UserManagerTest {
         Assertions.assertEquals( oldUserCount, m_db.getWikiNames().length );
 
         // Now, look in Admin's queue, and verify there's a pending Decision there
-        final DecisionQueue dq = m_engine.getWorkflowManager().getDecisionQueue();
+        final DecisionQueue dq = m_engine.getManager( WorkflowManager.class ).getDecisionQueue();
         final Collection< Decision > decisions = dq.getActorDecisions( m_engine.adminSession() );
         Assertions.assertEquals( 1, decisions.size() );
 
diff --git a/jspwiki-main/src/test/java/org/apache/wiki/auth/acl/AclImplTest.java b/jspwiki-main/src/test/java/org/apache/wiki/auth/acl/AclImplTest.java
index 4a072ea..c213463 100644
--- a/jspwiki-main/src/test/java/org/apache/wiki/auth/acl/AclImplTest.java
+++ b/jspwiki-main/src/test/java/org/apache/wiki/auth/acl/AclImplTest.java
@@ -39,19 +39,15 @@ import java.io.ObjectOutputStream;
 import java.security.Principal;
 import java.util.HashMap;
 import java.util.Map;
-import java.util.Properties;
 
-public class AclImplTest
-{
-    private AclImpl m_acl;
-
-    private AclImpl m_aclGroup;
-
-    private Map<String, Group> m_groups;
+public class AclImplTest {
 
-    private GroupManager m_groupMgr;
+    final TestEngine engine = TestEngine.build();
+    final GroupManager m_groupMgr = engine.getManager( GroupManager.class );
 
-    private Session m_session;
+    private AclImpl m_acl;
+    private AclImpl m_aclGroup;
+    private Map< String, Group > m_groups;
 
     /**
      * We setup the following rules: Alice = may view Bob = may view, may edit
@@ -59,14 +55,8 @@ public class AclImplTest
      * Alice, Bob - may edit BarGroup = Bob, Charlie - may view
      */
     @BeforeEach
-    public void setUp() throws Exception
-    {
-
-        final Properties props = TestEngine.getTestProperties();
-        final TestEngine engine  = new TestEngine( props );
-        m_groupMgr = engine.getGroupManager();
-        m_session = WikiSessionTest.adminSession( engine );
-
+    public void setUp() throws Exception {
+        final Session m_session = WikiSessionTest.adminSession( engine );
         m_acl = new AclImpl();
         m_aclGroup = new AclImpl();
         m_groups = new HashMap<>();
@@ -127,34 +117,26 @@ public class AclImplTest
     }
 
     @AfterEach
-    public void tearDown() throws Exception
-    {
+    public void tearDown() throws Exception {
         m_groupMgr.removeGroup( "FooGroup" );
         m_groupMgr.removeGroup( "BarGroup" );
     }
 
-    private boolean inArray( final Object[] array, final Object key )
-    {
-        for( int i = 0; i < array.length; i++ )
-        {
-            if ( array[i].equals( key ) )
-            {
+    private boolean inArray( final Object[] array, final Object key ) {
+        for( final Object o : array ) {
+            if( o.equals( key ) ) {
                 return true;
             }
         }
         return false;
     }
 
-    private boolean inGroup( final Object[] array, final Principal key )
-    {
-        for( int i = 0; i < array.length; i++ )
-        {
-            if ( array[i] instanceof GroupPrincipal )
-            {
-                final String groupName = ((GroupPrincipal)array[i]).getName();
+    private boolean inGroup( final Object[] array, final Principal key ) {
+        for( final Object o : array ) {
+            if( o instanceof GroupPrincipal ) {
+                final String groupName = ( ( GroupPrincipal )o ).getName();
                 final Group group = m_groups.get( groupName );
-                if ( group != null && group.isMember( key ) )
-                {
+                if( group != null && group.isMember( key ) ) {
                     return true;
                 }
             }
@@ -163,8 +145,7 @@ public class AclImplTest
     }
 
     @Test
-    public void testAlice()
-    {
+    public void testAlice() {
         // Alice should be able to view but not edit or comment
         final Principal wup = new WikiPrincipal( "Alice" );
         Assertions.assertTrue( inArray( m_acl.findPrincipals( PagePermission.VIEW ), wup ) );
@@ -173,8 +154,7 @@ public class AclImplTest
     }
 
     @Test
-    public void testBob()
-    {
+    public void testBob() {
         // Bob should be able to view, edit, and comment but not delete
         final Principal wup = new WikiPrincipal( "Bob" );
         Assertions.assertTrue( inArray( m_acl.findPrincipals( PagePermission.VIEW ), wup ) );
@@ -184,8 +164,7 @@ public class AclImplTest
     }
 
     @Test
-    public void testCharlie()
-    {
+    public void testCharlie() {
         // Charlie should be able to view, but not edit, comment or delete
         final Principal wup = new WikiPrincipal( "Charlie" );
         Assertions.assertTrue( inArray( m_acl.findPrincipals( PagePermission.VIEW ), wup ) );
@@ -195,8 +174,7 @@ public class AclImplTest
     }
 
     @Test
-    public void testDave()
-    {
+    public void testDave() {
         // Dave should be able to view and comment but not edit or delete
         final Principal wup = new WikiPrincipal( "Dave" );
         Assertions.assertTrue( inArray( m_acl.findPrincipals( PagePermission.VIEW ), wup ) );
@@ -206,8 +184,7 @@ public class AclImplTest
     }
 
     @Test
-    public void testGroups()
-    {
+    public void testGroups() {
         Principal wup = new WikiPrincipal( "Alice" );
         Assertions.assertTrue( inGroup( m_aclGroup.findPrincipals( PagePermission.VIEW ), wup ), "Alice view" );
         Assertions.assertTrue( inGroup( m_aclGroup.findPrincipals( PagePermission.EDIT ), wup ), "Alice edit" );
@@ -234,20 +211,13 @@ public class AclImplTest
     }
 
     @Test
-    public void testSerialization() throws IOException, ClassNotFoundException
-    {
+    public void testSerialization() throws IOException, ClassNotFoundException {
         final ByteArrayOutputStream out = new ByteArrayOutputStream();
-
         final ObjectOutputStream out2 = new ObjectOutputStream(out);
-
         out2.writeObject( m_acl );
-
         out2.close();
-
         final byte[] stuff = out.toByteArray();
-
         final ObjectInputStream in = new ObjectInputStream( new ByteArrayInputStream(stuff) );
-
         final AclImpl newacl = (AclImpl) in.readObject();
         Assertions.assertEquals( newacl.toString(), m_acl.toString() );
     }
diff --git a/jspwiki-main/src/test/java/org/apache/wiki/auth/login/CookieAssertionLoginModuleTest.java b/jspwiki-main/src/test/java/org/apache/wiki/auth/login/CookieAssertionLoginModuleTest.java
index a67e029..3547a29 100644
--- a/jspwiki-main/src/test/java/org/apache/wiki/auth/login/CookieAssertionLoginModuleTest.java
+++ b/jspwiki-main/src/test/java/org/apache/wiki/auth/login/CookieAssertionLoginModuleTest.java
@@ -17,28 +17,27 @@
     under the License.
  */
 package org.apache.wiki.auth.login;
-import java.security.Principal;
-import java.util.HashMap;
-import java.util.Properties;
-import java.util.Set;
-
-import javax.security.auth.Subject;
-import javax.security.auth.callback.CallbackHandler;
-import javax.security.auth.login.LoginException;
-import javax.security.auth.spi.LoginModule;
-import javax.servlet.http.Cookie;
-
+import net.sourceforge.stripes.mock.MockHttpServletRequest;
 import org.apache.wiki.TestEngine;
 import org.apache.wiki.api.exceptions.NoRequiredPropertyException;
+import org.apache.wiki.auth.AuthenticationManager;
 import org.apache.wiki.auth.WikiPrincipal;
 import org.apache.wiki.auth.authorize.Role;
 import org.apache.wiki.auth.user.UserDatabase;
 import org.apache.wiki.auth.user.XMLUserDatabase;
-import org.junit.jupiter.api.Test;
 import org.junit.jupiter.api.Assertions;
 import org.junit.jupiter.api.BeforeEach;
+import org.junit.jupiter.api.Test;
 
-import net.sourceforge.stripes.mock.MockHttpServletRequest;
+import javax.security.auth.Subject;
+import javax.security.auth.callback.CallbackHandler;
+import javax.security.auth.login.LoginException;
+import javax.security.auth.spi.LoginModule;
+import javax.servlet.http.Cookie;
+import java.security.Principal;
+import java.util.HashMap;
+import java.util.Properties;
+import java.util.Set;
 
 /**
  */
@@ -53,30 +52,28 @@ public class CookieAssertionLoginModuleTest
     @Test
     public final void testLogin()
     {
-        MockHttpServletRequest request = m_engine.newHttpRequest();
+        final MockHttpServletRequest request = m_engine.newHttpRequest();
         try
         {
             // We can use cookies right?
-            Assertions.assertTrue( m_engine.getAuthenticationManager().allowsCookieAssertions() );
+            Assertions.assertTrue( m_engine.getManager( AuthenticationManager.class ).allowsCookieAssertions() );
 
             // Test using Cookie and IP address (AnonymousLoginModule succeeds)
-            Cookie cookie = new Cookie( CookieAssertionLoginModule.PREFS_COOKIE_NAME, "Bullwinkle" );
+            final Cookie cookie = new Cookie( CookieAssertionLoginModule.PREFS_COOKIE_NAME, "Bullwinkle" );
             request.setCookies( new Cookie[] { cookie } );
             m_subject = new Subject();
-            CallbackHandler handler = new WebContainerCallbackHandler( m_engine, request );
-            LoginModule module = new CookieAssertionLoginModule();
-            module.initialize( m_subject, handler,
-                              new HashMap<String, Object>(),
-                              new HashMap<String, Object>() );
+            final CallbackHandler handler = new WebContainerCallbackHandler( m_engine, request );
+            final LoginModule module = new CookieAssertionLoginModule();
+            module.initialize( m_subject, handler, new HashMap<>(), new HashMap<>() );
             module.login();
             module.commit();
-            Set< Principal > principals = m_subject.getPrincipals();
+            final Set< Principal > principals = m_subject.getPrincipals();
             Assertions.assertEquals( 1, principals.size() );
             Assertions.assertTrue( principals.contains( new WikiPrincipal( "Bullwinkle" ) ) );
             Assertions.assertFalse( principals.contains( Role.ASSERTED ) );
             Assertions.assertFalse( principals.contains( Role.ALL ) );
         }
-        catch( LoginException e )
+        catch( final LoginException e )
         {
             System.err.println( e.getMessage() );
             Assertions.assertTrue( false );
@@ -86,19 +83,17 @@ public class CookieAssertionLoginModuleTest
     @Test
     public final void testLogout()
     {
-        MockHttpServletRequest request = m_engine.newHttpRequest();
-        Cookie cookie = new Cookie( CookieAssertionLoginModule.PREFS_COOKIE_NAME, "Bullwinkle" );
+        final MockHttpServletRequest request = m_engine.newHttpRequest();
+        final Cookie cookie = new Cookie( CookieAssertionLoginModule.PREFS_COOKIE_NAME, "Bullwinkle" );
         request.setCookies( new Cookie[] { cookie } );
         try
         {
-            CallbackHandler handler = new WebContainerCallbackHandler( m_engine, request );
-            LoginModule module = new CookieAssertionLoginModule();
-            module.initialize( m_subject, handler,
-                              new HashMap<String, Object>(),
-                              new HashMap<String, Object>() );
+            final CallbackHandler handler = new WebContainerCallbackHandler( m_engine, request );
+            final LoginModule module = new CookieAssertionLoginModule();
+            module.initialize( m_subject, handler, new HashMap<>(), new HashMap<>() );
             module.login();
             module.commit();
-            Set< Principal > principals = m_subject.getPrincipals();
+            final Set< Principal > principals = m_subject.getPrincipals();
             Assertions.assertEquals( 1, principals.size() );
             Assertions.assertTrue( principals.contains( new WikiPrincipal( "Bullwinkle" ) ) );
             Assertions.assertFalse( principals.contains( Role.ANONYMOUS ) );
@@ -106,7 +101,7 @@ public class CookieAssertionLoginModuleTest
             module.logout();
             Assertions.assertEquals( 0, principals.size() );
         }
-        catch( LoginException e )
+        catch( final LoginException e )
         {
             System.err.println( e.getMessage() );
             Assertions.assertTrue( false );
@@ -119,7 +114,7 @@ public class CookieAssertionLoginModuleTest
     @BeforeEach
     public void setUp() throws Exception
     {
-        Properties props = TestEngine.getTestProperties();
+        final Properties props = TestEngine.getTestProperties();
         props.put(XMLUserDatabase.PROP_USERDATABASE, "target/test-classes/userdatabase.xml" );
         m_engine = new TestEngine(props);
         m_db = new XMLUserDatabase();
@@ -128,7 +123,7 @@ public class CookieAssertionLoginModuleTest
         {
             m_db.initialize( m_engine, props );
         }
-        catch( NoRequiredPropertyException e )
+        catch( final NoRequiredPropertyException e )
         {
             System.err.println( e.getMessage() );
             Assertions.assertTrue( false );
diff --git a/jspwiki-main/src/test/java/org/apache/wiki/auth/user/UserProfileTest.java b/jspwiki-main/src/test/java/org/apache/wiki/auth/user/UserProfileTest.java
index f17c0ef..adc6209 100644
--- a/jspwiki-main/src/test/java/org/apache/wiki/auth/user/UserProfileTest.java
+++ b/jspwiki-main/src/test/java/org/apache/wiki/auth/user/UserProfileTest.java
@@ -18,9 +18,8 @@
  */
 package org.apache.wiki.auth.user;
 import org.apache.wiki.TestEngine;
-import org.apache.wiki.WikiEngine;
+import org.apache.wiki.auth.UserManager;
 import org.junit.jupiter.api.Assertions;
-import org.junit.jupiter.api.BeforeEach;
 import org.junit.jupiter.api.Test;
 
 import java.util.Date;
@@ -28,22 +27,14 @@ import java.util.Date;
 /**
  *  Tests the DefaultUserProfile class.
  */
-public class UserProfileTest
-{
-    private UserDatabase m_db;
-
-    @BeforeEach
-    public void setUp()
-        throws Exception
-    {
-            WikiEngine engine  = new TestEngine();
-            m_db = engine.getUserManager().getUserDatabase();
-    }
+public class UserProfileTest {
+
+    TestEngine engine = TestEngine.build();
+    UserDatabase m_db = engine.getManager( UserManager.class ).getUserDatabase();
 
     @Test
-    public void testSetAttribute()
-    {
-        UserProfile p = m_db.newProfile();
+    public void testSetAttribute() {
+        final UserProfile p = m_db.newProfile();
         Assertions.assertEquals( 0, p.getAttributes().size() );
 
         p.getAttributes().put( "MyAttribute", "some arbitrary value." );
@@ -59,9 +50,8 @@ public class UserProfileTest
     }
 
     @Test
-    public void testSetLockExpiry()
-    {
-        UserProfile p = m_db.newProfile();
+    public void testSetLockExpiry() {
+        final UserProfile p = m_db.newProfile();
         Assertions.assertNull( p.getLockExpiry() );
         Assertions.assertFalse( p.isLocked() );
 
@@ -76,7 +66,7 @@ public class UserProfileTest
         Assertions.assertNull( p.getLockExpiry() );
 
         // Now set a lock for 100 seconds in the future; lock should be reported correctly
-        Date future = new Date( System.currentTimeMillis() + 100000 );
+        final Date future = new Date( System.currentTimeMillis() + 100000 );
         p.setLockExpiry( future );
         Assertions.assertTrue( p.isLocked() );
         Assertions.assertEquals( future, p.getLockExpiry() );
@@ -88,36 +78,33 @@ public class UserProfileTest
     }
 
     @Test
-    public void testSetUid()
-    {
-        UserProfile p = m_db.newProfile();
+    public void testSetUid() {
+        final UserProfile p = m_db.newProfile();
         Assertions.assertNotSame( "1234567890", p.getUid() );
         p.setUid( "1234567890" );
         Assertions.assertEquals( "1234567890", p.getUid() );
     }
 
     @Test
-    public void testEquals()
-    {
-        UserProfile p = m_db.newProfile();
-        UserProfile p2 = m_db.newProfile();
+    public void testEquals() {
+        final UserProfile p = m_db.newProfile();
+        final UserProfile p2 = m_db.newProfile();
 
         p.setFullname("Alice");
         p2.setFullname("Bob");
 
-        Assertions.assertFalse( p.equals( p2 ) );
+        Assertions.assertNotEquals( p, p2 );
     }
 
     @Test
-    public void testEquals2()
-    {
-        UserProfile p = m_db.newProfile();
-        UserProfile p2 = m_db.newProfile();
+    public void testEquals2() {
+        final UserProfile p = m_db.newProfile();
+        final UserProfile p2 = m_db.newProfile();
 
         p.setFullname("Alice");
         p2.setFullname("Alice");
 
-        Assertions.assertTrue( p.equals( p2 ) );
+        Assertions.assertEquals( p, p2 );
     }
 
 }
diff --git a/jspwiki-main/src/test/java/org/apache/wiki/content/PageRenamerTest.java b/jspwiki-main/src/test/java/org/apache/wiki/content/PageRenamerTest.java
index 3653c5d..b748798 100644
--- a/jspwiki-main/src/test/java/org/apache/wiki/content/PageRenamerTest.java
+++ b/jspwiki-main/src/test/java/org/apache/wiki/content/PageRenamerTest.java
@@ -26,7 +26,9 @@ import org.apache.wiki.api.core.Attachment;
 import org.apache.wiki.api.core.Page;
 import org.apache.wiki.api.exceptions.WikiException;
 import org.apache.wiki.api.providers.WikiProvider;
+import org.apache.wiki.attachment.AttachmentManager;
 import org.apache.wiki.pages.PageManager;
+import org.apache.wiki.references.ReferenceManager;
 import org.junit.jupiter.api.AfterEach;
 import org.junit.jupiter.api.Assertions;
 import org.junit.jupiter.api.BeforeEach;
@@ -73,7 +75,7 @@ public class PageRenamerTest
     @Test
     public void testSimpleRename() throws Exception {
         // Count the number of existing references
-        final int refCount = m_engine.getReferenceManager().findCreated().size();
+        final int refCount = m_engine.getManager( ReferenceManager.class ).findCreated().size();
 
         m_engine.saveText("TestPage", "the big lazy dog thing" );
 
@@ -81,7 +83,7 @@ public class PageRenamerTest
 
         final WikiContext context = new WikiContext(m_engine, p);
 
-        m_engine.getPageRenamer().renamePage(context, "TestPage", "FooTest", false);
+        m_engine.getManager( PageRenamer.class ).renamePage(context, "TestPage", "FooTest", false);
 
         final Page newpage = m_engine.getManager( PageManager.class ).getPage("FooTest");
 
@@ -89,7 +91,7 @@ public class PageRenamerTest
         Assertions.assertNull( m_engine.getManager( PageManager.class ).getPage("TestPage"), "old page not gone" );
 
         // Refmgr
-        final Collection< String > refs = m_engine.getReferenceManager().findCreated();
+        final Collection< String > refs = m_engine.getManager( ReferenceManager.class ).findCreated();
 
         Assertions.assertTrue( refs.contains("FooTest"), "FooTest does not exist" );
         Assertions.assertFalse( refs.contains("TestPage"), "TestPage exists" );
@@ -107,17 +109,17 @@ public class PageRenamerTest
 
         final WikiContext context = new WikiContext(m_engine, p);
 
-        m_engine.getPageRenamer().renamePage(context, "TestPage", "FooTest", true);
+        m_engine.getManager( PageRenamer.class ).renamePage(context, "TestPage", "FooTest", true);
 
         final String data = m_engine.getManager( PageManager.class ).getPureText("TestPage2", WikiProvider.LATEST_VERSION);
 
         Assertions.assertEquals( "[FooTest]", data.trim(), "no rename" );
 
-        Collection< String > refs = m_engine.getReferenceManager().findReferrers("TestPage");
+        Collection< String > refs = m_engine.getManager( ReferenceManager.class ).findReferrers("TestPage");
 
         Assertions.assertNull( refs, "oldpage" );
 
-        refs = m_engine.getReferenceManager().findReferrers( "FooTest" );
+        refs = m_engine.getManager( ReferenceManager.class ).findReferrers( "FooTest" );
         Assertions.assertEquals( 1, refs.size(), "new size" );
         Assertions.assertEquals( "TestPage2", refs.iterator().next(), "wrong ref" );
     }
@@ -133,16 +135,16 @@ public class PageRenamerTest
 
         final WikiContext context = new WikiContext(m_engine, p);
 
-        m_engine.getPageRenamer().renamePage(context, "TestPage", "FooTest", true);
+        m_engine.getManager( PageRenamer.class ).renamePage(context, "TestPage", "FooTest", true);
 
         final String data = m_engine.getManager( PageManager.class ).getPureText("TestPage2", WikiProvider.LATEST_VERSION);
 
         Assertions.assertEquals( "FooTest", data.trim(), "no rename" );
-        Collection< String > refs = m_engine.getReferenceManager().findReferrers("TestPage");
+        Collection< String > refs = m_engine.getManager( ReferenceManager.class ).findReferrers("TestPage");
 
         Assertions.assertNull( refs, "oldpage" );
 
-        refs = m_engine.getReferenceManager().findReferrers( "FooTest" );
+        refs = m_engine.getManager( ReferenceManager.class ).findReferrers( "FooTest" );
         Assertions.assertEquals( 1, refs.size(), "new size" );
         Assertions.assertEquals( "TestPage2", refs.iterator().next(), "wrong ref" );
     }
@@ -158,16 +160,16 @@ public class PageRenamerTest
 
         final WikiContext context = new WikiContext(m_engine, p);
 
-        m_engine.getPageRenamer().renamePage(context, "TestPage", "FooTest", true);
+        m_engine.getManager( PageRenamer.class ).renamePage(context, "TestPage", "FooTest", true);
 
         final String data = m_engine.getManager( PageManager.class ).getPureText("TestPage2", WikiProvider.LATEST_VERSION);
 
         Assertions.assertEquals( "[FooTest#heading1]", data.trim(), "no rename" );
-        Collection< String > refs = m_engine.getReferenceManager().findReferrers("TestPage");
+        Collection< String > refs = m_engine.getManager( ReferenceManager.class ).findReferrers("TestPage");
 
         Assertions.assertNull( refs, "oldpage" );
 
-        refs = m_engine.getReferenceManager().findReferrers( "FooTest" );
+        refs = m_engine.getManager( ReferenceManager.class ).findReferrers( "FooTest" );
         Assertions.assertEquals( 1, refs.size(), "new size" );
         Assertions.assertEquals( "TestPage2", refs.iterator().next(), "wrong ref" );
     }
@@ -183,7 +185,7 @@ public class PageRenamerTest
 
         final WikiContext context = new WikiContext(m_engine, p);
 
-        m_engine.getPageRenamer().renamePage(context, "TestPage", "FooTest", true);
+        m_engine.getManager( PageRenamer.class ).renamePage(context, "TestPage", "FooTest", true);
 
         final String data = m_engine.getManager( PageManager.class ).getPureText("TestPage2", WikiProvider.LATEST_VERSION);
 
@@ -191,11 +193,11 @@ public class PageRenamerTest
                                  data.trim(), 
                                  "no rename" );
 
-        Collection< String > refs = m_engine.getReferenceManager().findReferrers("TestPage");
+        Collection< String > refs = m_engine.getManager( ReferenceManager.class ).findReferrers("TestPage");
 
         Assertions.assertNull( refs, "oldpage" );
 
-        refs = m_engine.getReferenceManager().findReferrers( "FooTest" );
+        refs = m_engine.getManager( ReferenceManager.class ).findReferrers( "FooTest" );
         Assertions.assertEquals( 1, refs.size(), "new size" );
         Assertions.assertEquals( "TestPage2", refs.iterator().next(), "wrong ref" );
     }
@@ -211,7 +213,7 @@ public class PageRenamerTest
 
         final WikiContext context = new WikiContext(m_engine, p);
 
-        m_engine.getPageRenamer().renamePage(context, "Test", "TestPage", true);
+        m_engine.getManager( PageRenamer.class ).renamePage(context, "Test", "TestPage", true);
 
         final String data = m_engine.getManager( PageManager.class ).getPureText("TestPage2", WikiProvider.LATEST_VERSION );
 
@@ -231,29 +233,29 @@ public class PageRenamerTest
 
         final WikiContext context = new WikiContext(m_engine, p);
 
-        m_engine.getPageRenamer().renamePage(context, "TestPage", "FooTest", true);
+        m_engine.getManager( PageRenamer.class ).renamePage(context, "TestPage", "FooTest", true);
 
         final String data = m_engine.getManager( PageManager.class ).getPureText("TestPage2", WikiProvider.LATEST_VERSION);
 
         Assertions.assertEquals( "[FooTest/foo.txt] [linktext|FooTest/bar.jpg]", data.trim(), "no rename" );
 
-        Attachment att = m_engine.getAttachmentManager().getAttachmentInfo("FooTest/foo.txt");
+        Attachment att = m_engine.getManager( AttachmentManager.class ).getAttachmentInfo("FooTest/foo.txt");
         Assertions.assertNotNull( att, "footext" );
 
-        att = m_engine.getAttachmentManager().getAttachmentInfo("FooTest/bar.jpg");
+        att = m_engine.getManager( AttachmentManager.class ).getAttachmentInfo("FooTest/bar.jpg");
         Assertions.assertNotNull( att, "barjpg" );
 
-        att = m_engine.getAttachmentManager().getAttachmentInfo("TestPage/bar.jpg");
+        att = m_engine.getManager( AttachmentManager.class ).getAttachmentInfo("TestPage/bar.jpg");
         Assertions.assertNull( att, "testpage/bar.jpg exists" );
 
-        att = m_engine.getAttachmentManager().getAttachmentInfo("TestPage/foo.txt");
+        att = m_engine.getManager( AttachmentManager.class ).getAttachmentInfo("TestPage/foo.txt");
         Assertions.assertNull( att, "testpage/foo.txt exists" );
 
-        Collection< String > refs = m_engine.getReferenceManager().findReferrers("TestPage/bar.jpg");
+        Collection< String > refs = m_engine.getManager( ReferenceManager.class ).findReferrers("TestPage/bar.jpg");
 
         Assertions.assertNull( refs, "oldpage" );
 
-        refs = m_engine.getReferenceManager().findReferrers( "FooTest/bar.jpg" );
+        refs = m_engine.getManager( ReferenceManager.class ).findReferrers( "FooTest/bar.jpg" );
         Assertions.assertEquals( 1, refs.size(), "new size" );
         Assertions.assertEquals( "TestPage2", refs.iterator().next(), "wrong ref" );
     }
@@ -310,7 +312,7 @@ public class PageRenamerTest
 
         final WikiContext context = new WikiContext(m_engine, p);
 
-        m_engine.getPageRenamer().renamePage(context, src, dst, true);
+        m_engine.getManager( PageRenamer.class ).renamePage(context, src, dst, true);
     }
 
     @Test
@@ -486,10 +488,10 @@ public class PageRenamerTest
         final String data = m_engine.getManager( PageManager.class ).getPureText( "TestPageReferring", WikiProvider.LATEST_VERSION );
         Assertions.assertEquals( "[Test Page Referred|TestPageReferredNew]", data.trim(), "page not renamed" );
 
-        Collection< String > refs = m_engine.getReferenceManager().findReferrers( "TestPageReferred" );
+        Collection< String > refs = m_engine.getManager( ReferenceManager.class ).findReferrers( "TestPageReferred" );
         Assertions.assertNull( refs, "oldpage" );
 
-        refs = m_engine.getReferenceManager().findReferrers( "TestPageReferredNew" );
+        refs = m_engine.getManager( ReferenceManager.class ).findReferrers( "TestPageReferredNew" );
         Assertions.assertEquals( 1, refs.size(), "new size" );
         Assertions.assertEquals( "TestPageReferring", refs.iterator().next(), "wrong ref" );
     }
@@ -507,10 +509,10 @@ public class PageRenamerTest
         final String data = m_engine.getManager( PageManager.class ).getPureText( "RenameTest", WikiProvider.LATEST_VERSION );
         Assertions.assertEquals( "[link one|Link uno] [link two]", data.trim(), "page not renamed" );
 
-        Collection< String > refs = m_engine.getReferenceManager().findReferrers( "Link one" );
+        Collection< String > refs = m_engine.getManager( ReferenceManager.class ).findReferrers( "Link one" );
         Assertions.assertNull( refs, "oldpage" );
 
-        refs = m_engine.getReferenceManager().findReferrers( "Link uno" );
+        refs = m_engine.getManager( ReferenceManager.class ).findReferrers( "Link uno" );
         Assertions.assertEquals( 1, refs.size(), "new size" );
         Assertions.assertEquals( "RenameTest", refs.iterator().next() , "wrong ref");
     }
diff --git a/jspwiki-main/src/test/java/org/apache/wiki/pages/DefaultPageManagerTest.java b/jspwiki-main/src/test/java/org/apache/wiki/pages/DefaultPageManagerTest.java
index 30e5c56..593d75b 100644
--- a/jspwiki-main/src/test/java/org/apache/wiki/pages/DefaultPageManagerTest.java
+++ b/jspwiki-main/src/test/java/org/apache/wiki/pages/DefaultPageManagerTest.java
@@ -27,9 +27,12 @@ import org.apache.wiki.api.core.Attachment;
 import org.apache.wiki.api.core.Page;
 import org.apache.wiki.api.providers.AttachmentProvider;
 import org.apache.wiki.api.providers.WikiProvider;
+import org.apache.wiki.attachment.AttachmentManager;
 import org.apache.wiki.providers.CachingProvider;
 import org.apache.wiki.providers.FileSystemProvider;
 import org.apache.wiki.providers.VerySimpleProvider;
+import org.apache.wiki.references.ReferenceManager;
+import org.apache.wiki.render.RenderingManager;
 import org.apache.wiki.util.TextUtil;
 import org.junit.jupiter.api.AfterEach;
 import org.junit.jupiter.api.Assertions;
@@ -108,7 +111,7 @@ public class DefaultPageManagerTest {
         engine.saveText( NAME1, "Test" );
         final Attachment att = new org.apache.wiki.attachment.Attachment( engine, NAME1, "TestAtt.txt" );
         att.setAuthor( "FirstPost" );
-        engine.getAttachmentManager().storeAttachment( att, engine.makeAttachmentFile() );
+        engine.getManager( AttachmentManager.class ).storeAttachment( att, engine.makeAttachmentFile() );
 
         final String files = engine.getWikiProperties().getProperty( FileSystemProvider.PROP_PAGEDIR );
         final File saved = new File( files, NAME1+FileSystemProvider.FILE_EXT );
@@ -132,7 +135,7 @@ public class DefaultPageManagerTest {
         engine.saveText( NAME1, "Test" );
         Attachment att = new org.apache.wiki.attachment.Attachment( engine, NAME1, "TestAtt.txt" );
         att.setAuthor( "FirstPost" );
-        engine.getAttachmentManager().storeAttachment( att, engine.makeAttachmentFile() );
+        engine.getManager( AttachmentManager.class ).storeAttachment( att, engine.makeAttachmentFile() );
 
         final String files = engine.getWikiProperties().getProperty( FileSystemProvider.PROP_PAGEDIR );
         final File saved = new File( files, NAME1+FileSystemProvider.FILE_EXT );
@@ -146,13 +149,13 @@ public class DefaultPageManagerTest {
         final Page page = engine.getManager( PageManager.class ).getPage( NAME1, WikiProvider.LATEST_VERSION );
         Assertions.assertNotNull( page, "page" );
 
-        att = engine.getAttachmentManager().getAttachmentInfo(NAME1+"/TestAtt.txt");
+        att = engine.getManager( AttachmentManager.class ).getAttachmentInfo(NAME1+"/TestAtt.txt");
         engine.getManager( PageManager.class ).deletePage(att.getName());
         engine.getManager( PageManager.class ).deletePage( NAME1 );
         Assertions.assertNull( engine.getManager( PageManager.class ).getPage(NAME1), "Page not removed" );
         Assertions.assertNull( engine.getManager( PageManager.class ).getPage(NAME1+"/TestAtt.txt"), "Att not removed" );
 
-        final Collection< String > refs = engine.getReferenceManager().findReferrers(NAME1);
+        final Collection< String > refs = engine.getManager( ReferenceManager.class ).findReferrers(NAME1);
         Assertions.assertNull( refs, "referrers" );
     }
 
@@ -225,7 +228,7 @@ public class DefaultPageManagerTest {
         props.setProperty( "jspwiki.pageProvider", "org.apache.wiki.providers.VerySimpleProvider" );
         props.setProperty( "jspwiki.usePageCache", "false" );
         final WikiEngine engine = new TestEngine( props );
-        final String p = engine.getRenderingManager().getHTML( "test", -1 );
+        final String p = engine.getManager( RenderingManager.class ).getHTML( "test", -1 );
         final VerySimpleProvider vsp = (VerySimpleProvider) engine.getManager( PageManager.class ).getProvider();
 
         Assertions.assertEquals( "test", vsp.m_latestReq, "wrong page" );
@@ -239,7 +242,7 @@ public class DefaultPageManagerTest {
         props.setProperty( "jspwiki.pageProvider", "org.apache.wiki.providers.VerySimpleProvider" );
         props.setProperty( "jspwiki.usePageCache", "true" );
         final WikiEngine engine = new TestEngine( props );
-        final String p = engine.getRenderingManager().getHTML( VerySimpleProvider.PAGENAME, -1 );
+        final String p = engine.getManager( RenderingManager.class ).getHTML( VerySimpleProvider.PAGENAME, -1 );
         final CachingProvider cp = (CachingProvider)engine.getManager( PageManager.class ).getProvider();
         final VerySimpleProvider vsp = (VerySimpleProvider) cp.getRealProvider();
 
diff --git a/jspwiki-main/src/test/java/org/apache/wiki/parser/JSPWikiMarkupParserTest.java b/jspwiki-main/src/test/java/org/apache/wiki/parser/JSPWikiMarkupParserTest.java
index e13cbf4..7c85001 100644
--- a/jspwiki-main/src/test/java/org/apache/wiki/parser/JSPWikiMarkupParserTest.java
+++ b/jspwiki-main/src/test/java/org/apache/wiki/parser/JSPWikiMarkupParserTest.java
@@ -30,6 +30,7 @@ import org.apache.wiki.api.providers.AttachmentProvider;
 import org.apache.wiki.attachment.Attachment;
 import org.apache.wiki.attachment.AttachmentManager;
 import org.apache.wiki.providers.BasicAttachmentProvider;
+import org.apache.wiki.render.RenderingManager;
 import org.apache.wiki.render.XHTMLRenderer;
 import org.apache.wiki.stress.Benchmark;
 import org.apache.wiki.util.TextUtil;
@@ -806,7 +807,7 @@ public class JSPWikiMarkupParserTest
 
         testEngine2.getAttachmentManager().storeAttachment( att, testEngine.makeAttachmentFile() );
 
-        final String src = "["+testEngine2.getRenderingManager().beautifyTitle("TestPage/TestAtt.txt")+"]";
+        final String src = "["+testEngine2.getManager( RenderingManager.class ).beautifyTitle("TestPage/TestAtt.txt")+"]";
 
         Assertions.assertEquals( "<a class=\"attachment\" href=\"/test/attach/TestPage/TestAtt.txt\">Test Page/TestAtt.txt</a>"+
                       "<a href=\"/test/PageInfo.jsp?page=TestPage/TestAtt.txt\" class=\"infolink\"><img src=\"/test/images/attachment_small.png\" border=\"0\" alt=\"(info)\" /></a>",
diff --git a/jspwiki-main/src/test/java/org/apache/wiki/plugin/DefaultPluginManagerTest.java b/jspwiki-main/src/test/java/org/apache/wiki/plugin/DefaultPluginManagerTest.java
index 2a7717e..cbd97a0 100644
--- a/jspwiki-main/src/test/java/org/apache/wiki/plugin/DefaultPluginManagerTest.java
+++ b/jspwiki-main/src/test/java/org/apache/wiki/plugin/DefaultPluginManagerTest.java
@@ -25,6 +25,7 @@ import org.apache.wiki.WikiEngine;
 import org.apache.wiki.WikiPage;
 import org.apache.wiki.api.exceptions.ProviderException;
 import org.apache.wiki.pages.PageManager;
+import org.apache.wiki.render.RenderingManager;
 import org.junit.jupiter.api.AfterEach;
 import org.junit.jupiter.api.Assertions;
 import org.junit.jupiter.api.BeforeEach;
@@ -148,7 +149,7 @@ public class DefaultPluginManagerTest {
     @Test
     public void testParserPlugin() throws Exception {
         engine.getManager( PageManager.class ).saveText(context, "[{SamplePlugin render=true}]");
-        engine.getRenderingManager().getHTML( "Testpage" );
+        engine.getManager( RenderingManager.class ).getHTML( "Testpage" );
         Assertions.assertTrue( SamplePlugin.c_rendered );
     }
 
diff --git a/jspwiki-main/src/test/java/org/apache/wiki/plugin/GroupsTest.java b/jspwiki-main/src/test/java/org/apache/wiki/plugin/GroupsTest.java
index 21619b2..104c1ed 100644
--- a/jspwiki-main/src/test/java/org/apache/wiki/plugin/GroupsTest.java
+++ b/jspwiki-main/src/test/java/org/apache/wiki/plugin/GroupsTest.java
@@ -21,6 +21,7 @@ package org.apache.wiki.plugin;
 
 import org.apache.wiki.TestEngine;
 import org.apache.wiki.pages.PageManager;
+import org.apache.wiki.render.RenderingManager;
 import org.junit.jupiter.api.AfterEach;
 import org.junit.jupiter.api.Assertions;
 import org.junit.jupiter.api.Test;
@@ -41,7 +42,7 @@ public class GroupsTest {
 
         testEngine.saveText( "Test", src );
 
-        final String res = testEngine.getRenderingManager().getHTML( "Test" );
+        final String res = testEngine.getManager( RenderingManager.class ).getHTML( "Test" );
 
         Assertions.assertEquals( "<a href=\"/test/Group.jsp?group=Admin\">Admin</a>, "
                 + "<a href=\"/test/Group.jsp?group=Art\">Art</a>, "
diff --git a/jspwiki-main/src/test/java/org/apache/wiki/plugin/IfPluginTest.java b/jspwiki-main/src/test/java/org/apache/wiki/plugin/IfPluginTest.java
index 22eaeea..4560e93 100644
--- a/jspwiki-main/src/test/java/org/apache/wiki/plugin/IfPluginTest.java
+++ b/jspwiki-main/src/test/java/org/apache/wiki/plugin/IfPluginTest.java
@@ -27,8 +27,10 @@ import org.apache.wiki.api.core.Page;
 import org.apache.wiki.api.core.Session;
 import org.apache.wiki.api.exceptions.WikiException;
 import org.apache.wiki.api.providers.PageProvider;
+import org.apache.wiki.auth.AuthenticationManager;
 import org.apache.wiki.auth.Users;
 import org.apache.wiki.pages.PageManager;
+import org.apache.wiki.render.RenderingManager;
 import org.junit.jupiter.api.AfterEach;
 import org.junit.jupiter.api.Assertions;
 import org.junit.jupiter.api.Test;
@@ -52,7 +54,7 @@ public class IfPluginTest {
     WikiContext getJanneBasedWikiContextFor( final Page page ) throws WikiException {
         final MockHttpServletRequest request = testEngine.newHttpRequest();
         final Session session =  WikiSession.getWikiSession( testEngine, request );
-        testEngine.getAuthenticationManager().login( session, request, Users.JANNE, Users.JANNE_PASS );
+        testEngine.getManager( AuthenticationManager.class ).login( session, request, Users.JANNE, Users.JANNE_PASS );
         return new WikiContext( testEngine, request, page );
     }
 
@@ -71,7 +73,7 @@ public class IfPluginTest {
         final Page page = testEngine.getManager( PageManager.class ).getPage( "Test", PageProvider.LATEST_VERSION );
         final WikiContext context = getJanneBasedWikiContextFor( page );
 
-        final String res = testEngine.getRenderingManager().getHTML( context, page );
+        final String res = testEngine.getManager( RenderingManager.class ).getHTML( context, page );
         Assertions.assertEquals( expected, res );
     }
 
@@ -90,7 +92,7 @@ public class IfPluginTest {
         final Page page = testEngine.getManager( PageManager.class ).getPage( "Test", PageProvider.LATEST_VERSION );
         final WikiContext context = getJanneBasedWikiContextFor( page );
 
-        final String res = testEngine.getRenderingManager().getHTML( context, page );
+        final String res = testEngine.getManager( RenderingManager.class ).getHTML( context, page );
         Assertions.assertEquals( expected, res );
     }
 
@@ -108,7 +110,7 @@ public class IfPluginTest {
         final Page page = testEngine.getManager( PageManager.class ).getPage( "Test", PageProvider.LATEST_VERSION );
         final WikiContext context = getJanneBasedWikiContextFor( page );
 
-        final String res = testEngine.getRenderingManager().getHTML( context, page );
+        final String res = testEngine.getManager( RenderingManager.class ).getHTML( context, page );
         Assertions.assertEquals( expected, res );
     }
 
@@ -126,7 +128,7 @@ public class IfPluginTest {
         final Page page = testEngine.getManager( PageManager.class ).getPage( "Test", PageProvider.LATEST_VERSION );
         final WikiContext context = getJanneBasedWikiContextFor( page );
 
-        final String res = testEngine.getRenderingManager().getHTML( context, page );
+        final String res = testEngine.getManager( RenderingManager.class ).getHTML( context, page );
         Assertions.assertEquals( expected, res );
     }
 
diff --git a/jspwiki-main/src/test/java/org/apache/wiki/plugin/PageViewPluginTest.java b/jspwiki-main/src/test/java/org/apache/wiki/plugin/PageViewPluginTest.java
index 7a3c6a4..4ca9548 100644
--- a/jspwiki-main/src/test/java/org/apache/wiki/plugin/PageViewPluginTest.java
+++ b/jspwiki-main/src/test/java/org/apache/wiki/plugin/PageViewPluginTest.java
@@ -23,6 +23,7 @@ import org.apache.wiki.TestEngine;
 import org.apache.wiki.WikiContext;
 import org.apache.wiki.api.core.Page;
 import org.apache.wiki.pages.PageManager;
+import org.apache.wiki.render.RenderingManager;
 import org.junit.jupiter.api.AfterEach;
 import org.junit.jupiter.api.Assertions;
 import org.junit.jupiter.api.BeforeEach;
@@ -71,9 +72,9 @@ public class PageViewPluginTest
         final WikiContext context2 = new WikiContext( testEngine, page2 );
 
         // generate counts:
-        testEngine.getRenderingManager().getHTML( context1, page1 );
-        testEngine.getRenderingManager().getHTML( context2, page2 );
-        testEngine.getRenderingManager().getHTML( context2, page2 );
+        testEngine.getManager( RenderingManager.class ).getHTML( context1, page1 );
+        testEngine.getManager( RenderingManager.class ).getHTML( context2, page2 );
+        testEngine.getManager( RenderingManager.class ).getHTML( context2, page2 );
 
         // mind the double \n in the following string:
         final String pageViewPageContent = "[{PageViewPlugin show='list''\n\n* {1} ({2} views)\n}]";
@@ -82,7 +83,7 @@ public class PageViewPluginTest
         final Page pageviews = testEngine.getManager( PageManager.class ).getPage( "PageViews" );
         final WikiContext contextPV = new WikiContext( testEngine, pageviews );
 
-        final String result = testEngine.getRenderingManager().getHTML( contextPV, pageviews );
+        final String result = testEngine.getManager( RenderingManager.class ).getHTML( contextPV, pageviews );
 //        System.out.println( result );
 
         Assertions.assertTrue( result.contains( "Test Page 01 (2 views)" ) );
@@ -101,9 +102,9 @@ public class PageViewPluginTest
         final WikiContext context2 = new WikiContext( testEngine, page2 );
 
         // generate counts:
-        testEngine.getRenderingManager().getHTML( context1, page1 );
-        testEngine.getRenderingManager().getHTML( context2, page2 );
-        testEngine.getRenderingManager().getHTML( context2, page2 );
+        testEngine.getManager( RenderingManager.class ).getHTML( context1, page1 );
+        testEngine.getManager( RenderingManager.class ).getHTML( context2, page2 );
+        testEngine.getManager( RenderingManager.class ).getHTML( context2, page2 );
 
         // mind the double \n in the following string:
         final String pageViewPageContent = "[{PageViewPlugin show='list' exclude='TestPageExcl*' '\n\n* {1} ({2} views)\n}]";
@@ -112,7 +113,7 @@ public class PageViewPluginTest
         final Page pageviews = testEngine.getManager( PageManager.class ).getPage( "PageViews" );
         final WikiContext contextPV = new WikiContext( testEngine, pageviews );
 
-        final String result = testEngine.getRenderingManager().getHTML( contextPV, pageviews );
+        final String result = testEngine.getManager( RenderingManager.class ).getHTML( contextPV, pageviews );
 //        System.out.println( result );
 
         Assertions.assertTrue( result.contains( "Test Page 01" ) );
@@ -132,9 +133,9 @@ public class PageViewPluginTest
         final WikiContext context2 = new WikiContext( testEngine, page2 );
 
         // generate counts:
-        testEngine.getRenderingManager().getHTML( context1, page1 );
-        testEngine.getRenderingManager().getHTML( context2, page2 );
-        testEngine.getRenderingManager().getHTML( context2, page2 );
+        testEngine.getManager( RenderingManager.class ).getHTML( context1, page1 );
+        testEngine.getManager( RenderingManager.class ).getHTML( context2, page2 );
+        testEngine.getManager( RenderingManager.class ).getHTML( context2, page2 );
 
         // mind the double \n in the following string:
         final String pageViewPageContent = "[{PageViewPlugin show='list' sort=count '\n\n* {1} ({2} views)\n}]";
@@ -143,7 +144,7 @@ public class PageViewPluginTest
         final Page pageviews = testEngine.getManager( PageManager.class ).getPage( "PageViews" );
         final WikiContext contextPV = new WikiContext( testEngine, pageviews );
 
-        final String result = testEngine.getRenderingManager().getHTML( contextPV, pageviews );
+        final String result = testEngine.getManager( RenderingManager.class ).getHTML( contextPV, pageviews );
 //        System.out.println( result );
 
         final int start1 = result.indexOf( "Test Page 01" );
@@ -170,11 +171,11 @@ public class PageViewPluginTest
         final WikiContext context4 = new WikiContext( testEngine, page4 );
 
         // generate counts:
-        testEngine.getRenderingManager().getHTML( context1, page1 );
-        testEngine.getRenderingManager().getHTML( context2, page2 );
-        testEngine.getRenderingManager().getHTML( context2, page2 );
-        testEngine.getRenderingManager().getHTML( context3, page3 );
-        testEngine.getRenderingManager().getHTML( context4, page4 );
+        testEngine.getManager( RenderingManager.class ).getHTML( context1, page1 );
+        testEngine.getManager( RenderingManager.class ).getHTML( context2, page2 );
+        testEngine.getManager( RenderingManager.class ).getHTML( context2, page2 );
+        testEngine.getManager( RenderingManager.class ).getHTML( context3, page3 );
+        testEngine.getManager( RenderingManager.class ).getHTML( context4, page4 );
 
         // mind the double \n in the following string:
         final String pageViewPageContent = "[{PageViewPlugin show='list' entries=3'\n\n* {1} ({2} views)\n}]";
@@ -183,7 +184,7 @@ public class PageViewPluginTest
         final Page pageviews = testEngine.getManager( PageManager.class ).getPage( "PageViews" );
         final WikiContext contextPV = new WikiContext( testEngine, pageviews );
 
-        final String result = testEngine.getRenderingManager().getHTML( contextPV, pageviews );
+        final String result = testEngine.getManager( RenderingManager.class ).getHTML( contextPV, pageviews );
 //        System.out.println( result );
 
         Assertions.assertTrue( result.contains( "Test Page 03" ) );
diff --git a/jspwiki-main/src/test/java/org/apache/wiki/references/ReferenceManagerTest.java b/jspwiki-main/src/test/java/org/apache/wiki/references/ReferenceManagerTest.java
index f520822..a438df5 100644
--- a/jspwiki-main/src/test/java/org/apache/wiki/references/ReferenceManagerTest.java
+++ b/jspwiki-main/src/test/java/org/apache/wiki/references/ReferenceManagerTest.java
@@ -48,7 +48,7 @@ public class ReferenceManagerTest  {
         engine.saveText( "TestPage", "Reference to [Foobar]." );
         engine.saveText( "Foobar", "Reference to [Foobar2], [Foobars], [Foobar]" );
 
-        mgr = engine.getReferenceManager();
+        mgr = engine.getManager( ReferenceManager.class );
     }
 
     @AfterEach
diff --git a/jspwiki-main/src/test/java/org/apache/wiki/render/RenderingManagerTest.java b/jspwiki-main/src/test/java/org/apache/wiki/render/RenderingManagerTest.java
index c1ebf33..86d0009 100644
--- a/jspwiki-main/src/test/java/org/apache/wiki/render/RenderingManagerTest.java
+++ b/jspwiki-main/src/test/java/org/apache/wiki/render/RenderingManagerTest.java
@@ -33,7 +33,7 @@ import org.junit.jupiter.api.Test;
 public class RenderingManagerTest {
 
     TestEngine       m_engine = TestEngine.build();
-    RenderingManager m_manager = m_engine.getRenderingManager();
+    RenderingManager m_manager = m_engine.getManager( RenderingManager.class );
 
     @AfterEach
     public void tearDown() throws Exception {
@@ -44,7 +44,7 @@ public class RenderingManagerTest {
     @Test
     public void testBeautifyTitle() {
         final String src = "WikiNameThingy";
-        Assertions.assertEquals("Wiki Name Thingy", m_engine.getRenderingManager().beautifyTitle( src ) );
+        Assertions.assertEquals("Wiki Name Thingy", m_engine.getManager( RenderingManager.class ).beautifyTitle( src ) );
     }
 
     /**
@@ -53,7 +53,7 @@ public class RenderingManagerTest {
     @Test
     public void testBeautifyTitleAcronym() {
         final String src = "JSPWikiPage";
-        Assertions.assertEquals("JSP Wiki Page", m_engine.getRenderingManager().beautifyTitle( src ) );
+        Assertions.assertEquals("JSP Wiki Page", m_engine.getManager( RenderingManager.class ).beautifyTitle( src ) );
     }
 
     /**
@@ -62,19 +62,19 @@ public class RenderingManagerTest {
     @Test
     public void testBeautifyTitleAcronym2() {
         final String src = "DELETEME";
-        Assertions.assertEquals("DELETEME", m_engine.getRenderingManager().beautifyTitle( src ) );
+        Assertions.assertEquals("DELETEME", m_engine.getManager( RenderingManager.class ).beautifyTitle( src ) );
     }
 
     @Test
     public void testBeautifyTitleAcronym3() {
         final String src = "JSPWikiFAQ";
-        Assertions.assertEquals("JSP Wiki FAQ", m_engine.getRenderingManager().beautifyTitle( src ) );
+        Assertions.assertEquals("JSP Wiki FAQ", m_engine.getManager( RenderingManager.class ).beautifyTitle( src ) );
     }
 
     @Test
     public void testBeautifyTitleNumbers() {
         final String src = "TestPage12";
-        Assertions.assertEquals("Test Page 12", m_engine.getRenderingManager().beautifyTitle( src ) );
+        Assertions.assertEquals("Test Page 12", m_engine.getManager( RenderingManager.class ).beautifyTitle( src ) );
     }
 
     /**
@@ -83,7 +83,7 @@ public class RenderingManagerTest {
     @Test
     public void testBeautifyTitleArticle() {
         final String src = "ThisIsAPage";
-        Assertions.assertEquals("This Is A Page", m_engine.getRenderingManager().beautifyTitle( src ) );
+        Assertions.assertEquals("This Is A Page", m_engine.getManager( RenderingManager.class ).beautifyTitle( src ) );
     }
 
     @Test
@@ -92,7 +92,7 @@ public class RenderingManagerTest {
         final String name = "Test1";
         m_engine.saveText( name, text );
 
-        final String data = m_engine.getRenderingManager().getHTML( name );
+        final String data = m_engine.getManager( RenderingManager.class ).getHTML( name );
         Assertions.assertEquals( "<i>Foobar.</i>\n", data );
     }
 
diff --git a/jspwiki-main/src/test/java/org/apache/wiki/rss/RSSGeneratorTest.java b/jspwiki-main/src/test/java/org/apache/wiki/rss/RSSGeneratorTest.java
index ae6b754..763ba95 100644
--- a/jspwiki-main/src/test/java/org/apache/wiki/rss/RSSGeneratorTest.java
+++ b/jspwiki-main/src/test/java/org/apache/wiki/rss/RSSGeneratorTest.java
@@ -75,7 +75,7 @@ public class RSSGeneratorTest {
         newPage = plugin.getNewEntryPage( m_testEngine, "TestBlog" );
         m_testEngine.saveText( newPage, "!Title2\r\n__Bar__" );
 
-        final RSSGenerator gen = m_testEngine.getRSSGenerator();
+        final RSSGenerator gen = m_testEngine.getManager( RSSGenerator.class );
 
         final WikiContext context = new WikiContext( m_testEngine, m_testEngine.getManager( PageManager.class ).getPage("TestBlog") );
 
@@ -89,8 +89,8 @@ public class RSSGeneratorTest {
         final Feed feed = new RSS10Feed( context );
         final String blog = gen.generateBlogRSS( context, entries, feed );
 
-        Assertions.assertTrue( blog.indexOf("<description>Foo</description>") != -1, "has Foo" );
-        Assertions.assertTrue( blog.indexOf("&lt;b&gt;Bar&lt;/b&gt;") != -1, "has proper Bar" );
+        Assertions.assertTrue( blog.contains( "<description>Foo</description>" ), "has Foo" );
+        Assertions.assertTrue( blog.contains( "&lt;b&gt;Bar&lt;/b&gt;" ), "has proper Bar" );
     }
 
     @Test
@@ -106,7 +106,7 @@ public class RSSGeneratorTest {
         newPage = plugin.getNewEntryPage( m_testEngine, "TestBlog" );
         m_testEngine.saveText( newPage, "!Title2\r\n__Bar__" );
 
-        final RSSGenerator gen = m_testEngine.getRSSGenerator();
+        final RSSGenerator gen = m_testEngine.getManager( RSSGenerator.class );
 
         final WikiContext context = new WikiContext( m_testEngine, m_testEngine.getManager( PageManager.class ).getPage("TestBlog") );
 
diff --git a/jspwiki-main/src/test/java/org/apache/wiki/search/SearchManagerTest.java b/jspwiki-main/src/test/java/org/apache/wiki/search/SearchManagerTest.java
index 1f7374e..527cd85 100644
--- a/jspwiki-main/src/test/java/org/apache/wiki/search/SearchManagerTest.java
+++ b/jspwiki-main/src/test/java/org/apache/wiki/search/SearchManagerTest.java
@@ -55,7 +55,7 @@ public class SearchManagerTest {
 
         CacheManager.getInstance().removeAllCaches();
         m_engine = new TestEngine( props );
-        m_mgr = m_engine.getSearchManager();
+        m_mgr = m_engine.getManager( SearchManager.class );
     }
 
     @AfterEach
diff --git a/jspwiki-main/src/test/java/org/apache/wiki/stress/MassiveRepositoryTest.java b/jspwiki-main/src/test/java/org/apache/wiki/stress/MassiveRepositoryTest.java
index 4ed3d08..5d842b3 100644
--- a/jspwiki-main/src/test/java/org/apache/wiki/stress/MassiveRepositoryTest.java
+++ b/jspwiki-main/src/test/java/org/apache/wiki/stress/MassiveRepositoryTest.java
@@ -24,6 +24,7 @@ import org.apache.wiki.api.exceptions.WikiException;
 import org.apache.wiki.api.providers.WikiProvider;
 import org.apache.wiki.pages.PageManager;
 import org.apache.wiki.providers.FileSystemProvider;
+import org.apache.wiki.render.RenderingManager;
 import org.apache.wiki.util.TextUtil;
 import org.junit.jupiter.api.AfterEach;
 import org.junit.jupiter.api.Assertions;
@@ -163,7 +164,7 @@ public class MassiveRepositoryTest {
         {
             final String page = getName( random.nextInt( numPages ) );
             
-            final String content = engine.getRenderingManager().getHTML( page, WikiProvider.LATEST_VERSION );
+            final String content = engine.getManager( RenderingManager.class ).getHTML( page, WikiProvider.LATEST_VERSION );
               
             Assertions.assertNotNull(content);
             
diff --git a/jspwiki-main/src/test/java/org/apache/wiki/ui/CommandResolverTest.java b/jspwiki-main/src/test/java/org/apache/wiki/ui/CommandResolverTest.java
index acafb5e..ee45442 100644
--- a/jspwiki-main/src/test/java/org/apache/wiki/ui/CommandResolverTest.java
+++ b/jspwiki-main/src/test/java/org/apache/wiki/ui/CommandResolverTest.java
@@ -48,7 +48,7 @@ public class CommandResolverTest {
         final Properties props = TestEngine.getTestProperties();
         props.setProperty( WikiEngine.PROP_MATCHPLURALS, "yes" );
         m_engine = new TestEngine( props );
-        resolver = m_engine.getCommandResolver();
+        resolver = m_engine.getManager( CommandResolver.class );
         m_engine.saveText( "SinglePage", "This is a test." );
         m_engine.saveText( "PluralPages", "This is a test." );
     }
diff --git a/jspwiki-main/src/test/java/org/apache/wiki/workflow/ApprovalWorkflowTest.java b/jspwiki-main/src/test/java/org/apache/wiki/workflow/ApprovalWorkflowTest.java
index 5bbdd5d..d5772d5 100644
--- a/jspwiki-main/src/test/java/org/apache/wiki/workflow/ApprovalWorkflowTest.java
+++ b/jspwiki-main/src/test/java/org/apache/wiki/workflow/ApprovalWorkflowTest.java
@@ -53,7 +53,7 @@ public class ApprovalWorkflowTest {
 
         // Start the wiki engine
         m_engine = new TestEngine( props );
-        m_wm = m_engine.getWorkflowManager();
+        m_wm = m_engine.getManager( WorkflowManager.class );
         m_dq = m_wm.getDecisionQueue();
         m_builder = WorkflowBuilder.getBuilder( m_engine );
     }
@@ -75,7 +75,7 @@ public class ApprovalWorkflowTest {
         final Workflow w = m_builder.buildApprovalWorkflow(submitter, workflowApproverKey,
                                                    prepTask, decisionKey, facts,
                                                    completionTask, rejectedMessageKey);
-        w.setWorkflowManager( m_engine.getWorkflowManager() );
+        w.setWorkflowManager( m_engine.getManager( WorkflowManager.class ) );
 
         // Check to see if the workflow built correctly
         Assertions.assertFalse( w.isStarted() || w.isCompleted() || w.isAborted() );
@@ -83,7 +83,7 @@ public class ApprovalWorkflowTest {
         Assertions.assertEquals( "workflow.approvalWorkflow", w.getMessageKey() );
         Assertions.assertEquals( Workflow.CREATED, w.getCurrentState() );
         Assertions.assertEquals( new WikiPrincipal("Submitter"), w.getOwner() );
-        Assertions.assertEquals( m_engine.getWorkflowManager(), w.getWorkflowManager() );
+        Assertions.assertEquals( m_engine.getManager( WorkflowManager.class ), w.getWorkflowManager() );
         Assertions.assertEquals( 0, w.getHistory().size() );
 
         // Our dummy "task complete" attributes should still be null
@@ -149,7 +149,7 @@ public class ApprovalWorkflowTest {
         final Workflow w = m_builder.buildApprovalWorkflow(submitter, workflowApproverKey,
                                                    prepTask, decisionKey, facts,
                                                    completionTask, rejectedMessageKey);
-        w.setWorkflowManager( m_engine.getWorkflowManager() );
+        w.setWorkflowManager( m_engine.getManager( WorkflowManager.class ) );
 
         // Start the workflow
         w.start();
@@ -242,7 +242,7 @@ public class ApprovalWorkflowTest {
     @Test
     public void testSaveWikiPageWithException() {
         // Add a PageFilter that rejects all save attempts
-        final FilterManager fm = m_engine.getFilterManager();
+        final FilterManager fm = m_engine.getManager( FilterManager.class );
         fm.addPageFilter( new AbortFilter(), 0 );
 
         // Create a sample test page and try to save it
diff --git a/jspwiki-main/src/test/java/org/apache/wiki/workflow/DecisionQueueTest.java b/jspwiki-main/src/test/java/org/apache/wiki/workflow/DecisionQueueTest.java
index cb34b85..0f3eab4 100644
--- a/jspwiki-main/src/test/java/org/apache/wiki/workflow/DecisionQueueTest.java
+++ b/jspwiki-main/src/test/java/org/apache/wiki/workflow/DecisionQueueTest.java
@@ -56,11 +56,11 @@ public class DecisionQueueTest
 
         final Properties props = TestEngine.getTestProperties();
         m_engine = new TestEngine(props);
-        m_queue = m_engine.getWorkflowManager().getDecisionQueue();
+        m_queue = m_engine.getManager( WorkflowManager.class ).getDecisionQueue();
         adminSession = m_engine.adminSession();
         janneSession = m_engine.janneSession();
         w = new Workflow("workflow.key", new WikiPrincipal("Owner1"));
-        w.setWorkflowManager(m_engine.getWorkflowManager());
+        w.setWorkflowManager( m_engine.getManager( WorkflowManager.class ) );
         d1 = new SimpleDecision(w, "decision1.key", new GroupPrincipal("Admin"));
         d2 = new SimpleDecision(w, "decision2.key", new WikiPrincipal("Owner2"));
         d3 = new SimpleDecision(w, "decision3.key", janneSession.getUserPrincipal());
@@ -168,7 +168,7 @@ public class DecisionQueueTest
 
         // Create a workflow with 3 steps, with a Decision for Janne in the middle
         w = new Workflow("workflow.key", new WikiPrincipal("Owner1"));
-        w.setWorkflowManager(m_engine.getWorkflowManager());
+        w.setWorkflowManager( m_engine.getManager( WorkflowManager.class ) );
         final Step startTask = new TaskTest.NormalTask(w);
         final Step endTask = new TaskTest.NormalTask(w);
         final Decision decision = new SimpleDecision(w, "decision.Actor1Decision", janne);
diff --git a/jspwiki-main/src/test/java/org/apache/wiki/workflow/OutcomeTest.java b/jspwiki-main/src/test/java/org/apache/wiki/workflow/OutcomeTest.java
index f4d6156..e9b229b 100644
--- a/jspwiki-main/src/test/java/org/apache/wiki/workflow/OutcomeTest.java
+++ b/jspwiki-main/src/test/java/org/apache/wiki/workflow/OutcomeTest.java
@@ -18,51 +18,44 @@
  */
 package org.apache.wiki.workflow;
 
-import java.util.Locale;
-import java.util.Properties;
-
 import org.apache.wiki.TestEngine;
 import org.apache.wiki.WikiEngine;
 import org.apache.wiki.i18n.InternationalizationManager;
 import org.junit.jupiter.api.Assertions;
 import org.junit.jupiter.api.Test;
 
-public class OutcomeTest
-{
+import java.util.Locale;
+
+public class OutcomeTest {
 
     @Test
-    public void testGetKey()
-    {
-        Assertions.assertEquals("outcome.decision.approve", Outcome.DECISION_APPROVE.getMessageKey());
-        Assertions.assertEquals("outcome.decision.hold", Outcome.DECISION_HOLD.getMessageKey());
-        Assertions.assertEquals("outcome.decision.deny", Outcome.DECISION_DENY.getMessageKey());
-        Assertions.assertEquals("outcome.decision.reassign", Outcome.DECISION_REASSIGN.getMessageKey());
+    public void testGetKey() {
+        Assertions.assertEquals( "outcome.decision.approve", Outcome.DECISION_APPROVE.getMessageKey() );
+        Assertions.assertEquals( "outcome.decision.hold", Outcome.DECISION_HOLD.getMessageKey() );
+        Assertions.assertEquals( "outcome.decision.deny", Outcome.DECISION_DENY.getMessageKey() );
+        Assertions.assertEquals( "outcome.decision.reassign", Outcome.DECISION_REASSIGN.getMessageKey() );
     }
 
     @Test
-    public void testHashCode()
-    {
-        Assertions.assertEquals("outcome.decision.approve".hashCode(), Outcome.DECISION_APPROVE.hashCode());
-        Assertions.assertEquals("outcome.decision.hold".hashCode()*2, Outcome.DECISION_HOLD.hashCode());
-        Assertions.assertEquals("outcome.decision.deny".hashCode(), Outcome.DECISION_DENY.hashCode());
-        Assertions.assertEquals("outcome.decision.reassign".hashCode()*2, Outcome.DECISION_REASSIGN.hashCode());
+    public void testHashCode() {
+        Assertions.assertEquals( "outcome.decision.approve".hashCode(), Outcome.DECISION_APPROVE.hashCode() );
+        Assertions.assertEquals( "outcome.decision.hold".hashCode() * 2, Outcome.DECISION_HOLD.hashCode() );
+        Assertions.assertEquals( "outcome.decision.deny".hashCode(), Outcome.DECISION_DENY.hashCode() );
+        Assertions.assertEquals( "outcome.decision.reassign".hashCode() * 2, Outcome.DECISION_REASSIGN.hashCode() );
     }
 
     @Test
-    public void testEquals()
-    {
-        Assertions.assertEquals(Outcome.DECISION_APPROVE, Outcome.DECISION_APPROVE);
-        Assertions.assertNotSame(Outcome.DECISION_APPROVE, Outcome.DECISION_REASSIGN);
+    public void testEquals() {
+        Assertions.assertEquals( Outcome.DECISION_APPROVE, Outcome.DECISION_APPROVE );
+        Assertions.assertNotSame( Outcome.DECISION_APPROVE, Outcome.DECISION_REASSIGN );
     }
 
     @Test
-    public void testMessage() throws Exception
-    {
-        Properties props = TestEngine.getTestProperties();
-        WikiEngine engine = new TestEngine(props);
-        InternationalizationManager i18n = engine.getInternationalizationManager();
-        String core = "templates.default";
-        Locale rootLocale = Locale.ROOT;
+    public void testMessage() {
+        final WikiEngine engine = TestEngine.build();
+        final InternationalizationManager i18n = engine.getManager( InternationalizationManager.class );
+        final String core = "templates.default";
+        final Locale rootLocale = Locale.ROOT;
         Outcome o;
 
         o = Outcome.DECISION_APPROVE;
@@ -79,8 +72,7 @@ public class OutcomeTest
     }
 
     @Test
-    public void testIsCompletion()
-    {
+    public void testIsCompletion() {
         Assertions.assertTrue(Outcome.DECISION_ACKNOWLEDGE.isCompletion());
         Assertions.assertTrue(Outcome.DECISION_APPROVE.isCompletion());
         Assertions.assertTrue(Outcome.DECISION_DENY.isCompletion());
@@ -92,36 +84,29 @@ public class OutcomeTest
     }
 
     @Test
-    public void testForName()
-    {
-        try
-        {
-            Assertions.assertEquals(Outcome.DECISION_ACKNOWLEDGE, Outcome.forName("outcome.decision.acknowledge"));
-            Assertions.assertEquals(Outcome.DECISION_APPROVE, Outcome.forName("outcome.decision.approve"));
-            Assertions.assertEquals(Outcome.DECISION_DENY, Outcome.forName("outcome.decision.deny"));
-            Assertions.assertEquals(Outcome.DECISION_HOLD, Outcome.forName("outcome.decision.hold"));
-            Assertions.assertEquals(Outcome.DECISION_REASSIGN, Outcome.forName("outcome.decision.reassign"));
-            Assertions.assertEquals(Outcome.STEP_ABORT, Outcome.forName("outcome.step.abort"));
-            Assertions.assertEquals(Outcome.STEP_COMPLETE, Outcome.forName("outcome.step.complete"));
-            Assertions.assertEquals(Outcome.STEP_CONTINUE, Outcome.forName("outcome.step.continue"));
-        }
-        catch (NoSuchOutcomeException e)
-        {
+    public void testForName() {
+        try {
+            Assertions.assertEquals( Outcome.DECISION_ACKNOWLEDGE, Outcome.forName( "outcome.decision.acknowledge" ) );
+            Assertions.assertEquals( Outcome.DECISION_APPROVE, Outcome.forName( "outcome.decision.approve" ) );
+            Assertions.assertEquals( Outcome.DECISION_DENY, Outcome.forName( "outcome.decision.deny" ) );
+            Assertions.assertEquals( Outcome.DECISION_HOLD, Outcome.forName( "outcome.decision.hold" ) );
+            Assertions.assertEquals( Outcome.DECISION_REASSIGN, Outcome.forName( "outcome.decision.reassign" ) );
+            Assertions.assertEquals( Outcome.STEP_ABORT, Outcome.forName( "outcome.step.abort" ) );
+            Assertions.assertEquals( Outcome.STEP_COMPLETE, Outcome.forName( "outcome.step.complete" ) );
+            Assertions.assertEquals( Outcome.STEP_CONTINUE, Outcome.forName( "outcome.step.continue" ) );
+        } catch( final NoSuchOutcomeException e ) {
             // We should never get here
-            Assertions.fail("Could not look up an Outcome...");
+            Assertions.fail( "Could not look up an Outcome..." );
         }
 
         // Look for a non-existent one
-        try
-        {
-            Outcome.forName("outcome.decision.nonexistent");
-        }
-        catch (NoSuchOutcomeException e)
-        {
+        try {
+            Outcome.forName( "outcome.decision.nonexistent" );
+        } catch( final NoSuchOutcomeException e ) {
             return;
         }
         // We should never get here
-        Assertions.fail("Could not look up an Outcome...");
+        Assertions.fail( "Could not look up an Outcome..." );
     }
 
 }
diff --git a/jspwiki-main/src/test/java/org/apache/wiki/workflow/WorkflowManagerTest.java b/jspwiki-main/src/test/java/org/apache/wiki/workflow/WorkflowManagerTest.java
index fa90b73..f6b8a19 100644
--- a/jspwiki-main/src/test/java/org/apache/wiki/workflow/WorkflowManagerTest.java
+++ b/jspwiki-main/src/test/java/org/apache/wiki/workflow/WorkflowManagerTest.java
@@ -18,8 +18,6 @@
  */
 package org.apache.wiki.workflow;
 
-import java.util.Properties;
-
 import org.apache.wiki.TestEngine;
 import org.apache.wiki.WikiEngine;
 import org.apache.wiki.api.exceptions.WikiException;
@@ -29,6 +27,8 @@ import org.junit.jupiter.api.Assertions;
 import org.junit.jupiter.api.BeforeEach;
 import org.junit.jupiter.api.Test;
 
+import java.util.Properties;
+
 public class WorkflowManagerTest
 {
     protected Workflow w;
@@ -38,15 +38,15 @@ public class WorkflowManagerTest
     @BeforeEach
     public void setUp() throws Exception
     {
-        Properties props = TestEngine.getTestProperties();
+        final Properties props = TestEngine.getTestProperties();
         m_engine = new TestEngine(props);
-        wm = m_engine.getWorkflowManager();
+        wm = m_engine.getManager( WorkflowManager.class );
         // Create a workflow with 3 steps, with a Decision in the middle
         w = new Workflow("workflow.key", new WikiPrincipal("Owner1"));
-        w.setWorkflowManager(m_engine.getWorkflowManager());
-        Step startTask = new TaskTest.NormalTask(w);
-        Step endTask = new TaskTest.NormalTask(w);
-        Decision decision = new SimpleDecision(w, "decision.editWikiApproval", new WikiPrincipal("Actor1"));
+        w.setWorkflowManager( m_engine.getManager( WorkflowManager.class ) );
+        final Step startTask = new TaskTest.NormalTask(w);
+        final Step endTask = new TaskTest.NormalTask(w);
+        final Decision decision = new SimpleDecision(w, "decision.editWikiApproval", new WikiPrincipal("Actor1"));
         startTask.addSuccessor(Outcome.STEP_COMPLETE, decision);
         decision.addSuccessor(Outcome.DECISION_APPROVE, endTask);
         w.setFirstStep(startTask);
@@ -78,12 +78,12 @@ public class WorkflowManagerTest
         wm.start(w);
         Assertions.assertEquals(1, wm.getWorkflows().size());
         Assertions.assertEquals(0, wm.getCompletedWorkflows().size());
-        Workflow workflow = (Workflow)wm.getWorkflows().iterator().next();
+        final Workflow workflow = (Workflow)wm.getWorkflows().iterator().next();
         Assertions.assertEquals(w, workflow);
         Assertions.assertEquals(1, workflow.getId());
 
         // After forcing a decision on step 2, the workflow should complete and vanish from the cache
-        Decision d = (Decision)w.getCurrentStep();
+        final Decision d = (Decision)w.getCurrentStep();
         d.decide(Outcome.DECISION_APPROVE);
         Assertions.assertEquals(0, wm.getWorkflows().size());
         Assertions.assertEquals(1, wm.getCompletedWorkflows().size());
@@ -110,7 +110,7 @@ public class WorkflowManagerTest
         {
             Assertions.assertEquals(new GroupPrincipal("Admin"), wm.getApprover("workflow.saveWikiPage"));
         }
-        catch (WikiException e)
+        catch ( final WikiException e)
         {
             // Swallow
             return;
diff --git a/jspwiki-main/src/test/java/org/apache/wiki/xmlrpc/RPCHandlerTest.java b/jspwiki-main/src/test/java/org/apache/wiki/xmlrpc/RPCHandlerTest.java
index 9491231..94a0250 100644
--- a/jspwiki-main/src/test/java/org/apache/wiki/xmlrpc/RPCHandlerTest.java
+++ b/jspwiki-main/src/test/java/org/apache/wiki/xmlrpc/RPCHandlerTest.java
@@ -25,6 +25,7 @@ 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.attachment.AttachmentManager;
 import org.apache.wiki.pages.PageManager;
 import org.apache.xmlrpc.XmlRpcException;
 import org.junit.jupiter.api.AfterEach;
@@ -105,7 +106,7 @@ public class RPCHandlerTest
         m_engine.saveText( NAME1, "Foo" );
         final Attachment att = new Attachment( m_engine, NAME1, "TestAtt.txt" );
         att.setAuthor( "FirstPost" );
-        m_engine.getAttachmentManager().storeAttachment( att, m_engine.makeAttachmentFile() );
+        m_engine.getManager( AttachmentManager.class ).storeAttachment( att, m_engine.makeAttachmentFile() );
         final Page directInfo = m_engine.getManager( PageManager.class ).getPage( NAME1 );
         time = getCalendarTime( directInfo.getLastModified() );
         final Vector recentChanges = m_handler.getRecentChanges( time );
@@ -176,7 +177,7 @@ public class RPCHandlerTest
 
         final Attachment att = new Attachment( m_engine, NAME1, "TestAtt.txt" );
         att.setAuthor( "FirstPost" );
-        m_engine.getAttachmentManager().storeAttachment( att, m_engine.makeAttachmentFile() );
+        m_engine.getManager( AttachmentManager.class ).storeAttachment( att, m_engine.makeAttachmentFile() );
 
         // Test.
 
diff --git a/jspwiki-markdown/src/test/java/org/apache/wiki/render/markdown/MarkdownRendererTest.java b/jspwiki-markdown/src/test/java/org/apache/wiki/render/markdown/MarkdownRendererTest.java
index 38d9f57..f400a82 100644
--- a/jspwiki-markdown/src/test/java/org/apache/wiki/render/markdown/MarkdownRendererTest.java
+++ b/jspwiki-markdown/src/test/java/org/apache/wiki/render/markdown/MarkdownRendererTest.java
@@ -25,6 +25,7 @@ import org.apache.wiki.WikiEngine;
 import org.apache.wiki.WikiPage;
 import org.apache.wiki.api.exceptions.WikiException;
 import org.apache.wiki.attachment.Attachment;
+import org.apache.wiki.attachment.AttachmentManager;
 import org.apache.wiki.pages.PageManager;
 import org.apache.wiki.parser.markdown.MarkdownParser;
 import org.junit.jupiter.api.AfterEach;
@@ -195,7 +196,7 @@ public class MarkdownRendererTest {
 
         final Attachment att = new Attachment( testEngine, "Test", "TestAtt.txt" );
         att.setAuthor( "FirstPost" );
-        testEngine.getAttachmentManager().storeAttachment( att, testEngine.makeAttachmentFile() );
+        testEngine.getManager( AttachmentManager.class ).storeAttachment( att, testEngine.makeAttachmentFile() );
 
         Assertions.assertEquals( "<p>This should be an <a href=\"/test/attach/Test/TestAtt.txt\" class=\"attachment\">attachment link</a>" +
                                  "<a href=\"/test/PageInfo.jsp?page=Test/TestAtt.txt\" class=\"infolink\">" +
diff --git a/jspwiki-tika-searchprovider/src/test/java/org/apache/wiki/search/tika/TikaSearchProviderTest.java b/jspwiki-tika-searchprovider/src/test/java/org/apache/wiki/search/tika/TikaSearchProviderTest.java
index 8baa8df..464bd1c 100644
--- a/jspwiki-tika-searchprovider/src/test/java/org/apache/wiki/search/tika/TikaSearchProviderTest.java
+++ b/jspwiki-tika-searchprovider/src/test/java/org/apache/wiki/search/tika/TikaSearchProviderTest.java
@@ -20,6 +20,7 @@ import net.sf.ehcache.CacheManager;
 import org.apache.wiki.TestEngine;
 import org.apache.wiki.api.core.Attachment;
 import org.apache.wiki.attachment.AttachmentManager;
+import org.apache.wiki.search.SearchManager;
 import org.junit.jupiter.api.Assertions;
 import org.junit.jupiter.api.BeforeEach;
 import org.junit.jupiter.api.Test;
@@ -53,7 +54,7 @@ public class TikaSearchProviderTest {
         engine.addAttachment( "Test-tika", "aaa-diagram.pdf", filePdf );
         engine.addAttachment( "Test-tika", "favicon.png", filePng );
 
-        final TikaSearchProvider tsp = ( TikaSearchProvider )engine.getSearchManager().getSearchEngine();
+        final TikaSearchProvider tsp = ( TikaSearchProvider )engine.getManager( SearchManager.class ).getSearchEngine();
 
         final Attachment attPdf = engine.getManager( AttachmentManager.class ).getAttachmentInfo( "Test-tika/aaa-diagram.pdf" );
         final String pdfIndexed = tsp.getAttachmentContent( attPdf );