Commit Graph

64 Commits

Author SHA1 Message Date
Nikita Salnikov-Tarnovski c248f140aa
Artifactory and bintray publish (#403)
* Artifactory and bintray publish

* Delegate version management to Nebula

* Proposal of new release process

* New CI jobs for releasing

* Fix nebula versioning

* Polish

* Fix CI

* Publish snapshot from master must depend on test_8

* Fix repo name

* Restore version file creation

* Use correct env variable for Bintray credentials

Co-authored-by: Trask Stalnaker <trask.stalnaker@gmail.com>
2020-06-09 07:56:12 +03:00
Tyler Benson 77ae5434d5 Attempt to improve muzzle time by randomly ignoring versions until 10 remain (DataDog/dd-trace-java#1451) 2020-05-26 11:54:57 -07:00
Nikita Salnikov-Tarnovski 6cfe2256ef
Use java 11 for compilation (#390)
* Allow compiling of everything with java 11

* Instruct CircleCI to use java 11 be default

* Forbid running some tests on java11

* Muzzle uses ClassLoader.platformClassLoader as parent for user-space classloader
2020-05-14 15:13:30 -07:00
Trask Stalnaker ce3d764ffa Merge commit '437e0f343dcd66ac344556c03bd340ce791b1fdd' into correct-history 2020-04-21 12:55:51 -07:00
Tyler Benson 401ff4d419 Remove some repositories...
Too many caused OOM in CI.
2020-04-20 23:42:05 -04:00
Tyler Benson 2743e64fd3 Exclude more weird versions. 2020-04-20 21:59:24 -04:00
Tyler Benson 70f5ff7244 Add the ability to skip specific versions for muzzle
This makes it much easier to bypass bad versions than splitting out the muzzle definition.
2020-04-20 16:36:57 -04:00
Tyler Benson 6dae05f6ee Add jCenter as a muzzle repository to catch things that are different from Maven Central
For example in the latest release `jetty-server`'s version list was messed up:
https://repo1.maven.org/maven2/org/glassfish/jersey/core/jersey-server/maven-metadata.xml
but still available in jcenter:
https://jcenter.bintray.com/org/glassfish/jersey/core/jersey-server/maven-metadata.xml
2020-04-20 13:02:49 -04:00
Trask Stalnaker d24159c8d2 Merge tag 'v0.48.0' into dd-merge 2020-04-12 15:20:10 -07:00
Brian Devins-Suresh 08e9f8c6e2 Undo star import 2020-03-26 10:10:32 -04:00
Brian Devins-Suresh 89a0761ab4 Add typesafe repo and skip bad builds 2020-03-26 10:10:31 -04:00
Trask Stalnaker bdf2b8eafd
Fix file formatting (#256) 2020-03-19 18:57:05 -07:00
Trask Stalnaker e039998192
Remove a couple remaining dd prefixes (#170) 2020-02-18 11:55:56 -08:00
Trask Stalnaker c43f3229c6 Merge commit '25534b2641ff57e0de36fb359a412612ef349ee9' into dd-merge-part-2 2020-02-12 17:59:03 -08:00
Tyler Benson e5980d4812 Fix muzzle 2020-02-10 10:45:58 -08:00
Trask Stalnaker cd4a97546e
Rename boostrap and tooling modules (#146)
* Rename agent-bootstrap module to auto-bootstrap

* Rename agent-tooling module to auto-tooling

* Further renames
2020-02-07 17:01:55 -08:00
Trask Stalnaker 147b42d1ff Merge tag 'v0.42.0' 2020-02-01 13:28:58 -08:00
dougqh 4c7a0ba7a7 Fixing muzzle?
MuzzlePlugin groovy checks that no threads are spawned because this holds the ClassLoader live.

This was breaking with the caching change because the cache no longer uses the Cleaner service.

This caused a problem because the Thread behind the cleaner is created lazily when the first task is created, but without the cache the creation was delayed.

To solve this, I addressed the original cause of the leak.  The newly created Thread automatically inherits the contextClassLoader of its parent, but that's unnecessary for a cleaner thread.

So I changed the ThreadFactory for cleaner to explicitly null out the contextClassLoader.

We should probably null out contextClassLoader in other thread factories and also reduce our use of contextClassLoaders in general, but that will left to another PR.
2020-01-27 17:14:17 -05:00
Trask Stalnaker 819ca7c256
Simplify directory/module structure (#77)
* Move things up a directory

* Scripted mass update

find -type f -name "*.gradle" | xargs sed -i 's/:java-agent:/:/g'

* Remove plugin version now that it's in root module

* Update java-agent and instrumentation configs

* Misc
2020-01-22 13:55:47 -08:00
Trask Stalnaker 8b0a140ed7
Update muzzle maven URL to use https (#61)
Also add a test.

Co-authored-by: Tyler Benson <tylerbenson@gmail.com>
2020-01-15 14:43:34 -08:00
Tyler Benson 4915ed9c75 Update muzzle maven URL to use https
Also add a test.
2020-01-15 11:22:10 -08:00
Trask Stalnaker 71d264fd00
Rename package to io.opentelemetry.auto (#54)
* Remove publishing info

* Remove Datadog-Meta-Lang handling

* Misc renames

* Rename DD_ constant field names

* Rename DDSpanTypes to SpanTypes

* Rename DDTags to MoreTags

* Rename DDSpecification to AgentSpecification

* Rename DDLocationStrategy to AgentLocationStrategy

* Rename DDCachingPoolStrategy to AgentCachingPoolStrategy

* Rename DDTransformers to AgentTransformers

* Script: rename datadog.trace to io.opentelemetry.auto

find -wholename */datadog/trace -exec mkdir -p {}/../../io/opentelemetry \; -exec mv {} {}/../../io/opentelemetry/auto \;

find -name *.java -o -name *.groovy -o -name *.scala -o -name *.kt | xargs sed -i 's/datadog\.trace\./io.opentelemetry.auto./g'
find -name *.java -o -name *.groovy -o -name *.scala -o -name *.kt | xargs sed -i 's/datadog\/trace\//io\/opentelemetry\/auto\//g'

find -type f -name "*.gradle" | xargs sed -i 's/datadog\.trace\./io.opentelemetry.auto./g'
find -type f -name "*.gradle" | xargs sed -i 's/datadog\/trace\//io\/opentelemetry\/auto\//g'

* Script: rename more packages

find -wholename */datadog/test -exec mkdir -p {}/../../io/opentelemetry \; -exec mv {} {}/../../io/opentelemetry \;
find -wholename */datadog/smoketest -exec mkdir -p {}/../../io/opentelemetry \; -exec mv {} {}/../../io/opentelemetry \;
find -wholename */datadog/perftest -exec mkdir -p {}/../../io/opentelemetry \; -exec mv {} {}/../../io/opentelemetry \;
find -wholename */datadog/benchmark -exec mkdir -p {}/../../io/opentelemetry \; -exec mv {} {}/../../io/opentelemetry \;
find -wholename */datadog/loadgenerator -exec mkdir -p {}/../../io/opentelemetry \; -exec mv {} {}/../../io/opentelemetry \;

# keep these outside of io.opentelemetry.auto for now at least (things under io.opentelemetry.auto are not instrumented)
find -name *.java -o -name *.groovy -o -name *.scala -o -name *.kt -o -name *.sh | xargs sed -i 's/datadog\.test\b/io.opentelemetry.test/g'
find -name *.java -o -name *.groovy -o -name *.scala -o -name *.kt -o -name *.sh | xargs sed -i 's/datadog\.smoketest\b/io.opentelemetry.smoketest/g'
find -name *.java -o -name *.groovy -o -name *.scala -o -name *.kt -o -name *.sh | xargs sed -i 's/datadog\.perftest\b/io.opentelemetry.perftest/g'
find -name *.java -o -name *.groovy -o -name *.scala -o -name *.kt -o -name *.sh | xargs sed -i 's/datadog\.benchmark\b/io.opentelemetry.benchmark/g'
find -name *.java -o -name *.groovy -o -name *.scala -o -name *.kt -o -name *.sh | xargs sed -i 's/datadog\.loadgenerator\b/io.opentelemetry.loadgenerator/g'

# ok to move this into io.opentelemetry.auto
find -name *.java -o -name *.groovy -o -name *.scala -o -name *.kt -o -name *.sh | xargs sed -i 's/datadog\.slf4j\b/io.opentelemetry.auto.slf4j/g'

find -type f -name "*.gradle" | xargs sed -i 's/datadog\.test\b/io.opentelemetry.test/g'
find -type f -name "*.gradle" | xargs sed -i 's/datadog\.smoketest\b/io.opentelemetry.smoketest/g'
find -type f -name "*.gradle" | xargs sed -i 's/datadog\.perftest\b/io.opentelemetry.perftest/g'
find -type f -name "*.gradle" | xargs sed -i 's/datadog\.benchmark\b/io.opentelemetry.benchmark/g'
find -type f -name "*.gradle" | xargs sed -i 's/datadog\.loadgenerator\b/io.opentelemetry.loadgenerator/g'

find -type f -name "*.gradle" | xargs sed -i 's/datadog\.slf4j\b/io.opentelemetry.auto.slf4j/g'

* Intellij: format and organize imports

* Script: More renaming

find -name *.xml | xargs sed -i 's/<logger name="datadog"/<logger name="io.opentelemetry.auto"/g'
find -name *.java | xargs sed -i 's/LoggerFactory.getLogger("datadog")/LoggerFactory.getLogger("io.opentelemetry.auto")/g'
find -name *.java | xargs sed -i 's/"datadog.span"/"opentelemetry.auto.span"/g'
find -name *.java -o -name *.groovy | xargs sed -i 's/"datadog.doesnotexist"/"io.opentelemetry.auto.doesnotexist"/g'

# keep this outside of io.opentelemetry.auto for now at least (things under io.opentelemetry.auto are not instrumented)
find -name *.yaml | xargs sed -i 's/"datadog.benchmark"/"io.opentelemetry.benchmark"/g'

find -type f -name "*.gradle" | xargs sed -i 's/datadog\.forked/io.opentelemetry.auto.forked/g'
find -name *.yml | xargs sed -i 's/datadog\.forked/io.opentelemetry.auto.forked/g'

* Improve comment

* Script: rename dd- modules

git mv dd-java-agent java-agent
git mv java-agent/dd-java-agent.gradle java-agent/java-agent.gradle
git mv dd-trace-api trace-api
git mv trace-api/dd-trace-api.gradle trace-api/trace-api.gradle
git mv dd-smoke-tests smoke-tests
git mv smoke-tests/dd-smoke-tests.gradle smoke-tests/smoke-tests.gradle

git mv dd-trace-java.gradle trace-java.gradle

find -type f -name "*.gradle" | xargs sed -i 's/\bdd-java-agent\b/java-agent/g'
find -type f -name "*.gradle" | xargs sed -i 's/\bdd-trace-api\b/trace-api/g'
find -type f -name "*.gradle" | xargs sed -i 's/\bdd-smoke-tests\b/smoke-tests/g'

find -type f -name "*.gradle" | xargs sed -i 's/\bdd-trace-java\b/trace-java/g'

find -name *.java -o -name *.groovy -o -name *.scala -o -name *.kt -o -name *.sh -o -name *.yml | xargs sed -i 's/\bdd-java-agent\b/java-agent/g'
sed -i 's/\bdd-java-agent\b/java-agent/g' .gitignore

find -name *.java -o -name *.groovy -o -name *.scala -o -name *.kt -o -name *.sh -o -name *.yml | xargs sed -i 's/\bdd-trace-api\b/trace-api/g'
find -name *.java -o -name *.groovy -o -name *.scala -o -name *.kt -o -name *.sh -o -name *.yml | xargs sed -i 's/\bdd-smoke-tests\b/smoke-tests/g'

* Remove unused config - service.name

* Remove unused config - writer.type

* Remove unused config - trace.partial.flush.min

* Script: rename dd. test packages

find -wholename */dd/trace/instrumentation -exec mkdir -p {}/../../io/opentelemetry/test \; -exec mv {} {}/../../io/opentelemetry/test \;
find -wholename */dd/test/trace/annotation -exec mkdir -p {}/../../io/opentelemetry/test \; -exec mv {} {}/../../io/opentelemetry/test \;

find -name *.java -o -name *.groovy -o -name *.scala -o -name *.kt | xargs sed -i 's/dd\.trace\.instrumentation\b/io.opentelemetry.test.instrumentation/g'
find -name *.java -o -name *.groovy -o -name *.scala -o -name *.kt | xargs sed -i 's/dd\.test.trace\.annotation\b/io.opentelemetry.test.annotation/g'

* Script: rename dd properties

DD_PROP=opentelemetry.auto
DD_ENV=OPENTELEMETRY_AUTO
find -name *.java -o -name *.groovy -o -name *.scala -o -name *.kt | xargs sed -i "s/\"dd\.\"/\"$DD_PROP.\"/g"
find -name *.java -o -name *.groovy -o -name *.scala -o -name *.kt | xargs sed -i "s/\"DD_\"/\"${DD_ENV}_\"/g"

find -name *.java -o -name *.groovy -o -name *.scala -o -name *.kt | xargs sed -i "s/\bdd\.integration\./$DD_PROP.integration./g"
find -name *.java -o -name *.groovy -o -name *.scala -o -name *.kt | xargs sed -i "s/\bdd\.integrations\./$DD_PROP.integrations./g"
find -name *.java -o -name *.groovy -o -name *.scala -o -name *.kt | xargs sed -i "s/\bDD_INTEGRATION_/${DD_ENV}_INTEGRATION_/g"
find -name *.java -o -name *.groovy -o -name *.scala -o -name *.kt | xargs sed -i "s/\bDD_INTEGRATIONS_/${DD_ENV}_INTEGRATIONS_/g"

find -name *.java -o -name *.groovy -o -name *.scala -o -name *.kt | xargs sed -i "s/\bdd\.trace\./$DD_PROP.trace./g"
find -name *.java -o -name *.groovy -o -name *.scala -o -name *.kt | xargs sed -i "s/\bDdd\.trace\./D$DD_PROP.trace./g"
find -name *.java -o -name *.groovy -o -name *.scala -o -name *.kt | xargs sed -i "s/\bDD_TRACE_/${DD_ENV}_TRACE_/g"

find -name *.java -o -name *.groovy -o -name *.scala -o -name *.kt | xargs sed -i "s/\bdd\.logs\./$DD_PROP.logs./g"

find -name *.java -o -name *.groovy -o -name *.scala -o -name *.kt | xargs sed -i "s/\bdd\.trace_id\b/$DD_PROP.trace_id/g"
find -name *.java -o -name *.groovy -o -name *.scala -o -name *.kt | xargs sed -i "s/\bdd\.span_id\b/$DD_PROP.span_id/g"

find -type f -name "*.gradle" | xargs sed -i "s/\bdd\.trace\./$DD_PROP.trace./g"
find -type f -name "*.properties" | xargs sed -i "s/\bdd\.trace\./$DD_PROP.trace./g"

# test code
find -name *.java -o -name *.groovy -o -name *.scala -o -name *.kt | xargs sed -i "s/\bdd\.prop\./$DD_PROP.prop./g"
find -name *.java -o -name *.groovy -o -name *.scala -o -name *.kt | xargs sed -i "s/\bdd\.float\./$DD_PROP.float./g"
find -name *.java -o -name *.groovy -o -name *.scala -o -name *.kt | xargs sed -i "s/\bdd\.garbage\./$DD_PROP.garbage./g"
find -name *.java -o -name *.groovy -o -name *.scala -o -name *.kt | xargs sed -i "s/\bdd\.negative\./$DD_PROP.negative./g"
find -name *.java -o -name *.groovy -o -name *.scala -o -name *.kt | xargs sed -i "s/\bDD_ENV_/${DD_ENV}_ENV_/g"
find -name *.java -o -name *.groovy -o -name *.scala -o -name *.kt | xargs sed -i "s/\bDD_FLOAT_/${DD_ENV}_FLOAT_/g"

# test code
find -name *.java -o -name *.groovy -o -name *.scala -o -name *.kt | xargs sed -i "s/\"is-dd-server\"/\"is-test-server\"/g"
find -name *.java -o -name *.groovy -o -name *.scala -o -name *.kt | xargs sed -i "s/\bisDDServer\b/isTestServer/g"

* Rename dd-java-tracer.properties to java-tracer.properties

* Rename DDTracingUtil to OpenTelemetryTracingUtil

* Codec.java was removed already

* Rename __datadog to __opentelemetry

* Misc renames

* Script: remove redundant sub-package

find -wholename */io/opentelemetry/auto/agent -exec bash -c "mv {}/* {}/.." \;
find -name *.java -o -name *.groovy -o -name *.scala -o -name *.kt | xargs sed -i 's/io\.opentelemetry\.auto\.agent\b/io.opentelemetry.auto/g'

find -type f -name "*.gradle" | xargs sed -i 's/io\.opentelemetry\.auto\.agent\b/io.opentelemetry.auto/g'

find -name *.java -o -name *.groovy -o -name *.scala -o -name *.kt | xargs sed -i 's/io\/opentelemetry\/auto\/agent\b/io\/opentelemetry\/auto/g'

* Shorten logging config keys
2020-01-14 13:57:01 -08:00
Tyler Benson ded28674d3 Add option for muzzle validation on the specific JDK version
This is still useful to validate various aspects of the integrations even if it doesn't need to check against maven.
2019-12-18 13:40:19 -08:00
Tyler Benson fbd16d8cb7 Add assert to ensure muzzle range not empty and update spring-data
Also fix a few muzzle definitions that are now broken with the new requirement.

Moved a few projects around to match correct version numbers.
2019-10-23 14:09:01 -07:00
Tyler Benson e69edaec14 Remove project config centrally defined and other misc cleanup 2019-08-22 12:43:13 -07:00
Tyler Benson 28f4038122 Be more specific about thread assertion. 2019-08-20 09:43:27 -07:00
Tyler Benson 8c1dbfe7cb Make Muzzle handle cleaner thread properly. 2019-08-19 17:27:01 -07:00
Luca Abbati 27b4db8861
Remove legacy transitive dependencies no longer bundled with the JVM from muzzle tests 2019-06-20 21:29:46 -04:00
Nikolay Martynov c489fb41cb Konvert muzzle plugin definition to Kotlin 2019-04-05 11:03:35 -04:00
Luca Abbati 64dd67024f
Improve javadoc entry 2019-03-29 17:18:53 +01:00
Luca Abbati 1626c5da62
Fixed typo in comments 2019-03-29 14:09:40 +01:00
Luca Abbati 1a3e5fe69a
Let muzzle plugin test same dependency in different conditions
The muzzle plugin creates a config for each of the dependencies under test with name '...-<group_id>-<artifact_id>-<version>'.
The problem is that if we want to test multiple times the same configuration under different conditions, e.g.
with different extra dependencies, the plugin would throw an error as it would try to create several times the same config.

This commit let directives to define an optional name that defaults to a null. If a name is provided then a slug of it
is used to generate the gradle configuration name.
2019-03-29 13:42:26 +01:00
Tyler Benson b07b5962f0 Add log output to help CI not time out for long tasks
Muzzle takes a long time when run on a clean cache because it has to download a lot of dependencies.
2019-02-07 11:03:19 -08:00
Andrew Kent 3c4b480a18 Share tooling loader across muzzle runs 2018-11-28 13:01:01 -08:00
Andrew Kent e0d00078f9 Assert muzzle tooling invocations do not create orphaned dd threads 2018-11-28 12:05:47 -08:00
Andrew Kent 6ee5fd27b0 Guard against invoking WeakConcurrent constructor 2018-11-28 12:05:47 -08:00
Gary 90777f4b39
Retire/remove version scan
Remove version scan dead code and unnecessary classLoaderMatcher methods in instrumentations. Depends on #572
2018-11-26 18:21:56 -05:00
Tyler Benson 6b8eb60ca2 Upgrade Byte Buddy to 1.9.0 2018-10-01 13:31:03 -04:00
Andrew Kent 9338faa013 Muzzle inverse assertions 2018-08-24 10:47:37 -07:00
Andrew Kent 26705142bb Muzzle pass and fail directives in the same collection 2018-08-24 10:47:37 -07:00
Andrew Kent b6d1c18af9 Allow muzzle directives to have extra dependencies 2018-08-24 10:47:37 -07:00
Andrew Kent c6841c9d06 Add maven version scanning to muzzle 2018-08-24 10:47:37 -07:00
Andrew Kent 3c1bf569ea Add reference pretty-printer to muzzle plugin 2018-08-15 10:01:19 -07:00
Andrew Kent 2eb3433da1 Muzzle plugin to depend on compileScala 2018-08-15 09:49:50 -07:00
Tyler Benson ff9ef671f3 Apply formatter on groovy files. 2018-07-31 12:09:28 +10:00
Andrew Kent 23d0439b12 Remove muzzle dead code, doc cleanup, and better logging 2018-07-13 16:24:01 -07:00
Andrew Kent 2925df8de5 Clean up and document 2018-07-10 17:26:49 -04:00
Andrew Kent 628f4929dc Muzzle Assertions and gradle plugin 2018-07-10 17:26:49 -04:00
Tyler Benson c0da1f7093 Add version scan. 2018-06-18 12:52:42 +10:00
Tyler Benson 3db2d654f1 Fix spark instrumentation
and rebase off master.
2018-04-26 17:01:45 +10:00