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 + + + + + + + + + + + + + + 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 + + + + + + + + + + + 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 @@