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

jsedding pushed a commit to branch resolver-2.x-backports
in repository 
https://gitbox.apache.org/repos/asf/sling-org-apache-sling-servlets-resolver.git

commit c750faa3d2bffaf86f499b81b7a5578338db5fe7
Author: Carsten Ziegeler <[email protected]>
AuthorDate: Fri Mar 28 06:37:12 2025 +0100

    SLING-12608 : Implement Jakarta Servlet based Sling API (#52)
    
    * backport: retain only changes *not* related to Jakarta Servlet
    
    * Update dependency to latest API with jakarta support
    
    * Implement SlingServletResolver, fix test cases
    
    * Fix test cases
    
    * Use Sling api to wrap request/response
    
    * Use servlet wrapper from api
    
    * Support jakarta servlet registration
    
    * Try to use latest pax exam for java 17 support
    
    * Adjust pom
    
    * Fix some pax exam tests
    
    * Fix pax exam tests
    
    * Clean up pom
    
    * Remove dependency to outdated commons testing
    
    * Use Testing Paxexam 4.1.0
    
    * Remove temporary optional import
    
    (cherry picked from commit e76580daf56902318fc147b9928de0c6dbf5fe97)
---
 pom.xml                                            |  71 ++----
 .../resolver/internal/SlingServletResolver.java    |  10 +-
 .../defaults/DefaultErrorHandlerServlet.java       |  22 +-
 .../internal/SecureRequestsOptingServletTest.java  |  52 ++--
 .../defaults/DefaultErrorHandlerServletTest.java   |  49 ++--
 .../resolver/internal/helper/HelperTestBase.java   |  46 ++--
 .../internal/helper/LocationCollectorTest.java     | 264 +++++++++++----------
 .../internal/helper/ResourceCollectorTest.java     |  64 ++---
 .../internal/helper/ScriptSelectionTest.java       |   4 +-
 .../internal/resourcehiding/ServletHidingTest.java |  16 +-
 .../sling/servlets/resolver/it/SLING10478IT.java   |  40 ++--
 .../resolver/it/ScriptEngineManagerMock.java       |  29 +++
 .../resolver/it/ServletResolverTestSupport.java    | 152 ++++++------
 .../servlets/resolver/it/ServletResourceIT.java    |  21 +-
 .../servlets/resolver/it/TestResourceProvider.java |  21 --
 15 files changed, 468 insertions(+), 393 deletions(-)

diff --git a/pom.xml b/pom.xml
index f791515..d7b75ba 100644
--- a/pom.xml
+++ b/pom.xml
@@ -39,13 +39,14 @@
         
<connection>scm:git:https://gitbox.apache.org/repos/asf/sling-org-apache-sling-servlets-resolver.git</connection>
         
<developerConnection>scm:git:https://gitbox.apache.org/repos/asf/sling-org-apache-sling-servlets-resolver.git</developerConnection>
         
<url>https://github.com/apache/sling-org-apache-sling-servlets-resolver.git</url>
-      <tag>org.apache.sling.servlets.resolver-2.11.10</tag>
+        <tag>resolver-2.x</tag>
   </scm>
 
     <properties>
         
<project.build.outputTimestamp>2025-07-11T14:46:48Z</project.build.outputTimestamp>
         <site.jira.version.id>12314292</site.jira.version.id>
-        <org.ops4j.pax.exam.version>4.13.3</org.ops4j.pax.exam.version>
+        <sling.java.version>17</sling.java.version>
+        <org.ops4j.pax.exam.version>4.14.0</org.ops4j.pax.exam.version>
         <!-- To debug the pax process, override this with -D -->
         <pax.vm.options>-Xmx512M</pax.vm.options>
     </properties>
@@ -117,16 +118,10 @@
                 </executions>
                 <configuration>
                     <redirectTestOutputToFile>true</redirectTestOutputToFile>
-                    <systemProperties>
-                        <property>
-                            <name>bundle.filename</name>
-                            
<value>${basedir}/target/${project.build.finalName}.jar</value>
-                        </property>
-                        <property>
-                            <name>pax.vm.options</name>
-                            <value>${pax.vm.options}</value>
-                        </property>
-                    </systemProperties>
+                    <systemPropertyVariables>
+                        
<bundle.filename>${basedir}/target/${project.build.finalName}.jar</bundle.filename>
+                        <pax.vm.options>${pax.vm.options}</pax.vm.options>
+                    </systemPropertyVariables>
                 </configuration>
             </plugin>
         </plugins>
@@ -174,11 +169,10 @@
             <version>1.0.4</version>
             <scope>provided</scope>
         </dependency>
-
         <dependency>
             <groupId>commons-io</groupId>
             <artifactId>commons-io</artifactId>
-            <version>2.14.0</version>
+            <version>2.18.0</version>
             <scope>provided</scope>
         </dependency>
         <dependency>
@@ -199,12 +193,13 @@
         <dependency>
             <groupId>javax.servlet</groupId>
             <artifactId>javax.servlet-api</artifactId>
+            <version>4.0.1</version>
             <scope>provided</scope>
         </dependency>
         <dependency>
-            <groupId>jakarta.json</groupId>
-            <artifactId>jakarta.json-api</artifactId>
-            <version>2.0.2</version>
+            <groupId>org.apache.sling</groupId>
+            <artifactId>org.apache.sling.commons.johnzon</artifactId>
+            <version>2.0.0</version>
             <scope>provided</scope>
         </dependency>
         <dependency>
@@ -217,7 +212,7 @@
         <dependency>
             <groupId>org.apache.sling</groupId>
             <artifactId>org.apache.sling.serviceusermapper</artifactId>
-            <version>1.2.0</version>
+            <version>1.5.8</version>
             <scope>provided</scope>
         </dependency>
         <dependency>
@@ -251,7 +246,7 @@
         <dependency>
             <groupId>org.apache.commons</groupId>
             <artifactId>commons-lang3</artifactId>
-            <version>3.4</version>
+            <version>3.17.0</version>
             <scope>provided</scope>
         </dependency>
         <dependency>
@@ -289,13 +284,13 @@
         <dependency>
             <groupId>org.apache.sling</groupId>
             <artifactId>org.apache.sling.testing.paxexam</artifactId>
-            <version>3.1.0</version>
+            <version>4.1.0</version>
             <scope>test</scope>
         </dependency>
         <dependency>
             <groupId>org.apache.sling</groupId>
-            <artifactId>org.apache.sling.commons.testing</artifactId>
-            <version>2.1.2</version>
+            <artifactId>org.apache.sling.auth.core</artifactId>
+            <version>1.7.0</version>
             <scope>test</scope>
         </dependency>
         <dependency>
@@ -304,6 +299,12 @@
             <version>2.9.2</version>
             <scope>test</scope>
         </dependency>
+        <dependency>
+            <groupId>org.apache.sling</groupId>
+            <artifactId>org.apache.sling.resourceresolver</artifactId>
+            <version>1.10.0</version>
+            <scope>test</scope>
+        </dependency>
         <dependency>
             <groupId>org.apache.sling</groupId>
             <artifactId>org.apache.sling.testing.osgi-mock.core</artifactId>
@@ -341,7 +342,7 @@
         <dependency>
             <groupId>org.mockito</groupId>
             <artifactId>mockito-core</artifactId>
-            <version>3.9.0</version>
+            <version>5.15.2</version>
             <scope>test</scope>
         </dependency>
         <dependency>
@@ -386,30 +387,6 @@
             <version>7.0.5</version>
             <scope>test</scope>
         </dependency>
-        <dependency>
-            <groupId>org.apache.sling</groupId>
-            <artifactId>org.apache.sling.servlet-helpers</artifactId>
-            <version>1.4.2</version>
-            <scope>test</scope>
-        </dependency>
-        <dependency>
-            <groupId>org.apache.sling</groupId>
-            <artifactId>org.apache.sling.resourceresolver</artifactId>
-            <version>1.10.0</version>
-            <scope>test</scope>
-        </dependency>
-        <dependency>
-            <groupId>org.apache.sling</groupId>
-            <artifactId>org.apache.sling.scripting.core</artifactId>
-            <version>2.2.0</version>
-            <scope>test</scope>
-        </dependency>
-        <dependency>
-            <groupId>org.glassfish</groupId>
-            <artifactId>jakarta.json</artifactId>
-            <version>2.0.1</version>
-            <scope>test</scope>
-        </dependency>
         <dependency>
             <groupId>org.apache.geronimo.specs</groupId>
             <artifactId>geronimo-atinject_1.0_spec</artifactId>
diff --git 
a/src/main/java/org/apache/sling/servlets/resolver/internal/SlingServletResolver.java
 
b/src/main/java/org/apache/sling/servlets/resolver/internal/SlingServletResolver.java
index 12b3b68..2827d76 100644
--- 
a/src/main/java/org/apache/sling/servlets/resolver/internal/SlingServletResolver.java
+++ 
b/src/main/java/org/apache/sling/servlets/resolver/internal/SlingServletResolver.java
@@ -87,7 +87,7 @@ import org.slf4j.LoggerFactory;
  * In case the thread is handling a request, the {@link 
#onEvent(SlingRequestEvent)} method is called by the
  * Sling engine and a per-thread ResourceResolver is created, used and also 
closed when the request is
  * finished.
- * 
+ *
  * In case the thread does execute not within the context of a request, a 
shared ResourceResolver instance is used.
  *
  */
@@ -148,9 +148,9 @@ public class SlingServletResolver
      * The default extensions
      */
     private AtomicReference<String[]> defaultExtensions = new 
AtomicReference<>();
-    
+
     private boolean useResourceCaching;
-    
+
 
     private final PathBasedServletAcceptor pathBasedServletAcceptor = new 
PathBasedServletAcceptor();
 
@@ -189,7 +189,7 @@ public class SlingServletResolver
             servlet = resolveServletInternal(request, null, resourceType, 
scriptResolver);
         }
 
-        // last resort, use the core bundle default servlet
+        // last resort, use the default servlet
         if (servlet == null) {
             if (LOGGER.isDebugEnabled()) {
                 LOGGER.debug("No specific servlet found, trying default");
@@ -861,7 +861,7 @@ public class SlingServletResolver
         }
         return executionPaths;
     }
-    
+
        protected void invalidateCache(ResourceResolver r) {
                LocationCollector.clearCache(r);
                AbstractResourceCollector.clearCache(r);
diff --git 
a/src/main/java/org/apache/sling/servlets/resolver/internal/defaults/DefaultErrorHandlerServlet.java
 
b/src/main/java/org/apache/sling/servlets/resolver/internal/defaults/DefaultErrorHandlerServlet.java
index 7e64683..2a5e783 100644
--- 
a/src/main/java/org/apache/sling/servlets/resolver/internal/defaults/DefaultErrorHandlerServlet.java
+++ 
b/src/main/java/org/apache/sling/servlets/resolver/internal/defaults/DefaultErrorHandlerServlet.java
@@ -25,6 +25,7 @@ import java.io.StringWriter;
 import jakarta.json.Json;
 import jakarta.json.stream.JsonGenerator;
 import javax.servlet.GenericServlet;
+import javax.servlet.RequestDispatcher;
 import javax.servlet.Servlet;
 import javax.servlet.ServletException;
 import javax.servlet.ServletRequest;
@@ -32,7 +33,6 @@ import javax.servlet.ServletResponse;
 import javax.servlet.http.HttpServletRequest;
 import javax.servlet.http.HttpServletResponse;
 
-import org.apache.sling.api.SlingConstants;
 import org.apache.sling.api.SlingHttpServletRequest;
 import org.apache.sling.api.request.header.MediaRangeList;
 import org.apache.sling.api.request.RequestProgressTracker;
@@ -67,10 +67,10 @@ public class DefaultErrorHandlerServlet extends 
GenericServlet {
             throws IOException {
 
         // get settings
-        Integer scObject = (Integer) 
req.getAttribute(SlingConstants.ERROR_STATUS);
-        String statusMessage = (String) 
req.getAttribute(SlingConstants.ERROR_MESSAGE);
-        String requestUri = (String) 
req.getAttribute(SlingConstants.ERROR_REQUEST_URI);
-        String servletName = (String) 
req.getAttribute(SlingConstants.ERROR_SERVLET_NAME);
+        Integer scObject = (Integer) 
req.getAttribute(RequestDispatcher.ERROR_STATUS_CODE);
+        String statusMessage = (String) 
req.getAttribute(RequestDispatcher.ERROR_MESSAGE);
+        String requestUri = (String) 
req.getAttribute(RequestDispatcher.ERROR_REQUEST_URI);
+        String servletName = (String) 
req.getAttribute(RequestDispatcher.ERROR_SERVLET_NAME);
 
         // ensure values
         int statusCode = (scObject != null)
@@ -104,8 +104,8 @@ public class DefaultErrorHandlerServlet extends 
GenericServlet {
             ResponseUtil.getXmlEscapingWriter(pw));
 
         // dump the stack trace
-        if (req.getAttribute(SlingConstants.ERROR_EXCEPTION) instanceof 
Throwable) {
-            final Throwable throwable = (Throwable) 
req.getAttribute(SlingConstants.ERROR_EXCEPTION);
+        if (req.getAttribute(RequestDispatcher.ERROR_EXCEPTION) instanceof 
Throwable) {
+            final Throwable throwable = (Throwable) 
req.getAttribute(RequestDispatcher.ERROR_EXCEPTION);
             pw.println("<h3>Exception:</h3>");
             pw.println("<pre>");
             pw.flush();
@@ -144,7 +144,7 @@ public class DefaultErrorHandlerServlet extends 
GenericServlet {
             jsonGenerator.writeStartObject();
             jsonGenerator.write("status", statusCode);
 
-            String msg = 
(String)req.getAttribute(SlingConstants.ERROR_MESSAGE);
+            String msg = 
(String)req.getAttribute(RequestDispatcher.ERROR_MESSAGE);
             if (msg != null && !msg.isEmpty()) {
                 jsonGenerator.write("message", statusMessage);
             }
@@ -159,7 +159,7 @@ public class DefaultErrorHandlerServlet extends 
GenericServlet {
 
             // SLING-10615 - for backward compatibility check for either a
             // String or Class value
-            Object exceptionTypeObj = 
req.getAttribute(SlingConstants.ERROR_EXCEPTION_TYPE);
+            Object exceptionTypeObj = 
req.getAttribute(RequestDispatcher.ERROR_EXCEPTION_TYPE);
             String exceptionType = null;
             if (exceptionTypeObj instanceof String) {
                 exceptionType = (String)exceptionTypeObj;
@@ -171,8 +171,8 @@ public class DefaultErrorHandlerServlet extends 
GenericServlet {
             }
 
             // dump the stack trace
-            if (req.getAttribute(SlingConstants.ERROR_EXCEPTION) instanceof 
Throwable) {
-                final Throwable throwable = (Throwable) 
req.getAttribute(SlingConstants.ERROR_EXCEPTION);
+            if (req.getAttribute(RequestDispatcher.ERROR_EXCEPTION) instanceof 
Throwable) {
+                final Throwable throwable = (Throwable) 
req.getAttribute(RequestDispatcher.ERROR_EXCEPTION);
                 try (StringWriter sw = new StringWriter();
                         PrintWriter pw = new PrintWriter(sw)) {
                     printStackTrace(pw, throwable);
diff --git 
a/src/test/java/org/apache/sling/servlets/resolver/internal/SecureRequestsOptingServletTest.java
 
b/src/test/java/org/apache/sling/servlets/resolver/internal/SecureRequestsOptingServletTest.java
index a5ba52a..c08844f 100644
--- 
a/src/test/java/org/apache/sling/servlets/resolver/internal/SecureRequestsOptingServletTest.java
+++ 
b/src/test/java/org/apache/sling/servlets/resolver/internal/SecureRequestsOptingServletTest.java
@@ -29,31 +29,37 @@ import javax.servlet.Servlet;
 import javax.servlet.http.HttpServlet;
 
 import org.apache.sling.api.SlingHttpServletRequest;
+import org.apache.sling.api.request.builder.Builders;
 import org.apache.sling.api.resource.PersistenceException;
+import org.apache.sling.api.resource.Resource;
 import org.apache.sling.api.resource.ResourceResolver;
 import org.apache.sling.api.resource.ResourceUtil;
 import org.apache.sling.api.servlets.OptingServlet;
-import org.apache.sling.commons.testing.sling.MockSlingHttpServletRequest;
+import org.apache.sling.api.wrappers.SlingHttpServletRequestWrapper;
 import org.apache.sling.servlets.resolver.internal.helper.HelperTestBase;
 import 
org.apache.sling.servlets.resolver.internal.resource.MockServletResource;
 import org.apache.sling.servlets.resolver.internal.resource.ServletResource;
 import org.junit.Test;
+import org.mockito.Mockito;
 import org.osgi.framework.Bundle;
 
+@SuppressWarnings("deprecation")
 public class SecureRequestsOptingServletTest extends 
SlingServletResolverTestBase {
 
-    protected  static final String SERVLET_PATH = "/mock";
-    protected  static final String SERVLET_NAME = "TestServlet";
+    protected static final String SERVLET_PATH = "/mock";
+    protected static final String SERVLET_NAME = "TestServlet";
     protected static final String SERVLET_EXTENSION = "html";
+    protected static final String RESOURCE_TYPE = "foo/bar";
+
     private Servlet testServlet;
 
     protected void defineTestServlets(Bundle bundle) {
         testServlet = new SecureRequestsOptingServlet();
 
         String path = "/"
-            + MockSlingHttpServletRequest.RESOURCE_TYPE
+            + RESOURCE_TYPE
             + "/"
-            + ResourceUtil.getName(MockSlingHttpServletRequest.RESOURCE_TYPE)
+            + ResourceUtil.getName(RESOURCE_TYPE)
             + ".servlet";
         Map<String, Object> props = new HashMap<>();
         props.put(ResourceResolver.PROPERTY_RESOURCE_TYPE, path);
@@ -71,25 +77,43 @@ public class SecureRequestsOptingServletTest extends 
SlingServletResolverTestBas
     }
 
     @Test public void testAcceptsSecureRequest() {
-        MockSlingHttpServletRequest secureRequest = new 
MockSlingHttpServletRequest(
-            SERVLET_PATH, null, SERVLET_EXTENSION, null, null);
-        secureRequest.setResourceResolver(mockResourceResolver);
-        secureRequest.setSecure(true);
+        final Resource resource = Mockito.mock(Resource.class);
+        Mockito.when(resource.getResourceType()).thenReturn(RESOURCE_TYPE);
+        Mockito.when(resource.getPath()).thenReturn("/" + RESOURCE_TYPE);
+
+        SlingHttpServletRequest secureRequest = new SecureRequest(
+            Builders.newRequestBuilder(resource)
+                .withExtension(SERVLET_EXTENSION)
+                .build());
         Servlet result = servletResolver.resolveServlet(secureRequest);
         assertEquals("Expecting our test servlet", testServlet, result);
     }
 
     @Test public void testIgnoreInsecureRequest() {
-        MockSlingHttpServletRequest insecureRequest = new 
MockSlingHttpServletRequest(
-            SERVLET_PATH, null, SERVLET_EXTENSION, null, null);
-        insecureRequest.setResourceResolver(mockResourceResolver);
-        insecureRequest.setSecure(false);
+        final Resource resource = Mockito.mock(Resource.class);
+        Mockito.when(resource.getResourceType()).thenReturn(RESOURCE_TYPE);
+        Mockito.when(resource.getPath()).thenReturn("/" + RESOURCE_TYPE);
+
+        SlingHttpServletRequest insecureRequest = 
Builders.newRequestBuilder(resource)
+                .withExtension(SERVLET_EXTENSION)
+                .build();
         Servlet result = servletResolver.resolveServlet(insecureRequest);
         assertNotSame("Expecting a different servlet than our own",
             result.getClass(), SecureRequestsOptingServlet.class);
     }
 
-    @SuppressWarnings("serial")
+    public static class SecureRequest extends SlingHttpServletRequestWrapper {
+
+        public SecureRequest(final SlingHttpServletRequest request) {
+            super(request);
+        }
+
+        @Override
+        public boolean isSecure() {
+            return true;
+        }
+    }
+
     private static class SecureRequestsOptingServlet extends HttpServlet
             implements OptingServlet {
 
diff --git 
a/src/test/java/org/apache/sling/servlets/resolver/internal/defaults/DefaultErrorHandlerServletTest.java
 
b/src/test/java/org/apache/sling/servlets/resolver/internal/defaults/DefaultErrorHandlerServletTest.java
index e771001..aedb542 100644
--- 
a/src/test/java/org/apache/sling/servlets/resolver/internal/defaults/DefaultErrorHandlerServletTest.java
+++ 
b/src/test/java/org/apache/sling/servlets/resolver/internal/defaults/DefaultErrorHandlerServletTest.java
@@ -35,24 +35,30 @@ import javax.servlet.ServletException;
 import javax.servlet.http.HttpServletResponse;
 
 import org.apache.sling.api.SlingConstants;
-import org.apache.sling.commons.testing.sling.MockSlingHttpServletRequest;
-import org.apache.sling.commons.testing.sling.MockSlingHttpServletResponse;
+import org.apache.sling.api.SlingHttpServletRequest;
+import org.apache.sling.api.SlingHttpServletResponse;
+import org.apache.sling.api.request.builder.Builders;
+import org.apache.sling.api.resource.Resource;
+import org.apache.sling.api.wrappers.SlingHttpServletRequestWrapper;
+import org.apache.sling.api.wrappers.SlingHttpServletResponseWrapper;
 import org.junit.Test;
+import org.mockito.Mockito;
 
 /**
  * SLING-10021 test 'Accept' content-type handling in the default error 
handler servlet
  */
+@SuppressWarnings("deprecation")
 public class DefaultErrorHandlerServletTest {
 
-    protected void assertJsonErrorResponse(MockSlingHttpServletRequest req) 
throws ServletException, IOException {
-        MockSlingHttpServletResponse res = new 
MockErrorSlingHttpServletResponse(false);
+    protected void assertJsonErrorResponse(SlingHttpServletRequest req) throws 
ServletException, IOException {
+        MockErrorSlingHttpServletResponse res = new 
MockErrorSlingHttpServletResponse(Builders.newResponseBuilder().build(), false);
 
         DefaultErrorHandlerServlet errorServlet = new 
DefaultErrorHandlerServlet();
         errorServlet.init(new MockServletConfig());
         errorServlet.service(req, res);
 
         // verify we got json back
-        assertEquals("application/json", res.getContentType());
+        assertEquals("application/json;charset=UTF-8", res.getContentType());
         String responseOutput = res.getOutput().toString();
 
         // check the json content matches what would be sent from the 
DefaultErrorHandlingServlet
@@ -70,8 +76,11 @@ public class DefaultErrorHandlerServletTest {
 
     @Test
     public void testJsonErrorResponse() throws IOException, ServletException {
+        final Resource resource = Mockito.mock(Resource.class);
+        final SlingHttpServletRequest request = 
Builders.newRequestBuilder(resource).build();
+
         // mock a request that accepts a json response
-        MockSlingHttpServletRequest req = new 
MockErrorSlingHttpServletRequest("application/json,*/*;q=0.9");
+        MockErrorSlingHttpServletRequest req = new 
MockErrorSlingHttpServletRequest(request, "application/json,*/*;q=0.9");
         assertJsonErrorResponse(req);
     }
 
@@ -81,8 +90,11 @@ public class DefaultErrorHandlerServletTest {
      */
     @Test
     public void testJsonErrorResponseWithClassExceptionTypeAttributeValue() 
throws IOException, ServletException {
+        final Resource resource = Mockito.mock(Resource.class);
+        final SlingHttpServletRequest request = 
Builders.newRequestBuilder(resource).build();
+
         // mock a request that accepts a json response
-        MockSlingHttpServletRequest req = new 
MockErrorSlingHttpServletRequest("application/json,*/*;q=0.9") {
+        SlingHttpServletRequest req = new 
MockErrorSlingHttpServletRequest(request, "application/json,*/*;q=0.9") {
 
             @Override
             public Object getAttribute(String name) {
@@ -98,16 +110,19 @@ public class DefaultErrorHandlerServletTest {
 
     @Test
     public void testHtmlErrorResponse() throws IOException, ServletException {
+        final Resource resource = Mockito.mock(Resource.class);
+        final SlingHttpServletRequest request = 
Builders.newRequestBuilder(resource).build();
+
         // mock a request that accepts an html response
-        MockSlingHttpServletRequest req = new 
MockErrorSlingHttpServletRequest("text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8");
-        MockSlingHttpServletResponse res = new 
MockErrorSlingHttpServletResponse(false);
+        SlingHttpServletRequest req = new 
MockErrorSlingHttpServletRequest(request, 
"text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8");
+        MockErrorSlingHttpServletResponse res = new 
MockErrorSlingHttpServletResponse(Builders.newResponseBuilder().build(), false);
 
         DefaultErrorHandlerServlet errorServlet = new 
DefaultErrorHandlerServlet();
         errorServlet.init(new MockServletConfig());
         errorServlet.service(req, res);
 
         // verify we got html back
-        assertEquals("text/html", res.getContentType());
+        assertEquals("text/html;charset=UTF-8", res.getContentType());
         String responseOutput = res.getOutput().toString();
 
         // check the html content matches what would be sent from the 
DefaultErrorHandlingServlet
@@ -152,14 +167,14 @@ public class DefaultErrorHandlerServletTest {
     /**
      * Mock impl to simulate an error response
      */
-    private static final class MockErrorSlingHttpServletResponse extends 
MockSlingHttpServletResponse {
+    private static final class MockErrorSlingHttpServletResponse extends 
SlingHttpServletResponseWrapper {
 
         private PrintWriter writer;
         private StringWriter strWriter;
         private boolean committed;
 
-        public MockErrorSlingHttpServletResponse(boolean committed) {
-            super();
+        public MockErrorSlingHttpServletResponse(final 
SlingHttpServletResponse response, final boolean committed) {
+            super(response);
             this.committed = committed;
         }
 
@@ -186,21 +201,19 @@ public class DefaultErrorHandlerServletTest {
             return this.writer;
         }
 
-        @Override
         public StringBuffer getOutput() {
             return strWriter.getBuffer();
         }
-
     }
 
     /**
      * Mock impl to simulate an error request
      */
-    private static class MockErrorSlingHttpServletRequest extends 
MockSlingHttpServletRequest {
+    private static class MockErrorSlingHttpServletRequest extends 
SlingHttpServletRequestWrapper {
         private String accept;
 
-        private MockErrorSlingHttpServletRequest(String accept) {
-            super(null, null, null, null, null);
+        private MockErrorSlingHttpServletRequest(final SlingHttpServletRequest 
request, final String accept) {
+            super(request);
             this.accept = accept;
         }
 
diff --git 
a/src/test/java/org/apache/sling/servlets/resolver/internal/helper/HelperTestBase.java
 
b/src/test/java/org/apache/sling/servlets/resolver/internal/helper/HelperTestBase.java
index b626c25..7dbf76c 100644
--- 
a/src/test/java/org/apache/sling/servlets/resolver/internal/helper/HelperTestBase.java
+++ 
b/src/test/java/org/apache/sling/servlets/resolver/internal/helper/HelperTestBase.java
@@ -21,14 +21,18 @@ package org.apache.sling.servlets.resolver.internal.helper;
 import java.util.Collections;
 import java.util.Map;
 
+import org.apache.sling.api.SlingHttpServletRequest;
+import org.apache.sling.api.request.builder.Builders;
+import org.apache.sling.api.request.builder.SlingHttpServletRequestBuilder;
 import org.apache.sling.api.resource.PersistenceException;
 import org.apache.sling.api.resource.Resource;
+import org.apache.sling.api.resource.ResourceMetadata;
 import org.apache.sling.api.resource.ResourceResolver;
 import org.apache.sling.api.resource.ResourceUtil;
-import org.apache.sling.commons.testing.sling.MockSlingHttpServletRequest;
 import org.apache.sling.testing.resourceresolver.MockResourceResolverFactory;
 import 
org.apache.sling.testing.resourceresolver.MockResourceResolverFactoryOptions;
 import org.jetbrains.annotations.Nullable;
+import org.mockito.Mockito;
 
 import junit.framework.TestCase;
 
@@ -37,8 +41,6 @@ public abstract class HelperTestBase extends TestCase {
     protected MockResourceResolverFactoryOptions resourceResolverOptions;
     protected ResourceResolver resourceResolver;
 
-    protected MockSlingHttpServletRequest request;
-
     protected Resource resource;
 
     protected String resourcePath;
@@ -66,12 +68,10 @@ public abstract class HelperTestBase extends TestCase {
         Resource parent = getOrCreateParentResource(resourceResolver, 
resourcePath);
         resource = resourceResolver.create(parent, "page",
                 
Collections.singletonMap(ResourceResolver.PROPERTY_RESOURCE_TYPE, 
resourceType));
-
-        request = makeRequest("GET", "print.a4", "html");
     }
 
     public static Resource addOrReplaceResource(ResourceResolver resolver, 
String path, String resourceType) {
-        return addOrReplaceResource(resolver, path, 
+        return addOrReplaceResource(resolver, path,
                 
Collections.singletonMap(ResourceResolver.PROPERTY_RESOURCE_TYPE, 
resourceType));
     }
 
@@ -83,7 +83,7 @@ public abstract class HelperTestBase extends TestCase {
             Resource r = resolver.getResource(path);
             if (r != null) {
                 resolver.delete(r);
-            } 
+            }
 
             // create the new resource
             Resource parent = getOrCreateParentResource(resolver, path);
@@ -115,13 +115,29 @@ public abstract class HelperTestBase extends TestCase {
         return parent;
     }
 
-    protected MockSlingHttpServletRequest makeRequest(String method, String 
selectors, String extension) {
-        final MockSlingHttpServletRequest result =
-            new MockSlingHttpServletRequest(resourcePath, selectors, 
extension, null, null);
-        result.setMethod(method);
-        result.setResourceResolver(resourceResolver);
-        result.setResource(resource);
-        return result;
+    protected SlingHttpServletRequest makeRequest(String method, String 
selectors, String extension) {
+        final Resource rsrc = Mockito.mock(Resource.class);
+        final ResourceMetadata md = new ResourceMetadata();
+        Mockito.when(rsrc.getResourceResolver()).thenReturn(resourceResolver);
+        Mockito.when(rsrc.getPath()).thenReturn(this.resource.getPath());
+        Mockito.when(rsrc.getName()).thenReturn(this.resource.getName());
+        
Mockito.when(rsrc.getResourceType()).thenReturn(this.resource.getResourceType());
+        md.setResolutionPath(rsrc.getPath());
+        StringBuilder sb = new StringBuilder();
+        sb.append(".");
+        if ( selectors != null ) {
+            sb.append(selectors);
+            sb.append(".");
+        }
+        sb.append(extension);
+        md.setResolutionPathInfo(sb.toString());
+        SlingHttpServletRequestBuilder builder = 
Builders.newRequestBuilder(rsrc);
+        builder.withExtension(extension);
+        if (selectors != null) {
+            builder.withSelectors(selectors.split("\\."));
+        }
+        builder.withRequestMethod(method);
+        return builder.build();
     }
 
     @Override
@@ -129,8 +145,6 @@ public abstract class HelperTestBase extends TestCase {
         super.tearDown();
 
         resourceResolver = null;
-        request = null;
         resource = null;
     }
-
 }
diff --git 
a/src/test/java/org/apache/sling/servlets/resolver/internal/helper/LocationCollectorTest.java
 
b/src/test/java/org/apache/sling/servlets/resolver/internal/helper/LocationCollectorTest.java
index 2133887..c93e214 100644
--- 
a/src/test/java/org/apache/sling/servlets/resolver/internal/helper/LocationCollectorTest.java
+++ 
b/src/test/java/org/apache/sling/servlets/resolver/internal/helper/LocationCollectorTest.java
@@ -32,12 +32,13 @@ import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
 
+import org.apache.sling.api.SlingHttpServletRequest;
+import org.apache.sling.api.request.builder.Builders;
 import org.apache.sling.api.resource.PersistenceException;
 import org.apache.sling.api.resource.Resource;
 import org.apache.sling.api.resource.ResourceResolver;
 import org.apache.sling.api.resource.ResourceUtil;
 import org.apache.sling.api.resource.SyntheticResource;
-import org.apache.sling.commons.testing.sling.MockSlingHttpServletRequest;
 import org.apache.sling.testing.mock.sling.junit.SlingContext;
 import org.junit.Before;
 import org.junit.Rule;
@@ -50,41 +51,40 @@ import org.mockito.Mockito;
 
 @RunWith(Parameterized.class)
 public class LocationCollectorTest {
-       
-       // Run the test both with and without resource caching enabled
-       @Parameters
-       public static Iterable<Object> data() {
-               return Arrays.asList(true, false);
-       }
-       
-       @Parameter
-       public boolean useResourceCaching;
-       
-       @Rule
-       public final SlingContext context = new SlingContext();
-       
-       SearchPathOptions searchPathOptions = new SearchPathOptions();
+
+    // Run the test both with and without resource caching enabled
+    @Parameters
+    public static Iterable<Object> data() {
+        return Arrays.asList(true, false);
+    }
+
+    @Parameter
+    public boolean useResourceCaching;
+
+    @Rule
+    public final SlingContext context = new SlingContext();
+
+    SearchPathOptions searchPathOptions = new SearchPathOptions();
+
     protected String resourcePath;
     protected String resourceType;
     protected String resourceTypePath;
     protected String resourceSuperType;
     protected String resourceSuperTypePath;
-       
-       protected Resource resource;
-       protected MockSlingHttpServletRequest request;
-       
-       
-       protected ResourceResolver resolver; // required because of the spy
-       
-       @Before
-       public void setup() throws Exception {
-
-               searchPathOptions = new SearchPathOptions();
-               resolver = Mockito.spy(context.resourceResolver());
-               Mockito.when(resolver.getSearchPath()).thenAnswer( invocation 
-> {
-                       return searchPathOptions.getSearchPath();
-               });
-               
+
+    protected Resource resource;
+
+    protected ResourceResolver resolver; // required because of the spy
+
+    @Before
+    public void setup() throws Exception {
+
+        searchPathOptions = new SearchPathOptions();
+        resolver = Mockito.spy(context.resourceResolver());
+        Mockito.when(resolver.getSearchPath()).thenAnswer( invocation -> {
+            return searchPathOptions.getSearchPath();
+        });
+
         resourceType = "foo:bar";
         resourceTypePath = ResourceUtil.resourceTypeToPath(resourceType);
 
@@ -93,31 +93,35 @@ public class LocationCollectorTest {
         Resource parent = resolver.getResource("/content");
         resource = resolver.create(parent, "page",
                 
Collections.singletonMap(ResourceResolver.PROPERTY_RESOURCE_TYPE, 
resourceType));
+    }
+
+    protected SlingHttpServletRequest createRequest(final Resource r) {
+        return Builders.newRequestBuilder(r)
+            .withExtension("html")
+            .withSelectors("print", "A4")
+            .withRequestMethod("GET")
+            .build();
+    }
 
-        request = new MockSlingHttpServletRequest(resourcePath, "print.A4", 
"html", null, null);
-        request.setMethod("GET");
-        request.setResourceResolver(resolver);
-        request.setResource(resource);
-               
-       }
-    
     @Test
     public void testSearchPathEmpty() {
+        final SlingHttpServletRequest request = 
this.createRequest(this.resource);
         // expect path gets { "/" }
         searchPathOptions.setSearchPaths(null);
 
         final Resource r = request.getResource();
         List<Resource> loc = getLocations(r.getResourceType(),
                 r.getResourceSuperType());
-        
+
         List<Resource> expected = Arrays.asList(
                        r("/" + resourceTypePath), // /foo/bar
                 r("/" + DEFAULT_RESOURCE_TYPE)); // /sling/servlet/default
         assertThat(loc,isSameResourceList(expected));
     }
-    
+
     @Test
     public void testSearchPath1Element() {
+        final SlingHttpServletRequest request = 
this.createRequest(this.resource);
         String root0 = "/apps/";
         searchPathOptions.setSearchPaths(new String[] {
                 root0
@@ -126,15 +130,16 @@ public class LocationCollectorTest {
         final Resource r = request.getResource();
         List<Resource> loc = getLocations(r.getResourceType(),
                 r.getResourceSuperType());
-        
+
         List<Resource> expected = Arrays.asList(
                        r(root0 + resourceTypePath), // /apps/foo/bar
                 r(root0 + DEFAULT_RESOURCE_TYPE)); // 
/apps/sling/servlet/default
         assertThat(loc,isSameResourceList(expected));
     }
-    
+
     @Test
     public void testSearchPath2Elements() {
+        final SlingHttpServletRequest request = 
this.createRequest(this.resource);
         String root0 = "/apps/";
         String root1 = "/libs/";
         searchPathOptions.setSearchPaths(new String[] {
@@ -145,7 +150,7 @@ public class LocationCollectorTest {
         final Resource r = request.getResource();
         List<Resource> loc = getLocations(r.getResourceType(),
                 r.getResourceSuperType());
-        
+
         List<Resource> expected = Arrays.asList(
                        r(root0 + resourceTypePath), // /apps/foo/bar
                 r(root1 + resourceTypePath), // /libs/foo/bar
@@ -153,16 +158,16 @@ public class LocationCollectorTest {
                 r(root1 + DEFAULT_RESOURCE_TYPE)); // 
/libs/sling/servlet/default
         assertThat(loc,isSameResourceList(expected));
     }
-    
+
     /**
      * Replace a resource with a different type
-     * 
+     *
      * @param res the resource to replace
      * @param newResourceType the new resource type, or null to not change it
      * @param newResourceSuperType the new resource super type, or null to not 
change it
      * @return the new resource
      */
-    protected void replaceResource(String newResourceType, String 
newResourceSuperType) {
+    protected Resource replaceResource(String newResourceType, String 
newResourceSuperType) {
         @SuppressWarnings("unchecked")
         Map<String, Object> props = new HashMap<>(resource.adaptTo(Map.class));
         if (newResourceType != null) {
@@ -172,11 +177,12 @@ public class LocationCollectorTest {
             props.put("sling:resourceSuperType", newResourceSuperType);
         }
         Resource r = addOrReplaceResource(resolver, resource.getPath(), props);
-        request.setResource(r);
+        return r;
     }
 
     @Test
     public void testSearchPathEmptyAbsoluteType() {
+        final SlingHttpServletRequest request = 
this.createRequest(this.resource);
         // expect path gets { "/" }
         searchPathOptions.setSearchPaths(null);
 
@@ -188,15 +194,16 @@ public class LocationCollectorTest {
         final Resource r = request.getResource();
         List<Resource> loc = getLocations(r.getResourceType(),
                 r.getResourceSuperType());
-        
+
         List<Resource> expected = Arrays.asList(
                        r(resourceTypePath), // /foo/bar
                        r("/" + DEFAULT_RESOURCE_TYPE)); // 
/sling/servlet/default
         assertThat(loc,isSameResourceList(expected));
     }
-    
+
     @Test
     public void testSearchPath1ElementAbsoluteType() {
+        SlingHttpServletRequest request = this.createRequest(this.resource);
         String root0 = "/apps/";
         searchPathOptions.setSearchPaths(new String[] {
                 root0
@@ -205,21 +212,22 @@ public class LocationCollectorTest {
         // absolute resource type
         resourceType = "/foo/bar";
         resourceTypePath = ResourceUtil.resourceTypeToPath(resourceType);
-        replaceResource(resourceType, null);
+        request = this.createRequest(replaceResource(resourceType, null));
 
         final Resource r = request.getResource();
         List<Resource> loc = getLocations(r.getResourceType(),
                 r.getResourceSuperType());
-        
-        
+
+
         List<Resource> expected = Arrays.asList(
                        r(resourceTypePath), // /foo/bar
                 r(root0 + DEFAULT_RESOURCE_TYPE)); // 
/apps/sling/servlet/default
         assertThat(loc,isSameResourceList(expected));
     }
-    
+
     @Test
     public void testSearchPath2ElementsAbsoluteType() {
+        SlingHttpServletRequest request = this.createRequest(this.resource);
         String root0 = "/apps/";
         String root1 = "/libs/";
         searchPathOptions.setSearchPaths(new String[] {
@@ -230,42 +238,44 @@ public class LocationCollectorTest {
         // absolute resource type
         resourceType = "/foo/bar";
         resourceTypePath = ResourceUtil.resourceTypeToPath(resourceType);
-        replaceResource(resourceType, null);
+        request = this.createRequest(replaceResource(resourceType, null));
 
         final Resource r = request.getResource();
         List<Resource> loc = getLocations(r.getResourceType(),
                 r.getResourceSuperType());
-        
+
         List<Resource> expected = Arrays.asList(
                        r(resourceTypePath), // /foo/bar
                 r(root0 + DEFAULT_RESOURCE_TYPE), // 
/apps/sling/servlet/default
                 r(root1 + DEFAULT_RESOURCE_TYPE)); // 
/libs/sling/servlet/default
         assertThat(loc,isSameResourceList(expected));
     }
-    
+
     @Test
     public void testSearchPathEmptyWithSuper() {
+        SlingHttpServletRequest request = this.createRequest(this.resource);
         // expect path gets { "/" }
         searchPathOptions.setSearchPaths(null);
 
         // set resource super type
         resourceSuperType = "foo:superBar";
         resourceSuperTypePath = 
ResourceUtil.resourceTypeToPath(resourceSuperType);
-        replaceResource(null, resourceSuperType);
+        request = this.createRequest(replaceResource(null, resourceSuperType));
 
         final Resource r = request.getResource();
         List<Resource> loc = getLocations(r.getResourceType(),
                 r.getResourceSuperType());
-        
+
         List<Resource> expected = Arrays.asList(
                        r("/" + resourceTypePath), // /foo/bar
                 r("/" + resourceSuperTypePath), // /foo/superBar
                 r("/" + DEFAULT_RESOURCE_TYPE)); // /sling/servlet/default
         assertThat(loc,isSameResourceList(expected));
     }
-    
+
     @Test
     public void testSearchPath1ElementWithSuper() {
+        SlingHttpServletRequest request = this.createRequest(this.resource);
         String root0 = "/apps/";
         searchPathOptions.setSearchPaths(new String[] {
                 root0
@@ -274,21 +284,22 @@ public class LocationCollectorTest {
         // set resource super type
         resourceSuperType = "foo:superBar";
         resourceSuperTypePath = 
ResourceUtil.resourceTypeToPath(resourceSuperType);
-        replaceResource(null, resourceSuperType);
+        request = this.createRequest(replaceResource(null, resourceSuperType));
 
         final Resource r = request.getResource();
         List<Resource> loc = getLocations(r.getResourceType(),
                 r.getResourceSuperType());
-        
+
         List<Resource> expected = Arrays.asList(
                        r(root0 + resourceTypePath), // /apps/foo/bar
                 r(root0 + resourceSuperTypePath), // /apps/foo/superBar
                 r(root0 + DEFAULT_RESOURCE_TYPE)); // 
/apps/sling/servlet/default
         assertThat(loc,isSameResourceList(expected));
     }
-    
+
     @Test
     public void testSearchPath2ElementsWithSuper() {
+        SlingHttpServletRequest request = this.createRequest(this.resource);
         String root0 = "/apps/";
         String root1 = "/libs/";
         searchPathOptions.setSearchPaths(new String[] {
@@ -299,12 +310,12 @@ public class LocationCollectorTest {
         // set resource super type
         resourceSuperType = "foo:superBar";
         resourceSuperTypePath = 
ResourceUtil.resourceTypeToPath(resourceSuperType);
-        replaceResource(null, resourceSuperType);
+        request = this.createRequest(replaceResource(null, resourceSuperType));
 
         final Resource r = request.getResource();
         List<Resource> loc = getLocations(r.getResourceType(),
                 r.getResourceSuperType());
-        
+
         List<Resource> expected = Arrays.asList(
                        r(root0 + resourceTypePath), // /apps/foo/bar
                 r(root1 + resourceTypePath), // /libs/foo/bar
@@ -314,9 +325,10 @@ public class LocationCollectorTest {
                 r(root1 + DEFAULT_RESOURCE_TYPE)); // 
/libs/sling/servlet/default
         assertThat(loc,isSameResourceList(expected));
     }
-    
+
     @Test
     public void testSearchPathEmptyAbsoluteTypeWithSuper() {
+        SlingHttpServletRequest request = this.createRequest(this.resource);
         // expect path gets { "/" }
         searchPathOptions.setSearchPaths(null);
 
@@ -327,21 +339,22 @@ public class LocationCollectorTest {
         // set resource super type
         resourceSuperType = "foo:superBar";
         resourceSuperTypePath = 
ResourceUtil.resourceTypeToPath(resourceSuperType);
-        replaceResource(resourceType, resourceSuperType);
+        request = this.createRequest(replaceResource(resourceType, 
resourceSuperType));
 
         final Resource r = request.getResource();
         List<Resource> loc = getLocations(r.getResourceType(),
                 r.getResourceSuperType());
-        
+
         List<Resource> expected = Arrays.asList(
                        r(resourceTypePath), // /foo/bar
                 r("/" + resourceSuperTypePath), // /foo/superBar
                 r("/" + DEFAULT_RESOURCE_TYPE)); // /sling/servlet/default
         assertThat(loc,isSameResourceList(expected));
     }
-    
+
     @Test
     public void testSearchPath1ElementAbsoluteTypeWithSuper() {
+        SlingHttpServletRequest request = this.createRequest(this.resource);
         String root0 = "/apps/";
         searchPathOptions.setSearchPaths(new String[] {
                 root0
@@ -354,21 +367,22 @@ public class LocationCollectorTest {
         // set resource super type
         resourceSuperType = "foo:superBar";
         resourceSuperTypePath = 
ResourceUtil.resourceTypeToPath(resourceSuperType);
-        replaceResource(resourceType, resourceSuperType);
+        request = this.createRequest(replaceResource(resourceType, 
resourceSuperType));
 
         final Resource r = request.getResource();
         List<Resource> loc = getLocations(r.getResourceType(),
                 r.getResourceSuperType());
-        
+
         List<Resource> expected = Arrays.asList(
                        r(resourceTypePath), // /foo/bar
                 r(root0 + resourceSuperTypePath), // /apps/foo/superBar
                 r(root0 + DEFAULT_RESOURCE_TYPE)); // 
/apps/sling/servlet/default
         assertThat(loc,isSameResourceList(expected));
     }
-    
+
     @Test
     public void testSearchPath2ElementsAbsoluteTypeWithSuper() {
+        SlingHttpServletRequest request = this.createRequest(this.resource);
         String root0 = "/apps/";
         String root1 = "/libs/";
         searchPathOptions.setSearchPaths(new String[] {
@@ -383,12 +397,12 @@ public class LocationCollectorTest {
         // set resource super type
         resourceSuperType = "foo:superBar";
         resourceSuperTypePath = 
ResourceUtil.resourceTypeToPath(resourceSuperType);
-        replaceResource(resourceType, resourceSuperType);
+        request = this.createRequest(replaceResource(resourceType, 
resourceSuperType));
 
         final Resource r = request.getResource();
         List<Resource> loc = getLocations(r.getResourceType(),
                 r.getResourceSuperType());
-        
+
         List<Resource> expected = Arrays.asList(
                        r(resourceTypePath), // /foo/bar
                 r(root0 + resourceSuperTypePath), // /apps/foo/superBar
@@ -397,9 +411,10 @@ public class LocationCollectorTest {
                 r(root1 + DEFAULT_RESOURCE_TYPE)); // 
/libs/sling/servlet/default
         assertThat(loc,isSameResourceList(expected));
     }
-    
+
     @Test
     public void testScriptNameWithoutResourceType() {
+        final SlingHttpServletRequest request = 
this.createRequest(this.resource);
         String root0 = "/apps/";
         String root1 = "/libs/";
         searchPathOptions.setSearchPaths(new String[] {
@@ -408,13 +423,13 @@ public class LocationCollectorTest {
         });
         List<Resource> loc = getLocations("",
                 null,"");
-        
+
         List<Resource> expected = Arrays.asList(
                        r("/apps"),
                        r("/libs"));
         assertThat(loc,isSameResourceList(expected));
     }
-    
+
     @Test
     public void testScriptNameWithResourceType() {
         String root0 = "/apps/";
@@ -424,7 +439,7 @@ public class LocationCollectorTest {
                 root1
         });
         List<Resource> loc = getLocations("a/b", null);
-        
+
         List<Resource> expected = Arrays.asList(
                        r(root0 + "a/b"),
                 r(root1 + "a/b"),
@@ -432,7 +447,7 @@ public class LocationCollectorTest {
                 r(root1 + DEFAULT_RESOURCE_TYPE));
         assertThat(loc,isSameResourceList(expected));
     }
-    
+
     @Test
     public void testScriptNameWithResourceTypeAndSuperType() {
         String root0 = "/apps/";
@@ -441,7 +456,7 @@ public class LocationCollectorTest {
                 root0,
                 root1
         });
-        
+
         List<Resource> loc = getLocations("a/b", "c/d");
 
         List<Resource> expected = Arrays.asList(
@@ -453,7 +468,7 @@ public class LocationCollectorTest {
                 r(root1 + DEFAULT_RESOURCE_TYPE));
         assertThat(loc,isSameResourceList(expected));
     }
-    
+
     @Test
     public void testCircularResourceTypeHierarchy() throws 
PersistenceException {
         final String root1 = "/libs/";
@@ -482,7 +497,7 @@ public class LocationCollectorTest {
                                resource3Props);
 
                List<Resource> loc = getLocations(resourceType, 
resourceSuperType);
-        
+
         List<Resource> expected = Arrays.asList(
                        r(root1 + resourceType), // /libs/foo/bar
                 r(root1 + resourceSuperType), // /libs/foo/check1
@@ -490,17 +505,17 @@ public class LocationCollectorTest {
                 r(root1 + DEFAULT_RESOURCE_TYPE)); // 
/libs/sling/servlet/default
         assertThat(loc,isSameResourceList(expected));
     }
-    
+
     @Test
     public void testResolveDefaultResourceType() {
-       
+
        searchPathOptions.setSearchPaths(new String[] {
                 "/apps/",
                 "/libs/"
         });
-       
+
        List<Resource> loc = getLocations(DEFAULT_RESOURCE_TYPE, 
resourceSuperType);
-       
+
        List<Resource> expected = Arrays.asList(
                        r("/apps/sling/servlet/default"),
                        r("/libs/sling/servlet/default"),
@@ -508,32 +523,32 @@ public class LocationCollectorTest {
                        r("/libs/sling/servlet/default"));
        assertThat(loc,isSameResourceList(expected));
     }
- 
+
     @Test
     public void testAbsoluteResourceSuperType() throws Exception {
         final String root = "/apps/";
         searchPathOptions.setSearchPaths(new String[] {
                 root
         });
-        
+
         String resourceType="a/b";
         String resourceTypePath= root + resourceType;
-        
+
         String resourceSuperType= "/apps/c/d";
         String resourceSuperTypePath = resourceSuperType;
-        
+
         Map<String, Object> resourceTypeProps = new HashMap<>();
         resourceTypeProps.put(ResourceResolver.PROPERTY_RESOURCE_TYPE, 
resourceType);
         resourceTypeProps.put("sling:resourceSuperType", resourceSuperType);
-        
+
         resolver.create(getOrCreateParentResource(resolver, resourceTypePath),
                                ResourceUtil.getName(resourceTypePath), 
resourceTypeProps);
         resolver.create(getOrCreateParentResource(resolver, 
resourceSuperTypePath),
                                ResourceUtil.getName(resourceSuperTypePath), 
null);
-        
-        
+
+
        List<Resource> loc = getLocations(resourceType, resourceSuperType);
-       
+
        List<Resource> expected = Arrays.asList(
                        r(resourceTypePath),                            // 
/apps/a/b
                        r(resourceSuperTypePath),                       // 
/apps/c/d
@@ -541,42 +556,43 @@ public class LocationCollectorTest {
                        );
        assertThat(loc,isSameResourceList(expected));
     }
-    
+
     @Test
     public void testNoSuperType() throws Exception {
         final String root = "/apps/";
         searchPathOptions.setSearchPaths(new String[] {
                 root
         });
-        
+
         String resourceType="a/b";
         String resourceTypePath= root + resourceType;
-        
+
         Map<String, Object> resourceTypeProps = new HashMap<>();
         resourceTypeProps.put(ResourceResolver.PROPERTY_RESOURCE_TYPE, 
resourceType);
-        
+
         resolver.create(getOrCreateParentResource(resolver, resourceTypePath),
                                ResourceUtil.getName(resourceTypePath), 
resourceTypeProps);
-        
-        
+
+
        List<Resource> loc = getLocations(resourceType, resourceSuperType);
-       
+
        List<Resource> expected = Arrays.asList(
                        r(resourceTypePath),                            // 
/apps/a/b
                        r(root + DEFAULT_RESOURCE_TYPE)         // 
/apps/sling/servlet/default
                        );
        assertThat(loc,isSameResourceList(expected));
     }
-    
+
 
     @Test
     public void checkThatTheCacheIsUsed() {
+        final SlingHttpServletRequest request = 
this.createRequest(this.resource);
 
        // skip if the test runs without caching
        if (!useResourceCaching) {
                return;
        }
-       
+
        // The basic test setup is copied from testSearchPath2ElementsWithSuper
         String root0 = "/apps/";
         String root1 = "/libs/";
@@ -591,7 +607,7 @@ public class LocationCollectorTest {
         replaceResource(null, resourceSuperType);
 
         final Resource r = request.getResource();
-        
+
        // Execute the same call twice and expect that on 2nd time the 
ResourceResolver
        // is never used, because all is taken from the cache
         getLocations(r.getResourceType(),
@@ -600,20 +616,21 @@ public class LocationCollectorTest {
         getLocations(r.getResourceType(),
                 r.getResourceSuperType());
         Mockito.verify(resolver, 
Mockito.never()).getResource(Mockito.anyString());
-        
+
         // validate the cache cleanup
         int cacheEntries = ((Map<String,Resource>) 
resolver.getPropertyMap().get(LocationCollector.CACHE_KEY)).size();
         assertTrue(cacheEntries > 0);
         LocationCollector.clearCache(resolver);
         assertEquals(0,((Map<String,Resource>) 
resolver.getPropertyMap().get(LocationCollector.CACHE_KEY)).size());
-        
+
     }
-    
+
     @Test
     public void testWithCacheMapKeyAlreadyUsed() {
+        final SlingHttpServletRequest request = 
this.createRequest(this.resource);
        // if the cacheKey in the ResourceResolverMap is already used, make 
sure that it's not overwritten
        // this is an adapted copy of the testSearchPath1Element testcase
-       
+
         String root0 = "/apps/";
         searchPathOptions.setSearchPaths(new String[] {
                 root0
@@ -624,49 +641,47 @@ public class LocationCollectorTest {
         
r.getResourceResolver().getPropertyMap().put(LocationCollector.CACHE_KEY, 
storedElement);
         List<Resource> loc = getLocations(r.getResourceType(),
                 r.getResourceSuperType());
-        
+
         List<Resource> expected = Arrays.asList(
                        r(root0 + resourceTypePath), // /apps/foo/bar
                 r(root0 + DEFAULT_RESOURCE_TYPE)); // 
/apps/sling/servlet/default
         assertThat(loc,isSameResourceList(expected));
-       
+
         assertEquals(storedElement, 
r.getResourceResolver().getPropertyMap().get(LocationCollector.CACHE_KEY));
-        
+
         // make sure that a cache clear does not clear this entry
         LocationCollector.clearCache(resolver);
         assertEquals(storedElement, 
r.getResourceResolver().getPropertyMap().get(LocationCollector.CACHE_KEY));
-        
-       
     }
-    
-    
+
+
     // --- helper ---
-    
+
     private Resource r (String path) {
        return new SyntheticResource(resolver, path, "resourcetype");
     }
-    
-    
+
+
     List<Resource> getLocations(final String resourceType,
             final String resourceSuperType) {
         return getLocations(resourceType, resourceSuperType, 
DEFAULT_RESOURCE_TYPE);
     }
-    
+
     List<Resource> getLocations( final String resourceType,
             final String resourceSuperType,
             final String baseResourceType) {
-       
+
         return LocationCollector.getLocations(resourceType,
                 resourceSuperType,
                 baseResourceType,
                 resolver, useResourceCaching);
     }
-    
+
     // Mimic the searchpath semantic of the ResourceResolverFactory
     public class SearchPathOptions {
-       
+
        String[] searchPath = new String[0];
-       
+
        public void setSearchPaths(String[] searchpath) {
                if (searchpath == null) {
                        this.searchPath = new String[0];
@@ -674,12 +689,9 @@ public class LocationCollectorTest {
                        this.searchPath = searchpath;
                }
        }
-       
+
        public String[] getSearchPath() {
                return searchPath;
        }
     }
-    
-    
-    
 }
diff --git 
a/src/test/java/org/apache/sling/servlets/resolver/internal/helper/ResourceCollectorTest.java
 
b/src/test/java/org/apache/sling/servlets/resolver/internal/helper/ResourceCollectorTest.java
index 965bc6b..7196dbb 100644
--- 
a/src/test/java/org/apache/sling/servlets/resolver/internal/helper/ResourceCollectorTest.java
+++ 
b/src/test/java/org/apache/sling/servlets/resolver/internal/helper/ResourceCollectorTest.java
@@ -26,6 +26,7 @@ import java.util.Iterator;
 import java.util.List;
 import java.util.Map;
 
+import org.apache.sling.api.SlingHttpServletRequest;
 import org.apache.sling.api.resource.Resource;
 import org.apache.sling.api.resource.ResourceUtil;
 
@@ -41,6 +42,7 @@ public class ResourceCollectorTest extends HelperTestBase {
     }
 
     public void testGetServlets0() {
+        SlingHttpServletRequest req = makeRequest("GET", "print.a4", "html");
         String[] names = { "/" + label + ".esp", // 0
                 "/GET.esp", // 1
                 "/" + label + ".html.esp", // 2
@@ -54,10 +56,11 @@ public class ResourceCollectorTest extends HelperTestBase {
         int[] baseIdxs = { 0, 1, 1, 0, 0, 1, 0, 1, 0, 1 };
         int[] indices  = { 7, 5, 6, 4, 2, 3, 0, 1 };
 
-        effectiveTest(names, baseIdxs, indices);
+        effectiveTest(req, names, baseIdxs, indices);
     }
 
     public void testGetServlets1() {
+        SlingHttpServletRequest req = makeRequest("GET", "print.a4", "html");
         String[] names = { "/" + label + ".esp", // 0
                 "/GET.esp", // 1
                 "/" + label + ".html.esp", // 2
@@ -71,10 +74,11 @@ public class ResourceCollectorTest extends HelperTestBase {
         int[] baseIdxs = { 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1 };
         int[] indices = { 7, 6, 3, 2, 0, 1 };
 
-        effectiveTest(names, baseIdxs, indices);
+        effectiveTest(req, names, baseIdxs, indices);
     }
 
     public void testGetServlets2() {
+        SlingHttpServletRequest req = makeRequest("GET", "print.a4", "html");
         String[] names = { "/" + label + ".esp", // 0
                 "/GET.esp", // 1
                 "/" + label + ".html.esp", // 2
@@ -89,10 +93,11 @@ public class ResourceCollectorTest extends HelperTestBase {
         int[] baseIdxs = { 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1 };
         int[] indices = { 8, 7, 2, 3, 0, 1 };
 
-        effectiveTest(names, baseIdxs, indices);
+        effectiveTest(req, names, baseIdxs, indices);
     }
 
     public void testGetServlets3() {
+        SlingHttpServletRequest req = makeRequest("GET", "print.a4", "html");
         String[] names = { ".servlet", // 0
                 "/" + label + ".esp", // 1
                 "/GET.esp", // 2
@@ -108,10 +113,11 @@ public class ResourceCollectorTest extends HelperTestBase 
{
         int[] baseIdxs = { 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1 };
         int[] indices = { 9, 8, 3, 4, 1, 2, 0 };
 
-        effectiveTest(names, baseIdxs, indices);
+        effectiveTest(req, names, baseIdxs, indices);
     }
 
     public void testGetServlets4() {
+        SlingHttpServletRequest req = makeRequest("GET", "print.a4", "html");
         String[] names = { ".servlet", // 0
                 "/" + label + ".esp", // 1
                 "/GET.esp", // 2
@@ -128,10 +134,11 @@ public class ResourceCollectorTest extends HelperTestBase 
{
         int[] baseIdxs = { 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 0, 1 };
         int[] indices = { 10, 9, 3, 4, 1, 2, 0 };
 
-        effectiveTest(names, baseIdxs, indices);
+        effectiveTest(req, names, baseIdxs, indices);
     }
 
     public void testGetServletsWithMethod() {
+        SlingHttpServletRequest req = makeRequest("GET", "print.a4", "html");
         String[] names = {
             "/html.servlet", // 7
             "/html.GET.servlet"
@@ -140,10 +147,11 @@ public class ResourceCollectorTest extends HelperTestBase 
{
         int[] baseIdxs = { 1, 1};
         int[] indices = { 1, 0};
 
-        effectiveTest(names, baseIdxs, indices);
+        effectiveTest(req, names, baseIdxs, indices);
     }
 
     public void testGetServletsScriptExtensionsPriority() {
+        SlingHttpServletRequest req = makeRequest("GET", "print.a4", "html");
         String[] names = {".servlet", // 0
                 "/" + label + ".esp", // 1
                 "/GET.esp", // 2
@@ -163,7 +171,7 @@ public class ResourceCollectorTest extends HelperTestBase {
         int[] baseIdxs = { 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 1, 1, 0 , 0 , 1, 0};
         int[] indices = {12, 13, 11, 10, 9, 3, 4, 1, 2, 0};
 
-        effectiveTest(names, baseIdxs, indices, new ArrayList<String>(){
+        effectiveTest(req, names, baseIdxs, indices, new ArrayList<String>(){
             private static final long serialVersionUID = -2278401285444759128L;
         {
             add("esp");
@@ -174,6 +182,7 @@ public class ResourceCollectorTest extends HelperTestBase {
     }
 
     public void testGetServletsScriptExtensionsPriority2() {
+        SlingHttpServletRequest req = makeRequest("GET", "print.a4", "html");
         // scripts with extensions not registered by script engine factories
         String[] names = {".servlet", // 0
                 "/" + label + ".esp", // 1
@@ -194,7 +203,7 @@ public class ResourceCollectorTest extends HelperTestBase {
         int[] baseIdxs = { 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 1, 1, 0 , 0 , 1, 0};
         int[] indices = {12, 13, 11, 10, 9, 3, 4, 1, 2, 0};
 
-        effectiveTest(names, baseIdxs, indices, new ArrayList<String>(){
+        effectiveTest(req, names, baseIdxs, indices, new ArrayList<String>(){
             private static final long serialVersionUID = 4918721764309621104L;
         {
             add("esp");
@@ -203,6 +212,7 @@ public class ResourceCollectorTest extends HelperTestBase {
     }
 
     public void testGetServletsScriptExtensionsPriority3() {
+        SlingHttpServletRequest req = makeRequest("GET", "print.a4", "html");
         // scripts with extensions not registered by script engine factories
         String[] names = {".servlet", // 0
                 "/" + label + ".esp", // 1
@@ -223,7 +233,7 @@ public class ResourceCollectorTest extends HelperTestBase {
         int[] baseIdxs = { 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 1, 1, 0 , 0 , 1, 0};
         int[] indices = {12, 13, 11, 10, 9, 3, 4, 1, 2, 0};
 
-        effectiveTest(names, baseIdxs, indices, new ArrayList<String>(){
+        effectiveTest(req, names, baseIdxs, indices, new ArrayList<String>(){
             private static final long serialVersionUID = 1527098044127506711L;
         {
             add("esp");
@@ -233,7 +243,7 @@ public class ResourceCollectorTest extends HelperTestBase {
 
     public void testAnyServlets0() {
         // use a request with another request method "ANY"
-        request.setMethod("ANY");
+        SlingHttpServletRequest req = makeRequest("ANY", "print.a4", "html");
 
         String[] names = { "/" + label + ".ANY.esp", // 0
                 "/ANY.esp", // 1
@@ -248,12 +258,12 @@ public class ResourceCollectorTest extends HelperTestBase 
{
         int[] baseIdxs = { 0, 1, 1, 0, 0, 1, 0, 1, 0, 1 };
         int[] indices  = { 7, 5, 6, 4, 2, 3, 0, 1 };
 
-        effectiveTest(names, baseIdxs, indices);
+        effectiveTest(req, names, baseIdxs, indices);
     }
 
     public void testAnyServlets1() {
         // use a request with another request method "ANY"
-        request.setMethod("ANY");
+        SlingHttpServletRequest req = makeRequest("ANY", "print.a4", "html");
 
         String[] names = { "/" + label + ".ANY.esp", // 0
                 "/ANY.esp", // 1
@@ -268,12 +278,12 @@ public class ResourceCollectorTest extends HelperTestBase 
{
         int[] baseIdxs = { 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1 };
         int[] indices = { 7, 6, 3, 2, 0, 1 };
 
-        effectiveTest(names, baseIdxs, indices);
+        effectiveTest(req, names, baseIdxs, indices);
     }
 
     public void testAnyServlets2() {
         // use a request with another request method "ANY"
-        request.setMethod("ANY");
+        SlingHttpServletRequest req = makeRequest("ANY", "print.a4", "html");
 
         String[] names = { "/" + label + ".ANY.esp", // 0
                 "/ANY.esp", // 1
@@ -289,12 +299,12 @@ public class ResourceCollectorTest extends HelperTestBase 
{
         int[] baseIdxs = { 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1 };
         int[] indices = { 8, 7, 2, 3, 0, 1 };
 
-        effectiveTest(names, baseIdxs, indices);
+        effectiveTest(req, names, baseIdxs, indices);
     }
 
     public void testAnyServlets3() {
         // use a request with another request method "ANY"
-        request.setMethod("ANY");
+        SlingHttpServletRequest req = makeRequest("ANY", "print.a4", "html");
 
         String[] names = { ".servlet", // 0
                 "/" + label + ".ANY.esp", // 1
@@ -311,12 +321,12 @@ public class ResourceCollectorTest extends HelperTestBase 
{
         int[] baseIdxs = { 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1 };
         int[] indices = { 9, 8, 3, 4, 1, 2, 0 };
 
-        effectiveTest(names, baseIdxs, indices);
+        effectiveTest(req, names, baseIdxs, indices);
     }
 
     public void testAnyServlets4() {
         // use a request with another request method "ANY"
-        request.setMethod("ANY");
+        SlingHttpServletRequest req = makeRequest("ANY", "print.a4", "html");
 
         String[] names = { ".servlet", // 0
                 "/" + label + ".ANY.esp", // 1
@@ -334,12 +344,12 @@ public class ResourceCollectorTest extends HelperTestBase 
{
         int[] baseIdxs = { 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 0, 1 };
         int[] indices = { 10, 9, 3, 4, 1, 2, 0 };
 
-        effectiveTest(names, baseIdxs, indices);
+        effectiveTest(req, names, baseIdxs, indices);
     }
 
     public void testAnyServletsScriptExtensionsPriority() {
         // use a request with another request method "ANY"
-        request.setMethod("ANY");
+        SlingHttpServletRequest req = makeRequest("ANY", "print.a4", "html");
 
         String[] names = {".servlet", // 0
                 "/" + label + ".ANY.esp", // 1
@@ -360,7 +370,7 @@ public class ResourceCollectorTest extends HelperTestBase {
         int[] baseIdxs = { 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 1, 1, 0 , 0 , 1, 0};
         int[] indices = {12, 13, 11, 10, 9, 3, 4, 1, 2, 0};
 
-        effectiveTest(names, baseIdxs, indices, new ArrayList<String>(){
+        effectiveTest(req, names, baseIdxs, indices, new ArrayList<String>(){
             private static final long serialVersionUID = 3909592432283252117L;
         {
             add("esp");
@@ -370,11 +380,11 @@ public class ResourceCollectorTest extends HelperTestBase 
{
         }});
     }
 
-    protected void effectiveTest(String[] names, int[] baseIdxs, int[] 
indices) {
-        effectiveTest(names, baseIdxs, indices, null);
+    protected void effectiveTest(SlingHttpServletRequest r, String[] names, 
int[] baseIdxs, int[] indices) {
+        effectiveTest(r, names, baseIdxs, indices, null);
     }
 
-    protected void effectiveTest(String[] names, int[] baseIdxs, int[] 
indices, List<String> scriptEngineExtensions) {
+    protected void effectiveTest(SlingHttpServletRequest r, String[] names, 
int[] baseIdxs, int[] indices, List<String> scriptEngineExtensions) {
 
         String[] base = { "/apps/" + resourceTypePath,
             "/libs/" + resourceTypePath };
@@ -389,12 +399,12 @@ public class ResourceCollectorTest extends HelperTestBase 
{
             pathMap.put(name, path);
         }
 
-        ResourceCollector lu = ResourceCollector.create(request, null, new 
String[] {"html"}, true);
+        ResourceCollector lu = ResourceCollector.create(r, null, new String[] 
{"html"}, true);
         Collection<Resource> res;
         if (scriptEngineExtensions != null) {
-            res = lu.getServlets(request.getResourceResolver(), 
scriptEngineExtensions);
+            res = lu.getServlets(r.getResourceResolver(), 
scriptEngineExtensions);
         } else {
-            res = lu.getServlets(request.getResourceResolver(), 
Collections.emptyList());
+            res = lu.getServlets(r.getResourceResolver(), 
Collections.emptyList());
         }
         Iterator<Resource> rIter = res.iterator();
 
diff --git 
a/src/test/java/org/apache/sling/servlets/resolver/internal/helper/ScriptSelectionTest.java
 
b/src/test/java/org/apache/sling/servlets/resolver/internal/helper/ScriptSelectionTest.java
index be28f2d..ee0ddb6 100644
--- 
a/src/test/java/org/apache/sling/servlets/resolver/internal/helper/ScriptSelectionTest.java
+++ 
b/src/test/java/org/apache/sling/servlets/resolver/internal/helper/ScriptSelectionTest.java
@@ -21,8 +21,8 @@ package org.apache.sling.servlets.resolver.internal.helper;
 import java.util.Collection;
 import java.util.Collections;
 
+import org.apache.sling.api.SlingHttpServletRequest;
 import org.apache.sling.api.resource.Resource;
-import org.apache.sling.commons.testing.sling.MockSlingHttpServletRequest;
 
 /** Various tests that explain and demonstrate how scripts are
  *  selected. See the assertScript methods for how to interpret
@@ -66,7 +66,7 @@ public class ScriptSelectionTest extends HelperTestBase {
         }
 
         // Create mock request and get scripts from ResourceCollector
-        final MockSlingHttpServletRequest req = makeRequest(method, selectors, 
extension);
+        final SlingHttpServletRequest req = makeRequest(method, selectors, 
extension);
         final ResourceCollector u = ResourceCollector.create(req, null, new 
String[] {"html"}, true);
         final Collection<Resource> s = 
u.getServlets(req.getResourceResolver(), Collections.emptyList());
 
diff --git 
a/src/test/java/org/apache/sling/servlets/resolver/internal/resourcehiding/ServletHidingTest.java
 
b/src/test/java/org/apache/sling/servlets/resolver/internal/resourcehiding/ServletHidingTest.java
index 9a6b285..468f5a0 100644
--- 
a/src/test/java/org/apache/sling/servlets/resolver/internal/resourcehiding/ServletHidingTest.java
+++ 
b/src/test/java/org/apache/sling/servlets/resolver/internal/resourcehiding/ServletHidingTest.java
@@ -33,8 +33,11 @@ import javax.servlet.Servlet;
 
 import org.apache.sling.api.resource.PersistenceException;
 import org.apache.sling.api.resource.ResourceUtil;
+import org.apache.sling.api.resource.SyntheticResource;
 import org.apache.sling.api.servlets.SlingSafeMethodsServlet;
-import org.apache.sling.commons.testing.sling.MockSlingHttpServletRequest;
+import org.apache.sling.api.SlingHttpServletRequest;
+import org.apache.sling.api.request.builder.Builders;
+import org.apache.sling.api.resource.Resource;
 import org.apache.sling.servlets.resolver.api.IgnoredServletResourcePredicate;
 import 
org.apache.sling.servlets.resolver.internal.SlingServletResolverTestBase;
 import org.apache.sling.servlets.resolver.internal.helper.HelperTestBase;
@@ -46,6 +49,8 @@ public class ServletHidingTest extends 
SlingServletResolverTestBase {
 
     private static final String TEST_ID = UUID.randomUUID().toString();
 
+    private static final String TEST_RESOURCE_TYPE = "foo/bar";
+
     protected static class TestServlet extends SlingSafeMethodsServlet {
         private final String id;
 
@@ -77,15 +82,16 @@ public class ServletHidingTest extends 
SlingServletResolverTestBase {
     }
 
     private Servlet resolveServlet() {
-        MockSlingHttpServletRequest req = new MockSlingHttpServletRequest(
-                MockSlingHttpServletRequest.RESOURCE_TYPE, null, "html", null, 
null);
-        req.setResourceResolver(mockResourceResolver);
+        final Resource resource = new SyntheticResource(mockResourceResolver, 
"/content/foobar", TEST_RESOURCE_TYPE);
+        SlingHttpServletRequest req = Builders.newRequestBuilder(resource)
+                .withExtension("html")
+                .build();
         return servletResolver.resolveServlet(req);
     }
 
     @Override
     protected void defineTestServlets(Bundle bundle) {
-        registerServlet(TEST_ID, MockSlingHttpServletRequest.RESOURCE_TYPE);
+        registerServlet(TEST_ID, TEST_RESOURCE_TYPE);
     }
 
     private void assertResolvesToTestServletId(String info, boolean 
expectMatch) {
diff --git 
a/src/test/java/org/apache/sling/servlets/resolver/it/SLING10478IT.java 
b/src/test/java/org/apache/sling/servlets/resolver/it/SLING10478IT.java
index 6d4df30..5d30a9d 100644
--- a/src/test/java/org/apache/sling/servlets/resolver/it/SLING10478IT.java
+++ b/src/test/java/org/apache/sling/servlets/resolver/it/SLING10478IT.java
@@ -32,7 +32,10 @@ import jakarta.json.stream.JsonGenerator;
 import javax.servlet.http.HttpServletRequest;
 import javax.servlet.http.HttpServletResponse;
 
-import org.apache.sling.servlethelpers.MockSlingHttpServletResponse;
+import org.apache.sling.api.SlingHttpServletResponse;
+import org.apache.sling.api.request.builder.Builders;
+import org.apache.sling.api.request.builder.SlingHttpServletResponseResult;
+import org.apache.sling.api.wrappers.SlingHttpServletResponseWrapper;
 import org.junit.Before;
 import org.junit.Test;
 import org.junit.runner.RunWith;
@@ -84,7 +87,7 @@ public class SLING10478IT extends ServletResolverTestSupport {
                 resp.setContentType("text/plain");
 
                 resp.getWriter().print("hello error");
-                
+
                 // response writer remains unclosed
             }
 
@@ -96,11 +99,6 @@ public class SLING10478IT extends ServletResolverTestSupport 
{
         .register(bundleContext);
     }
 
-    @Override
-    protected MockSlingHttpServletResponse 
createMockSlingHttpServletResponse() {
-        return new HandleErrorMockSlingHttpServletResponse();
-    }
-
     /**
      * Test an error handling servlet that closes the response writer
      */
@@ -117,9 +115,15 @@ public class SLING10478IT extends 
ServletResolverTestSupport {
         checkErrorHandlerServlet("/not_real_path.noclose");
     }
 
+    protected SlingHttpServletResponse createMockSlingHttpServletResponse() {
+        final SlingHttpServletResponse response = 
Builders.newResponseBuilder().build();
+        return new HandleErrorMockSlingHttpServletResponse(response);
+    }
+
     void checkErrorHandlerServlet(String path) throws Exception, 
InvocationTargetException {
         try {
-            final String output = executeRequest(M_GET, path, 
HttpServletResponse.SC_NOT_FOUND).getOutputAsString();
+            final SlingHttpServletResponse response = executeRequest(M_GET, 
path, HttpServletResponse.SC_NOT_FOUND);
+            final String output = 
((SlingHttpServletResponseResult)((HandleErrorMockSlingHttpServletResponse)response).getResponse()).getOutputAsString();
             assertNotNull(output);
             assertTrue(output, output.contains("hello"));
         } catch (InvocationTargetException t) {
@@ -132,15 +136,19 @@ public class SLING10478IT extends 
ServletResolverTestSupport {
         }
     }
 
-
-    /**
-     * Subclass to simulate what the SlingHttpServletResponseImpl writer does 
+   /**
+     * Subclass to simulate what the SlingHttpServletResponseImpl writer does
      */
-    private static final class HandleErrorMockSlingHttpServletResponse extends 
MockSlingHttpServletResponse {
+    private static final class HandleErrorMockSlingHttpServletResponse extends 
SlingHttpServletResponseWrapper {
+
         private HandleErrorResponseWriter writer = null;
 
+        public HandleErrorMockSlingHttpServletResponse(final 
SlingHttpServletResponse r) {
+            super(r);
+        }
+
         @Override
-        public PrintWriter getWriter() {
+        public PrintWriter getWriter() throws IOException{
             if (writer == null) {
                 writer = new HandleErrorResponseWriter(super.getWriter());
             }
@@ -148,7 +156,7 @@ public class SLING10478IT extends 
ServletResolverTestSupport {
         }
 
         @Override
-        public void flushBuffer() {
+        public void flushBuffer() throws IOException {
             if (!writer.isOpen()) {
                 throw new IllegalStateException("Writer Already Closed");
             }
@@ -157,7 +165,7 @@ public class SLING10478IT extends 
ServletResolverTestSupport {
     }
 
     /**
-     * Subclass to simulate what the SlingHttpServletResponseImpl writer does 
+     * Subclass to simulate what the SlingHttpServletResponseImpl writer does
      */
     private static final class HandleErrorResponseWriter extends PrintWriter {
 
@@ -176,7 +184,5 @@ public class SLING10478IT extends 
ServletResolverTestSupport {
         public boolean isOpen() {
             return open;
         }
-
     }
-
 }
diff --git 
a/src/test/java/org/apache/sling/servlets/resolver/it/ScriptEngineManagerMock.java
 
b/src/test/java/org/apache/sling/servlets/resolver/it/ScriptEngineManagerMock.java
new file mode 100644
index 0000000..a1cb7cc
--- /dev/null
+++ 
b/src/test/java/org/apache/sling/servlets/resolver/it/ScriptEngineManagerMock.java
@@ -0,0 +1,29 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.sling.servlets.resolver.it;
+
+import javax.script.ScriptEngineManager;
+
+import org.osgi.service.component.annotations.Component;
+
+@Component(service = ScriptEngineManager.class)
+public class ScriptEngineManagerMock extends ScriptEngineManager {
+
+    // nothing to do
+}
diff --git 
a/src/test/java/org/apache/sling/servlets/resolver/it/ServletResolverTestSupport.java
 
b/src/test/java/org/apache/sling/servlets/resolver/it/ServletResolverTestSupport.java
index a0ae52e..5641bef 100644
--- 
a/src/test/java/org/apache/sling/servlets/resolver/it/ServletResolverTestSupport.java
+++ 
b/src/test/java/org/apache/sling/servlets/resolver/it/ServletResolverTestSupport.java
@@ -18,34 +18,32 @@
  */
 package org.apache.sling.servlets.resolver.it;
 
-import java.lang.reflect.Method;
-
 import javax.inject.Inject;
-import javax.servlet.http.HttpServletRequest;
-import javax.servlet.http.HttpServletResponse;
-
+import org.apache.sling.api.SlingHttpServletRequest;
+import org.apache.sling.api.SlingHttpServletResponse;
+import org.apache.sling.api.request.builder.Builders;
+import org.apache.sling.api.request.builder.SlingHttpServletResponseResult;
+import org.apache.sling.api.resource.AbstractResource;
+import org.apache.sling.api.resource.Resource;
+import org.apache.sling.api.resource.ResourceMetadata;
 import org.apache.sling.api.resource.ResourceResolver;
 import org.apache.sling.api.resource.ResourceResolverFactory;
 import org.apache.sling.engine.SlingRequestProcessor;
-import org.apache.sling.servlethelpers.MockSlingHttpServletRequest;
-import org.apache.sling.servlethelpers.MockSlingHttpServletResponse;
 import org.apache.sling.testing.paxexam.TestSupport;
+import org.jetbrains.annotations.NotNull;
+import org.jetbrains.annotations.Nullable;
 import org.ops4j.pax.exam.Configuration;
 import org.ops4j.pax.exam.Option;
 import org.ops4j.pax.exam.options.extra.VMOption;
 import org.osgi.framework.BundleContext;
 import org.osgi.framework.ServiceReference;
 
-import static org.apache.sling.testing.paxexam.SlingOptions.sling;
-import static org.apache.sling.testing.paxexam.SlingOptions.slingScripting;
-import static org.apache.sling.testing.paxexam.SlingOptions.slingXss;
-import static org.apache.sling.testing.paxexam.SlingOptions.versionResolver;
-import static 
org.apache.sling.testing.paxexam.SlingVersionResolver.SLING_GROUP_ID;
+import static org.apache.sling.testing.paxexam.SlingOptions.eventadmin;
+import static org.apache.sling.testing.paxexam.SlingOptions.scr;
 import static org.junit.Assert.assertEquals;
 import static org.junit.Assert.assertNotNull;
 import static org.junit.Assert.assertTrue;
 import static org.ops4j.pax.exam.CoreOptions.composite;
-import static org.ops4j.pax.exam.CoreOptions.junitBundles;
 import static org.ops4j.pax.exam.CoreOptions.mavenBundle;
 import static org.ops4j.pax.exam.CoreOptions.options;
 import static org.ops4j.pax.exam.CoreOptions.vmOption;
@@ -56,15 +54,11 @@ import static 
org.ops4j.pax.exam.cm.ConfigurationAdminOptions.newConfiguration;
 public class ServletResolverTestSupport extends TestSupport {
 
     @Inject
-    private ResourceResolverFactory resourceResolverFactory;
+    protected ResourceResolverFactory resourceResolverFactory;
 
     @Inject
     protected BundleContext bundleContext;
 
-    @SuppressWarnings("unused")
-    @Inject
-    private SlingRequestProcessor slingRequestProcessor;
-
     public static final String P_PATHS = "sling.servlet.paths";
     public static final String P_RESOURCE_TYPES = 
"sling.servlet.resourceTypes";
     public static final String P_METHODS = "sling.servlet.methods";
@@ -96,37 +90,37 @@ public class ServletResolverTestSupport extends TestSupport 
{
         }
 
         final int httpPort = findFreePort();
-        versionResolver.setVersionFromProject(SLING_GROUP_ID, 
"org.apache.sling.api");
-        versionResolver.setVersionFromProject(SLING_GROUP_ID, 
"org.apache.sling.resourceresolver");
-        versionResolver.setVersionFromProject(SLING_GROUP_ID, 
"org.apache.sling.scripting.core");
-        versionResolver.setVersionFromProject(SLING_GROUP_ID, 
"org.apache.sling.commons.johnzon");
-        versionResolver.setVersionFromProject(SLING_GROUP_ID, 
"org.apache.sling.engine");
-        versionResolver.setVersion(SLING_GROUP_ID, 
"org.apache.sling.auth.core", "1.6.0");
-        versionResolver.setVersion("commons-fileupload", "commons-fileupload", 
"1.5");
         return options(
             composite(
                 when(debugOption != null).useOptions(debugOption),
                 when(vmOption != null).useOptions(vmOption),
                 when(jacocoCommand != null).useOptions(jacocoCommand),
                 baseConfiguration(),
-                sling(),
-                slingScripting(),
-                slingXss(),
+                
mavenBundle().groupId("org.apache.felix").artifactId("org.apache.felix.http.servlet-api").version("3.0.0"),
+                
mavenBundle().groupId("org.apache.felix").artifactId("org.apache.felix.http.jetty12").version("1.0.26"),
+                scr(),
+                eventadmin(),
+                
mavenBundle().groupId("org.osgi").artifactId("org.osgi.util.converter").version("1.0.9"),
+                
mavenBundle().groupId("org.apache.sling").artifactId("org.apache.sling.commons.johnzon").versionAsInProject(),
+                
mavenBundle().groupId("commons-io").artifactId("commons-io").versionAsInProject(),
+                
mavenBundle().groupId("commons-codec").artifactId("commons-codec").version("1.15"),
+                
mavenBundle().groupId("org.apache.commons").artifactId("commons-lang3").versionAsInProject(),
+                
mavenBundle().groupId("org.apache.commons").artifactId("commons-collections4").version("4.4"),
+                
mavenBundle().groupId("org.apache.sling").artifactId("org.apache.sling.commons.mime").versionAsInProject(),
+                
mavenBundle().groupId("org.apache.sling").artifactId("org.apache.sling.commons.osgi").version("2.4.2"),
+                
mavenBundle().groupId("org.apache.sling").artifactId("org.apache.sling.api").versionAsInProject(),
+                
mavenBundle().groupId("org.apache.sling").artifactId("org.apache.sling.scripting.spi").versionAsInProject(),
+                
mavenBundle().groupId("org.apache.sling").artifactId("org.apache.sling.serviceusermapper").versionAsInProject(),
+                
mavenBundle().groupId("org.apache.felix").artifactId("org.apache.felix.healthcheck.api").versionAsInProject(),
+                
mavenBundle().groupId("org.apache.sling").artifactId("org.apache.sling.auth.core").versionAsInProject(),
+                
mavenBundle().groupId("org.apache.sling").artifactId("org.apache.sling.resourceresolver").versionAsInProject(),
+                
mavenBundle().groupId("org.apache.sling").artifactId("org.apache.sling.settings").version("1.4.2"),
+                
mavenBundle().groupId("commons-fileupload").artifactId("commons-fileupload").version("1.5"),
+                
mavenBundle().groupId("org.apache.sling").artifactId("org.apache.sling.engine").versionAsInProject(),
+
                 
factoryConfiguration("org.apache.sling.serviceusermapping.impl.ServiceUserMapperImpl.amended")
                     .put("user.mapping", new 
String[]{"org.apache.sling.servlets.resolver:console=sling-readall", 
"org.apache.sling.servlets.resolver:scripts=sling-scripting"})
                     .asOption(),
-
-                
mavenBundle().groupId("org.osgi").artifactId("org.osgi.util.converter").version("1.0.9"),
 // new Sling API dependency
-                testBundle(),
-                
mavenBundle().groupId("org.apache.sling").artifactId("org.apache.sling.scripting.spi").versionAsInProject(),
-                
mavenBundle().groupId("org.apache.sling").artifactId("org.apache.sling.servlet-helpers").versionAsInProject(),
-                
mavenBundle().groupId("org.glassfish").artifactId("jakarta.json").versionAsInProject(),
-                //
-                
mavenBundle().groupId("commons-codec").artifactId("commons-codec").version("1.15"),
-                //
-                
mavenBundle().groupId("org.apache.felix").artifactId("org.apache.felix.healthcheck.api").versionAsInProject(),
-                //
-                junitBundles(),
                 newConfiguration("org.apache.felix.http")
                     .put("org.osgi.service.http.port", httpPort)
                     .asOption(),
@@ -135,8 +129,12 @@ public class ServletResolverTestSupport extends 
TestSupport {
                     .asOption(),
                 buildBundleWithBnd(
                     TestResourceProvider.class,
-                    TestServiceUserValidator.class
+                    TestServiceUserValidator.class,
+                    ScriptEngineManagerMock.class
                 ),
+
+                testBundle(),
+
                 
newConfiguration("org.apache.sling.jcr.base.internal.LoginAdminWhitelist")
                     .put("whitelist.bundles.regexp", "^PAXEXAM.*$")
                     .asOption(),
@@ -151,38 +149,56 @@ public class ServletResolverTestSupport extends 
TestSupport {
         return testBundle("bundle.filename");
     }
 
-    protected MockSlingHttpServletResponse executeRequest(final String path, 
final int expectedStatus) throws Exception {
+    protected SlingHttpServletResponse createMockSlingHttpServletResponse() {
+        return Builders.newResponseBuilder().build();
+    }
+
+    protected SlingHttpServletResponse executeRequest(final String path, final 
int expectedStatus) throws Exception {
         return executeRequest("GET", path, expectedStatus);
     }
 
-    protected MockSlingHttpServletResponse executeRequest(final String method, 
final String path, final int expectedStatus) throws Exception {
+    protected SlingHttpServletResponse executeRequest(final String method, 
final String path, final int expectedStatus) throws Exception {
         final ResourceResolver resourceResolver = 
resourceResolverFactory.getAdministrativeResourceResolver(null);
         assertNotNull("Expecting ResourceResolver", resourceResolver);
-        final MockSlingHttpServletRequest request = new 
MockSlingHttpServletRequest(resourceResolver) {
+        final Resource resource = new AbstractResource() {
             @Override
-            public String getMethod() {
-                return method;
+            public String getPath() {
+                return path;
+            }
+
+            @Override
+            public @NotNull String getResourceType() {
+                return "foo/bar";
+            }
+
+            @Override
+            public @Nullable String getResourceSuperType() {
+                return null;
+            }
+
+            @Override
+            public @NotNull ResourceMetadata getResourceMetadata() {
+                return new ResourceMetadata();
+            }
+
+            @Override
+            public @NotNull ResourceResolver getResourceResolver() {
+                return resourceResolver;
             }
         };
-        request.setPathInfo(path);
-        final MockSlingHttpServletResponse response = 
createMockSlingHttpServletResponse();
-
-        // Get SlingRequestProcessor.processRequest method and execute request
-        // This module depends on an older version of the sling.engine module 
and I don't want
-        // to change it just for these tests, so using reflection to get the 
processor, as we're
-        // running with a more recent version of sling.engine in the pax exam 
environment
-        final String slingRequestProcessorClassName = 
"org.apache.sling.engine.SlingRequestProcessor";
-        final ServiceReference<?> ref = 
bundleContext.getServiceReference(slingRequestProcessorClassName);
-        assertNotNull("Expecting service:" + slingRequestProcessorClassName, 
ref);
-
-        final Object processor = bundleContext.getService(ref);
+
+        final SlingHttpServletRequest request = Builders
+            .newRequestBuilder(resource)
+            .withRequestMethod(method)
+            .build();
+        final SlingHttpServletResponse response = 
createMockSlingHttpServletResponse();
+
+        final ServiceReference<SlingRequestProcessor> ref = 
bundleContext.getServiceReference(SlingRequestProcessor.class);
+        assertNotNull("Expecting service:" + SlingRequestProcessor.class, ref);
+
+        final SlingRequestProcessor processor = bundleContext.getService(ref);
         try {
-            // void processRequest(javax.servlet.http.HttpServletRequest 
request, javax.servlet.http.HttpServletResponse resource, ResourceResolver 
resourceResolver)
-            final Method processMethod = processor.getClass().getMethod(
-                "processRequest",
-                HttpServletRequest.class, HttpServletResponse.class, 
ResourceResolver.class);
-            assertNotNull("Expecting processRequest method", processMethod);
-            processMethod.invoke(processor, request, response, 
resourceResolver);
+            processor.processRequest(request, response, resourceResolver);
         } finally {
             bundleContext.ungetService(ref);
         }
@@ -195,10 +211,6 @@ public class ServletResolverTestSupport extends 
TestSupport {
         return response;
     }
 
-    protected MockSlingHttpServletResponse 
createMockSlingHttpServletResponse() {
-        return new MockSlingHttpServletResponse();
-    }
-
     protected void assertTestServlet(final String path, int expectedStatus) 
throws Exception {
         assertTestServlet(M_GET, path, expectedStatus);
     }
@@ -212,9 +224,9 @@ public class ServletResolverTestSupport extends TestSupport 
{
     }
 
     protected void assertTestServlet(final String method, final String path, 
final String servletName) throws Exception {
-        final String output = executeRequest(method, path, 
TestServlet.IM_A_TEAPOT).getOutputAsString();
+        final SlingHttpServletResponse response = executeRequest(method, path, 
TestServlet.IM_A_TEAPOT);
+        final String output = ((SlingHttpServletResponseResult) 
response).getOutputAsString();
         final String expected = TestServlet.SERVED_BY_PREFIX + servletName;
         assertTrue("Expecting output to contain " + expected + ", got " + 
output, output.contains(expected));
     }
-
 }
diff --git 
a/src/test/java/org/apache/sling/servlets/resolver/it/ServletResourceIT.java 
b/src/test/java/org/apache/sling/servlets/resolver/it/ServletResourceIT.java
index ee66b13..ebcda66 100644
--- a/src/test/java/org/apache/sling/servlets/resolver/it/ServletResourceIT.java
+++ b/src/test/java/org/apache/sling/servlets/resolver/it/ServletResourceIT.java
@@ -19,13 +19,13 @@
 package org.apache.sling.servlets.resolver.it;
 
 import java.io.FileInputStream;
-import java.io.FileNotFoundException;
+import java.io.IOException;
 import java.util.Dictionary;
 import java.util.Hashtable;
 import java.util.LinkedHashSet;
 import java.util.Set;
+import java.util.jar.JarInputStream;
 
-import javax.inject.Inject;
 import javax.script.ScriptException;
 import javax.servlet.Servlet;
 import javax.servlet.http.HttpServletRequest;
@@ -34,7 +34,6 @@ import javax.servlet.http.HttpServletResponse;
 import org.apache.sling.api.resource.LoginException;
 import org.apache.sling.api.resource.Resource;
 import org.apache.sling.api.resource.ResourceResolver;
-import org.apache.sling.api.resource.ResourceResolverFactory;
 import org.apache.sling.api.servlets.ServletResolverConstants;
 import org.apache.sling.scripting.spi.bundle.BundledRenderUnit;
 import org.apache.sling.scripting.spi.bundle.TypeProvider;
@@ -48,8 +47,8 @@ import org.ops4j.pax.exam.Option;
 import org.ops4j.pax.exam.junit.PaxExam;
 import org.ops4j.pax.exam.spi.reactors.ExamReactorStrategy;
 import org.ops4j.pax.exam.spi.reactors.PerClass;
-import org.ops4j.pax.tinybundles.core.TinyBundle;
-import org.ops4j.pax.tinybundles.core.TinyBundles;
+import org.ops4j.pax.tinybundles.TinyBundle;
+import org.ops4j.pax.tinybundles.TinyBundles;
 import org.osgi.framework.Bundle;
 import org.osgi.framework.BundleContext;
 
@@ -63,19 +62,13 @@ public class ServletResourceIT extends 
ServletResolverTestSupport {
 
     private BundledRenderUnit bundledRenderUnit;
 
-    @Inject
-    private ResourceResolverFactory resourceResolverFactory;
-
-    @Inject
-    private BundleContext bundleContext;
-
     protected Option testBundle() {
         try {
-            TinyBundle bundle = TinyBundles.bundle().read(new 
FileInputStream(System.getProperty("bundle.filename")));
+            TinyBundle bundle = TinyBundles.bundle().readIn(new 
JarInputStream(new FileInputStream(System.getProperty("bundle.filename"))));
             String header = bundle.getHeader("Export-Package");
-            bundle.set("Export-Package", header + 
",org.apache.sling.servlets.resolver.internal.bundle");
+            bundle.setHeader("Export-Package", header + 
",org.apache.sling.servlets.resolver.internal.bundle");
             return streamBundle(bundle.build()).start();
-        } catch (FileNotFoundException e) {
+        } catch (IOException e) {
             throw new RuntimeException(e);
         }
     }
diff --git 
a/src/test/java/org/apache/sling/servlets/resolver/it/TestResourceProvider.java 
b/src/test/java/org/apache/sling/servlets/resolver/it/TestResourceProvider.java
index cec1ca0..518ce34 100644
--- 
a/src/test/java/org/apache/sling/servlets/resolver/it/TestResourceProvider.java
+++ 
b/src/test/java/org/apache/sling/servlets/resolver/it/TestResourceProvider.java
@@ -19,9 +19,7 @@
 package org.apache.sling.servlets.resolver.it;
 
 import java.util.Iterator;
-
 import org.apache.sling.api.resource.Resource;
-import org.apache.sling.spi.resource.provider.ProviderContext;
 import org.apache.sling.spi.resource.provider.ResolveContext;
 import org.apache.sling.spi.resource.provider.ResourceContext;
 import org.apache.sling.spi.resource.provider.ResourceProvider;
@@ -37,9 +35,6 @@ import org.osgi.service.component.annotations.Component;
 )
 public class TestResourceProvider extends ResourceProvider<Void> {
 
-    public TestResourceProvider() {
-    }
-
     @Override
     public @Nullable Resource getResource(@NotNull ResolveContext<Void> ctx, 
@NotNull String path, @NotNull ResourceContext resourceContext, @Nullable 
Resource parent) {
         return null;
@@ -49,20 +44,4 @@ public class TestResourceProvider extends 
ResourceProvider<Void> {
     public @Nullable Iterator<Resource> listChildren(@NotNull 
ResolveContext<Void> ctx, @NotNull Resource parent) {
         return null;
     }
-
-    @Override
-    public void start(@NotNull ProviderContext ctx) {
-        super.start(ctx);
-    }
-
-    @Override
-    public void stop() {
-        super.stop();
-    }
-
-    @Override
-    public void update(long changeSet) {
-        super.update(changeSet);
-    }
-
 }

Reply via email to