Skip to content

Commit fb520c0

Browse files
committed
update documentation
1 parent 8030b57 commit fb520c0

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

42 files changed

+596
-597
lines changed

README.MD

Lines changed: 7 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,24 +1,26 @@
11

2-
# Java Client for Stargate Data API
2+
# Java Client for Data API
33

44
[![License Apache2](https://img.shields.io/hexpm/l/plug.svg)](http://www.apache.org/licenses/LICENSE-2.0)
5-
[![Maven Central](https://maven-badges.herokuapp.com/maven-central/com.datastax.astra/astra-sdk/badge.svg)](https://maven-badges.herokuapp.com/maven-central/com.datastax.astra/astra-db-java)
6-
![Latest Release](https://img.shields.io/github/v/release/datastax/astra-db-java)
5+
[![Lines of Code](https://sonarcloud.io/api/project_badges/measure?project=clun_astra-db-java&metric=ncloc)](https://sonarcloud.io/summary/new_code?id=clun_astra-db-java)
76

87
[![Security Rating](https://sonarcloud.io/api/project_badges/measure?project=clun_astra-db-java&metric=security_rating)](https://sonarcloud.io/summary/new_code?id=clun_db-java)
9-
[![Reliability Rating](https://sonarcloud.io/api/project_badges/measure?project=clun_astra-db-java&metric=reliability_rating)](https://sonarcloud.io/summary/new_code?id=clun_astra-db-java)
108
[![Maintainability Rating](https://sonarcloud.io/api/project_badges/measure?project=clun_astra-db-java&metric=sqale_rating)](https://sonarcloud.io/summary/overall?id=clun_astra-db-java)
119
[![Vulnerabilities](https://sonarcloud.io/api/project_badges/measure?project=clun_astra-db-java&metric=vulnerabilities)](https://sonarcloud.io/summary/overall?id=clun_astra-db-java)
10+
1211
[![Bugs](https://sonarcloud.io/api/project_badges/measure?project=clun_astra-db-java&metric=bugs)](https://sonarcloud.io/summary/new_code?id=clun_astra-db-java)
12+
[![Reliability Rating](https://sonarcloud.io/api/project_badges/measure?project=clun_astra-db-java&metric=reliability_rating)](https://sonarcloud.io/summary/new_code?id=clun_astra-db-java)
1313
[![Coverage](https://sonarcloud.io/api/project_badges/measure?project=clun_astra-db-java&metric=coverage)](https://sonarcloud.io/summary/new_code?id=clun_astra-db-java)
14-
[![Lines of Code](https://sonarcloud.io/api/project_badges/measure?project=clun_astra-db-java&metric=ncloc)](https://sonarcloud.io/summary/new_code?id=clun_astra-db-java)
14+
[![Reliability Rating](https://sonarcloud.io/api/project_badges/measure?project=clun_astra-db-java&metric=reliability_rating)](https://sonarcloud.io/summary/new_code?id=clun_astra-db-java)
1515

1616
This client library provides a simplified way to interact with Data API for AstraDB or local instances. For detailed documentation, each operation comes with a detailed description and examples.
1717

1818
- [`astra-db-ts`](https://github.com/datastax/astra-db-ts) is the equivalent for typescript
1919
- [`astrapy`](https://github.com/datastax/astrapy) is the equivalent in python
2020

2121
This library is under development and not yet available in Maven Central. You can build it locally and install it in your local repository.
22+
![Latest Release](https://img.shields.io/github/v/release/datastax/astra-db-java)
23+
2224

2325
## 1. Local Installation
2426

REALEASE.MD

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,6 @@ mvn clean test jacoco:report
1616

1717
- Push to SONAR
1818
```json
19-
mvn verify org.sonarsource.scanner.maven:sonar-maven-plugin:sonar -Dsonar.projectKey=clun_astra-db-java
19+
mvn clean test jacoco:report verify org.sonarsource.scanner.maven:sonar-maven-plugin:sonar -Dsonar.projectKey=clun_astra-db-java
2020
```
2121

astra-db-java/pom.xml

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -133,6 +133,13 @@
133133
<scope>test</scope>
134134
</dependency>
135135

136+
<dependency>
137+
<groupId>com.squareup.okhttp3</groupId>
138+
<artifactId>mockwebserver</artifactId>
139+
<version>4.12.0</version>
140+
<scope>test</scope>
141+
</dependency>
142+
136143
</dependencies>
137144

138145
<!-- Client is JDK11+ -->

astra-db-java/src/main/java/com/datastax/astra/client/Collection.java

Lines changed: 76 additions & 65 deletions
Large diffs are not rendered by default.

astra-db-java/src/main/java/com/datastax/astra/client/Database.java

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -122,8 +122,12 @@ public Database(String apiEndpoint, String token, String namespace, DataAPIOptio
122122
this.namespaceName = namespace;
123123
this.token = token;
124124
this.options = options;
125-
this.databaseAdminEndpoint = apiEndpoint + "/" + options.getApiVersion();
125+
// Adding version number if needed
126+
this.databaseAdminEndpoint = apiEndpoint.endsWith(options.getApiVersion()) ?
127+
apiEndpoint :
128+
apiEndpoint + "/" + options.getApiVersion();
126129
StringBuilder dbApiEndPointBuilder = new StringBuilder(apiEndpoint);
130+
// Adding /api/json if needed for Astra.
127131
switch(options.destination) {
128132
case ASTRA:
129133
case ASTRA_TEST:

astra-db-java/src/main/java/com/datastax/astra/client/admin/AstraDBAdmin.java

Lines changed: 10 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -178,17 +178,15 @@ public boolean databaseExists(UUID id) {
178178
return devopsDbClient.findById(id.toString()).isPresent();
179179
}
180180

181-
182-
183181
/**
184182
* Create new database with a name on free tier. The database name should not exist in the tenant.
185183
*
186184
* @param name
187185
* database name
188186
* @return
189-
* database identifier
187+
* database admin object
190188
*/
191-
public UUID createDatabase(String name) {
189+
public DatabaseAdmin createDatabase(String name) {
192190
Assert.hasLength(name, "name");
193191
return createDatabase(name, FREE_TIER_CLOUD, FREE_TIER_CLOUD_REGION);
194192
}
@@ -207,9 +205,9 @@ public UUID createDatabase(String name) {
207205
* @param waitForDb
208206
* if set to true, the method is blocking
209207
* @return
210-
* database identifier
208+
* database admin object
211209
*/
212-
public UUID createDatabase(String name, CloudProviderType cloud, String cloudRegion, boolean waitForDb) {
210+
public DatabaseAdmin createDatabase(String name, CloudProviderType cloud, String cloudRegion, boolean waitForDb) {
213211
Assert.hasLength(name, "name");
214212
Assert.notNull(cloud, "cloud");
215213
Assert.hasLength(cloudRegion, "cloudRegion");
@@ -223,7 +221,7 @@ public UUID createDatabase(String name, CloudProviderType cloud, String cloudReg
223221
switch(db.getStatus()) {
224222
case ACTIVE:
225223
log.info("Database " + green("{}") + " already exists and is ACTIVE.", name);
226-
return UUID.fromString(db.getId());
224+
return getDatabaseAdmin(UUID.fromString(db.getId()));
227225
case MAINTENANCE:
228226
case INITIALIZING:
229227
case PENDING:
@@ -232,14 +230,14 @@ public UUID createDatabase(String name, CloudProviderType cloud, String cloudReg
232230
if (waitForDb) {
233231
waitForDatabase(devopsDbClient.database(db.getId()));
234232
}
235-
return UUID.fromString(db.getId());
233+
return getDatabaseAdmin(UUID.fromString(db.getId()));
236234
case HIBERNATED:
237235
log.info("Database {} is in {} state, resuming...", name, db.getStatus());
238236
resumeDb(db);
239237
if (waitForDb) {
240238
waitForDatabase(devopsDbClient.database(db.getId()));
241239
}
242-
return UUID.fromString(db.getId());
240+
return getDatabaseAdmin(UUID.fromString(db.getId()));
243241
default:
244242
throw new IllegalStateException("Database already exist but cannot be activate");
245243
}
@@ -255,7 +253,7 @@ public UUID createDatabase(String name, CloudProviderType cloud, String cloudReg
255253
if (waitForDb) {
256254
waitForDatabase(devopsDbClient.database(newDbId.toString()));
257255
}
258-
return newDbId;
256+
return getDatabaseAdmin(newDbId);
259257
}
260258

261259
/**
@@ -270,9 +268,9 @@ public UUID createDatabase(String name, CloudProviderType cloud, String cloudReg
270268
* @param cloudRegion
271269
* cloud region
272270
* @return
273-
* database identifier
271+
* database admin object
274272
*/
275-
public UUID createDatabase(String name, CloudProviderType cloud, String cloudRegion) {
273+
public DatabaseAdmin createDatabase(String name, CloudProviderType cloud, String cloudRegion) {
276274
return createDatabase(name, cloud, cloudRegion, true);
277275
}
278276

astra-db-java/src/main/java/com/datastax/astra/client/admin/AstraDBDatabaseAdmin.java

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,8 @@
2727
import com.dtsx.astra.sdk.db.exception.DatabaseNotFoundException;
2828
import com.dtsx.astra.sdk.utils.AstraEnvironment;
2929

30+
import java.util.List;
31+
import java.util.Set;
3032
import java.util.UUID;
3133
import java.util.stream.Stream;
3234

@@ -129,10 +131,10 @@ public com.datastax.astra.client.Database getDatabase(String namespaceName, Stri
129131

130132
/** {@inheritDoc} */
131133
@Override
132-
public Stream<String> listNamespaceNames() {
134+
public Set<String> listNamespaceNames() {
133135
return devopsDbClient
134136
.database(databaseId.toString())
135-
.keyspaces().findAll().stream();
137+
.keyspaces().findAll();
136138
}
137139

138140
/** {@inheritDoc} */

astra-db-java/src/main/java/com/datastax/astra/client/admin/DataAPIDatabaseAdmin.java

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -29,6 +29,8 @@
2929
import lombok.Getter;
3030
import lombok.extern.slf4j.Slf4j;
3131

32+
import java.util.Set;
33+
import java.util.stream.Collectors;
3234
import java.util.stream.Stream;
3335

3436
import static com.datastax.astra.internal.utils.AnsiUtils.green;
@@ -73,9 +75,11 @@ public DataAPIDatabaseAdmin(String apiEndpoint, String token, DataAPIOptions opt
7375

7476
/** {@inheritDoc} */
7577
@Override
76-
public Stream<String> listNamespaceNames() {
78+
public Set<String> listNamespaceNames() {
7779
Command cmd = Command.create("findNamespaces");
78-
return runCommand(cmd).getStatusKeyAsStringStream("namespaces");
80+
return runCommand(cmd)
81+
.getStatusKeyAsStringStream("namespaces")
82+
.collect(Collectors.toSet());
7983
}
8084

8185
/** {@inheritDoc} */

astra-db-java/src/main/java/com/datastax/astra/client/admin/DatabaseAdmin.java

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,8 @@
2323
import com.datastax.astra.client.Database;
2424
import com.datastax.astra.client.model.CommandRunner;
2525

26+
import java.util.List;
27+
import java.util.Set;
2628
import java.util.concurrent.CompletableFuture;
2729
import java.util.stream.Stream;
2830

@@ -78,7 +80,7 @@ public interface DatabaseAdmin {
7880
* @return A {@link Stream<String>} containing the names of all namespaces within the current database. The stream
7981
* provides a flexible and efficient means to process the namespace names according to the application's needs.
8082
*/
81-
Stream<String> listNamespaceNames();
83+
Set<String> listNamespaceNames();
8284

8385
/**
8486
* Asynchronously retrieves a stream of namespace names available in the current database. This method facilitates
@@ -105,7 +107,7 @@ public interface DatabaseAdmin {
105107
* of all namespaces within the current database. This allows for the asynchronous processing of namespace
106108
* names with the flexibility and efficiency benefits of using a stream.
107109
*/
108-
default CompletableFuture<Stream<String>> listNamespaceNamesAsync() {
110+
default CompletableFuture<Set<String>> listNamespaceNamesAsync() {
109111
return CompletableFuture.supplyAsync(this::listNamespaceNames);
110112
}
111113

@@ -252,7 +254,7 @@ default CompletableFuture<Void> createNamespaceAsync(String namespace) {
252254
* if namespace exists
253255
*/
254256
default boolean namespaceExists(String namespace) {
255-
return listNamespaceNames().anyMatch(namespace::equals);
257+
return listNamespaceNames().contains(namespace);
256258
}
257259

258260
}

astra-db-java/src/main/java/com/datastax/astra/client/exception/AlreadyExistException.java

Lines changed: 0 additions & 38 deletions
This file was deleted.

0 commit comments

Comments
 (0)