Skip to content

Commit dcaeb44

Browse files
authored
Issue ReactiveX#571: Spring Boot 1 and Spring Boot 2 custom endpoints should not be mandatory. (ReactiveX#572)
1 parent c5771c1 commit dcaeb44

File tree

8 files changed

+57
-35
lines changed

8 files changed

+57
-35
lines changed

resilience4j-spring-boot/src/main/java/io/github/resilience4j/bulkhead/autoconfigure/BulkheadAutoConfiguration.java

Lines changed: 10 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -15,21 +15,21 @@
1515
*/
1616
package io.github.resilience4j.bulkhead.autoconfigure;
1717

18-
import org.springframework.boot.actuate.autoconfigure.EndpointAutoConfiguration;
19-
import org.springframework.boot.autoconfigure.AutoConfigureBefore;
20-
import org.springframework.boot.autoconfigure.condition.ConditionalOnClass;
21-
import org.springframework.boot.context.properties.EnableConfigurationProperties;
22-
import org.springframework.context.annotation.Bean;
23-
import org.springframework.context.annotation.Configuration;
24-
import org.springframework.context.annotation.Import;
25-
2618
import io.github.resilience4j.bulkhead.Bulkhead;
2719
import io.github.resilience4j.bulkhead.BulkheadRegistry;
2820
import io.github.resilience4j.bulkhead.ThreadPoolBulkheadRegistry;
2921
import io.github.resilience4j.bulkhead.event.BulkheadEvent;
3022
import io.github.resilience4j.bulkhead.monitoring.endpoint.BulkheadEndpoint;
3123
import io.github.resilience4j.bulkhead.monitoring.endpoint.BulkheadEventsEndpoint;
3224
import io.github.resilience4j.consumer.EventConsumerRegistry;
25+
import org.springframework.boot.actuate.autoconfigure.EndpointAutoConfiguration;
26+
import org.springframework.boot.actuate.endpoint.Endpoint;
27+
import org.springframework.boot.autoconfigure.AutoConfigureBefore;
28+
import org.springframework.boot.autoconfigure.condition.ConditionalOnClass;
29+
import org.springframework.boot.context.properties.EnableConfigurationProperties;
30+
import org.springframework.context.annotation.Bean;
31+
import org.springframework.context.annotation.Configuration;
32+
import org.springframework.context.annotation.Import;
3333

3434
/**
3535
* {@link org.springframework.boot.autoconfigure.EnableAutoConfiguration
@@ -43,11 +43,13 @@
4343
public class BulkheadAutoConfiguration {
4444

4545
@Bean
46+
@ConditionalOnClass(value = {Endpoint.class})
4647
public BulkheadEndpoint bulkheadEndpoint(BulkheadRegistry bulkheadRegistry, ThreadPoolBulkheadRegistry threadPoolBulkheadRegistry) {
4748
return new BulkheadEndpoint(bulkheadRegistry, threadPoolBulkheadRegistry);
4849
}
4950

5051
@Bean
52+
@ConditionalOnClass(value = {Endpoint.class})
5153
public BulkheadEventsEndpoint bulkheadEventsEndpoint(EventConsumerRegistry<BulkheadEvent> eventConsumerRegistry) {
5254
return new BulkheadEventsEndpoint(eventConsumerRegistry);
5355
}

resilience4j-spring-boot/src/main/java/io/github/resilience4j/circuitbreaker/autoconfigure/CircuitBreakerAutoConfiguration.java

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,7 @@
1616
package io.github.resilience4j.circuitbreaker.autoconfigure;
1717

1818
import org.springframework.boot.actuate.autoconfigure.EndpointAutoConfiguration;
19+
import org.springframework.boot.actuate.endpoint.Endpoint;
1920
import org.springframework.boot.autoconfigure.AutoConfigureBefore;
2021
import org.springframework.boot.autoconfigure.condition.ConditionalOnClass;
2122
import org.springframework.boot.context.properties.EnableConfigurationProperties;
@@ -42,11 +43,13 @@
4243
public class CircuitBreakerAutoConfiguration {
4344

4445
@Bean
46+
@ConditionalOnClass(value = {Endpoint.class})
4547
public CircuitBreakerEndpoint circuitBreakerEndpoint(CircuitBreakerRegistry circuitBreakerRegistry) {
4648
return new CircuitBreakerEndpoint(circuitBreakerRegistry);
4749
}
4850

4951
@Bean
52+
@ConditionalOnClass(value = {Endpoint.class})
5053
public CircuitBreakerEventsEndpoint circuitBreakerEventsEndpoint(EventConsumerRegistry<CircuitBreakerEvent> eventConsumerRegistry) {
5154
return new CircuitBreakerEventsEndpoint(eventConsumerRegistry);
5255
}

resilience4j-spring-boot/src/main/java/io/github/resilience4j/ratelimiter/autoconfigure/RateLimiterAutoConfiguration.java

Lines changed: 11 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -15,24 +15,24 @@
1515
*/
1616
package io.github.resilience4j.ratelimiter.autoconfigure;
1717

18-
import javax.annotation.PostConstruct;
19-
18+
import io.github.resilience4j.consumer.EventConsumerRegistry;
19+
import io.github.resilience4j.ratelimiter.RateLimiter;
20+
import io.github.resilience4j.ratelimiter.RateLimiterRegistry;
21+
import io.github.resilience4j.ratelimiter.event.RateLimiterEvent;
22+
import io.github.resilience4j.ratelimiter.monitoring.endpoint.RateLimiterEndpoint;
23+
import io.github.resilience4j.ratelimiter.monitoring.endpoint.RateLimiterEventsEndpoint;
24+
import io.github.resilience4j.ratelimiter.monitoring.health.RateLimiterHealthIndicator;
2025
import org.springframework.beans.factory.config.ConfigurableBeanFactory;
2126
import org.springframework.boot.actuate.autoconfigure.EndpointAutoConfiguration;
27+
import org.springframework.boot.actuate.endpoint.Endpoint;
2228
import org.springframework.boot.autoconfigure.AutoConfigureBefore;
2329
import org.springframework.boot.autoconfigure.condition.ConditionalOnClass;
2430
import org.springframework.boot.context.properties.EnableConfigurationProperties;
2531
import org.springframework.context.annotation.Bean;
2632
import org.springframework.context.annotation.Configuration;
2733
import org.springframework.context.annotation.Import;
2834

29-
import io.github.resilience4j.consumer.EventConsumerRegistry;
30-
import io.github.resilience4j.ratelimiter.RateLimiter;
31-
import io.github.resilience4j.ratelimiter.RateLimiterRegistry;
32-
import io.github.resilience4j.ratelimiter.event.RateLimiterEvent;
33-
import io.github.resilience4j.ratelimiter.monitoring.endpoint.RateLimiterEndpoint;
34-
import io.github.resilience4j.ratelimiter.monitoring.endpoint.RateLimiterEventsEndpoint;
35-
import io.github.resilience4j.ratelimiter.monitoring.health.RateLimiterHealthIndicator;
35+
import javax.annotation.PostConstruct;
3636

3737
/**
3838
* {@link org.springframework.boot.autoconfigure.EnableAutoConfiguration
@@ -55,11 +55,13 @@ public RateLimiterAutoConfiguration(RateLimiterProperties rateLimiterProperties,
5555
}
5656

5757
@Bean
58+
@ConditionalOnClass(value = {Endpoint.class})
5859
public RateLimiterEndpoint rateLimiterEndpoint(RateLimiterRegistry rateLimiterRegistry) {
5960
return new RateLimiterEndpoint(rateLimiterRegistry);
6061
}
6162

6263
@Bean
64+
@ConditionalOnClass(value = {Endpoint.class})
6365
public RateLimiterEventsEndpoint rateLimiterEventsEndpoint(EventConsumerRegistry<RateLimiterEvent> eventsConsumerRegistry) {
6466
return new RateLimiterEventsEndpoint(eventsConsumerRegistry);
6567
}

resilience4j-spring-boot/src/main/java/io/github/resilience4j/retry/autoconfigure/RetryAutoConfiguration.java

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,7 @@
1616
package io.github.resilience4j.retry.autoconfigure;
1717

1818
import org.springframework.boot.actuate.autoconfigure.EndpointAutoConfiguration;
19+
import org.springframework.boot.actuate.endpoint.Endpoint;
1920
import org.springframework.boot.autoconfigure.AutoConfigureBefore;
2021
import org.springframework.boot.autoconfigure.condition.ConditionalOnClass;
2122
import org.springframework.boot.context.properties.EnableConfigurationProperties;
@@ -43,11 +44,13 @@
4344
public class RetryAutoConfiguration {
4445

4546
@Bean
47+
@ConditionalOnClass(value = {Endpoint.class})
4648
public RetryEndpoint retryEndpoint(RetryRegistry retryRegistry) {
4749
return new RetryEndpoint(retryRegistry);
4850
}
4951

5052
@Bean
53+
@ConditionalOnClass(value = {Endpoint.class})
5154
public RetryEventsEndpoint retryEventsEndpoint(EventConsumerRegistry<RetryEvent> eventConsumerRegistry) {
5255
return new RetryEventsEndpoint(eventConsumerRegistry);
5356
}

resilience4j-spring-boot2/src/main/java/io/github/resilience4j/bulkhead/autoconfigure/BulkheadAutoConfiguration.java

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@
1717

1818
import org.springframework.boot.actuate.autoconfigure.endpoint.EndpointAutoConfiguration;
1919
import org.springframework.boot.actuate.autoconfigure.endpoint.condition.ConditionalOnEnabledEndpoint;
20+
import org.springframework.boot.actuate.endpoint.annotation.Endpoint;
2021
import org.springframework.boot.autoconfigure.AutoConfigureBefore;
2122
import org.springframework.boot.autoconfigure.condition.ConditionalOnClass;
2223
import org.springframework.boot.context.properties.EnableConfigurationProperties;
@@ -43,14 +44,17 @@
4344
@Import({BulkheadConfigurationOnMissingBean.class, FallbackConfigurationOnMissingBean.class})
4445
@AutoConfigureBefore(EndpointAutoConfiguration.class)
4546
public class BulkheadAutoConfiguration {
47+
4648
@Bean
4749
@ConditionalOnEnabledEndpoint
50+
@ConditionalOnClass(value = {Endpoint.class})
4851
public BulkheadEndpoint bulkheadEndpoint(BulkheadRegistry bulkheadRegistry, ThreadPoolBulkheadRegistry threadPoolBulkheadRegistry) {
4952
return new BulkheadEndpoint(bulkheadRegistry, threadPoolBulkheadRegistry);
5053
}
5154

5255
@Bean
5356
@ConditionalOnEnabledEndpoint
57+
@ConditionalOnClass(value = {Endpoint.class})
5458
public BulkheadEventsEndpoint bulkheadEventsEndpoint(EventConsumerRegistry<BulkheadEvent> eventConsumerRegistry) {
5559
return new BulkheadEventsEndpoint(eventConsumerRegistry);
5660
}

resilience4j-spring-boot2/src/main/java/io/github/resilience4j/circuitbreaker/autoconfigure/CircuitBreakerAutoConfiguration.java

Lines changed: 10 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -15,23 +15,23 @@
1515
*/
1616
package io.github.resilience4j.circuitbreaker.autoconfigure;
1717

18+
import io.github.resilience4j.circuitbreaker.CircuitBreaker;
19+
import io.github.resilience4j.circuitbreaker.CircuitBreakerRegistry;
20+
import io.github.resilience4j.circuitbreaker.event.CircuitBreakerEvent;
21+
import io.github.resilience4j.circuitbreaker.monitoring.endpoint.CircuitBreakerEndpoint;
22+
import io.github.resilience4j.circuitbreaker.monitoring.endpoint.CircuitBreakerEventsEndpoint;
23+
import io.github.resilience4j.consumer.EventConsumerRegistry;
24+
import io.github.resilience4j.fallback.autoconfigure.FallbackConfigurationOnMissingBean;
1825
import org.springframework.boot.actuate.autoconfigure.endpoint.EndpointAutoConfiguration;
1926
import org.springframework.boot.actuate.autoconfigure.endpoint.condition.ConditionalOnEnabledEndpoint;
27+
import org.springframework.boot.actuate.endpoint.annotation.Endpoint;
2028
import org.springframework.boot.autoconfigure.AutoConfigureBefore;
2129
import org.springframework.boot.autoconfigure.condition.ConditionalOnClass;
2230
import org.springframework.boot.context.properties.EnableConfigurationProperties;
2331
import org.springframework.context.annotation.Bean;
2432
import org.springframework.context.annotation.Configuration;
2533
import org.springframework.context.annotation.Import;
2634

27-
import io.github.resilience4j.circuitbreaker.CircuitBreaker;
28-
import io.github.resilience4j.circuitbreaker.CircuitBreakerRegistry;
29-
import io.github.resilience4j.circuitbreaker.event.CircuitBreakerEvent;
30-
import io.github.resilience4j.circuitbreaker.monitoring.endpoint.CircuitBreakerEndpoint;
31-
import io.github.resilience4j.circuitbreaker.monitoring.endpoint.CircuitBreakerEventsEndpoint;
32-
import io.github.resilience4j.consumer.EventConsumerRegistry;
33-
import io.github.resilience4j.fallback.autoconfigure.FallbackConfigurationOnMissingBean;
34-
3535

3636
/**
3737
* {@link org.springframework.boot.autoconfigure.EnableAutoConfiguration
@@ -46,12 +46,14 @@ public class CircuitBreakerAutoConfiguration {
4646

4747
@Bean
4848
@ConditionalOnEnabledEndpoint
49+
@ConditionalOnClass(value = {Endpoint.class})
4950
public CircuitBreakerEndpoint circuitBreakerEndpoint(CircuitBreakerRegistry circuitBreakerRegistry) {
5051
return new CircuitBreakerEndpoint(circuitBreakerRegistry);
5152
}
5253

5354
@Bean
5455
@ConditionalOnEnabledEndpoint
56+
@ConditionalOnClass(value = {Endpoint.class})
5557
public CircuitBreakerEventsEndpoint circuitBreakerEventsEndpoint(EventConsumerRegistry<CircuitBreakerEvent> eventConsumerRegistry) {
5658
return new CircuitBreakerEventsEndpoint(eventConsumerRegistry);
5759
}

resilience4j-spring-boot2/src/main/java/io/github/resilience4j/ratelimiter/autoconfigure/RateLimiterAutoConfiguration.java

Lines changed: 12 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -15,26 +15,26 @@
1515
*/
1616
package io.github.resilience4j.ratelimiter.autoconfigure;
1717

18-
import javax.annotation.PostConstruct;
19-
18+
import io.github.resilience4j.consumer.EventConsumerRegistry;
19+
import io.github.resilience4j.fallback.autoconfigure.FallbackConfigurationOnMissingBean;
20+
import io.github.resilience4j.ratelimiter.RateLimiter;
21+
import io.github.resilience4j.ratelimiter.RateLimiterRegistry;
22+
import io.github.resilience4j.ratelimiter.event.RateLimiterEvent;
23+
import io.github.resilience4j.ratelimiter.monitoring.endpoint.RateLimiterEndpoint;
24+
import io.github.resilience4j.ratelimiter.monitoring.endpoint.RateLimiterEventsEndpoint;
25+
import io.github.resilience4j.ratelimiter.monitoring.health.RateLimiterHealthIndicator;
2026
import org.springframework.beans.factory.config.ConfigurableBeanFactory;
2127
import org.springframework.boot.actuate.autoconfigure.endpoint.EndpointAutoConfiguration;
2228
import org.springframework.boot.actuate.autoconfigure.endpoint.condition.ConditionalOnEnabledEndpoint;
29+
import org.springframework.boot.actuate.endpoint.annotation.Endpoint;
2330
import org.springframework.boot.autoconfigure.AutoConfigureBefore;
2431
import org.springframework.boot.autoconfigure.condition.ConditionalOnClass;
2532
import org.springframework.boot.context.properties.EnableConfigurationProperties;
2633
import org.springframework.context.annotation.Bean;
2734
import org.springframework.context.annotation.Configuration;
2835
import org.springframework.context.annotation.Import;
2936

30-
import io.github.resilience4j.consumer.EventConsumerRegistry;
31-
import io.github.resilience4j.fallback.autoconfigure.FallbackConfigurationOnMissingBean;
32-
import io.github.resilience4j.ratelimiter.RateLimiter;
33-
import io.github.resilience4j.ratelimiter.RateLimiterRegistry;
34-
import io.github.resilience4j.ratelimiter.event.RateLimiterEvent;
35-
import io.github.resilience4j.ratelimiter.monitoring.endpoint.RateLimiterEndpoint;
36-
import io.github.resilience4j.ratelimiter.monitoring.endpoint.RateLimiterEventsEndpoint;
37-
import io.github.resilience4j.ratelimiter.monitoring.health.RateLimiterHealthIndicator;
37+
import javax.annotation.PostConstruct;
3838

3939
/**
4040
* {@link org.springframework.boot.autoconfigure.EnableAutoConfiguration
@@ -58,12 +58,14 @@ public RateLimiterAutoConfiguration(RateLimiterProperties rateLimiterProperties,
5858

5959
@Bean
6060
@ConditionalOnEnabledEndpoint
61+
@ConditionalOnClass(value = {Endpoint.class})
6162
public RateLimiterEndpoint rateLimiterEndpoint(RateLimiterRegistry rateLimiterRegistry) {
6263
return new RateLimiterEndpoint(rateLimiterRegistry);
6364
}
6465

6566
@Bean
6667
@ConditionalOnEnabledEndpoint
68+
@ConditionalOnClass(value = {Endpoint.class})
6769
public RateLimiterEventsEndpoint rateLimiterEventsEndpoint(EventConsumerRegistry<RateLimiterEvent> eventConsumerRegistry) {
6870
return new RateLimiterEventsEndpoint(eventConsumerRegistry);
6971
}

resilience4j-spring-boot2/src/main/java/io/github/resilience4j/retry/autoconfigure/RetryAutoConfiguration.java

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,7 @@
1616
package io.github.resilience4j.retry.autoconfigure;
1717

1818
import org.springframework.boot.actuate.autoconfigure.endpoint.condition.ConditionalOnEnabledEndpoint;
19+
import org.springframework.boot.actuate.endpoint.annotation.Endpoint;
1920
import org.springframework.boot.autoconfigure.condition.ConditionalOnClass;
2021
import org.springframework.boot.context.properties.EnableConfigurationProperties;
2122
import org.springframework.context.annotation.Bean;
@@ -40,14 +41,17 @@
4041
@EnableConfigurationProperties(RetryProperties.class)
4142
@Import({RetryConfigurationOnMissingBean.class, FallbackConfigurationOnMissingBean.class})
4243
public class RetryAutoConfiguration {
44+
4345
@Bean
4446
@ConditionalOnEnabledEndpoint
47+
@ConditionalOnClass(value = {Endpoint.class})
4548
public RetryEndpoint retryEndpoint(RetryRegistry retryRegistry) {
4649
return new RetryEndpoint(retryRegistry);
4750
}
4851

4952
@Bean
5053
@ConditionalOnEnabledEndpoint
54+
@ConditionalOnClass(value = {Endpoint.class})
5155
public RetryEventsEndpoint retryEventsEndpoint(EventConsumerRegistry<RetryEvent> eventConsumerRegistry) {
5256
return new RetryEventsEndpoint(eventConsumerRegistry);
5357
}

0 commit comments

Comments
 (0)