Kaynağa Gözat

Update to SDK 0.15.0 (#2137)

* Update to SDK 0.15.0

* Fix lightstep test
Anuraag Agrawal 4 yıl önce
ebeveyn
işleme
1ebb58a596
50 değiştirilmiş dosya ile 332 ekleme ve 257 silme
  1. 1 1
      benchmark/src/jmh/java/io/opentelemetry/benchmark/HttpBenchmark.java
  2. 4 4
      gradle/dependencies.gradle
  3. 1 2
      instrumentation/aws-lambda-1.0/library/src/test/java/io/opentelemetry/instrumentation/awslambda/v1_0/ApiGatewayProxyRequestTest.java
  4. 1 2
      instrumentation/aws-lambda-1.0/library/src/test/java/io/opentelemetry/instrumentation/awslambda/v1_0/ParentContextExtractorTest.java
  5. 11 4
      instrumentation/aws-sdk/aws-sdk-2.2/testing/src/main/groovy/io/opentelemetry/instrumentation/awssdk/v2_2/AbstractAws2ClientTest.groovy
  6. 10 10
      instrumentation/opentelemetry-api-metrics-1.0/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/opentelemetryapi/metrics/bridge/ApplicationDoubleCounter.java
  7. 7 6
      instrumentation/opentelemetry-api-metrics-1.0/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/opentelemetryapi/metrics/bridge/ApplicationDoubleSumObserver.java
  8. 9 8
      instrumentation/opentelemetry-api-metrics-1.0/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/opentelemetryapi/metrics/bridge/ApplicationDoubleUpDownCounter.java
  9. 7 6
      instrumentation/opentelemetry-api-metrics-1.0/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/opentelemetryapi/metrics/bridge/ApplicationDoubleUpDownSumObserver.java
  10. 7 6
      instrumentation/opentelemetry-api-metrics-1.0/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/opentelemetryapi/metrics/bridge/ApplicationDoubleValueObserver.java
  11. 10 10
      instrumentation/opentelemetry-api-metrics-1.0/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/opentelemetryapi/metrics/bridge/ApplicationDoubleValueRecorder.java
  12. 10 9
      instrumentation/opentelemetry-api-metrics-1.0/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/opentelemetryapi/metrics/bridge/ApplicationLongCounter.java
  13. 7 6
      instrumentation/opentelemetry-api-metrics-1.0/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/opentelemetryapi/metrics/bridge/ApplicationLongSumObserver.java
  14. 9 9
      instrumentation/opentelemetry-api-metrics-1.0/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/opentelemetryapi/metrics/bridge/ApplicationLongUpDownCounter.java
  15. 7 6
      instrumentation/opentelemetry-api-metrics-1.0/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/opentelemetryapi/metrics/bridge/ApplicationLongUpDownSumObserver.java
  16. 7 6
      instrumentation/opentelemetry-api-metrics-1.0/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/opentelemetryapi/metrics/bridge/ApplicationLongValueObserver.java
  17. 10 10
      instrumentation/opentelemetry-api-metrics-1.0/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/opentelemetryapi/metrics/bridge/ApplicationLongValueRecorder.java
  18. 24 24
      instrumentation/opentelemetry-api-metrics-1.0/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/opentelemetryapi/metrics/bridge/ApplicationMeter.java
  19. 2 2
      instrumentation/opentelemetry-api-metrics-1.0/javaagent/src/test/groovy/MeterTest.groovy
  20. 0 7
      instrumentation/opentelemetry-sdk-1.0/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/opentelemetrysdk/NoopTracerManagement.java
  21. 12 12
      instrumentation/oshi/library/src/test/java/io/opentelemetry/instrumentation/oshi/AbstractMetricsTest.java
  22. 1 4
      instrumentation/spring/spring-boot-autoconfigure/src/main/java/io/opentelemetry/instrumentation/spring/autoconfigure/TracerAutoConfiguration.java
  23. 9 5
      instrumentation/spring/spring-boot-autoconfigure/src/main/java/io/opentelemetry/instrumentation/spring/autoconfigure/exporters/jaeger/JaegerSpanExporterAutoConfiguration.java
  24. 5 15
      instrumentation/spring/spring-boot-autoconfigure/src/main/java/io/opentelemetry/instrumentation/spring/autoconfigure/exporters/jaeger/JaegerSpanExporterProperties.java
  25. 9 4
      instrumentation/spring/spring-boot-autoconfigure/src/main/java/io/opentelemetry/instrumentation/spring/autoconfigure/exporters/otlp/OtlpGrpcSpanExporterAutoConfiguration.java
  26. 5 14
      instrumentation/spring/spring-boot-autoconfigure/src/main/java/io/opentelemetry/instrumentation/spring/autoconfigure/exporters/otlp/OtlpGrpcSpanExporterProperties.java
  27. 6 4
      instrumentation/spring/spring-boot-autoconfigure/src/main/java/io/opentelemetry/instrumentation/spring/autoconfigure/exporters/zipkin/ZipkinSpanExporterAutoConfiguration.java
  28. 3 13
      instrumentation/spring/spring-boot-autoconfigure/src/main/java/io/opentelemetry/instrumentation/spring/autoconfigure/exporters/zipkin/ZipkinSpanExporterProperties.java
  29. 9 2
      instrumentation/spring/spring-boot-autoconfigure/src/test/java/io/opentelemetry/instrumentation/spring/autoconfigure/TracerAutoConfigurationTest.java
  30. 7 0
      instrumentation/spring/spring-boot-autoconfigure/src/test/java/io/opentelemetry/instrumentation/spring/autoconfigure/aspects/TraceAspectAutoConfigurationTest.java
  31. 7 2
      instrumentation/spring/spring-boot-autoconfigure/src/test/java/io/opentelemetry/instrumentation/spring/autoconfigure/exporters/JaegerSpanExporterAutoConfigurationTest.java
  32. 7 0
      instrumentation/spring/spring-boot-autoconfigure/src/test/java/io/opentelemetry/instrumentation/spring/autoconfigure/exporters/LoggingSpanExporterAutoConfigurationTest.java
  33. 7 2
      instrumentation/spring/spring-boot-autoconfigure/src/test/java/io/opentelemetry/instrumentation/spring/autoconfigure/exporters/OtlpGrpcSpanExporterAutoConfigurationTest.java
  34. 7 2
      instrumentation/spring/spring-boot-autoconfigure/src/test/java/io/opentelemetry/instrumentation/spring/autoconfigure/exporters/ZipkinSpanExporterAutoConfigurationTest.java
  35. 7 0
      instrumentation/spring/spring-boot-autoconfigure/src/test/java/io/opentelemetry/instrumentation/spring/autoconfigure/httpclients/resttemplate/RestTemplateAutoConfigurationTest.java
  36. 7 0
      instrumentation/spring/spring-boot-autoconfigure/src/test/java/io/opentelemetry/instrumentation/spring/autoconfigure/httpclients/webclient/WebClientAutoConfigurationTest.java
  37. 7 0
      instrumentation/spring/spring-boot-autoconfigure/src/test/java/io/opentelemetry/instrumentation/spring/autoconfigure/webmvc/WebMvcFilterAutoConfigurationTest.java
  38. 2 2
      javaagent-spi/src/main/java/io/opentelemetry/javaagent/spi/config/PropertySource.java
  39. 0 1
      javaagent-tooling/src/main/java/io/opentelemetry/javaagent/tooling/AgentTracerProviderConfigurer.java
  40. 9 7
      javaagent-tooling/src/main/java/io/opentelemetry/javaagent/tooling/OpenTelemetryInstaller.java
  41. 7 7
      smoke-tests/src/test/groovy/io/opentelemetry/smoketest/AppServerTest.groovy
  42. 1 1
      smoke-tests/src/test/groovy/io/opentelemetry/smoketest/GrpcSmokeTest.groovy
  43. 1 1
      smoke-tests/src/test/groovy/io/opentelemetry/smoketest/JaegerExporterSmokeTest.groovy
  44. 34 2
      smoke-tests/src/test/groovy/io/opentelemetry/smoketest/PropagationTest.groovy
  45. 1 2
      smoke-tests/src/test/groovy/io/opentelemetry/smoketest/SmokeTest.groovy
  46. 2 2
      smoke-tests/src/test/groovy/io/opentelemetry/smoketest/SpringBootSmokeTest.groovy
  47. 1 1
      smoke-tests/src/test/groovy/io/opentelemetry/smoketest/SpringBootWithSamplingSmokeTest.groovy
  48. 1 1
      smoke-tests/src/test/groovy/io/opentelemetry/smoketest/ZipkinExporterSmokeTest.groovy
  49. 12 11
      testing-common/src/main/java/io/opentelemetry/javaagent/testing/common/AgentTestingExporterAccess.java
  50. 2 2
      testing/agent-exporter/src/main/java/io/opentelemetry/javaagent/testing/exporter/AgentTestingExporterPropertySource.java

+ 1 - 1
benchmark/src/jmh/java/io/opentelemetry/benchmark/HttpBenchmark.java

@@ -58,7 +58,7 @@ public class HttpBenchmark {
   @Fork(
       jvmArgsAppend = {
         "-javaagent:/path/to/opentelemetry-java-instrumentation/java-agent/build/libs/opentelemetry-javaagent.jar",
-        "-Dotel.exporter=logging"
+        "-Dotel.trace.exporter=logging"
       })
   public static class WithAgent extends ClassRetransformingBenchmark {}
 }

+ 4 - 4
gradle/dependencies.gradle

@@ -8,8 +8,8 @@ configurations.all {
 
 ext {
   versions = [
-    opentelemetry     : '0.14.1',
-    opentelemetryAlpha: "0.14.1-alpha",
+    opentelemetry     : '0.15.0',
+    opentelemetryAlpha: "0.15.0-alpha",
 
     slf4j             : "1.7.30",
     guava             : "30.1-jre",
@@ -42,7 +42,7 @@ ext {
     opentelemetryLogging         : dependencies.create(group: 'io.opentelemetry', name: 'opentelemetry-exporter-logging', version: versions.opentelemetry),
     opentelemetryTraceProps      : dependencies.create(group: 'io.opentelemetry', name: 'opentelemetry-extension-trace-propagators', version: versions.opentelemetry),
     opentelemetrySdk             : dependencies.create(group: 'io.opentelemetry', name: 'opentelemetry-sdk', version: versions.opentelemetry),
-    opentelemetrySdkAutoconfigure: dependencies.create(group: 'io.opentelemetry', name: 'opentelemetry-sdk-extension-autoconfigure', version: versions.opentelemetry),
+    opentelemetrySdkAutoconfigure: dependencies.create(group: 'io.opentelemetry', name: 'opentelemetry-sdk-extension-autoconfigure', version: versions.opentelemetryAlpha),
     opentelemetrySdkMetrics      : dependencies.create(group: 'io.opentelemetry', name: 'opentelemetry-sdk-metrics', version: versions.opentelemetryAlpha),
     opentelemetryJaeger          : dependencies.create(group: 'io.opentelemetry', name: 'opentelemetry-exporter-jaeger', version: versions.opentelemetry),
     opentelemetryOtlp            : dependencies.create(group: 'io.opentelemetry', name: 'opentelemetry-exporter-otlp', version: versions.opentelemetry),
@@ -53,7 +53,7 @@ ext {
     opentelemetryProto           : dependencies.create(group: 'io.opentelemetry', name: 'opentelemetry-proto', version: versions.opentelemetry),
     opentelemetryResources       : dependencies.create(group: 'io.opentelemetry', name: 'opentelemetry-sdk-extension-resources', version: versions.opentelemetry),
     opentelemetrySdkTesting      : dependencies.create(group: 'io.opentelemetry', name: 'opentelemetry-sdk-testing', version: versions.opentelemetry),
-    opentelemetrySemConv         : dependencies.create(group: 'io.opentelemetry', name: 'opentelemetry-semconv', version: versions.opentelemetry),
+    opentelemetrySemConv         : dependencies.create(group: 'io.opentelemetry', name: 'opentelemetry-semconv', version: versions.opentelemetryAlpha),
 
     // General
     slf4j                        : "org.slf4j:slf4j-api:${versions.slf4j}",

+ 1 - 2
instrumentation/aws-lambda-1.0/library/src/test/java/io/opentelemetry/instrumentation/awslambda/v1_0/ApiGatewayProxyRequestTest.java

@@ -18,7 +18,6 @@ import io.opentelemetry.api.GlobalOpenTelemetry;
 import io.opentelemetry.context.propagation.ContextPropagators;
 import io.opentelemetry.extension.trace.propagation.AwsXrayPropagator;
 import io.opentelemetry.extension.trace.propagation.B3Propagator;
-import io.opentelemetry.sdk.OpenTelemetrySdk;
 import java.io.ByteArrayInputStream;
 import java.io.IOException;
 import java.io.InputStream;
@@ -29,7 +28,7 @@ class ApiGatewayProxyRequestTest {
 
   @AfterEach
   void resetOpenTelemetry() {
-    GlobalOpenTelemetry.set(OpenTelemetrySdk.builder().build());
+    GlobalOpenTelemetry.resetForTest();
   }
 
   @Test

+ 1 - 2
instrumentation/aws-lambda-1.0/library/src/test/java/io/opentelemetry/instrumentation/awslambda/v1_0/ParentContextExtractorTest.java

@@ -15,7 +15,6 @@ import io.opentelemetry.api.trace.SpanContext;
 import io.opentelemetry.context.Context;
 import io.opentelemetry.context.propagation.ContextPropagators;
 import io.opentelemetry.extension.trace.propagation.B3Propagator;
-import io.opentelemetry.sdk.OpenTelemetrySdk;
 import java.util.Map;
 import org.junit.jupiter.api.AfterEach;
 import org.junit.jupiter.api.Test;
@@ -24,7 +23,7 @@ class ParentContextExtractorTest {
 
   @AfterEach
   void resetOpenTelemetry() {
-    GlobalOpenTelemetry.set(OpenTelemetrySdk.builder().build());
+    GlobalOpenTelemetry.resetForTest();
   }
 
   @Test

+ 11 - 4
instrumentation/aws-sdk/aws-sdk-2.2/testing/src/main/groovy/io/opentelemetry/instrumentation/awssdk/v2_2/AbstractAws2ClientTest.groovy

@@ -62,10 +62,17 @@ abstract class AbstractAws2ClientTest extends InstrumentationSpecification {
 
   @AutoCleanup
   @Shared
-  def server = httpServer {
-    handlers {
-      all {
-        response.status(200).send(responseBody.get())
+  def server
+
+  def setup() {
+    // Lazy-load server to allow traits to initialize first.
+    if (server == null) {
+      server = httpServer {
+        handlers {
+          all {
+            response.status(200).send(responseBody.get())
+          }
+        }
       }
     }
   }

+ 10 - 10
instrumentation/opentelemetry-api-metrics-1.0/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/opentelemetryapi/metrics/bridge/ApplicationDoubleCounter.java

@@ -6,7 +6,9 @@
 package io.opentelemetry.javaagent.instrumentation.opentelemetryapi.metrics.bridge;
 
 import application.io.opentelemetry.api.common.Labels;
+import application.io.opentelemetry.api.metrics.BoundDoubleCounter;
 import application.io.opentelemetry.api.metrics.DoubleCounter;
+import application.io.opentelemetry.api.metrics.DoubleCounterBuilder;
 
 class ApplicationDoubleCounter implements DoubleCounter {
 
@@ -35,13 +37,11 @@ class ApplicationDoubleCounter implements DoubleCounter {
     return new BoundInstrument(agentDoubleCounter.bind(LabelBridging.toAgent(labels)));
   }
 
-  static class BoundInstrument implements DoubleCounter.BoundDoubleCounter {
+  static class BoundInstrument implements BoundDoubleCounter {
 
-    private final io.opentelemetry.api.metrics.DoubleCounter.BoundDoubleCounter
-        agentBoundDoubleCounter;
+    private final io.opentelemetry.api.metrics.BoundDoubleCounter agentBoundDoubleCounter;
 
-    BoundInstrument(
-        io.opentelemetry.api.metrics.DoubleCounter.BoundDoubleCounter agentBoundDoubleCounter) {
+    BoundInstrument(io.opentelemetry.api.metrics.BoundDoubleCounter agentBoundDoubleCounter) {
       this.agentBoundDoubleCounter = agentBoundDoubleCounter;
     }
 
@@ -56,22 +56,22 @@ class ApplicationDoubleCounter implements DoubleCounter {
     }
   }
 
-  static class Builder implements DoubleCounter.Builder {
+  static class Builder implements DoubleCounterBuilder {
 
-    private final io.opentelemetry.api.metrics.DoubleCounter.Builder agentBuilder;
+    private final io.opentelemetry.api.metrics.DoubleCounterBuilder agentBuilder;
 
-    Builder(io.opentelemetry.api.metrics.DoubleCounter.Builder agentBuilder) {
+    Builder(io.opentelemetry.api.metrics.DoubleCounterBuilder agentBuilder) {
       this.agentBuilder = agentBuilder;
     }
 
     @Override
-    public DoubleCounter.Builder setDescription(String description) {
+    public Builder setDescription(String description) {
       agentBuilder.setDescription(description);
       return this;
     }
 
     @Override
-    public DoubleCounter.Builder setUnit(String unit) {
+    public Builder setUnit(String unit) {
       agentBuilder.setUnit(unit);
       return this;
     }

+ 7 - 6
instrumentation/opentelemetry-api-metrics-1.0/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/opentelemetryapi/metrics/bridge/ApplicationDoubleSumObserver.java

@@ -7,6 +7,7 @@ package io.opentelemetry.javaagent.instrumentation.opentelemetryapi.metrics.brid
 
 import application.io.opentelemetry.api.common.Labels;
 import application.io.opentelemetry.api.metrics.DoubleSumObserver;
+import application.io.opentelemetry.api.metrics.DoubleSumObserverBuilder;
 import java.util.function.Consumer;
 
 class ApplicationDoubleSumObserver implements DoubleSumObserver {
@@ -49,28 +50,28 @@ class ApplicationDoubleSumObserver implements DoubleSumObserver {
     }
   }
 
-  static class Builder implements DoubleSumObserver.Builder {
+  static class Builder implements DoubleSumObserverBuilder {
 
-    private final io.opentelemetry.api.metrics.DoubleSumObserver.Builder agentBuilder;
+    private final io.opentelemetry.api.metrics.DoubleSumObserverBuilder agentBuilder;
 
-    protected Builder(io.opentelemetry.api.metrics.DoubleSumObserver.Builder agentBuilder) {
+    protected Builder(io.opentelemetry.api.metrics.DoubleSumObserverBuilder agentBuilder) {
       this.agentBuilder = agentBuilder;
     }
 
     @Override
-    public DoubleSumObserver.Builder setDescription(String description) {
+    public Builder setDescription(String description) {
       agentBuilder.setDescription(description);
       return this;
     }
 
     @Override
-    public DoubleSumObserver.Builder setUnit(String unit) {
+    public Builder setUnit(String unit) {
       agentBuilder.setUnit(unit);
       return this;
     }
 
     @Override
-    public DoubleSumObserver.Builder setUpdater(Consumer<DoubleResult> callback) {
+    public Builder setUpdater(Consumer<DoubleResult> callback) {
       agentBuilder.setUpdater(
           result ->
               callback.accept((sum, labels) -> result.observe(sum, LabelBridging.toAgent(labels))));

+ 9 - 8
instrumentation/opentelemetry-api-metrics-1.0/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/opentelemetryapi/metrics/bridge/ApplicationDoubleUpDownCounter.java

@@ -6,7 +6,9 @@
 package io.opentelemetry.javaagent.instrumentation.opentelemetryapi.metrics.bridge;
 
 import application.io.opentelemetry.api.common.Labels;
+import application.io.opentelemetry.api.metrics.BoundDoubleUpDownCounter;
 import application.io.opentelemetry.api.metrics.DoubleUpDownCounter;
+import application.io.opentelemetry.api.metrics.DoubleUpDownCounterBuilder;
 
 class ApplicationDoubleUpDownCounter implements DoubleUpDownCounter {
 
@@ -38,12 +40,11 @@ class ApplicationDoubleUpDownCounter implements DoubleUpDownCounter {
 
   static class BoundInstrument implements BoundDoubleUpDownCounter {
 
-    private final io.opentelemetry.api.metrics.DoubleUpDownCounter.BoundDoubleUpDownCounter
+    private final io.opentelemetry.api.metrics.BoundDoubleUpDownCounter
         agentBoundDoubleUpDownCounter;
 
     BoundInstrument(
-        io.opentelemetry.api.metrics.DoubleUpDownCounter.BoundDoubleUpDownCounter
-            agentBoundDoubleUpDownCounter) {
+        io.opentelemetry.api.metrics.BoundDoubleUpDownCounter agentBoundDoubleUpDownCounter) {
       this.agentBoundDoubleUpDownCounter = agentBoundDoubleUpDownCounter;
     }
 
@@ -58,22 +59,22 @@ class ApplicationDoubleUpDownCounter implements DoubleUpDownCounter {
     }
   }
 
-  static class Builder implements DoubleUpDownCounter.Builder {
+  static class Builder implements DoubleUpDownCounterBuilder {
 
-    private final io.opentelemetry.api.metrics.DoubleUpDownCounter.Builder agentBuilder;
+    private final io.opentelemetry.api.metrics.DoubleUpDownCounterBuilder agentBuilder;
 
-    Builder(io.opentelemetry.api.metrics.DoubleUpDownCounter.Builder agentBuilder) {
+    Builder(io.opentelemetry.api.metrics.DoubleUpDownCounterBuilder agentBuilder) {
       this.agentBuilder = agentBuilder;
     }
 
     @Override
-    public DoubleUpDownCounter.Builder setDescription(String description) {
+    public Builder setDescription(String description) {
       agentBuilder.setDescription(description);
       return this;
     }
 
     @Override
-    public DoubleUpDownCounter.Builder setUnit(String unit) {
+    public Builder setUnit(String unit) {
       agentBuilder.setUnit(unit);
       return this;
     }

+ 7 - 6
instrumentation/opentelemetry-api-metrics-1.0/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/opentelemetryapi/metrics/bridge/ApplicationDoubleUpDownSumObserver.java

@@ -7,6 +7,7 @@ package io.opentelemetry.javaagent.instrumentation.opentelemetryapi.metrics.brid
 
 import application.io.opentelemetry.api.common.Labels;
 import application.io.opentelemetry.api.metrics.DoubleUpDownSumObserver;
+import application.io.opentelemetry.api.metrics.DoubleUpDownSumObserverBuilder;
 import java.util.function.Consumer;
 
 class ApplicationDoubleUpDownSumObserver implements DoubleUpDownSumObserver {
@@ -50,28 +51,28 @@ class ApplicationDoubleUpDownSumObserver implements DoubleUpDownSumObserver {
     }
   }
 
-  static class Builder implements DoubleUpDownSumObserver.Builder {
+  static class Builder implements DoubleUpDownSumObserverBuilder {
 
-    private final io.opentelemetry.api.metrics.DoubleUpDownSumObserver.Builder agentBuilder;
+    private final io.opentelemetry.api.metrics.DoubleUpDownSumObserverBuilder agentBuilder;
 
-    protected Builder(io.opentelemetry.api.metrics.DoubleUpDownSumObserver.Builder agentBuilder) {
+    protected Builder(io.opentelemetry.api.metrics.DoubleUpDownSumObserverBuilder agentBuilder) {
       this.agentBuilder = agentBuilder;
     }
 
     @Override
-    public DoubleUpDownSumObserver.Builder setDescription(String description) {
+    public Builder setDescription(String description) {
       agentBuilder.setDescription(description);
       return this;
     }
 
     @Override
-    public DoubleUpDownSumObserver.Builder setUnit(String unit) {
+    public Builder setUnit(String unit) {
       agentBuilder.setUnit(unit);
       return this;
     }
 
     @Override
-    public DoubleUpDownSumObserver.Builder setUpdater(Consumer<DoubleResult> callback) {
+    public Builder setUpdater(Consumer<DoubleResult> callback) {
       agentBuilder.setUpdater(
           result ->
               callback.accept((sum, labels) -> result.observe(sum, LabelBridging.toAgent(labels))));

+ 7 - 6
instrumentation/opentelemetry-api-metrics-1.0/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/opentelemetryapi/metrics/bridge/ApplicationDoubleValueObserver.java

@@ -7,6 +7,7 @@ package io.opentelemetry.javaagent.instrumentation.opentelemetryapi.metrics.brid
 
 import application.io.opentelemetry.api.common.Labels;
 import application.io.opentelemetry.api.metrics.DoubleValueObserver;
+import application.io.opentelemetry.api.metrics.DoubleValueObserverBuilder;
 import java.util.function.Consumer;
 
 class ApplicationDoubleValueObserver implements DoubleValueObserver {
@@ -50,28 +51,28 @@ class ApplicationDoubleValueObserver implements DoubleValueObserver {
     }
   }
 
-  static class Builder implements DoubleValueObserver.Builder {
+  static class Builder implements DoubleValueObserverBuilder {
 
-    private final io.opentelemetry.api.metrics.DoubleValueObserver.Builder agentBuilder;
+    private final io.opentelemetry.api.metrics.DoubleValueObserverBuilder agentBuilder;
 
-    protected Builder(io.opentelemetry.api.metrics.DoubleValueObserver.Builder agentBuilder) {
+    protected Builder(io.opentelemetry.api.metrics.DoubleValueObserverBuilder agentBuilder) {
       this.agentBuilder = agentBuilder;
     }
 
     @Override
-    public DoubleValueObserver.Builder setDescription(String description) {
+    public Builder setDescription(String description) {
       agentBuilder.setDescription(description);
       return this;
     }
 
     @Override
-    public DoubleValueObserver.Builder setUnit(String unit) {
+    public Builder setUnit(String unit) {
       agentBuilder.setUnit(unit);
       return this;
     }
 
     @Override
-    public DoubleValueObserver.Builder setUpdater(Consumer<DoubleResult> callback) {
+    public Builder setUpdater(Consumer<DoubleResult> callback) {
       agentBuilder.setUpdater(
           result ->
               callback.accept((sum, labels) -> result.observe(sum, LabelBridging.toAgent(labels))));

+ 10 - 10
instrumentation/opentelemetry-api-metrics-1.0/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/opentelemetryapi/metrics/bridge/ApplicationDoubleValueRecorder.java

@@ -6,7 +6,9 @@
 package io.opentelemetry.javaagent.instrumentation.opentelemetryapi.metrics.bridge;
 
 import application.io.opentelemetry.api.common.Labels;
+import application.io.opentelemetry.api.metrics.BoundDoubleValueRecorder;
 import application.io.opentelemetry.api.metrics.DoubleValueRecorder;
+import application.io.opentelemetry.api.metrics.DoubleValueRecorderBuilder;
 
 class ApplicationDoubleValueRecorder implements DoubleValueRecorder {
 
@@ -36,14 +38,12 @@ class ApplicationDoubleValueRecorder implements DoubleValueRecorder {
     return new BoundInstrument(agentDoubleValueRecorder.bind(LabelBridging.toAgent(labels)));
   }
 
-  static class BoundInstrument implements DoubleValueRecorder.BoundDoubleValueRecorder {
+  static class BoundInstrument implements BoundDoubleValueRecorder {
 
-    private final io.opentelemetry.api.metrics.DoubleValueRecorder.BoundDoubleValueRecorder
-        agentBoundDoubleMeasure;
+    private final io.opentelemetry.api.metrics.BoundDoubleValueRecorder agentBoundDoubleMeasure;
 
     public BoundInstrument(
-        io.opentelemetry.api.metrics.DoubleValueRecorder.BoundDoubleValueRecorder
-            agentBoundDoubleMeasure) {
+        io.opentelemetry.api.metrics.BoundDoubleValueRecorder agentBoundDoubleMeasure) {
       this.agentBoundDoubleMeasure = agentBoundDoubleMeasure;
     }
 
@@ -58,22 +58,22 @@ class ApplicationDoubleValueRecorder implements DoubleValueRecorder {
     }
   }
 
-  static class Builder implements DoubleValueRecorder.Builder {
+  static class Builder implements DoubleValueRecorderBuilder {
 
-    private final io.opentelemetry.api.metrics.DoubleValueRecorder.Builder agentBuilder;
+    private final io.opentelemetry.api.metrics.DoubleValueRecorderBuilder agentBuilder;
 
-    public Builder(io.opentelemetry.api.metrics.DoubleValueRecorder.Builder agentBuilder) {
+    public Builder(io.opentelemetry.api.metrics.DoubleValueRecorderBuilder agentBuilder) {
       this.agentBuilder = agentBuilder;
     }
 
     @Override
-    public DoubleValueRecorder.Builder setDescription(String description) {
+    public Builder setDescription(String description) {
       agentBuilder.setDescription(description);
       return this;
     }
 
     @Override
-    public DoubleValueRecorder.Builder setUnit(String unit) {
+    public Builder setUnit(String unit) {
       agentBuilder.setUnit(unit);
       return this;
     }

+ 10 - 9
instrumentation/opentelemetry-api-metrics-1.0/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/opentelemetryapi/metrics/bridge/ApplicationLongCounter.java

@@ -6,7 +6,9 @@
 package io.opentelemetry.javaagent.instrumentation.opentelemetryapi.metrics.bridge;
 
 import application.io.opentelemetry.api.common.Labels;
+import application.io.opentelemetry.api.metrics.BoundLongCounter;
 import application.io.opentelemetry.api.metrics.LongCounter;
+import application.io.opentelemetry.api.metrics.LongCounterBuilder;
 
 class ApplicationLongCounter implements LongCounter {
 
@@ -35,12 +37,11 @@ class ApplicationLongCounter implements LongCounter {
     return new BoundInstrument(agentLongCounter.bind(LabelBridging.toAgent(labels)));
   }
 
-  static class BoundInstrument implements LongCounter.BoundLongCounter {
+  static class BoundInstrument implements BoundLongCounter {
 
-    private final io.opentelemetry.api.metrics.LongCounter.BoundLongCounter agentBoundLongCounter;
+    private final io.opentelemetry.api.metrics.BoundLongCounter agentBoundLongCounter;
 
-    BoundInstrument(
-        io.opentelemetry.api.metrics.LongCounter.BoundLongCounter agentBoundLongCounter) {
+    BoundInstrument(io.opentelemetry.api.metrics.BoundLongCounter agentBoundLongCounter) {
       this.agentBoundLongCounter = agentBoundLongCounter;
     }
 
@@ -55,22 +56,22 @@ class ApplicationLongCounter implements LongCounter {
     }
   }
 
-  static class Builder implements LongCounter.Builder {
+  static class Builder implements LongCounterBuilder {
 
-    private final io.opentelemetry.api.metrics.LongCounter.Builder agentBuilder;
+    private final io.opentelemetry.api.metrics.LongCounterBuilder agentBuilder;
 
-    Builder(io.opentelemetry.api.metrics.LongCounter.Builder agentBuilder) {
+    Builder(io.opentelemetry.api.metrics.LongCounterBuilder agentBuilder) {
       this.agentBuilder = agentBuilder;
     }
 
     @Override
-    public LongCounter.Builder setDescription(String description) {
+    public Builder setDescription(String description) {
       agentBuilder.setDescription(description);
       return this;
     }
 
     @Override
-    public LongCounter.Builder setUnit(String unit) {
+    public Builder setUnit(String unit) {
       agentBuilder.setUnit(unit);
       return this;
     }

+ 7 - 6
instrumentation/opentelemetry-api-metrics-1.0/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/opentelemetryapi/metrics/bridge/ApplicationLongSumObserver.java

@@ -7,6 +7,7 @@ package io.opentelemetry.javaagent.instrumentation.opentelemetryapi.metrics.brid
 
 import application.io.opentelemetry.api.common.Labels;
 import application.io.opentelemetry.api.metrics.LongSumObserver;
+import application.io.opentelemetry.api.metrics.LongSumObserverBuilder;
 import java.util.function.Consumer;
 
 class ApplicationLongSumObserver implements LongSumObserver {
@@ -49,28 +50,28 @@ class ApplicationLongSumObserver implements LongSumObserver {
     }
   }
 
-  static class Builder implements LongSumObserver.Builder {
+  static class Builder implements LongSumObserverBuilder {
 
-    private final io.opentelemetry.api.metrics.LongSumObserver.Builder agentBuilder;
+    private final io.opentelemetry.api.metrics.LongSumObserverBuilder agentBuilder;
 
-    protected Builder(io.opentelemetry.api.metrics.LongSumObserver.Builder agentBuilder) {
+    protected Builder(io.opentelemetry.api.metrics.LongSumObserverBuilder agentBuilder) {
       this.agentBuilder = agentBuilder;
     }
 
     @Override
-    public LongSumObserver.Builder setDescription(String description) {
+    public LongSumObserverBuilder setDescription(String description) {
       agentBuilder.setDescription(description);
       return this;
     }
 
     @Override
-    public LongSumObserver.Builder setUnit(String unit) {
+    public LongSumObserverBuilder setUnit(String unit) {
       agentBuilder.setUnit(unit);
       return this;
     }
 
     @Override
-    public LongSumObserver.Builder setUpdater(Consumer<LongResult> callback) {
+    public LongSumObserverBuilder setUpdater(Consumer<LongResult> callback) {
       agentBuilder.setUpdater(
           result ->
               callback.accept((sum, labels) -> result.observe(sum, LabelBridging.toAgent(labels))));

+ 9 - 9
instrumentation/opentelemetry-api-metrics-1.0/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/opentelemetryapi/metrics/bridge/ApplicationLongUpDownCounter.java

@@ -6,7 +6,9 @@
 package io.opentelemetry.javaagent.instrumentation.opentelemetryapi.metrics.bridge;
 
 import application.io.opentelemetry.api.common.Labels;
+import application.io.opentelemetry.api.metrics.BoundLongUpDownCounter;
 import application.io.opentelemetry.api.metrics.LongUpDownCounter;
+import application.io.opentelemetry.api.metrics.LongUpDownCounterBuilder;
 
 class ApplicationLongUpDownCounter implements LongUpDownCounter {
 
@@ -38,12 +40,10 @@ class ApplicationLongUpDownCounter implements LongUpDownCounter {
 
   static class BoundInstrument implements BoundLongUpDownCounter {
 
-    private final io.opentelemetry.api.metrics.LongUpDownCounter.BoundLongUpDownCounter
-        agentBoundLongUpDownCounter;
+    private final io.opentelemetry.api.metrics.BoundLongUpDownCounter agentBoundLongUpDownCounter;
 
     BoundInstrument(
-        io.opentelemetry.api.metrics.LongUpDownCounter.BoundLongUpDownCounter
-            agentBoundLongUpDownCounter) {
+        io.opentelemetry.api.metrics.BoundLongUpDownCounter agentBoundLongUpDownCounter) {
       this.agentBoundLongUpDownCounter = agentBoundLongUpDownCounter;
     }
 
@@ -58,22 +58,22 @@ class ApplicationLongUpDownCounter implements LongUpDownCounter {
     }
   }
 
-  static class Builder implements LongUpDownCounter.Builder {
+  static class Builder implements LongUpDownCounterBuilder {
 
-    private final io.opentelemetry.api.metrics.LongUpDownCounter.Builder agentBuilder;
+    private final io.opentelemetry.api.metrics.LongUpDownCounterBuilder agentBuilder;
 
-    Builder(io.opentelemetry.api.metrics.LongUpDownCounter.Builder agentBuilder) {
+    Builder(io.opentelemetry.api.metrics.LongUpDownCounterBuilder agentBuilder) {
       this.agentBuilder = agentBuilder;
     }
 
     @Override
-    public LongUpDownCounter.Builder setDescription(String description) {
+    public Builder setDescription(String description) {
       agentBuilder.setDescription(description);
       return this;
     }
 
     @Override
-    public LongUpDownCounter.Builder setUnit(String unit) {
+    public Builder setUnit(String unit) {
       agentBuilder.setUnit(unit);
       return this;
     }

+ 7 - 6
instrumentation/opentelemetry-api-metrics-1.0/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/opentelemetryapi/metrics/bridge/ApplicationLongUpDownSumObserver.java

@@ -7,6 +7,7 @@ package io.opentelemetry.javaagent.instrumentation.opentelemetryapi.metrics.brid
 
 import application.io.opentelemetry.api.common.Labels;
 import application.io.opentelemetry.api.metrics.LongUpDownSumObserver;
+import application.io.opentelemetry.api.metrics.LongUpDownSumObserverBuilder;
 import java.util.function.Consumer;
 
 class ApplicationLongUpDownSumObserver implements LongUpDownSumObserver {
@@ -50,28 +51,28 @@ class ApplicationLongUpDownSumObserver implements LongUpDownSumObserver {
     }
   }
 
-  static class Builder implements LongUpDownSumObserver.Builder {
+  static class Builder implements LongUpDownSumObserverBuilder {
 
-    private final io.opentelemetry.api.metrics.LongUpDownSumObserver.Builder agentBuilder;
+    private final io.opentelemetry.api.metrics.LongUpDownSumObserverBuilder agentBuilder;
 
-    protected Builder(io.opentelemetry.api.metrics.LongUpDownSumObserver.Builder agentBuilder) {
+    protected Builder(io.opentelemetry.api.metrics.LongUpDownSumObserverBuilder agentBuilder) {
       this.agentBuilder = agentBuilder;
     }
 
     @Override
-    public LongUpDownSumObserver.Builder setDescription(String description) {
+    public Builder setDescription(String description) {
       agentBuilder.setDescription(description);
       return this;
     }
 
     @Override
-    public LongUpDownSumObserver.Builder setUnit(String unit) {
+    public Builder setUnit(String unit) {
       agentBuilder.setUnit(unit);
       return this;
     }
 
     @Override
-    public LongUpDownSumObserver.Builder setUpdater(Consumer<LongResult> callback) {
+    public Builder setUpdater(Consumer<LongResult> callback) {
       agentBuilder.setUpdater(
           result ->
               callback.accept((sum, labels) -> result.observe(sum, LabelBridging.toAgent(labels))));

+ 7 - 6
instrumentation/opentelemetry-api-metrics-1.0/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/opentelemetryapi/metrics/bridge/ApplicationLongValueObserver.java

@@ -7,6 +7,7 @@ package io.opentelemetry.javaagent.instrumentation.opentelemetryapi.metrics.brid
 
 import application.io.opentelemetry.api.common.Labels;
 import application.io.opentelemetry.api.metrics.LongValueObserver;
+import application.io.opentelemetry.api.metrics.LongValueObserverBuilder;
 import java.util.function.Consumer;
 
 class ApplicationLongValueObserver implements LongValueObserver {
@@ -49,28 +50,28 @@ class ApplicationLongValueObserver implements LongValueObserver {
     }
   }
 
-  static class Builder implements LongValueObserver.Builder {
+  static class Builder implements LongValueObserverBuilder {
 
-    private final io.opentelemetry.api.metrics.LongValueObserver.Builder agentBuilder;
+    private final io.opentelemetry.api.metrics.LongValueObserverBuilder agentBuilder;
 
-    public Builder(io.opentelemetry.api.metrics.LongValueObserver.Builder agentBuilder) {
+    public Builder(io.opentelemetry.api.metrics.LongValueObserverBuilder agentBuilder) {
       this.agentBuilder = agentBuilder;
     }
 
     @Override
-    public LongValueObserver.Builder setDescription(String description) {
+    public Builder setDescription(String description) {
       agentBuilder.setDescription(description);
       return this;
     }
 
     @Override
-    public LongValueObserver.Builder setUnit(String unit) {
+    public Builder setUnit(String unit) {
       agentBuilder.setUnit(unit);
       return this;
     }
 
     @Override
-    public LongValueObserver.Builder setUpdater(Consumer<LongResult> callback) {
+    public Builder setUpdater(Consumer<LongResult> callback) {
       agentBuilder.setUpdater(
           result ->
               callback.accept((sum, labels) -> result.observe(sum, LabelBridging.toAgent(labels))));

+ 10 - 10
instrumentation/opentelemetry-api-metrics-1.0/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/opentelemetryapi/metrics/bridge/ApplicationLongValueRecorder.java

@@ -6,7 +6,9 @@
 package io.opentelemetry.javaagent.instrumentation.opentelemetryapi.metrics.bridge;
 
 import application.io.opentelemetry.api.common.Labels;
+import application.io.opentelemetry.api.metrics.BoundLongValueRecorder;
 import application.io.opentelemetry.api.metrics.LongValueRecorder;
+import application.io.opentelemetry.api.metrics.LongValueRecorderBuilder;
 
 class ApplicationLongValueRecorder implements LongValueRecorder {
 
@@ -36,14 +38,12 @@ class ApplicationLongValueRecorder implements LongValueRecorder {
     return new BoundInstrument(agentLongValueRecorder.bind(LabelBridging.toAgent(labels)));
   }
 
-  static class BoundInstrument implements LongValueRecorder.BoundLongValueRecorder {
+  static class BoundInstrument implements BoundLongValueRecorder {
 
-    private final io.opentelemetry.api.metrics.LongValueRecorder.BoundLongValueRecorder
-        agentBoundLongValueRecorder;
+    private final io.opentelemetry.api.metrics.BoundLongValueRecorder agentBoundLongValueRecorder;
 
     protected BoundInstrument(
-        io.opentelemetry.api.metrics.LongValueRecorder.BoundLongValueRecorder
-            agentBoundLongValueRecorder) {
+        io.opentelemetry.api.metrics.BoundLongValueRecorder agentBoundLongValueRecorder) {
       this.agentBoundLongValueRecorder = agentBoundLongValueRecorder;
     }
 
@@ -58,22 +58,22 @@ class ApplicationLongValueRecorder implements LongValueRecorder {
     }
   }
 
-  static class Builder implements LongValueRecorder.Builder {
+  static class Builder implements LongValueRecorderBuilder {
 
-    private final io.opentelemetry.api.metrics.LongValueRecorder.Builder agentBuilder;
+    private final io.opentelemetry.api.metrics.LongValueRecorderBuilder agentBuilder;
 
-    protected Builder(io.opentelemetry.api.metrics.LongValueRecorder.Builder agentBuilder) {
+    protected Builder(io.opentelemetry.api.metrics.LongValueRecorderBuilder agentBuilder) {
       this.agentBuilder = agentBuilder;
     }
 
     @Override
-    public LongValueRecorder.Builder setDescription(String description) {
+    public Builder setDescription(String description) {
       agentBuilder.setDescription(description);
       return this;
     }
 
     @Override
-    public LongValueRecorder.Builder setUnit(String unit) {
+    public Builder setUnit(String unit) {
       agentBuilder.setUnit(unit);
       return this;
     }

+ 24 - 24
instrumentation/opentelemetry-api-metrics-1.0/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/opentelemetryapi/metrics/bridge/ApplicationMeter.java

@@ -6,18 +6,18 @@
 package io.opentelemetry.javaagent.instrumentation.opentelemetryapi.metrics.bridge;
 
 import application.io.opentelemetry.api.metrics.BatchRecorder;
-import application.io.opentelemetry.api.metrics.DoubleCounter;
-import application.io.opentelemetry.api.metrics.DoubleSumObserver;
-import application.io.opentelemetry.api.metrics.DoubleUpDownCounter;
-import application.io.opentelemetry.api.metrics.DoubleUpDownSumObserver;
-import application.io.opentelemetry.api.metrics.DoubleValueObserver;
-import application.io.opentelemetry.api.metrics.DoubleValueRecorder;
-import application.io.opentelemetry.api.metrics.LongCounter;
-import application.io.opentelemetry.api.metrics.LongSumObserver;
-import application.io.opentelemetry.api.metrics.LongUpDownCounter;
-import application.io.opentelemetry.api.metrics.LongUpDownSumObserver;
-import application.io.opentelemetry.api.metrics.LongValueObserver;
-import application.io.opentelemetry.api.metrics.LongValueRecorder;
+import application.io.opentelemetry.api.metrics.DoubleCounterBuilder;
+import application.io.opentelemetry.api.metrics.DoubleSumObserverBuilder;
+import application.io.opentelemetry.api.metrics.DoubleUpDownCounterBuilder;
+import application.io.opentelemetry.api.metrics.DoubleUpDownSumObserverBuilder;
+import application.io.opentelemetry.api.metrics.DoubleValueObserverBuilder;
+import application.io.opentelemetry.api.metrics.DoubleValueRecorderBuilder;
+import application.io.opentelemetry.api.metrics.LongCounterBuilder;
+import application.io.opentelemetry.api.metrics.LongSumObserverBuilder;
+import application.io.opentelemetry.api.metrics.LongUpDownCounterBuilder;
+import application.io.opentelemetry.api.metrics.LongUpDownSumObserverBuilder;
+import application.io.opentelemetry.api.metrics.LongValueObserverBuilder;
+import application.io.opentelemetry.api.metrics.LongValueRecorderBuilder;
 import application.io.opentelemetry.api.metrics.Meter;
 
 class ApplicationMeter implements Meter {
@@ -29,64 +29,64 @@ class ApplicationMeter implements Meter {
   }
 
   @Override
-  public DoubleCounter.Builder doubleCounterBuilder(String name) {
+  public DoubleCounterBuilder doubleCounterBuilder(String name) {
     return new ApplicationDoubleCounter.Builder(agentMeter.doubleCounterBuilder(name));
   }
 
   @Override
-  public LongCounter.Builder longCounterBuilder(String name) {
+  public LongCounterBuilder longCounterBuilder(String name) {
     return new ApplicationLongCounter.Builder(agentMeter.longCounterBuilder(name));
   }
 
   @Override
-  public DoubleUpDownCounter.Builder doubleUpDownCounterBuilder(String name) {
+  public DoubleUpDownCounterBuilder doubleUpDownCounterBuilder(String name) {
     return new ApplicationDoubleUpDownCounter.Builder(agentMeter.doubleUpDownCounterBuilder(name));
   }
 
   @Override
-  public LongUpDownCounter.Builder longUpDownCounterBuilder(String name) {
+  public LongUpDownCounterBuilder longUpDownCounterBuilder(String name) {
     return new ApplicationLongUpDownCounter.Builder(agentMeter.longUpDownCounterBuilder(name));
   }
 
   @Override
-  public DoubleValueRecorder.Builder doubleValueRecorderBuilder(String name) {
+  public DoubleValueRecorderBuilder doubleValueRecorderBuilder(String name) {
     return new ApplicationDoubleValueRecorder.Builder(agentMeter.doubleValueRecorderBuilder(name));
   }
 
   @Override
-  public LongValueRecorder.Builder longValueRecorderBuilder(String name) {
+  public LongValueRecorderBuilder longValueRecorderBuilder(String name) {
     return new ApplicationLongValueRecorder.Builder(agentMeter.longValueRecorderBuilder(name));
   }
 
   @Override
-  public DoubleSumObserver.Builder doubleSumObserverBuilder(String name) {
+  public DoubleSumObserverBuilder doubleSumObserverBuilder(String name) {
     return new ApplicationDoubleSumObserver.Builder(agentMeter.doubleSumObserverBuilder(name));
   }
 
   @Override
-  public LongSumObserver.Builder longSumObserverBuilder(String name) {
+  public LongSumObserverBuilder longSumObserverBuilder(String name) {
     return new ApplicationLongSumObserver.Builder(agentMeter.longSumObserverBuilder(name));
   }
 
   @Override
-  public DoubleUpDownSumObserver.Builder doubleUpDownSumObserverBuilder(String name) {
+  public DoubleUpDownSumObserverBuilder doubleUpDownSumObserverBuilder(String name) {
     return new ApplicationDoubleUpDownSumObserver.Builder(
         agentMeter.doubleUpDownSumObserverBuilder(name));
   }
 
   @Override
-  public LongUpDownSumObserver.Builder longUpDownSumObserverBuilder(String name) {
+  public LongUpDownSumObserverBuilder longUpDownSumObserverBuilder(String name) {
     return new ApplicationLongUpDownSumObserver.Builder(
         agentMeter.longUpDownSumObserverBuilder(name));
   }
 
   @Override
-  public DoubleValueObserver.Builder doubleValueObserverBuilder(String name) {
+  public DoubleValueObserverBuilder doubleValueObserverBuilder(String name) {
     return new ApplicationDoubleValueObserver.Builder(agentMeter.doubleValueObserverBuilder(name));
   }
 
   @Override
-  public LongValueObserver.Builder longValueObserverBuilder(String name) {
+  public LongValueObserverBuilder longValueObserverBuilder(String name) {
     return new ApplicationLongValueObserver.Builder(agentMeter.longValueObserverBuilder(name));
   }
 

+ 2 - 2
instrumentation/opentelemetry-api-metrics-1.0/javaagent/src/test/groovy/MeterTest.groovy

@@ -16,7 +16,7 @@ import io.opentelemetry.api.metrics.AsynchronousInstrument
 import io.opentelemetry.api.metrics.GlobalMetricsProvider
 import io.opentelemetry.instrumentation.test.AgentTestRunner
 import io.opentelemetry.sdk.metrics.data.MetricData
-import io.opentelemetry.sdk.metrics.data.Point
+import io.opentelemetry.sdk.metrics.data.PointData
 import java.util.function.Consumer
 
 class MeterTest extends AgentTestRunner {
@@ -262,7 +262,7 @@ class MeterTest extends AgentTestRunner {
     }
   }
 
-  List<Point> points(MetricData metricData) {
+  List<PointData> points(MetricData metricData) {
     def points = []
     points.addAll(metricData.getDoubleGaugeData().getPoints())
     points.addAll(metricData.getDoubleSumData().getPoints())

+ 0 - 7
instrumentation/opentelemetry-sdk-1.0/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/opentelemetrysdk/NoopTracerManagement.java

@@ -7,7 +7,6 @@ package io.opentelemetry.javaagent.instrumentation.opentelemetrysdk;
 
 import io.opentelemetry.sdk.common.CompletableResultCode;
 import io.opentelemetry.sdk.trace.SdkTracerManagement;
-import io.opentelemetry.sdk.trace.SpanProcessor;
 import io.opentelemetry.sdk.trace.config.TraceConfig;
 import java.util.concurrent.atomic.AtomicBoolean;
 import org.slf4j.Logger;
@@ -41,12 +40,6 @@ public class NoopTracerManagement implements SdkTracerManagement {
     return TraceConfig.getDefault();
   }
 
-  @Override
-  public void updateActiveTraceConfig(TraceConfig traceConfig) {}
-
-  @Override
-  public void addSpanProcessor(SpanProcessor spanProcessor) {}
-
   @Override
   public CompletableResultCode shutdown() {
     return CompletableResultCode.ofSuccess();

+ 12 - 12
instrumentation/oshi/library/src/test/java/io/opentelemetry/instrumentation/oshi/AbstractMetricsTest.java

@@ -9,12 +9,12 @@ import static org.assertj.core.api.Assertions.assertThat;
 
 import io.opentelemetry.sdk.common.CompletableResultCode;
 import io.opentelemetry.sdk.metrics.SdkMeterProvider;
-import io.opentelemetry.sdk.metrics.data.DoublePoint;
-import io.opentelemetry.sdk.metrics.data.DoubleSummaryPoint;
-import io.opentelemetry.sdk.metrics.data.LongPoint;
+import io.opentelemetry.sdk.metrics.data.DoublePointData;
+import io.opentelemetry.sdk.metrics.data.DoubleSummaryPointData;
+import io.opentelemetry.sdk.metrics.data.LongPointData;
 import io.opentelemetry.sdk.metrics.data.MetricData;
 import io.opentelemetry.sdk.metrics.data.MetricDataType;
-import io.opentelemetry.sdk.metrics.data.Point;
+import io.opentelemetry.sdk.metrics.data.PointData;
 import io.opentelemetry.sdk.metrics.export.IntervalMetricReader;
 import io.opentelemetry.sdk.metrics.export.MetricExporter;
 import java.util.ArrayList;
@@ -59,7 +59,7 @@ class AbstractMetricsTest {
         assertThat(metricData.getDescription()).isNotEmpty();
         assertThat(metricData.getUnit()).isEqualTo(unit);
         metricData.getDoubleGaugeData().getPoints();
-        List<Point> points = new ArrayList<>();
+        List<PointData> points = new ArrayList<>();
         points.addAll(metricData.getDoubleGaugeData().getPoints());
         points.addAll(metricData.getDoubleSumData().getPoints());
         points.addAll(metricData.getDoubleSummaryData().getPoints());
@@ -69,15 +69,15 @@ class AbstractMetricsTest {
         assertThat(points).isNotEmpty();
         assertThat(metricData.getType()).isEqualTo(type);
         if (checkNonZeroValue) {
-          for (Point point : points) {
-            if (point instanceof LongPoint) {
-              LongPoint longPoint = (LongPoint) point;
+          for (PointData point : points) {
+            if (point instanceof LongPointData) {
+              LongPointData longPoint = (LongPointData) point;
               assertThat(longPoint.getValue()).isGreaterThan(0);
-            } else if (point instanceof DoublePoint) {
-              DoublePoint doublePoint = (DoublePoint) point;
+            } else if (point instanceof DoublePointData) {
+              DoublePointData doublePoint = (DoublePointData) point;
               assertThat(doublePoint.getValue()).isGreaterThan(0.0);
-            } else if (point instanceof DoubleSummaryPoint) {
-              DoubleSummaryPoint summaryPoint = (DoubleSummaryPoint) point;
+            } else if (point instanceof DoubleSummaryPointData) {
+              DoubleSummaryPointData summaryPoint = (DoubleSummaryPointData) point;
               assertThat(summaryPoint.getSum()).isGreaterThan(0.0);
             } else {
               Assertions.fail("unexpected type " + metricData.getType());

+ 1 - 4
instrumentation/spring/spring-boot-autoconfigure/src/main/java/io/opentelemetry/instrumentation/spring/autoconfigure/TracerAutoConfiguration.java

@@ -52,10 +52,7 @@ public class TracerAutoConfiguration {
 
     SdkTracerProvider tracerProvider =
         tracerProviderBuilder
-            .setTraceConfig(
-                TraceConfig.getDefault().toBuilder()
-                    .setSampler(Sampler.traceIdRatioBased(tracerProperties.getSamplerProbability()))
-                    .build())
+            .setSampler(Sampler.traceIdRatioBased(tracerProperties.getSamplerProbability()))
             .build();
     OpenTelemetrySdk.builder().setTracerProvider(tracerProvider).buildAndRegisterGlobal();
     return tracerProvider;

+ 9 - 5
instrumentation/spring/spring-boot-autoconfigure/src/main/java/io/opentelemetry/instrumentation/spring/autoconfigure/exporters/jaeger/JaegerSpanExporterAutoConfiguration.java

@@ -7,6 +7,7 @@ package io.opentelemetry.instrumentation.spring.autoconfigure.exporters.jaeger;
 
 import io.grpc.ManagedChannel;
 import io.opentelemetry.exporter.jaeger.JaegerGrpcSpanExporter;
+import io.opentelemetry.exporter.jaeger.JaegerGrpcSpanExporterBuilder;
 import io.opentelemetry.instrumentation.spring.autoconfigure.TracerAutoConfiguration;
 import org.springframework.boot.autoconfigure.AutoConfigureBefore;
 import org.springframework.boot.autoconfigure.condition.ConditionalOnClass;
@@ -36,10 +37,13 @@ public class JaegerSpanExporterAutoConfiguration {
   public JaegerGrpcSpanExporter otelJaegerSpanExporter(
       JaegerSpanExporterProperties jaegerSpanExporterProperties) {
 
-    return JaegerGrpcSpanExporter.builder()
-        .setServiceName(jaegerSpanExporterProperties.getServiceName())
-        .setTimeout(jaegerSpanExporterProperties.getSpanTimeout())
-        .setEndpoint(jaegerSpanExporterProperties.getEndpoint())
-        .build();
+    JaegerGrpcSpanExporterBuilder builder = JaegerGrpcSpanExporter.builder();
+    if (jaegerSpanExporterProperties.getEndpoint() != null) {
+      builder.setEndpoint(jaegerSpanExporterProperties.getEndpoint());
+    }
+    if (jaegerSpanExporterProperties.getSpanTimeout() != null) {
+      builder.setTimeout(jaegerSpanExporterProperties.getSpanTimeout());
+    }
+    return builder.build();
   }
 }

+ 5 - 15
instrumentation/spring/spring-boot-autoconfigure/src/main/java/io/opentelemetry/instrumentation/spring/autoconfigure/exporters/jaeger/JaegerSpanExporterProperties.java

@@ -5,11 +5,8 @@
 
 package io.opentelemetry.instrumentation.spring.autoconfigure.exporters.jaeger;
 
-import static io.opentelemetry.exporter.jaeger.JaegerGrpcSpanExporter.DEFAULT_DEADLINE_MS;
-import static io.opentelemetry.exporter.jaeger.JaegerGrpcSpanExporter.DEFAULT_ENDPOINT;
-import static io.opentelemetry.exporter.jaeger.JaegerGrpcSpanExporter.DEFAULT_SERVICE_NAME;
-
 import java.time.Duration;
+import org.checkerframework.checker.nullness.qual.Nullable;
 import org.springframework.boot.context.properties.ConfigurationProperties;
 
 /**
@@ -25,9 +22,8 @@ import org.springframework.boot.context.properties.ConfigurationProperties;
 public final class JaegerSpanExporterProperties {
 
   private boolean enabled = true;
-  private String serviceName = DEFAULT_SERVICE_NAME;
-  private String endpoint = DEFAULT_ENDPOINT;
-  private Duration spanTimeout = Duration.ofMillis(DEFAULT_DEADLINE_MS);
+  @Nullable private String endpoint;
+  @Nullable private Duration spanTimeout;
 
   public boolean isEnabled() {
     return enabled;
@@ -37,14 +33,7 @@ public final class JaegerSpanExporterProperties {
     this.enabled = enabled;
   }
 
-  public String getServiceName() {
-    return serviceName;
-  }
-
-  public void setServiceName(String serviceName) {
-    this.serviceName = serviceName;
-  }
-
+  @Nullable
   public String getEndpoint() {
     return endpoint;
   }
@@ -53,6 +42,7 @@ public final class JaegerSpanExporterProperties {
     this.endpoint = endpoint;
   }
 
+  @Nullable
   public Duration getSpanTimeout() {
     return spanTimeout;
   }

+ 9 - 4
instrumentation/spring/spring-boot-autoconfigure/src/main/java/io/opentelemetry/instrumentation/spring/autoconfigure/exporters/otlp/OtlpGrpcSpanExporterAutoConfiguration.java

@@ -7,6 +7,7 @@ package io.opentelemetry.instrumentation.spring.autoconfigure.exporters.otlp;
 
 import io.grpc.ManagedChannel;
 import io.opentelemetry.exporter.otlp.trace.OtlpGrpcSpanExporter;
+import io.opentelemetry.exporter.otlp.trace.OtlpGrpcSpanExporterBuilder;
 import io.opentelemetry.instrumentation.spring.autoconfigure.TracerAutoConfiguration;
 import org.springframework.boot.autoconfigure.AutoConfigureBefore;
 import org.springframework.boot.autoconfigure.condition.ConditionalOnClass;
@@ -36,9 +37,13 @@ public class OtlpGrpcSpanExporterAutoConfiguration {
   public OtlpGrpcSpanExporter otelOtlpGrpcSpanExporter(
       OtlpGrpcSpanExporterProperties otlpGrpcSpanExporterProperties) {
 
-    return OtlpGrpcSpanExporter.builder()
-        .setEndpoint(otlpGrpcSpanExporterProperties.getEndpoint())
-        .setTimeout(otlpGrpcSpanExporterProperties.getSpanTimeout())
-        .build();
+    OtlpGrpcSpanExporterBuilder builder = OtlpGrpcSpanExporter.builder();
+    if (otlpGrpcSpanExporterProperties.getEndpoint() != null) {
+      builder.setEndpoint(otlpGrpcSpanExporterProperties.getEndpoint());
+    }
+    if (otlpGrpcSpanExporterProperties.getSpanTimeout() != null) {
+      builder.setTimeout(otlpGrpcSpanExporterProperties.getSpanTimeout());
+    }
+    return builder.build();
   }
 }

+ 5 - 14
instrumentation/spring/spring-boot-autoconfigure/src/main/java/io/opentelemetry/instrumentation/spring/autoconfigure/exporters/otlp/OtlpGrpcSpanExporterProperties.java

@@ -5,10 +5,8 @@
 
 package io.opentelemetry.instrumentation.spring.autoconfigure.exporters.otlp;
 
-import static io.opentelemetry.exporter.otlp.trace.OtlpGrpcSpanExporter.DEFAULT_ENDPOINT;
-import static io.opentelemetry.exporter.otlp.trace.OtlpGrpcSpanExporter.DEFAULT_TIMEOUT_MS;
-
 import java.time.Duration;
+import org.checkerframework.checker.nullness.qual.Nullable;
 import org.springframework.boot.context.properties.ConfigurationProperties;
 
 /**
@@ -24,9 +22,8 @@ import org.springframework.boot.context.properties.ConfigurationProperties;
 public final class OtlpGrpcSpanExporterProperties {
 
   private boolean enabled = true;
-  private String serviceName = "unknown";
-  private String endpoint = DEFAULT_ENDPOINT;
-  private Duration spanTimeout = Duration.ofMillis(DEFAULT_TIMEOUT_MS);
+  @Nullable private String endpoint;
+  @Nullable private Duration spanTimeout;
 
   public boolean isEnabled() {
     return enabled;
@@ -36,14 +33,7 @@ public final class OtlpGrpcSpanExporterProperties {
     this.enabled = enabled;
   }
 
-  public String getServiceName() {
-    return serviceName;
-  }
-
-  public void setServiceName(String serviceName) {
-    this.serviceName = serviceName;
-  }
-
+  @Nullable
   public String getEndpoint() {
     return endpoint;
   }
@@ -52,6 +42,7 @@ public final class OtlpGrpcSpanExporterProperties {
     this.endpoint = endpoint;
   }
 
+  @Nullable
   public Duration getSpanTimeout() {
     return spanTimeout;
   }

+ 6 - 4
instrumentation/spring/spring-boot-autoconfigure/src/main/java/io/opentelemetry/instrumentation/spring/autoconfigure/exporters/zipkin/ZipkinSpanExporterAutoConfiguration.java

@@ -6,6 +6,7 @@
 package io.opentelemetry.instrumentation.spring.autoconfigure.exporters.zipkin;
 
 import io.opentelemetry.exporter.zipkin.ZipkinSpanExporter;
+import io.opentelemetry.exporter.zipkin.ZipkinSpanExporterBuilder;
 import io.opentelemetry.instrumentation.spring.autoconfigure.TracerAutoConfiguration;
 import org.springframework.boot.autoconfigure.AutoConfigureBefore;
 import org.springframework.boot.autoconfigure.condition.ConditionalOnClass;
@@ -35,9 +36,10 @@ public class ZipkinSpanExporterAutoConfiguration {
   public ZipkinSpanExporter otelZipkinSpanExporter(
       ZipkinSpanExporterProperties zipkinSpanExporterProperties) {
 
-    return ZipkinSpanExporter.builder()
-        .setServiceName(zipkinSpanExporterProperties.getServiceName())
-        .setEndpoint(zipkinSpanExporterProperties.getEndpoint())
-        .build();
+    ZipkinSpanExporterBuilder builder = ZipkinSpanExporter.builder();
+    if (zipkinSpanExporterProperties.getEndpoint() != null) {
+      builder.setEndpoint(zipkinSpanExporterProperties.getEndpoint());
+    }
+    return builder.build();
   }
 }

+ 3 - 13
instrumentation/spring/spring-boot-autoconfigure/src/main/java/io/opentelemetry/instrumentation/spring/autoconfigure/exporters/zipkin/ZipkinSpanExporterProperties.java

@@ -5,9 +5,7 @@
 
 package io.opentelemetry.instrumentation.spring.autoconfigure.exporters.zipkin;
 
-import static io.opentelemetry.exporter.zipkin.ZipkinSpanExporter.DEFAULT_ENDPOINT;
-import static io.opentelemetry.exporter.zipkin.ZipkinSpanExporter.DEFAULT_SERVICE_NAME;
-
+import org.checkerframework.checker.nullness.qual.Nullable;
 import org.springframework.boot.context.properties.ConfigurationProperties;
 
 /**
@@ -21,8 +19,7 @@ import org.springframework.boot.context.properties.ConfigurationProperties;
 public class ZipkinSpanExporterProperties {
 
   private boolean enabled = true;
-  private String serviceName = DEFAULT_SERVICE_NAME;
-  private String endpoint = DEFAULT_ENDPOINT;
+  @Nullable private String endpoint;
 
   public boolean isEnabled() {
     return enabled;
@@ -32,14 +29,7 @@ public class ZipkinSpanExporterProperties {
     this.enabled = enabled;
   }
 
-  public String getServiceName() {
-    return serviceName;
-  }
-
-  public void setServiceName(String serviceName) {
-    this.serviceName = serviceName;
-  }
-
+  @Nullable
   public String getEndpoint() {
     return endpoint;
   }

+ 9 - 2
instrumentation/spring/spring-boot-autoconfigure/src/test/java/io/opentelemetry/instrumentation/spring/autoconfigure/TracerAutoConfigurationTest.java

@@ -9,6 +9,8 @@ import static org.assertj.core.api.Assertions.assertThat;
 
 import io.opentelemetry.api.GlobalOpenTelemetry;
 import io.opentelemetry.api.trace.Tracer;
+import io.opentelemetry.api.trace.TracerProvider;
+import org.junit.jupiter.api.AfterEach;
 import org.junit.jupiter.api.DisplayName;
 import org.junit.jupiter.api.Test;
 import org.springframework.boot.autoconfigure.AutoConfigurations;
@@ -21,13 +23,18 @@ class TracerAutoConfigurationTest {
   @TestConfiguration
   static class CustomTracerConfiguration {
     @Bean
-    public Tracer customTestTracer() {
-      return GlobalOpenTelemetry.getTracer("customTestTracer");
+    public Tracer customTestTracer(TracerProvider tracerProvider) {
+      return tracerProvider.get("customTestTracer");
     }
   }
 
   private final ApplicationContextRunner contextRunner = new ApplicationContextRunner();
 
+  @AfterEach
+  void tearDown() {
+    GlobalOpenTelemetry.resetForTest();
+  }
+
   @Test
   @DisplayName("when Application Context contains Tracer bean should NOT initialize otelTracer")
   void customTracer() {

+ 7 - 0
instrumentation/spring/spring-boot-autoconfigure/src/test/java/io/opentelemetry/instrumentation/spring/autoconfigure/aspects/TraceAspectAutoConfigurationTest.java

@@ -7,7 +7,9 @@ package io.opentelemetry.instrumentation.spring.autoconfigure.aspects;
 
 import static org.assertj.core.api.Assertions.assertThat;
 
+import io.opentelemetry.api.GlobalOpenTelemetry;
 import io.opentelemetry.instrumentation.spring.autoconfigure.TracerAutoConfiguration;
+import org.junit.jupiter.api.AfterEach;
 import org.junit.jupiter.api.DisplayName;
 import org.junit.jupiter.api.Test;
 import org.springframework.boot.autoconfigure.AutoConfigurations;
@@ -22,6 +24,11 @@ public class TraceAspectAutoConfigurationTest {
               AutoConfigurations.of(
                   TracerAutoConfiguration.class, TraceAspectAutoConfiguration.class));
 
+  @AfterEach
+  void tearDown() {
+    GlobalOpenTelemetry.resetForTest();
+  }
+
   @Test
   @DisplayName("when aspects are ENABLED should initialize WithSpanAspect bean")
   void aspectsEnabled() {

+ 7 - 2
instrumentation/spring/spring-boot-autoconfigure/src/test/java/io/opentelemetry/instrumentation/spring/autoconfigure/exporters/JaegerSpanExporterAutoConfigurationTest.java

@@ -7,10 +7,12 @@ package io.opentelemetry.instrumentation.spring.autoconfigure.exporters;
 
 import static org.assertj.core.api.Assertions.assertThat;
 
+import io.opentelemetry.api.GlobalOpenTelemetry;
 import io.opentelemetry.exporter.jaeger.JaegerGrpcSpanExporter;
 import io.opentelemetry.instrumentation.spring.autoconfigure.TracerAutoConfiguration;
 import io.opentelemetry.instrumentation.spring.autoconfigure.exporters.jaeger.JaegerSpanExporterAutoConfiguration;
 import io.opentelemetry.instrumentation.spring.autoconfigure.exporters.jaeger.JaegerSpanExporterProperties;
+import org.junit.jupiter.api.AfterEach;
 import org.junit.jupiter.api.DisplayName;
 import org.junit.jupiter.api.Test;
 import org.springframework.boot.autoconfigure.AutoConfigurations;
@@ -25,6 +27,11 @@ class JaegerSpanExporterAutoConfigurationTest {
               AutoConfigurations.of(
                   TracerAutoConfiguration.class, JaegerSpanExporterAutoConfiguration.class));
 
+  @AfterEach
+  void tearDown() {
+    GlobalOpenTelemetry.resetForTest();
+  }
+
   @Test
   @DisplayName("when exporters are ENABLED should initialize JaegerGrpcSpanExporter bean")
   void exportersEnabled() {
@@ -44,14 +51,12 @@ class JaegerSpanExporterAutoConfigurationTest {
     this.contextRunner
         .withPropertyValues(
             "opentelemetry.trace.exporter.jaeger.enabled=true",
-            "opentelemetry.trace.exporter.jaeger.servicename=test",
             "opentelemetry.trace.exporter.jaeger.endpoint=localhost:8080/test",
             "opentelemetry.trace.exporter.jaeger.spantimeout=420ms")
         .run(
             (context) -> {
               JaegerSpanExporterProperties jaegerSpanExporterProperties =
                   context.getBean(JaegerSpanExporterProperties.class);
-              assertThat(jaegerSpanExporterProperties.getServiceName()).isEqualTo("test");
               assertThat(jaegerSpanExporterProperties.getEndpoint())
                   .isEqualTo("localhost:8080/test");
               assertThat(jaegerSpanExporterProperties.getSpanTimeout()).hasMillis(420);

+ 7 - 0
instrumentation/spring/spring-boot-autoconfigure/src/test/java/io/opentelemetry/instrumentation/spring/autoconfigure/exporters/LoggingSpanExporterAutoConfigurationTest.java

@@ -7,9 +7,11 @@ package io.opentelemetry.instrumentation.spring.autoconfigure.exporters;
 
 import static org.assertj.core.api.Assertions.assertThat;
 
+import io.opentelemetry.api.GlobalOpenTelemetry;
 import io.opentelemetry.exporter.logging.LoggingSpanExporter;
 import io.opentelemetry.instrumentation.spring.autoconfigure.TracerAutoConfiguration;
 import io.opentelemetry.instrumentation.spring.autoconfigure.exporters.logging.LoggingSpanExporterAutoConfiguration;
+import org.junit.jupiter.api.AfterEach;
 import org.junit.jupiter.api.DisplayName;
 import org.junit.jupiter.api.Test;
 import org.springframework.boot.autoconfigure.AutoConfigurations;
@@ -24,6 +26,11 @@ class LoggingSpanExporterAutoConfigurationTest {
               AutoConfigurations.of(
                   TracerAutoConfiguration.class, LoggingSpanExporterAutoConfiguration.class));
 
+  @AfterEach
+  void tearDown() {
+    GlobalOpenTelemetry.resetForTest();
+  }
+
   @Test
   @DisplayName("when exporters are ENABLED should initialize LoggingSpanExporter bean")
   void exportersEnabled() {

+ 7 - 2
instrumentation/spring/spring-boot-autoconfigure/src/test/java/io/opentelemetry/instrumentation/spring/autoconfigure/exporters/OtlpGrpcSpanExporterAutoConfigurationTest.java

@@ -7,10 +7,12 @@ package io.opentelemetry.instrumentation.spring.autoconfigure.exporters;
 
 import static org.assertj.core.api.Assertions.assertThat;
 
+import io.opentelemetry.api.GlobalOpenTelemetry;
 import io.opentelemetry.exporter.otlp.trace.OtlpGrpcSpanExporter;
 import io.opentelemetry.instrumentation.spring.autoconfigure.TracerAutoConfiguration;
 import io.opentelemetry.instrumentation.spring.autoconfigure.exporters.otlp.OtlpGrpcSpanExporterAutoConfiguration;
 import io.opentelemetry.instrumentation.spring.autoconfigure.exporters.otlp.OtlpGrpcSpanExporterProperties;
+import org.junit.jupiter.api.AfterEach;
 import org.junit.jupiter.api.DisplayName;
 import org.junit.jupiter.api.Test;
 import org.springframework.boot.autoconfigure.AutoConfigurations;
@@ -37,6 +39,11 @@ class OtlpGrpcSpanExporterAutoConfigurationTest {
             });
   }
 
+  @AfterEach
+  void tearDown() {
+    GlobalOpenTelemetry.resetForTest();
+  }
+
   @Test
   @DisplayName(
       "when opentelemetry.trace.exporter.otlp properties are set should initialize OtlpGrpcSpanExporterProperties")
@@ -44,14 +51,12 @@ class OtlpGrpcSpanExporterAutoConfigurationTest {
     this.contextRunner
         .withPropertyValues(
             "opentelemetry.trace.exporter.otlp.enabled=true",
-            "opentelemetry.trace.exporter.otlp.servicename=test",
             "opentelemetry.trace.exporter.otlp.endpoint=localhost:8080/test",
             "opentelemetry.trace.exporter.otlp.spantimeout=69ms")
         .run(
             (context) -> {
               OtlpGrpcSpanExporterProperties otlpSpanExporterProperties =
                   context.getBean(OtlpGrpcSpanExporterProperties.class);
-              assertThat(otlpSpanExporterProperties.getServiceName()).isEqualTo("test");
               assertThat(otlpSpanExporterProperties.getEndpoint()).isEqualTo("localhost:8080/test");
               assertThat(otlpSpanExporterProperties.getSpanTimeout()).hasMillis(69);
             });

+ 7 - 2
instrumentation/spring/spring-boot-autoconfigure/src/test/java/io/opentelemetry/instrumentation/spring/autoconfigure/exporters/ZipkinSpanExporterAutoConfigurationTest.java

@@ -7,10 +7,12 @@ package io.opentelemetry.instrumentation.spring.autoconfigure.exporters;
 
 import static org.assertj.core.api.Assertions.assertThat;
 
+import io.opentelemetry.api.GlobalOpenTelemetry;
 import io.opentelemetry.exporter.zipkin.ZipkinSpanExporter;
 import io.opentelemetry.instrumentation.spring.autoconfigure.TracerAutoConfiguration;
 import io.opentelemetry.instrumentation.spring.autoconfigure.exporters.zipkin.ZipkinSpanExporterAutoConfiguration;
 import io.opentelemetry.instrumentation.spring.autoconfigure.exporters.zipkin.ZipkinSpanExporterProperties;
+import org.junit.jupiter.api.AfterEach;
 import org.junit.jupiter.api.DisplayName;
 import org.junit.jupiter.api.Test;
 import org.springframework.boot.autoconfigure.AutoConfigurations;
@@ -25,6 +27,11 @@ class ZipkinSpanExporterAutoConfigurationTest {
               AutoConfigurations.of(
                   TracerAutoConfiguration.class, ZipkinSpanExporterAutoConfiguration.class));
 
+  @AfterEach
+  void tearDown() {
+    GlobalOpenTelemetry.resetForTest();
+  }
+
   @Test
   @DisplayName("when exporters are ENABLED should initialize ZipkinSpanExporter bean")
   void exportersEnabled() {
@@ -44,13 +51,11 @@ class ZipkinSpanExporterAutoConfigurationTest {
     this.contextRunner
         .withPropertyValues(
             "opentelemetry.trace.exporter.zipkin.enabled=true",
-            "opentelemetry.trace.exporter.zipkin.servicename=test",
             "opentelemetry.trace.exporter.zipkin.endpoint=http://localhost:8080/test")
         .run(
             (context) -> {
               ZipkinSpanExporterProperties zipkinSpanExporterProperties =
                   context.getBean(ZipkinSpanExporterProperties.class);
-              assertThat(zipkinSpanExporterProperties.getServiceName()).isEqualTo("test");
               assertThat(zipkinSpanExporterProperties.getEndpoint())
                   .isEqualTo("http://localhost:8080/test");
             });

+ 7 - 0
instrumentation/spring/spring-boot-autoconfigure/src/test/java/io/opentelemetry/instrumentation/spring/autoconfigure/httpclients/resttemplate/RestTemplateAutoConfigurationTest.java

@@ -7,7 +7,9 @@ package io.opentelemetry.instrumentation.spring.autoconfigure.httpclients.restte
 
 import static org.assertj.core.api.Assertions.assertThat;
 
+import io.opentelemetry.api.GlobalOpenTelemetry;
 import io.opentelemetry.instrumentation.spring.autoconfigure.TracerAutoConfiguration;
+import org.junit.jupiter.api.AfterEach;
 import org.junit.jupiter.api.DisplayName;
 import org.junit.jupiter.api.Test;
 import org.springframework.boot.autoconfigure.AutoConfigurations;
@@ -22,6 +24,11 @@ class RestTemplateAutoConfigurationTest {
               AutoConfigurations.of(
                   TracerAutoConfiguration.class, RestTemplateAutoConfiguration.class));
 
+  @AfterEach
+  void tearDown() {
+    GlobalOpenTelemetry.resetForTest();
+  }
+
   @Test
   @DisplayName("when httpclients are ENABLED should initialize RestTemplateInterceptor bean")
   void httpClientsEnabled() {

+ 7 - 0
instrumentation/spring/spring-boot-autoconfigure/src/test/java/io/opentelemetry/instrumentation/spring/autoconfigure/httpclients/webclient/WebClientAutoConfigurationTest.java

@@ -7,7 +7,9 @@ package io.opentelemetry.instrumentation.spring.autoconfigure.httpclients.webcli
 
 import static org.assertj.core.api.Assertions.assertThat;
 
+import io.opentelemetry.api.GlobalOpenTelemetry;
 import io.opentelemetry.instrumentation.spring.autoconfigure.TracerAutoConfiguration;
+import org.junit.jupiter.api.AfterEach;
 import org.junit.jupiter.api.DisplayName;
 import org.junit.jupiter.api.Test;
 import org.springframework.boot.autoconfigure.AutoConfigurations;
@@ -22,6 +24,11 @@ class WebClientAutoConfigurationTest {
               AutoConfigurations.of(
                   TracerAutoConfiguration.class, WebClientAutoConfiguration.class));
 
+  @AfterEach
+  void tearDown() {
+    GlobalOpenTelemetry.resetForTest();
+  }
+
   @Test
   @DisplayName("when httpclients are ENABLED should initialize WebClientBeanPostProcessor bean")
   void httpClientsEnabled() {

+ 7 - 0
instrumentation/spring/spring-boot-autoconfigure/src/test/java/io/opentelemetry/instrumentation/spring/autoconfigure/webmvc/WebMvcFilterAutoConfigurationTest.java

@@ -7,8 +7,10 @@ package io.opentelemetry.instrumentation.spring.autoconfigure.webmvc;
 
 import static org.assertj.core.api.Assertions.assertThat;
 
+import io.opentelemetry.api.GlobalOpenTelemetry;
 import io.opentelemetry.instrumentation.spring.autoconfigure.TracerAutoConfiguration;
 import io.opentelemetry.instrumentation.spring.webmvc.WebMvcTracingFilter;
+import org.junit.jupiter.api.AfterEach;
 import org.junit.jupiter.api.DisplayName;
 import org.junit.jupiter.api.Test;
 import org.springframework.boot.autoconfigure.AutoConfigurations;
@@ -22,6 +24,11 @@ class WebMvcFilterAutoConfigurationTest {
               AutoConfigurations.of(
                   TracerAutoConfiguration.class, WebMvcFilterAutoConfiguration.class));
 
+  @AfterEach
+  void tearDown() {
+    GlobalOpenTelemetry.resetForTest();
+  }
+
   @Test
   @DisplayName("when web is ENABLED should initialize WebMvcTracingFilter bean")
   void webEnabled() {

+ 2 - 2
javaagent-spi/src/main/java/io/opentelemetry/javaagent/spi/config/PropertySource.java

@@ -16,8 +16,8 @@ import java.util.Map;
 public interface PropertySource {
   /**
    * Returns all properties whose default values are overridden by this property source. Key of the
-   * map is the propertyName (same as system property name, e.g. {@code otel.exporter}), value is
-   * the property value.
+   * map is the propertyName (same as system property name, e.g. {@code otel.trace.exporter}), value
+   * is the property value.
    */
   Map<String, String> getProperties();
 }

+ 0 - 1
javaagent-tooling/src/main/java/io/opentelemetry/javaagent/tooling/AgentTracerProviderConfigurer.java

@@ -114,7 +114,6 @@ public class AgentTracerProviderConfigurer implements SdkTracerProviderConfigure
       MetricExporterFactory metricExporterFactory, Properties config) {
     MetricExporter metricExporter = metricExporterFactory.fromConfig(config);
     IntervalMetricReader.builder()
-        .readProperties(config)
         .setMetricExporter(metricExporter)
         .setMetricProducers(Collections.singleton((SdkMeterProvider) GlobalMetricsProvider.get()))
         .build();

+ 9 - 7
javaagent-tooling/src/main/java/io/opentelemetry/javaagent/tooling/OpenTelemetryInstaller.java

@@ -6,7 +6,6 @@
 package io.opentelemetry.javaagent.tooling;
 
 import com.google.auto.service.AutoService;
-import io.opentelemetry.api.GlobalOpenTelemetry;
 import io.opentelemetry.instrumentation.api.config.Config;
 import io.opentelemetry.instrumentation.api.config.ConfigBuilder;
 import io.opentelemetry.javaagent.instrumentation.api.OpenTelemetrySdkAccess;
@@ -35,11 +34,8 @@ public class OpenTelemetryInstaller implements ComponentInstaller {
       copySystemProperties();
 
       OpenTelemetrySdk sdk = OpenTelemetrySdkAutoConfiguration.initialize();
-      // TODO(anuraaga): Remove this workdaround after autoconfiguration is fixed to actually
-      // register the global.
-      GlobalOpenTelemetry.set(sdk);
       OpenTelemetrySdkAccess.internalSetForceFlush(
-          (timeout, unit) -> sdk.getTracerManagement().forceFlush().join(timeout, unit));
+          (timeout, unit) -> sdk.getSdkTracerProvider().forceFlush().join(timeout, unit));
     } else {
       log.info("Tracing is disabled.");
     }
@@ -80,11 +76,17 @@ public class OpenTelemetryInstaller implements ComponentInstaller {
     if (!environmentPropertiesWithCopies.containsKey("otel.propagators")) {
       System.setProperty("otel.propagators", "tracecontext,baggage");
     }
-    if (!environmentPropertiesWithCopies.containsKey("otel.trace.exporter")) {
+    String traceExporter = environmentPropertiesWithCopies.getProperty("otel.trace.exporter");
+    if (traceExporter == null) {
       System.setProperty("otel.trace.exporter", "otlp");
+    } else if (traceExporter.equals("none")) {
+      System.clearProperty("otel.trace.exporter");
     }
-    if (!environmentPropertiesWithCopies.containsKey("otel.metrics.exporter")) {
+    String metricExporter = environmentPropertiesWithCopies.getProperty("otel.metrics.exporter");
+    if (metricExporter == null) {
       System.setProperty("otel.metrics.exporter", "otlp");
+    } else if (metricExporter.equals("none")) {
+      System.clearProperty("otel.metrics.exporter");
     }
   }
 }

+ 7 - 7
smoke-tests/src/test/groovy/io/opentelemetry/smoketest/AppServerTest.groovy

@@ -87,7 +87,7 @@ abstract class AppServerTest extends SmokeTest {
     traces.countFilteredResourceAttributes("telemetry.auto.version", currentAgentVersion) == 3
 
     and:
-    traces.findResourceAttribute("os.name")
+    traces.findResourceAttribute("os.type")
       .map { it.stringValue }
       .findAny()
       .isPresent()
@@ -127,7 +127,7 @@ abstract class AppServerTest extends SmokeTest {
     traces.countFilteredResourceAttributes("telemetry.auto.version", currentAgentVersion) == 1
 
     and:
-    traces.findResourceAttribute("os.name")
+    traces.findResourceAttribute("os.type")
       .map { it.stringValue }
       .findAny()
       .isPresent()
@@ -166,7 +166,7 @@ abstract class AppServerTest extends SmokeTest {
     traces.countFilteredResourceAttributes("telemetry.auto.version", currentAgentVersion) == traces.countSpans()
 
     and:
-    traces.findResourceAttribute("os.name")
+    traces.findResourceAttribute("os.type")
       .map { it.stringValue }
       .findAny()
       .isPresent()
@@ -207,7 +207,7 @@ abstract class AppServerTest extends SmokeTest {
     traces.countFilteredResourceAttributes("telemetry.auto.version", currentAgentVersion) == traces.countSpans()
 
     and:
-    traces.findResourceAttribute("os.name")
+    traces.findResourceAttribute("os.type")
       .map { it.stringValue }
       .findAny()
       .isPresent()
@@ -251,7 +251,7 @@ abstract class AppServerTest extends SmokeTest {
     traces.countFilteredResourceAttributes("telemetry.auto.version", currentAgentVersion) == 1
 
     and:
-    traces.findResourceAttribute("os.name")
+    traces.findResourceAttribute("os.type")
       .map { it.stringValue }
       .findAny()
       .isPresent()
@@ -290,7 +290,7 @@ abstract class AppServerTest extends SmokeTest {
     traces.countFilteredResourceAttributes("telemetry.auto.version", currentAgentVersion) == traces.countSpans()
 
     and:
-    traces.findResourceAttribute("os.name")
+    traces.findResourceAttribute("os.type")
       .map { it.stringValue }
       .findAny()
       .isPresent()
@@ -336,7 +336,7 @@ abstract class AppServerTest extends SmokeTest {
     traces.countFilteredResourceAttributes("telemetry.auto.version", currentAgentVersion) == 3
 
     and:
-    traces.findResourceAttribute("os.name")
+    traces.findResourceAttribute("os.type")
       .map { it.stringValue }
       .findAny()
       .isPresent()

+ 1 - 1
smoke-tests/src/test/groovy/io/opentelemetry/smoketest/GrpcSmokeTest.groovy

@@ -17,7 +17,7 @@ import spock.lang.Unroll
 class GrpcSmokeTest extends SmokeTest {
 
   protected String getTargetImage(String jdk, String serverVersion) {
-    "ghcr.io/open-telemetry/java-test-containers:smoke-grpc-jdk$jdk-20210114.484678778"
+    "ghcr.io/open-telemetry/java-test-containers:smoke-grpc-jdk$jdk-20210129.520311770"
   }
 
   @Unroll

+ 1 - 1
smoke-tests/src/test/groovy/io/opentelemetry/smoketest/JaegerExporterSmokeTest.groovy

@@ -15,7 +15,7 @@ import okhttp3.Request
 class JaegerExporterSmokeTest extends SmokeTest {
 
   protected String getTargetImage(String jdk, String serverVersion) {
-    "ghcr.io/open-telemetry/java-test-containers:smoke-springboot-jdk$jdk-20210114.484678777"
+    "ghcr.io/open-telemetry/java-test-containers:smoke-springboot-jdk$jdk-20210129.520311771"
   }
 
   @Override

+ 34 - 2
smoke-tests/src/test/groovy/io/opentelemetry/smoketest/PropagationTest.groovy

@@ -13,8 +13,9 @@ import okhttp3.Request
 
 abstract class PropagationTest extends SmokeTest {
 
+  @Override
   protected String getTargetImage(String jdk, String serverVersion) {
-    "ghcr.io/open-telemetry/java-test-containers:smoke-springboot-jdk$jdk-20210114.484678777"
+    "ghcr.io/open-telemetry/java-test-containers:smoke-springboot-jdk$jdk-20210129.520311771"
   }
 
   def "Should propagate test"() {
@@ -75,7 +76,38 @@ class JaegerPropagationTest extends PropagationTest {
   }
 }
 
-class OtTracerPropagationTest extends PropagationTest {
+class OtTracerPropagationTest extends SmokeTest {
+  @Override
+  protected String getTargetImage(String jdk, String serverVersion) {
+    "ghcr.io/open-telemetry/java-test-containers:smoke-springboot-jdk$jdk-20210129.520311771"
+  }
+
+  // OtTracer only propagates lower half of trace ID so we have to mangle the trace IDs similar to
+  // the Lightstep backend.
+  def "Should propagate test"() {
+    setup:
+    startTarget(11)
+    String url = "http://localhost:${target.getMappedPort(8080)}/front"
+    def request = new Request.Builder().url(url).get().build()
+
+    when:
+    def response = CLIENT.newCall(request).execute()
+    Collection<ExportTraceServiceRequest> traces = waitForTraces()
+    def traceIds = getSpanStream(traces)
+      .map({ TraceId.bytesToHex(it.getTraceId().toByteArray()).substring(16) })
+      .collect(toSet())
+
+    then:
+    traceIds.size() == 1
+
+    def traceId = traceIds.first()
+
+    response.body().string().matches(/[0-9a-f]{16}${traceId};[0]{16}${traceId}/)
+
+    cleanup:
+    stopTarget()
+  }
+
   @Override
   protected Map<String, String> getExtraEnv() {
     return ["otel.propagators": "ottracer"]

+ 1 - 2
smoke-tests/src/test/groovy/io/opentelemetry/smoketest/SmokeTest.groovy

@@ -104,8 +104,7 @@ abstract class SmokeTest extends Specification {
       .withEnv("JAVA_TOOL_OPTIONS", "-javaagent:/opentelemetry-javaagent-all.jar -Dio.opentelemetry.javaagent.slf4j.simpleLogger.log.muzzleMatcher=true")
       .withEnv("OTEL_BSP_MAX_EXPORT_BATCH_SIZE", "1")
       .withEnv("OTEL_BSP_SCHEDULE_DELAY_MILLIS", "10")
-      .withEnv("OTEL_EXPORTER_OTLP_ENDPOINT", "collector:55680")
-      .withEnv("OTEL_EXPORTER_OTLP_INSECURE", "true")
+      .withEnv("OTEL_EXPORTER_OTLP_ENDPOINT", "http://collector:55680")
       .withImagePullPolicy(PullPolicy.alwaysPull())
       .withEnv(extraEnv)
     customizeContainer(target)

+ 2 - 2
smoke-tests/src/test/groovy/io/opentelemetry/smoketest/SpringBootSmokeTest.groovy

@@ -17,7 +17,7 @@ import spock.lang.Unroll
 class SpringBootSmokeTest extends SmokeTest {
 
   protected String getTargetImage(String jdk, String serverVersion) {
-    "ghcr.io/open-telemetry/java-test-containers:smoke-springboot-jdk$jdk-20210114.484678777"
+    "ghcr.io/open-telemetry/java-test-containers:smoke-springboot-jdk$jdk-20210129.520311771"
   }
 
   @Unroll
@@ -42,7 +42,7 @@ class SpringBootSmokeTest extends SmokeTest {
     [currentAgentVersion] as Set == findResourceAttribute(traces, "telemetry.auto.version")
       .map { it.stringValue }
       .collect(toSet())
-    findResourceAttribute(traces, "os.name")
+    findResourceAttribute(traces, "os.type")
       .map { it.stringValue }
       .findAny()
       .isPresent()

+ 1 - 1
smoke-tests/src/test/groovy/io/opentelemetry/smoketest/SpringBootWithSamplingSmokeTest.groovy

@@ -15,7 +15,7 @@ class SpringBootWithSamplingSmokeTest extends SmokeTest {
   static final int ALLOWED_DEVIATION = 0.1 * NUM_TRIES
 
   protected String getTargetImage(String jdk, String serverVersion) {
-    "ghcr.io/open-telemetry/java-test-containers:smoke-springboot-jdk$jdk-20210114.484678777"
+    "ghcr.io/open-telemetry/java-test-containers:smoke-springboot-jdk$jdk-20210129.520311771"
   }
 
   @Override

+ 1 - 1
smoke-tests/src/test/groovy/io/opentelemetry/smoketest/ZipkinExporterSmokeTest.groovy

@@ -11,7 +11,7 @@ import okhttp3.Request
 class ZipkinExporterSmokeTest extends SmokeTest {
 
   protected String getTargetImage(String jdk, String serverVersion) {
-    "ghcr.io/open-telemetry/java-test-containers:smoke-springboot-jdk$jdk-20210114.484678777"
+    "ghcr.io/open-telemetry/java-test-containers:smoke-springboot-jdk$jdk-20210129.520311771"
   }
 
   @Override

+ 12 - 11
testing-common/src/main/java/io/opentelemetry/javaagent/testing/common/AgentTestingExporterAccess.java

@@ -47,12 +47,12 @@ import io.opentelemetry.proto.trace.v1.Status;
 import io.opentelemetry.sdk.common.InstrumentationLibraryInfo;
 import io.opentelemetry.sdk.metrics.data.AggregationTemporality;
 import io.opentelemetry.sdk.metrics.data.DoubleGaugeData;
-import io.opentelemetry.sdk.metrics.data.DoublePoint;
+import io.opentelemetry.sdk.metrics.data.DoublePointData;
 import io.opentelemetry.sdk.metrics.data.DoubleSumData;
 import io.opentelemetry.sdk.metrics.data.DoubleSummaryData;
-import io.opentelemetry.sdk.metrics.data.DoubleSummaryPoint;
+import io.opentelemetry.sdk.metrics.data.DoubleSummaryPointData;
 import io.opentelemetry.sdk.metrics.data.LongGaugeData;
-import io.opentelemetry.sdk.metrics.data.LongPoint;
+import io.opentelemetry.sdk.metrics.data.LongPointData;
 import io.opentelemetry.sdk.metrics.data.LongSumData;
 import io.opentelemetry.sdk.metrics.data.MetricData;
 import io.opentelemetry.sdk.metrics.data.ValueAtPercentile;
@@ -278,7 +278,8 @@ public final class AgentTestingExporterAccess {
             metric.getName(),
             metric.getDescription(),
             metric.getUnit(),
-            DoubleGaugeData.create(getDoublePoints(metric.getDoubleGauge().getDataPointsList())));
+            DoubleGaugeData.create(
+                getDoublePointDatas(metric.getDoubleGauge().getDataPointsList())));
       case INT_SUM:
         IntSum intSum = metric.getIntSum();
         return MetricData.createLongSum(
@@ -302,7 +303,7 @@ public final class AgentTestingExporterAccess {
             DoubleSumData.create(
                 doubleSum.getIsMonotonic(),
                 getTemporality(doubleSum.getAggregationTemporality()),
-                getDoublePoints(metric.getDoubleSum().getDataPointsList())));
+                getDoublePointDatas(metric.getDoubleSum().getDataPointsList())));
       case DOUBLE_HISTOGRAM:
         return MetricData.createDoubleSummary(
             resource,
@@ -325,11 +326,11 @@ public final class AgentTestingExporterAccess {
     return labelsBuilder.build();
   }
 
-  private static List<LongPoint> getIntPoints(List<IntDataPoint> points) {
+  private static List<LongPointData> getIntPoints(List<IntDataPoint> points) {
     return points.stream()
         .map(
             point ->
-                LongPoint.create(
+                LongPointData.create(
                     point.getStartTimeUnixNano(),
                     point.getTimeUnixNano(),
                     createLabels(point.getLabelsList()),
@@ -337,11 +338,11 @@ public final class AgentTestingExporterAccess {
         .collect(toList());
   }
 
-  private static List<DoublePoint> getDoublePoints(List<DoubleDataPoint> points) {
+  private static List<DoublePointData> getDoublePointDatas(List<DoubleDataPoint> points) {
     return points.stream()
         .map(
             point ->
-                DoublePoint.create(
+                DoublePointData.create(
                     point.getStartTimeUnixNano(),
                     point.getTimeUnixNano(),
                     createLabels(point.getLabelsList()),
@@ -349,12 +350,12 @@ public final class AgentTestingExporterAccess {
         .collect(toList());
   }
 
-  private static Collection<DoubleSummaryPoint> getDoubleHistogramDataPoints(
+  private static Collection<DoubleSummaryPointData> getDoubleHistogramDataPoints(
       List<DoubleHistogramDataPoint> dataPointsList) {
     return dataPointsList.stream()
         .map(
             point ->
-                DoubleSummaryPoint.create(
+                DoubleSummaryPointData.create(
                     point.getStartTimeUnixNano(),
                     point.getTimeUnixNano(),
                     createLabels(point.getLabelsList()),

+ 2 - 2
testing/agent-exporter/src/main/java/io/opentelemetry/javaagent/testing/exporter/AgentTestingExporterPropertySource.java

@@ -15,8 +15,8 @@ public class AgentTestingExporterPropertySource implements PropertySource {
   @Override
   public Map<String, String> getProperties() {
     Map<String, String> properties = new HashMap<>();
-    properties.put("otel.trace.exporter", "");
-    properties.put("otel.metrics.exporter", "");
+    properties.put("otel.trace.exporter", "none");
+    properties.put("otel.metrics.exporter", "none");
     return properties;
   }
 }