Annotate LoggingAutoConfiguration with @ConditionalOnMissingBean to disable auto-configuration when a user has explicitly declared GemFire/Geode logging configuration.
As user explicitly declares GemFire/Geode logging configuration when s/he annotates his/her main Spring Boot application class or an application specific @Configuration class picked up by Spring Boot with SDG's @EnableLogging annotation. Resolves gh-85.
This commit is contained in:
@@ -20,6 +20,7 @@ import org.apache.geode.cache.GemFireCache;
|
||||
import org.springframework.boot.autoconfigure.EnableAutoConfiguration;
|
||||
import org.springframework.boot.autoconfigure.condition.ConditionalOnBean;
|
||||
import org.springframework.boot.autoconfigure.condition.ConditionalOnClass;
|
||||
import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean;
|
||||
import org.springframework.context.annotation.Configuration;
|
||||
import org.springframework.data.gemfire.CacheFactoryBean;
|
||||
import org.springframework.data.gemfire.config.annotation.EnableLogging;
|
||||
@@ -31,6 +32,7 @@ import org.springframework.data.gemfire.config.annotation.EnableLogging;
|
||||
* @see org.springframework.boot.autoconfigure.EnableAutoConfiguration
|
||||
* @see org.springframework.boot.autoconfigure.condition.ConditionalOnBean
|
||||
* @see org.springframework.boot.autoconfigure.condition.ConditionalOnClass
|
||||
* @see org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean
|
||||
* @see org.springframework.context.annotation.Configuration
|
||||
* @see org.springframework.data.gemfire.CacheFactoryBean
|
||||
* @see org.springframework.data.gemfire.config.annotation.EnableLogging
|
||||
@@ -39,8 +41,14 @@ import org.springframework.data.gemfire.config.annotation.EnableLogging;
|
||||
@Configuration
|
||||
@ConditionalOnBean(GemFireCache.class)
|
||||
@ConditionalOnClass(CacheFactoryBean.class)
|
||||
@ConditionalOnMissingBean(name = {
|
||||
"org.springframework.data.gemfire.config.annotation.LoggingConfiguration.ClientGemFirePropertiesConfigurer",
|
||||
"org.springframework.data.gemfire.config.annotation.LoggingConfiguration.LocatorGemFirePropertiesConfigurer",
|
||||
"org.springframework.data.gemfire.config.annotation.LoggingConfiguration.PeerGemFirePropertiesConfigurer",
|
||||
})
|
||||
@EnableLogging
|
||||
@SuppressWarnings("unused")
|
||||
// TODO Find a more reliable way to refer to the LoggingConfiguration Configurer beans defined above other than by name!
|
||||
public class LoggingAutoConfiguration {
|
||||
|
||||
}
|
||||
|
||||
@@ -52,7 +52,10 @@ import org.springframework.test.context.junit4.SpringRunner;
|
||||
*/
|
||||
@RunWith(SpringRunner.class)
|
||||
@SpringBootTest(
|
||||
properties = { "spring.main.allow-bean-definition-overriding=false" },
|
||||
properties = {
|
||||
"spring.data.gemfire.logging.level=warn",
|
||||
"spring.main.allow-bean-definition-overriding=false"
|
||||
},
|
||||
webEnvironment = SpringBootTest.WebEnvironment.NONE
|
||||
)
|
||||
@SuppressWarnings("unused")
|
||||
@@ -84,7 +87,7 @@ public class LoggingManualConfigurationIntegrationTests extends IntegrationTests
|
||||
|
||||
@SpringBootApplication
|
||||
@EnableGemFireMockObjects
|
||||
@EnableLogging(logLevel = "warn")
|
||||
@EnableLogging
|
||||
@UseMemberName("LoggingManualConfigurationIntegrationTests")
|
||||
static class TestConfigurationOne { }
|
||||
|
||||
|
||||
@@ -3,5 +3,5 @@
|
||||
spring.boot.data.gemfire.cache.data.import.active-profiles=IMPORT
|
||||
spring.boot.data.gemfire.security.ssl.keystore.name=non-existing-trusted.keystore
|
||||
spring.data.gemfire.logging.level=error
|
||||
spring.data.gemfire.cache.log-level=${spring.data.gemfire.logging.level}
|
||||
spring.data.gemfire.cache.log-level=${spring.data.gemfire.logging.level:off}
|
||||
spring.main.allow-bean-definition-overriding=true
|
||||
|
||||
Reference in New Issue
Block a user