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

## org.apache.tapestry5.internal.services
Interface ComponentInstantiatorSource

All Known Implementing Classes:
  ComponentInstantiatorSourceImpl

    @UsesMappedConfiguration(key=java.lang.String.class,
                             value=ControlledPackageType.class)
    public interface ComponentInstantiatorSource

Creates `Instantiator`s for components, based on component class name. This will involve transforming the component's class before it is loaded.

In addition, a source acts as an event hub for `InvalidationListener`s, so that any information derived from loaded classes can be discarded and rebuilt when classes change.

The strategy used is that when any class (in a controlled package) changes, the entire class loader is discarded, along with any instances derived from those classes. A new class loader is created, and then invalidation events are fired to listeners.

Starting in Tapestry 5.3, the packages that are loaded are controlled by a configuration that maps package names to `ControlledPackageType`s.

Method Summary
`boolean` | `exists(java.lang.String className)` Checks to see if a fully qualified class name exists.
`void` | `forceComponentInvalidation()` Forces invalidation logic, as if a component class on the disk had changed, forcing a reload of all pages and components.
`ClassFactory` | `getClassFactory()` Deprecated. Deprecated in 5.3, to be removed in 5.4
`Instantiator` | `getInstantiator(java.lang.String classname)` Given the name of a component class, provides an instantiator for that component.
`PlasticProxyFactory` | `getProxyFactory()` Returns a proxy factory that can be used to generate additional classes around enhanced classes, or create subclasses of enhanced classes.

Method Detail

### getInstantiator

    Instantiator getInstantiator(java.lang.String classname)

  Given the name of a component class, provides an instantiator for that component. Instantiators are cached, so repeated calls to this method with the same class name will return the same instance; however, callers should also be aware that the instantiators may lose validity after an invalidation (caused by changes to external Java class files).

  Parameters:
    `classname` - FQCN to find (and perhaps transform and load)
  Returns:
    an object which can instantiate an instance of the component

### exists

    boolean exists(java.lang.String className)

  Checks to see if a fully qualified class name exists. This method appears to exist only for testing.

  Parameters:
    `className` - name of class to check
  Returns:
    true if the class exists (there's a ".class" file), false otherwise

### getClassFactory

    ClassFactory getClassFactory()

  Deprecated. Deprecated in 5.3, to be removed in 5.4

  Returns a class factory that can be used to generate additional classes around enhanced classes, or create subclasses of enhanced classes.

### getProxyFactory

    PlasticProxyFactory getProxyFactory()

  Returns a proxy factory that can be used to generate additional classes around enhanced classes, or create subclasses of enhanced classes.

  Since:
    5.3

### forceComponentInvalidation

    void forceComponentInvalidation()

  Forces invalidation logic, as if a component class on the disk had changed, forcing a reload of all pages and components.

  Since:
    5.3

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

Copyright © 2003-2012 The Apache Software Foundation.