Skip to content

Commit da10c4e

Browse files
committed
Merge pull request #34347 from acktsap
* pr/34347: Polish "Back off if a custom ApplicationAvailability bean is present" Back off if a custom ApplicationAvailability bean is present Closes gh-34347
2 parents 098d338 + 1b832d8 commit da10c4e

File tree

2 files changed

+21
-6
lines changed

2 files changed

+21
-6
lines changed

spring-boot-project/spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/availability/ApplicationAvailabilityAutoConfiguration.java

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
/*
2-
* Copyright 2012-2022 the original author or authors.
2+
* Copyright 2012-2023 the original author or authors.
33
*
44
* Licensed under the Apache License, Version 2.0 (the "License");
55
* you may not use this file except in compliance with the License.
@@ -17,6 +17,8 @@
1717
package org.springframework.boot.autoconfigure.availability;
1818

1919
import org.springframework.boot.autoconfigure.AutoConfiguration;
20+
import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean;
21+
import org.springframework.boot.availability.ApplicationAvailability;
2022
import org.springframework.boot.availability.ApplicationAvailabilityBean;
2123
import org.springframework.context.annotation.Bean;
2224

@@ -25,13 +27,15 @@
2527
* {@link ApplicationAvailabilityBean}.
2628
*
2729
* @author Brian Clozel
30+
* @author Taeik Lim
2831
* @since 2.3.0
2932
*/
3033
@AutoConfiguration
3134
public class ApplicationAvailabilityAutoConfiguration {
3235

3336
@Bean
34-
public ApplicationAvailabilityBean applicationAvailability() {
37+
@ConditionalOnMissingBean
38+
public ApplicationAvailability applicationAvailability() {
3539
return new ApplicationAvailabilityBean();
3640
}
3741

Lines changed: 15 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -14,30 +14,41 @@
1414
* limitations under the License.
1515
*/
1616

17-
package org.springframework.boot.autoconfigure.kubernetes;
17+
package org.springframework.boot.autoconfigure.availability;
1818

1919
import org.junit.jupiter.api.Test;
2020

2121
import org.springframework.boot.autoconfigure.AutoConfigurations;
22-
import org.springframework.boot.autoconfigure.availability.ApplicationAvailabilityAutoConfiguration;
2322
import org.springframework.boot.availability.ApplicationAvailability;
2423
import org.springframework.boot.test.context.runner.ApplicationContextRunner;
2524

2625
import static org.assertj.core.api.Assertions.assertThat;
26+
import static org.mockito.Mockito.mock;
2727

2828
/**
2929
* Tests for {@link ApplicationAvailabilityAutoConfiguration}
3030
*
3131
* @author Brian Clozel
32+
* @author Taeik Lim
3233
*/
3334
class ApplicationAvailabilityAutoConfigurationTests {
3435

3536
private final ApplicationContextRunner contextRunner = new ApplicationContextRunner()
3637
.withConfiguration(AutoConfigurations.of(ApplicationAvailabilityAutoConfiguration.class));
3738

3839
@Test
39-
void providerIsPresent() {
40-
this.contextRunner.run(((context) -> assertThat(context).hasSingleBean(ApplicationAvailability.class)));
40+
void providerIsPresentWhenNotRegistered() {
41+
this.contextRunner.run(((context) -> assertThat(context).hasSingleBean(ApplicationAvailability.class)
42+
.hasBean("applicationAvailability")));
43+
}
44+
45+
@Test
46+
void providerIsNotConfiguredWhenCustomOneIsPresent() {
47+
this.contextRunner
48+
.withBean("customApplicationAvailability", ApplicationAvailability.class,
49+
() -> mock(ApplicationAvailability.class))
50+
.run(((context) -> assertThat(context).hasSingleBean(ApplicationAvailability.class)
51+
.hasBean("customApplicationAvailability")));
4152
}
4253

4354
}

0 commit comments

Comments
 (0)