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/*
/bin
/out
*/out

View File

@ -6,6 +6,7 @@ apply from: "${rootDir}/gradle/java.gradle"
description = 'dd-java-agent-ittests'
dependencies {
testCompile project(':dd-java-agent')
testCompile group: 'io.opentracing', name: 'opentracing-mock', version: '0.30.0'
testCompile group: 'junit', name: 'junit', version: '4.12'
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'
}
configurations.all {
resolutionStrategy {
force 'com.google.guava:guava:18.0' // Force to test package renaming in agent jar. (see ShadowPackageRenamingTest)
}
}
test {
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"

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()
// 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.
relocate 'com.fasterxml', 'dd.deps.com.fasterxml'
relocate 'javassist', 'dd.deps.javassist'
relocate 'org.reflections', 'dd.deps.org.reflections'
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 'org/jboss/byteman/agent/JigsawAccessEnablerGenerator.class'
exclude 'org/jboss/byteman/agent/JigsawAccessManager$1.class'