You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@sling.apache.org by cz...@apache.org on 2017/08/21 05:19:22 UTC

svn commit: r1805598 - in /sling/trunk/bundles/servlets/resolver: pom.xml src/main/java/org/apache/sling/servlets/resolver/internal/SlingServletResolver.java src/test/java/org/apache/sling/servlets/resolver/internal/SlingServletResolverTest.java

Author: cziegeler
Date: Mon Aug 21 05:19:22 2017
New Revision: 1805598

URL: http://svn.apache.org/viewvc?rev=1805598&view=rev
Log:
SLING-7065 : Servlet providers should be registered on behalf of the extended bundle

Modified:
    sling/trunk/bundles/servlets/resolver/pom.xml
    sling/trunk/bundles/servlets/resolver/src/main/java/org/apache/sling/servlets/resolver/internal/SlingServletResolver.java
    sling/trunk/bundles/servlets/resolver/src/test/java/org/apache/sling/servlets/resolver/internal/SlingServletResolverTest.java

Modified: sling/trunk/bundles/servlets/resolver/pom.xml
URL: http://svn.apache.org/viewvc/sling/trunk/bundles/servlets/resolver/pom.xml?rev=1805598&r1=1805597&r2=1805598&view=diff
==============================================================================
--- sling/trunk/bundles/servlets/resolver/pom.xml (original)
+++ sling/trunk/bundles/servlets/resolver/pom.xml Mon Aug 21 05:19:22 2017
@@ -159,8 +159,10 @@
             <artifactId>slf4j-simple</artifactId>
         </dependency>
         <dependency>
-            <groupId>org.jmock</groupId>
-            <artifactId>jmock-junit4</artifactId>
+            <groupId>org.mockito</groupId>
+            <artifactId>mockito-all</artifactId>
+            <version>1.10.19</version>
+            <scope>test</scope>
         </dependency>
     </dependencies>
 </project>

Modified: sling/trunk/bundles/servlets/resolver/src/main/java/org/apache/sling/servlets/resolver/internal/SlingServletResolver.java
URL: http://svn.apache.org/viewvc/sling/trunk/bundles/servlets/resolver/src/main/java/org/apache/sling/servlets/resolver/internal/SlingServletResolver.java?rev=1805598&r1=1805597&r2=1805598&view=diff
==============================================================================
--- sling/trunk/bundles/servlets/resolver/src/main/java/org/apache/sling/servlets/resolver/internal/SlingServletResolver.java (original)
+++ sling/trunk/bundles/servlets/resolver/src/main/java/org/apache/sling/servlets/resolver/internal/SlingServletResolver.java Mon Aug 21 05:19:22 2017
@@ -999,25 +999,26 @@ public class SlingServletResolver
         try {
             servlet.init(new SlingServletConfig(servletContext, reference, name));
             LOGGER.debug("bindServlet: Servlet {} initialized", name);
-        } catch (ServletException ce) {
+        } catch (final ServletException ce) {
             LOGGER.error("bindServlet: Servlet " + ServletResourceProviderFactory.getServiceReferenceInfo(reference) + " failed to initialize", ce);
             return false;
-        } catch (Throwable t) {
+        } catch (final Throwable t) {
             LOGGER.error("bindServlet: Unexpected problem initializing servlet " + ServletResourceProviderFactory.getServiceReferenceInfo(reference), t);
             return false;
         }
 
+        final BundleContext bundleContext = reference.getBundle().getBundleContext();
         final List<ServiceRegistration<ResourceProvider<Object>>> regs = new ArrayList<>();
         for(final String root : provider.getServletPaths()) {
             @SuppressWarnings("unchecked")
-            final ServiceRegistration<ResourceProvider<Object>> reg = (ServiceRegistration<ResourceProvider<Object>>) context.registerService(
+            final ServiceRegistration<ResourceProvider<Object>> reg = (ServiceRegistration<ResourceProvider<Object>>) bundleContext.registerService(
                 ResourceProvider.class.getName(),
                 provider,
                 createServiceProperties(reference, provider, root));
             regs.add(reg);
         }
         if ( LOGGER.isDebugEnabled() ) {
-            LOGGER.debug("Registered {}", provider.toString());
+            LOGGER.debug("Registered {}", provider);
         }
         synchronized (this.servletsByReference) {
             servletsByReference.put(reference, new ServletReg(servlet, regs));

Modified: sling/trunk/bundles/servlets/resolver/src/test/java/org/apache/sling/servlets/resolver/internal/SlingServletResolverTest.java
URL: http://svn.apache.org/viewvc/sling/trunk/bundles/servlets/resolver/src/test/java/org/apache/sling/servlets/resolver/internal/SlingServletResolverTest.java?rev=1805598&r1=1805597&r2=1805598&view=diff
==============================================================================
--- sling/trunk/bundles/servlets/resolver/src/test/java/org/apache/sling/servlets/resolver/internal/SlingServletResolverTest.java (original)
+++ sling/trunk/bundles/servlets/resolver/src/test/java/org/apache/sling/servlets/resolver/internal/SlingServletResolverTest.java Mon Aug 21 05:19:22 2017
@@ -41,8 +41,6 @@ import org.apache.sling.api.resource.Res
 import org.apache.sling.api.resource.ResourceUtil;
 import org.apache.sling.api.servlets.OptingServlet;
 import org.apache.sling.api.servlets.ServletResolverConstants;
-import org.apache.sling.commons.testing.osgi.MockBundle;
-import org.apache.sling.commons.testing.osgi.MockBundleContext;
 import org.apache.sling.commons.testing.osgi.MockServiceReference;
 import org.apache.sling.commons.testing.sling.MockResource;
 import org.apache.sling.commons.testing.sling.MockResourceResolver;
@@ -50,21 +48,16 @@ import org.apache.sling.commons.testing.
 import org.apache.sling.servlets.resolver.internal.resource.MockServletResource;
 import org.apache.sling.servlets.resolver.internal.resource.ServletResourceProvider;
 import org.apache.sling.servlets.resolver.internal.resource.ServletResourceProviderFactory;
-import org.jmock.Mockery;
-import org.jmock.integration.junit4.JMock;
-import org.jmock.integration.junit4.JUnit4Mockery;
 import org.junit.Before;
 import org.junit.Test;
-import org.junit.runner.RunWith;
+import org.mockito.Mockito;
+import org.osgi.framework.Bundle;
+import org.osgi.framework.BundleContext;
 import org.osgi.framework.Constants;
 import org.osgi.framework.ServiceReference;
-import org.osgi.framework.ServiceRegistration;
 
-@RunWith(JMock.class)
 public class SlingServletResolverTest {
 
-    protected final Mockery context = new JUnit4Mockery();
-
     private Servlet servlet;
 
     private SlingServletResolver servletResolver;
@@ -141,18 +134,12 @@ public class SlingServletResolverTest {
         resolverField.setAccessible(true);
         resolverField.set(servletResolver, factory);
 
-        MockBundle bundle = new MockBundle(1L);
-        MockBundleContext bundleContext = new MockBundleContext(bundle) {
-            @Override
-            public ServiceRegistration registerService(String s, Object o, Dictionary dictionary) {
-                return null;
-            }
+        final Bundle bundle = Mockito.mock(Bundle.class);
+        Mockito.when(bundle.getBundleId()).thenReturn(1L);
+
+        final BundleContext bundleContext = Mockito.mock(BundleContext.class);
+        Mockito.when(bundle.getBundleContext()).thenReturn(bundleContext);
 
-            @Override
-            public ServiceRegistration registerService(String[] strings, Object o, Dictionary dictionary) {
-                return null;
-            }
-        };
         MockServiceReference serviceReference = new MockServiceReference(bundle);
         serviceReference.setProperty(Constants.SERVICE_ID, 1L);
         serviceReference.setProperty(ServletResolverConstants.SLING_SERVLET_NAME,