diff --git a/.azure-pipelines/azure-pipelines.yml b/.azure-pipelines/azure-pipelines.yml
index 893ec71b69..7ed12a5f88 100644
--- a/.azure-pipelines/azure-pipelines.yml
+++ b/.azure-pipelines/azure-pipelines.yml
@@ -49,6 +49,10 @@ jobs:
JDK_VERSION: 22
JDK 23:
JDK_VERSION: 23
+ JDK 24:
+ JDK_VERSION: 24
+ JDK 25:
+ JDK_VERSION: 25
pool:
vmImage: 'ubuntu-20.04'
steps:
@@ -75,12 +79,6 @@ jobs:
" > toolchains.xml
displayName: Setup JDK
- - bash: |
- set -e
- mkdir .maven
- curl -L "https://archive.apache.org/dist/maven/maven-3/3.8.3/binaries/apache-maven-3.8.3-bin.tar.gz" -o .maven/maven.tar.gz
- tar -xzf .maven/maven.tar.gz -C .maven --strip-components 1
- displayName: Setup Maven
- bash: |
if [[ "$JDK_VERSION" -ge "17" ]]; then
export JAVA_HOME=$PWD/.jdk
@@ -88,17 +86,17 @@ jobs:
export JAVA_HOME=$JAVA_HOME_17_X64
fi
if [[ "$BUILD_SOURCEBRANCH" == "refs/heads/master" && "$JDK_VERSION" == "5" ]]; then
- .maven/bin/mvn -V -B -e --no-transfer-progress -f org.jacoco.build \
+ ./mvnw -V -B -e --no-transfer-progress -f org.jacoco.build \
verify -Djdk.version=$JDK_VERSION -Dbytecode.version=$JDK_VERSION \
deploy:deploy -DdeployAtEnd \
--toolchains=toolchains.xml --settings=.azure-pipelines/maven-settings.xml
elif [[ "$BUILD_SOURCEBRANCH" == "refs/heads/master" && "$JDK_VERSION" == "11" ]]; then
- .maven/bin/mvn -V -B -e --no-transfer-progress -f org.jacoco.build \
+ ./mvnw -V -B -e --no-transfer-progress -f org.jacoco.build \
verify -Djdk.version=$JDK_VERSION -Dbytecode.version=$JDK_VERSION \
- sonar:sonar \
+ sonar:sonar -Dsonar.scanner.skipJreProvisioning \
--toolchains=toolchains.xml --settings=.azure-pipelines/maven-settings.xml
else
- .maven/bin/mvn -V -B -e --no-transfer-progress \
+ ./mvnw -V -B -e --no-transfer-progress \
verify -Djdk.version=$JDK_VERSION -Dbytecode.version=$JDK_VERSION -Decj=${ECJ:-} \
--toolchains=toolchains.xml
fi
diff --git a/.azure-pipelines/maven-settings.xml b/.azure-pipelines/maven-settings.xml
index dbce384964..2b7c4b2ab9 100644
--- a/.azure-pipelines/maven-settings.xml
+++ b/.azure-pipelines/maven-settings.xml
@@ -13,7 +13,7 @@
https://sonarcloud.io/
default
- ${env.SONARQUBE_TOKEN}
+ ${env.SONARQUBE_TOKEN}
diff --git a/.github/dependabot.yml b/.github/dependabot.yml
index 51d2ae7554..9271f24667 100644
--- a/.github/dependabot.yml
+++ b/.github/dependabot.yml
@@ -8,7 +8,32 @@ updates:
- "dependencies"
- "component: build"
- package-ecosystem: "maven"
- directory: "/"
+ directory: "/org.jacoco.build"
+ schedule:
+ interval: "weekly"
+ labels:
+ - "dependencies"
+ - "component: build"
+ allow:
+ - dependency-name: "org.apache.maven.plugins:*"
+ - dependency-name: "org.codehaus.mojo:*"
+ - dependency-name: "com.diffplug.spotless:*"
+ - dependency-name: "org.apache.felix:*"
+ - dependency-name: "org.sonarsource.scanner.maven:*"
+ ignore:
+ # It is known that upgrade from current version requires additional changes:
+ - dependency-name: "org.apache.maven.plugins:maven-plugin-plugin"
+ # Because of
+ # https://github.com/apache/maven-compiler-plugin/blob/maven-compiler-plugin-3.13.0/pom.xml#L71
+ # https://github.com/codehaus-plexus/plexus-compiler/blob/plexus-compiler-2.15.0/plexus-compilers/plexus-compiler-javac/src/main/java/org/codehaus/plexus/compiler/javac/JavacCompiler.java#L149-L163
+ # requires javac version to be at least 6:
+ - dependency-name: "org.apache.maven.plugins:maven-compiler-plugin"
+ versions: ">=3.13.0"
+ # Requires tests to be executed with Java 6:
+ - dependency-name: "org.apache.maven.plugins:maven-surefire-plugin"
+ versions: ">=2.20.0"
+ - package-ecosystem: "maven"
+ directory: "/org.jacoco.core"
schedule:
interval: "daily"
labels:
@@ -16,3 +41,13 @@ updates:
- "component: core"
allow:
- dependency-name: "org.ow2.asm:*"
+ - package-ecosystem: "maven"
+ directory: "/org.jacoco.core.test.validation.kotlin"
+ schedule:
+ interval: "weekly"
+ labels:
+ - "dependencies"
+ - "component: test"
+ - "language: Kotlin"
+ allow:
+ - dependency-name: "org.jetbrains.kotlin:*"
diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml
index 980990658f..e3c8ef4c7b 100644
--- a/.github/workflows/ci.yml
+++ b/.github/workflows/ci.yml
@@ -9,14 +9,22 @@ jobs:
matrix:
include:
- jdk: 8
+ - jdk: 8
+ ecj: true
+ - jdk: 11
- jdk: 11
+ ecj: true
- jdk: 17
+ - jdk: 17
+ ecj: true
+ - jdk: 21
- jdk: 21
- name: JDK ${{ matrix.jdk }}
+ ecj: true
+ name: JDK ${{ matrix.jdk }}${{ matrix.ecj && ' with ECJ' || ''}}
runs-on: ubuntu-20.04
steps:
- - uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4.1.1
- - uses: actions/setup-java@99b8673ff64fbf99d8d325f52d9a5bdedb8483e9 # v4.2.1
+ - uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
+ - uses: actions/setup-java@3a4f6e1af504cf6a31855fa899c6aa5355ba6c12 # v4.7.0
with:
distribution: 'zulu'
java-version: |
@@ -43,14 +51,15 @@ jobs:
" > toolchains.xml
- name: 'Build'
run: |
- mvn -V -B -e --no-transfer-progress \
+ ./mvnw -V -B -e --no-transfer-progress \
verify -Djdk.version=${{ matrix.jdk }} -Dbytecode.version=${{ matrix.jdk }} \
+ ${{ matrix.ecj && '-Decj' || ''}} \
--toolchains=toolchains.xml
Windows:
runs-on: windows-2022
steps:
- - uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4.1.1
- - uses: actions/setup-java@99b8673ff64fbf99d8d325f52d9a5bdedb8483e9 # v4.2.1
+ - uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
+ - uses: actions/setup-java@3a4f6e1af504cf6a31855fa899c6aa5355ba6c12 # v4.7.0
with:
distribution: 'zulu'
java-version: |
@@ -79,10 +88,10 @@ jobs:
- name: 'Build'
shell: bash
run: |
- mvn -V -B -e --no-transfer-progress \
+ ./mvnw -V -B -e --no-transfer-progress \
verify -Djdk.version=6 -Dbytecode.version=5 \
--toolchains=toolchains.xml
- - uses: actions/upload-artifact@5d5d22a31266ced268874388b861e4b58bb5c2f3 # v4.3.1
+ - uses: actions/upload-artifact@ea165f8d65b6e75b540449e92b4886f43607fa02 # v4.6.2
id: artifact-upload-step
with:
name: jacoco
diff --git a/.idea/codeInsightSettings.xml b/.idea/codeInsightSettings.xml
new file mode 100644
index 0000000000..62ce4d17bd
--- /dev/null
+++ b/.idea/codeInsightSettings.xml
@@ -0,0 +1,8 @@
+
+
+
+
+ jdk.internal.*
+
+
+
\ No newline at end of file
diff --git a/.idea/codeStyles/Project.xml b/.idea/codeStyles/Project.xml
new file mode 100644
index 0000000000..a74a84d3a0
--- /dev/null
+++ b/.idea/codeStyles/Project.xml
@@ -0,0 +1,8 @@
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/codeStyles/codeStyleConfig.xml b/.idea/codeStyles/codeStyleConfig.xml
new file mode 100644
index 0000000000..79ee123c2b
--- /dev/null
+++ b/.idea/codeStyles/codeStyleConfig.xml
@@ -0,0 +1,5 @@
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/eclipseCodeFormatter.xml b/.idea/eclipseCodeFormatter.xml
new file mode 100644
index 0000000000..992c75f5c6
--- /dev/null
+++ b/.idea/eclipseCodeFormatter.xml
@@ -0,0 +1,12 @@
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/externalDependencies.xml b/.idea/externalDependencies.xml
new file mode 100644
index 0000000000..0502dcf71c
--- /dev/null
+++ b/.idea/externalDependencies.xml
@@ -0,0 +1,6 @@
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.mvn/wrapper/maven-wrapper.properties b/.mvn/wrapper/maven-wrapper.properties
new file mode 100644
index 0000000000..fe9deed0b0
--- /dev/null
+++ b/.mvn/wrapper/maven-wrapper.properties
@@ -0,0 +1,20 @@
+# Licensed to the Apache Software Foundation (ASF) under one
+# or more contributor license agreements. See the NOTICE file
+# distributed with this work for additional information
+# regarding copyright ownership. The ASF licenses this file
+# to you 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.
+wrapperVersion=3.3.2
+distributionType=only-script
+distributionUrl=https://repo.maven.apache.org/maven2/org/apache/maven/apache-maven/3.9.9/apache-maven-3.9.9-bin.zip
+distributionSha256Sum=4ec3f26fb1a692473aea0235c300bd20f0f9fe741947c82c1234cefd76ac3a3c
diff --git a/LICENSE.md b/LICENSE.md
index 0c2e74523f..50688de56c 100644
--- a/LICENSE.md
+++ b/LICENSE.md
@@ -1,7 +1,7 @@
License
=======
-Copyright (c) 2009, 2024 Mountainminds GmbH & Co. KG and Contributors
+Copyright (c) 2009, 2025 Mountainminds GmbH & Co. KG and Contributors
The JaCoCo Java Code Coverage Library and all included documentation is made
available by Mountainminds GmbH & Co. KG, Munich. Except indicated below, the
diff --git a/jacoco-maven-plugin.test/it/it-check-fails-halt/pom.xml b/jacoco-maven-plugin.test/it/it-check-fails-halt/pom.xml
index 2b58a34d1d..81656f0df3 100644
--- a/jacoco-maven-plugin.test/it/it-check-fails-halt/pom.xml
+++ b/jacoco-maven-plugin.test/it/it-check-fails-halt/pom.xml
@@ -1,6 +1,6 @@
-
-
-
-
-
-
-
-
diff --git a/org.jacoco.ant.test/src/org/jacoco/ant/CreateExecFiles.java b/org.jacoco.ant.test/src/org/jacoco/ant/CreateExecFiles.java
index 7179c3f73d..e1518f0afb 100644
--- a/org.jacoco.ant.test/src/org/jacoco/ant/CreateExecFiles.java
+++ b/org.jacoco.ant.test/src/org/jacoco/ant/CreateExecFiles.java
@@ -1,5 +1,5 @@
/*******************************************************************************
- * Copyright (c) 2009, 2024 Mountainminds GmbH & Co. KG and Contributors
+ * Copyright (c) 2009, 2025 Mountainminds GmbH & Co. KG and Contributors
* This program and the accompanying materials are made available under
* the terms of the Eclipse Public License 2.0 which is available at
* http://www.eclipse.org/legal/epl-2.0
diff --git a/org.jacoco.ant.test/src/org/jacoco/ant/DumpExecClassNames.java b/org.jacoco.ant.test/src/org/jacoco/ant/DumpExecClassNames.java
index e240a2139e..d86382f355 100644
--- a/org.jacoco.ant.test/src/org/jacoco/ant/DumpExecClassNames.java
+++ b/org.jacoco.ant.test/src/org/jacoco/ant/DumpExecClassNames.java
@@ -1,5 +1,5 @@
/*******************************************************************************
- * Copyright (c) 2009, 2024 Mountainminds GmbH & Co. KG and Contributors
+ * Copyright (c) 2009, 2025 Mountainminds GmbH & Co. KG and Contributors
* This program and the accompanying materials are made available under
* the terms of the Eclipse Public License 2.0 which is available at
* http://www.eclipse.org/legal/epl-2.0
diff --git a/org.jacoco.ant.test/src/org/jacoco/ant/DumpTaskTest.java b/org.jacoco.ant.test/src/org/jacoco/ant/DumpTaskTest.java
index e6a47c8eef..44c2d11828 100644
--- a/org.jacoco.ant.test/src/org/jacoco/ant/DumpTaskTest.java
+++ b/org.jacoco.ant.test/src/org/jacoco/ant/DumpTaskTest.java
@@ -1,5 +1,5 @@
/*******************************************************************************
- * Copyright (c) 2009, 2024 Mountainminds GmbH & Co. KG and Contributors
+ * Copyright (c) 2009, 2025 Mountainminds GmbH & Co. KG and Contributors
* This program and the accompanying materials are made available under
* the terms of the Eclipse Public License 2.0 which is available at
* http://www.eclipse.org/legal/epl-2.0
diff --git a/org.jacoco.ant.test/src/org/jacoco/ant/DumpTaskTest.xml b/org.jacoco.ant.test/src/org/jacoco/ant/DumpTaskTest.xml
index e1be746319..8cc3a87dec 100644
--- a/org.jacoco.ant.test/src/org/jacoco/ant/DumpTaskTest.xml
+++ b/org.jacoco.ant.test/src/org/jacoco/ant/DumpTaskTest.xml
@@ -1,7 +1,7 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/org.jacoco.ant.test/src/org/jacoco/ant/TestTarget.java b/org.jacoco.ant.test/src/org/jacoco/ant/TestTarget.java
index f3e5966c0e..9a65edd69a 100644
--- a/org.jacoco.ant.test/src/org/jacoco/ant/TestTarget.java
+++ b/org.jacoco.ant.test/src/org/jacoco/ant/TestTarget.java
@@ -1,5 +1,5 @@
/*******************************************************************************
- * Copyright (c) 2009, 2024 Mountainminds GmbH & Co. KG and Contributors
+ * Copyright (c) 2009, 2025 Mountainminds GmbH & Co. KG and Contributors
* This program and the accompanying materials are made available under
* the terms of the Eclipse Public License 2.0 which is available at
* http://www.eclipse.org/legal/epl-2.0
diff --git a/org.jacoco.ant.test/src/org/jacoco/ant/empty.xml b/org.jacoco.ant.test/src/org/jacoco/ant/empty.xml
new file mode 100644
index 0000000000..7a0414be50
--- /dev/null
+++ b/org.jacoco.ant.test/src/org/jacoco/ant/empty.xml
@@ -0,0 +1,17 @@
+
+
+
+
+
+
+
diff --git a/org.jacoco.ant/pom.xml b/org.jacoco.ant/pom.xml
index 40b3ea51a8..6c6250c85b 100644
--- a/org.jacoco.ant/pom.xml
+++ b/org.jacoco.ant/pom.xml
@@ -1,6 +1,6 @@
- 9.7
+ 9.8
1.9.16
2.0.28
- 4.13.1
+ 4.13.2
20100721
@@ -237,7 +237,7 @@
org.apache.ant
ant-antunit
- 1.4
+ 1.4.1
args4j
@@ -302,57 +302,58 @@
org.apache.maven.plugins
maven-assembly-plugin
- 3.6.0
+ 3.7.1
org.apache.maven.plugins
maven-clean-plugin
- 3.2.0
+ 3.4.1
org.apache.maven.plugins
maven-compiler-plugin
- 3.11.0
+
+ 3.12.1
org.apache.maven.plugins
maven-dependency-plugin
- 3.6.0
+ 3.8.1
org.apache.maven.plugins
maven-deploy-plugin
- 3.1.1
+ 3.1.4
org.apache.maven.plugins
maven-enforcer-plugin
- 3.3.0
+ 3.5.0
org.apache.maven.plugins
maven-install-plugin
- 3.1.1
+ 3.1.4
org.apache.maven.plugins
maven-invoker-plugin
- 2.0.0
+ 3.9.0
org.apache.maven.plugins
maven-gpg-plugin
- 3.1.0
+ 3.2.7
org.apache.maven.plugins
maven-jar-plugin
- 3.3.0
+ 3.4.2
org.apache.maven.plugins
maven-javadoc-plugin
- 3.6.3
+ 3.11.2
true
false
@@ -366,7 +367,7 @@
org.apache.maven.plugins
maven-release-plugin
- 2.1
+ 3.1.1
true
forked-path
@@ -386,12 +387,12 @@
org.apache.maven.plugins
maven-shade-plugin
- 3.5.0
+ 3.6.0
org.apache.maven.plugins
maven-source-plugin
- 3.3.0
+ 3.3.1
org.apache.maven.plugins
@@ -407,23 +408,23 @@
org.apache.maven.plugins
maven-toolchains-plugin
- 3.1.0
+ 3.2.0
org.codehaus.mojo
animal-sniffer-maven-plugin
- 1.23
+ 1.24
org.codehaus.mojo
build-helper-maven-plugin
- 3.4.0
+ 3.6.0
org.codehaus.mojo
buildnumber-maven-plugin
- 3.1.0
+ 3.2.1
org.codehaus.mojo
@@ -433,7 +434,7 @@
org.codehaus.mojo
exec-maven-plugin
- 3.1.0
+ 3.5.0
@@ -444,12 +445,17 @@
org.apache.felix
maven-bundle-plugin
- 3.5.1
+ 6.0.0
com.diffplug.spotless
spotless-maven-plugin
- 2.41.1
+ 2.44.3
+
+
+ org.sonarsource.scanner.maven
+ sonar-maven-plugin
+ 5.0.0.4389
@@ -514,8 +520,7 @@
17
-
- [3.5.4,3.8.2),(3.8.2,)
+ 3.9.9
The rules for repo1.maven.org are that pom.xml files should not include repository definitions.
@@ -600,7 +605,7 @@
-
+
@@ -744,13 +749,61 @@
maven-jdk12
- [12,)
+ [12,20)
7
+
+
+ maven-jdk20
+
+ [20,)
+
+
+ 8
+
+
+
+
+ maven-jdk23
+
+ [23,)
+
+
+
+
+ org.apache.maven.plugins
+ maven-javadoc-plugin
+
+
+
+ --no-fonts
+
+
+
+
+
+
+
+
+
+ intellij
+
+
+ idea.maven.embedder.version
+
+
+
+ 5
+
+
+
integration-tests
@@ -788,7 +841,7 @@
ecj
ecj
+ true
@@ -1008,6 +1090,30 @@
+
+ jdk23
+
+
+ jdk.version
+ 23
+
+
+
+
+
+ org.apache.maven.plugins
+ maven-javadoc-plugin
+
+
+
+ --no-fonts
+
+
+
+
+
+
+
sources
diff --git a/org.jacoco.cli.test/pom.xml b/org.jacoco.cli.test/pom.xml
index 28bdfc1cdd..bdba3be214 100644
--- a/org.jacoco.cli.test/pom.xml
+++ b/org.jacoco.cli.test/pom.xml
@@ -1,6 +1,6 @@
- 1.6
1.8
@@ -68,10 +67,8 @@
- 1.6
- ../org.jacoco.core.test.validation.kotlin
@@ -84,7 +81,6 @@
- ../org.jacoco.core.test.validation.kotlin
@@ -97,11 +93,8 @@
-
- 1.6
- ../org.jacoco.core.test.validation.kotlin
../org.jacoco.core.test.validation.java7
@@ -115,7 +108,6 @@
- ../org.jacoco.core.test.validation.kotlin
../org.jacoco.core.test.validation.java7
@@ -125,6 +117,9 @@
true
+
+ 1.8
+
../org.jacoco.core.test.validation.kotlin
../org.jacoco.core.test.validation.java7
@@ -346,8 +341,7 @@
-
- 16
+ 17
17
17
@@ -373,9 +367,8 @@
-
- 16
-
+ 18
+
16
18
@@ -401,9 +394,8 @@
-
- 16
-
+ 19
+
16
19
@@ -429,9 +421,8 @@
-
- 16
-
+ 20
+
16
20
@@ -457,9 +448,8 @@
-
- 16
-
+ 21
+
16
21
@@ -486,9 +476,8 @@
-
- 16
-
+ 22
+
16
22
@@ -501,9 +490,7 @@
../org.jacoco.core.test.validation.java14
../org.jacoco.core.test.validation.java16
../org.jacoco.core.test.validation.java21
-
../org.jacoco.core.test.validation.scala
@@ -517,9 +504,8 @@
-
- 16
-
+ 23
+
16
23
@@ -532,7 +518,67 @@
../org.jacoco.core.test.validation.java14
../org.jacoco.core.test.validation.java16
../org.jacoco.core.test.validation.java21
-
+ 23
+
+ 16
+
+ 24
+ 24
+
+
+ ../org.jacoco.core.test.validation.kotlin
+ ../org.jacoco.core.test.validation.java7
+ ../org.jacoco.core.test.validation.java8
+ ../org.jacoco.core.test.validation.java14
+ ../org.jacoco.core.test.validation.java16
+ ../org.jacoco.core.test.validation.java21
+
+ ../org.jacoco.core.test.validation.scala
+
+
+
+
+ java25-bytecode
+
+
+ bytecode.version
+ 25
+
+
+
+
+ 23
+
+ 16
+
+ 25
+ 25
+
+
+ ../org.jacoco.core.test.validation.kotlin
+ ../org.jacoco.core.test.validation.java7
+ ../org.jacoco.core.test.validation.java8
+ ../org.jacoco.core.test.validation.java14
+ ../org.jacoco.core.test.validation.java16
+ ../org.jacoco.core.test.validation.java21
+
../org.jacoco.core.test.validation.scala
diff --git a/org.jacoco.core.test/pom.xml b/org.jacoco.core.test/pom.xml
index 0124bf70f3..4de0f35d79 100644
--- a/org.jacoco.core.test/pom.xml
+++ b/org.jacoco.core.test/pom.xml
@@ -1,6 +1,6 @@