Skip to content

Commit 67e04a9

Browse files
committed
fix: restore createContributor for health indicators to maintain bean type compatibility
This change reverts the use of createComposite back to createContributor in PubSub and Spanner health auto-configurations. This ensures that when a single template is present, the registered bean is of type HealthIndicator, maintaining backward compatibility with existing tests and samples. Multi-template scenarios continue to be supported via CompositeHealthContributor.
1 parent eecfcc6 commit 67e04a9

File tree

4 files changed

+11
-37
lines changed

4 files changed

+11
-37
lines changed

spring-cloud-gcp-autoconfigure/src/main/java/com/google/cloud/spring/autoconfigure/pubsub/health/PubSubHealthIndicatorAutoConfiguration.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -63,6 +63,6 @@ public PubSubHealthIndicatorAutoConfiguration(
6363
@ConditionalOnMissingBean(name = {"pubSubHealthIndicator", "pubSubHealthContributor"})
6464
public HealthContributor pubSubHealthContributor(Map<String, PubSubTemplate> pubSubTemplates) {
6565
Assert.notNull(pubSubTemplates, "pubSubTemplates must be provided");
66-
return createComposite(pubSubTemplates);
66+
return createContributor(pubSubTemplates);
6767
}
6868
}

spring-cloud-gcp-autoconfigure/src/main/java/com/google/cloud/spring/autoconfigure/spanner/health/SpannerHealthIndicatorAutoConfiguration.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -62,6 +62,6 @@ public SpannerHealthIndicatorAutoConfiguration(
6262
@ConditionalOnMissingBean(name = {"spannerHealthIndicator", "spannerHealthContributor"})
6363
public HealthContributor spannerHealthContributor(Map<String, SpannerTemplate> spannerTemplates) {
6464
Assert.notNull(spannerTemplates, "SpannerTemplates must be provided");
65-
return createComposite(spannerTemplates);
65+
return createContributor(spannerTemplates);
6666
}
6767
}

spring-cloud-gcp-autoconfigure/src/test/java/com/google/cloud/spring/autoconfigure/pubsub/health/PubSubHealthIndicatorAutoConfigurationTests.java

Lines changed: 7 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -68,19 +68,12 @@ void healthIndicatorPresent_defaults() throws Exception {
6868
.withBean("pubSubTemplate", PubSubTemplate.class, () -> mockPubSubTemplate)
6969
.run(
7070
ctx -> {
71-
HealthContributor healthContributor = ctx.getBean(HealthContributor.class);
72-
assertThat(healthContributor).isNotNull();
73-
PubSubHealthIndicator indicator;
74-
if (healthContributor instanceof CompositeHealthContributor composite) {
75-
indicator = (PubSubHealthIndicator) composite.getContributor("pubSubTemplate");
76-
} else {
77-
indicator = (PubSubHealthIndicator) healthContributor;
78-
}
79-
assertThat(indicator).isNotNull();
80-
assertThat(indicator.getSubscription()).matches(UUID_PATTERN);
81-
assertThat(indicator.getTimeoutMillis()).isEqualTo(5000);
82-
assertThat(indicator.isAcknowledgeMessages()).isFalse();
83-
assertThat(indicator.isSpecifiedSubscription()).isFalse();
71+
PubSubHealthIndicator healthIndicator = ctx.getBean(PubSubHealthIndicator.class);
72+
assertThat(healthIndicator).isNotNull();
73+
assertThat(healthIndicator.getSubscription()).matches(UUID_PATTERN);
74+
assertThat(healthIndicator.getTimeoutMillis()).isEqualTo(5000);
75+
assertThat(healthIndicator.isAcknowledgeMessages()).isFalse();
76+
assertThat(healthIndicator.isSpecifiedSubscription()).isFalse();
8477
});
8578
}
8679

@@ -98,14 +91,7 @@ void healthIndicatorPresent_customConfig() {
9891
"spring.cloud.gcp.pubsub.health.acknowledgeMessages=true")
9992
.run(
10093
ctx -> {
101-
HealthContributor healthContributor = ctx.getBean(HealthContributor.class);
102-
assertThat(healthContributor).isNotNull();
103-
PubSubHealthIndicator healthIndicator;
104-
if (healthContributor instanceof CompositeHealthContributor composite) {
105-
healthIndicator = (PubSubHealthIndicator) composite.getContributor("pubSubTemplate");
106-
} else {
107-
healthIndicator = (PubSubHealthIndicator) healthContributor;
108-
}
94+
PubSubHealthIndicator healthIndicator = ctx.getBean(PubSubHealthIndicator.class);
10995
assertThat(healthIndicator).isNotNull();
11096
assertThat(healthIndicator.getSubscription()).isEqualTo("test");
11197
assertThat(healthIndicator.getTimeoutMillis()).isEqualTo(1500);

spring-cloud-gcp-autoconfigure/src/test/java/com/google/cloud/spring/autoconfigure/spanner/health/SpannerHealthIndicatorAutoConfigurationTests.java

Lines changed: 2 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -60,13 +60,7 @@ void testSpannerHealthIndicatorCreated() {
6060
final String defaultQuery = "SELECT 1";
6161
this.contextRunner.run(
6262
context -> {
63-
HealthContributor contributor = context.getBean(HealthContributor.class);
64-
SpannerHealthIndicator indicator;
65-
if (contributor instanceof CompositeHealthContributor composite) {
66-
indicator = (SpannerHealthIndicator) composite.getContributor("spannerTemplate");
67-
} else {
68-
indicator = (SpannerHealthIndicator) contributor;
69-
}
63+
SpannerHealthIndicator indicator = context.getBean(SpannerHealthIndicator.class);
7064
assertThat(indicator).isNotNull();
7165
assertThat(indicator)
7266
.hasFieldOrPropertyWithValue("validationStatement", Statement.of(defaultQuery));
@@ -80,13 +74,7 @@ void testSpannerHealthIndicatorCreatedWithQuery() {
8074
.withPropertyValues("spring.cloud.gcp.spanner.health.query=" + customQuery)
8175
.run(
8276
context -> {
83-
HealthContributor contributor = context.getBean(HealthContributor.class);
84-
SpannerHealthIndicator indicator;
85-
if (contributor instanceof CompositeHealthContributor composite) {
86-
indicator = (SpannerHealthIndicator) composite.getContributor("spannerTemplate");
87-
} else {
88-
indicator = (SpannerHealthIndicator) contributor;
89-
}
77+
SpannerHealthIndicator indicator = context.getBean(SpannerHealthIndicator.class);
9078
assertThat(indicator).isNotNull();
9179
assertThat(indicator)
9280
.hasFieldOrPropertyWithValue("validationStatement", Statement.of(customQuery));

0 commit comments

Comments
 (0)