Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion eng/jacoco-test-coverage/pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -575,7 +575,7 @@
<dependency>
<groupId>com.azure</groupId>
<artifactId>azure-spring-data-cosmos</artifactId>
<version>3.35.0-beta.1</version> <!-- {x-version-update;com.azure:azure-spring-data-cosmos;current} -->
<version>5.3.0-beta.1</version> <!-- {x-version-update;com.azure:azure-spring-data-cosmos;current} -->
</dependency>
<dependency>
<groupId>com.azure</groupId>
Expand Down
3 changes: 2 additions & 1 deletion eng/versioning/version_client.txt
Original file line number Diff line number Diff line change
Expand Up @@ -166,7 +166,6 @@ com.azure:azure-security-keyvault-perf;1.0.0-beta.1;1.0.0-beta.1
com.azure:azure-sdk-template;1.1.1234;1.2.2-beta.1
com.azure:azure-sdk-template-two;1.0.0-beta.1;1.0.0-beta.1
com.azure:azure-sdk-template-three;1.0.0-beta.1;1.0.0-beta.1
com.azure:azure-spring-data-cosmos;3.34.0;3.35.0-beta.1
com.azure:azure-storage-blob;12.22.2;12.23.0-beta.1
com.azure:azure-storage-blob-batch;12.18.2;12.19.0-beta.1
com.azure:azure-storage-blob-changefeed;12.0.0-beta.18;12.0.0-beta.19
Expand Down Expand Up @@ -212,6 +211,7 @@ com.azure.spring:spring-cloud-azure-starter-active-directory-b2c;5.2.0;5.3.0-bet
com.azure.spring:spring-cloud-azure-starter-actuator;5.2.0;5.3.0-beta.1
com.azure.spring:spring-cloud-azure-starter-appconfiguration;5.2.0;5.3.0-beta.1
com.azure.spring:spring-cloud-azure-starter-cosmos;5.2.0;5.3.0-beta.1
com.azure.spring:spring-cloud-azure-starter-data-cosmos;5.3.0-beta.1;5.3.0-beta.1
com.azure.spring:spring-cloud-azure-starter-eventhubs;5.2.0;5.3.0-beta.1
com.azure.spring:spring-cloud-azure-starter-jdbc-mysql;5.2.0;5.3.0-beta.1
com.azure.spring:spring-cloud-azure-starter-jdbc-postgresql;5.2.0;5.3.0-beta.1
Expand All @@ -234,6 +234,7 @@ com.azure.spring:spring-cloud-azure-stream-binder-eventhubs-core;5.2.0;5.3.0-bet
com.azure.spring:spring-cloud-azure-stream-binder-eventhubs;5.2.0;5.3.0-beta.1
com.azure.spring:spring-cloud-azure-stream-binder-servicebus-core;5.2.0;5.3.0-beta.1
com.azure.spring:spring-cloud-azure-stream-binder-servicebus;5.2.0;5.3.0-beta.1
com.azure:azure-spring-data-cosmos;5.3.0-beta.1;5.3.0-beta.1
com.azure.resourcemanager:azure-resourcemanager;2.27.0;2.28.0-beta.1
com.azure.resourcemanager:azure-resourcemanager-appplatform;2.27.0;2.28.0-beta.1
com.azure.resourcemanager:azure-resourcemanager-appservice;2.27.0;2.28.0-beta.1
Expand Down
2 changes: 1 addition & 1 deletion sdk/spring/azure-spring-data-cosmos/CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
## Release History

### 3.35.0-beta.1 (Unreleased)
### 5.3.0-beta.1 (Unreleased)

#### Features Added

Expand Down
2 changes: 1 addition & 1 deletion sdk/spring/azure-spring-data-cosmos/pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@

<groupId>com.azure</groupId>
<artifactId>azure-spring-data-cosmos</artifactId>
<version>3.35.0-beta.1</version> <!-- {x-version-update;com.azure:azure-spring-data-cosmos;current} -->
<version>5.3.0-beta.1</version> <!-- {x-version-update;com.azure:azure-spring-data-cosmos;current} -->
<packaging>jar</packaging>
<name>Spring Data for Azure Cosmos DB SQL API</name>
<description>Spring Data for Azure Cosmos DB SQL API</description>
Expand Down
8 changes: 2 additions & 6 deletions sdk/spring/pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -34,9 +34,7 @@
<module>spring-cloud-azure-starter-actuator</module>
<module>spring-cloud-azure-starter-appconfiguration</module>
<module>spring-cloud-azure-starter-cosmos</module>
<!--
Due to compatibility with Spring Boot 3, temporarily excluded in 'feature/spring-cloud-azure-6.x' branch.
<module>spring-cloud-azure-starter-data-cosmos</module>-->
<module>spring-cloud-azure-starter-data-cosmos</module>
<module>spring-cloud-azure-starter-eventhubs</module>
<module>spring-cloud-azure-starter-keyvault</module>
<module>spring-cloud-azure-starter-keyvault-certificates</module>
Expand Down Expand Up @@ -94,9 +92,7 @@
<module>spring-cloud-azure-starter-actuator</module>
<module>spring-cloud-azure-starter-appconfiguration</module>
<module>spring-cloud-azure-starter-cosmos</module>
<!--
Due to compatibility with Spring Boot 3, temporarily excluded in 'feature/spring-cloud-azure-6.x' branch.
<module>spring-cloud-azure-starter-data-cosmos</module>-->
<module>spring-cloud-azure-starter-data-cosmos</module>
<module>spring-cloud-azure-starter-eventhubs</module>
<module>spring-cloud-azure-starter-keyvault</module>
<module>spring-cloud-azure-starter-keyvault-certificates</module>
Expand Down
8 changes: 8 additions & 0 deletions sdk/spring/spring-cloud-azure-autoconfigure/pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -109,6 +109,14 @@
<optional>true</optional>
</dependency>

<!-- Cosmos -->
<dependency>
<groupId>com.azure</groupId>
<artifactId>azure-spring-data-cosmos</artifactId>
<version>5.3.0-beta.1</version> <!-- {x-version-update;com.azure:azure-spring-data-cosmos;current} -->
<optional>true</optional>
</dependency>

<!--Spring JMS-->
<dependency>
<groupId>org.springframework</groupId>
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,57 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
// Licensed under the MIT License.

package com.azure.spring.cloud.autoconfigure.implementation.data.cosmos;

import com.azure.spring.cloud.autoconfigure.implementation.cosmos.properties.AzureCosmosProperties;
import com.azure.spring.data.cosmos.config.AbstractCosmosConfiguration;
import com.azure.spring.data.cosmos.config.CosmosConfig;
import com.azure.spring.data.cosmos.core.CosmosTemplate;
import com.azure.spring.data.cosmos.core.ResponseDiagnosticsProcessor;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.autoconfigure.EnableAutoConfiguration;
import org.springframework.boot.autoconfigure.condition.ConditionalOnClass;
import org.springframework.boot.autoconfigure.condition.ConditionalOnExpression;
import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty;
import org.springframework.context.annotation.Configuration;
import org.springframework.context.annotation.Import;

/**
* {@link EnableAutoConfiguration Auto-configuration} for Spring Data Cosmos support.
*
* @since 4.0.0
*/
@Configuration(proxyBeanMethods = false)
@ConditionalOnClass({ CosmosTemplate.class })
@ConditionalOnExpression("${spring.cloud.azure.cosmos.enabled:true}")
@ConditionalOnProperty(prefix = "spring.cloud.azure.cosmos", name = { "endpoint", "database" })
@Import(CosmosDataDiagnosticsConfiguration.class)
public class CosmosDataAutoConfiguration extends AbstractCosmosConfiguration {

private final AzureCosmosProperties cosmosProperties;
private final ResponseDiagnosticsProcessor responseDiagnosticsProcessor;

CosmosDataAutoConfiguration(AzureCosmosProperties cosmosProperties,
@Autowired(required = false) ResponseDiagnosticsProcessor responseDiagnosticsProcessor) {
this.cosmosProperties = cosmosProperties;
this.responseDiagnosticsProcessor = responseDiagnosticsProcessor;
}

@Override
protected String getDatabaseName() {
return cosmosProperties.getDatabase();
}

@Override
public CosmosConfig cosmosConfig() {
final CosmosConfig.CosmosConfigBuilder builder = CosmosConfig.builder();
builder.enableQueryMetrics(cosmosProperties.isPopulateQueryMetrics());

if (responseDiagnosticsProcessor != null) {
builder.responseDiagnosticsProcessor(responseDiagnosticsProcessor);
}

return builder.build();
}

}
Original file line number Diff line number Diff line change
@@ -0,0 +1,27 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
// Licensed under the MIT License.

package com.azure.spring.cloud.autoconfigure.implementation.data.cosmos;
import com.azure.spring.data.cosmos.core.ResponseDiagnosticsProcessor;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean;
import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;

@Configuration(proxyBeanMethods = false)
@ConditionalOnProperty(value = "spring.cloud.azure.cosmos.populate-query-metrics", havingValue = "true")
class CosmosDataDiagnosticsConfiguration {
private static final Logger LOGGER = LoggerFactory.getLogger(CosmosDataDiagnosticsConfiguration.class);

/**
* Default implementation for the {@link ResponseDiagnosticsProcessor}
* @return the response diagnostics logs
*/
@Bean
@ConditionalOnMissingBean
ResponseDiagnosticsProcessor responseDiagnosticsProcessor() {
return responseDiagnostics -> LOGGER.info("Response Diagnostics {}", responseDiagnostics);
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,33 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
// Licensed under the MIT License.

package com.azure.spring.cloud.autoconfigure.implementation.data.cosmos;

import com.azure.spring.data.cosmos.core.ReactiveCosmosTemplate;
import com.azure.spring.data.cosmos.repository.ReactiveCosmosRepository;
import com.azure.spring.data.cosmos.repository.config.ReactiveCosmosRepositoryConfigurationExtension;
import com.azure.spring.data.cosmos.repository.support.ReactiveCosmosRepositoryFactoryBean;
import org.springframework.boot.autoconfigure.AutoConfigureAfter;
import org.springframework.boot.autoconfigure.condition.ConditionalOnBean;
import org.springframework.boot.autoconfigure.condition.ConditionalOnClass;
import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean;
import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty;
import org.springframework.context.annotation.Configuration;
import org.springframework.context.annotation.Import;

/**
* Import {@link CosmosReactiveRepositoriesAutoConfigureRegistrar} class as a Bean in Spring.
*/
@Configuration(proxyBeanMethods = false)
@ConditionalOnClass({ ReactiveCosmosRepository.class })
@ConditionalOnMissingBean({ ReactiveCosmosRepositoryFactoryBean.class,
ReactiveCosmosRepositoryConfigurationExtension.class })
@AutoConfigureAfter(com.azure.spring.cloud.autoconfigure.implementation.data.cosmos.CosmosDataAutoConfiguration.class)
@ConditionalOnBean(ReactiveCosmosTemplate.class)
@ConditionalOnProperty(prefix = "spring.cloud.azure.cosmos.repositories",
name = "enabled",
havingValue = "true",
matchIfMissing = true)
@Import(CosmosReactiveRepositoriesAutoConfigureRegistrar.class)
public class CosmosReactiveRepositoriesAutoConfiguration {
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,38 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
// Licensed under the MIT License.

package com.azure.spring.cloud.autoconfigure.implementation.data.cosmos;

import com.azure.spring.data.cosmos.repository.config.EnableReactiveCosmosRepositories;
import com.azure.spring.data.cosmos.repository.config.ReactiveCosmosRepositoryConfigurationExtension;
import org.springframework.boot.autoconfigure.data.AbstractRepositoryConfigurationSourceSupport;
import org.springframework.data.repository.config.RepositoryConfigurationExtension;

import java.lang.annotation.Annotation;

/**
* Declare {@link EnableReactiveCosmosRepositories} annotation and {@link EnableCosmosReactiveRepositoriesConfiguration}
* configuration for default async auto-configuration.
*/
public class CosmosReactiveRepositoriesAutoConfigureRegistrar extends AbstractRepositoryConfigurationSourceSupport {
@Override
protected Class<? extends Annotation> getAnnotation() {
return EnableReactiveCosmosRepositories.class;
}

@Override
protected Class<?> getConfiguration() {
return EnableCosmosReactiveRepositoriesConfiguration.class;
}

@Override
protected RepositoryConfigurationExtension getRepositoryConfigurationExtension() {
return new ReactiveCosmosRepositoryConfigurationExtension();
}

@EnableReactiveCosmosRepositories
private static class EnableCosmosReactiveRepositoriesConfiguration {

}

}
Original file line number Diff line number Diff line change
@@ -0,0 +1,33 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
// Licensed under the MIT License.

package com.azure.spring.cloud.autoconfigure.implementation.data.cosmos;

import com.azure.spring.data.cosmos.core.CosmosTemplate;
import com.azure.spring.data.cosmos.repository.CosmosRepository;
import com.azure.spring.data.cosmos.repository.config.CosmosRepositoryConfigurationExtension;
import com.azure.spring.data.cosmos.repository.support.CosmosRepositoryFactoryBean;
import org.springframework.boot.autoconfigure.AutoConfigureAfter;
import org.springframework.boot.autoconfigure.condition.ConditionalOnBean;
import org.springframework.boot.autoconfigure.condition.ConditionalOnClass;
import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean;
import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty;
import org.springframework.context.annotation.Configuration;
import org.springframework.context.annotation.Import;

/**
* Import {@link CosmosRepositoriesAutoConfigureRegistrar} class as a Bean in Spring.
*/
@Configuration(proxyBeanMethods = false)
@ConditionalOnClass({ CosmosRepository.class })
@ConditionalOnMissingBean({ CosmosRepositoryFactoryBean.class,
CosmosRepositoryConfigurationExtension.class })
@AutoConfigureAfter(com.azure.spring.cloud.autoconfigure.implementation.data.cosmos.CosmosDataAutoConfiguration.class)
@ConditionalOnBean(CosmosTemplate.class)
@ConditionalOnProperty(prefix = "spring.cloud.azure.cosmos.repositories",
name = "enabled",
havingValue = "true",
matchIfMissing = true)
@Import(CosmosRepositoriesAutoConfigureRegistrar.class)
public class CosmosRepositoriesAutoConfiguration {
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,38 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
// Licensed under the MIT License.

package com.azure.spring.cloud.autoconfigure.implementation.data.cosmos;

import com.azure.spring.data.cosmos.repository.config.CosmosRepositoryConfigurationExtension;
import com.azure.spring.data.cosmos.repository.config.EnableCosmosRepositories;
import org.springframework.boot.autoconfigure.data.AbstractRepositoryConfigurationSourceSupport;
import org.springframework.data.repository.config.RepositoryConfigurationExtension;

import java.lang.annotation.Annotation;

/**
* Declare {@link EnableCosmosRepositories} annotation and {@link EnableCosmosRepositoriesConfiguration} configuration
* for default non-async auto-configuration.
*/
public class CosmosRepositoriesAutoConfigureRegistrar extends AbstractRepositoryConfigurationSourceSupport {
@Override
protected Class<? extends Annotation> getAnnotation() {
return EnableCosmosRepositories.class;
}

@Override
protected Class<?> getConfiguration() {
return EnableCosmosRepositoriesConfiguration.class;
}

@Override
protected RepositoryConfigurationExtension getRepositoryConfigurationExtension() {
return new CosmosRepositoryConfigurationExtension();
}

@EnableCosmosRepositories
private static class EnableCosmosRepositoriesConfiguration {

}

}
Original file line number Diff line number Diff line change
Expand Up @@ -29,3 +29,6 @@ com.azure.spring.cloud.autoconfigure.implementation.resourcemanager.AzureService
com.azure.spring.cloud.autoconfigure.implementation.resourcemanager.AzureStorageQueueResourceManagerAutoConfiguration
com.azure.spring.cloud.autoconfigure.implementation.compatibility.AzureCompatibilityVerifierAutoConfiguration
com.azure.spring.cloud.autoconfigure.implementation.jdbc.AzureJdbcAutoConfiguration
com.azure.spring.cloud.autoconfigure.implementation.data.cosmos.CosmosDataAutoConfiguration
com.azure.spring.cloud.autoconfigure.implementation.data.cosmos.CosmosRepositoriesAutoConfiguration
com.azure.spring.cloud.autoconfigure.implementation.data.cosmos.CosmosReactiveRepositoriesAutoConfiguration
Loading