Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 4 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -5,9 +5,13 @@ We use [semantic versioning](http://semver.org/):
- PATCH version when you make backwards compatible bug fixes.

# Next version
- [breaking] _agent_, _teamscale-maven-plugin_: `includes` and `excludes` only match the class name, no longer parts of the class file's path (e.g. `*target.classes.*`). Nested classes are written with `$` (e.g. `com.company.Outer$Inner`).
- [feature] _agent_: Added official support for Java 27 and experimental support for Java 28 (via JaCoCo 0.8.16)
- [fix] _agent_, _teamscale-maven-plugin_: `includes` and `excludes` patterns no longer need a leading `*`. Previously, e.g. `com.company.*` led to an empty testwise coverage report.
- [fix] _teamscale-maven-plugin_: `prepare-tia-unit-test` and `prepare-tia-integration-test` no longer require a commit or revision when `runImpacted` is `false`.
- [fix] _teamscale-gradle-plugin_, _teamscale-maven-plugin_: Testwise coverage reports no longer drop a class directory that contains an archive (JAR, WAR, EAR, ZIP) that contains a JAR.
- [fix] _agent_: With `duplicates=FAIL`, the error for a duplicate, non-identical class now names the class and how to resolve the problem.
- [fix] _agent_, _teamscale-gradle-plugin_, _teamscale-maven-plugin_: A corrupt class file whose class name cannot be read is skipped with a warning instead of failing the coverage report.

# 39.0.0
- [breaking] _agent_: The deprecated Docker image `cqse/teamscale-jacoco-agent` is no longer published. Use `cqse/teamscale-java-profiler` instead, which has replaced it since version 36.5.0.
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -38,10 +38,10 @@ class ConvertCommand : ICommand {
*/
@Parameter(
names = ["--includes"], description = (""
+ "Wildcard include patterns to apply to all found class file locations during JaCoCo's traversal of class files."
+ " Note that zip contents are separated from zip files with @ and that you can filter only"
+ " class files, not intermediate folders/zips. Use with great care as missing class files"
+ " lead to broken coverage files! Turn on debug logging to see which locations are being filtered."
+ "Wildcard include patterns for the fully qualified names of the analyzed classes (e.g. com.company.*)."
+ " Nested classes are written with \$ (e.g. com.company.Outer\$Inner). Use with great care as missing"
+ " class files lead to broken coverage files! Turn on debug logging to see which class files are"
+ " being filtered."
+ " Defaults to no filtering. Excludes overrule includes.")
)
var locationIncludeFilters = mutableListOf<String>()
Expand All @@ -51,10 +51,10 @@ class ConvertCommand : ICommand {
*/
@Parameter(
names = ["--excludes", "-e"], description = (""
+ "Wildcard exclude patterns to apply to all found class file locations during JaCoCo's traversal of class files."
+ " Note that zip contents are separated from zip files with @ and that you can filter only"
+ " class files, not intermediate folders/zips. Use with great care as missing class files"
+ " lead to broken coverage files! Turn on debug logging to see which locations are being filtered."
+ "Wildcard exclude patterns for the fully qualified names of the analyzed classes (e.g. com.company.*)."
+ " Nested classes are written with \$ (e.g. com.company.Outer\$Inner). Use with great care as missing"
+ " class files lead to broken coverage files! Turn on debug logging to see which class files are"
+ " being filtered."
+ " Defaults to no filtering. Excludes overrule includes.")
)
var locationExcludeFilters = mutableListOf<String>()
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -49,24 +49,20 @@ class AgentOptionsTest {
@Throws(Exception::class)
fun testIncludePatternMatching() {
Assertions.assertThat(includeFilter("com.*")).accepts(
"file.jar@com/foo/Bar.class", $$"file.jar@com/foo/Bar$Goo.class",
"file1.jar@goo/file2.jar@com/foo/Bar.class", "com/foo/Bar.class", "com.foo/Bar.class"
"com/foo/Bar", $$"com/foo/Bar$Goo"
)
Assertions.assertThat(includeFilter("com.*")).rejects(
"foo/com/Bar.class", "com.class", "file.jar@com.class",
$$"A$com$Bar.class"
"foo/com/Bar", "com", $$"A$com$Bar"
)
Assertions.assertThat(includeFilter("*com.*")).accepts(
"file.jar@com/foo/Bar.class", $$"file.jar@com/foo/Bar$Goo.class",
"file1.jar@goo/file2.jar@com/foo/Bar.class", "com/foo/Bar.class", "foo/com/goo/Bar.class",
$$"A$com$Bar.class", "src/com/foo/Bar.class"
"com/foo/Bar", $$"com/foo/Bar$Goo", "foo/com/goo/Bar"
)
Assertions.assertThat(includeFilter("*com.*;*de.*"))
.accepts("file.jar@com/foo/Bar.class", $$"file.jar@de/foo/Bar$Goo.class")
Assertions.assertThat(excludeFilter("*com.*;*de.*"))
.rejects("file.jar@com/foo/Bar.class", $$"file.jar@de/foo/Bar$Goo.class")
Assertions.assertThat(includeFilter("*com.customer.*")).accepts(
"C:\\client-daily\\client\\plugins\\com.customer.something.client_1.2.3.4.1234566778.jar@com/customer/something/SomeClass.class"
Assertions.assertThat(includeFilter("com.*;de.*"))
.accepts("com/foo/Bar", $$"de/foo/Bar$Goo")
Assertions.assertThat(excludeFilter("com.*;de.*"))
.rejects("com/foo/Bar", $$"de/foo/Bar$Goo")
Assertions.assertThat(includeFilter("com.customer.*")).accepts(
"com/customer/something/SomeClass"
)
}

Expand Down
2 changes: 1 addition & 1 deletion gradle/libs.versions.toml
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
[versions]
# When upgrading JaCoCo to a newer version, make sure to
# check the comment in the OpenAnalyzer.java, JaCoCoPreMain.java and CachingInstructionsBuilder.java
# check the comment in the JaCoCoPreMain.java and CachingInstructionsBuilder.java
# and update the internal_xxxxxx hash included in the imports in LenientCoverageTransformer.java and JaCoCoPreMain.java.
jacoco = "0.8.16"
# We need to stay on the 1.3.x release line as 1.4.x requires Java 11
Expand Down

This file was deleted.

Loading
Loading