diff --git a/spring-data-riak/src/main/java/org/springframework/data/keyvalue/riak/core/AbstractRiakTemplate.java b/spring-data-riak/src/main/java/org/springframework/data/keyvalue/riak/core/AbstractRiakTemplate.java index ebb4a7f0a..85b50f641 100644 --- a/spring-data-riak/src/main/java/org/springframework/data/keyvalue/riak/core/AbstractRiakTemplate.java +++ b/spring-data-riak/src/main/java/org/springframework/data/keyvalue/riak/core/AbstractRiakTemplate.java @@ -30,6 +30,7 @@ import org.springframework.core.convert.ConversionService; import org.springframework.core.convert.support.ConversionServiceFactory; import org.springframework.data.keyvalue.riak.DataStoreOperationException; import org.springframework.data.keyvalue.riak.convert.KeyValueStoreMetaData; +import org.springframework.data.keyvalue.riak.util.Ignore404sErrorHandler; import org.springframework.http.HttpHeaders; import org.springframework.http.HttpInputMessage; import org.springframework.http.MediaType; @@ -40,6 +41,7 @@ import org.springframework.http.converter.json.MappingJacksonHttpMessageConverte import org.springframework.util.Assert; import org.springframework.util.ClassUtils; import org.springframework.util.StringUtils; +import org.springframework.web.client.DefaultResponseErrorHandler; import org.springframework.web.client.ResourceAccessException; import org.springframework.web.client.RestTemplate; import org.springframework.web.client.support.RestGatewaySupport; @@ -205,6 +207,19 @@ public abstract class AbstractRiakTemplate extends RestGatewaySupport implements this.workerPool = workerPool; } + public void setIgnoreNotFound(boolean b) { + if (b) { + getRestTemplate().setErrorHandler(new Ignore404sErrorHandler()); + } else { + if (getRestTemplate().getErrorHandler() instanceof Ignore404sErrorHandler) { + getRestTemplate().setErrorHandler(new DefaultResponseErrorHandler()); + } + } + } + + public boolean getIgnoreNotFound() { + return (getRestTemplate().getErrorHandler() instanceof Ignore404sErrorHandler); + } /** * Get the default type to use if none can be inferred. diff --git a/spring-data-riak/src/test/groovy/org/springframework/data/keyvalue/riak/core/RiakTemplateSpec.groovy b/spring-data-riak/src/test/groovy/org/springframework/data/keyvalue/riak/core/RiakTemplateSpec.groovy index 722cde41d..e6988c764 100644 --- a/spring-data-riak/src/test/groovy/org/springframework/data/keyvalue/riak/core/RiakTemplateSpec.groovy +++ b/spring-data-riak/src/test/groovy/org/springframework/data/keyvalue/riak/core/RiakTemplateSpec.groovy @@ -22,7 +22,6 @@ import org.springframework.data.keyvalue.riak.mapreduce.JavascriptMapReduceOpera import org.springframework.data.keyvalue.riak.mapreduce.MapReduceJob import org.springframework.data.keyvalue.riak.mapreduce.RiakMapReduceJob import org.springframework.data.keyvalue.riak.mapreduce.RiakMapReducePhase -import org.springframework.data.keyvalue.riak.util.Ignore404sErrorHandler import spock.lang.Shared import spock.lang.Specification @@ -42,7 +41,7 @@ class RiakTemplateSpec extends Specification { RiakQosParameters qos = new RiakQosParameters() qos.setDurableWriteThreshold("all") riak.setDefaultQosParameters(qos) - riak.getRestTemplate().setErrorHandler(new Ignore404sErrorHandler()) + riak.ignoreNotFound = true if (!riak.get("status", "")) { p = "$riakBin start".execute() diff --git a/spring-data-riak/src/test/resources/org/springframework/data/AsyncRiakTemplateTests.xml b/spring-data-riak/src/test/resources/org/springframework/data/AsyncRiakTemplateTests.xml index 86e08abe5..7fab17ab0 100644 --- a/spring-data-riak/src/test/resources/org/springframework/data/AsyncRiakTemplateTests.xml +++ b/spring-data-riak/src/test/resources/org/springframework/data/AsyncRiakTemplateTests.xml @@ -27,8 +27,8 @@ - diff --git a/spring-data-riak/template.mf b/spring-data-riak/template.mf index 5ca4133ed..a7eae64c5 100644 --- a/spring-data-riak/template.mf +++ b/spring-data-riak/template.mf @@ -20,7 +20,6 @@ Import-Template: org.springframework.data.document.*;version="[1.0.0, 2.0.0)", org.aopalliance.*;version="[1.0.0, 2.0.0)";resolution:=optional, org.apache.commons.logging.*;version="[1.1.1, 2.0.0)", - org.slf4j.*;version="[1.5.10, 2.0.0)", org.w3c.dom.*;version="0", org.codehaus.jackson.*;version="[1.5.6, 1.5.6)", org.codehaus.jackson.map.*;version="[1.5.6, 1.5.6)",