Start line:  
End line:  

Snippet Preview

Snippet HTML Code

Stack Overflow Questions
 // Copyright 2006, 2007, 2008, 2009 The Apache Software Foundation
 // Licensed under the Apache License, Version 2.0 (the "License");
 // you may not use this file except in compliance with the License.
 // You may obtain a copy of the License at
 // Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// See the License for the specific language governing permissions and
// limitations under the License.
Creates Instantiators 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, 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.


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).

classname FQCN to find (and perhaps transform and load)
an object which can instantiate an instance of the component
    Instantiator getInstantiator(String classname);

Adds a controlled package. Only classes within controlled packages are subject to transformation.

packageName the package name to add (must not be blank)
    void addPackage(String packageName);

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

className name of class to check
true if the class exists (there's a ".class" file), false otherwise
    boolean exists(String className);

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

Returns a class source used when creating new classes dynamically.
    CtClassSource getClassSource();

Invalidation event hub used to notify listeners that component classes have changed.

New to GrepCode? Check out our FAQ X