It's in the pipe. I did too much refactoring at once yesterday and broke a couple of things so I will do it step by step. Expect some commits in a couple of hours if I can get some time.
> -----Original Message----- > From: Daniel Rall [mailto:[EMAIL PROTECTED]] > > Juanco, how about an ArrayList instead of Vector? > > [EMAIL PROTECTED] writes: > > > 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/Keywo > rdsFormat.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]> > > -- > To unsubscribe, e-mail: > <mailto:[EMAIL PROTECTED]> > For additional commands, e-mail: > <mailto:[EMAIL PROTECTED]> > -- To unsubscribe, e-mail: <mailto:[EMAIL PROTECTED]> For additional commands, e-mail: <mailto:[EMAIL PROTECTED]>
