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,