1 package org.apache.maven.scm.provider.cvslib.cvsjava.command.checkout;
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.ScmException;
23 import org.apache.maven.scm.command.checkout.CheckOutScmResult;
24 import org.apache.maven.scm.provider.cvslib.command.checkout.AbstractCvsCheckOutCommand;
25 import org.apache.maven.scm.provider.cvslib.command.checkout.CvsCheckOutConsumer;
26 import org.apache.maven.scm.provider.cvslib.cvsjava.util.CvsConnection;
27 import org.apache.maven.scm.provider.cvslib.cvsjava.util.CvsLogListener;
28 import org.codehaus.plexus.util.cli.Commandline;
29
30 import java.io.BufferedReader;
31 import java.io.ByteArrayInputStream;
32 import java.io.InputStreamReader;
33
34
35
36
37
38 public class CvsJavaCheckOutCommand
39 extends AbstractCvsCheckOutCommand
40 {
41 protected CheckOutScmResult executeCvsCommand( Commandline cl )
42 throws ScmException
43 {
44 CvsLogListener logListener = new CvsLogListener();
45
46 CvsCheckOutConsumer consumer = new CvsCheckOutConsumer( getLogger() );
47
48 try
49 {
50 boolean isSuccess = CvsConnection.processCommand( cl.getArguments(),
51 cl.getWorkingDirectory().getAbsolutePath(), logListener,
52 getLogger() );
53
54 if ( !isSuccess )
55 {
56 return new CheckOutScmResult( cl.toString(), "The cvs command failed.",
57 logListener.getStderr().toString(), false );
58 }
59 BufferedReader stream = new BufferedReader(
60 new InputStreamReader( new ByteArrayInputStream( logListener.getStdout().toString().getBytes() ) ) );
61
62 String line;
63
64 while ( ( line = stream.readLine() ) != null )
65 {
66 consumer.consumeLine( line );
67 }
68 }
69 catch ( Exception e )
70 {
71 e.printStackTrace();
72 return new CheckOutScmResult( cl.toString(), "The cvs command failed.", logListener.getStdout().toString(),
73 false );
74 }
75
76 return new CheckOutScmResult( cl.toString(), consumer.getCheckedOutFiles() );
77 }
78 }