Search in sources :

Example 11 with LoginScmResult

use of org.apache.maven.scm.command.login.LoginScmResult in project maven-scm by apache.

the class PerforceLoginCommand method executeLoginCommand.

/**
 * {@inheritDoc}
 */
public LoginScmResult executeLoginCommand(ScmProviderRepository repo, ScmFileSet files, CommandParameters params) throws ScmException {
    Commandline cl = createCommandLine((PerforceScmProviderRepository) repo, files.getBasedir());
    PerforceLoginConsumer consumer = new PerforceLoginConsumer();
    boolean isSuccess = false;
    try {
        String password = repo.getPassword();
        if (StringUtils.isEmpty(password)) {
            if (getLogger().isInfoEnabled()) {
                getLogger().info("No password found, proceeding without it.");
            }
            isSuccess = true;
        } else {
            CommandLineUtils.StringStreamConsumer err = new CommandLineUtils.StringStreamConsumer();
            int exitCode = CommandLineUtils.executeCommandLine(cl, new ByteArrayInputStream(password.getBytes()), consumer, err);
            isSuccess = consumer.isSuccess();
            if (!isSuccess) {
                String cmdLine = CommandLineUtils.toString(cl.getCommandline());
                StringBuilder msg = new StringBuilder("Exit code: " + exitCode + " - " + err.getOutput());
                msg.append('\n');
                msg.append("Command line was:" + cmdLine);
                throw new CommandLineException(msg.toString());
            }
        }
    } catch (CommandLineException e) {
        throw new ScmException(e.getMessage(), e);
    }
    return new LoginScmResult(cl.toString(), isSuccess ? "Login successful" : "Login failed", consumer.getOutput(), isSuccess);
}
Also used : ScmException(org.apache.maven.scm.ScmException) Commandline(org.codehaus.plexus.util.cli.Commandline) LoginScmResult(org.apache.maven.scm.command.login.LoginScmResult) CommandLineException(org.codehaus.plexus.util.cli.CommandLineException) ByteArrayInputStream(java.io.ByteArrayInputStream) CommandLineUtils(org.codehaus.plexus.util.cli.CommandLineUtils)

Aggregations

LoginScmResult (org.apache.maven.scm.command.login.LoginScmResult)11 File (java.io.File)5 CommandParameters (org.apache.maven.scm.CommandParameters)5 ScmFileSet (org.apache.maven.scm.ScmFileSet)5 AbstractAccuRevCommandTest (org.apache.maven.scm.provider.accurev.command.AbstractAccuRevCommandTest)5 Test (org.junit.Test)5 ScmException (org.apache.maven.scm.ScmException)2 APIException (com.mks.api.response.APIException)1 Response (com.mks.api.response.Response)1 ByteArrayInputStream (java.io.ByteArrayInputStream)1 IOException (java.io.IOException)1 AccuRev (org.apache.maven.scm.provider.accurev.AccuRev)1 AccuRevInfo (org.apache.maven.scm.provider.accurev.AccuRevInfo)1 CvsScmProviderRepository (org.apache.maven.scm.provider.cvslib.repository.CvsScmProviderRepository)1 APISession (org.apache.maven.scm.provider.integrity.APISession)1 ExceptionHandler (org.apache.maven.scm.provider.integrity.ExceptionHandler)1 Project (org.apache.maven.scm.provider.integrity.Project)1 Sandbox (org.apache.maven.scm.provider.integrity.Sandbox)1 IntegrityLoginCommand (org.apache.maven.scm.provider.integrity.command.login.IntegrityLoginCommand)1 IntegrityScmProviderRepository (org.apache.maven.scm.provider.integrity.repository.IntegrityScmProviderRepository)1