Browse Source

Convert TextMapSetters and TextMapGetters to enums (#4522)

* Convert TextMapSetters to enums

* Convert TextMapGetters to enums
Nikita Salnikov-Tarnovski 3 years ago
parent
commit
e7b8cca107
72 changed files with 126 additions and 105 deletions
  1. 2 1
      instrumentation/akka-http-10.0/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/akkahttp/server/AkkaHttpServerHeaders.java
  2. 1 1
      instrumentation/akka-http-10.0/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/akkahttp/server/AkkaHttpServerSingletons.java
  3. 4 6
      instrumentation/apache-camel-2.20/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/apachecamel/CamelPropagationUtil.java
  4. 2 1
      instrumentation/apache-dubbo-2.7/library/src/main/java/io/opentelemetry/instrumentation/apachedubbo/v2_7/DubboHeadersGetter.java
  5. 2 1
      instrumentation/apache-dubbo-2.7/library/src/main/java/io/opentelemetry/instrumentation/apachedubbo/v2_7/DubboHeadersSetter.java
  6. 2 2
      instrumentation/apache-dubbo-2.7/library/src/main/java/io/opentelemetry/instrumentation/apachedubbo/v2_7/DubboTracingBuilder.java
  7. 1 1
      instrumentation/apache-httpasyncclient-4.1/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/apachehttpasyncclient/ApacheHttpAsyncClientSingletons.java
  8. 2 1
      instrumentation/apache-httpasyncclient-4.1/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/apachehttpasyncclient/HttpHeaderSetter.java
  9. 1 1
      instrumentation/apache-httpclient/apache-httpclient-2.0/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/apachehttpclient/v2_0/ApacheHttpClientSingletons.java
  10. 2 1
      instrumentation/apache-httpclient/apache-httpclient-2.0/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/apachehttpclient/v2_0/HttpHeaderSetter.java
  11. 1 1
      instrumentation/apache-httpclient/apache-httpclient-4.0/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/apachehttpclient/v4_0/ApacheHttpClientSingletons.java
  12. 2 1
      instrumentation/apache-httpclient/apache-httpclient-4.0/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/apachehttpclient/v4_0/HttpHeaderSetter.java
  13. 1 1
      instrumentation/apache-httpclient/apache-httpclient-5.0/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/apachehttpclient/v5_0/ApacheHttpClientSingletons.java
  14. 2 1
      instrumentation/apache-httpclient/apache-httpclient-5.0/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/apachehttpclient/v5_0/HttpHeaderSetter.java
  15. 2 2
      instrumentation/armeria-1.3/library/src/main/java/io/opentelemetry/instrumentation/armeria/v1_3/ArmeriaTracingBuilder.java
  16. 2 1
      instrumentation/armeria-1.3/library/src/main/java/io/opentelemetry/instrumentation/armeria/v1_3/ClientRequestContextSetter.java
  17. 2 1
      instrumentation/armeria-1.3/library/src/main/java/io/opentelemetry/instrumentation/armeria/v1_3/RequestContextGetter.java
  18. 1 1
      instrumentation/async-http-client/async-http-client-1.9/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/asynchttpclient/v1_9/AsyncHttpClientSingletons.java
  19. 2 1
      instrumentation/async-http-client/async-http-client-1.9/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/asynchttpclient/v1_9/HttpHeaderSetter.java
  20. 1 1
      instrumentation/async-http-client/async-http-client-2.0/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/asynchttpclient/v2_0/AsyncHttpClientSingletons.java
  21. 2 1
      instrumentation/async-http-client/async-http-client-2.0/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/asynchttpclient/v2_0/HttpHeaderSetter.java
  22. 2 3
      instrumentation/aws-lambda-1.0/library/src/main/java/io/opentelemetry/instrumentation/awslambda/v1_0/internal/ParentContextExtractor.java
  23. 2 3
      instrumentation/aws-sdk/aws-sdk-1.11/library/src/main/java/io/opentelemetry/instrumentation/awssdk/v1_11/SqsParentContext.java
  24. 1 1
      instrumentation/google-http-client-1.19/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/googlehttpclient/GoogleHttpClientSingletons.java
  25. 2 1
      instrumentation/google-http-client-1.19/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/googlehttpclient/HttpHeaderSetter.java
  26. 1 1
      instrumentation/grizzly-2.0/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/grizzly/GrizzlySingletons.java
  27. 2 1
      instrumentation/grizzly-2.0/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/grizzly/HttpRequestHeadersGetter.java
  28. 2 3
      instrumentation/grpc-1.6/library/src/main/java/io/opentelemetry/instrumentation/grpc/v1_6/GrpcRequestGetter.java
  29. 1 1
      instrumentation/grpc-1.6/library/src/main/java/io/opentelemetry/instrumentation/grpc/v1_6/GrpcTracingBuilder.java
  30. 2 1
      instrumentation/jetty-httpclient/jetty-httpclient-9.2/library/src/main/java/io/opentelemetry/instrumentation/jetty/httpclient/v9_2/internal/HttpHeaderSetter.java
  31. 1 1
      instrumentation/jetty-httpclient/jetty-httpclient-9.2/library/src/main/java/io/opentelemetry/instrumentation/jetty/httpclient/v9_2/internal/JettyClientInstrumenterBuilder.java
  32. 2 2
      instrumentation/jms-1.1/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/jms/JmsSingletons.java
  33. 2 1
      instrumentation/jms-1.1/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/jms/MessagePropertyGetter.java
  34. 2 1
      instrumentation/jms-1.1/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/jms/MessagePropertySetter.java
  35. 3 2
      instrumentation/kafka-clients/kafka-clients-2.6/library/src/main/java/io/opentelemetry/instrumentation/kafkaclients/KafkaTracing.java
  36. 3 1
      instrumentation/kafka-clients/kafka-clients-common/library/src/main/java/io/opentelemetry/instrumentation/kafka/internal/KafkaConsumerRecordGetter.java
  37. 2 1
      instrumentation/kafka-clients/kafka-clients-common/library/src/main/java/io/opentelemetry/instrumentation/kafka/internal/KafkaHeadersSetter.java
  38. 2 2
      instrumentation/kafka-clients/kafka-clients-common/library/src/main/java/io/opentelemetry/instrumentation/kafka/internal/KafkaInstrumenterFactory.java
  39. 1 1
      instrumentation/kafka-clients/kafka-clients-common/library/src/main/java/io/opentelemetry/instrumentation/kafka/internal/KafkaPropagation.java
  40. 2 3
      instrumentation/liberty/liberty-dispatcher/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/liberty/dispatcher/LibertyDispatcherRequestGetter.java
  41. 1 1
      instrumentation/liberty/liberty-dispatcher/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/liberty/dispatcher/LibertyDispatcherSingletons.java
  42. 2 1
      instrumentation/netty/netty-3.8/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/netty/v3_8/client/HttpRequestHeadersSetter.java
  43. 1 1
      instrumentation/netty/netty-3.8/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/netty/v3_8/client/NettyClientSingletons.java
  44. 2 1
      instrumentation/netty/netty-3.8/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/netty/v3_8/server/NettyHeadersGetter.java
  45. 1 1
      instrumentation/netty/netty-3.8/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/netty/v3_8/server/NettyServerSingletons.java
  46. 2 1
      instrumentation/netty/netty-4-common/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/netty/common/client/HttpRequestHeadersSetter.java
  47. 1 1
      instrumentation/netty/netty-4-common/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/netty/common/client/NettyClientInstrumenterFactory.java
  48. 3 1
      instrumentation/netty/netty-4-common/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/netty/common/server/HttpRequestHeadersGetter.java
  49. 1 1
      instrumentation/netty/netty-4-common/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/netty/common/server/NettyServerInstrumenterFactory.java
  50. 2 3
      instrumentation/okhttp/okhttp-3.0/library/src/main/java/io/opentelemetry/instrumentation/okhttp/v3_0/RequestHeaderSetter.java
  51. 3 1
      instrumentation/okhttp/okhttp-3.0/library/src/main/java/io/opentelemetry/instrumentation/okhttp/v3_0/TracingInterceptor.java
  52. 2 1
      instrumentation/play-ws/play-ws-common/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/playws/HttpHeaderSetter.java
  53. 1 1
      instrumentation/play-ws/play-ws-common/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/playws/PlayWsClientSingletons.java
  54. 2 3
      instrumentation/rabbitmq-2.7/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/rabbitmq/DeliveryRequestGetter.java
  55. 1 1
      instrumentation/rabbitmq-2.7/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/rabbitmq/RabbitSingletons.java
  56. 2 3
      instrumentation/ratpack-1.4/library/src/main/java/io/opentelemetry/instrumentation/ratpack/RatpackGetter.java
  57. 1 1
      instrumentation/ratpack-1.4/library/src/main/java/io/opentelemetry/instrumentation/ratpack/RatpackTracingBuilder.java
  58. 2 1
      instrumentation/restlet/restlet-1.0/library/src/main/java/io/opentelemetry/instrumentation/restlet/v1_0/RestletHeadersGetter.java
  59. 1 1
      instrumentation/restlet/restlet-1.0/library/src/main/java/io/opentelemetry/instrumentation/restlet/v1_0/RestletTracingBuilder.java
  60. 2 2
      instrumentation/rocketmq-client-4.8/library/src/main/java/io/opentelemetry/instrumentation/rocketmq/RocketMqInstrumenterFactory.java
  61. 2 3
      instrumentation/rocketmq-client-4.8/library/src/main/java/io/opentelemetry/instrumentation/rocketmq/TextMapExtractAdapter.java
  62. 2 3
      instrumentation/servlet/servlet-javax-common/library/src/main/java/io/opentelemetry/instrumentation/servlet/javax/JavaxHttpServletRequestGetter.java
  63. 2 1
      instrumentation/spring/spring-kafka-2.7/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/spring/kafka/KafkaBatchProcessSpanLinksExtractor.java
  64. 3 1
      instrumentation/spring/spring-rabbit-1.0/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/spring/rabbit/MessageHeaderGetter.java
  65. 1 1
      instrumentation/spring/spring-rabbit-1.0/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/spring/rabbit/SpringRabbitSingletons.java
  66. 3 1
      instrumentation/spring/spring-web-3.1/library/src/main/java/io/opentelemetry/instrumentation/spring/web/HttpRequestSetter.java
  67. 1 1
      instrumentation/spring/spring-web-3.1/library/src/main/java/io/opentelemetry/instrumentation/spring/web/SpringWebTracingBuilder.java
  68. 1 1
      instrumentation/spring/spring-webmvc-3.1/library/src/main/java/io/opentelemetry/instrumentation/spring/webmvc/SpringWebMvcTracingBuilder.java
  69. 1 1
      instrumentation/tomcat/tomcat-common/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/tomcat/common/TomcatInstrumenterFactory.java
  70. 2 3
      instrumentation/tomcat/tomcat-common/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/tomcat/common/TomcatRequestGetter.java
  71. 2 3
      instrumentation/undertow-1.4/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/undertow/UndertowExchangeGetter.java
  72. 1 1
      instrumentation/undertow-1.4/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/undertow/UndertowSingletons.java

+ 2 - 1
instrumentation/akka-http-10.0/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/akkahttp/server/AkkaHttpServerHeaders.java

@@ -12,7 +12,8 @@ import java.util.Optional;
 import java.util.stream.Collectors;
 import java.util.stream.StreamSupport;
 
-class AkkaHttpServerHeaders implements TextMapGetter<HttpRequest> {
+enum AkkaHttpServerHeaders implements TextMapGetter<HttpRequest> {
+  INSTANCE;
 
   @Override
   public Iterable<String> keys(HttpRequest httpRequest) {

+ 1 - 1
instrumentation/akka-http-10.0/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/akkahttp/server/AkkaHttpServerSingletons.java

@@ -28,7 +28,7 @@ public class AkkaHttpServerSingletons {
             .setSpanStatusExtractor(HttpSpanStatusExtractor.create(httpAttributesExtractor))
             .addAttributesExtractor(httpAttributesExtractor)
             .addRequestMetrics(HttpServerMetrics.get())
-            .newServerInstrumenter(new AkkaHttpServerHeaders());
+            .newServerInstrumenter(AkkaHttpServerHeaders.INSTANCE);
   }
 
   public static Instrumenter<HttpRequest, HttpResponse> instrumenter() {

+ 4 - 6
instrumentation/apache-camel-2.20/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/apachecamel/CamelPropagationUtil.java

@@ -48,9 +48,8 @@ final class CamelPropagationUtil {
         .inject(context, exchangeHeaders, MapSetter.INSTANCE);
   }
 
-  private static class MapGetter implements TextMapGetter<Map<String, Object>> {
-
-    private static final MapGetter INSTANCE = new MapGetter();
+  private enum MapGetter implements TextMapGetter<Map<String, Object>> {
+    INSTANCE;
 
     @Override
     public Iterable<String> keys(Map<String, Object> map) {
@@ -64,9 +63,8 @@ final class CamelPropagationUtil {
     }
   }
 
-  private static class MapSetter implements TextMapSetter<Map<String, Object>> {
-
-    private static final MapSetter INSTANCE = new MapSetter();
+  private enum MapSetter implements TextMapSetter<Map<String, Object>> {
+    INSTANCE;
 
     @Override
     public void set(Map<String, Object> carrier, String key, String value) {

+ 2 - 1
instrumentation/apache-dubbo-2.7/library/src/main/java/io/opentelemetry/instrumentation/apachedubbo/v2_7/DubboHeadersGetter.java

@@ -7,7 +7,8 @@ package io.opentelemetry.instrumentation.apachedubbo.v2_7;
 
 import io.opentelemetry.context.propagation.TextMapGetter;
 
-final class DubboHeadersGetter implements TextMapGetter<DubboRequest> {
+enum DubboHeadersGetter implements TextMapGetter<DubboRequest> {
+  INSTANCE;
 
   @Override
   public Iterable<String> keys(DubboRequest request) {

+ 2 - 1
instrumentation/apache-dubbo-2.7/library/src/main/java/io/opentelemetry/instrumentation/apachedubbo/v2_7/DubboHeadersSetter.java

@@ -7,7 +7,8 @@ package io.opentelemetry.instrumentation.apachedubbo.v2_7;
 
 import io.opentelemetry.context.propagation.TextMapSetter;
 
-final class DubboHeadersSetter implements TextMapSetter<DubboRequest> {
+enum DubboHeadersSetter implements TextMapSetter<DubboRequest> {
+  INSTANCE;
 
   @Override
   public void set(DubboRequest request, String key, String value) {

+ 2 - 2
instrumentation/apache-dubbo-2.7/library/src/main/java/io/opentelemetry/instrumentation/apachedubbo/v2_7/DubboTracingBuilder.java

@@ -83,7 +83,7 @@ public final class DubboTracingBuilder {
     }
 
     return new DubboTracing(
-        serverInstrumenterBuilder.newServerInstrumenter(new DubboHeadersGetter()),
-        clientInstrumenterBuilder.newClientInstrumenter(new DubboHeadersSetter()));
+        serverInstrumenterBuilder.newServerInstrumenter(DubboHeadersGetter.INSTANCE),
+        clientInstrumenterBuilder.newClientInstrumenter(DubboHeadersSetter.INSTANCE));
   }
 }

+ 1 - 1
instrumentation/apache-httpasyncclient-4.1/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/apachehttpasyncclient/ApacheHttpAsyncClientSingletons.java

@@ -39,7 +39,7 @@ public final class ApacheHttpAsyncClientSingletons {
             .addAttributesExtractor(netAttributesExtractor)
             .addAttributesExtractor(PeerServiceAttributesExtractor.create(netAttributesExtractor))
             .addRequestMetrics(HttpClientMetrics.get())
-            .newClientInstrumenter(new HttpHeaderSetter());
+            .newClientInstrumenter(HttpHeaderSetter.INSTANCE);
   }
 
   public static Instrumenter<ApacheHttpClientRequest, HttpResponse> instrumenter() {

+ 2 - 1
instrumentation/apache-httpasyncclient-4.1/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/apachehttpasyncclient/HttpHeaderSetter.java

@@ -7,7 +7,8 @@ package io.opentelemetry.javaagent.instrumentation.apachehttpasyncclient;
 
 import io.opentelemetry.context.propagation.TextMapSetter;
 
-public class HttpHeaderSetter implements TextMapSetter<ApacheHttpClientRequest> {
+enum HttpHeaderSetter implements TextMapSetter<ApacheHttpClientRequest> {
+  INSTANCE;
 
   @Override
   public void set(ApacheHttpClientRequest carrier, String key, String value) {

+ 1 - 1
instrumentation/apache-httpclient/apache-httpclient-2.0/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/apachehttpclient/v2_0/ApacheHttpClientSingletons.java

@@ -39,7 +39,7 @@ public final class ApacheHttpClientSingletons {
             .addAttributesExtractor(netAttributesExtractor)
             .addAttributesExtractor(PeerServiceAttributesExtractor.create(netAttributesExtractor))
             .addRequestMetrics(HttpClientMetrics.get())
-            .newClientInstrumenter(new HttpHeaderSetter());
+            .newClientInstrumenter(HttpHeaderSetter.INSTANCE);
   }
 
   public static Instrumenter<HttpMethod, HttpMethod> instrumenter() {

+ 2 - 1
instrumentation/apache-httpclient/apache-httpclient-2.0/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/apachehttpclient/v2_0/HttpHeaderSetter.java

@@ -9,7 +9,8 @@ import io.opentelemetry.context.propagation.TextMapSetter;
 import org.apache.commons.httpclient.Header;
 import org.apache.commons.httpclient.HttpMethod;
 
-final class HttpHeaderSetter implements TextMapSetter<HttpMethod> {
+enum HttpHeaderSetter implements TextMapSetter<HttpMethod> {
+  INSTANCE;
 
   @Override
   public void set(HttpMethod carrier, String key, String value) {

+ 1 - 1
instrumentation/apache-httpclient/apache-httpclient-4.0/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/apachehttpclient/v4_0/ApacheHttpClientSingletons.java

@@ -39,7 +39,7 @@ public final class ApacheHttpClientSingletons {
             .addAttributesExtractor(netAttributesExtractor)
             .addAttributesExtractor(PeerServiceAttributesExtractor.create(netAttributesExtractor))
             .addRequestMetrics(HttpClientMetrics.get())
-            .newClientInstrumenter(new HttpHeaderSetter());
+            .newClientInstrumenter(HttpHeaderSetter.INSTANCE);
   }
 
   public static Instrumenter<ApacheHttpClientRequest, HttpResponse> instrumenter() {

+ 2 - 1
instrumentation/apache-httpclient/apache-httpclient-4.0/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/apachehttpclient/v4_0/HttpHeaderSetter.java

@@ -7,7 +7,8 @@ package io.opentelemetry.javaagent.instrumentation.apachehttpclient.v4_0;
 
 import io.opentelemetry.context.propagation.TextMapSetter;
 
-final class HttpHeaderSetter implements TextMapSetter<ApacheHttpClientRequest> {
+enum HttpHeaderSetter implements TextMapSetter<ApacheHttpClientRequest> {
+  INSTANCE;
 
   @Override
   public void set(ApacheHttpClientRequest carrier, String key, String value) {

+ 1 - 1
instrumentation/apache-httpclient/apache-httpclient-5.0/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/apachehttpclient/v5_0/ApacheHttpClientSingletons.java

@@ -40,7 +40,7 @@ public final class ApacheHttpClientSingletons {
             .addAttributesExtractor(netAttributesExtractor)
             .addAttributesExtractor(PeerServiceAttributesExtractor.create(netAttributesExtractor))
             .addRequestMetrics(HttpClientMetrics.get())
-            .newClientInstrumenter(new HttpHeaderSetter());
+            .newClientInstrumenter(HttpHeaderSetter.INSTANCE);
   }
 
   public static Instrumenter<ClassicHttpRequest, HttpResponse> instrumenter() {

+ 2 - 1
instrumentation/apache-httpclient/apache-httpclient-5.0/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/apachehttpclient/v5_0/HttpHeaderSetter.java

@@ -8,7 +8,8 @@ package io.opentelemetry.javaagent.instrumentation.apachehttpclient.v5_0;
 import io.opentelemetry.context.propagation.TextMapSetter;
 import org.apache.hc.core5.http.ClassicHttpRequest;
 
-final class HttpHeaderSetter implements TextMapSetter<ClassicHttpRequest> {
+enum HttpHeaderSetter implements TextMapSetter<ClassicHttpRequest> {
+  INSTANCE;
 
   @Override
   public void set(ClassicHttpRequest carrier, String key, String value) {

+ 2 - 2
instrumentation/armeria-1.3/library/src/main/java/io/opentelemetry/instrumentation/armeria/v1_3/ArmeriaTracingBuilder.java

@@ -148,7 +148,7 @@ public final class ArmeriaTracingBuilder {
     }
 
     return new ArmeriaTracing(
-        clientInstrumenterBuilder.newClientInstrumenter(new ClientRequestContextSetter()),
-        serverInstrumenterBuilder.newServerInstrumenter(new RequestContextGetter()));
+        clientInstrumenterBuilder.newClientInstrumenter(ClientRequestContextSetter.INSTANCE),
+        serverInstrumenterBuilder.newServerInstrumenter(RequestContextGetter.INSTANCE));
   }
 }

+ 2 - 1
instrumentation/armeria-1.3/library/src/main/java/io/opentelemetry/instrumentation/armeria/v1_3/ClientRequestContextSetter.java

@@ -9,7 +9,8 @@ import com.linecorp.armeria.client.ClientRequestContext;
 import io.opentelemetry.context.propagation.TextMapSetter;
 import javax.annotation.Nullable;
 
-final class ClientRequestContextSetter implements TextMapSetter<ClientRequestContext> {
+enum ClientRequestContextSetter implements TextMapSetter<ClientRequestContext> {
+  INSTANCE;
 
   @Override
   public void set(@Nullable ClientRequestContext carrier, String key, String value) {

+ 2 - 1
instrumentation/armeria-1.3/library/src/main/java/io/opentelemetry/instrumentation/armeria/v1_3/RequestContextGetter.java

@@ -12,7 +12,8 @@ import java.util.Collections;
 import java.util.stream.Collectors;
 import javax.annotation.Nullable;
 
-final class RequestContextGetter implements TextMapGetter<ServiceRequestContext> {
+enum RequestContextGetter implements TextMapGetter<ServiceRequestContext> {
+  INSTANCE;
 
   @Override
   public Iterable<String> keys(@Nullable ServiceRequestContext carrier) {

+ 1 - 1
instrumentation/async-http-client/async-http-client-1.9/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/asynchttpclient/v1_9/AsyncHttpClientSingletons.java

@@ -40,7 +40,7 @@ public final class AsyncHttpClientSingletons {
             .addAttributesExtractor(netAttributesExtractor)
             .addAttributesExtractor(PeerServiceAttributesExtractor.create(netAttributesExtractor))
             .addRequestMetrics(HttpClientMetrics.get())
-            .newClientInstrumenter(new HttpHeaderSetter());
+            .newClientInstrumenter(HttpHeaderSetter.INSTANCE);
   }
 
   public static Instrumenter<Request, Response> instrumenter() {

+ 2 - 1
instrumentation/async-http-client/async-http-client-1.9/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/asynchttpclient/v1_9/HttpHeaderSetter.java

@@ -8,7 +8,8 @@ package io.opentelemetry.javaagent.instrumentation.asynchttpclient.v1_9;
 import com.ning.http.client.Request;
 import io.opentelemetry.context.propagation.TextMapSetter;
 
-public class HttpHeaderSetter implements TextMapSetter<Request> {
+enum HttpHeaderSetter implements TextMapSetter<Request> {
+  INSTANCE;
 
   @Override
   public void set(Request carrier, String key, String value) {

+ 1 - 1
instrumentation/async-http-client/async-http-client-2.0/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/asynchttpclient/v2_0/AsyncHttpClientSingletons.java

@@ -41,7 +41,7 @@ public final class AsyncHttpClientSingletons {
             .addAttributesExtractor(PeerServiceAttributesExtractor.create(netAttributesExtractor))
             .addAttributesExtractor(new AsyncHttpClientAdditionalAttributesExtractor())
             .addRequestMetrics(HttpClientMetrics.get())
-            .newClientInstrumenter(new HttpHeaderSetter());
+            .newClientInstrumenter(HttpHeaderSetter.INSTANCE);
   }
 
   public static Instrumenter<RequestContext, Response> instrumenter() {

+ 2 - 1
instrumentation/async-http-client/async-http-client-2.0/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/asynchttpclient/v2_0/HttpHeaderSetter.java

@@ -7,7 +7,8 @@ package io.opentelemetry.javaagent.instrumentation.asynchttpclient.v2_0;
 
 import io.opentelemetry.context.propagation.TextMapSetter;
 
-public class HttpHeaderSetter implements TextMapSetter<RequestContext> {
+enum HttpHeaderSetter implements TextMapSetter<RequestContext> {
+  INSTANCE;
 
   @Override
   public void set(RequestContext carrier, String key, String value) {

+ 2 - 3
instrumentation/aws-lambda-1.0/library/src/main/java/io/opentelemetry/instrumentation/awslambda/v1_0/internal/ParentContextExtractor.java

@@ -59,9 +59,8 @@ final class ParentContextExtractor {
             MapGetter.INSTANCE);
   }
 
-  private static class MapGetter implements TextMapGetter<Map<String, String>> {
-
-    private static final MapGetter INSTANCE = new MapGetter();
+  private enum MapGetter implements TextMapGetter<Map<String, String>> {
+    INSTANCE;
 
     @Override
     public Iterable<String> keys(Map<String, String> map) {

+ 2 - 3
instrumentation/aws-sdk/aws-sdk-1.11/library/src/main/java/io/opentelemetry/instrumentation/awssdk/v1_11/SqsParentContext.java

@@ -13,9 +13,8 @@ import java.util.Map;
 
 final class SqsParentContext {
 
-  private static class MapGetter implements TextMapGetter<Map<String, String>> {
-
-    private static final MapGetter INSTANCE = new MapGetter();
+  enum MapGetter implements TextMapGetter<Map<String, String>> {
+    INSTANCE;
 
     @Override
     public Iterable<String> keys(Map<String, String> map) {

+ 1 - 1
instrumentation/google-http-client-1.19/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/googlehttpclient/GoogleHttpClientSingletons.java

@@ -40,7 +40,7 @@ public class GoogleHttpClientSingletons {
             .addAttributesExtractor(netAttributesExtractor)
             .addAttributesExtractor(PeerServiceAttributesExtractor.create(netAttributesExtractor))
             .addRequestMetrics(HttpClientMetrics.get())
-            .newClientInstrumenter(new HttpHeaderSetter());
+            .newClientInstrumenter(HttpHeaderSetter.INSTANCE);
   }
 
   public static Instrumenter<HttpRequest, HttpResponse> instrumenter() {

+ 2 - 1
instrumentation/google-http-client-1.19/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/googlehttpclient/HttpHeaderSetter.java

@@ -8,7 +8,8 @@ package io.opentelemetry.javaagent.instrumentation.googlehttpclient;
 import com.google.api.client.http.HttpRequest;
 import io.opentelemetry.context.propagation.TextMapSetter;
 
-public class HttpHeaderSetter implements TextMapSetter<HttpRequest> {
+enum HttpHeaderSetter implements TextMapSetter<HttpRequest> {
+  INSTANCE;
 
   @Override
   public void set(HttpRequest carrier, String key, String value) {

+ 1 - 1
instrumentation/grizzly-2.0/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/grizzly/GrizzlySingletons.java

@@ -36,7 +36,7 @@ public final class GrizzlySingletons {
                   context = GrizzlyErrorHolder.init(context);
                   return ServerSpanNaming.init(context, ServerSpanNaming.Source.CONTAINER);
                 })
-            .newServerInstrumenter(new HttpRequestHeadersGetter());
+            .newServerInstrumenter(HttpRequestHeadersGetter.INSTANCE);
   }
 
   public static Instrumenter<HttpRequestPacket, HttpResponsePacket> instrumenter() {

+ 2 - 1
instrumentation/grizzly-2.0/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/grizzly/HttpRequestHeadersGetter.java

@@ -8,7 +8,8 @@ package io.opentelemetry.javaagent.instrumentation.grizzly;
 import io.opentelemetry.context.propagation.TextMapGetter;
 import org.glassfish.grizzly.http.HttpRequestPacket;
 
-final class HttpRequestHeadersGetter implements TextMapGetter<HttpRequestPacket> {
+enum HttpRequestHeadersGetter implements TextMapGetter<HttpRequestPacket> {
+  INSTANCE;
 
   @Override
   public Iterable<String> keys(HttpRequestPacket request) {

+ 2 - 3
instrumentation/grpc-1.6/library/src/main/java/io/opentelemetry/instrumentation/grpc/v1_6/GrpcExtractAdapter.java → instrumentation/grpc-1.6/library/src/main/java/io/opentelemetry/instrumentation/grpc/v1_6/GrpcRequestGetter.java

@@ -9,9 +9,8 @@ import io.grpc.Metadata;
 import io.opentelemetry.context.propagation.TextMapGetter;
 import javax.annotation.Nullable;
 
-final class GrpcExtractAdapter implements TextMapGetter<GrpcRequest> {
-
-  static final GrpcExtractAdapter GETTER = new GrpcExtractAdapter();
+enum GrpcRequestGetter implements TextMapGetter<GrpcRequest> {
+  INSTANCE;
 
   @Override
   public Iterable<String> keys(GrpcRequest request) {

+ 1 - 1
instrumentation/grpc-1.6/library/src/main/java/io/opentelemetry/instrumentation/grpc/v1_6/GrpcTracingBuilder.java

@@ -94,7 +94,7 @@ public final class GrpcTracingBuilder {
     }
 
     return new GrpcTracing(
-        serverInstrumenterBuilder.newServerInstrumenter(GrpcExtractAdapter.GETTER),
+        serverInstrumenterBuilder.newServerInstrumenter(GrpcRequestGetter.INSTANCE),
         // gRPC client interceptors require two phases, one to set up request and one to execute.
         // So we go ahead and inject manually in this instrumentation.
         clientInstrumenterBuilder.newInstrumenter(SpanKindExtractor.alwaysClient()),

+ 2 - 1
instrumentation/jetty-httpclient/jetty-httpclient-9.2/library/src/main/java/io/opentelemetry/instrumentation/jetty/httpclient/v9_2/internal/HttpHeaderSetter.java

@@ -8,7 +8,8 @@ package io.opentelemetry.instrumentation.jetty.httpclient.v9_2.internal;
 import io.opentelemetry.context.propagation.TextMapSetter;
 import org.eclipse.jetty.client.api.Request;
 
-final class HttpHeaderSetter implements TextMapSetter<Request> {
+enum HttpHeaderSetter implements TextMapSetter<Request> {
+  INSTANCE;
 
   @Override
   public void set(Request request, String key, String value) {

+ 1 - 1
instrumentation/jetty-httpclient/jetty-httpclient-9.2/library/src/main/java/io/opentelemetry/instrumentation/jetty/httpclient/v9_2/internal/JettyClientInstrumenterBuilder.java

@@ -64,6 +64,6 @@ public final class JettyClientInstrumenterBuilder {
         .addAttributesExtractor(netAttributesExtractor)
         .addAttributesExtractors(additionalExtractors)
         .addRequestMetrics(HttpClientMetrics.get())
-        .newClientInstrumenter(new HttpHeaderSetter());
+        .newClientInstrumenter(HttpHeaderSetter.INSTANCE);
   }
 }

+ 2 - 2
instrumentation/jms-1.1/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/jms/JmsSingletons.java

@@ -32,7 +32,7 @@ public final class JmsSingletons {
     return Instrumenter.<MessageWithDestination, Void>builder(
             GlobalOpenTelemetry.get(), INSTRUMENTATION_NAME, spanNameExtractor)
         .addAttributesExtractor(attributesExtractor)
-        .newProducerInstrumenter(new MessagePropertySetter());
+        .newProducerInstrumenter(MessagePropertySetter.INSTANCE);
   }
 
   private static Instrumenter<MessageWithDestination, Void> buildConsumerInstrumenter() {
@@ -60,7 +60,7 @@ public final class JmsSingletons {
     return Instrumenter.<MessageWithDestination, Void>builder(
             GlobalOpenTelemetry.get(), INSTRUMENTATION_NAME, spanNameExtractor)
         .addAttributesExtractor(attributesExtractor)
-        .newConsumerInstrumenter(new MessagePropertyGetter());
+        .newConsumerInstrumenter(MessagePropertyGetter.INSTANCE);
   }
 
   public static Instrumenter<MessageWithDestination, Void> producerInstrumenter() {

+ 2 - 1
instrumentation/jms-1.1/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/jms/MessagePropertyGetter.java

@@ -9,7 +9,8 @@ import io.opentelemetry.context.propagation.TextMapGetter;
 import java.util.Collections;
 import javax.jms.JMSException;
 
-public final class MessagePropertyGetter implements TextMapGetter<MessageWithDestination> {
+enum MessagePropertyGetter implements TextMapGetter<MessageWithDestination> {
+  INSTANCE;
 
   @Override
   public Iterable<String> keys(MessageWithDestination message) {

+ 2 - 1
instrumentation/jms-1.1/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/jms/MessagePropertySetter.java

@@ -10,7 +10,8 @@ import javax.jms.JMSException;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
-final class MessagePropertySetter implements TextMapSetter<MessageWithDestination> {
+enum MessagePropertySetter implements TextMapSetter<MessageWithDestination> {
+  INSTANCE;
 
   private static final Logger logger = LoggerFactory.getLogger(MessagePropertySetter.class);
 

+ 3 - 2
instrumentation/kafka-clients/kafka-clients-2.6/library/src/main/java/io/opentelemetry/instrumentation/kafkaclients/KafkaTracing.java

@@ -31,9 +31,10 @@ import org.slf4j.LoggerFactory;
 public final class KafkaTracing {
   private static final Logger logger = LoggerFactory.getLogger(KafkaTracing.class);
 
-  private static final TextMapGetter<ConsumerRecord<?, ?>> GETTER = new KafkaConsumerRecordGetter();
+  private static final TextMapGetter<ConsumerRecord<?, ?>> GETTER =
+      KafkaConsumerRecordGetter.INSTANCE;
 
-  private static final TextMapSetter<Headers> SETTER = new KafkaHeadersSetter();
+  private static final TextMapSetter<Headers> SETTER = KafkaHeadersSetter.INSTANCE;
 
   private final OpenTelemetry openTelemetry;
   private final Instrumenter<ProducerRecord<?, ?>, Void> producerInstrumenter;

+ 3 - 1
instrumentation/kafka-clients/kafka-clients-common/library/src/main/java/io/opentelemetry/instrumentation/kafka/internal/KafkaConsumerRecordGetter.java

@@ -13,7 +13,9 @@ import javax.annotation.Nullable;
 import org.apache.kafka.clients.consumer.ConsumerRecord;
 import org.apache.kafka.common.header.Header;
 
-public final class KafkaConsumerRecordGetter implements TextMapGetter<ConsumerRecord<?, ?>> {
+public enum KafkaConsumerRecordGetter implements TextMapGetter<ConsumerRecord<?, ?>> {
+  INSTANCE;
+
   @Override
   public Iterable<String> keys(ConsumerRecord<?, ?> carrier) {
     return StreamSupport.stream(carrier.headers().spliterator(), false)

+ 2 - 1
instrumentation/kafka-clients/kafka-clients-common/library/src/main/java/io/opentelemetry/instrumentation/kafka/internal/KafkaHeadersSetter.java

@@ -9,7 +9,8 @@ import io.opentelemetry.context.propagation.TextMapSetter;
 import java.nio.charset.StandardCharsets;
 import org.apache.kafka.common.header.Headers;
 
-public final class KafkaHeadersSetter implements TextMapSetter<Headers> {
+public enum KafkaHeadersSetter implements TextMapSetter<Headers> {
+  INSTANCE;
 
   @Override
   public void set(Headers headers, String key, String value) {

+ 2 - 2
instrumentation/kafka-clients/kafka-clients-common/library/src/main/java/io/opentelemetry/instrumentation/kafka/internal/KafkaInstrumenterFactory.java

@@ -99,11 +99,11 @@ public final class KafkaInstrumenterFactory {
     if (!KafkaPropagation.isPropagationEnabled()) {
       return builder.newInstrumenter(SpanKindExtractor.alwaysConsumer());
     } else if (ExperimentalConfig.get().suppressMessagingReceiveSpans()) {
-      return builder.newConsumerInstrumenter(new KafkaConsumerRecordGetter());
+      return builder.newConsumerInstrumenter(KafkaConsumerRecordGetter.INSTANCE);
     } else {
       builder.addSpanLinksExtractor(
           SpanLinksExtractor.fromUpstreamRequest(
-              GlobalOpenTelemetry.getPropagators(), new KafkaConsumerRecordGetter()));
+              GlobalOpenTelemetry.getPropagators(), KafkaConsumerRecordGetter.INSTANCE));
       return builder.newInstrumenter(SpanKindExtractor.alwaysConsumer());
     }
   }

+ 1 - 1
instrumentation/kafka-clients/kafka-clients-common/library/src/main/java/io/opentelemetry/instrumentation/kafka/internal/KafkaPropagation.java

@@ -14,7 +14,7 @@ import org.apache.kafka.common.record.RecordBatch;
 
 public final class KafkaPropagation {
 
-  private static final KafkaHeadersSetter SETTER = new KafkaHeadersSetter();
+  private static final KafkaHeadersSetter SETTER = KafkaHeadersSetter.INSTANCE;
 
   private static final boolean CLIENT_PROPAGATION_ENABLED =
       Config.get().getBoolean("otel.instrumentation.kafka.client-propagation.enabled", true);

+ 2 - 3
instrumentation/liberty/liberty-dispatcher/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/liberty/dispatcher/LibertyDispatcherRequestGetter.java

@@ -7,9 +7,8 @@ package io.opentelemetry.javaagent.instrumentation.liberty.dispatcher;
 
 import io.opentelemetry.context.propagation.TextMapGetter;
 
-public class LibertyDispatcherRequestGetter implements TextMapGetter<LibertyRequest> {
-
-  public static final LibertyDispatcherRequestGetter GETTER = new LibertyDispatcherRequestGetter();
+enum LibertyDispatcherRequestGetter implements TextMapGetter<LibertyRequest> {
+  INSTANCE;
 
   @Override
   public Iterable<String> keys(LibertyRequest carrier) {

+ 1 - 1
instrumentation/liberty/liberty-dispatcher/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/liberty/dispatcher/LibertyDispatcherSingletons.java

@@ -42,7 +42,7 @@ public final class LibertyDispatcherSingletons {
             .addContextCustomizer(
                 (context, request, attributes) -> ServerSpanNaming.init(context, CONTAINER))
             .addRequestMetrics(HttpServerMetrics.get())
-            .newServerInstrumenter(LibertyDispatcherRequestGetter.GETTER);
+            .newServerInstrumenter(LibertyDispatcherRequestGetter.INSTANCE);
   }
 
   public static Instrumenter<LibertyRequest, LibertyResponse> instrumenter() {

+ 2 - 1
instrumentation/netty/netty-3.8/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/netty/v3_8/client/HttpRequestHeadersSetter.java

@@ -9,7 +9,8 @@ import io.opentelemetry.context.propagation.TextMapSetter;
 import io.opentelemetry.javaagent.instrumentation.netty.v3_8.HttpRequestAndChannel;
 import javax.annotation.Nullable;
 
-final class HttpRequestHeadersSetter implements TextMapSetter<HttpRequestAndChannel> {
+enum HttpRequestHeadersSetter implements TextMapSetter<HttpRequestAndChannel> {
+  INSTANCE;
 
   @Override
   public void set(@Nullable HttpRequestAndChannel carrier, String key, String value) {

+ 1 - 1
instrumentation/netty/netty-3.8/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/netty/v3_8/client/NettyClientSingletons.java

@@ -44,7 +44,7 @@ public final class NettyClientSingletons {
             .addRequestMetrics(HttpClientMetrics.get())
             .addContextCustomizer(
                 (context, requestAndChannel, startAttributes) -> NettyErrorHolder.init(context))
-            .newClientInstrumenter(new HttpRequestHeadersSetter());
+            .newClientInstrumenter(HttpRequestHeadersSetter.INSTANCE);
 
     NettyConnectNetAttributesExtractor nettyConnectAttributesExtractor =
         new NettyConnectNetAttributesExtractor();

+ 2 - 1
instrumentation/netty/netty-3.8/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/netty/v3_8/server/NettyHeadersGetter.java

@@ -9,7 +9,8 @@ import io.opentelemetry.context.propagation.TextMapGetter;
 import io.opentelemetry.javaagent.instrumentation.netty.v3_8.HttpRequestAndChannel;
 import javax.annotation.Nullable;
 
-final class NettyHeadersGetter implements TextMapGetter<HttpRequestAndChannel> {
+enum NettyHeadersGetter implements TextMapGetter<HttpRequestAndChannel> {
+  INSTANCE;
 
   @Override
   public Iterable<String> keys(HttpRequestAndChannel requestAndChannel) {

+ 1 - 1
instrumentation/netty/netty-3.8/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/netty/v3_8/server/NettyServerSingletons.java

@@ -33,7 +33,7 @@ final class NettyServerSingletons {
             .addRequestMetrics(HttpServerMetrics.get())
             .addContextCustomizer(
                 (context, requestAndChannel, startAttributes) -> NettyErrorHolder.init(context))
-            .newServerInstrumenter(new NettyHeadersGetter());
+            .newServerInstrumenter(NettyHeadersGetter.INSTANCE);
   }
 
   public static Instrumenter<HttpRequestAndChannel, HttpResponse> instrumenter() {

+ 2 - 1
instrumentation/netty/netty-4-common/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/netty/common/client/HttpRequestHeadersSetter.java

@@ -8,7 +8,8 @@ package io.opentelemetry.javaagent.instrumentation.netty.common.client;
 import io.opentelemetry.context.propagation.TextMapSetter;
 import io.opentelemetry.javaagent.instrumentation.netty.common.HttpRequestAndChannel;
 
-final class HttpRequestHeadersSetter implements TextMapSetter<HttpRequestAndChannel> {
+enum HttpRequestHeadersSetter implements TextMapSetter<HttpRequestAndChannel> {
+  INSTANCE;
 
   @Override
   public void set(HttpRequestAndChannel requestAndChannel, String key, String value) {

+ 1 - 1
instrumentation/netty/netty-4-common/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/netty/common/client/NettyClientInstrumenterFactory.java

@@ -43,7 +43,7 @@ public final class NettyClientInstrumenterFactory {
         .addAttributesExtractor(netClientAttributesExtractor)
         .addAttributesExtractor(PeerServiceAttributesExtractor.create(netClientAttributesExtractor))
         .addRequestMetrics(HttpClientMetrics.get())
-        .newClientInstrumenter(new HttpRequestHeadersSetter());
+        .newClientInstrumenter(HttpRequestHeadersSetter.INSTANCE);
   }
 
   public NettyConnectionInstrumenter createConnectionInstrumenter() {

+ 3 - 1
instrumentation/netty/netty-4-common/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/netty/common/server/HttpRequestHeadersGetter.java

@@ -9,7 +9,9 @@ import io.opentelemetry.context.propagation.TextMapGetter;
 import io.opentelemetry.javaagent.instrumentation.netty.common.HttpRequestAndChannel;
 import javax.annotation.Nullable;
 
-final class HttpRequestHeadersGetter implements TextMapGetter<HttpRequestAndChannel> {
+enum HttpRequestHeadersGetter implements TextMapGetter<HttpRequestAndChannel> {
+  INSTANCE;
+
   @Override
   public Iterable<String> keys(HttpRequestAndChannel carrier) {
     return carrier.request().headers().names();

+ 1 - 1
instrumentation/netty/netty-4-common/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/netty/common/server/NettyServerInstrumenterFactory.java

@@ -37,7 +37,7 @@ public final class NettyServerInstrumenterFactory {
               // netty is not exactly a "container", but it's the best match out of these
               return ServerSpanNaming.init(context, ServerSpanNaming.Source.CONTAINER);
             })
-        .newServerInstrumenter(new HttpRequestHeadersGetter());
+        .newServerInstrumenter(HttpRequestHeadersGetter.INSTANCE);
   }
 
   private NettyServerInstrumenterFactory() {}

+ 2 - 3
instrumentation/okhttp/okhttp-3.0/library/src/main/java/io/opentelemetry/instrumentation/okhttp/v3_0/RequestHeaderSetter.java

@@ -10,9 +10,8 @@ import javax.annotation.Nullable;
 import okhttp3.Request;
 
 /** Helper class to inject span context into request headers. */
-final class RequestHeaderSetter implements TextMapSetter<Request.Builder> {
-
-  static final RequestHeaderSetter SETTER = new RequestHeaderSetter();
+enum RequestHeaderSetter implements TextMapSetter<Request.Builder> {
+  INSTANCE;
 
   @Override
   public void set(@Nullable Request.Builder carrier, String key, String value) {

+ 3 - 1
instrumentation/okhttp/okhttp-3.0/library/src/main/java/io/opentelemetry/instrumentation/okhttp/v3_0/TracingInterceptor.java

@@ -55,7 +55,9 @@ final class TracingInterceptor implements Interceptor {
   // thus we must use Instrumenter<Request, Response>, and Request is immutable
   private Request injectContextToRequest(Request request, Context context) {
     Request.Builder requestBuilder = request.newBuilder();
-    propagators.getTextMapPropagator().inject(context, requestBuilder, RequestHeaderSetter.SETTER);
+    propagators
+        .getTextMapPropagator()
+        .inject(context, requestBuilder, RequestHeaderSetter.INSTANCE);
     return requestBuilder.build();
   }
 }

+ 2 - 1
instrumentation/play-ws/play-ws-common/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/playws/HttpHeaderSetter.java

@@ -8,7 +8,8 @@ package io.opentelemetry.javaagent.instrumentation.playws;
 import io.opentelemetry.context.propagation.TextMapSetter;
 import play.shaded.ahc.org.asynchttpclient.Request;
 
-public class HttpHeaderSetter implements TextMapSetter<Request> {
+enum HttpHeaderSetter implements TextMapSetter<Request> {
+  INSTANCE;
 
   @Override
   public void set(Request carrier, String key, String value) {

+ 1 - 1
instrumentation/play-ws/play-ws-common/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/playws/PlayWsClientSingletons.java

@@ -40,7 +40,7 @@ public class PlayWsClientSingletons {
             .addAttributesExtractor(netAttributesExtractor)
             .addAttributesExtractor(PeerServiceAttributesExtractor.create(netAttributesExtractor))
             .addRequestMetrics(HttpClientMetrics.get())
-            .newClientInstrumenter(new HttpHeaderSetter());
+            .newClientInstrumenter(HttpHeaderSetter.INSTANCE);
   }
 
   public static Instrumenter<Request, Response> instrumenter() {

+ 2 - 3
instrumentation/rabbitmq-2.7/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/rabbitmq/TextMapExtractAdapter.java → instrumentation/rabbitmq-2.7/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/rabbitmq/DeliveryRequestGetter.java

@@ -8,9 +8,8 @@ package io.opentelemetry.javaagent.instrumentation.rabbitmq;
 import io.opentelemetry.context.propagation.TextMapGetter;
 import java.util.Collections;
 
-public class TextMapExtractAdapter implements TextMapGetter<DeliveryRequest> {
-
-  public static final TextMapExtractAdapter GETTER = new TextMapExtractAdapter();
+enum DeliveryRequestGetter implements TextMapGetter<DeliveryRequest> {
+  INSTANCE;
 
   @Override
   public Iterable<String> keys(DeliveryRequest carrier) {

+ 1 - 1
instrumentation/rabbitmq-2.7/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/rabbitmq/RabbitSingletons.java

@@ -79,6 +79,6 @@ public class RabbitSingletons {
     return Instrumenter.<DeliveryRequest, Void>builder(
             GlobalOpenTelemetry.get(), instrumentationName, DeliveryRequest::spanName)
         .addAttributesExtractors(extractors)
-        .newConsumerInstrumenter(TextMapExtractAdapter.GETTER);
+        .newConsumerInstrumenter(DeliveryRequestGetter.INSTANCE);
   }
 }

+ 2 - 3
instrumentation/ratpack-1.4/library/src/main/java/io/opentelemetry/instrumentation/ratpack/RatpackGetter.java

@@ -9,9 +9,8 @@ import io.opentelemetry.context.propagation.TextMapGetter;
 import javax.annotation.Nullable;
 import ratpack.http.Request;
 
-final class RatpackGetter implements TextMapGetter<Request> {
-
-  RatpackGetter() {}
+enum RatpackGetter implements TextMapGetter<Request> {
+  INSTANCE;
 
   @Override
   public Iterable<String> keys(Request request) {

+ 1 - 1
instrumentation/ratpack-1.4/library/src/main/java/io/opentelemetry/instrumentation/ratpack/RatpackTracingBuilder.java

@@ -70,7 +70,7 @@ public final class RatpackTracingBuilder {
             .addAttributesExtractor(httpAttributes)
             .addAttributesExtractors(additionalExtractors)
             .addRequestMetrics(HttpServerMetrics.get())
-            .newServerInstrumenter(new RatpackGetter());
+            .newServerInstrumenter(RatpackGetter.INSTANCE);
 
     return new RatpackTracing(instrumenter);
   }

+ 2 - 1
instrumentation/restlet/restlet-1.0/library/src/main/java/io/opentelemetry/instrumentation/restlet/v1_0/RestletHeadersGetter.java

@@ -11,7 +11,8 @@ import org.restlet.data.Form;
 import org.restlet.data.Message;
 import org.restlet.data.Request;
 
-final class RestletHeadersGetter implements TextMapGetter<Request> {
+enum RestletHeadersGetter implements TextMapGetter<Request> {
+  INSTANCE;
 
   @Override
   public Iterable<String> keys(Request carrier) {

+ 1 - 1
instrumentation/restlet/restlet-1.0/library/src/main/java/io/opentelemetry/instrumentation/restlet/v1_0/RestletTracingBuilder.java

@@ -78,7 +78,7 @@ public final class RestletTracingBuilder {
             .addAttributesExtractor(netAttributesExtractor)
             .addAttributesExtractors(additionalExtractors)
             .addRequestMetrics(HttpServerMetrics.get())
-            .newServerInstrumenter(new RestletHeadersGetter());
+            .newServerInstrumenter(RestletHeadersGetter.INSTANCE);
 
     return new RestletTracing(instrumenter);
   }

+ 2 - 2
instrumentation/rocketmq-client-4.8/library/src/main/java/io/opentelemetry/instrumentation/rocketmq/RocketMqInstrumenterFactory.java

@@ -94,13 +94,13 @@ class RocketMqInstrumenterFactory {
     if (batch) {
       SpanLinksExtractor<MessageExt> spanLinksExtractor =
           SpanLinksExtractor.fromUpstreamRequest(
-              openTelemetry.getPropagators(), TextMapExtractAdapter.GETTER);
+              openTelemetry.getPropagators(), TextMapExtractAdapter.INSTANCE);
 
       return builder
           .addSpanLinksExtractor(spanLinksExtractor)
           .newInstrumenter(SpanKindExtractor.alwaysConsumer());
     } else {
-      return builder.newConsumerInstrumenter(TextMapExtractAdapter.GETTER);
+      return builder.newConsumerInstrumenter(TextMapExtractAdapter.INSTANCE);
     }
   }
 

+ 2 - 3
instrumentation/rocketmq-client-4.8/library/src/main/java/io/opentelemetry/instrumentation/rocketmq/TextMapExtractAdapter.java

@@ -9,9 +9,8 @@ import io.opentelemetry.context.propagation.TextMapGetter;
 import javax.annotation.Nullable;
 import org.apache.rocketmq.common.message.MessageExt;
 
-final class TextMapExtractAdapter implements TextMapGetter<MessageExt> {
-
-  public static final TextMapExtractAdapter GETTER = new TextMapExtractAdapter();
+enum TextMapExtractAdapter implements TextMapGetter<MessageExt> {
+  INSTANCE;
 
   @Override
   public Iterable<String> keys(MessageExt carrier) {

+ 2 - 3
instrumentation/servlet/servlet-javax-common/library/src/main/java/io/opentelemetry/instrumentation/servlet/javax/JavaxHttpServletRequestGetter.java

@@ -9,9 +9,8 @@ import io.opentelemetry.context.propagation.TextMapGetter;
 import java.util.Collections;
 import javax.servlet.http.HttpServletRequest;
 
-public class JavaxHttpServletRequestGetter implements TextMapGetter<HttpServletRequest> {
-
-  public static final JavaxHttpServletRequestGetter GETTER = new JavaxHttpServletRequestGetter();
+public enum JavaxHttpServletRequestGetter implements TextMapGetter<HttpServletRequest> {
+  INSTANCE;
 
   @Override
   public Iterable<String> keys(HttpServletRequest carrier) {

+ 2 - 1
instrumentation/spring/spring-kafka-2.7/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/spring/kafka/KafkaBatchProcessSpanLinksExtractor.java

@@ -22,7 +22,8 @@ public class KafkaBatchProcessSpanLinksExtractor
 
   public KafkaBatchProcessSpanLinksExtractor(ContextPropagators contextPropagators) {
     this.singleRecordLinkExtractor =
-        SpanLinksExtractor.fromUpstreamRequest(contextPropagators, new KafkaConsumerRecordGetter());
+        SpanLinksExtractor.fromUpstreamRequest(
+            contextPropagators, KafkaConsumerRecordGetter.INSTANCE);
   }
 
   @Override

+ 3 - 1
instrumentation/spring/spring-rabbit-1.0/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/spring/rabbit/MessageHeaderGetter.java

@@ -9,7 +9,9 @@ import io.opentelemetry.context.propagation.TextMapGetter;
 import javax.annotation.Nullable;
 import org.springframework.amqp.core.Message;
 
-final class MessageHeaderGetter implements TextMapGetter<Message> {
+enum MessageHeaderGetter implements TextMapGetter<Message> {
+  INSTANCE;
+
   @Override
   public Iterable<String> keys(Message carrier) {
     return carrier.getMessageProperties().getHeaders().keySet();

+ 1 - 1
instrumentation/spring/spring-rabbit-1.0/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/spring/rabbit/SpringRabbitSingletons.java

@@ -27,7 +27,7 @@ public final class SpringRabbitSingletons {
         Instrumenter.<Message, Void>builder(
                 GlobalOpenTelemetry.get(), INSTRUMENTATION_NAME, spanNameExtractor)
             .addAttributesExtractor(attributesExtractor)
-            .newConsumerInstrumenter(new MessageHeaderGetter());
+            .newConsumerInstrumenter(MessageHeaderGetter.INSTANCE);
   }
 
   public static Instrumenter<Message, Void> instrumenter() {

+ 3 - 1
instrumentation/spring/spring-web-3.1/library/src/main/java/io/opentelemetry/instrumentation/spring/web/HttpRequestSetter.java

@@ -8,7 +8,9 @@ package io.opentelemetry.instrumentation.spring.web;
 import io.opentelemetry.context.propagation.TextMapSetter;
 import org.springframework.http.HttpRequest;
 
-final class HttpRequestSetter implements TextMapSetter<HttpRequest> {
+enum HttpRequestSetter implements TextMapSetter<HttpRequest> {
+  INSTANCE;
+
   @Override
   public void set(HttpRequest httpRequest, String key, String value) {
     httpRequest.getHeaders().set(key, value);

+ 1 - 1
instrumentation/spring/spring-web-3.1/library/src/main/java/io/opentelemetry/instrumentation/spring/web/SpringWebTracingBuilder.java

@@ -72,7 +72,7 @@ public final class SpringWebTracingBuilder {
             .addAttributesExtractor(netAttributesExtractor)
             .addAttributesExtractors(additionalExtractors)
             .addRequestMetrics(HttpClientMetrics.get())
-            .newClientInstrumenter(new HttpRequestSetter());
+            .newClientInstrumenter(HttpRequestSetter.INSTANCE);
 
     return new SpringWebTracing(instrumenter);
   }

+ 1 - 1
instrumentation/spring/spring-webmvc-3.1/library/src/main/java/io/opentelemetry/instrumentation/spring/webmvc/SpringWebMvcTracingBuilder.java

@@ -74,7 +74,7 @@ public final class SpringWebMvcTracingBuilder {
             .addAttributesExtractor(new SpringWebMvcNetAttributesExtractor())
             .addAttributesExtractors(additionalExtractors)
             .addRequestMetrics(HttpServerMetrics.get())
-            .newServerInstrumenter(JavaxHttpServletRequestGetter.GETTER);
+            .newServerInstrumenter(JavaxHttpServletRequestGetter.INSTANCE);
 
     return new SpringWebMvcTracing(instrumenter);
   }

+ 1 - 1
instrumentation/tomcat/tomcat-common/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/tomcat/common/TomcatInstrumenterFactory.java

@@ -56,6 +56,6 @@ public final class TomcatInstrumenterFactory {
               return AppServerBridge.init(context);
             })
         .addRequestMetrics(HttpServerMetrics.get())
-        .newServerInstrumenter(TomcatRequestGetter.GETTER);
+        .newServerInstrumenter(TomcatRequestGetter.INSTANCE);
   }
 }

+ 2 - 3
instrumentation/tomcat/tomcat-common/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/tomcat/common/TomcatRequestGetter.java

@@ -9,9 +9,8 @@ import io.opentelemetry.context.propagation.TextMapGetter;
 import java.util.Collections;
 import org.apache.coyote.Request;
 
-public class TomcatRequestGetter implements TextMapGetter<Request> {
-
-  public static final TomcatRequestGetter GETTER = new TomcatRequestGetter();
+enum TomcatRequestGetter implements TextMapGetter<Request> {
+  INSTANCE;
 
   @Override
   public Iterable<String> keys(Request carrier) {

+ 2 - 3
instrumentation/undertow-1.4/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/undertow/UndertowExchangeGetter.java

@@ -10,9 +10,8 @@ import io.undertow.server.HttpServerExchange;
 import io.undertow.util.HttpString;
 import java.util.stream.Collectors;
 
-public class UndertowExchangeGetter implements TextMapGetter<HttpServerExchange> {
-
-  public static final UndertowExchangeGetter GETTER = new UndertowExchangeGetter();
+enum UndertowExchangeGetter implements TextMapGetter<HttpServerExchange> {
+  INSTANCE;
 
   @Override
   public Iterable<String> keys(HttpServerExchange carrier) {

+ 1 - 1
instrumentation/undertow-1.4/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/undertow/UndertowSingletons.java

@@ -51,7 +51,7 @@ public final class UndertowSingletons {
                   return AppServerBridge.init(context);
                 })
             .addRequestMetrics(HttpServerMetrics.get())
-            .newServerInstrumenter(UndertowExchangeGetter.GETTER);
+            .newServerInstrumenter(UndertowExchangeGetter.INSTANCE);
   }
 
   private static final UndertowHelper HELPER = new UndertowHelper(INSTRUMENTER);