A utility class that is used to instantiate abstract Tapestry pages and components. It creates, at runtime, a subclass where all abstract properties are filled in (each property complete with an instance variable, an accessor method and a mutator method). This isn't quite the same as how the class is enhanced at runtime (though it does use a subset of the same {@link org.apache.tapestry.enhance.EnhancementWorker code}), but is sufficient to unit test the class, especially listener methods.
One part of the enhancement is that the {@link org.apache.tapestry.IComponent#getSpecification() specification} and {@link org.apache.tapestry.IComponent#getMessages() messages} properties of the page or component class are converted into read/write properties that can be set via reflection (including {@link #newInstance(Class,Map)}.
@author Howard Lewis Ship
@since 4.0