java.lang.Objectjavax.faces.FactoryFinder
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:
WEB-INF directory of the webapp contains a
factory entry of the given factory class name, that
factory is used.javax.faces.CONFIG_FILES
ServletContext init parameter contain any
factory entries of the given factory class name, those
factories are used, with the last one taking precedence.META-INF directory of any jars on the
ServletContext's resource paths, the
factory entries of the given factory class name in those
files are used, with the last one taking precedence.META-INF/services/{factory-class-name} resource
is visible to the web application class loader for the calling
application (typically as a result of being present in the manifest
of a JAR file), its first line is read and assumed to be the name of
the factory implementation class to use.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 | FACES_CONTEXT_FACTORY | The property name for the javax.faces.context.FacesContextFactory 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. |
| Constructor: |
|---|
|
| Method from javax.faces.FactoryFinder Summary: |
|---|
| getFactory, releaseFactories, setFactory |
| Methods from java.lang.Object: |
|---|
| equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
| Method from javax.faces.FactoryFinder Detail: |
|---|
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. |
Release any references to factory instances associated with the class loader for the calling web application. This method should be called as apart of web application shutdown in a container where the JavaServer Faces API classes are part of the container itself, rather than being included inside the web application. |
This method will store the argument
This method has no effect if This method can be used by implementations to store a factory mapping while parsing the Faces configuration file |