Package org.apache.tapestry5.services.assets

# Interface AssetRequestHandler

All Known Implementing Classes:
  `ClasspathAssetRequestHandler`, `ContextAssetRequestHandler`, `StackAssetRequestHandler`

public interface AssetRequestHandler
Handler for asset requests, which expose some kind of `Asset` to the user agent (i.e., the client web browser). When contributed to the `AssetDispatcher` service, the contributed key is a handler id (such as "meta/core"). An example request path might be `/assets/meta/core/dd8d73ac51dbab28caaec4865d302bf2/deselect.png`. The handler id would be `meta/core`, the checksum of the resource content is the hex string, and the extra path would be `select.png`.

Since:
  5.2.0
See Also:
  - `AssetDispatcher`
  - `AssetRequestDispatcher`
  - `AssetPathConstructor`

- ## Method Summary

  Modifier and Type
  Method
  Description
  `boolean`
  `handleAssetRequest(Request request, Response response, String extraPath)`
  Given a request targeted (via the handler id) to the specific handler, process the request.

- ## Method Details

  - ### handleAssetRequest

    boolean handleAssetRequest(Request request, Response response, String extraPath) throws IOException
    Given a request targeted (via the handler id) to the specific handler, process the request. The handler is responsible for processing the request, sending back either a bytestream (via `Response.getOutputStream(String)`) or an error response (via `Response.sendError(int, String)`). It is the handler's responsibility to allow for client-side caching (possibly sending an `HttpServletResponse.SC_NOT_MODIFIED` response). The handler should return true if it provided a response. If the handler returns false, this indicates that the extra path did not identify a known asset (virtual or otherwise) and the AssetDispatcher service should send a `HttpServletResponse.SC_NOT_FOUND` response. Starting in Tapestry 5.4, the handler is informed by the `AssetRequestDispatcher` whether or not the content should be compressed (this is determined based on information in the URL).
    Parameters:
      `request` - incoming asset request
      `response` - used to send a response to client
      `extraPath` - additional path to identify the specific asset
    Returns:
      true if request was handled (and response sent), false if asset not found
    Throws:
      `IOException`