Package de.hybris.bootstrap.loader
Class YURLClassLoader
- java.lang.Object
-
- java.lang.ClassLoader
-
- java.security.SecureClassLoader
-
- java.net.URLClassLoader
-
- de.hybris.bootstrap.loader.YURLClassLoader
-
- All Implemented Interfaces:
java.io.Closeable,java.lang.AutoCloseable
- Direct Known Subclasses:
PlatformInPlaceClassLoader
public class YURLClassLoader extends java.net.URLClassLoader
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description protected static classYURLClassLoader.TYPE
-
Constructor Summary
Constructors Constructor Description YURLClassLoader(java.net.URL[] urls)YURLClassLoader(java.net.URL[] urls, java.lang.ClassLoader parent)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description protected voidaddClassPathURLs(java.util.List<java.net.URL> urls, java.lang.String classpath)protected java.net.URLbuildURL(java.io.File f, YURLClassLoader.TYPE type)voidclearAllReferences()Null out any static or final fields from loaded classes, as a workaround for apparent garbage collection bugsprotected java.lang.Class<?>findClass(java.lang.String name)java.net.URLfindResource(java.lang.String name)protected java.lang.Class<?>loadClass(java.lang.String name, boolean resolve)overridden to maintain a list of classes that are loaded by this (or a child) Classloader to be able to clear references of this classes (during stop() ) In addition to that we hold a list of ALL loaded classes as a cache.voidstart()voidstop()Stops this classloader.-
Methods inherited from class java.net.URLClassLoader
addURL, close, definePackage, findResources, getPermissions, getResourceAsStream, getURLs, newInstance, newInstance
-
Methods inherited from class java.lang.ClassLoader
clearAssertionStatus, defineClass, defineClass, defineClass, defineClass, definePackage, findClass, findLibrary, findLoadedClass, findResource, findSystemClass, getClassLoadingLock, getDefinedPackage, getDefinedPackages, getName, getPackage, getPackages, getParent, getPlatformClassLoader, getResource, getResources, getSystemClassLoader, getSystemResource, getSystemResourceAsStream, getSystemResources, getUnnamedModule, isRegisteredAsParallelCapable, loadClass, registerAsParallelCapable, resolveClass, resources, setClassAssertionStatus, setDefaultAssertionStatus, setPackageAssertionStatus, setSigners
-
-
-
-
Method Detail
-
findClass
protected java.lang.Class<?> findClass(java.lang.String name) throws java.lang.ClassNotFoundException- Overrides:
findClassin classjava.net.URLClassLoader- Throws:
java.lang.ClassNotFoundException
-
loadClass
protected java.lang.Class<?> loadClass(java.lang.String name, boolean resolve) throws java.lang.ClassNotFoundExceptionoverridden to maintain a list of classes that are loaded by this (or a child) Classloader to be able to clear references of this classes (during stop() ) In addition to that we hold a list of ALL loaded classes as a cache.- Overrides:
loadClassin classjava.lang.ClassLoader- Throws:
java.lang.ClassNotFoundException
-
findResource
public java.net.URL findResource(java.lang.String name)
- Overrides:
findResourcein classjava.net.URLClassLoader
-
start
public void start()
-
stop
public void stop()
Stops this classloader. this will "stop" the underlaying platform which means that- the connection pools are closed
- all timer tasks stopped (if cronjob extension is installed)
- the cache is cleared
- all fields of static classes are nulled (due to GC problems)
-
clearAllReferences
public void clearAllReferences()
Null out any static or final fields from loaded classes, as a workaround for apparent garbage collection bugs
-
addClassPathURLs
protected void addClassPathURLs(java.util.List<java.net.URL> urls, java.lang.String classpath) throws java.net.MalformedURLException- Throws:
java.net.MalformedURLException
-
buildURL
protected java.net.URL buildURL(java.io.File f, YURLClassLoader.TYPE type) throws java.net.MalformedURLException- Throws:
java.net.MalformedURLException
-
-