public class org.glassfish.uberjar.bootstrap.Util extends java.lang.Object
{
private static java.util.logging.Logger logger;
private static final java.util.Map gfMap;
private static java.lang.String MODULES_DIR_PREFIX;
private static java.lang.String MODULES_DIR_SUFFIX;
private static final java.lang.String JARFILE_URL_PREFIX;
private static final java.lang.String JARENTRY_PREFIX;
public void <init>()
{
org.glassfish.uberjar.bootstrap.Util v;
v := @this: org.glassfish.uberjar.bootstrap.Util;
specialinvoke v.<java.lang.Object: void <init>()>();
return;
}
public static java.util.logging.Logger getLogger()
{
java.util.logging.Logger v;
v = <org.glassfish.uberjar.bootstrap.Util: java.util.logging.Logger logger>;
return v;
}
public static synchronized void addServer(java.lang.String, org.glassfish.embeddable.GlassFish)
{
java.lang.String v;
java.util.Map v;
org.glassfish.embeddable.GlassFish v;
v := @parameter: java.lang.String;
v := @parameter: org.glassfish.embeddable.GlassFish;
v = <org.glassfish.uberjar.bootstrap.Util: java.util.Map gfMap>;
interfaceinvoke v.<java.util.Map: java.lang.Object put(java.lang.Object,java.lang.Object)>(v, v);
return;
}
public static synchronized void removeServer(java.lang.String)
{
java.lang.String v;
java.util.Map v;
v := @parameter: java.lang.String;
v = <org.glassfish.uberjar.bootstrap.Util: java.util.Map gfMap>;
interfaceinvoke v.<java.util.Map: java.lang.Object remove(java.lang.Object)>(v);
return;
}
public static org.glassfish.embeddable.GlassFish getServer(java.lang.String)
{
java.lang.Object v;
java.lang.String v;
java.util.Map v;
v := @parameter: java.lang.String;
v = <org.glassfish.uberjar.bootstrap.Util: java.util.Map gfMap>;
v = interfaceinvoke v.<java.util.Map: java.lang.Object get(java.lang.Object)>(v);
return v;
}
public static java.net.URI whichJar(java.lang.Class)
{
java.net.URL v, v;
java.net.URLConnection v;
java.lang.String v, v, v, v, v, v, v, v;
java.net.URI v;
boolean v;
java.util.logging.Logger v, v, v;
java.lang.Exception v;
java.lang.Class v, v;
java.lang.Object v;
java.lang.ClassLoader v;
v := @parameter: java.lang.Class;
v = <org.glassfish.uberjar.bootstrap.Util: java.util.logging.Logger logger>;
v = virtualinvoke v.<java.lang.Class: java.lang.String getName()>();
v = virtualinvoke v.<java.lang.String: java.lang.String replace(java.lang.CharSequence,java.lang.CharSequence)>(".", "/");
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[])>("ResourceName = \u.class");
virtualinvoke v.<java.util.logging.Logger: void finer(java.lang.String)>(v);
v = virtualinvoke v.<java.lang.Class: java.lang.ClassLoader getClassLoader()>();
v = virtualinvoke v.<java.lang.Class: java.lang.String getName()>();
v = virtualinvoke v.<java.lang.String: java.lang.String replace(java.lang.CharSequence,java.lang.CharSequence)>(".", "/");
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 = virtualinvoke v.<java.lang.ClassLoader: java.net.URL getResource(java.lang.String)>(v);
v = <org.glassfish.uberjar.bootstrap.Util: java.util.logging.Logger logger>;
v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (java.net.URL)>(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[])>("url = \u0001");
virtualinvoke v.<java.util.logging.Logger: void finer(java.lang.String)>(v);
if v == null goto label;
label:
v = virtualinvoke v.<java.net.URL: java.net.URLConnection openConnection()>();
v = <org.glassfish.uberjar.bootstrap.Util: java.util.logging.Logger logger>;
v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (java.net.URLConnection)>(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[])>("con = \u0001");
virtualinvoke v.<java.util.logging.Logger: void finer(java.lang.String)>(v);
v = v instanceof java.net.JarURLConnection;
if v == 0 goto label;
v = class "Ljava/net/JarURLConnection;";
v = virtualinvoke v.<java.lang.Class: java.lang.Object cast(java.lang.Object)>(v);
v = virtualinvoke v.<java.net.JarURLConnection: java.net.URL getJarFileURL()>();
v = virtualinvoke v.<java.net.URL: java.net.URI toURI()>();
label:
return v;
label:
v := @caughtexception;
virtualinvoke v.<java.lang.Exception: void printStackTrace()>();
label:
return null;
catch java.lang.Exception from label to label with label;
}
public static boolean isUber(java.net.URI)
{
int v, v, v, v;
java.lang.String v, v;
java.net.URI v;
boolean v;
v := @parameter: java.net.URI;
v = virtualinvoke v.<java.net.URI: java.lang.String toString()>();
v = virtualinvoke v.<java.lang.String: int lastIndexOf(java.lang.String)>("/");
v = v + 1;
v = virtualinvoke v.<java.lang.String: java.lang.String substring(int)>(v);
v = virtualinvoke v.<java.lang.String: int indexOf(java.lang.String)>("glassfish-embedded");
v = (int) -1;
if v == v goto label;
v = 1;
goto label;
label:
v = 0;
label:
return v;
}
public static java.util.List getModuleJarURLs(java.io.File)
{
java.util.Enumeration v;
java.net.URL v;
java.util.jar.JarFile v;
java.util.ArrayList v;
java.lang.String v, v, v, v, v, v, v;
boolean v, v, v, v;
java.io.File v;
java.lang.Exception v;
java.lang.Object v;
v := @parameter: java.io.File;
v = new java.util.ArrayList;
specialinvoke v.<java.util.ArrayList: void <init>()>();
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.Enumeration entries()>();
label:
v = interfaceinvoke v.<java.util.Enumeration: boolean hasMoreElements()>();
if v == 0 goto label;
v = interfaceinvoke v.<java.util.Enumeration: java.lang.Object nextElement()>();
v = virtualinvoke v.<java.util.jar.JarEntry: boolean isDirectory()>();
if v == 0 goto label;
v = virtualinvoke v.<java.util.jar.JarEntry: java.lang.String getName()>();
v = <org.glassfish.uberjar.bootstrap.Util: java.lang.String MODULES_DIR_PREFIX>;
v = virtualinvoke v.<java.lang.String: boolean startsWith(java.lang.String)>(v);
if v == 0 goto label;
v = virtualinvoke v.<java.util.jar.JarEntry: java.lang.String getName()>();
v = <org.glassfish.uberjar.bootstrap.Util: java.lang.String MODULES_DIR_SUFFIX>;
v = virtualinvoke v.<java.lang.String: boolean endsWith(java.lang.String)>(v);
if v == 0 goto label;
v = new java.net.URL;
v = virtualinvoke v.<java.util.jar.JarFile: java.lang.String getName()>();
v = virtualinvoke v.<java.util.jar.JarEntry: 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[])>("jar:file:\u0001!/\u0001");
specialinvoke v.<java.net.URL: void <init>(java.lang.String)>(v);
interfaceinvoke v.<java.util.List: boolean add(java.lang.Object)>(v);
goto label;
label:
v := @caughtexception;
virtualinvoke v.<java.lang.Exception: void printStackTrace()>();
label:
return v;
catch java.lang.Exception from label to label with label;
}
static void copyWithoutClose(java.io.InputStream, java.io.FileOutputStream, long) throws java.io.IOException
{
java.nio.channels.ReadableByteChannel v;
java.io.FileOutputStream v;
long v;
java.nio.channels.FileChannel v;
java.io.InputStream v;
v := @parameter: java.io.InputStream;
v := @parameter: java.io.FileOutputStream;
v := @parameter: long;
v = staticinvoke <java.nio.channels.Channels: java.nio.channels.ReadableByteChannel newChannel(java.io.InputStream)>(v);
v = virtualinvoke v.<java.io.FileOutputStream: java.nio.channels.FileChannel getChannel()>();
virtualinvoke v.<java.nio.channels.FileChannel: long transferFrom(java.nio.channels.ReadableByteChannel,long,long)>(v, 0L, v);
return;
}
static void copy(java.io.InputStream, java.io.FileOutputStream, long) throws java.io.IOException
{
java.lang.Throwable v;
java.io.FileOutputStream v;
long v;
java.io.InputStream v;
v := @parameter: java.io.InputStream;
v := @parameter: java.io.FileOutputStream;
v := @parameter: long;
label:
staticinvoke <org.glassfish.uberjar.bootstrap.Util: void copyWithoutClose(java.io.InputStream,java.io.FileOutputStream,long)>(v, v, v);
label:
if v == null goto label;
virtualinvoke v.<java.io.InputStream: void close()>();
label:
if v == null goto label;
virtualinvoke v.<java.io.FileOutputStream: void close()>();
goto label;
label:
v := @caughtexception;
if v == null goto label;
virtualinvoke v.<java.io.InputStream: void close()>();
label:
if v == null goto label;
virtualinvoke v.<java.io.FileOutputStream: void close()>();
label:
throw v;
label:
return;
catch java.lang.Throwable from label to label with label;
}
static void <clinit>()
{
java.util.HashMap v;
java.util.logging.Logger v;
v = staticinvoke <java.util.logging.Logger: java.util.logging.Logger getLogger(java.lang.String)>("embedded-glassfish");
<org.glassfish.uberjar.bootstrap.Util: java.util.logging.Logger logger> = v;
v = new java.util.HashMap;
specialinvoke v.<java.util.HashMap: void <init>()>();
<org.glassfish.uberjar.bootstrap.Util: java.util.Map gfMap> = v;
<org.glassfish.uberjar.bootstrap.Util: java.lang.String MODULES_DIR_PREFIX> = "modules";
<org.glassfish.uberjar.bootstrap.Util: java.lang.String MODULES_DIR_SUFFIX> = "_jar/";
return;
}
}