Creates {@link org.apache.tapestry5.internal.services.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 {@link org.apache.tapestry5.services.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 {@link ControlledPackageType}s.