From 854b29b8fbdb34df180b890db92c6cc584656a9e Mon Sep 17 00:00:00 2001 From: Phillip Webb Date: Fri, 16 Jun 2023 14:20:03 -0700 Subject: [PATCH] Polish --- .../OpenTelemetryAutoConfiguration.java | 5 ++-- .../autoconfigure/tracing/SpanExporters.java | 26 ++++++++++++------- .../autoconfigure/tracing/SpanProcessors.java | 26 ++++++++++++------- .../web/embedded/JettyThreadPool.java | 9 +++---- 4 files changed, 38 insertions(+), 28 deletions(-) diff --git a/spring-boot-project/spring-boot-actuator-autoconfigure/src/main/java/org/springframework/boot/actuate/autoconfigure/tracing/OpenTelemetryAutoConfiguration.java b/spring-boot-project/spring-boot-actuator-autoconfigure/src/main/java/org/springframework/boot/actuate/autoconfigure/tracing/OpenTelemetryAutoConfiguration.java index 93553ead79c..8a3a4d79f82 100644 --- a/spring-boot-project/spring-boot-actuator-autoconfigure/src/main/java/org/springframework/boot/actuate/autoconfigure/tracing/OpenTelemetryAutoConfiguration.java +++ b/spring-boot-project/spring-boot-actuator-autoconfigure/src/main/java/org/springframework/boot/actuate/autoconfigure/tracing/OpenTelemetryAutoConfiguration.java @@ -18,7 +18,6 @@ package org.springframework.boot.actuate.autoconfigure.tracing; import java.util.Collections; import java.util.List; -import java.util.stream.Collectors; import io.micrometer.tracing.SpanCustomizer; import io.micrometer.tracing.exporter.SpanExportingPredicate; @@ -128,7 +127,7 @@ public class OpenTelemetryAutoConfiguration { @Bean @ConditionalOnMissingBean SpanProcessors spanProcessors(ObjectProvider spanProcessors) { - return SpanProcessors.of(spanProcessors.orderedStream().collect(Collectors.toList())); + return SpanProcessors.of(spanProcessors.orderedStream().toList()); } @Bean @@ -145,7 +144,7 @@ public class OpenTelemetryAutoConfiguration { @Bean @ConditionalOnMissingBean SpanExporters spanExporters(ObjectProvider spanExporters) { - return SpanExporters.of(spanExporters.orderedStream().collect(Collectors.toList())); + return SpanExporters.of(spanExporters.orderedStream().toList()); } @Bean diff --git a/spring-boot-project/spring-boot-actuator-autoconfigure/src/main/java/org/springframework/boot/actuate/autoconfigure/tracing/SpanExporters.java b/spring-boot-project/spring-boot-actuator-autoconfigure/src/main/java/org/springframework/boot/actuate/autoconfigure/tracing/SpanExporters.java index d718047a9f2..a44f8ce0e03 100644 --- a/spring-boot-project/spring-boot-actuator-autoconfigure/src/main/java/org/springframework/boot/actuate/autoconfigure/tracing/SpanExporters.java +++ b/spring-boot-project/spring-boot-actuator-autoconfigure/src/main/java/org/springframework/boot/actuate/autoconfigure/tracing/SpanExporters.java @@ -17,18 +17,22 @@ package org.springframework.boot.actuate.autoconfigure.tracing; import java.util.Arrays; +import java.util.Collection; import java.util.Iterator; import java.util.List; import java.util.Spliterator; import io.opentelemetry.sdk.trace.export.SpanExporter; +import org.springframework.util.Assert; + /** * A collection of {@link SpanExporter span exporters}. * * @author Moritz Halbritter * @since 3.2.0 */ +@FunctionalInterface public interface SpanExporters extends Iterable { /** @@ -47,16 +51,6 @@ public interface SpanExporters extends Iterable { return list().spliterator(); } - /** - * Constructs a {@link SpanExporters} instance with the given list of - * {@link SpanExporter span exporters}. - * @param spanExporters the list of span exporters - * @return the constructed {@link SpanExporters} instance - */ - static SpanExporters of(List spanExporters) { - return () -> spanExporters; - } - /** * Constructs a {@link SpanExporters} instance with the given {@link SpanExporter span * exporters}. @@ -67,4 +61,16 @@ public interface SpanExporters extends Iterable { return of(Arrays.asList(spanExporters)); } + /** + * Constructs a {@link SpanExporters} instance with the given list of + * {@link SpanExporter span exporters}. + * @param spanExporters the list of span exporters + * @return the constructed {@link SpanExporters} instance + */ + static SpanExporters of(Collection spanExporters) { + Assert.notNull(spanExporters, "SpanExporters must not be null"); + List copy = List.copyOf(spanExporters); + return () -> copy; + } + } diff --git a/spring-boot-project/spring-boot-actuator-autoconfigure/src/main/java/org/springframework/boot/actuate/autoconfigure/tracing/SpanProcessors.java b/spring-boot-project/spring-boot-actuator-autoconfigure/src/main/java/org/springframework/boot/actuate/autoconfigure/tracing/SpanProcessors.java index 183e3bedac5..ca8c55498d0 100644 --- a/spring-boot-project/spring-boot-actuator-autoconfigure/src/main/java/org/springframework/boot/actuate/autoconfigure/tracing/SpanProcessors.java +++ b/spring-boot-project/spring-boot-actuator-autoconfigure/src/main/java/org/springframework/boot/actuate/autoconfigure/tracing/SpanProcessors.java @@ -17,18 +17,22 @@ package org.springframework.boot.actuate.autoconfigure.tracing; import java.util.Arrays; +import java.util.Collection; import java.util.Iterator; import java.util.List; import java.util.Spliterator; import io.opentelemetry.sdk.trace.SpanProcessor; +import org.springframework.util.Assert; + /** * A collection of {@link SpanProcessor span processors}. * * @author Moritz Halbritter * @since 3.2.0 */ +@FunctionalInterface public interface SpanProcessors extends Iterable { /** @@ -47,16 +51,6 @@ public interface SpanProcessors extends Iterable { return list().spliterator(); } - /** - * Constructs a {@link SpanProcessors} instance with the given list of - * {@link SpanProcessor span processors}. - * @param spanProcessors the list of span processors - * @return the constructed {@link SpanProcessors} instance - */ - static SpanProcessors of(List spanProcessors) { - return () -> spanProcessors; - } - /** * Constructs a {@link SpanProcessors} instance with the given {@link SpanProcessor * span processors}. @@ -67,4 +61,16 @@ public interface SpanProcessors extends Iterable { return of(Arrays.asList(spanProcessors)); } + /** + * Constructs a {@link SpanProcessors} instance with the given list of + * {@link SpanProcessor span processors}. + * @param spanProcessors the list of span processors + * @return the constructed {@link SpanProcessors} instance + */ + static SpanProcessors of(Collection spanProcessors) { + Assert.notNull(spanProcessors, "SpanProcessors must not be null"); + List copy = List.copyOf(spanProcessors); + return () -> copy; + } + } diff --git a/spring-boot-project/spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/web/embedded/JettyThreadPool.java b/spring-boot-project/spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/web/embedded/JettyThreadPool.java index 56d01c91a23..7c8dadadb90 100644 --- a/spring-boot-project/spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/web/embedded/JettyThreadPool.java +++ b/spring-boot-project/spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/web/embedded/JettyThreadPool.java @@ -26,8 +26,9 @@ import org.eclipse.jetty.util.thread.ThreadPool; import org.springframework.boot.autoconfigure.web.ServerProperties; /** - * Creates a {@link ThreadPool} for Jetty, applying the - * {@link ServerProperties.Jetty.Threads} properties. + * Creates a {@link ThreadPool} for Jetty, applying + * {@link org.springframework.boot.autoconfigure.web.ServerProperties.Jetty.Threads + * ServerProperties.Jetty.Threads Jetty thread properties}. * * @author Moritz Halbritter */ @@ -52,9 +53,7 @@ final class JettyThreadPool { if (maxQueueCapacity == 0) { return new SynchronousQueue<>(); } - else { - return new BlockingArrayQueue<>(maxQueueCapacity); - } + return new BlockingArrayQueue<>(maxQueueCapacity); } }