From ad19edf03b01745e159eecac66bc295f8041d3e9 Mon Sep 17 00:00:00 2001 From: Dave Syer Date: Fri, 10 May 2013 15:45:12 +0100 Subject: [PATCH] Fix bug introduced by Spring @Configuration processing --- .../TraceFilterConfiguration.java | 9 ++-- .../TraceFilterConfigurationTests.java | 42 +++++++++++++++++++ ...urationPropertiesBindingConfiguration.java | 4 +- .../src/test/resources/logback-test.xml | 1 + 4 files changed, 50 insertions(+), 6 deletions(-) create mode 100644 spring-bootstrap-actuator/src/test/java/org/springframework/bootstrap/actuate/autoconfigure/TraceFilterConfigurationTests.java diff --git a/spring-bootstrap-actuator/src/main/java/org/springframework/bootstrap/actuate/autoconfigure/TraceFilterConfiguration.java b/spring-bootstrap-actuator/src/main/java/org/springframework/bootstrap/actuate/autoconfigure/TraceFilterConfiguration.java index 168356d6045..09fc47e6546 100644 --- a/spring-bootstrap-actuator/src/main/java/org/springframework/bootstrap/actuate/autoconfigure/TraceFilterConfiguration.java +++ b/spring-bootstrap-actuator/src/main/java/org/springframework/bootstrap/actuate/autoconfigure/TraceFilterConfiguration.java @@ -45,10 +45,13 @@ public class TraceFilterConfiguration { @Value("${management.dump_requests:false}") private boolean dumpRequests; - @Bean @ConditionalOnMissingBean(TraceRepository.class) - protected TraceRepository traceRepository() { - return this.traceRepository; + @Configuration + protected static class TraceRepositoryConfiguration { + @Bean + public TraceRepository traceRepository() { + return new InMemoryTraceRepository(); + } } @Bean diff --git a/spring-bootstrap-actuator/src/test/java/org/springframework/bootstrap/actuate/autoconfigure/TraceFilterConfigurationTests.java b/spring-bootstrap-actuator/src/test/java/org/springframework/bootstrap/actuate/autoconfigure/TraceFilterConfigurationTests.java new file mode 100644 index 00000000000..72368aeef7b --- /dev/null +++ b/spring-bootstrap-actuator/src/test/java/org/springframework/bootstrap/actuate/autoconfigure/TraceFilterConfigurationTests.java @@ -0,0 +1,42 @@ +/* + * Copyright 2012-2013 the original author or authors. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package org.springframework.bootstrap.actuate.autoconfigure; + +import org.junit.Test; +import org.springframework.bootstrap.actuate.trace.TraceRepository; +import org.springframework.bootstrap.autoconfigure.PropertyPlaceholderAutoConfiguration; +import org.springframework.context.annotation.AnnotationConfigApplicationContext; + +import static org.junit.Assert.assertNotNull; + +/** + * @author Dave Syer + */ +public class TraceFilterConfigurationTests { + + private AnnotationConfigApplicationContext context; + + @Test + public void testTraceConfiguration() throws Exception { + this.context = new AnnotationConfigApplicationContext(); + this.context.register(PropertyPlaceholderAutoConfiguration.class, + TraceFilterConfiguration.class); + this.context.refresh(); + assertNotNull(this.context.getBean(TraceRepository.class)); + } + +} diff --git a/spring-bootstrap/src/main/java/org/springframework/bootstrap/context/annotation/ConfigurationPropertiesBindingConfiguration.java b/spring-bootstrap/src/main/java/org/springframework/bootstrap/context/annotation/ConfigurationPropertiesBindingConfiguration.java index d98c0541f05..39ac0d3ec18 100644 --- a/spring-bootstrap/src/main/java/org/springframework/bootstrap/context/annotation/ConfigurationPropertiesBindingConfiguration.java +++ b/spring-bootstrap/src/main/java/org/springframework/bootstrap/context/annotation/ConfigurationPropertiesBindingConfiguration.java @@ -58,13 +58,11 @@ public class ConfigurationPropertiesBindingConfiguration { @ConditionalOnMissingBean(name = VALIDATOR_BEAN_NAME) @ConditionalOnClass(name = "javax.validation.Validator") - public static class ValidatorConfiguration { - + protected static class ValidatorConfiguration { @Bean protected Validator configurationPropertiesValidator() { return new LocalValidatorFactoryBean(); } - } /** diff --git a/spring-bootstrap/src/test/resources/logback-test.xml b/spring-bootstrap/src/test/resources/logback-test.xml index 23d926a369c..d3fb3b539ad 100644 --- a/spring-bootstrap/src/test/resources/logback-test.xml +++ b/spring-bootstrap/src/test/resources/logback-test.xml @@ -7,6 +7,7 @@ ${LOG_PATTERN} +