Add ServiceBus Service Connection for Docker Compose and Testcontainers#44019
Add ServiceBus Service Connection for Docker Compose and Testcontainers#44019rujche merged 28 commits intoAzure:mainfrom
Conversation
eddumelendez
commented
Feb 4, 2025
- Add Docker Compose Service Connection
- Add Testcontainers Service Connection
* Add Docker Compose Service Connection * Add Testcontainers Service Connection
|
Thank you for your contribution @eddumelendez! We will review the pull request and get back to you soon. |
API Change CheckAPIView identified API level changes in this PR and created the following API reviews com.azure.spring:spring-cloud-azure-docker-compose |
|
Hi @eddumelendez. Thank you for your interest in helping to improve the Azure SDK experience and for your contribution. We've noticed that there hasn't been recent engagement on this pull request. If this is still an active work stream, please let us know by pushing some changes or leaving a comment. Otherwise, we'll close this out in 7 days. |
|
Hi @eddumelendez. Thank you for your contribution. Since there hasn't been recent engagement, we're going to close this out. Feel free to respond with a comment containing |
There was a problem hiding this comment.
Pull request overview
This pull request adds ServiceBus Service Connection support for both Docker Compose and Testcontainers, enabling developers to easily test Azure ServiceBus applications using emulators. The implementation follows the existing patterns established for Cosmos DB and Storage services in the codebase.
Changes:
- Added ServiceBus connection details interfaces and factory implementations for both Testcontainers and Docker Compose
- Introduced new configuration classes to handle connection details with conditional bean registration
- Added comprehensive test coverage including configuration files for ServiceBus emulator setup
- Updated dependencies to support ServiceBus emulator testing (testcontainers-azure, mssql-jdbc, awaitility)
Reviewed changes
Copilot reviewed 17 out of 17 changed files in this pull request and generated 8 comments.
Show a summary per file
| File | Description |
|---|---|
| sdk/spring/spring-cloud-azure-testcontainers/src/main/java/com/azure/spring/cloud/testcontainers/implementation/service/connection/servicebus/ServiceBusContainerConnectionDetailsFactory.java | Implements Testcontainers connection factory for ServiceBus emulator |
| sdk/spring/spring-cloud-azure-docker-compose/src/main/java/com/azure/spring/cloud/docker/compose/implementation/service/connection/servicebus/ServiceBusDockerComposeConnectionDetailsFactory.java | Implements Docker Compose connection factory for ServiceBus emulator |
| sdk/spring/spring-cloud-azure-autoconfigure/src/main/java/com/azure/spring/cloud/autoconfigure/implementation/servicebus/properties/AzureServiceBusConnectionDetails.java | Defines connection details interface for ServiceBus |
| sdk/spring/spring-cloud-azure-autoconfigure/src/main/java/com/azure/spring/cloud/autoconfigure/implementation/servicebus/properties/AzureServiceBusPropertiesConfiguration.java | Main configuration class that imports conditional bean configurations |
| sdk/spring/spring-cloud-azure-autoconfigure/src/main/java/com/azure/spring/cloud/autoconfigure/implementation/servicebus/properties/ConfigurationWithConnectionDetailsBean.java | Configures ServiceBus properties when connection details are available |
| sdk/spring/spring-cloud-azure-autoconfigure/src/main/java/com/azure/spring/cloud/autoconfigure/implementation/servicebus/properties/ConfigurationWithoutConnectionDetailsBean.java | Configures ServiceBus properties when connection details are not available |
| sdk/spring/spring-cloud-azure-autoconfigure/src/main/java/com/azure/spring/cloud/autoconfigure/implementation/servicebus/AzureServiceBusAutoConfiguration.java | Updated to delegate property configuration to new configuration classes |
| sdk/spring/spring-cloud-azure-testcontainers/src/test/java/com/azure/spring/cloud/testcontainers/implementation/service/connection/servicebus/ServiceBusContainerConnectionDetailsFactoryTests.java | Integration test for Testcontainers ServiceBus connection |
| sdk/spring/spring-cloud-azure-docker-compose/src/test/java/com/azure/spring/cloud/docker/compose/implementation/service/connection/servicebus/ServiceBusDockerComposeConnectionDetailsFactoryTests.java | Integration test for Docker Compose ServiceBus connection |
| sdk/spring/spring-cloud-azure-testcontainers/src/test/resources/servicebus/Config.json | ServiceBus emulator configuration defining queues, topics, and subscriptions |
| sdk/spring/spring-cloud-azure-docker-compose/src/test/resources/com/azure/spring/cloud/docker/compose/implementation/service/connection/servicebus/Config.json | ServiceBus emulator configuration for Docker Compose tests |
| sdk/spring/spring-cloud-azure-docker-compose/src/test/resources/com/azure/spring/cloud/docker/compose/implementation/service/connection/servicebus/servicebus-compose.yaml | Docker Compose configuration for ServiceBus and SQL Edge containers |
| sdk/spring/spring-cloud-azure-testcontainers/src/test/resources/logback-test.xml | Logging configuration for tests |
| sdk/spring/spring-cloud-azure-testcontainers/src/main/resources/META-INF/spring.factories | Registers ServiceBusContainerConnectionDetailsFactory |
| sdk/spring/spring-cloud-azure-docker-compose/src/main/resources/META-INF/spring.factories | Registers ServiceBusDockerComposeConnectionDetailsFactory |
| sdk/spring/spring-cloud-azure-testcontainers/pom.xml | Adds azure-messaging-servicebus, mssql-jdbc, awaitility dependencies and updates testcontainers version |
| sdk/spring/spring-cloud-azure-docker-compose/pom.xml | Adds azure-messaging-servicebus and awaitility dependencies |
...entation/service/connection/servicebus/ServiceBusContainerConnectionDetailsFactoryTests.java
Outdated
Show resolved
Hide resolved
...mentation/service/connection/servicebus/ServiceBusDockerComposeConnectionDetailsFactory.java
Outdated
Show resolved
Hide resolved
...toconfigure/implementation/servicebus/properties/ConfigurationWithConnectionDetailsBean.java
Outdated
Show resolved
Hide resolved
...entation/service/connection/servicebus/ServiceBusContainerConnectionDetailsFactoryTests.java
Outdated
Show resolved
Hide resolved
...tion/service/connection/servicebus/ServiceBusDockerComposeConnectionDetailsFactoryTests.java
Outdated
Show resolved
Hide resolved
...toconfigure/implementation/servicebus/properties/ConfigurationWithConnectionDetailsBean.java
Outdated
Show resolved
Hide resolved
There was a problem hiding this comment.
Pull request overview
Copilot reviewed 26 out of 26 changed files in this pull request and generated 5 comments.
Comments suppressed due to low confidence (1)
sdk/spring/spring-cloud-azure-autoconfigure/src/main/java/com/azure/spring/cloud/autoconfigure/implementation/servicebus/AzureServiceBusConsumerClientConfiguration.java:38
- The configuration class should have
@ConditionalOnBean(AzureServiceBusProperties.class)annotation to ensure it only activates when the properties bean is available. This pattern is consistently used in other Azure service configurations (e.g.,BlobClientConfigurationat sdk/spring/spring-cloud-azure-autoconfigure/src/main/java/com/azure/spring/cloud/autoconfigure/implementation/storage/blob/BlobClientConfiguration.java:32).
Without this conditional, Spring will attempt to create beans even when AzureServiceBusProperties doesn't exist, causing startup failures.
@Configuration(proxyBeanMethods = false)
@Import({
AzureServiceBusPropertiesConfiguration.class,
AzureServiceBusConsumerClientConfiguration.SessionConsumerClientConfiguration.class,
AzureServiceBusConsumerClientConfiguration.NoneSessionConsumerClientConfiguration.class
})
@Conditional(AzureServiceBusConsumerCondition.class)
...cloud/autoconfigure/implementation/servicebus/AzureServiceBusClientBuilderConfiguration.java
Show resolved
Hide resolved
...loud/autoconfigure/implementation/servicebus/AzureServiceBusProducerClientConfiguration.java
Show resolved
Hide resolved
...oud/autoconfigure/implementation/servicebus/AzureServiceBusProcessorClientConfiguration.java
Show resolved
Hide resolved
.../implementation/service/connection/bus/ServiceBusContainerConnectionDetailsFactoryTests.java
Outdated
Show resolved
Hide resolved
.../implementation/service/connection/bus/ServiceBusContainerConnectionDetailsFactoryTests.java
Outdated
Show resolved
Hide resolved
.../implementation/service/connection/bus/ServiceBusContainerConnectionDetailsFactoryTests.java
Outdated
Show resolved
Hide resolved
...lementation/service/connection/bus/ServiceBusDockerComposeConnectionDetailsFactoryTests.java
Outdated
Show resolved
Hide resolved
.../implementation/service/connection/bus/ServiceBusContainerConnectionDetailsFactoryTests.java
Show resolved
Hide resolved
...lementation/service/connection/bus/ServiceBusDockerComposeConnectionDetailsFactoryTests.java
Show resolved
Hide resolved
|
/check-enforcer override |
…rs (Azure#44019) (cherry picked from commit c3591a7)