diff --git a/sdk/cosmos/azure-cosmos-benchmark/src/main/java/com/azure/cosmos/benchmark/AsynReadWithMultipleClients.java b/sdk/cosmos/azure-cosmos-benchmark/src/main/java/com/azure/cosmos/benchmark/AsynReadWithMultipleClients.java index 6edebd20e2f9..a846e573be16 100644 --- a/sdk/cosmos/azure-cosmos-benchmark/src/main/java/com/azure/cosmos/benchmark/AsynReadWithMultipleClients.java +++ b/sdk/cosmos/azure-cosmos-benchmark/src/main/java/com/azure/cosmos/benchmark/AsynReadWithMultipleClients.java @@ -256,15 +256,17 @@ private void createClients() { } try { - cosmosAsyncContainer = cosmosAsyncDatabase.getContainer(this.configuration.getCollectionId()).read().block().getContainer(); + cosmosAsyncContainer = cosmosAsyncDatabase.getContainer(this.configuration.getCollectionId()); + cosmosAsyncContainer.read().block(); } catch (CosmosException e) { if (e.getStatusCode() == HttpConstants.StatusCodes.NOTFOUND) { - cosmosAsyncContainer = - cosmosAsyncDatabase.createContainer( - this.configuration.getCollectionId(), - Configuration.DEFAULT_PARTITION_KEY_PATH, - ThroughputProperties.createManualThroughput(this.configuration.getThroughput()) - ).block().getContainer(); + cosmosAsyncDatabase.createContainer( + this.configuration.getCollectionId(), + Configuration.DEFAULT_PARTITION_KEY_PATH, + ThroughputProperties.createManualThroughput(this.configuration.getThroughput()) + ).block(); + + cosmosAsyncContainer = cosmosAsyncDatabase.getContainer(this.configuration.getCollectionId()); logger.info("Collection {} is created for this test on host {}", this.configuration.getCollectionId(), endpoint); if(!databaseCreated) { collectionListToClear.add(cosmosAsyncContainer); diff --git a/sdk/cosmos/azure-cosmos-benchmark/src/main/java/com/azure/cosmos/benchmark/AsyncBenchmark.java b/sdk/cosmos/azure-cosmos-benchmark/src/main/java/com/azure/cosmos/benchmark/AsyncBenchmark.java index d4925db34ac0..1355756dd704 100644 --- a/sdk/cosmos/azure-cosmos-benchmark/src/main/java/com/azure/cosmos/benchmark/AsyncBenchmark.java +++ b/sdk/cosmos/azure-cosmos-benchmark/src/main/java/com/azure/cosmos/benchmark/AsyncBenchmark.java @@ -99,18 +99,21 @@ abstract class AsyncBenchmark { } try { - cosmosAsyncContainer = cosmosAsyncDatabase.getContainer( - this.configuration.getCollectionId() - ).read().doOnError(error -> + cosmosAsyncContainer = cosmosAsyncDatabase.getContainer(this.configuration.getCollectionId()); + + cosmosAsyncContainer.read().doOnError(error -> logger.error("Database {} creation failed due to ", this.configuration.getDatabaseId(), error) - ).block().getContainer(); + ).block(); + } catch (CosmosException e) { if (e.getStatusCode() == HttpConstants.StatusCodes.NOTFOUND) { - cosmosAsyncContainer = cosmosAsyncDatabase.createContainer( + cosmosAsyncDatabase.createContainer( this.configuration.getCollectionId(), Configuration.DEFAULT_PARTITION_KEY_PATH, ThroughputProperties.createManualThroughput(this.configuration.getThroughput()) - ).block().getContainer(); + ).block(); + + cosmosAsyncContainer = cosmosAsyncDatabase.getContainer(this.configuration.getCollectionId()); logger.info("Collection {} is created for this test", this.configuration.getCollectionId()); collectionCreated = true; } else { diff --git a/sdk/cosmos/azure-cosmos-benchmark/src/main/java/com/azure/cosmos/benchmark/SyncBenchmark.java b/sdk/cosmos/azure-cosmos-benchmark/src/main/java/com/azure/cosmos/benchmark/SyncBenchmark.java index caa626b8a3a6..5f40d830cd62 100644 --- a/sdk/cosmos/azure-cosmos-benchmark/src/main/java/com/azure/cosmos/benchmark/SyncBenchmark.java +++ b/sdk/cosmos/azure-cosmos-benchmark/src/main/java/com/azure/cosmos/benchmark/SyncBenchmark.java @@ -131,13 +131,14 @@ public T apply(T o, Throwable throwable) { } try { - cosmosContainer = cosmosDatabase.getContainer(this.configuration.getCollectionId()).read().getContainer(); + cosmosContainer = cosmosDatabase.getContainer(this.configuration.getCollectionId()); + cosmosContainer.read(); } catch (CosmosException e) { if (e.getStatusCode() == HttpConstants.StatusCodes.NOTFOUND) { - cosmosContainer = cosmosDatabase.createContainer(this.configuration.getCollectionId(), + cosmosDatabase.createContainer(this.configuration.getCollectionId(), Configuration.DEFAULT_PARTITION_KEY_PATH, - ThroughputProperties.createManualThroughput(this.configuration.getThroughput())) - .getContainer(); + ThroughputProperties.createManualThroughput(this.configuration.getThroughput())); + cosmosContainer = cosmosDatabase.getContainer(this.configuration.getCollectionId()); logger.info("Collection {} is created for this test", this.configuration.getCollectionId()); collectionCreated = true; } else { diff --git a/sdk/cosmos/azure-cosmos-examples/src/main/java/com/azure/cosmos/examples/BasicDemo.java b/sdk/cosmos/azure-cosmos-examples/src/main/java/com/azure/cosmos/examples/BasicDemo.java index 0c7bfe64ac6b..94391cc02dd7 100644 --- a/sdk/cosmos/azure-cosmos-examples/src/main/java/com/azure/cosmos/examples/BasicDemo.java +++ b/sdk/cosmos/azure-cosmos-examples/src/main/java/com/azure/cosmos/examples/BasicDemo.java @@ -5,6 +5,7 @@ import com.azure.cosmos.CosmosAsyncClient; import com.azure.cosmos.CosmosAsyncContainer; import com.azure.cosmos.CosmosAsyncDatabase; +import com.azure.cosmos.models.CosmosAsyncDatabaseResponse; import com.azure.cosmos.models.CosmosAsyncItemResponse; import com.azure.cosmos.CosmosClientBuilder; import com.azure.cosmos.CosmosException; @@ -98,12 +99,13 @@ private void createAndReplaceItem() { } private void createDbAndContainerBlocking() { + client.createDatabaseIfNotExists(DATABASE_NAME) - .doOnSuccess(cosmosDatabaseResponse -> log("Database: " + cosmosDatabaseResponse.getDatabase().getId())) + .doOnSuccess(cosmosDatabaseResponse -> log("Database: " + DATABASE_NAME)) .flatMap(dbResponse -> dbResponse.getDatabase() - .createContainerIfNotExists(new CosmosContainerProperties(CONTAINER_NAME, - "/country"))) - .doOnSuccess(cosmosContainerResponse -> log("Container: " + cosmosContainerResponse.getContainer().getId())) + .createContainerIfNotExists(new CosmosContainerProperties(CONTAINER_NAME, + "/country"))) + .doOnSuccess(cosmosContainerResponse -> log("Container: " + CONTAINER_NAME)) .doOnError(throwable -> log(throwable.getMessage())) .publishOn(Schedulers.elastic()) .block(); diff --git a/sdk/cosmos/azure-cosmos-examples/src/main/java/com/azure/cosmos/examples/ChangeFeed/SampleChangeFeedProcessor.java b/sdk/cosmos/azure-cosmos-examples/src/main/java/com/azure/cosmos/examples/ChangeFeed/SampleChangeFeedProcessor.java index 9016afd3219d..7955e3ac5dd7 100644 --- a/sdk/cosmos/azure-cosmos-examples/src/main/java/com/azure/cosmos/examples/ChangeFeed/SampleChangeFeedProcessor.java +++ b/sdk/cosmos/azure-cosmos-examples/src/main/java/com/azure/cosmos/examples/ChangeFeed/SampleChangeFeedProcessor.java @@ -6,7 +6,7 @@ import com.azure.cosmos.DirectConnectionConfig; import com.azure.cosmos.ConsistencyLevel; import com.azure.cosmos.CosmosAsyncContainer; -import com.azure.cosmos.models.CosmosAsyncContainerResponse; +import com.azure.cosmos.models.CosmosContainerResponse; import com.azure.cosmos.CosmosAsyncDatabase; import com.azure.cosmos.CosmosClientBuilder; import com.azure.cosmos.CosmosException; @@ -137,7 +137,7 @@ public static void deleteDatabase(CosmosAsyncDatabase cosmosDatabase) { public static CosmosAsyncContainer createNewCollection(CosmosAsyncClient client, String databaseName, String collectionName) { CosmosAsyncDatabase databaseLink = client.getDatabase(databaseName); CosmosAsyncContainer collectionLink = databaseLink.getContainer(collectionName); - CosmosAsyncContainerResponse containerResponse = null; + CosmosContainerResponse containerResponse = null; try { containerResponse = collectionLink.read().block(); @@ -167,13 +167,13 @@ public static CosmosAsyncContainer createNewCollection(CosmosAsyncClient client, throw new RuntimeException(String.format("Failed to create collection %s in database %s.", collectionName, databaseName)); } - return containerResponse.getContainer(); + return databaseLink.getContainer(containerSettings.getId()); } public static CosmosAsyncContainer createNewLeaseCollection(CosmosAsyncClient client, String databaseName, String leaseCollectionName) { CosmosAsyncDatabase databaseLink = client.getDatabase(databaseName); CosmosAsyncContainer leaseCollectionLink = databaseLink.getContainer(leaseCollectionName); - CosmosAsyncContainerResponse leaseContainerResponse = null; + CosmosContainerResponse leaseContainerResponse = null; try { leaseContainerResponse = leaseCollectionLink.read().block(); @@ -208,7 +208,7 @@ public static CosmosAsyncContainer createNewLeaseCollection(CosmosAsyncClient cl throw new RuntimeException(String.format("Failed to create collection %s in database %s.", leaseCollectionName, databaseName)); } - return leaseContainerResponse.getContainer(); + return databaseLink.getContainer(containerSettings.getId()); } public static void createNewDocuments(CosmosAsyncContainer containerClient, int count, Duration delay) { diff --git a/sdk/cosmos/azure-cosmos-examples/src/main/java/com/azure/cosmos/examples/HelloWorldDemo.java b/sdk/cosmos/azure-cosmos-examples/src/main/java/com/azure/cosmos/examples/HelloWorldDemo.java index cc42507f1c77..ca79a73be62f 100644 --- a/sdk/cosmos/azure-cosmos-examples/src/main/java/com/azure/cosmos/examples/HelloWorldDemo.java +++ b/sdk/cosmos/azure-cosmos-examples/src/main/java/com/azure/cosmos/examples/HelloWorldDemo.java @@ -4,11 +4,15 @@ import com.azure.cosmos.CosmosAsyncClient; import com.azure.cosmos.CosmosAsyncContainer; +import com.azure.cosmos.CosmosAsyncDatabase; import com.azure.cosmos.CosmosClientBuilder; import com.azure.cosmos.models.PartitionKey; import reactor.core.publisher.Mono; public class HelloWorldDemo { + private static final String DATABASE_NAME = "contoso-travel"; + private static final String CONTAINER_NAME = "passengers"; + public static void main(String[] args) { new HelloWorldDemo().runDemo(); } @@ -23,12 +27,12 @@ void runDemo() { // Get a reference to the container // This will create (or read) a database and its container. - CosmosAsyncContainer container = client.createDatabaseIfNotExists("contoso-travel") + CosmosAsyncContainer container = client.createDatabaseIfNotExists(DATABASE_NAME) // TIP: Our APIs are Reactor Core based, so try to chain your calls .flatMap(response -> response.getDatabase() - .createContainerIfNotExists("passengers", "/id")) - .flatMap(response -> Mono.just(response.getContainer())) - .block(); // Blocking for demo purposes (avoid doing this in production unless you must) + .createContainerIfNotExists(CONTAINER_NAME, "/id")) + .flatMap(response -> Mono.just(client.getDatabase(DATABASE_NAME).getContainer(CONTAINER_NAME))) + .block(); // Create an item container.createItem(new Passenger("carla.davis@outlook.com", "Carla Davis", "SEA", "IND")) diff --git a/sdk/cosmos/azure-cosmos/src/main/java/com/azure/cosmos/BridgeInternal.java b/sdk/cosmos/azure-cosmos/src/main/java/com/azure/cosmos/BridgeInternal.java index 8da915d6a60e..afcd24c3e92c 100644 --- a/sdk/cosmos/azure-cosmos/src/main/java/com/azure/cosmos/BridgeInternal.java +++ b/sdk/cosmos/azure-cosmos/src/main/java/com/azure/cosmos/BridgeInternal.java @@ -482,11 +482,6 @@ public static CosmosAsyncUser createCosmosAsyncUser(String id, CosmosAsyncDataba return new CosmosAsyncUser(id, database); } - @Warning(value = INTERNAL_USE_ONLY_WARNING) - public static CosmosContainer createCosmosContainer(String id, CosmosDatabase database, CosmosAsyncContainer container) { - return new CosmosContainer(id, database, container); - } - @Warning(value = INTERNAL_USE_ONLY_WARNING) public static CosmosDatabase createCosmosDatabase(String id, CosmosClient client, CosmosAsyncDatabase database) { return new CosmosDatabase(id, client, database); diff --git a/sdk/cosmos/azure-cosmos/src/main/java/com/azure/cosmos/CosmosAsyncContainer.java b/sdk/cosmos/azure-cosmos/src/main/java/com/azure/cosmos/CosmosAsyncContainer.java index fd57de25e666..f59c77836b68 100644 --- a/sdk/cosmos/azure-cosmos/src/main/java/com/azure/cosmos/CosmosAsyncContainer.java +++ b/sdk/cosmos/azure-cosmos/src/main/java/com/azure/cosmos/CosmosAsyncContainer.java @@ -11,7 +11,7 @@ import com.azure.cosmos.implementation.RequestOptions; import com.azure.cosmos.implementation.Utils; import com.azure.cosmos.implementation.query.QueryInfo; -import com.azure.cosmos.models.CosmosAsyncContainerResponse; +import com.azure.cosmos.models.CosmosContainerResponse; import com.azure.cosmos.models.CosmosAsyncItemResponse; import com.azure.cosmos.models.CosmosConflictProperties; import com.azure.cosmos.models.CosmosContainerProperties; @@ -70,7 +70,7 @@ public String getId() { * @return an {@link Mono} containing the single Cosmos container response with * the read container or an error. */ - public Mono read() { + public Mono read() { return read(new CosmosContainerRequestOptions()); } @@ -85,12 +85,12 @@ public Mono read() { * @return an {@link Mono} containing the single Cosmos container response with * the read container or an error. */ - public Mono read(CosmosContainerRequestOptions options) { + public Mono read(CosmosContainerRequestOptions options) { if (options == null) { options = new CosmosContainerRequestOptions(); } return database.getDocClientWrapper().readCollection(getLink(), ModelBridgeInternal.toRequestOptions(options)) - .map(response -> ModelBridgeInternal.createCosmosAsyncContainerResponse(response, database)).single(); + .map(response -> ModelBridgeInternal.createCosmosContainerResponse(response, database)).single(); } /** @@ -104,12 +104,12 @@ public Mono read(CosmosContainerRequestOptions opt * @return an {@link Mono} containing the single Cosmos container response for * the deleted database or an error. */ - public Mono delete(CosmosContainerRequestOptions options) { + public Mono delete(CosmosContainerRequestOptions options) { if (options == null) { options = new CosmosContainerRequestOptions(); } return database.getDocClientWrapper().deleteCollection(getLink(), ModelBridgeInternal.toRequestOptions(options)) - .map(response -> ModelBridgeInternal.createCosmosAsyncContainerResponse(response, database)).single(); + .map(response -> ModelBridgeInternal.createCosmosContainerResponse(response, database)).single(); } /** @@ -122,7 +122,7 @@ public Mono delete(CosmosContainerRequestOptions o * @return an {@link Mono} containing the single Cosmos container response for * the deleted container or an error. */ - public Mono delete() { + public Mono delete() { return delete(new CosmosContainerRequestOptions()); } @@ -138,7 +138,7 @@ public Mono delete() { * @return an {@link Mono} containing the single Cosmos container response with * the replaced container properties or an error. */ - public Mono replace(CosmosContainerProperties containerProperties) { + public Mono replace(CosmosContainerProperties containerProperties) { return replace(containerProperties, null); } @@ -155,7 +155,7 @@ public Mono replace(CosmosContainerProperties cont * @return an {@link Mono} containing the single Cosmos container response with * the replaced container properties or an error. */ - public Mono replace( + public Mono replace( CosmosContainerProperties containerProperties, CosmosContainerRequestOptions options) { if (options == null) { @@ -163,7 +163,7 @@ public Mono replace( } return database.getDocClientWrapper() .replaceCollection(ModelBridgeInternal.getV2Collection(containerProperties), ModelBridgeInternal.toRequestOptions(options)) - .map(response -> ModelBridgeInternal.createCosmosAsyncContainerResponse(response, database)).single(); + .map(response -> ModelBridgeInternal.createCosmosContainerResponse(response, database)).single(); } /* CosmosAsyncItem operations */ diff --git a/sdk/cosmos/azure-cosmos/src/main/java/com/azure/cosmos/CosmosAsyncDatabase.java b/sdk/cosmos/azure-cosmos/src/main/java/com/azure/cosmos/CosmosAsyncDatabase.java index a9c54ef3fcb9..dcc8690b9dec 100644 --- a/sdk/cosmos/azure-cosmos/src/main/java/com/azure/cosmos/CosmosAsyncDatabase.java +++ b/sdk/cosmos/azure-cosmos/src/main/java/com/azure/cosmos/CosmosAsyncDatabase.java @@ -6,7 +6,7 @@ import com.azure.cosmos.implementation.HttpConstants; import com.azure.cosmos.implementation.Offer; import com.azure.cosmos.implementation.Paths; -import com.azure.cosmos.models.CosmosAsyncContainerResponse; +import com.azure.cosmos.models.CosmosContainerResponse; import com.azure.cosmos.models.CosmosAsyncDatabaseResponse; import com.azure.cosmos.models.CosmosUserResponse; import com.azure.cosmos.models.CosmosContainerProperties; @@ -131,7 +131,7 @@ public Mono delete(CosmosDatabaseRequestOptions opt * the created container or an error. * @throws IllegalArgumentException containerProperties cannot be null. */ - public Mono createContainer(CosmosContainerProperties containerProperties) { + public Mono createContainer(CosmosContainerProperties containerProperties) { return createContainer(containerProperties, new CosmosContainerRequestOptions()); } @@ -148,7 +148,7 @@ public Mono createContainer(CosmosContainerPropert * the created container or an error. * @throws IllegalArgumentException thown if containerProerties are null. */ - public Mono createContainer( + public Mono createContainer( CosmosContainerProperties containerProperties, ThroughputProperties throughputProperties) { if (containerProperties == null) { @@ -167,7 +167,7 @@ public Mono createContainer( * @param options the request options. * @return the mono. */ - public Mono createContainer( + public Mono createContainer( CosmosContainerProperties containerProperties, ThroughputProperties throughputProperties, CosmosContainerRequestOptions options){ @@ -188,7 +188,7 @@ public Mono createContainer( * created container or an error. * @throws IllegalArgumentException containerProperties can not be null. */ - public Mono createContainer( + public Mono createContainer( CosmosContainerProperties containerProperties, CosmosContainerRequestOptions options) { if (containerProperties == null) { @@ -200,7 +200,7 @@ public Mono createContainer( return getDocClientWrapper() .createCollection(this.getLink(), ModelBridgeInternal.getV2Collection(containerProperties), ModelBridgeInternal.toRequestOptions(options)) - .map(response -> ModelBridgeInternal.createCosmosAsyncContainerResponse(response, this)).single(); + .map(response -> ModelBridgeInternal.createCosmosContainerResponse(response, this)).single(); } /** @@ -217,7 +217,7 @@ public Mono createContainer( * created container or an error. * @throws IllegalArgumentException containerProperties cannot be null. */ - Mono createContainer( + Mono createContainer( CosmosContainerProperties containerProperties, int throughput, CosmosContainerRequestOptions options) { @@ -240,7 +240,7 @@ Mono createContainer( * @return a {@link Mono} containing the cosmos container response with the * created container or an error. */ - public Mono createContainer(String id, String partitionKeyPath) { + public Mono createContainer(String id, String partitionKeyPath) { return createContainer(new CosmosContainerProperties(id, partitionKeyPath)); } @@ -257,7 +257,7 @@ public Mono createContainer(String id, String part * @return a {@link Mono} containing the cosmos container response with the * created container or an error. */ - public Mono createContainer(String id, String partitionKeyPath, ThroughputProperties throughputProperties) { + public Mono createContainer(String id, String partitionKeyPath, ThroughputProperties throughputProperties) { CosmosContainerRequestOptions options = new CosmosContainerRequestOptions(); ModelBridgeInternal.setThroughputProperties(options, throughputProperties); return createContainer(new CosmosContainerProperties(id, partitionKeyPath), options); @@ -275,7 +275,7 @@ public Mono createContainer(String id, String part * @return a {@link Mono} containing the cosmos container response with the * created or existing container or an error. */ - public Mono createContainerIfNotExists( + public Mono createContainerIfNotExists( CosmosContainerProperties containerProperties) { CosmosAsyncContainer container = getContainer(containerProperties.getId()); return createContainerIfNotExistsInternal(containerProperties, container, null); @@ -297,7 +297,7 @@ public Mono createContainerIfNotExists( * @return a {@link Mono} containing the cosmos container response with the * created or existing container or an error. */ - Mono createContainerIfNotExists( + Mono createContainerIfNotExists( CosmosContainerProperties containerProperties, int throughput) { CosmosContainerRequestOptions options = new CosmosContainerRequestOptions(); @@ -322,7 +322,7 @@ Mono createContainerIfNotExists( * @return a {@link Mono} containing the cosmos container response with the * created or existing container or an error. */ - public Mono createContainerIfNotExists( + public Mono createContainerIfNotExists( CosmosContainerProperties containerProperties, ThroughputProperties throughputProperties) { CosmosContainerRequestOptions options = new CosmosContainerRequestOptions(); @@ -343,7 +343,7 @@ public Mono createContainerIfNotExists( * @return a {@link Mono} containing the cosmos container response with the * created container or an error. */ - public Mono createContainerIfNotExists(String id, String partitionKeyPath) { + public Mono createContainerIfNotExists(String id, String partitionKeyPath) { CosmosAsyncContainer container = getContainer(id); return createContainerIfNotExistsInternal(new CosmosContainerProperties(id, partitionKeyPath), container, @@ -366,7 +366,7 @@ public Mono createContainerIfNotExists(String id, * @return a {@link Mono} containing the cosmos container response with the * created container or an error. */ - Mono createContainerIfNotExists( + Mono createContainerIfNotExists( String id, String partitionKeyPath, int throughput) { CosmosContainerRequestOptions options = new CosmosContainerRequestOptions(); @@ -392,7 +392,7 @@ Mono createContainerIfNotExists( * @return a {@link Mono} containing the cosmos container response with the * created container or an error. */ - public Mono createContainerIfNotExists( + public Mono createContainerIfNotExists( String id, String partitionKeyPath, ThroughputProperties throughputProperties) { CosmosContainerRequestOptions options = new CosmosContainerRequestOptions(); @@ -402,7 +402,7 @@ public Mono createContainerIfNotExists( options); } - private Mono createContainerIfNotExistsInternal( + private Mono createContainerIfNotExistsInternal( CosmosContainerProperties containerProperties, CosmosAsyncContainer container, CosmosContainerRequestOptions options) { return container.read(options).onErrorResume(exception -> { diff --git a/sdk/cosmos/azure-cosmos/src/main/java/com/azure/cosmos/CosmosContainer.java b/sdk/cosmos/azure-cosmos/src/main/java/com/azure/cosmos/CosmosContainer.java index de2a0e0f5f4b..c9e25ff71a16 100644 --- a/sdk/cosmos/azure-cosmos/src/main/java/com/azure/cosmos/CosmosContainer.java +++ b/sdk/cosmos/azure-cosmos/src/main/java/com/azure/cosmos/CosmosContainer.java @@ -67,7 +67,7 @@ public CosmosContainerResponse read() { * Reads the current container while specifying additional options such as If-Match. * * @param options the options. - * @return the Cosmos sync container response. + * @return the Cosmos container response. */ public CosmosContainerResponse read(CosmosContainerRequestOptions options) { return database.mapContainerResponseAndBlock(this.asyncContainer.read(options)); @@ -77,7 +77,7 @@ public CosmosContainerResponse read(CosmosContainerRequestOptions options) { * Deletes the current Cosmos container while specifying additional options such as If-Match. * * @param options the options. - * @return the cosmos sync container response. + * @return the cosmos container response. */ public CosmosContainerResponse delete(CosmosContainerRequestOptions options) { return database.mapContainerResponseAndBlock(this.asyncContainer.delete(options)); @@ -86,7 +86,7 @@ public CosmosContainerResponse delete(CosmosContainerRequestOptions options) { /** * Deletes the current cosmos container. * - * @return the cosmos sync container response. + * @return the cosmos container response. */ public CosmosContainerResponse delete() { return database.mapContainerResponseAndBlock(this.asyncContainer.delete()); @@ -96,7 +96,7 @@ public CosmosContainerResponse delete() { * Replaces the current container properties. * * @param containerProperties the container properties. - * @return the cosmos sync container response. + * @return the cosmos container response. */ public CosmosContainerResponse replace(CosmosContainerProperties containerProperties) { return database.mapContainerResponseAndBlock(this.asyncContainer.replace(containerProperties)); @@ -107,7 +107,7 @@ public CosmosContainerResponse replace(CosmosContainerProperties containerProper * * @param containerProperties the container properties. * @param options the options. - * @return the cosmos sync container response. + * @return the cosmos container response. */ public CosmosContainerResponse replace(CosmosContainerProperties containerProperties, CosmosContainerRequestOptions options) { diff --git a/sdk/cosmos/azure-cosmos/src/main/java/com/azure/cosmos/CosmosDatabase.java b/sdk/cosmos/azure-cosmos/src/main/java/com/azure/cosmos/CosmosDatabase.java index 4e4298ca511f..27765ffa00cf 100644 --- a/sdk/cosmos/azure-cosmos/src/main/java/com/azure/cosmos/CosmosDatabase.java +++ b/sdk/cosmos/azure-cosmos/src/main/java/com/azure/cosmos/CosmosDatabase.java @@ -3,16 +3,14 @@ package com.azure.cosmos; -import com.azure.cosmos.models.CosmosAsyncContainerResponse; -import com.azure.cosmos.models.CosmosUserResponse; import com.azure.cosmos.models.CosmosContainerProperties; import com.azure.cosmos.models.CosmosContainerRequestOptions; import com.azure.cosmos.models.CosmosContainerResponse; import com.azure.cosmos.models.CosmosDatabaseRequestOptions; import com.azure.cosmos.models.CosmosDatabaseResponse; import com.azure.cosmos.models.CosmosUserProperties; +import com.azure.cosmos.models.CosmosUserResponse; import com.azure.cosmos.models.FeedOptions; -import com.azure.cosmos.models.ModelBridgeInternal; import com.azure.cosmos.models.SqlQuerySpec; import com.azure.cosmos.models.ThroughputProperties; import com.azure.cosmos.models.ThroughputResponse; @@ -181,7 +179,7 @@ public CosmosContainerResponse createContainer(String id, String partitionKeyPat * @param id the id. * @param partitionKeyPath the partition key path. * @param throughputProperties the throughput properties. - * @return the cosmos sync container response. + * @return the cosmos container response. */ public CosmosContainerResponse createContainer(String id, String partitionKeyPath, ThroughputProperties throughputProperties) { return this.mapContainerResponseAndBlock(databaseWrapper.createContainer(id, partitionKeyPath, throughputProperties)); @@ -191,7 +189,7 @@ public CosmosContainerResponse createContainer(String id, String partitionKeyPat * Create container if one matching the id in the properties object does not exist. * * @param containerProperties the container properties. - * @return the cosmos sync container response. + * @return the cosmos container response. */ public CosmosContainerResponse createContainerIfNotExists(CosmosContainerProperties containerProperties) { return this.mapContainerResponseAndBlock(databaseWrapper.createContainerIfNotExists(containerProperties)); @@ -202,7 +200,7 @@ public CosmosContainerResponse createContainerIfNotExists(CosmosContainerPropert * * @param containerProperties the container properties. * @param throughput the throughput. - * @return the cosmos sync container response. + * @return the cosmos container response. */ CosmosContainerResponse createContainerIfNotExists( CosmosContainerProperties containerProperties, @@ -219,7 +217,7 @@ CosmosContainerResponse createContainerIfNotExists( * * @param containerProperties the container properties. * @param throughputProperties the throughput properties for the container. - * @return the cosmos sync container response. + * @return the cosmos container response. */ public CosmosContainerResponse createContainerIfNotExists( CosmosContainerProperties containerProperties, @@ -233,7 +231,7 @@ public CosmosContainerResponse createContainerIfNotExists( * * @param id the id. * @param partitionKeyPath the partition key path. - * @return the cosmos sync container response. + * @return the cosmos container response. */ public CosmosContainerResponse createContainerIfNotExists( String id, @@ -250,7 +248,7 @@ public CosmosContainerResponse createContainerIfNotExists( * @param id the id. * @param partitionKeyPath the partition key path. * @param throughput the throughput. - * @return the cosmos sync container response. + * @return the cosmos container response. */ CosmosContainerResponse createContainerIfNotExists( String id, String partitionKeyPath, @@ -269,7 +267,7 @@ CosmosContainerResponse createContainerIfNotExists( * @param id the id. * @param partitionKeyPath the partition key path. * @param throughputProperties the throughput properties for the container. - * @return the cosmos sync container response. + * @return the cosmos container response. */ public CosmosContainerResponse createContainerIfNotExists( String id, String partitionKeyPath, @@ -280,16 +278,14 @@ public CosmosContainerResponse createContainerIfNotExists( } /** - * Map container response and block cosmos sync container response. + * Map container response and block cosmos container response. * * @param containerMono the container mono. - * @return the cosmos sync container response. + * @return the cosmos container response. */ - CosmosContainerResponse mapContainerResponseAndBlock(Mono containerMono) { + CosmosContainerResponse mapContainerResponseAndBlock(Mono containerMono) { try { - return containerMono - .map(this::convertResponse) - .block(); + return containerMono.block(); } catch (Exception ex) { final Throwable throwable = Exceptions.unwrap(ex); if (throwable instanceof CosmosException) { @@ -375,16 +371,6 @@ public CosmosContainer getContainer(String id) { return new CosmosContainer(id, this, databaseWrapper.getContainer(id)); } - /** - * Convert an async container response to a sync one. - * - * @param response the response. - * @return the cosmos sync container response. - */ - CosmosContainerResponse convertResponse(CosmosAsyncContainerResponse response) { - return ModelBridgeInternal.createCosmosContainerResponse(response, this, client); - } - /* Users */ /** diff --git a/sdk/cosmos/azure-cosmos/src/main/java/com/azure/cosmos/implementation/changefeed/ChangeFeedContextClient.java b/sdk/cosmos/azure-cosmos/src/main/java/com/azure/cosmos/implementation/changefeed/ChangeFeedContextClient.java index 6c55ccc013b3..f8744745a8e7 100644 --- a/sdk/cosmos/azure-cosmos/src/main/java/com/azure/cosmos/implementation/changefeed/ChangeFeedContextClient.java +++ b/sdk/cosmos/azure-cosmos/src/main/java/com/azure/cosmos/implementation/changefeed/ChangeFeedContextClient.java @@ -4,7 +4,7 @@ import com.azure.cosmos.implementation.ChangeFeedOptions; import com.azure.cosmos.CosmosAsyncContainer; -import com.azure.cosmos.models.CosmosAsyncContainerResponse; +import com.azure.cosmos.models.CosmosContainerResponse; import com.azure.cosmos.CosmosAsyncDatabase; import com.azure.cosmos.models.CosmosAsyncDatabaseResponse; import com.azure.cosmos.models.CosmosAsyncItemResponse; @@ -62,7 +62,7 @@ Flux> createDocumentChangeFeedQuery(CosmosAsyncContainer * @param options the {@link CosmosContainerRequestOptions} for this request; it can be set as null. * @return an {@link Mono} containing the single cosmos container response with the read container or an error. */ - Mono readContainer(CosmosAsyncContainer containerLink, CosmosContainerRequestOptions options); + Mono readContainer(CosmosAsyncContainer containerLink, CosmosContainerRequestOptions options); /** * Creates a cosmos item. diff --git a/sdk/cosmos/azure-cosmos/src/main/java/com/azure/cosmos/implementation/changefeed/implementation/ChangeFeedContextClientImpl.java b/sdk/cosmos/azure-cosmos/src/main/java/com/azure/cosmos/implementation/changefeed/implementation/ChangeFeedContextClientImpl.java index ae6cbcefc9e1..f577ab33ec91 100644 --- a/sdk/cosmos/azure-cosmos/src/main/java/com/azure/cosmos/implementation/changefeed/implementation/ChangeFeedContextClientImpl.java +++ b/sdk/cosmos/azure-cosmos/src/main/java/com/azure/cosmos/implementation/changefeed/implementation/ChangeFeedContextClientImpl.java @@ -5,7 +5,7 @@ import com.azure.cosmos.BridgeInternal; import com.azure.cosmos.implementation.ChangeFeedOptions; import com.azure.cosmos.CosmosAsyncContainer; -import com.azure.cosmos.models.CosmosAsyncContainerResponse; +import com.azure.cosmos.models.CosmosContainerResponse; import com.azure.cosmos.CosmosAsyncDatabase; import com.azure.cosmos.models.CosmosAsyncDatabaseResponse; import com.azure.cosmos.models.CosmosAsyncItemResponse; @@ -107,7 +107,7 @@ public Mono readDatabase(CosmosAsyncDatabase databa } @Override - public Mono readContainer(CosmosAsyncContainer containerLink, CosmosContainerRequestOptions options) { + public Mono readContainer(CosmosAsyncContainer containerLink, CosmosContainerRequestOptions options) { return containerLink.read(options) .publishOn(this.rxScheduler); } diff --git a/sdk/cosmos/azure-cosmos/src/main/java/com/azure/cosmos/implementation/changefeed/implementation/ChangeFeedProcessorBuilderImpl.java b/sdk/cosmos/azure-cosmos/src/main/java/com/azure/cosmos/implementation/changefeed/implementation/ChangeFeedProcessorBuilderImpl.java index 955623feadf8..e044becfd2df 100644 --- a/sdk/cosmos/azure-cosmos/src/main/java/com/azure/cosmos/implementation/changefeed/implementation/ChangeFeedProcessorBuilderImpl.java +++ b/sdk/cosmos/azure-cosmos/src/main/java/com/azure/cosmos/implementation/changefeed/implementation/ChangeFeedProcessorBuilderImpl.java @@ -426,7 +426,7 @@ private Mono initializeCollectionPropertiesForBuild() { .flatMap( id -> this.feedContextClient .readContainer(this.feedContextClient.getContainerClient(), null) .map(documentCollectionResourceResponse -> { - this.collectionResourceId = documentCollectionResourceResponse.getContainer().getId(); + this.collectionResourceId = documentCollectionResourceResponse.getProperties().getId(); return this; })); } diff --git a/sdk/cosmos/azure-cosmos/src/main/java/com/azure/cosmos/models/CosmosAsyncContainerResponse.java b/sdk/cosmos/azure-cosmos/src/main/java/com/azure/cosmos/models/CosmosAsyncContainerResponse.java deleted file mode 100644 index a5221ce9cf44..000000000000 --- a/sdk/cosmos/azure-cosmos/src/main/java/com/azure/cosmos/models/CosmosAsyncContainerResponse.java +++ /dev/null @@ -1,81 +0,0 @@ -// Copyright (c) Microsoft Corporation. All rights reserved. -// Licensed under the MIT License. -package com.azure.cosmos.models; - -import com.azure.cosmos.BridgeInternal; -import com.azure.cosmos.CosmosAsyncContainer; -import com.azure.cosmos.CosmosAsyncDatabase; -import com.azure.cosmos.implementation.DocumentCollection; -import com.azure.cosmos.implementation.ResourceResponse; -import com.azure.cosmos.implementation.SerializationDiagnosticsContext; -import com.azure.cosmos.implementation.apachecommons.lang.StringUtils; - -import java.time.ZoneOffset; -import java.time.ZonedDateTime; - -/** - * The type Cosmos async container response. - */ -@SuppressWarnings("enforcefinalfields") -public class CosmosAsyncContainerResponse extends CosmosResponse { - - private final CosmosAsyncContainer container; - - CosmosAsyncContainerResponse(ResourceResponse response, CosmosAsyncDatabase database) { - super(response); - String bodyAsString = response.getBodyAsString(); - if (StringUtils.isEmpty(bodyAsString)) { - super.setProperties(null); - container = null; - } else { - SerializationDiagnosticsContext serializationDiagnosticsContext = BridgeInternal.getSerializationDiagnosticsContext(this.getDiagnostics()); - ZonedDateTime serializationStartTime = ZonedDateTime.now(ZoneOffset.UTC); - CosmosContainerProperties props = new CosmosContainerProperties(bodyAsString); - ZonedDateTime serializationEndTime = ZonedDateTime.now(ZoneOffset.UTC); - SerializationDiagnosticsContext.SerializationDiagnostics diagnostics = new SerializationDiagnosticsContext.SerializationDiagnostics( - serializationStartTime, - serializationEndTime, - SerializationDiagnosticsContext.SerializationType.CONTAINER_DESERIALIZATION - ); - serializationDiagnosticsContext.addSerializationDiagnostics(diagnostics); - super.setProperties(props); - container = BridgeInternal.createCosmosAsyncContainer(this.getProperties().getId(), database); - } - } - - /** - * Gets the progress of an index transformation, if one is underway. - * - * @return the progress of an index transformation. - */ - public long getIndexTransformationProgress() { - return resourceResponseWrapper.getIndexTransformationProgress(); - } - - /** - * Gets the progress of lazy indexing. - * - * @return the progress of lazy indexing. - */ - long getLazyIndexingProgress() { - return resourceResponseWrapper.getLazyIndexingProgress(); - } - - /** - * Gets the container properties - * - * @return the cosmos container properties - */ - public CosmosContainerProperties getProperties() { - return super.getProperties(); - } - - /** - * Gets the Container object - * - * @return the Cosmos container object - */ - public CosmosAsyncContainer getContainer() { - return container; - } -} diff --git a/sdk/cosmos/azure-cosmos/src/main/java/com/azure/cosmos/models/CosmosContainerResponse.java b/sdk/cosmos/azure-cosmos/src/main/java/com/azure/cosmos/models/CosmosContainerResponse.java index 0582788153cf..224f9f09db48 100644 --- a/sdk/cosmos/azure-cosmos/src/main/java/com/azure/cosmos/models/CosmosContainerResponse.java +++ b/sdk/cosmos/azure-cosmos/src/main/java/com/azure/cosmos/models/CosmosContainerResponse.java @@ -1,30 +1,41 @@ // Copyright (c) Microsoft Corporation. All rights reserved. // Licensed under the MIT License. - package com.azure.cosmos.models; import com.azure.cosmos.BridgeInternal; -import com.azure.cosmos.CosmosClient; -import com.azure.cosmos.CosmosContainer; -import com.azure.cosmos.CosmosDatabase; +import com.azure.cosmos.CosmosAsyncDatabase; +import com.azure.cosmos.implementation.DocumentCollection; +import com.azure.cosmos.implementation.ResourceResponse; +import com.azure.cosmos.implementation.SerializationDiagnosticsContext; +import com.azure.cosmos.implementation.apachecommons.lang.StringUtils; + +import java.time.ZoneOffset; +import java.time.ZonedDateTime; /** - * The synchronous cosmos container response + * The type Cosmos container response. */ +@SuppressWarnings("enforcefinalfields") public class CosmosContainerResponse extends CosmosResponse { - private final CosmosAsyncContainerResponse responseWrapper; - private final CosmosContainer container; - - CosmosContainerResponse(CosmosAsyncContainerResponse response, CosmosDatabase database, CosmosClient client) { - super(response.resourceResponseWrapper, response.getProperties()); - this.responseWrapper = response; - if (responseWrapper.getContainer() != null) { - this.container = BridgeInternal.createCosmosContainer(responseWrapper.getContainer().getId(), database, - responseWrapper.getContainer()); + CosmosContainerResponse(ResourceResponse response, CosmosAsyncDatabase database) { + super(response); + String bodyAsString = response.getBodyAsString(); + if (StringUtils.isEmpty(bodyAsString)) { + super.setProperties(null); + super.setProperties(null); } else { - // Delete will have null container client in response - this.container = null; + SerializationDiagnosticsContext serializationDiagnosticsContext = BridgeInternal.getSerializationDiagnosticsContext(this.getDiagnostics()); + ZonedDateTime serializationStartTime = ZonedDateTime.now(ZoneOffset.UTC); + CosmosContainerProperties props = new CosmosContainerProperties(bodyAsString); + ZonedDateTime serializationEndTime = ZonedDateTime.now(ZoneOffset.UTC); + SerializationDiagnosticsContext.SerializationDiagnostics diagnostics = new SerializationDiagnosticsContext.SerializationDiagnostics( + serializationStartTime, + serializationEndTime, + SerializationDiagnosticsContext.SerializationType.CONTAINER_DESERIALIZATION + ); + serializationDiagnosticsContext.addSerializationDiagnostics(diagnostics); + super.setProperties(props); } } @@ -34,24 +45,24 @@ public class CosmosContainerResponse extends CosmosResponse response, - CosmosAsyncDatabase database) { - return new CosmosAsyncContainerResponse(response, database); + public static CosmosContainerResponse createCosmosContainerResponse(ResourceResponse response, + CosmosAsyncDatabase database) { + return new CosmosContainerResponse(response, database); } @Warning(value = INTERNAL_USE_ONLY_WARNING) @@ -139,12 +139,6 @@ public static CosmosUserResponse createCosmosAsyncUserResponse(ResourceResponse< return new CosmosUserResponse(response); } - @Warning(value = INTERNAL_USE_ONLY_WARNING) - public static CosmosContainerResponse createCosmosContainerResponse(CosmosAsyncContainerResponse response, - CosmosDatabase database, CosmosClient client) { - return new CosmosContainerResponse(response, database, client); - } - @Warning(value = INTERNAL_USE_ONLY_WARNING) public static CosmosItemResponse createCosmosItemResponse(CosmosAsyncItemResponse response) { return new CosmosItemResponse<>(response); diff --git a/sdk/cosmos/azure-cosmos/src/test/java/com/azure/cosmos/AzureKeyCredentialTest.java b/sdk/cosmos/azure-cosmos/src/test/java/com/azure/cosmos/AzureKeyCredentialTest.java index 07ed345d91d4..965160e5dd92 100644 --- a/sdk/cosmos/azure-cosmos/src/test/java/com/azure/cosmos/AzureKeyCredentialTest.java +++ b/sdk/cosmos/azure-cosmos/src/test/java/com/azure/cosmos/AzureKeyCredentialTest.java @@ -3,7 +3,7 @@ import com.azure.cosmos.implementation.CosmosItemProperties; import com.azure.cosmos.implementation.FailureValidator; import com.azure.cosmos.implementation.RetryAnalyzer; -import com.azure.cosmos.models.CosmosAsyncContainerResponse; +import com.azure.cosmos.models.CosmosContainerResponse; import com.azure.cosmos.models.CosmosAsyncDatabaseResponse; import com.azure.cosmos.models.CosmosAsyncItemResponse; import com.azure.cosmos.models.CosmosContainerProperties; @@ -94,10 +94,10 @@ public void createCollectionWithSecondaryKey(String collectionName) throws Inter assertThat(client.credential().getKey()).isEqualTo(TestConfigurations.MASTER_KEY); credential.update(TestConfigurations.SECONDARY_MASTER_KEY); - Mono createObservable = database + Mono createObservable = database .createContainer(collectionDefinition); - CosmosResponseValidator validator = new CosmosResponseValidator.Builder() + CosmosResponseValidator validator = new CosmosResponseValidator.Builder() .withId(collectionDefinition.getId()).build(); validateSuccess(createObservable, validator); @@ -114,14 +114,14 @@ public void readCollectionWithSecondaryKey(String collectionName) throws Interru // sanity check assertThat(client.credential().getKey()).isEqualTo(TestConfigurations.MASTER_KEY); - Mono createObservable = database.createContainer(collectionDefinition); - CosmosAsyncContainer collection = createObservable.block().getContainer(); + database.createContainer(collectionDefinition).block(); + CosmosAsyncContainer collection = database.getContainer(collectionDefinition.getId()); credential.update(TestConfigurations.SECONDARY_MASTER_KEY); - Mono readObservable = collection.read(); + Mono readObservable = collection.read(); - CosmosResponseValidator validator = - new CosmosResponseValidator.Builder() + CosmosResponseValidator validator = + new CosmosResponseValidator.Builder() .withId(collection.getId()).build(); validateSuccess(readObservable, validator); @@ -137,13 +137,13 @@ public void deleteCollectionWithSecondaryKey(String collectionName) throws Inter // sanity check assertThat(client.credential().getKey()).isEqualTo(TestConfigurations.MASTER_KEY); - Mono createObservable = database.createContainer(collectionDefinition); - CosmosAsyncContainer collection = createObservable.block().getContainer(); + database.createContainer(collectionDefinition).block(); + CosmosAsyncContainer collection = database.getContainer(collectionDefinition.getId()); credential.update(TestConfigurations.SECONDARY_MASTER_KEY); - Mono deleteObservable = collection.delete(); + Mono deleteObservable = collection.delete(); - CosmosResponseValidator validator = new CosmosResponseValidator.Builder() + CosmosResponseValidator validator = new CosmosResponseValidator.Builder() .nullResource().build(); validateSuccess(deleteObservable, validator); @@ -155,8 +155,8 @@ public void deleteCollectionWithSecondaryKey(String collectionName) throws Inter public void replaceCollectionWithSecondaryKey(String collectionName) throws InterruptedException { // create a collection CosmosContainerProperties collectionDefinition = getCollectionDefinition(collectionName); - Mono createObservable = database.createContainer(collectionDefinition); - CosmosAsyncContainer collection = createObservable.block().getContainer(); + database.createContainer(collectionDefinition).block(); + CosmosAsyncContainer collection = database.getContainer(collectionDefinition.getId()); // sanity check assertThat(client.credential().getKey()).isEqualTo(TestConfigurations.MASTER_KEY); @@ -171,10 +171,10 @@ public void replaceCollectionWithSecondaryKey(String collectionName) throws Inte IndexingPolicy indexingMode = new IndexingPolicy(); indexingMode.setIndexingMode(IndexingMode.LAZY); collectionSettings.setIndexingPolicy(indexingMode); - Mono readObservable = collection.replace(collectionSettings, new CosmosContainerRequestOptions()); + Mono readObservable = collection.replace(collectionSettings, new CosmosContainerRequestOptions()); // validate - CosmosResponseValidator validator = new CosmosResponseValidator.Builder() + CosmosResponseValidator validator = new CosmosResponseValidator.Builder() .indexingMode(IndexingMode.LAZY).build(); validateSuccess(readObservable, validator); diff --git a/sdk/cosmos/azure-cosmos/src/test/java/com/azure/cosmos/CosmosContainerContentResponseOnWriteTest.java b/sdk/cosmos/azure-cosmos/src/test/java/com/azure/cosmos/CosmosContainerContentResponseOnWriteTest.java index 659a0311e02c..a414a087fffe 100644 --- a/sdk/cosmos/azure-cosmos/src/test/java/com/azure/cosmos/CosmosContainerContentResponseOnWriteTest.java +++ b/sdk/cosmos/azure-cosmos/src/test/java/com/azure/cosmos/CosmosContainerContentResponseOnWriteTest.java @@ -11,7 +11,6 @@ import com.azure.cosmos.models.CosmosContainerResponse; import com.azure.cosmos.models.IndexingMode; import com.azure.cosmos.models.IndexingPolicy; -import com.azure.cosmos.models.ModelBridgeInternal; import com.azure.cosmos.models.PartitionKeyDefinition; import com.azure.cosmos.rx.TestSuiteBase; import org.testng.annotations.AfterClass; @@ -88,13 +87,13 @@ public void replaceContainer_withContentResponseOnWriteDisabled() throws Excepti assertThat(containerResponse.getProperties().getIndexingPolicy().getIndexingMode()).isEqualTo(IndexingMode.CONSISTENT); - CosmosContainerResponse replaceResponse = containerResponse.getContainer() + CosmosContainerResponse replaceResponse = createdDatabase.getContainer(containerProperties.getId()) .replace(containerResponse.getProperties().setIndexingPolicy( new IndexingPolicy().setIndexingMode(IndexingMode.LAZY))); assertThat(replaceResponse.getProperties().getIndexingPolicy().getIndexingMode()) .isEqualTo(IndexingMode.LAZY); - CosmosContainerResponse replaceResponse1 = containerResponse.getContainer() + CosmosContainerResponse replaceResponse1 = createdDatabase.getContainer(containerProperties.getId()) .replace(containerResponse.getProperties().setIndexingPolicy( new IndexingPolicy().setIndexingMode(IndexingMode.CONSISTENT)), options); diff --git a/sdk/cosmos/azure-cosmos/src/test/java/com/azure/cosmos/CosmosContainerTest.java b/sdk/cosmos/azure-cosmos/src/test/java/com/azure/cosmos/CosmosContainerTest.java index 43fa56c0fdb1..bb2f6fac1c93 100644 --- a/sdk/cosmos/azure-cosmos/src/test/java/com/azure/cosmos/CosmosContainerTest.java +++ b/sdk/cosmos/azure-cosmos/src/test/java/com/azure/cosmos/CosmosContainerTest.java @@ -227,13 +227,13 @@ public void replace() throws Exception { assertThat(containerResponse.getProperties().getIndexingPolicy().getIndexingMode()).isEqualTo(IndexingMode.CONSISTENT); - CosmosContainerResponse replaceResponse = containerResponse.getContainer() + CosmosContainerResponse replaceResponse = createdDatabase.getContainer(containerProperties.getId()) .replace(containerResponse.getProperties().setIndexingPolicy( new IndexingPolicy().setIndexingMode(IndexingMode.LAZY))); assertThat(replaceResponse.getProperties().getIndexingPolicy().getIndexingMode()) .isEqualTo(IndexingMode.LAZY); - CosmosContainerResponse replaceResponse1 = containerResponse.getContainer() + CosmosContainerResponse replaceResponse1 = createdDatabase.getContainer(containerProperties.getId()) .replace(containerResponse.getProperties().setIndexingPolicy( new IndexingPolicy().setIndexingMode(IndexingMode.CONSISTENT)), options); diff --git a/sdk/cosmos/azure-cosmos/src/test/java/com/azure/cosmos/CosmosResponseValidator.java b/sdk/cosmos/azure-cosmos/src/test/java/com/azure/cosmos/CosmosResponseValidator.java index 5a9a6b781e4f..61ce3255856c 100644 --- a/sdk/cosmos/azure-cosmos/src/test/java/com/azure/cosmos/CosmosResponseValidator.java +++ b/sdk/cosmos/azure-cosmos/src/test/java/com/azure/cosmos/CosmosResponseValidator.java @@ -4,7 +4,7 @@ import com.azure.cosmos.implementation.Resource; import com.azure.cosmos.models.CompositePath; -import com.azure.cosmos.models.CosmosAsyncContainerResponse; +import com.azure.cosmos.models.CosmosContainerResponse; import com.azure.cosmos.models.CosmosAsyncDatabaseResponse; import com.azure.cosmos.models.CosmosAsyncPermissionResponse; import com.azure.cosmos.models.CosmosStoredProcedureResponse; @@ -72,8 +72,8 @@ public void validate(T resourceResponse) { private Resource getResource(T resourceResponse) { if (resourceResponse instanceof CosmosAsyncDatabaseResponse) { return ModelBridgeInternal.getResource(((CosmosAsyncDatabaseResponse)resourceResponse).getProperties()); - } else if (resourceResponse instanceof CosmosAsyncContainerResponse) { - return ModelBridgeInternal.getResource(((CosmosAsyncContainerResponse)resourceResponse).getProperties()); + } else if (resourceResponse instanceof CosmosContainerResponse) { + return ModelBridgeInternal.getResource(((CosmosContainerResponse)resourceResponse).getProperties()); } else if (resourceResponse instanceof CosmosStoredProcedureResponse) { return ModelBridgeInternal.getResource(((CosmosStoredProcedureResponse)resourceResponse).getProperties()); } else if (resourceResponse instanceof CosmosAsyncTriggerResponse) { @@ -100,10 +100,10 @@ public void validate(T resourceResponse) { } public Builder indexingMode(IndexingMode mode) { - validators.add(new CosmosResponseValidator() { + validators.add(new CosmosResponseValidator() { @Override - public void validate(CosmosAsyncContainerResponse resourceResponse) { + public void validate(CosmosContainerResponse resourceResponse) { assertThat(resourceResponse.getProperties()).isNotNull(); assertThat(resourceResponse.getProperties().getIndexingPolicy()).isNotNull(); assertThat(resourceResponse.getProperties().getIndexingPolicy().getIndexingMode()).isEqualTo(mode); @@ -113,10 +113,10 @@ public void validate(CosmosAsyncContainerResponse resourceResponse) { } public Builder withDefaultTimeToLive(Integer timeToLive) { - validators.add(new CosmosResponseValidator() { + validators.add(new CosmosResponseValidator() { @Override - public void validate(CosmosAsyncContainerResponse resourceResponse) { + public void validate(CosmosContainerResponse resourceResponse) { assertThat(resourceResponse.getProperties()).isNotNull(); assertThat(resourceResponse.getProperties().getDefaultTimeToLiveInSeconds()).isNotNull(); assertThat(resourceResponse.getProperties().getDefaultTimeToLiveInSeconds()).isEqualTo(timeToLive); @@ -137,10 +137,10 @@ public void validate(T cosmosResponse) { } public Builder withCompositeIndexes(List> compositeIndexesWritten) { - validators.add(new CosmosResponseValidator() { + validators.add(new CosmosResponseValidator() { @Override - public void validate(CosmosAsyncContainerResponse resourceResponse) { + public void validate(CosmosContainerResponse resourceResponse) { Iterator> compositeIndexesReadIterator = resourceResponse.getProperties() .getIndexingPolicy().getCompositeIndexes().iterator(); Iterator> compositeIndexesWrittenIterator = compositeIndexesWritten.iterator(); @@ -175,10 +175,10 @@ public void validate(CosmosAsyncContainerResponse resourceResponse) { } public Builder withSpatialIndexes(Collection spatialIndexes) { - validators.add(new CosmosResponseValidator() { + validators.add(new CosmosResponseValidator() { @Override - public void validate(CosmosAsyncContainerResponse resourceResponse) { + public void validate(CosmosContainerResponse resourceResponse) { Iterator spatialIndexesReadIterator = resourceResponse.getProperties() .getIndexingPolicy().getSpatialIndexes().iterator(); Iterator spatialIndexesWrittenIterator = spatialIndexes.iterator(); diff --git a/sdk/cosmos/azure-cosmos/src/test/java/com/azure/cosmos/models/CosmosPartitionKeyTests.java b/sdk/cosmos/azure-cosmos/src/test/java/com/azure/cosmos/models/CosmosPartitionKeyTests.java index 9e9ca1d14271..f19e7c27f167 100644 --- a/sdk/cosmos/azure-cosmos/src/test/java/com/azure/cosmos/models/CosmosPartitionKeyTests.java +++ b/sdk/cosmos/azure-cosmos/src/test/java/com/azure/cosmos/models/CosmosPartitionKeyTests.java @@ -291,7 +291,8 @@ public void multiPartitionCollectionReadDocumentWithNoPk() throws InterruptedExc String partitionedCollectionId = "PartitionedCollection" + UUID.randomUUID().toString(); String IdOfDocumentWithNoPk = UUID.randomUUID().toString(); CosmosContainerProperties containerSettings = new CosmosContainerProperties(partitionedCollectionId, "/mypk"); - CosmosAsyncContainer createdContainer = createdDatabase.createContainer(containerSettings).block().getContainer(); + createdDatabase.createContainer(containerSettings).block(); + CosmosAsyncContainer createdContainer = createdDatabase.getContainer(containerSettings.getId()); CosmosItemProperties cosmosItemProperties = new CosmosItemProperties(); cosmosItemProperties.setId(IdOfDocumentWithNoPk); createdContainer.createItem(cosmosItemProperties).block(); diff --git a/sdk/cosmos/azure-cosmos/src/test/java/com/azure/cosmos/rx/CollectionCrudTest.java b/sdk/cosmos/azure-cosmos/src/test/java/com/azure/cosmos/rx/CollectionCrudTest.java index 36c16441b5c3..5333c1de895f 100644 --- a/sdk/cosmos/azure-cosmos/src/test/java/com/azure/cosmos/rx/CollectionCrudTest.java +++ b/sdk/cosmos/azure-cosmos/src/test/java/com/azure/cosmos/rx/CollectionCrudTest.java @@ -8,7 +8,7 @@ import com.azure.cosmos.models.CompositePathSortOrder; import com.azure.cosmos.CosmosAsyncClient; import com.azure.cosmos.CosmosAsyncContainer; -import com.azure.cosmos.models.CosmosAsyncContainerResponse; +import com.azure.cosmos.models.CosmosContainerResponse; import com.azure.cosmos.CosmosAsyncDatabase; import com.azure.cosmos.models.CosmosAsyncItemResponse; import com.azure.cosmos.CosmosClientBuilder; @@ -87,10 +87,10 @@ private CosmosContainerProperties getCollectionDefinition(String collectionName) public void createCollection(String collectionName) throws InterruptedException { CosmosContainerProperties collectionDefinition = getCollectionDefinition(collectionName); - Mono createObservable = database + Mono createObservable = database .createContainer(collectionDefinition); - CosmosResponseValidator validator = new CosmosResponseValidator.Builder() + CosmosResponseValidator validator = new CosmosResponseValidator.Builder() .withId(collectionDefinition.getId()).build(); validateSuccess(createObservable, validator); @@ -104,10 +104,10 @@ public void createCollectionWithTTL(String collectionName) throws InterruptedExc Integer defaultTimeToLive = 300; collectionDefinition.setDefaultTimeToLiveInSeconds(defaultTimeToLive); - Mono createObservable = database + Mono createObservable = database .createContainer(collectionDefinition); - CosmosResponseValidator validator = new CosmosResponseValidator.Builder() + CosmosResponseValidator validator = new CosmosResponseValidator.Builder() .withId(collectionDefinition.getId()).withDefaultTimeToLive(defaultTimeToLive).build(); validateSuccess(createObservable, validator); @@ -179,10 +179,10 @@ public void createCollectionWithCompositeIndexAndSpatialSpec() throws Interrupte collection.setIndexingPolicy(indexingPolicy); - Mono createObservable = database + Mono createObservable = database .createContainer(collection, new CosmosContainerRequestOptions()); - CosmosResponseValidator validator = new CosmosResponseValidator.Builder() + CosmosResponseValidator validator = new CosmosResponseValidator.Builder() .withId(collection.getId()) .withCompositeIndexes(compositeIndexes) .withSpatialIndexes(spatialIndexes) @@ -196,12 +196,12 @@ public void createCollectionWithCompositeIndexAndSpatialSpec() throws Interrupte public void readCollection(String collectionName) throws InterruptedException { CosmosContainerProperties collectionDefinition = getCollectionDefinition(collectionName); - Mono createObservable = database.createContainer(collectionDefinition); - CosmosAsyncContainer collection = createObservable.block().getContainer(); + database.createContainer(collectionDefinition).block(); + CosmosAsyncContainer collection = database.getContainer(collectionDefinition.getId()); - Mono readObservable = collection.read(); + Mono readObservable = collection.read(); - CosmosResponseValidator validator = new CosmosResponseValidator.Builder() + CosmosResponseValidator validator = new CosmosResponseValidator.Builder() .withId(collection.getId()).build(); validateSuccess(readObservable, validator); safeDeleteAllCollections(database); @@ -214,12 +214,12 @@ public void readCollectionWithTTL(String collectionName) throws InterruptedExcep Integer defaultTimeToLive = 200; collectionDefinition.setDefaultTimeToLiveInSeconds(defaultTimeToLive); - Mono createObservable = database.createContainer(collectionDefinition); - CosmosAsyncContainer collection = createObservable.block().getContainer(); + database.createContainer(collectionDefinition).block(); + CosmosAsyncContainer collection = database.getContainer(collectionDefinition.getId()); - Mono readObservable = collection.read(); + Mono readObservable = collection.read(); - CosmosResponseValidator validator = new CosmosResponseValidator.Builder() + CosmosResponseValidator validator = new CosmosResponseValidator.Builder() .withId(collection.getId()).withDefaultTimeToLive(defaultTimeToLive).build(); validateSuccess(readObservable, validator); safeDeleteAllCollections(database); @@ -228,7 +228,7 @@ public void readCollectionWithTTL(String collectionName) throws InterruptedExcep @Test(groups = { "emulator" }, timeOut = TIMEOUT, dataProvider = "collectionCrudArgProvider") public void readCollection_DoesntExist(String collectionName) throws Exception { - Mono readObservable = database + Mono readObservable = database .getContainer("I don't exist").read(); FailureValidator validator = new FailureValidator.Builder() @@ -242,12 +242,12 @@ public void readCollection_DoesntExist(String collectionName) throws Exception { public void deleteCollection(String collectionName) throws InterruptedException { CosmosContainerProperties collectionDefinition = getCollectionDefinition(collectionName); - Mono createObservable = database.createContainer(collectionDefinition); - CosmosAsyncContainer collection = createObservable.block().getContainer(); + database.createContainer(collectionDefinition).block(); + CosmosAsyncContainer collection = database.getContainer(collectionDefinition.getId()); - Mono deleteObservable = collection.delete(); + Mono deleteObservable = collection.delete(); - CosmosResponseValidator validator = new CosmosResponseValidator.Builder() + CosmosResponseValidator validator = new CosmosResponseValidator.Builder() .nullResource().build(); validateSuccess(deleteObservable, validator); } @@ -256,8 +256,8 @@ public void deleteCollection(String collectionName) throws InterruptedException public void replaceCollection(String collectionName) throws InterruptedException { // create a collection CosmosContainerProperties collectionDefinition = getCollectionDefinition(collectionName); - Mono createObservable = database.createContainer(collectionDefinition); - CosmosAsyncContainer collection = createObservable.block().getContainer(); + database.createContainer(collectionDefinition).block(); + CosmosAsyncContainer collection = database.getContainer(collectionDefinition.getId()); CosmosContainerProperties collectionSettings = collection.read().block().getProperties(); // sanity check assertThat(collectionSettings.getIndexingPolicy().getIndexingMode()).isEqualTo(IndexingMode.CONSISTENT); @@ -266,10 +266,10 @@ public void replaceCollection(String collectionName) throws InterruptedException IndexingPolicy indexingMode = new IndexingPolicy(); indexingMode.setIndexingMode(IndexingMode.LAZY); collectionSettings.setIndexingPolicy(indexingMode); - Mono readObservable = collection.replace(collectionSettings, new CosmosContainerRequestOptions()); + Mono readObservable = collection.replace(collectionSettings, new CosmosContainerRequestOptions()); // validate - CosmosResponseValidator validator = new CosmosResponseValidator.Builder() + CosmosResponseValidator validator = new CosmosResponseValidator.Builder() .indexingMode(IndexingMode.LAZY).build(); validateSuccess(readObservable, validator); safeDeleteAllCollections(database); @@ -281,8 +281,8 @@ public void replaceCollectionWithTTL(String collectionName) throws InterruptedEx CosmosContainerProperties collectionDefinition = getCollectionDefinition(collectionName); Integer defaultTimeToLive = 120; collectionDefinition.setDefaultTimeToLiveInSeconds(defaultTimeToLive); - Mono createObservable = database.createContainer(collectionDefinition); - CosmosAsyncContainer collection = createObservable.block().getContainer(); + database.createContainer(collectionDefinition).block(); + CosmosAsyncContainer collection = database.getContainer(collectionDefinition.getId()); CosmosContainerProperties collectionSettings = collection.read().block().getProperties(); // sanity check assertThat(collectionSettings.getIndexingPolicy().getIndexingMode()).isEqualTo(IndexingMode.CONSISTENT); @@ -293,10 +293,10 @@ public void replaceCollectionWithTTL(String collectionName) throws InterruptedEx indexingMode.setIndexingMode(IndexingMode.LAZY); collectionSettings.setIndexingPolicy(indexingMode); collectionSettings.setDefaultTimeToLiveInSeconds(defaultTimeToLive * 2); - Mono readObservable = collection.replace(collectionSettings, new CosmosContainerRequestOptions()); + Mono readObservable = collection.replace(collectionSettings, new CosmosContainerRequestOptions()); // validate - CosmosResponseValidator validator = new CosmosResponseValidator.Builder() + CosmosResponseValidator validator = new CosmosResponseValidator.Builder() .indexingMode(IndexingMode.LAZY).withDefaultTimeToLive(defaultTimeToLive * 2).build(); validateSuccess(readObservable, validator); safeDeleteAllCollections(database); @@ -379,10 +379,12 @@ public void replaceProvisionedThroughput(){ .block() .getDatabase(); CosmosContainerProperties containerProperties = new CosmosContainerProperties("testCol", "/myPk"); - CosmosAsyncContainer container = database.createContainer(containerProperties, ThroughputProperties.createManualThroughput(1000), - new CosmosContainerRequestOptions()) - .block() - .getContainer(); + database.createContainer( + containerProperties, + ThroughputProperties.createManualThroughput(1000), + new CosmosContainerRequestOptions()).block(); + + CosmosAsyncContainer container = database.getContainer(containerProperties.getId()); Integer throughput = container.readThroughput().block() .getProperties().getManualThroughput(); diff --git a/sdk/cosmos/azure-cosmos/src/test/java/com/azure/cosmos/rx/MultiMasterConflictResolutionTest.java b/sdk/cosmos/azure-cosmos/src/test/java/com/azure/cosmos/rx/MultiMasterConflictResolutionTest.java index 4f2bbdd0b94d..e4c781f6f62a 100644 --- a/sdk/cosmos/azure-cosmos/src/test/java/com/azure/cosmos/rx/MultiMasterConflictResolutionTest.java +++ b/sdk/cosmos/azure-cosmos/src/test/java/com/azure/cosmos/rx/MultiMasterConflictResolutionTest.java @@ -6,7 +6,7 @@ import com.azure.cosmos.models.ConflictResolutionPolicy; import com.azure.cosmos.CosmosAsyncClient; import com.azure.cosmos.CosmosAsyncContainer; -import com.azure.cosmos.models.CosmosAsyncContainerResponse; +import com.azure.cosmos.models.CosmosContainerResponse; import com.azure.cosmos.CosmosAsyncDatabase; import com.azure.cosmos.CosmosClientBuilder; import com.azure.cosmos.CosmosException; @@ -48,18 +48,20 @@ public MultiMasterConflictResolutionTest(CosmosClientBuilder clientBuilder) { public void conflictResolutionPolicyCRUD() { // default last writer wins, path _ts - CosmosContainerProperties collectionSettings = new CosmosContainerProperties(UUID.randomUUID().toString(), partitionKeyDef); - CosmosAsyncContainer collection = database.createContainer(collectionSettings, new CosmosContainerRequestOptions()).block().getContainer(); - collectionSettings = collection.read().block().getProperties(); + CosmosContainerProperties containerSettings = new CosmosContainerProperties(UUID.randomUUID().toString(), partitionKeyDef); + database.createContainer(containerSettings, new CosmosContainerRequestOptions()).block(); + CosmosAsyncContainer container = database.getContainer(containerSettings.getId()); - assertThat(collectionSettings.getConflictResolutionPolicy().getMode()).isEqualTo(ConflictResolutionMode.LAST_WRITER_WINS); + containerSettings = container.read().block().getProperties(); + + assertThat(containerSettings.getConflictResolutionPolicy().getMode()).isEqualTo(ConflictResolutionMode.LAST_WRITER_WINS); // LWW without getPath specified, should default to _ts - collectionSettings.setConflictResolutionPolicy(ConflictResolutionPolicy.createLastWriterWinsPolicy()); - collectionSettings = collection.replace(collectionSettings, null).block().getProperties(); + containerSettings.setConflictResolutionPolicy(ConflictResolutionPolicy.createLastWriterWinsPolicy()); + containerSettings = container.replace(containerSettings, null).block().getProperties(); - assertThat(collectionSettings.getConflictResolutionPolicy().getMode()).isEqualTo(ConflictResolutionMode.LAST_WRITER_WINS); - assertThat(collectionSettings.getConflictResolutionPolicy().getConflictResolutionPath()).isEqualTo("/_ts"); + assertThat(containerSettings.getConflictResolutionPolicy().getMode()).isEqualTo(ConflictResolutionMode.LAST_WRITER_WINS); + assertThat(containerSettings.getConflictResolutionPolicy().getConflictResolutionPath()).isEqualTo("/_ts"); // Tests the following scenarios // 1. LWW with valid path @@ -69,10 +71,10 @@ public void conflictResolutionPolicyCRUD() { new String[] { "/a", null, "" }, new String[] { "/a", "/_ts", "/_ts" }); // LWW invalid getPath - collectionSettings.setConflictResolutionPolicy(ConflictResolutionPolicy.createLastWriterWinsPolicy("/a/b")); + containerSettings.setConflictResolutionPolicy(ConflictResolutionPolicy.createLastWriterWinsPolicy("/a/b")); try { - collectionSettings = collection.replace(collectionSettings, null).block().getProperties(); + containerSettings = container.replace(containerSettings, null).block().getProperties(); fail("Expected exception on invalid getPath."); } catch (Exception e) { @@ -87,10 +89,10 @@ public void conflictResolutionPolicyCRUD() { // LWW invalid getPath - collectionSettings.setConflictResolutionPolicy(ConflictResolutionPolicy.createLastWriterWinsPolicy("someText")); + containerSettings.setConflictResolutionPolicy(ConflictResolutionPolicy.createLastWriterWinsPolicy("someText")); try { - collectionSettings = collection.replace(collectionSettings, null).block().getProperties(); + containerSettings = container.replace(containerSettings, null).block().getProperties(); fail("Expected exception on invalid path."); } catch (Exception e) { // when (e.StatusCode == HttpStatusCode.BadRequest) @@ -142,7 +144,7 @@ public void invalidConflictResolutionPolicy_LastWriterWinsWithStoredProc() throw ModelBridgeUtils.setStoredProc(policy,"randomSprocName"); collection.setConflictResolutionPolicy(policy); - Mono createObservable = database.createContainer( + Mono createObservable = database.createContainer( collection, new CosmosContainerRequestOptions()); @@ -164,7 +166,7 @@ public void invalidConflictResolutionPolicy_CustomWithPath() throws Exception { ModelBridgeUtils.setPath(policy,"/mypath"); collection.setConflictResolutionPolicy(policy); - Mono createObservable = database.createContainer( + Mono createObservable = database.createContainer( collection, new CosmosContainerRequestOptions()); diff --git a/sdk/cosmos/azure-cosmos/src/test/java/com/azure/cosmos/rx/ReadFeedCollectionsTest.java b/sdk/cosmos/azure-cosmos/src/test/java/com/azure/cosmos/rx/ReadFeedCollectionsTest.java index 6d1ec6a35b5e..c59da5d0d3fe 100644 --- a/sdk/cosmos/azure-cosmos/src/test/java/com/azure/cosmos/rx/ReadFeedCollectionsTest.java +++ b/sdk/cosmos/azure-cosmos/src/test/java/com/azure/cosmos/rx/ReadFeedCollectionsTest.java @@ -87,7 +87,8 @@ public CosmosAsyncContainer createCollections(CosmosAsyncDatabase database) { ArrayList paths = new ArrayList(); paths.add("/mypk"); partitionKeyDef.setPaths(paths); - CosmosContainerProperties collection = new CosmosContainerProperties(UUID.randomUUID().toString(), partitionKeyDef); - return database.createContainer(collection, new CosmosContainerRequestOptions()).block().getContainer(); + CosmosContainerProperties containerProperties = new CosmosContainerProperties(UUID.randomUUID().toString(), partitionKeyDef); + database.createContainer(containerProperties, new CosmosContainerRequestOptions()).block(); + return database.getContainer(containerProperties.getId()); } } diff --git a/sdk/cosmos/azure-cosmos/src/test/java/com/azure/cosmos/rx/TestSuiteBase.java b/sdk/cosmos/azure-cosmos/src/test/java/com/azure/cosmos/rx/TestSuiteBase.java index c1759b9ceebc..72c01a76e58c 100644 --- a/sdk/cosmos/azure-cosmos/src/test/java/com/azure/cosmos/rx/TestSuiteBase.java +++ b/sdk/cosmos/azure-cosmos/src/test/java/com/azure/cosmos/rx/TestSuiteBase.java @@ -337,12 +337,14 @@ protected static void waitIfNeededForReplicasToCatchUp(CosmosClientBuilder clien public static CosmosAsyncContainer createCollection(CosmosAsyncDatabase database, CosmosContainerProperties cosmosContainerProperties, CosmosContainerRequestOptions options, int throughput) { - return database.createContainer(cosmosContainerProperties, ThroughputProperties.createManualThroughput(throughput), options).block().getContainer(); + database.createContainer(cosmosContainerProperties, ThroughputProperties.createManualThroughput(throughput), options).block(); + return database.getContainer(cosmosContainerProperties.getId()); } public static CosmosAsyncContainer createCollection(CosmosAsyncDatabase database, CosmosContainerProperties cosmosContainerProperties, CosmosContainerRequestOptions options) { - return database.createContainer(cosmosContainerProperties, options).block().getContainer(); + database.createContainer(cosmosContainerProperties, options).block(); + return database.getContainer(cosmosContainerProperties.getId()); } private static CosmosContainerProperties getCollectionDefinitionMultiPartitionWithCompositeAndSpatialIndexes() { @@ -459,7 +461,9 @@ private static CosmosContainerProperties getCollectionDefinitionMultiPartitionWi } public static CosmosAsyncContainer createCollection(CosmosAsyncClient client, String dbId, CosmosContainerProperties collectionDefinition) { - return client.getDatabase(dbId).createContainer(collectionDefinition).block().getContainer(); + CosmosAsyncDatabase database = client.getDatabase(dbId); + database.createContainer(collectionDefinition).block(); + return database.getContainer(collectionDefinition.getId()); } public static void deleteCollection(CosmosAsyncClient client, String dbId, String collectionId) { diff --git a/sdk/cosmos/azure-cosmos/src/test/java/com/azure/cosmos/rx/ThroughputTests.java b/sdk/cosmos/azure-cosmos/src/test/java/com/azure/cosmos/rx/ThroughputTests.java index 9d31248e760e..8e75e7723ed0 100644 --- a/sdk/cosmos/azure-cosmos/src/test/java/com/azure/cosmos/rx/ThroughputTests.java +++ b/sdk/cosmos/azure-cosmos/src/test/java/com/azure/cosmos/rx/ThroughputTests.java @@ -87,10 +87,11 @@ public void readReplaceManualThroughputCollection() throws Exception { .getDatabase(); CosmosContainerProperties containerProperties = new CosmosContainerProperties("testCol", "/myPk"); - CosmosAsyncContainer container = database.createContainer(containerProperties, throughputProperties, - new CosmosContainerRequestOptions()) - .block() - .getContainer(); + database.createContainer( + containerProperties, + throughputProperties, + new CosmosContainerRequestOptions()).block(); + CosmosAsyncContainer container = database.getContainer(containerProperties.getId()); // Read ThroughputResponse readThroughputResponse = container.readThroughput().block(); @@ -117,10 +118,11 @@ public void readReplaceAutoscaleThroughputCollection() throws Exception { String collectionId = UUID.randomUUID().toString(); CosmosContainerProperties containerProperties = new CosmosContainerProperties(collectionId, "/myPk"); - CosmosAsyncContainer container = database.createContainer(containerProperties, throughputProperties, - new CosmosContainerRequestOptions()) - .block() - .getContainer(); + database.createContainer( + containerProperties, + throughputProperties, + new CosmosContainerRequestOptions()).block(); + CosmosAsyncContainer container = database.getContainer(containerProperties.getId()); // Read ThroughputResponse readThroughputResponse = container.readThroughput().block(); diff --git a/sdk/cosmos/azure-cosmos/src/test/java/com/azure/cosmos/rx/UniqueIndexTest.java b/sdk/cosmos/azure-cosmos/src/test/java/com/azure/cosmos/rx/UniqueIndexTest.java index f42407a3ef99..fc965fc5f0b9 100644 --- a/sdk/cosmos/azure-cosmos/src/test/java/com/azure/cosmos/rx/UniqueIndexTest.java +++ b/sdk/cosmos/azure-cosmos/src/test/java/com/azure/cosmos/rx/UniqueIndexTest.java @@ -90,7 +90,8 @@ public void insertWithUniqueIndex() throws Exception { JsonNode doc2 = om.readValue("{\"name\":\"Alexander Pushkin\",\"description\":\"playwright\",\"id\": \"" + UUID.randomUUID().toString() + "\"}", JsonNode.class); JsonNode doc3 = om.readValue("{\"name\":\"حافظ شیرازی\",\"description\":\"poet\",\"id\": \"" + UUID.randomUUID().toString() + "\"}", JsonNode.class); - collection = database.createContainer(collectionDefinition).block().getContainer(); + database.createContainer(collectionDefinition).block(); + collection = database.getContainer(collectionDefinition.getId()); CosmosItemProperties properties = BridgeInternal.getProperties(collection.createItem(doc1).block()); @@ -126,7 +127,8 @@ public void replaceAndDeleteWithUniqueIndex() throws Exception { uniqueKeyPolicy.setUniqueKeys(Lists.newArrayList(uniqueKey)); collectionDefinition.setUniqueKeyPolicy(uniqueKeyPolicy); - collection = database.createContainer(collectionDefinition).block().getContainer(); + database.createContainer(collectionDefinition).block(); + collection = database.getContainer(collectionDefinition.getId()); ObjectMapper om = new ObjectMapper(); @@ -190,7 +192,8 @@ public void uniqueKeySerializationDeserialization() { collectionDefinition.setIndexingPolicy(indexingPolicy); - CosmosAsyncContainer createdCollection = database.createContainer(collectionDefinition).block().getContainer(); + database.createContainer(collectionDefinition).block(); + CosmosAsyncContainer createdCollection = database.getContainer(collectionDefinition.getId()); CosmosContainerProperties collection = createdCollection.read().block().getProperties();