public class org.glassfish.appclient.client.acc.MainClassLaunchable extends java.lang.Object implements org.glassfish.appclient.client.acc.Launchable
{
private final java.lang.Class mainClass;
private com.sun.enterprise.deployment.ApplicationClientDescriptor acDesc;
private java.lang.ClassLoader classLoader;
private com.sun.enterprise.deployment.archivist.AppClientArchivist archivist;
void <init>(org.glassfish.hk.api.ServiceLocator, java.lang.Class)
{
java.lang.Class v;
org.glassfish.hk.api.ServiceLocator v;
org.glassfish.appclient.client.acc.MainClassLaunchable v;
v := @this: org.glassfish.appclient.client.acc.MainClassLaunchable;
v := @parameter: org.glassfish.hk.api.ServiceLocator;
v := @parameter: java.lang.Class;
specialinvoke v.<java.lang.Object: void <init>()>();
v.<org.glassfish.appclient.client.acc.MainClassLaunchable: java.lang.Class mainClass> = v;
return;
}
public java.lang.Class getMainClass() throws java.lang.ClassNotFoundException
{
java.lang.Class v;
org.glassfish.appclient.client.acc.MainClassLaunchable v;
v := @this: org.glassfish.appclient.client.acc.MainClassLaunchable;
v = v.<org.glassfish.appclient.client.acc.MainClassLaunchable: java.lang.Class mainClass>;
return v;
}
public com.sun.enterprise.deployment.ApplicationClientDescriptor getDescriptor(java.net.URLClassLoader) throws java.io.IOException, org.xml.sax.SAXException
{
com.sun.enterprise.deployment.archivist.AppClientArchivist v, v, v, v;
org.glassfish.deployment.common.ModuleDescriptor v;
org.glassfish.appclient.client.acc.MainClassLaunchable v;
org.glassfish.appclient.client.acc.MainClassLaunchable$1 v;
java.net.URLClassLoader v;
org.glassfish.api.deployment.archive.ReadableArchive v;
com.sun.enterprise.deployment.BundleDescriptor v;
org.glassfish.appclient.client.acc.ACCClassLoader v;
java.lang.String v;
com.sun.enterprise.deployment.ApplicationClientDescriptor v, v, v, v, v;
com.sun.enterprise.deployment.Application v;
java.lang.Class v, v;
v := @this: org.glassfish.appclient.client.acc.MainClassLaunchable;
v := @parameter: java.net.URLClassLoader;
v = v.<org.glassfish.appclient.client.acc.MainClassLaunchable: com.sun.enterprise.deployment.ApplicationClientDescriptor acDesc>;
if v != null goto label;
v = new org.glassfish.appclient.client.acc.MainClassLaunchable$1;
specialinvoke v.<org.glassfish.appclient.client.acc.MainClassLaunchable$1: void <init>(org.glassfish.appclient.client.acc.MainClassLaunchable,java.net.URLClassLoader)>(v, v);
staticinvoke <java.security.AccessController: java.lang.Object doPrivileged(java.security.PrivilegedAction)>(v);
v = v.<org.glassfish.appclient.client.acc.MainClassLaunchable: java.lang.Class mainClass>;
v = specialinvoke v.<org.glassfish.appclient.client.acc.MainClassLaunchable: org.glassfish.api.deployment.archive.ReadableArchive createArchive(java.lang.ClassLoader,java.lang.Class)>(v, v);
v = specialinvoke v.<org.glassfish.appclient.client.acc.MainClassLaunchable: com.sun.enterprise.deployment.archivist.AppClientArchivist getArchivist(org.glassfish.api.deployment.archive.ReadableArchive,java.lang.ClassLoader)>(v, v);
v = v.<org.glassfish.appclient.client.acc.MainClassLaunchable: com.sun.enterprise.deployment.archivist.AppClientArchivist archivist>;
virtualinvoke v.<com.sun.enterprise.deployment.archivist.AppClientArchivist: void setClassLoader(java.lang.ClassLoader)>(v);
v = v.<org.glassfish.appclient.client.acc.MainClassLaunchable: com.sun.enterprise.deployment.archivist.AppClientArchivist archivist>;
v = v.<org.glassfish.appclient.client.acc.MainClassLaunchable: com.sun.enterprise.deployment.ApplicationClientDescriptor acDesc>;
virtualinvoke v.<com.sun.enterprise.deployment.archivist.AppClientArchivist: void setDescriptor(com.sun.enterprise.deployment.BundleDescriptor)>(v);
v = v.<org.glassfish.appclient.client.acc.MainClassLaunchable: com.sun.enterprise.deployment.archivist.AppClientArchivist archivist>;
virtualinvoke v.<com.sun.enterprise.deployment.archivist.AppClientArchivist: void setAnnotationProcessingRequested(boolean)>(1);
v = virtualinvoke v.<com.sun.enterprise.deployment.archivist.AppClientArchivist: com.sun.enterprise.deployment.BundleDescriptor open(org.glassfish.api.deployment.archive.ReadableArchive)>(v);
v.<org.glassfish.appclient.client.acc.MainClassLaunchable: com.sun.enterprise.deployment.ApplicationClientDescriptor acDesc> = v;
v = v.<org.glassfish.appclient.client.acc.MainClassLaunchable: com.sun.enterprise.deployment.ApplicationClientDescriptor acDesc>;
v = virtualinvoke v.<com.sun.enterprise.deployment.ApplicationClientDescriptor: org.glassfish.deployment.common.ModuleDescriptor getModuleDescriptor()>();
staticinvoke <com.sun.enterprise.deployment.Application: com.sun.enterprise.deployment.Application createVirtualApplication(java.lang.String,org.glassfish.deployment.common.ModuleDescriptor)>(null, v);
v = v.<org.glassfish.appclient.client.acc.MainClassLaunchable: com.sun.enterprise.deployment.ApplicationClientDescriptor acDesc>;
v = virtualinvoke v.<com.sun.enterprise.deployment.ApplicationClientDescriptor: com.sun.enterprise.deployment.Application getApplication()>();
v = v.<org.glassfish.appclient.client.acc.MainClassLaunchable: java.lang.Class mainClass>;
v = specialinvoke v.<org.glassfish.appclient.client.acc.MainClassLaunchable: java.lang.String appNameFromMainClass(java.lang.Class)>(v);
virtualinvoke v.<com.sun.enterprise.deployment.Application: void setAppName(java.lang.String)>(v);
v.<org.glassfish.appclient.client.acc.MainClassLaunchable: java.lang.ClassLoader classLoader> = v;
label:
v = v.<org.glassfish.appclient.client.acc.MainClassLaunchable: com.sun.enterprise.deployment.ApplicationClientDescriptor acDesc>;
return v;
}
private java.lang.String appNameFromMainClass(java.lang.Class)
{
java.lang.Class v;
java.lang.String v;
org.glassfish.appclient.client.acc.MainClassLaunchable v;
v := @this: org.glassfish.appclient.client.acc.MainClassLaunchable;
v := @parameter: java.lang.Class;
v = virtualinvoke v.<java.lang.Class: java.lang.String getName()>();
return v;
}
private org.glassfish.api.deployment.archive.ReadableArchive createArchive(java.lang.ClassLoader, java.lang.Class) throws java.io.IOException
{
java.util.jar.Manifest v;
byte[] v, v;
java.io.ByteArrayOutputStream v;
org.glassfish.appclient.client.acc.MainClassLaunchable v;
int v, v;
java.util.jar.Attributes$Name v, v;
java.lang.String v, v, v, v;
java.net.URI v;
java.util.jar.JarOutputStream v;
java.util.zip.ZipEntry v;
java.util.jar.Attributes v;
com.sun.enterprise.deployment.deploy.shared.MemoryMappedArchive v;
java.lang.Class v;
java.lang.ClassLoader v;
java.io.InputStream v;
v := @this: org.glassfish.appclient.client.acc.MainClassLaunchable;
v := @parameter: java.lang.ClassLoader;
v := @parameter: java.lang.Class;
v = new java.io.ByteArrayOutputStream;
specialinvoke v.<java.io.ByteArrayOutputStream: void <init>()>();
v = new java.util.jar.Manifest;
specialinvoke v.<java.util.jar.Manifest: void <init>()>();
v = virtualinvoke v.<java.util.jar.Manifest: java.util.jar.Attributes getMainAttributes()>();
v = <java.util.jar.Attributes$Name: java.util.jar.Attributes$Name MANIFEST_VERSION>;
virtualinvoke v.<java.util.jar.Attributes: java.lang.Object put(java.lang.Object,java.lang.Object)>(v, "1.0");
v = <java.util.jar.Attributes$Name: java.util.jar.Attributes$Name MAIN_CLASS>;
v = virtualinvoke v.<java.lang.Class: java.lang.String getName()>();
virtualinvoke v.<java.util.jar.Attributes: java.lang.Object put(java.lang.Object,java.lang.Object)>(v, v);
v = new java.util.jar.JarOutputStream;
specialinvoke v.<java.util.jar.JarOutputStream: void <init>(java.io.OutputStream,java.util.jar.Manifest)>(v, v);
v = virtualinvoke v.<java.lang.Class: java.lang.String getName()>();
v = virtualinvoke v.<java.lang.String: java.lang.String replace(char,char)>(46, 47);
v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (java.lang.String)>(v) <java.lang.invoke.StringConcatFactory: java.lang.invoke.CallSite makeConcatWithConstants(java.lang.invoke.MethodHandles$Lookup,java.lang.String,java.lang.invoke.MethodType,java.lang.String,java.lang.Object[])>("\u.class");
v = new java.util.zip.ZipEntry;
specialinvoke v.<java.util.zip.ZipEntry: void <init>(java.lang.String)>(v);
virtualinvoke v.<java.util.jar.JarOutputStream: void putNextEntry(java.util.zip.ZipEntry)>(v);
v = virtualinvoke v.<java.lang.ClassLoader: java.io.InputStream getResourceAsStream(java.lang.String)>(v);
v = newarray (byte)[1024];
label:
v = virtualinvoke v.<java.io.InputStream: int read(byte[])>(v);
v = (int) -1;
if v == v goto label;
virtualinvoke v.<java.util.jar.JarOutputStream: void write(byte[],int,int)>(v, 0, v);
goto label;
label:
virtualinvoke v.<java.io.InputStream: void close()>();
virtualinvoke v.<java.util.jar.JarOutputStream: void closeEntry()>();
virtualinvoke v.<java.util.jar.JarOutputStream: void close()>();
v = new com.sun.enterprise.deployment.deploy.shared.MemoryMappedArchive;
v = virtualinvoke v.<java.io.ByteArrayOutputStream: byte[] toByteArray()>();
specialinvoke v.<com.sun.enterprise.deployment.deploy.shared.MemoryMappedArchive: void <init>(byte[])>(v);
v = staticinvoke <java.net.URI: java.net.URI create(java.lang.String)>("file:///tempClient.jar");
virtualinvoke v.<com.sun.enterprise.deployment.deploy.shared.MemoryMappedArchive: void setURI(java.net.URI)>(v);
return v;
}
private com.sun.enterprise.deployment.archivist.AppClientArchivist getArchivist(org.glassfish.api.deployment.archive.ReadableArchive, java.lang.ClassLoader) throws java.io.IOException
{
com.sun.enterprise.deployment.archivist.AppClientArchivist v, v, v;
com.sun.enterprise.deployment.archivist.ArchivistFactory v;
org.glassfish.api.deployment.archive.ArchiveType v;
org.glassfish.appclient.client.acc.MainClassLaunchable v;
org.glassfish.api.deployment.archive.ReadableArchive v;
java.lang.ClassLoader v;
com.sun.enterprise.deployment.archivist.Archivist v;
v := @this: org.glassfish.appclient.client.acc.MainClassLaunchable;
v := @parameter: org.glassfish.api.deployment.archive.ReadableArchive;
v := @parameter: java.lang.ClassLoader;
v = v.<org.glassfish.appclient.client.acc.MainClassLaunchable: com.sun.enterprise.deployment.archivist.AppClientArchivist archivist>;
if v != null goto label;
v = staticinvoke <org.glassfish.appclient.client.acc.Util: com.sun.enterprise.deployment.archivist.ArchivistFactory getArchivistFactory()>();
v = staticinvoke <com.sun.enterprise.deployment.util.DOLUtils: org.glassfish.api.deployment.archive.ArchiveType carType()>();
v = virtualinvoke v.<com.sun.enterprise.deployment.archivist.ArchivistFactory: com.sun.enterprise.deployment.archivist.Archivist getArchivist(org.glassfish.api.deployment.archive.ArchiveType)>(v);
v.<org.glassfish.appclient.client.acc.MainClassLaunchable: com.sun.enterprise.deployment.archivist.AppClientArchivist archivist> = v;
v = v.<org.glassfish.appclient.client.acc.MainClassLaunchable: com.sun.enterprise.deployment.archivist.AppClientArchivist archivist>;
virtualinvoke v.<com.sun.enterprise.deployment.archivist.AppClientArchivist: void setAnnotationProcessingRequested(boolean)>(1);
label:
v = v.<org.glassfish.appclient.client.acc.MainClassLaunchable: com.sun.enterprise.deployment.archivist.AppClientArchivist archivist>;
return v;
}
public void validateDescriptor()
{
com.sun.enterprise.deployment.archivist.AppClientArchivist v;
java.lang.ClassLoader v;
org.glassfish.appclient.client.acc.MainClassLaunchable v;
v := @this: org.glassfish.appclient.client.acc.MainClassLaunchable;
v = v.<org.glassfish.appclient.client.acc.MainClassLaunchable: com.sun.enterprise.deployment.archivist.AppClientArchivist archivist>;
v = v.<org.glassfish.appclient.client.acc.MainClassLaunchable: java.lang.ClassLoader classLoader>;
virtualinvoke v.<com.sun.enterprise.deployment.archivist.AppClientArchivist: void validate(java.lang.ClassLoader)>(v);
return;
}
public java.net.URI getURI()
{
org.glassfish.appclient.client.acc.MainClassLaunchable v;
v := @this: org.glassfish.appclient.client.acc.MainClassLaunchable;
return null;
}
public java.lang.String getAnchorDir()
{
org.glassfish.appclient.client.acc.MainClassLaunchable v;
v := @this: org.glassfish.appclient.client.acc.MainClassLaunchable;
return null;
}
}