code
docs
tests
EntityStore cache backed by EhCache.
Table 63. Artifact
Group ID | Artifact ID | Version |
---|---|---|
org.apache.polygene.extensions | org.apache.polygene.extension.cache-ehcache | 3.0.0 |
Not all EntityStore implementations use the Cache extension, so check the implementation details of the EntityStore whether the cache extension can bring any benefits or not.
Assembly is done using the provided Assembler:
public void assemble( ModuleAssembly module ) { [...snip...] new EhCacheAssembler() .withConfig( confModule, Visibility.layer ) .assemble( module ); }
Here are the configuration properties for the EhCache EntityStore Cache:
public interface EhCacheConfiguration { /** * Heap tier size. * * Default to 1MB, you may want to change this. * * @return Heap tier size */ @UseDefaults( "1" ) Property<Long> heapSize(); /** * Heap tier size unit. * * @return Heap tier size unit */ @OneOf( { "B", "KB", "MB", "GB", "TB", "PB" } ) @UseDefaults( "MB" ) Property<String> heapUnit(); /** * Optional off-heap tier size. * * @return Optional off-heap tier size */ @Optional Property<Long> offHeapSize(); /** * Off-heap tier size unit. * * @return Off-heap tier size unit */ @OneOf( { "B", "KB", "MB", "GB", "TB", "PB" } ) @UseDefaults( "MB" ) Property<String> offHeapUnit(); /** * Optional disk tier size. * * @return Optional disk tier size */ @Optional Property<Long> diskSize(); /** * Disk tier size unit. * * @return Disk tier size unit */ @OneOf( { "B", "KB", "MB", "GB", "TB", "PB" } ) @UseDefaults( "MB" ) Property<String> diskUnit(); /** * If the disk tier is persistent or not. * * @return If the disk tier is persistent or not */ @UseDefaults Property<Boolean> diskPersistent(); /** * Maximum size of cached objects. * * @return Maximum size of cached objects */ @Optional Property<Long> maxObjectSize(); /** * Unit for maximum size of cached objects. * * @return Unit for maximum size of cached objects */ @OneOf( { "B", "KB", "MB", "GB", "TB", "PB" } ) @UseDefaults( "MB" ) Property<String> maxObjectSizeUnit(); /** * Maximum cached object graph depth. * * @return Maximum cached object graph depth */ @Optional Property<Long> maxObjectGraphDepth(); /** * Expiry policy. * * @return Expiry policy */ @OneOf( { "NONE", "TIME_TO_IDLE", "TIME_TO_LIVE" } ) @UseDefaults( "NONE" ) Property<String> expiry(); /** * Expiry length. * * @return Expiry length */ @Optional Property<Long> expiryLength(); /** * Expiry time unit. * * @return Expiry time unit */ @OneOf( { "MILLISECONDS", "SECONDS", "MINUTES", "HOURS", "DAYS" } ) @UseDefaults( "SECONDS" ) Property<String> expiryTimeUnit(); }
Cache overflow to disk may be configured using the FileConfig Library.
If the FileConfig library is not in use, then it defaults to a temporary directory in java.io.tmpdir
.