Interface StreamCachingStrategy

    • Method Detail

      • setEnabled

        void setEnabled​(boolean enabled)
        Sets whether the stream caching is enabled.

        Notice: This cannot be changed at runtime.

      • isEnabled

        boolean isEnabled()
      • setSpoolEnabled

        void setSpoolEnabled​(boolean spoolEnabled)
        Enables spooling to disk.

        Notice: This cannot be changed at runtime. Default is disabled.

      • isSpoolEnabled

        boolean isSpoolEnabled()
        Is spooling to disk enabled.
      • setSpoolDirectory

        void setSpoolDirectory​(File path)
        Sets the spool (temporary) directory to use for overflow and spooling to disk.

        If no spool directory has been explicit configured, then a temporary directory is created in the java.io.tmpdir directory.

      • getSpoolDirectory

        File getSpoolDirectory()
      • setSpoolDirectory

        void setSpoolDirectory​(String path)
      • setSpoolThreshold

        void setSpoolThreshold​(long threshold)
        Threshold in bytes when overflow to disk is activated.

        The default threshold is StreamCache.DEFAULT_SPOOL_THRESHOLD bytes (eg 128kb). Use -1 to disable overflow to disk.

      • getSpoolThreshold

        long getSpoolThreshold()
      • setSpoolUsedHeapMemoryThreshold

        void setSpoolUsedHeapMemoryThreshold​(int percentage)
        Sets a percentage (1-99) of used heap memory threshold to activate spooling to disk.
        Parameters:
        percentage - percentage of used heap memory.
      • getSpoolUsedHeapMemoryThreshold

        int getSpoolUsedHeapMemoryThreshold()
      • setBufferSize

        void setBufferSize​(int bufferSize)
        Sets the buffer size to use when allocating in-memory buffers used for in-memory stream caches.

        The default size is IOHelper.DEFAULT_BUFFER_SIZE

      • getBufferSize

        int getBufferSize()
      • setSpoolCipher

        void setSpoolCipher​(String cipher)
        Sets a cipher name to use when spooling to disk to write with encryption.

        By default the data is not encrypted.

      • getSpoolCipher

        String getSpoolCipher()
      • setRemoveSpoolDirectoryWhenStopping

        void setRemoveSpoolDirectoryWhenStopping​(boolean remove)
        Whether to remove the temporary directory when stopping.

        This option is default true

      • isRemoveSpoolDirectoryWhenStopping

        boolean isRemoveSpoolDirectoryWhenStopping()
      • isAnySpoolRules

        boolean isAnySpoolRules()
      • shouldSpoolCache

        boolean shouldSpoolCache​(long length)
        Determines if the stream should be spooled or not. For example if the stream length is over a threshold.

        This allows implementations to use custom strategies to determine if spooling is needed or not.

        Parameters:
        length - the length of the stream
        Returns:
        true to spool the cache, or false to keep the cache in-memory
      • cache

        StreamCache cache​(Exchange exchange)
        Caches the body aas a StreamCache.
        Parameters:
        exchange - the exchange
        Returns:
        the body cached as a StreamCache, or null if not possible or no need to cache the body