147 lines
7.0 KiB
Groovy
147 lines
7.0 KiB
Groovy
plugins {
|
|
id "com.github.johnrengelman.shadow" version "5.2.0"
|
|
id "me.champeau.gradle.jmh" version "0.5.0"
|
|
}
|
|
|
|
description = 'dd-trace-ot'
|
|
|
|
apply from: "${rootDir}/gradle/java.gradle"
|
|
apply from: "${rootDir}/gradle/publish.gradle"
|
|
|
|
minimumBranchCoverage = 0.5
|
|
minimumInstructionCoverage = 0.6
|
|
excludedClassesCoverage += [
|
|
'datadog.trace.common.writer.ListWriter',
|
|
'datadog.trace.common.writer.LoggingWriter',
|
|
'datadog.trace.common.writer.DDAgentWriter.DDAgentWriterBuilder',
|
|
'datadog.trace.common.sampling.PrioritySampling',
|
|
// This code is copied from okHttp samples and we have integration tests to verify that it works.
|
|
'datadog.trace.common.writer.unixdomainsockets.TunnelingUnixSocket',
|
|
'datadog.trace.common.writer.unixdomainsockets.UnixDomainSocketFactory',
|
|
'datadog.opentracing.StringCachingBigInteger'
|
|
]
|
|
|
|
apply plugin: 'org.unbroken-dome.test-sets'
|
|
|
|
testSets {
|
|
ot31CompatabilityTest
|
|
ot33CompatabilityTest
|
|
traceAgentTest
|
|
}
|
|
|
|
dependencies {
|
|
annotationProcessor deps.autoservice
|
|
implementation deps.autoservice
|
|
|
|
compile project(':dd-trace-api')
|
|
compile project(':utils:thread-utils')
|
|
|
|
compile deps.opentracing
|
|
compile group: 'io.opentracing.contrib', name: 'opentracing-tracerresolver', version: '0.1.0'
|
|
|
|
compile group: 'com.datadoghq', name: 'java-dogstatsd-client', version: '2.1.1'
|
|
|
|
compile deps.slf4j
|
|
compile deps.okhttp
|
|
compile group: 'org.msgpack', name: 'msgpack-core', version: '0.8.20'
|
|
compile group: 'com.squareup.moshi', name: 'moshi', version: '1.9.2'
|
|
compile group: 'com.github.jnr', name: 'jnr-unixsocket', version: '0.23'
|
|
compile group: 'com.lmax', name: 'disruptor', version: '3.4.2'
|
|
|
|
// We have autoservices defined in test subtree, looks like we need this to be able to properly rebuild this
|
|
testAnnotationProcessor deps.autoservice
|
|
testImplementation deps.autoservice
|
|
|
|
testCompile project(":dd-java-agent:testing")
|
|
testCompile group: 'com.github.stefanbirkner', name: 'system-rules', version: '1.19.0'
|
|
testCompile group: 'org.msgpack', name: 'jackson-dataformat-msgpack', version: '0.8.20'
|
|
|
|
traceAgentTestCompile deps.testcontainers
|
|
|
|
ot31CompatabilityTestCompile group: 'io.opentracing', name: 'opentracing-api', version: '0.31.0'
|
|
ot31CompatabilityTestCompile group: 'io.opentracing', name: 'opentracing-util', version: '0.31.0'
|
|
ot31CompatabilityTestCompile group: 'io.opentracing', name: 'opentracing-noop', version: '0.31.0'
|
|
|
|
ot33CompatabilityTestCompile group: 'io.opentracing', name: 'opentracing-api', version: '0.33.0'
|
|
ot33CompatabilityTestCompile group: 'io.opentracing', name: 'opentracing-util', version: '0.33.0'
|
|
ot33CompatabilityTestCompile group: 'io.opentracing', name: 'opentracing-noop', version: '0.33.0'
|
|
}
|
|
|
|
[configurations.ot31CompatabilityTestCompile, configurations.ot31CompatabilityTestRuntime].each {
|
|
it.resolutionStrategy {
|
|
force group: 'io.opentracing', name: 'opentracing-api', version: '0.31.0'
|
|
force group: 'io.opentracing', name: 'opentracing-util', version: '0.31.0'
|
|
force group: 'io.opentracing', name: 'opentracing-noop', version: '0.31.0'
|
|
}
|
|
}
|
|
[configurations.ot33CompatabilityTestCompile, configurations.ot33CompatabilityTestRuntime].each {
|
|
it.resolutionStrategy {
|
|
force group: 'io.opentracing', name: 'opentracing-api', version: '0.33.0'
|
|
force group: 'io.opentracing', name: 'opentracing-util', version: '0.33.0'
|
|
force group: 'io.opentracing', name: 'opentracing-noop', version: '0.33.0'
|
|
}
|
|
}
|
|
|
|
test.finalizedBy ot31CompatabilityTest
|
|
test.finalizedBy ot33CompatabilityTest
|
|
|
|
jar {
|
|
archiveClassifier = 'unbundled'
|
|
}
|
|
|
|
shadowJar {
|
|
archiveClassifier = ''
|
|
|
|
dependencies {
|
|
include(project(':utils:thread-utils'))
|
|
}
|
|
}
|
|
|
|
// We don't want bundled dependencies to show up in the pom.
|
|
modifyPom {
|
|
dependencies.removeAll { it.artifactId == "thread-utils" }
|
|
}
|
|
|
|
jmh {
|
|
// include = [".*URLAsResourceNameBenchmark"]
|
|
// include = ['some regular expression'] // include pattern (regular expression) for benchmarks to be executed
|
|
// exclude = ['some regular expression'] // exclude pattern (regular expression) for benchmarks to be executed
|
|
iterations = 1 // Number of measurement iterations to do.
|
|
benchmarkMode = ['thrpt', 'avgt', 'ss']
|
|
// Benchmark mode. Available modes are: [Throughput/thrpt, AverageTime/avgt, SampleTime/sample, SingleShotTime/ss, All/all]
|
|
batchSize = 1
|
|
// Batch size: number of benchmark method calls per operation. (some benchmark modes can ignore this setting)
|
|
fork = 1 // How many times to forks a single benchmark. Use 0 to disable forking altogether
|
|
failOnError = false // Should JMH fail immediately if any benchmark had experienced the unrecoverable error?
|
|
forceGC = false // Should JMH force GC between iterations?
|
|
// jvm = 'myjvm' // Custom JVM to use when forking.
|
|
// jvmArgs = ['Custom JVM args to use when forking.']
|
|
// jvmArgsAppend = ['Custom JVM args to use when forking (append these)']
|
|
// jvmArgsPrepend =[ 'Custom JVM args to use when forking (prepend these)']
|
|
// humanOutputFile = project.file("${project.buildDir}/reports/jmh/human.txt") // human-readable output file
|
|
// resultsFile = project.file("${project.buildDir}/reports/jmh/results.txt") // results file
|
|
// operationsPerInvocation = 10 // Operations per invocation.
|
|
// benchmarkParameters = [:] // Benchmark parameters.
|
|
// profilers = ['stack'] // Use profilers to collect additional data. Supported profilers: [cl, comp, gc, stack, perf, perfnorm, perfasm, xperf, xperfasm, hs_cl, hs_comp, hs_gc, hs_rt, hs_thr]
|
|
timeOnIteration = '1s' // Time to spend at each measurement iteration.
|
|
// resultFormat = 'CSV' // Result format type (one of CSV, JSON, NONE, SCSV, TEXT)
|
|
// synchronizeIterations = false // Synchronize iterations?
|
|
// threads = 2 // Number of worker threads to run with.
|
|
// threadGroups = [2,3,4] //Override thread group distribution for asymmetric benchmarks.
|
|
// timeout = '1s' // Timeout for benchmark iteration.
|
|
timeUnit = 'us' // Output time unit. Available time units are: [m, s, ms, us, ns].
|
|
// verbosity = 'NORMAL' // Verbosity mode. Available modes are: [SILENT, NORMAL, EXTRA]
|
|
warmup = '2s' // Time to spend at each warmup iteration.
|
|
// warmupBatchSize = 10 // Warmup batch size: number of benchmark method calls per operation.
|
|
warmupForks = 1 // How many warmup forks to make for a single benchmark. 0 to disable warmup forks.
|
|
warmupIterations = 1 // Number of warmup iterations to do.
|
|
// warmupMode = 'INDI' // Warmup mode for warming up selected benchmarks. Warmup modes are: [INDI, BULK, BULK_INDI].
|
|
// warmupBenchmarks = ['.*Warmup'] // Warmup benchmarks to include in the run in addition to already selected. JMH will not measure these benchmarks, but only use them for the warmup.
|
|
|
|
// zip64 = true // Use ZIP64 format for bigger archives
|
|
jmhVersion = '1.23' // Specifies JMH version
|
|
// includeTests = true // Allows to include test sources into generate JMH jar, i.e. use it when benchmarks depend on the test classes.
|
|
duplicateClassesStrategy = 'warn'
|
|
// Strategy to apply when encountring duplicate classes during creation of the fat jar (i.e. while executing jmhJar task)
|
|
}
|