diff --git a/sdk-extensions/incubator/src/main/java/io/opentelemetry/sdk/extension/incubator/fileconfig/ResourceFactory.java b/sdk-extensions/incubator/src/main/java/io/opentelemetry/sdk/extension/incubator/fileconfig/ResourceFactory.java index fec1ad3f202..e43de54a34c 100644 --- a/sdk-extensions/incubator/src/main/java/io/opentelemetry/sdk/extension/incubator/fileconfig/ResourceFactory.java +++ b/sdk-extensions/incubator/src/main/java/io/opentelemetry/sdk/extension/incubator/fileconfig/ResourceFactory.java @@ -72,6 +72,10 @@ public Resource create(ResourceModel model, DeclarativeConfigContext context) { .build(); } + if (model.getSchemaUrl() != null) { + builder.setSchemaUrl(model.getSchemaUrl()); + } + return builder.build(); } diff --git a/sdk-extensions/incubator/src/test/java/io/opentelemetry/sdk/extension/incubator/fileconfig/ResourceFactoryTest.java b/sdk-extensions/incubator/src/test/java/io/opentelemetry/sdk/extension/incubator/fileconfig/ResourceFactoryTest.java index 58da73d00cf..a426e8bb9d0 100644 --- a/sdk-extensions/incubator/src/test/java/io/opentelemetry/sdk/extension/incubator/fileconfig/ResourceFactoryTest.java +++ b/sdk-extensions/incubator/src/test/java/io/opentelemetry/sdk/extension/incubator/fileconfig/ResourceFactoryTest.java @@ -21,7 +21,6 @@ import java.util.List; import java.util.stream.Stream; import javax.annotation.Nullable; -import org.junit.jupiter.api.Test; import org.junit.jupiter.params.ParameterizedTest; import org.junit.jupiter.params.provider.Arguments; import org.junit.jupiter.params.provider.MethodSource; @@ -31,28 +30,31 @@ class ResourceFactoryTest { private final DeclarativeConfigContext context = new DeclarativeConfigContext(SpiHelper.create(ResourceFactoryTest.class.getClassLoader())); - @Test - void create() { - assertThat( - ResourceFactory.getInstance() - .create( - new ResourceModel() - .withAttributes( - Arrays.asList( - new AttributeNameValueModel() - .withName("service.name") - .withValue("my-service"), - new AttributeNameValueModel().withName("key").withValue("val"), - new AttributeNameValueModel() - .withName("shape") - .withValue("circle"))), - context)) - .isEqualTo( + @ParameterizedTest + @MethodSource("createArgs") + void create(ResourceModel model, Resource expectedResource) { + assertThat(ResourceFactory.getInstance().create(model, context)).isEqualTo(expectedResource); + } + + private static Stream createArgs() { + return Stream.of( + Arguments.of( + new ResourceModel() + .withAttributes( + Arrays.asList( + new AttributeNameValueModel() + .withName("service.name") + .withValue("my-service"), + new AttributeNameValueModel().withName("key").withValue("val"), + new AttributeNameValueModel().withName("shape").withValue("circle"))), Resource.getDefault().toBuilder() .put("shape", "circle") .put("service.name", "my-service") .put("key", "val") - .build()); + .build()), + Arguments.of( + new ResourceModel().withSchemaUrl("http://foo"), + Resource.getDefault().toBuilder().setSchemaUrl("http://foo").build())); } @ParameterizedTest