private void setupScm()

in src/main/java/org/apache/maven/plugins/scmpublish/AbstractScmPublishMojo.java [313:356]


    private void setupScm() throws ScmRepositoryException, NoSuchScmProviderException {
        String scmUrl;
        if (localCheckout) {
            // in the release phase we have to change the checkout URL
            // to do a local checkout instead of going over the network.

            String provider = ScmUrlUtils.getProvider(pubScmUrl);
            String delimiter = ScmUrlUtils.getDelimiter(pubScmUrl);

            String providerPart = "scm:" + provider + delimiter;

            // X TODO: also check the information from releaseDescriptor.getScmRelativePathProjectDirectory()
            // X TODO: in case our toplevel git directory has no pom.
            // X TODO: fix pathname once I understand this.
            scmUrl = providerPart + "file://" + "target/localCheckout";
            logInfo("Performing a LOCAL checkout from " + scmUrl);
        }

        ReleaseDescriptorBuilder descriptorBuilder = new ReleaseDescriptorBuilder();
        descriptorBuilder.setInteractive(settings.isInteractiveMode());

        descriptorBuilder.setScmPassword(password);
        descriptorBuilder.setScmUsername(username);
        // used for lookup of credentials from settings.xml in DefaultScmRepositoryConfigurator
        descriptorBuilder.setScmId(serverId);
        descriptorBuilder.setWorkingDirectory(basedir.getAbsolutePath());
        descriptorBuilder.setLocalCheckout(localCheckout);
        descriptorBuilder.setScmSourceUrl(pubScmUrl);
        descriptorBuilder.setPushChanges(pushChanges);
        if (providerImplementations != null) {
            for (Map.Entry<String, String> providerEntry : providerImplementations.entrySet()) {
                logInfo(
                        "Changing the default '%s' provider implementation to '%s'.",
                        providerEntry.getKey(), providerEntry.getValue());
                scmManager.setScmProviderImplementation(providerEntry.getKey(), providerEntry.getValue());
            }
        }

        ReleaseDescriptor releaseDescriptor = descriptorBuilder.build();
        scmRepository = scmRepositoryConfigurator.getConfiguredRepository(releaseDescriptor, settings);
        // set pushChanges afterwards due to https://issues.apache.org/jira/browse/MRELEASE-1160
        scmRepository.getProviderRepository().setPushChanges(pushChanges);
        scmProvider = scmRepositoryConfigurator.getRepositoryProvider(scmRepository);
    }