dion        2004/07/09 04:53:46

  Modified:    changelog project.xml
               changelog/xdocs changes.xml
               changelog/src/main/org/apache/maven/cvslib
                        CvsConnection.java
  Added:       changelog/src/test/org/apache/maven/cvslib
                        CvsConnectionTest.java
  Log:
  Fix for MPCHANGELOG-34.
  Plugin does not find the password for the CVSROOT in .cvspass if the CVSROOT in 
.cvspass is preceded by a "/1".
  
  Revision  Changes    Path
  1.3       +65 -84    
maven-plugins/changelog/src/test/org/apache/maven/cvslib/CvsConnectionTest.java
  
  
  
  
  1.47      +1 -1      maven-plugins/changelog/project.xml
  
  Index: project.xml
  ===================================================================
  RCS file: /home/cvs/maven-plugins/changelog/project.xml,v
  retrieving revision 1.46
  retrieving revision 1.47
  diff -u -r1.46 -r1.47
  --- project.xml       8 Jul 2004 15:34:54 -0000       1.46
  +++ project.xml       9 Jul 2004 11:53:46 -0000       1.47
  @@ -23,7 +23,7 @@
     <pomVersion>3</pomVersion>
     <id>maven-changelog-plugin</id>
     <name>Maven Changelog Plugin</name>
  -  <currentVersion>1.7</currentVersion>
  +  <currentVersion>1.7.1-SNAPSHOT</currentVersion>
     <description/>
     <shortDescription>Produce SCM changelog reports</shortDescription>
     <url>http://maven.apache.org/reference/plugins/changelog/</url>
  
  
  
  1.38      +3 -0      maven-plugins/changelog/xdocs/changes.xml
  
  Index: changes.xml
  ===================================================================
  RCS file: /home/cvs/maven-plugins/changelog/xdocs/changes.xml,v
  retrieving revision 1.37
  retrieving revision 1.38
  diff -u -r1.37 -r1.38
  --- changes.xml       8 Jul 2004 15:34:54 -0000       1.37
  +++ changes.xml       9 Jul 2004 11:53:46 -0000       1.38
  @@ -25,6 +25,9 @@
       <author email="[EMAIL PROTECTED]">Emmanuel Venisse</author>
     </properties>
     <body>
  +    <release version="1.7.1-SNAPSHOT" date="in CVS">
  +      <action dev="dion" type="fix" issue="MPCHANGELOG-34" due-to="Saito 
Kazuo">Plugin does not find the password for the CVSROOT in .cvspass if the CVSROOT in 
.cvspass is preceded by a "/1".</action>
  +    </release>
       <release version="1.7" date="2004-07-08">
         <action dev="evenisse" type="fix">Add the possibility to specify a date 
format for input stream (Starteam only).</action>
       </release>
  
  
  
  1.9       +48 -1     
maven-plugins/changelog/src/main/org/apache/maven/cvslib/CvsConnection.java
  
  Index: CvsConnection.java
  ===================================================================
  RCS file: 
/home/cvs/maven-plugins/changelog/src/main/org/apache/maven/cvslib/CvsConnection.java,v
  retrieving revision 1.8
  retrieving revision 1.9
  diff -u -r1.8 -r1.9
  --- CvsConnection.java        28 Apr 2004 04:11:38 -0000      1.8
  +++ CvsConnection.java        9 Jul 2004 11:53:46 -0000       1.9
  @@ -21,9 +21,11 @@
   import java.io.File;
   import java.io.FileReader;
   import java.io.IOException;
  +import java.util.Vector;
   
   import org.apache.commons.logging.Log;
   import org.apache.commons.logging.LogFactory;
  +import org.apache.tools.ant.util.StringUtils;
   import org.netbeans.lib.cvsclient.CVSRoot;
   import org.netbeans.lib.cvsclient.Client;
   import org.netbeans.lib.cvsclient.admin.StandardAdminHandler;
  @@ -226,11 +228,24 @@
   
           try
           {
  +             StringBuffer cvsroot = new StringBuffer();
  +             
               reader = new BufferedReader(new FileReader(passFile));
               String line;
               while ((line = reader.readLine()) != null)
               {
  -                if (line.startsWith(cvsRoot))
  +             if (line.startsWith("/"))
  +             {
  +                     Vector cvspass = StringUtils.split(line, ' ');
  +                     if (cvspass.size() >= 3)
  +                     {
  +                             if (compareCvsRoot(cvsRoot, (String)cvspass.get(1))) {
  +                                     password = (String)cvspass.get(2);
  +                                     break;
  +                             }
  +                     }
  +             }
  +             else if (line.startsWith(cvsRoot))
                   {
                       password = line.substring(cvsRoot.length() + 1);
                       break;
  @@ -263,6 +278,38 @@
           return password;
       }
   
  +    static boolean compareCvsRoot(String cvsRoot, String target)
  +    {
  +     String s1 = completeCvsRootPort(cvsRoot);
  +     String s2 = completeCvsRootPort(target);
  +     if (s1 != null && s1.equals(s2))
  +     {
  +             return true;
  +     }
  +     return false;
  +     
  +    }
  +    
  +    private static String completeCvsRootPort(String cvsRoot)
  +    {
  +     String result = cvsRoot;
  +     int idx = cvsRoot.indexOf(':');
  +     for (int i=0; i < 2 && idx != -1; i++)
  +     {
  +             idx = cvsRoot.indexOf(':', idx+1);
  +     }
  +     if (idx != -1 && cvsRoot.charAt(idx+1) == '/') 
  +     {
  +             StringBuffer sb = new StringBuffer();
  +             sb.append(cvsRoot.substring(0, idx+1));
  +             sb.append("2401");
  +             sb.append(cvsRoot.substring(idx+1));
  +             result = sb.toString();
  +     }
  +     return result;
  +
  +    }
  +    
       /**
         * Process the CVS command passed in args[] array with all necessary
         * options. The only difference from main() method is, that this method
  
  
  

---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to