All Downloads are FREE. Search and download functionalities are using the official Maven repository.

de.mhus.osgi.api.cache.LocalCacheService Maven / Gradle / Ivy

There is a newer version: 7.8.0
Show newest version
package de.mhus.osgi.api.cache;

import java.util.List;
import java.util.function.Consumer;

import org.ehcache.CacheManager;
import org.ehcache.config.Builder;
import org.ehcache.config.ResourcePools;
import org.ehcache.config.builders.CacheConfigurationBuilder;
import org.ehcache.config.builders.CacheManagerBuilder;
import org.ehcache.config.builders.ResourcePoolsBuilder;
import org.osgi.framework.BundleContext;

public interface LocalCacheService {

    // ccb -> ccb.withExpiry(ExpiryPolicyBuilder.timeToLiveExpiration(Duration.ofMinutes(5)))

    CacheManagerBuilder getCacheBuilder();

    default  LocalCache createCache(
            BundleContext ownerContext,
            String name,
            Class keyType,
            Class valueType,
            int heapSize) {
        return createCache(
                ownerContext, name, keyType, valueType, ResourcePoolsBuilder.heap(heapSize), null);
    }

    default  LocalCache createCache(
            BundleContext ownerContext,
            String name,
            Class keyType,
            Class valueType,
            Builder resourcePoolsBuilder) {
        return createCache(ownerContext, name, keyType, valueType, resourcePoolsBuilder, null);
    }

     LocalCache createCache(
            BundleContext ownerContext,
            String name,
            Class keyType,
            Class valueType,
            Builder resourcePoolsBuilder,
            Consumer> configurator);

    List getCacheNames();

     LocalCache getCache(String name);
}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy