Need help with cvsclient API

"Gerald Shapiro" <[email protected]> Fri, 18 Feb 2005 10:36:58 -0500
Newsgroups gmane.comp.java.netbeans.modules.javacvs.devel
Organization The MITRE Corporation
Message-ID <[email protected]>
At the bottom of this message is my test app.  I am fumbling through the
API, and I may have some irrelevant code, and/or be missing some crucial
code.
 
What I am trying to do, up to this point, is to determine if there is a
module of the given name in the CVS repository. 
 
First I check the modules list, which for this sample is empty. This appears
to be working fine.
 
Next I want to determine if the user has a sandbox, and if not, create one
by checking out the CVSROOT directory from the repository.  No joy. The
checkout command instance throws a Command Exception, but the messages are
null.
 
Are there any pointers or places I could look for guidance?  I tried to look
at smartCVS, but it is obfuscated.
 
Gerald Shapiro
MITRE/CAASD
703-883-5256
703-883-1911 (Fax)
 
*** Explore Operations Research: The Science of Better
http://www.scienceofbetter.org <blocked::http://www.scienceofbetter.org/>
***
 
_______________________________________________
 
Console output:
 
No modules found

checkout CVSROOT 

 

WARNING TO DEVELOPERS:

Please be warned that attempting to reuse one open connection for more
commands is not supported by cvs servers very well.

You are advised to open a new Connection each time.

If you still want to proceed, please do:
System.setProperty("javacvs.multiple_commands_warning", "false")

That will disable this message.

Command Exception

null

null

Finished executing

____________________________________________________________________________
_____

Program:

import org.netbeans.lib.cvsclient.connection.* ;
import org.netbeans.lib.cvsclient.command.*;
import org.netbeans.lib.cvsclient.command.checkout.*;
import org.netbeans.lib.cvsclient.Client;
import org.netbeans.lib.cvsclient.admin.StandardAdminHandler;
import java.io.*;


public class cvs_interface {

public static void main(String[] args) {
   PServerConnection p = isf_connect();
   Client client = new Client(p, new StandardAdminHandler());
   client.setLocalPath(".");
   client.getEventManager().addCVSListener(new BasicListener());
   CheckoutCommand co = new CheckoutCommand();
   ModuleListBuilder ouput = new ModuleListBuilder(client.getEventManager(),
co);
   String [] modules = co.getModules();
   try{
      p.close();
    }
    catch (IOException io) {
        System.out.println(io.getLocalizedMessage());
        System.out.println(io.getMessage());
    }
//   System.out.println(modules.length);
   if (modules.length != 0) {
     for (int i=0; i< modules.length; i++) {
        System.out.println(modules[i]);
     }
   } else {
       System.out.println("No modules found");
//  Check for the existance of a sandbox
       String root = null;
       BufferedReader r = null;
       try {
       File f = new File(System.getProperty("user.dir"));
       File rootFile = new File(f, "CVS/Root");
       if (rootFile.exists())
       {
           r = new BufferedReader(new FileReader(rootFile));
           root = r.readLine();
       }
       }
       catch (IOException e) { }
       finally {
           try {
             if (r != null) r.close();
            }
           catch (IOException e) {
              System.out.println("Could not close cvs root file");
            }
       }
       if (root == null) {

//  Create the CVS Directory
       co = new CheckoutCommand();
       co.setModule("CVSROOT");
       p = isf_connect();
       client.setConnection(p);
       GlobalOptions options = new GlobalOptions();
       options.setCVSRoot(":pserver:"+p.getUserName()+"@"+p.getHostName()+ "
"
        + p.getRepository());
        System.out.println(co.getCVSCommand()) ;
       try {
       co.execute(client, client.getEventManager());
       }
       catch(AuthenticationException a) {
           System.out.println("Authentication error");
           System.out.println(a.getMessage());
           System.out.println(a.getLocalizedMessage());
       }
       catch(CommandException c) {
            System.out.println("Command Exception");
            System.out.println(c.getMessage());
            System.out.println(c.getLocalizedMessage());
       }
   }
   }
}

public static PServerConnection isf_connect()
 {
  PServerConnection developer = new PServerConnection();
  developer.setHostName("cvs.developer.mitre.org");
  developer.setPort(2401);
  developer.setRepository("/cvsroot/jeacm-models");
/* Get the user name and password   */
  developer.setUserName("gshapiro");
  Scrambler s = StandardScrambler.getInstance();
  String pw = s.scramble("udon'tneedtoknow");
  developer.setEncodedPassword(pw);
  try {
      developer.open();
  }
  catch(AuthenticationException a) {
     System.out.println(a.getMessage());
      System.out.println(a.getLocalizedMessage());
   }
  catch(CommandAbortedException c) {
      System.out.println(c.getMessage());
  }
  return developer;

}
}