public class org.glassfish.ejb.embedded.EJBContainerProviderImpl extends java.lang.Object implements jakarta.ejb.spi.EJBContainerProvider
{
private static final java.lang.String GF_PROVIDER_NAME;
private static final java.lang.String GF_EJB_EMBEDDED_PROPERTY_START;
protected static final java.lang.String KEEP_TEMPORARY_FILES;
private static final java.lang.String SKIP_CLIENT_MODULES;
private static final java.lang.String GF_INSTALLATION_ROOT;
private static final java.lang.String GF_INSTANCE_ROOT;
private static final java.lang.String GF_DOMAIN_FILE;
private static final java.lang.String GF_INSTANCE_REUSE;
private static final java.lang.String GF_WEB_HTTP_PORT;
private static final java.lang.String WEAVING;
private static final java.util.jar.Attributes$Name ATTRIBUTE_NAME_SKIP;
private static final java.lang.String[] KNOWN_PACKAGES;
private static final java.lang.String[] ATTRIBUTE_VALUES_OK;
private static final java.util.logging.Logger _logger;
private static final com.sun.enterprise.util.i18n.StringManager localStrings;
private static final java.lang.Object lock;
private static org.glassfish.ejb.embedded.EJBContainerImpl container;
private static org.glassfish.embeddable.GlassFishRuntime runtime;
private static com.sun.enterprise.deploy.shared.ArchiveFactory archiveFactory;
private static java.lang.Class[] ejbAnnotations;
public void <init>()
{
org.glassfish.ejb.embedded.EJBContainerProviderImpl v;
v := @this: org.glassfish.ejb.embedded.EJBContainerProviderImpl;
specialinvoke v.<java.lang.Object: void <init>()>();
return;
}
public jakarta.ejb.embeddable.EJBContainer createEJBContainer(java.util.Map) throws jakarta.ejb.EJBException
{
java.lang.Throwable v, v;
com.sun.enterprise.util.i18n.StringManager v;
java.util.logging.Level v, v;
java.util.Map v;
java.lang.String v, v, v;
jakarta.ejb.EJBException v, v;
boolean v, v, v;
java.util.Set v;
org.glassfish.ejb.embedded.EJBContainerImpl v, v, v, v;
org.glassfish.ejb.embedded.EJBContainerProviderImpl v;
java.util.logging.Logger v, v;
org.glassfish.ejb.embedded.EJBContainerProviderImpl$Locations v;
java.lang.Object v, v;
v := @this: org.glassfish.ejb.embedded.EJBContainerProviderImpl;
v := @parameter: java.util.Map;
if v == null goto label;
v = interfaceinvoke v.<java.util.Map: java.lang.Object get(java.lang.Object)>("jakarta.ejb.embeddable.provider");
if v == null goto label;
v = interfaceinvoke v.<java.util.Map: java.lang.Object get(java.lang.Object)>("jakarta.ejb.embeddable.provider");
v = <org.glassfish.ejb.embedded.EJBContainerProviderImpl: java.lang.String GF_PROVIDER_NAME>;
v = virtualinvoke v.<java.lang.Object: boolean equals(java.lang.Object)>(v);
if v == 0 goto label;
label:
v = <org.glassfish.ejb.embedded.EJBContainerProviderImpl: org.glassfish.ejb.embedded.EJBContainerImpl container>;
if v == null goto label;
v = <org.glassfish.ejb.embedded.EJBContainerProviderImpl: org.glassfish.ejb.embedded.EJBContainerImpl container>;
v = virtualinvoke v.<org.glassfish.ejb.embedded.EJBContainerImpl: boolean isOpen()>();
if v == 0 goto label;
v = new jakarta.ejb.EJBException;
v = <org.glassfish.ejb.embedded.EJBContainerProviderImpl: com.sun.enterprise.util.i18n.StringManager localStrings>;
v = virtualinvoke v.<com.sun.enterprise.util.i18n.StringManager: java.lang.String getString(java.lang.String)>("ejb.embedded.exception_exists_container");
specialinvoke v.<jakarta.ejb.EJBException: void <init>(java.lang.String)>(v);
throw v;
label:
v = specialinvoke v.<org.glassfish.ejb.embedded.EJBContainerProviderImpl: org.glassfish.ejb.embedded.EJBContainerProviderImpl$Locations getLocations(java.util.Map)>(v);
label:
specialinvoke v.<org.glassfish.ejb.embedded.EJBContainerProviderImpl: org.glassfish.ejb.embedded.EJBContainerProviderImpl$Locations createContainer(java.util.Map,org.glassfish.ejb.embedded.EJBContainerProviderImpl$Locations)>(v, v);
v = specialinvoke v.<org.glassfish.ejb.embedded.EJBContainerProviderImpl: java.util.Set addModules(java.util.Map,org.glassfish.ejb.embedded.EJBContainerProviderImpl$Locations)>(v, v);
v = staticinvoke <org.glassfish.ejb.embedded.DeploymentElement: boolean hasEJBModule(java.util.Set)>(v);
if v != 0 goto label;
v = <org.glassfish.ejb.embedded.EJBContainerProviderImpl: java.util.logging.Logger _logger>;
v = <java.util.logging.Level: java.util.logging.Level SEVERE>;
virtualinvoke v.<java.util.logging.Logger: void log(java.util.logging.Level,java.lang.String)>(v, "ejb.embedded.no_modules_found");
goto label;
label:
v = <org.glassfish.ejb.embedded.EJBContainerProviderImpl: org.glassfish.ejb.embedded.EJBContainerImpl container>;
virtualinvoke v.<org.glassfish.ejb.embedded.EJBContainerImpl: void deploy(java.util.Map,java.util.Set)>(v, v);
label:
v = <org.glassfish.ejb.embedded.EJBContainerProviderImpl: org.glassfish.ejb.embedded.EJBContainerImpl container>;
label:
return v;
label:
v := @caughtexception;
throw v;
label:
v := @caughtexception;
v = <org.glassfish.ejb.embedded.EJBContainerProviderImpl: java.util.logging.Logger _logger>;
v = <java.util.logging.Level: java.util.logging.Level SEVERE>;
virtualinvoke v.<java.util.logging.Logger: void log(java.util.logging.Level,java.lang.String,java.lang.Throwable)>(v, "ejb.embedded.exception_instantiating", v);
v = new jakarta.ejb.EJBException;
v = virtualinvoke v.<java.lang.Throwable: java.lang.String getMessage()>();
specialinvoke v.<jakarta.ejb.EJBException: void <init>(java.lang.String)>(v);
throw v;
label:
return null;
catch jakarta.ejb.EJBException from label to label with label;
catch java.lang.Throwable from label to label with label;
}
private org.glassfish.ejb.embedded.EJBContainerProviderImpl$Locations createContainer(java.util.Map, org.glassfish.ejb.embedded.EJBContainerProviderImpl$Locations) throws jakarta.ejb.EJBException
{
java.util.Map v;
org.glassfish.embeddable.GlassFishRuntime v, v, v, v, v;
org.glassfish.embeddable.GlassFish v;
org.glassfish.ejb.embedded.EJBContainerProviderImpl v;
java.lang.Exception v, v;
java.lang.Throwable v;
org.glassfish.embeddable.BootstrapProperties v;
java.lang.String v, v, v, v, v, v, v, v, v, v, v, v, v;
java.util.Properties v;
java.lang.Class[] v;
java.io.File v, v, v, v, v, v, v, v, v, v, v, v, v, v;
java.net.URI v, v;
jakarta.ejb.EJBException v;
boolean v, v, v, v;
org.glassfish.ejb.embedded.EJBContainerImpl v, v, v;
java.util.logging.Logger v, v, v, v, v, v, v;
java.util.logging.Level v, v;
org.glassfish.embeddable.GlassFishProperties v;
org.glassfish.ejb.embedded.EJBContainerProviderImpl$Locations v;
java.lang.Class v;
java.lang.Object v, v, v, v, v;
v := @this: org.glassfish.ejb.embedded.EJBContainerProviderImpl;
v := @parameter: java.util.Map;
v := @parameter: org.glassfish.ejb.embedded.EJBContainerProviderImpl$Locations;
v = <org.glassfish.ejb.embedded.EJBContainerProviderImpl: java.lang.Object lock>;
entermonitor v;
label:
v = <org.glassfish.ejb.embedded.EJBContainerProviderImpl: org.glassfish.embeddable.GlassFishRuntime runtime>;
if v == null goto label;
v = <org.glassfish.ejb.embedded.EJBContainerProviderImpl: org.glassfish.embeddable.GlassFishRuntime runtime>;
virtualinvoke v.<org.glassfish.embeddable.GlassFishRuntime: void shutdown()>();
label:
v = new org.glassfish.embeddable.BootstrapProperties;
specialinvoke v.<org.glassfish.embeddable.BootstrapProperties: void <init>()>();
v = new java.util.Properties;
specialinvoke v.<java.util.Properties: void <init>()>();
if v == null goto label;
specialinvoke v.<org.glassfish.ejb.embedded.EJBContainerProviderImpl: void copyUserProperties(java.util.Map,java.util.Properties)>(v, v);
label:
v = virtualinvoke v.<java.util.Properties: java.lang.String getProperty(java.lang.String)>("org.glassfish.persistence.embedded.weaving.enabled");
if v != null goto label;
virtualinvoke v.<java.util.Properties: java.lang.Object setProperty(java.lang.String,java.lang.String)>("org.glassfish.persistence.embedded.weaving.enabled", "false");
label:
v = new org.glassfish.embeddable.GlassFishProperties;
specialinvoke v.<org.glassfish.embeddable.GlassFishProperties: void <init>(java.util.Properties)>(v);
v = staticinvoke <java.lang.Boolean: boolean getBoolean(java.lang.String)>("org.glassfish.ejb.embedded.keep-temporary-files");
if v == 0 goto label;
virtualinvoke v.<org.glassfish.embeddable.GlassFishProperties: void setProperty(java.lang.String,java.lang.String)>("org.glassfish.embeddable.autoDelete", "false");
virtualinvoke v.<org.glassfish.embeddable.GlassFishProperties: void setConfigFileReadOnly(boolean)>(0);
label:
v = v.<org.glassfish.ejb.embedded.EJBContainerProviderImpl$Locations: java.io.File installed_root>;
if v == null goto label;
v = v.<org.glassfish.ejb.embedded.EJBContainerProviderImpl$Locations: java.io.File instance_root>;
if v == null goto label;
v = <org.glassfish.ejb.embedded.EJBContainerProviderImpl: java.util.logging.Logger _logger>;
v = v.<org.glassfish.ejb.embedded.EJBContainerProviderImpl$Locations: java.io.File installed_root>;
v = virtualinvoke v.<java.io.File: java.lang.String getCanonicalPath()>();
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[])>("[EJBContainerProviderImpl] Using installation location \u0001");
virtualinvoke v.<java.util.logging.Logger: void info(java.lang.String)>(v);
v = v.<org.glassfish.ejb.embedded.EJBContainerProviderImpl$Locations: java.io.File installed_root>;
v = virtualinvoke v.<java.io.File: java.lang.String getCanonicalPath()>();
virtualinvoke v.<org.glassfish.embeddable.BootstrapProperties: void setInstallRoot(java.lang.String)>(v);
label:
v = v.<org.glassfish.ejb.embedded.EJBContainerProviderImpl$Locations: java.io.File instance_root>;
if v == null goto label;
v = v.<org.glassfish.ejb.embedded.EJBContainerProviderImpl$Locations: boolean reuse_instance_location>;
if v == 0 goto label;
v = <org.glassfish.ejb.embedded.EJBContainerProviderImpl: java.util.logging.Logger _logger>;
v = <java.util.logging.Level: java.util.logging.Level FINE>;
v = virtualinvoke v.<java.util.logging.Logger: boolean isLoggable(java.util.logging.Level)>(v);
if v == 0 goto label;
v = <org.glassfish.ejb.embedded.EJBContainerProviderImpl: java.util.logging.Logger _logger>;
v = v.<org.glassfish.ejb.embedded.EJBContainerProviderImpl$Locations: java.io.File instance_root>;
v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (java.io.File)>(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[])>("[EJBContainerProviderImpl] Reusing instance location at: \u0001");
virtualinvoke v.<java.util.logging.Logger: void fine(java.lang.String)>(v);
label:
v = <org.glassfish.ejb.embedded.EJBContainerProviderImpl: java.util.logging.Logger _logger>;
v = v.<org.glassfish.ejb.embedded.EJBContainerProviderImpl$Locations: java.io.File instance_root>;
v = virtualinvoke v.<java.io.File: java.lang.String getCanonicalPath()>();
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[])>("[EJBContainerProviderImpl] Using instance location: \u0001");
virtualinvoke v.<java.util.logging.Logger: void info(java.lang.String)>(v);
v = v.<org.glassfish.ejb.embedded.EJBContainerProviderImpl$Locations: java.io.File instance_root>;
v = virtualinvoke v.<java.io.File: java.lang.String getCanonicalPath()>();
virtualinvoke v.<org.glassfish.embeddable.GlassFishProperties: void setInstanceRoot(java.lang.String)>(v);
goto label;
label:
v = v.<org.glassfish.ejb.embedded.EJBContainerProviderImpl$Locations: java.io.File domain_file>;
if v == null goto label;
v = <org.glassfish.ejb.embedded.EJBContainerProviderImpl: java.util.logging.Logger _logger>;
v = v.<org.glassfish.ejb.embedded.EJBContainerProviderImpl$Locations: java.io.File domain_file>;
v = virtualinvoke v.<java.io.File: java.net.URI toURI()>();
v = virtualinvoke v.<java.net.URI: java.lang.String toString()>();
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[])>("[EJBContainerProviderImpl] Using config file location: \u0001");
virtualinvoke v.<java.util.logging.Logger: void info(java.lang.String)>(v);
v = v.<org.glassfish.ejb.embedded.EJBContainerProviderImpl$Locations: java.io.File domain_file>;
v = virtualinvoke v.<java.io.File: java.net.URI toURI()>();
v = virtualinvoke v.<java.net.URI: java.lang.String toString()>();
virtualinvoke v.<org.glassfish.embeddable.GlassFishProperties: void setConfigFileURI(java.lang.String)>(v);
label:
specialinvoke v.<org.glassfish.ejb.embedded.EJBContainerProviderImpl: void addWebContainerIfRequested(java.util.Map,org.glassfish.embeddable.GlassFishProperties)>(v, v);
v = staticinvoke <org.glassfish.embeddable.GlassFishRuntime: org.glassfish.embeddable.GlassFishRuntime bootstrap(org.glassfish.embeddable.BootstrapProperties)>(v);
<org.glassfish.ejb.embedded.EJBContainerProviderImpl: org.glassfish.embeddable.GlassFishRuntime runtime> = v;
v = <org.glassfish.ejb.embedded.EJBContainerProviderImpl: java.util.logging.Logger _logger>;
v = <org.glassfish.ejb.embedded.EJBContainerProviderImpl: org.glassfish.embeddable.GlassFishRuntime runtime>;
v = virtualinvoke v.<java.lang.Object: java.lang.Class getClass()>();
v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (java.lang.Class)>(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[])>("[EJBContainerProviderImpl] Using runtime class: \u0001");
virtualinvoke v.<java.util.logging.Logger: void info(java.lang.String)>(v);
v = <org.glassfish.ejb.embedded.EJBContainerProviderImpl: org.glassfish.embeddable.GlassFishRuntime runtime>;
v = virtualinvoke v.<org.glassfish.embeddable.GlassFishRuntime: org.glassfish.embeddable.GlassFish newGlassFish(org.glassfish.embeddable.GlassFishProperties)>(v);
v = v.<org.glassfish.ejb.embedded.EJBContainerProviderImpl$Locations: java.io.File instance_root>;
if v == null goto label;
v = v.<org.glassfish.ejb.embedded.EJBContainerProviderImpl$Locations: boolean reuse_instance_location>;
if v != 0 goto label;
interfaceinvoke v.<org.glassfish.embeddable.GlassFish: void start()>();
v = interfaceinvoke v.<org.glassfish.embeddable.GlassFish: java.lang.Object getService(java.lang.Class)>(class "Lcom/sun/enterprise/security/EmbeddedSecurity;");
v = interfaceinvoke v.<org.glassfish.embeddable.GlassFish: java.lang.Object getService(java.lang.Class)>(class "Lorg/glassfish/hk2/api/ServiceLocator;");
interfaceinvoke v.<org.glassfish.embeddable.GlassFish: void stop()>();
if v == null goto label;
v = v.<org.glassfish.ejb.embedded.EJBContainerProviderImpl$Locations: java.io.File instance_root>;
v = v.<org.glassfish.ejb.embedded.EJBContainerProviderImpl$Locations: java.io.File domain_file>;
interfaceinvoke v.<com.sun.enterprise.security.EmbeddedSecurity: void copyConfigFiles(org.glassfish.hk.api.ServiceLocator,java.io.File,java.io.File)>(v, v, v);
label:
v = new org.glassfish.ejb.embedded.EJBContainerImpl;
specialinvoke v.<org.glassfish.ejb.embedded.EJBContainerImpl: void <init>(org.glassfish.embeddable.GlassFish)>(v);
<org.glassfish.ejb.embedded.EJBContainerProviderImpl: org.glassfish.ejb.embedded.EJBContainerImpl container> = v;
specialinvoke v.<org.glassfish.ejb.embedded.EJBContainerProviderImpl: void validateInstanceDirectory()>();
v = interfaceinvoke v.<org.glassfish.embeddable.GlassFish: java.lang.Object getService(java.lang.Class)>(class "Lcom/sun/enterprise/deploy/shared/ArchiveFactory;");
<org.glassfish.ejb.embedded.EJBContainerProviderImpl: com.sun.enterprise.deploy.shared.ArchiveFactory archiveFactory> = v;
v = interfaceinvoke v.<org.glassfish.embeddable.GlassFish: java.lang.Object getService(java.lang.Class,java.lang.String)>(class "Lorg/glassfish/api/container/Sniffer;", "Ejb");
v = interfaceinvoke v.<org.glassfish.api.container.Sniffer: java.lang.Class[] getAnnotationTypes()>();
<org.glassfish.ejb.embedded.EJBContainerProviderImpl: java.lang.Class[] ejbAnnotations> = v;
label:
goto label;
label:
v := @caughtexception;
label:
v = <org.glassfish.ejb.embedded.EJBContainerProviderImpl: org.glassfish.ejb.embedded.EJBContainerImpl container>;
if v == null goto label;
v = <org.glassfish.ejb.embedded.EJBContainerProviderImpl: org.glassfish.ejb.embedded.EJBContainerImpl container>;
virtualinvoke v.<org.glassfish.ejb.embedded.EJBContainerImpl: void stop()>();
label:
goto label;
label:
v := @caughtexception;
v = <org.glassfish.ejb.embedded.EJBContainerProviderImpl: java.util.logging.Logger _logger>;
v = <java.util.logging.Level: java.util.logging.Level SEVERE>;
v = virtualinvoke v.<java.lang.Exception: java.lang.String getMessage()>();
virtualinvoke v.<java.util.logging.Logger: void log(java.util.logging.Level,java.lang.String,java.lang.Throwable)>(v, v, v);
label:
<org.glassfish.ejb.embedded.EJBContainerProviderImpl: org.glassfish.ejb.embedded.EJBContainerImpl container> = null;
v = new jakarta.ejb.EJBException;
specialinvoke v.<jakarta.ejb.EJBException: void <init>(java.lang.Exception)>(v);
throw v;
label:
exitmonitor v;
label:
goto label;
label:
v := @caughtexception;
exitmonitor v;
throw v;
label:
return v;
catch java.lang.Exception from label to label with label;
catch java.lang.Exception from label to label with label;
catch java.lang.Throwable from label to label with label;
}
private java.util.Set addModules(java.util.Map, org.glassfish.ejb.embedded.EJBContainerProviderImpl$Locations)
{
java.util.Map v;
jakarta.ejb.EJBException v;
boolean v, v, v, v, v, v, v, v, v, v;
java.util.Set v;
org.glassfish.ejb.embedded.EJBContainerProviderImpl v;
java.util.logging.Logger v, v;
java.lang.String[] v, v;
java.util.HashMap v;
java.util.logging.Level v;
java.util.HashSet v;
java.lang.StringBuffer v, v;
int v, v, v, v, v, v, v, v;
java.lang.Boolean v, v;
java.lang.String v, v, v, v, v, v, v;
java.util.Iterator v;
java.io.File v, v;
org.glassfish.ejb.embedded.EJBContainerProviderImpl$Locations v;
java.lang.Object v, v, v, v;
java.io.File[] v;
v := @this: org.glassfish.ejb.embedded.EJBContainerProviderImpl;
v := @parameter: java.util.Map;
v := @parameter: org.glassfish.ejb.embedded.EJBContainerProviderImpl$Locations;
v = new java.util.HashSet;
specialinvoke v.<java.util.HashSet: void <init>()>();
if v != null goto label;
v = null;
goto label;
label:
v = interfaceinvoke v.<java.util.Map: java.lang.Object get(java.lang.Object)>("jakarta.ejb.embeddable.modules");
label:
v = specialinvoke v.<org.glassfish.ejb.embedded.EJBContainerProviderImpl: boolean getBooleanProperty(java.util.Map,java.lang.String)>(v, "org.glassfish.ejb.embedded.skip-client-modules");
v = new java.util.HashMap;
specialinvoke v.<java.util.HashMap: void <init>()>();
if v == null goto label;
v = v instanceof java.lang.String;
if v == 0 goto label;
v = staticinvoke <java.lang.Boolean: java.lang.Boolean valueOf(boolean)>(0);
interfaceinvoke v.<java.util.Map: java.lang.Object put(java.lang.Object,java.lang.Object)>(v, v);
goto label;
label:
v = v instanceof java.lang.String[];
if v == 0 goto label;
v = v;
v = lengthof v;
v = 0;
label:
if v >= v goto label;
v = v[v];
v = staticinvoke <java.lang.Boolean: java.lang.Boolean valueOf(boolean)>(0);
interfaceinvoke v.<java.util.Map: java.lang.Object put(java.lang.Object,java.lang.Object)>(v, v);
v = v + 1;
goto label;
label:
v = v instanceof java.io.File;
if v == 0 goto label;
specialinvoke v.<org.glassfish.ejb.embedded.EJBContainerProviderImpl: void addModule(org.glassfish.ejb.embedded.EJBContainerProviderImpl$Locations,java.util.Set,java.util.Map,java.io.File)>(v, v, v, v);
goto label;
label:
v = v instanceof java.io.File[];
if v == 0 goto label;
v = v;
v = lengthof v;
v = 0;
label:
if v >= v goto label;
v = v[v];
specialinvoke v.<org.glassfish.ejb.embedded.EJBContainerProviderImpl: void addModule(org.glassfish.ejb.embedded.EJBContainerProviderImpl$Locations,java.util.Set,java.util.Map,java.io.File)>(v, v, v, v);
v = v + 1;
goto label;
label:
v = interfaceinvoke v.<java.util.Set: boolean isEmpty()>();
if v == 0 goto label;
v = staticinvoke <java.lang.System: java.lang.String getProperty(java.lang.String)>("java.class.path");
v = <org.glassfish.ejb.embedded.EJBContainerProviderImpl: java.util.logging.Logger _logger>;
v = <java.util.logging.Level: java.util.logging.Level FINE>;
v = virtualinvoke v.<java.util.logging.Logger: boolean isLoggable(java.util.logging.Level)>(v);
if v == 0 goto label;
v = <org.glassfish.ejb.embedded.EJBContainerProviderImpl: java.util.logging.Logger _logger>;
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[])>("[EJBContainerProviderImpl] Looking for EJB modules in classpath: \u0001");
virtualinvoke v.<java.util.logging.Logger: void fine(java.lang.String)>(v);
label:
v = <java.io.File: java.lang.String pathSeparator>;
v = virtualinvoke v.<java.lang.String: java.lang.String[] split(java.lang.String)>(v);
v = lengthof v;
v = 0;
label:
if v >= v goto label;
v = v[v];
v = new java.io.File;
specialinvoke v.<java.io.File: void <init>(java.lang.String)>(v);
specialinvoke v.<org.glassfish.ejb.embedded.EJBContainerProviderImpl: void addModule(org.glassfish.ejb.embedded.EJBContainerProviderImpl$Locations,java.util.Set,java.util.Map,java.io.File,boolean)>(v, v, v, v, v);
v = v + 1;
goto label;
label:
v = interfaceinvoke v.<java.util.Map: boolean isEmpty()>();
if v != 0 goto label;
v = new java.lang.StringBuffer;
specialinvoke v.<java.lang.StringBuffer: void <init>()>();
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 = virtualinvoke v.<java.lang.Boolean: boolean booleanValue()>();
if v != 0 goto label;
v = interfaceinvoke v.<java.util.Map$Entry: java.lang.Object getKey()>();
v = virtualinvoke v.<java.lang.StringBuffer: java.lang.StringBuffer append(java.lang.String)>(v);
virtualinvoke v.<java.lang.StringBuffer: java.lang.StringBuffer append(java.lang.String)>(", ");
goto label;
label:
v = virtualinvoke v.<java.lang.StringBuffer: int length()>();
if v <= 0 goto label;
v = new jakarta.ejb.EJBException;
v = v - 2;
v = virtualinvoke v.<java.lang.StringBuffer: java.lang.String substring(int,int)>(0, v);
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[])>("Modules: [\u] do not match an entry in the classpath");
specialinvoke v.<jakarta.ejb.EJBException: void <init>(java.lang.String)>(v);
throw v;
label:
return v;
}
private org.glassfish.ejb.embedded.DeploymentElement getRequestedEJBModuleOrLibrary(java.io.File, java.util.Map) throws java.lang.Exception
{
org.glassfish.ejb.deployment.io.EjbDeploymentDescriptorFile v;
org.glassfish.deployment.common.ModuleDescriptor v;
org.glassfish.api.deployment.archive.ReadableArchive v;
java.util.Map v;
boolean v, v, v, v, v, v, v, v, v;
org.glassfish.ejb.embedded.EJBContainerProviderImpl v;
java.util.logging.Logger v, v, v, v, v;
org.glassfish.deployment.common.Descriptor v;
java.lang.Throwable v;
java.util.logging.Level v, v;
com.sun.enterprise.deploy.shared.ArchiveFactory v;
java.lang.Boolean v;
java.lang.String v, v, v, v, v, v;
java.lang.Class[] v;
org.glassfish.deployment.common.GenericAnnotationDetector v;
java.io.File v;
org.glassfish.ejb.embedded.DeploymentElement v, v, v, v;
java.lang.Object v;
java.io.InputStream v;
v := @this: org.glassfish.ejb.embedded.EJBContainerProviderImpl;
v := @parameter: java.io.File;
v := @parameter: java.util.Map;
v = null;
v = virtualinvoke v.<java.io.File: java.lang.String getName()>();
v = <org.glassfish.ejb.embedded.EJBContainerProviderImpl: java.util.logging.Logger _logger>;
v = <java.util.logging.Level: java.util.logging.Level FINE>;
v = virtualinvoke v.<java.util.logging.Logger: boolean isLoggable(java.util.logging.Level)>(v);
if v == 0 goto label;
v = <org.glassfish.ejb.embedded.EJBContainerProviderImpl: java.util.logging.Logger _logger>;
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[])>("... Testing ... \u0001");
virtualinvoke v.<java.util.logging.Logger: void fine(java.lang.String)>(v);
label:
v = null;
v = null;
label:
v = staticinvoke <org.glassfish.deployment.common.DeploymentUtils: java.lang.String getDefaultEEName(java.lang.String)>(v);
v = <org.glassfish.ejb.embedded.EJBContainerProviderImpl: com.sun.enterprise.deploy.shared.ArchiveFactory archiveFactory>;
v = virtualinvoke v.<com.sun.enterprise.deploy.shared.ArchiveFactory: org.glassfish.api.deployment.archive.ReadableArchive openArchive(java.io.File)>(v);
v = specialinvoke v.<org.glassfish.ejb.embedded.EJBContainerProviderImpl: java.io.InputStream getDeploymentDescriptor(org.glassfish.api.deployment.archive.ReadableArchive)>(v);
if v == null goto label;
v = 1;
v = new org.glassfish.ejb.deployment.io.EjbDeploymentDescriptorFile;
specialinvoke v.<org.glassfish.ejb.deployment.io.EjbDeploymentDescriptorFile: void <init>()>();
virtualinvoke v.<org.glassfish.ejb.deployment.io.EjbDeploymentDescriptorFile: void setXMLValidation(boolean)>(0);
v = virtualinvoke v.<org.glassfish.ejb.deployment.io.EjbDeploymentDescriptorFile: org.glassfish.deployment.common.Descriptor read(java.io.InputStream)>(v);
v = virtualinvoke v.<com.sun.enterprise.deployment.EjbBundleDescriptor: org.glassfish.deployment.common.ModuleDescriptor getModuleDescriptor()>();
virtualinvoke v.<org.glassfish.deployment.common.ModuleDescriptor: void setArchiveUri(java.lang.String)>(v);
v = virtualinvoke v.<org.glassfish.deployment.common.ModuleDescriptor: java.lang.String getModuleName()>();
goto label;
label:
v = new org.glassfish.deployment.common.GenericAnnotationDetector;
v = <org.glassfish.ejb.embedded.EJBContainerProviderImpl: java.lang.Class[] ejbAnnotations>;
specialinvoke v.<org.glassfish.deployment.common.GenericAnnotationDetector: void <init>(java.lang.Class[])>(v);
v = virtualinvoke v.<org.glassfish.deployment.common.GenericAnnotationDetector: boolean hasAnnotationInArchive(org.glassfish.api.deployment.archive.ReadableArchive)>(v);
label:
v = <org.glassfish.ejb.embedded.EJBContainerProviderImpl: java.util.logging.Logger _logger>;
v = <java.util.logging.Level: java.util.logging.Level FINE>;
v = virtualinvoke v.<java.util.logging.Logger: boolean isLoggable(java.util.logging.Level)>(v);
if v == 0 goto label;
v = <org.glassfish.ejb.embedded.EJBContainerProviderImpl: java.util.logging.Logger _logger>;
v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (boolean)>(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[])>("... is EJB module: \u0001");
virtualinvoke v.<java.util.logging.Logger: void fine(java.lang.String)>(v);
if v == 0 goto label;
v = <org.glassfish.ejb.embedded.EJBContainerProviderImpl: java.util.logging.Logger _logger>;
v = v;
v = interfaceinvoke v.<java.util.Map: boolean isEmpty()>();
if v != 0 goto label;
v = interfaceinvoke v.<java.util.Map: boolean containsKey(java.lang.Object)>(v);
if v == 0 goto label;
label:
v = 1;
goto label;
label:
v = 0;
label:
v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (java.lang.String,boolean)>(v, 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[])>("... is Requested EJB module [\u]: \u0001");
virtualinvoke v.<java.util.logging.Logger: void fine(java.lang.String)>(v);
label:
if v == 0 goto label;
v = interfaceinvoke v.<java.util.Map: boolean isEmpty()>();
if v == 0 goto label;
label:
v = new org.glassfish.ejb.embedded.DeploymentElement;
specialinvoke v.<org.glassfish.ejb.embedded.DeploymentElement: void <init>(java.io.File,boolean,java.lang.String)>(v, v, v);
v = v;
goto label;
label:
v = interfaceinvoke v.<java.util.Map: boolean containsKey(java.lang.Object)>(v);
if v == 0 goto label;
v = interfaceinvoke v.<java.util.Map: java.lang.Object get(java.lang.Object)>(v);
v = virtualinvoke v.<java.lang.Boolean: boolean booleanValue()>();
if v != 0 goto label;
v = new org.glassfish.ejb.embedded.DeploymentElement;
specialinvoke v.<org.glassfish.ejb.embedded.DeploymentElement: void <init>(java.io.File,boolean,java.lang.String)>(v, v, v);
v = v;
v = staticinvoke <java.lang.Boolean: java.lang.Boolean valueOf(boolean)>(1);
interfaceinvoke v.<java.util.Map: java.lang.Object put(java.lang.Object,java.lang.Object)>(v, v);
label:
v = v;
label:
if v == null goto label;
interfaceinvoke v.<org.glassfish.api.deployment.archive.ReadableArchive: void close()>();
label:
if v == null goto label;
virtualinvoke v.<java.io.InputStream: void close()>();
label:
return v;
label:
v := @caughtexception;
if v == null goto label;
interfaceinvoke v.<org.glassfish.api.deployment.archive.ReadableArchive: void close()>();
label:
if v == null goto label;
virtualinvoke v.<java.io.InputStream: void close()>();
label:
throw v;
catch java.lang.Throwable from label to label with label;
}
private void addModule(org.glassfish.ejb.embedded.EJBContainerProviderImpl$Locations, java.util.Set, java.util.Map, java.io.File)
{
java.util.Map v;
java.util.Set v;
org.glassfish.ejb.embedded.EJBContainerProviderImpl v;
java.io.File v;
org.glassfish.ejb.embedded.EJBContainerProviderImpl$Locations v;
v := @this: org.glassfish.ejb.embedded.EJBContainerProviderImpl;
v := @parameter: org.glassfish.ejb.embedded.EJBContainerProviderImpl$Locations;
v := @parameter: java.util.Set;
v := @parameter: java.util.Map;
v := @parameter: java.io.File;
specialinvoke v.<org.glassfish.ejb.embedded.EJBContainerProviderImpl: void addModule(org.glassfish.ejb.embedded.EJBContainerProviderImpl$Locations,java.util.Set,java.util.Map,java.io.File,boolean)>(v, v, v, v, 0);
return;
}
private void addModule(org.glassfish.ejb.embedded.EJBContainerProviderImpl$Locations, java.util.Set, java.util.Map, java.io.File, boolean)
{
java.util.logging.Level v, v;
java.util.Map v;
java.lang.String v, v, v;
boolean v, v, v, v, v;
java.util.Set v;
org.glassfish.ejb.embedded.EJBContainerProviderImpl v;
java.util.logging.Logger v, v, v;
java.io.File v, v;
java.lang.Exception v;
org.glassfish.ejb.embedded.EJBContainerProviderImpl$Locations v;
org.glassfish.ejb.embedded.DeploymentElement v;
v := @this: org.glassfish.ejb.embedded.EJBContainerProviderImpl;
v := @parameter: org.glassfish.ejb.embedded.EJBContainerProviderImpl$Locations;
v := @parameter: java.util.Set;
v := @parameter: java.util.Map;
v := @parameter: java.io.File;
v := @parameter: boolean;
label:
v = virtualinvoke v.<java.io.File: boolean exists()>();
if v == 0 goto label;
v = specialinvoke v.<org.glassfish.ejb.embedded.EJBContainerProviderImpl: boolean skipJar(java.io.File,org.glassfish.ejb.embedded.EJBContainerProviderImpl$Locations,boolean)>(v, v, v);
if v != 0 goto label;
v = specialinvoke v.<org.glassfish.ejb.embedded.EJBContainerProviderImpl: org.glassfish.ejb.embedded.DeploymentElement getRequestedEJBModuleOrLibrary(java.io.File,java.util.Map)>(v, v);
if v == null goto label;
v = <org.glassfish.ejb.embedded.EJBContainerProviderImpl: java.util.logging.Logger _logger>;
v = <java.util.logging.Level: java.util.logging.Level FINE>;
v = virtualinvoke v.<java.util.logging.Logger: boolean isLoggable(java.util.logging.Level)>(v);
if v == 0 goto label;
v = <org.glassfish.ejb.embedded.EJBContainerProviderImpl: java.util.logging.Logger _logger>;
v = virtualinvoke v.<org.glassfish.ejb.embedded.DeploymentElement: boolean isEJBModule()>();
if v == 0 goto label;
v = "EJB Module";
goto label;
label:
v = "library";
label:
v = virtualinvoke v.<org.glassfish.ejb.embedded.DeploymentElement: java.io.File getElement()>();
v = virtualinvoke v.<java.io.File: java.lang.String getName()>();
v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (java.lang.String,java.lang.String)>(v, 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[])>("... Added \u .... \u0001");
virtualinvoke v.<java.util.logging.Logger: void fine(java.lang.String)>(v);
label:
interfaceinvoke v.<java.util.Set: boolean add(java.lang.Object)>(v);
label:
goto label;
label:
v := @caughtexception;
v = <org.glassfish.ejb.embedded.EJBContainerProviderImpl: java.util.logging.Logger _logger>;
v = <java.util.logging.Level: java.util.logging.Level FINE>;
virtualinvoke v.<java.util.logging.Logger: void log(java.util.logging.Level,java.lang.String,java.lang.Throwable)>(v, "ejb.embedded.io_exception", v);
label:
return;
catch java.lang.Exception from label to label with label;
}
private boolean skipJar(java.io.File, org.glassfish.ejb.embedded.EJBContainerProviderImpl$Locations, boolean) throws java.lang.Exception
{
java.util.jar.Manifest v, v;
java.util.jar.JarFile v, v;
boolean v, v, v, v, v, v, v;
org.glassfish.ejb.embedded.EJBContainerProviderImpl v;
java.util.logging.Logger v, v, v, v;
java.util.jar.Attributes v;
java.lang.Throwable v, v;
java.lang.String[] v, v;
int v, v, v, v, v;
java.util.jar.Attributes$Name v;
java.lang.String v, v, v, v, v, v, v, v, v, v, v, v, v, v;
java.io.FileInputStream v, v;
java.io.File v, v, v, v;
org.glassfish.ejb.embedded.EJBContainerProviderImpl$Locations v;
v := @this: org.glassfish.ejb.embedded.EJBContainerProviderImpl;
v := @parameter: java.io.File;
v := @parameter: org.glassfish.ejb.embedded.EJBContainerProviderImpl$Locations;
v := @parameter: boolean;
v = virtualinvoke v.<java.io.File: boolean isDirectory()>();
if v == 0 goto label;
if v != 0 goto label;
return 0;
label:
v = new java.io.File;
specialinvoke v.<java.io.File: void <init>(java.io.File,java.lang.String)>(v, "META-INF/MANIFEST.MF");
v = virtualinvoke v.<java.io.File: boolean exists()>();
if v != 0 goto label;
return 0;
label:
v = new java.io.FileInputStream;
specialinvoke v.<java.io.FileInputStream: void <init>(java.io.File)>(v);
v = new java.util.jar.Manifest;
specialinvoke v.<java.util.jar.Manifest: void <init>(java.io.InputStream)>(v);
v = specialinvoke v.<org.glassfish.ejb.embedded.EJBContainerProviderImpl: boolean containsMainClass(java.util.jar.Manifest)>(v);
if v == 0 goto label;
v = <org.glassfish.ejb.embedded.EJBContainerProviderImpl: java.util.logging.Logger _logger>;
v = virtualinvoke v.<java.io.File: java.lang.String getName()>();
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[])>("... skipping entry with a Manifest file with a Main-Class attribute: \u0001");
virtualinvoke v.<java.util.logging.Logger: void info(java.lang.String)>(v);
label:
return 1;
label:
return 0;
label:
v := @caughtexception;
throw v;
label:
v = v.<org.glassfish.ejb.embedded.EJBContainerProviderImpl$Locations: java.lang.String modules_dir>;
if v == null goto label;
v = v.<org.glassfish.ejb.embedded.EJBContainerProviderImpl$Locations: java.lang.String modules_dir>;
v = virtualinvoke v.<java.io.File: java.io.File getAbsoluteFile()>();
v = virtualinvoke v.<java.io.File: java.io.File getParentFile()>();
v = virtualinvoke v.<java.io.File: java.lang.String getAbsolutePath()>();
v = virtualinvoke v.<java.lang.String: boolean equals(java.lang.Object)>(v);
if v == 0 goto label;
v = <org.glassfish.ejb.embedded.EJBContainerProviderImpl: java.util.logging.Logger _logger>;
v = virtualinvoke v.<java.io.File: java.lang.String getName()>();
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[])>("... skipping module: \u0001");
virtualinvoke v.<java.util.logging.Logger: void info(java.lang.String)>(v);
return 1;
label:
v = new java.util.jar.JarFile;
specialinvoke v.<java.util.jar.JarFile: void <init>(java.io.File)>(v);
v = virtualinvoke v.<java.util.jar.JarFile: java.util.jar.Manifest getManifest()>();
if v == null goto label;
if v == 0 goto label;
v = specialinvoke v.<org.glassfish.ejb.embedded.EJBContainerProviderImpl: boolean containsMainClass(java.util.jar.Manifest)>(v);
if v == 0 goto label;
v = <org.glassfish.ejb.embedded.EJBContainerProviderImpl: java.util.logging.Logger _logger>;
v = virtualinvoke v.<java.io.File: java.lang.String getName()>();
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[])>("... skipping entry with a Manifest file with a Main-Class attribute: \u0001");
virtualinvoke v.<java.util.logging.Logger: void info(java.lang.String)>(v);
label:
return 1;
label:
v = virtualinvoke v.<java.util.jar.Manifest: java.util.jar.Attributes getMainAttributes()>();
v = <org.glassfish.ejb.embedded.EJBContainerProviderImpl: java.util.jar.Attributes$Name ATTRIBUTE_NAME_SKIP>;
v = virtualinvoke v.<java.util.jar.Attributes: java.lang.String getValue(java.util.jar.Attributes$Name)>(v);
if v == null goto label;
v = <org.glassfish.ejb.embedded.EJBContainerProviderImpl: java.lang.String[] KNOWN_PACKAGES>;
v = lengthof v;
v = 0;
label:
if v >= v goto label;
v = v[v];
v = virtualinvoke v.<java.lang.String: boolean startsWith(java.lang.String)>(v);
if v == 0 goto label;
v = <org.glassfish.ejb.embedded.EJBContainerProviderImpl: java.lang.String[] ATTRIBUTE_VALUES_OK>;
v = lengthof v;
v = 0;
label:
if v >= v goto label;
v = v[v];
v = virtualinvoke v.<java.lang.String: int indexOf(java.lang.String)>(v);
if v <= 0 goto label;
label:
return 0;
label:
v = v + 1;
goto label;
label:
v = <org.glassfish.ejb.embedded.EJBContainerProviderImpl: java.util.logging.Logger _logger>;
v = virtualinvoke v.<java.io.File: java.lang.String getName()>();
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[])>("... skipping entry with a Manifest file with a special attribute: \u0001");
virtualinvoke v.<java.util.logging.Logger: void info(java.lang.String)>(v);
label:
return 1;
label:
v = v + 1;
goto label;
label:
goto label;
label:
v := @caughtexception;
throw v;
label:
return 0;
catch java.lang.Throwable from label to label with label;
catch java.lang.Throwable from label to label with label;
catch java.lang.Throwable from label to label with label;
catch java.lang.Throwable from label to label with label;
catch java.lang.Throwable from label to label with label;
}
private java.io.File getValidFile(java.lang.String, java.lang.String)
{
org.glassfish.ejb.embedded.EJBContainerProviderImpl v;
java.util.logging.Logger v;
java.io.File v, v;
java.util.logging.Level v;
java.lang.String v, v;
boolean v;
v := @this: org.glassfish.ejb.embedded.EJBContainerProviderImpl;
v := @parameter: java.lang.String;
v := @parameter: java.lang.String;
v = new java.io.File;
specialinvoke v.<java.io.File: void <init>(java.lang.String)>(v);
v = v;
v = virtualinvoke v.<java.io.File: boolean exists()>();
if v != 0 goto label;
v = <org.glassfish.ejb.embedded.EJBContainerProviderImpl: java.util.logging.Logger _logger>;
v = <java.util.logging.Level: java.util.logging.Level WARNING>;
virtualinvoke v.<java.util.logging.Logger: void log(java.util.logging.Level,java.lang.String,java.lang.Object)>(v, v, v);
v = null;
label:
return v;
}
private boolean containsMainClass(java.util.jar.Manifest)
{
java.util.jar.Manifest v;
int v;
java.util.jar.Attributes$Name v;
java.lang.String v;
org.glassfish.ejb.embedded.EJBContainerProviderImpl v;
java.util.jar.Attributes v;
boolean v;
v := @this: org.glassfish.ejb.embedded.EJBContainerProviderImpl;
v := @parameter: java.util.jar.Manifest;
if v == null goto label;
v = virtualinvoke v.<java.util.jar.Manifest: java.util.jar.Attributes getMainAttributes()>();
v = <java.util.jar.Attributes$Name: java.util.jar.Attributes$Name MAIN_CLASS>;
v = virtualinvoke v.<java.util.jar.Attributes: java.lang.String getValue(java.util.jar.Attributes$Name)>(v);
if v == null goto label;
v = virtualinvoke v.<java.lang.String: int length()>();
if v <= 0 goto label;
v = 1;
goto label;
label:
v = 0;
label:
return v;
label:
return 0;
}
private org.glassfish.ejb.embedded.EJBContainerProviderImpl$Locations getLocations(java.util.Map) throws jakarta.ejb.EJBException
{
com.sun.enterprise.util.i18n.StringManager v, v;
java.util.Map v;
jakarta.ejb.EJBException v, v;
boolean v, v, v, v, v;
org.glassfish.ejb.embedded.DomainXmlTransformer v;
org.glassfish.ejb.embedded.EJBContainerProviderImpl v;
java.util.logging.Logger v, v, v, v, v, v, v, v, v;
java.lang.Exception v, v;
java.util.logging.Level v, v, v, v, v;
java.lang.String v, v, v, v, v, v;
char v, v, v, v;
java.io.File v, v, v, v, v, v, v;
org.glassfish.ejb.embedded.EJBContainerProviderImpl$Locations v;
java.lang.Class v;
java.lang.Object v, v, v, v;
v := @this: org.glassfish.ejb.embedded.EJBContainerProviderImpl;
v := @parameter: java.util.Map;
v = null;
v = null;
v = null;
v = 0;
if v == null goto label;
v = interfaceinvoke v.<java.util.Map: java.lang.Object get(java.lang.Object)>("org.glassfish.ejb.embedded.glassfish.installation.root");
v = interfaceinvoke v.<java.util.Map: java.lang.Object get(java.lang.Object)>("org.glassfish.ejb.embedded.glassfish.instance.root");
v = interfaceinvoke v.<java.util.Map: java.lang.Object get(java.lang.Object)>("org.glassfish.ejb.embedded.glassfish.configuration.file");
v = specialinvoke v.<org.glassfish.ejb.embedded.EJBContainerProviderImpl: boolean getBooleanProperty(java.util.Map,java.lang.String)>(v, "org.glassfish.ejb.embedded.glassfish.instance.reuse");
label:
if v != null goto label;
label:
v = virtualinvoke v.<java.lang.Object: java.lang.Class getClass()>();
v = staticinvoke <com.sun.enterprise.module.bootstrap.Which: java.io.File jarFile(java.lang.Class)>(v);
v = virtualinvoke v.<java.io.File: java.io.File getParentFile()>();
v = virtualinvoke v.<java.io.File: java.io.File getParentFile()>();
v = virtualinvoke v.<java.io.File: java.lang.String getAbsolutePath()>();
label:
goto label;
label:
v := @caughtexception;
v = <org.glassfish.ejb.embedded.EJBContainerProviderImpl: java.util.logging.Logger _logger>;
v = <java.util.logging.Level: java.util.logging.Level SEVERE>;
virtualinvoke v.<java.util.logging.Logger: void log(java.util.logging.Level,java.lang.String)>(v, "ejb.embedded.cannot_determine_installation_location");
v = <org.glassfish.ejb.embedded.EJBContainerProviderImpl: java.util.logging.Logger _logger>;
v = <java.util.logging.Level: java.util.logging.Level FINE>;
v = virtualinvoke v.<java.lang.Exception: java.lang.String getMessage()>();
virtualinvoke v.<java.util.logging.Logger: void log(java.util.logging.Level,java.lang.String,java.lang.Throwable)>(v, v, v);
label:
v = <org.glassfish.ejb.embedded.EJBContainerProviderImpl: java.util.logging.Logger _logger>;
v = <java.util.logging.Level: java.util.logging.Level FINE>;
v = virtualinvoke v.<java.util.logging.Logger: boolean isLoggable(java.util.logging.Level)>(v);
if v == 0 goto label;
v = <org.glassfish.ejb.embedded.EJBContainerProviderImpl: java.util.logging.Logger _logger>;
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[])>("[EJBContainerProviderImpl] installed_root_location : \u0001");
virtualinvoke v.<java.util.logging.Logger: void fine(java.lang.String)>(v);
label:
if v == null goto label;
v = specialinvoke v.<org.glassfish.ejb.embedded.EJBContainerProviderImpl: java.io.File getValidFile(java.lang.String,java.lang.String)>(v, "ejb.embedded.installation_location_not_exists");
if v == null goto label;
if v != null goto label;
v = <java.io.File: char separatorChar>;
v = <java.io.File: char separatorChar>;
v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (java.lang.String,char,char)>(v, v, 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\u0001domains\u0001domain1");
label:
v = <org.glassfish.ejb.embedded.EJBContainerProviderImpl: java.util.logging.Logger _logger>;
v = <java.util.logging.Level: java.util.logging.Level FINE>;
v = virtualinvoke v.<java.util.logging.Logger: boolean isLoggable(java.util.logging.Level)>(v);
if v == 0 goto label;
v = <org.glassfish.ejb.embedded.EJBContainerProviderImpl: java.util.logging.Logger _logger>;
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[])>("[EJBContainerProviderImpl] instance_root_location: \u0001");
virtualinvoke v.<java.util.logging.Logger: void fine(java.lang.String)>(v);
label:
v = specialinvoke v.<org.glassfish.ejb.embedded.EJBContainerProviderImpl: java.io.File getValidFile(java.lang.String,java.lang.String)>(v, "ejb.embedded.instance_location_not_exists");
label:
if v == null goto label;
if v != null goto label;
v = <java.io.File: char separatorChar>;
v = <java.io.File: char separatorChar>;
v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (java.lang.String,char,char)>(v, v, 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\u0001config\u0001domain.xml");
label:
v = <org.glassfish.ejb.embedded.EJBContainerProviderImpl: java.util.logging.Logger _logger>;
v = <java.util.logging.Level: java.util.logging.Level FINE>;
v = virtualinvoke v.<java.util.logging.Logger: boolean isLoggable(java.util.logging.Level)>(v);
if v == 0 goto label;
v = <org.glassfish.ejb.embedded.EJBContainerProviderImpl: java.util.logging.Logger _logger>;
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[])>("[EJBContainerProviderImpl] domain_file_location : \u0001");
virtualinvoke v.<java.util.logging.Logger: void fine(java.lang.String)>(v);
label:
if v == null goto label;
v = specialinvoke v.<org.glassfish.ejb.embedded.EJBContainerProviderImpl: java.io.File getValidFile(java.lang.String,java.lang.String)>(v, "ejb.embedded.configuration_file_location_not_exists");
if v == null goto label;
if v != 0 goto label;
label:
v = new org.glassfish.ejb.embedded.DomainXmlTransformer;
v = <org.glassfish.ejb.embedded.EJBContainerProviderImpl: java.util.logging.Logger _logger>;
specialinvoke v.<org.glassfish.ejb.embedded.DomainXmlTransformer: void <init>(java.io.File,java.util.logging.Logger)>(v, v);
if v != null goto label;
v = 0;
goto label;
label:
v = interfaceinvoke v.<java.util.Map: java.lang.Object get(java.lang.Object)>("org.glassfish.ejb.embedded.glassfish.web.http.port");
if v != null goto label;
v = 0;
goto label;
label:
v = 1;
label:
v = virtualinvoke v.<org.glassfish.ejb.embedded.DomainXmlTransformer: java.io.File transform(boolean)>(v);
label:
goto label;
label:
v := @caughtexception;
v = new jakarta.ejb.EJBException;
v = <org.glassfish.ejb.embedded.EJBContainerProviderImpl: com.sun.enterprise.util.i18n.StringManager localStrings>;
v = virtualinvoke v.<com.sun.enterprise.util.i18n.StringManager: java.lang.String getString(java.lang.String)>("ejb.embedded.exception_creating_temporary_domain_xml_file");
specialinvoke v.<jakarta.ejb.EJBException: void <init>(java.lang.String,java.lang.Exception)>(v, v);
throw v;
label:
if v == null goto label;
v = v;
goto label;
label:
v = new jakarta.ejb.EJBException;
v = <org.glassfish.ejb.embedded.EJBContainerProviderImpl: com.sun.enterprise.util.i18n.StringManager localStrings>;
v = virtualinvoke v.<com.sun.enterprise.util.i18n.StringManager: java.lang.String getString(java.lang.String)>("ejb.embedded.failed_create_temporary_domain_xml_file");
specialinvoke v.<jakarta.ejb.EJBException: void <init>(java.lang.String)>(v);
throw v;
label:
v = new org.glassfish.ejb.embedded.EJBContainerProviderImpl$Locations;
specialinvoke v.<org.glassfish.ejb.embedded.EJBContainerProviderImpl$Locations: void <init>(java.io.File,java.io.File,java.io.File,boolean)>(v, v, v, v);
return v;
catch java.lang.Exception from label to label with label;
catch java.lang.Exception from label to label with label;
}
private java.io.InputStream getDeploymentDescriptor(org.glassfish.api.deployment.archive.ReadableArchive) throws java.io.IOException
{
org.glassfish.ejb.embedded.EJBContainerProviderImpl v;
org.glassfish.api.deployment.archive.ReadableArchive v;
java.io.InputStream v;
v := @this: org.glassfish.ejb.embedded.EJBContainerProviderImpl;
v := @parameter: org.glassfish.api.deployment.archive.ReadableArchive;
v = interfaceinvoke v.<org.glassfish.api.deployment.archive.ReadableArchive: java.io.InputStream getEntry(java.lang.String)>("META-INF/ejb-jar.xml");
if v != null goto label;
v = interfaceinvoke v.<org.glassfish.api.deployment.archive.ReadableArchive: java.io.InputStream getEntry(java.lang.String)>("WEB-INF/ejb-jar.xml");
label:
return v;
}
private void addWebContainerIfRequested(java.util.Map, org.glassfish.embeddable.GlassFishProperties) throws jakarta.ejb.EJBException
{
java.io.PrintStream v;
java.util.Map v;
int v;
java.lang.NumberFormatException v;
java.lang.Object v;
org.glassfish.embeddable.GlassFishProperties v;
org.glassfish.ejb.embedded.EJBContainerProviderImpl v;
v := @this: org.glassfish.ejb.embedded.EJBContainerProviderImpl;
v := @parameter: java.util.Map;
v := @parameter: org.glassfish.embeddable.GlassFishProperties;
if v == null goto label;
v = interfaceinvoke v.<java.util.Map: java.lang.Object get(java.lang.Object)>("org.glassfish.ejb.embedded.glassfish.web.http.port");
label:
if v == null goto label;
v = 8080;
label:
v = staticinvoke <java.lang.Integer: int parseInt(java.lang.String)>(v);
label:
goto label;
label:
v := @caughtexception;
v = <java.lang.System: java.io.PrintStream err>;
virtualinvoke v.<java.io.PrintStream: void println(java.lang.String)>("Using port 8080");
label:
virtualinvoke v.<org.glassfish.embeddable.GlassFishProperties: void setPort(java.lang.String,int)>("http-listener-1", v);
label:
return;
catch java.lang.NumberFormatException from label to label with label;
}
private void copyUserProperties(java.util.Map, java.util.Properties)
{
java.lang.String[] v;
java.util.Map v;
int v, v;
java.lang.String v, v;
boolean v, v, v, v, v;
java.util.Properties v;
java.util.Iterator v;
java.util.Set v;
org.glassfish.ejb.embedded.EJBContainerProviderImpl v;
java.lang.Object v, v, v;
v := @this: org.glassfish.ejb.embedded.EJBContainerProviderImpl;
v := @parameter: java.util.Map;
v := @parameter: java.util.Properties;
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 getKey()>();
v = v instanceof java.lang.String;
if v == 0 goto label;
v = virtualinvoke v.<java.lang.String: boolean startsWith(java.lang.String)>("org.glassfish.ejb.embedded.");
if v != 0 goto label;
v = <org.glassfish.ejb.embedded.EJBContainerProviderImpl: java.lang.String[] KNOWN_PACKAGES>;
v = lengthof v;
v = 0;
label:
if v >= v goto label;
v = v[v];
v = virtualinvoke v.<java.lang.String: boolean startsWith(java.lang.String)>(v);
if v == 0 goto label;
v = interfaceinvoke v.<java.util.Map$Entry: java.lang.Object getValue()>();
v = v instanceof java.lang.String;
if v == 0 goto label;
virtualinvoke v.<java.util.Properties: java.lang.Object setProperty(java.lang.String,java.lang.String)>(v, v);
goto label;
label:
v = virtualinvoke v.<java.lang.Object: java.lang.String toString()>();
virtualinvoke v.<java.util.Properties: java.lang.Object setProperty(java.lang.String,java.lang.String)>(v, v);
label:
v = v + 1;
goto label;
label:
return;
}
private boolean getBooleanProperty(java.util.Map, java.lang.String)
{
org.glassfish.ejb.embedded.EJBContainerProviderImpl v;
java.lang.Exception v;
java.util.Map v;
java.lang.Boolean v;
java.lang.Object v;
java.lang.String v;
boolean v, v;
v := @this: org.glassfish.ejb.embedded.EJBContainerProviderImpl;
v := @parameter: java.util.Map;
v := @parameter: java.lang.String;
v = 0;
if v == null goto label;
v = interfaceinvoke v.<java.util.Map: java.lang.Object get(java.lang.Object)>(v);
if v == null goto label;
v = v instanceof java.lang.String;
if v == 0 goto label;
v = staticinvoke <java.lang.Boolean: java.lang.Boolean valueOf(java.lang.String)>(v);
v = virtualinvoke v.<java.lang.Boolean: boolean booleanValue()>();
goto label;
label:
v = virtualinvoke v.<java.lang.Boolean: boolean booleanValue()>();
label:
goto label;
label:
v := @caughtexception;
label:
return v;
catch java.lang.Exception from label to label with label;
}
private void validateInstanceDirectory()
{
java.lang.IllegalStateException v, v, v;
org.glassfish.ejb.embedded.EJBContainerProviderImpl v;
java.io.File v;
int v;
java.lang.String v, v, v, v;
java.io.File[] v;
boolean v, v;
v := @this: org.glassfish.ejb.embedded.EJBContainerProviderImpl;
v = new java.io.File;
v = staticinvoke <java.lang.System: java.lang.String getProperty(java.lang.String)>("com.sun.aas.instanceRoot");
specialinvoke v.<java.io.File: void <init>(java.lang.String)>(v);
v = virtualinvoke v.<java.io.File: boolean exists()>();
if v != 0 goto label;
v = new java.lang.IllegalStateException;
v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (java.io.File)>(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[])>("Unexpected ERROR: Instance directory \u does not exist");
specialinvoke v.<java.lang.IllegalStateException: void <init>(java.lang.String)>(v);
throw v;
label:
v = virtualinvoke v.<java.io.File: boolean isDirectory()>();
if v != 0 goto label;
v = new java.lang.IllegalStateException;
v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (java.io.File)>(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[])>("Unexpected ERROR: Instance directory \u is not a directory");
specialinvoke v.<java.lang.IllegalStateException: void <init>(java.lang.String)>(v);
throw v;
label:
v = virtualinvoke v.<java.io.File: java.io.File[] listFiles()>();
if v == null goto label;
v = lengthof v;
if v != 0 goto label;
label:
v = new java.lang.IllegalStateException;
v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (java.io.File)>(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[])>("Unexpected ERROR: Instance directory \u is empty");
specialinvoke v.<java.lang.IllegalStateException: void <init>(java.lang.String)>(v);
throw v;
label:
return;
}
static void <clinit>()
{
com.sun.enterprise.util.i18n.StringManager v;
java.lang.String[] v, v;
java.util.logging.Logger v;
java.util.jar.Attributes$Name v;
java.lang.Class v;
java.lang.Object v;
java.lang.String v;
v = class "Lorg/glassfish/ejb/embedded/EJBContainerProviderImpl;";
v = virtualinvoke v.<java.lang.Class: java.lang.String getName()>();
<org.glassfish.ejb.embedded.EJBContainerProviderImpl: java.lang.String GF_PROVIDER_NAME> = v;
v = new java.util.jar.Attributes$Name;
specialinvoke v.<java.util.jar.Attributes$Name: void <init>(java.lang.String)>("Bundle-SymbolicName");
<org.glassfish.ejb.embedded.EJBContainerProviderImpl: java.util.jar.Attributes$Name ATTRIBUTE_NAME_SKIP> = v;
v = newarray (java.lang.String)[4];
v[0] = "org.glassfish.";
v[1] = "com.sun.enterprise.";
v[2] = "org.eclipse.";
v[3] = "org.jboss.weld.";
<org.glassfish.ejb.embedded.EJBContainerProviderImpl: java.lang.String[] KNOWN_PACKAGES> = v;
v = newarray (java.lang.String)[2];
v[0] = "sample";
v[1] = "test";
<org.glassfish.ejb.embedded.EJBContainerProviderImpl: java.lang.String[] ATTRIBUTE_VALUES_OK> = v;
v = staticinvoke <com.sun.logging.LogDomains: java.util.logging.Logger getLogger(java.lang.Class,java.lang.String)>(class "Lorg/glassfish/ejb/embedded/EJBContainerProviderImpl;", "jakarta.enterprise.system.container.ejb");
<org.glassfish.ejb.embedded.EJBContainerProviderImpl: java.util.logging.Logger _logger> = v;
v = staticinvoke <com.sun.enterprise.util.i18n.StringManager: com.sun.enterprise.util.i18n.StringManager getManager(java.lang.Class)>(class "Lorg/glassfish/ejb/embedded/EJBContainerProviderImpl;");
<org.glassfish.ejb.embedded.EJBContainerProviderImpl: com.sun.enterprise.util.i18n.StringManager localStrings> = v;
v = new java.lang.Object;
specialinvoke v.<java.lang.Object: void <init>()>();
<org.glassfish.ejb.embedded.EJBContainerProviderImpl: java.lang.Object lock> = v;
<org.glassfish.ejb.embedded.EJBContainerProviderImpl: java.lang.Class[] ejbAnnotations> = null;
return;
}
}