1 package org.apache.maven.scm.provider.accurev.command.login;
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22 import org.apache.maven.scm.CommandParameters;
23 import org.apache.maven.scm.ScmException;
24 import org.apache.maven.scm.ScmFileSet;
25 import org.apache.maven.scm.ScmResult;
26 import org.apache.maven.scm.command.login.LoginScmResult;
27 import org.apache.maven.scm.log.ScmLogger;
28 import org.apache.maven.scm.provider.ScmProviderRepository;
29 import org.apache.maven.scm.provider.accurev.AccuRev;
30 import org.apache.maven.scm.provider.accurev.AccuRevException;
31 import org.apache.maven.scm.provider.accurev.AccuRevInfo;
32 import org.apache.maven.scm.provider.accurev.AccuRevScmProviderRepository;
33 import org.apache.maven.scm.provider.accurev.command.AbstractAccuRevCommand;
34
35 public class AccuRevLoginCommand
36 extends AbstractAccuRevCommand
37 {
38
39 public AccuRevLoginCommand( ScmLogger logger )
40 {
41 super( logger );
42
43 }
44
45 @Override
46 protected ScmResult executeAccurevCommand( AccuRevScmProviderRepository repository, ScmFileSet fileSet,
47 CommandParameters parameters )
48 throws ScmException, AccuRevException
49 {
50 boolean result = false;
51 AccuRev accurev = repository.getAccuRev();
52 AccuRevInfo info = accurev.info( null );
53
54 String providerMessage = "";
55 if ( info == null )
56 {
57 providerMessage = "Unable to retrieve accurev info";
58 }
59 else if ( repository.getUser() != null )
60 {
61
62 result = repository.getUser().equals( info.getUser() );
63 if ( result )
64 {
65 providerMessage = "Skipping login - already logged in as " + repository.getUser();
66 }
67 else
68 {
69 result = accurev.login( repository.getUser(), repository.getPassword() );
70 providerMessage = ( result ? "Success" : "Failure" ) + " logging in as " + repository.getUser();
71 }
72 }
73 else
74 {
75 result = info.isLoggedIn();
76 providerMessage = result ? ( "Logged in externally as " + info.getUser() ) : "Not logged in";
77 }
78
79 getLogger().debug( providerMessage );
80 return new LoginScmResult( accurev.getCommandLines(), providerMessage, accurev.getErrorOutput(), result );
81
82 }
83
84 public LoginScmResult login( ScmProviderRepository repository, ScmFileSet fileSet, CommandParameters parameters )
85 throws ScmException
86 {
87 return (LoginScmResult) execute( repository, fileSet, parameters );
88 }
89
90 }