What's Changed
- Added support of initializing circuitBreaker in desired state from config by @agarwalbharat in #2268
- Issue #2269: Added getCausingRateLimiterName by @noomkram in #2270
- Time limiter registry builder by @darkius in #2291
- Issue #2285: Add HealthContributorAutoConfiguration to ConditionalOnClass by @obecker in #2286
- Issue #2278: Added ThreadPoolBulkhead to some Decorators by @matsev in #2284
- Correct registry config in aspect by @darkius in #2282
- #2285 - add configuration to move circuit breaker from half open to closed state by @victorpasqualino in #2290
- Bump actions/cache from 4.0.2 to 4.2.0 by @dependabot[bot] in #2252
- Remove dependency on kotlin-stdlib-jdk8 from resilience4j-core by @gavlyukovskiy in #2301
- Bring back 'slidingWindow' with default synchronization strategy by @gavlyukovskiy in #2302
- add withFallback() methods to DecorateFunction by @matsev in #2312
- Issue #2295: Ensure ignoreExceptions take precedence over recordExceptions by @kssumin in #2304
- fix spring boot3 customizer application order by @alexey-grigorovich-savvymoney in #2321
- chore(1910): update grafana dashboard by @JoranVanBelle in #2318
- Provide key for components using SpEL for names by @doumdoum in #2329
- Feature #2224 : Bump jdk from 17 to 21 for support virtual thread by @ykhfree in #2331
- Add missing eventConsumerBufferSize merge for Retry config by @skowrxn in #2344
- [GH-2334] fix: reject TIME_BASED + LOCK_FREE when slidingWindowSize < 2 by @bandalgomsu in #2358
- feat: add setter for bulkheadAspectOrder property by @NiMv1 in #2386
- Docs: Clarify Aspect Order defaults for Spring Boot 3 to prevent metric inflation by @GarimaBokdia in #2387
- Add support for Spring Boot 4 / Spring Cloud 5 by @gavlyukovskiy in #2384
- TimeLimiter, take success path when completing without error by @TheFrogAndy in #2374
- Add back OSGi meta data with bnd builder plugin by @chrisrueger in #2385
- Issue #536: Added best practices documentation for instance management by @fajrizulfikar in #2389
- Allow to mock nanoTime in RateLimiter by @strokyl in #2356
- fix #2397: compile SPEL regex'es only once by @stokpop in #2398
- Update publishing to use new Sonatype urls and add release workflow by @gavlyukovskiy in #2393
- Issue #1450: Fixed Grafana dashboard metric query for call rate panel by @fajrizulfikar in #2391
- Issue #1448: Fixed Duration property binding in Spring Boot 2 by @fajrizulfikar in #2390
- Fix #2327: Correct @see tag usage in CircuitBreakerConfig Javadoc by @chanani in #2400
- Issue #2368: Fix Retry retryOnResult interrupt handling: throw CancellationException instead of NPE by @platanus-kr in #2392
- Fix typo in Spring aspect docs by @gukin-han in #2399
- [GH-2354] Remove kotlin-stdlib from resilience4j-core by @josalmi in #2359
- Added CheckedSupplierUtils and deprecated CheckedFunctionUtils by @matsev in #2313
- Use correct constant for initializing CircuitBreakerConfig.Builder.waitIntervalFunctionInOpenState by @obecker in #2402
- Added bulkhead name to BulkheadFullException by @dominic-miglar in #2349
- Remove unrelated flaky Clock test from CircuitBreakerEventTest by @KimDoubleB in #2409
- Added decorateFunction and executeFunction to TimeLimiter by @zbnerd in #2407
- Issue #2189: Use snapshot reads for actuator event endpoints in Spring Boot 3/4 by @seokjun7410 in #2406
- Remove log spam from tests by @gavlyukovskiy in #2412
- Set JDK target back to 17 by @gavlyukovskiy in #2415
- Fix release workflow: unquoted multi-line GPG key breaks Gradle invocation by @Copilot in #2416
- Read env variables from gradle for gpg key by @gavlyukovskiy in #2417
- Enable SNAPSHOT artifact signing from master by @gavlyukovskiy in #2418
- Remove sign skip on snapshot version by @gavlyukovskiy in #2419
New Contributors
- @agarwalbharat made their first contribution in #2268
- @noomkram made their first contribution in #2270
- @darkius made their first contribution in #2291
- @obecker made their first contribution in #2286
- @matsev made their first contribution in #2284
- @victorpasqualino made their first contribution in #2290
- @kssumin made their first contribution in #2304
- @alexey-grigorovich-savvymoney made their first contribution in #2321
- @JoranVanBelle made their first contribution in #2318
- @doumdoum made their first contribution in #2329
- @skowrxn made their first contribution in #2344
- @bandalgomsu made their first contribution in #2358
- @NiMv1 made their first contribution in #2386
- @GarimaBokdia made their first contribution in #2387
- @TheFrogAndy made their first contribution in #2374
- @chrisrueger made their first contribution in #2385
- @fajrizulfikar made their first contribution in #2389
- @strokyl made their first contribution in #2356
- @chanani made their first contribution in #2400
- @platanus-kr made their first contribution in #2392
- @gukin-han made their first contribution in #2399
- @josalmi made their first contribution in #2359
- @dominic-miglar made their first contribution in #2349
- @zbnerd made their first contribution in #2407
- @seokjun7410 made their first contribution in #2406
- @Copilot made their first contribution in #2416
Full Changelog: v2.3.0...v2.4.0