Hello,
I am trying to create a couchbase bucket using Java SDK 3.1. In the documentation(Java 2,7) there are examples to create bucket using the ClusterManager and BucketSettings.
Below is the way for creating bucket with java sdk 2.7:
Cluster cluster = CouchbaseCluster.create("127.0.0.1");
ClusterManager clusterManager = cluster.clusterManager("Administrator", "123456");
BucketSettings bucketSettings = new DefaultBucketSettings.Builder()
.type(BucketType.COUCHBASE)
.name("hello")
.password("")
.quota(120) // megabytes
.replicas(1)
.indexReplicas(true)
.enableFlush(true)
.build();
clusterManager.updateBucket(bucketSettings);
But after switching to Java SDK 3.1, I know ClusterManager.insertBucket
has been replaced by BucketManager.createBucket
. I am unsure as to how to use the createBucket method. I tried the below code and it gave me an error:
Cluster cluster = null;
cluster = Cluster.connect("127.0.0.1", username, password);
Bucket bucket = cluster.bucket(bucketName);
BucketManager manager = cluster.buckets();
String configJson = "{\"name\" : \"new_bucket\" , \"controllers\": {\"flush\":\"false\"}"
+ ",\"quota\":" + "{\"rawRAM\":" + 120 + "}"
+ ",\"replicaNumber\":" + 0
+ ",\"replicaIndex\":\"false\""
+ ",\"bucketType\":\"membase\""
+ ",\"conflictResolutionType\":\"seqno\""
+ ",\"evictionPolicy\":\"valueOnly\""
+ "}";
BucketSettings bucketSettings = new ObjectMapper().readerFor(BucketSettings.class).readValue(configJson);
manager.createBucket(bucketSettings);
Error:
com.couchbase.client.core.deps.com.fasterxml.jackson.databind.exc.ValueInstantiationException: Cannot construct instance of
com.couchbase.client.java.manager.bucket.BucketSettings, problem:
java.lang.NullPointerException``
It would be great if someone could help me with creating bucket through Java SDK 3.1
Thanks!