Skip to content

Commit c863a92

Browse files
committed
Add defaultBucket option to JDBC and url parameters
1 parent 48dd09b commit c863a92

File tree

3 files changed

+26
-2
lines changed

3 files changed

+26
-2
lines changed

driver/src/main/java/com/intellij/CouchbaseClientURI.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@ class CouchbaseClientURI {
2020
private static final String HTTPS_SCHEMA = "couchbases://";
2121

2222
private static final Set<String> JDBC_KEYS = new HashSet<>(ContainerUtil.map(
23-
Arrays.asList(USER, PASSWORD, ENABLE_SSL, VERIFY_SERVER_CERTIFICATE),
23+
Arrays.asList(USER, PASSWORD, ENABLE_SSL, VERIFY_SERVER_CERTIFICATE, DEFAULT_BUCKET),
2424
key -> key.toLowerCase(Locale.ENGLISH)));
2525

2626
private final String connectionString;
@@ -63,7 +63,7 @@ public CouchbaseClientURI(@NotNull String uri, @Nullable Properties info) {
6363
this.verifyServerCert = isTrue(getOption(info, options, VERIFY_SERVER_CERTIFICATE,
6464
VERIFY_SERVER_CERTIFICATE_DEFAULT));
6565
this.hosts = serverPart;
66-
this.defaultBucket = nsPart;
66+
this.defaultBucket = nsPart != null && !nsPart.isEmpty() ? nsPart : getOption(info, options, DEFAULT_BUCKET, null);
6767
this.connectionString = createConnectionString(serverPart, options);
6868
}
6969

driver/src/main/java/com/intellij/DriverPropertyInfoHelper.java

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -25,10 +25,13 @@ public class DriverPropertyInfoHelper {
2525
public static final String META_SAMPLING_SIZE = "meta.sampling.size";
2626
public static final int META_SAMPLING_SIZE_DEFAULT = 1000;
2727

28+
public static final String DEFAULT_BUCKET = "defaultBucket";
29+
2830

2931
public static DriverPropertyInfo[] getPropertyInfo() {
3032
ArrayList<DriverPropertyInfo> propInfos = new ArrayList<>();
3133

34+
addPropInfo(propInfos, DEFAULT_BUCKET, "", "If you are connecting to a pre Couchbase 6.5 cluster, a default bucket must be specified in order to properly initialize the connection.", null);
3235
addPropInfo(propInfos, ENABLE_SSL, ENABLE_SSL_DEFAULT, "Enable ssl.", BOOL_CHOICES);
3336
addPropInfo(propInfos, VERIFY_SERVER_CERTIFICATE, VERIFY_SERVER_CERTIFICATE_DEFAULT,
3437
"Configure a connection that uses SSL but does not verify the identity of the server.",

driver/src/test/com/intellij/CouchbaseClientURITest.java

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -125,4 +125,25 @@ public void testDefaultBucketWithOptions() {
125125
assertEquals("default", uri.getDefaultBucket());
126126
assertEquals("localhost:9042?kv.timeout=123s&retry=exponential", uri.getConnectionString());
127127
}
128+
129+
@Test
130+
public void testDefaultBucketInProperties() {
131+
Properties properties = new Properties();
132+
properties.put("defaultBucket", "default");
133+
CouchbaseClientURI uri = new CouchbaseClientURI(
134+
"jdbc:couchbase:localhost:9042",
135+
properties);
136+
assertEquals("default", uri.getDefaultBucket());
137+
assertEquals("localhost:9042", uri.getConnectionString());
138+
}
139+
140+
@Test
141+
public void testDefaultBucketInUrlParameters() {
142+
Properties properties = new Properties();
143+
CouchbaseClientURI uri = new CouchbaseClientURI(
144+
"jdbc:couchbase:localhost:9042?defaultBucket=default",
145+
properties);
146+
assertEquals("default", uri.getDefaultBucket());
147+
assertEquals("localhost:9042?", uri.getConnectionString());
148+
}
128149
}

0 commit comments

Comments
 (0)