IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

API standards et tierces Java Discussion :

Javacvs API qui connait ?


Sujet :

API standards et tierces Java

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    175
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 175
    Points : 108
    Points
    108
    Par défaut Javacvs API qui connait ?
    Bonjour, j'utilise l'API javacvs de netbeans pour pouvoir effectuer des opérations CVS (majoritairement des Updates...)

    Pourtant, je me choppe une NullPointerException constamment.

    Voici mon code:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
     
    public void cvsUpdate(String localPath, String userName, String password, String hostName, String repository) throws CommandAbortedException, CommandException, AuthenticationException {
    		PServerConnection connection = new PServerConnection();
    		connection.setUserName(userName);
    		connection.setEncodedPassword(password);
    		connection.setHostName(hostName);
    		connection.setRepository(repository);
    		connection.open();
     
    		GlobalOptions globalOptions = new GlobalOptions();
    	    globalOptions.setCVSRoot(getCVSRoot());
     
    		Client client = new Client(connection, new StandardAdminHandler());
    		client.setLocalPath(localPath);
    		client.getEventManager().addCVSListener(new BasicListener());
    		UpdateCommand command = new UpdateCommand();
    		command.setBuilder(null);
     
    		command.setRecursive(true);
    		command.setBuildDirectories(true);
    		command.setPruneDirectories(true);
     
    		client.executeCommand(command, globalOptions);
    	}
     
    private String getCVSRoot() {
    		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) {
    			// ignore
    		} finally {
    			try {
    				if (r != null)
    					r.close();
    			} catch (IOException e) {
    				System.err.println("Warning: could not close CVS/Root file!");
    			}
    		}
    		if (root == null) {
    			root = System.getProperty("cvs.root");
    		}
    		return root;
    	}
     
    public static void main(String[] args) {
    CVSUtils.singleton().cvsUpdate("C:\testrepos", "anoncvs", "", "cvs.netbeans.org", "/cvs/javacvs");
    }
    Le NullPointerException apparaît dans la librairie, lors du connection.open();

    Quelqu'un a une piste svp ?

  2. #2
    Membre régulier
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    175
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 175
    Points : 108
    Points
    108
    Par défaut
    En fait c'était ultra simple...

    Je colle la méthode si ça intéresse qqn, mon souci venait du fait que je voulais réinventer la roue, au lieu d'utiliser bêtement certaines méthodes déjà créée.

    Toutes les méthodes sont dans la classe CVSCommand, et particulièrement la méthode
    processCommand qui est appelée en static...

    Voilà comment je fais pour un update par exemple:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    public void update(String moduleName, String localPath) throws CommandAbortedException, CommandException, AuthenticationException {
    		if(ivArgs[0].equals("")) {
    			init();
    		}
    		ivArgs[2] = "update";
    		ivArgs[3] = moduleName;
    		CVSCommand.processCommand(ivArgs, null, localPath, System.out, System.err);
    		log.info("Performing: cvs "+ivArgs[0]+" "+ivArgs[1]+" "+ivArgs[2]+" "+ivArgs[3]);
     
    	}
    Pour info, j'ai une méthode d'initialisation qui permet de positionner les paramètres dans mon tableau ivArgs.

    Les paramètres sont sous la forme cvs classique:

    cvs -d :pserver:username:password@hostname:/repository cvscommand module

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    ivArgs[0] = "-d"
    ivArgs[1] = ":pserver:username:password@hostname:/repository"
    ivArgs[2] = "command" //co, update, commit...
    ivArgs[3] = "module"
    Voilou

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. qui connait sqlite ?
    Par Emmanuel Lecoester dans le forum SQLite
    Réponses: 23
    Dernier message: 19/02/2010, 13h44
  2. API qui donne la différence des données entre 2 classes ?
    Par elitost dans le forum API standards et tierces
    Réponses: 6
    Dernier message: 18/04/2006, 11h07
  3. Réponses: 6
    Dernier message: 10/04/2006, 14h41
  4. qui connait suipack?
    Par judor31 dans le forum API, COM et SDKs
    Réponses: 3
    Dernier message: 31/03/2006, 11h43
  5. Qui connait Putty ?
    Par viny dans le forum Applications et environnements graphiques
    Réponses: 7
    Dernier message: 26/03/2004, 23h16

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo