public abstract class org.apache.nifi.nar.AbstractNativeLibHandlingClassLoader extends java.net.URLClassLoader implements org.apache.nifi.nar.OSUtil
{
private final org.slf4j.Logger logger;
protected final java.util.List nativeLibDirList;
protected final java.util.Map nativeLibNameToPath;
private final java.lang.String tmpLibFilePrefix;
public void <init>(java.net.URL[], java.util.List, java.lang.String)
{
org.slf4j.Logger v;
java.util.HashMap v;
java.net.URL[] v;
java.util.List v, v;
java.lang.Class v;
org.apache.nifi.nar.AbstractNativeLibHandlingClassLoader v;
java.lang.String v;
v := @this: org.apache.nifi.nar.AbstractNativeLibHandlingClassLoader;
v := @parameter: java.net.URL[];
v := @parameter: java.util.List;
v := @parameter: java.lang.String;
specialinvoke v.<java.net.URLClassLoader: void <init>(java.net.URL[])>(v);
v = virtualinvoke v.<java.lang.Object: java.lang.Class getClass()>();
v = staticinvoke <org.slf4j.LoggerFactory: org.slf4j.Logger getLogger(java.lang.Class)>(v);
v.<org.apache.nifi.nar.AbstractNativeLibHandlingClassLoader: org.slf4j.Logger logger> = v;
v = new java.util.HashMap;
specialinvoke v.<java.util.HashMap: void <init>()>();
v.<org.apache.nifi.nar.AbstractNativeLibHandlingClassLoader: java.util.Map nativeLibNameToPath> = v;
v = specialinvoke v.<org.apache.nifi.nar.AbstractNativeLibHandlingClassLoader: java.util.List buildNativeLibDirList(java.util.List)>(v);
v.<org.apache.nifi.nar.AbstractNativeLibHandlingClassLoader: java.util.List nativeLibDirList> = v;
v.<org.apache.nifi.nar.AbstractNativeLibHandlingClassLoader: java.lang.String tmpLibFilePrefix> = v;
return;
}
public void <init>(java.net.URL[], java.lang.ClassLoader, java.util.List, java.lang.String)
{
org.slf4j.Logger v;
java.util.HashMap v;
java.net.URL[] v;
java.util.List v, v;
java.lang.Class v;
org.apache.nifi.nar.AbstractNativeLibHandlingClassLoader v;
java.lang.ClassLoader v;
java.lang.String v;
v := @this: org.apache.nifi.nar.AbstractNativeLibHandlingClassLoader;
v := @parameter: java.net.URL[];
v := @parameter: java.lang.ClassLoader;
v := @parameter: java.util.List;
v := @parameter: java.lang.String;
specialinvoke v.<java.net.URLClassLoader: void <init>(java.net.URL[],java.lang.ClassLoader)>(v, v);
v = virtualinvoke v.<java.lang.Object: java.lang.Class getClass()>();
v = staticinvoke <org.slf4j.LoggerFactory: org.slf4j.Logger getLogger(java.lang.Class)>(v);
v.<org.apache.nifi.nar.AbstractNativeLibHandlingClassLoader: org.slf4j.Logger logger> = v;
v = new java.util.HashMap;
specialinvoke v.<java.util.HashMap: void <init>()>();
v.<org.apache.nifi.nar.AbstractNativeLibHandlingClassLoader: java.util.Map nativeLibNameToPath> = v;
v = specialinvoke v.<org.apache.nifi.nar.AbstractNativeLibHandlingClassLoader: java.util.List buildNativeLibDirList(java.util.List)>(v);
v.<org.apache.nifi.nar.AbstractNativeLibHandlingClassLoader: java.util.List nativeLibDirList> = v;
v.<org.apache.nifi.nar.AbstractNativeLibHandlingClassLoader: java.lang.String tmpLibFilePrefix> = v;
return;
}
public static java.io.File toDir(java.io.File)
{
java.io.File v, v;
boolean v, v;
v := @parameter: java.io.File;
if v != null goto label;
return null;
label:
v = virtualinvoke v.<java.io.File: boolean isFile()>();
if v == 0 goto label;
v = virtualinvoke v.<java.io.File: java.io.File getParentFile()>();
return v;
label:
v = virtualinvoke v.<java.io.File: boolean isDirectory()>();
if v == 0 goto label;
return v;
label:
return null;
}
public java.lang.String findLibrary(java.lang.String)
{
java.util.Map v;
java.util.function.BiFunction v;
java.lang.Object v;
org.apache.nifi.nar.AbstractNativeLibHandlingClassLoader v;
java.lang.String v, v;
java.io.File v;
v := @this: org.apache.nifi.nar.AbstractNativeLibHandlingClassLoader;
v := @parameter: java.lang.String;
v = v.<org.apache.nifi.nar.AbstractNativeLibHandlingClassLoader: java.util.Map nativeLibNameToPath>;
v = staticinvoke <org.apache.nifi.nar.AbstractNativeLibHandlingClassLoader$lambda_findLibrary_0__1: java.util.function.BiFunction bootstrap$(org.apache.nifi.nar.AbstractNativeLibHandlingClassLoader,java.lang.String)>(v, v);
v = interfaceinvoke v.<java.util.Map: java.lang.Object compute(java.lang.Object,java.util.function.BiFunction)>(v, v);
if v != null goto label;
v = null;
goto label;
label:
v = interfaceinvoke v.<java.nio.file.Path: java.io.File toFile()>();
v = virtualinvoke v.<java.io.File: java.lang.String getAbsolutePath()>();
label:
return v;
}
protected java.util.Set getUsrLibDirs()
{
java.lang.String[] v;
java.util.function.Function v, v, v;
java.lang.String v, v;
java.util.stream.Collector v;
java.util.function.Predicate v, v;
java.util.stream.Stream v, v, v, v, v, v;
java.lang.Object v;
org.apache.nifi.nar.AbstractNativeLibHandlingClassLoader v;
v := @this: org.apache.nifi.nar.AbstractNativeLibHandlingClassLoader;
v = virtualinvoke v.<org.apache.nifi.nar.AbstractNativeLibHandlingClassLoader: java.lang.String getJavaLibraryPath()>();
v = <java.io.File: java.lang.String pathSeparator>;
v = virtualinvoke v.<java.lang.String: java.lang.String[] split(java.lang.String)>(v);
v = staticinvoke <java.util.Arrays: java.util.stream.Stream stream(java.lang.Object[])>(v);
v = staticinvoke <org.apache.nifi.nar.AbstractNativeLibHandlingClassLoader$trim__2: java.util.function.Function bootstrap$()>();
v = interfaceinvoke v.<java.util.stream.Stream: java.util.stream.Stream map(java.util.function.Function)>(v);
v = staticinvoke <org.apache.nifi.nar.AbstractNativeLibHandlingClassLoader$lambda_getUsrLibDirs_1__3: java.util.function.Predicate bootstrap$()>();
v = interfaceinvoke v.<java.util.stream.Stream: java.util.stream.Stream filter(java.util.function.Predicate)>(v);
v = staticinvoke <org.apache.nifi.nar.AbstractNativeLibHandlingClassLoader$init__4: java.util.function.Function bootstrap$()>();
v = interfaceinvoke v.<java.util.stream.Stream: java.util.stream.Stream map(java.util.function.Function)>(v);
v = staticinvoke <org.apache.nifi.nar.AbstractNativeLibHandlingClassLoader$toDir__5: java.util.function.Function bootstrap$()>();
v = interfaceinvoke v.<java.util.stream.Stream: java.util.stream.Stream map(java.util.function.Function)>(v);
v = staticinvoke <org.apache.nifi.nar.AbstractNativeLibHandlingClassLoader$nonNull__6: java.util.function.Predicate bootstrap$()>();
v = interfaceinvoke v.<java.util.stream.Stream: java.util.stream.Stream filter(java.util.function.Predicate)>(v);
v = staticinvoke <java.util.stream.Collectors: java.util.stream.Collector toSet()>();
v = interfaceinvoke v.<java.util.stream.Stream: java.lang.Object collect(java.util.stream.Collector)>(v);
return v;
}
protected java.lang.String getJavaLibraryPath()
{
org.apache.nifi.nar.AbstractNativeLibHandlingClassLoader v;
java.lang.String v;
v := @this: org.apache.nifi.nar.AbstractNativeLibHandlingClassLoader;
v = staticinvoke <java.lang.System: java.lang.String getProperty(java.lang.String,java.lang.String)>("java.library.path", "");
return v;
}
protected java.nio.file.Path createTempCopy(java.lang.String, java.lang.String)
{
java.nio.file.CopyOption[] v;
org.slf4j.Logger v;
java.lang.String[] v;
java.lang.Exception v;
java.nio.file.StandardCopyOption v;
java.nio.file.attribute.FileAttribute[] v;
org.apache.nifi.nar.AbstractNativeLibHandlingClassLoader v;
java.lang.String v, v, v, v, v, v;
java.nio.file.Path v, v;
v := @this: org.apache.nifi.nar.AbstractNativeLibHandlingClassLoader;
v := @parameter: java.lang.String;
v := @parameter: java.lang.String;
label:
v = v.<org.apache.nifi.nar.AbstractNativeLibHandlingClassLoader: java.lang.String tmpLibFilePrefix>;
v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (java.lang.String)>(v) <java.lang.invoke.StringConcatFactory: java.lang.invoke.CallSite makeConcatWithConstants(java.lang.invoke.MethodHandles$Lookup,java.lang.String,java.lang.invoke.MethodType,java.lang.String,java.lang.Object[])>("\u0001_");
v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (java.lang.String)>(v) <java.lang.invoke.StringConcatFactory: java.lang.invoke.CallSite makeConcatWithConstants(java.lang.invoke.MethodHandles$Lookup,java.lang.String,java.lang.invoke.MethodType,java.lang.String,java.lang.Object[])>("_\u0001");
v = newarray (java.nio.file.attribute.FileAttribute)[0];
v = staticinvoke <java.nio.file.Files: java.nio.file.Path createTempFile(java.lang.String,java.lang.String,java.nio.file.attribute.FileAttribute[])>(v, v, v);
v = newarray (java.lang.String)[0];
v = staticinvoke <java.nio.file.Paths: java.nio.file.Path get(java.lang.String,java.lang.String[])>(v, v);
v = newarray (java.nio.file.CopyOption)[1];
v = <java.nio.file.StandardCopyOption: java.nio.file.StandardCopyOption REPLACE_EXISTING>;
v[0] = v;
staticinvoke <java.nio.file.Files: java.nio.file.Path copy(java.nio.file.Path,java.nio.file.Path,java.nio.file.CopyOption[])>(v, v, v);
label:
goto label;
label:
v := @caughtexception;
v = v.<org.apache.nifi.nar.AbstractNativeLibHandlingClassLoader: org.slf4j.Logger logger>;
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[])>("Couldn\'t create temporary copy of the library \'\u0001\' found at \'\u0001\'");
interfaceinvoke v.<org.slf4j.Logger: void error(java.lang.String,java.lang.Throwable)>(v, v);
v = null;
label:
return v;
catch java.lang.Exception from label to label with label;
}
protected java.lang.String findLibrary(java.lang.String, java.io.File)
{
java.lang.String v, v, v, v, v, v, v, v, v, v, v, v, v;
boolean v, v, v, v, v, v, v, v, v, v;
java.io.File v, v, v, v, v, v;
org.apache.nifi.nar.AbstractNativeLibHandlingClassLoader v;
v := @this: org.apache.nifi.nar.AbstractNativeLibHandlingClassLoader;
v := @parameter: java.lang.String;
v := @parameter: java.io.File;
v = new java.io.File;
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.dll");
specialinvoke v.<java.io.File: void <init>(java.io.File,java.lang.String)>(v, v);
v = new java.io.File;
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.dylib");
specialinvoke v.<java.io.File: void <init>(java.io.File,java.lang.String)>(v, v);
v = new java.io.File;
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[])>("lib\u.dylib");
specialinvoke v.<java.io.File: void <init>(java.io.File,java.lang.String)>(v, v);
v = new java.io.File;
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[])>("lib\u.so");
specialinvoke v.<java.io.File: void <init>(java.io.File,java.lang.String)>(v, v);
v = new java.io.File;
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.so");
specialinvoke v.<java.io.File: void <init>(java.io.File,java.lang.String)>(v, v);
v = virtualinvoke v.<org.apache.nifi.nar.AbstractNativeLibHandlingClassLoader: boolean isOsWindows()>();
if v == 0 goto label;
v = virtualinvoke v.<java.io.File: boolean exists()>();
if v == 0 goto label;
v = virtualinvoke v.<java.io.File: java.lang.String getAbsolutePath()>();
return v;
label:
v = virtualinvoke v.<org.apache.nifi.nar.AbstractNativeLibHandlingClassLoader: boolean isOsMac()>();
if v == 0 goto label;
v = virtualinvoke v.<java.io.File: boolean exists()>();
if v == 0 goto label;
v = virtualinvoke v.<java.io.File: java.lang.String getAbsolutePath()>();
return v;
label:
v = virtualinvoke v.<java.io.File: boolean exists()>();
if v == 0 goto label;
v = virtualinvoke v.<java.io.File: java.lang.String getAbsolutePath()>();
return v;
label:
v = virtualinvoke v.<java.io.File: boolean exists()>();
if v == 0 goto label;
v = virtualinvoke v.<java.io.File: java.lang.String getAbsolutePath()>();
return v;
label:
v = virtualinvoke v.<java.io.File: boolean exists()>();
if v == 0 goto label;
v = virtualinvoke v.<java.io.File: java.lang.String getAbsolutePath()>();
return v;
label:
v = virtualinvoke v.<org.apache.nifi.nar.AbstractNativeLibHandlingClassLoader: boolean isOsLinuxUnix()>();
if v == 0 goto label;
v = virtualinvoke v.<java.io.File: boolean exists()>();
if v == 0 goto label;
v = virtualinvoke v.<java.io.File: java.lang.String getAbsolutePath()>();
return v;
label:
v = virtualinvoke v.<java.io.File: boolean exists()>();
if v == 0 goto label;
v = virtualinvoke v.<java.io.File: java.lang.String getAbsolutePath()>();
return v;
label:
return null;
}
private java.util.List buildNativeLibDirList(java.util.List)
{
java.util.List v, v;
java.util.Set v;
org.apache.nifi.nar.AbstractNativeLibHandlingClassLoader v;
java.util.ArrayList v;
v := @this: org.apache.nifi.nar.AbstractNativeLibHandlingClassLoader;
v := @parameter: java.util.List;
v = new java.util.ArrayList;
specialinvoke v.<java.util.ArrayList: void <init>(java.util.Collection)>(v);
v = virtualinvoke v.<org.apache.nifi.nar.AbstractNativeLibHandlingClassLoader: java.util.Set getUsrLibDirs()>();
interfaceinvoke v.<java.util.List: boolean addAll(java.util.Collection)>(v);
v = staticinvoke <java.util.Collections: java.util.List unmodifiableList(java.util.List)>(v);
return v;
}
}