You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@turbine.apache.org by Stephane Bailliez <st...@haht.com> on 2002/02/27 18:55:40 UTC
RE: cvs commit: jakarta-turbine-maven/src/java/org/apache/maven/j
rcs/rcs KeywordsFormat.java Archive.java ArchiveFormat.java
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:dlr@finemaltcoding.com]
>
> Juanco, how about an ArrayList instead of Vector?
>
> sbailliez@apache.org 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 apache@apache.org.
> > *
> > * 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:sbailliez@apache.org">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:
> <ma...@jakarta.apache.org>
> > For additional commands, e-mail:
> <ma...@jakarta.apache.org>
>
> --
> To unsubscribe, e-mail:
> <ma...@jakarta.apache.org>
> For additional commands, e-mail:
> <ma...@jakarta.apache.org>
>
--
To unsubscribe, e-mail: <ma...@jakarta.apache.org>
For additional commands, e-mail: <ma...@jakarta.apache.org>