Package org.apache.tapestry5.internal.services.assets

# Class CSSURLRewriter

java.lang.Object
org.apache.tapestry5.internal.services.assets.DelegatingSRS
org.apache.tapestry5.internal.services.assets.CSSURLRewriter

All Implemented Interfaces:
  `StreamableResourceSource`

public class CSSURLRewriter extends DelegatingSRS
Rewrites the `url()` attributes inside a CSS (MIME type "text/css")) resource. Each `url` is expanded to a complete path; this allows for CSS aggregation, where the location of the CSS file will change (which would ordinarily break relative URLs), and for changing the relative directories of the CSS file and the image assets it may refer to (useful for incorporating a hash of the resource's content into the exposed URL). One potential problem with URL rewriting is the way that URLs for referenced resources are generated; we are somewhat banking on the fact that referenced resources are non-compressable images.

Since:
  5.4
See Also:
  - `SymbolConstants.STRICT_CSS_URL_REWRITING`

- ## Field Summary

  ### Fields inherited from class org.apache.tapestry5.internal.services.assets.DelegatingSRS

  `delegate`

- ## Constructor Summary

  Constructors
  Constructor
  Description
  `CSSURLRewriter(StreamableResourceSource delegate, OperationTracker tracker, AssetSource assetSource, AssetChecksumGenerator checksumGenerator, boolean strictCssUrlRewriting)`

- ## Method Summary

  Modifier and Type
  Method
  Description
  `StreamableResource`
  `getStreamableResource(Resource baseResource, StreamableResourceProcessing processing, ResourceDependencies dependencies)`
  Converts a Resource (which must be non-null and exist) into a streamable resource, along with some additional optional behaviors.

  ### Methods inherited from class org.apache.tapestry5.internal.services.assets.DelegatingSRS

  `fileExtensionsForContentType`

  ### Methods inherited from class java.lang.Object

  `clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

- ## Constructor Details

  - ### CSSURLRewriter

    public CSSURLRewriter(StreamableResourceSource delegate, OperationTracker tracker, AssetSource assetSource, AssetChecksumGenerator checksumGenerator, boolean strictCssUrlRewriting)

- ## Method Details

  - ### getStreamableResource

    public StreamableResource getStreamableResource(Resource baseResource, StreamableResourceProcessing processing, ResourceDependencies dependencies) throws IOException
    Description copied from interface: `StreamableResourceSource`
    Converts a Resource (which must be non-null and exist) into a streamable resource, along with some additional optional behaviors.
    Specified by:
      `getStreamableResource` in interface `StreamableResourceSource`
    Overrides:
      `getStreamableResource` in class `DelegatingSRS`
    Parameters:
      `baseResource` - the resource to convert
      `processing` - defines additional processing after the resource has been read and possibly transformed
      `dependencies` - Passed to any `ResourceTransformer` to track additional dependencies of the base resource
    Returns:
      the contents of the Resource, possibly transformed, in a streamable format.
    Throws:
      `IOException` - if the resource does not exist or a URL for the content is not available