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>