final class JarLoader
extends java.security.SecureClassLoader
Modifier and Type | Field and Description |
---|---|
private StorageFile |
installedJar
Handle to the installed jar file.
|
private boolean |
isStream
True if the jar can only be accessed using a stream, because
the jar is itself in a database jar.
|
private java.util.jar.JarFile |
jar
When the jar file can be manipulated as a java.util.JarFile
this holds the reference to the open jar.
|
private java.lang.String[] |
name
Two part name for the jar file.
|
private UpdateLoader |
updateLoader |
private HeaderPrintWriter |
vs |
Constructor and Description |
---|
JarLoader(UpdateLoader updateLoader,
java.lang.String[] name,
HeaderPrintWriter vs) |
Modifier and Type | Method and Description |
---|---|
(package private) java.lang.Class |
checkLoaded(java.lang.String className,
boolean resolve) |
(package private) java.lang.String |
getJarName()
Return the SQL name for the installed jar.
|
private java.io.InputStream |
getRawStream(java.io.InputStream in,
java.lang.String name)
Get a stream from a zip file that is itself a stream.
|
private java.io.InputStream |
getRawStream(java.lang.String name)
Get a stream for a resource directly from a JarFile.
|
java.io.InputStream |
getResourceAsStream(java.lang.String name) |
private java.security.cert.Certificate[] |
getSigners(java.lang.String className,
java.util.jar.JarEntry je)
Validate the security certificates (signers) for the class data.
|
(package private) java.io.InputStream |
getStream(java.lang.String name)
Get an InputStream for the given resource.
|
private java.lang.SecurityException |
handleException(java.lang.Exception e,
java.lang.String className)
Provide a SecurityManager with information about the class name
and the jar file.
|
(package private) void |
initialize()
Initialize the class loader so it knows if it
is loading from a ZipFile or an InputStream
|
protected java.lang.Class |
loadClass(java.lang.String className,
boolean resolve)
Handle all requests to the top-level loader.
|
private java.lang.Class |
loadClassData(java.io.InputStream in,
java.lang.String className,
java.lang.String jvmClassName,
boolean resolve)
Load the class data when the installed jar is accessible
only as an input stream (the jar is itself in a database jar).
|
private java.lang.Class |
loadClassData(java.util.jar.JarEntry e,
java.io.InputStream in,
java.lang.String className,
boolean resolve)
Load and optionally resolve the class given its
JarEntry and an InputStream to the class fiel format.
|
(package private) java.lang.Class |
loadClassData(java.lang.String className,
java.lang.String jvmClassName,
boolean resolve) |
private java.lang.Class |
loadClassDataFromJar(java.lang.String className,
java.lang.String jvmClassName,
boolean resolve)
Load the class data when the installed jar is accessible
as a java.util.jarFile.
|
(package private) byte[] |
readData(java.util.jar.JarEntry ze,
java.io.InputStream in,
java.lang.String className)
Read the raw data for the class file format
into a byte array that can be used for loading the class.
|
(package private) void |
setInvalid()
Set this loader to be invaid so that it will not
resolve any classes or resources.
|
java.lang.String |
toString()
Return the jar name if toString() is called
on this class loader.
|
defineClass, defineClass, getPermissions
clearAssertionStatus, defineClass, defineClass, defineClass, defineClass, definePackage, findClass, findLibrary, findLoadedClass, findResource, findResources, findSystemClass, getClassLoadingLock, getPackage, getPackages, getParent, getResource, getResources, getSystemClassLoader, getSystemResource, getSystemResourceAsStream, getSystemResources, loadClass, registerAsParallelCapable, resolveClass, setClassAssertionStatus, setDefaultAssertionStatus, setPackageAssertionStatus, setSigners
private final java.lang.String[] name
private StorageFile installedJar
private java.util.jar.JarFile jar
private boolean isStream
private UpdateLoader updateLoader
private HeaderPrintWriter vs
JarLoader(UpdateLoader updateLoader, java.lang.String[] name, HeaderPrintWriter vs)
void initialize()
protected java.lang.Class loadClass(java.lang.String className, boolean resolve) throws java.lang.ClassNotFoundException
loadClass
in class java.lang.ClassLoader
java.lang.ClassNotFoundException
- Class can not be foundpublic java.io.InputStream getResourceAsStream(java.lang.String name)
getResourceAsStream
in class java.lang.ClassLoader
final java.lang.String getJarName()
java.lang.Class loadClassData(java.lang.String className, java.lang.String jvmClassName, boolean resolve)
java.io.InputStream getStream(java.lang.String name)
private java.lang.Class loadClassDataFromJar(java.lang.String className, java.lang.String jvmClassName, boolean resolve) throws java.io.IOException
java.io.IOException
private java.lang.Class loadClassData(java.io.InputStream in, java.lang.String className, java.lang.String jvmClassName, boolean resolve) throws java.io.IOException
java.io.IOException
private java.lang.Class loadClassData(java.util.jar.JarEntry e, java.io.InputStream in, java.lang.String className, boolean resolve) throws java.io.IOException
java.io.IOException
java.lang.Class checkLoaded(java.lang.String className, boolean resolve)
void setInvalid()
private java.io.InputStream getRawStream(java.lang.String name)
private java.io.InputStream getRawStream(java.io.InputStream in, java.lang.String name)
byte[] readData(java.util.jar.JarEntry ze, java.io.InputStream in, java.lang.String className) throws java.io.IOException
java.io.IOException
private java.security.cert.Certificate[] getSigners(java.lang.String className, java.util.jar.JarEntry je) throws java.io.IOException
java.io.IOException
private java.lang.SecurityException handleException(java.lang.Exception e, java.lang.String className)
public java.lang.String toString()
toString
in class java.lang.Object
Apache Derby V10.13 Internals - Copyright © 2004,2016 The Apache Software Foundation. All Rights Reserved.