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]>