Interface BaseHandlerConfig

All Superinterfaces:
Prototype.Api
All Known Subinterfaces:
ClasspathHandlerConfig, FileSystemHandlerConfig
All Known Implementing Classes:
BaseHandlerConfig.BuilderBase.BaseHandlerConfigImpl, ClasspathHandlerConfig.BuilderBase.ClasspathHandlerConfigImpl, FileSystemHandlerConfig.BuilderBase.FileSystemHandlerConfigImpl

public interface BaseHandlerConfig extends Prototype.Api
Configuration of static content handlers that is common for classpath and file system based handlers.
See Also:
  • Method Details

    • builder

      static BaseHandlerConfig.Builder builder()
      Create a new fluent API builder to customize configuration.
      Returns:
      a new builder
    • builder

      static BaseHandlerConfig.Builder builder(BaseHandlerConfig instance)
      Create a new fluent API builder from an existing instance.
      Parameters:
      instance - an existing instance used as a base for the builder
      Returns:
      a builder based on an instance
    • create

      static BaseHandlerConfig create(Config config)
      Create a new instance from configuration.
      Parameters:
      config - used to configure the new instance
      Returns:
      a new instance configured from configuration
    • enabled

      boolean enabled()
      Whether this handle is enabled, defaults to true.
      Returns:
      whether enabled
    • context

      String context()
      Context that will serve this handler's static resources, defaults to /.
      Returns:
      context under webserver
    • sockets

      Set<String> sockets()
      Sockets names (listeners) that will host this static content handler, defaults to all configured sockets. Default socket name is @default.
      Returns:
      sockets to register this handler on
    • welcome

      Optional<String> welcome()
      Welcome-file name. In case a directory is requested, this file would be served if present. There is no welcome file by default.
      Returns:
      welcome-file name, such as index.html
    • cachedFiles

      Set<String> cachedFiles()
      A set of files that are cached in memory at startup. These files are never removed from the in-memory cache, though their overall size is added to the memory cache used bytes. When using classpath, the set must contain explicit list of all files that should be cached, when using file system, it can contain a directory, and all files under that directory (recursive) would be cached as well.

      Note that files cached through this method may use more than the max-bytes configured for the in-memory cache (i.e. this option wins over the maximal size in bytes), so kindly be careful with what is pushed to the cache.

      Files cached in memory are snapshots. They remain available and are never re-loaded, even if their source is changed or removed, until server restart!

      Returns:
      set of file names (or directory names if not using classpath) to cache in memory on startup
    • memoryCache

      Optional<MemoryCache> memoryCache()
      Handles will use memory cache configured on StaticContentConfig.memoryCache() by default. In case a memory cache is configured here, it will replace the memory cache used by the static content feature, and this handle will use a dedicated memory cache instead.

      To disable memory caching for a single handler, create the configuration, and set enabled: false.

      Returns:
      memory cache to use with this handler
    • contentTypes

      Map<String, MediaType> contentTypes()
      Maps a filename extension to the response content type. To have a system-wide configuration, you can use the service loader SPI MediaTypeDetector.

      This method can override MediaTypes detection for a specific static content handler.

      Handler will use a union of configuration on the StaticContentConfig and here when used from configuration.

      Returns:
      map of file extensions to associated media type
    • pathMapper

      Function<String,String> pathMapper()
      Map request path to resource path. Default uses the same path as requested. This can be used to resolve all paths to a single file, or to filter out files.
      Returns:
      function to map request path to resource path
    • recordCacheCapacity

      Optional<Integer> recordCacheCapacity()
      Configures the capacity of the cache used for resource metadata. Pre-compressed sidecar lookup state is attached to the corresponding normal resource record.

      To cache content (bytes) in memory, use memoryCache()

      Returns:
      maximal number of cached records; records do not contain the content bytes
    • preCompressedEnabled

      Optional<Boolean> preCompressedEnabled()
      Whether pre-compressed sidecar resources should be selected for this handler; feature-registered handlers inherit the feature value when absent, directly created handlers default to disabled, and file system handlers configured with a single file always require handler-level opt-in.
      Returns:
      whether pre-compressed sidecar resources should be used
    • preCompressedEncodings

      Optional<Map<String,String>> preCompressedEncodings()
      Pre-compressed content coding to file suffix mappings; handler mappings replace inherited feature-level mappings rather than merging with them, an explicit empty map disables sidecar lookups for this handler, codings must be unique concrete valid HTTP tokens other than identity and *, and suffixes have leading dots ignored and must not contain path separators.
      Returns:
      content coding to file suffix mappings