public Set getProviderClasspath()

in maven-surefire-common/src/main/java/org/apache/maven/plugin/surefire/AbstractSurefireMojo.java [2971:3023]


        public Set<Artifact> getProviderClasspath() throws MojoExecutionException {
            String surefireVersion = getBooterArtifact().getBaseVersion();
            Map<String, Artifact> providerArtifacts = surefireDependencyResolver.getProviderClasspathAsMap(
                    session.getRepositorySession(),
                    project.getRemotePluginRepositories(),
                    "surefire-junit-platform",
                    surefireVersion);
            Map<String, Artifact> testDeps = testClasspath.getTestDependencies();

            Plugin plugin = getPluginDescriptor().getPlugin();
            Map<String, Artifact> pluginDeps = surefireDependencyResolver.resolvePluginDependencies(
                    session.getRepositorySession(),
                    project.getRemotePluginRepositories(),
                    plugin,
                    getPluginArtifactMap());

            if (hasDependencyPlatformEngine(pluginDeps)) {
                providerArtifacts.putAll(pluginDeps);
            } else {
                String engineVersion = null;
                if (hasDependencyJupiterAPI(testDeps)
                        && !testDeps.containsKey("org.junit.jupiter:junit-jupiter-engine")) {
                    String engineGroupId = "org.junit.jupiter";
                    String engineArtifactId = "junit-jupiter-engine";
                    String engineCoordinates = engineGroupId + ":" + engineArtifactId;
                    String api = "org.junit.jupiter:junit-jupiter-api";
                    engineVersion = testDeps.get(api).getBaseVersion();
                    getConsoleLogger()
                            .debug("Test dependencies contain " + api + ". Resolving " + engineCoordinates + ":"
                                    + engineVersion);
                    addEngineByApi(engineGroupId, engineArtifactId, engineVersion, providerArtifacts);
                }

                if ((testDeps.containsKey("junit:junit") || testDeps.containsKey("junit:junit-dep"))
                        && !testDeps.containsKey("org.junit.vintage:junit-vintage-engine")) {
                    String engineGroupId = "org.junit.vintage";
                    String engineArtifactId = "junit-vintage-engine";
                    String engineCoordinates = engineGroupId + ":" + engineArtifactId;

                    if (engineVersion != null) {
                        getConsoleLogger()
                                .debug("Test dependencies contain JUnit4. Resolving " + engineCoordinates + ":"
                                        + engineVersion);
                        addEngineByApi(engineGroupId, engineArtifactId, engineVersion, providerArtifacts);
                    }
                }
            }

            narrowDependencies(providerArtifacts, testDeps);
            alignProviderVersions(providerArtifacts);

            return new LinkedHashSet<>(providerArtifacts.values());
        }