Merge branch 'master' into gpolaert/dropwizard
This commit is contained in:
commit
098dffc463
|
@ -9,16 +9,16 @@ jobs:
|
||||||
- checkout
|
- checkout
|
||||||
|
|
||||||
- restore_cache:
|
- restore_cache:
|
||||||
key: dd-trace-java-{{ checksum "build.gradle" }}-{{ checksum "dd-java-agent/build.gradle" }}-{{ checksum "dd-trace/build.gradle" }}
|
key: dd-trace-java-{{ checksum "dd-trace-java.gradle" }}-{{ checksum "dd-java-agent/dd-java-agent.gradle" }}-{{ checksum "dd-trace/dd-trace.gradle" }}
|
||||||
|
|
||||||
- run:
|
- run:
|
||||||
name: Run Tests
|
name: Run Tests
|
||||||
command: ./gradlew clean shadowJar check
|
command: ./gradlew clean shadowJar check --parallel
|
||||||
|
|
||||||
- save_cache:
|
- save_cache:
|
||||||
paths:
|
paths:
|
||||||
- ~/.gradle
|
- ~/.gradle
|
||||||
key: dd-trace-java-{{ checksum "build.gradle" }}-{{ checksum "dd-java-agent/build.gradle" }}-{{ checksum "dd-trace/build.gradle" }}
|
key: dd-trace-java-{{ checksum "dd-trace-java.gradle" }}-{{ checksum "dd-java-agent/dd-java-agent.gradle" }}-{{ checksum "dd-trace/dd-trace.gradle" }}
|
||||||
|
|
||||||
- store_test_results:
|
- store_test_results:
|
||||||
path: dd-java-agent/build/test-results
|
path: dd-java-agent/build/test-results
|
||||||
|
|
|
@ -1,3 +1,6 @@
|
||||||
|
// Not adding jacoco here as it inexplicably breaks our tests.
|
||||||
|
// apply from: "${rootDir}/gradle/jacoco.gradle"
|
||||||
|
|
||||||
description = 'dd-java-agent-ittests'
|
description = 'dd-java-agent-ittests'
|
||||||
dependencies {
|
dependencies {
|
||||||
testCompile project(':dd-java-agent')
|
testCompile project(':dd-java-agent')
|
|
@ -4,6 +4,16 @@ plugins {
|
||||||
|
|
||||||
description = 'dd-java-agent'
|
description = 'dd-java-agent'
|
||||||
|
|
||||||
|
apply from: "${rootDir}/gradle/jacoco.gradle"
|
||||||
|
jacocoTestReport.dependsOn project(':dd-java-agent-ittests').test
|
||||||
|
whitelistedInstructionClasses += whitelistedBranchClasses += [
|
||||||
|
"com.datadoghq.trace.agent.integration.*",
|
||||||
|
'com.datadoghq.trace.agent.AnnotationsTracingAgent',
|
||||||
|
'com.datadoghq.trace.agent.AgentTracerConfig',
|
||||||
|
'com.datadoghq.trace.agent.TraceAnnotationsManager',
|
||||||
|
'com.datadoghq.trace.agent.InstrumentationChecker'
|
||||||
|
]
|
||||||
|
|
||||||
dependencies {
|
dependencies {
|
||||||
compile project(':dd-trace')
|
compile project(':dd-trace')
|
||||||
compile project(':dd-trace-annotations')
|
compile project(':dd-trace-annotations')
|
|
@ -1,3 +1,5 @@
|
||||||
|
apply from: "${rootDir}/gradle/jacoco.gradle"
|
||||||
|
|
||||||
description = 'dd-trace-annotations'
|
description = 'dd-trace-annotations'
|
||||||
dependencies {
|
dependencies {
|
||||||
testCompile group: 'junit', name: 'junit', version: '3.8.1'
|
testCompile group: 'junit', name: 'junit', version: '3.8.1'
|
|
@ -4,6 +4,15 @@ plugins {
|
||||||
}
|
}
|
||||||
|
|
||||||
description = 'dd-trace'
|
description = 'dd-trace'
|
||||||
|
|
||||||
|
apply from: "${rootDir}/gradle/jacoco.gradle"
|
||||||
|
minimumBranchCoverage = 0.3
|
||||||
|
minimumInstructionCoverage = 0.5
|
||||||
|
whitelistedInstructionClasses += whitelistedBranchClasses += [
|
||||||
|
"com.datadoghq.trace.integration.*",
|
||||||
|
'com.datadoghq.trace.DDTags'
|
||||||
|
]
|
||||||
|
|
||||||
dependencies {
|
dependencies {
|
||||||
compile group: 'io.opentracing', name: 'opentracing-api', version: '0.30.0'
|
compile group: 'io.opentracing', name: 'opentracing-api', version: '0.30.0'
|
||||||
compile group: 'io.opentracing', name: 'opentracing-noop', version: '0.30.0'
|
compile group: 'io.opentracing', name: 'opentracing-noop', version: '0.30.0'
|
|
@ -41,19 +41,10 @@ public class DDTracerResolver extends TracerResolver {
|
||||||
|
|
||||||
@SuppressWarnings("static-access")
|
@SuppressWarnings("static-access")
|
||||||
public static Tracer registerTracer() {
|
public static Tracer registerTracer() {
|
||||||
|
Tracer tracer = TracerResolver.resolveTracer();
|
||||||
ServiceLoader<TracerResolver> RESOLVERS = ServiceLoader.load(TracerResolver.class);
|
|
||||||
|
|
||||||
Tracer tracer = null;
|
|
||||||
for (TracerResolver value : RESOLVERS) {
|
|
||||||
tracer = value.resolveTracer();
|
|
||||||
if (tracer != null) {
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
if (tracer == null) {
|
if (tracer == null) {
|
||||||
tracer = NoopTracerFactory.create();
|
return NoopTracerFactory.create();
|
||||||
}
|
}
|
||||||
|
|
||||||
GlobalTracer.register(tracer);
|
GlobalTracer.register(tracer);
|
||||||
|
|
|
@ -2,9 +2,14 @@ package com.datadoghq.trace.resolver;
|
||||||
|
|
||||||
import static org.assertj.core.api.Assertions.assertThat;
|
import static org.assertj.core.api.Assertions.assertThat;
|
||||||
|
|
||||||
|
import java.lang.reflect.Field;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
|
import io.opentracing.NoopTracerFactory;
|
||||||
|
import io.opentracing.Tracer;
|
||||||
|
import io.opentracing.contrib.tracerresolver.TracerResolver;
|
||||||
import io.opentracing.tag.Tags;
|
import io.opentracing.tag.Tags;
|
||||||
|
import io.opentracing.util.GlobalTracer;
|
||||||
import org.junit.Test;
|
import org.junit.Test;
|
||||||
|
|
||||||
import com.datadoghq.trace.DDTracer;
|
import com.datadoghq.trace.DDTracer;
|
||||||
|
@ -15,7 +20,7 @@ import com.datadoghq.trace.integration.URLAsResourceName;
|
||||||
public class TracerResolverTest {
|
public class TracerResolverTest {
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void test() {
|
public void testResolve() {
|
||||||
DDTracerResolver tracerResolver = new DDTracerResolver();
|
DDTracerResolver tracerResolver = new DDTracerResolver();
|
||||||
DDTracer tracer = (DDTracer) tracerResolver.resolve();
|
DDTracer tracer = (DDTracer) tracerResolver.resolve();
|
||||||
|
|
||||||
|
@ -39,4 +44,34 @@ public class TracerResolverTest {
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void testResolveTracer() throws Exception {
|
||||||
|
Field tracerField = GlobalTracer.class.getDeclaredField("tracer");
|
||||||
|
tracerField.setAccessible(true);
|
||||||
|
tracerField.set(null, NoopTracerFactory.create());
|
||||||
|
|
||||||
|
assertThat(GlobalTracer.isRegistered()).isFalse();
|
||||||
|
|
||||||
|
Tracer tracer = TracerResolver.resolveTracer();
|
||||||
|
|
||||||
|
assertThat(GlobalTracer.isRegistered()).isFalse();
|
||||||
|
assertThat(tracer).isInstanceOf(DDTracer.class);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void testRegisterTracer() throws Exception {
|
||||||
|
Field tracerField = GlobalTracer.class.getDeclaredField("tracer");
|
||||||
|
tracerField.setAccessible(true);
|
||||||
|
tracerField.set(null, NoopTracerFactory.create());
|
||||||
|
|
||||||
|
assertThat(GlobalTracer.isRegistered()).isFalse();
|
||||||
|
|
||||||
|
DDTracerResolver.registerTracer();
|
||||||
|
|
||||||
|
assertThat(GlobalTracer.isRegistered()).isTrue();
|
||||||
|
assertThat(tracerField.get(null)).isInstanceOf(DDTracer.class);
|
||||||
|
|
||||||
|
tracerField.set(null, NoopTracerFactory.create());
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -0,0 +1,43 @@
|
||||||
|
apply plugin: "jacoco"
|
||||||
|
|
||||||
|
jacocoTestReport {
|
||||||
|
dependsOn test
|
||||||
|
reports {
|
||||||
|
xml.enabled true
|
||||||
|
csv.enabled false
|
||||||
|
html.destination file("${buildDir}/reports/jacoco/")
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
project.ext.whitelistedBranchClasses = []
|
||||||
|
project.ext.whitelistedInstructionClasses = []
|
||||||
|
|
||||||
|
project.ext.minimumBranchCoverage = 0.6
|
||||||
|
project.ext.minimumInstructionCoverage = 0.6
|
||||||
|
|
||||||
|
afterEvaluate {
|
||||||
|
jacocoTestCoverageVerification {
|
||||||
|
violationRules {
|
||||||
|
rule {
|
||||||
|
element = 'CLASS'
|
||||||
|
excludes = project.whitelistedBranchClasses
|
||||||
|
limit {
|
||||||
|
counter = 'BRANCH'
|
||||||
|
minimum = project.minimumBranchCoverage
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
rule {
|
||||||
|
element = 'CLASS'
|
||||||
|
excludes = project.whitelistedInstructionClasses
|
||||||
|
limit {
|
||||||
|
counter = 'INSTRUCTION'
|
||||||
|
minimum = project.minimumInstructionCoverage
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
jacocoTestCoverageVerification.dependsOn jacocoTestReport
|
||||||
|
check.dependsOn jacocoTestCoverageVerification
|
||||||
|
}
|
|
@ -1,4 +1,5 @@
|
||||||
rootProject.name = 'dd-trace-java'
|
rootProject.name = 'dd-trace-java'
|
||||||
|
|
||||||
include ':dd-trace'
|
include ':dd-trace'
|
||||||
include ':dd-java-agent'
|
include ':dd-java-agent'
|
||||||
include ':dd-java-agent-ittests'
|
include ':dd-java-agent-ittests'
|
||||||
|
@ -8,11 +9,11 @@ include ':dd-trace-examples:spring-boot-jdbc'
|
||||||
include ':dd-trace-examples'
|
include ':dd-trace-examples'
|
||||||
include ':dd-trace-annotations'
|
include ':dd-trace-annotations'
|
||||||
|
|
||||||
project(':dd-trace').projectDir = "$rootDir/dd-trace" as File
|
def setBuildFile(project) {
|
||||||
project(':dd-java-agent').projectDir = "$rootDir/dd-java-agent" as File
|
project.buildFileName = "${project.name}.gradle"
|
||||||
project(':dd-java-agent-ittests').projectDir = "$rootDir/dd-java-agent-ittests" as File
|
project.children.each {
|
||||||
project(':dd-trace-examples:async-tracing').projectDir = "$rootDir/dd-trace-examples/async-tracing" as File
|
setBuildFile(it)
|
||||||
project(':dd-trace-examples:dropwizard-mongo-client').projectDir = "$rootDir/dd-trace-examples/dropwizard-mongo-client" as File
|
}
|
||||||
project(':dd-trace-examples:spring-boot-jdbc').projectDir = "$rootDir/dd-trace-examples/spring-boot-jdbc" as File
|
}
|
||||||
project(':dd-trace-examples').projectDir = "$rootDir/dd-trace-examples" as File
|
|
||||||
project(':dd-trace-annotations').projectDir = "$rootDir/dd-trace-annotations" as File
|
setBuildFile(rootProject)
|
||||||
|
|
Loading…
Reference in New Issue