Search in sources :

Example 11 with Bucket

use of com.couchbase.client.java.Bucket in project nifi by apache.

the class TestPutCouchbaseKey method testDurabilityConstraint.

@Test
public void testDurabilityConstraint() throws Exception {
    String docId = "doc-a";
    String inFileData = "{\"key\":\"value\"}";
    byte[] inFileDataBytes = inFileData.getBytes(StandardCharsets.UTF_8);
    Bucket bucket = mock(Bucket.class);
    when(bucket.upsert(any(RawJsonDocument.class), eq(PersistTo.MASTER), eq(ReplicateTo.ONE))).thenReturn(RawJsonDocument.create(docId, inFileData));
    setupMockBucket(bucket);
    testRunner.enqueue(inFileDataBytes);
    testRunner.setProperty(DOC_ID, docId);
    testRunner.setProperty(PutCouchbaseKey.PERSIST_TO, PersistTo.MASTER.toString());
    testRunner.setProperty(PutCouchbaseKey.REPLICATE_TO, ReplicateTo.ONE.toString());
    testRunner.run();
    verify(bucket, times(1)).upsert(any(RawJsonDocument.class), eq(PersistTo.MASTER), eq(ReplicateTo.ONE));
    testRunner.assertAllFlowFilesTransferred(REL_SUCCESS);
    testRunner.assertTransferCount(REL_SUCCESS, 1);
    testRunner.assertTransferCount(REL_RETRY, 0);
    testRunner.assertTransferCount(REL_FAILURE, 0);
    MockFlowFile outFile = testRunner.getFlowFilesForRelationship(REL_SUCCESS).get(0);
    outFile.assertContentEquals(inFileData);
}
Also used : MockFlowFile(org.apache.nifi.util.MockFlowFile) Bucket(com.couchbase.client.java.Bucket) Matchers.anyString(org.mockito.Matchers.anyString) RawJsonDocument(com.couchbase.client.java.document.RawJsonDocument) Test(org.junit.Test)

Example 12 with Bucket

use of com.couchbase.client.java.Bucket in project sling by apache.

the class CouchbaseNoSqlAdapter method store.

@Override
public boolean store(NoSqlData data) {
    Bucket bucket = couchbaseClient.getBucket();
    String cacheKey = CouchbaseKey.build(data.getPath(), cacheKeyPrefix);
    JsonObject envelope = JsonObject.create();
    envelope.put(PN_PATH, data.getPath());
    envelope.put(PN_DATA, JsonObject.from(data.getProperties(MultiValueMode.LISTS)));
    // for list-children query efficiency store parent path as well
    String parentPath = ResourceUtil.getParent(data.getPath());
    if (parentPath != null) {
        envelope.put(PN_PARENT_PATH, parentPath);
    }
    JsonDocument doc = JsonDocument.create(cacheKey, envelope);
    try {
        bucket.insert(doc);
        // created
        return true;
    } catch (DocumentAlreadyExistsException ex) {
        bucket.upsert(doc);
        // updated
        return false;
    }
}
Also used : Bucket(com.couchbase.client.java.Bucket) DocumentAlreadyExistsException(com.couchbase.client.java.error.DocumentAlreadyExistsException) JsonObject(com.couchbase.client.java.document.json.JsonObject) JsonDocument(com.couchbase.client.java.document.JsonDocument)

Example 13 with Bucket

use of com.couchbase.client.java.Bucket in project sling by apache.

the class CouchbaseNoSqlAdapter method createIndexDefinitions.

@Override
public void createIndexDefinitions() {
    // make sure primary index and index on parentPath is present - ignore error if it is already present
    try {
        Bucket bucket = couchbaseClient.getBucket();
        bucket.query(N1qlQuery.simple("CREATE PRIMARY INDEX ON `" + couchbaseClient.getBucketName() + "`"));
        bucket.query(N1qlQuery.simple("CREATE INDEX " + PN_PARENT_PATH + " ON `" + couchbaseClient.getBucketName() + "`(" + PN_PARENT_PATH + ")"));
    } catch (Throwable ex) {
        log.debug("Unable to create/validate couchbase index definitions: " + ex.getMessage(), ex);
    }
}
Also used : Bucket(com.couchbase.client.java.Bucket)

Example 14 with Bucket

use of com.couchbase.client.java.Bucket in project incubator-gobblin by apache.

the class CouchbaseTestServer method testServer.

@Test
public static void testServer() throws InterruptedException, IOException {
    CouchbaseTestServer couchbaseTestServer = new CouchbaseTestServer(TestUtils.findFreePort());
    couchbaseTestServer.start();
    int port = couchbaseTestServer.getPort();
    int serverPort = couchbaseTestServer.getServerPort();
    try {
        CouchbaseEnvironment cbEnv = DefaultCouchbaseEnvironment.builder().bootstrapHttpEnabled(true).bootstrapHttpDirectPort(port).bootstrapCarrierDirectPort(serverPort).connectTimeout(TimeUnit.SECONDS.toMillis(15)).bootstrapCarrierEnabled(true).build();
        CouchbaseCluster cbCluster = CouchbaseCluster.create(cbEnv, "localhost");
        Bucket bucket = cbCluster.openBucket("default", "");
        try {
            JsonObject content = JsonObject.empty().put("name", "Michael");
            JsonDocument doc = JsonDocument.create("docId", content);
            JsonDocument inserted = bucket.insert(doc);
        } catch (Exception e) {
            Assert.fail("Should not throw exception on insert", e);
        }
    } finally {
        couchbaseTestServer.stop();
    }
}
Also used : Bucket(com.couchbase.client.java.Bucket) CouchbaseCluster(com.couchbase.client.java.CouchbaseCluster) JsonObject(com.couchbase.client.java.document.json.JsonObject) CouchbaseEnvironment(com.couchbase.client.java.env.CouchbaseEnvironment) DefaultCouchbaseEnvironment(com.couchbase.client.java.env.DefaultCouchbaseEnvironment) JsonDocument(com.couchbase.client.java.document.JsonDocument) IOException(java.io.IOException) Test(org.testng.annotations.Test)

Example 15 with Bucket

use of com.couchbase.client.java.Bucket in project components by Talend.

the class CouchbaseInputTestIT method populateBucket.

private void populateBucket() {
    CouchbaseEnvironment env = DefaultCouchbaseEnvironment.builder().socketConnectTimeout(60000).connectTimeout(60000).keepAliveInterval(60000).build();
    CouchbaseCluster cluster = CouchbaseCluster.create(env, bootstrapNodes);
    Bucket bucket = cluster.openBucket(bucketName, password);
    assertTrue(bucket.bucketManager().flush());
    JsonDocument document = JsonDocument.create("foo", JsonObject.create().put("bar", 42));
    bucket.upsert(document, PersistTo.MASTER);
    bucket.close();
    cluster.disconnect();
}
Also used : Bucket(com.couchbase.client.java.Bucket) CouchbaseCluster(com.couchbase.client.java.CouchbaseCluster) CouchbaseEnvironment(com.couchbase.client.java.env.CouchbaseEnvironment) DefaultCouchbaseEnvironment(com.couchbase.client.java.env.DefaultCouchbaseEnvironment) JsonDocument(com.couchbase.client.java.document.JsonDocument)

Aggregations

Bucket (com.couchbase.client.java.Bucket)72 Test (org.junit.Test)53 Matchers.anyString (org.mockito.Matchers.anyString)21 JsonObject (com.couchbase.client.java.document.json.JsonObject)18 PrepareForTest (org.powermock.core.classloader.annotations.PrepareForTest)16 N1qlQueryResult (com.couchbase.client.java.query.N1qlQueryResult)15 MockFlowFile (org.apache.nifi.util.MockFlowFile)15 AsyncBucket (com.couchbase.client.java.AsyncBucket)13 TimeUnit (java.util.concurrent.TimeUnit)12 CouchbaseCluster (com.couchbase.client.java.CouchbaseCluster)11 CouchbaseException (com.couchbase.client.core.CouchbaseException)9 Cluster (com.couchbase.client.java.Cluster)8 RawJsonDocument (com.couchbase.client.java.document.RawJsonDocument)8 JsonDocument (com.couchbase.client.java.document.JsonDocument)7 CouchbaseEnvironment (com.couchbase.client.java.env.CouchbaseEnvironment)7 StringSerde (org.apache.samza.serializers.StringSerde)7 HashMap (java.util.HashMap)6 JsonNode (com.fasterxml.jackson.databind.JsonNode)5 N1qlQuery (com.couchbase.client.java.query.N1qlQuery)4 N1qlQueryRow (com.couchbase.client.java.query.N1qlQueryRow)4