use of com.adaptris.core.cache.Cache in project interlok by adaptris.
the class RetrieveFromCacheServiceTest method testDoService_KeyNotFound.
@Test
public void testDoService_KeyNotFound() throws Exception {
AdaptrisMessage msg = createMessage("Hello World", new ArrayList<MetadataElement>());
Cache cache = createCacheInstanceForTests();
RetrieveFromCacheService service = createService();
CacheEntryEvaluator eval = new CacheEntryEvaluator();
eval.setErrorOnEmptyKey(false);
service.addCacheEntryEvaluator(eval);
try {
service.setConnection(new CacheConnection(cache));
start(service);
service.doService(msg);
} finally {
stop(service);
}
}
use of com.adaptris.core.cache.Cache in project interlok by adaptris.
the class RetrieveFromCacheServiceTest method testDoService_NullValueTranslator.
@Test
public void testDoService_NullValueTranslator() throws Exception {
AdaptrisMessage msg = createMessage("Hello World", Arrays.asList(new MetadataElement[] { new MetadataElement(SRC_METADATA_KEY, LOOKUP_VALUE) }));
Cache cache = createCacheInstanceForTests();
RetrieveFromCacheService service = createServiceForTests();
CacheEntryEvaluator eval = service.getCacheEntryEvaluators().get(0);
// we know that StaticCacheValueTranslator should throw an exception if
// we try to apply a value into the message.
eval.setValueTranslator(new StaticCacheValueTranslator("dummy value"));
try {
service.setConnection(new CacheConnection(cache));
start(service);
// Now add the TARGET DATA to the cache.
cache.put(LOOKUP_VALUE, LOOKED_UP_VALUE);
service.doService(msg);
fail("Expected a ServiceException");
} catch (ServiceException expected) {
} finally {
stop(service);
}
}
use of com.adaptris.core.cache.Cache in project interlok by adaptris.
the class RetrieveFromCacheServiceTest method testDoService_NoExceptionIfNotFound_NotFound.
@Test
public void testDoService_NoExceptionIfNotFound_NotFound() throws Exception {
AdaptrisMessage msg = createMessage("Hello World", Arrays.asList(new MetadataElement[] { new MetadataElement(SRC_METADATA_KEY, LOOKUP_VALUE) }));
Cache cache = createCacheInstanceForTests();
RetrieveFromCacheService service = createServiceForTests();
service.setExceptionIfNotFound(false);
try {
service.setConnection(new CacheConnection(cache));
start(service);
service.doService(msg);
assertFalse(msg.headersContainsKey(TARGET_METADATA_KEY));
} finally {
stop(service);
}
}
use of com.adaptris.core.cache.Cache in project interlok by adaptris.
the class RetrieveFromCacheServiceTest method testDoService.
@Test
public void testDoService() throws Exception {
AdaptrisMessage msg = createMessage("Hello World", Arrays.asList(new MetadataElement[] { new MetadataElement(SRC_METADATA_KEY, LOOKUP_VALUE) }));
Cache cache = createCacheInstanceForTests();
RetrieveFromCacheService service = createServiceForTests();
try {
service.setConnection(new CacheConnection(cache));
start(service);
// Now add the TARGET DATA to the cache.
cache.put(LOOKUP_VALUE, LOOKED_UP_VALUE);
service.doService(msg);
assertTrue(msg.headersContainsKey(TARGET_METADATA_KEY));
assertEquals(LOOKED_UP_VALUE, msg.getMetadataValue(TARGET_METADATA_KEY));
} finally {
stop(service);
}
}
use of com.adaptris.core.cache.Cache in project interlok by adaptris.
the class AddToCacheService method doService.
@Override
public void doService(AdaptrisMessage msg) throws ServiceException {
try {
Cache cache = retrieveCache();
for (CacheEntryEvaluator ceg : getCacheEntryEvaluators()) {
String key = ceg.getKey(msg);
Object value = ceg.getValue(msg);
if (key == null || value == null) {
log.warn("{} generated null values for either the key or value, not storing in cache", ceg.friendlyName());
continue;
}
if (enforceSerializable() && !(value instanceof Serializable)) {
throw new ServiceException("Cache value " + value + " should be Serializable, but is of type " + value.getClass());
}
cache.put(key, value);
}
} catch (Exception e) {
throw ExceptionHelper.wrapServiceException(e);
}
}
Aggregations