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
    • 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 will never be re-loaded, even if changed, 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 StaticContentConfigBlueprint.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()
      Configure capacity of cache used for resources. This cache will make sure the media type and location is discovered faster.

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

      Returns:
      maximal number of cached records, only caches media type and Path, not the content