public ReleaseResult execute()

in maven-release-manager/src/main/java/org/apache/maven/shared/release/phase/RemoveScmTagPhase.java [66:128]


    public ReleaseResult execute(
            ReleaseDescriptor releaseDescriptor,
            ReleaseEnvironment releaseEnvironment,
            List<MavenProject> reactorProjects)
            throws ReleaseExecutionException, ReleaseFailureException {
        ReleaseResult releaseResult = new ReleaseResult();

        validateConfiguration(releaseDescriptor);

        logInfo(releaseResult, "Removing tag with the label " + releaseDescriptor.getScmReleaseLabel() + " ...");

        ReleaseDescriptor basedirAlignedReleaseDescriptor =
                ReleaseUtil.createBasedirAlignedReleaseDescriptor(releaseDescriptor, reactorProjects);

        ScmRepository repository;
        ScmProvider provider;
        try {
            repository = scmRepositoryConfigurator.getConfiguredRepository(
                    basedirAlignedReleaseDescriptor.getScmSourceUrl(),
                    releaseDescriptor,
                    releaseEnvironment.getSettings());

            repository.getProviderRepository().setPushChanges(releaseDescriptor.isPushChanges());

            repository.getProviderRepository().setWorkItem(releaseDescriptor.getWorkItem());

            provider = scmRepositoryConfigurator.getRepositoryProvider(repository);
        } catch (ScmRepositoryException e) {
            throw new ReleaseScmRepositoryException(e.getMessage(), e.getValidationMessages());
        } catch (NoSuchScmProviderException e) {
            throw new ReleaseExecutionException("Unable to configure SCM repository: " + e.getMessage(), e);
        }

        UntagScmResult untagScmResult;
        try {
            ScmFileSet fileSet = new ScmFileSet(new File(basedirAlignedReleaseDescriptor.getWorkingDirectory()));
            String tagName = releaseDescriptor.getScmReleaseLabel();
            String message = releaseDescriptor.getScmCommentPrefix() + "remove tag " + tagName;
            CommandParameters commandParameters = new CommandParameters();
            commandParameters.setString(CommandParameter.TAG_NAME, tagName);
            commandParameters.setString(CommandParameter.MESSAGE, message);
            if (getLogger().isDebugEnabled()) {
                getLogger().debug("RemoveScmTagPhase :: scmUntagParameters tagName " + tagName);
                getLogger().debug("RemoveScmTagPhase :: scmUntagParameters message " + message);
                getLogger().debug("RemoveScmTagPhase :: fileSet  " + fileSet);
            }
            untagScmResult = provider.untag(repository, fileSet, commandParameters);
        } catch (ScmException e) {
            throw new ReleaseExecutionException(
                    "An error has occurred in the remove tag process: " + e.getMessage(), e);
        }

        if (!untagScmResult.isSuccess()) {
            getLogger()
                    .warn(String.format(
                            "Unable to remove tag%nProvider message: %s%nCommand output: %s",
                            untagScmResult.getProviderMessage(), untagScmResult.getCommandOutput()));
        }

        releaseResult.setResultCode(ReleaseResult.SUCCESS);

        return releaseResult;
    }