SleuthPresentVerifier.java
/*
* 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.
*/
package org.springframework.cloud.configuration;
import org.springframework.util.ClassUtils;
/**
* Verifies if Spring Cloud Sleuth is present on the classpath.
*/
class SleuthPresentVerifier implements CompatibilityVerifier {
private static final String TRACER_CLASS = "org.springframework.cloud.sleuth.Tracer";
private static final String ERROR_DESCRIPTION = "Spring Cloud Sleuth is not compatible with this Spring Cloud release train";
private static final String ACTION = """
Migrate from Spring Cloud Sleuth to Micrometer Tracing .
You can check the Sleuth 3.1 Migration Guide over here [https://github.com/micrometer-metrics/tracing/wiki/Spring-Cloud-Sleuth-3.1-Migration-Guide].\s
If you want to disable this check, just set the property [spring.cloud.compatibility-verifier.enabled=false]""";
@Override
public VerificationResult verify() {
boolean present = sleuthPresent();
if (!present) {
return VerificationResult.compatible();
}
return VerificationResult.notCompatible(ERROR_DESCRIPTION, ACTION);
}
boolean sleuthPresent() {
return ClassUtils.isPresent(TRACER_CLASS, null);
}
}