Search in sources :

Example 16 with FF4jCacheProxy

use of org.ff4j.cache.FF4jCacheProxy in project ff4j by ff4j.

the class PropertyStoreStepDef method the_property_store_is_cached.

@Given("^the property store is cached$")
public void the_property_store_is_cached() throws Throwable {
    FF4jCacheProxy proxy = new FF4jCacheProxy(ff4j.getFeatureStore(), ff4j.getPropertiesStore(), new InMemoryCacheManager());
    ff4j.setPropertiesStore(proxy);
    ff4j.setFeatureStore(proxy);
}
Also used : InMemoryCacheManager(org.ff4j.cache.InMemoryCacheManager) FF4jCacheProxy(org.ff4j.cache.FF4jCacheProxy) Given(cucumber.api.java.en.Given)

Example 17 with FF4jCacheProxy

use of org.ff4j.cache.FF4jCacheProxy in project ff4j by ff4j.

the class CacheProxyTest method testCacheProxyNullTriggerException.

@Test(expected = IllegalArgumentException.class)
public void testCacheProxyNullTriggerException() {
    FF4jCacheProxy proxy = new FF4jCacheProxy();
    proxy.getTargetFeatureStore();
}
Also used : FF4jCacheProxy(org.ff4j.cache.FF4jCacheProxy) Test(org.junit.Test)

Example 18 with FF4jCacheProxy

use of org.ff4j.cache.FF4jCacheProxy in project ff4j by ff4j.

the class CacheProxyTest method testCacheProxyManagerProperty.

@Test
public void testCacheProxyManagerProperty() {
    FF4jCacheProxy proxy = new FF4jCacheProxy();
    proxy.setTargetPropertyStore(new InMemoryPropertyStore());
    proxy.setTargetFeatureStore(new InMemoryFeatureStore());
    proxy.setCacheManager(new InMemoryCacheManager());
    Assert.assertTrue(proxy.isEmpty());
    proxy.create(new Feature("a"));
    Assert.assertFalse(proxy.isEmpty());
    proxy.createProperty(new PropertyString("p1", "v1"));
    Property<?> p1 = proxy.readProperty("p1");
    proxy.readProperty("p1");
    proxy.getTargetPropertyStore().createProperty(new PropertyString("p2"));
    proxy.readProperty("p2");
    proxy.updateProperty("p1", "v2");
    proxy.updateProperty(p1);
    Assert.assertFalse(proxy.isEmpty());
    Assert.assertFalse(proxy.listPropertyNames().isEmpty());
    proxy.deleteProperty("p1");
    proxy.clear();
    Set<Property<?>> setOfProperty = new HashSet<Property<?>>();
    setOfProperty.add(new PropertyLogLevel("a", LogLevel.INFO));
    setOfProperty.add(new PropertyLogLevel("titi1", LogLevel.INFO));
    proxy.importProperties(setOfProperty);
    // Already in cache, but not same value
    proxy.createProperty(new PropertyString("cacheNStore", "cacheNStore"));
    proxy.readProperty("cacheNStore", p1);
    // Not in cache, but in store, but not same default value
    proxy.getTargetPropertyStore().createProperty(new PropertyString("p4", "v4"));
    proxy.readProperty("p1", p1);
    proxy.readProperty("p1", p1);
    // Nowhere, return default
    proxy.readProperty("p2", new PropertyString("p2"));
    proxy.readProperty("p1", new PropertyString("p3"));
}
Also used : PropertyLogLevel(org.ff4j.property.PropertyLogLevel) PropertyString(org.ff4j.property.PropertyString) InMemoryPropertyStore(org.ff4j.property.store.InMemoryPropertyStore) InMemoryCacheManager(org.ff4j.cache.InMemoryCacheManager) InMemoryFeatureStore(org.ff4j.store.InMemoryFeatureStore) FF4jCacheProxy(org.ff4j.cache.FF4jCacheProxy) Feature(org.ff4j.core.Feature) Property(org.ff4j.property.Property) HashSet(java.util.HashSet) Test(org.junit.Test)

Example 19 with FF4jCacheProxy

use of org.ff4j.cache.FF4jCacheProxy in project ff4j by ff4j.

the class CacheProxyWithPollingTest method testStartCacheProxy.

@Test(expected = IllegalStateException.class)
public void testStartCacheProxy() {
    FF4jCacheProxy proxy = new FF4jCacheProxy();
    proxy.startPolling(100);
}
Also used : FF4jCacheProxy(org.ff4j.cache.FF4jCacheProxy) Test(org.junit.Test)

Example 20 with FF4jCacheProxy

use of org.ff4j.cache.FF4jCacheProxy in project ff4j by ff4j.

the class JsonUtils method cacheJson.

/**
 * Cache JSON expression for a store.
 *
 * @param store
 *      current store
 * @return
 *      cache expression
 */
public static final String cacheJson(Object store) {
    StringBuilder sb = new StringBuilder();
    if (store instanceof FF4jCacheProxy) {
        FF4jCacheProxy cacheProxy = (FF4jCacheProxy) store;
        sb.append(",\"cached\":true");
        sb.append(",\"cacheProvider\":\"" + cacheProxy.getCacheProvider() + "\"");
        sb.append(",\"cacheStore\":\"" + cacheProxy.getCachedTargetStore() + "\"");
    } else {
        sb.append(",\"cached\":false");
    }
    return sb.toString();
}
Also used : FF4jCacheProxy(org.ff4j.cache.FF4jCacheProxy)

Aggregations

FF4jCacheProxy (org.ff4j.cache.FF4jCacheProxy)21 InMemoryCacheManager (org.ff4j.cache.InMemoryCacheManager)9 Test (org.junit.Test)9 Given (cucumber.api.java.en.Given)5 InMemoryFeatureStore (org.ff4j.store.InMemoryFeatureStore)5 PropertyString (org.ff4j.property.PropertyString)3 InMemoryPropertyStore (org.ff4j.property.store.InMemoryPropertyStore)3 ApiOperation (io.swagger.annotations.ApiOperation)2 ApiResponses (io.swagger.annotations.ApiResponses)2 HashSet (java.util.HashSet)2 POST (javax.ws.rs.POST)2 Path (javax.ws.rs.Path)2 Produces (javax.ws.rs.Produces)2 FF4JCacheManager (org.ff4j.cache.FF4JCacheManager)2 Feature (org.ff4j.core.Feature)2 FeatureStore (org.ff4j.core.FeatureStore)2 Property (org.ff4j.property.Property)2 FileItem (org.apache.commons.fileupload.FileItem)1 DiskFileItemFactory (org.apache.commons.fileupload.disk.DiskFileItemFactory)1 ServletFileUpload (org.apache.commons.fileupload.servlet.ServletFileUpload)1