private void processSnapshot()

in maven-release-manager/src/main/java/org/apache/maven/shared/release/phase/CheckDependencySnapshotsPhase.java [421:470]


    private void processSnapshot(
            Set<Artifact> snapshotSet, ReleaseDescriptor releaseDescriptor, String autoResolveSnapshots)
            throws PrompterException, VersionParseException {
        Iterator<Artifact> iterator = snapshotSet.iterator();

        while (iterator.hasNext()) {
            Artifact currentArtifact = iterator.next();
            String versionlessKey = ArtifactUtils.versionlessKey(currentArtifact);

            VersionInfo versionInfo = new DefaultVersionInfo(currentArtifact.getBaseVersion());
            releaseDescriptor.addDependencyOriginalVersion(versionlessKey, versionInfo.toString());

            prompter.get()
                    .showMessage("Dependency '" + versionlessKey + "' is a snapshot (" + currentArtifact.getVersion()
                            + ")\n");
            String message = "Which release version should it be set to?";
            String result;
            if (null != autoResolveSnapshots) {
                result = versionInfo.getReleaseVersionString();
                prompter.get().showMessage(message + " " + result);
            } else {
                result = prompter.get().prompt(message, versionInfo.getReleaseVersionString());
            }

            releaseDescriptor.addDependencyReleaseVersion(versionlessKey, result);

            iterator.remove();

            // by default, keep the same version for the dependency after release, unless it was previously newer
            // the user may opt to type in something different
            VersionInfo nextVersionInfo = new DefaultVersionInfo(result);

            String nextVersion;
            if (nextVersionInfo.compareTo(versionInfo) > 0) {
                nextVersion = nextVersionInfo.toString();
            } else {
                nextVersion = versionInfo.toString();
            }

            message = "What version should the dependency be reset to for development?";
            if (null != autoResolveSnapshots) {
                result = nextVersion;
                prompter.get().showMessage(message + " " + result);
            } else {
                result = prompter.get().prompt(message, nextVersion);
            }

            releaseDescriptor.addDependencyDevelopmentVersion(versionlessKey, result);
        }
    }