diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml
index dfce907b438..2f555d375dd 100644
--- a/.github/workflows/build.yml
+++ b/.github/workflows/build.yml
@@ -350,78 +350,6 @@ jobs:
-DuseMissingFile \
"-Dlicense.overrideUrl=file://${PWD}/override-dep-licenses.properties"
- autoscan:
- name: Autoscan Tests
- needs:
- - build
- if: ${{ needs.build.outputs.deployed }}
- runs-on: sonar-m-public
- permissions:
- id-token: write
- contents: write
- env:
- BUILD_NUMBER: ${{ needs.build.outputs.build-number }}
- SQ_VERSION: LATEST_RELEASE
- steps:
- - uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
- # For now, the autoscan job need to execute two mvn commands:
- # * The build of java-checks-test-sources module which requires Java 24.
- # * The tests using Orchestrator and SonarQube that, for now, fail to work using Java 24
- - uses: jdx/mise-action@dad1bfd3df957f44999b559dd69dc1671cb4e9ea # v4.2.1
- with:
- version: 2026.7.17
- - uses: SonarSource/vault-action-wrapper@v3
- id: secrets
- with:
- secrets: |
- development/kv/data/next url | SONAR_HOST_URL;
- development/kv/data/next token | SONAR_TOKEN;
- development/github/token/licenses-ro token | GITHUB_TOKEN;
- - name: Ensure Separate Job Cache Key
- uses: ./.github/actions/write-file
- with:
- file-path: target/just_for_cache_key_calculation/pom.xml
- content: ${{ github.job }}
- - uses: SonarSource/ci-github-actions/config-maven@v1
- with:
- artifactory-reader-role: private-reader
- use-develocity: ${{ env.USE_DEVELOCITY }}
- develocity-url: ${{ env.DEVELOCITY_URL }}
- - name: Compile Test Sources
- env:
- SONAR_HOST_URL: ${{ fromJSON(steps.secrets.outputs.vault).SONAR_HOST_URL }}
- SONAR_TOKEN: ${{ fromJSON(steps.secrets.outputs.vault).SONAR_TOKEN }}
- working-directory: java-checks-test-sources
- run: |
- mvn clean compile test-compile --batch-mode
- - name: Select Java 21
- run: mise use java@21
- - name: Orchestrator Cache
- uses: ./.github/actions/orchestrator-cache
- with:
- sq-version: ${{ env.SQ_VERSION }}
- - name: Run autoscan tests
- env:
- SONAR_HOST_URL: ${{ fromJSON(steps.secrets.outputs.vault).SONAR_HOST_URL }}
- SONAR_TOKEN: ${{ fromJSON(steps.secrets.outputs.vault).SONAR_TOKEN }}
- GITHUB_TOKEN: ${{ fromJSON(steps.secrets.outputs.vault).GITHUB_TOKEN }}
- working-directory: its/autoscan
- run: >
- mvn clean package --batch-mode --errors --show-version
- --activate-profiles it-autoscan
- -Dsonar.runtimeVersion="$SQ_VERSION"
- -Dmaven.test.redirectTestOutputToFile=false
- -Dparallel=methods
- -DuseUnlimitedThreads=true
- - name: Upload Actual Results On Failure
- if: failure()
- uses: ./.github/actions/upload-actual
- with:
- name: autoscan
- it-dir: its/autoscan
- expected-dir: src/test/resources/autoscan/diffs
- actual-dir: target/actual/autoscan-diffs
-
qa-os-win:
name: Build and Unit Test on Windows
# No dependency on build step, because we do not need the build number.
@@ -458,7 +386,6 @@ jobs:
- sanity
- test-analyze
- custom-rules-license-check
- - autoscan
- qa-os-win
if: ${{ needs.build.outputs.deployed }}
runs-on: sonar-s-public
diff --git a/README.md b/README.md
index fbf5a66719c..ad557bd79d5 100644
--- a/README.md
+++ b/README.md
@@ -155,47 +155,6 @@ For example using the command:
cp its/ruling/target/actual/* its/ruling/src/test/resources/
-#### Autoscan Test
-
-The tests in the [autoscan module](its/autoscan) are designed to detect differences between the issues the Java analyzer can find with and without bytecode.
-The goal here is to spot and fix the potential FPs, and verify the expected FNs between that would show up in [SonarQube Cloud's automatic analysis](https://docs.sonarsource.com/sonarqube-cloud/advanced-setup/automatic-analysis/).
-
-Running this test can be broken down in 2 steps:
-
-1. Compiling the test sources
-2. Executing the autoscan test
-
-##### Compiling the test sources
-
-Make sure that the `java-checks-test-sources` module has been compiled (ie: the .class files in `java-checks-test-sources/target/` are up to date).
-
-In doubt, go the [`java-checks-test-sources`](java-checks-tests-sources) module and run:
-```shell
-# Use java 26!
-mvn clean compile
-```
-
-##### Executing the autoscan test
-
-To run the tests, move to the [`its/autoscan`](its/autoscan) folder and run:
-```shell
-# cd its/autoscan
-# use Java 21!
-mvn clean package --batch-mode --errors --show-version \
- --activate-profiles it-autoscan \
- -Dsonar.runtimeVersion=LATEST_RELEASE
-```
-
-The artifacts produced during the test execution will be found in [`its/autoscan/target/actual`](its/autoscan/target/actual).
-You will want to compare the results produced in the autoscan-diff-by-rules
-
-For more detailed information, you can compare the differences between the results found with bytecode and without bytecode by comparing two respective folders:
-* [java-checks-test-sources-mvn](its/autoscan/target/actual/java-checks-test-sources-mvn)
-* [java-checks-test-sources-no-binaries](its/autoscan/target/actual/java-checks-test-sources-no-binaries)
-
-Depending on the results found, you might need to update the ground truth.
-The expected results are listed in [src/test/resources](its/autoscan/src/test/resources/autoscan/diffs).
-
#### Debugging Integration Tests
You can debug ITs by adding `-Dmaven.binary=mvnDebug` as an option when running the tests. This will cause the analyzer JVM to wait for a debugger to be attached before continuing.
diff --git a/its/autoscan/pom.xml b/its/autoscan/pom.xml
deleted file mode 100644
index b97ad4c18ef..00000000000
--- a/its/autoscan/pom.xml
+++ /dev/null
@@ -1,95 +0,0 @@
-
-
- 4.0.0
-
-
- org.sonarsource.java
- java-its
- 8.38.0-SNAPSHOT
-
-
- it-java-autoscan
-
- SonarQube Java :: ITs :: Autoscan
- 2013
-
-
- -server
- false
- true
-
-
-
-
- com.google.code.findbugs
- jsr305
- test
-
-
- com.google.code.gson
- gson
- test
-
-
- com.google.guava
- guava
- test
-
-
- junit
- junit
- test
-
-
- org.assertj
- assertj-core
- test
-
-
- org.slf4j
- slf4j-api
- test
-
-
- org.sonarsource.orchestrator
- sonar-orchestrator-junit4
- ${orchestrator.version}
- test
-
-
- com.oracle
- ojdbc6
-
-
-
-
- org.sonarsource.sonarqube
- sonar-ws
- ${sonar.version}
- test
-
-
- org.sonarsource.java
- test-classpath-reader
- ${project.version}
- test
-
-
-
- org.sonarsource.java
- sonar-java-plugin
- ${project.version}
- test
-
-
-
-
-
- it-autoscan
-
- false
-
-
-
-
diff --git a/its/autoscan/src/test/java/org/sonar/java/it/AutoScanTest.java b/its/autoscan/src/test/java/org/sonar/java/it/AutoScanTest.java
deleted file mode 100644
index 34de325ed9a..00000000000
--- a/its/autoscan/src/test/java/org/sonar/java/it/AutoScanTest.java
+++ /dev/null
@@ -1,427 +0,0 @@
-/*
- * SonarQube Java
- * Copyright (C) SonarSource Sàrl
- * mailto:info AT sonarsource DOT com
- *
- * You can redistribute and/or modify this program under the terms of
- * the Sonar Source-Available License Version 1, as published by SonarSource Sàrl.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
- * See the Sonar Source-Available License for more details.
- *
- * You should have received a copy of the Sonar Source-Available License
- * along with this program; if not, see https://sonarsource.com/license/ssal/
- */
-package org.sonar.java.it;
-
-import com.google.common.collect.ImmutableMap;
-import com.google.gson.Gson;
-import com.google.gson.GsonBuilder;
-import com.google.gson.reflect.TypeToken;
-import com.sonar.orchestrator.build.MavenBuild;
-import com.sonar.orchestrator.build.SonarScanner;
-import com.sonar.orchestrator.junit4.OrchestratorRule;
-import com.sonar.orchestrator.locator.FileLocation;
-import com.sonar.orchestrator.locator.MavenLocation;
-import java.lang.reflect.Type;
-import java.nio.file.Files;
-import java.nio.file.Path;
-import java.util.ArrayList;
-import java.util.Collection;
-import java.util.Collections;
-import java.util.Comparator;
-import java.util.HashMap;
-import java.util.HashSet;
-import java.util.List;
-import java.util.Map;
-import java.util.Objects;
-import java.util.Set;
-import java.util.TreeMap;
-import java.util.TreeSet;
-import java.util.stream.Collectors;
-import javax.annotation.Nullable;
-import org.assertj.core.api.SoftAssertions;
-import org.junit.ClassRule;
-import org.junit.Test;
-import org.junit.rules.TemporaryFolder;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-import org.sonar.java.test.classpath.TestClasspathUtils;
-
-public class AutoScanTest {
-
- private static final Gson GSON = new GsonBuilder().setPrettyPrinting().create();
- private static final Type GSON_MAP_TYPE = new TypeToken