public final class jdk.tools.jlink.internal.plugins.ExcludeVMPlugin implements jdk.tools.jlink.plugin.Plugin
minor version: 0
major version: 59
flags: flags: (0x0031) ACC_PUBLIC, ACC_FINAL, ACC_SUPER
this_class: jdk.tools.jlink.internal.plugins.ExcludeVMPlugin
super_class: java.lang.Object
{
private static final java.lang.String JVM_CFG;
descriptor: Ljava/lang/String;
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: "jvm.cfg"
public static final java.lang.String NAME;
descriptor: Ljava/lang/String;
flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
ConstantValue: "vm"
private static final java.lang.String ALL;
descriptor: Ljava/lang/String;
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: "all"
private static final java.lang.String CLIENT;
descriptor: Ljava/lang/String;
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: "client"
private static final java.lang.String SERVER;
descriptor: Ljava/lang/String;
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: "server"
private static final java.lang.String MINIMAL;
descriptor: Ljava/lang/String;
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: "minimal"
private java.util.function.Predicate<java.lang.String> predicate;
descriptor: Ljava/util/function/Predicate;
flags: (0x0002) ACC_PRIVATE
Signature: Ljava/util/function/Predicate<Ljava/lang/String;>;
private jdk.tools.jlink.internal.plugins.ExcludeVMPlugin$Jvm target;
descriptor: Ljdk/tools/jlink/internal/plugins/ExcludeVMPlugin$Jvm;
flags: (0x0002) ACC_PRIVATE
private boolean keepAll;
descriptor: Z
flags: (0x0002) ACC_PRIVATE
private static volatile int[] $SWITCH_TABLE$jdk$tools$jlink$internal$Platform;
descriptor: [I
flags: (0x104a) ACC_PRIVATE, ACC_STATIC, ACC_VOLATILE, ACC_SYNTHETIC
public void <init>();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
invokespecial java.lang.Object.<init>:()V
return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Ljdk/tools/jlink/internal/plugins/ExcludeVMPlugin;
public java.lang.String getName();
descriptor: ()Ljava/lang/String;
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: ldc "vm"
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Ljdk/tools/jlink/internal/plugins/ExcludeVMPlugin;
private java.util.List<jdk.tools.jlink.plugin.ResourcePoolEntry> getVMs(jdk.tools.jlink.plugin.ResourcePoolModule, java.lang.String[]);
descriptor: (Ljdk/tools/jlink/plugin/ResourcePoolModule;[Ljava/lang/String;)Ljava/util/List;
flags: (0x0002) ACC_PRIVATE
Code:
stack=2, locals=4, args_size=3
start local 0 start local 1 start local 2 0: aload 1
invokeinterface jdk.tools.jlink.plugin.ResourcePoolModule.entries:()Ljava/util/stream/Stream;
aload 2
invokedynamic test([Ljava/lang/String;)Ljava/util/function/Predicate;
Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
Method arguments:
(Ljava/lang/Object;)Z
jdk/tools/jlink/internal/plugins/ExcludeVMPlugin.lambda$0([Ljava/lang/String;Ljdk/tools/jlink/plugin/ResourcePoolEntry;)Z (6)
(Ljdk/tools/jlink/plugin/ResourcePoolEntry;)Z
invokeinterface java.util.stream.Stream.filter:(Ljava/util/function/Predicate;)Ljava/util/stream/Stream;
1: invokestatic java.util.stream.Collectors.toList:()Ljava/util/stream/Collector;
invokeinterface java.util.stream.Stream.collect:(Ljava/util/stream/Collector;)Ljava/lang/Object;
checkcast java.util.List
2: astore 3
start local 3 3: aload 3
areturn
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 this Ljdk/tools/jlink/internal/plugins/ExcludeVMPlugin;
0 4 1 javaBase Ljdk/tools/jlink/plugin/ResourcePoolModule;
0 4 2 jvmlibs [Ljava/lang/String;
3 4 3 ret Ljava/util/List<Ljdk/tools/jlink/plugin/ResourcePoolEntry;>;
Signature: (Ljdk/tools/jlink/plugin/ResourcePoolModule;[Ljava/lang/String;)Ljava/util/List<Ljdk/tools/jlink/plugin/ResourcePoolEntry;>;
MethodParameters:
Name Flags
javaBase
jvmlibs
public jdk.tools.jlink.plugin.ResourcePool transform(jdk.tools.jlink.plugin.ResourcePool, jdk.tools.jlink.plugin.ResourcePoolBuilder);
descriptor: (Ljdk/tools/jlink/plugin/ResourcePool;Ljdk/tools/jlink/plugin/ResourcePoolBuilder;)Ljdk/tools/jlink/plugin/ResourcePool;
flags: (0x0001) ACC_PUBLIC
Code:
stack=5, locals=19, args_size=3
start local 0 start local 1 start local 2 0: aload 1
invokeinterface jdk.tools.jlink.plugin.ResourcePool.moduleView:()Ljdk/tools/jlink/plugin/ResourcePoolModuleView;
ldc "java.base"
invokeinterface jdk.tools.jlink.plugin.ResourcePoolModuleView.findModule:(Ljava/lang/String;)Ljava/util/Optional;
invokevirtual java.util.Optional.get:()Ljava/lang/Object;
checkcast jdk.tools.jlink.plugin.ResourcePoolModule
astore 3
start local 3 1: aload 3
invokestatic jdk.tools.jlink.internal.plugins.ExcludeVMPlugin.jvmlibs:(Ljdk/tools/jlink/plugin/ResourcePoolModule;)[Ljava/lang/String;
astore 4
start local 4 2: new java.util.TreeSet
dup
new jdk.tools.jlink.internal.plugins.ExcludeVMPlugin$JvmComparator
dup
invokespecial jdk.tools.jlink.internal.plugins.ExcludeVMPlugin$JvmComparator.<init>:()V
invokespecial java.util.TreeSet.<init>:(Ljava/util/Comparator;)V
astore 5
start local 5 3: new java.util.TreeSet
dup
new jdk.tools.jlink.internal.plugins.ExcludeVMPlugin$JvmComparator
dup
invokespecial jdk.tools.jlink.internal.plugins.ExcludeVMPlugin$JvmComparator.<init>:()V
invokespecial java.util.TreeSet.<init>:(Ljava/util/Comparator;)V
astore 6
start local 6 4: aload 0
getfield jdk.tools.jlink.internal.plugins.ExcludeVMPlugin.keepAll:Z
ifne 22
5: aload 0
aload 3
aload 4
invokevirtual jdk.tools.jlink.internal.plugins.ExcludeVMPlugin.getVMs:(Ljdk/tools/jlink/plugin/ResourcePoolModule;[Ljava/lang/String;)Ljava/util/List;
astore 7
start local 7 6: invokestatic jdk.tools.jlink.internal.plugins.ExcludeVMPlugin$Jvm.values:()[Ljdk/tools/jlink/internal/plugins/ExcludeVMPlugin$Jvm;
dup
astore 11
arraylength
istore 10
iconst_0
istore 9
goto 21
StackMap locals: jdk.tools.jlink.internal.plugins.ExcludeVMPlugin jdk.tools.jlink.plugin.ResourcePool jdk.tools.jlink.plugin.ResourcePoolBuilder jdk.tools.jlink.plugin.ResourcePoolModule java.lang.String[] java.util.TreeSet java.util.TreeSet java.util.List top int int jdk.tools.jlink.internal.plugins.ExcludeVMPlugin$Jvm[]
StackMap stack:
7: aload 11
iload 9
aaload
astore 8
start local 8 8: aload 7
invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
astore 13
goto 19
StackMap locals: jdk.tools.jlink.internal.plugins.ExcludeVMPlugin jdk.tools.jlink.plugin.ResourcePool jdk.tools.jlink.plugin.ResourcePoolBuilder jdk.tools.jlink.plugin.ResourcePoolModule java.lang.String[] java.util.TreeSet java.util.TreeSet java.util.List jdk.tools.jlink.internal.plugins.ExcludeVMPlugin$Jvm int int jdk.tools.jlink.internal.plugins.ExcludeVMPlugin$Jvm[] top java.util.Iterator
StackMap stack:
9: aload 13
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast jdk.tools.jlink.plugin.ResourcePoolEntry
astore 12
start local 12 10: aload 12
invokeinterface jdk.tools.jlink.plugin.ResourcePoolEntry.path:()Ljava/lang/String;
astore 14
start local 14 11: aload 4
dup
astore 18
arraylength
istore 17
iconst_0
istore 16
goto 18
StackMap locals: jdk.tools.jlink.internal.plugins.ExcludeVMPlugin jdk.tools.jlink.plugin.ResourcePool jdk.tools.jlink.plugin.ResourcePoolBuilder jdk.tools.jlink.plugin.ResourcePoolModule java.lang.String[] java.util.TreeSet java.util.TreeSet java.util.List jdk.tools.jlink.internal.plugins.ExcludeVMPlugin$Jvm int int jdk.tools.jlink.internal.plugins.ExcludeVMPlugin$Jvm[] jdk.tools.jlink.plugin.ResourcePoolEntry java.util.Iterator java.lang.String top int int java.lang.String[]
StackMap stack:
12: aload 18
iload 16
aaload
astore 15
start local 15 13: aload 14
new java.lang.StringBuilder
dup
ldc "/"
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 8
invokevirtual jdk.tools.jlink.internal.plugins.ExcludeVMPlugin$Jvm.getName:()Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
ldc "/"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
aload 15
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokevirtual java.lang.String.endsWith:(Ljava/lang/String;)Z
ifeq 17
14: aload 5
aload 8
invokevirtual java.util.TreeSet.add:(Ljava/lang/Object;)Z
pop
15: aload 0
aload 12
invokevirtual jdk.tools.jlink.internal.plugins.ExcludeVMPlugin.isRemoved:(Ljdk/tools/jlink/plugin/ResourcePoolEntry;)Z
ifeq 17
16: aload 6
aload 8
invokevirtual java.util.TreeSet.add:(Ljava/lang/Object;)Z
pop
end local 15 17: StackMap locals:
StackMap stack:
iinc 16 1
StackMap locals:
StackMap stack:
18: iload 16
iload 17
if_icmplt 12
end local 14 end local 12 19: StackMap locals: jdk.tools.jlink.internal.plugins.ExcludeVMPlugin jdk.tools.jlink.plugin.ResourcePool jdk.tools.jlink.plugin.ResourcePoolBuilder jdk.tools.jlink.plugin.ResourcePoolModule java.lang.String[] java.util.TreeSet java.util.TreeSet java.util.List jdk.tools.jlink.internal.plugins.ExcludeVMPlugin$Jvm int int jdk.tools.jlink.internal.plugins.ExcludeVMPlugin$Jvm[] top java.util.Iterator
StackMap stack:
aload 13
invokeinterface java.util.Iterator.hasNext:()Z
ifne 9
end local 8 20: iinc 9 1
StackMap locals: jdk.tools.jlink.internal.plugins.ExcludeVMPlugin jdk.tools.jlink.plugin.ResourcePool jdk.tools.jlink.plugin.ResourcePoolBuilder jdk.tools.jlink.plugin.ResourcePoolModule java.lang.String[] java.util.TreeSet java.util.TreeSet java.util.List top int int jdk.tools.jlink.internal.plugins.ExcludeVMPlugin$Jvm[]
StackMap stack:
21: iload 9
iload 10
if_icmplt 7
end local 7 22: StackMap locals: jdk.tools.jlink.internal.plugins.ExcludeVMPlugin jdk.tools.jlink.plugin.ResourcePool jdk.tools.jlink.plugin.ResourcePoolBuilder jdk.tools.jlink.plugin.ResourcePoolModule java.lang.String[] java.util.TreeSet java.util.TreeSet
StackMap stack:
aload 0
getfield jdk.tools.jlink.internal.plugins.ExcludeVMPlugin.keepAll:Z
ifne 25
23: aload 5
aload 0
getfield jdk.tools.jlink.internal.plugins.ExcludeVMPlugin.target:Ljdk/tools/jlink/internal/plugins/ExcludeVMPlugin$Jvm;
invokevirtual java.util.TreeSet.contains:(Ljava/lang/Object;)Z
ifne 25
24: new jdk.tools.jlink.plugin.PluginException
dup
new java.lang.StringBuilder
dup
ldc "Selected VM "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 0
getfield jdk.tools.jlink.internal.plugins.ExcludeVMPlugin.target:Ljdk/tools/jlink/internal/plugins/ExcludeVMPlugin$Jvm;
invokevirtual jdk.tools.jlink.internal.plugins.ExcludeVMPlugin$Jvm.getName:()Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
ldc " doesn't exist."
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokespecial jdk.tools.jlink.plugin.PluginException.<init>:(Ljava/lang/String;)V
athrow
25: StackMap locals:
StackMap stack:
aload 1
aload 0
aload 5
aload 6
invokedynamic apply(Ljdk/tools/jlink/internal/plugins/ExcludeVMPlugin;Ljava/util/TreeSet;Ljava/util/TreeSet;)Ljava/util/function/Function;
Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
Method arguments:
(Ljava/lang/Object;)Ljava/lang/Object;
jdk/tools/jlink/internal/plugins/ExcludeVMPlugin.lambda$1(Ljava/util/TreeSet;Ljava/util/TreeSet;Ljdk/tools/jlink/plugin/ResourcePoolEntry;)Ljdk/tools/jlink/plugin/ResourcePoolEntry; (7)
(Ljdk/tools/jlink/plugin/ResourcePoolEntry;)Ljdk/tools/jlink/plugin/ResourcePoolEntry;
26: aload 2
27: invokeinterface jdk.tools.jlink.plugin.ResourcePool.transformAndCopy:(Ljava/util/function/Function;Ljdk/tools/jlink/plugin/ResourcePoolBuilder;)V
28: aload 2
invokeinterface jdk.tools.jlink.plugin.ResourcePoolBuilder.build:()Ljdk/tools/jlink/plugin/ResourcePool;
areturn
end local 6 end local 5 end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 29 0 this Ljdk/tools/jlink/internal/plugins/ExcludeVMPlugin;
0 29 1 in Ljdk/tools/jlink/plugin/ResourcePool;
0 29 2 out Ljdk/tools/jlink/plugin/ResourcePoolBuilder;
1 29 3 javaBase Ljdk/tools/jlink/plugin/ResourcePoolModule;
2 29 4 jvmlibs [Ljava/lang/String;
3 29 5 existing Ljava/util/TreeSet<Ljdk/tools/jlink/internal/plugins/ExcludeVMPlugin$Jvm;>;
4 29 6 removed Ljava/util/TreeSet<Ljdk/tools/jlink/internal/plugins/ExcludeVMPlugin$Jvm;>;
6 22 7 jvms Ljava/util/List<Ljdk/tools/jlink/plugin/ResourcePoolEntry;>;
8 20 8 jvm Ljdk/tools/jlink/internal/plugins/ExcludeVMPlugin$Jvm;
10 19 12 md Ljdk/tools/jlink/plugin/ResourcePoolEntry;
11 19 14 mdPath Ljava/lang/String;
13 17 15 jvmlib Ljava/lang/String;
MethodParameters:
Name Flags
in
out
private boolean isRemoved(jdk.tools.jlink.plugin.ResourcePoolEntry);
descriptor: (Ljdk/tools/jlink/plugin/ResourcePoolEntry;)Z
flags: (0x0002) ACC_PRIVATE
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 0
getfield jdk.tools.jlink.internal.plugins.ExcludeVMPlugin.predicate:Ljava/util/function/Predicate;
aload 1
invokeinterface jdk.tools.jlink.plugin.ResourcePoolEntry.path:()Ljava/lang/String;
invokeinterface java.util.function.Predicate.test:(Ljava/lang/Object;)Z
ifeq 1
iconst_0
goto 2
StackMap locals:
StackMap stack:
1: iconst_1
StackMap locals:
StackMap stack: int
2: ireturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Ljdk/tools/jlink/internal/plugins/ExcludeVMPlugin;
0 3 1 file Ljdk/tools/jlink/plugin/ResourcePoolEntry;
MethodParameters:
Name Flags
file
public jdk.tools.jlink.plugin.Plugin$Category getType();
descriptor: ()Ljdk/tools/jlink/plugin/Plugin$Category;
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: getstatic jdk.tools.jlink.plugin.Plugin$Category.FILTER:Ljdk/tools/jlink/plugin/Plugin$Category;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Ljdk/tools/jlink/internal/plugins/ExcludeVMPlugin;
public java.lang.String getDescription();
descriptor: ()Ljava/lang/String;
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: ldc "vm"
invokestatic jdk.tools.jlink.internal.plugins.PluginsResourceBundle.getDescription:(Ljava/lang/String;)Ljava/lang/String;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Ljdk/tools/jlink/internal/plugins/ExcludeVMPlugin;
public boolean hasArguments();
descriptor: ()Z
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: iconst_1
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Ljdk/tools/jlink/internal/plugins/ExcludeVMPlugin;
public java.lang.String getArgumentsDescription();
descriptor: ()Ljava/lang/String;
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=1, args_size=1
start local 0 0: ldc "vm"
iconst_0
anewarray java.lang.Object
invokestatic jdk.tools.jlink.internal.plugins.PluginsResourceBundle.getArgument:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Ljdk/tools/jlink/internal/plugins/ExcludeVMPlugin;
public void configure(java.util.Map<java.lang.String, java.lang.String>);
descriptor: (Ljava/util/Map;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=5, locals=5, args_size=2
start local 0 start local 1 0: aload 1
ldc "vm"
invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
checkcast java.lang.String
astore 2
start local 2 1: ldc ""
astore 3
start local 3 2: aload 2
dup
astore 4
invokevirtual java.lang.String.hashCode:()I
lookupswitch { // 4
-1357712437: 3
-905826493: 4
96673: 5
1064537505: 6
default: 18
}
StackMap locals: java.lang.String java.lang.String java.lang.String
StackMap stack:
3: aload 4
ldc "client"
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifne 9
goto 18
StackMap locals:
StackMap stack:
4: aload 4
ldc "server"
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifne 12
goto 18
StackMap locals:
StackMap stack:
5: aload 4
ldc "all"
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifne 7
goto 18
StackMap locals:
StackMap stack:
6: aload 4
ldc "minimal"
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifne 15
goto 18
7: StackMap locals:
StackMap stack:
aload 0
iconst_1
putfield jdk.tools.jlink.internal.plugins.ExcludeVMPlugin.keepAll:Z
8: goto 19
9: StackMap locals:
StackMap stack:
aload 0
getstatic jdk.tools.jlink.internal.plugins.ExcludeVMPlugin$Jvm.CLIENT:Ljdk/tools/jlink/internal/plugins/ExcludeVMPlugin$Jvm;
putfield jdk.tools.jlink.internal.plugins.ExcludeVMPlugin.target:Ljdk/tools/jlink/internal/plugins/ExcludeVMPlugin$Jvm;
10: ldc "/java.base/lib**server/**,/java.base/lib**minimal/**"
astore 3
11: goto 19
12: StackMap locals:
StackMap stack:
aload 0
getstatic jdk.tools.jlink.internal.plugins.ExcludeVMPlugin$Jvm.SERVER:Ljdk/tools/jlink/internal/plugins/ExcludeVMPlugin$Jvm;
putfield jdk.tools.jlink.internal.plugins.ExcludeVMPlugin.target:Ljdk/tools/jlink/internal/plugins/ExcludeVMPlugin$Jvm;
13: ldc "/java.base/lib**client/**,/java.base/lib**minimal/**"
astore 3
14: goto 19
15: StackMap locals:
StackMap stack:
aload 0
getstatic jdk.tools.jlink.internal.plugins.ExcludeVMPlugin$Jvm.MINIMAL:Ljdk/tools/jlink/internal/plugins/ExcludeVMPlugin$Jvm;
putfield jdk.tools.jlink.internal.plugins.ExcludeVMPlugin.target:Ljdk/tools/jlink/internal/plugins/ExcludeVMPlugin$Jvm;
16: ldc "/java.base/lib**server/**,/java.base/lib**client/**"
astore 3
17: goto 19
18: StackMap locals:
StackMap stack:
new java.lang.IllegalArgumentException
dup
new java.lang.StringBuilder
dup
ldc "Unknown exclude VM option: "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 2
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
athrow
19: StackMap locals:
StackMap stack:
aload 0
aload 3
invokestatic jdk.tools.jlink.internal.plugins.ResourceFilter.excludeFilter:(Ljava/lang/String;)Ljdk/tools/jlink/internal/plugins/ResourceFilter;
putfield jdk.tools.jlink.internal.plugins.ExcludeVMPlugin.predicate:Ljava/util/function/Predicate;
20: return
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 21 0 this Ljdk/tools/jlink/internal/plugins/ExcludeVMPlugin;
0 21 1 config Ljava/util/Map<Ljava/lang/String;Ljava/lang/String;>;
1 21 2 value Ljava/lang/String;
2 21 3 exclude Ljava/lang/String;
Signature: (Ljava/util/Map<Ljava/lang/String;Ljava/lang/String;>;)V
MethodParameters:
Name Flags
config
private jdk.tools.jlink.plugin.ResourcePoolEntry handleJvmCfgFile(jdk.tools.jlink.plugin.ResourcePoolEntry, java.util.TreeSet<jdk.tools.jlink.internal.plugins.ExcludeVMPlugin$Jvm>, java.util.TreeSet<jdk.tools.jlink.internal.plugins.ExcludeVMPlugin$Jvm>);
descriptor: (Ljdk/tools/jlink/plugin/ResourcePoolEntry;Ljava/util/TreeSet;Ljava/util/TreeSet;)Ljdk/tools/jlink/plugin/ResourcePoolEntry;
flags: (0x0002) ACC_PRIVATE
Code:
stack=6, locals=8, args_size=4
start local 0 start local 1 start local 2 start local 3 0: aload 0
getfield jdk.tools.jlink.internal.plugins.ExcludeVMPlugin.keepAll:Z
ifeq 2
1: aload 1
areturn
2: StackMap locals:
StackMap stack:
new java.lang.StringBuilder
dup
invokespecial java.lang.StringBuilder.<init>:()V
astore 4
start local 4 3: aconst_null
astore 5
aconst_null
astore 6
4: new java.io.BufferedReader
dup
new java.io.InputStreamReader
dup
aload 1
invokeinterface jdk.tools.jlink.plugin.ResourcePoolEntry.content:()Ljava/io/InputStream;
5: getstatic java.nio.charset.StandardCharsets.UTF_8:Ljava/nio/charset/Charset;
invokespecial java.io.InputStreamReader.<init>:(Ljava/io/InputStream;Ljava/nio/charset/Charset;)V
6: invokespecial java.io.BufferedReader.<init>:(Ljava/io/Reader;)V
7: astore 7
start local 7 8: aload 7
invokevirtual java.io.BufferedReader.lines:()Ljava/util/stream/Stream;
aload 4
invokedynamic accept(Ljava/lang/StringBuilder;)Ljava/util/function/Consumer;
Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
Method arguments:
(Ljava/lang/Object;)V
jdk/tools/jlink/internal/plugins/ExcludeVMPlugin.lambda$2(Ljava/lang/StringBuilder;Ljava/lang/String;)V (6)
(Ljava/lang/String;)V
invokeinterface java.util.stream.Stream.forEach:(Ljava/util/function/Consumer;)V
9: aload 7
ifnull 15
aload 7
invokevirtual java.io.BufferedReader.close:()V
goto 15
StackMap locals: jdk.tools.jlink.internal.plugins.ExcludeVMPlugin jdk.tools.jlink.plugin.ResourcePoolEntry java.util.TreeSet java.util.TreeSet java.lang.StringBuilder java.lang.Throwable java.lang.Throwable java.io.BufferedReader
StackMap stack: java.lang.Throwable
10: astore 5
aload 7
ifnull 11
aload 7
invokevirtual java.io.BufferedReader.close:()V
end local 7 StackMap locals:
StackMap stack:
11: aload 5
athrow
StackMap locals:
StackMap stack: java.lang.Throwable
12: astore 6
aload 5
ifnonnull 13
aload 6
astore 5
goto 14
StackMap locals:
StackMap stack:
13: aload 5
aload 6
if_acmpeq 14
aload 5
aload 6
invokevirtual java.lang.Throwable.addSuppressed:(Ljava/lang/Throwable;)V
StackMap locals:
StackMap stack:
14: aload 5
athrow
15: StackMap locals:
StackMap stack:
new java.util.TreeSet
dup
new jdk.tools.jlink.internal.plugins.ExcludeVMPlugin$JvmComparator
dup
invokespecial jdk.tools.jlink.internal.plugins.ExcludeVMPlugin$JvmComparator.<init>:()V
invokespecial java.util.TreeSet.<init>:(Ljava/util/Comparator;)V
astore 5
start local 5 16: aload 2
invokevirtual java.util.TreeSet.iterator:()Ljava/util/Iterator;
astore 7
goto 21
StackMap locals: jdk.tools.jlink.internal.plugins.ExcludeVMPlugin jdk.tools.jlink.plugin.ResourcePoolEntry java.util.TreeSet java.util.TreeSet java.lang.StringBuilder java.util.TreeSet top java.util.Iterator
StackMap stack:
17: aload 7
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast jdk.tools.jlink.internal.plugins.ExcludeVMPlugin$Jvm
astore 6
start local 6 18: aload 3
aload 6
invokevirtual java.util.TreeSet.contains:(Ljava/lang/Object;)Z
ifne 21
19: aload 5
aload 6
invokevirtual java.util.TreeSet.add:(Ljava/lang/Object;)Z
pop
20: aload 4
ldc "-"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
aload 6
invokevirtual jdk.tools.jlink.internal.plugins.ExcludeVMPlugin$Jvm.getName:()Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
ldc " KNOWN\n"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
pop
end local 6 21: StackMap locals:
StackMap stack:
aload 7
invokeinterface java.util.Iterator.hasNext:()Z
ifne 17
22: aload 3
invokevirtual java.util.TreeSet.descendingSet:()Ljava/util/NavigableSet;
invokeinterface java.util.NavigableSet.iterator:()Ljava/util/Iterator;
astore 7
goto 27
StackMap locals:
StackMap stack:
23: aload 7
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast jdk.tools.jlink.internal.plugins.ExcludeVMPlugin$Jvm
astore 6
start local 6 24: aload 4
ldc "-"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
aload 6
invokevirtual jdk.tools.jlink.internal.plugins.ExcludeVMPlugin$Jvm.getName:()Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
25: ldc " ALIASED_TO -"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
26: aload 5
invokevirtual java.util.TreeSet.last:()Ljava/lang/Object;
checkcast jdk.tools.jlink.internal.plugins.ExcludeVMPlugin$Jvm
invokevirtual jdk.tools.jlink.internal.plugins.ExcludeVMPlugin$Jvm.getName:()Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
ldc "\n"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
pop
end local 6 27: StackMap locals:
StackMap stack:
aload 7
invokeinterface java.util.Iterator.hasNext:()Z
ifne 23
28: aload 4
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
getstatic java.nio.charset.StandardCharsets.UTF_8:Ljava/nio/charset/Charset;
invokevirtual java.lang.String.getBytes:(Ljava/nio/charset/Charset;)[B
astore 6
start local 6 29: aload 1
aload 6
invokeinterface jdk.tools.jlink.plugin.ResourcePoolEntry.copyWithContent:([B)Ljdk/tools/jlink/plugin/ResourcePoolEntry;
areturn
end local 6 end local 5 end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 30 0 this Ljdk/tools/jlink/internal/plugins/ExcludeVMPlugin;
0 30 1 orig Ljdk/tools/jlink/plugin/ResourcePoolEntry;
0 30 2 existing Ljava/util/TreeSet<Ljdk/tools/jlink/internal/plugins/ExcludeVMPlugin$Jvm;>;
0 30 3 removed Ljava/util/TreeSet<Ljdk/tools/jlink/internal/plugins/ExcludeVMPlugin$Jvm;>;
3 30 4 builder Ljava/lang/StringBuilder;
8 11 7 reader Ljava/io/BufferedReader;
16 30 5 remaining Ljava/util/TreeSet<Ljdk/tools/jlink/internal/plugins/ExcludeVMPlugin$Jvm;>;
18 21 6 platform Ljdk/tools/jlink/internal/plugins/ExcludeVMPlugin$Jvm;
24 27 6 platform Ljdk/tools/jlink/internal/plugins/ExcludeVMPlugin$Jvm;
29 30 6 content [B
Exception table:
from to target type
8 9 10 any
4 12 12 any
Exceptions:
throws java.io.IOException
Signature: (Ljdk/tools/jlink/plugin/ResourcePoolEntry;Ljava/util/TreeSet<Ljdk/tools/jlink/internal/plugins/ExcludeVMPlugin$Jvm;>;Ljava/util/TreeSet<Ljdk/tools/jlink/internal/plugins/ExcludeVMPlugin$Jvm;>;)Ljdk/tools/jlink/plugin/ResourcePoolEntry;
MethodParameters:
Name Flags
orig
existing
removed
private static java.lang.String[] jvmlibs(jdk.tools.jlink.plugin.ResourcePoolModule);
descriptor: (Ljdk/tools/jlink/plugin/ResourcePoolModule;)[Ljava/lang/String;
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=4, locals=2, args_size=1
start local 0 0: aload 0
invokestatic jdk.tools.jlink.internal.Platform.getTargetPlatform:(Ljdk/tools/jlink/plugin/ResourcePoolModule;)Ljdk/tools/jlink/internal/Platform;
astore 1
start local 1 1: invokestatic jdk.tools.jlink.internal.plugins.ExcludeVMPlugin.$SWITCH_TABLE$jdk$tools$jlink$internal$Platform:()[I
aload 1
invokevirtual jdk.tools.jlink.internal.Platform.ordinal:()I
iaload
tableswitch { // 1 - 3
1: 2
2: 4
3: 3
default: 4
}
2: StackMap locals: jdk.tools.jlink.internal.Platform
StackMap stack:
iconst_1
anewarray java.lang.String
dup
iconst_0
ldc "jvm.dll"
aastore
areturn
3: StackMap locals:
StackMap stack:
iconst_2
anewarray java.lang.String
dup
iconst_0
ldc "libjvm.dylib"
aastore
dup
iconst_1
ldc "libjvm.a"
aastore
areturn
4: StackMap locals:
StackMap stack:
iconst_2
anewarray java.lang.String
dup
iconst_0
ldc "libjvm.so"
aastore
dup
iconst_1
ldc "libjvm.a"
aastore
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 5 0 module Ljdk/tools/jlink/plugin/ResourcePoolModule;
1 5 1 platform Ljdk/tools/jlink/internal/Platform;
MethodParameters:
Name Flags
module
static int[] $SWITCH_TABLE$jdk$tools$jlink$internal$Platform();
descriptor: ()[I
flags: (0x1008) ACC_STATIC, ACC_SYNTHETIC
Code:
stack=3, locals=1, args_size=0
0: getstatic jdk.tools.jlink.internal.plugins.ExcludeVMPlugin.$SWITCH_TABLE$jdk$tools$jlink$internal$Platform:[I
dup
ifnull 1
areturn
StackMap locals:
StackMap stack: int[]
1: pop
invokestatic jdk.tools.jlink.internal.Platform.values:()[Ljdk/tools/jlink/internal/Platform;
arraylength
newarray 10
astore 0
2: aload 0
getstatic jdk.tools.jlink.internal.Platform.AIX:Ljdk/tools/jlink/internal/Platform;
invokevirtual jdk.tools.jlink.internal.Platform.ordinal:()I
iconst_4
iastore
3: goto 5
StackMap locals: int[]
StackMap stack: java.lang.NoSuchFieldError
4: pop
StackMap locals:
StackMap stack:
5: aload 0
getstatic jdk.tools.jlink.internal.Platform.LINUX:Ljdk/tools/jlink/internal/Platform;
invokevirtual jdk.tools.jlink.internal.Platform.ordinal:()I
iconst_2
iastore
6: goto 8
StackMap locals:
StackMap stack: java.lang.NoSuchFieldError
7: pop
StackMap locals:
StackMap stack:
8: aload 0
getstatic jdk.tools.jlink.internal.Platform.MACOS:Ljdk/tools/jlink/internal/Platform;
invokevirtual jdk.tools.jlink.internal.Platform.ordinal:()I
iconst_3
iastore
9: goto 11
StackMap locals:
StackMap stack: java.lang.NoSuchFieldError
10: pop
StackMap locals:
StackMap stack:
11: aload 0
getstatic jdk.tools.jlink.internal.Platform.UNKNOWN:Ljdk/tools/jlink/internal/Platform;
invokevirtual jdk.tools.jlink.internal.Platform.ordinal:()I
iconst_5
iastore
12: goto 14
StackMap locals:
StackMap stack: java.lang.NoSuchFieldError
13: pop
StackMap locals:
StackMap stack:
14: aload 0
getstatic jdk.tools.jlink.internal.Platform.WINDOWS:Ljdk/tools/jlink/internal/Platform;
invokevirtual jdk.tools.jlink.internal.Platform.ordinal:()I
iconst_1
iastore
15: goto 17
StackMap locals:
StackMap stack: java.lang.NoSuchFieldError
16: pop
StackMap locals:
StackMap stack:
17: aload 0
dup
putstatic jdk.tools.jlink.internal.plugins.ExcludeVMPlugin.$SWITCH_TABLE$jdk$tools$jlink$internal$Platform:[I
areturn
LocalVariableTable:
Start End Slot Name Signature
Exception table:
from to target type
2 3 4 Class java.lang.NoSuchFieldError
5 6 7 Class java.lang.NoSuchFieldError
8 9 10 Class java.lang.NoSuchFieldError
11 12 13 Class java.lang.NoSuchFieldError
14 15 16 Class java.lang.NoSuchFieldError
private static boolean lambda$0(java.lang.String[], jdk.tools.jlink.plugin.ResourcePoolEntry);
descriptor: ([Ljava/lang/String;Ljdk/tools/jlink/plugin/ResourcePoolEntry;)Z
flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
Code:
stack=4, locals=6, args_size=2
start local 1 0: aload 0
dup
astore 5
arraylength
istore 4
iconst_0
istore 3
goto 5
StackMap locals: java.lang.String[] jdk.tools.jlink.plugin.ResourcePoolEntry top int int java.lang.String[]
StackMap stack:
1: aload 5
iload 3
aaload
astore 2
start local 2 2: aload 1
invokeinterface jdk.tools.jlink.plugin.ResourcePoolEntry.path:()Ljava/lang/String;
new java.lang.StringBuilder
dup
ldc "/"
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 2
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokevirtual java.lang.String.endsWith:(Ljava/lang/String;)Z
ifeq 4
3: iconst_1
ireturn
end local 2 4: StackMap locals:
StackMap stack:
iinc 3 1
StackMap locals:
StackMap stack:
5: iload 3
iload 4
if_icmplt 1
6: iconst_0
ireturn
end local 1 LocalVariableTable:
Start End Slot Name Signature
0 7 1 t Ljdk/tools/jlink/plugin/ResourcePoolEntry;
2 4 2 jvmlib Ljava/lang/String;
private jdk.tools.jlink.plugin.ResourcePoolEntry lambda$1(java.util.TreeSet, java.util.TreeSet, jdk.tools.jlink.plugin.ResourcePoolEntry);
descriptor: (Ljava/util/TreeSet;Ljava/util/TreeSet;Ljdk/tools/jlink/plugin/ResourcePoolEntry;)Ljdk/tools/jlink/plugin/ResourcePoolEntry;
flags: (0x1002) ACC_PRIVATE, ACC_SYNTHETIC
Code:
stack=4, locals=5, args_size=4
start local 0 start local 3 0: aload 0
getfield jdk.tools.jlink.internal.plugins.ExcludeVMPlugin.keepAll:Z
ifne 10
1: aload 3
invokeinterface jdk.tools.jlink.plugin.ResourcePoolEntry.type:()Ljdk/tools/jlink/plugin/ResourcePoolEntry$Type;
getstatic jdk.tools.jlink.plugin.ResourcePoolEntry$Type.NATIVE_LIB:Ljdk/tools/jlink/plugin/ResourcePoolEntry$Type;
invokevirtual jdk.tools.jlink.plugin.ResourcePoolEntry$Type.equals:(Ljava/lang/Object;)Z
ifeq 7
2: aload 3
invokeinterface jdk.tools.jlink.plugin.ResourcePoolEntry.path:()Ljava/lang/String;
ldc "jvm.cfg"
invokevirtual java.lang.String.endsWith:(Ljava/lang/String;)Z
ifeq 7
3: aload 0
aload 3
aload 1
aload 2
invokevirtual jdk.tools.jlink.internal.plugins.ExcludeVMPlugin.handleJvmCfgFile:(Ljdk/tools/jlink/plugin/ResourcePoolEntry;Ljava/util/TreeSet;Ljava/util/TreeSet;)Ljdk/tools/jlink/plugin/ResourcePoolEntry;
astore 3
4: goto 7
StackMap locals:
StackMap stack: java.io.IOException
5: astore 4
start local 4 6: new java.io.UncheckedIOException
dup
aload 4
invokespecial java.io.UncheckedIOException.<init>:(Ljava/io/IOException;)V
athrow
end local 4 7: StackMap locals:
StackMap stack:
aload 0
aload 3
invokevirtual jdk.tools.jlink.internal.plugins.ExcludeVMPlugin.isRemoved:(Ljdk/tools/jlink/plugin/ResourcePoolEntry;)Z
ifeq 8
aconst_null
goto 9
StackMap locals:
StackMap stack:
8: aload 3
StackMap locals:
StackMap stack: jdk.tools.jlink.plugin.ResourcePoolEntry
9: astore 3
10: StackMap locals:
StackMap stack:
aload 3
areturn
end local 3 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 11 0 this Ljdk/tools/jlink/internal/plugins/ExcludeVMPlugin;
0 11 3 file Ljdk/tools/jlink/plugin/ResourcePoolEntry;
6 7 4 ex Ljava/io/IOException;
Exception table:
from to target type
3 4 5 Class java.io.IOException
private static void lambda$2(java.lang.StringBuilder, java.lang.String);
descriptor: (Ljava/lang/StringBuilder;Ljava/lang/String;)V
flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
Code:
stack=2, locals=2, args_size=2
start local 1 0: aload 1
ldc "#"
invokevirtual java.lang.String.startsWith:(Ljava/lang/String;)Z
ifeq 2
1: aload 0
aload 1
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
ldc "\n"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
pop
2: StackMap locals:
StackMap stack:
return
end local 1 LocalVariableTable:
Start End Slot Name Signature
0 3 1 s Ljava/lang/String;
}
SourceFile: "ExcludeVMPlugin.java"
NestMembers:
jdk.tools.jlink.internal.plugins.ExcludeVMPlugin$Jvm jdk.tools.jlink.internal.plugins.ExcludeVMPlugin$JvmComparator
InnerClasses:
public final Lookup = java.lang.invoke.MethodHandles$Lookup of java.lang.invoke.MethodHandles
private final Jvm = jdk.tools.jlink.internal.plugins.ExcludeVMPlugin$Jvm of jdk.tools.jlink.internal.plugins.ExcludeVMPlugin
private final JvmComparator = jdk.tools.jlink.internal.plugins.ExcludeVMPlugin$JvmComparator of jdk.tools.jlink.internal.plugins.ExcludeVMPlugin
public final Category = jdk.tools.jlink.plugin.Plugin$Category of jdk.tools.jlink.plugin.Plugin
public final Type = jdk.tools.jlink.plugin.ResourcePoolEntry$Type of jdk.tools.jlink.plugin.ResourcePoolEntry