org.eclipse.hyades.execution.core.loader
Class ScopedChannelClassLoader
java.lang.Object
java.util.Observable
org.eclipse.hyades.execution.core.loader.ScopedChannelClassLoader
public class ScopedChannelClassLoader
- extends java.util.Observable
This custom scoped class loader loads only classes for a given scope -- for
all other elements, they are delegated oto the parent class loader (which
means they are out-of-scope and not this classloader's responsibility). The
elements in scope will be loaded using a simple protocol over the readable
and writable byte channels.
The scope is defined by a regular expression that will be used to match the
elemnents that this classloader is responsible for loading -- unlike typical
classloader delegation, this classloader will take precedence over the parent
classloader and inverts the typical delegation scheme.
This class loader inner classes consumer and provider are observables and
observers will be notified for each class that is acted upon (in the case of
consumer, this means each class that is downloaded by the server from the
client, in the case of the provider, this means each class that was uploaded
to the server from the client) -- the context class loaders being cached
reducing uploading and downloading over the time of the client context.
|
Nested Class Summary |
static class |
ScopedChannelClassLoader.Consumer
The scoped channel class loader consumer class is used by the consumer of
the classes that will be served up through the channel from the providing
instance of the scoped channel class loader |
static class |
ScopedChannelClassLoader.Provider
The scoped channel class loader provider class is used by the provider of
the classes that will be served up through the channel to the consuming
instance of the scoped channel class loader |
| Methods inherited from class java.util.Observable |
addObserver, countObservers, deleteObserver, deleteObservers, hasChanged, notifyObservers, notifyObservers |
| Methods inherited from class java.lang.Object |
equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
ScopedChannelClassLoader
public ScopedChannelClassLoader()