public class org.apache.helix.rest.server.HelixRestServer extends java.lang.Object
{
private static org.slf4j.Logger LOG;
private static final java.lang.String REST_DOMAIN;
private static final java.lang.String CORS_ENABLED;
public static javax.net.ssl.SSLContext REST_SERVER_SSL_CONTEXT;
private int _port;
private java.lang.String _urlPrefix;
private org.eclipse.jetty.server.Server _server;
private java.util.List _jmxReporterList;
private java.util.List _helixNamespaces;
private org.eclipse.jetty.servlet.ServletContextHandler _servletContextHandler;
private java.util.List _auditLoggers;
private org.apache.helix.rest.server.authValidator.AuthValidator _clusterAuthValidator;
private org.apache.helix.rest.server.authValidator.AuthValidator _namespaceAuthValidator;
private java.util.Map _resourceConfigMap;
public void <init>(java.lang.String, int, java.lang.String)
{
java.util.List v;
org.apache.helix.rest.server.HelixRestServer v;
int v;
java.lang.String v, v;
v := @this: org.apache.helix.rest.server.HelixRestServer;
v := @parameter: java.lang.String;
v := @parameter: int;
v := @parameter: java.lang.String;
v = staticinvoke <java.util.Collections: java.util.List emptyList()>();
specialinvoke v.<org.apache.helix.rest.server.HelixRestServer: void <init>(java.lang.String,int,java.lang.String,java.util.List)>(v, v, v, v);
return;
}
public void <init>(java.lang.String, int, java.lang.String, java.util.List)
{
java.util.ArrayList v;
java.util.List v;
org.apache.helix.rest.common.HelixRestNamespace v;
org.apache.helix.rest.server.HelixRestServer v;
int v;
java.lang.String v, v;
org.apache.helix.rest.common.HelixRestNamespace$HelixMetadataStoreType v;
v := @this: org.apache.helix.rest.server.HelixRestServer;
v := @parameter: java.lang.String;
v := @parameter: int;
v := @parameter: java.lang.String;
v := @parameter: java.util.List;
specialinvoke v.<java.lang.Object: void <init>()>();
v = new java.util.ArrayList;
specialinvoke v.<java.util.ArrayList: void <init>()>();
v = new org.apache.helix.rest.common.HelixRestNamespace;
v = <org.apache.helix.rest.common.HelixRestNamespace$HelixMetadataStoreType: org.apache.helix.rest.common.HelixRestNamespace$HelixMetadataStoreType ZOOKEEPER>;
specialinvoke v.<org.apache.helix.rest.common.HelixRestNamespace: void <init>(java.lang.String,org.apache.helix.rest.common.HelixRestNamespace$HelixMetadataStoreType,java.lang.String,boolean)>("default", v, v, 1);
virtualinvoke v.<java.util.ArrayList: boolean add(java.lang.Object)>(v);
specialinvoke v.<org.apache.helix.rest.server.HelixRestServer: void init(java.util.List,int,java.lang.String,java.util.List)>(v, v, v, v);
return;
}
public void <init>(java.util.List, int, java.lang.String, java.util.List)
{
java.util.List v, v;
org.apache.helix.rest.server.HelixRestServer v;
int v;
java.lang.String v;
v := @this: org.apache.helix.rest.server.HelixRestServer;
v := @parameter: java.util.List;
v := @parameter: int;
v := @parameter: java.lang.String;
v := @parameter: java.util.List;
specialinvoke v.<java.lang.Object: void <init>()>();
specialinvoke v.<org.apache.helix.rest.server.HelixRestServer: void init(java.util.List,int,java.lang.String,java.util.List)>(v, v, v, v);
return;
}
public void <init>(java.util.List, int, java.lang.String, java.util.List, org.apache.helix.rest.server.authValidator.AuthValidator, org.apache.helix.rest.server.authValidator.AuthValidator)
{
java.util.List v, v;
org.apache.helix.rest.server.authValidator.AuthValidator v, v;
org.apache.helix.rest.server.HelixRestServer v;
int v;
java.lang.String v;
v := @this: org.apache.helix.rest.server.HelixRestServer;
v := @parameter: java.util.List;
v := @parameter: int;
v := @parameter: java.lang.String;
v := @parameter: java.util.List;
v := @parameter: org.apache.helix.rest.server.authValidator.AuthValidator;
v := @parameter: org.apache.helix.rest.server.authValidator.AuthValidator;
specialinvoke v.<java.lang.Object: void <init>()>();
specialinvoke v.<org.apache.helix.rest.server.HelixRestServer: void init(java.util.List,int,java.lang.String,java.util.List,org.apache.helix.rest.server.authValidator.AuthValidator,org.apache.helix.rest.server.authValidator.AuthValidator)>(v, v, v, v, v, v);
return;
}
private void init(java.util.List, int, java.lang.String, java.util.List)
{
java.util.List v, v;
org.apache.helix.rest.server.authValidator.NoopAuthValidator v, v;
org.apache.helix.rest.server.HelixRestServer v;
int v;
java.lang.String v;
v := @this: org.apache.helix.rest.server.HelixRestServer;
v := @parameter: java.util.List;
v := @parameter: int;
v := @parameter: java.lang.String;
v := @parameter: java.util.List;
v = new org.apache.helix.rest.server.authValidator.NoopAuthValidator;
specialinvoke v.<org.apache.helix.rest.server.authValidator.NoopAuthValidator: void <init>()>();
v = new org.apache.helix.rest.server.authValidator.NoopAuthValidator;
specialinvoke v.<org.apache.helix.rest.server.authValidator.NoopAuthValidator: void <init>()>();
specialinvoke v.<org.apache.helix.rest.server.HelixRestServer: void init(java.util.List,int,java.lang.String,java.util.List,org.apache.helix.rest.server.authValidator.AuthValidator,org.apache.helix.rest.server.authValidator.AuthValidator)>(v, v, v, v, v, v);
return;
}
private void init(java.util.List, int, java.lang.String, java.util.List, org.apache.helix.rest.server.authValidator.AuthValidator, org.apache.helix.rest.server.authValidator.AuthValidator)
{
org.eclipse.jetty.servlet.ServletContextHandler v;
java.util.HashMap v;
org.apache.helix.rest.common.ServletType v, v;
java.util.ArrayList v;
org.apache.helix.rest.server.HelixRestServer v;
java.lang.Thread v;
int v, v, v;
org.apache.helix.rest.server.HelixRestServer$1 v;
java.lang.String v, v, v;
org.eclipse.jetty.server.Server v, v;
boolean v, v;
org.slf4j.Logger v, v, v;
java.util.Iterator v;
java.lang.Runtime v;
java.lang.IllegalArgumentException v;
java.lang.Exception v;
java.util.List v, v, v;
org.apache.helix.rest.server.authValidator.AuthValidator v, v;
java.lang.Object v;
v := @this: org.apache.helix.rest.server.HelixRestServer;
v := @parameter: java.util.List;
v := @parameter: int;
v := @parameter: java.lang.String;
v := @parameter: java.util.List;
v := @parameter: org.apache.helix.rest.server.authValidator.AuthValidator;
v := @parameter: org.apache.helix.rest.server.authValidator.AuthValidator;
v = interfaceinvoke v.<java.util.List: int size()>();
if v != 0 goto label;
v = new java.lang.IllegalArgumentException;
specialinvoke v.<java.lang.IllegalArgumentException: void <init>(java.lang.String)>("No namespace specified! Please provide ZOOKEEPER address or namespace manifest.");
throw v;
label:
v.<org.apache.helix.rest.server.HelixRestServer: int _port> = v;
v.<org.apache.helix.rest.server.HelixRestServer: java.lang.String _urlPrefix> = v;
v = new org.eclipse.jetty.server.Server;
v = v.<org.apache.helix.rest.server.HelixRestServer: int _port>;
specialinvoke v.<org.eclipse.jetty.server.Server: void <init>(int)>(v);
v.<org.apache.helix.rest.server.HelixRestServer: org.eclipse.jetty.server.Server _server> = v;
v = new java.util.ArrayList;
specialinvoke v.<java.util.ArrayList: void <init>()>();
v.<org.apache.helix.rest.server.HelixRestServer: java.util.List _jmxReporterList> = v;
v.<org.apache.helix.rest.server.HelixRestServer: java.util.List _auditLoggers> = v;
v = new java.util.HashMap;
specialinvoke v.<java.util.HashMap: void <init>()>();
v.<org.apache.helix.rest.server.HelixRestServer: java.util.Map _resourceConfigMap> = v;
v = new org.eclipse.jetty.servlet.ServletContextHandler;
v = v.<org.apache.helix.rest.server.HelixRestServer: org.eclipse.jetty.server.Server _server>;
v = v.<org.apache.helix.rest.server.HelixRestServer: java.lang.String _urlPrefix>;
specialinvoke v.<org.eclipse.jetty.servlet.ServletContextHandler: void <init>(org.eclipse.jetty.server.HandlerContainer,java.lang.String)>(v, v);
v.<org.apache.helix.rest.server.HelixRestServer: org.eclipse.jetty.servlet.ServletContextHandler _servletContextHandler> = v;
v.<org.apache.helix.rest.server.HelixRestServer: java.util.List _helixNamespaces> = v;
v.<org.apache.helix.rest.server.HelixRestServer: org.apache.helix.rest.server.authValidator.AuthValidator _clusterAuthValidator> = v;
v.<org.apache.helix.rest.server.HelixRestServer: org.apache.helix.rest.server.authValidator.AuthValidator _namespaceAuthValidator> = v;
label:
v = v.<org.apache.helix.rest.server.HelixRestServer: java.util.List _helixNamespaces>;
v = interfaceinvoke v.<java.util.List: 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.<org.apache.helix.rest.common.HelixRestNamespace: boolean isDefault()>();
if v == 0 goto label;
v = <org.apache.helix.rest.server.HelixRestServer: org.slf4j.Logger LOG>;
interfaceinvoke v.<org.slf4j.Logger: void info(java.lang.String)>("Creating default servlet for default namespace");
v = <org.apache.helix.rest.common.ServletType: org.apache.helix.rest.common.ServletType DEFAULT_SERVLET>;
specialinvoke v.<org.apache.helix.rest.server.HelixRestServer: void prepareServlet(org.apache.helix.rest.common.HelixRestNamespace,org.apache.helix.rest.common.ServletType)>(v, v);
goto label;
label:
v = <org.apache.helix.rest.server.HelixRestServer: org.slf4j.Logger LOG>;
v = virtualinvoke v.<org.apache.helix.rest.common.HelixRestNamespace: java.lang.String getName()>();
interfaceinvoke v.<org.slf4j.Logger: void info(java.lang.String,java.lang.Object)>("Creating common servlet for namespace {}", v);
v = <org.apache.helix.rest.common.ServletType: org.apache.helix.rest.common.ServletType COMMON_SERVLET>;
specialinvoke v.<org.apache.helix.rest.server.HelixRestServer: void prepareServlet(org.apache.helix.rest.common.HelixRestNamespace,org.apache.helix.rest.common.ServletType)>(v, v);
goto label;
label:
v := @caughtexception;
v = <org.apache.helix.rest.server.HelixRestServer: org.slf4j.Logger LOG>;
interfaceinvoke v.<org.slf4j.Logger: void error(java.lang.String)>("Failed to initialize helix rest server. Tearing down.");
specialinvoke v.<org.apache.helix.rest.server.HelixRestServer: void cleanupResourceConfigs()>();
throw v;
label:
v = staticinvoke <java.lang.Runtime: java.lang.Runtime getRuntime()>();
v = new java.lang.Thread;
v = new org.apache.helix.rest.server.HelixRestServer$1;
specialinvoke v.<org.apache.helix.rest.server.HelixRestServer$1: void <init>(org.apache.helix.rest.server.HelixRestServer)>(v);
specialinvoke v.<java.lang.Thread: void <init>(java.lang.Runnable)>(v);
virtualinvoke v.<java.lang.Runtime: void addShutdownHook(java.lang.Thread)>(v);
return;
catch java.lang.Exception from label to label with label;
}
private void prepareServlet(org.apache.helix.rest.common.HelixRestNamespace, org.apache.helix.rest.common.ServletType)
{
java.lang.Object[] v, v;
org.apache.helix.rest.common.ServletType v;
org.apache.helix.rest.server.HelixRestServer v;
java.util.Map v, v;
org.glassfish.jersey.server.ResourceConfig v;
java.lang.String v, v, v, v, v, v, v;
boolean v;
java.lang.IllegalArgumentException v;
org.apache.helix.rest.common.HelixRestNamespace v;
v := @this: org.apache.helix.rest.server.HelixRestServer;
v := @parameter: org.apache.helix.rest.common.HelixRestNamespace;
v := @parameter: org.apache.helix.rest.common.ServletType;
v = specialinvoke v.<org.apache.helix.rest.server.HelixRestServer: java.lang.String getResourceConfigMapKey(org.apache.helix.rest.common.ServletType,org.apache.helix.rest.common.HelixRestNamespace)>(v, v);
v = v.<org.apache.helix.rest.server.HelixRestServer: java.util.Map _resourceConfigMap>;
v = interfaceinvoke v.<java.util.Map: boolean containsKey(java.lang.Object)>(v);
if v == 0 goto label;
v = new java.lang.IllegalArgumentException;
v = newarray (java.lang.Object)[1];
v = virtualinvoke v.<org.apache.helix.rest.common.HelixRestNamespace: java.lang.String getName()>();
v[0] = v;
v = staticinvoke <java.lang.String: java.lang.String format(java.lang.String,java.lang.Object[])>("Duplicated namespace name \"%s\"", v);
specialinvoke v.<java.lang.IllegalArgumentException: void <init>(java.lang.String)>(v);
throw v;
label:
v = virtualinvoke v.<org.apache.helix.rest.server.HelixRestServer: org.glassfish.jersey.server.ResourceConfig getResourceConfig(org.apache.helix.rest.common.HelixRestNamespace,org.apache.helix.rest.common.ServletType)>(v, v);
v = v.<org.apache.helix.rest.server.HelixRestServer: java.util.Map _resourceConfigMap>;
interfaceinvoke v.<java.util.Map: java.lang.Object put(java.lang.Object,java.lang.Object)>(v, v);
v = virtualinvoke v.<org.apache.helix.rest.common.HelixRestNamespace: java.lang.String getName()>();
specialinvoke v.<org.apache.helix.rest.server.HelixRestServer: void initMetricRegistry(org.glassfish.jersey.server.ResourceConfig,java.lang.String)>(v, v);
v = virtualinvoke v.<org.apache.helix.rest.common.ServletType: java.lang.String getServletPathSpecTemplate()>();
v = newarray (java.lang.Object)[1];
v = virtualinvoke v.<org.apache.helix.rest.common.HelixRestNamespace: java.lang.String getName()>();
v[0] = v;
v = staticinvoke <java.lang.String: java.lang.String format(java.lang.String,java.lang.Object[])>(v, v);
specialinvoke v.<org.apache.helix.rest.server.HelixRestServer: void initServlet(org.glassfish.jersey.server.ResourceConfig,java.lang.String)>(v, v);
return;
}
private java.lang.String getResourceConfigMapKey(org.apache.helix.rest.common.ServletType, org.apache.helix.rest.common.HelixRestNamespace)
{
java.lang.Object[] v;
org.apache.helix.rest.common.HelixRestNamespace v;
org.apache.helix.rest.server.HelixRestServer v;
java.lang.String v, v, v;
org.apache.helix.rest.common.ServletType v;
v := @this: org.apache.helix.rest.server.HelixRestServer;
v := @parameter: org.apache.helix.rest.common.ServletType;
v := @parameter: org.apache.helix.rest.common.HelixRestNamespace;
v = newarray (java.lang.Object)[2];
v = virtualinvoke v.<org.apache.helix.rest.common.ServletType: java.lang.String name()>();
v[0] = v;
v = virtualinvoke v.<org.apache.helix.rest.common.HelixRestNamespace: java.lang.String getName()>();
v[1] = v;
v = staticinvoke <java.lang.String: java.lang.String format(java.lang.String,java.lang.Object[])>("%s_%s", v);
return v;
}
protected org.glassfish.jersey.server.ResourceConfig getResourceConfig(org.apache.helix.rest.common.HelixRestNamespace, org.apache.helix.rest.common.ServletType)
{
org.apache.helix.rest.server.filters.NamespaceAuthFilter v;
java.lang.String[] v;
org.apache.helix.rest.common.ServletType v, v;
org.apache.helix.rest.server.HelixRestServer v;
org.apache.helix.rest.server.filters.AuditLogFilter v;
org.glassfish.jersey.server.ResourceConfig v;
java.lang.String v, v, v, v, v, v;
org.apache.helix.rest.server.filters.CORSFilter v;
boolean v, v;
org.apache.helix.rest.server.filters.ClusterAuthFilter v;
java.util.List v, v;
org.apache.helix.rest.common.ContextPropertyKeys v, v, v;
org.apache.helix.rest.server.authValidator.AuthValidator v, v;
org.apache.helix.rest.common.HelixRestNamespace v;
org.apache.helix.rest.server.ServerContext v;
v := @this: org.apache.helix.rest.server.HelixRestServer;
v := @parameter: org.apache.helix.rest.common.HelixRestNamespace;
v := @parameter: org.apache.helix.rest.common.ServletType;
v = new org.glassfish.jersey.server.ResourceConfig;
specialinvoke v.<org.glassfish.jersey.server.ResourceConfig: void <init>()>();
v = virtualinvoke v.<org.apache.helix.rest.common.ServletType: java.lang.String[] getServletPackageArray()>();
virtualinvoke v.<org.glassfish.jersey.server.ResourceConfig: org.glassfish.jersey.server.ResourceConfig packages(java.lang.String[])>(v);
v = virtualinvoke v.<org.apache.helix.rest.common.HelixRestNamespace: java.lang.String getName()>();
virtualinvoke v.<org.glassfish.jersey.server.ResourceConfig: org.glassfish.jersey.server.ResourceConfig setApplicationName(java.lang.String)>(v);
v = <org.apache.helix.rest.common.ContextPropertyKeys: org.apache.helix.rest.common.ContextPropertyKeys SERVER_CONTEXT>;
v = virtualinvoke v.<org.apache.helix.rest.common.ContextPropertyKeys: java.lang.String name()>();
v = new org.apache.helix.rest.server.ServerContext;
v = virtualinvoke v.<org.apache.helix.rest.common.HelixRestNamespace: java.lang.String getMetadataStoreAddress()>();
v = virtualinvoke v.<org.apache.helix.rest.common.HelixRestNamespace: boolean isMultiZkEnabled()>();
v = virtualinvoke v.<org.apache.helix.rest.common.HelixRestNamespace: java.lang.String getMsdsEndpoint()>();
specialinvoke v.<org.apache.helix.rest.server.ServerContext: void <init>(java.lang.String,boolean,java.lang.String)>(v, v, v);
virtualinvoke v.<org.glassfish.jersey.server.ResourceConfig: org.glassfish.jersey.server.ResourceConfig property(java.lang.String,java.lang.Object)>(v, v);
v = <org.apache.helix.rest.common.ServletType: org.apache.helix.rest.common.ServletType DEFAULT_SERVLET>;
if v != v goto label;
v = <org.apache.helix.rest.common.ContextPropertyKeys: org.apache.helix.rest.common.ContextPropertyKeys ALL_NAMESPACES>;
v = virtualinvoke v.<org.apache.helix.rest.common.ContextPropertyKeys: java.lang.String name()>();
v = v.<org.apache.helix.rest.server.HelixRestServer: java.util.List _helixNamespaces>;
virtualinvoke v.<org.glassfish.jersey.server.ResourceConfig: org.glassfish.jersey.server.ResourceConfig property(java.lang.String,java.lang.Object)>(v, v);
label:
v = <org.apache.helix.rest.common.ContextPropertyKeys: org.apache.helix.rest.common.ContextPropertyKeys METADATA>;
v = virtualinvoke v.<org.apache.helix.rest.common.ContextPropertyKeys: java.lang.String name()>();
virtualinvoke v.<org.glassfish.jersey.server.ResourceConfig: org.glassfish.jersey.server.ResourceConfig property(java.lang.String,java.lang.Object)>(v, v);
v = staticinvoke <java.lang.Boolean: boolean getBoolean(java.lang.String)>("cors.enabled");
if v == 0 goto label;
v = new org.apache.helix.rest.server.filters.CORSFilter;
specialinvoke v.<org.apache.helix.rest.server.filters.CORSFilter: void <init>()>();
virtualinvoke v.<org.glassfish.jersey.server.ResourceConfig: org.glassfish.jersey.server.ResourceConfig register(java.lang.Object)>(v);
label:
v = new org.apache.helix.rest.server.filters.AuditLogFilter;
v = v.<org.apache.helix.rest.server.HelixRestServer: java.util.List _auditLoggers>;
specialinvoke v.<org.apache.helix.rest.server.filters.AuditLogFilter: void <init>(java.util.List)>(v);
virtualinvoke v.<org.glassfish.jersey.server.ResourceConfig: org.glassfish.jersey.server.ResourceConfig register(java.lang.Object)>(v);
v = new org.apache.helix.rest.server.filters.ClusterAuthFilter;
v = v.<org.apache.helix.rest.server.HelixRestServer: org.apache.helix.rest.server.authValidator.AuthValidator _clusterAuthValidator>;
specialinvoke v.<org.apache.helix.rest.server.filters.ClusterAuthFilter: void <init>(org.apache.helix.rest.server.authValidator.AuthValidator)>(v);
virtualinvoke v.<org.glassfish.jersey.server.ResourceConfig: org.glassfish.jersey.server.ResourceConfig register(java.lang.Object)>(v);
v = new org.apache.helix.rest.server.filters.NamespaceAuthFilter;
v = v.<org.apache.helix.rest.server.HelixRestServer: org.apache.helix.rest.server.authValidator.AuthValidator _namespaceAuthValidator>;
specialinvoke v.<org.apache.helix.rest.server.filters.NamespaceAuthFilter: void <init>(org.apache.helix.rest.server.authValidator.AuthValidator)>(v);
virtualinvoke v.<org.glassfish.jersey.server.ResourceConfig: org.glassfish.jersey.server.ResourceConfig register(java.lang.Object)>(v);
return v;
}
private void initMetricRegistry(org.glassfish.jersey.server.ResourceConfig, java.lang.String)
{
com.codahale.metrics.Clock v;
com.codahale.metrics.MetricRegistry v;
com.codahale.metrics.jersey.InstrumentedResourceMethodApplicationListener v;
com.codahale.metrics.jmx.JmxReporter$Builder v, v, v;
java.util.function.Supplier v;
com.codahale.metrics.jmx.JmxReporter v;
java.util.List v;
org.apache.helix.rest.server.HelixRestServer v;
org.glassfish.jersey.server.ResourceConfig v;
org.apache.helix.rest.server.HelixRestObjectNameFactory v;
java.lang.String v;
v := @this: org.apache.helix.rest.server.HelixRestServer;
v := @parameter: org.glassfish.jersey.server.ResourceConfig;
v := @parameter: java.lang.String;
v = new com.codahale.metrics.MetricRegistry;
specialinvoke v.<com.codahale.metrics.MetricRegistry: void <init>()>();
v = staticinvoke <org.apache.helix.rest.server.HelixRestServer$lambda_initMetricRegistry_0__20: java.util.function.Supplier bootstrap$()>();
v = new com.codahale.metrics.jersey.InstrumentedResourceMethodApplicationListener;
v = staticinvoke <com.codahale.metrics.Clock: com.codahale.metrics.Clock defaultClock()>();
specialinvoke v.<com.codahale.metrics.jersey.InstrumentedResourceMethodApplicationListener: void <init>(com.codahale.metrics.MetricRegistry,com.codahale.metrics.Clock,boolean,java.util.function.Supplier)>(v, v, 0, v);
virtualinvoke v.<org.glassfish.jersey.server.ResourceConfig: org.glassfish.jersey.server.ResourceConfig register(java.lang.Object)>(v);
staticinvoke <com.codahale.metrics.SharedMetricRegistries: com.codahale.metrics.MetricRegistry add(java.lang.String,com.codahale.metrics.MetricRegistry)>(v, v);
v = staticinvoke <com.codahale.metrics.jmx.JmxReporter: com.codahale.metrics.jmx.JmxReporter$Builder forRegistry(com.codahale.metrics.MetricRegistry)>(v);
v = virtualinvoke v.<com.codahale.metrics.jmx.JmxReporter$Builder: com.codahale.metrics.jmx.JmxReporter$Builder inDomain(java.lang.String)>("org.apache.helix.rest");
v = new org.apache.helix.rest.server.HelixRestObjectNameFactory;
specialinvoke v.<org.apache.helix.rest.server.HelixRestObjectNameFactory: void <init>(java.lang.String)>(v);
v = virtualinvoke v.<com.codahale.metrics.jmx.JmxReporter$Builder: com.codahale.metrics.jmx.JmxReporter$Builder createsObjectNamesWith(com.codahale.metrics.jmx.ObjectNameFactory)>(v);
v = virtualinvoke v.<com.codahale.metrics.jmx.JmxReporter$Builder: com.codahale.metrics.jmx.JmxReporter build()>();
virtualinvoke v.<com.codahale.metrics.jmx.JmxReporter: void start()>();
v = v.<org.apache.helix.rest.server.HelixRestServer: java.util.List _jmxReporterList>;
interfaceinvoke v.<java.util.List: boolean add(java.lang.Object)>(v);
return;
}
private void initServlet(org.glassfish.jersey.server.ResourceConfig, java.lang.String)
{
org.eclipse.jetty.servlet.ServletContextHandler v;
org.apache.helix.rest.server.HelixRestServer v;
org.eclipse.jetty.servlet.ServletHolder v;
org.glassfish.jersey.server.ResourceConfig v;
org.glassfish.jersey.servlet.ServletContainer v;
java.lang.String v;
v := @this: org.apache.helix.rest.server.HelixRestServer;
v := @parameter: org.glassfish.jersey.server.ResourceConfig;
v := @parameter: java.lang.String;
v = new org.eclipse.jetty.servlet.ServletHolder;
v = new org.glassfish.jersey.servlet.ServletContainer;
specialinvoke v.<org.glassfish.jersey.servlet.ServletContainer: void <init>(org.glassfish.jersey.server.ResourceConfig)>(v);
specialinvoke v.<org.eclipse.jetty.servlet.ServletHolder: void <init>(javax.servlet.Servlet)>(v);
v = v.<org.apache.helix.rest.server.HelixRestServer: org.eclipse.jetty.servlet.ServletContextHandler _servletContextHandler>;
virtualinvoke v.<org.eclipse.jetty.servlet.ServletContextHandler: void addServlet(org.eclipse.jetty.servlet.ServletHolder,java.lang.String)>(v, v);
return;
}
public void start() throws org.apache.helix.HelixException, java.lang.InterruptedException
{
org.slf4j.Logger v, v;
org.apache.helix.HelixException v;
java.lang.Exception v;
org.apache.helix.rest.server.HelixRestServer v;
java.lang.String v, v;
org.eclipse.jetty.server.Server v;
v := @this: org.apache.helix.rest.server.HelixRestServer;
label:
v = v.<org.apache.helix.rest.server.HelixRestServer: org.eclipse.jetty.server.Server _server>;
virtualinvoke v.<org.eclipse.jetty.server.Server: void start()>();
label:
goto label;
label:
v := @caughtexception;
v = <org.apache.helix.rest.server.HelixRestServer: org.slf4j.Logger LOG>;
v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (java.lang.Exception)>(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[])>("Failed to start Helix rest server, \u0001");
interfaceinvoke v.<org.slf4j.Logger: void error(java.lang.String)>(v);
v = new org.apache.helix.HelixException;
v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (java.lang.Exception)>(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[])>("Failed to start Helix rest server! \u0001");
specialinvoke v.<org.apache.helix.HelixException: void <init>(java.lang.String)>(v);
throw v;
label:
v = <org.apache.helix.rest.server.HelixRestServer: org.slf4j.Logger LOG>;
interfaceinvoke v.<org.slf4j.Logger: void info(java.lang.String)>("Helix rest server started!");
return;
catch java.lang.Exception from label to label with label;
}
public void join()
{
org.slf4j.Logger v;
java.lang.InterruptedException v;
org.apache.helix.rest.server.HelixRestServer v;
java.lang.String v;
org.eclipse.jetty.server.Server v, v;
v := @this: org.apache.helix.rest.server.HelixRestServer;
v = v.<org.apache.helix.rest.server.HelixRestServer: org.eclipse.jetty.server.Server _server>;
if v == null goto label;
label:
v = v.<org.apache.helix.rest.server.HelixRestServer: org.eclipse.jetty.server.Server _server>;
virtualinvoke v.<org.eclipse.jetty.server.Server: void join()>();
label:
goto label;
label:
v := @caughtexception;
v = <org.apache.helix.rest.server.HelixRestServer: org.slf4j.Logger LOG>;
v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (java.lang.InterruptedException)>(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[])>("Join on Helix rest server get interrupted!\u0001");
interfaceinvoke v.<org.slf4j.Logger: void warn(java.lang.String)>(v);
label:
return;
catch java.lang.InterruptedException from label to label with label;
}
public synchronized void shutdown()
{
org.slf4j.Logger v, v;
java.lang.Exception v;
java.util.function.Consumer v;
java.util.List v, v;
org.apache.helix.rest.server.HelixRestServer v;
java.lang.String v;
org.eclipse.jetty.server.Server v, v;
v := @this: org.apache.helix.rest.server.HelixRestServer;
v = v.<org.apache.helix.rest.server.HelixRestServer: org.eclipse.jetty.server.Server _server>;
if v == null goto label;
label:
v = v.<org.apache.helix.rest.server.HelixRestServer: org.eclipse.jetty.server.Server _server>;
virtualinvoke v.<org.eclipse.jetty.server.Server: void stop()>();
v = <org.apache.helix.rest.server.HelixRestServer: org.slf4j.Logger LOG>;
interfaceinvoke v.<org.slf4j.Logger: void info(java.lang.String)>("Helix rest server stopped!");
label:
goto label;
label:
v := @caughtexception;
v = <org.apache.helix.rest.server.HelixRestServer: org.slf4j.Logger LOG>;
v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (java.lang.Exception)>(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[])>("Failed to stop Helix rest server, \u0001");
interfaceinvoke v.<org.slf4j.Logger: void error(java.lang.String)>(v);
label:
v = v.<org.apache.helix.rest.server.HelixRestServer: java.util.List _jmxReporterList>;
v = staticinvoke <org.apache.helix.rest.server.HelixRestServer$stop__21: java.util.function.Consumer bootstrap$()>();
interfaceinvoke v.<java.util.List: void forEach(java.util.function.Consumer)>(v);
v = v.<org.apache.helix.rest.server.HelixRestServer: java.util.List _jmxReporterList>;
interfaceinvoke v.<java.util.List: void clear()>();
specialinvoke v.<org.apache.helix.rest.server.HelixRestServer: void cleanupResourceConfigs()>();
return;
catch java.lang.Exception from label to label with label;
}
private void cleanupResourceConfigs()
{
org.apache.helix.rest.server.HelixRestServer v;
java.util.Map v;
java.lang.String v, v, v;
boolean v;
org.slf4j.Logger v, v;
java.util.Iterator v;
java.util.Set v;
org.apache.helix.rest.common.ContextPropertyKeys v;
java.lang.Object v, v, v, v, v;
v := @this: org.apache.helix.rest.server.HelixRestServer;
v = v.<org.apache.helix.rest.server.HelixRestServer: java.util.Map _resourceConfigMap>;
v = interfaceinvoke v.<java.util.Map: java.util.Set entrySet()>();
v = interfaceinvoke v.<java.util.Set: 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 = interfaceinvoke v.<java.util.Map$Entry: java.lang.Object getValue()>();
v = <org.apache.helix.rest.common.ContextPropertyKeys: org.apache.helix.rest.common.ContextPropertyKeys SERVER_CONTEXT>;
v = virtualinvoke v.<org.apache.helix.rest.common.ContextPropertyKeys: java.lang.String name()>();
v = virtualinvoke v.<org.glassfish.jersey.server.ResourceConfig: java.lang.Object getProperty(java.lang.String)>(v);
if v != null goto label;
v = <org.apache.helix.rest.server.HelixRestServer: org.slf4j.Logger LOG>;
v = interfaceinvoke v.<java.util.Map$Entry: java.lang.Object getKey()>();
v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (java.lang.Object)>(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[])>("Server context for servlet \u is null.");
interfaceinvoke v.<org.slf4j.Logger: void info(java.lang.String)>(v);
goto label;
label:
v = <org.apache.helix.rest.server.HelixRestServer: org.slf4j.Logger LOG>;
v = interfaceinvoke v.<java.util.Map$Entry: java.lang.Object getKey()>();
v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (java.lang.Object)>(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[])>("Closing context for servlet \u0001");
interfaceinvoke v.<org.slf4j.Logger: void info(java.lang.String)>(v);
virtualinvoke v.<org.apache.helix.rest.server.ServerContext: void close()>();
goto label;
label:
return;
}
public void setupSslServer(int, org.eclipse.jetty.util.ssl.SslContextFactory)
{
org.eclipse.jetty.server.HttpConnectionFactory v;
org.eclipse.jetty.server.SslConnectionFactory v;
java.lang.Object[] v;
org.eclipse.jetty.util.ssl.SslContextFactory v;
org.eclipse.jetty.http.HttpVersion v;
org.eclipse.jetty.server.SecureRequestCustomizer v;
org.eclipse.jetty.server.HttpConfiguration v;
org.apache.helix.rest.server.HelixRestServer v;
int v;
java.lang.String v, v;
org.eclipse.jetty.server.Server v, v, v;
org.slf4j.Logger v, v;
java.lang.Exception v;
org.eclipse.jetty.server.ServerConnector v;
v := @this: org.apache.helix.rest.server.HelixRestServer;
v := @parameter: int;
v := @parameter: org.eclipse.jetty.util.ssl.SslContextFactory;
v = v.<org.apache.helix.rest.server.HelixRestServer: org.eclipse.jetty.server.Server _server>;
if v == null goto label;
if v <= 0 goto label;
label:
v = new org.eclipse.jetty.server.HttpConfiguration;
specialinvoke v.<org.eclipse.jetty.server.HttpConfiguration: void <init>()>();
v = new org.eclipse.jetty.server.SecureRequestCustomizer;
specialinvoke v.<org.eclipse.jetty.server.SecureRequestCustomizer: void <init>()>();
virtualinvoke v.<org.eclipse.jetty.server.HttpConfiguration: void addCustomizer(org.eclipse.jetty.server.HttpConfiguration$Customizer)>(v);
v = new org.eclipse.jetty.server.ServerConnector;
v = v.<org.apache.helix.rest.server.HelixRestServer: org.eclipse.jetty.server.Server _server>;
v = newarray (org.eclipse.jetty.server.ConnectionFactory)[2];
v = new org.eclipse.jetty.server.SslConnectionFactory;
v = <org.eclipse.jetty.http.HttpVersion: org.eclipse.jetty.http.HttpVersion HTTP_1_1>;
v = virtualinvoke v.<org.eclipse.jetty.http.HttpVersion: java.lang.String asString()>();
specialinvoke v.<org.eclipse.jetty.server.SslConnectionFactory: void <init>(org.eclipse.jetty.util.ssl.SslContextFactory,java.lang.String)>(v, v);
v[0] = v;
v = new org.eclipse.jetty.server.HttpConnectionFactory;
specialinvoke v.<org.eclipse.jetty.server.HttpConnectionFactory: void <init>(org.eclipse.jetty.server.HttpConfiguration)>(v);
v[1] = v;
specialinvoke v.<org.eclipse.jetty.server.ServerConnector: void <init>(org.eclipse.jetty.server.Server,org.eclipse.jetty.server.ConnectionFactory[])>(v, v);
virtualinvoke v.<org.eclipse.jetty.server.ServerConnector: void setPort(int)>(v);
v = v.<org.apache.helix.rest.server.HelixRestServer: org.eclipse.jetty.server.Server _server>;
virtualinvoke v.<org.eclipse.jetty.server.Server: void addConnector(org.eclipse.jetty.server.Connector)>(v);
v = <org.apache.helix.rest.server.HelixRestServer: org.slf4j.Logger LOG>;
interfaceinvoke v.<org.slf4j.Logger: void info(java.lang.String)>("Helix SSL rest server is ready to start.");
label:
goto label;
label:
v := @caughtexception;
v = <org.apache.helix.rest.server.HelixRestServer: org.slf4j.Logger LOG>;
v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (java.lang.Exception)>(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[])>("Failed to setup Helix SSL rest server, \u0001");
interfaceinvoke v.<org.slf4j.Logger: void error(java.lang.String)>(v);
label:
return;
catch java.lang.Exception from label to label with label;
}
public void registerServerSSLContext(javax.net.ssl.SSLContext)
{
javax.net.ssl.SSLContext v;
org.apache.helix.rest.server.HelixRestServer v;
v := @this: org.apache.helix.rest.server.HelixRestServer;
v := @parameter: javax.net.ssl.SSLContext;
<org.apache.helix.rest.server.HelixRestServer: javax.net.ssl.SSLContext REST_SERVER_SSL_CONTEXT> = v;
return;
}
static void <clinit>()
{
org.slf4j.Logger v;
v = staticinvoke <org.slf4j.LoggerFactory: org.slf4j.Logger getLogger(java.lang.Class)>(class "Lorg/apache/helix/rest/server/HelixRestServer;");
<org.apache.helix.rest.server.HelixRestServer: org.slf4j.Logger LOG> = v;
return;
}
}