From 17aad79d2912baab6c3774729fa865e3649e501e Mon Sep 17 00:00:00 2001 From: Xiaolu Dai Date: Wed, 10 May 2023 17:12:35 +0800 Subject: [PATCH 01/11] support Spring Data Commons 3 --- .../cosmos/repository/CosmosRepository.java | 4 +++- .../repository/ReactiveCosmosRepository.java | 3 ++- sdk/spring/ci.yml | 22 +++++++++---------- sdk/spring/pom.xml | 8 +++---- 4 files changed, 20 insertions(+), 17 deletions(-) diff --git a/sdk/spring/azure-spring-data-cosmos/src/main/java/com/azure/spring/data/cosmos/repository/CosmosRepository.java b/sdk/spring/azure-spring-data-cosmos/src/main/java/com/azure/spring/data/cosmos/repository/CosmosRepository.java index 5763e9695313..c1615f3cbdb5 100644 --- a/sdk/spring/azure-spring-data-cosmos/src/main/java/com/azure/spring/data/cosmos/repository/CosmosRepository.java +++ b/sdk/spring/azure-spring-data-cosmos/src/main/java/com/azure/spring/data/cosmos/repository/CosmosRepository.java @@ -6,6 +6,7 @@ import com.azure.cosmos.models.CosmosPatchItemRequestOptions; import com.azure.cosmos.models.CosmosPatchOperations; import com.azure.cosmos.models.PartitionKey; +import org.springframework.data.repository.CrudRepository; import org.springframework.data.repository.NoRepositoryBean; import org.springframework.data.repository.PagingAndSortingRepository; @@ -17,7 +18,8 @@ * pagination and sorting abstraction. */ @NoRepositoryBean -public interface CosmosRepository extends PagingAndSortingRepository { +public interface CosmosRepository extends PagingAndSortingRepository, + CrudRepository { /** * Retrieves an entity by its id. diff --git a/sdk/spring/azure-spring-data-cosmos/src/main/java/com/azure/spring/data/cosmos/repository/ReactiveCosmosRepository.java b/sdk/spring/azure-spring-data-cosmos/src/main/java/com/azure/spring/data/cosmos/repository/ReactiveCosmosRepository.java index 0499e2e9c679..dcb69214de90 100644 --- a/sdk/spring/azure-spring-data-cosmos/src/main/java/com/azure/spring/data/cosmos/repository/ReactiveCosmosRepository.java +++ b/sdk/spring/azure-spring-data-cosmos/src/main/java/com/azure/spring/data/cosmos/repository/ReactiveCosmosRepository.java @@ -6,6 +6,7 @@ import com.azure.cosmos.models.CosmosPatchOperations; import com.azure.cosmos.models.PartitionKey; import org.springframework.data.repository.NoRepositoryBean; +import org.springframework.data.repository.reactive.ReactiveCrudRepository; import org.springframework.data.repository.reactive.ReactiveSortingRepository; import reactor.core.publisher.Flux; import reactor.core.publisher.Mono; @@ -13,7 +14,7 @@ * Repository interface with search and delete operation */ @NoRepositoryBean -public interface ReactiveCosmosRepository extends ReactiveSortingRepository { +public interface ReactiveCosmosRepository extends ReactiveSortingRepository, ReactiveCrudRepository { /** * Retrieves an entity by its id and partition key. diff --git a/sdk/spring/ci.yml b/sdk/spring/ci.yml index 42c7ad19db40..d71a77ac170b 100644 --- a/sdk/spring/ci.yml +++ b/sdk/spring/ci.yml @@ -27,10 +27,10 @@ pr: # boolean for each library. Note: AdditionalModules are never to have # parameter entries as those are not releasing libraries. parameters: -#- name: release_azurespringdatacosmos -# displayName: 'azure-spring-data-cosmos' -# type: boolean -# default: true +- name: release_azurespringdatacosmos + displayName: 'azure-spring-data-cosmos' + type: boolean + default: true - name: release_springcloudazurecore displayName: 'spring-cloud-azure-core' type: boolean @@ -227,10 +227,10 @@ extends: ServiceDirectory: spring EnableBatchRelease: true Artifacts: -# - name: azure-spring-data-cosmos -# groupId: com.azure -# safeName: azurespringdatacosmos -# releaseInBatch: ${{ parameters.release_azurespringdatacosmos }} + - name: azure-spring-data-cosmos + groupId: com.azure + safeName: azurespringdatacosmos + releaseInBatch: ${{ parameters.release_azurespringdatacosmos }} - name: spring-cloud-azure-core groupId: com.azure.spring safeName: springcloudazurecore @@ -551,8 +551,8 @@ extends: groupId: com.azure.spring safeName: springcloudazurestarterappconfigurationconfig releaseInBatch: ${{ parameters.release_springcloudazurestarterappconfigurationconfig }} -# AdditionalModules: -# - name: azure-spring-data-cosmos-test -# groupId: com.azure + AdditionalModules: + - name: azure-spring-data-cosmos-test + groupId: com.azure MatrixFilters: - JavaTestVersion=^(?!1.8|1.11).* diff --git a/sdk/spring/pom.xml b/sdk/spring/pom.xml index b06e4723fc62..388ec7c4c22e 100644 --- a/sdk/spring/pom.xml +++ b/sdk/spring/pom.xml @@ -66,8 +66,8 @@ spring-cloud-azure-feature-management spring-cloud-azure-feature-management-web spring-cloud-azure-starter-appconfiguration-config - - + azure-spring-data-cosmos + azure-spring-data-cosmos-test @@ -126,8 +126,8 @@ spring-cloud-azure-feature-management spring-cloud-azure-feature-management-web spring-cloud-azure-starter-appconfiguration-config - - + azure-spring-data-cosmos + azure-spring-data-cosmos-test From f4546cd3282f35eeeb62d6609c5437018bc3791e Mon Sep 17 00:00:00 2001 From: Xiaolu Dai Date: Thu, 11 May 2023 11:16:25 +0800 Subject: [PATCH 02/11] fix checkstyle --- .../main/resources/checkstyle/checkstyle-suppressions.xml | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/eng/code-quality-reports/src/main/resources/checkstyle/checkstyle-suppressions.xml b/eng/code-quality-reports/src/main/resources/checkstyle/checkstyle-suppressions.xml index d33da25d137a..c80ab7e7d0e3 100644 --- a/eng/code-quality-reports/src/main/resources/checkstyle/checkstyle-suppressions.xml +++ b/eng/code-quality-reports/src/main/resources/checkstyle/checkstyle-suppressions.xml @@ -405,6 +405,11 @@ the main ServiceBusClientBuilder. --> files="com.azure.identity.extensions.jdbc.postgresql.AzurePostgresqlAuthenticationPlugin"/> + + + + + From 1662103f0ded8ed7595f1e37db50398ea350794b Mon Sep 17 00:00:00 2001 From: Xiaolu Dai Date: Mon, 15 May 2023 14:53:28 +0800 Subject: [PATCH 03/11] try to fix tests pipeline --- .../data/cosmos/common/package-info.java | 2 +- .../spring/data/cosmos/package-info.java | 2 +- .../cosmos-spring/test-resources.json | 6 ++-- sdk/spring/tests-cosmos.yml | 34 +++++++++++++++++++ 4 files changed, 40 insertions(+), 4 deletions(-) create mode 100644 sdk/spring/tests-cosmos.yml diff --git a/sdk/spring/azure-spring-data-cosmos/src/main/java/com/azure/spring/data/cosmos/common/package-info.java b/sdk/spring/azure-spring-data-cosmos/src/main/java/com/azure/spring/data/cosmos/common/package-info.java index 0ddbe6ad976a..4e9a93c7820c 100644 --- a/sdk/spring/azure-spring-data-cosmos/src/main/java/com/azure/spring/data/cosmos/common/package-info.java +++ b/sdk/spring/azure-spring-data-cosmos/src/main/java/com/azure/spring/data/cosmos/common/package-info.java @@ -4,4 +4,4 @@ /** * Azure Event Hubs service abstraction. */ -package com.azure.spring.cloud.service.eventhubs; +package com.azure.spring.data.cosmos.common; diff --git a/sdk/spring/azure-spring-data-cosmos/src/main/java/com/azure/spring/data/cosmos/package-info.java b/sdk/spring/azure-spring-data-cosmos/src/main/java/com/azure/spring/data/cosmos/package-info.java index 30260f8b7c4e..987921e53dc0 100644 --- a/sdk/spring/azure-spring-data-cosmos/src/main/java/com/azure/spring/data/cosmos/package-info.java +++ b/sdk/spring/azure-spring-data-cosmos/src/main/java/com/azure/spring/data/cosmos/package-info.java @@ -4,4 +4,4 @@ /** * Spring Cloud Azure's Service Bus JMS extension. */ -package com.azure.spring.jms; +package com.azure.spring.data.cosmos; diff --git a/sdk/spring/spring-cloud-azure-integration-tests/test-resources/cosmos-spring/test-resources.json b/sdk/spring/spring-cloud-azure-integration-tests/test-resources/cosmos-spring/test-resources.json index 7cdd90f6ec52..6e0e5f28ef18 100644 --- a/sdk/spring/spring-cloud-azure-integration-tests/test-resources/cosmos-spring/test-resources.json +++ b/sdk/spring/spring-cloud-azure-integration-tests/test-resources/cosmos-spring/test-resources.json @@ -9,13 +9,15 @@ "type": "bool", "metadata": { "description": "Flag to enable or disable multiple write locations on CosmosDB Account" - } + }, + "defaultValue": false }, "defaultConsistencyLevel": { "type": "string", "metadata": { "description": "Default Cosmosdb Account level consistency" - } + }, + "defaultValue": "Session" }, "enableMultipleRegions": { "type": "bool", diff --git a/sdk/spring/tests-cosmos.yml b/sdk/spring/tests-cosmos.yml new file mode 100644 index 000000000000..4f60274fd933 --- /dev/null +++ b/sdk/spring/tests-cosmos.yml @@ -0,0 +1,34 @@ +trigger: none + +stages: + - template: ../../eng/pipelines/templates/stages/archetype-sdk-tests.yml + parameters: + SupportedClouds: 'Public,UsGov,China' + Clouds: 'Public' + CloudConfig: + Public: + SubscriptionConfiguration: $(sub-config-azure-cloud-test-resources) + UsGov: + SubscriptionConfiguration: $(sub-config-gov-test-resources) + China: + SubscriptionConfiguration: $(sub-config-cn-test-resources) + Location: 'chinanorth3' + TestResourceDirectories: + - spring/spring-cloud-azure-integration-tests/test-resources/common + - spring/spring-cloud-azure-integration-tests/test-resources/cosmos-spring + Artifacts: + - name: azure-spring-data-cosmos-test + groupId: com.azure + safeName: springdataazurecosmostest + TimeoutInMinutes: 240 + ServiceDirectory: spring + TestName: SpringDataCosmosIntegrationTests + TestGoals: 'verify' +# TestOptions: '-DskipSpringITs=false -Dcompiler.failondeprecatedstatus=-' + MatrixFilters: + - JavaTestVersion=^(?!1.8|1.11).* + MatrixConfigs: + - Name: SpringDataCosmos + Path: cosmos-integration-matrix.json + Selection: all + GenerateVMJobs: true From 63915ac81fe63c7c1148832974f975f5690d4d6a Mon Sep 17 00:00:00 2001 From: Xiaolu Dai Date: Tue, 16 May 2023 10:43:54 +0800 Subject: [PATCH 04/11] try to trigger cosmos ci --- sdk/cosmos/ci.spring.yml | 1 + sdk/cosmos/ci.yml | 1 + 2 files changed, 2 insertions(+) diff --git a/sdk/cosmos/ci.spring.yml b/sdk/cosmos/ci.spring.yml index 83340b58988a..f630a5588e2b 100644 --- a/sdk/cosmos/ci.spring.yml +++ b/sdk/cosmos/ci.spring.yml @@ -76,3 +76,4 @@ extends: groupId: com.azure safeName: azurespringdatacosmos releaseInBatch: false + diff --git a/sdk/cosmos/ci.yml b/sdk/cosmos/ci.yml index daa50cfb56e9..c972dffec649 100644 --- a/sdk/cosmos/ci.yml +++ b/sdk/cosmos/ci.yml @@ -143,3 +143,4 @@ extends: groupId: com.azure.cosmos.spark - name: azure-spring-data-cosmos groupId: com.azure + From ef6eb9161285e84e55189de77a05e216d12ce054 Mon Sep 17 00:00:00 2001 From: Xiaolu Dai Date: Tue, 16 May 2023 11:17:21 +0800 Subject: [PATCH 05/11] fix ci and checkstyle --- .../src/main/resources/checkstyle/checkstyle-suppressions.xml | 3 ++- sdk/cosmos/ci.spring.yml | 3 ++- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/eng/code-quality-reports/src/main/resources/checkstyle/checkstyle-suppressions.xml b/eng/code-quality-reports/src/main/resources/checkstyle/checkstyle-suppressions.xml index c80ab7e7d0e3..5845b43d2360 100644 --- a/eng/code-quality-reports/src/main/resources/checkstyle/checkstyle-suppressions.xml +++ b/eng/code-quality-reports/src/main/resources/checkstyle/checkstyle-suppressions.xml @@ -405,9 +405,10 @@ the main ServiceBusClientBuilder. --> files="com.azure.identity.extensions.jdbc.postgresql.AzurePostgresqlAuthenticationPlugin"/> - + + diff --git a/sdk/cosmos/ci.spring.yml b/sdk/cosmos/ci.spring.yml index f630a5588e2b..537bdea6d874 100644 --- a/sdk/cosmos/ci.spring.yml +++ b/sdk/cosmos/ci.spring.yml @@ -76,4 +76,5 @@ extends: groupId: com.azure safeName: azurespringdatacosmos releaseInBatch: false - + MatrixFilters: + - JavaTestVersion=^(?!1.8|1.11).* From babf92ff6e68f26e56da44816712e1d60fd1db78 Mon Sep 17 00:00:00 2001 From: Kushagra Thapar Date: Mon, 15 May 2023 23:24:07 -0700 Subject: [PATCH 06/11] Updated test-resources and matrix for testing --- sdk/spring/cosmos-integration-matrix.json | 2 +- .../cosmos-spring/test-resources.json | 33 +++++-------------- 2 files changed, 10 insertions(+), 25 deletions(-) diff --git a/sdk/spring/cosmos-integration-matrix.json b/sdk/spring/cosmos-integration-matrix.json index da3fd9208ee1..8bd4e66991d0 100644 --- a/sdk/spring/cosmos-integration-matrix.json +++ b/sdk/spring/cosmos-integration-matrix.json @@ -2,7 +2,7 @@ "matrix": { "Cosmos": { "Session_Integration": { - "ArmTemplateParameters": "@{ enableMultipleWriteLocations = $false; defaultConsistencyLevel = 'Session' }", + "ArmTemplateParameters": "@{ defaultConsistencyLevel = 'Session' }", "ProfileFlag": "-P integration-test-azure", "Pool": "azsdk-pool-mms-ubuntu-2004-general", "OSVmImage": "MMSUbuntu2004" diff --git a/sdk/spring/spring-cloud-azure-integration-tests/test-resources/cosmos-spring/test-resources.json b/sdk/spring/spring-cloud-azure-integration-tests/test-resources/cosmos-spring/test-resources.json index 8d9b5cbf8926..b10a46912c24 100644 --- a/sdk/spring/spring-cloud-azure-integration-tests/test-resources/cosmos-spring/test-resources.json +++ b/sdk/spring/spring-cloud-azure-integration-tests/test-resources/cosmos-spring/test-resources.json @@ -39,29 +39,7 @@ "accountName": "[toLower(parameters('baseName'))]", "newAccountName": "[toLower(concat(parameters('baseName'), '2'))]", "resourceId": "[resourceId('Microsoft.DocumentDB/databaseAccounts', variables('accountName'))]", - "newResourceId": "[resourceId('Microsoft.DocumentDB/databaseAccounts', variables('newAccountName'))]", - "singleRegionConfiguration": [ - { - "locationName": "West Central US", - "provisioningState": "Succeeded", - "failoverPriority": 0, - "isZoneRedundant": false - }], - "multiRegionConfiguration": [ - { - "locationName": "West Central US", - "provisioningState": "Succeeded", - "failoverPriority": 0, - "isZoneRedundant": false - }, - { - "locationName": "Central US", - "provisioningState": "Succeeded", - "failoverPriority": 1, - "isZoneRedundant": false - } - ], - "locationsConfiguration": "[if(parameters('enableMultipleRegions'), variables('multiRegionConfiguration'), variables('singleRegionConfiguration'))]" + "newResourceId": "[resourceId('Microsoft.DocumentDB/databaseAccounts', variables('newAccountName'))]" }, "resources": [ { @@ -86,7 +64,14 @@ "maxIntervalInSeconds": 5, "maxStalenessPrefix": 100 }, - "locations": "[variables('locationsConfiguration')]", + "locations": [ + { + "locationName": "[variables('location')]", + "provisioningState": "Succeeded", + "failoverPriority": 0, + "isZoneRedundant": false + } + ], "capabilities": [], "ipRules": [] } From 390150ac61d932c01390d19c3e9c9cc7f55e4764 Mon Sep 17 00:00:00 2001 From: Xiaolu Dai Date: Tue, 16 May 2023 16:06:07 +0800 Subject: [PATCH 07/11] fix cosmos ci, it will run the spring-data-cosmos, which is compiled with Java17 --- sdk/cosmos/ci.yml | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/sdk/cosmos/ci.yml b/sdk/cosmos/ci.yml index c972dffec649..5ee8a14451cd 100644 --- a/sdk/cosmos/ci.yml +++ b/sdk/cosmos/ci.yml @@ -143,4 +143,5 @@ extends: groupId: com.azure.cosmos.spark - name: azure-spring-data-cosmos groupId: com.azure - + MatrixFilters: + - JavaTestVersion=^(?!1.8|1.11).* From 72828a37a4c246cf54cb9a25ed5cd364e60518c4 Mon Sep 17 00:00:00 2001 From: Xiaolu Dai Date: Tue, 16 May 2023 16:41:50 +0800 Subject: [PATCH 08/11] fix cosmos ci --- .../templates/stages/cosmos-sdk-client.yml | 5 +++++ .../cosmos-spring/test-resources.json | 16 ++++++++++++---- 2 files changed, 17 insertions(+), 4 deletions(-) diff --git a/eng/pipelines/templates/stages/cosmos-sdk-client.yml b/eng/pipelines/templates/stages/cosmos-sdk-client.yml index dedff5047cde..cc44a190d582 100644 --- a/eng/pipelines/templates/stages/cosmos-sdk-client.yml +++ b/eng/pipelines/templates/stages/cosmos-sdk-client.yml @@ -27,6 +27,9 @@ parameters: - name: UseEsrpRelease type: boolean default: true +- name: MatrixFilters + type: object + default: [] variables: - template: /eng/pipelines/templates/variables/globals.yml @@ -54,6 +57,8 @@ stages: NonSparseParameters: Agent GenerateVMJobs: true MatrixFilters: + - ${{ each filter in parameters.MatrixFilters }}: + - ${{ filter }} - TestFromSource=^$|false MatrixReplace: - AZURE_TEST.*=.*/ diff --git a/sdk/spring/spring-cloud-azure-integration-tests/test-resources/cosmos-spring/test-resources.json b/sdk/spring/spring-cloud-azure-integration-tests/test-resources/cosmos-spring/test-resources.json index b10a46912c24..42a56fcfcb37 100644 --- a/sdk/spring/spring-cloud-azure-integration-tests/test-resources/cosmos-spring/test-resources.json +++ b/sdk/spring/spring-cloud-azure-integration-tests/test-resources/cosmos-spring/test-resources.json @@ -39,14 +39,15 @@ "accountName": "[toLower(parameters('baseName'))]", "newAccountName": "[toLower(concat(parameters('baseName'), '2'))]", "resourceId": "[resourceId('Microsoft.DocumentDB/databaseAccounts', variables('accountName'))]", - "newResourceId": "[resourceId('Microsoft.DocumentDB/databaseAccounts', variables('newAccountName'))]" + "newResourceId": "[resourceId('Microsoft.DocumentDB/databaseAccounts', variables('newAccountName'))]", + "location": "[resourceGroup().location]" }, "resources": [ { "type": "Microsoft.DocumentDB/databaseAccounts", "apiVersion": "[variables('apiVersion')]", "name": "[variables('accountName')]", - "location": "[resourceGroup().location]", + "location": "[variables('location')]", "kind": "GlobalDocumentDB", "properties": { "publicNetworkAccess": "Enabled", @@ -80,7 +81,7 @@ "type": "Microsoft.DocumentDB/databaseAccounts", "apiVersion": "[variables('apiVersion')]", "name": "[variables('newAccountName')]", - "location": "[resourceGroup().location]", + "location": "[variables('location')]", "kind": "GlobalDocumentDB", "properties": { "publicNetworkAccess": "Enabled", @@ -98,7 +99,14 @@ "maxIntervalInSeconds": 5, "maxStalenessPrefix": 100 }, - "locations": "[variables('locationsConfiguration')]", + "locations": [ + { + "locationName": "[variables('location')]", + "provisioningState": "Succeeded", + "failoverPriority": 0, + "isZoneRedundant": false + } + ], "capabilities": [], "ipRules": [] } From a0ef07c45dc4fcea2d3d2b9e327d1d25c643e121 Mon Sep 17 00:00:00 2001 From: Xiaolu Dai Date: Tue, 16 May 2023 17:22:54 +0800 Subject: [PATCH 09/11] add IT stage for spring-data-cosmos --- .../templates/stages/cosmos-sdk-client.yml | 3 ++ sdk/spring/tests-cosmos.yml | 34 ------------------- sdk/spring/tests.yml | 27 +++++++++++++-- 3 files changed, 28 insertions(+), 36 deletions(-) delete mode 100644 sdk/spring/tests-cosmos.yml diff --git a/eng/pipelines/templates/stages/cosmos-sdk-client.yml b/eng/pipelines/templates/stages/cosmos-sdk-client.yml index cc44a190d582..4be60dff4d32 100644 --- a/eng/pipelines/templates/stages/cosmos-sdk-client.yml +++ b/eng/pipelines/templates/stages/cosmos-sdk-client.yml @@ -77,6 +77,9 @@ stages: Path: eng/pipelines/templates/stages/cosmos-emulator-matrix.json Selection: all GenerateVMJobs: true + MatrixFilters: + - ${{ each filter in parameters.MatrixFilters }}: + - ${{ filter }} AdditionalParameters: BuildParallelization: 1 DisableAzureResourceCreation: true diff --git a/sdk/spring/tests-cosmos.yml b/sdk/spring/tests-cosmos.yml deleted file mode 100644 index 4f60274fd933..000000000000 --- a/sdk/spring/tests-cosmos.yml +++ /dev/null @@ -1,34 +0,0 @@ -trigger: none - -stages: - - template: ../../eng/pipelines/templates/stages/archetype-sdk-tests.yml - parameters: - SupportedClouds: 'Public,UsGov,China' - Clouds: 'Public' - CloudConfig: - Public: - SubscriptionConfiguration: $(sub-config-azure-cloud-test-resources) - UsGov: - SubscriptionConfiguration: $(sub-config-gov-test-resources) - China: - SubscriptionConfiguration: $(sub-config-cn-test-resources) - Location: 'chinanorth3' - TestResourceDirectories: - - spring/spring-cloud-azure-integration-tests/test-resources/common - - spring/spring-cloud-azure-integration-tests/test-resources/cosmos-spring - Artifacts: - - name: azure-spring-data-cosmos-test - groupId: com.azure - safeName: springdataazurecosmostest - TimeoutInMinutes: 240 - ServiceDirectory: spring - TestName: SpringDataCosmosIntegrationTests - TestGoals: 'verify' -# TestOptions: '-DskipSpringITs=false -Dcompiler.failondeprecatedstatus=-' - MatrixFilters: - - JavaTestVersion=^(?!1.8|1.11).* - MatrixConfigs: - - Name: SpringDataCosmos - Path: cosmos-integration-matrix.json - Selection: all - GenerateVMJobs: true diff --git a/sdk/spring/tests.yml b/sdk/spring/tests.yml index 41ff49747c6e..6aac67a41714 100644 --- a/sdk/spring/tests.yml +++ b/sdk/spring/tests.yml @@ -18,7 +18,6 @@ stages: - spring/spring-cloud-azure-integration-tests/test-resources/jdbc/mysql - spring/spring-cloud-azure-integration-tests/test-resources/appconfiguration - spring/spring-cloud-azure-integration-tests/test-resources/cosmos - - spring/spring-cloud-azure-integration-tests/test-resources/cosmos-spring - spring/spring-cloud-azure-integration-tests/test-resources/servicebus - spring/spring-cloud-azure-integration-tests/test-resources/eventhubs - spring/spring-cloud-azure-integration-tests/test-resources/storage @@ -30,8 +29,32 @@ stages: safeName: springcloudazureintegrationtests TimeoutInMinutes: 240 ServiceDirectory: spring - TestName: SpringIntegrationTests + TestName: Spring-IT TestGoals: 'verify' TestOptions: '-DskipSpringITs=false -Dcompiler.failondeprecatedstatus=-' MatrixFilters: - JavaTestVersion=^(?!1.8|1.11).* + - template: ../../eng/pipelines/templates/stages/archetype-sdk-tests.yml + parameters: + SupportedClouds: 'Public,UsGov,China' + Clouds: 'Public' + CloudConfig: + Public: + SubscriptionConfiguration: $(sub-config-azure-cloud-test-resources) + UsGov: + SubscriptionConfiguration: $(sub-config-gov-test-resources) + China: + SubscriptionConfiguration: $(sub-config-cn-test-resources) + TestResourceDirectories: + - spring/spring-cloud-azure-integration-tests/test-resources/cosmos-spring + Artifacts: + - name: azure-spring-data-cosmos + groupId: com.azure + safeName: azurespringdatacosmos + TimeoutInMinutes: 60 + ServiceDirectory: spring + TestName: Spring-Data-Cosmos-IT + TestGoals: 'verify' + TestOptions: '-P integration-test-azure' + MatrixFilters: + - JavaTestVersion=^(?!1.8|1.11).* From 1cbf5c940a173bc7a1b08fe86594db71854b8cf7 Mon Sep 17 00:00:00 2001 From: Xiaolu Dai Date: Tue, 16 May 2023 17:27:05 +0800 Subject: [PATCH 10/11] fix stage name --- sdk/spring/tests.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/sdk/spring/tests.yml b/sdk/spring/tests.yml index 6aac67a41714..01e1ac55ddcb 100644 --- a/sdk/spring/tests.yml +++ b/sdk/spring/tests.yml @@ -29,7 +29,7 @@ stages: safeName: springcloudazureintegrationtests TimeoutInMinutes: 240 ServiceDirectory: spring - TestName: Spring-IT + TestName: Spring_IT TestGoals: 'verify' TestOptions: '-DskipSpringITs=false -Dcompiler.failondeprecatedstatus=-' MatrixFilters: @@ -53,7 +53,7 @@ stages: safeName: azurespringdatacosmos TimeoutInMinutes: 60 ServiceDirectory: spring - TestName: Spring-Data-Cosmos-IT + TestName: Spring_Data_Cosmos_IT TestGoals: 'verify' TestOptions: '-P integration-test-azure' MatrixFilters: From c69d2e21aefac134b1c1cc281d3d0a83fb68982a Mon Sep 17 00:00:00 2001 From: Xiaolu Dai Date: Wed, 17 May 2023 17:28:17 +0800 Subject: [PATCH 11/11] fix test --- .../core/mapping/CosmosAuditingRegistrar.java | 25 +++++++++++-------- 1 file changed, 14 insertions(+), 11 deletions(-) diff --git a/sdk/spring/azure-spring-data-cosmos/src/main/java/com/azure/spring/data/cosmos/core/mapping/CosmosAuditingRegistrar.java b/sdk/spring/azure-spring-data-cosmos/src/main/java/com/azure/spring/data/cosmos/core/mapping/CosmosAuditingRegistrar.java index e79a9fc05025..ff4a49791b5d 100644 --- a/sdk/spring/azure-spring-data-cosmos/src/main/java/com/azure/spring/data/cosmos/core/mapping/CosmosAuditingRegistrar.java +++ b/sdk/spring/azure-spring-data-cosmos/src/main/java/com/azure/spring/data/cosmos/core/mapping/CosmosAuditingRegistrar.java @@ -5,9 +5,9 @@ import com.azure.spring.data.cosmos.Constants; import org.springframework.beans.factory.config.BeanDefinition; -import org.springframework.beans.factory.support.AbstractBeanDefinition; import org.springframework.beans.factory.support.BeanDefinitionBuilder; import org.springframework.beans.factory.support.BeanDefinitionRegistry; +import org.springframework.core.Ordered; import org.springframework.data.auditing.IsNewAwareAuditingHandler; import org.springframework.data.auditing.config.AuditingBeanDefinitionRegistrarSupport; import org.springframework.data.auditing.config.AuditingConfiguration; @@ -19,7 +19,7 @@ * Adapted from MongoAuditingRegistrar.java */ -class CosmosAuditingRegistrar extends AuditingBeanDefinitionRegistrarSupport { +class CosmosAuditingRegistrar extends AuditingBeanDefinitionRegistrarSupport implements Ordered { /* * (non-Javadoc) @@ -39,6 +39,11 @@ protected String getAuditingHandlerBeanName() { return Constants.AUDITING_HANDLER_BEAN_NAME; } + @Override + protected void postProcess(BeanDefinitionBuilder builder, AuditingConfiguration configuration, BeanDefinitionRegistry registry) { + builder.setFactoryMethod("from").addConstructorArgReference("cosmosMappingContext"); + } + /* * (non-Javadoc) * @see org.springframework.data.auditing.config.AuditingBeanDefinitionRegistrarSupport# @@ -48,15 +53,8 @@ protected String getAuditingHandlerBeanName() { protected BeanDefinitionBuilder getAuditHandlerBeanDefinitionBuilder(AuditingConfiguration configuration) { Assert.notNull(configuration, "AuditingConfiguration must not be null!"); - final BeanDefinitionBuilder builder = - BeanDefinitionBuilder.rootBeanDefinition(IsNewAwareAuditingHandler.class); - - final BeanDefinitionBuilder definition = - BeanDefinitionBuilder.genericBeanDefinition(CosmosMappingContext.class); - definition.setAutowireMode(AbstractBeanDefinition.AUTOWIRE_CONSTRUCTOR); - - builder.addConstructorArgValue(definition.getBeanDefinition()); - return configureDefaultAuditHandlerAttributes(configuration, builder); + return configureDefaultAuditHandlerAttributes(configuration, + BeanDefinitionBuilder.rootBeanDefinition(IsNewAwareAuditingHandler.class)); } /* @@ -72,4 +70,9 @@ protected void registerAuditListenerBeanDefinition(BeanDefinition auditingHandle // IsNewAwareAuditingHandler directly - this would require integrating CosmosTemplate with // the spring eventing system which would be a chunk of work beyond the scope of this PR } + + @Override + public int getOrder() { + return Ordered.LOWEST_PRECEDENCE; + } }