Move reactor context propagation operator instrumentation to separate instrumentation module
MODIFY
instrumentation/reactor/reactor-3.1/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/reactor/ReactorInstrumentationModule.java
instrumentation/reactor/reactor-3.1/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/reactor/ReactorInstrumentationModule.java
package io.opentelemetry.javaagent.instrumentation.reactor;
-import static java.util.Arrays.asList;
+import static java.util.Collections.singletonList;
import com.google.auto.service.AutoService;
import io.opentelemetry.javaagent.extension.instrumentation.InstrumentationModule;
@@ -21,6 +21,6 @@ public class ReactorInstrumentationModule extends InstrumentationModule {
@Override
public List<TypeInstrumentation> typeInstrumentations() {
- return asList(new HooksInstrumentation(), new ContextPropagationOperatorInstrumentation());
+ return singletonList(new HooksInstrumentation());
}
}

RENAME
instrumentation/reactor/reactor-3.1/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/reactor/ContextPropagationOperatorInstrumentation.java
instrumentation/reactor/reactor-3.1/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/reactor/operator/ContextPropagationOperatorInstrumentation.java
* SPDX-License-Identifier: Apache-2.0
*/
-package io.opentelemetry.javaagent.instrumentation.reactor;
+package io.opentelemetry.javaagent.instrumentation.reactor.operator;
import static net.bytebuddy.matcher.ElementMatchers.isMethod;
import static net.bytebuddy.matcher.ElementMatchers.isPublic;

ADD
instrumentation/reactor/reactor-3.1/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/reactor/operator/ContextPropagationOperatorInstrumentationModule.java
+/*
+ * Copyright The OpenTelemetry Authors
+ * SPDX-License-Identifier: Apache-2.0
+ */
+
+package io.opentelemetry.javaagent.instrumentation.reactor.operator;
+
+import static io.opentelemetry.javaagent.extension.matcher.AgentElementMatchers.hasClassesNamed;
+import static java.util.Collections.singletonList;
+
+import com.google.auto.service.AutoService;
+import io.opentelemetry.javaagent.extension.instrumentation.InstrumentationModule;
+import io.opentelemetry.javaagent.extension.instrumentation.TypeInstrumentation;
+import java.util.List;
+import net.bytebuddy.matcher.ElementMatcher;
+
+@AutoService(InstrumentationModule.class)
+public class ContextPropagationOperatorInstrumentationModule extends InstrumentationModule {
+
+ public ContextPropagationOperatorInstrumentationModule() {
+ super("reactor", "reactor-3.1", "reactor-context-propagation-operator");
+ }
+
+ @Override
+ public ElementMatcher.Junction<ClassLoader> classLoaderMatcher() {
+ return hasClassesNamed("application.io.opentelemetry.context.Context");
+ }
+
+ @Override
+ public List<TypeInstrumentation> typeInstrumentations() {
+ return singletonList(new ContextPropagationOperatorInstrumentation());
+ }
+}

Move reactor context propagation operator instrumentation to separate instrumentation module (#5188)