From 44155d6a98b19733d0ec77dc62d1ecd144341a60 Mon Sep 17 00:00:00 2001 From: Jason Plumb Date: Tue, 23 Aug 2022 11:43:59 -0700 Subject: [PATCH 1/2] add shouldApply to ResourceProvider interface --- .../sdk/autoconfigure/spi/ResourceProvider.java | 12 ++++++++++++ .../sdk/autoconfigure/ResourceConfiguration.java | 4 +++- 2 files changed, 15 insertions(+), 1 deletion(-) diff --git a/sdk-extensions/autoconfigure-spi/src/main/java/io/opentelemetry/sdk/autoconfigure/spi/ResourceProvider.java b/sdk-extensions/autoconfigure-spi/src/main/java/io/opentelemetry/sdk/autoconfigure/spi/ResourceProvider.java index 0957929e5a9..0a43126d244 100644 --- a/sdk-extensions/autoconfigure-spi/src/main/java/io/opentelemetry/sdk/autoconfigure/spi/ResourceProvider.java +++ b/sdk-extensions/autoconfigure-spi/src/main/java/io/opentelemetry/sdk/autoconfigure/spi/ResourceProvider.java @@ -14,4 +14,16 @@ public interface ResourceProvider extends Ordered { Resource createResource(ConfigProperties config); + + /** + * If an implementation needs to apply only under certain conditions related to the config or the + * existing state of the Resource being built, they can choose to override this default. + * + * @param config The auto configuration properties + * @param existing The current state of the Resource being created + * @return false to skip over this ResourceProvider, or true to use it + */ + default boolean shouldApply(ConfigProperties config, Resource existing) { + return true; + } } diff --git a/sdk-extensions/autoconfigure/src/main/java/io/opentelemetry/sdk/autoconfigure/ResourceConfiguration.java b/sdk-extensions/autoconfigure/src/main/java/io/opentelemetry/sdk/autoconfigure/ResourceConfiguration.java index 76646ab441d..663dad12da1 100644 --- a/sdk-extensions/autoconfigure/src/main/java/io/opentelemetry/sdk/autoconfigure/ResourceConfiguration.java +++ b/sdk-extensions/autoconfigure/src/main/java/io/opentelemetry/sdk/autoconfigure/ResourceConfiguration.java @@ -46,7 +46,9 @@ static Resource configureResource( if (disabledProviders.contains(resourceProvider.getClass().getName())) { continue; } - result = result.merge(resourceProvider.createResource(config)); + if (resourceProvider.shouldApply(config, result)) { + result = result.merge(resourceProvider.createResource(config)); + } } result = result.merge(createEnvironmentResource(config)); From 3277bed2863b1cb69f6c48307dbc0b141a3b9f69 Mon Sep 17 00:00:00 2001 From: Jason Plumb Date: Tue, 23 Aug 2022 15:35:44 -0700 Subject: [PATCH 2/2] jApiCmp --- .../opentelemetry-sdk-extension-autoconfigure-spi.txt | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/docs/apidiffs/current_vs_latest/opentelemetry-sdk-extension-autoconfigure-spi.txt b/docs/apidiffs/current_vs_latest/opentelemetry-sdk-extension-autoconfigure-spi.txt index df26146497b..71352e13666 100644 --- a/docs/apidiffs/current_vs_latest/opentelemetry-sdk-extension-autoconfigure-spi.txt +++ b/docs/apidiffs/current_vs_latest/opentelemetry-sdk-extension-autoconfigure-spi.txt @@ -1,2 +1,4 @@ Comparing source compatibility of against -No changes. \ No newline at end of file +***! MODIFIED INTERFACE: PUBLIC ABSTRACT io.opentelemetry.sdk.autoconfigure.spi.ResourceProvider (not serializable) + === CLASS FILE FORMAT VERSION: 52.0 <- 52.0 + +++! NEW METHOD: PUBLIC(+) boolean shouldApply(io.opentelemetry.sdk.autoconfigure.spi.ConfigProperties, io.opentelemetry.sdk.resources.Resource)