public static Map buildJavadocClasspath()

in src/main/java/org/apache/sling/feature/maven/mojos/apis/ApisUtil.java [307:384]


    public static Map<ArtifactId, String> buildJavadocClasspath(final Log log, final RepositorySystem repositorySystem,
            final MavenSession mavenSession,
            final ArtifactId artifactId)
            throws MojoExecutionException {
        final Map<ArtifactId, String> javadocClasspath = new HashMap<>();
        log.debug("Retrieving " + artifactId + " and related dependencies...");

        org.apache.maven.artifact.Artifact toBeResolvedArtifact = repositorySystem.createArtifactWithClassifier(artifactId.getGroupId(),
                                                                                                                artifactId.getArtifactId(),
                                                                                                                artifactId.getVersion(),
                                                                                                                artifactId.getType(),
                                                                                                                artifactId.getClassifier());
        ArtifactResolutionRequest request = new ArtifactResolutionRequest()
                                            .setArtifact(toBeResolvedArtifact)
                                            .setServers(mavenSession.getRequest().getServers())
                                            .setMirrors(mavenSession.getRequest().getMirrors())
                                            .setProxies(mavenSession.getRequest().getProxies())
                                            .setLocalRepository(mavenSession.getLocalRepository())
                                            .setRemoteRepositories(mavenSession.getRequest().getRemoteRepositories())
                                            .setForceUpdate(false)
                                            .setResolveRoot(true)
                                            .setResolveTransitively(true)
                                            .setCollectionFilter(new ArtifactFilter() {
                                                    // artifact filter
                                                    @Override
                                                    public boolean include(org.apache.maven.artifact.Artifact artifact) {
                                                        if (org.apache.maven.artifact.Artifact.SCOPE_TEST.equals(artifact.getScope())) {
                                                            return false;
                                                        }
                                                        return true;
                                                    }});

        ArtifactResolutionResult result = repositorySystem.resolve(request);

        // we only log if debug is enabled
        if (!result.isSuccess() && log.isDebugEnabled()) {
            if (result.hasCircularDependencyExceptions()) {
                log.warn("Cyclic dependency errors detected:");
                reportWarningMessages(log, result.getCircularDependencyExceptions());
            }

            if (result.hasErrorArtifactExceptions()) {
                log.warn("Resolution errors detected:");
                reportWarningMessages(log, result.getErrorArtifactExceptions());
            }

            if (result.hasMetadataResolutionExceptions()) {
                log.warn("Metadata resolution errors detected:");
                reportWarningMessages(log, result.getMetadataResolutionExceptions());
            }

            if (result.hasMissingArtifacts()) {
                log.warn("Missing artifacts detected:");
                for (org.apache.maven.artifact.Artifact missingArtifact : result.getMissingArtifacts()) {
                    log.warn(" - " + missingArtifact.getId());
                }
            }

            if (result.hasExceptions()) {
                log.warn("Generic errors detected:");
                for (Exception exception : result.getExceptions()) {
                    log.warn(" - " + exception.getMessage());
                }
            }
        }

        for (org.apache.maven.artifact.Artifact resolvedArtifact : result.getArtifacts()) {
            if (resolvedArtifact.getFile() != null) {
                log.debug("Adding to javadoc classpath " + resolvedArtifact);
                javadocClasspath.put(new ArtifactId(resolvedArtifact.getGroupId(), resolvedArtifact.getArtifactId(), resolvedArtifact.getVersion(), resolvedArtifact.getClassifier(), resolvedArtifact.getType()),
                        resolvedArtifact.getFile().getAbsolutePath());
            } else {
                log.debug("Ignoring for javadoc classpath " + resolvedArtifact);
            }
        }

        return javadocClasspath;
    }