package com.cadrlife.devsearch.cvsnavigator; import java.io.File; import java.io.IOException; import java.lang.reflect.Field; import org.netbeans.lib.cvsclient.CVSRoot; import org.netbeans.lib.cvsclient.Client; import org.netbeans.lib.cvsclient.admin.StandardAdminHandler; import org.netbeans.lib.cvsclient.connection.PServerConnection; import org.netbeans.lib.cvsclient.connection.StandardScrambler; public class CvsConnection { public CvsConnection() { } private static void overrideWarning(Client client) { try { Field field = Client.class.getDeclaredField("warned"); field.setAccessible(true); field.set(client, true); } catch(Exception e) { e.printStackTrace(); } } public static PServerConnection openCvsConnection(String cvsRoot, String cvsPasswd) { PServerConnection connection = new PServerConnection(CVSRoot.parse(cvsRoot)); connection.setEncodedPassword(StandardScrambler.getInstance().scramble(cvsPasswd)); return connection; } public static Client openClient(String cvsRoot, String cvsPasswd, String localPath) { Client client = new Client(openCvsConnection(cvsRoot,cvsPasswd), new StandardAdminHandler()); client.setLocalPath(localPath); overrideWarning(client); return client; } public static void enableLogging(String logDirectory) { System.setProperty("cvsClientLog", new File(logDirectory, "protocol").getAbsolutePath()); } protected void closeConnection(PServerConnection connection) { if (null != connection) { try { connection.close(); } catch (IOException e) { e.printStackTrace(); } } } }