Overview | Package | Class | Tree | Deprecated | Index | Help
| Apache Tomcat 7.0.29
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD

## org.apache.catalina
Interface Loader

All Known Implementing Classes:
  VirtualWebappLoader, WebappLoader

    public interface Loader

A Loader represents a Java ClassLoader implementation that can be used by a Container to load class files (within a repository associated with the Loader) that are designed to be reloaded upon request, as well as a mechanism to detect whether changes have occurred in the underlying repository.

In order for a `Loader` implementation to successfully operate with a `Context` implementation that implements reloading, it must obey the following constraints:

- Must implement `Lifecycle` so that the Context can indicate that a new class loader is required.
- The `start()` method must unconditionally create a new `ClassLoader` implementation.
- The `stop()` method must throw away its reference to the `ClassLoader` previously utilized, so that the class loader, all classes loaded by it, and all objects of those classes, can be garbage collected.
- Must allow a call to `stop()` to be followed by a call to `start()` on the same `Loader` instance.
- Based on a policy chosen by the implementation, must call the `Context.reload()` method on the owning `Context` when a change to one or more of the class files loaded by this class loader is detected.

Version:
  $Id: Loader.java 1200160 2011-11-10 05:35:13Z kkolinko $
Author:
  Craig R. McClanahan

Method Summary
`void` | `addPropertyChangeListener(PropertyChangeListener listener)` Add a property change listener to this component.
`void` | `addRepository(String repository)` Add a new repository to the set of repositories for this class loader.
`void` | `backgroundProcess()` Execute a periodic task, such as reloading, etc.
`String[]` | `findRepositories()` Return the set of repositories defined for this class loader.
`ClassLoader` | `getClassLoader()` Return the Java class loader to be used by this Container.
`Container` | `getContainer()` Return the Container with which this Loader has been associated.
`boolean` | `getDelegate()` Return the "follow standard delegation model" flag used to configure our ClassLoader.
`String` | `getInfo()` Return descriptive information about this Loader implementation and the corresponding version number, in the format `<description>/<version>`.
`boolean` | `getReloadable()` Return the reloadable flag for this Loader.
`boolean` | `modified()` Has the internal repository associated with this Loader been modified, such that the loaded classes should be reloaded?
`void` | `removePropertyChangeListener(PropertyChangeListener listener)` Remove a property change listener from this component.
`void` | `setContainer(Container container)` Set the Container with which this Loader has been associated.
`void` | `setDelegate(boolean delegate)` Set the "follow standard delegation model" flag used to configure our ClassLoader.
`void` | `setReloadable(boolean reloadable)` Set the reloadable flag for this Loader.

Method Detail

### backgroundProcess

    void backgroundProcess()

  Execute a periodic task, such as reloading, etc. This method will be invoked inside the classloading context of this container. Unexpected throwables will be caught and logged.

### getClassLoader

    ClassLoader getClassLoader()

  Return the Java class loader to be used by this Container.

### getContainer

    Container getContainer()

  Return the Container with which this Loader has been associated.

### setContainer

    void setContainer(Container container)

  Set the Container with which this Loader has been associated.

  Parameters:
    `container` - The associated Container

### getDelegate

    boolean getDelegate()

  Return the "follow standard delegation model" flag used to configure our ClassLoader.

### setDelegate

    void setDelegate(boolean delegate)

  Set the "follow standard delegation model" flag used to configure our ClassLoader.

  Parameters:
    `delegate` - The new flag

### getInfo

    String getInfo()

  Return descriptive information about this Loader implementation and the corresponding version number, in the format `<description>/<version>`.

### getReloadable

    boolean getReloadable()

  Return the reloadable flag for this Loader.

### setReloadable

    void setReloadable(boolean reloadable)

  Set the reloadable flag for this Loader.

  Parameters:
    `reloadable` - The new reloadable flag

### addPropertyChangeListener

    void addPropertyChangeListener(PropertyChangeListener listener)

  Add a property change listener to this component.

  Parameters:
    `listener` - The listener to add

### addRepository

    void addRepository(String repository)

  Add a new repository to the set of repositories for this class loader.

  Parameters:
    `repository` - Repository to be added

### findRepositories

    String[] findRepositories()

  Return the set of repositories defined for this class loader. If none are defined, a zero-length array is returned.

### modified

    boolean modified()

  Has the internal repository associated with this Loader been modified, such that the loaded classes should be reloaded?

### removePropertyChangeListener

    void removePropertyChangeListener(PropertyChangeListener listener)

  Remove a property change listener from this component.

  Parameters:
    `listener` - The listener to remove

Overview | Package | Class | Tree | Deprecated | Index | Help
| Apache Tomcat 7.0.29
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD

Copyright © 2000-2012 Apache Software Foundation. All Rights Reserved.