Package org.apache.camel.spi
Interface StreamCachingStrategy
- All Superinterfaces:
AutoCloseable
,Service
,StaticService
Strategy for using stream caching.
-
Nested Class Summary
Modifier and TypeInterfaceDescriptionstatic interface
Rule for determine if stream caching should be spooled to disk or kept in-memory.static enum
Used for selecting if the memory limit is committed or maximum heap memory setting.static interface
Utilization statistics of stream caching. -
Method Summary
Modifier and TypeMethodDescriptionvoid
Adds theStreamCachingStrategy.SpoolRule
rule to be used.Caches the value aas aStreamCache
.Caches the body aas aStreamCache
.Caches the body aas aStreamCache
.Collection
<Class<?>> To filter stream caching of a given set of allowed/denied classes.int
Collection
<Class<?>> To filter stream caching of a given set of allowed/denied classes.long
int
Gets the utilization statistics.boolean
boolean
boolean
boolean
Is spooling to disk enabled.void
setAllowClasses
(Class<?>... classes) To filter stream caching of a given set of allowed/denied classes.void
setAllowClasses
(String names) To filter stream caching of a given set of allowed/denied classes.void
setAnySpoolRules
(boolean any) Sets whether if just any of theStreamCachingStrategy.SpoolRule
rules returns true thenshouldSpoolCache(long)
returns true.void
setBufferSize
(int bufferSize) Sets the buffer size to use when allocating in-memory buffers used for in-memory stream caches.void
setDenyClasses
(Class<?>... classes) To filter stream caching of a given set of allowed/denied classes.void
setDenyClasses
(String names) To filter stream caching of a given set of allowed/denied classes.void
setEnabled
(boolean enabled) Sets whether the stream caching is enabled.void
setRemoveSpoolDirectoryWhenStopping
(boolean remove) Whether to remove the temporary directory when stopping.void
setSpoolCipher
(String cipher) Sets a cipher name to use when spooling to disk to write with encryption.void
setSpoolDirectory
(File path) Sets the spool (temporary) directory to use for overflow and spooling to disk.void
setSpoolDirectory
(String path) void
setSpoolEnabled
(boolean spoolEnabled) Enables spooling to disk.void
setSpoolThreshold
(long threshold) Threshold in bytes when overflow to disk is activated.void
Sets what the upper bounds should be whensetSpoolUsedHeapMemoryThreshold(int)
is in use.void
setSpoolUsedHeapMemoryThreshold
(int percentage) Sets a percentage (1-99) of used heap memory threshold to activate spooling to disk.boolean
shouldSpoolCache
(long length) Determines if the stream should be spooled or not.
-
Method Details
-
setEnabled
void setEnabled(boolean enabled) Sets whether the stream caching is enabled. Notice: This cannot be changed at runtime. -
isEnabled
boolean isEnabled() -
setAllowClasses
To filter stream caching of a given set of allowed/denied classes. By default, all classes that areInputStream
is allowed. -
setAllowClasses
To filter stream caching of a given set of allowed/denied classes. By default, all classes that areInputStream
is allowed. Multiple class names can be separated by comma. -
getAllowClasses
Collection<Class<?>> getAllowClasses()To filter stream caching of a given set of allowed/denied classes. By default, all classes that areInputStream
is allowed. -
setDenyClasses
To filter stream caching of a given set of allowed/denied classes. By default, all classes that areInputStream
is allowed. -
setDenyClasses
To filter stream caching of a given set of allowed/denied classes. By default, all classes that areInputStream
is allowed. Multiple class names can be separated by comma. -
getDenyClasses
Collection<Class<?>> getDenyClasses()To filter stream caching of a given set of allowed/denied classes. By default, all classes that areInputStream
is allowed. -
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
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
-
setSpoolThreshold
void setSpoolThreshold(long threshold) Threshold in bytes when overflow to disk is activated. The default threshold isStreamCache.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() -
setSpoolUsedHeapMemoryLimit
Sets what the upper bounds should be whensetSpoolUsedHeapMemoryThreshold(int)
is in use.- Parameters:
bounds
- the bounds
-
getSpoolUsedHeapMemoryLimit
StreamCachingStrategy.SpoolUsedHeapMemoryLimit getSpoolUsedHeapMemoryLimit() -
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 isIOHelper.DEFAULT_BUFFER_SIZE
-
getBufferSize
int getBufferSize() -
setSpoolCipher
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() -
setAnySpoolRules
void setAnySpoolRules(boolean any) Sets whether if just any of theStreamCachingStrategy.SpoolRule
rules returns true thenshouldSpoolCache(long)
returns true. If this option is false, then all theStreamCachingStrategy.SpoolRule
must return true. The default value is false which means that all the rules must return true. -
isAnySpoolRules
boolean isAnySpoolRules() -
getStatistics
StreamCachingStrategy.Statistics getStatistics()Gets the utilization statistics. -
addSpoolRule
Adds theStreamCachingStrategy.SpoolRule
rule to be used. -
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
Caches the body aas aStreamCache
.- Parameters:
exchange
- the exchange- Returns:
- the body cached as a
StreamCache
, or null if not possible or no need to cache the body
-
cache
Caches the body aas aStreamCache
.- Parameters:
message
- the message- Returns:
- the body cached as a
StreamCache
, or null if not possible or no need to cache the body
-
cache
Caches the value aas aStreamCache
.- Parameters:
value
- the value- Returns:
- the value cached as a
StreamCache
, or null if not possible or no need to cache
-