Search in sources :

Example 1 with SvnScmProviderRepository

use of org.apache.maven.scm.provider.svn.repository.SvnScmProviderRepository in project maven-plugins by apache.

the class ChangeLogReport method getScmRepository.

public ScmRepository getScmRepository() throws ScmException {
    ScmRepository repository;
    try {
        repository = manager.makeScmRepository(getConnection());
        ScmProviderRepository providerRepo = repository.getProviderRepository();
        if (!StringUtils.isEmpty(username)) {
            providerRepo.setUser(username);
        }
        if (!StringUtils.isEmpty(password)) {
            providerRepo.setPassword(password);
        }
        if (repository.getProviderRepository() instanceof ScmProviderRepositoryWithHost) {
            ScmProviderRepositoryWithHost repo = (ScmProviderRepositoryWithHost) repository.getProviderRepository();
            loadInfosFromSettings(repo);
            if (!StringUtils.isEmpty(username)) {
                repo.setUser(username);
            }
            if (!StringUtils.isEmpty(password)) {
                repo.setPassword(password);
            }
            if (!StringUtils.isEmpty(privateKey)) {
                repo.setPrivateKey(privateKey);
            }
            if (!StringUtils.isEmpty(passphrase)) {
                repo.setPassphrase(passphrase);
            }
        }
        if (!StringUtils.isEmpty(tagBase) && repository.getProvider().equals("svn")) {
            SvnScmProviderRepository svnRepo = (SvnScmProviderRepository) repository.getProviderRepository();
            svnRepo.setTagBase(tagBase);
        }
    } catch (Exception e) {
        throw new ScmException("Can't load the scm provider.", e);
    }
    return repository;
}
Also used : ScmRepository(org.apache.maven.scm.repository.ScmRepository) ScmException(org.apache.maven.scm.ScmException) ScmProviderRepositoryWithHost(org.apache.maven.scm.provider.ScmProviderRepositoryWithHost) SvnScmProviderRepository(org.apache.maven.scm.provider.svn.repository.SvnScmProviderRepository) ScmProviderRepository(org.apache.maven.scm.provider.ScmProviderRepository) SvnScmProviderRepository(org.apache.maven.scm.provider.svn.repository.SvnScmProviderRepository) ParseException(java.text.ParseException) FileNotFoundException(java.io.FileNotFoundException) ScmException(org.apache.maven.scm.ScmException) UnsupportedEncodingException(java.io.UnsupportedEncodingException) MavenReportException(org.apache.maven.reporting.MavenReportException) IOException(java.io.IOException) MojoExecutionException(org.apache.maven.plugin.MojoExecutionException)

Example 2 with SvnScmProviderRepository

use of org.apache.maven.scm.provider.svn.repository.SvnScmProviderRepository in project maven-plugins by apache.

the class DoapMojo method writeSourceRepository.

/**
     * Write a DOAP repository, for instance:
     * <p/>
     * <pre>
     *   &lt;repository&gt;
     *     &lt;SVNRepository&gt;
     *       &lt;location rdf:resource="http://svn.apache.org/repos/asf/maven/components/trunk/"/&gt;
     *       &lt;browse rdf:resource="http://svn.apache.org/viewcvs.cgi/maven/components/trunk/"/&gt;
     *     &lt;/SVNRepository&gt;
     *   &lt;/repository&gt;
     * </pre>
     *
     * @param writer     not null
     * @param project    the Maven project, not null
     * @param connection not null
     * @see <a href="http://usefulinc.com/ns/doap#Repository">http://usefulinc.com/ns/doap#Repository</a>
     * @see <a href="http://usefulinc.com/ns/doap#CVSRepository">http://usefulinc.com/ns/doap#CVSRepository</a>
     * @see <a href="http://usefulinc.com/ns/doap#SVNRepository">http://usefulinc.com/ns/doap#SVNRepository</a>
     */
private void writeSourceRepository(XMLWriter writer, MavenProject project, String connection) {
    ScmRepository repository = getScmRepository(connection);
    DoapUtil.writeStartElement(writer, doapOptions.getXmlnsPrefix(), "repository");
    if (isScmSystem(repository, "cvs")) {
        DoapUtil.writeStartElement(writer, doapOptions.getXmlnsPrefix(), "CVSRepository");
        CvsScmProviderRepository cvsRepo = (CvsScmProviderRepository) repository.getProviderRepository();
        DoapUtil.writeElement(writer, doapOptions.getXmlnsPrefix(), "anon-root", cvsRepo.getCvsRoot());
        DoapUtil.writeElement(writer, doapOptions.getXmlnsPrefix(), "module", cvsRepo.getModule());
    } else if (isScmSystem(repository, "svn")) {
        DoapUtil.writeStartElement(writer, doapOptions.getXmlnsPrefix(), "SVNRepository");
        SvnScmProviderRepository svnRepo = (SvnScmProviderRepository) repository.getProviderRepository();
        DoapUtil.writeRdfResourceElement(writer, doapOptions.getXmlnsPrefix(), "location", svnRepo.getUrl());
    } else {
        /*
             * Supported DOAP repositories actually unsupported by SCM: BitKeeper
             * (http://usefulinc.com/ns/doap#BKRepository) Arch (http://usefulinc.com/ns/doap#ArchRepository) Other SCM
             * repos are unsupported by DOAP.
             */
        DoapUtil.writeStartElement(writer, doapOptions.getXmlnsPrefix(), "Repository");
        if (connection.length() < 4) {
            throw new IllegalArgumentException("The source repository connection is too short.");
        }
        DoapUtil.writeRdfResourceElement(writer, doapOptions.getXmlnsPrefix(), "location", connection.substring(4));
    }
    DoapUtil.writeRdfResourceElement(writer, doapOptions.getXmlnsPrefix(), "browse", project.getScm().getUrl());
    // CVSRepository || SVNRepository || Repository
    writer.endElement();
    // repository
    writer.endElement();
}
Also used : ScmRepository(org.apache.maven.scm.repository.ScmRepository) CvsScmProviderRepository(org.apache.maven.scm.provider.cvslib.repository.CvsScmProviderRepository) SvnScmProviderRepository(org.apache.maven.scm.provider.svn.repository.SvnScmProviderRepository)

Example 3 with SvnScmProviderRepository

use of org.apache.maven.scm.provider.svn.repository.SvnScmProviderRepository in project maven-plugins by apache.

the class AbstractScmPublishMojo method checkCreateRemoteSvnPath.

private void checkCreateRemoteSvnPath() throws MojoExecutionException {
    getLog().debug("AbstractSvnScmProvider used, so we can check if remote url exists and eventually create it.");
    AbstractSvnScmProvider svnScmProvider = (AbstractSvnScmProvider) scmProvider;
    try {
        boolean remoteExists = svnScmProvider.remoteUrlExist(scmRepository.getProviderRepository(), null);
        if (remoteExists) {
            return;
        }
    } catch (ScmException e) {
        throw new MojoExecutionException(e.getMessage(), e);
    }
    String remoteUrl = ((SvnScmProviderRepository) scmRepository.getProviderRepository()).getUrl();
    if (!automaticRemotePathCreation) {
        // olamy: return ?? that will fail during checkout IMHO :-)
        logWarn("Remote svn url %s does not exist and automatic remote path creation disabled.", remoteUrl);
        return;
    }
    logInfo("Remote svn url %s does not exist: creating.", remoteUrl);
    File baseDir = null;
    try {
        // create a temporary directory for svnexec
        baseDir = File.createTempFile("scm", "tmp");
        baseDir.delete();
        baseDir.mkdirs();
        // to prevent fileSet cannot be empty
        ScmFileSet scmFileSet = new ScmFileSet(baseDir, new File(""));
        CommandParameters commandParameters = new CommandParameters();
        commandParameters.setString(CommandParameter.SCM_MKDIR_CREATE_IN_LOCAL, Boolean.FALSE.toString());
        commandParameters.setString(CommandParameter.MESSAGE, "Automatic svn path creation: " + remoteUrl);
        svnScmProvider.mkdir(scmRepository.getProviderRepository(), scmFileSet, commandParameters);
        // new remote url so force checkout!
        if (checkoutDirectory.exists()) {
            FileUtils.deleteDirectory(checkoutDirectory);
        }
    } catch (IOException e) {
        throw new MojoExecutionException(e.getMessage(), e);
    } catch (ScmException e) {
        throw new MojoExecutionException(e.getMessage(), e);
    } finally {
        if (baseDir != null) {
            try {
                FileUtils.forceDeleteOnExit(baseDir);
            } catch (IOException e) {
                throw new MojoExecutionException(e.getMessage(), e);
            }
        }
    }
}
Also used : ScmFileSet(org.apache.maven.scm.ScmFileSet) ScmException(org.apache.maven.scm.ScmException) MojoExecutionException(org.apache.maven.plugin.MojoExecutionException) AbstractSvnScmProvider(org.apache.maven.scm.provider.svn.AbstractSvnScmProvider) SvnScmProviderRepository(org.apache.maven.scm.provider.svn.repository.SvnScmProviderRepository) IOException(java.io.IOException) CommandParameters(org.apache.maven.scm.CommandParameters) File(java.io.File)

Aggregations

SvnScmProviderRepository (org.apache.maven.scm.provider.svn.repository.SvnScmProviderRepository)3 IOException (java.io.IOException)2 MojoExecutionException (org.apache.maven.plugin.MojoExecutionException)2 ScmException (org.apache.maven.scm.ScmException)2 ScmRepository (org.apache.maven.scm.repository.ScmRepository)2 File (java.io.File)1 FileNotFoundException (java.io.FileNotFoundException)1 UnsupportedEncodingException (java.io.UnsupportedEncodingException)1 ParseException (java.text.ParseException)1 MavenReportException (org.apache.maven.reporting.MavenReportException)1 CommandParameters (org.apache.maven.scm.CommandParameters)1 ScmFileSet (org.apache.maven.scm.ScmFileSet)1 ScmProviderRepository (org.apache.maven.scm.provider.ScmProviderRepository)1 ScmProviderRepositoryWithHost (org.apache.maven.scm.provider.ScmProviderRepositoryWithHost)1 CvsScmProviderRepository (org.apache.maven.scm.provider.cvslib.repository.CvsScmProviderRepository)1 AbstractSvnScmProvider (org.apache.maven.scm.provider.svn.AbstractSvnScmProvider)1