Class CompressionHandler

java.lang.Object
org.eclipse.jetty.util.component.AbstractLifeCycle
org.eclipse.jetty.util.component.ContainerLifeCycle
org.eclipse.jetty.server.Handler.Abstract
org.eclipse.jetty.server.Handler.AbstractContainer
org.eclipse.jetty.server.Handler.Wrapper
org.eclipse.jetty.compression.server.CompressionHandler
All Implemented Interfaces:
org.eclipse.jetty.server.Handler, org.eclipse.jetty.server.Handler.Container, org.eclipse.jetty.server.Handler.Singleton, org.eclipse.jetty.server.Request.Handler, org.eclipse.jetty.util.component.Container, org.eclipse.jetty.util.component.Destroyable, org.eclipse.jetty.util.component.Dumpable, org.eclipse.jetty.util.component.Dumpable.DumpableContainer, org.eclipse.jetty.util.component.LifeCycle, org.eclipse.jetty.util.thread.Invocable

public class CompressionHandler extends org.eclipse.jetty.server.Handler.Wrapper

CompressionHandler to provide compression of response bodies and decompression of request bodies.

Supports any arbitrary Content-Encoding via Compression implementations such as gzip, zstd, and brotli, discovered via ServiceLoader.

Configuration is handled by associating a CompressionConfig against a PathSpec. By default, if no configuration is specified, then a default CompressionConfig is assigned to the / PathSpec.

  • Nested Class Summary

    Nested classes/interfaces inherited from class org.eclipse.jetty.server.Handler.Abstract

    org.eclipse.jetty.server.Handler.Abstract.NonBlocking

    Nested classes/interfaces inherited from class org.eclipse.jetty.util.component.AbstractLifeCycle

    org.eclipse.jetty.util.component.AbstractLifeCycle.AbstractLifeCycleListener, org.eclipse.jetty.util.component.AbstractLifeCycle.StopException

    Nested classes/interfaces inherited from interface org.eclipse.jetty.util.component.Container

    org.eclipse.jetty.util.component.Container.InheritedListener, org.eclipse.jetty.util.component.Container.Listener

    Nested classes/interfaces inherited from interface org.eclipse.jetty.util.component.Dumpable

    org.eclipse.jetty.util.component.Dumpable.DumpableContainer, org.eclipse.jetty.util.component.Dumpable.DumpAppendable

    Nested classes/interfaces inherited from interface org.eclipse.jetty.server.Handler

    org.eclipse.jetty.server.Handler.Abstract, org.eclipse.jetty.server.Handler.AbstractContainer, org.eclipse.jetty.server.Handler.Collection, org.eclipse.jetty.server.Handler.Container, org.eclipse.jetty.server.Handler.Sequence, org.eclipse.jetty.server.Handler.Singleton, org.eclipse.jetty.server.Handler.Wrapper

    Nested classes/interfaces inherited from interface org.eclipse.jetty.util.thread.Invocable

    org.eclipse.jetty.util.thread.Invocable.Callable, org.eclipse.jetty.util.thread.Invocable.InvocationType, org.eclipse.jetty.util.thread.Invocable.ReadyTask, org.eclipse.jetty.util.thread.Invocable.Task

    Nested classes/interfaces inherited from interface org.eclipse.jetty.util.component.LifeCycle

    org.eclipse.jetty.util.component.LifeCycle.Listener

    Nested classes/interfaces inherited from interface org.eclipse.jetty.server.Request.Handler

    org.eclipse.jetty.server.Request.Handler.AbortException
  • Field Summary

    Fields inherited from class org.eclipse.jetty.util.component.AbstractLifeCycle

    FAILED, STARTED, STARTING, STOPPED, STOPPING

    Fields inherited from interface org.eclipse.jetty.util.component.Dumpable

    LEGEND

    Fields inherited from interface org.eclipse.jetty.util.thread.Invocable

    __nonBlocking, NOOP
  • Constructor Summary

    Constructors
    Constructor
    Description
     
    CompressionHandler(org.eclipse.jetty.server.Handler handler)
     
  • Method Summary

    Modifier and Type
    Method
    Description
    protected void
     
    protected void
     
    ensureConfiguration(String pathSpecString)
    Obtain a CompressionConfig for the specified PathSpec.
    ensureConfiguration(org.eclipse.jetty.http.pathmap.PathSpec pathSpec)
    Obtain a CompressionConfig for the specified PathSpec.
    getConfiguration(String pathSpecString)
    Get the CompressionConfig associated with this PathSpec
    getConfiguration(org.eclipse.jetty.http.pathmap.PathSpec pathSpec)
    Get the CompressionConfig associated with this PathSpec
    boolean
    handle(org.eclipse.jetty.server.Request request, org.eclipse.jetty.server.Response response, org.eclipse.jetty.util.Callback callback)
     
    org.eclipse.jetty.compression.Compression
    putCompression(org.eclipse.jetty.compression.Compression compression)
    Registers support for a Compression implementation to this Handler.
    putConfiguration(String pathSpecString, CompressionConfig config)
    Establish a CompressionConfig associated with the specific PathSpec
    putConfiguration(org.eclipse.jetty.http.pathmap.PathSpec pathSpec, CompressionConfig config)
    Establish a CompressionConfig associated with the specific PathSpec
    org.eclipse.jetty.compression.Compression
    removeCompression(String encodingName)
    Unregisters a specific Compression implementation.
     

    Methods inherited from class org.eclipse.jetty.server.Handler.Wrapper

    getHandler, getInvocationType, setHandler

    Methods inherited from class org.eclipse.jetty.server.Handler.AbstractContainer

    findContainerOf, getDescendant, getDescendants, isDynamic, setDynamic, setServer

    Methods inherited from class org.eclipse.jetty.server.Handler.Abstract

    destroy, getServer

    Methods inherited from class org.eclipse.jetty.util.component.ContainerLifeCycle

    addBean, addBean, addEventListener, addManaged, contains, dump, dump, dump, dumpObjects, dumpStdErr, getBean, getBeans, getBeans, getContainedBeans, getContainedBeans, installBean, installBean, isAuto, isManaged, isUnmanaged, manage, removeBean, removeBeans, removeEventListener, setBeans, start, stop, unmanage, updateBean, updateBean, updateBeans, updateBeans

    Methods inherited from class org.eclipse.jetty.util.component.AbstractLifeCycle

    getEventListeners, getState, getState, isFailed, isRunning, isStarted, isStarting, isStopped, isStopping, setEventListeners, start, stop

    Methods inherited from class Object

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

    Methods inherited from interface org.eclipse.jetty.util.component.Container

    getCachedBeans, getEventListeners

    Methods inherited from interface org.eclipse.jetty.util.component.Destroyable

    destroy

    Methods inherited from interface org.eclipse.jetty.util.component.Dumpable

    dumpSelf

    Methods inherited from interface org.eclipse.jetty.util.component.Dumpable.DumpableContainer

    isDumpable

    Methods inherited from interface org.eclipse.jetty.server.Handler

    getServer, setServer

    Methods inherited from interface org.eclipse.jetty.server.Handler.Container

    getContainer, getDescendant, getDescendants, getDescendants

    Methods inherited from interface org.eclipse.jetty.server.Handler.Singleton

    getHandlers, getTail, insertHandler, setHandler

    Methods inherited from interface org.eclipse.jetty.util.component.LifeCycle

    addEventListener, isFailed, isRunning, isStarted, isStarting, isStopped, isStopping, removeEventListener, start, stop
  • Constructor Details

    • CompressionHandler

      public CompressionHandler()
    • CompressionHandler

      public CompressionHandler(org.eclipse.jetty.server.Handler handler)
  • Method Details

    • putCompression

      public org.eclipse.jetty.compression.Compression putCompression(org.eclipse.jetty.compression.Compression compression)
      Registers support for a Compression implementation to this Handler.
      Parameters:
      compression - the compression implementation.
      Returns:
      the previously registered compression with the same encoding name, can be null.
    • removeCompression

      public org.eclipse.jetty.compression.Compression removeCompression(String encodingName)
      Unregisters a specific Compression implementation.
      Parameters:
      encodingName - the encoding name of the compression to remove.
      Returns:
      the Compression that was removed, can be null if no Compression exists on that encoding name.
    • ensureConfiguration

      public CompressionConfig ensureConfiguration(org.eclipse.jetty.http.pathmap.PathSpec pathSpec)
      Obtain a CompressionConfig for the specified PathSpec.

      This is different from getConfiguration(PathSpec), which will return null if the mapping to the provided PathSpec does not exist.

      Parameters:
      pathSpec - the PathSpec to look for.
      Returns:
      the CompressionConfig associated with the PathSpec, mapping is created if it didn't previously exist.
    • ensureConfiguration

      public CompressionConfig ensureConfiguration(String pathSpecString)
      Obtain a CompressionConfig for the specified PathSpec.

      This is different from getConfiguration(PathSpec), which will return null if the mapping to the provided PathSpec does not exist.

      Parameters:
      pathSpecString - the string representation of the path spec.
      Returns:
      the CompressionConfig associated with the PathSpec, mapping is created if it didn't previously exist.
      See Also:
    • getConfiguration

      public CompressionConfig getConfiguration(org.eclipse.jetty.http.pathmap.PathSpec pathSpec)
      Get the CompressionConfig associated with this PathSpec
      Parameters:
      pathSpec - the PathSpec to look for
      Returns:
      the CompressionConfig mapped to the PathSpec, null if nothing is mapped to the PathSpec
    • getConfiguration

      public CompressionConfig getConfiguration(String pathSpecString)
      Get the CompressionConfig associated with this PathSpec
      Parameters:
      pathSpecString - the string representation of the path spec.
      Returns:
      the CompressionConfig mapped to the PathSpec, null if nothing is mapped to the PathSpec
    • putConfiguration

      public CompressionConfig putConfiguration(org.eclipse.jetty.http.pathmap.PathSpec pathSpec, CompressionConfig config)
      Establish a CompressionConfig associated with the specific PathSpec
      Parameters:
      pathSpec - the path spec to use as the key
      config - the config to use as the value
      Returns:
      the old CompressionConfig if one was previously set.
      See Also:
      • PathMappings.put(PathSpec, Object)
    • putConfiguration

      public CompressionConfig putConfiguration(String pathSpecString, CompressionConfig config)
      Establish a CompressionConfig associated with the specific PathSpec
      Parameters:
      pathSpecString - the string representation of the path spec.
      config - the config to use as the value
      Returns:
      the old CompressionConfig if one was previously set.
      See Also:
      • PathMappings.put(PathSpec, Object)
    • doStart

      protected void doStart() throws Exception
      Overrides:
      doStart in class org.eclipse.jetty.server.Handler.Abstract
      Throws:
      Exception
    • doStop

      protected void doStop() throws Exception
      Overrides:
      doStop in class org.eclipse.jetty.server.Handler.Abstract
      Throws:
      Exception
    • handle

      public boolean handle(org.eclipse.jetty.server.Request request, org.eclipse.jetty.server.Response response, org.eclipse.jetty.util.Callback callback) throws Exception
      Specified by:
      handle in interface org.eclipse.jetty.server.Request.Handler
      Overrides:
      handle in class org.eclipse.jetty.server.Handler.Wrapper
      Throws:
      Exception
    • toString

      public String toString()
      Overrides:
      toString in class org.eclipse.jetty.util.component.AbstractLifeCycle