public class org.springframework.context.support.LiveBeansView extends java.lang.Object implements org.springframework.context.support.LiveBeansViewMBean, org.springframework.context.ApplicationContextAware
{
public static final java.lang.String MBEAN_DOMAIN_PROPERTY_NAME;
public static final java.lang.String MBEAN_APPLICATION_KEY;
private static final java.util.Set applicationContexts;
private static java.lang.String applicationName;
private org.springframework.context.ConfigurableApplicationContext applicationContext;
public void <init>()
{
org.springframework.context.support.LiveBeansView v;
v := @this: org.springframework.context.support.LiveBeansView;
specialinvoke v.<java.lang.Object: void <init>()>();
return;
}
static void registerApplicationContext(org.springframework.context.ConfigurableApplicationContext)
{
java.lang.Throwable v, v;
org.springframework.context.support.LiveBeansView v;
java.util.Set v, v, v;
org.springframework.context.ApplicationContextException v;
javax.management.ObjectName v;
org.springframework.core.env.ConfigurableEnvironment v;
javax.management.MBeanServer v;
org.springframework.context.ConfigurableApplicationContext v;
java.lang.String v, v, v;
boolean v;
v := @parameter: org.springframework.context.ConfigurableApplicationContext;
v = interfaceinvoke v.<org.springframework.context.ConfigurableApplicationContext: org.springframework.core.env.ConfigurableEnvironment getEnvironment()>();
v = interfaceinvoke v.<org.springframework.core.env.ConfigurableEnvironment: java.lang.String getProperty(java.lang.String)>("spring.liveBeansView.mbeanDomain");
if v == null goto label;
v = <org.springframework.context.support.LiveBeansView: java.util.Set applicationContexts>;
entermonitor v;
label:
v = <org.springframework.context.support.LiveBeansView: java.util.Set applicationContexts>;
v = interfaceinvoke v.<java.util.Set: boolean isEmpty()>();
if v == 0 goto label;
label:
v = staticinvoke <java.lang.management.ManagementFactory: javax.management.MBeanServer getPlatformMBeanServer()>();
v = interfaceinvoke v.<org.springframework.context.ConfigurableApplicationContext: java.lang.String getApplicationName()>();
<org.springframework.context.support.LiveBeansView: java.lang.String applicationName> = v;
v = new org.springframework.context.support.LiveBeansView;
specialinvoke v.<org.springframework.context.support.LiveBeansView: void <init>()>();
v = new javax.management.ObjectName;
v = <org.springframework.context.support.LiveBeansView: java.lang.String applicationName>;
specialinvoke v.<javax.management.ObjectName: void <init>(java.lang.String,java.lang.String,java.lang.String)>(v, "application", v);
interfaceinvoke v.<javax.management.MBeanServer: javax.management.ObjectInstance registerMBean(java.lang.Object,javax.management.ObjectName)>(v, v);
label:
goto label;
label:
v := @caughtexception;
v = new org.springframework.context.ApplicationContextException;
specialinvoke v.<org.springframework.context.ApplicationContextException: void <init>(java.lang.String,java.lang.Throwable)>("Failed to register LiveBeansView MBean", v);
throw v;
label:
v = <org.springframework.context.support.LiveBeansView: java.util.Set applicationContexts>;
interfaceinvoke v.<java.util.Set: boolean add(java.lang.Object)>(v);
exitmonitor v;
label:
goto label;
label:
v := @caughtexception;
exitmonitor v;
throw v;
label:
return;
catch java.lang.Throwable from label to label with label;
catch java.lang.Throwable from label to label with label;
}
static void unregisterApplicationContext(org.springframework.context.ConfigurableApplicationContext)
{
java.lang.Throwable v, v;
java.util.Set v, v, v;
org.springframework.context.ApplicationContextException v;
javax.management.ObjectName v;
org.springframework.core.env.ConfigurableEnvironment v;
javax.management.MBeanServer v;
org.springframework.context.ConfigurableApplicationContext v;
java.lang.String v, v;
boolean v, v;
v := @parameter: org.springframework.context.ConfigurableApplicationContext;
v = <org.springframework.context.support.LiveBeansView: java.util.Set applicationContexts>;
entermonitor v;
label:
v = <org.springframework.context.support.LiveBeansView: java.util.Set applicationContexts>;
v = interfaceinvoke v.<java.util.Set: boolean remove(java.lang.Object)>(v);
if v == 0 goto label;
v = <org.springframework.context.support.LiveBeansView: java.util.Set applicationContexts>;
v = interfaceinvoke v.<java.util.Set: boolean isEmpty()>();
if v == 0 goto label;
label:
v = staticinvoke <java.lang.management.ManagementFactory: javax.management.MBeanServer getPlatformMBeanServer()>();
v = interfaceinvoke v.<org.springframework.context.ConfigurableApplicationContext: org.springframework.core.env.ConfigurableEnvironment getEnvironment()>();
v = interfaceinvoke v.<org.springframework.core.env.ConfigurableEnvironment: java.lang.String getProperty(java.lang.String)>("spring.liveBeansView.mbeanDomain");
v = new javax.management.ObjectName;
v = <org.springframework.context.support.LiveBeansView: java.lang.String applicationName>;
specialinvoke v.<javax.management.ObjectName: void <init>(java.lang.String,java.lang.String,java.lang.String)>(v, "application", v);
interfaceinvoke v.<javax.management.MBeanServer: void unregisterMBean(javax.management.ObjectName)>(v);
label:
<org.springframework.context.support.LiveBeansView: java.lang.String applicationName> = null;
goto label;
label:
v := @caughtexception;
v = new org.springframework.context.ApplicationContextException;
specialinvoke v.<org.springframework.context.ApplicationContextException: void <init>(java.lang.String,java.lang.Throwable)>("Failed to unregister LiveBeansView MBean", v);
throw v;
label:
exitmonitor v;
label:
goto label;
label:
v := @caughtexception;
exitmonitor v;
throw v;
label:
return;
catch java.lang.Throwable from label to label with label;
catch java.lang.Throwable from label to label with label;
}
public void setApplicationContext(org.springframework.context.ApplicationContext)
{
org.springframework.context.support.LiveBeansView v;
org.springframework.context.ApplicationContext v;
boolean v;
v := @this: org.springframework.context.support.LiveBeansView;
v := @parameter: org.springframework.context.ApplicationContext;
v = v instanceof org.springframework.context.ConfigurableApplicationContext;
staticinvoke <org.springframework.util.Assert: void isTrue(boolean,java.lang.String)>(v, "ApplicationContext does not implement ConfigurableApplicationContext");
v.<org.springframework.context.support.LiveBeansView: org.springframework.context.ConfigurableApplicationContext applicationContext> = v;
return;
}
public java.lang.String getSnapshotAsJson()
{
org.springframework.context.ConfigurableApplicationContext v, v;
org.springframework.context.support.LiveBeansView v;
java.util.Set v;
java.lang.String v;
v := @this: org.springframework.context.support.LiveBeansView;
v = v.<org.springframework.context.support.LiveBeansView: org.springframework.context.ConfigurableApplicationContext applicationContext>;
if v == null goto label;
v = v.<org.springframework.context.support.LiveBeansView: org.springframework.context.ConfigurableApplicationContext applicationContext>;
v = staticinvoke <java.util.Collections: java.util.Set singleton(java.lang.Object)>(v);
goto label;
label:
v = virtualinvoke v.<org.springframework.context.support.LiveBeansView: java.util.Set findApplicationContexts()>();
label:
v = virtualinvoke v.<org.springframework.context.support.LiveBeansView: java.lang.String generateJson(java.util.Set)>(v);
return v;
}
protected java.util.Set findApplicationContexts()
{
java.lang.Throwable v;
org.springframework.context.support.LiveBeansView v;
java.util.Set v, v;
java.util.LinkedHashSet v;
v := @this: org.springframework.context.support.LiveBeansView;
v = <org.springframework.context.support.LiveBeansView: java.util.Set applicationContexts>;
entermonitor v;
label:
v = new java.util.LinkedHashSet;
v = <org.springframework.context.support.LiveBeansView: java.util.Set applicationContexts>;
specialinvoke v.<java.util.LinkedHashSet: void <init>(java.util.Collection)>(v);
exitmonitor v;
label:
return v;
label:
v := @caughtexception;
exitmonitor v;
throw v;
catch java.lang.Throwable from label to label with label;
}
protected java.lang.String generateJson(java.util.Set)
{
org.springframework.beans.factory.config.ConfigurableListableBeanFactory v;
boolean v, v, v, v, v;
java.util.Set v;
java.lang.StringBuilder v, v, v, v, v, v, v, v, v, v, v, v, v;
org.springframework.context.support.LiveBeansView v;
java.lang.String[] v, v, v;
int v, v;
org.springframework.beans.factory.config.BeanDefinition v;
java.lang.String v, v, v, v, v, v, v;
java.util.Iterator v;
org.springframework.context.ApplicationContext v, v;
java.lang.Class v;
java.lang.Object v;
v := @this: org.springframework.context.support.LiveBeansView;
v := @parameter: java.util.Set;
v = new java.lang.StringBuilder;
specialinvoke v.<java.lang.StringBuilder: void <init>(java.lang.String)>("[\n");
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 = virtualinvoke v.<java.lang.StringBuilder: java.lang.StringBuilder append(java.lang.String)>("{\n\"context\": \"");
v = interfaceinvoke v.<org.springframework.context.ConfigurableApplicationContext: java.lang.String getId()>();
v = virtualinvoke v.<java.lang.StringBuilder: java.lang.StringBuilder append(java.lang.String)>(v);
virtualinvoke v.<java.lang.StringBuilder: java.lang.StringBuilder append(java.lang.String)>("\",\n");
v = interfaceinvoke v.<org.springframework.context.ConfigurableApplicationContext: org.springframework.context.ApplicationContext getParent()>();
if v == null goto label;
v = virtualinvoke v.<java.lang.StringBuilder: java.lang.StringBuilder append(java.lang.String)>("\"parent\": \"");
v = interfaceinvoke v.<org.springframework.context.ConfigurableApplicationContext: org.springframework.context.ApplicationContext getParent()>();
v = interfaceinvoke v.<org.springframework.context.ApplicationContext: java.lang.String getId()>();
v = virtualinvoke v.<java.lang.StringBuilder: java.lang.StringBuilder append(java.lang.String)>(v);
virtualinvoke v.<java.lang.StringBuilder: java.lang.StringBuilder append(java.lang.String)>("\",\n");
goto label;
label:
virtualinvoke v.<java.lang.StringBuilder: java.lang.StringBuilder append(java.lang.String)>("\"parent\": null,\n");
label:
virtualinvoke v.<java.lang.StringBuilder: java.lang.StringBuilder append(java.lang.String)>("\"beans\": [\n");
v = interfaceinvoke v.<org.springframework.context.ConfigurableApplicationContext: org.springframework.beans.factory.config.ConfigurableListableBeanFactory getBeanFactory()>();
v = interfaceinvoke v.<org.springframework.beans.factory.config.ConfigurableListableBeanFactory: java.lang.String[] getBeanDefinitionNames()>();
v = 0;
v = lengthof v;
v = 0;
label:
if v >= v goto label;
v = v[v];
v = interfaceinvoke v.<org.springframework.beans.factory.config.ConfigurableListableBeanFactory: org.springframework.beans.factory.config.BeanDefinition getBeanDefinition(java.lang.String)>(v);
v = virtualinvoke v.<org.springframework.context.support.LiveBeansView: boolean isBeanEligible(java.lang.String,org.springframework.beans.factory.config.BeanDefinition,org.springframework.beans.factory.config.ConfigurableBeanFactory)>(v, v, v);
if v == 0 goto label;
if v == 0 goto label;
virtualinvoke v.<java.lang.StringBuilder: java.lang.StringBuilder append(java.lang.String)>(",\n");
label:
v = virtualinvoke v.<java.lang.StringBuilder: java.lang.StringBuilder append(java.lang.String)>("{\n\"bean\": \"");
v = virtualinvoke v.<java.lang.StringBuilder: java.lang.StringBuilder append(java.lang.String)>(v);
virtualinvoke v.<java.lang.StringBuilder: java.lang.StringBuilder append(java.lang.String)>("\",\n");
virtualinvoke v.<java.lang.StringBuilder: java.lang.StringBuilder append(java.lang.String)>("\"aliases\": ");
v = interfaceinvoke v.<org.springframework.beans.factory.config.ConfigurableListableBeanFactory: java.lang.String[] getAliases(java.lang.String)>(v);
specialinvoke v.<org.springframework.context.support.LiveBeansView: void appendArray(java.lang.StringBuilder,java.lang.String[])>(v, v);
virtualinvoke v.<java.lang.StringBuilder: java.lang.StringBuilder append(java.lang.String)>(",\n");
v = interfaceinvoke v.<org.springframework.beans.factory.config.BeanDefinition: java.lang.String getScope()>();
v = staticinvoke <org.springframework.util.StringUtils: boolean hasText(java.lang.String)>(v);
if v != 0 goto label;
v = "singleton";
label:
v = virtualinvoke v.<java.lang.StringBuilder: java.lang.StringBuilder append(java.lang.String)>("\"scope\": \"");
v = virtualinvoke v.<java.lang.StringBuilder: java.lang.StringBuilder append(java.lang.String)>(v);
virtualinvoke v.<java.lang.StringBuilder: java.lang.StringBuilder append(java.lang.String)>("\",\n");
v = interfaceinvoke v.<org.springframework.beans.factory.config.ConfigurableListableBeanFactory: java.lang.Class getType(java.lang.String)>(v);
if v == null goto label;
v = virtualinvoke v.<java.lang.StringBuilder: java.lang.StringBuilder append(java.lang.String)>("\"type\": \"");
v = virtualinvoke v.<java.lang.Class: java.lang.String getName()>();
v = virtualinvoke v.<java.lang.StringBuilder: java.lang.StringBuilder append(java.lang.String)>(v);
virtualinvoke v.<java.lang.StringBuilder: java.lang.StringBuilder append(java.lang.String)>("\",\n");
goto label;
label:
virtualinvoke v.<java.lang.StringBuilder: java.lang.StringBuilder append(java.lang.String)>("\"type\": null,\n");
label:
v = virtualinvoke v.<java.lang.StringBuilder: java.lang.StringBuilder append(java.lang.String)>("\"resource\": \"");
v = virtualinvoke v.<org.springframework.context.support.LiveBeansView: java.lang.String getEscapedResourceDescription(org.springframework.beans.factory.config.BeanDefinition)>(v);
v = virtualinvoke v.<java.lang.StringBuilder: java.lang.StringBuilder append(java.lang.String)>(v);
virtualinvoke v.<java.lang.StringBuilder: java.lang.StringBuilder append(java.lang.String)>("\",\n");
virtualinvoke v.<java.lang.StringBuilder: java.lang.StringBuilder append(java.lang.String)>("\"dependencies\": ");
v = interfaceinvoke v.<org.springframework.beans.factory.config.ConfigurableListableBeanFactory: java.lang.String[] getDependenciesForBean(java.lang.String)>(v);
specialinvoke v.<org.springframework.context.support.LiveBeansView: void appendArray(java.lang.StringBuilder,java.lang.String[])>(v, v);
virtualinvoke v.<java.lang.StringBuilder: java.lang.StringBuilder append(java.lang.String)>("\n}");
v = 1;
label:
v = v + 1;
goto label;
label:
virtualinvoke v.<java.lang.StringBuilder: java.lang.StringBuilder append(java.lang.String)>("]\n");
virtualinvoke v.<java.lang.StringBuilder: java.lang.StringBuilder append(java.lang.String)>("}");
v = interfaceinvoke v.<java.util.Iterator: boolean hasNext()>();
if v == 0 goto label;
virtualinvoke v.<java.lang.StringBuilder: java.lang.StringBuilder append(java.lang.String)>(",\n");
goto label;
label:
virtualinvoke v.<java.lang.StringBuilder: java.lang.StringBuilder append(java.lang.String)>("]");
v = virtualinvoke v.<java.lang.StringBuilder: java.lang.String toString()>();
return v;
}
protected boolean isBeanEligible(java.lang.String, org.springframework.beans.factory.config.BeanDefinition, org.springframework.beans.factory.config.ConfigurableBeanFactory)
{
org.springframework.context.support.LiveBeansView v;
int v;
org.springframework.beans.factory.config.BeanDefinition v;
java.lang.String v;
org.springframework.beans.factory.config.ConfigurableBeanFactory v;
boolean v, v, v;
v := @this: org.springframework.context.support.LiveBeansView;
v := @parameter: java.lang.String;
v := @parameter: org.springframework.beans.factory.config.BeanDefinition;
v := @parameter: org.springframework.beans.factory.config.ConfigurableBeanFactory;
v = interfaceinvoke v.<org.springframework.beans.factory.config.BeanDefinition: int getRole()>();
if v == 2 goto label;
v = interfaceinvoke v.<org.springframework.beans.factory.config.BeanDefinition: boolean isLazyInit()>();
if v == 0 goto label;
v = interfaceinvoke v.<org.springframework.beans.factory.config.ConfigurableBeanFactory: boolean containsSingleton(java.lang.String)>(v);
if v == 0 goto label;
label:
v = 1;
goto label;
label:
v = 0;
label:
return v;
}
protected java.lang.String getEscapedResourceDescription(org.springframework.beans.factory.config.BeanDefinition)
{
org.springframework.context.support.LiveBeansView v;
char v;
int v, v, v, v;
org.springframework.beans.factory.config.BeanDefinition v;
java.lang.StringBuilder v, v;
java.lang.String v, v;
v := @this: org.springframework.context.support.LiveBeansView;
v := @parameter: org.springframework.beans.factory.config.BeanDefinition;
v = interfaceinvoke v.<org.springframework.beans.factory.config.BeanDefinition: java.lang.String getResourceDescription()>();
if v != null goto label;
return null;
label:
v = new java.lang.StringBuilder;
v = virtualinvoke v.<java.lang.String: int length()>();
v = v + 16;
specialinvoke v.<java.lang.StringBuilder: void <init>(int)>(v);
v = 0;
label:
v = virtualinvoke v.<java.lang.String: int length()>();
if v >= v goto label;
v = virtualinvoke v.<java.lang.String: char charAt(int)>(v);
if v != 92 goto label;
virtualinvoke v.<java.lang.StringBuilder: java.lang.StringBuilder append(char)>(47);
goto label;
label:
if v != 34 goto label;
v = virtualinvoke v.<java.lang.StringBuilder: java.lang.StringBuilder append(java.lang.String)>("\\");
virtualinvoke v.<java.lang.StringBuilder: java.lang.StringBuilder append(char)>(34);
goto label;
label:
virtualinvoke v.<java.lang.StringBuilder: java.lang.StringBuilder append(char)>(v);
label:
v = v + 1;
goto label;
label:
v = virtualinvoke v.<java.lang.StringBuilder: java.lang.String toString()>();
return v;
}
private void appendArray(java.lang.StringBuilder, java.lang.String[])
{
int v, v;
org.springframework.context.support.LiveBeansView v;
java.lang.StringBuilder v;
java.lang.String[] v;
java.lang.String v;
v := @this: org.springframework.context.support.LiveBeansView;
v := @parameter: java.lang.StringBuilder;
v := @parameter: java.lang.String[];
virtualinvoke v.<java.lang.StringBuilder: java.lang.StringBuilder append(char)>(91);
v = lengthof v;
if v <= 0 goto label;
virtualinvoke v.<java.lang.StringBuilder: java.lang.StringBuilder append(char)>(34);
label:
v = staticinvoke <org.springframework.util.StringUtils: java.lang.String arrayToDelimitedString(java.lang.Object[],java.lang.String)>(v, "\", \"");
virtualinvoke v.<java.lang.StringBuilder: java.lang.StringBuilder append(java.lang.String)>(v);
v = lengthof v;
if v <= 0 goto label;
virtualinvoke v.<java.lang.StringBuilder: java.lang.StringBuilder append(char)>(34);
label:
virtualinvoke v.<java.lang.StringBuilder: java.lang.StringBuilder append(char)>(93);
return;
}
static void <clinit>()
{
java.util.LinkedHashSet v;
v = new java.util.LinkedHashSet;
specialinvoke v.<java.util.LinkedHashSet: void <init>()>();
<org.springframework.context.support.LiveBeansView: java.util.Set applicationContexts> = v;
return;
}
}