@Override protected <K, V> Store<K, V> wrap(Store<K, V> store, Store.Configuration<K, V> storeConfig, ServiceConfiguration<?>... serviceConfigs) { WriteBehindConfiguration writeBehindConfiguration = findSingletonAmongst(WriteBehindConfiguration.class, (Object[]) serviceConfigs); if(writeBehindConfiguration == null) { return new LocalLoaderWriterStore<>(store, storeConfig.getCacheLoaderWriter(), storeConfig.useLoaderInAtomics(), storeConfig.getExpiry()); } else { CacheLoaderWriter<? super K, V> writeBehindLoaderWriter = writeBehindProvider.createWriteBehindLoaderWriter(storeConfig.getCacheLoaderWriter(), writeBehindConfiguration); return new LocalWriteBehindLoaderWriterStore<>(store, writeBehindLoaderWriter, storeConfig.useLoaderInAtomics(), storeConfig.getExpiry()); } }
@Test public void testWriteBehindWithoutCacheLoaderWriter() { expectedEx.expect(NullPointerException.class); expectedEx.expectMessage("WriteBehind requires a non null CacheLoaderWriter"); WriteBehindProviderFactory factory = new WriteBehindProviderFactory(); factory.create(null).createWriteBehindLoaderWriter(null, null); }
} else { final WriteBehindProvider factory = serviceLocator.getService(WriteBehindProvider.class); decorator = factory.createWriteBehindLoaderWriter(loaderWriter, writeBehindConfiguration); if(decorator != null) { lifeCycledList.add(new LifeCycledAdapter() {