public ReplicationStatus replicate(ReplicationCommand cmd) { try { return restTemplate.post("/_replicate", objectMapper.writeValueAsString(cmd), new StdResponseHandler<ReplicationStatus>() { @Override public ReplicationStatus success(HttpResponse hr) throws Exception { return objectMapper.readValue(hr.getContent(), ReplicationStatus.class); } }); } catch (IOException e) { throw Exceptions.propagate(e); } }
@Override public <T> T executeQuery(ViewQuery query, ResponseCallback<T> rh) { LOG.debug("Querying CouchDb view at {}.", query); T result; if (!query.isCacheOk()) { result = query.hasMultipleKeys() ? getRestTemplate().postUncached(query.buildQuery(), query.getKeysAsJson(), rh) : getRestTemplate().getUncached(query.buildQuery(), rh); } else { result = query.hasMultipleKeys() ? getRestTemplate().post(query.buildQuery(), query.getKeysAsJson(), rh) : getRestTemplate().get(query.buildQuery(), rh); } LOG.debug("Answer from view query: {}.", result); return result; } }
@Override public List<DocumentOperationResult> executeBulk(InputStream inputStream, boolean allOrNothing) { return restTemplate.post( bulkDocsUri, new InputStreamBulkEntity(inputStream, allOrNothing), new BulkOperationResponseHandler(objectMapper)); }
@Override public void compact() { restTemplate.post(dbURI.append("_compact").toString(), "not_used", VOID_RESPONSE_HANDLER); }
@Override public void cleanupViews() { restTemplate.post(dbURI.append("_view_cleanup").toString(), "not_used", VOID_RESPONSE_HANDLER); }
@Override public List<DocumentOperationResult> executeBulk(InputStream inputStream, boolean allOrNothing) { return restTemplate.post( bulkDocsUri, writer.createInputStreamWrapper(allOrNothing, inputStream), new BulkOperationResponseHandler(objectMapper)); } }
@Override public PurgeResult purge(Map<String, List<String>> revisionsToPurge) { return restTemplate.post(dbURI.append("_purge").toString(), serializeToJson(revisionsToPurge), new StdResponseHandler<PurgeResult>() { @Override public PurgeResult success(HttpResponse hr) throws Exception { return objectMapper.readValue(hr.getContent(), PurgeResult.class); } }); }
@Override public PurgeResult purge(Map<String, List<String>> revisionsToPurge) { HttpEntity entity = createHttpEntity(revisionsToPurge); return restTemplate.post(dbURI.append("_purge").toString(), entity, new StdResponseHandler<PurgeResult>() { @Override public PurgeResult success(HttpResponse hr) throws Exception { return objectMapper.readValue(hr.getContent(), PurgeResult.class); } }); }
@Override public void ensureFullCommit() { restTemplate.post(dbURI.append("_ensure_full_commit").toString(), "", new StdResponseHandler<Void>()); }
@Override public void compactViews(String designDocumentId) { Assert.hasText(designDocumentId, "designDocumentId may not be null or empty"); restTemplate.post(dbURI.append("_compact").append(designDocumentId) .toString(), "not_used", VOID_RESPONSE_HANDLER); }
@Override public List<DocumentOperationResult> executeBulk(Collection<?> objects, boolean allOrNothing) { BulkDocumentBean<?> bulkDocumentBean = new BulkDocumentBean(objects, allOrNothing); return restTemplate.post( dbURI.append("_bulk_docs").toString(), createHttpEntity(bulkDocumentBean), new BulkOperationResponseHandler(objects, objectMapper)); }
@Override public List<DocumentOperationResult> executeBulk(Collection<?> objects, boolean allOrNothing) { BulkOperation op = getJsonSerializer().createBulkOperation(objects, allOrNothing); try { List<DocumentOperationResult> result = restTemplate.post( dbURI.append("_bulk_docs").toString(), op.getData(), new BulkOperationResponseHandler(objects, objectMapper)); op.awaitCompletion(); return result; } finally { op.close(); } }
@Override public void create(final Object o) { Assert.notNull(o, "Document may not be null"); Assert.isTrue(Documents.isNew(o), "Object must be new"); String json = serializeToJson(o); String id = Documents.getId(o); DocumentOperationResult result; if (id != null && id.length() != 0) { result = restTemplate.put(URIWithDocId(id), json, revisionHandler); } else { result = restTemplate.post(dbURI.toString(), json, revisionHandler); Documents.setId(o, result.getId()); } Documents.setRevision(o, result.getRevision()); }
@Override public void create(final Object o) { Assert.notNull(o, "Document may not be null"); Assert.isTrue(Documents.isNew(o), "Object must be new"); HttpEntity entity = createHttpEntity(o); String id = Documents.getId(o); DocumentOperationResult result; if (id != null && id.length() != 0) { result = restTemplate.put(URIWithDocId(id), entity, revisionHandler); } else { result = restTemplate.post(dbURI.toString(), entity, revisionHandler); Documents.setId(o, result.getId()); } Documents.setRevision(o, result.getRevision()); }