1 package org.apache.maven.scm.provider.integrity.command.login;
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22 import com.mks.api.response.APIException;
23 import com.mks.api.response.Response;
24 import org.apache.maven.scm.CommandParameters;
25 import org.apache.maven.scm.ScmException;
26 import org.apache.maven.scm.ScmFileSet;
27 import org.apache.maven.scm.command.login.AbstractLoginCommand;
28 import org.apache.maven.scm.command.login.LoginScmResult;
29 import org.apache.maven.scm.provider.ScmProviderRepository;
30 import org.apache.maven.scm.provider.integrity.APISession;
31 import org.apache.maven.scm.provider.integrity.ExceptionHandler;
32 import org.apache.maven.scm.provider.integrity.Project;
33 import org.apache.maven.scm.provider.integrity.Sandbox;
34 import org.apache.maven.scm.provider.integrity.repository.IntegrityScmProviderRepository;
35
36
37
38
39
40
41
42
43
44
45
46
47 public class IntegrityLoginCommand
48 extends AbstractLoginCommand
49 {
50
51
52
53 @Override
54 public LoginScmResult executeLoginCommand( ScmProviderRepository repository, ScmFileSet fileSet,
55 CommandParameters params )
56 throws ScmException
57 {
58 getLogger().info( "Attempting to connect with the MKS Integrity Server" );
59 LoginScmResult result;
60 IntegrityScmProviderRepository iRepo = (IntegrityScmProviderRepository) repository;
61 APISession api = iRepo.getAPISession();
62 try
63 {
64
65 Response res = api.connect( iRepo.getHost(), iRepo.getPort(), iRepo.getUser(), iRepo.getPassword() );
66 int exitCode = res.getExitCode();
67 boolean success = ( exitCode == 0 ? true : false );
68 result = new LoginScmResult( res.getCommandString(), "", "Exit Code: " + exitCode, success );
69
70
71 Project siProject = new Project( api, iRepo.getConfigruationPath() );
72 Sandbox siSandbox = new Sandbox( api, siProject, fileSet.getBasedir().getAbsolutePath() );
73 iRepo.setProject( siProject );
74 iRepo.setSandbox( siSandbox );
75 }
76 catch ( APIException aex )
77 {
78 ExceptionHandler eh = new ExceptionHandler( aex );
79 getLogger().error( "MKS API Exception: " + eh.getMessage() );
80 getLogger().info( eh.getCommand() + " exited with return code " + eh.getExitCode() );
81 result = new LoginScmResult( eh.getCommand(), eh.getMessage(), "Exit Code: " + eh.getExitCode(), false );
82 }
83
84 return result;
85 }
86
87 }