Added more tests
diff --git a/pom.xml b/pom.xml
index b3b377b..61feb4a 100644
--- a/pom.xml
+++ b/pom.xml
@@ -331,6 +331,16 @@
                                                 </limit>
                                             </limits>
                                         </rule>
+                                        <rule>
+                                            <element>CLASS</element>
+                                            <limits>
+                                                <limit>
+                                                    <counter>INSTRUCTION</counter>
+                                                    <value>COVEREDRATIO</value>
+                                                    <minimum>0.80</minimum>
+                                                </limit>
+                                            </limits>
+                                        </rule>
                                     </rules>
                                 </configuration>
                             </execution>
diff --git a/src/main/java/org/apache/sling/scripting/resolver/internal/BundledScriptTracker.java b/src/main/java/org/apache/sling/scripting/resolver/internal/BundledScriptTracker.java
index 36e6403..afb7f17 100644
--- a/src/main/java/org/apache/sling/scripting/resolver/internal/BundledScriptTracker.java
+++ b/src/main/java/org/apache/sling/scripting/resolver/internal/BundledScriptTracker.java
@@ -96,14 +96,14 @@
     private volatile Map<String, ServiceRegistration<Servlet>> m_dispatchers = new HashMap<>();
 
     @Activate
-    private void activate(BundleContext context) {
+    protected void activate(BundleContext context) {
         m_context = context;
         m_tracker = new BundleTracker<>(context, Bundle.ACTIVE, this);
         m_tracker.open();
     }
 
     @Deactivate
-    private void deactivate() {
+    protected void deactivate() {
         m_tracker.close();
     }
 
diff --git a/src/main/java/org/apache/sling/scripting/resolver/internal/RequestWrapper.java b/src/main/java/org/apache/sling/scripting/resolver/internal/RequestWrapper.java
index be706df..a0d7243 100644
--- a/src/main/java/org/apache/sling/scripting/resolver/internal/RequestWrapper.java
+++ b/src/main/java/org/apache/sling/scripting/resolver/internal/RequestWrapper.java
@@ -43,11 +43,7 @@
             return null;
         }
         if (StringUtils.isEmpty(options.getForceResourceType())) {
-            if (!StringUtils.isEmpty(resource.getResourceType())) {
-                options.setForceResourceType(resource.getResourceType());
-            } else if (!StringUtils.isEmpty(resource.getResourceSuperType())) {
-                options.setForceResourceType(resource.getResourceSuperType());
-            }
+            options.setForceResourceType(resource.getResourceType());
         }
         RequestDispatcherOptions processedOptions = processOptions(options);
         return super.getRequestDispatcher(resource, processedOptions);
diff --git a/src/test/java/org/apache/sling/scripting/resolver/internal/BundledScriptTrackerTest.java b/src/test/java/org/apache/sling/scripting/resolver/internal/BundledScriptTrackerTest.java
new file mode 100644
index 0000000..4a0008d
--- /dev/null
+++ b/src/test/java/org/apache/sling/scripting/resolver/internal/BundledScriptTrackerTest.java
@@ -0,0 +1,47 @@
+/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ ~ 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.scripting.resolver.internal;
+
+import java.util.ArrayList;
+import java.util.List;
+
+import javax.servlet.Servlet;
+
+import org.junit.Test;
+import org.osgi.framework.Bundle;
+import org.osgi.framework.BundleContext;
+import org.osgi.framework.BundleEvent;
+import org.osgi.framework.ServiceRegistration;
+
+import static org.mockito.Mockito.mock;
+import static org.mockito.Mockito.verify;
+
+public class BundledScriptTrackerTest {
+
+    @Test
+    public void removedBundle() {
+        BundledScriptTracker tracker = new BundledScriptTracker();
+        tracker.activate(mock(BundleContext.class));
+        List<ServiceRegistration<Servlet>> registrations = new ArrayList<>();
+        ServiceRegistration<Servlet> registration = mock(ServiceRegistration.class);
+        registrations.add(registration);
+        tracker.removedBundle(mock(Bundle.class), mock(BundleEvent.class), registrations);
+        verify(registration).unregister();
+    }
+}