wt.boot
Class JarClassLoaderFactory

java.lang.Object
  extended bywt.boot.JarClassLoaderFactory
Direct Known Subclasses:
JarClassLoaderFactory_default, JarClassLoaderFactory_sun12

public abstract class JarClassLoaderFactory
extends Object

A factory for class loaders that load from a random access (local) JAR/ZIP file. Instances are specific to Java runtimes because each vendor's applet security manager is tightly coupled to their applet class loaders.

Supported API: true
Extendable: false


Field Summary
protected  Applet applet
           
protected  String[] archiveNames
           
protected  String[] cabinetNames
           
(package private) static String CAPTURE_FILE
           
(package private) static String CAPTURE_FILE_STACK_TRACE
           
protected  String captureFile
           
protected  boolean captureFileStackTrace
           
private static String CLASS_PATH_ATTR
           
protected  URL codebase
           
private  JarInstaller installer
           
protected  String jarFileName
           
protected  Locale locale
           
private static String MANIFEST_NAME_LL
           
private static String MANIFEST_NAME_LU
           
private static String MANIFEST_NAME_UL
           
private static String MANIFEST_NAME_UU
           
protected  Frame parentFrame
           
(package private) static String SHOW_MISSING_FILES
           
protected  boolean showMissingFiles
           
protected  boolean success
           
protected  ThreadGroup threadGroup
           
protected  boolean verbose
           
(package private) static String VERBOSE_INSTALLER
           
(package private) static String VERBOSE_LOADER
           
protected  boolean verboseLoader
           
 
Constructor Summary
protected JarClassLoaderFactory(String jar_file_name, URL codebase)
          Supported API: false
 
Method Summary
abstract  void cleanCache()
          Supported API: true
private  void getAllJars(String jar_file_name, Vector all_names, Vector all_files, Vector rejected)
           
protected  String[] getArchiveNames()
          Supported API: false
protected  PrintWriter getCaptureFile()
          Opens capture file.
static JarClassLoaderFactory getFactory(String jar_file_name, URL codebase)
          Supported API: true
private  ZipFile getJar(String jar_file_name)
           
protected  ZipFile[] getJars(Vector all_names, Vector all_files, Vector rejected)
          Supported API: false
abstract  ClassLoader getLoader()
          Get a class loader satisfying the attributes of this factory.
private  String getManifestClassPath(ZipFile jar)
           
 boolean getSuccess()
          Returns whether or not the previous call to getLoader returned a class loader that loads from locally cached JAR files.
private static JarClassLoaderFactory newFactory_default(String jar_file_name, URL codebase)
           
private static JarClassLoaderFactory newFactory_sun(String jar_file_name, URL codebase)
           
private static JarClassLoaderFactory newFactory_sun12(String jar_file_name, URL codebase)
           
private  String readClassPathAttr(InputStream input_stream)
           
 void setApplet(Applet applet)
          Supported API: true
 void setArchiveNames(String[] archive_names)
          Supported API: true
protected  void setBootProtocolHandler()
          Supported API: false
 void setCabinetNames(String[] cabinet_names)
          Supported API: true
 void setLocale(Locale locale)
          Supported API: true
 void setParentFrame(Frame parent_frame)
          Supported API: true
 void setThreadGroup(ThreadGroup thread_group)
          Supported API: true
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

MANIFEST_NAME_UU

private static final String MANIFEST_NAME_UU
See Also:
Constant Field Values

MANIFEST_NAME_LL

private static final String MANIFEST_NAME_LL
See Also:
Constant Field Values

MANIFEST_NAME_UL

private static final String MANIFEST_NAME_UL
See Also:
Constant Field Values

MANIFEST_NAME_LU

private static final String MANIFEST_NAME_LU
See Also:
Constant Field Values

CLASS_PATH_ATTR

private static final String CLASS_PATH_ATTR
See Also:
Constant Field Values

VERBOSE_INSTALLER

static final String VERBOSE_INSTALLER
See Also:
Constant Field Values

VERBOSE_LOADER

static final String VERBOSE_LOADER
See Also:
Constant Field Values

CAPTURE_FILE

static final String CAPTURE_FILE
See Also:
Constant Field Values

CAPTURE_FILE_STACK_TRACE

static final String CAPTURE_FILE_STACK_TRACE
See Also:
Constant Field Values

SHOW_MISSING_FILES

static final String SHOW_MISSING_FILES
See Also:
Constant Field Values

jarFileName

protected String jarFileName

codebase

protected URL codebase

applet

protected Applet applet

threadGroup

protected ThreadGroup threadGroup

archiveNames

protected String[] archiveNames

cabinetNames

protected String[] cabinetNames

parentFrame

protected Frame parentFrame

locale

protected Locale locale

verbose

protected boolean verbose

verboseLoader

protected boolean verboseLoader

success

protected boolean success

captureFile

protected String captureFile

captureFileStackTrace

protected boolean captureFileStackTrace

showMissingFiles

protected boolean showMissingFiles

installer

private JarInstaller installer
Constructor Detail

JarClassLoaderFactory

protected JarClassLoaderFactory(String jar_file_name,
                                URL codebase)
Supported API: false

Method Detail

setApplet

public void setApplet(Applet applet)
Supported API: true


setThreadGroup

public void setThreadGroup(ThreadGroup thread_group)
Supported API: true


setArchiveNames

public void setArchiveNames(String[] archive_names)
Supported API: true


setCabinetNames

public void setCabinetNames(String[] cabinet_names)
Supported API: true


setParentFrame

public void setParentFrame(Frame parent_frame)
Supported API: true


setLocale

public void setLocale(Locale locale)
Supported API: true


getFactory

public static JarClassLoaderFactory getFactory(String jar_file_name,
                                               URL codebase)
Supported API: true


newFactory_sun

private static JarClassLoaderFactory newFactory_sun(String jar_file_name,
                                                    URL codebase)

newFactory_sun12

private static JarClassLoaderFactory newFactory_sun12(String jar_file_name,
                                                      URL codebase)

newFactory_default

private static JarClassLoaderFactory newFactory_default(String jar_file_name,
                                                        URL codebase)

getJar

private ZipFile getJar(String jar_file_name)

getJars

protected ZipFile[] getJars(Vector all_names,
                            Vector all_files,
                            Vector rejected)
Supported API: false


getAllJars

private void getAllJars(String jar_file_name,
                        Vector all_names,
                        Vector all_files,
                        Vector rejected)

getManifestClassPath

private String getManifestClassPath(ZipFile jar)

readClassPathAttr

private String readClassPathAttr(InputStream input_stream)
                          throws IOException
Throws:
IOException

setBootProtocolHandler

protected void setBootProtocolHandler()
Supported API: false


getArchiveNames

protected String[] getArchiveNames()
Supported API: false


getCaptureFile

protected PrintWriter getCaptureFile()
Opens capture file. Supported API: false


getSuccess

public boolean getSuccess()
Returns whether or not the previous call to getLoader returned a class loader that loads from locally cached JAR files. Supported API: false


getLoader

public abstract ClassLoader getLoader()
Get a class loader satisfying the attributes of this factory. Attempts to return a class loader that loads from locally cached JAR files, but if unable to do so, this method will still return a default class loader for this factory's codebase, possibly a browser's default applet class loader. Supported API: false


cleanCache

public abstract void cleanCache()
Supported API: true