![JAR search and dependency download from the Maven repository](/logo.png)
de.tsl2.nano.core.classloader.NestedJarClassLoader.class Maven / Gradle / Ivy
???? =?
2de/tsl2/nano/core/classloader/NestedJarClassLoader ,(Ljava/lang/ClassLoader;Ljava/lang/String;)V java/net/URL
,de/tsl2/nano/core/classloader/LibClassLoader )([Ljava/net/URL;Ljava/lang/ClassLoader;)V
hasRootJar Z exclude Ljava/lang/String;
([Ljava/net/URL;)V
K([Ljava/net/URL;Ljava/lang/ClassLoader;Ljava/net/URLStreamHandlerFactory;)V
findClass %(Ljava/lang/String;)Ljava/lang/Class; ! java/lang/ClassNotFoundException
# $ findClassInNestedJar
& ' ( getSystemClassLoader ()Ljava/lang/ClassLoader;
* + , - java/lang/ClassLoader loadClass / java/lang/NoClassDefFoundError 1 java/lang/NullPointerException
3 4 5 findInNestedJar (Ljava/lang/String;)[B
7 8 9 : ; java/lang/String lastIndexOf (I)I
7 = > ? substring (II)Ljava/lang/String;
A B C
getPackage '(Ljava/lang/String;)Ljava/lang/Package; E \. G /
7 I J K
replaceAll 8(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
7 M N O concat &(Ljava/lang/String;)Ljava/lang/String;
Q R S getResource "(Ljava/lang/String;)Ljava/net/URL;
U V W
definePackage M(Ljava/lang/String;Ljava/util/jar/Manifest;Ljava/net/URL;)Ljava/lang/Package;
Y V Z ?(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/net/URL;)Ljava/lang/Package;
\ ] ^ defineClass )(Ljava/lang/String;[BII)Ljava/lang/Class; ` a b LOG Lorg/apache/commons/logging/Log; d e O makeConcatWithConstants g h i j k org/apache/commons/logging/Log debug (Ljava/lang/Object;)V
m n o p q java/lang/System currentTimeMillis ()J
s t u
getNestedJars ()[Ljava/lang/String;
w x O getFileName
z { | getJarInputStream =(Ljava/lang/String;)Lde/tsl2/nano/core/classloader/ZipStream;
~ ? ? 5 'de/tsl2/nano/core/classloader/ZipStream getFile ? e ? :(Ljava/lang/String;Ljava/lang/String;IJ)Ljava/lang/String;
? ? ?
shiftToTop ([Ljava/lang/Object;I)V ? java/lang/Throwable g ? ? k error
? ? ? ? ? "de/tsl2/nano/core/ManagedException forward ,(Ljava/lang/Throwable;)Ljava/lang/Throwable;
? ? (Ljava/lang/String;)V ? java.class.path
m ? ? O getProperty ? ;
7 ? ? ? contains (Ljava/lang/CharSequence;)Z ? ? ?
nestedJars [Ljava/lang/String;
? ? ? getRootJarPath ()Ljava/lang/String; ? java/io/File
? ?
? ? ? ? isFile ()Z
? t ? '(Ljava/lang/String;)[Ljava/lang/String;
? ? ? ? ? !de/tsl2/nano/core/util/StringUtil toFormattedString ((Ljava/lang/Object;IZ)Ljava/lang/String; ? e K g ? ? k info g ? ? ? isDebugEnabled
? ? ? readManifest 3(Ljava/lang/ClassLoader;)Ljava/util/jar/Attributes; ? java/util/HashMap
? ? ? (I)V ? ? ? jarFileStreams Ljava/util/Map;
? ? u getManifestClassPath ?
Class-Path
? ? ? ? O java/util/jar/Attributes getValue d ? \s
7 ? ? ? split ? java/util/ArrayList
? ? ? ? ? ? ? java/util/List add (Ljava/lang/Object;)Z d g ? ? k warn ? ? ? ? toArray (([Ljava/lang/Object;)[Ljava/lang/Object; ? d ? ? .jar
7 ? > ? (I)Ljava/lang/String; ?
? ? ? ? ? de/tsl2/nano/core/util/FileUtil readFileNamesFromZip 9(Ljava/lang/String;Ljava/lang/String;)[Ljava/lang/String;
java/util/Map get &(Ljava/lang/Object;)Ljava/lang/Object; m out Ljava/io/PrintStream; d
? java/io/PrintStream println
~ put 8(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
7 replace (CC)Ljava/lang/String; d
? toString e '(Ljava/lang/String;I)Ljava/lang/String;! %de/tsl2/nano/core/cls/PrivateAccessor
# k% classes
'() hasMember (Ljava/lang/String;)Z+ java/util/Collection
-./ member 7(Ljava/lang/String;Ljava/lang/Class;)Ljava/lang/Object;*123 clear ()V
56789 java/lang/Object clone ()Ljava/lang/Object;
;<3 close>?@ values ()Ljava/util/Collection;*BCD iterator ()Ljava/util/Iterator;FGHI ? java/util/Iterator hasNextFKL9 next ~NOP zipStream Ljava/util/zip/ZipInputStream;
R;S java/util/zip/ZipInputStream1
VWXYZ de/tsl2/nano/core/log/LogFactory getLog 3(Ljava/lang/Class;)Lorg/apache/commons/logging/Log;\ java/lang/Cloneable EXT_CLASS
ConstantValue` .class Signature LLjava/util/Map; (Ljava/lang/ClassLoader;)V Code LineNumberTable LocalVariableTable this 4Lde/tsl2/nano/core/classloader/NestedJarClassLoader; parent Ljava/lang/ClassLoader; urls [Ljava/net/URL; factory "Ljava/net/URLStreamHandlerFactory; e1 "Ljava/lang/ClassNotFoundException; e Ljava/lang/NoClassDefFoundError; Ljava/lang/NullPointerException; name
StackMapTable
Exceptions ((Ljava/lang/String;)Ljava/lang/Class<*>; pkgUrl Ljava/net/URL; manifest Ljava/util/jar/Manifest; pkgname pkg Ljava/lang/Package; bytes [B i I?? java/lang/Package? java/util/jar/Manifest )Lde/tsl2/nano/core/classloader/ZipStream; Ljava/lang/Throwable; path startTime J j arr [Ljava/lang/Object; obj Ljava/lang/Object; rootPath jars Ljava/util/List;
attributes Ljava/util/jar/Attributes; classPath LocalVariableTypeTable $Ljava/util/List; jarName reset acc 'Lde/tsl2/nano/core/cls/PrivateAccessor; ]Lde/tsl2/nano/core/cls/PrivateAccessor;? $java/lang/CloneNotSupportedException s streams Ljava/util/Collection; ALjava/util/Collection;? java/io/IOException
SourceFile NestedJarClassLoader.java BootstrapMethods?
??? e? $java/lang/invoke/StringConcatFactory ?(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/invoke/CallSite;? loading ? $loaded -> with bytes in msecs? current jar:
nesting jars:
? ?reading nested jars through META-INF/MANIFEST.MF/Class-Path:
? 8 couldn't be loaded as nested content of this root jar!? (?!)? *? loading nested jar: ...? .class? [nested: ] InnerClasses? %java/lang/invoke/MethodHandles$Lookup? java/lang/invoke/MethodHandles Lookup !
[ ] ^ _ a b ? ? a b ? ? c d ? *+? ? e
? @f gh ij d ^ *? +? *? *,? ? e I 5 J Kf gh ij d G *+? *? ? e N 5
Of gh kl
d R *+,? *? ? e R 5 Sf gh kl ij d ]
*+,-? *? ? e V 5 Wf *
gh
kl
ij
mn d ? *+? ?M*+? "?N? %+? )?M?M?
. 0 e &