protected abstract void runLogic()

in maven-release-manager/src/main/java/org/apache/maven/shared/release/phase/AbstractScmCommitPhase.java [127:188]


    protected abstract void runLogic(
            ReleaseDescriptor releaseDescriptor,
            ReleaseEnvironment releaseEnvironment,
            List<MavenProject> reactorProjects,
            ReleaseResult result,
            boolean simulating)
            throws ReleaseScmCommandException, ReleaseExecutionException, ReleaseScmRepositoryException;

    /**
     * <p>performCheckins.</p>
     *
     * @param releaseDescriptor  a {@link org.apache.maven.shared.release.config.ReleaseDescriptor} object
     * @param releaseEnvironment a {@link org.apache.maven.shared.release.env.ReleaseEnvironment} object
     * @param reactorProjects    a {@link java.util.List} object
     * @param message            a {@link java.lang.String} object
     * @throws org.apache.maven.shared.release.scm.ReleaseScmRepositoryException if any.
     * @throws org.apache.maven.shared.release.ReleaseExecutionException         if any.
     * @throws org.apache.maven.shared.release.scm.ReleaseScmCommandException    if any.
     */
    protected void performCheckins(
            ReleaseDescriptor releaseDescriptor,
            ReleaseEnvironment releaseEnvironment,
            List<MavenProject> reactorProjects,
            String message)
            throws ReleaseScmRepositoryException, ReleaseExecutionException, ReleaseScmCommandException {

        getLogger().info("Checking in modified POMs...");

        ScmRepository repository;
        ScmProvider provider;
        try {
            repository = scmRepositoryConfigurator.getConfiguredRepository(
                    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);
        }

        if (releaseDescriptor.isCommitByProject()) {
            for (MavenProject project : reactorProjects) {
                List<File> pomFiles = createPomFiles(releaseDescriptor, project);
                ScmFileSet fileSet = new ScmFileSet(project.getFile().getParentFile(), pomFiles);

                checkin(provider, repository, fileSet, releaseDescriptor, message);
            }
        } else {
            List<File> pomFiles = createPomFiles(releaseDescriptor, reactorProjects);

            if (!pomFiles.isEmpty()) {
                ScmFileSet fileSet = new ScmFileSet(new File(releaseDescriptor.getWorkingDirectory()), pomFiles);

                checkin(provider, repository, fileSet, releaseDescriptor, message);
            }
        }
    }