メタデータの末尾に移動
メタデータの先頭に移動

MyFaces core provides some "points of integration" that can be used by application and web servers to override or add some specific code. For example, JBoss AS provides a custom virtual file system (VFS), and MyFaces core needs to scan for faces-config.xml files, so it is necessary to provide some code that uses JBoss VFS to locate faces-config.xml files to be parsed later.

Note usually common users of MyFaces Core does not need to deal with these specific stuff, because the application/web server could already provide the necessary hooks or integration modules "out of the box".

Some features uses Service Provider Interface (SPI) pattern, so take a look at java.util.ServiceLoader description in java 6 api to get the idea how it works.

Below there is a table of the "points of integration" used by application and web servers:

Integration Point
Classes Involved
Description
Since
SPI
@PostConstruct and @PreDestroy injection over jsf managed beans
org.apache.myfaces.config.annotation.LifecycleProvider2
org.apache.myfaces.config.annotation.LifecycleProviderFactory
Provide methods to delegate injection of @PostConstruct and @PreDestroy annotations to the server for custom processing.
1.2.7
Yes
Override SPI handling org.apache.myfaces.spi.ServiceProviderFinder
org.apache.myfaces.spi.ServiceProviderFinderFactory
Override SPI handling done by MyFaces Core, usually taking advantage of container specific features to scan files inside jars.
2.0.3, 2.1.0
No
Annotation Scanning
org.apache.myfaces.spi.AnnotationProvider
org.apache.myfaces.spi.AnnotationProviderWrapper
org.apache.myfaces.spi.AnnotationProviderFactory
Override/wrap myfaces annotation scanning algorithm that needs to be processed at startup. 2.0.3, 2.1.0
Yes
Locate facelet .taglib.xml files through classpath. org.apache.myfaces.spi.FaceletConfigResourceProvider
org.apache.myfaces.spi.FaceletConfigResourceProviderFactory
Locate facelet .taglib.xml files through classpath. These files has definitions that are used by facelets algorithm to parse view files. 2.0.3, 2.1.0 Yes
Locate faces-config.xml files through classpath. org.apache.myfaces.spi.FacesConfigResourceProvider
org.apache.myfaces.spi.FacesConfigResourceProviderFactory
Locate faces-config xml files through classpath. These files has definitions that are used by initialize jsf environment. By default it locate all files inside META-INF folder, named faces-config.xml or ending with .faces-config.xml 2.0.3, 2.1.0 Yes
Get an unified configuration after sort and order all config files.
org.apache.myfaces.spi.FacesConfigurationMerger
org.apache.myfaces.spi.FacesConfigurationMergerFactory
org.apache.myfaces.config.element.*
Get all org.apache.myfaces.config.element.FacesConfig data  and then it combines it into one org.apache.myfaces.config.element.FacesConfigData instance. 2.0.3, 2.1.0 Yes
Get configuration information from different sources and allow cache them.
org.apache.myfaces.spi.FacesConfigurationProvider
org.apache.myfaces.spi.FacesConfigurationProviderFactory
org.apache.myfaces.config.element.*
This interface provide a way to merge and store all JSF config information retrieved from faces-config.xml files, META-INF/service files and annotations that works as base point to initialize MyFaces. The objective is allow server containers to "store" or this information, preventing calculate it over and over each time the web application is started. 2.0.3, 2.1.0 Yes
Override javax.faces.FactoryFinder default algorithm
org.apache.myfaces.spi.FactoryFinderProvider
org.apache.myfaces.spi.FactoryFinderProviderFactory
Provide an interface to override javax.faces.FactoryFinder class methods. This is useful if containers does not want to use Thread Context Class Loader to load classes, like in OSGi.
2.0.5, 2.1.0
Yes
Provide additional info from web.xml files
org.apache.myfaces.spi.WebConfigProvider
org.apache.myfaces.spi.WebConfigProviderFactory
org.apache.myfaces.spi.ServletMapping
Provide additional info from web.xml files, like mapping or if an error page is present.
2.0.3, 2.1.0 Yes
Override initialization and destroy web applications
org.apache.myfaces.webapp.FacesInitializer
org.apache.myfaces.webapp.FacesInitializerFactory
Allow customize initialization / destroy operations or provide an alternate MyFaces initializer to a specific container.
2.0.1,
2.1.0
No
Indicate the servlet can be considered a FacesServlet.
org.apache.myfaces.shared_impl.webapp.webxml.DelegatedFacesServlet Indicate the servlet can be considered a FacesServlet. 1.1.7, 1.2.3, 2.0.0,
2.1.0
No

For more detailed information, take a look at the javadoc of each class on myfaces site.

Enter labels to add to this page:
Please wait 
Looking for a label?Just start typing.