com.atlassian.plugin.loaders.classloading
Class PluginsClassLoader

java.lang.Object
  extended by java.lang.ClassLoader
      extended by java.security.SecureClassLoader
          extended by com.atlassian.plugin.loaders.classloading.PluginsClassLoader
All Implemented Interfaces:
java.lang.Cloneable
Direct Known Subclasses:
JarClassLoader

public abstract class PluginsClassLoader
extends java.security.SecureClassLoader
implements java.lang.Cloneable

Author:
Hani Suleiman (hani@formicary.net) (derived from WebWork 1's WebworkClassLoader)

Field Summary
protected static org.apache.commons.logging.Log log
           
protected  java.lang.String[] packages
           
 
Constructor Summary
protected PluginsClassLoader(java.lang.ClassLoader parent)
           
 
Method Summary
abstract  java.lang.Object clone()
           
 void close()
          Clean any resources held by the Classloader.
protected  java.lang.Class findClass(java.lang.String name)
           
protected  java.net.URL findResource(java.lang.String name)
           
 java.util.Enumeration findResources(java.lang.String name)
           
protected abstract  java.net.URL getDataURL(java.lang.String name, byte[] data)
           
protected abstract  byte[] getFile(java.lang.String path)
           
static java.lang.ClassLoader getInstance(java.net.URL url)
           
static java.lang.ClassLoader getInstance(java.net.URL url, java.lang.ClassLoader parent)
           
 java.net.URL getResource(java.lang.String name)
           
protected  java.lang.Class loadClass(java.lang.String name, boolean resolve)
           
static byte[] readStream(java.io.InputStream in, int size)
          Method from WebWork1 webwork.util.ClassLoaderUtils
 
Methods inherited from class java.security.SecureClassLoader
defineClass, defineClass, getPermissions
 
Methods inherited from class java.lang.ClassLoader
clearAssertionStatus, defineClass, defineClass, defineClass, defineClass, definePackage, findLibrary, findLoadedClass, findSystemClass, getPackage, getPackages, getParent, getResourceAsStream, getResources, getSystemClassLoader, getSystemResource, getSystemResourceAsStream, getSystemResources, loadClass, resolveClass, setClassAssertionStatus, setDefaultAssertionStatus, setPackageAssertionStatus, setSigners
 
Methods inherited from class java.lang.Object
equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

log

protected static org.apache.commons.logging.Log log

packages

protected java.lang.String[] packages
Constructor Detail

PluginsClassLoader

protected PluginsClassLoader(java.lang.ClassLoader parent)
Method Detail

loadClass

protected java.lang.Class loadClass(java.lang.String name,
                                    boolean resolve)
                             throws java.lang.ClassNotFoundException
Overrides:
loadClass in class java.lang.ClassLoader
Throws:
java.lang.ClassNotFoundException

findClass

protected java.lang.Class findClass(java.lang.String name)
                             throws java.lang.ClassNotFoundException
Overrides:
findClass in class java.lang.ClassLoader
Throws:
java.lang.ClassNotFoundException

findResource

protected java.net.URL findResource(java.lang.String name)
Overrides:
findResource in class java.lang.ClassLoader

getDataURL

protected abstract java.net.URL getDataURL(java.lang.String name,
                                           byte[] data)
                                    throws java.net.MalformedURLException
Throws:
java.net.MalformedURLException

findResources

public java.util.Enumeration findResources(java.lang.String name)
Overrides:
findResources in class java.lang.ClassLoader

getFile

protected abstract byte[] getFile(java.lang.String path)

getInstance

public static java.lang.ClassLoader getInstance(java.net.URL url)

getInstance

public static java.lang.ClassLoader getInstance(java.net.URL url,
                                                java.lang.ClassLoader parent)

clone

public abstract java.lang.Object clone()
Overrides:
clone in class java.lang.Object

readStream

public static byte[] readStream(java.io.InputStream in,
                                int size)
                         throws java.io.IOException
Method from WebWork1 webwork.util.ClassLoaderUtils

Throws:
java.io.IOException

getResource

public java.net.URL getResource(java.lang.String name)
Overrides:
getResource in class java.lang.ClassLoader

close

public void close()
Clean any resources held by the Classloader. ie, close files etc etc.



Copyright © 2008 Atlassian Software Systems Pty Ltd. All Rights Reserved.