@Override public String path() { return dbURI.toString(); }
public InputStreamBulkEntityBulkExecutor(URI dbURI, RestTemplate restTemplate, ObjectMapper objectMapper) { this.restTemplate = restTemplate; this.objectMapper = objectMapper; this.bulkDocsUri = dbURI.append("_bulk_docs").toString(); }
@Override public DbInfo getDbInfo() { return restTemplate.get(dbURI.toString(), new StdResponseHandler<DbInfo>() { @Override public DbInfo success(HttpResponse hr) throws Exception { return objectMapper.readValue(hr.getContent(), DbInfo.class); } } ); }
public String buildRequestUri() { URI uri = buildUpdateHandlerRequestPath(); if (!queryParams.isEmpty()) { appendQueryParams(uri); } return uri.toString(); }
@Override public void setRevisionLimit(int limit) { restTemplate.put(dbURI.append("_revs_limit").toString(), Integer.toString(limit), VOID_RESPONSE_HANDLER); }
@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); }
public InputStreamWrapperBulkExecutor(URI dbURI, RestTemplate restTemplate, ObjectMapper objectMapper) { this.restTemplate = restTemplate; this.objectMapper = objectMapper; this.writer = new BulkDocumentWriter(objectMapper); this.bulkDocsUri = dbURI.append("_bulk_docs").toString(); }
@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 ViewResult queryView(final ViewQuery query) { Assert.notNull(query, "query cannot be null"); query.dbPath(dbURI.toString()); ResponseCallback<ViewResult> rh = new StdResponseHandler<ViewResult>() { @Override public ViewResult success(HttpResponse hr) throws Exception { return new ViewResult(objectMapper.readTree(hr.getContent()), query.isIgnoreNotFound()); } }; return executeQuery(query, rh); }
@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 String deleteAttachment(String docId, String revision, String attachmentId) { return restTemplate.delete( dbURI.append(docId).append(attachmentId).param("rev", revision) .toString(), revisionHandler).getRevision(); }
@Override public String delete(String id, String revision) { assertDocIdHasValue(id); return restTemplate.delete( dbURI.append(id).param("rev", revision).toString(), revisionHandler).getRevision(); }
@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)); }
private AttachmentInputStream getAttachment(String attachmentId, URI uri) { HttpResponse r = restTemplate.get(uri.toString()); return new AttachmentInputStream(attachmentId, r.getContent(), r.getContentType(), r.getContentLength()); }
@Override public <T> List<T> queryView(final ViewQuery query, final Class<T> type) { Assert.notNull(query, "query may not be null"); query.dbPath(dbURI.toString()); EmbeddedDocViewResponseHandler<T> rh = new EmbeddedDocViewResponseHandler<T>( type, objectMapper, query.isIgnoreNotFound()); return executeQuery(query, rh); }
@Override public StreamingChangesResult changesAsStream(ChangesCommand cmd) { if (cmd.continuous) { throw new IllegalArgumentException( "ChangesCommand may not declare continous = true while calling changes"); } ChangesCommand actualCmd = new ChangesCommand.Builder().merge(cmd) .continuous(false).build(); HttpResponse response = restTemplate.get(dbURI.append(actualCmd.toString()) .toString()); return new StreamingChangesResult(objectMapper, response); }
private HttpResponse queryForHttpResponse(ViewQuery query) { Assert.notNull(query, "query cannot be null"); query.dbPath(dbURI.toString()); return query.hasMultipleKeys() ? restTemplate.postUncached(query.buildQuery(), query.getKeysAsJson()) : restTemplate.getUncached( query.buildQuery()); }
@Override public ChangesFeed changesFeed(ChangesCommand cmd) { int heartbeat = cmd.heartbeat > 0 ? cmd.heartbeat : DEFAULT_HEARTBEAT_INTERVAL; String since = cmd.since != null ? cmd.since : getDbInfo().getUpdateSeqAsString(); ChangesCommand actualCmd = new ChangesCommand.Builder().merge(cmd) .continuous(true).heartbeat(heartbeat).since(since).build(); return new ContinuousChangesFeed(dbName, restTemplate.getUncached(dbURI.append(actualCmd.toString()).toString())); }