Interface ComponentInstantiatorSource
-
- All Known Implementing Classes:
ComponentInstantiatorSourceImpl
@UsesMappedConfiguration(key=java.lang.String.class, value=ControlledPackageType.class) public interface ComponentInstantiatorSource
CreatesInstantiator
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 forInvalidationListener
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 toControlledPackageType
s.
-
-
Method Summary
All Methods Instance Methods Abstract Methods Modifier and Type Method Description boolean
exists(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.Instantiator
getInstantiator(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(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(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
-
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
-
-