Hi Golan,

Thanks for the condition.
To contribute to ant, one should always try the
[EMAIL PROTECTED] list to show new tasks.
and user@ant.apache.org to test for user
interest.

A new task/type may get into ant or into
an associated project (like ant-contrib), new tasks
outside of core file activity will be difficult to add.

A new condition has been added to ant cvs recently
which will cover your condition (at least the single
file case)
<isfileselected file="x.txt">
   <containsregexp expression="[4-6]\.[0-9]"/>
</isfileselected>

However, containsregexp does not allow all the options
provided by your condition, and its documentation is
a little lacking, so I think that it would be nice to
enchance the containsregexp selector and fix its
documentation.


Also, <isfileselected> could allow a fileset as nested element in the same way as your condition, maybe with an attribute, like number selected, or amount="some, all, any.

Peter


Golan Derazon wrote:

Peter hi,

I have written a new condition - fileregexp.

"ReplaceRegExp is a directory based condition that checks whether a given
regular expression pattern is matched in a selected file or set of files.
The condition was created to enable waiting for an expression in a file. For
example, when waiting for an application to start in many cases it is easy
to wait for a specific message in the application's log file. "

It's the first time I contribute to an apache project and I'm not sure how
to proceed.
If I understood correctly the next stage is to discuss the proposal in a
wider forum.
Please instruct.

Thank,

_______________________________ 
Golan Derazon,  [EMAIL PROTECTED]
direct 972 - 3 - 5399780  fax 972 -3 -5331617   
www.mercury.com <http://www.mercury.com/>         




______________________________________________________________________
This email has been scanned by the MessageLabs Email Security System.
For more information please visit http://www.messagelabs.com/email ______________________________________________________________________



------------------------------------------------------------------------


FileRegExp


Description

ReplaceRegExp is a directory based condition that checks the whether a given regular expression pattern is matched in a selected file or set of files.
Condition was created to enable waiting for an expression in a file. For example, when waiting for an application to start
in many cases it is easy to wait for a specific message in the application's log file.


Similar to regexp type mappers <../CoreTypes/mapper.html#regexp-mapper> this task needs a supporting regular expression library and an implementation of |org.apache.tools.ant.util.regexp.Regexp|. See details below <#implementation>.


Parameters

*Attribute* *Description* *Required*
file file in which the regular expression should be matched Yes if no nested <fileset> is used
match The regular expression pattern to match in the file(s) Yes
flags The flags to use when matching the regular expression. For more information, consult the Perl5 syntax
g : Global replacement. Replace all occurences found
i : Case Insensitive. Do not consider case in the match
m : Multiline. Treat the string as multiple lines of input, using "^" and "$" as the start or end of any line, respectively, rather than start or end of string.
s : Singleline. Treat the string as a single line of input, using "." to match any character, including a newline, which normally, it would not match.
No
No
encoding The encoding of the file. No - defaults to default JVM encoding



Examples

<condition property="myProperty" value="true">
<fileregexp match="regexptomatch" file="fileToLookForMatch.txt" flags="i"/>
</condition>


Creates the property myProperty and sets its value to true if regexptomatch is matched in fileToLookForMatch.txt.


Choice of regular expression implementation

Ant comes with wrappers for the java.util.regex package of JDK 1.4 <http://java.sun.com/j2se/1.4/docs/api/java/util/regex/package-summary.html>, jakarta-regexp <http://jakarta.apache.org/regexp/> and jakarta-ORO <http://jakarta.apache.org/oro/>, See installation dependencies <../install.html#librarydependencies> concerning the supporting libraries.

The system property |ant.regexp.regexpimpl| governs which regular expression implementation will be chosen. Possible values for this property are :

    * org.apache.tools.ant.util.regexp.Jdk14RegexpRegexp
    * org.apache.tools.ant.util.regexp.JakartaOroRegexp
    * org.apache.tools.ant.util.regexp.JakartaRegexpRegexp

It can also be another implementation of the interface |org.apache.tools.ant.util.regexp.Regexp|. If |ant.regexp.regexpimpl| is not defined, ant checks in the order Jdk14Regexp, JakartaOroRegexp, JakartaRegexp for the availability of the corresponding library. The first of these 3 which is found will be used.

There are cross-platform issues for matches related to line terminator. For example if you use $ to anchor your regular expression on the end of a line the results might be very different depending on both your platform and the regular expression library you use. It is 'highly recommended' that you test your pattern on both Unix and Windows platforms before you rely on it.

    * Jakarta Oro defines a line terminator as '\n' and is consistent
      with Perl.
    * Jakarta RegExp uses a system-dependant line terminator.
    * JDK 1.4 uses '\n', '\r\n', '\u0085', '\u2028', '\u2029' as a
      default but is configured in the wrapper to use only '\n'
      (UNIX_LINE)

/We *strongly* recommend that you use Jakarta Oro./


Parameters specified as nested elements

This condition supports a nested FileSet <../CoreTypes/fileset.html> element.


Examples

<condition property="myProperty" value="true">
     <fileregexp match="regexptomatch">
        <fileset dir=".">
            <include name="*.log*"></include>
        </fileset>
    </fileregexp>
</condition>

Creates the property myProperty and sets its value to true if regexptomatch is matched in one of the files in the file set.

------------------------------------------------------------------------

Copyright © 2001-2004 The Apache Software Foundation. All rights Reserved.



---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]



Reply via email to