Class VersionedResourceHandler

All Implemented Interfaces:
FacesWrapper<ResourceHandler>

public class VersionedResourceHandler extends DefaultResourceHandler
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>
 
 

Example Code (GitHub)

Since:
3.9
Author:
Lenny Primak
  • Field Details

    • 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:
  • Constructor Details

    • 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 Details

    • decorateResource

      public Resource decorateResource(Resource resource)
      Description copied from class: DefaultResourceHandler
      Decorate 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:
      decorateResource in class DefaultResourceHandler
      Parameters:
      resource - The resource to be decorated.
      Returns:
      The decorated resource.