juanco      02/02/26 07:13:27

  Modified:    src/java/org/apache/maven/jrcs/diff Diff.java
               src/java/org/apache/maven/jrcs/rcs Archive.java
               src/test/org/apache/maven/jrcs/rcs ArchiveTest.java
  Log:
  Fixed RCS/CVS keyword substitution. Added JUnit tests for all keywords except
  Date, Id, and Header.
  
  Fixed line separators. Archive must use Java's \n. Diff must use whatever
  the line.separator system property says.
  
  Revision  Changes    Path
  1.5       +2 -2      
jakarta-turbine-maven/src/java/org/apache/maven/jrcs/diff/Diff.java
  
  Index: Diff.java
  ===================================================================
  RCS file: 
/home/cvs/jakarta-turbine-maven/src/java/org/apache/maven/jrcs/diff/Diff.java,v
  retrieving revision 1.4
  retrieving revision 1.5
  diff -u -r1.4 -r1.5
  --- Diff.java 23 Feb 2002 13:39:09 -0000      1.4
  +++ Diff.java 26 Feb 2002 15:13:27 -0000      1.5
  @@ -70,7 +70,7 @@
   /**
    * Produces the "delta" differences between two sequences
    *
  - * @version $Revision: 1.4 $ $Date: 2002/02/23 13:39:09 $
  + * @version $Revision: 1.5 $ $Date: 2002/02/26 15:13:27 $
    * @author  Juancarlo A�ez
    * @see     org.apache.maven.jrcs.diff.Delta
    */
  @@ -78,7 +78,7 @@
   public class Diff
   {
   
  -    public static final String NL = "\n";
  +    public static final String NL = System.getProperty("line.separator");
   
   
       static final int NOT_FOUND_i = -2;
  
  
  
  1.8       +40 -26    
jakarta-turbine-maven/src/java/org/apache/maven/jrcs/rcs/Archive.java
  
  Index: Archive.java
  ===================================================================
  RCS file: 
/home/cvs/jakarta-turbine-maven/src/java/org/apache/maven/jrcs/rcs/Archive.java,v
  retrieving revision 1.7
  retrieving revision 1.8
  diff -u -r1.7 -r1.8
  --- Archive.java      25 Feb 2002 20:59:20 -0000      1.7
  +++ Archive.java      26 Feb 2002 15:13:27 -0000      1.8
  @@ -78,7 +78,7 @@
   public class Archive
           extends ToString
   {
  -    public static final String RCS_NEWLINE = "\0x0A";
  +    public static final String RCS_NEWLINE = "\n";
   
       protected TrunkNode _head;
       protected Version _branch;
  @@ -91,7 +91,7 @@
       protected boolean _strictLocking = true;
       protected String _expand;
       protected String _comment = "# ";
  -    protected String _filename = "?,v";
  +    protected String _filename = "__unknown__,v";
   
   
       /**
  @@ -174,12 +174,15 @@
       {
       }
   
  +    public void setFileName(String name)
  +    {
  +      this._filename = name;
  +    }
  +
       public void save(java.io.OutputStream output)
               throws java.io.IOException
       {
  -        new OutputStreamWriter(output).write(
  -                toString(Archive.RCS_NEWLINE).toCharArray()
  -        );
  +        new OutputStreamWriter(output).write(toCharArray());
       }
   
       public void save(String path)
  @@ -358,7 +361,7 @@
   
       public void toString(StringBuffer s)
       {
  -        toString(s, "\n");
  +        toString(s, RCS_NEWLINE);
       }
   
       public String toString(String EOL)
  @@ -367,6 +370,11 @@
           toString(s, EOL);
           return s.toString();
       }
  +    
  +    public char[] toCharArray()
  +    {
  +        return toString(Archive.RCS_NEWLINE).toCharArray();
  +    }
   
       protected Path getRevisionPath(Version vernum)
       {
  @@ -739,9 +747,9 @@
       }
   
       protected static final Format Header_FORMAT =
  -            new MessageFormat("Header: {1} {2} {3, date,yyyy/MM/dd HH:mm:ss} {4} 
{5} ");
  +            new MessageFormat("Header: {0} {2} {3, date,yyyy/MM/dd HH:mm:ss} {4} 
{5} {6}");
       protected static final Format Id_FORMAT =
  -            new MessageFormat("Id: {1} {2} {3, date,yyyy/MM/dd HH:mm:ss} {4} {5} ");
  +            new MessageFormat("Id: {1} {2} {3, date,yyyy/MM/dd HH:mm:ss} {4} {5} 
{6}");
       protected static final Format RCSFile_FORMAT =
               new MessageFormat("RCSfile: {1} ");
       protected static final Format Revision_FORMAT =
  @@ -808,16 +816,19 @@
           Object[] result = new Object[text.length];
           for (int i = 0; i < text.length; i++)
           {
  -            result[i] = Id_re.subst((String)text[i], "$" + 
Id_FORMAT.format(revisionInfo) + "$");
  -            result[i] = Header_re.subst((String)text[i], "$" + 
Header_FORMAT.format(revisionInfo) + "$");
  -            result[i] = Source_re.subst((String)text[i], "$" + 
Source_FORMAT.format(revisionInfo) + "$");
  -            result[i] = RCSfile_re.subst((String)text[i], "$" + 
RCSFile_FORMAT.format(revisionInfo) + "$");
  -            result[i] = Revision_re.subst((String)text[i], "$" + 
Revision_FORMAT.format(revisionInfo) + "$");
  -            result[i] = Date_re.subst((String)text[i], "$" + 
Date_FORMAT.format(revisionInfo) + "$");
  -            result[i] = Author_re.subst((String)text[i], "$" + 
Author_FORMAT.format(revisionInfo) + "$");
  -            result[i] = State_re.subst((String)text[i], "$" + 
State_FORMAT.format(revisionInfo) + "$");
  -            result[i] = Locker_re.subst((String)text[i], "$" + 
Locker_FORMAT.format(revisionInfo) + "$");
  +            String s = text[i].toString();
  +            
  +            s = Id_re.subst(      s, "$" + Id_FORMAT.format(revisionInfo) + "$");
  +            s = Header_re.subst(  s, "$" + Header_FORMAT.format(revisionInfo) + 
"$");
  +            s = Source_re.subst(  s, "$" + Source_FORMAT.format(revisionInfo) + 
"$");
  +            s = RCSfile_re.subst( s, "$" + RCSFile_FORMAT.format(revisionInfo) + 
"$");
  +            s = Revision_re.subst(s, "$" + Revision_FORMAT.format(revisionInfo) + 
"$");
  +            s = Date_re.subst(    s, "$" + Date_FORMAT.format(revisionInfo) + "$");
  +            s = Author_re.subst(  s, "$" + Author_FORMAT.format(revisionInfo) + 
"$");
  +            s = State_re.subst(   s, "$" + State_FORMAT.format(revisionInfo) + "$");
  +            s = Locker_re.subst(  s, "$" + Locker_FORMAT.format(revisionInfo) + 
"$");
               //@TODO: should do something about Name and Log
  +            result[i] = s;
           }
           return result;
       }
  @@ -829,16 +840,19 @@
           Object[] result = new Object[text.length];
           for (int i = 0; i < text.length; i++)
           {
  -            result[i] = Id_re.subst((String)text[i], "$" + "Id" + "$");
  -            result[i] = Header_re.subst((String)text[i], "$" + "Header" + "$");
  -            result[i] = Source_re.subst((String)text[i], "$" + "Source" + "$");
  -            result[i] = RCSfile_re.subst((String)text[i], "$" + "RCSfile" + "$");
  -            result[i] = Revision_re.subst((String)text[i], "$" + "Revision" + "$");
  -            result[i] = Date_re.subst((String)text[i], "$" + "Date" + "$");
  -            result[i] = Author_re.subst((String)text[i], "$" + "Author" + "$");
  -            result[i] = State_re.subst((String)text[i], "$" + "State" + "$");
  -            result[i] = Locker_re.subst((String)text[i], "$" + "Locker" + "$");
  +            String s = text[i].toString();
  +
  +            s = Id_re.subst(      s, "$" + "Id" + "$");
  +            s = Header_re.subst(  s, "$" + "Header" + "$");
  +            s = Source_re.subst(  s, "$" + "Source" + "$");
  +            s = RCSfile_re.subst( s, "$" + "RCSfile" + "$");
  +            s = Revision_re.subst(s, "$" + "Revision" + "$");
  +            s = Date_re.subst(    s, "$" + "Date" + "$");
  +            s = Author_re.subst(  s, "$" + "Author" + "$");
  +            s = State_re.subst(   s, "$" + "State" + "$");
  +            s = Locker_re.subst(  s, "$" + "Locker" + "$");
               //@TODO: should do something about Name and Log
  +            result[i] = s;
           }
           return result;
       }
  
  
  
  1.5       +55 -3     
jakarta-turbine-maven/src/test/org/apache/maven/jrcs/rcs/ArchiveTest.java
  
  Index: ArchiveTest.java
  ===================================================================
  RCS file: 
/home/cvs/jakarta-turbine-maven/src/test/org/apache/maven/jrcs/rcs/ArchiveTest.java,v
  retrieving revision 1.4
  retrieving revision 1.5
  diff -u -r1.4 -r1.5
  --- ArchiveTest.java  20 Feb 2002 23:14:15 -0000      1.4
  +++ ArchiveTest.java  26 Feb 2002 15:13:27 -0000      1.5
  @@ -86,7 +86,38 @@
                  "[5] five"
                  // deleted [6]
                };
  -  Object[] v1_3 = new String[] {
  +
  +  Object[] v1_2_with_keywords = new String[] {
  +               "",
  +               "",//"[1] one    $Id: ArchiveTest.java,v 1.5 2002/02/26 15:13:27 
juanco Exp $",
  +               "",//"[2] two    $Header: 
/home/cvs/jakarta-turbine-maven/src/test/org/apache/maven/jrcs/rcs/ArchiveTest.java,v 
1.5 2002/02/26 15:13:27 juanco Exp $",
  +               "[3] three  $Source: 
/home/cvs/jakarta-turbine-maven/src/test/org/apache/maven/jrcs/rcs/ArchiveTest.java,v 
$",
  +               "[4] four   $RCSfile: ArchiveTest.java,v $",
  +               "[5] five   $Revision: 1.5 $",
  +               "",//"[6] six    $Date: 2002/02/26 15:13:27 $",
  +               "[7] even   $Author: juanco $",
  +               "[8] eight  $State: Exp $",
  +               "[9] nine   $Locker:  $",
  +               "[10] ten   $RCSfile: ArchiveTest.java,v $ $Revision: 1.5 $ $Author: 
juanco $",
  +             };
  +
  +  String user =  System.getProperty("user.name");
  +
  +  Object[] v1_2_with_expanded_keywords = new String[] {
  +               "",
  +               "",//"[1] one    $Id: ArchiveTest.java,v 1.5 2002/02/26 15:13:27 
juanco Exp $",
  +               "",//"[2] two    $Header: 
/home/cvs/jakarta-turbine-maven/src/test/org/apache/maven/jrcs/rcs/ArchiveTest.java,v 
1.5 2002/02/26 15:13:27 juanco Exp $",
  +               "[3] three  $Source: 
/home/cvs/jakarta-turbine-maven/src/test/org/apache/maven/jrcs/rcs/ArchiveTest.java,v 
$",
  +               "[4] four   $RCSfile: ArchiveTest.java,v $",
  +               "[5] five   $Revision: 1.5 $",
  +               "",//"[6] six    $Date: 2002/02/26 15:13:27 $",
  +               "[7] even   $Author: juanco $",
  +               "[8] eight  $State: Exp $",
  +               "[9] nine   $Locker:  $",
  +               "[10] ten   $RCSfile: ArchiveTest.java,v $ $Revision: 1.5 $ $Author: 
juanco $"
  +             };
  +
  +Object[] v1_3 = new String[] {
                  "[1] one changed",
                  "[2] two",
                  "[3] three",
  @@ -150,6 +181,7 @@
   
     public void setUp() {
       archive = new Archive(v1_1, "A simple test file\n");
  +    archive.setFileName("/a/test/path/test_file,v");
     }
   
   
  @@ -196,6 +228,26 @@
       assertNull(archive.getRevisionVersion("1.2.1"));
     }
   
  +  public void testAdd1_2_with_keywords()
  +  throws org.apache.maven.jrcs.diff.DiffException,
  +         org.apache.maven.jrcs.rcs.RCSException
  +  {
  +    testAdd1_1();
  +    archive.addRevision(v1_2_with_keywords, "Added revision with keywords\n");
  +    Object[] rev = archive.getRevision();
  +
  +    assertEquals("1.2", archive._head.version.toString());
  +
  +    assertEquals(Diff.arrayToString(v1_2_with_expanded_keywords), 
Diff.arrayToString(rev));
  +    assertNull(archive.addRevision(v1_2_with_expanded_keywords, "should not be 
added"));
  +
  +    assertEquals(new Version("1.2"), archive.getRevisionVersion());
  +    assertEquals(new Version("1.2"), archive.getRevisionVersion("1."));
  +
  +    assertNull(archive.getRevisionVersion("2"));
  +    assertNull(archive.getRevisionVersion("1.2.1"));
  +  }
  +
     public void testAdd1_3()
     throws org.apache.maven.jrcs.diff.DiffException,
            org.apache.maven.jrcs.rcs.RCSException
  @@ -221,8 +273,8 @@
       archive.addRevision(v1_2_1_1, "1.2.1", "Added 2.1, changed 4, added 5.1\n");
       String   filestr = archive.toString();
       Object[] file    = Diff.stringToArray(filestr);
  -    String diff = Diff.diff(file, sampleFile).toRCSString();
  -    String delta = Diff.arrayToString(deltaOverDates)+"\n";
  +    String diff = Diff.diff(file, sampleFile).toRCSString(Diff.NL);
  +    String delta = Diff.arrayToString(deltaOverDates)+Diff.NL;
       assertEquals("delta over dates", delta , diff);
       Object[] rev = archive.getRevision("1.2.1");
       assertTrue("diffs equal", Diff.compare(v1_2_1_1, rev));
  
  
  

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

Reply via email to