de.tsl2.nano.core.classloader.NestedJarClassLoader.class Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of tsl2.nano.h5 Show documentation
Show all versions of tsl2.nano.h5 Show documentation
TSL2 Framework Html5 Extensions (WebServer, Html5Presentation, RuleCover, BeanConfigurator, LogicTable-Sheet, Expression-Descriptors for Actions, Rules, URLs, Queries)
???? =?
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 &