Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
629 commits
Select commit Hold shift + click to select a range
ad5a59d
feat: Implement support for WebSocket connections
Jun 19, 2024
1401746
feat: Implement support for WebSocket connections
Jun 19, 2024
fadbb9e
feat: Implement support for WebSocket connections
Jun 27, 2024
f1fd2c1
feat: Implement support for WebSocket connections
Jun 27, 2024
9eb7a1b
feat: Implement support for WebSocket connections
Jul 1, 2024
7eca508
feat: Implement support for WebSocket connections
Jul 1, 2024
1ab3214
feat: Implement support for WebSocket connections
Jul 3, 2024
cda13f6
feat: lower the logging level from `info` to `debug`
iryabov Jul 3, 2024
2688734
feat: Implement support for WebSocket connections
Jul 4, 2024
990818a
feat: Implement support for WebSocket connections
Jul 4, 2024
b69d055
feat: Implement support for WebSocket connections
Jul 4, 2024
4c3c767
feat: Implement support for WebSocket connections
Jul 4, 2024
d2d5538
feat: Implement support for WebSocket connections
Jul 4, 2024
ce4af92
feat: Implement support for WebSocket connections
Jul 5, 2024
93ddb99
feat: Implement support for WebSocket connections
Jul 5, 2024
dbeb291
feat: Implement support for WebSocket connections
Jul 5, 2024
9b42746
fix: resolve issue with parsing drillInstalationDrill for macos
bodyangug Jul 8, 2024
3e49e22
feat: Implement support for WebSocket connections
Jul 8, 2024
8334024
feat: Implement support for WebSocket connections
Jul 8, 2024
7db1999
feat: Implement support for WebSocket connections
Jul 8, 2024
a2dcd18
feat: Implement support for WebSocket connections
Jul 8, 2024
7b779ca
feat: Implement support for WebSocket connections
Jul 8, 2024
399a9be
feat: Implement support for WebSocket connections
Jul 9, 2024
81810c1
feat: Implement support for WebSocket connections
Jul 10, 2024
3b4f9a2
Merge branch 'feature/support-for-websocket-connections-EPMDJ-10809' …
Jul 10, 2024
46ec97a
feat: Implement support for WebSocket connections
Jul 11, 2024
1a995b1
feat: Implement support for WebSocket connections
Jul 11, 2024
ab4e423
feat: Implement support for WebSocket connections
Jul 11, 2024
f415992
feat: Implement support for WebSocket connections
Jul 12, 2024
b3c240e
feat: Implement support for WebSocket connections
Jul 15, 2024
88263a6
fix: remove mavenLocal
bodyangug Jul 16, 2024
178bba7
Merge pull request #65 from Drill4J/feature/default-logging-level-EPM…
iryabov Jul 16, 2024
486155d
feat: Implement support for WebSocket connections
Jul 17, 2024
38313ea
feat: Implement support for WebSocket connections
Jul 17, 2024
2cc5bd4
feat: Implement support for WebSocket connections
Jul 17, 2024
2c788eb
feat: Implement support for WebSocket connections
Jul 17, 2024
2d04e31
feat: Implement support for WebSocket connections
Jul 19, 2024
1e1c1a4
feat: Implement support for WebSocket connections
Jul 19, 2024
df7c49c
feat: Implement support for WebSocket connections
Jul 19, 2024
d61ce8c
feat: Implement support for WebSocket connections
Jul 19, 2024
e503a3c
feat: Implement support for WebSocket connections
Jul 22, 2024
c418ffe
feat: Implement support for WebSocket connections
Jul 22, 2024
fa86a33
feat: Implement support for WebSocket connections
Jul 24, 2024
4fa2a75
feat: Implement support for WebSocket connections
Jul 26, 2024
ce87886
feat: Implement support for WebSocket connections
Jul 29, 2024
39e25d1
feat: Implement support for WebSocket connections
Jul 29, 2024
b3bdcad
feat: Implement support for WebSocket connections
Aug 1, 2024
8dc353d
feat: add macos-arm64 target to build.gradle.kts
bodyangug Aug 1, 2024
cb80c67
feat: update sources due to new kotlin version
bodyangug Aug 1, 2024
7107f4a
feat: add groupId and testDefinitionId (test details hash) to API call
iryabov Aug 6, 2024
40177e8
feat: add `testTaskId` to `TestInfo` class
iryabov Aug 6, 2024
2739c3e
Merge pull request #66 from Drill4J/feature/dependency-impact-EPMDJ-1…
bodyangug Aug 7, 2024
a7ba38c
Merge pull request #68 from Drill4J/feature/trace-test-launch-id
iryabov Aug 7, 2024
ddedadd
Merge pull request #69 from Drill4J/feature/test-task-id-EPMDJ-10878
iryabov Aug 7, 2024
b8b4d08
feat: Implement support for WebSocket connections
Aug 7, 2024
14089b1
feat: Implement support for WebSocket connections
Aug 8, 2024
9cbaaf8
Merge branch 'feature/support-for-websocket-connections-EPMDJ-10809' …
Aug 8, 2024
6bd6372
feat: Implement support for WebSocket connections
Aug 8, 2024
59daa0b
feat: Implement support for WebSocket connections
Aug 8, 2024
be748c6
Merge branch 'merge/v0.9.0' of https://github.com/Drill4J/lib-jvm-sha…
bodyangug Aug 8, 2024
47b3472
feat: change version to support arm64
bodyangug Aug 8, 2024
4e4beff
feat: add macosArm64 target
bodyangug Aug 8, 2024
1586f4c
fix: remove enableDependencyPropagation, add enableCInteropCommonization
bodyangug Aug 8, 2024
dc6b03e
refactor: remove `testTaskId` field as it is no longer part of `TestI…
iryabov Aug 12, 2024
e7dd79d
fix: cancel removing Drill context in thread local if there was a con…
iryabov Aug 12, 2024
e4f9c8b
chore: add a comment
iryabov Aug 13, 2024
a421811
chore: add a comment
iryabov Aug 13, 2024
1ffa749
Merge pull request #71 from Drill4J/fix/no-test-launch-id-was-found-E…
iryabov Aug 13, 2024
14c2b0f
Merge remote-tracking branch 'origin/merge/v0.9.0' into feature/test-…
iryabov Aug 13, 2024
debd58a
feat: Implement support for WebSocket connections
Aug 14, 2024
8d3eb6b
Merge pull request #60 from Drill4J/merge/v0.9.0
RomanDavlyatshin Aug 16, 2024
2306e54
feat: Implement support for WebSocket connections
Aug 20, 2024
9cd2f76
feat: Implement support for WebSocket connections
Aug 21, 2024
9fac635
feat: Implement support for WebSocket connections
Aug 21, 2024
5f81bd2
feat: Implement support for WebSocket connections
Aug 23, 2024
37c8aa2
Merge branch 'merge/v0.9.0' of https://github.com/Drill4J/lib-jvm-sha…
bodyangug Aug 23, 2024
a128e63
feat: Implement support for WebSocket connections
Aug 23, 2024
fd0ba9c
feat: remove logging-native module
bodyangug Aug 27, 2024
0058af4
feat: remove logging-native configuration
bodyangug Aug 27, 2024
e3e85fe
chore: remove logging-native from README
bodyangug Aug 27, 2024
bad8d2b
Merge remote-tracking branch 'remotes/origin/main' into feature/suppo…
Aug 27, 2024
557dafa
feat: Implement support for WebSocket connections
Aug 27, 2024
a80436c
feat: add ExperimentalForeignApi for methods
bodyangug Aug 28, 2024
cdd341c
feat: add ExperimentalNativeApi, ExperimentalForeignApi
bodyangug Aug 28, 2024
ed7bc63
fix: downgrade kotlin version to 1.9.10
bodyangug Aug 28, 2024
18d5ae5
fix: return kotlin version back
bodyangug Aug 29, 2024
78b332d
feat: Split agent-transport destination mappers for java-agent and au…
Aug 30, 2024
f8985b9
feat: Split agent-transport destination mappers for java-agent and au…
Aug 30, 2024
04a99cb
feat: add DrillRequestHolder, DrillRequestProcessor to agent-instrume…
iryabov Sep 2, 2024
f3f5d6d
fix: handle null for agentOptions (when -agentpath=<path> followed by…
RomanDavlyatshin Sep 4, 2024
f341cd7
Merge pull request #75 from Drill4J/fix/handle-agent-options-null
RomanDavlyatshin Sep 5, 2024
6c3ee39
Merge branch 'feature/test-session-EPMDJ-10891' into merge/0.9.2
iryabov Sep 24, 2024
388390e
Merge pull request #74 from Drill4J/feature/shared-request-holder-EPM…
iryabov Sep 24, 2024
27dc5ad
Merge pull request #77 from Drill4J/merge/v0.9.2
RomanDavlyatshin Sep 24, 2024
85f4566
Merge remote-tracking branch 'origin/main' into feature/support-arm-6…
iryabov Sep 30, 2024
42988f2
feat: add `CompatibilityTestsTransformer`
iryabov Oct 4, 2024
1dae698
chore: add licences
iryabov Oct 14, 2024
d80cc2b
Merge pull request #78 from Drill4J/feature/test-context-trasformer-E…
iryabov Oct 17, 2024
52c2742
Merge remote-tracking branch 'origin/main' into feature/support-for-w…
iryabov Oct 18, 2024
7acf749
fix: make a late initialization of IS_WS_MESSAGE property
iryabov Oct 18, 2024
cb62b5c
Merge pull request #72 from Drill4J/feature/support-for-websocket-con…
iryabov Oct 23, 2024
a289371
Merge remote-tracking branch 'origin/main' into feature/support-arm-6…
iryabov Oct 23, 2024
44f14f7
Merge remote-tracking branch 'origin/main' into feature/support-arm-6…
iryabov Oct 23, 2024
058c317
Merge remote-tracking branch 'origin/feature/support-arm-64-EPMDJ-108…
iryabov Oct 23, 2024
18f114e
Merge pull request #67 from Drill4J/feature/support-arm-64-EPMDJ-10882
iryabov Oct 23, 2024
13395bb
feat: parse method annotations
RomanDavlyatshin Oct 24, 2024
806324c
feat: include class annotations in AstMethod
RomanDavlyatshin Oct 25, 2024
b5ebf43
fix: merge conflict
RomanDavlyatshin Oct 25, 2024
b750597
Merge pull request #79 from Drill4J/feat/parse-method-annotations
RomanDavlyatshin Oct 28, 2024
38d5119
Merge pull request #73 from Drill4J/feature/split-agent-transport-des…
RomanDavlyatshin Oct 28, 2024
af99797
feat: add envId
RomanDavlyatshin Oct 29, 2024
233394a
refactor: move files from `com.epam.drill.common.agent` package to `c…
iryabov Oct 30, 2024
8498a61
refactor: remove unused module `plugin-api-admin`
iryabov Oct 30, 2024
a34df12
Merge pull request #80 from Drill4J/feat/add-env-id
RomanDavlyatshin Oct 30, 2024
b57d3d4
refactor: move files from `com.epam.drill.plugins.test2code` package …
iryabov Oct 31, 2024
d04d77c
refactor: move files from ` com.epam.drill.jvmapi` package to `com.ep…
iryabov Oct 31, 2024
2e921f4
refactor: move files from `com.epam.drill.konform` package to `com.ep…
iryabov Oct 31, 2024
a736425
refactor: move files from `com.epam.drill.plugins.test2code` package …
iryabov Oct 31, 2024
9e08466
docs: change readme
iryabov Oct 31, 2024
d3f793a
chore: remove redundant package
iryabov Oct 31, 2024
9dc5d4a
build: remove `logging` dependency where it is not necessary
iryabov Oct 31, 2024
bfd10dc
Merge remote-tracking branch 'origin/main' into feature/exclude-agent…
iryabov Oct 31, 2024
f768aa7
feat: change package for `DrillTestContext` instrumentation
iryabov Oct 31, 2024
daf6e37
Merge pull request #81 from Drill4J/feature/exclude-agent-packages-EP…
iryabov Nov 4, 2024
55d6d30
feat: mask `apiKey` in log messages
iryabov Nov 5, 2024
1aed947
build: disable including `interceptor-hook` and `interceptor-http`pro…
iryabov Nov 7, 2024
488c4e1
Merge pull request #82 from Drill4J/feature/credential-masking-for-lo…
iryabov Nov 7, 2024
c78d1b6
feat: add junit platform, junit4, testng6, testng7 instrumentation fo…
iryabov Nov 15, 2024
e0357fc
feat: add `TypedHttpAgentMessageTransport`
iryabov Nov 21, 2024
0ed3cd5
feat: add `enabled` function to `Transformer` class with default valu…
iryabov Nov 21, 2024
960400e
refactor: remove generics from `HttpAgentMessageTransport` class
iryabov Nov 27, 2024
212e9f9
refactor: use `destinationMapper` in `SimpleAgentMessageReceiver` class
iryabov Nov 27, 2024
0b2ed7e
refactor: use `LinkedBlockingQueue` instead of `ConcurrentLinkedQueue…
iryabov Nov 27, 2024
3126e66
feat: add `ExponentialBackoff` interface and implementation
iryabov Nov 27, 2024
ca84367
refactor: remove state notifier abstractions
iryabov Nov 27, 2024
10f5759
refactor: rewrite `QueuedAgentMessageSender` class
iryabov Nov 27, 2024
ff03070
refactor: change log levels
iryabov Nov 27, 2024
bc9f603
feat: unload a queue before shutting down
iryabov Nov 27, 2024
d9edc5d
feat: add SMART_SKIPPED test result
iryabov Nov 27, 2024
a3d138c
feat: improve shutdown handling in `QueuedAgentMessageSender`
iryabov Nov 28, 2024
b4cedf3
tests: fix tests `QueuedAgentMessageSenderTest`
iryabov Dec 12, 2024
5ac5e0c
feat: add `signature` getter to `TestDetails` as test identifier
iryabov Dec 12, 2024
b91f7ea
chore: add licence
iryabov Dec 12, 2024
abca0ab
Merge pull request #83 from Drill4J/feature/recommended-tests-EPMDJ-1…
iryabov Jan 10, 2025
8930810
feat: add `groupId`, `appId` to `CoveragePayload`
iryabov Jan 20, 2025
f2ed2fb
build: remove installing `libtinfo5`
iryabov Jan 20, 2025
b1c9517
Merge pull request #84 from Drill4J/feature/add-group-id-everywhere-E…
iryabov Jan 20, 2025
47bd08c
refactor: remove `Label` class
iryabov Jan 31, 2025
448a2d9
refactor: move `TestInfo`, `TestResponse`, `TestResult`, `TestDetails…
iryabov Jan 31, 2025
30b4dc1
Merge pull request #85 from Drill4J/feature/tags-support-EPMDJ-10979
iryabov Feb 6, 2025
b7a4a1e
feat: add `messageMaxRetries` parameter
iryabov Feb 7, 2025
02141c3
feat: add last attempt to send message on thread interruption failure
iryabov Feb 7, 2025
d156fc9
fix: set message limit by default for the logger configuration
iryabov Feb 7, 2025
79e584e
fix: return default value of `maxRetries` to 5 to fix tests
iryabov Feb 7, 2025
3878f27
build: upgrade actions/upload-artifact
iryabov Feb 7, 2025
ec9d906
Merge pull request #86 from Drill4J/feature/max-retries-EPMDJ-10975
iryabov Feb 10, 2025
125dc7c
fix: change `logback.configurationFile` system property when initiali…
iryabov Feb 17, 2025
da51511
chore: add a comment
iryabov Mar 5, 2025
37d3e63
Merge pull request #87 from Drill4J/fix/logback-appender-conflict-EPM…
RomanDavlyatshin Mar 7, 2025
ac4a997
feature: read session and test id from cookie header
RomanDavlyatshin Jul 4, 2025
9493112
feat: make sessionId and testId nullable + allow recording coverage e…
RomanDavlyatshin Jul 7, 2025
f6b2363
fix: include content type in message serialization for improved error…
iryabov Jul 18, 2025
5bcac1a
feat: add NullableAgentParameterDefinition for optional agent parameters
iryabov Jul 21, 2025
9483cee
feat: enhance agent parameter validation system
iryabov Jul 23, 2025
62c350a
Merge pull request #90 from Drill4J/fix/simple-agent-message-sender
iryabov Aug 13, 2025
11c6650
Merge pull request #88 from Drill4J/feature/read-session-and-test-id-…
iryabov Aug 13, 2025
6e1bc66
Merge pull request #89 from Drill4J/feature/refactor-configuration-sy…
iryabov Aug 14, 2025
b9867c0
feat: implement DrillThreadLocal and DrillInitialContext for enhanced…
iryabov Aug 15, 2025
3e02dfd
refactor: refactor thread local storage for DrillRequest and enhance …
iryabov Aug 19, 2025
c0d6d0f
feat: relocate transmittable thread local library to `com.drill.agent…
iryabov Aug 25, 2025
2ce331a
Merge branch 'feature/transmittable-thread-local-EPMDJ-11057' into fe…
iryabov Aug 25, 2025
609f216
Merge pull request #92 from Drill4J/feature/transmittable-thread-loca…
iryabov Aug 26, 2025
51688dd
Merge remote-tracking branch 'origin/main' into feature/before-after-…
iryabov Aug 26, 2025
3dfee2d
Merge remote-tracking branch 'origin/feature/before-after-test-sessio…
iryabov Aug 26, 2025
ba6b9ff
Merge pull request #91 from Drill4J/feature/before-after-test-session…
iryabov Aug 26, 2025
e5823e1
refactor: remove obsolete parameters `isWebApp`, `isTslApp`, `isAsync…
iryabov Aug 28, 2025
a0dd61d
feat: add `precheck` function to `Transformer` class
iryabov Sep 1, 2025
1594732
refactor: remove HttpInterceptor
iryabov Sep 1, 2025
58b9acb
feat: implement `enabled` function of `Transformer` classes on native…
iryabov Sep 1, 2025
1e4e911
fix: substitute `Configuration.parameters` to `Configuration` to avoi…
iryabov Sep 1, 2025
71f38e9
feat: add `TransformerRegistrar` class
iryabov Sep 2, 2025
e638f35
refactor: remove `enabled` and `precheck` methods from JvmTransformer…
iryabov Sep 2, 2025
0bd4f3e
feat: log enabled/disabled status of transformers during initialization
iryabov Sep 2, 2025
a3b5b11
refactor: update logger initialization and remove debug message in De…
iryabov Sep 2, 2025
1d7ccaf
refactor: improve logging messages
iryabov Sep 2, 2025
f9a727b
refactor: change visibility of agentConfiguration to protected in Abs…
iryabov Sep 2, 2025
07d3746
fix: make getDrillRequest nullable and return null for empty session ID
iryabov Sep 3, 2025
82e808f
fix: enhance package validation regex to allow optional negation
iryabov Sep 3, 2025
686b16e
fix: correct context handling in PublisherInterceptor for drill requests
iryabov Sep 5, 2025
9e01728
Merge pull request #93 from Drill4J/feature/enable-disable-transforme…
iryabov Sep 5, 2025
2b598e4
fix: refactor message serialization to avoid using reflective access …
RomanDavlyatshin Sep 9, 2025
2105dcc
fix: ensure proper cleanup of drill requests and execution data on re…
iryabov Sep 11, 2025
009574b
fix: remove unused gradle wrapper validation action from check.yml
iryabov Sep 11, 2025
3eb2638
Merge pull request #95 from Drill4J/fix/coverage-leak-EPMDJ-11061
iryabov Sep 11, 2025
23cc7ef
fix: update serialization process in tests
iryabov Sep 11, 2025
1c2e86d
Merge remote-tracking branch 'refs/remotes/origin/main' into fix/remo…
iryabov Sep 11, 2025
d2c2641
fix: enhance ReactorTransformerObject to conditionally enable based o…
iryabov Sep 11, 2025
21d20f6
Merge pull request #94 from Drill4J/fix/remove-reflection-in-serializ…
RomanDavlyatshin Sep 11, 2025
99c54fc
feat: implement runtime and environment parameters provider in JVM
iryabov Sep 16, 2025
17fca6f
fix: improve validation error handling in DefaultAgentParameters
iryabov Sep 17, 2025
5f35ce3
fix: prevent unloading of empty message queue
iryabov Sep 17, 2025
cb2809f
Merge pull request #96 from Drill4J/feature/premain-java-agent
RomanDavlyatshin Nov 6, 2025
f8899e8
feat: properties file parse multiline values
RomanDavlyatshin Nov 6, 2025
ceca1f2
Merge pull request #97 from Drill4J/feature/properties-file-parse-mul…
RomanDavlyatshin Nov 6, 2025
a09519c
feat: .properties parser - treat # as part of the value
RomanDavlyatshin Nov 7, 2025
a3af5a6
fix: remove debug lines
RomanDavlyatshin Nov 7, 2025
fbebce5
Merge pull request #98 from Drill4J/feature/properties-file-parse-mul…
RomanDavlyatshin Nov 7, 2025
2f3ed43
refactor: merge the autotest agent with the application agent
iryabov Dec 30, 2025
7cff872
refactor: merge the autotest agent with the application agent
iryabov Dec 30, 2025
0081f97
fix: clear context before removing because of context in inherited t…
iryabov Dec 30, 2025
d1738b7
fix: clear context before removing because of context in inherited t…
iryabov Dec 30, 2025
ee1843c
fix: fix NPE error in SeleniumTransformer
iryabov Dec 30, 2025
b3cc17c
feat: add probe position storage to CoverageManager & send cov per me…
RomanDavlyatshin Jan 20, 2026
6076c10
refactor: remove redundant classname from ExecDatum
RomanDavlyatshin Jan 21, 2026
8b0f25b
build: set sharedLibsRef & remove commented code
RomanDavlyatshin Jan 21, 2026
c8c700d
feat: send commitSha & buildVersion with CoveragePayload
RomanDavlyatshin Jan 22, 2026
e0834d8
build: update sharedLibsRef to point to feature/united-java-agent
iryabov Jan 27, 2026
a86b190
feat: send method body_checksum in coverage
RomanDavlyatshin Jan 29, 2026
5625f5d
Merge pull request #101 from Drill4J/feature/coverage-with-commit-sha…
RomanDavlyatshin Feb 13, 2026
6b2ae76
Merge pull request #100 from Drill4J/feat/send-coverage-data-per-method
RomanDavlyatshin Feb 19, 2026
224a26c
feat: implement checkAndTransform method for class transformation
iryabov Feb 20, 2026
30eeb5d
refactor: add CompositeTransformer to combine all Java transformers i…
iryabov Feb 23, 2026
9b495f0
tests: remove int test source sets replacing them with compatibility …
iryabov Feb 23, 2026
953d4e4
Merge remote-tracking branch 'origin/main' into feature/java25-support
iryabov Feb 23, 2026
741295b
refactor: update transform methods to return nullable ByteArray
iryabov Feb 24, 2026
3a14717
refactor: replace hardcoded compiler-generated name check with constant
iryabov Feb 24, 2026
5a7f9fd
Merge branch 'feature/java25-support' into feature/united-java-agent
iryabov Feb 24, 2026
21b1dce
Merge branch 'feature/java25-support' into feature/united-java-agent
iryabov Feb 24, 2026
d533ce3
refactor: replace TransformerObject with Transformer in test transfor…
iryabov Feb 24, 2026
4f16f4f
refactor: update test tracing parameters and logic in agent configura…
iryabov Feb 24, 2026
e0f8f1b
refactor: rename test tracing parameters for consistency and clarity
iryabov Feb 25, 2026
a8da5cf
fix: make SeleniumTransformer initialization as a lazy function to av…
iryabov Feb 25, 2026
67b300a
refactor: add logging for disabled classloader scanning and improve d…
iryabov Feb 25, 2026
c8863bb
Merge pull request #102 from Drill4J/feature/java25-support
RomanDavlyatshin Feb 26, 2026
842ed48
Merge branch 'main' into feature/united-java-agent
iryabov Feb 26, 2026
63d5141
Merge remote-tracking branch 'origin/main' into feature/united-java-a…
iryabov Feb 26, 2026
0ae9a61
refactor: remove unused parameters
iryabov Mar 2, 2026
b36ba4e
refactor: reorganize capability parameter definitions
iryabov Mar 2, 2026
895c37a
refactor: reorganize capability parameter definitions
iryabov Mar 2, 2026
21a2dcc
refactor: unify native agent parameter validation as in jvm agent
iryabov Mar 2, 2026
d670332
refactor: unify native agent parameter validation as in jvm agent
iryabov Mar 2, 2026
09ccba7
feat: add contextPropagationEnabled property to enable/disable all tr…
iryabov Mar 3, 2026
328e9fd
feat: add contextPropagationEnabled property to enable/disable all tr…
iryabov Mar 3, 2026
81d7d77
chore: add license header to AbstractPropagationTransformer.kt
iryabov Mar 11, 2026
eda375d
refactor: import lib-jvm-shared as subtree
iryabov Mar 11, 2026
7c2de83
refactor: remove setup-shared-libs script references from CI configur…
iryabov Mar 11, 2026
5a83f0b
refactor: remove setup-shared-libs script references from CI configur…
iryabov Mar 11, 2026
7fd07a2
feat: enable context propagation by setting contextPropagationEnabled…
iryabov Mar 12, 2026
42347e5
fix: check for the existence of classes that are used in instrumentation
iryabov Mar 16, 2026
9d6b7bc
feat: disable web socket instrumentation by default
iryabov Mar 17, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
6 changes: 0 additions & 6 deletions .github/workflows/check.yml
Original file line number Diff line number Diff line change
Expand Up @@ -24,12 +24,6 @@ jobs:
distribution: zulu
- if: matrix.config.preset == 'linuxX64' || matrix.config.preset == 'macosX64' || matrix.config.preset == 'macosArm64'
run: chmod +x ${{ github.workspace }}/gradlew
- if: matrix.config.preset == 'linuxX64' || matrix.config.preset == 'macosX64' || matrix.config.preset == 'macosArm64'
run: chmod +x ${{ github.workspace }}/setup-shared-libs.sh
- if: matrix.config.preset == 'linuxX64' || matrix.config.preset == 'macosX64' || matrix.config.preset == 'macosArm64'
run: ${{ github.workspace }}/setup-shared-libs.sh
- if: matrix.config.preset == 'mingwX64'
run: ${{ github.workspace }}/setup-shared-libs.bat
- uses: gradle/gradle-build-action@v2
with:
arguments: check
Expand Down
20 changes: 0 additions & 20 deletions .github/workflows/release.yml
Original file line number Diff line number Diff line change
Expand Up @@ -25,12 +25,6 @@ jobs:
distribution: zulu
- if: matrix.config.preset == 'linuxX64' || matrix.config.preset == 'macosX64' || matrix.config.preset == 'macosArm64'
run: chmod +x ${{ github.workspace }}/gradlew
- if: matrix.config.preset == 'linuxX64' || matrix.config.preset == 'macosX64' || matrix.config.preset == 'macosArm64'
run: chmod +x ${{ github.workspace }}/setup-shared-libs.sh
- if: matrix.config.preset == 'linuxX64' || matrix.config.preset == 'macosX64' || matrix.config.preset == 'macosArm64'
run: ${{ github.workspace }}/setup-shared-libs.sh
- if: matrix.config.preset == 'mingwX64'
run: ${{ github.workspace }}/setup-shared-libs.bat
- uses: gradle/gradle-build-action@v2
with:
arguments: check
Expand Down Expand Up @@ -90,12 +84,6 @@ jobs:
distribution: zulu
- if: matrix.config.preset == 'linuxX64' || matrix.config.preset == 'macosX64' || matrix.config.preset == 'macosArm64'
run: chmod +x ${{ github.workspace }}/gradlew
- if: matrix.config.preset == 'linuxX64' || matrix.config.preset == 'macosX64' || matrix.config.preset == 'macosArm64'
run: chmod +x ${{ github.workspace }}/setup-shared-libs.sh
- if: matrix.config.preset == 'linuxX64' || matrix.config.preset == 'macosX64' || matrix.config.preset == 'macosArm64'
run: ${{ github.workspace }}/setup-shared-libs.sh
- if: matrix.config.preset == 'mingwX64'
run: ${{ github.workspace }}/setup-shared-libs.bat
- uses: gradle/gradle-build-action@v2
with:
arguments: assemble
Expand All @@ -120,17 +108,9 @@ jobs:
java-version: 8.0
distribution: zulu
- run: chmod +x ${{ github.workspace }}/gradlew
- run: chmod +x ${{ github.workspace }}/setup-shared-libs.sh
- run: ${{ github.workspace }}/setup-shared-libs.sh
- run: 'git switch -c release/${{ needs.assets.outputs.tag }}'
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
- uses: gradle/gradle-build-action@v2
env:
SHARED_LIBS_USER: ${{ secrets.GH_PACKAGE_USERNAME }}
SHARED_LIBS_PASSWORD: ${{ secrets.GH_PACKAGE_TOKEN }}
with:
arguments: tagSharedLibs
- run: 'git commit -am "release: branch ${{ needs.assets.outputs.tag }}"'
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
Expand Down
1 change: 0 additions & 1 deletion DEVELOPMENT.md
Original file line number Diff line number Diff line change
Expand Up @@ -114,7 +114,6 @@ Following files are included in release (per component):
To set up environment for local development please perform following steps:
1. Install tools (git, gradle, java)
2. Clone component repository, checkout corresponding branch
3. Run script to set up lib-jvm-shared repository from Git: setup-shared-libs.bat/setup-shared-libs.sh

### Moving lib-jvm-shared to custom directory

Expand Down
15 changes: 0 additions & 15 deletions build.gradle.kts
Original file line number Diff line number Diff line change
Expand Up @@ -104,19 +104,4 @@ tasks {
gitrepo.pull()
}
}
val tagSharedLibs by registering {
group = "other"
doLast {
val tag = "${project.name}-v${project.version}"
val gitrepo = Grgit.open {
dir = sharedLibsDir
credentials = Credentials(System.getenv("SHARED_LIBS_USER"), System.getenv("SHARED_LIBS_PASSWORD"))
}
gitrepo.tag.add { name = tag }
gitrepo.push { refsOrSpecs = listOf("tags/$tag") }
val properties = Configurations().propertiesBuilder(file("gradle.properties"))
properties.configuration.setProperty("sharedLibsRef", tag)
properties.save()
}
}
}
2 changes: 1 addition & 1 deletion gradle.properties
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,7 @@ aesyDatasizeVersion = 1.0.0
bytebuddyVersion = 1.14.11
asmVersion = 9.8

sharedLibsRef = main
sharedLibsRef = feature/united-java-agent
sharedLibsLocalPath = lib-jvm-shared
nativeAgentLibName = drill-agent
nativeAgentHookEnabled = false
Expand Down
2 changes: 2 additions & 0 deletions java-agent/build.gradle.kts
Original file line number Diff line number Diff line change
Expand Up @@ -75,6 +75,7 @@ kotlin {
languageSettings.optIn("kotlin.ExperimentalStdlibApi")
languageSettings.optIn("kotlinx.serialization.ExperimentalSerializationApi")
languageSettings.optIn("io.ktor.utils.io.core.ExperimentalIoApi")
languageSettings.optIn("kotlinx.serialization.InternalSerializationApi")
}
targets.withType<KotlinNativeTarget>()[HostManager.host.presetName].compilations.forEach {
it.defaultSourceSet.kotlin.srcDir("src/native${it.compilationName.capitalize()}/kotlin")
Expand Down Expand Up @@ -117,6 +118,7 @@ kotlin {
implementation("org.jetbrains.kotlinx:kotlinx-serialization-protobuf:${kotlinxSerializationVersion}")
implementation("org.jetbrains.kotlinx:kotlinx-cli:${kotlinxCliVersion}")
implementation("org.ow2.asm:asm:${asmVersion}")
implementation("com.benasher44:uuid:${uuidVersion}")
implementation(project(":common"))
implementation(project(":agent-transport"))
implementation(project(":agent-instrumentation"))
Expand Down
5 changes: 5 additions & 0 deletions java-agent/drill.properties
Original file line number Diff line number Diff line change
@@ -1 +1,6 @@
logLevel=INFO
#Capabilities
coverageCollectionEnabled=true
classScanningEnabled=true
contextPropagationEnabled=true
testTracingEnabled=false
Original file line number Diff line number Diff line change
@@ -1,47 +1,74 @@
/**
* Copyright 2020 - 2022 EPAM Systems
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package com.epam.drill.agent.configuration

import com.epam.drill.agent.common.configuration.AgentParameterDefinition
import com.epam.drill.agent.common.configuration.AgentParameterDefinitionCollection
import com.epam.drill.agent.common.configuration.NullableAgentParameterDefinition

object ParameterDefinitions: AgentParameterDefinitionCollection() {

val API_URL = AgentParameterDefinition.forString(
name = "apiUrl",
description = "URL to Drill4J Backend /api endpoint. Example: http://localhost:8090/api",
parser = { if (!it.endsWith("/")) "$it/" else it },
validator = { validTransportUrl() }).register()
val API_KEY = NullableAgentParameterDefinition.forString(
name = "apiKey",
description = "Drill4J API key. It is recommended to set it with DRILL_API_KEY env variable, rather than using command line argument"
).register()
val MESSAGE_SENDING_MODE = AgentParameterDefinition.forString(
name = "messageSendingMode",
description = "Message sending mode. Possible values: DIRECT, QUEUED",
defaultValue = "QUEUED").register()
val MESSAGE_QUEUE_LIMIT = AgentParameterDefinition.forString(name = "messageQueueLimit", defaultValue = "512Mb").register()
val MESSAGE_MAX_RETRIES = AgentParameterDefinition.forInt(name = "messageMaxRetries", defaultValue = Int.MAX_VALUE).register()
val SSL_TRUSTSTORE = NullableAgentParameterDefinition.forString(name = "sslTruststore").register()
val SSL_TRUSTSTORE_PASSWORD = NullableAgentParameterDefinition.forString(name = "sslTruststorePassword").register()
val LOG_LEVEL = AgentParameterDefinition.forString(name = "logLevel", defaultValue = "INFO").register()
val LOG_FILE = NullableAgentParameterDefinition.forString(name = "logFile").register()
val LOG_LIMIT = AgentParameterDefinition.forInt(name = "logLimit", defaultValue = 512).register()
val USE_PROTOBUF_SERIALIZER =
AgentParameterDefinition.forBoolean(name = "useProtobufSerializer", defaultValue = true).register()
val USE_GZIP_COMPRESSION = AgentParameterDefinition.forBoolean(name = "useGzipCompression", defaultValue = true).register()
}
/**
* Copyright 2020 - 2022 EPAM Systems
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package com.epam.drill.agent.configuration

import com.epam.drill.agent.common.configuration.AgentParameterDefinition
import com.epam.drill.agent.common.configuration.AgentParameterDefinitionCollection
import com.epam.drill.agent.common.configuration.NullableAgentParameterDefinition

object ParameterDefinitions: AgentParameterDefinitionCollection() {

val API_URL = AgentParameterDefinition.forString(
name = "apiUrl",
description = "URL to Drill4J Backend /api endpoint. Example: http://localhost:8090/api",
parser = { if (!it.endsWith("/")) "$it/" else it },
validator = { validTransportUrl() }).register()
val API_KEY = NullableAgentParameterDefinition.forString(
name = "apiKey",
description = "Drill4J API key. It is recommended to set it with DRILL_API_KEY env variable, rather than using command line argument"
).register()
val MESSAGE_SENDING_MODE = AgentParameterDefinition.forString(
name = "messageSendingMode",
description = "Message sending mode. Possible values: DIRECT, QUEUED",
defaultValue = "QUEUED").register()
val MESSAGE_QUEUE_LIMIT = AgentParameterDefinition.forString(name = "messageQueueLimit", defaultValue = "512Mb").register()
val MESSAGE_MAX_RETRIES = AgentParameterDefinition.forInt(name = "messageMaxRetries", defaultValue = Int.MAX_VALUE).register()
val SSL_TRUSTSTORE = NullableAgentParameterDefinition.forString(name = "sslTruststore").register()
val SSL_TRUSTSTORE_PASSWORD = NullableAgentParameterDefinition.forString(name = "sslTruststorePassword").register()
val LOG_LEVEL = AgentParameterDefinition.forString(name = "logLevel", defaultValue = "INFO").register()
val LOG_FILE = NullableAgentParameterDefinition.forString(name = "logFile").register()
val LOG_LIMIT = AgentParameterDefinition.forInt(name = "logLimit", defaultValue = 512).register()
val USE_PROTOBUF_SERIALIZER =
AgentParameterDefinition.forBoolean(name = "useProtobufSerializer", defaultValue = true).register()
val USE_GZIP_COMPRESSION = AgentParameterDefinition.forBoolean(name = "useGzipCompression", defaultValue = true).register()

val WITH_JS_COVERAGE = AgentParameterDefinition.forBoolean(name = "withJsCoverage", defaultValue = false).register()
val PROXY_ADDRESS = AgentParameterDefinition.forString(name = "browserProxyAddress", defaultValue = "").register()
val DEVTOOLS_PROXY_ADDRESS = AgentParameterDefinition.forString(
name = "devToolsProxyAddress",
defaultValue = "http://localhost:9222",
parser = { it.trim().takeIf(String::isBlank) ?: it.takeIf(URL_SCHEME_REGEX::matches) ?: "http://$it"}
).register()
val DEVTOOLS_REPLACE_LOCALHOST = AgentParameterDefinition.forString(name = "devtoolsAddressReplaceLocalhost", defaultValue = "").register()
val TEST_SESSION_ID = NullableAgentParameterDefinition.forString(name = "testSessionId").register()
val LAUNCH_TYPE = AgentParameterDefinition.forString(name = "launchType", defaultValue = "").register()

private val URL_SCHEME_REGEX = Regex("\\w+://.+")

val JS_AGENT_BUILD_VERSION = NullableAgentParameterDefinition.forString(name = "jsAgentBuildVersion").register()
val JS_AGENT_ID = NullableAgentParameterDefinition.forString(name = "jsAgentId").register()

val TEST_TASK_ID = AgentParameterDefinition.forString(name = "testTaskId", defaultValue = "").register()
val RECOMMENDED_TESTS_ENABLED = AgentParameterDefinition.forBoolean(name = "recommendedTestsEnabled", defaultValue = false).register()
val RECOMMENDED_TESTS_TARGET_APP_ID = AgentParameterDefinition.forString(name = "recommendedTestsTargetAppId", defaultValue = "").register()
val RECOMMENDED_TESTS_TARGET_COMMIT_SHA = AgentParameterDefinition.forString(name = "recommendedTestsTargetCommitSha", defaultValue = "").register()
val RECOMMENDED_TESTS_TARGET_BUILD_VERSION = AgentParameterDefinition.forString(name = "recommendedTestsTargetBuildVersion", defaultValue = "").register()
val RECOMMENDED_TESTS_BASELINE_COMMIT_SHA = AgentParameterDefinition.forString(name = "recommendedTestsBaselineCommitSha", defaultValue = "").register()
val RECOMMENDED_TESTS_BASELINE_BUILD_VERSION = AgentParameterDefinition.forString(name = "recommendedTestsBaselineBuildVersion", defaultValue = "").register()

val TEST_TRACING_PER_SESSION_ENABLED = AgentParameterDefinition.forBoolean(name = "testTracingPerTestSessionEnabled", defaultValue = true).register()
val TEST_TRACING_PER_TEST_LAUNCH_ENABLED = AgentParameterDefinition.forBoolean(name = "testTracingPerTestLaunchEnabled", defaultValue = true).register()
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
/**
* Copyright 2020 - 2022 EPAM Systems
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package com.epam.drill.agent.test.instrument.cucumber

import com.epam.drill.agent.instrument.Transformer

expect object Cucumber4Transformer : Transformer
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
/**
* Copyright 2020 - 2022 EPAM Systems
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package com.epam.drill.agent.test.instrument.cucumber

import com.epam.drill.agent.instrument.Transformer

expect object Cucumber5Transformer : Transformer
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
/**
* Copyright 2020 - 2022 EPAM Systems
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package com.epam.drill.agent.test.instrument.cucumber

import com.epam.drill.agent.instrument.Transformer

expect object Cucumber6Transformer : Transformer
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
/**
* Copyright 2020 - 2022 EPAM Systems
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package com.epam.drill.agent.test.instrument.jmeter

import com.epam.drill.agent.instrument.Transformer

expect object JMeterTransformer : Transformer
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
/**
* Copyright 2020 - 2022 EPAM Systems
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package com.epam.drill.agent.test.instrument.junit

import com.epam.drill.agent.instrument.Transformer

expect object JUnit4PrioritizingTransformer : Transformer
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
/**
* Copyright 2020 - 2022 EPAM Systems
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package com.epam.drill.agent.test.instrument.junit

import com.epam.drill.agent.instrument.Transformer

expect object JUnit4Transformer : Transformer
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
/**
* Copyright 2020 - 2022 EPAM Systems
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package com.epam.drill.agent.test.instrument.junit

import com.epam.drill.agent.instrument.Transformer

expect object JUnit5Transformer : Transformer
Loading
Loading