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.EnableAutoConfiguration;
|
||||||
import org.springframework.boot.autoconfigure.condition.ConditionalOnBean;
|
import org.springframework.boot.autoconfigure.condition.ConditionalOnBean;
|
||||||
import org.springframework.boot.autoconfigure.condition.ConditionalOnClass;
|
import org.springframework.boot.autoconfigure.condition.ConditionalOnClass;
|
||||||
|
import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean;
|
||||||
import org.springframework.context.annotation.Configuration;
|
import org.springframework.context.annotation.Configuration;
|
||||||
import org.springframework.data.gemfire.CacheFactoryBean;
|
import org.springframework.data.gemfire.CacheFactoryBean;
|
||||||
import org.springframework.data.gemfire.config.annotation.EnableLogging;
|
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.EnableAutoConfiguration
|
||||||
* @see org.springframework.boot.autoconfigure.condition.ConditionalOnBean
|
* @see org.springframework.boot.autoconfigure.condition.ConditionalOnBean
|
||||||
* @see org.springframework.boot.autoconfigure.condition.ConditionalOnClass
|
* @see org.springframework.boot.autoconfigure.condition.ConditionalOnClass
|
||||||
|
* @see org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean
|
||||||
* @see org.springframework.context.annotation.Configuration
|
* @see org.springframework.context.annotation.Configuration
|
||||||
* @see org.springframework.data.gemfire.CacheFactoryBean
|
* @see org.springframework.data.gemfire.CacheFactoryBean
|
||||||
* @see org.springframework.data.gemfire.config.annotation.EnableLogging
|
* @see org.springframework.data.gemfire.config.annotation.EnableLogging
|
||||||
@@ -39,8 +41,14 @@ import org.springframework.data.gemfire.config.annotation.EnableLogging;
|
|||||||
@Configuration
|
@Configuration
|
||||||
@ConditionalOnBean(GemFireCache.class)
|
@ConditionalOnBean(GemFireCache.class)
|
||||||
@ConditionalOnClass(CacheFactoryBean.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
|
@EnableLogging
|
||||||
@SuppressWarnings("unused")
|
@SuppressWarnings("unused")
|
||||||
|
// TODO Find a more reliable way to refer to the LoggingConfiguration Configurer beans defined above other than by name!
|
||||||
public class LoggingAutoConfiguration {
|
public class LoggingAutoConfiguration {
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -52,7 +52,10 @@ import org.springframework.test.context.junit4.SpringRunner;
|
|||||||
*/
|
*/
|
||||||
@RunWith(SpringRunner.class)
|
@RunWith(SpringRunner.class)
|
||||||
@SpringBootTest(
|
@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
|
webEnvironment = SpringBootTest.WebEnvironment.NONE
|
||||||
)
|
)
|
||||||
@SuppressWarnings("unused")
|
@SuppressWarnings("unused")
|
||||||
@@ -84,7 +87,7 @@ public class LoggingManualConfigurationIntegrationTests extends IntegrationTests
|
|||||||
|
|
||||||
@SpringBootApplication
|
@SpringBootApplication
|
||||||
@EnableGemFireMockObjects
|
@EnableGemFireMockObjects
|
||||||
@EnableLogging(logLevel = "warn")
|
@EnableLogging
|
||||||
@UseMemberName("LoggingManualConfigurationIntegrationTests")
|
@UseMemberName("LoggingManualConfigurationIntegrationTests")
|
||||||
static class TestConfigurationOne { }
|
static class TestConfigurationOne { }
|
||||||
|
|
||||||
|
|||||||
@@ -3,5 +3,5 @@
|
|||||||
spring.boot.data.gemfire.cache.data.import.active-profiles=IMPORT
|
spring.boot.data.gemfire.cache.data.import.active-profiles=IMPORT
|
||||||
spring.boot.data.gemfire.security.ssl.keystore.name=non-existing-trusted.keystore
|
spring.boot.data.gemfire.security.ssl.keystore.name=non-existing-trusted.keystore
|
||||||
spring.data.gemfire.logging.level=error
|
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
|
spring.main.allow-bean-definition-overriding=true
|
||||||
|
|||||||
Reference in New Issue
Block a user