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);
+ }
}