Skip to content

Commit

Permalink
Dont instrument @Decorators or CDI breaks
Browse files Browse the repository at this point in the history
  • Loading branch information
randomanderson committed Oct 16, 2019
1 parent 6512c4b commit e161664
Show file tree
Hide file tree
Showing 4 changed files with 49 additions and 0 deletions.
Original file line number Diff line number Diff line change
@@ -1,7 +1,9 @@
package datadog.trace.agent.tooling;

import static datadog.trace.agent.tooling.ClassLoaderMatcher.skipClassLoader;
import static net.bytebuddy.matcher.ElementMatchers.annotationType;
import static net.bytebuddy.matcher.ElementMatchers.any;
import static net.bytebuddy.matcher.ElementMatchers.hasAnnotation;
import static net.bytebuddy.matcher.ElementMatchers.nameContains;
import static net.bytebuddy.matcher.ElementMatchers.nameMatches;
import static net.bytebuddy.matcher.ElementMatchers.nameStartsWith;
Expand Down Expand Up @@ -130,6 +132,7 @@ public static ResettableClassFileTransformer installBytebuddyAgent(
.or(nameContains("javassist"))
.or(nameContains(".asm."))
.or(nameMatches("com\\.mchange\\.v2\\.c3p0\\..*Proxy"))
.or(hasAnnotation(annotationType(named("javax.decorator.Decorator"))))
.or(matchesConfiguredExcludes());

for (final AgentBuilder.Listener listener : listeners) {
Expand Down
22 changes: 22 additions & 0 deletions dd-java-agent/instrumentation/cdi-1.2/cdi-1.2.gradle
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
apply from: "${rootDir}/gradle/java.gradle"

apply plugin: 'org.unbroken-dome.test-sets'

testSets {
latestDepTest {
dirName = 'test'
}
}

dependencies {
testCompile project(':dd-java-agent:instrumentation:java-concurrent')

testCompile group: 'org.jboss.weld', name: 'weld-core', version: '2.3.0.Final'
testCompile group: 'org.jboss.weld.se', name: 'weld-se', version: '2.3.0.Final'
testCompile group: 'org.jboss.weld.se-core', name: 'weld-se-core', version: '2.3.0.Final'

// Beyond 2.x is CDI 2+ and requires Java 8
latestDepTestCompile group: 'org.jboss.weld', name: 'weld-core', version: '2.+'
latestDepTestCompile group: 'org.jboss.weld.se', name: 'weld-se', version: '2.+'
latestDepTestCompile group: 'org.jboss.weld.se-core', name: 'weld-se-core', version: '2.+'
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
import datadog.trace.agent.test.AgentTestRunner
import org.jboss.weld.environment.se.Weld
import org.jboss.weld.environment.se.WeldContainer
import org.jboss.weld.environment.se.threading.RunnableDecorator

class CDIContainerTest extends AgentTestRunner {

def "CDI container starts with agent"() {
given:
Weld builder = new Weld()
.disableDiscovery()
.decorators(RunnableDecorator)

when:
WeldContainer container = builder.initialize()

then:
container.isRunning()

cleanup:
container?.shutdown()
}
}
1 change: 1 addition & 0 deletions settings.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -28,6 +28,7 @@ include ':dd-java-agent:instrumentation:apache-httpasyncclient-4'
include ':dd-java-agent:instrumentation:apache-httpclient-4'
include ':dd-java-agent:instrumentation:aws-java-sdk-1.11.0'
include ':dd-java-agent:instrumentation:aws-java-sdk-2.2'
include ':dd-java-agent:instrumentation:cdi-1.2'
include ':dd-java-agent:instrumentation:couchbase-2.0'
include ':dd-java-agent:instrumentation:couchbase-2.6'
include ':dd-java-agent:instrumentation:datastax-cassandra-3'
Expand Down

0 comments on commit e161664

Please sign in to comment.