mirror of
https://github.com/spring-projects/spring-boot.git
synced 2026-09-24 02:09:05 +00:00
Merge pull request #46164 from nosan
* pr/46164: Exclude NettyAutoConfiguration from global lazy init Closes gh-46164
This commit is contained in:
+7
@@ -19,10 +19,12 @@ package org.springframework.boot.autoconfigure.netty;
|
||||
import io.netty.util.NettyRuntime;
|
||||
import io.netty.util.ResourceLeakDetector;
|
||||
|
||||
import org.springframework.boot.LazyInitializationExcludeFilter;
|
||||
import org.springframework.boot.autoconfigure.AutoConfiguration;
|
||||
import org.springframework.boot.autoconfigure.EnableAutoConfiguration;
|
||||
import org.springframework.boot.autoconfigure.condition.ConditionalOnClass;
|
||||
import org.springframework.boot.context.properties.EnableConfigurationProperties;
|
||||
import org.springframework.context.annotation.Bean;
|
||||
|
||||
/**
|
||||
* {@link EnableAutoConfiguration Auto-configuration} for Netty.
|
||||
@@ -42,4 +44,9 @@ public class NettyAutoConfiguration {
|
||||
}
|
||||
}
|
||||
|
||||
@Bean
|
||||
static LazyInitializationExcludeFilter nettyAutoConfigurationLazyInitializationExcludeFilter() {
|
||||
return LazyInitializationExcludeFilter.forBeanTypes(NettyAutoConfiguration.class);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
+20
-5
@@ -17,8 +17,10 @@
|
||||
package org.springframework.boot.autoconfigure.netty;
|
||||
|
||||
import io.netty.util.ResourceLeakDetector;
|
||||
import org.junit.jupiter.api.AfterEach;
|
||||
import org.junit.jupiter.api.Test;
|
||||
|
||||
import org.springframework.boot.LazyInitializationBeanFactoryPostProcessor;
|
||||
import org.springframework.boot.autoconfigure.AutoConfigurations;
|
||||
import org.springframework.boot.test.context.runner.ApplicationContextRunner;
|
||||
|
||||
@@ -34,13 +36,26 @@ class NettyAutoConfigurationTests {
|
||||
private final ApplicationContextRunner contextRunner = new ApplicationContextRunner()
|
||||
.withConfiguration(AutoConfigurations.of(NettyAutoConfiguration.class));
|
||||
|
||||
@AfterEach
|
||||
void resetResourceLeakDetector() {
|
||||
ResourceLeakDetector.setLevel(ResourceLeakDetector.Level.DISABLED);
|
||||
}
|
||||
|
||||
@Test
|
||||
void leakDetectionShouldBeConfigured() {
|
||||
this.contextRunner.withPropertyValues("spring.netty.leak-detection=paranoid").run((context) -> {
|
||||
assertThat(ResourceLeakDetector.getLevel()).isEqualTo(ResourceLeakDetector.Level.PARANOID);
|
||||
// reset configuration for the following tests.
|
||||
ResourceLeakDetector.setLevel(ResourceLeakDetector.Level.DISABLED);
|
||||
});
|
||||
this.contextRunner.withPropertyValues("spring.netty.leak-detection=paranoid")
|
||||
.run((context) -> assertThat(ResourceLeakDetector.getLevel())
|
||||
.isEqualTo(ResourceLeakDetector.Level.PARANOID));
|
||||
}
|
||||
|
||||
@Test
|
||||
void leakDetectionShouldBeConfiguredWhenLazyInitializationIsEnabled() {
|
||||
this.contextRunner
|
||||
.withInitializer(
|
||||
(context) -> context.addBeanFactoryPostProcessor(new LazyInitializationBeanFactoryPostProcessor()))
|
||||
.withPropertyValues("spring.netty.leak-detection=advanced")
|
||||
.run((context) -> assertThat(ResourceLeakDetector.getLevel())
|
||||
.isEqualTo(ResourceLeakDetector.Level.ADVANCED));
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user