diff --git a/instrumentation/akka-context-propagation/akka-context-propagation.gradle b/instrumentation/akka-context-propagation/akka-context-propagation.gradle new file mode 100644 index 0000000000..28ef8af949 --- /dev/null +++ b/instrumentation/akka-context-propagation/akka-context-propagation.gradle @@ -0,0 +1,10 @@ +apply from: "$rootDir/gradle/instrumentation.gradle" +apply from: "$rootDir/gradle/test-with-scala.gradle" + +dependencies { + implementation project(':instrumentation:java-concurrent') + compileOnly group: 'com.typesafe.akka', name: 'akka-actor_2.11', version: '2.5.0' + + testImplementation deps.scala + testImplementation group: 'com.typesafe.akka', name: 'akka-actor_2.11', version: '2.5.0' +} \ No newline at end of file diff --git a/instrumentation/java-concurrent/src/main/java/io/opentelemetry/auto/instrumentation/javaconcurrent/AkkaExecutorInstrumentation.java b/instrumentation/akka-context-propagation/src/main/java/io/opentelemetry/auto/instrumentation/akkaconcurrent/AkkaExecutorInstrumentation.java similarity index 92% rename from instrumentation/java-concurrent/src/main/java/io/opentelemetry/auto/instrumentation/javaconcurrent/AkkaExecutorInstrumentation.java rename to instrumentation/akka-context-propagation/src/main/java/io/opentelemetry/auto/instrumentation/akkaconcurrent/AkkaExecutorInstrumentation.java index f0035dee3e..c2aea6c2d1 100644 --- a/instrumentation/java-concurrent/src/main/java/io/opentelemetry/auto/instrumentation/javaconcurrent/AkkaExecutorInstrumentation.java +++ b/instrumentation/akka-context-propagation/src/main/java/io/opentelemetry/auto/instrumentation/akkaconcurrent/AkkaExecutorInstrumentation.java @@ -14,7 +14,7 @@ * limitations under the License. */ -package io.opentelemetry.auto.instrumentation.javaconcurrent; +package io.opentelemetry.auto.instrumentation.akkaconcurrent; import static java.util.Collections.singletonMap; import static net.bytebuddy.matcher.ElementMatchers.nameMatches; @@ -28,6 +28,7 @@ import io.opentelemetry.auto.bootstrap.ContextStore; import io.opentelemetry.auto.bootstrap.InstrumentationContext; import io.opentelemetry.auto.bootstrap.instrumentation.java.concurrent.ExecutorInstrumentationUtils; import io.opentelemetry.auto.bootstrap.instrumentation.java.concurrent.State; +import io.opentelemetry.auto.instrumentation.javaconcurrent.AbstractExecutorInstrumentation; import io.opentelemetry.auto.tooling.Instrumenter; import java.util.HashMap; import java.util.Map; @@ -40,7 +41,12 @@ import net.bytebuddy.matcher.ElementMatcher; public final class AkkaExecutorInstrumentation extends AbstractExecutorInstrumentation { public AkkaExecutorInstrumentation() { - super(EXEC_NAME + ".akka_fork_join"); + super(AbstractExecutorInstrumentation.EXEC_NAME + ".akka_fork_join"); + } + + @Override + protected boolean defaultEnabled() { + return false; } @Override diff --git a/instrumentation/java-concurrent/src/main/java/io/opentelemetry/auto/instrumentation/javaconcurrent/AkkaForkJoinTaskInstrumentation.java b/instrumentation/akka-context-propagation/src/main/java/io/opentelemetry/auto/instrumentation/akkaconcurrent/AkkaForkJoinTaskInstrumentation.java similarity index 94% rename from instrumentation/java-concurrent/src/main/java/io/opentelemetry/auto/instrumentation/javaconcurrent/AkkaForkJoinTaskInstrumentation.java rename to instrumentation/akka-context-propagation/src/main/java/io/opentelemetry/auto/instrumentation/akkaconcurrent/AkkaForkJoinTaskInstrumentation.java index 6e4bc1d38a..55b7effa72 100644 --- a/instrumentation/java-concurrent/src/main/java/io/opentelemetry/auto/instrumentation/javaconcurrent/AkkaForkJoinTaskInstrumentation.java +++ b/instrumentation/akka-context-propagation/src/main/java/io/opentelemetry/auto/instrumentation/akkaconcurrent/AkkaForkJoinTaskInstrumentation.java @@ -14,7 +14,7 @@ * limitations under the License. */ -package io.opentelemetry.auto.instrumentation.javaconcurrent; +package io.opentelemetry.auto.instrumentation.akkaconcurrent; import static io.opentelemetry.auto.tooling.ClassLoaderMatcher.hasClassesNamed; import static io.opentelemetry.auto.tooling.bytebuddy.matcher.AgentElementMatchers.extendsClass; @@ -31,6 +31,7 @@ import io.opentelemetry.auto.bootstrap.ContextStore; import io.opentelemetry.auto.bootstrap.InstrumentationContext; import io.opentelemetry.auto.bootstrap.instrumentation.java.concurrent.AdviceUtils; import io.opentelemetry.auto.bootstrap.instrumentation.java.concurrent.State; +import io.opentelemetry.auto.instrumentation.javaconcurrent.AbstractExecutorInstrumentation; import io.opentelemetry.auto.tooling.Instrumenter; import io.opentelemetry.context.Scope; import java.util.Collections; @@ -54,7 +55,12 @@ public final class AkkaForkJoinTaskInstrumentation extends Instrumenter.Default static final String TASK_CLASS_NAME = "akka.dispatch.forkjoin.ForkJoinTask"; public AkkaForkJoinTaskInstrumentation() { - super(AbstractExecutorInstrumentation.EXEC_NAME); + super(AbstractExecutorInstrumentation.EXEC_NAME + ".akka_fork_join"); + } + + @Override + protected boolean defaultEnabled() { + return false; } @Override diff --git a/instrumentation/java-concurrent/akka-testing/src/test/groovy/AkkaActorTest.groovy b/instrumentation/akka-context-propagation/src/test/groovy/AkkaActorTest.groovy similarity index 100% rename from instrumentation/java-concurrent/akka-testing/src/test/groovy/AkkaActorTest.groovy rename to instrumentation/akka-context-propagation/src/test/groovy/AkkaActorTest.groovy diff --git a/instrumentation/java-concurrent/akka-2.5-testing/src/test/groovy/AkkaExecutorInstrumentationTest.groovy b/instrumentation/akka-context-propagation/src/test/groovy/AkkaExecutorInstrumentationTest.groovy similarity index 97% rename from instrumentation/java-concurrent/akka-2.5-testing/src/test/groovy/AkkaExecutorInstrumentationTest.groovy rename to instrumentation/akka-context-propagation/src/test/groovy/AkkaExecutorInstrumentationTest.groovy index 71790cf6b2..44fd7fd6b3 100644 --- a/instrumentation/java-concurrent/akka-2.5-testing/src/test/groovy/AkkaExecutorInstrumentationTest.groovy +++ b/instrumentation/akka-context-propagation/src/test/groovy/AkkaExecutorInstrumentationTest.groovy @@ -18,8 +18,6 @@ import akka.dispatch.forkjoin.ForkJoinPool import akka.dispatch.forkjoin.ForkJoinTask import io.opentelemetry.auto.test.AgentTestRunner import io.opentelemetry.sdk.trace.data.SpanData -import spock.lang.Shared - import java.lang.reflect.InvocationTargetException import java.util.concurrent.ArrayBlockingQueue import java.util.concurrent.Callable @@ -27,6 +25,7 @@ import java.util.concurrent.Future import java.util.concurrent.RejectedExecutionException import java.util.concurrent.ThreadPoolExecutor import java.util.concurrent.TimeUnit +import spock.lang.Shared import static io.opentelemetry.auto.test.utils.TraceUtils.runUnderTrace @@ -36,6 +35,10 @@ import static io.opentelemetry.auto.test.utils.TraceUtils.runUnderTrace */ class AkkaExecutorInstrumentationTest extends AgentTestRunner { + static { + System.setProperty("otel.integration.java_concurrent.akka_fork_join.enabled", "true") + } + @Shared def executeRunnable = { e, c -> e.execute((Runnable) c) } @Shared @@ -127,7 +130,7 @@ class AkkaExecutorInstrumentationTest extends AgentTestRunner { throw e.getCause() } } - } catch (RejectedExecutionException e) { + } catch (RejectedExecutionException ignored) { } for (Future f : jobFutures) { diff --git a/instrumentation/java-concurrent/akka-testing/src/test/scala/AkkaActors.scala b/instrumentation/akka-context-propagation/src/test/scala/AkkaActors.scala similarity index 100% rename from instrumentation/java-concurrent/akka-testing/src/test/scala/AkkaActors.scala rename to instrumentation/akka-context-propagation/src/test/scala/AkkaActors.scala diff --git a/instrumentation/java-concurrent/akka-2.5-testing/src/test/scala/AkkaAsyncChild.java b/instrumentation/akka-context-propagation/src/test/scala/AkkaAsyncChild.java similarity index 100% rename from instrumentation/java-concurrent/akka-2.5-testing/src/test/scala/AkkaAsyncChild.java rename to instrumentation/akka-context-propagation/src/test/scala/AkkaAsyncChild.java diff --git a/instrumentation/java-concurrent/akka-2.5-testing/akka-2.5-testing.gradle b/instrumentation/java-concurrent/akka-2.5-testing/akka-2.5-testing.gradle deleted file mode 100644 index e6e1076443..0000000000 --- a/instrumentation/java-concurrent/akka-2.5-testing/akka-2.5-testing.gradle +++ /dev/null @@ -1,19 +0,0 @@ -// Set properties before any plugins get loaded -ext { - minJavaVersionForTests = JavaVersion.VERSION_1_8 - skipPublish = true - retryTests = true -} - -apply from: "$rootDir/gradle/instrumentation.gradle" -apply from: "$rootDir/gradle/test-with-scala.gradle" - -dependencies { - compileOnly deps.scala - - testImplementation deps.scala - testImplementation group: 'com.typesafe.akka', name: 'akka-actor_2.11', version: '2.5.0' - - testImplementation project(':instrumentation:java-concurrent') - testImplementation project(':instrumentation:annotations') -} diff --git a/instrumentation/java-concurrent/akka-testing/akka-testing.gradle b/instrumentation/java-concurrent/akka-testing/akka-testing.gradle deleted file mode 100644 index 2aaa8e2b48..0000000000 --- a/instrumentation/java-concurrent/akka-testing/akka-testing.gradle +++ /dev/null @@ -1,17 +0,0 @@ -ext { - skipPublish = true - retryTests = true -} -apply from: "$rootDir/gradle/instrumentation.gradle" -apply from: "$rootDir/gradle/test-with-scala.gradle" - -dependencies { - compileOnly deps.scala - - testImplementation deps.scala - testImplementation group: 'com.typesafe.akka', name: 'akka-actor_2.11', version: '2.3.16' - testImplementation group: 'com.typesafe.akka', name: 'akka-testkit_2.11', version: '2.3.16' - - testImplementation project(':instrumentation:java-concurrent') - testImplementation project(':instrumentation:annotations') -} diff --git a/instrumentation/java-concurrent/java-concurrent.gradle b/instrumentation/java-concurrent/java-concurrent.gradle index dd5e32c8cf..b3ec279b5c 100644 --- a/instrumentation/java-concurrent/java-concurrent.gradle +++ b/instrumentation/java-concurrent/java-concurrent.gradle @@ -20,8 +20,6 @@ compileSlickTestGroovy { dependencies { // This is needed for Scala ForJoinTask/Pool instrumentation compileOnly deps.scala - // This is needed for Akka ForJoinTask/Pool instrumentation - compileOnly group: 'com.typesafe.akka', name: 'akka-actor_2.11', version: '2.5.0' testImplementation project(':instrumentation:annotations') @@ -34,13 +32,4 @@ dependencies { } // Run Slick library tests along with the rest of unit tests -test.dependsOn slickTest - -// Until custom source sets can use minJavaVersionForTests separately from other tests -// force this one test to run on java8 only -slickTest { - onlyIf { - String java8Home = findJavaHome(JavaVersion.VERSION_1_8) - java8Home != null && executable == toExecutable(java8Home) - } -} +test.dependsOn slickTest \ No newline at end of file diff --git a/settings.gradle b/settings.gradle index 2c0350177c..ad70f3d334 100644 --- a/settings.gradle +++ b/settings.gradle @@ -40,6 +40,7 @@ include ':smoke-tests:wildfly' include ':smoke-tests:springboot' // instrumentation: +include ':instrumentation:akka-context-propagation' include ':instrumentation:akka-http-10.0' include ':instrumentation:annotations' include ':instrumentation:apache-httpasyncclient-4.0' @@ -84,11 +85,8 @@ include ':instrumentation:java-classloader:jboss-testing' include ':instrumentation:java-classloader:osgi-testing' include ':instrumentation:java-classloader:tomcat-testing' include ':instrumentation:java-concurrent' -include ':instrumentation:java-concurrent:java-completablefuture' include ':instrumentation:java-concurrent:kotlin-testing' include ':instrumentation:java-concurrent:scala-testing' -include ':instrumentation:java-concurrent:akka-testing' -include ':instrumentation:java-concurrent:akka-2.5-testing' include ':instrumentation:jaxrs:jaxrs-1.0' include ':instrumentation:jaxrs:jaxrs-2.0' include ':instrumentation:jaxrs:jaxrs-2.0:jaxrs-2.0-jersey-2.0'