- java.lang.Object
-
- jakarta.faces.application.ResourceHandler
-
- jakarta.faces.application.ResourceHandlerWrapper
-
- org.omnifaces.resourcehandler.DefaultResourceHandler
-
- org.omnifaces.resourcehandler.VersionedResourceHandler
-
- All Implemented Interfaces:
FacesWrapper<ResourceHandler>
public class VersionedResourceHandler extends DefaultResourceHandler
Automatically adds version parameter with query string namevto all resource URLs so that the browser cache will be busted whenever the version parameter changes.NOTE: if resource URL already has
vquery 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
Fields Modifier and Type Field Description static StringPARAM_NAME_VERSIONThe context parameter name to specify value of the version to be appended to the resource URL.-
Fields inherited from class org.omnifaces.resourcehandler.DefaultResourceHandler
FACES_SCRIPT_RESOURCE_NAME, RES_NOT_FOUND
-
Fields inherited from class jakarta.faces.application.ResourceHandler
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
Constructors Constructor Description VersionedResourceHandler(ResourceHandler wrapped)Creates a new instance of this versioned resource handler which wraps the given resource handler.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description ResourcedecorateResource(Resource resource)Decorate the given resource.-
Methods inherited from class org.omnifaces.resourcehandler.DefaultResourceHandler
createResource, createResource, createResource, createResourceFromLibrary, decorateResource, getLibraryName
-
Methods inherited from class jakarta.faces.application.ResourceHandlerWrapper
createResourceFromId, createViewResource, getRendererTypeForResourceName, getViewResources, getViewResources, getWrapped, handleResourceRequest, isResourceRendered, isResourceRequest, isResourceURL, libraryExists, markResourceRendered
-
-
-
-
Field Detail
-
PARAM_NAME_VERSION
public static final String PARAM_NAME_VERSION
The context parameter name to specify value of the version to be appended to the resource URL.- See Also:
- Constant Field Values
-
-
Constructor Detail
-
VersionedResourceHandler
public VersionedResourceHandler(ResourceHandler wrapped)
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 Detail
-
decorateResource
public Resource decorateResource(Resource resource)
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.
-
-