List of usage examples for org.springframework.http HttpInputMessage HttpInputMessage
HttpInputMessage
From source file:org.geoserver.opensearch.rest.AbstractOpenSearchController.java
@SuppressWarnings("unchecked") protected <T> T parseJSON(Class<T> clazz, byte[] rawData) throws IOException { T links = (T) jsonConverter.read(clazz, new HttpInputMessage() { @Override/*from w w w. j a v a 2 s.c o m*/ public HttpHeaders getHeaders() { return new HttpHeaders(); } @Override public InputStream getBody() throws IOException { return new ByteArrayInputStream(rawData); } }); return links; }
From source file:org.springframework.data.keyvalue.riak.core.AbstractRiakTemplate.java
@SuppressWarnings({ "unchecked" }) protected <T> RiakValue<T> extractValue(final ResponseEntity<?> response, Class<?> origType, Class<T> requiredType) throws IOException { if (response.hasBody()) { RiakMetaData meta = extractMetaData(response.getHeaders()); Object o = response.getBody(); if (!origType.equals(requiredType)) { if (conversionService.canConvert(origType, requiredType)) { o = conversionService.convert(o, requiredType); } else { if (o instanceof byte[] || o instanceof String) { // Peek inside, see if it's a string of something we recognize String s = (o instanceof byte[] ? new String((byte[]) o) : (String) o); if (s.charAt(0) == '{' || s.charAt(0) == '[') { // Looks like it might be a JSON string. Use the JSON converter for (HttpMessageConverter conv : getRestTemplate().getMessageConverters()) { if (conv instanceof MappingJacksonHttpMessageConverter) { o = conv.read(requiredType, new HttpInputMessage() { public InputStream getBody() throws IOException { Object body = response.getBody(); return new ByteArrayInputStream((body instanceof byte[] ? (byte[]) body : ((String) body).getBytes())); }/*w w w. j ava 2s .c o m*/ public HttpHeaders getHeaders() { return response.getHeaders(); } }); break; } } } } else { throw new DataStoreOperationException( "Cannot convert object of type " + origType + " to type " + requiredType); } } } return new RiakValue<T>((T) o, meta); } return null; }