Merge pull request #103 from DataDog/tyler/guava-bundle

Rename google and byteman dependencies
This commit is contained in:
Tyler Benson 2017-08-09 11:45:26 -07:00 committed by GitHub
commit 82444c3258
4 changed files with 35 additions and 4 deletions

1
.gitignore vendored
View File

@ -46,3 +46,4 @@ Thumbs.db
/logs/* /logs/*
/bin /bin
/out /out
*/out

View File

@ -6,6 +6,7 @@ apply from: "${rootDir}/gradle/java.gradle"
description = 'dd-java-agent-ittests' description = 'dd-java-agent-ittests'
dependencies { dependencies {
testCompile project(':dd-java-agent') testCompile project(':dd-java-agent')
testCompile group: 'io.opentracing', name: 'opentracing-mock', version: '0.30.0' testCompile group: 'io.opentracing', name: 'opentracing-mock', version: '0.30.0'
testCompile group: 'junit', name: 'junit', version: '4.12' testCompile group: 'junit', name: 'junit', version: '4.12'
testCompile group: 'org.assertj', name: 'assertj-core', version: '3.6.2' testCompile group: 'org.assertj', name: 'assertj-core', version: '3.6.2'
@ -32,6 +33,12 @@ dependencies {
testCompile group: 'org.apache.activemq', name: 'activemq-broker', version: '5.14.5' testCompile group: 'org.apache.activemq', name: 'activemq-broker', version: '5.14.5'
} }
configurations.all {
resolutionStrategy {
force 'com.google.guava:guava:18.0' // Force to test package renaming in agent jar. (see ShadowPackageRenamingTest)
}
}
test { test {
jvmArgs "-Ddd.trace.configurationFile=${project.buildDir}/resources/test/dd-trace.yaml" jvmArgs "-Ddd.trace.configurationFile=${project.buildDir}/resources/test/dd-trace.yaml"
jvmArgs "-javaagent:${project(':dd-java-agent').buildDir}/libs/dd-java-agent-${project.version}.jar" jvmArgs "-javaagent:${project(':dd-java-agent').buildDir}/libs/dd-java-agent-${project.version}.jar"

View File

@ -0,0 +1,17 @@
package com.datadoghq.trace.agent;
import com.google.common.collect.MapMaker;
import org.junit.Assert;
import org.junit.Test;
public class ShadowPackageRenamingTest {
@Test
public void test() {
try {
(new MapMaker()).softValues(); // this method exists in 18.0 but was removed in 20.0
} catch (final NoSuchMethodError e) {
Assert.fail("wrong class was loaded");
}
}
}

View File

@ -93,16 +93,22 @@ shadowJar {
// mergeServiceFiles() // mergeServiceFiles()
// Various tests fail when these are uncommented:
// relocate 'com.google', 'dd.deps.com.google'
// relocate 'org.jboss.byteman', 'dd.deps.org.jboss.byteman'
// Don't relocate slf4j or opentracing deps. // Don't relocate slf4j or opentracing deps.
relocate 'com.fasterxml', 'dd.deps.com.fasterxml' relocate 'com.fasterxml', 'dd.deps.com.fasterxml'
relocate 'javassist', 'dd.deps.javassist' relocate 'javassist', 'dd.deps.javassist'
relocate 'org.reflections', 'dd.deps.org.reflections' relocate 'org.reflections', 'dd.deps.org.reflections'
relocate 'org.yaml', 'dd.deps.org.yaml' relocate 'org.yaml', 'dd.deps.org.yaml'
relocate('org.jboss.byteman', 'dd.deps.org.jboss.byteman') {
// Renaming these causes a verify error in the tests.
exclude 'org.jboss.byteman.rule.*'
exclude 'org.jboss.byteman.rule.helper.*'
}
relocate('com.google', 'dd.deps.com.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'
}
//Exclude Java 9 compiled classes: //Exclude Java 9 compiled classes:
exclude 'org/jboss/byteman/agent/JigsawAccessEnablerGenerator.class' exclude 'org/jboss/byteman/agent/JigsawAccessEnablerGenerator.class'
exclude 'org/jboss/byteman/agent/JigsawAccessManager$1.class' exclude 'org/jboss/byteman/agent/JigsawAccessManager$1.class'