Skip to content

Commit 5e560ab

Browse files
JCBC-2199 :- improve cluster.toString()
cluster.toString() current returns something useless like com.couchbase.client.java.Cluster@138a7441. Improve this behavior, so cluster.toString() returns the same information we see in the logs for a CoreCreatedEvent. So, something like: Cluster{"clientVersion":"3.9.0-SNAPSHOT", etc...} Change-Id: Ibe4e8082e9b699798060dd543159b22527d55c68 Reviewed-on: https://review.couchbase.org/c/couchbase-jvm-clients/+/229655 Reviewed-by: David Nault <[email protected]> Tested-by: Build Bot <[email protected]>
1 parent 29ccab6 commit 5e560ab

File tree

3 files changed

+28
-0
lines changed

3 files changed

+28
-0
lines changed

java-client/src/main/java/com/couchbase/client/java/AsyncCluster.java

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -23,8 +23,10 @@
2323
import com.couchbase.client.core.api.search.CoreSearchOps;
2424
import com.couchbase.client.core.api.search.CoreSearchQuery;
2525
import com.couchbase.client.core.api.search.queries.CoreSearchRequest;
26+
import com.couchbase.client.core.cnc.Context;
2627
import com.couchbase.client.core.cnc.RequestSpan;
2728
import com.couchbase.client.core.cnc.TracingIdentifiers;
29+
import com.couchbase.client.core.deps.com.fasterxml.jackson.databind.node.ObjectNode;
2830
import com.couchbase.client.core.diagnostics.ClusterState;
2931
import com.couchbase.client.core.diagnostics.DiagnosticsResult;
3032
import com.couchbase.client.core.diagnostics.EndpointDiagnostics;
@@ -41,6 +43,7 @@
4143
import com.couchbase.client.core.error.context.ReducedAnalyticsErrorContext;
4244
import com.couchbase.client.core.error.context.ReducedQueryErrorContext;
4345
import com.couchbase.client.core.error.context.ReducedSearchErrorContext;
46+
import com.couchbase.client.core.json.Mapper;
4447
import com.couchbase.client.core.msg.analytics.AnalyticsRequest;
4548
import com.couchbase.client.core.retry.RetryStrategy;
4649
import com.couchbase.client.core.util.ClusterCleanupTask;
@@ -151,6 +154,8 @@ public class AsyncCluster {
151154
*/
152155
final CoreSearchOps searchOps;
153156

157+
final ConnectionString connectionString;
158+
154159
/**
155160
* Connect to a Couchbase cluster with a username and a password as authentication credentials.
156161
*
@@ -225,6 +230,13 @@ static OwnedOrExternal<ClusterEnvironment> extractClusterEnvironment(final Conne
225230
return env;
226231
}
227232

233+
String clusterToStringHelper(Class clusterClass) {
234+
String json = environment.get().exportAsString(Context.ExportFormat.JSON);
235+
ObjectNode jsonObject = (ObjectNode) Mapper.decodeIntoTree(json);
236+
jsonObject.put("connectionString", connectionString.original());
237+
return clusterClass.getSimpleName() + jsonObject;
238+
}
239+
228240
/**
229241
* Creates a new cluster from a {@link ClusterEnvironment}.
230242
*
@@ -236,6 +248,7 @@ static OwnedOrExternal<ClusterEnvironment> extractClusterEnvironment(final Conne
236248
final ConnectionString connectionString
237249
) {
238250
this.environment = environment;
251+
this.connectionString = connectionString;
239252
this.couchbaseOps = CoreCouchbaseOps.create(environment.get(), authenticator, connectionString);
240253
this.authenticator = authenticator;
241254
this.queryOps = couchbaseOps.queryOps();
@@ -662,4 +675,9 @@ public CompletableFuture<Void> waitUntilReady(final Duration timeout, final Wait
662675
return couchbaseOps.waitUntilReady(opts.serviceTypes(), timeout, opts.desiredState(), null);
663676
}
664677

678+
@Override
679+
public String toString() {
680+
return clusterToStringHelper(getClass());
681+
}
682+
665683
}

java-client/src/main/java/com/couchbase/client/java/Cluster.java

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -703,5 +703,10 @@ public void close() {
703703
disconnect();
704704
}
705705

706+
@Override
707+
public String toString() {
708+
return asyncCluster.clusterToStringHelper(getClass());
709+
}
710+
706711
}
707712

java-client/src/main/java/com/couchbase/client/java/ReactiveCluster.java

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -521,4 +521,9 @@ public Mono<Void> waitUntilReady(final Duration timeout, final WaitUntilReadyOpt
521521
public ReactiveTransactions transactions() {
522522
return new ReactiveTransactions(core(), environment().jsonSerializer());
523523
}
524+
525+
@Override
526+
public String toString() {
527+
return asyncCluster.clusterToStringHelper(getClass());
528+
}
524529
}

0 commit comments

Comments
 (0)