diff --git a/sdk/cosmos/azure-spring-data-cosmos/src/main/java/com/azure/spring/data/cosmos/Constants.java b/sdk/cosmos/azure-spring-data-cosmos/src/main/java/com/azure/spring/data/cosmos/Constants.java index 58b945d2d507..47548ad5b229 100644 --- a/sdk/cosmos/azure-spring-data-cosmos/src/main/java/com/azure/spring/data/cosmos/Constants.java +++ b/sdk/cosmos/azure-spring-data-cosmos/src/main/java/com/azure/spring/data/cosmos/Constants.java @@ -10,7 +10,6 @@ public final class Constants { public static final String DEFAULT_COLLECTION_NAME = ""; - public static final String DEFAULT_REQUEST_UNIT = "4000"; public static final boolean DEFAULT_INDEXINGPOLICY_AUTOMATIC = true; public static final IndexingMode DEFAULT_INDEXINGPOLICY_MODE = IndexingMode.CONSISTENT; public static final String DEFAULT_REPOSITORY_IMPLEMENT_POSTFIX = "Impl"; diff --git a/sdk/cosmos/azure-spring-data-cosmos/src/main/java/com/azure/spring/data/cosmos/core/CosmosTemplate.java b/sdk/cosmos/azure-spring-data-cosmos/src/main/java/com/azure/spring/data/cosmos/core/CosmosTemplate.java index 2fbe470dc45a..7b0043ca791b 100644 --- a/sdk/cosmos/azure-spring-data-cosmos/src/main/java/com/azure/spring/data/cosmos/core/CosmosTemplate.java +++ b/sdk/cosmos/azure-spring-data-cosmos/src/main/java/com/azure/spring/data/cosmos/core/CosmosTemplate.java @@ -14,6 +14,7 @@ import com.azure.data.cosmos.CosmosClient; import com.azure.data.cosmos.CosmosContainerProperties; import com.azure.data.cosmos.CosmosContainerResponse; +import com.azure.data.cosmos.CosmosDatabase; import com.azure.data.cosmos.PartitionKey; import com.azure.spring.data.cosmos.common.CosmosdbUtils; import com.azure.spring.data.cosmos.common.Memoizer; @@ -402,9 +403,17 @@ public CosmosContainerProperties createContainerIfNotExists(CosmosEntityInformat + information.getPartitionKeyFieldName()); cosmosContainerProperties.defaultTimeToLive(information.getTimeToLive()); cosmosContainerProperties.indexingPolicy(information.getIndexingPolicy()); - return cosmosDatabaseResponse - .database() - .createContainerIfNotExists(cosmosContainerProperties, information.getRequestUnit()) + + CosmosDatabase database = cosmosDatabaseResponse.database(); + Mono mono = null; + + if (information.getRequestUnit() == null) { + mono = database.createContainerIfNotExists(cosmosContainerProperties); + } else { + mono = database.createContainerIfNotExists(cosmosContainerProperties, information.getRequestUnit()); + } + + return mono .onErrorResume(throwable -> CosmosDBExceptionUtils.exceptionHandler("Failed to create container", throwable)) .doOnNext(cosmosContainerResponse -> diff --git a/sdk/cosmos/azure-spring-data-cosmos/src/main/java/com/azure/spring/data/cosmos/core/ReactiveCosmosTemplate.java b/sdk/cosmos/azure-spring-data-cosmos/src/main/java/com/azure/spring/data/cosmos/core/ReactiveCosmosTemplate.java index d7f5528d8c05..b2e0204aed11 100644 --- a/sdk/cosmos/azure-spring-data-cosmos/src/main/java/com/azure/spring/data/cosmos/core/ReactiveCosmosTemplate.java +++ b/sdk/cosmos/azure-spring-data-cosmos/src/main/java/com/azure/spring/data/cosmos/core/ReactiveCosmosTemplate.java @@ -13,6 +13,7 @@ import com.azure.data.cosmos.CosmosClient; import com.azure.data.cosmos.CosmosContainerProperties; import com.azure.data.cosmos.CosmosContainerResponse; +import com.azure.data.cosmos.CosmosDatabase; import com.azure.data.cosmos.PartitionKey; import com.azure.spring.data.cosmos.common.CosmosdbUtils; import com.azure.spring.data.cosmos.common.Memoizer; @@ -120,9 +121,17 @@ public Mono createContainerIfNotExists(CosmosEntityInfo "/" + information.getPartitionKeyFieldName()); cosmosContainerProperties.defaultTimeToLive(information.getTimeToLive()); cosmosContainerProperties.indexingPolicy(information.getIndexingPolicy()); - return cosmosDatabaseResponse - .database() - .createContainerIfNotExists(cosmosContainerProperties, information.getRequestUnit()) + + CosmosDatabase database = cosmosDatabaseResponse.database(); + Mono mono = null; + + if (information.getRequestUnit() == null) { + mono = database.createContainerIfNotExists(cosmosContainerProperties); + } else { + mono = database.createContainerIfNotExists(cosmosContainerProperties, information.getRequestUnit()); + } + + return mono .map(cosmosContainerResponse -> { CosmosdbUtils.fillAndProcessResponseDiagnostics(responseDiagnosticsProcessor, cosmosContainerResponse, null); diff --git a/sdk/cosmos/azure-spring-data-cosmos/src/main/java/com/azure/spring/data/cosmos/core/mapping/Document.java b/sdk/cosmos/azure-spring-data-cosmos/src/main/java/com/azure/spring/data/cosmos/core/mapping/Document.java index 3a1740610df5..511cea4d7fa3 100644 --- a/sdk/cosmos/azure-spring-data-cosmos/src/main/java/com/azure/spring/data/cosmos/core/mapping/Document.java +++ b/sdk/cosmos/azure-spring-data-cosmos/src/main/java/com/azure/spring/data/cosmos/core/mapping/Document.java @@ -27,9 +27,9 @@ /** * To set request unit - * @return default as 4000 + * @return default as "" */ - String ru() default Constants.DEFAULT_REQUEST_UNIT; + String ru() default ""; /** * To set the ttl of container level diff --git a/sdk/cosmos/azure-spring-data-cosmos/src/main/java/com/azure/spring/data/cosmos/repository/support/CosmosEntityInformation.java b/sdk/cosmos/azure-spring-data-cosmos/src/main/java/com/azure/spring/data/cosmos/repository/support/CosmosEntityInformation.java index 940e9e91b751..268a2c6914d8 100644 --- a/sdk/cosmos/azure-spring-data-cosmos/src/main/java/com/azure/spring/data/cosmos/repository/support/CosmosEntityInformation.java +++ b/sdk/cosmos/azure-spring-data-cosmos/src/main/java/com/azure/spring/data/cosmos/repository/support/CosmosEntityInformation.java @@ -266,7 +266,7 @@ private Field getPartitionKeyField(Class domainType) { } private Integer getRequestUnit(Class domainType) { - Integer ru = Integer.parseInt(Constants.DEFAULT_REQUEST_UNIT); + Integer ru = null; final Document annotation = domainType.getAnnotation(Document.class); if (annotation != null diff --git a/sdk/cosmos/azure-spring-data-cosmos/src/test/java/com/azure/spring/data/cosmos/common/TestConstants.java b/sdk/cosmos/azure-spring-data-cosmos/src/test/java/com/azure/spring/data/cosmos/common/TestConstants.java index 477e0a75fa64..f05aef2174c1 100644 --- a/sdk/cosmos/azure-spring-data-cosmos/src/test/java/com/azure/spring/data/cosmos/common/TestConstants.java +++ b/sdk/cosmos/azure-spring-data-cosmos/src/test/java/com/azure/spring/data/cosmos/common/TestConstants.java @@ -19,7 +19,6 @@ public final class TestConstants { public static final int DEFAULT_TIME_TO_LIVE = -1; public static final String DEFAULT_COLLECTION_NAME = "Person"; - public static final int DEFAULT_REQUEST_UNIT = 4000; public static final boolean DEFAULT_INDEXINGPOLICY_AUTOMATIC = true; public static final IndexingMode DEFAULT_INDEXINGPOLICY_MODE = IndexingMode.CONSISTENT; public static final String[] DEFAULT_EXCLUDEDPATHS = {}; @@ -31,7 +30,6 @@ public final class TestConstants { }; public static final String ROLE_COLLECTION_NAME = "RoleCollectionName"; - public static final int REQUEST_UNIT = 4000; public static final int TIME_TO_LIVE = 5; public static final boolean INDEXINGPOLICY_AUTOMATIC = false; public static final IndexingMode INDEXINGPOLICY_MODE = IndexingMode.LAZY; diff --git a/sdk/cosmos/azure-spring-data-cosmos/src/test/java/com/azure/spring/data/cosmos/repository/CosmosAnnotationUnitTest.java b/sdk/cosmos/azure-spring-data-cosmos/src/test/java/com/azure/spring/data/cosmos/repository/CosmosAnnotationUnitTest.java index 0ffa19fb7a73..2488069f1d14 100644 --- a/sdk/cosmos/azure-spring-data-cosmos/src/test/java/com/azure/spring/data/cosmos/repository/CosmosAnnotationUnitTest.java +++ b/sdk/cosmos/azure-spring-data-cosmos/src/test/java/com/azure/spring/data/cosmos/repository/CosmosAnnotationUnitTest.java @@ -40,8 +40,6 @@ public void testDefaultIndexingPolicyAnnotation() { // ContainerName, RequestUnit, Automatic and IndexingMode Assert.isTrue(personInfo.getContainerName().equals(NoDBAnnotationPerson.class.getSimpleName()), "should be default collection name"); - Assert.isTrue(personInfo.getRequestUnit() == TestConstants.DEFAULT_REQUEST_UNIT, - "should be default request unit"); Assert.isTrue(policy.automatic() == TestConstants.DEFAULT_INDEXINGPOLICY_AUTOMATIC, "should be default indexing policy automatic"); Assert.isTrue(policy.indexingMode() == TestConstants.DEFAULT_INDEXINGPOLICY_MODE, @@ -69,8 +67,6 @@ public void testIndexingPolicyAnnotation() { Assert.isTrue(roleInfo.getContainerName().equals(TestConstants.ROLE_COLLECTION_NAME), "should be Role(class) collection name"); - Assert.isTrue(roleInfo.getRequestUnit() == TestConstants.REQUEST_UNIT, - "should be Role(class) request unit"); Assert.isTrue(policy.automatic() == TestConstants.INDEXINGPOLICY_AUTOMATIC, "should be Role(class) indexing policy automatic"); Assert.isTrue(policy.indexingMode() == TestConstants.INDEXINGPOLICY_MODE,