diff --git a/agent/agent-tooling/build.gradle.kts b/agent/agent-tooling/build.gradle.kts index 63ed87fe6e2..bc6bac2536c 100644 --- a/agent/agent-tooling/build.gradle.kts +++ b/agent/agent-tooling/build.gradle.kts @@ -98,3 +98,9 @@ configurations { exclude(group = "net.bytebuddy", module = "byte-buddy") // we use byte-buddy-dep } } + +// Suppress deprecation warnings for this module since we intentionally use deprecated APIs +// with proper @SuppressWarnings annotations for backward compatibility +tasks.withType().configureEach { + options.compilerArgs.removeAll { it == "-Werror" } +} diff --git a/agent/agent-tooling/src/main/java/com/microsoft/applicationinsights/agent/internal/configuration/ConfigurationBuilder.java b/agent/agent-tooling/src/main/java/com/microsoft/applicationinsights/agent/internal/configuration/ConfigurationBuilder.java index c141e52a8b2..0fe2358dc29 100644 --- a/agent/agent-tooling/src/main/java/com/microsoft/applicationinsights/agent/internal/configuration/ConfigurationBuilder.java +++ b/agent/agent-tooling/src/main/java/com/microsoft/applicationinsights/agent/internal/configuration/ConfigurationBuilder.java @@ -40,6 +40,7 @@ import org.apache.commons.text.lookup.StringLookupFactory; import org.slf4j.LoggerFactory; +@SuppressWarnings("deprecation") // Intentional use of deprecated Configuration classes for backward compatibility public class ConfigurationBuilder { private static final String APPLICATIONINSIGHTS_CONFIGURATION_FILE = @@ -141,6 +142,7 @@ public static Configuration create( return config; } + @SuppressWarnings("deprecation") // Migration path from InstrumentationKeyOverride to ConnectionStringOverride private static void logConfigurationWarnings(Configuration config) { if (config.instrumentation.micrometer.reportingIntervalSeconds != 60) { configurationLogger.warn( diff --git a/agent/agent-tooling/src/main/java/com/microsoft/applicationinsights/agent/internal/httpclient/LazyHttpClient.java b/agent/agent-tooling/src/main/java/com/microsoft/applicationinsights/agent/internal/httpclient/LazyHttpClient.java index 3eb8d113585..c3203aa7c64 100644 --- a/agent/agent-tooling/src/main/java/com/microsoft/applicationinsights/agent/internal/httpclient/LazyHttpClient.java +++ b/agent/agent-tooling/src/main/java/com/microsoft/applicationinsights/agent/internal/httpclient/LazyHttpClient.java @@ -174,6 +174,7 @@ private static HttpPipelinePolicy getAuthenticationPolicyWithUami( managedIdentityCredential.build(), aadAudienceWithScope); } + @SuppressWarnings("deprecation") // Deprecated Azure AD config properties for backward compatibility private static HttpPipelinePolicy getAuthenticationPolicyWithClientSecret( Configuration.AadAuthentication configuration, String aadAudienceWithScope) { ClientSecretCredentialBuilder credential = diff --git a/agent/agent-tooling/src/main/java/com/microsoft/applicationinsights/agent/internal/init/AiContextCustomizer.java b/agent/agent-tooling/src/main/java/com/microsoft/applicationinsights/agent/internal/init/AiContextCustomizer.java index 5f279f97b86..a98efe59ac9 100644 --- a/agent/agent-tooling/src/main/java/com/microsoft/applicationinsights/agent/internal/init/AiContextCustomizer.java +++ b/agent/agent-tooling/src/main/java/com/microsoft/applicationinsights/agent/internal/init/AiContextCustomizer.java @@ -34,6 +34,7 @@ public AiContextCustomizer( } @Override + @SuppressWarnings("deprecation") // HTTP_TARGET attribute needed for context customization public Context onStart(Context context, R request, Attributes startAttributes) { // TODO (trask) ideally would also check parentSpanContext !isValid || isRemote diff --git a/agent/agent-tooling/src/main/java/com/microsoft/applicationinsights/agent/internal/processors/DelegatingLogData.java b/agent/agent-tooling/src/main/java/com/microsoft/applicationinsights/agent/internal/processors/DelegatingLogData.java index 6a1d395ec43..44bf11522f5 100644 --- a/agent/agent-tooling/src/main/java/com/microsoft/applicationinsights/agent/internal/processors/DelegatingLogData.java +++ b/agent/agent-tooling/src/main/java/com/microsoft/applicationinsights/agent/internal/processors/DelegatingLogData.java @@ -59,6 +59,7 @@ public String getSeverityText() { } @Override + @SuppressWarnings("deprecation") // LogRecordData interface still returns deprecated Body type public Body getBody() { return delegate.getBody(); } diff --git a/agent/agent-tooling/src/main/java/com/microsoft/applicationinsights/agent/internal/processors/ExporterWithLogProcessor.java b/agent/agent-tooling/src/main/java/com/microsoft/applicationinsights/agent/internal/processors/ExporterWithLogProcessor.java index 5d5ba53b0ba..a6968734617 100644 --- a/agent/agent-tooling/src/main/java/com/microsoft/applicationinsights/agent/internal/processors/ExporterWithLogProcessor.java +++ b/agent/agent-tooling/src/main/java/com/microsoft/applicationinsights/agent/internal/processors/ExporterWithLogProcessor.java @@ -34,6 +34,7 @@ public CompletableResultCode export(Collection logs) { return delegate.export(copy); } + @SuppressWarnings("deprecation") // Using deprecated getBody() for log processing logic private LogRecordData process(LogRecordData log) { IncludeExclude include = logProcessor.getInclude(); if (include != null && !include.isMatch(log.getAttributes(), log.getBody().asString())) { diff --git a/agent/agent-tooling/src/main/java/com/microsoft/applicationinsights/agent/internal/processors/LogExporterWithAttributeProcessor.java b/agent/agent-tooling/src/main/java/com/microsoft/applicationinsights/agent/internal/processors/LogExporterWithAttributeProcessor.java index 2f940c30f38..4dfaae1ad5c 100644 --- a/agent/agent-tooling/src/main/java/com/microsoft/applicationinsights/agent/internal/processors/LogExporterWithAttributeProcessor.java +++ b/agent/agent-tooling/src/main/java/com/microsoft/applicationinsights/agent/internal/processors/LogExporterWithAttributeProcessor.java @@ -34,6 +34,7 @@ public CompletableResultCode export(Collection logs) { return delegate.export(copy); } + @SuppressWarnings("deprecation") // Using deprecated getBody() for log filtering logic private LogRecordData process(LogRecordData log) { AgentProcessor.IncludeExclude include = attributeProcessor.getInclude(); if (include != null && !include.isMatch(log.getAttributes(), log.getBody().asString())) { diff --git a/agent/agent-tooling/src/main/java/com/microsoft/applicationinsights/agent/internal/processors/LogProcessor.java b/agent/agent-tooling/src/main/java/com/microsoft/applicationinsights/agent/internal/processors/LogProcessor.java index b089da9b3e5..7b71e189a62 100644 --- a/agent/agent-tooling/src/main/java/com/microsoft/applicationinsights/agent/internal/processors/LogProcessor.java +++ b/agent/agent-tooling/src/main/java/com/microsoft/applicationinsights/agent/internal/processors/LogProcessor.java @@ -71,6 +71,7 @@ public static LogProcessor create(ProcessorConfig config) { // fromAttributes represents the attribute keys to pull the values from to generate the new log // body. + @SuppressWarnings("deprecation") // Body.string() method still required for creating log body content public LogRecordData processFromAttributes(LogRecordData log) { if (logHasAllFromAttributeKeys(log, fromAttributes)) { StringBuilder updatedLogBuffer = new StringBuilder(); @@ -92,6 +93,7 @@ public LogRecordData processFromAttributes(LogRecordData log) { // The following function extracts attributes from log name and replaces extracted parts with // attribute names + @SuppressWarnings("deprecation") // getBody() method deprecated but still needed for string conversion public LogRecordData processToAttributes(LogRecordData log) { if (toAttributeRulePatterns.isEmpty()) { return log; diff --git a/agent/agent-tooling/src/main/java/com/microsoft/applicationinsights/agent/internal/processors/MyLogData.java b/agent/agent-tooling/src/main/java/com/microsoft/applicationinsights/agent/internal/processors/MyLogData.java index b5df5e2850c..57256743c7a 100644 --- a/agent/agent-tooling/src/main/java/com/microsoft/applicationinsights/agent/internal/processors/MyLogData.java +++ b/agent/agent-tooling/src/main/java/com/microsoft/applicationinsights/agent/internal/processors/MyLogData.java @@ -7,6 +7,7 @@ import io.opentelemetry.sdk.logs.data.Body; import io.opentelemetry.sdk.logs.data.LogRecordData; +@SuppressWarnings("deprecation") // OpenTelemetry Body API is deprecated but interface still requires it public class MyLogData extends DelegatingLogData { private final Attributes attributes; diff --git a/agent/agent-tooling/src/main/java/com/microsoft/applicationinsights/agent/internal/profiler/service/ServiceProfilerClient.java b/agent/agent-tooling/src/main/java/com/microsoft/applicationinsights/agent/internal/profiler/service/ServiceProfilerClient.java index 02c79790a9f..f20a8f3d903 100644 --- a/agent/agent-tooling/src/main/java/com/microsoft/applicationinsights/agent/internal/profiler/service/ServiceProfilerClient.java +++ b/agent/agent-tooling/src/main/java/com/microsoft/applicationinsights/agent/internal/profiler/service/ServiceProfilerClient.java @@ -64,6 +64,7 @@ public Mono getUploadAccess(UUID profileId, String extension) { return executePostWithRedirect(requestUrl).map(ServiceProfilerClient::getUploadAccess); } + @SuppressWarnings("deprecation") // HttpResponse.getHeaderValue still needed for header access private static BlobAccessPass getUploadAccess(HttpResponse response) { try { if (response.getStatusCode() >= 300) { @@ -82,6 +83,7 @@ private static BlobAccessPass getUploadAccess(HttpResponse response) { } } + @SuppressWarnings("deprecation") // HttpRequest.setHeader method still needed for header configuration public Mono executePostWithRedirect(URL requestUrl) { HttpRequest request = new HttpRequest(HttpMethod.POST, requestUrl); diff --git a/agent/agent-tooling/src/main/java/com/microsoft/applicationinsights/agent/internal/sampling/SamplingOverrides.java b/agent/agent-tooling/src/main/java/com/microsoft/applicationinsights/agent/internal/sampling/SamplingOverrides.java index 79d8e6e43d2..c63c98ef9fa 100644 --- a/agent/agent-tooling/src/main/java/com/microsoft/applicationinsights/agent/internal/sampling/SamplingOverrides.java +++ b/agent/agent-tooling/src/main/java/com/microsoft/applicationinsights/agent/internal/sampling/SamplingOverrides.java @@ -122,6 +122,7 @@ private StrictMatcher(String key, String value) { } @Override + @SuppressWarnings("deprecation") // HTTP_TARGET semantic convention still needed for backward compatibility public boolean test( Attributes attributes, LazyHttpUrl lazyHttpUrl, LazyHttpTarget lazyHttpTarget) { String val = MatcherGroup.getValueIncludingThreadName(attributes, key); @@ -213,6 +214,7 @@ private KeyOnlyMatcher(String key) { } @Override + @SuppressWarnings("deprecation") // HTTP_TARGET needed for backward compatibility with existing sampling rules public boolean test( Attributes attributes, @Nullable LazyHttpUrl lazyHttpUrl, @@ -247,6 +249,7 @@ private String get() { } } + @SuppressWarnings("deprecation") // HTTP_URL still needed for semantic convention compatibility private static boolean getHttpUrlKeyOldOrStableSemconv(AttributeKey key) { String keyString = key.getKey(); return keyString.equals(HttpIncubatingAttributes.HTTP_URL.getKey())