You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@sling.apache.org by ju...@apache.org on 2017/05/02 17:01:12 UTC

svn commit: r1793561 - in /sling/trunk/bundles/extensions/healthcheck/core/src: main/java/org/apache/sling/hc/core/impl/servlet/ test/java/org/apache/sling/hc/core/it/

Author: justin
Date: Tue May  2 17:01:12 2017
New Revision: 1793561

URL: http://svn.apache.org/viewvc?rev=1793561&view=rev
Log:
SLING-6803 - ensure that Health Check servlet responds on root path. fix IT

Modified:
    sling/trunk/bundles/extensions/healthcheck/core/src/main/java/org/apache/sling/hc/core/impl/servlet/HealthCheckExecutorServlet.java
    sling/trunk/bundles/extensions/healthcheck/core/src/test/java/org/apache/sling/hc/core/it/HealthCheckServletIT.java
    sling/trunk/bundles/extensions/healthcheck/core/src/test/java/org/apache/sling/hc/core/it/MockHttpService.java

Modified: sling/trunk/bundles/extensions/healthcheck/core/src/main/java/org/apache/sling/hc/core/impl/servlet/HealthCheckExecutorServlet.java
URL: http://svn.apache.org/viewvc/sling/trunk/bundles/extensions/healthcheck/core/src/main/java/org/apache/sling/hc/core/impl/servlet/HealthCheckExecutorServlet.java?rev=1793561&r1=1793560&r2=1793561&view=diff
==============================================================================
--- sling/trunk/bundles/extensions/healthcheck/core/src/main/java/org/apache/sling/hc/core/impl/servlet/HealthCheckExecutorServlet.java (original)
+++ sling/trunk/bundles/extensions/healthcheck/core/src/main/java/org/apache/sling/hc/core/impl/servlet/HealthCheckExecutorServlet.java Tue May  2 17:01:12 2017
@@ -21,6 +21,7 @@ import java.io.IOException;
 import java.io.PrintWriter;
 import java.util.Dictionary;
 import java.util.HashMap;
+import java.util.LinkedHashMap;
 import java.util.List;
 import java.util.Map;
 
@@ -153,7 +154,7 @@ public class HealthCheckExecutorServlet
         this.servletPath = PropertiesUtil.toString(properties.get(PROPERTY_SERVLET_PATH), SERVLET_PATH_DEFAULT);
         this.disabled = PropertiesUtil.toBoolean(properties.get(PROPERTY_DISABLED), false);
 
-        Map<String, HttpServlet> servletsToRegister = new HashMap<String, HttpServlet>();
+        Map<String, HttpServlet> servletsToRegister = new LinkedHashMap<String, HttpServlet>();
         servletsToRegister.put(this.servletPath, this);
         servletsToRegister.put(this.servletPath + "." + FORMAT_HTML, new ProxyServlet(FORMAT_HTML));
         servletsToRegister.put(this.servletPath + "." + FORMAT_JSON, new ProxyServlet(FORMAT_JSON));

Modified: sling/trunk/bundles/extensions/healthcheck/core/src/test/java/org/apache/sling/hc/core/it/HealthCheckServletIT.java
URL: http://svn.apache.org/viewvc/sling/trunk/bundles/extensions/healthcheck/core/src/test/java/org/apache/sling/hc/core/it/HealthCheckServletIT.java?rev=1793561&r1=1793560&r2=1793561&view=diff
==============================================================================
--- sling/trunk/bundles/extensions/healthcheck/core/src/test/java/org/apache/sling/hc/core/it/HealthCheckServletIT.java (original)
+++ sling/trunk/bundles/extensions/healthcheck/core/src/test/java/org/apache/sling/hc/core/it/HealthCheckServletIT.java Tue May  2 17:01:12 2017
@@ -62,15 +62,11 @@ public class HealthCheckServletIT {
     }
     
     private int countServletServices(String packageNamePrefix) throws InvalidSyntaxException {
-        final ServiceReference [] refs = bundleContext.getServiceReferences("javax.servlet.Servlet", null);
+        final List<String> classNames = httpService.getServletClassNames();
         int count = 0;
-        if(refs != null) {
-            for(ServiceReference ref : refs) {
-                final Object o = bundleContext.getService(ref);
-                if(o.getClass().getName().startsWith(packageNamePrefix)) {
-                    count++;
-                }
-                bundleContext.ungetService(ref);
+        for(final String className : classNames) {
+            if(className.startsWith(packageNamePrefix)) {
+                count++;
             }
         }
         return count;
@@ -113,9 +109,11 @@ public class HealthCheckServletIT {
             Thread.sleep(50L);
         }
         
-        assertEquals("After adding configuration, expecting one servlet from " +  packagePrefix, 1, countServletServices(packagePrefix));
+        assertEquals("After adding configuration, expecting five servlets from " +  packagePrefix, 5, countServletServices(packagePrefix));
         final List<String> paths = httpService.getPaths();
-        assertEquals("Expecting one new servlet registration", pathsBefore + 1, paths.size());
-        assertEquals("Expecting the HC servlet to be registered at " + path, path, paths.get(paths.size() - 1));
+        assertEquals("Expecting five new servlet registration", pathsBefore + 5, paths.size());
+        assertEquals("Expecting the HC servlet to be registered at " + path, path, paths.get(paths.size() - 5));
+        assertEquals("Expecting the HTML HC servlet to be registered at " + path + ".html", path + ".html", paths.get(paths.size() - 4));
+        assertEquals("Expecting the JSON HC servlet to be registered at " + path + ".json", path + ".json", paths.get(paths.size() - 3));
     }
 }

Modified: sling/trunk/bundles/extensions/healthcheck/core/src/test/java/org/apache/sling/hc/core/it/MockHttpService.java
URL: http://svn.apache.org/viewvc/sling/trunk/bundles/extensions/healthcheck/core/src/test/java/org/apache/sling/hc/core/it/MockHttpService.java?rev=1793561&r1=1793560&r2=1793561&view=diff
==============================================================================
--- sling/trunk/bundles/extensions/healthcheck/core/src/test/java/org/apache/sling/hc/core/it/MockHttpService.java (original)
+++ sling/trunk/bundles/extensions/healthcheck/core/src/test/java/org/apache/sling/hc/core/it/MockHttpService.java Tue May  2 17:01:12 2017
@@ -30,6 +30,8 @@ import org.osgi.service.http.HttpService
 class MockHttpService implements HttpService {
 
     private List<String> paths = new ArrayList<String>();
+
+    private List<String> classNames = new ArrayList<String>();
             
     @Override
     public void registerResources(String alias, String name, HttpContext context) {
@@ -38,6 +40,7 @@ class MockHttpService implements HttpSer
     @Override
     public void registerServlet(String alias, Servlet servlet, Dictionary initparams, HttpContext context) {
         paths.add(alias);
+        classNames.add(servlet.getClass().getName());
     }
 
     public void unregister(String alias) {
@@ -52,4 +55,8 @@ class MockHttpService implements HttpSer
     List<String> getPaths() {
         return Collections.unmodifiableList(paths);
     }
+
+    List<String> getServletClassNames() {
+        return Collections.unmodifiableList(classNames);
+    }
 }