public final class org.glassfish.admin.mbeanserver.JMXStartupService extends java.lang.Object implements org.glassfish.hk.api.PostConstruct
{
private static final java.util.logging.Logger JMX_LOGGER;
private javax.management.MBeanServer mMBeanServer;
private com.sun.enterprise.config.serverbeans.Domain mDomain;
private com.sun.enterprise.config.serverbeans.AdminService mAdminService;
private org.glassfish.hk.api.ServiceLocator mHabitat;
org.glassfish.api.event.Events mEvents;
static org.glassfish.hk.api.ServiceLocator habitat;
private org.glassfish.api.admin.ServerEnvironment serverEnv;
private volatile org.glassfish.admin.mbeanserver.JMXStartupService$JMXConnectorStatus jmxConnectorstatus;
private java.lang.Object lock;
private volatile org.glassfish.admin.mbeanserver.BootAMX mBootAMX;
private volatile org.glassfish.admin.mbeanserver.JMXStartupService$JMXConnectorsStarterThread mConnectorsStarterThread;
private static final java.lang.String JMX_STARTUPSERVICE_SHUTDOWN;
private static final java.lang.String JMX_STARTUPSERVICE_STOPPED_JMX_CONNECTOR;
private static final java.lang.String JMX_MBEAN_REG_EXCEPTION;
private static final java.lang.String JMX_INSTANCE_NOT_FOUND_EXCEPTION;
private static final java.lang.String JMX_STARTED_SERVICE;
private static final java.lang.String JMX_STARTED_SERVICE_DISABLED;
private static final java.lang.String JMX_CANNOT_START_CONNECTOR;
public static final java.lang.String JMX_CONNECTOR_SERVER_PREFIX;
private static void debug(java.lang.String)
{
java.io.PrintStream v;
java.lang.String v, v;
v := @parameter: java.lang.String;
v = <java.lang.System: java.io.PrintStream out>;
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[])>("### \u0001");
virtualinvoke v.<java.io.PrintStream: void println(java.lang.String)>(v);
return;
}
public void <init>()
{
org.glassfish.admin.mbeanserver.JMXStartupService v;
javax.management.MBeanServer v;
java.lang.Object v;
org.glassfish.admin.mbeanserver.JMXStartupService$JMXConnectorStatus v;
v := @this: org.glassfish.admin.mbeanserver.JMXStartupService;
specialinvoke v.<java.lang.Object: void <init>()>();
v = <org.glassfish.admin.mbeanserver.JMXStartupService$JMXConnectorStatus: org.glassfish.admin.mbeanserver.JMXStartupService$JMXConnectorStatus STOPPED>;
v.<org.glassfish.admin.mbeanserver.JMXStartupService: org.glassfish.admin.mbeanserver.JMXStartupService$JMXConnectorStatus jmxConnectorstatus> = v;
v = new java.lang.Object;
specialinvoke v.<java.lang.Object: void <init>()>();
v.<org.glassfish.admin.mbeanserver.JMXStartupService: java.lang.Object lock> = v;
v = staticinvoke <java.lang.management.ManagementFactory: javax.management.MBeanServer getPlatformMBeanServer()>();
v.<org.glassfish.admin.mbeanserver.JMXStartupService: javax.management.MBeanServer mMBeanServer> = v;
return;
}
public void waitUntilJMXConnectorStarted()
{
java.lang.Throwable v;
org.glassfish.admin.mbeanserver.JMXStartupService v;
java.lang.InterruptedException v;
java.lang.Object v, v;
org.glassfish.admin.mbeanserver.JMXStartupService$JMXConnectorStatus v, v;
v := @this: org.glassfish.admin.mbeanserver.JMXStartupService;
v = v.<org.glassfish.admin.mbeanserver.JMXStartupService: java.lang.Object lock>;
entermonitor v;
label:
v = v.<org.glassfish.admin.mbeanserver.JMXStartupService: org.glassfish.admin.mbeanserver.JMXStartupService$JMXConnectorStatus jmxConnectorstatus>;
v = <org.glassfish.admin.mbeanserver.JMXStartupService$JMXConnectorStatus: org.glassfish.admin.mbeanserver.JMXStartupService$JMXConnectorStatus STARTED>;
if v == v goto label;
label:
v = v.<org.glassfish.admin.mbeanserver.JMXStartupService: java.lang.Object lock>;
virtualinvoke v.<java.lang.Object: void wait()>();
label:
goto label;
label:
v := @caughtexception;
goto label;
label:
exitmonitor v;
label:
goto label;
label:
v := @caughtexception;
exitmonitor v;
throw v;
label:
return;
catch java.lang.InterruptedException from label to label with label;
catch java.lang.Throwable from label to label with label;
}
public void postConstruct()
{
org.glassfish.admin.mbeanserver.JMXStartupService$ShutdownListener v;
org.glassfish.api.event.Events v;
javax.management.MBeanServer v, v;
org.glassfish.api.admin.ServerEnvironment v;
org.glassfish.admin.mbeanserver.JMXStartupService$JMXConnectorsStarterThread v, v;
boolean v;
org.glassfish.admin.mbeanserver.JMXStartupService v;
javax.management.remote.MBeanServerForwarder v;
org.glassfish.admin.mbeanserver.BootAMX v, v, v;
com.sun.enterprise.config.serverbeans.AdminService v;
java.util.List v;
org.glassfish.hk.api.ServiceLocator v;
v := @this: org.glassfish.admin.mbeanserver.JMXStartupService;
v = v.<org.glassfish.admin.mbeanserver.JMXStartupService: org.glassfish.hk.api.ServiceLocator mHabitat>;
v = v.<org.glassfish.admin.mbeanserver.JMXStartupService: javax.management.MBeanServer mMBeanServer>;
v = staticinvoke <org.glassfish.admin.mbeanserver.BootAMX: org.glassfish.admin.mbeanserver.BootAMX create(org.glassfish.hk.api.ServiceLocator,javax.management.MBeanServer)>(v, v);
v.<org.glassfish.admin.mbeanserver.JMXStartupService: org.glassfish.admin.mbeanserver.BootAMX mBootAMX> = v;
v = v.<org.glassfish.admin.mbeanserver.JMXStartupService: com.sun.enterprise.config.serverbeans.AdminService mAdminService>;
v = interfaceinvoke v.<com.sun.enterprise.config.serverbeans.AdminService: java.util.List getJmxConnector()>();
v = new org.glassfish.admin.mbeanserver.JMXStartupService$JMXConnectorsStarterThread;
v = v.<org.glassfish.admin.mbeanserver.JMXStartupService: javax.management.MBeanServer mMBeanServer>;
v = v.<org.glassfish.admin.mbeanserver.JMXStartupService: org.glassfish.api.admin.ServerEnvironment serverEnv>;
v = interfaceinvoke v.<org.glassfish.api.admin.ServerEnvironment: boolean isInstance()>();
v = v.<org.glassfish.admin.mbeanserver.JMXStartupService: org.glassfish.admin.mbeanserver.BootAMX mBootAMX>;
v = staticinvoke <org.glassfish.admin.mbeanserver.AdminAuthorizedMBeanServer: javax.management.remote.MBeanServerForwarder newInstance(javax.management.MBeanServer,boolean,org.glassfish.admin.mbeanserver.BootAMX)>(v, v, v);
v = v.<org.glassfish.admin.mbeanserver.JMXStartupService: org.glassfish.admin.mbeanserver.BootAMX mBootAMX>;
specialinvoke v.<org.glassfish.admin.mbeanserver.JMXStartupService$JMXConnectorsStarterThread: void <init>(javax.management.MBeanServer,java.util.List,org.glassfish.admin.mbeanserver.BootAMX,boolean,org.glassfish.admin.mbeanserver.JMXStartupService)>(v, v, v, 1, v);
v.<org.glassfish.admin.mbeanserver.JMXStartupService: org.glassfish.admin.mbeanserver.JMXStartupService$JMXConnectorsStarterThread mConnectorsStarterThread> = v;
v = v.<org.glassfish.admin.mbeanserver.JMXStartupService: org.glassfish.admin.mbeanserver.JMXStartupService$JMXConnectorsStarterThread mConnectorsStarterThread>;
virtualinvoke v.<org.glassfish.admin.mbeanserver.JMXStartupService$JMXConnectorsStarterThread: void start()>();
v = v.<org.glassfish.admin.mbeanserver.JMXStartupService: org.glassfish.api.event.Events mEvents>;
v = new org.glassfish.admin.mbeanserver.JMXStartupService$ShutdownListener;
specialinvoke v.<org.glassfish.admin.mbeanserver.JMXStartupService$ShutdownListener: void <init>(org.glassfish.admin.mbeanserver.JMXStartupService)>(v);
interfaceinvoke v.<org.glassfish.api.event.Events: void register(org.glassfish.api.event.EventListener)>(v);
return;
}
private synchronized void shutdown()
{
org.glassfish.admin.mbeanserver.JMXStartupService v;
org.glassfish.admin.mbeanserver.BootAMX v, v;
java.util.logging.Logger v, v;
java.util.ArrayList v, v;
java.util.logging.Level v;
int v;
java.lang.Object v;
org.glassfish.admin.mbeanserver.JMXStartupService$JMXConnectorsStarterThread v, v;
v := @this: org.glassfish.admin.mbeanserver.JMXStartupService;
v = <org.glassfish.admin.mbeanserver.JMXStartupService: java.util.logging.Logger JMX_LOGGER>;
virtualinvoke v.<java.util.logging.Logger: void fine(java.lang.String)>("JMXStartupService: shutting down AMX and JMX");
v = v.<org.glassfish.admin.mbeanserver.JMXStartupService: org.glassfish.admin.mbeanserver.BootAMX mBootAMX>;
if v == null goto label;
v = v.<org.glassfish.admin.mbeanserver.JMXStartupService: org.glassfish.admin.mbeanserver.BootAMX mBootAMX>;
virtualinvoke v.<org.glassfish.admin.mbeanserver.BootAMX: void shutdown()>();
label:
v.<org.glassfish.admin.mbeanserver.JMXStartupService: org.glassfish.admin.mbeanserver.BootAMX mBootAMX> = null;
v = v.<org.glassfish.admin.mbeanserver.JMXStartupService: org.glassfish.admin.mbeanserver.JMXStartupService$JMXConnectorsStarterThread mConnectorsStarterThread>;
if v == null goto label;
v = v.<org.glassfish.admin.mbeanserver.JMXStartupService: org.glassfish.admin.mbeanserver.JMXStartupService$JMXConnectorsStarterThread mConnectorsStarterThread>;
virtualinvoke v.<org.glassfish.admin.mbeanserver.JMXStartupService$JMXConnectorsStarterThread: void shutdown()>();
label:
v.<org.glassfish.admin.mbeanserver.JMXStartupService: org.glassfish.admin.mbeanserver.JMXStartupService$JMXConnectorsStarterThread mConnectorsStarterThread> = null;
v = staticinvoke <javax.management.MBeanServerFactory: java.util.ArrayList findMBeanServer(java.lang.String)>(null);
v = virtualinvoke v.<java.util.ArrayList: int size()>();
if v <= 0 goto label;
v = staticinvoke <javax.management.MBeanServerFactory: java.util.ArrayList findMBeanServer(java.lang.String)>(null);
v = virtualinvoke v.<java.util.ArrayList: java.lang.Object get(int)>(0);
staticinvoke <javax.management.MBeanServerFactory: void releaseMBeanServer(javax.management.MBeanServer)>(v);
label:
v = <org.glassfish.admin.mbeanserver.JMXStartupService: java.util.logging.Logger JMX_LOGGER>;
v = <java.util.logging.Level: java.util.logging.Level INFO>;
virtualinvoke v.<java.util.logging.Logger: void log(java.util.logging.Level,java.lang.String)>(v, "NCLS-JMX-00001");
return;
}
public static final java.util.Set getJMXConnectorServers(javax.management.MBeanServer)
{
javax.management.MBeanServer v;
java.util.Set v;
java.lang.RuntimeException v;
javax.management.ObjectName v;
java.lang.Exception v;
v := @parameter: javax.management.MBeanServer;
label:
v = new javax.management.ObjectName;
specialinvoke v.<javax.management.ObjectName: void <init>(java.lang.String)>("jmxremote:type=jmx-connector-server,*");
v = interfaceinvoke v.<javax.management.MBeanServer: java.util.Set queryNames(javax.management.ObjectName,javax.management.QueryExp)>(v, null);
label:
return v;
label:
v := @caughtexception;
v = new java.lang.RuntimeException;
specialinvoke v.<java.lang.RuntimeException: void <init>(java.lang.Throwable)>(v);
throw v;
catch java.lang.Exception from label to label with label;
}
public static javax.management.remote.JMXServiceURL[] getJMXServiceURLs(javax.management.MBeanServer)
{
java.lang.Object[] v;
java.util.Iterator v;
javax.management.remote.JMXServiceURL[] v;
java.util.Set v;
java.util.ArrayList v;
javax.management.JMException v;
javax.management.MBeanServer v;
int v;
java.lang.Object v, v;
boolean v;
v := @parameter: javax.management.MBeanServer;
v = staticinvoke <org.glassfish.admin.mbeanserver.JMXStartupService: java.util.Set getJMXConnectorServers(javax.management.MBeanServer)>(v);
v = new java.util.ArrayList;
specialinvoke v.<java.util.ArrayList: void <init>()>();
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()>();
label:
v = interfaceinvoke v.<javax.management.MBeanServer: java.lang.Object getAttribute(javax.management.ObjectName,java.lang.String)>(v, "Address");
interfaceinvoke v.<java.util.List: boolean add(java.lang.Object)>(v);
label:
goto label;
label:
v := @caughtexception;
virtualinvoke v.<javax.management.JMException: void printStackTrace()>();
goto label;
label:
v = interfaceinvoke v.<java.util.List: int size()>();
v = newarray (javax.management.remote.JMXServiceURL)[v];
v = interfaceinvoke v.<java.util.List: java.lang.Object[] toArray(java.lang.Object[])>(v);
return v;
catch javax.management.JMException from label to label with label;
}
static void <clinit>()
{
org.glassfish.hk.api.ServiceLocator v;
java.util.logging.Logger v;
v = <org.glassfish.admin.mbeanserver.Util: java.util.logging.Logger JMX_LOGGER>;
<org.glassfish.admin.mbeanserver.JMXStartupService: java.util.logging.Logger JMX_LOGGER> = v;
v = staticinvoke <org.glassfish.internal.api.Globals: org.glassfish.hk.api.ServiceLocator getDefaultHabitat()>();
<org.glassfish.admin.mbeanserver.JMXStartupService: org.glassfish.hk.api.ServiceLocator habitat> = v;
return;
}
}