Create Create spring-boot-zipkin module

See gh-46148
This commit is contained in:
Phillip Webb 2025-05-23 11:44:13 -07:00 committed by Andy Wilkinson
parent 816e9eef7c
commit b12fe23662
28 changed files with 100 additions and 29 deletions

View File

@ -173,6 +173,7 @@ include "spring-boot-project:spring-boot-webflux"
include "spring-boot-project:spring-boot-webmvc"
include "spring-boot-project:spring-boot-webservices"
include "spring-boot-project:spring-boot-websocket"
include "spring-boot-project:spring-boot-zipkin"
include "spring-boot-system-tests:spring-boot-deployment-tests"
include "spring-boot-system-tests:spring-boot-image-tests"
include "spring-boot-tests:spring-boot-integration-tests:spring-boot-configuration-processor-tests"

View File

@ -36,7 +36,7 @@ configurations.all {
dependencies {
api(project(":spring-boot-project:spring-boot-actuator-autoconfigure"))
api(project(":spring-boot-project:spring-boot-autoconfigure"))
implementation(project(":spring-boot-project:spring-boot-metrics"))
implementation(project(":spring-boot-project:spring-boot-security")) {
exclude(group: "org.springframework.security")
@ -69,6 +69,7 @@ dependencies {
optional(project(":spring-boot-project:spring-boot-webclient"))
optional(project(":spring-boot-project:spring-boot-webflux"))
optional(project(":spring-boot-project:spring-boot-webmvc"))
optional(project(":spring-boot-project:spring-boot-zipkin"))
optional("ch.qos.logback:logback-classic")
optional("org.apache.cassandra:java-driver-core") {
exclude group: "org.slf4j", module: "jcl-over-slf4j"

View File

@ -1842,12 +1842,6 @@
"W3C"
]
},
{
"name": "management.zipkin.tracing.encoding",
"defaultValue": [
"JSON"
]
},
{
"name": "management.zipkin.tracing.export.enabled",
"type": "java.lang.Boolean",

View File

@ -62,7 +62,6 @@ org.springframework.boot.actuate.autoconfigure.tracing.NoopTracerAutoConfigurati
org.springframework.boot.actuate.autoconfigure.tracing.OpenTelemetryTracingAutoConfiguration
org.springframework.boot.actuate.autoconfigure.tracing.otlp.OtlpTracingAutoConfiguration
org.springframework.boot.actuate.autoconfigure.tracing.prometheus.PrometheusExemplarsAutoConfiguration
org.springframework.boot.actuate.autoconfigure.tracing.zipkin.ZipkinAutoConfiguration
org.springframework.boot.actuate.autoconfigure.tracing.zipkin.ZipkinTracingAutoConfiguration
org.springframework.boot.actuate.autoconfigure.web.exchanges.HttpExchangesAutoConfiguration
org.springframework.boot.actuate.autoconfigure.web.exchanges.HttpExchangesEndpointAutoConfiguration

View File

@ -20,6 +20,7 @@ import zipkin2.reporter.Encoding;
import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean;
import org.springframework.boot.test.context.TestConfiguration;
import org.springframework.boot.zipkin.autoconfigure.ZipkinAutoConfiguration;
import org.springframework.context.annotation.Bean;
/**

View File

@ -2139,7 +2139,8 @@ bom {
"spring-boot-webservices",
"spring-boot-websocket",
"spring-boot-web-server",
"spring-boot-web-server-test"
"spring-boot-web-server-test",
"spring-boot-zipkin"
]
plugins = [
"spring-boot-maven-plugin"

View File

@ -69,6 +69,7 @@ dependencies {
optional(project(":spring-boot-project:spring-boot-neo4j"))
optional(project(":spring-boot-project:spring-boot-pulsar"))
optional(project(":spring-boot-project:spring-boot-r2dbc"))
optional(project(":spring-boot-project:spring-boot-zipkin"))
optional("com.hazelcast:hazelcast")
optional("org.mongodb:mongodb-driver-core")
optional("org.neo4j.driver:neo4j-java-driver")

View File

@ -16,9 +16,9 @@
package org.springframework.boot.docker.compose.service.connection.zipkin;
import org.springframework.boot.actuate.autoconfigure.tracing.zipkin.ZipkinConnectionDetails;
import org.springframework.boot.docker.compose.service.connection.test.DockerComposeTest;
import org.springframework.boot.testsupport.container.TestImage;
import org.springframework.boot.zipkin.autoconfigure.ZipkinConnectionDetails;
import static org.assertj.core.api.Assertions.assertThat;

View File

@ -16,10 +16,10 @@
package org.springframework.boot.docker.compose.service.connection.zipkin;
import org.springframework.boot.actuate.autoconfigure.tracing.zipkin.ZipkinConnectionDetails;
import org.springframework.boot.docker.compose.core.RunningService;
import org.springframework.boot.docker.compose.service.connection.DockerComposeConnectionDetailsFactory;
import org.springframework.boot.docker.compose.service.connection.DockerComposeConnectionSource;
import org.springframework.boot.zipkin.autoconfigure.ZipkinConnectionDetails;
/**
* {@link DockerComposeConnectionDetailsFactory} to create {@link ZipkinConnectionDetails}

View File

@ -45,6 +45,7 @@ dependencies {
optional(project(":spring-boot-project:spring-boot-actuator-autoconfigure-all"))
optional(project(":spring-boot-project:spring-boot-tx"))
optional(project(":spring-boot-project:spring-boot-zipkin"))
optional("org.springframework:spring-test")
optional("org.testcontainers:grafana")

View File

@ -22,12 +22,12 @@ import org.testcontainers.junit.jupiter.Container;
import org.testcontainers.junit.jupiter.Testcontainers;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.actuate.autoconfigure.tracing.zipkin.ZipkinAutoConfiguration;
import org.springframework.boot.actuate.autoconfigure.tracing.zipkin.ZipkinConnectionDetails;
import org.springframework.boot.autoconfigure.ImportAutoConfiguration;
import org.springframework.boot.testcontainers.service.connection.ServiceConnection;
import org.springframework.boot.testsupport.container.TestImage;
import org.springframework.boot.testsupport.container.ZipkinContainer;
import org.springframework.boot.zipkin.autoconfigure.ZipkinAutoConfiguration;
import org.springframework.boot.zipkin.autoconfigure.ZipkinConnectionDetails;
import org.springframework.context.annotation.Configuration;
import org.springframework.test.context.junit.jupiter.SpringJUnitConfig;

View File

@ -19,10 +19,10 @@ package org.springframework.boot.testcontainers.service.connection.zipkin;
import org.testcontainers.containers.Container;
import org.testcontainers.containers.GenericContainer;
import org.springframework.boot.actuate.autoconfigure.tracing.zipkin.ZipkinConnectionDetails;
import org.springframework.boot.testcontainers.service.connection.ContainerConnectionDetailsFactory;
import org.springframework.boot.testcontainers.service.connection.ContainerConnectionSource;
import org.springframework.boot.testcontainers.service.connection.ServiceConnection;
import org.springframework.boot.zipkin.autoconfigure.ZipkinConnectionDetails;
/**
* {@link ContainerConnectionDetailsFactory} to create {@link ZipkinConnectionDetails}
@ -38,8 +38,7 @@ class ZipkinContainerConnectionDetailsFactory
private static final int ZIPKIN_PORT = 9411;
ZipkinContainerConnectionDetailsFactory() {
super("openzipkin/zipkin",
"org.springframework.boot.actuate.autoconfigure.tracing.zipkin.ZipkinAutoConfiguration");
super("openzipkin/zipkin", "org.springframework.boot.zipkin.autoconfigure.ZipkinAutoConfiguration");
}
@Override

View File

@ -20,8 +20,8 @@ import org.junit.jupiter.api.Test;
import org.springframework.aot.hint.RuntimeHints;
import org.springframework.aot.hint.predicate.RuntimeHintsPredicates;
import org.springframework.boot.actuate.autoconfigure.tracing.zipkin.ZipkinAutoConfiguration;
import org.springframework.boot.testcontainers.service.connection.ContainerConnectionDetailsFactoryHints;
import org.springframework.boot.zipkin.autoconfigure.ZipkinAutoConfiguration;
import static org.assertj.core.api.Assertions.assertThat;

View File

@ -0,0 +1,38 @@
/*
* Copyright 2012-present 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.
*/
plugins {
id "java-library"
id "org.springframework.boot.auto-configuration"
id "org.springframework.boot.configuration-properties"
id "org.springframework.boot.deployed"
id "org.springframework.boot.optional-dependencies"
}
description = "Spring Boot Zipkin"
dependencies {
api(project(":spring-boot-project:spring-boot"))
api("io.zipkin.reporter2:zipkin-reporter-brave")
optional(project(":spring-boot-project:spring-boot-autoconfigure"))
optional("io.zipkin.reporter2:zipkin-reporter-brave")
testImplementation(project(":spring-boot-project:spring-boot-test"))
testImplementation(project(":spring-boot-project:spring-boot-tools:spring-boot-test-support"))
testImplementation("com.squareup.okhttp3:mockwebserver")
}

View File

@ -14,7 +14,7 @@
* limitations under the License.
*/
package org.springframework.boot.actuate.autoconfigure.tracing.zipkin;
package org.springframework.boot.zipkin.autoconfigure;
import java.io.ByteArrayOutputStream;
import java.io.IOException;

View File

@ -14,7 +14,7 @@
* limitations under the License.
*/
package org.springframework.boot.actuate.autoconfigure.tracing.zipkin;
package org.springframework.boot.zipkin.autoconfigure;
/**
* Adapts {@link ZipkinProperties} to {@link ZipkinConnectionDetails}.

View File

@ -14,7 +14,7 @@
* limitations under the License.
*/
package org.springframework.boot.actuate.autoconfigure.tracing.zipkin;
package org.springframework.boot.zipkin.autoconfigure;
import java.net.http.HttpClient;
import java.net.http.HttpClient.Builder;
@ -25,6 +25,7 @@ import zipkin2.reporter.HttpEndpointSupplier;
import zipkin2.reporter.HttpEndpointSuppliers;
import org.springframework.beans.factory.ObjectProvider;
import org.springframework.boot.autoconfigure.AutoConfiguration;
import org.springframework.boot.autoconfigure.EnableAutoConfiguration;
import org.springframework.boot.autoconfigure.condition.ConditionalOnClass;
import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean;
@ -38,8 +39,9 @@ import org.springframework.context.annotation.Bean;
* @author Moritz Halbritter
* @author Stefan Bratanov
* @author Wick Dynex
* @since 3.0.0
* @since 4.0.0
*/
@AutoConfiguration
@ConditionalOnClass(Encoding.class)
@EnableConfigurationProperties(ZipkinProperties.class)
public class ZipkinAutoConfiguration {

View File

@ -14,7 +14,7 @@
* limitations under the License.
*/
package org.springframework.boot.actuate.autoconfigure.tracing.zipkin;
package org.springframework.boot.zipkin.autoconfigure;
import zipkin2.reporter.HttpEndpointSupplier.Factory;

View File

@ -14,7 +14,7 @@
* limitations under the License.
*/
package org.springframework.boot.actuate.autoconfigure.tracing.zipkin;
package org.springframework.boot.zipkin.autoconfigure;
import java.net.http.HttpClient.Builder;

View File

@ -14,7 +14,7 @@
* limitations under the License.
*/
package org.springframework.boot.actuate.autoconfigure.tracing.zipkin;
package org.springframework.boot.zipkin.autoconfigure;
import java.io.IOException;
import java.net.URI;

View File

@ -14,7 +14,7 @@
* limitations under the License.
*/
package org.springframework.boot.actuate.autoconfigure.tracing.zipkin;
package org.springframework.boot.zipkin.autoconfigure;
import java.time.Duration;

View File

@ -0,0 +1,20 @@
/*
* Copyright 2012-present 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.
*/
/**
* Auto-configuration for Zipkin.
*/
package org.springframework.boot.zipkin.autoconfigure;

View File

@ -0,0 +1,12 @@
{
"groups": [],
"properties": [
{
"name": "management.zipkin.tracing.encoding",
"defaultValue": [
"JSON"
]
}
],
"hints": []
}

View File

@ -0,0 +1 @@
org.springframework.boot.zipkin.autoconfigure.ZipkinAutoConfiguration

View File

@ -14,7 +14,7 @@
* limitations under the License.
*/
package org.springframework.boot.actuate.autoconfigure.tracing.zipkin;
package org.springframework.boot.zipkin.autoconfigure;
import java.util.concurrent.atomic.AtomicInteger;

View File

@ -14,7 +14,7 @@
* limitations under the License.
*/
package org.springframework.boot.actuate.autoconfigure.tracing.zipkin;
package org.springframework.boot.zipkin.autoconfigure;
import java.net.http.HttpClient;

View File

@ -14,7 +14,7 @@
* limitations under the License.
*/
package org.springframework.boot.actuate.autoconfigure.tracing.zipkin;
package org.springframework.boot.zipkin.autoconfigure;
import java.io.IOException;
import java.net.http.HttpClient;

View File

@ -14,7 +14,7 @@
* limitations under the License.
*/
package org.springframework.boot.actuate.autoconfigure.tracing.zipkin;
package org.springframework.boot.zipkin.autoconfigure;
import java.io.IOException;
import java.nio.charset.StandardCharsets;