Class Application
- Direct Known Subclasses:
- ApplicationWrapper
Application represents a per-web-application singleton object where applications based on JavaServer Faces (or implementations wishing to provide extended functionality) can register application-wide singletons that provide functionality required by JavaServer Faces. Default implementations of each object are provided for cases where the application does not choose to customize the behavior.
 The instance of Application is created by calling the getApplication() method of
 ApplicationFactory. Because this instance is shared, it must be implemented in a thread-safe manner.
 
FacesContext.getCurrentInstance().getApplication()In particular, this provides a factory for UIComponent objects. It also provides convenience methods for creating ValueBinding objects. See Javadoc of Faces Specification
- 
Constructor SummaryConstructors
- 
Method SummaryModifier and TypeMethodDescriptionvoidaddBehavior(String behaviorId, String behaviorClass) abstract voidaddComponent(String componentType, String componentClass) Register a new mapping of component type to the name of the correspondingUIComponentclass.abstract voidaddConverter(Class<?> targetClass, String converterClass) Register a new converter class that is capable of performing conversions for the specified target class.abstract voidaddConverter(String converterId, String converterClass) Register a new mapping of converter id to the name of the correspondingConverterclass.voidaddDefaultValidatorId(String validatorId) voidaddELContextListener(jakarta.el.ELContextListener listener) Provide a way for Faces applications to register anELContextListenerthat will be notified on creation ofELContextinstances.voidaddELResolver(jakarta.el.ELResolver resolver) Cause an the argumentresolverto be added to the resolver chain as specified in section 5.5.1 of the JavaServer Faces Specification.voidabstract voidaddValidator(String validatorId, String validatorClass) Register a new mapping of validator id to the name of the correspondingValidatorclass.createBehavior(String behaviorId) createComponent(jakarta.el.ValueExpression componentExpression, FacesContext context, String componentType) Call thegetValue()method on the specifiedValueExpression.createComponent(jakarta.el.ValueExpression componentExpression, FacesContext context, String componentType, String rendererType) createComponent(FacesContext context, Resource componentResource) ???createComponent(FacesContext context, String componentType, String rendererType) abstract UIComponentcreateComponent(String componentType) Create a new UIComponent subclass, using the mappings defined by previous calls to the addComponent method of this class.abstract ConvertercreateConverter(Class<?> targetClass) Instantiate and return a newConverterabstract ConvertercreateConverter(String converterId) Instantiate and return a newConverteraddConverter()for the specified converter id.abstract ValidatorcreateValidator(String validatorId) Instantiate and return a newValidatoraddValidator()for the specified validator id.<T> TevaluateExpressionGet(FacesContext context, String expression, Class<? extends T> expectedType) Get a value by evaluating an expression.abstract ActionListenerReturn the defaultActionListenerto be registered for allActionSourcecomponents in this appication.Return anIteratorover the set of currently defined component types for thisApplication.Return anIteratorover the set of currently registered converter ids for thisApplicationReturn anIteratorover the set ofClassinstances for whichConverterclasseshave been explicitly registered.abstract LocaleReturn the defaultLocalefor this application.abstract StringReturn therenderKitIdto be used for rendering this application.jakarta.el.ELContextListener[]If no calls have been made toaddELContextListener(jakarta.el.ELContextListener), this method must return an empty arrayjakarta.el.ELResolverReturn the singletonELResolverinstance to be used for all EL resolution.jakarta.el.ExpressionFactoryReturn theExpressionFactoryinstance for this application.abstract StringReturn the fully qualified class name of theResourceBundleto be used for JavaServer Faces messages for this application.abstract NavigationHandlerReturn theNavigationHandlerReturn the project stage for the currently running application instance.getResourceBundle(FacesContext ctx, String name) Find aResourceBundleas defined in the application configuration resources under the specified name.Return the singleton, stateless, thread-safeResourceHandlerabstract StateManagerReturn theStateManagerinstance that will be utilized during the Restore View and Render Response phases of the request processing lifecycle.Return anIteratorover the supportedLocalesfor this appication.Return anIteratorover the set of currently registered validator ids for thisApplication.abstract ViewHandlerSet theViewHandlerRestore View and Render Responsephases of the request processing lifecycle.voidpublishEvent(FacesContext facesContext, Class<? extends SystemEvent> systemEventClass, Class<?> sourceBaseType, Object source) voidpublishEvent(FacesContext facesContext, Class<? extends SystemEvent> systemEventClass, Object source) If there are one or more listeners for events of the type represented bysystemEventClass, call those listeners,passing source as thesourceof the event.voidremoveELContextListener(jakarta.el.ELContextListener listener) Remove the argumentlistenerfrom the list ofELContextListeners.abstract voidsetActionListener(ActionListener listener) Set the defaultActionListenerActionSourceabstract voidsetDefaultLocale(Locale locale) Set the defaultLocalefor this application.abstract voidsetDefaultRenderKitId(String renderKitId) Return therenderKitIdto be used for rendering this application.voidsetFlowHandler(FlowHandler flowHandler) abstract voidsetMessageBundle(String bundle) Set the fully qualified class name of theResourceBundleto be used for JavaServer Faces messages for this application.abstract voidsetNavigationHandler(NavigationHandler handler) Set theNavigationHandlerinstance that will be passed the outcome returned by any invoked application action for this web application.voidsetResourceHandler(ResourceHandler resourceHandler) voidsetSearchExpressionHandler(SearchExpressionHandler searchExpressionHandler) abstract voidsetStateManager(StateManager manager) Set theStateManagerinstance that will be utilized during theRestore View and Render Responsephases of the request processing lifecycle.abstract voidsetSupportedLocales(Collection<Locale> locales) Set theLocaleinstances representing the supportedLocalesfor this application.abstract voidsetViewHandler(ViewHandler handler) Set theViewHandlerinstance that will be utilized during theRestore View and Render Responsephases of the request processing lifecycle.voidsubscribeToEvent(Class<? extends SystemEvent> systemEventClass, SystemEventListener listener) voidsubscribeToEvent(Class<? extends SystemEvent> systemEventClass, Class<?> sourceClass, SystemEventListener listener) voidunsubscribeFromEvent(Class<? extends SystemEvent> systemEventClass, SystemEventListener listener) voidunsubscribeFromEvent(Class<? extends SystemEvent> systemEventClass, Class<?> sourceClass, SystemEventListener listener) 
- 
Constructor Details- 
Applicationpublic Application()
 
- 
- 
Method Details- 
addBehavior- Parameters:
- behaviorId-
- behaviorClass-
- Since:
- 2.0 FIXME: Notify EG, this should not be abstract and throw UnsupportedOperationException
 
- 
addComponentRegister a new mapping of component type to the name of the correspondingUIComponentclass. This allows subsequent calls tocreateComponent()to serve as a factory forUIComponentinstances.- Parameters:
- componentType- - The component type to be registered
- componentClass- - The fully qualified class name of the corresponding- UIComponentimplementation
- Throws:
- NullPointerException- if- componentTypeor- componentClassis- null
 
- 
addConverterRegister a new converter class that is capable of performing conversions for the specified target class.- Parameters:
- targetClass- - The class for which this converter is registered
- converterClass- - The fully qualified class name of the corresponding- Converterimplementation
- Throws:
- NullPointerException- if- targetClassor- converterClassis- null
 
- 
addConverterRegister a new mapping of converter id to the name of the correspondingConverterclass. This allows subsequent calls to createConverter() to serve as a factory forConverterinstances.- Parameters:
- converterId- - The converterId to be registered
- converterClass- - The fully qualified class name of the corresponding- Converterimplementation
- Throws:
- NullPointerException- if- componentTypeor- componentClassis- null
 
- 
addDefaultValidatorId- Parameters:
- validatorId-
- Since:
- 2.0
 
- 
addELContextListenerpublic void addELContextListener(jakarta.el.ELContextListener listener) Provide a way for Faces applications to register an ELContextListenerthat will be notified on creation ofELContextinstances.An implementation is provided that throws UnsupportedOperationExceptionso that users that decorate theApplicationcontinue to work.- Since:
- 1.2
 
- 
addELResolverpublic void addELResolver(jakarta.el.ELResolver resolver) Cause an the argument resolverto be added to the resolver chain as specified in section 5.5.1 of the JavaServer Faces Specification.It is not possible to remove an ELResolverregistered with this method, once it has been registered.It is illegal to register an ELResolver after the application has received any requests from the client. If an attempt is made to register a listener after that time, an IllegalStateException must be thrown. ELResolversare in the chain, aside from the standard ones. It is permissible to addELResolversbefore or after initialization to a CompositeELResolver that is already in the chain.The default implementation throws UnsupportedOperationExceptionand is provided for the sole purpose of not breaking existing applications that extendApplication.- Since:
- 1.2
 
- 
addValidatorRegister a new mapping of validator id to the name of the correspondingValidatorclass. This allows subsequent calls tocreateValidator()to serve as a factory forValidatorinstances.- Parameters:
- validatorId- The validator id to be registered
- validatorClass- The fully qualified class name of the corresponding Validator implementation
- Throws:
- NullPointerException- if- validatorIdor- validatorClassis- null
 
- 
createBehavior- Parameters:
- behaviorId-
- Returns:
- Throws:
- FacesException
- Since:
- 2.0 FIXME: Notify EG, this should not be abstract and throw UnsupportedOperationException
 
- 
createComponent???- Parameters:
- context-
- componentResource-
- Returns:
- Since:
- 2.0
 
- 
createComponent- Parameters:
- context-
- componentType-
- rendererType-
- Returns:
- Since:
- 2.0
 
- 
createComponentCreate a new UIComponent subclass, using the mappings defined by previous calls to the addComponent method of this class. - Throws:
- FacesException- if there is no mapping defined for the specified componentType, or if an instance of the specified type could not be created for any reason.
 
- 
createComponentpublic UIComponent createComponent(jakarta.el.ValueExpression componentExpression, FacesContext context, String componentType) throws FacesException Call the getValue()method on the specifiedValueExpression. If it returns aUIComponentUIComponentsetValue()method of the specifiedValueExpression, and return it.- Parameters:
- componentExpression- -- ValueExpressionrepresenting a component value expression (typically specified by the- componentattribute of a custom tag)
- context- -- FacesContextfor the current request
- componentType- - Component type to create if the ValueExpression does not return a component instance
- Throws:
- FacesException- if a- UIComponent
- NullPointerException- if any parameter is null- A default implementation is provided that throws - UnsupportedOperationExceptionso that users that decorate- Applicationcan continue to function
- Since:
- 1.2
 
- 
createComponentpublic UIComponent createComponent(jakarta.el.ValueExpression componentExpression, FacesContext context, String componentType, String rendererType) - Parameters:
- componentExpression-
- context-
- componentType-
- rendererType-
- Returns:
- Since:
- 2.0
 
- 
createConverterInstantiate and return a new ConverterConverterTo locate an appropriate ConverterConverterConverterConverterConverterIf the ConverterConvertertargetClassas the sole argument. Otherwise, simply use the zero-argument constructor.- Parameters:
- targetClass- - Target class for which to return a- Converter
- Throws:
- FacesException- if the- Converter
- NullPointerException- if- targetClassis- null
 
- 
createConverterInstantiate and return a newConverteraddConverter()for the specified converter id. If there is no such registration for this converter id, returnnull.- Parameters:
- converterId- - The converter id for which to create and return a new- Converter
- Throws:
- FacesException- if the- Converter
- NullPointerException- if converterId is- null
 
- 
createValidatorInstantiate and return a newValidatoraddValidator()for the specified validator id.- Parameters:
- validatorId- The- Validator
- Throws:
- FacesException- if a- Validator
- NullPointerException- if validatorId is- null
 
- 
evaluateExpressionGetpublic <T> T evaluateExpressionGet(FacesContext context, String expression, Class<? extends T> expectedType) throws jakarta.el.ELException Get a value by evaluating an expression. Call getExpressionFactory()ExpressionFactory.createValueExpression(jakarta.el.ELContext, java.lang.String, java.lang.Class)passing the argumentexpressionandexpectedType. CallFacesContext.getELContext()ValueExpression.getValue(jakarta.el.ELContext), returning the result.An implementation is provided that throws UnsupportedOperationExceptionso that users that decorate theApplicationcontinue to work.- Throws:
- jakarta.el.ELException
 
- 
getActionListenerReturn the default ActionListenerto be registered for allActionSourcecomponents in this appication. If not explicitly set, a default implementation must be provided that performs the following functions:- The processAction()method must first callFacesContext.renderResponse()in order to bypass any intervening lifecycle phases, once the method returns.
- The processAction()method must next determine the logical outcome of this event, as follows:
- If the originating component has a non-null actionproperty, retrieve theMethodExpressionfrom the property, and callinvoke()on it. Convert the returned value (if any) to a String, and use it as the logical outcome.
- Otherwise, the logical outcome is null.
- The processAction()method must finally retrieve theNavigationHandlerinstance for this application and callNavigationHandler.handleNavigation(jakarta.faces.context.FacesContext, java.lang.String, java.lang.String)passing:
- the FacesContextfor the current request
- If there is a MethodExpressioninstance for theactionproperty of this component, the result of callingExpression.getExpressionString()on it, null otherwise
- the logical outcome as determined above
 
- The 
- 
getBehaviorIds- Returns:
- Since:
- 2.0 FIXME: Notify EG, this should not be abstract and throw UnsupportedOperationException
 
- 
getComponentTypesReturn anIteratorover the set of currently defined component types for thisApplication.
- 
getConverterIdsReturn anIteratorover the set of currently registered converter ids for thisApplication- Returns:
 
- 
getConverterTypesReturn anIteratorover the set ofClassinstances for whichConverterclasseshave been explicitly registered.- Returns:
 
- 
getDefaultLocaleReturn the defaultLocalefor this application. If not explicitly set,nullis returned.- Returns:
 
- 
getDefaultRenderKitIdReturn therenderKitIdto be used for rendering this application. If not explicitly set,nullis returned.- Returns:
 
- 
getDefaultValidatorInfo- Returns:
- Since:
- 2.0
 
- 
getELContextListenerspublic jakarta.el.ELContextListener[] getELContextListeners()If no calls have been made to addELContextListener(jakarta.el.ELContextListener), this method must return an empty array. Otherwise, return an array representing the list of listeners added by calls to addELContextListener(jakarta.el.ELContextListener).An implementationis provided that throws UnsupportedOperationException so that users that decorate theApplicationcontinue to work.- Since:
- 1.2
 
- 
getELResolverpublic jakarta.el.ELResolver getELResolver()Return the singletonELResolverinstance to be used for all EL resolution. This is actually an instance ofCompositeELResolverthat must contain the following ELResolver instances in the following order:- ELResolverinstances declared using the <el-resolver> element in the application configuration resources.
- An implementationthat wraps the head of the legacy VariableResolver chain, as per sectionVariableResolver ChainWrapperin Chapter 5 in the spec document.
- An implementationthat wraps the head of the legacy PropertyResolver chain, as per sectionPropertyResolver ChainWrapperin Chapter 5 in the spec document.
- Any ELResolverinstances added by calls toaddELResolver(jakarta.el.ELResolver)
- The default implementation throws UnsupportedOperationExceptionand is provided for the sole purpose of not breaking existing applications that extendApplication
 - Since:
- 1.2
 
- 
getExpressionFactorypublic jakarta.el.ExpressionFactory getExpressionFactory()Return the ExpressionFactoryinstance for this application. This instance is used by the convenience methodevaluateExpressionGet(jakarta.faces.context.FacesContext, java.lang.String, java.lang.Class).An implementation is provided that throws UnsupportedOperationExceptionso that users that decorate theApplicationcontinue to work.- Returns:
- Since:
- 1.2
 
- 
getMessageBundleReturn the fully qualified class name of theResourceBundleto be used for JavaServer Faces messages for this application. If not explicitly set,nullis returned.
- 
getProjectStageReturn the project stage for the currently running application instance. The default value is ProjectStage.ProductionThe implementation of this method must perform the following algorithm or an equivalent with the same end result to determine the value to return. - If the value has already been determined by a previous call to this method, simply return that value.
- Look for a JNDIenvironment entry under the key given by the value ofProjectStage.PROJECT_STAGE_JNDI_NAMEinitParamMapof theExternalContextfrom the currentFacesContextwith the keyProjectStage.PROJECT_STAGE_PARAM_NAME
- If a value is found found, see if an enum constant can be obtained by calling
 ProjectStage.valueOf(), passing the value from theinitParamMap. If this succeeds without exception, save the value and return it.
- If not found, or any of the previous attempts to discover the enum constant value have failed, log a
 descriptive error message, assign the value as ProjectStage.Productionand return it.
 - Since:
- 2.0
 
- 
getResourceBundleFind a ResourceBundleas defined in the application configuration resources under the specified name. If aResourceBundlewas defined for the name, return an instance that uses the locale of the currentUIViewRootThe default implementation throws UnsupportedOperationExceptionand is provided for the sole purpose of not breaking existing applications that extend this class.- Returns:
- ResourceBundlefor the current UIViewRoot, otherwise null
- Throws:
- FacesException- if a bundle was defined, but not resolvable
- NullPointerException- if ctx == null || name == null
 
- 
getResourceHandlerReturn the singleton, stateless, thread-safe ResourceHandlerResourceHandler.- The ResourceHandlerimplementation is declared in the application configuration resources by giving the fully qualified class name as the value of the<resource-handler>element within theapplicationelement.
- RELEASE_PENDING(edburns) It can also be declared via an annotation as specified in [287-ConfigAnnotations].
 In all of the above cases, the runtime must employ the decorator pattern as for every other pluggable artifact in Faces. - Since:
- 2.0
 
- The 
- 
getStateManagerReturn theStateManagerinstance that will be utilized during the Restore View and Render Response phases of the request processing lifecycle. If not explicitly set, a default implementation must be provided that performs the functions described in theStateManagerdescription in the JavaServer Faces Specification.
- 
getSupportedLocalesReturn anIteratorover the supportedLocalesfor this appication.
- 
getValidatorIdsReturn anIteratorover the set of currently registered validator ids for thisApplication.
- 
getViewHandlerSet theViewHandlerRestore View and Render Responsephases of the request processing lifecycle.- Returns:
 
- 
publishEventpublic void publishEvent(FacesContext facesContext, Class<? extends SystemEvent> systemEventClass, Class<?> sourceBaseType, Object source) - Parameters:
- facesContext-
- systemEventClass-
- sourceBaseType-
- source-
- Since:
- 2.0
 
- 
publishEventpublic void publishEvent(FacesContext facesContext, Class<? extends SystemEvent> systemEventClass, Object source) If there are one or more listeners for events of the type represented by systemEventClass, call those listeners,passing source as thesourceof the event. The implementation should be as fast as possible in determining whether or not a listener for the givensystemEventClassandsourcehas been installed, and should return immediately once such a determination has been made. The implementation ofpublishEventmust honor the requirements stated insubscribeToEvent(java.lang.Class, java.lang.Class, jakarta.faces.event.SystemEventListener)The default implementation must implement an algorithm semantically equivalent to the following to locate listener instances and to invoke them. - If the sourceargument implementsSystemEventListenerHolderSystemEventListenerHolder.getListenersForEventClass(java.lang.Class)systemEventClassargument. If the list is not empty, perform algorithmtraverseListenerListon the list.
- If any Applicationlevel listeners have been installed by previous calls tosubscribeToEvent(java.lang.Class, java.lang.Class, SystemEventListener)traverseListenerListon the list.
- If any Applicationlevel listeners have been installed by previous calls tosubscribeToEvent(java.lang.Class, SystemEventListener)traverseListenerListon the list.
 If the act of invoking the processListenermethod causes anAbortProcessingExceptionAlgorithm traverseListenerList: For each listener in the list,- Call
 SystemEventListener.isListenerForSource(java.lang.Object)sourceargument. If this returnsfalse, take no action on the listener.
- Otherwise, if the event to be passed to the listener instances has not yet been constructed, construct the
 event, passing sourceas the argument to the one-argument constructor that takes anObject. This same event instance must be passed to all listener instances.
- Call
 SystemEvent.isAppropriateListener(jakarta.faces.event.FacesListener)false, take no action on the listener.
- Call
  SystemEvent.processListener(jakarta.faces.event.FacesListener)
 - Parameters:
- systemEventClass- - The Class of event that is being published. Must be non-null.
- source- - The- sourcefor the event of type systemEventClass. Must be non-- null, and must implement- SystemEventListenerHolder
- Since:
- 2.0
 
- If the 
- 
removeELContextListenerpublic void removeELContextListener(jakarta.el.ELContextListener listener) Remove the argument listenerfrom the list ofELContextListeners. Iflisteneris null, no exception is thrown and no action is performed. Iflisteneris not in the list, no exception is thrown and no action is performed.An implementation is provided that throws UnsupportedOperationExceptionso that users that decorate theApplicationcontinue to work.- Parameters:
- listener-
 
- 
setActionListenerSet the defaultActionListenerActionSource- Parameters:
- listener- - The new default- ActionListener
- Throws:
- NullPointerException- if listener is null
 
- 
setDefaultLocaleSet the defaultLocalefor this application.- Parameters:
- locale- - The new default- Locale
- Throws:
- NullPointerException- if listener is null
 
- 
setDefaultRenderKitIdReturn therenderKitIdto be used for rendering this application. If not explicitly set,nullis returned.- Parameters:
- renderKitId-
 
- 
setMessageBundleSet the fully qualified class name of theResourceBundleto be used for JavaServer Faces messages for this application. See the JavaDocs for thejava.util.ResourceBundleclass for more information about the syntax for resource bundle names.- Parameters:
- bundle- - Base name of the resource bundle to be used
- Throws:
- NullPointerException- if bundle is null
 
- 
setResourceHandler- Parameters:
- resourceHandler-
- Since:
- 2.0
 
- 
setStateManagerSet theStateManagerinstance that will be utilized during theRestore View and Render Responsephases of the request processing lifecycle.- Parameters:
- manager- The new- StateManagerinstance
- Throws:
- IllegalStateException- if this method is called after at least one request has been processed by the- Lifecycleinstance for this application.
- NullPointerException- if manager is- null
 
- 
setSupportedLocalesSet theLocaleinstances representing the supportedLocalesfor this application.- Parameters:
- locales- The set of supported- Localesfor this application
- Throws:
- NullPointerException- if the argument newLocales is- null.
 
- 
setViewHandlerSet theViewHandlerinstance that will be utilized during theRestore View and Render Responsephases of the request processing lifecycle.- Parameters:
- handler- - The new- ViewHandlerinstance
- Throws:
- IllegalStateException- if this method is called after at least one request has been processed by the- Lifecycleinstance for this application.
- NullPointerException- if- handleris- null
 
- 
subscribeToEventpublic void subscribeToEvent(Class<? extends SystemEvent> systemEventClass, Class<?> sourceClass, SystemEventListener listener) - Parameters:
- systemEventClass-
- sourceClass-
- listener-
- Since:
- 2.0
 
- 
subscribeToEventpublic void subscribeToEvent(Class<? extends SystemEvent> systemEventClass, SystemEventListener listener) - Parameters:
- systemEventClass-
- listener-
- Since:
- 2.0
 
- 
unsubscribeFromEventpublic void unsubscribeFromEvent(Class<? extends SystemEvent> systemEventClass, Class<?> sourceClass, SystemEventListener listener) - Parameters:
- systemEventClass-
- sourceClass-
- listener-
- Since:
- 2.0
 
- 
unsubscribeFromEventpublic void unsubscribeFromEvent(Class<? extends SystemEvent> systemEventClass, SystemEventListener listener) - Parameters:
- systemEventClass-
- listener-
- Since:
- 2.0
 
- 
getFlowHandler- Returns:
- Since:
- 2.2
 
- 
setFlowHandler- Parameters:
- flowHandler-
- Since:
- 2.2
 
- 
addSearchKeywordResolver
- 
getSearchKeywordResolver
- 
getSearchExpressionHandler- Returns:
- Since:
- 2.3
 
- 
setSearchExpressionHandler- Parameters:
- searchExpressionHandler-
- Since:
- 2.3
 
 
-