java.lang.Object
jakarta.faces.application.ResourceHandler
jakarta.faces.application.ResourceHandlerWrapper
org.omnifaces.resourcehandler.DefaultResourceHandler
org.omnifaces.resourcehandler.VersionedResourceHandler
- All Implemented Interfaces:
FacesWrapper<ResourceHandler>
Automatically adds version parameter with query string name
v to all resource URLs so that the browser
cache will be busted whenever the version parameter changes.
NOTE: if resource URL already has v query string parameter, or when it is URL-rewritten to not include
"/jakarta.faces.resource" path anymore, then these will be ignored.
Installation
To get it to run, this handler needs be registered as follows in faces-config.xml:
<application>
<resource-handler>org.omnifaces.resourcehandler.VersionedResourceHandler</resource-handler>
</application>
And the version parameter needs to be configured as follows in web.xml:
<context-param>
<param-name>org.omnifaces.VERSIONED_RESOURCE_HANDLER_VERSION</param-name>
<!-- Version parameter value could be any hardcoded string here, or any object property from managed bean -->
<param-value>#{environmentInfo.version}</param-value>
</context-param>
- Since:
- 3.9
- Author:
- Lenny Primak
-
Field Summary
FieldsModifier and TypeFieldDescriptionstatic final StringThe context parameter name to specify value of the version to be appended to the resource URL.Fields inherited from class org.omnifaces.resourcehandler.DefaultResourceHandler
RES_NOT_FOUNDFields inherited from class jakarta.faces.application.ResourceHandler
FACES_SCRIPT_LIBRARY_NAME, FACES_SCRIPT_RESOURCE_NAME, JSF_SCRIPT_LIBRARY_NAME, JSF_SCRIPT_RESOURCE_NAME, LOCALE_PREFIX, RESOURCE_CONTRACT_XML, RESOURCE_EXCLUDES_DEFAULT_VALUE, RESOURCE_EXCLUDES_PARAM_NAME, RESOURCE_IDENTIFIER, WEBAPP_CONTRACTS_DIRECTORY_PARAM_NAME, WEBAPP_RESOURCES_DIRECTORY_PARAM_NAME -
Constructor Summary
ConstructorsConstructorDescriptionVersionedResourceHandler(ResourceHandler wrapped) Creates a new instance of this versioned resource handler which wraps the given resource handler. -
Method Summary
Modifier and TypeMethodDescriptiondecorateResource(Resource resource) Decorate the given resource.Methods inherited from class org.omnifaces.resourcehandler.DefaultResourceHandler
createResource, createResource, createResource, createResourceFromLibrary, decorateResource, getLibraryNameMethods inherited from class jakarta.faces.application.ResourceHandlerWrapper
createResourceFromId, createViewResource, getRendererTypeForResourceName, getViewResources, getViewResources, getWrapped, handleResourceRequest, isResourceRendered, isResourceRequest, isResourceURL, libraryExists, markResourceRendered
-
Field Details
-
PARAM_NAME_VERSION
The context parameter name to specify value of the version to be appended to the resource URL.- See Also:
-
-
Constructor Details
-
VersionedResourceHandler
Creates a new instance of this versioned resource handler which wraps the given resource handler. This will also initialize the version based on the context parameter.- Parameters:
wrapped- The resource handler to be wrapped.
-
-
Method Details
-
decorateResource
Description copied from class:DefaultResourceHandlerDecorate the given resource. This will only be called if no library-specific resource has been requested.The default implementation just returns the given resource unmodified.
- Overrides:
decorateResourcein classDefaultResourceHandler- Parameters:
resource- The resource to be decorated.- Returns:
- The decorated resource.
-