diff --git a/pom.xml b/pom.xml
index 51e7617b..3a356ad0 100644
--- a/pom.xml
+++ b/pom.xml
@@ -22,7 +22,7 @@
spring-modulith-events
spring-modulith-test
spring-modulith-docs
-
+ spring-modulith-observability
spring-modulith-moments
spring-modulith-starter-jpa
spring-modulith-starter-test
@@ -191,7 +191,6 @@ limitations under the License.
org.projectlombok
lombok
- 1.18.24
provided
diff --git a/spring-modulith-observability/pom.xml b/spring-modulith-observability/pom.xml
index 68c50b44..8fb74373 100644
--- a/spring-modulith-observability/pom.xml
+++ b/spring-modulith-observability/pom.xml
@@ -16,18 +16,6 @@
2021.0.0
-
-
-
- org.springframework.cloud
- spring-cloud-dependencies
- ${spring-cloud.version}
- pom
- import
-
-
-
-
@@ -42,17 +30,6 @@
true
-
- org.springframework.cloud
- spring-cloud-sleuth-api
-
-
-
- org.springframework.cloud
- spring-cloud-sleuth-brave
- true
-
-
org.springframework.data
spring-data-rest-webmvc
@@ -64,13 +41,45 @@
spring-boot-starter-test
test
-
+
- org.springframework.cloud
- spring-cloud-starter-sleuth
+ io.micrometer
+ micrometer-observation
+ true
+
+
+
+ io.zipkin.brave
+ brave
+ true
+
+
+
+ io.micrometer
+ micrometer-tracing
+ true
+
+
+
+
+
+ org.springframework.boot
+ spring-boot-actuator-autoconfigure
+ test
+
+
+
+ io.micrometer
+ micrometer-core
+ test
+
+
+
+ io.micrometer
+ micrometer-tracing-bridge-brave
test
-
\ No newline at end of file
+
diff --git a/spring-modulith-observability/src/main/java/org/springframework/modulith/observability/ModuleEntryInterceptor.java b/spring-modulith-observability/src/main/java/org/springframework/modulith/observability/ModuleEntryInterceptor.java
index 29bd57a7..9b2216a1 100644
--- a/spring-modulith-observability/src/main/java/org/springframework/modulith/observability/ModuleEntryInterceptor.java
+++ b/spring-modulith-observability/src/main/java/org/springframework/modulith/observability/ModuleEntryInterceptor.java
@@ -15,6 +15,10 @@
*/
package org.springframework.modulith.observability;
+import io.micrometer.tracing.BaggageInScope;
+import io.micrometer.tracing.Span;
+import io.micrometer.tracing.Tracer;
+import io.micrometer.tracing.Tracer.SpanInScope;
import lombok.AccessLevel;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
@@ -24,10 +28,6 @@ import java.util.Map;
import org.aopalliance.intercept.MethodInterceptor;
import org.aopalliance.intercept.MethodInvocation;
-import org.springframework.cloud.sleuth.BaggageInScope;
-import org.springframework.cloud.sleuth.Span;
-import org.springframework.cloud.sleuth.Tracer;
-import org.springframework.cloud.sleuth.Tracer.SpanInScope;
@Slf4j
@RequiredArgsConstructor(access = AccessLevel.PRIVATE)
diff --git a/spring-modulith-observability/src/main/java/org/springframework/modulith/observability/ModuleEventListener.java b/spring-modulith-observability/src/main/java/org/springframework/modulith/observability/ModuleEventListener.java
index 87bc6fba..0017605d 100644
--- a/spring-modulith-observability/src/main/java/org/springframework/modulith/observability/ModuleEventListener.java
+++ b/spring-modulith-observability/src/main/java/org/springframework/modulith/observability/ModuleEventListener.java
@@ -15,12 +15,12 @@
*/
package org.springframework.modulith.observability;
+import io.micrometer.tracing.Span;
+import io.micrometer.tracing.Tracer;
import lombok.RequiredArgsConstructor;
import java.util.function.Supplier;
-import org.springframework.cloud.sleuth.Span;
-import org.springframework.cloud.sleuth.Tracer;
import org.springframework.context.ApplicationEvent;
import org.springframework.context.ApplicationListener;
import org.springframework.context.PayloadApplicationEvent;
diff --git a/spring-modulith-observability/src/main/java/org/springframework/modulith/observability/ModuleTracingBeanPostProcessor.java b/spring-modulith-observability/src/main/java/org/springframework/modulith/observability/ModuleTracingBeanPostProcessor.java
index 0636ab86..b79dcba9 100644
--- a/spring-modulith-observability/src/main/java/org/springframework/modulith/observability/ModuleTracingBeanPostProcessor.java
+++ b/spring-modulith-observability/src/main/java/org/springframework/modulith/observability/ModuleTracingBeanPostProcessor.java
@@ -15,6 +15,7 @@
*/
package org.springframework.modulith.observability;
+import io.micrometer.tracing.Tracer;
import lombok.RequiredArgsConstructor;
import java.lang.reflect.Method;
@@ -30,7 +31,6 @@ import org.springframework.aop.support.DefaultPointcutAdvisor;
import org.springframework.aop.support.StaticMethodMatcher;
import org.springframework.beans.BeansException;
import org.springframework.beans.factory.config.BeanPostProcessor;
-import org.springframework.cloud.sleuth.Tracer;
import org.springframework.modulith.model.Modules;
/**
diff --git a/spring-modulith-observability/src/main/java/org/springframework/modulith/observability/SpringDataRestModuleTracingBeanPostProcessor.java b/spring-modulith-observability/src/main/java/org/springframework/modulith/observability/SpringDataRestModuleTracingBeanPostProcessor.java
index d7ea8a73..d3275c91 100644
--- a/spring-modulith-observability/src/main/java/org/springframework/modulith/observability/SpringDataRestModuleTracingBeanPostProcessor.java
+++ b/spring-modulith-observability/src/main/java/org/springframework/modulith/observability/SpringDataRestModuleTracingBeanPostProcessor.java
@@ -15,6 +15,7 @@
*/
package org.springframework.modulith.observability;
+import io.micrometer.tracing.Tracer;
import lombok.RequiredArgsConstructor;
import org.aopalliance.aop.Advice;
@@ -24,7 +25,6 @@ import org.springframework.aop.Advisor;
import org.springframework.aop.support.DefaultPointcutAdvisor;
import org.springframework.beans.BeansException;
import org.springframework.beans.factory.config.BeanPostProcessor;
-import org.springframework.cloud.sleuth.Tracer;
import org.springframework.core.annotation.AnnotatedElementUtils;
import org.springframework.data.rest.webmvc.BasePathAwareController;
import org.springframework.data.rest.webmvc.RootResourceInformation;
diff --git a/spring-modulith-observability/src/main/java/org/springframework/modulith/observability/autoconfigure/ModuleObservabilityAutoConfiguration.java b/spring-modulith-observability/src/main/java/org/springframework/modulith/observability/autoconfigure/ModuleObservabilityAutoConfiguration.java
index d18060e5..e82726ff 100644
--- a/spring-modulith-observability/src/main/java/org/springframework/modulith/observability/autoconfigure/ModuleObservabilityAutoConfiguration.java
+++ b/spring-modulith-observability/src/main/java/org/springframework/modulith/observability/autoconfigure/ModuleObservabilityAutoConfiguration.java
@@ -22,10 +22,11 @@ import brave.baggage.BaggagePropagationCustomizer;
import brave.handler.MutableSpan;
import brave.handler.SpanHandler;
import brave.propagation.TraceContext;
+import io.micrometer.tracing.Tracer;
import org.springframework.beans.factory.ObjectProvider;
import org.springframework.boot.autoconfigure.condition.ConditionalOnClass;
-import org.springframework.cloud.sleuth.Tracer;
+import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty;
import org.springframework.context.ApplicationContext;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
@@ -38,6 +39,7 @@ import org.springframework.modulith.observability.ModulesRuntime;
* @author Oliver Drotbohm
*/
@Configuration(proxyBeanMethods = false)
+@ConditionalOnProperty(name = "management.tracing.enabled", havingValue = "true")
class ModuleObservabilityAutoConfiguration {
@Bean
diff --git a/spring-modulith-observability/src/main/java/org/springframework/modulith/observability/autoconfigure/SpringDataRestModuleObservabilityAutoConfiguration.java b/spring-modulith-observability/src/main/java/org/springframework/modulith/observability/autoconfigure/SpringDataRestModuleObservabilityAutoConfiguration.java
index 67e8fbdd..d226644b 100644
--- a/spring-modulith-observability/src/main/java/org/springframework/modulith/observability/autoconfigure/SpringDataRestModuleObservabilityAutoConfiguration.java
+++ b/spring-modulith-observability/src/main/java/org/springframework/modulith/observability/autoconfigure/SpringDataRestModuleObservabilityAutoConfiguration.java
@@ -15,8 +15,9 @@
*/
package org.springframework.modulith.observability.autoconfigure;
+import io.micrometer.tracing.Tracer;
+
import org.springframework.boot.autoconfigure.condition.ConditionalOnClass;
-import org.springframework.cloud.sleuth.Tracer;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.data.rest.webmvc.RepositoryController;
diff --git a/spring-modulith-observability/src/test/java/example/ExampleApplicationIntegrationTests.java b/spring-modulith-observability/src/test/java/example/ExampleApplicationIntegrationTests.java
index f93e456b..af14372b 100644
--- a/spring-modulith-observability/src/test/java/example/ExampleApplicationIntegrationTests.java
+++ b/spring-modulith-observability/src/test/java/example/ExampleApplicationIntegrationTests.java
@@ -15,15 +15,26 @@
*/
package example;
+import static org.assertj.core.api.Assertions.*;
+
import org.junit.jupiter.api.Test;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.boot.test.autoconfigure.actuate.observability.AutoConfigureObservability;
import org.springframework.boot.test.context.SpringBootTest;
+import org.springframework.context.ApplicationContext;
+import org.springframework.modulith.observability.ModuleEventListener;
/**
* @author Oliver Drotbohm
*/
@SpringBootTest
+@AutoConfigureObservability
class ExampleApplicationIntegrationTests {
+ @Autowired ApplicationContext context;
+
@Test
- void bootstrapsSuccessfully() {}
+ void bootstrapsSuccessfully() {
+ assertThat(context.getBean(ModuleEventListener.class)).isNotNull();
+ }
}
diff --git a/spring-modulith-observability/src/test/resources/application.properties b/spring-modulith-observability/src/test/resources/application.properties
index 02c4329b..dc0c4d75 100644
--- a/spring-modulith-observability/src/test/resources/application.properties
+++ b/spring-modulith-observability/src/test/resources/application.properties
@@ -1,2 +1,2 @@
-# As long as we're on a Spring Cloud version not officially compatible with Spring Boot 2.7
-spring.cloud.compatibility-verifier.enabled=false
+management.tracing.enabled=true
+