public class com.codahale.metrics.servlets.HealthCheckServlet extends javax.servlet.http.HttpServlet
{
public static final java.lang.String HEALTH_CHECK_REGISTRY;
public static final java.lang.String HEALTH_CHECK_EXECUTOR;
public static final java.lang.String HEALTH_CHECK_FILTER;
public static final java.lang.String HEALTH_CHECK_MAPPER;
public static final java.lang.String HEALTH_CHECK_HTTP_STATUS_INDICATOR;
private static final long serialVersionUID;
private static final java.lang.String CONTENT_TYPE;
private static final java.lang.String HTTP_STATUS_INDICATOR_PARAM;
private transient com.codahale.metrics.health.HealthCheckRegistry registry;
private transient java.util.concurrent.ExecutorService executorService;
private transient com.codahale.metrics.health.HealthCheckFilter filter;
private transient com.fasterxml.jackson.databind.ObjectMapper mapper;
private transient boolean httpStatusIndicator;
public void <init>()
{
com.codahale.metrics.servlets.HealthCheckServlet v;
v := @this: com.codahale.metrics.servlets.HealthCheckServlet;
specialinvoke v.<javax.servlet.http.HttpServlet: void <init>()>();
return;
}
public void <init>(com.codahale.metrics.health.HealthCheckRegistry)
{
com.codahale.metrics.health.HealthCheckRegistry v;
com.codahale.metrics.servlets.HealthCheckServlet v;
v := @this: com.codahale.metrics.servlets.HealthCheckServlet;
v := @parameter: com.codahale.metrics.health.HealthCheckRegistry;
specialinvoke v.<javax.servlet.http.HttpServlet: void <init>()>();
v.<com.codahale.metrics.servlets.HealthCheckServlet: com.codahale.metrics.health.HealthCheckRegistry registry> = v;
return;
}
public void init(javax.servlet.ServletConfig) throws javax.servlet.ServletException
{
javax.servlet.ServletException v;
com.codahale.metrics.health.HealthCheckRegistry v;
java.lang.String v, v, v, v, v;
boolean v, v, v, v, v, v;
javax.servlet.ServletConfig v;
com.fasterxml.jackson.databind.ObjectMapper v, v;
com.codahale.metrics.json.HealthCheckModule v;
com.codahale.metrics.health.HealthCheckFilter v, v;
com.codahale.metrics.servlets.HealthCheckServlet v;
java.lang.Object v, v, v, v, v;
javax.servlet.ServletContext v;
v := @this: com.codahale.metrics.servlets.HealthCheckServlet;
v := @parameter: javax.servlet.ServletConfig;
specialinvoke v.<javax.servlet.http.HttpServlet: void init(javax.servlet.ServletConfig)>(v);
v = interfaceinvoke v.<javax.servlet.ServletConfig: javax.servlet.ServletContext getServletContext()>();
v = v.<com.codahale.metrics.servlets.HealthCheckServlet: com.codahale.metrics.health.HealthCheckRegistry registry>;
if null != v goto label;
v = <com.codahale.metrics.servlets.HealthCheckServlet: java.lang.String HEALTH_CHECK_REGISTRY>;
v = interfaceinvoke v.<javax.servlet.ServletContext: java.lang.Object getAttribute(java.lang.String)>(v);
v = v instanceof com.codahale.metrics.health.HealthCheckRegistry;
if v == 0 goto label;
v.<com.codahale.metrics.servlets.HealthCheckServlet: com.codahale.metrics.health.HealthCheckRegistry registry> = v;
goto label;
label:
v = new javax.servlet.ServletException;
specialinvoke v.<javax.servlet.ServletException: void <init>(java.lang.String)>("Couldn\'t find a HealthCheckRegistry instance.");
throw v;
label:
v = <com.codahale.metrics.servlets.HealthCheckServlet: java.lang.String HEALTH_CHECK_EXECUTOR>;
v = interfaceinvoke v.<javax.servlet.ServletContext: java.lang.Object getAttribute(java.lang.String)>(v);
v = v instanceof java.util.concurrent.ExecutorService;
if v == 0 goto label;
v.<com.codahale.metrics.servlets.HealthCheckServlet: java.util.concurrent.ExecutorService executorService> = v;
label:
v = <com.codahale.metrics.servlets.HealthCheckServlet: java.lang.String HEALTH_CHECK_FILTER>;
v = interfaceinvoke v.<javax.servlet.ServletContext: java.lang.Object getAttribute(java.lang.String)>(v);
v = v instanceof com.codahale.metrics.health.HealthCheckFilter;
if v == 0 goto label;
v.<com.codahale.metrics.servlets.HealthCheckServlet: com.codahale.metrics.health.HealthCheckFilter filter> = v;
label:
v = v.<com.codahale.metrics.servlets.HealthCheckServlet: com.codahale.metrics.health.HealthCheckFilter filter>;
if v != null goto label;
v = <com.codahale.metrics.health.HealthCheckFilter: com.codahale.metrics.health.HealthCheckFilter ALL>;
v.<com.codahale.metrics.servlets.HealthCheckServlet: com.codahale.metrics.health.HealthCheckFilter filter> = v;
label:
v = <com.codahale.metrics.servlets.HealthCheckServlet: java.lang.String HEALTH_CHECK_MAPPER>;
v = interfaceinvoke v.<javax.servlet.ServletContext: java.lang.Object getAttribute(java.lang.String)>(v);
v = v instanceof com.fasterxml.jackson.databind.ObjectMapper;
if v == 0 goto label;
v.<com.codahale.metrics.servlets.HealthCheckServlet: com.fasterxml.jackson.databind.ObjectMapper mapper> = v;
goto label;
label:
v = new com.fasterxml.jackson.databind.ObjectMapper;
specialinvoke v.<com.fasterxml.jackson.databind.ObjectMapper: void <init>()>();
v.<com.codahale.metrics.servlets.HealthCheckServlet: com.fasterxml.jackson.databind.ObjectMapper mapper> = v;
label:
v = v.<com.codahale.metrics.servlets.HealthCheckServlet: com.fasterxml.jackson.databind.ObjectMapper mapper>;
v = new com.codahale.metrics.json.HealthCheckModule;
specialinvoke v.<com.codahale.metrics.json.HealthCheckModule: void <init>()>();
virtualinvoke v.<com.fasterxml.jackson.databind.ObjectMapper: com.fasterxml.jackson.databind.ObjectMapper registerModule(com.fasterxml.jackson.databind.Module)>(v);
v = <com.codahale.metrics.servlets.HealthCheckServlet: java.lang.String HEALTH_CHECK_HTTP_STATUS_INDICATOR>;
v = interfaceinvoke v.<javax.servlet.ServletContext: java.lang.Object getAttribute(java.lang.String)>(v);
v = v instanceof java.lang.Boolean;
if v == 0 goto label;
v = virtualinvoke v.<java.lang.Boolean: boolean booleanValue()>();
v.<com.codahale.metrics.servlets.HealthCheckServlet: boolean httpStatusIndicator> = v;
goto label;
label:
v.<com.codahale.metrics.servlets.HealthCheckServlet: boolean httpStatusIndicator> = 1;
label:
return;
}
public void destroy()
{
com.codahale.metrics.health.HealthCheckRegistry v;
com.codahale.metrics.servlets.HealthCheckServlet v;
v := @this: com.codahale.metrics.servlets.HealthCheckServlet;
specialinvoke v.<javax.servlet.http.HttpServlet: void destroy()>();
v = v.<com.codahale.metrics.servlets.HealthCheckServlet: com.codahale.metrics.health.HealthCheckRegistry registry>;
virtualinvoke v.<com.codahale.metrics.health.HealthCheckRegistry: void shutdown()>();
return;
}
protected void doGet(javax.servlet.http.HttpServletRequest, javax.servlet.http.HttpServletResponse) throws javax.servlet.ServletException, java.io.IOException
{
java.lang.Throwable v;
com.fasterxml.jackson.databind.ObjectWriter v;
javax.servlet.http.HttpServletResponse v;
com.codahale.metrics.servlets.HealthCheckServlet v;
javax.servlet.http.HttpServletRequest v;
javax.servlet.ServletOutputStream v;
java.lang.String v;
java.util.SortedMap v;
boolean v, v, v, v;
v := @this: com.codahale.metrics.servlets.HealthCheckServlet;
v := @parameter: javax.servlet.http.HttpServletRequest;
v := @parameter: javax.servlet.http.HttpServletResponse;
v = specialinvoke v.<com.codahale.metrics.servlets.HealthCheckServlet: java.util.SortedMap runHealthChecks()>();
interfaceinvoke v.<javax.servlet.http.HttpServletResponse: void setContentType(java.lang.String)>("application/json");
interfaceinvoke v.<javax.servlet.http.HttpServletResponse: void setHeader(java.lang.String,java.lang.String)>("Cache-Control", "must-revalidate,no-cache,no-store");
v = interfaceinvoke v.<java.util.SortedMap: boolean isEmpty()>();
if v == 0 goto label;
interfaceinvoke v.<javax.servlet.http.HttpServletResponse: void setStatus(int)>(501);
goto label;
label:
v = interfaceinvoke v.<javax.servlet.http.HttpServletRequest: java.lang.String getParameter(java.lang.String)>("httpStatusIndicator");
v = staticinvoke <java.lang.Boolean: boolean parseBoolean(java.lang.String)>(v);
if v != null goto label;
v = v.<com.codahale.metrics.servlets.HealthCheckServlet: boolean httpStatusIndicator>;
goto label;
label:
v = v;
label:
if v == 0 goto label;
v = staticinvoke <com.codahale.metrics.servlets.HealthCheckServlet: boolean isAllHealthy(java.util.Map)>(v);
if v == 0 goto label;
label:
interfaceinvoke v.<javax.servlet.http.HttpServletResponse: void setStatus(int)>(200);
goto label;
label:
interfaceinvoke v.<javax.servlet.http.HttpServletResponse: void setStatus(int)>(500);
label:
v = interfaceinvoke v.<javax.servlet.http.HttpServletResponse: javax.servlet.ServletOutputStream getOutputStream()>();
label:
v = specialinvoke v.<com.codahale.metrics.servlets.HealthCheckServlet: com.fasterxml.jackson.databind.ObjectWriter getWriter(javax.servlet.http.HttpServletRequest)>(v);
virtualinvoke v.<com.fasterxml.jackson.databind.ObjectWriter: void writeValue(java.io.OutputStream,java.lang.Object)>(v, v);
label:
if v == null goto label;
virtualinvoke v.<java.io.OutputStream: void close()>();
goto label;
label:
v := @caughtexception;
throw v;
label:
return;
catch java.lang.Throwable from label to label with label;
}
private com.fasterxml.jackson.databind.ObjectWriter getWriter(javax.servlet.http.HttpServletRequest)
{
com.fasterxml.jackson.databind.ObjectWriter v, v;
com.fasterxml.jackson.databind.ObjectMapper v, v;
com.codahale.metrics.servlets.HealthCheckServlet v;
javax.servlet.http.HttpServletRequest v;
java.lang.String v;
boolean v;
v := @this: com.codahale.metrics.servlets.HealthCheckServlet;
v := @parameter: javax.servlet.http.HttpServletRequest;
v = interfaceinvoke v.<javax.servlet.http.HttpServletRequest: java.lang.String getParameter(java.lang.String)>("pretty");
v = staticinvoke <java.lang.Boolean: boolean parseBoolean(java.lang.String)>(v);
if v == 0 goto label;
v = v.<com.codahale.metrics.servlets.HealthCheckServlet: com.fasterxml.jackson.databind.ObjectMapper mapper>;
v = virtualinvoke v.<com.fasterxml.jackson.databind.ObjectMapper: com.fasterxml.jackson.databind.ObjectWriter writerWithDefaultPrettyPrinter()>();
return v;
label:
v = v.<com.codahale.metrics.servlets.HealthCheckServlet: com.fasterxml.jackson.databind.ObjectMapper mapper>;
v = virtualinvoke v.<com.fasterxml.jackson.databind.ObjectMapper: com.fasterxml.jackson.databind.ObjectWriter writer()>();
return v;
}
private java.util.SortedMap runHealthChecks()
{
com.codahale.metrics.health.HealthCheckFilter v, v;
com.codahale.metrics.servlets.HealthCheckServlet v;
com.codahale.metrics.health.HealthCheckRegistry v, v;
java.util.SortedMap v, v;
java.util.concurrent.ExecutorService v, v;
v := @this: com.codahale.metrics.servlets.HealthCheckServlet;
v = v.<com.codahale.metrics.servlets.HealthCheckServlet: java.util.concurrent.ExecutorService executorService>;
if v != null goto label;
v = v.<com.codahale.metrics.servlets.HealthCheckServlet: com.codahale.metrics.health.HealthCheckRegistry registry>;
v = v.<com.codahale.metrics.servlets.HealthCheckServlet: com.codahale.metrics.health.HealthCheckFilter filter>;
v = virtualinvoke v.<com.codahale.metrics.health.HealthCheckRegistry: java.util.SortedMap runHealthChecks(com.codahale.metrics.health.HealthCheckFilter)>(v);
return v;
label:
v = v.<com.codahale.metrics.servlets.HealthCheckServlet: com.codahale.metrics.health.HealthCheckRegistry registry>;
v = v.<com.codahale.metrics.servlets.HealthCheckServlet: java.util.concurrent.ExecutorService executorService>;
v = v.<com.codahale.metrics.servlets.HealthCheckServlet: com.codahale.metrics.health.HealthCheckFilter filter>;
v = virtualinvoke v.<com.codahale.metrics.health.HealthCheckRegistry: java.util.SortedMap runHealthChecks(java.util.concurrent.ExecutorService,com.codahale.metrics.health.HealthCheckFilter)>(v, v);
return v;
}
private static boolean isAllHealthy(java.util.Map)
{
java.util.Iterator v;
java.util.Collection v;
java.util.Map v;
java.lang.Object v;
boolean v, v;
v := @parameter: java.util.Map;
v = interfaceinvoke v.<java.util.Map: java.util.Collection values()>();
v = interfaceinvoke v.<java.util.Collection: java.util.Iterator iterator()>();
label:
v = interfaceinvoke v.<java.util.Iterator: boolean hasNext()>();
if v == 0 goto label;
v = interfaceinvoke v.<java.util.Iterator: java.lang.Object next()>();
v = virtualinvoke v.<com.codahale.metrics.health.HealthCheck$Result: boolean isHealthy()>();
if v != 0 goto label;
return 0;
label:
return 1;
}
com.fasterxml.jackson.databind.ObjectMapper getMapper()
{
com.fasterxml.jackson.databind.ObjectMapper v;
com.codahale.metrics.servlets.HealthCheckServlet v;
v := @this: com.codahale.metrics.servlets.HealthCheckServlet;
v = v.<com.codahale.metrics.servlets.HealthCheckServlet: com.fasterxml.jackson.databind.ObjectMapper mapper>;
return v;
}
static void <clinit>()
{
java.lang.Class v, v, v, v, v;
java.lang.String v, v, v, v, v, v, v, v, v, v;
v = class "Lcom/codahale/metrics/servlets/HealthCheckServlet;";
v = virtualinvoke v.<java.lang.Class: java.lang.String getCanonicalName()>();
v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (java.lang.String)>(v) <java.lang.invoke.StringConcatFactory: java.lang.invoke.CallSite makeConcatWithConstants(java.lang.invoke.MethodHandles$Lookup,java.lang.String,java.lang.invoke.MethodType,java.lang.String,java.lang.Object[])>("\u.registry");
<com.codahale.metrics.servlets.HealthCheckServlet: java.lang.String HEALTH_CHECK_REGISTRY> = v;
v = class "Lcom/codahale/metrics/servlets/HealthCheckServlet;";
v = virtualinvoke v.<java.lang.Class: java.lang.String getCanonicalName()>();
v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (java.lang.String)>(v) <java.lang.invoke.StringConcatFactory: java.lang.invoke.CallSite makeConcatWithConstants(java.lang.invoke.MethodHandles$Lookup,java.lang.String,java.lang.invoke.MethodType,java.lang.String,java.lang.Object[])>("\u.executor");
<com.codahale.metrics.servlets.HealthCheckServlet: java.lang.String HEALTH_CHECK_EXECUTOR> = v;
v = class "Lcom/codahale/metrics/servlets/HealthCheckServlet;";
v = virtualinvoke v.<java.lang.Class: java.lang.String getCanonicalName()>();
v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (java.lang.String)>(v) <java.lang.invoke.StringConcatFactory: java.lang.invoke.CallSite makeConcatWithConstants(java.lang.invoke.MethodHandles$Lookup,java.lang.String,java.lang.invoke.MethodType,java.lang.String,java.lang.Object[])>("\u.healthCheckFilter");
<com.codahale.metrics.servlets.HealthCheckServlet: java.lang.String HEALTH_CHECK_FILTER> = v;
v = class "Lcom/codahale/metrics/servlets/HealthCheckServlet;";
v = virtualinvoke v.<java.lang.Class: java.lang.String getCanonicalName()>();
v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (java.lang.String)>(v) <java.lang.invoke.StringConcatFactory: java.lang.invoke.CallSite makeConcatWithConstants(java.lang.invoke.MethodHandles$Lookup,java.lang.String,java.lang.invoke.MethodType,java.lang.String,java.lang.Object[])>("\u.mapper");
<com.codahale.metrics.servlets.HealthCheckServlet: java.lang.String HEALTH_CHECK_MAPPER> = v;
v = class "Lcom/codahale/metrics/servlets/HealthCheckServlet;";
v = virtualinvoke v.<java.lang.Class: java.lang.String getCanonicalName()>();
v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (java.lang.String)>(v) <java.lang.invoke.StringConcatFactory: java.lang.invoke.CallSite makeConcatWithConstants(java.lang.invoke.MethodHandles$Lookup,java.lang.String,java.lang.invoke.MethodType,java.lang.String,java.lang.Object[])>("\u.httpStatusIndicator");
<com.codahale.metrics.servlets.HealthCheckServlet: java.lang.String HEALTH_CHECK_HTTP_STATUS_INDICATOR> = v;
return;
}
}