From b80f107d9b37f6905ce406762c66ba4f4f4e8f59 Mon Sep 17 00:00:00 2001 From: artembilan Date: Thu, 10 Nov 2022 09:36:05 -0500 Subject: [PATCH] Ignore empty value for `observationPatterns` --- .../IntegrationManagementConfiguration.java | 20 +++++++++++-------- .../IntegrationObservabilityZipkinTests.java | 6 ++++-- 2 files changed, 16 insertions(+), 10 deletions(-) diff --git a/spring-integration-core/src/main/java/org/springframework/integration/config/IntegrationManagementConfiguration.java b/spring-integration-core/src/main/java/org/springframework/integration/config/IntegrationManagementConfiguration.java index 7c84083abd..f073533a7a 100644 --- a/spring-integration-core/src/main/java/org/springframework/integration/config/IntegrationManagementConfiguration.java +++ b/spring-integration-core/src/main/java/org/springframework/integration/config/IntegrationManagementConfiguration.java @@ -32,9 +32,9 @@ import org.springframework.core.env.Environment; import org.springframework.core.type.AnnotationMetadata; import org.springframework.integration.support.management.metrics.MetricsCaptor; import org.springframework.util.Assert; +import org.springframework.util.StringUtils; import io.micrometer.observation.ObservationRegistry; -import org.springframework.util.StringUtils; /** * {@code @Configuration} class that registers a {@link IntegrationManagementConfigurer} bean. @@ -44,7 +44,6 @@ import org.springframework.util.StringUtils; * * @author Artem Bilan * @author Gary Russell - * * @since 4.2 */ @Configuration(proxyBeanMethods = false) @@ -87,13 +86,18 @@ public class IntegrationManagementConfiguration implements ImportAware, Environm } private String[] obtainObservationPatterns() { - Set patterns = new HashSet<>(); - String[] observationPatterns = (String[]) this.attributes.get("observationPatterns"); - for (String observationPattern : observationPatterns) { - String pattern = this.environment.resolvePlaceholders(observationPattern); - patterns.addAll(StringUtils.commaDelimitedListToSet(pattern)); + Set observationPatterns = new HashSet<>(); + String[] patternsProperties = (String[]) this.attributes.get("observationPatterns"); + for (String patternProperty : patternsProperties) { + String patternValue = this.environment.resolvePlaceholders(patternProperty); + String[] patternsToProcess = StringUtils.commaDelimitedListToStringArray(patternValue); + for (String pattern : patternsToProcess) { + if (StringUtils.hasText(pattern)) { + observationPatterns.add(pattern); + } + } } - return patterns.toArray(new String[0]); + return observationPatterns.toArray(new String[0]); } } diff --git a/spring-integration-core/src/test/java/org/springframework/integration/support/management/observation/IntegrationObservabilityZipkinTests.java b/spring-integration-core/src/test/java/org/springframework/integration/support/management/observation/IntegrationObservabilityZipkinTests.java index 47ddd6b3c5..63fdde1a59 100644 --- a/spring-integration-core/src/test/java/org/springframework/integration/support/management/observation/IntegrationObservabilityZipkinTests.java +++ b/spring-integration-core/src/test/java/org/springframework/integration/support/management/observation/IntegrationObservabilityZipkinTests.java @@ -107,8 +107,10 @@ public class IntegrationObservabilityZipkinTests extends SampleTestRunner { @Configuration @EnableIntegration @EnableIntegrationManagement( - observationPatterns = - "${spring.integration.management.observation-patterns:observedEndpoint,testInboundGateway}") + observationPatterns = { + "${spring.integration.management.observation-patterns:observedEndpoint,testInboundGateway}", + "${spring.integration.management.observation-patterns:}" + }) public static class ObservationIntegrationTestConfiguration { CountDownLatch observedHandlerLatch = new CountDownLatch(1);