Home » Mojarra-2.0.1 » javax » faces » [javadoc | source]
public final class: FactoryFinder [javadoc | source]

FactoryFinder implements the standard discovery algorithm for all factory objects specified in the JavaServer Faces APIs. For a given factory class name, a corresponding implementation class is searched for based on the following algorithm. Items are listed in order of decreasing search precedence:

If any of the factories found on any of the steps above happen to have a one-argument constructor, with argument the type being the abstract factory class, that constructor is invoked, and the previous match is passed to the constructor. For example, say the container vendor provided an implementation of javax.faces.context.FacesContextFactory , and identified it in META-INF/services/javax.faces.context.FacesContextFactory in a jar on the webapp ClassLoader. Also say this implementation provided by the container vendor had a one argument constructor that took a FacesContextFactory instance. The FactoryFinder system would call that one-argument constructor, passing the implementation of FacesContextFactory provided by the JavaServer Faces implementation.

If a Factory implementation does not provide a proper one-argument constructor, it must provide a zero-arguments constructor in order to be successfully instantiated.

Once the name of the factory implementation class is located, the web application class loader for the calling application is requested to load this class, and a corresponding instance of the class will be created. A side effect of this rule is that each web application will receive its own instance of each factory class, whether the JavaServer Faces implementation is included within the web application or is made visible through the container's facilities for shared libraries.

Field Summary
public static final  String APPLICATION_FACTORY   

The property name for the javax.faces.application.ApplicationFactory class name.

public static final  String EXCEPTION_HANDLER_FACTORY   

The property name for the javax.faces.context.ExceptionHandlerFactory class name.

public static final  String EXTERNAL_CONTEXT_FACTORY   

The property name for the javax.faces.context.ExternalContextFactory class name.

public static final  String FACES_CONTEXT_FACTORY   

The property name for the javax.faces.context.FacesContextFactory class name.

public static final  String PARTIAL_VIEW_CONTEXT_FACTORY   

The property name for the javax.faces.context.PartialViewContextFactory class name.

public static final  String VISIT_CONTEXT_FACTORY   

The property name for the javax.faces.component.visit.VisitContextFactory class name.

public static final  String LIFECYCLE_FACTORY   

The property name for the javax.faces.lifecycle.LifecycleFactory class name.

public static final  String RENDER_KIT_FACTORY   

The property name for the javax.faces.render.RenderKitFactory class name.

public static final  String VIEW_DECLARATION_LANGUAGE_FACTORY   

The property name for the javax.faces.view.ViewDeclarationLanguage class name.

public static final  String TAG_HANDLER_DELEGATE_FACTORY   

The property name for the javax.faces.view.facelets.TagHandlerDelegate class name.

Method from javax.faces.FactoryFinder Summary:
getFactory,   releaseFactories,   setFactory
Methods from java.lang.Object:
clone,   equals,   finalize,   getClass,   hashCode,   notify,   notifyAll,   toString,   wait,   wait,   wait
Method from javax.faces.FactoryFinder Detail:
 public static Object getFactory(String factoryName) throws FacesException 

    Create (if necessary) and return a per-web-application instance of the appropriate implementation class for the specified JavaServer Faces factory class, based on the discovery algorithm described in the class description.

    The standard factories and wrappers in JSF all implement the interface FacesWrapper . If the returned Object is an implementation of one of the standard factories, it must be legal to cast it to an instance of FacesWrapper and call FacesWrapper#getWrapped on the instance.

 public static  void releaseFactories() throws FacesException 

    Release any references to factory instances associated with the class loader for the calling web application. This method must be called during of web application shutdown.

 public static  void setFactory(String factoryName,
    String implName) 

    This method will store the argument factoryName/implName mapping in such a way that #getFactory will find this mapping when searching for a match.

    This method has no effect if getFactory() has already been called looking for a factory for this factoryName.

    This method can be used by implementations to store a factory mapping while parsing the Faces configuration file