sbailliez 02/02/26 23:44:26
Modified: src/java/org/apache/maven/jrcs jdiff.java rcsp.java
src/java/org/apache/maven/jrcs/rcs Archive.java
Added: src/java/org/apache/maven/jrcs/rcs KeywordsFormat.java
Removed: src/java/org/apache/maven/jrcs/rcs ArchiveFormat.java
Log:
- Changed the name from ArchiveFormat to KeywordsFormat
- minor fixes in code and javadoc
Revision Changes Path
1.7 +3 -7 jakarta-turbine-maven/src/java/org/apache/maven/jrcs/jdiff.java
Index: jdiff.java
===================================================================
RCS file: /home/cvs/jakarta-turbine-maven/src/java/org/apache/maven/jrcs/jdiff.java,v
retrieving revision 1.6
retrieving revision 1.7
diff -u -r1.6 -r1.7
--- jdiff.java 24 Feb 2002 12:25:05 -0000 1.6
+++ jdiff.java 27 Feb 2002 07:44:26 -0000 1.7
@@ -71,17 +71,13 @@
static final String[] loadFile(String name) throws IOException
{
BufferedReader data = new BufferedReader(new FileReader(name));
- Vector v = new Vector();
+ Vector lines = new Vector();
String s;
-
while ((s = data.readLine()) != null)
{
- v.addElement(s);
+ lines.addElement(s);
}
-
- String[] result = new String[v.size()];
- v.copyInto(result);
- return result;
+ return (String[])lines.toArray(new String[lines.size()]);
}
static final void usage(String name)
1.7 +1 -1 jakarta-turbine-maven/src/java/org/apache/maven/jrcs/rcsp.java
Index: rcsp.java
===================================================================
RCS file: /home/cvs/jakarta-turbine-maven/src/java/org/apache/maven/jrcs/rcsp.java,v
retrieving revision 1.6
retrieving revision 1.7
diff -u -r1.6 -r1.7
--- rcsp.java 23 Feb 2002 13:43:16 -0000 1.6
+++ rcsp.java 27 Feb 2002 07:44:26 -0000 1.7
@@ -69,7 +69,7 @@
// try {
if (args.length > 2)
{
- System.out.println("WRONG USSAGE: need at most one parameter");
+ System.out.println("WRONG USAGE: need at most one parameter");
}
else
{
1.13 +6 -6
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.12
retrieving revision 1.13
diff -u -r1.12 -r1.13
--- Archive.java 27 Feb 2002 03:37:16 -0000 1.12
+++ Archive.java 27 Feb 2002 07:44:26 -0000 1.13
@@ -101,7 +101,7 @@
protected String filename = "__unknown__,v";
// synchronize this if this has to be used in MT !
- private final static ArchiveFormat FORMATTER = new ArchiveFormat();
+ private static final KeywordsFormat FORMATTER = new KeywordsFormat();
/**
* Creates a new archive and sets the text of the initial revision.
@@ -324,8 +324,8 @@
* @param value The keyword expansion value. It should be one of:
* <ul>
* <li> kv (Default) Substitue keyword and value.
- * <li> kvl Substitue keyword, value, and locker (if any).
- * <li> k Substitue keyword only.
+ * <li> kvl Substitute keyword, value, and locker (if any).
+ * <li> k Substitute keyword only.
* <li> o Preserve original string.
* <li> b Like o, but mark file as binary.
* <li> v Substitue value only.
@@ -540,9 +540,9 @@
* Partial version numbers are OK.
* @return The actual version, or null if a node is not found.
*/
- public Version getRevisionVersion(String v)
+ public Version getRevisionVersion(String vernum)
{
- return getRevisionVersion(new Version(v));
+ return getRevisionVersion(new Version(vernum));
}
/**
@@ -1014,7 +1014,7 @@
Object[] result = new Object[text.length];
for (int i = 0; i < text.length; i++)
{
- result[i] = FORMATTER.format(text[i].toString(), revisionInfo);
+ result[i] = FORMATTER.update(text[i].toString(), revisionInfo);
}
return result;
}
1.1
jakarta-turbine-maven/src/java/org/apache/maven/jrcs/rcs/KeywordsFormat.java
Index: KeywordsFormat.java
===================================================================
/* ====================================================================
* The Apache Software License, Version 1.1
*
* Copyright (c) 2002 The Apache Software Foundation. All rights
* reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
* are met:
*
* 1. Redistributions of source code must retain the above copyright
* notice, this list of conditions and the following disclaimer.
*
* 2. Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in
* the documentation and/or other materials provided with the
* distribution.
*
* 3. The end-user documentation included with the redistribution,
* if any, must include the following acknowledgment:
* "This product includes software developed by the
* Apache Software Foundation (http://www.apache.org/)."
* Alternately, this acknowledgment may appear in the software itself,
* if and wherever such third-party acknowledgments normally appear.
*
* 4. The names "Apache" and "Apache Software Foundation" and
* "Apache Maven" must not be used to endorse or promote products
* derived from this software without prior written permission. For
* written permission, please contact [EMAIL PROTECTED]
*
* 5. Products derived from this software may not be called "Apache",
* "Apache Maven", nor may "Apache" appear in their name, without
* prior written permission of the Apache Software Foundation.
*
* THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED
* WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
* OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
* DISCLAIMED. IN NO EVENT SHALL THE APACHE SOFTWARE FOUNDATION OR
* ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
* SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
* LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
* USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
* OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
* OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
* SUCH DAMAGE.
* ====================================================================
*
* This software consists of voluntary contributions made by many
* individuals on behalf of the Apache Software Foundation. For more
* information on the Apache Software Foundation, please see
* <http://www.apache.org/>.
*/
package org.apache.maven.jrcs.rcs;
import java.text.Format;
import java.text.MessageFormat;
import org.apache.oro.text.perl.Perl5Util;
import org.apache.oro.text.regex.Perl5Matcher;
import org.apache.oro.text.regex.StringSubstitution;
import org.apache.oro.text.regex.Substitution;
import org.apache.oro.text.regex.Util;
import org.apache.oro.text.regex.Pattern;
import org.apache.oro.text.regex.Perl5Compiler;
import org.apache.oro.text.regex.MalformedPatternException;
/**
* Formatter for the RCS keywords. It is intended as an helper class to
* replace the use of gnu.regexp. This class is NOT threadsafe.
*
* @author <a href="mailto:[EMAIL PROTECTED]">Stephane Bailliez</a>
*/
final class KeywordsFormat
{
//WARNING: Do not remove the string concatenations
// or CVS will mangle the strings on check in/out.
final Format Header_FORMAT =
new MessageFormat("$" + "Header: {1} {2} {3, date,yyyy/MM/dd HH:mm:ss}
{4} {5} " + "$");
final Format Id_FORMAT =
new MessageFormat("$" + "Id: {1} {2} {3, date,yyyy/MM/dd HH:mm:ss} {4}
{5} " + "$");
final Format RCSFile_FORMAT =
new MessageFormat("$" + "RCSfile: {1} " + "$");
final Format Revision_FORMAT =
new MessageFormat("$" + "Revision: {2} " + "$");
final Format Date_FORMAT =
new MessageFormat("$" + "Date: {3, date,yyyy/MM/dd HH:mm:ss} " + "$");
final Format Author_FORMAT =
new MessageFormat("$" + "Author: {4} " + "$");
final Format State_FORMAT =
new MessageFormat("$" + "State: {5} " + "$");
final Format Locker_FORMAT =
new MessageFormat("$" + "Locker: {6} " + "$");
final Format Source_FORMAT =
new MessageFormat("$" + "Source: {0} " + "$");
private final Pattern ID_RE;
private final Pattern HEADER_RE;
private final Pattern SOURCE_RE;
private final Pattern RCSFILE_RE;
private final Pattern REVISION_RE;
private final Pattern DATE_RE;
private final Pattern AUTHOR_RE;
private final Pattern STATE_RE;
private final Pattern LOCKER_RE;
/** the substitution instance to be reused */
private final StringSubstitution subst = new StringSubstitution();
KeywordsFormat()
{
try
{
Perl5Compiler compiler = new Perl5Compiler();
ID_RE = compiler.compile("\\$Id(:[^\\$]*)?\\$");
HEADER_RE = compiler.compile("\\$Header(:[^\\$]*)?\\$");
SOURCE_RE = compiler.compile("\\$Source(:[^\\$]*)?\\$");
RCSFILE_RE = compiler.compile("\\$RCSfile(:[^\\$]*)?\\$");
REVISION_RE = compiler.compile("\\$Revision(:[^\\$]*)?\\$");
DATE_RE = compiler.compile("\\$Date(:[^\\$]*)?\\$");
AUTHOR_RE = compiler.compile("\\$Author(:[^\\$]*)?\\$");
STATE_RE = compiler.compile("\\$State(:[^\\$]*)?\\$");
LOCKER_RE = compiler.compile("\\$Locker(:[^\\$]*)?\\$");
}
catch (MalformedPatternException e)
{
throw new ExceptionInInitializerError(e);
}
}
/** the matcher used for replacement */
private final Perl5Matcher matcher = new Perl5Matcher();
/**
* update the given text made of RCS keywords with the appropriate
* revision info.
* @param text the input text containing the RCS keywords.
* @param revisionInfo the revision information.
* @return the formatted text with the RCS keywords.
*/
String update(String text, Object[] revisionInfo)
{
String data = text;
data = substitute(data, ID_RE, Id_FORMAT.format(revisionInfo));
data = substitute(data, HEADER_RE, Header_FORMAT.format(revisionInfo));
data = substitute(data, SOURCE_RE, Source_FORMAT.format(revisionInfo));
data = substitute(data, RCSFILE_RE, RCSFile_FORMAT.format(revisionInfo));
data = substitute(data, REVISION_RE, Revision_FORMAT.format(revisionInfo));
data = substitute(data, DATE_RE, Date_FORMAT.format(revisionInfo));
data = substitute(data, AUTHOR_RE, Author_FORMAT.format(revisionInfo));
data = substitute(data, STATE_RE, State_FORMAT.format(revisionInfo));
data = substitute(data, LOCKER_RE, Locker_FORMAT.format(revisionInfo));
//@TODO: should do something about Name and Log
return data;
}
/**
* Reinitialize all RCS keywords match.
* @param text the text to look for RCS keywords.
* @return the text with initialized RCS keywords.
*/
String reset(String text)
{
//WARNING: Do not remove the string concatenations
// or CVS will mangle the strings on check in/out.
String data = text;
data = substitute(data, ID_RE, '$' + "Id$");
data = substitute(data, HEADER_RE, '$' + "Header$");
data = substitute(data, SOURCE_RE, '$' + "Source$");
data = substitute(data, RCSFILE_RE, '$' + "RCSfile$");
data = substitute(data, REVISION_RE, '$' + "Revision$");
data = substitute(data, DATE_RE, '$' + "Date$");
data = substitute(data, AUTHOR_RE, '$' + "Author$");
data = substitute(data, STATE_RE, '$' + "State$");
data = substitute(data, LOCKER_RE, '$' + "Locker$");
//@TODO: should do something about Name and Log
return data;
}
/**
* Helper method for substitution that will substitute all matches of
* a given pattern.
* @param input the text to look for substitutions.
* @param pattern the pattern to replace in the input text.
* @param substitution the string to use as a replacement for the pattern.
* @return the text with the subsituted value.
*/
private final String substitute(String input, Pattern pattern, String
substitution)
{
subst.setSubstitution(substitution);
final String output = Util.substitute(matcher, pattern, subst, input,
Util.SUBSTITUTE_ALL);
// no need to keep a reference to the last substitution string
subst.setSubstitution("");
return output;
}
}
--
To unsubscribe, e-mail: <mailto:[EMAIL PROTECTED]>
For additional commands, e-mail: <mailto:[EMAIL PROTECTED]>