From 6d4390e03481f809f335a555cb3db5646a8ce623 Mon Sep 17 00:00:00 2001 From: Andy Wilkinson Date: Mon, 3 Oct 2022 14:26:41 +0100 Subject: [PATCH] Simplify ConditionalOnEnabledTracing Closes gh-32572 --- .../tracing/ConditionalOnEnabledTracing.java | 3 +- .../tracing/OnTracingEnabledCondition.java | 43 ------------ .../OnTracingEnabledConditionTests.java | 69 ------------------- 3 files changed, 2 insertions(+), 113 deletions(-) delete mode 100644 spring-boot-project/spring-boot-actuator-autoconfigure/src/main/java/org/springframework/boot/actuate/autoconfigure/tracing/OnTracingEnabledCondition.java delete mode 100644 spring-boot-project/spring-boot-actuator-autoconfigure/src/test/java/org/springframework/boot/actuate/autoconfigure/tracing/OnTracingEnabledConditionTests.java diff --git a/spring-boot-project/spring-boot-actuator-autoconfigure/src/main/java/org/springframework/boot/actuate/autoconfigure/tracing/ConditionalOnEnabledTracing.java b/spring-boot-project/spring-boot-actuator-autoconfigure/src/main/java/org/springframework/boot/actuate/autoconfigure/tracing/ConditionalOnEnabledTracing.java index dea07b6b54..311dd867b5 100644 --- a/spring-boot-project/spring-boot-actuator-autoconfigure/src/main/java/org/springframework/boot/actuate/autoconfigure/tracing/ConditionalOnEnabledTracing.java +++ b/spring-boot-project/spring-boot-actuator-autoconfigure/src/main/java/org/springframework/boot/actuate/autoconfigure/tracing/ConditionalOnEnabledTracing.java @@ -22,6 +22,7 @@ import java.lang.annotation.Retention; import java.lang.annotation.RetentionPolicy; import java.lang.annotation.Target; +import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty; import org.springframework.context.annotation.Conditional; /** @@ -35,7 +36,7 @@ import org.springframework.context.annotation.Conditional; @Retention(RetentionPolicy.RUNTIME) @Target({ ElementType.TYPE, ElementType.METHOD }) @Documented -@Conditional(OnTracingEnabledCondition.class) +@ConditionalOnProperty(prefix = "management.tracing", name = "enabled", matchIfMissing = true) public @interface ConditionalOnEnabledTracing { } diff --git a/spring-boot-project/spring-boot-actuator-autoconfigure/src/main/java/org/springframework/boot/actuate/autoconfigure/tracing/OnTracingEnabledCondition.java b/spring-boot-project/spring-boot-actuator-autoconfigure/src/main/java/org/springframework/boot/actuate/autoconfigure/tracing/OnTracingEnabledCondition.java deleted file mode 100644 index ae485e4f24..0000000000 --- a/spring-boot-project/spring-boot-actuator-autoconfigure/src/main/java/org/springframework/boot/actuate/autoconfigure/tracing/OnTracingEnabledCondition.java +++ /dev/null @@ -1,43 +0,0 @@ -/* - * Copyright 2012-2022 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 - * - * https://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.boot.actuate.autoconfigure.tracing; - -import org.springframework.boot.autoconfigure.condition.ConditionMessage; -import org.springframework.boot.autoconfigure.condition.ConditionOutcome; -import org.springframework.boot.autoconfigure.condition.SpringBootCondition; -import org.springframework.context.annotation.Condition; -import org.springframework.context.annotation.ConditionContext; -import org.springframework.core.type.AnnotatedTypeMetadata; - -/** - * {@link Condition} that checks if tracing is enabled. - * - * @author Moritz Halbritter - * @see ConditionalOnEnabledTracing - */ -class OnTracingEnabledCondition extends SpringBootCondition { - - private static final String PROPERTY_NAME = "management.tracing.enabled"; - - @Override - public ConditionOutcome getMatchOutcome(ConditionContext context, AnnotatedTypeMetadata metadata) { - boolean match = context.getEnvironment().getProperty(PROPERTY_NAME, Boolean.class, true); - return new ConditionOutcome(match, ConditionMessage.forCondition(ConditionalOnEnabledTracing.class) - .because(PROPERTY_NAME + " is " + match)); - } - -} diff --git a/spring-boot-project/spring-boot-actuator-autoconfigure/src/test/java/org/springframework/boot/actuate/autoconfigure/tracing/OnTracingEnabledConditionTests.java b/spring-boot-project/spring-boot-actuator-autoconfigure/src/test/java/org/springframework/boot/actuate/autoconfigure/tracing/OnTracingEnabledConditionTests.java deleted file mode 100644 index e5a276bf39..0000000000 --- a/spring-boot-project/spring-boot-actuator-autoconfigure/src/test/java/org/springframework/boot/actuate/autoconfigure/tracing/OnTracingEnabledConditionTests.java +++ /dev/null @@ -1,69 +0,0 @@ -/* - * Copyright 2012-2022 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 - * - * https://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.boot.actuate.autoconfigure.tracing; - -import org.junit.jupiter.api.Test; - -import org.springframework.boot.autoconfigure.condition.ConditionOutcome; -import org.springframework.context.annotation.ConditionContext; -import org.springframework.core.env.Environment; -import org.springframework.core.type.AnnotatedTypeMetadata; -import org.springframework.mock.env.MockEnvironment; - -import static org.assertj.core.api.Assertions.assertThat; -import static org.mockito.BDDMockito.given; -import static org.mockito.Mockito.mock; - -/** - * Tests for {@link OnTracingEnabledCondition}. - * - * @author Moritz Halbritter - */ -class OnTracingEnabledConditionTests { - - private final OnTracingEnabledCondition condition = new OnTracingEnabledCondition(); - - @Test - void shouldMatchIfTrue() { - ConditionOutcome outcome = getMatchOutcome( - new MockEnvironment().withProperty("management.tracing.enabled", "true")); - assertThat(outcome.isMatch()).isTrue(); - assertThat(outcome.getMessage()).isEqualTo("@ConditionalOnEnabledTracing management.tracing.enabled is true"); - } - - @Test - void shouldMatchIfMissing() { - ConditionOutcome outcome = getMatchOutcome(new MockEnvironment()); - assertThat(outcome.isMatch()).isTrue(); - assertThat(outcome.getMessage()).isEqualTo("@ConditionalOnEnabledTracing management.tracing.enabled is true"); - } - - @Test - void shouldNotMatchIfFalse() { - ConditionOutcome outcome = getMatchOutcome( - new MockEnvironment().withProperty("management.tracing.enabled", "false")); - assertThat(outcome.isMatch()).isFalse(); - assertThat(outcome.getMessage()).isEqualTo("@ConditionalOnEnabledTracing management.tracing.enabled is false"); - } - - private ConditionOutcome getMatchOutcome(Environment environment) { - ConditionContext conditionContext = mock(ConditionContext.class); - given(conditionContext.getEnvironment()).willReturn(environment); - return this.condition.getMatchOutcome(conditionContext, mock(AnnotatedTypeMetadata.class)); - } - -}