Merge pull request #184 from DataDog/tyler/move-stuff

Lots of renaming
This commit is contained in:
Tyler Benson 2018-01-09 10:14:11 +10:00 committed by GitHub
commit 5b4c965c5c
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
200 changed files with 651 additions and 617 deletions

View File

@ -33,7 +33,7 @@ function save_libs () {
save_reports dd-java-agent
save_reports dd-java-agent/tooling
# Save reports for all instrumentation projects
for integration_path in dd-java-agent/integrations/*; do
for integration_path in dd-java-agent/instrumentation/*; do
save_reports $integration_path
done
save_reports dd-java-agent-ittests

6
.gitignore vendored
View File

@ -11,7 +11,7 @@ target
/.gradle
*/.gradle
**/build/
dd-trace-examples/**/build/
examples/**/build/
# Eclipse #
###########
@ -49,9 +49,9 @@ Thumbs.db
/bin
/out
*/out
dd-java-agent/integrations/*/out
dd-java-agent/instrumentation/*/out
dd-java-agent/benchmark-integration/perf-test-settings.rc
dd-trace-examples/*/out
examples/*/out
derby.log
!dd-java-agent/benchmark/releases/*.jar

View File

@ -17,7 +17,7 @@ These three things help you instrument Java applications:
**Note:** dd-java-agent is considered experimental. Some integrations may not activate in all cases. Additional manual instrumentation using the [Opentracing API](https://github.com/opentracing/opentracing-java) is strongly encouraged.
**[Datadog Tracer](https://github.com/DataDog/dd-trace-java/tree/master/dd-trace)**: an OpenTracing-compatible library that lets you trace any piece of your Java code, not just whole methods.
**[Datadog Tracer](https://github.com/DataDog/dd-trace-java/tree/master/dd-trace-ot)**: an OpenTracing-compatible library that lets you trace any piece of your Java code, not just whole methods.
**[Datadog APM Agent](https://github.com/DataDog/datadog-trace-agent)**: a (non-Java) service that runs on your application servers, accepting trace data from the Datadog Java Agent and/or Datadog Tracer and sending it to Datadog. (The APM Agent is not part of this repo; it's the same Agent to which all Datadog tracers—Go, Python, etc—send data)
@ -91,12 +91,12 @@ The Java Agent lets you add a `@Trace` annotation to any method to measure its e
#### Setup
Add the `dd-trace-annotations` dependency to your project. For Maven, add this to pom.xml:
Add the `dd-trace-api` dependency to your project. For Maven, add this to pom.xml:
```xml
<dependency>
<groupId>com.datadoghq</groupId>
<artifactId>dd-trace-annotations</artifactId>
<artifactId>dd-trace-api</artifactId>
<version>{version}</version>
</dependency>
```
@ -104,7 +104,7 @@ Add the `dd-trace-annotations` dependency to your project. For Maven, add this t
For gradle, add:
```gradle
compile group: 'com.datadoghq', name: 'dd-trace-annotations', version: {version}
compile group: 'com.datadoghq', name: 'dd-trace-api', version: {version}
```
The Java Agent lets you use `@Trace` not just for `com.example.myproject`, but also for any application whose name _begins_ like that, e.g. `com.example.myproject.foobar`. If you're tempted to list something like `["com", "io"]` to avoid having to fuss with this configuration as you add new projects, be careful; providing `@Trace`-ability to too many applications could hurt your package's build time.
@ -133,7 +133,7 @@ When you don't pass an `operationName`, the Java Agent sets it to the method nam
### Manual Instrumentation
You can use the Datadog Tracer (`dd-trace`) library to measure execution times for specific pieces of code. This lets you trace your application more precisely than you can with the Java Agent alone.
You can use the Datadog Tracer (`dd-trace-ot`) library to measure execution times for specific pieces of code. This lets you trace your application more precisely than you can with the Java Agent alone.
#### Setup
@ -157,7 +157,7 @@ For Maven, add this to pom.xml:
<!-- Datadog Tracer (only needed if you do not use dd-java-agent) -->
<dependency>
<groupId>com.datadoghq</groupId>
<artifactId>dd-trace</artifactId>
<artifactId>dd-trace-ot</artifactId>
<version>${dd-trace-java.version}</version>
</dependency>
```
@ -167,14 +167,14 @@ For gradle, add:
```
compile group: 'io.opentracing', name: 'opentracing-api', version: "0.30.0"
compile group: 'io.opentracing', name: 'opentracing-util', version: "0.30.0"
compile group: 'com.datadoghq', name: 'dd-trace', version: "${dd-trace-java.version}"
compile group: 'com.datadoghq', name: 'dd-trace-ot', version: "${dd-trace-java.version}"
```
Configure your application using environment variables or system properties as discussed in the [config](#configuration) section.
#### Examples
Rather than referencing classes directly from `dd-trace` (other than registering `DDTracer`), we strongly suggest using the [OpenTracing API](https://github.com/opentracing/opentracing-java).
Rather than referencing classes directly from `dd-trace-ot` (other than registering `DDTracer`), we strongly suggest using the [OpenTracing API](https://github.com/opentracing/opentracing-java).
[Additional documentation on the api](docs/opentracing-api.md) is also available.
Let's look at a simple example.
@ -230,9 +230,9 @@ public class Application {
io.opentracing.util.GlobalTracer.register(tracer);
// OR from the API
Writer writer = new com.datadoghq.trace.writer.DDAgentWriter();
Sampler sampler = new com.datadoghq.trace.sampling.AllSampler();
Tracer tracer = new com.datadoghq.trace.DDTracer(writer, sampler);
Writer writer = new datadog.trace.api.writer.DDAgentWriter();
Sampler sampler = new datadog.trace.api.sampling.AllSampler();
Tracer tracer = new datadog.opentracing.DDTracer(writer, sampler);
io.opentracing.util.GlobalTracer.register(tracer);
// ...
@ -242,7 +242,7 @@ public class Application {
## Further Reading
- Browse the [example applications](dd-trace-examples) in this repository to see Java tracing in action
- Browse the [example applications](examples) in this repository to see Java tracing in action
- Read [OpenTracing's documentation](https://github.com/opentracing/opentracing-java); feel free to use the Trace Java API to customize your instrumentation.
- Brush up on [Datadog APM Terminology](https://docs.datadoghq.com/tracing/terminology/)
- Read the [Datadog APM FAQ](https://docs.datadoghq.com/tracing/faq/)

View File

@ -6,12 +6,16 @@ evaluationDependsOn(':dd-java-agent:tooling')
compileTestJava.dependsOn tasks.getByPath(':dd-java-agent:tooling:testClasses')
dependencies {
testCompile project(':dd-trace-annotations')
testCompile project(':dd-trace')
testCompile project(':dd-trace-api')
testCompile project(':dd-trace-ot')
testCompile deps.opentracingMock
testCompile project(':dd-java-agent:testing')
testCompile(project(':dd-java-agent:testing')) {
// Otherwise this can bring in classes that aren't "shadowed"
// that conflicts with those that are which are in the agent.
transitive = false
}
testCompile group: 'org.mongodb', name: 'mongo-java-driver', version: '3.4.2'
testCompile group: 'org.mongodb', name: 'mongodb-driver-async', version: '3.4.2'
@ -54,7 +58,7 @@ test {
}
if (project.hasProperty("disableShadowRelocate") && disableShadowRelocate) {
exclude 'com/datadoghq/agent/ShadowPackageRenamingTest.class'
exclude 'datadog/trace/agent/ShadowPackageRenamingTest.class'
}
}

View File

@ -1,4 +1,4 @@
package com.datadoghq.agent.integration
package datadog.trace.agent.integration
import io.opentracing.ActiveSpan
import io.opentracing.SpanContext

View File

@ -1,10 +1,10 @@
package com.datadoghq.agent.integration.httpclient
package datadog.trace.agent.integration.httpclient
import com.datadoghq.agent.integration.TestHttpServer
import com.datadoghq.trace.DDBaseSpan
import com.datadoghq.trace.DDTracer
import com.datadoghq.trace.writer.ListWriter
import dd.test.TestUtils
import datadog.opentracing.DDBaseSpan
import datadog.opentracing.DDTracer
import datadog.trace.agent.integration.TestHttpServer
import datadog.trace.agent.test.TestUtils
import datadog.trace.common.writer.ListWriter
import io.opentracing.tag.Tags
import org.apache.http.HttpResponse
import org.apache.http.client.HttpClient

View File

@ -1,8 +1,8 @@
package com.datadoghq.agent.integration.jdbc
package datadog.trace.agent.integration.jdbc
import com.datadoghq.trace.DDTracer
import com.datadoghq.trace.writer.ListWriter
import dd.test.TestUtils
import datadog.opentracing.DDTracer
import datadog.trace.agent.test.TestUtils
import datadog.trace.common.writer.ListWriter
import org.apache.derby.jdbc.EmbeddedDriver
import org.h2.Driver
import org.hsqldb.jdbc.JDBCDriver

View File

@ -1,8 +1,8 @@
package com.datadoghq.agent.integration.servlet
package datadog.trace.agent.integration.servlet
import com.datadoghq.trace.DDBaseSpan
import com.datadoghq.trace.DDTracer
import com.datadoghq.trace.writer.ListWriter
import datadog.opentracing.DDBaseSpan
import datadog.opentracing.DDTracer
import datadog.trace.common.writer.ListWriter
import io.opentracing.util.GlobalTracer
import okhttp3.Interceptor
import okhttp3.OkHttpClient
@ -15,6 +15,7 @@ import spock.lang.Unroll
import java.lang.reflect.Field
import java.util.concurrent.CountDownLatch
import java.util.concurrent.TimeUnit
class JettyServletTest extends Specification {
@ -27,7 +28,7 @@ class JettyServletTest extends Specification {
@Override
Response intercept(Interceptor.Chain chain) throws IOException {
def response = chain.proceed(chain.request())
JettyServletTest.latch.await()
JettyServletTest.latch.await(10, TimeUnit.SECONDS) // don't block forever or test never fails.
return response
}
})

View File

@ -1,4 +1,4 @@
package com.datadoghq.agent.integration.servlet
package datadog.trace.agent.integration.servlet
import groovy.servlet.AbstractHttpServlet

View File

@ -1,8 +1,8 @@
package com.datadoghq.agent.integration.servlet
package datadog.trace.agent.integration.servlet
import com.datadoghq.trace.DDTracer
import com.datadoghq.trace.writer.ListWriter
import com.google.common.io.Files
import datadog.opentracing.DDTracer
import datadog.trace.common.writer.ListWriter
import io.opentracing.util.GlobalTracer
import okhttp3.OkHttpClient
import okhttp3.Request

View File

@ -1,8 +1,8 @@
package com.datadoghq.agent;
package datadog.trace.agent;
import static dd.test.TestUtils.createJarWithClasses;
import static datadog.trace.agent.test.TestUtils.createJarWithClasses;
import com.datadoghq.trace.Trace;
import datadog.trace.api.Trace;
import java.net.URL;
import java.net.URLClassLoader;
import org.junit.Assert;
@ -13,17 +13,17 @@ public class ClassLoaderTest {
/** Assert that we can instrument classloaders which cannot resolve agent advice classes. */
@Test
public void instrumentClassLoadersWithoutAgentClasses() throws Exception {
URL[] classpath = new URL[] {createJarWithClasses(ClassToInstrument.class, Trace.class)};
URLClassLoader loader = new URLClassLoader(classpath, null);
final URL[] classpath = new URL[] {createJarWithClasses(ClassToInstrument.class, Trace.class)};
final URLClassLoader loader = new URLClassLoader(classpath, null);
try {
loader.loadClass("com.datadoghq.agent.TracingAgent");
loader.loadClass("datadog.agent.TracingAgent");
Assert.fail("loader should not see agent classes.");
} catch (ClassNotFoundException cnfe) {
} catch (final ClassNotFoundException cnfe) {
// Good. loader can't see agent classes.
}
Class<?> instrumentedClass = loader.loadClass(ClassToInstrument.class.getName());
final Class<?> instrumentedClass = loader.loadClass(ClassToInstrument.class.getName());
Assert.assertEquals(
"Class must be loaded by loader.", loader, instrumentedClass.getClassLoader());

View File

@ -1,4 +1,4 @@
package com.datadoghq.agent;
package datadog.trace.agent;
import com.google.common.collect.MapMaker;
import org.junit.Assert;
@ -8,14 +8,14 @@ public class ShadowPackageRenamingTest {
@Test
public void agentDependenciesRenamed() throws Exception {
final Class<?> ddClass =
ClassLoader.getSystemClassLoader().loadClass("com.datadoghq.agent.TracingAgent");
ClassLoader.getSystemClassLoader().loadClass("datadog.trace.agent.TracingAgent");
final String userGuava =
MapMaker.class.getProtectionDomain().getCodeSource().getLocation().getFile();
final String agentGuavaDep =
ddClass
.getClassLoader()
.loadClass("dd.deps." + MapMaker.class.getName())
.loadClass("datadog.trace.agent.deps.google.common.collect.MapMaker")
.getProtectionDomain()
.getCodeSource()
.getLocation()

View File

@ -1,13 +1,13 @@
package com.datadoghq.agent.instrumentation.annotation;
package datadog.trace.agent.instrumentation.annotation;
import static org.assertj.core.api.Assertions.assertThat;
import com.datadoghq.agent.test.SayTracedHello;
import com.datadoghq.trace.DDBaseSpan;
import com.datadoghq.trace.DDTracer;
import com.datadoghq.trace.integration.ErrorFlag;
import com.datadoghq.trace.writer.ListWriter;
import dd.test.TestUtils;
import datadog.opentracing.DDBaseSpan;
import datadog.opentracing.DDTracer;
import datadog.opentracing.decorators.ErrorFlag;
import datadog.trace.agent.test.SayTracedHello;
import datadog.trace.agent.test.TestUtils;
import datadog.trace.common.writer.ListWriter;
import io.opentracing.util.GlobalTracer;
import java.io.PrintWriter;
import java.io.StringWriter;
@ -32,8 +32,7 @@ public class TraceAnnotationsTest {
SayTracedHello.sayHello();
assertThat(writer.firstTrace().size()).isEqualTo(1);
assertThat(writer.firstTrace().get(0).getOperationName())
.isEqualTo("com.datadoghq.agent.test.SayTracedHello.sayHello");
assertThat(writer.firstTrace().get(0).getOperationName()).isEqualTo("SayTracedHello.sayHello");
assertThat(writer.firstTrace().get(0).getServiceName()).isEqualTo("test");
}
@ -50,8 +49,7 @@ public class TraceAnnotationsTest {
assertThat(writer.firstTrace().get(0).context().getParentId()).isEqualTo(0);
assertThat(writer.firstTrace().get(0).getServiceName()).isEqualTo("test2");
assertThat(writer.firstTrace().get(1).getOperationName())
.isEqualTo("com.datadoghq.agent.test.SayTracedHello.sayHello");
assertThat(writer.firstTrace().get(1).getOperationName()).isEqualTo("SayTracedHello.sayHello");
assertThat(writer.firstTrace().get(1).getServiceName()).isEqualTo("test");
assertThat(writer.firstTrace().get(1).getParentId()).isEqualTo(parentId);

View File

@ -1,4 +1,4 @@
package com.datadoghq.agent.integration;
package datadog.trace.agent.integration;
import static org.assertj.core.api.Assertions.assertThat;
@ -12,7 +12,7 @@ public class AWSInstrumentationTest {
public void test() {
// Build AWS client with TracingRequestHandler e.g.
AmazonS3ClientBuilder builder = AmazonS3ClientBuilder.standard();
final AmazonS3ClientBuilder builder = AmazonS3ClientBuilder.standard();
builder.withRegion(Regions.US_EAST_1);
builder.build();

View File

@ -1,17 +1,17 @@
package com.datadoghq.agent.integration;
package datadog.trace.agent.integration;
import static com.datadoghq.agent.integration.MongoClientInstrumentationTest.MONGO_DB_NAME;
import static com.datadoghq.agent.integration.MongoClientInstrumentationTest.MONGO_HOST;
import static com.datadoghq.agent.integration.MongoClientInstrumentationTest.MONGO_PORT;
import static datadog.trace.agent.integration.MongoClientInstrumentationTest.MONGO_DB_NAME;
import static datadog.trace.agent.integration.MongoClientInstrumentationTest.MONGO_HOST;
import static datadog.trace.agent.integration.MongoClientInstrumentationTest.MONGO_PORT;
import com.datadoghq.trace.DDBaseSpan;
import com.datadoghq.trace.DDTracer;
import com.datadoghq.trace.writer.ListWriter;
import com.mongodb.async.SingleResultCallback;
import com.mongodb.async.client.MongoClient;
import com.mongodb.async.client.MongoClients;
import com.mongodb.async.client.MongoDatabase;
import dd.test.TestUtils;
import datadog.opentracing.DDBaseSpan;
import datadog.opentracing.DDTracer;
import datadog.trace.agent.test.TestUtils;
import datadog.trace.common.writer.ListWriter;
import io.opentracing.tag.Tags;
import java.net.InetAddress;
import java.nio.ByteBuffer;

View File

@ -1,12 +1,12 @@
package com.datadoghq.agent.integration;
package datadog.trace.agent.integration;
import com.datadoghq.trace.DDBaseSpan;
import com.datadoghq.trace.DDTracer;
import com.datadoghq.trace.writer.ListWriter;
import com.mongodb.MongoClient;
import com.mongodb.client.MongoCollection;
import com.mongodb.client.MongoDatabase;
import dd.test.TestUtils;
import datadog.opentracing.DDBaseSpan;
import datadog.opentracing.DDTracer;
import datadog.trace.agent.test.TestUtils;
import datadog.trace.common.writer.ListWriter;
import de.flapdoodle.embed.mongo.MongodExecutable;
import de.flapdoodle.embed.mongo.MongodProcess;
import de.flapdoodle.embed.mongo.MongodStarter;

View File

@ -1,4 +1,4 @@
package com.datadoghq.agent.integration;
package datadog.trace.agent.integration;
import static org.assertj.core.api.Assertions.assertThat;

View File

@ -1,7 +1,7 @@
package com.datadoghq.agent.test;
package datadog.trace.agent.test;
import com.datadoghq.trace.DDTags;
import com.datadoghq.trace.Trace;
import datadog.trace.api.DDTags;
import datadog.trace.api.Trace;
import io.opentracing.tag.StringTag;
import io.opentracing.util.GlobalTracer;

View File

@ -1,9 +1,9 @@
package dd.perftest;
package datadog.perftest;
public class Worker {
/** Simulate work for the give number of milliseconds. */
public static void doWork(long workTimeMS) {
public static void doWork(final long workTimeMS) {
final long doneTimestamp = System.currentTimeMillis() + workTimeMS;
while (System.currentTimeMillis() < doneTimestamp) {
// busy-wait to simulate work

View File

@ -1,6 +1,6 @@
package dd.perftest.jetty;
package datadog.perftest.jetty;
import dd.perftest.Worker;
import datadog.perftest.Worker;
import java.io.IOException;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
@ -16,7 +16,7 @@ public class JettyPerftest {
private static final Server jettyServer = new Server(PORT);
private static final ServletContextHandler servletContext = new ServletContextHandler();
public static void main(String[] args) throws Exception {
public static void main(final String[] args) throws Exception {
servletContext.addServlet(PerfServlet.class, PATH);
jettyServer.setHandler(servletContext);
jettyServer.start();
@ -24,11 +24,12 @@ public class JettyPerftest {
Runtime.getRuntime()
.addShutdownHook(
new Thread() {
@Override
public void run() {
try {
jettyServer.stop();
jettyServer.destroy();
} catch (Exception e) {
} catch (final Exception e) {
throw new IllegalStateException(e);
}
}
@ -36,10 +37,9 @@ public class JettyPerftest {
}
@WebServlet
@SuppressWarnings("serial")
public static class PerfServlet extends HttpServlet {
@Override
protected void doGet(HttpServletRequest request, HttpServletResponse response)
protected void doGet(final HttpServletRequest request, final HttpServletResponse response)
throws ServletException, IOException {
if (request.getParameter("error") != null) {
throw new RuntimeException("some sync error");

View File

@ -5,7 +5,7 @@ plugins {
apply from: "${rootDir}/gradle/java.gradle"
dependencies {
jmh project(':dd-trace-annotations')
jmh project(':dd-trace-api')
jmh group: 'net.bytebuddy', name: 'byte-buddy-agent', version: '1.7.6'
// Add a bunch of dependencies so instrumentation is not disabled.

View File

@ -1 +1 @@
enableCustomAnnotationTracingOver: ["com.datadoghq.benchmark"]
enableCustomAnnotationTracingOver: ["datadog.benchmark"]

View File

@ -1,5 +0,0 @@
package com.datadoghq.benchmark.classes;
public interface A {
void a();
}

View File

@ -1,7 +1,7 @@
package com.datadoghq.benchmark;
package datadog.benchmark;
import com.datadoghq.benchmark.classes.TracedClass;
import com.datadoghq.benchmark.classes.UntracedClass;
import datadog.benchmark.classes.TracedClass;
import datadog.benchmark.classes.UntracedClass;
import java.lang.instrument.Instrumentation;
import java.lang.instrument.UnmodifiableClassException;
import java.lang.reflect.Field;

View File

@ -0,0 +1,5 @@
package datadog.benchmark.classes;
public interface A {
void a();
}

View File

@ -1,4 +1,4 @@
package com.datadoghq.benchmark.classes;
package datadog.benchmark.classes;
public interface B extends A {
void b();

View File

@ -1,4 +1,4 @@
package com.datadoghq.benchmark.classes;
package datadog.benchmark.classes;
public interface C extends B {
void c();

View File

@ -1,4 +1,4 @@
package com.datadoghq.benchmark.classes;
package datadog.benchmark.classes;
public interface D extends C {
void d();

View File

@ -1,4 +1,4 @@
package com.datadoghq.benchmark.classes;
package datadog.benchmark.classes;
public interface E extends D {
void e();

View File

@ -1,4 +1,4 @@
package com.datadoghq.benchmark.classes;
package datadog.benchmark.classes;
public abstract class F implements E {
public abstract void f();

View File

@ -1,6 +1,6 @@
package com.datadoghq.benchmark.classes;
package datadog.benchmark.classes;
import com.datadoghq.trace.Trace;
import datadog.trace.api.Trace;
public class TracedClass extends UntracedClass {
@Trace

View File

@ -1,4 +1,4 @@
package com.datadoghq.benchmark.classes;
package datadog.benchmark.classes;
public class UntracedClass extends F {
@Override

View File

@ -1 +1 @@
enableCustomAnnotationTracingOver: ["com.datadoghq.benchmark"]
enableCustomAnnotationTracingOver: ["datadog.benchmark"]

View File

@ -10,16 +10,16 @@ apply from: "${rootDir}/gradle/jacoco.gradle"
jacocoTestReport.dependsOn ':dd-java-agent-ittests:test'
whitelistedInstructionClasses += whitelistedBranchClasses += [
'com.datadoghq.agent.*',
'com.datadoghq.agent.integration.*',
'datadog.agent.*',
'datadog.agent.decorators.*',
'io.opentracing.contrib.*',
'dd.opentracing.contrib.*',
]
dependencies {
compile project(':dd-trace')
compile project(':dd-trace-ot')
compile project(':dd-java-agent:tooling')
compile project(':dd-trace-annotations')
compile project(':dd-trace-api')
compile deps.bytebuddy
@ -31,10 +31,10 @@ dependencies {
testCompile deps.opentracingMock
}
// add all subprojects under 'integrations' to the agent's dependencies
// add all subprojects under 'instrumentation' to the agent's dependencies
Project java_agent_project = project
subprojects { subProj ->
if (subProj.getPath().startsWith(java_agent_project.getPath() + ':integrations:')) {
if (subProj.getPath().startsWith(java_agent_project.getPath() + ':instrumentation:')) {
java_agent_project.dependencies {
compile(project(subProj.getPath()))
}
@ -46,10 +46,9 @@ jar {
manifest {
attributes(
"Main-Class": "com.datadoghq.agent.DDJavaAgentInfo",
// I don't think we want to define this since we can't really load after startup:
//"Agent-Class": "com.datadoghq.trace.agent.TracingAgent",
"Premain-Class": "com.datadoghq.agent.TracingAgent",
"Main-Class": "datadog.trace.agent.DDJavaAgentInfo",
"Agent-Class": "datadog.trace.agent.TracingAgent",
"Premain-Class": "datadog.trace.agent.TracingAgent",
"Can-Redefine-Classes": true,
"Can-Retransform-Classes": true,
)
@ -61,24 +60,26 @@ shadowJar {
mergeServiceFiles() // This triggers shadow to also apply the relocate rules below to the service files.
relocate 'org.slf4j', 'dd.slf4j' // Prevents conflict with other SLF4J instances. Important for premain.
relocate 'org.slf4j', 'datadog.slf4j' // Prevents conflict with other SLF4J instances. Important for premain.
if (!project.hasProperty("disableShadowRelocate") || !disableShadowRelocate) {
// These need to be relocated to prevent conflicts in case the regular dd-trace is already on the classpath.
relocate('com.datadoghq.trace', 'com.datadoghq.agent.tracer') {
relocate('datadog.trace.api', 'datadog.trace.agent.api') {
// We want to ensure to not miss if a user is using the annotation.
exclude 'com.datadoghq.trace.Trace'
exclude 'datadog.trace.api.Trace'
}
relocate 'datadog.trace.common', 'datadog.trace.agent.common'
relocate 'datadog.opentracing', 'datadog.trace.agent.ot'
relocate 'io.opentracing.contrib', 'dd.opentracing.contrib'
relocate 'io.opentracing.contrib', 'datadog.trace.agent.opentracing.contrib'
relocate 'org.yaml', 'dd.deps.org.yaml'
relocate 'org.msgpack', 'dd.deps.org.msgpack'
relocate 'com.fasterxml', 'dd.deps.com.fasterxml'
relocate 'org.yaml', 'datadog.trace.agent.deps.yaml'
relocate 'org.msgpack', 'datadog.trace.agent.deps.msgpack'
relocate 'com.fasterxml', 'datadog.trace.agent.deps.fasterxml'
relocate 'net.bytebuddy', 'dd.deps.net.bytebuddy'
relocate('com.google', 'dd.deps.com.google') {
relocate 'net.bytebuddy', 'datadog.trace.agent.deps.bytebuddy'
relocate('com.google', 'datadog.trace.agent.deps.google') {
// This is used in the Cassandra Cluster.connectAsync signature so we can't relocate it. :fingers_crossed:
exclude 'com.google.common.util.concurrent.ListenableFuture'
}

View File

@ -27,7 +27,7 @@ apply from: "${rootDir}/gradle/java.gradle"
dependencies {
compileOnly group: 'org.apache.httpcomponents', name: 'httpclient', version: '4.3'
compile project(':dd-trace')
compile project(':dd-trace-ot')
compile project(':dd-java-agent:tooling')
compile deps.bytebuddy

View File

@ -1,12 +1,13 @@
package dd.inst.apachehttpclient;
package datadog.trace.instrumentation.apachehttpclient;
import static dd.trace.ClassLoaderMatcher.classLoaderHasClasses;
import static net.bytebuddy.matcher.ElementMatchers.*;
import static datadog.trace.agent.tooling.ClassLoaderMatcher.classLoaderHasClasses;
import static net.bytebuddy.matcher.ElementMatchers.isMethod;
import static net.bytebuddy.matcher.ElementMatchers.named;
import com.google.auto.service.AutoService;
import dd.trace.DDAdvice;
import dd.trace.HelperInjector;
import dd.trace.Instrumenter;
import datadog.trace.agent.tooling.DDAdvice;
import datadog.trace.agent.tooling.HelperInjector;
import datadog.trace.agent.tooling.Instrumenter;
import io.opentracing.util.GlobalTracer;
import net.bytebuddy.agent.builder.AgentBuilder;
import net.bytebuddy.asm.Advice;
@ -17,7 +18,7 @@ import org.apache.http.impl.execchain.ClientExecChain;
public class ApacheHttpClientInstrumentation implements Instrumenter {
@Override
public AgentBuilder instrument(AgentBuilder agentBuilder) {
public AgentBuilder instrument(final AgentBuilder agentBuilder) {
return agentBuilder
.type(
named("org.apache.http.impl.client.HttpClientBuilder"),
@ -31,7 +32,9 @@ public class ApacheHttpClientInstrumentation implements Instrumenter {
"org.apache.http.client.protocol.HttpClientContext",
"org.apache.http.conn.routing.HttpRoute",
"org.apache.http.impl.execchain.ClientExecChain"))
.transform(new HelperInjector("dd.inst.apachehttpclient.DDTracingClientExec"))
.transform(
new HelperInjector(
"datadog.trace.instrumentation.apachehttpclient.DDTracingClientExec"))
.transform(
DDAdvice.create()
.advice(

View File

@ -1,4 +1,4 @@
package dd.inst.apachehttpclient;
package datadog.trace.instrumentation.apachehttpclient;
import io.opentracing.ActiveSpan;
import io.opentracing.Tracer;

View File

@ -21,7 +21,7 @@ dependencies {
transitive = false
}
compile project(':dd-trace')
compile project(':dd-trace-ot')
compile project(':dd-java-agent:tooling')
compile deps.bytebuddy

View File

@ -1,6 +1,6 @@
package dd.inst.aws;
package datadog.trace.instrumentation.aws;
import static dd.trace.ClassLoaderMatcher.classLoaderHasClasses;
import static datadog.trace.agent.tooling.ClassLoaderMatcher.classLoaderHasClasses;
import static net.bytebuddy.matcher.ElementMatchers.isPublic;
import static net.bytebuddy.matcher.ElementMatchers.named;
import static net.bytebuddy.matcher.ElementMatchers.takesArguments;
@ -8,9 +8,9 @@ import static net.bytebuddy.matcher.ElementMatchers.takesArguments;
import com.amazonaws.client.builder.AwsClientBuilder;
import com.amazonaws.handlers.RequestHandler2;
import com.google.auto.service.AutoService;
import dd.trace.DDAdvice;
import dd.trace.HelperInjector;
import dd.trace.Instrumenter;
import datadog.trace.agent.tooling.DDAdvice;
import datadog.trace.agent.tooling.HelperInjector;
import datadog.trace.agent.tooling.Instrumenter;
import io.opentracing.contrib.aws.TracingRequestHandler;
import io.opentracing.util.GlobalTracer;
import java.util.Arrays;

View File

@ -37,7 +37,7 @@ dependencies {
transitive = false
}
compile project(':dd-trace')
compile project(':dd-trace-ot')
compile project(':dd-java-agent:tooling')
compile deps.bytebuddy

View File

@ -1,13 +1,16 @@
package dd.inst.datastax.cassandra;
package datadog.trace.instrumentation.datastax.cassandra;
import static dd.trace.ClassLoaderMatcher.classLoaderHasClasses;
import static net.bytebuddy.matcher.ElementMatchers.*;
import static datadog.trace.agent.tooling.ClassLoaderMatcher.classLoaderHasClasses;
import static net.bytebuddy.matcher.ElementMatchers.isMethod;
import static net.bytebuddy.matcher.ElementMatchers.isPrivate;
import static net.bytebuddy.matcher.ElementMatchers.named;
import static net.bytebuddy.matcher.ElementMatchers.takesArguments;
import com.datastax.driver.core.Session;
import com.google.auto.service.AutoService;
import dd.trace.DDAdvice;
import dd.trace.HelperInjector;
import dd.trace.Instrumenter;
import datadog.trace.agent.tooling.DDAdvice;
import datadog.trace.agent.tooling.HelperInjector;
import datadog.trace.agent.tooling.Instrumenter;
import io.opentracing.Tracer;
import io.opentracing.util.GlobalTracer;
import java.lang.reflect.Constructor;
@ -17,7 +20,7 @@ import net.bytebuddy.asm.Advice;
@AutoService(Instrumenter.class)
public class CassandraClientInstrumentation implements Instrumenter {
@Override
public AgentBuilder instrument(AgentBuilder agentBuilder) {
public AgentBuilder instrument(final AgentBuilder agentBuilder) {
return agentBuilder
.type(
named("com.datastax.driver.core.Cluster$Manager"),
@ -68,8 +71,8 @@ public class CassandraClientInstrumentation implements Instrumenter {
return;
}
Class<?> clazz = Class.forName("io.opentracing.contrib.cassandra.TracingSession");
Constructor<?> constructor = clazz.getDeclaredConstructor(Session.class, Tracer.class);
final Class<?> clazz = Class.forName("io.opentracing.contrib.cassandra.TracingSession");
final Constructor<?> constructor = clazz.getDeclaredConstructor(Session.class, Tracer.class);
constructor.setAccessible(true);
session = (Session) constructor.newInstance(session, GlobalTracer.get());
}

View File

@ -1,8 +1,8 @@
import com.datadoghq.trace.DDBaseSpan
import com.datadoghq.trace.DDTracer
import com.datastax.driver.core.Cluster
import com.datastax.driver.core.Session
import dd.test.AgentTestRunner
import datadog.opentracing.DDBaseSpan
import datadog.opentracing.DDTracer
import datadog.trace.agent.test.AgentTestRunner
import io.opentracing.tag.Tags
import org.cassandraunit.utils.EmbeddedCassandraServerHelper

View File

@ -1,7 +1,7 @@
apply from: "${rootDir}/gradle/java.gradle"
dependencies {
compile project(':dd-trace')
compile project(':dd-trace-ot')
compile project(':dd-java-agent:tooling')
compile deps.bytebuddy

View File

@ -1,4 +1,4 @@
package dd.trace.instrumentation.jdbc;
package datadog.trace.instrumentation.jdbc;
import static net.bytebuddy.matcher.ElementMatchers.hasSuperType;
import static net.bytebuddy.matcher.ElementMatchers.isConstructor;
@ -10,8 +10,8 @@ import static net.bytebuddy.matcher.ElementMatchers.returns;
import static net.bytebuddy.matcher.ElementMatchers.takesArgument;
import com.google.auto.service.AutoService;
import dd.trace.DDAdvice;
import dd.trace.Instrumenter;
import datadog.trace.agent.tooling.DDAdvice;
import datadog.trace.agent.tooling.Instrumenter;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.util.Map;

View File

@ -1,4 +1,4 @@
package dd.trace.instrumentation.jdbc;
package datadog.trace.instrumentation.jdbc;
import static net.bytebuddy.matcher.ElementMatchers.hasSuperType;
import static net.bytebuddy.matcher.ElementMatchers.isInterface;
@ -8,10 +8,10 @@ import static net.bytebuddy.matcher.ElementMatchers.named;
import static net.bytebuddy.matcher.ElementMatchers.not;
import static net.bytebuddy.matcher.ElementMatchers.takesArguments;
import com.datadoghq.trace.DDTags;
import com.google.auto.service.AutoService;
import dd.trace.DDAdvice;
import dd.trace.Instrumenter;
import datadog.trace.agent.tooling.DDAdvice;
import datadog.trace.agent.tooling.Instrumenter;
import datadog.trace.api.DDTags;
import io.opentracing.ActiveSpan;
import io.opentracing.NoopActiveSpanSource;
import io.opentracing.tag.Tags;

View File

@ -1,4 +1,4 @@
package dd.trace.instrumentation.jdbc;
package datadog.trace.instrumentation.jdbc;
import static net.bytebuddy.matcher.ElementMatchers.hasSuperType;
import static net.bytebuddy.matcher.ElementMatchers.isInterface;
@ -8,10 +8,10 @@ import static net.bytebuddy.matcher.ElementMatchers.named;
import static net.bytebuddy.matcher.ElementMatchers.not;
import static net.bytebuddy.matcher.ElementMatchers.takesArgument;
import com.datadoghq.trace.DDTags;
import com.google.auto.service.AutoService;
import dd.trace.DDAdvice;
import dd.trace.Instrumenter;
import datadog.trace.agent.tooling.DDAdvice;
import datadog.trace.agent.tooling.Instrumenter;
import datadog.trace.api.DDTags;
import io.opentracing.ActiveSpan;
import io.opentracing.NoopActiveSpanSource;
import io.opentracing.tag.Tags;

View File

@ -20,7 +20,7 @@ dependencies {
compile deps.opentracing
compile deps.autoservice
compile project(':dd-trace')
compile project(':dd-trace-ot')
compile project(':dd-java-agent:tooling')
testCompile project(':dd-java-agent:testing')

View File

@ -1,4 +1,4 @@
package dd.inst.jms.util;
package datadog.trace.instrumentation.jms.util;
import javax.jms.Destination;
import javax.jms.Message;

View File

@ -1,4 +1,4 @@
package dd.inst.jms.util;
package datadog.trace.instrumentation.jms.util;
import io.opentracing.propagation.TextMap;
import java.util.Enumeration;

View File

@ -1,7 +1,7 @@
package dd.inst.jms1;
package datadog.trace.instrumentation.jms1;
import static dd.inst.jms.util.JmsUtil.toResourceName;
import static dd.trace.ClassLoaderMatcher.classLoaderHasClasses;
import static datadog.trace.agent.tooling.ClassLoaderMatcher.classLoaderHasClasses;
import static datadog.trace.instrumentation.jms.util.JmsUtil.toResourceName;
import static net.bytebuddy.matcher.ElementMatchers.hasSuperType;
import static net.bytebuddy.matcher.ElementMatchers.isInterface;
import static net.bytebuddy.matcher.ElementMatchers.isPublic;
@ -9,12 +9,12 @@ import static net.bytebuddy.matcher.ElementMatchers.named;
import static net.bytebuddy.matcher.ElementMatchers.not;
import static net.bytebuddy.matcher.ElementMatchers.takesArguments;
import com.datadoghq.trace.DDTags;
import com.google.auto.service.AutoService;
import dd.inst.jms.util.MessagePropertyTextMap;
import dd.trace.DDAdvice;
import dd.trace.HelperInjector;
import dd.trace.Instrumenter;
import datadog.trace.agent.tooling.DDAdvice;
import datadog.trace.agent.tooling.HelperInjector;
import datadog.trace.agent.tooling.Instrumenter;
import datadog.trace.api.DDTags;
import datadog.trace.instrumentation.jms.util.MessagePropertyTextMap;
import io.opentracing.ActiveSpan;
import io.opentracing.SpanContext;
import io.opentracing.propagation.Format;
@ -30,7 +30,9 @@ import net.bytebuddy.asm.Advice;
@AutoService(Instrumenter.class)
public final class JMS1MessageConsumerInstrumentation implements Instrumenter {
public static final HelperInjector JMS1_HELPER_INJECTOR =
new HelperInjector("dd.inst.jms.util.JmsUtil", "dd.inst.jms.util.MessagePropertyTextMap");
new HelperInjector(
"datadog.trace.instrumentation.jms.util.JmsUtil",
"datadog.trace.instrumentation.jms.util.MessagePropertyTextMap");
@Override
public AgentBuilder instrument(final AgentBuilder agentBuilder) {

View File

@ -1,7 +1,7 @@
package dd.inst.jms1;
package datadog.trace.instrumentation.jms1;
import static dd.inst.jms.util.JmsUtil.toResourceName;
import static dd.trace.ClassLoaderMatcher.classLoaderHasClasses;
import static datadog.trace.agent.tooling.ClassLoaderMatcher.classLoaderHasClasses;
import static datadog.trace.instrumentation.jms.util.JmsUtil.toResourceName;
import static net.bytebuddy.matcher.ElementMatchers.hasSuperType;
import static net.bytebuddy.matcher.ElementMatchers.isInterface;
import static net.bytebuddy.matcher.ElementMatchers.isPublic;
@ -9,11 +9,11 @@ import static net.bytebuddy.matcher.ElementMatchers.named;
import static net.bytebuddy.matcher.ElementMatchers.not;
import static net.bytebuddy.matcher.ElementMatchers.takesArgument;
import com.datadoghq.trace.DDTags;
import com.google.auto.service.AutoService;
import dd.inst.jms.util.MessagePropertyTextMap;
import dd.trace.DDAdvice;
import dd.trace.Instrumenter;
import datadog.trace.agent.tooling.DDAdvice;
import datadog.trace.agent.tooling.Instrumenter;
import datadog.trace.api.DDTags;
import datadog.trace.instrumentation.jms.util.MessagePropertyTextMap;
import io.opentracing.ActiveSpan;
import io.opentracing.SpanContext;
import io.opentracing.propagation.Format;

View File

@ -1,7 +1,7 @@
package dd.inst.jms1;
package datadog.trace.instrumentation.jms1;
import static dd.inst.jms.util.JmsUtil.toResourceName;
import static dd.trace.ClassLoaderMatcher.classLoaderHasClasses;
import static datadog.trace.agent.tooling.ClassLoaderMatcher.classLoaderHasClasses;
import static datadog.trace.instrumentation.jms.util.JmsUtil.toResourceName;
import static net.bytebuddy.matcher.ElementMatchers.hasSuperType;
import static net.bytebuddy.matcher.ElementMatchers.isInterface;
import static net.bytebuddy.matcher.ElementMatchers.isPublic;
@ -9,11 +9,11 @@ import static net.bytebuddy.matcher.ElementMatchers.named;
import static net.bytebuddy.matcher.ElementMatchers.not;
import static net.bytebuddy.matcher.ElementMatchers.takesArgument;
import com.datadoghq.trace.DDTags;
import com.google.auto.service.AutoService;
import dd.inst.jms.util.MessagePropertyTextMap;
import dd.trace.DDAdvice;
import dd.trace.Instrumenter;
import datadog.trace.agent.tooling.DDAdvice;
import datadog.trace.agent.tooling.Instrumenter;
import datadog.trace.api.DDTags;
import datadog.trace.instrumentation.jms.util.MessagePropertyTextMap;
import io.opentracing.ActiveSpan;
import io.opentracing.propagation.Format;
import io.opentracing.tag.Tags;

View File

@ -1,4 +1,4 @@
import dd.test.AgentTestRunner
import datadog.trace.agent.test.AgentTestRunner
import org.apache.activemq.ActiveMQConnectionFactory
import org.apache.activemq.ActiveMQMessageConsumer
import org.apache.activemq.ActiveMQMessageProducer

View File

@ -15,7 +15,7 @@ apply from: "${rootDir}/gradle/java.gradle"
dependencies {
// use jms1 helpers
compile(project(':dd-java-agent:integrations:jms-1')) {
compile(project(':dd-java-agent:instrumentation:jms-1')) {
transitive = false
}
compileOnly group: 'javax.jms', name: 'javax.jms-api', version: '2.0.1'
@ -24,7 +24,7 @@ dependencies {
compile deps.opentracing
compile deps.autoservice
compile project(':dd-trace')
compile project(':dd-trace-ot')
compile project(':dd-java-agent:tooling')
testCompile project(':dd-java-agent:testing')

View File

@ -1,7 +1,7 @@
package dd.inst.jms2;
package datadog.trace.instrumentation.jms2;
import static dd.inst.jms.util.JmsUtil.toResourceName;
import static dd.trace.ClassLoaderMatcher.classLoaderHasClasses;
import static datadog.trace.agent.tooling.ClassLoaderMatcher.classLoaderHasClasses;
import static datadog.trace.instrumentation.jms.util.JmsUtil.toResourceName;
import static net.bytebuddy.matcher.ElementMatchers.hasSuperType;
import static net.bytebuddy.matcher.ElementMatchers.isInterface;
import static net.bytebuddy.matcher.ElementMatchers.isPublic;
@ -9,12 +9,12 @@ import static net.bytebuddy.matcher.ElementMatchers.named;
import static net.bytebuddy.matcher.ElementMatchers.not;
import static net.bytebuddy.matcher.ElementMatchers.takesArguments;
import com.datadoghq.trace.DDTags;
import com.google.auto.service.AutoService;
import dd.inst.jms.util.MessagePropertyTextMap;
import dd.trace.DDAdvice;
import dd.trace.HelperInjector;
import dd.trace.Instrumenter;
import datadog.trace.agent.tooling.DDAdvice;
import datadog.trace.agent.tooling.HelperInjector;
import datadog.trace.agent.tooling.Instrumenter;
import datadog.trace.api.DDTags;
import datadog.trace.instrumentation.jms.util.MessagePropertyTextMap;
import io.opentracing.ActiveSpan;
import io.opentracing.SpanContext;
import io.opentracing.propagation.Format;
@ -30,7 +30,9 @@ import net.bytebuddy.asm.Advice;
@AutoService(Instrumenter.class)
public final class JMS2MessageConsumerInstrumentation implements Instrumenter {
public static final HelperInjector JMS2_HELPER_INJECTOR =
new HelperInjector("dd.inst.jms.util.JmsUtil", "dd.inst.jms.util.MessagePropertyTextMap");
new HelperInjector(
"datadog.trace.instrumentation.jms.util.JmsUtil",
"datadog.trace.instrumentation.jms.util.MessagePropertyTextMap");
@Override
public AgentBuilder instrument(final AgentBuilder agentBuilder) {

View File

@ -1,7 +1,7 @@
package dd.inst.jms2;
package datadog.trace.instrumentation.jms2;
import static dd.inst.jms.util.JmsUtil.toResourceName;
import static dd.trace.ClassLoaderMatcher.classLoaderHasClasses;
import static datadog.trace.agent.tooling.ClassLoaderMatcher.classLoaderHasClasses;
import static datadog.trace.instrumentation.jms.util.JmsUtil.toResourceName;
import static net.bytebuddy.matcher.ElementMatchers.hasSuperType;
import static net.bytebuddy.matcher.ElementMatchers.isInterface;
import static net.bytebuddy.matcher.ElementMatchers.isPublic;
@ -9,11 +9,11 @@ import static net.bytebuddy.matcher.ElementMatchers.named;
import static net.bytebuddy.matcher.ElementMatchers.not;
import static net.bytebuddy.matcher.ElementMatchers.takesArgument;
import com.datadoghq.trace.DDTags;
import com.google.auto.service.AutoService;
import dd.inst.jms.util.MessagePropertyTextMap;
import dd.trace.DDAdvice;
import dd.trace.Instrumenter;
import datadog.trace.agent.tooling.DDAdvice;
import datadog.trace.agent.tooling.Instrumenter;
import datadog.trace.api.DDTags;
import datadog.trace.instrumentation.jms.util.MessagePropertyTextMap;
import io.opentracing.ActiveSpan;
import io.opentracing.SpanContext;
import io.opentracing.propagation.Format;

View File

@ -1,7 +1,7 @@
package dd.inst.jms2;
package datadog.trace.instrumentation.jms2;
import static dd.inst.jms.util.JmsUtil.toResourceName;
import static dd.trace.ClassLoaderMatcher.classLoaderHasClasses;
import static datadog.trace.agent.tooling.ClassLoaderMatcher.classLoaderHasClasses;
import static datadog.trace.instrumentation.jms.util.JmsUtil.toResourceName;
import static net.bytebuddy.matcher.ElementMatchers.hasSuperType;
import static net.bytebuddy.matcher.ElementMatchers.isInterface;
import static net.bytebuddy.matcher.ElementMatchers.isPublic;
@ -9,11 +9,11 @@ import static net.bytebuddy.matcher.ElementMatchers.named;
import static net.bytebuddy.matcher.ElementMatchers.not;
import static net.bytebuddy.matcher.ElementMatchers.takesArgument;
import com.datadoghq.trace.DDTags;
import com.google.auto.service.AutoService;
import dd.inst.jms.util.MessagePropertyTextMap;
import dd.trace.DDAdvice;
import dd.trace.Instrumenter;
import datadog.trace.agent.tooling.DDAdvice;
import datadog.trace.agent.tooling.Instrumenter;
import datadog.trace.api.DDTags;
import datadog.trace.instrumentation.jms.util.MessagePropertyTextMap;
import io.opentracing.ActiveSpan;
import io.opentracing.propagation.Format;
import io.opentracing.tag.Tags;

View File

@ -1,5 +1,5 @@
import dd.test.AgentTestRunner
import com.google.common.io.Files
import datadog.trace.agent.test.AgentTestRunner
import org.hornetq.api.core.TransportConfiguration
import org.hornetq.api.core.client.HornetQClient
import org.hornetq.api.jms.HornetQJMSClient

View File

@ -15,7 +15,7 @@ apply from: "${rootDir}/gradle/java.gradle"
dependencies {
compileOnly group: 'org.mongodb', name: 'mongo-java-driver', version: '3.4.2'
compile project(':dd-trace')
compile project(':dd-trace-ot')
compile project(':dd-java-agent:tooling')
compile deps.bytebuddy

View File

@ -1,10 +1,10 @@
package dd.inst.mongo;
package datadog.trace.instrumentation.mongo;
import com.datadoghq.trace.DDTags;
import com.mongodb.event.CommandFailedEvent;
import com.mongodb.event.CommandListener;
import com.mongodb.event.CommandStartedEvent;
import com.mongodb.event.CommandSucceededEvent;
import datadog.trace.api.DDTags;
import io.opentracing.Span;
import io.opentracing.Tracer;
import io.opentracing.tag.Tags;

View File

@ -1,4 +1,4 @@
package dd.inst.mongo;
package datadog.trace.instrumentation.mongo;
import static net.bytebuddy.matcher.ElementMatchers.declaresMethod;
import static net.bytebuddy.matcher.ElementMatchers.isMethod;
@ -8,9 +8,9 @@ import static net.bytebuddy.matcher.ElementMatchers.takesArguments;
import com.google.auto.service.AutoService;
import com.mongodb.MongoClientOptions;
import dd.trace.DDAdvice;
import dd.trace.HelperInjector;
import dd.trace.Instrumenter;
import datadog.trace.agent.tooling.DDAdvice;
import datadog.trace.agent.tooling.HelperInjector;
import datadog.trace.agent.tooling.Instrumenter;
import io.opentracing.util.GlobalTracer;
import java.lang.reflect.Modifier;
import java.util.Collections;
@ -21,7 +21,7 @@ import net.bytebuddy.description.type.TypeDescription;
@AutoService(Instrumenter.class)
public final class MongoClientInstrumentation implements Instrumenter {
public static final HelperInjector MONGO_HELPER_INJECTOR =
new HelperInjector("dd.inst.mongo.DDTracingCommandListener");
new HelperInjector("datadog.trace.instrumentation.mongo.DDTracingCommandListener");
@Override
public AgentBuilder instrument(final AgentBuilder agentBuilder) {

View File

@ -1,14 +1,14 @@
package dd.inst.mongo;
package datadog.trace.instrumentation.mongo;
import static org.assertj.core.api.Java6Assertions.assertThat;
import com.datadoghq.trace.DDSpan;
import com.datadoghq.trace.DDTracer;
import com.mongodb.ServerAddress;
import com.mongodb.connection.ClusterId;
import com.mongodb.connection.ConnectionDescription;
import com.mongodb.connection.ServerId;
import com.mongodb.event.CommandStartedEvent;
import datadog.opentracing.DDSpan;
import datadog.opentracing.DDTracer;
import io.opentracing.tag.Tags;
import java.util.Arrays;
import java.util.List;
@ -39,14 +39,14 @@ public class MongoClientInstrumentationTest {
@Test
public void queryScrubbing() {
// all "secret" strings should be scrubbed out of these queries
BsonDocument query1 = new BsonDocument("find", new BsonString("show"));
final BsonDocument query1 = new BsonDocument("find", new BsonString("show"));
query1.put("stuff", new BsonString("secret"));
BsonDocument query2 = new BsonDocument("insert", new BsonString("table"));
BsonDocument query2_1 = new BsonDocument("count", new BsonString("show"));
final BsonDocument query2 = new BsonDocument("insert", new BsonString("table"));
final BsonDocument query2_1 = new BsonDocument("count", new BsonString("show"));
query2_1.put("id", new BsonString("secret"));
query2.put("docs", new BsonArray(Arrays.asList(new BsonString("secret"), query2_1)));
List<BsonDocument> queries = Arrays.asList(query1, query2);
for (BsonDocument query : queries) {
final List<BsonDocument> queries = Arrays.asList(query1, query2);
for (final BsonDocument query : queries) {
final CommandStartedEvent cmd =
new CommandStartedEvent(1, makeConnection(), "databasename", "query", query);

View File

@ -14,12 +14,12 @@ apply from: "${rootDir}/gradle/java.gradle"
dependencies {
// use mongo listener
compile(project(':dd-java-agent:integrations:mongo-3.1')) {
compile(project(':dd-java-agent:instrumentation:mongo-3.1')) {
transitive = false
}
compileOnly group: 'org.mongodb', name: 'mongodb-driver-async', version: '3.4.2'
compile project(':dd-trace')
compile project(':dd-trace-ot')
compile project(':dd-java-agent:tooling')
compile deps.bytebuddy

View File

@ -1,4 +1,4 @@
package dd.inst.mongo;
package datadog.trace.instrumentation.mongo;
import static net.bytebuddy.matcher.ElementMatchers.declaresMethod;
import static net.bytebuddy.matcher.ElementMatchers.isMethod;
@ -8,8 +8,8 @@ import static net.bytebuddy.matcher.ElementMatchers.takesArguments;
import com.google.auto.service.AutoService;
import com.mongodb.async.client.MongoClientSettings;
import dd.trace.DDAdvice;
import dd.trace.Instrumenter;
import datadog.trace.agent.tooling.DDAdvice;
import datadog.trace.agent.tooling.Instrumenter;
import io.opentracing.util.GlobalTracer;
import java.lang.reflect.Modifier;
import java.util.Collections;

View File

@ -20,7 +20,7 @@ dependencies {
transitive = false
}
compile project(':dd-trace')
compile project(':dd-trace-ot')
compile project(':dd-java-agent:tooling')
compile deps.bytebuddy

View File

@ -1,15 +1,15 @@
package dd.inst.okhttp3;
package datadog.trace.instrumentation.okhttp3;
import static dd.trace.ClassLoaderMatcher.classLoaderHasClasses;
import static datadog.trace.agent.tooling.ClassLoaderMatcher.classLoaderHasClasses;
import static io.opentracing.contrib.okhttp3.OkHttpClientSpanDecorator.STANDARD_TAGS;
import static net.bytebuddy.matcher.ElementMatchers.isConstructor;
import static net.bytebuddy.matcher.ElementMatchers.named;
import static net.bytebuddy.matcher.ElementMatchers.takesArgument;
import com.google.auto.service.AutoService;
import dd.trace.DDAdvice;
import dd.trace.HelperInjector;
import dd.trace.Instrumenter;
import datadog.trace.agent.tooling.DDAdvice;
import datadog.trace.agent.tooling.HelperInjector;
import datadog.trace.agent.tooling.Instrumenter;
import io.opentracing.contrib.okhttp3.TracingInterceptor;
import io.opentracing.util.GlobalTracer;
import java.util.Collections;

View File

@ -1,5 +1,5 @@
import com.datadoghq.trace.DDTags
import dd.test.AgentTestRunner
import datadog.trace.api.DDTags
import datadog.trace.agent.test.AgentTestRunner
import io.opentracing.tag.Tags
import okhttp3.OkHttpClient
import okhttp3.Request

View File

@ -18,7 +18,7 @@ dependencies {
transitive = false
}
compile project(':dd-trace')
compile project(':dd-trace-ot')
compile project(':dd-java-agent:tooling')
compile deps.bytebuddy

View File

@ -1,6 +1,6 @@
package dd.inst.servlet2;
package datadog.trace.instrumentation.servlet2;
import static dd.trace.ClassLoaderMatcher.classLoaderHasClasses;
import static datadog.trace.agent.tooling.ClassLoaderMatcher.classLoaderHasClasses;
import static net.bytebuddy.matcher.ElementMatchers.hasSuperType;
import static net.bytebuddy.matcher.ElementMatchers.isInterface;
import static net.bytebuddy.matcher.ElementMatchers.isPublic;
@ -9,9 +9,9 @@ import static net.bytebuddy.matcher.ElementMatchers.not;
import static net.bytebuddy.matcher.ElementMatchers.takesArgument;
import com.google.auto.service.AutoService;
import dd.trace.DDAdvice;
import dd.trace.HelperInjector;
import dd.trace.Instrumenter;
import datadog.trace.agent.tooling.DDAdvice;
import datadog.trace.agent.tooling.HelperInjector;
import datadog.trace.agent.tooling.Instrumenter;
import io.opentracing.ActiveSpan;
import io.opentracing.SpanContext;
import io.opentracing.contrib.web.servlet.filter.HttpServletRequestExtractAdapter;

View File

@ -1,6 +1,6 @@
package dd.inst.servlet2;
package datadog.trace.instrumentation.servlet2;
import static dd.trace.ClassLoaderMatcher.classLoaderHasClasses;
import static datadog.trace.agent.tooling.ClassLoaderMatcher.classLoaderHasClasses;
import static net.bytebuddy.matcher.ElementMatchers.hasSuperType;
import static net.bytebuddy.matcher.ElementMatchers.isInterface;
import static net.bytebuddy.matcher.ElementMatchers.isProtected;
@ -9,9 +9,9 @@ import static net.bytebuddy.matcher.ElementMatchers.not;
import static net.bytebuddy.matcher.ElementMatchers.takesArgument;
import com.google.auto.service.AutoService;
import dd.trace.DDAdvice;
import dd.trace.HelperInjector;
import dd.trace.Instrumenter;
import datadog.trace.agent.tooling.DDAdvice;
import datadog.trace.agent.tooling.HelperInjector;
import datadog.trace.agent.tooling.Instrumenter;
import io.opentracing.ActiveSpan;
import io.opentracing.SpanContext;
import io.opentracing.contrib.web.servlet.filter.HttpServletRequestExtractAdapter;

View File

@ -19,7 +19,7 @@ dependencies {
transitive = false
}
compile project(':dd-trace')
compile project(':dd-trace-ot')
compile project(':dd-java-agent:tooling')
compile deps.bytebuddy

View File

@ -1,6 +1,6 @@
package dd.inst.servlet3;
package datadog.trace.instrumentation.servlet3;
import static dd.trace.ClassLoaderMatcher.classLoaderHasClasses;
import static datadog.trace.agent.tooling.ClassLoaderMatcher.classLoaderHasClasses;
import static net.bytebuddy.matcher.ElementMatchers.hasSuperType;
import static net.bytebuddy.matcher.ElementMatchers.isInterface;
import static net.bytebuddy.matcher.ElementMatchers.isPublic;
@ -9,9 +9,9 @@ import static net.bytebuddy.matcher.ElementMatchers.not;
import static net.bytebuddy.matcher.ElementMatchers.takesArgument;
import com.google.auto.service.AutoService;
import dd.trace.DDAdvice;
import dd.trace.HelperInjector;
import dd.trace.Instrumenter;
import datadog.trace.agent.tooling.DDAdvice;
import datadog.trace.agent.tooling.HelperInjector;
import datadog.trace.agent.tooling.Instrumenter;
import io.opentracing.ActiveSpan;
import io.opentracing.SpanContext;
import io.opentracing.contrib.web.servlet.filter.HttpServletRequestExtractAdapter;

View File

@ -1,6 +1,6 @@
package dd.inst.servlet3;
package datadog.trace.instrumentation.servlet3;
import static dd.trace.ClassLoaderMatcher.classLoaderHasClasses;
import static datadog.trace.agent.tooling.ClassLoaderMatcher.classLoaderHasClasses;
import static net.bytebuddy.matcher.ElementMatchers.hasSuperType;
import static net.bytebuddy.matcher.ElementMatchers.isInterface;
import static net.bytebuddy.matcher.ElementMatchers.isProtected;
@ -9,9 +9,9 @@ import static net.bytebuddy.matcher.ElementMatchers.not;
import static net.bytebuddy.matcher.ElementMatchers.takesArgument;
import com.google.auto.service.AutoService;
import dd.trace.DDAdvice;
import dd.trace.HelperInjector;
import dd.trace.Instrumenter;
import datadog.trace.agent.tooling.DDAdvice;
import datadog.trace.agent.tooling.HelperInjector;
import datadog.trace.agent.tooling.Instrumenter;
import io.opentracing.ActiveSpan;
import io.opentracing.SpanContext;
import io.opentracing.contrib.web.servlet.filter.HttpServletRequestExtractAdapter;

View File

@ -19,7 +19,7 @@ dependencies {
// compileOnly group: 'org.springframework', name: 'spring-webmvc', version: '2.5.6'
// compileOnly group: 'javax.servlet', name: 'servlet-api', version: '2.4'
compile project(':dd-trace')
compile project(':dd-trace-ot')
compile project(':dd-java-agent:tooling')
compile deps.bytebuddy

View File

@ -1,6 +1,6 @@
package dd.inst.springweb;
package datadog.trace.instrumentation.springweb;
import static dd.trace.ClassLoaderMatcher.classLoaderHasClassWithField;
import static datadog.trace.agent.tooling.ClassLoaderMatcher.classLoaderHasClassWithField;
import static net.bytebuddy.matcher.ElementMatchers.hasSuperType;
import static net.bytebuddy.matcher.ElementMatchers.isInterface;
import static net.bytebuddy.matcher.ElementMatchers.isMethod;
@ -10,10 +10,10 @@ import static net.bytebuddy.matcher.ElementMatchers.named;
import static net.bytebuddy.matcher.ElementMatchers.not;
import static net.bytebuddy.matcher.ElementMatchers.takesArgument;
import com.datadoghq.trace.DDTags;
import com.google.auto.service.AutoService;
import dd.trace.DDAdvice;
import dd.trace.Instrumenter;
import datadog.trace.agent.tooling.DDAdvice;
import datadog.trace.agent.tooling.Instrumenter;
import datadog.trace.api.DDTags;
import io.opentracing.ActiveSpan;
import io.opentracing.util.GlobalTracer;
import java.sql.PreparedStatement;

View File

@ -1,13 +1,13 @@
package dd.trace.instrumentation.trace_annotation;
package datadog.trace.instrumentation.trace_annotation;
import static net.bytebuddy.matcher.ElementMatchers.declaresMethod;
import static net.bytebuddy.matcher.ElementMatchers.hasSuperType;
import static net.bytebuddy.matcher.ElementMatchers.isAnnotatedWith;
import com.datadoghq.trace.Trace;
import com.google.auto.service.AutoService;
import dd.trace.DDAdvice;
import dd.trace.Instrumenter;
import datadog.trace.agent.tooling.DDAdvice;
import datadog.trace.agent.tooling.Instrumenter;
import datadog.trace.api.Trace;
import io.opentracing.ActiveSpan;
import io.opentracing.tag.Tags;
import io.opentracing.util.GlobalTracer;
@ -39,7 +39,7 @@ public final class TraceAnnotationInstrumentation implements Instrumenter {
final Trace trace = method.getAnnotation(Trace.class);
String operationName = trace == null ? null : trace.operationName();
if (operationName == null || operationName.isEmpty()) {
operationName = method.getDeclaringClass().getName() + "." + method.getName();
operationName = method.getDeclaringClass().getSimpleName() + "." + method.getName();
}
return GlobalTracer.get().buildSpan(operationName).startActive();

View File

@ -1,8 +1,8 @@
apply from: "${rootDir}/gradle/java.gradle"
dependencies {
compile project(':dd-trace')
compile project(':dd-trace-annotations')
compile project(':dd-trace-ot')
compile project(':dd-trace-api')
compile project(':dd-java-agent:tooling')
compile deps.bytebuddy

View File

@ -1,4 +1,4 @@
package com.datadoghq.agent;
package datadog.trace.agent;
import java.io.BufferedReader;
import java.io.InputStreamReader;

View File

@ -14,10 +14,11 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package com.datadoghq.agent;
package datadog.trace.agent;
import com.datadoghq.trace.DDTraceAnnotationsInfo;
import com.datadoghq.trace.DDTraceInfo;
import datadog.opentracing.DDTraceOTInfo;
import datadog.trace.agent.tooling.AgentInstaller;
import datadog.trace.api.DDTraceApiInfo;
import io.opentracing.Tracer;
import io.opentracing.contrib.tracerresolver.TracerResolver;
import io.opentracing.util.GlobalTracer;
@ -27,7 +28,7 @@ import lombok.extern.slf4j.Slf4j;
/** Entry point for initializing the agent. */
@Slf4j
public class TracingAgent {
public static void premain(String agentArgs, final Instrumentation inst) throws Exception {
public static void premain(final String agentArgs, final Instrumentation inst) throws Exception {
log.debug("Using premain for loading {}", TracingAgent.class.getName());
AgentInstaller.installBytebuddyAgent(inst);
logVersionInfo();
@ -46,8 +47,8 @@ public class TracingAgent {
// version classes log important info
// in static initializers
DDJavaAgentInfo.VERSION.toString();
DDTraceInfo.VERSION.toString();
DDTraceAnnotationsInfo.VERSION.toString();
DDTraceOTInfo.VERSION.toString();
DDTraceApiInfo.VERSION.toString();
}
/** Register a global tracer if no global tracer is already registered. */

View File

@ -1,39 +0,0 @@
unsupportedRuleOne:
- artifact: artifact-1
- artifact: artifact-2
identifying_present_classes:
identifying_missing_classes:
unsupportedRuleTwo:
- artifact: artifact-1
supported_version: 2\.3\.
identifying_present_classes:
com.datadoghq.agent.InstrumentationCheckerTest$DemoClass1: missingMethod
supportedRuleOne:
- artifact: artifact-3
supported_version: 5\..*
identifying_present_classes:
com.datadoghq.agent.InstrumentationCheckerTest$DemoClass1:
com.datadoghq.agent.InstrumentationCheckerTest$DemoClass2:
com.datadoghq.agent.InstrumentationCheckerTest$DemoClass3:
supportedRuleTwo:
- artifact: artifact-1
supported_version: 1\.2\.3\..*
identifying_present_classes:
com.datadoghq.agent.InstrumentationCheckerTest$DemoClass1: testMethod
com.datadoghq.agent.InstrumentationCheckerTest$DemoClass2:
- artifact: artifact-2
supported_version: 4\..*
identifying_present_classes:
com.datadoghq.agent.InstrumentationCheckerTest$DemoClass3: missingMethod
unsupportedRuleThree:
- artifact: foo
supported_version: 1
identifying_present_classes:
com.datadoghq.agent.InstrumentationCheckerTest$DemoClass1:
com.datadoghq.agent.InstrumentationCheckerTest$MissingClass:

View File

@ -1,8 +1,9 @@
package dd.test;
package datadog.trace.agent.test;
import com.datadoghq.agent.AgentInstaller;
import com.datadoghq.trace.DDTracer;
import com.datadoghq.trace.writer.ListWriter;
import datadog.opentracing.DDTracer;
import datadog.trace.agent.tooling.AgentInstaller;
import datadog.trace.agent.tooling.Instrumenter;
import datadog.trace.common.writer.ListWriter;
import io.opentracing.Tracer;
import java.lang.instrument.ClassFileTransformer;
import java.lang.instrument.Instrumentation;
@ -22,8 +23,8 @@ import spock.lang.Specification;
* This will cause the following to occur before test startup:
*
* <ul>
* <li>All {@link dd.trace.Instrumenter}s on the test classpath will be applied. Matching
* preloaded classes will be retransformed.
* <li>All {@link Instrumenter}s on the test classpath will be applied. Matching preloaded classes
* will be retransformed.
* <li>{@link AgentTestRunner#TEST_WRITER} will be registerd with the global tracer and available
* in an initialized state.
* </ul>

View File

@ -1,6 +1,6 @@
package dd.test;
package datadog.trace.agent.test;
import com.datadoghq.agent.Utils;
import datadog.trace.agent.tooling.Utils;
import io.opentracing.ActiveSpan;
import io.opentracing.Tracer;
import io.opentracing.util.GlobalTracer;
@ -29,7 +29,7 @@ public class TestUtils {
}
}
public static void registerOrReplaceGlobalTracer(Tracer tracer) {
public static void registerOrReplaceGlobalTracer(final Tracer tracer) {
try {
GlobalTracer.register(tracer);
} catch (final Exception e) {
@ -39,7 +39,7 @@ public class TestUtils {
field = GlobalTracer.class.getDeclaredField("tracer");
field.setAccessible(true);
field.set(null, tracer);
} catch (Exception e2) {
} catch (final Exception e2) {
throw new IllegalStateException(e2);
} finally {
if (null != field) {
@ -54,12 +54,12 @@ public class TestUtils {
}
public static <T extends Object> Object runUnderTrace(
final String rootOperationName, Callable<T> r) {
ActiveSpan rootSpan = GlobalTracer.get().buildSpan(rootOperationName).startActive();
final String rootOperationName, final Callable<T> r) {
final ActiveSpan rootSpan = GlobalTracer.get().buildSpan(rootOperationName).startActive();
try {
try {
return r.call();
} catch (Exception e) {
} catch (final Exception e) {
throw new IllegalStateException(e);
}
} finally {
@ -67,10 +67,10 @@ public class TestUtils {
}
}
public static boolean isClassLoaded(String className, ClassLoader classLoader) {
public static boolean isClassLoaded(final String className, final ClassLoader classLoader) {
try {
findLoadedClassMethod.setAccessible(true);
Class<?> loadedClass = (Class<?>) findLoadedClassMethod.invoke(classLoader, className);
final Class<?> loadedClass = (Class<?>) findLoadedClassMethod.invoke(classLoader, className);
return null != loadedClass && loadedClass.getClassLoader() == classLoader;
} catch (IllegalAccessException | IllegalArgumentException | InvocationTargetException e) {
throw new IllegalStateException(e);
@ -88,13 +88,13 @@ public class TestUtils {
* @return the location of the newly created jar.
* @throws IOException
*/
public static URL createJarWithClasses(Class<?>... classes) throws IOException {
public static URL createJarWithClasses(final Class<?>... classes) throws IOException {
final File tmpJar = File.createTempFile(UUID.randomUUID().toString() + "", ".jar");
tmpJar.deleteOnExit();
final Manifest manifest = new Manifest();
JarOutputStream target = new JarOutputStream(new FileOutputStream(tmpJar), manifest);
for (Class<?> clazz : classes) {
final JarOutputStream target = new JarOutputStream(new FileOutputStream(tmpJar), manifest);
for (final Class<?> clazz : classes) {
addToJar(clazz, target);
}
target.close();
@ -102,17 +102,18 @@ public class TestUtils {
return tmpJar.toURI().toURL();
}
private static void addToJar(Class<?> clazz, JarOutputStream jarOutputStream) throws IOException {
private static void addToJar(final Class<?> clazz, final JarOutputStream jarOutputStream)
throws IOException {
InputStream inputStream = null;
try {
JarEntry entry = new JarEntry(Utils.getResourceName(clazz.getName()));
final JarEntry entry = new JarEntry(Utils.getResourceName(clazz.getName()));
jarOutputStream.putNextEntry(entry);
inputStream =
clazz.getClassLoader().getResourceAsStream(Utils.getResourceName(clazz.getName()));
byte[] buffer = new byte[1024];
final byte[] buffer = new byte[1024];
while (true) {
int count = inputStream.read(buffer);
final int count = inputStream.read(buffer);
if (count == -1) {
break;
}

View File

@ -7,6 +7,6 @@ dependencies {
compile deps.opentracing
compile deps.spock
compile project(':dd-trace')
compile project(':dd-trace-ot')
compile project(':dd-java-agent:tooling')
}

View File

@ -1,14 +1,13 @@
package com.datadoghq.agent;
package datadog.trace.agent.tooling;
import static dd.trace.ClassLoaderMatcher.classLoaderWithName;
import static dd.trace.ClassLoaderMatcher.isReflectionClassLoader;
import static datadog.trace.agent.tooling.ClassLoaderMatcher.classLoaderWithName;
import static datadog.trace.agent.tooling.ClassLoaderMatcher.isReflectionClassLoader;
import static net.bytebuddy.matcher.ElementMatchers.any;
import static net.bytebuddy.matcher.ElementMatchers.isBootstrapClassLoader;
import static net.bytebuddy.matcher.ElementMatchers.nameContains;
import static net.bytebuddy.matcher.ElementMatchers.nameMatches;
import static net.bytebuddy.matcher.ElementMatchers.nameStartsWith;
import dd.trace.Instrumenter;
import java.lang.instrument.Instrumentation;
import java.util.ServiceLoader;
import lombok.extern.slf4j.Slf4j;
@ -22,8 +21,7 @@ import net.bytebuddy.utility.JavaModule;
public class AgentInstaller {
/**
* Install the core bytebuddy agent along with all implementations of {@link
* dd.trace.Instrumenter}.
* Install the core bytebuddy agent along with all implementations of {@link Instrumenter}.
*
* @param inst Java Instrumentation used to install bytebuddy
* @return the agent's class transformer
@ -34,10 +32,9 @@ public class AgentInstaller {
.disableClassFormatChanges()
.with(AgentBuilder.RedefinitionStrategy.RETRANSFORMATION)
.with(new LoggingListener())
.ignore(nameStartsWith("com.datadoghq.agent.integration"))
.or(nameStartsWith("dd.trace"))
.or(nameStartsWith("dd.inst"))
.or(nameStartsWith("dd.deps"))
.ignore(nameStartsWith("datadog.trace."))
.or(nameStartsWith("datadog.opentracing."))
.or(nameStartsWith("datadog.slf4j."))
.or(nameStartsWith("java."))
.or(nameStartsWith("com.sun."))
.or(nameStartsWith("sun."))

View File

@ -1,4 +1,4 @@
package dd.trace;
package datadog.trace.agent.tooling;
import java.util.WeakHashMap;
import net.bytebuddy.matcher.ElementMatcher;

View File

@ -1,6 +1,5 @@
package dd.trace;
package datadog.trace.agent.tooling;
import com.datadoghq.agent.Utils;
import net.bytebuddy.agent.builder.AgentBuilder;
import net.bytebuddy.agent.builder.AgentBuilder.LocationStrategy;
import net.bytebuddy.dynamic.ClassFileLocator;

View File

@ -1,4 +1,4 @@
package dd.trace;
package datadog.trace.agent.tooling;
import net.bytebuddy.description.method.MethodDescription;
import net.bytebuddy.implementation.bytecode.StackManipulation;

View File

@ -1,6 +1,5 @@
package dd.trace;
package datadog.trace.agent.tooling;
import com.datadoghq.agent.Utils;
import java.io.IOException;
import java.util.Arrays;
import java.util.Collections;
@ -27,7 +26,7 @@ public class HelperInjector implements Transformer {
* Construct HelperInjector.
*
* @param helperClassNames binary names of the helper classes to inject. These class names must be
* resolvable by the classloader returned by dd.trace.DDAdvice#getAgentClassLoader()
* resolvable by the classloader returned by DDAdvice#getAgentClassLoader()
*/
public HelperInjector(final String... helperClassNames) {
this.helperClassNames = new HashSet<>(Arrays.asList(helperClassNames));

View File

@ -1,4 +1,4 @@
package dd.trace;
package datadog.trace.agent.tooling;
import net.bytebuddy.agent.builder.AgentBuilder;

View File

@ -1,4 +1,4 @@
package com.datadoghq.agent;
package datadog.trace.agent.tooling;
public class Utils {
/** Return the classloader the core agent is running on. */
@ -7,7 +7,7 @@ public class Utils {
}
/** com.foo.Bar -> com/foo/Bar.class */
public static String getResourceName(String className) {
public static String getResourceName(final String className) {
return className.replace('.', '/') + ".class";
}

View File

@ -1,4 +1,4 @@
package dd.test;
package datadog.trace.agent.test;
/** Used by {@link HelperInjectionTest} */
class HelperClass {}

View File

@ -1,11 +1,10 @@
package dd.test
package datadog.trace.agent.test
import com.datadoghq.agent.Utils
import dd.trace.HelperInjector
import java.lang.reflect.Method
import datadog.trace.agent.tooling.HelperInjector
import datadog.trace.agent.tooling.Utils
import spock.lang.Specification
import static net.bytebuddy.matcher.ElementMatchers.*
import java.lang.reflect.Method
class HelperInjectionTest extends Specification {

View File

@ -2,7 +2,7 @@ apply from: "${rootDir}/gradle/java.gradle"
apply from: "${rootDir}/gradle/publish.gradle"
apply from: "${rootDir}/gradle/jacoco.gradle"
description = 'dd-trace-annotations'
description = 'dd-trace-api'
dependencies {
compile deps.slf4j
testCompile deps.junit

View File

@ -1,4 +1,4 @@
package com.datadoghq.trace;
package datadog.trace.api;
public class DDTags {
public static final String SPAN_TYPE = "span.type";

View File

@ -1,11 +1,11 @@
package com.datadoghq.trace;
package datadog.trace.api;
import java.io.BufferedReader;
import java.io.InputStreamReader;
import lombok.extern.slf4j.Slf4j;
@Slf4j
public class DDTraceAnnotationsInfo {
public class DDTraceApiInfo {
public static final String VERSION;
static {
@ -16,8 +16,7 @@ public class DDTraceAnnotationsInfo {
final BufferedReader br =
new BufferedReader(
new InputStreamReader(
DDTraceAnnotationsInfo.class.getResourceAsStream("/dd-trace-annotations.version"),
"UTF-8"));
DDTraceApiInfo.class.getResourceAsStream("/dd-trace-api.version"), "UTF-8"));
for (int c = br.read(); c != -1; c = br.read()) sb.append((char) c);
v = sb.toString().trim();
@ -25,10 +24,10 @@ public class DDTraceAnnotationsInfo {
v = "unknown";
}
VERSION = v;
log.info("dd-trace-annotations - version: {}", v);
log.info("dd-trace-api - version: {}", v);
}
public static void main(String... args) {
public static void main(final String... args) {
System.out.println(VERSION);
}
}

View File

@ -1,4 +1,4 @@
package com.datadoghq.trace;
package datadog.trace.api;
import static java.lang.annotation.ElementType.METHOD;
import static java.lang.annotation.RetentionPolicy.RUNTIME;

View File

@ -1,5 +0,0 @@
logging:
level: INFO
loggers:
"com.datadoghq.trace": DEBUG
"io.opentracing": DEBUG

View File

@ -15,7 +15,7 @@ plugins {
allprojects {
group = 'com.datadoghq'
version = '0.2.13-SNAPSHOT'
version = '0.3.0.RC1-SNAPSHOT'
apply from: "${rootDir}/gradle/dependencies.gradle"
}

View File

@ -2,7 +2,7 @@ plugins {
id "me.champeau.gradle.jmh" version "0.4.4"
}
description = 'dd-trace'
description = 'dd-trace-ot'
apply from: "${rootDir}/gradle/java.gradle"
apply from: "${rootDir}/gradle/publish.gradle"
@ -10,16 +10,14 @@ apply from: "${rootDir}/gradle/jacoco.gradle"
minimumBranchCoverage = 0.3
minimumInstructionCoverage = 0.5
whitelistedInstructionClasses += whitelistedBranchClasses += [
'com.datadoghq.trace.integration.*',
'com.datadoghq.trace.resolver.DecoratorsConfig',
'com.datadoghq.trace.writer.ListWriter',
'com.datadoghq.trace.DDTags',
'com.datadoghq.trace.DDTraceInfo',
'com.datadoghq.trace.util.Clock',
'com.datadoghq.trace.resolver.FactoryUtils',
'datadog.opentracing.decorators.*',
'datadog.trace.common.writer.ListWriter',
'datadog.trace.common.util.Clock',
'datadog.trace.api.DDTags',
]
dependencies {
compile project(':dd-trace-api')
compile deps.opentracing
compile group: 'io.opentracing.contrib', name: 'opentracing-tracerresolver', version: '0.1.0'

Some files were not shown because too many files have changed in this diff Show More