Merge branch 'master' into gpolaert/dropwizard
This commit is contained in:
commit
098dffc463
|
@ -9,16 +9,16 @@ jobs:
|
|||
- checkout
|
||||
|
||||
- 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:
|
||||
name: Run Tests
|
||||
command: ./gradlew clean shadowJar check
|
||||
command: ./gradlew clean shadowJar check --parallel
|
||||
|
||||
- save_cache:
|
||||
paths:
|
||||
- ~/.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:
|
||||
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'
|
||||
dependencies {
|
||||
testCompile project(':dd-java-agent')
|
|
@ -4,6 +4,16 @@ plugins {
|
|||
|
||||
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 {
|
||||
compile project(':dd-trace')
|
||||
compile project(':dd-trace-annotations')
|
|
@ -1,3 +1,5 @@
|
|||
apply from: "${rootDir}/gradle/jacoco.gradle"
|
||||
|
||||
description = 'dd-trace-annotations'
|
||||
dependencies {
|
||||
testCompile group: 'junit', name: 'junit', version: '3.8.1'
|
|
@ -4,6 +4,15 @@ plugins {
|
|||
}
|
||||
|
||||
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 {
|
||||
compile group: 'io.opentracing', name: 'opentracing-api', 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")
|
||||
public static Tracer registerTracer() {
|
||||
|
||||
ServiceLoader<TracerResolver> RESOLVERS = ServiceLoader.load(TracerResolver.class);
|
||||
|
||||
Tracer tracer = null;
|
||||
for (TracerResolver value : RESOLVERS) {
|
||||
tracer = value.resolveTracer();
|
||||
if (tracer != null) {
|
||||
break;
|
||||
}
|
||||
}
|
||||
Tracer tracer = TracerResolver.resolveTracer();
|
||||
|
||||
if (tracer == null) {
|
||||
tracer = NoopTracerFactory.create();
|
||||
return NoopTracerFactory.create();
|
||||
}
|
||||
|
||||
GlobalTracer.register(tracer);
|
||||
|
|
|
@ -2,9 +2,14 @@ package com.datadoghq.trace.resolver;
|
|||
|
||||
import static org.assertj.core.api.Assertions.assertThat;
|
||||
|
||||
import java.lang.reflect.Field;
|
||||
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.util.GlobalTracer;
|
||||
import org.junit.Test;
|
||||
|
||||
import com.datadoghq.trace.DDTracer;
|
||||
|
@ -15,7 +20,7 @@ import com.datadoghq.trace.integration.URLAsResourceName;
|
|||
public class TracerResolverTest {
|
||||
|
||||
@Test
|
||||
public void test() {
|
||||
public void testResolve() {
|
||||
DDTracerResolver tracerResolver = new DDTracerResolver();
|
||||
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'
|
||||
|
||||
include ':dd-trace'
|
||||
include ':dd-java-agent'
|
||||
include ':dd-java-agent-ittests'
|
||||
|
@ -8,11 +9,11 @@ include ':dd-trace-examples:spring-boot-jdbc'
|
|||
include ':dd-trace-examples'
|
||||
include ':dd-trace-annotations'
|
||||
|
||||
project(':dd-trace').projectDir = "$rootDir/dd-trace" as File
|
||||
project(':dd-java-agent').projectDir = "$rootDir/dd-java-agent" as File
|
||||
project(':dd-java-agent-ittests').projectDir = "$rootDir/dd-java-agent-ittests" as File
|
||||
project(':dd-trace-examples:async-tracing').projectDir = "$rootDir/dd-trace-examples/async-tracing" as File
|
||||
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
|
||||
def setBuildFile(project) {
|
||||
project.buildFileName = "${project.name}.gradle"
|
||||
project.children.each {
|
||||
setBuildFile(it)
|
||||
}
|
||||
}
|
||||
|
||||
setBuildFile(rootProject)
|
||||
|
|
Loading…
Reference in New Issue