The only way I could figure to do it is to put both into a property. Why it's acceptable to have \'s in properties escapes me. Once you do the getProperty on it, it's a string, but works. It has to have something to do with how Ant handles "attribute". Thanks for all the help Scot!
<project default="main"> <taskdef resource="net/sf/antcontrib/antlib.xml"/> <taskdef name="unset" classname="ise.antelope.tasks.Unset"/> <property name="myProp" value="C:\noDog\Hates\Big\Juicy\Bones"/> <property name="myOtherProp" value="C:\noDog\Hates"/> <target name="main"> <md.isStringInProp mySubstringPropName="myOtherProp" myPropName="myProp"/> <echo message="myResult is: ${isSubstring}"/> </target> <macrodef name="md.isStringInProp"> <attribute name="mySubstringPropName"/> <attribute name="myPropName"/> <sequential> <unset name="isSubstring"/> <script language="javascript"> <![CDATA[ propValue=project.getProperty("@{myPropName}"); substringValue=project.getProperty("@{mySubstringPropName}"); i=propValue.indexOf(substringValue); self.log(i); if (i >= 0) { project.setProperty("isSubstring","true"); } ]]> </script> </sequential> </macrodef> </project> ________________________________ From: Scot P. Floess <sflo...@nc.rr.com> To: Eric Fetzer <elstonk...@yahoo.com> Sent: Thu, January 21, 2010 12:48:23 PM Subject: Re: AppendToProperty MacroDef Hmm - yeah see your pt. That was sorta what I was alluding to earlier :( I hope to look at this tomorrow or Sat ... On Thu, 21 Jan 2010, Eric Fetzer wrote: > This is just plain silly. It looks like it's fine if a property has \'s in > it, but not strings: > > <project default="main"> > <taskdef resource="net/sf/antcontrib/antlib.xml"/> > <taskdef name="unset" classname="ise.antelope.tasks.Unset"/> > <property name="myProp" value="C:\noDog\Hates\Big\Juicy\Bones"/> > <target name="main"> > <md.isStringInProp myString="C:\noDog\Hates" myPropName="myProp"/> > <echo message="myResult is: ${isSubstring}"/> > </target> > > <macrodef name="md.isStringInProp"> > <attribute name="myString"/> > <attribute name="myPropName"/> > <sequential> > <unset name="isSubstring"/> > <script language="javascript"> <![CDATA[ > propValue=project.getProperty("@{myPropName}"); > myString = "@{myString}"; > newString = myString.replace("\\","\\\\"); > i=propValue.indexOf(newString); > self.log("propValue is: " + propValue); > self.log("newString is: " + newString); > self.log(i); > if (i >= 0) > { > project.setProperty("isSubstring","true"); > } > ]]> > </script> > </sequential> > </macrodef> > </project> > > This returns: > > main: > [script] propValue is: C:\noDog\Hates\Big\Juicy\Bones > [script] newString is: C: > [script] oDogHates > [script] -1 > [echo] myResult is: ${isSubstring} > BUILD SUCCESSFUL > Total time: 0 seconds > > > > _____________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________ > From: Scot P. Floess <sflo...@nc.rr.com> > To: Eric Fetzer <elstonk...@yahoo.com> > Sent: Thu, January 21, 2010 11:20:33 AM > Subject: Re: AppendToProperty MacroDef > > Eric: > > I didn't get a chance to look into any of this today. Making up some > hours for coming in late on Monday :( Well, that and I just got a last > minute feature thrown into my day :) > > Your append question - I am going to through a macrodef for that and > prepend into my open source project - thanks! > > This one, if I can figure out the regex - I will throw in as a macrodef > too...so thanks again! > > On Thu, 21 Jan 2010, Eric Fetzer wrote: > > > How do you say in JavaScript, treat the following string as a literal > > string? In C# you can escape out the characters one at a time the same way > > as you do in JavaScript: > > > > string myString = "C:\\Program Files\\JavaScript\\is\\goofy"; > > > > or you can tell it that the entire string is literal with an @: > > > > string myString = @"C:\Program Files\JavaScript\is\goofy"; > > > > Thanks, > > Eric > > > > > > > > ________________________________ > > From: Scot P. Floess <sflo...@nc.rr.com> > > To: Ant Users List <user@ant.apache.org> > > Sent: Thu, January 21, 2010 9:08:03 AM > > Subject: Re: AppendToProperty MacroDef > > > > Interesting... OK :( > > > > On Thu, 21 Jan 2010, Eric Fetzer wrote: > > > >> Same as tmpProp on the other side: > >> > >> main: > >> [echo] myProp is: C:\noDog\Hates\Big\Juicy\Bones > >> [echo] tmpProp is: C:\noDog\Hates\Big\Juicy\Bones > >> > >> > >> > >> > >> ________________________________ > >> From: Scot P. Floess <sflo...@nc.rr.com> > >> To: Ant Users List <user@ant.apache.org> > >> Sent: Thu, January 21, 2010 8:48:29 AM > >> Subject: Re: AppendToProperty MacroDef > >> > >> > >> Will you echo ${myProp} itself? For example before the first > >> propertyregex... > >> > >> Sorry, I don't have time right this minute to look at this and type in the > >> example :) > >> > >> > >> > >> On Thu, 21 Jan 2010, Eric Fetzer wrote: > >> > >>> And to leverage your \n example: > >>> > >>> <project default="main"> > >>> <taskdef resource="net/sf/antcontrib/antlib.xml"/> > >>> <property name="myProp" value="C:\noDog\Hates\Big\Juicy\Bones"/> > >>> <property name="myProp2" value="C:\\noDog\\Hates\\Big\\Juicy\\Bones"/> > >>> <property name="myProp3" value="C:\noDog\\Hates\Big\\Juicy\Bones"/> > >>> <target name="main"> > >>> <propertyregex property="tmpProp" input="${myProp}" override="true" > >>> regexp="\\" replace="\\\\" global="true"/> > >>> <echo message="tmpProp is: ${tmpProp}"/> > >>> <propertyregex property="tmpProp2" input="${myProp2}" override="true" > >>> regexp="\\" replace="\\\\" global="true"/> > >>> <echo message="tmpProp is: ${tmpProp2}"/> > >>> <propertyregex property="tmpProp3" input="${myProp3}" override="true" > >>> regexp="\\" replace="\\\\" global="true"/> > >>> <echo message="tmpProp is: ${tmpProp3}"/> > >>> <propertyregex property="tmpProp4" input="${myProp}" override="true" > >>> regexp="\" replace="\\" global="true"/> > >>> <echo message="tmpProp is: ${tmpProp4}"/> > >>> </target> > >>> </project> > >>> > >>> Produces: > >>> > >>> main: > >>> [echo] tmpProp is: C:\noDog\Hates\Big\Juicy\Bones > >>> [echo] tmpProp is: C:\\noDog\\Hates\\Big\\Juicy\\Bones > >>> [echo] tmpProp is: C:\noDog\\Hates\Big\\Juicy\Bones > >>> BUILD FAILED > >>> java.util.regex.PatternSyntaxException: Unexpected internal error near > >>> index 1 > >>> \ > >>> ^ > >>> at java.util.regex.Pattern.error(Pattern.java:1650) > >>> at java.util.regex.Pattern.compile(Pattern.java:1403) > >>> at java.util.regex.Pattern.<init>(Pattern.java:1124) > >>> at java.util.regex.Pattern.compile(Pattern.java:840) > >>> at > >>> org.apache.tools.ant.util.regexp.Jdk14RegexpMatcher.getCompiledPatter > >>> n(Jdk14RegexpMatcher.java:67) > >>> at > >>> org.apache.tools.ant.util.regexp.Jdk14RegexpMatcher.matches(Jdk14Rege > >>> xpMatcher.java:94) > >>> at > >>> net.sf.antcontrib.property.RegexTask.doReplace(RegexTask.java:135) > >>> at > >>> net.sf.antcontrib.property.RegexTask.execute(RegexTask.java:192) > >>> at > >>> org.apache.tools.ant.UnknownElement.execute(UnknownElement.java:288) > >>> at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) > >>> at > >>> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl. > >>> java:39) > >>> at > >>> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAcces > >>> sorImpl.java:25) > >>> at java.lang.reflect.Method.invoke(Method.java:585) > >>> at > >>> org.apache.tools.ant.dispatch.DispatchUtils.execute(DispatchUtils.jav > >>> a:106) > >>> at org.apache.tools.ant.Task.perform(Task.java:348) > >>> at org.apache.tools.ant.Target.execute(Target.java:357) > >>> at org.apache.tools.ant.Target.performTasks(Target.java:385) > >>> at > >>> org.apache.tools.ant.Project.executeSortedTargets(Project.java:1337) > >>> at org.apache.tools.ant.Project.executeTarget(Project.java:1306) > >>> at > >>> org.apache.tools.ant.helper.DefaultExecutor.executeTargets(DefaultExe > >>> cutor.java:41) > >>> at org.apache.tools.ant.Project.executeTargets(Project.java:1189) > >>> at org.apache.tools.ant.Main.runBuild(Main.java:758) > >>> at org.apache.tools.ant.Main.startAnt(Main.java:217) > >>> at org.apache.tools.ant.launch.Launcher.run(Launcher.java:257) > >>> at org.apache.tools.ant.launch.Launcher.main(Launcher.java:104) > >>> Total time: 0 seconds > >>> > >>> > >>> > >>> > >>> ________________________________ > >>> From: Eric Fetzer <elstonk...@yahoo.com> > >>> To: Ant Users List <user@ant.apache.org> > >>> Sent: Thu, January 21, 2010 8:28:07 AM > >>> Subject: Re: AppendToProperty MacroDef > >>> > >>> Let me give you a better example Scot. Substitution seems to ignore > >>> escape characters entirely. As the task is written now, I don't imagine > >>> there is a way to replace \'s. > >>> > >>> <project default="main"> > >>> <taskdef resource="net/sf/antcontrib/antlib.xml"/> > >>> <property name="myProp" value="C:\myDog\Loves\Big\Juicy\Bones"/> > >>> <property name="myProp2" value="C:\\myDog\\Loves\\Big\\Juicy\\Bones"/> > >>> <property name="myProp3" value="C:\myDog\\Loves\Big\\Juicy\Bones"/> > >>> <target name="main"> > >>> <propertyregex property="tmpProp" input="${myProp}" override="true" > >>> regexp="\\" replace="\\\\" global="true"/> > >>> <echo message="tmpProp is: ${tmpProp}"/> > >>> <propertyregex property="tmpProp2" input="${myProp2}" override="true" > >>> regexp="\\" replace="\\\\" global="true"/> > >>> <echo message="tmpProp2 is: ${tmpProp2}"/> > >>> <propertyregex property="tmpProp3" input="${myProp3}" override="true" > >>> regexp="\\" replace="\\\\" global="true"/> > >>> <echo message="tmpProp3 is: ${tmpProp3}"/> > >>> <propertyregex property="tmpProp4" input="${myProp}" override="true" > >>> regexp="\" replace="\\" global="true"/> > >>> <echo message="tmpProp4 is: ${tmpProp4}"/> > >>> </target> > >>> </project> > >>> > >>> Produces: > >>> > >>> main: > >>> [echo] tmpProp is: C:\myDog\Loves\Big\Juicy\Bones > >>> [echo] tmpProp2 is: C:\\myDog\\Loves\\Big\\Juicy\\Bones > >>> [echo] tmpProp3 is: C:\myDog\\Loves\Big\\Juicy\Bones > >>> BUILD FAILED > >>> java.util.regex.PatternSyntaxException: Unexpected internal error near > >>> index 1 > >>> \ > >>> ^ > >>> at java.util.regex.Pattern.error(Pattern.java:1650) > >>> at java.util.regex.Pattern.compile(Pattern.java:1403) > >>> at java.util.regex.Pattern.<init>(Pattern.java:1124) > >>> at java.util.regex.Pattern.compile(Pattern.java:840) > >>> at > >>> org.apache.tools.ant.util.regexp.Jdk14RegexpMatcher.getCompiledPatter > >>> n(Jdk14RegexpMatcher.java:67) > >>> at > >>> org.apache.tools.ant.util.regexp.Jdk14RegexpMatcher.matches(Jdk14Rege > >>> xpMatcher.java:94) > >>> at > >>> net.sf.antcontrib.property.RegexTask.doReplace(RegexTask.java:135) > >>> at > >>> net.sf.antcontrib.property.RegexTask.execute(RegexTask.java:192) > >>> at > >>> org.apache.tools.ant.UnknownElement.execute(UnknownElement.java:288) > >>> at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) > >>> at > >>> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl. > >>> java:39) > >>> at > >>> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAcces > >>> sorImpl.java:25) > >>> at java.lang.reflect.Method.invoke(Method.java:585) > >>> at > >>> org.apache.tools.ant.dispatch.DispatchUtils.execute(DispatchUtils.jav > >>> a:106) > >>> at org.apache.tools.ant.Task.perform(Task.java:348) > >>> at org.apache.tools.ant.Target.execute(Target.java:357) > >>> at org.apache.tools.ant.Target.performTasks(Target.java:385) > >>> at > >>> org.apache.tools.ant.Project.executeSortedTargets(Project.java:1337) > >>> at org.apache.tools.ant.Project.executeTarget(Project.java:1306) > >>> at > >>> org.apache.tools.ant.helper.DefaultExecutor.executeTargets(DefaultExe > >>> cutor.java:41) > >>> at org.apache.tools.ant.Project.executeTargets(Project.java:1189) > >>> at org.apache.tools.ant.Main.runBuild(Main.java:758) > >>> at org.apache.tools.ant.Main.startAnt(Main.java:217) > >>> at org.apache.tools.ant.launch.Launcher.run(Launcher.java:257) > >>> at org.apache.tools.ant.launch.Launcher.main(Launcher.java:104) > >>> Total time: 0 seconds > >>> > >>> > >>> > >>> > >>> ________________________________ > >>> From: Scot P. Floess <sflo...@nc.rr.com> > >>> To: Ant Users List <user@ant.apache.org> > >>> Sent: Thu, January 21, 2010 8:09:33 AM > >>> Subject: Re: AppendToProperty MacroDef > >>> > >>> > >>> I might be wrong but I think the output you are seeing is correct - as in > >>> the \ is escapeed thereby printing only 1 \ not 2... For example if you > >>> consider \n it is emitted as a newline...but if you do \\n the output will > >>> be a literal \n (as in a backslash followed by the letter n)... Try > >>> printing out the property when you don't do the regex for \\\\ - for > >>> example something like: > >>> > >>> C:\foo\nbar > >>> > >>> I bet the output has a new line in it ;) > >>> > >>> On Thu, 21 Jan 2010, Eric Fetzer wrote: > >>> > >>>> Yeah, that's what I did. The small repro just shows that it doesn't > >>>> affect the string with the \'s whatsoever... If there were actual > >>>> instances of \\ in there maybe it would do something, but there are only > >>>> \'s. Seems like for the saving down of the property, > it uses escape characters, but for the substitution part, it doesn't. I'd > call it a bug I think. > >>>> > >>>> > >>>> > >>>> On Jan 21, 2010, at 7:10 AM, "Scot P. Floess" <sflo...@nc.rr.com> wrote: > >>>> > >>>> > >>>> OK, so in looking more closely, what I meant to say was to do the > >>>> <propertyregex property="tmpProp" first and then the one you had > >>>> initially afterward using the first :) > >>>> > >>>> If I get a free moment today I'll see if I can get it to work... Little > >>>> busy at the moment - maybe at lunch today :) > >>>> > >>>> On Wed, 20 Jan 2010, Scot P. Floess wrote: > >>>> > >>>> > >>>> Yeah, I'll give it some thought and see if there is something I can > >>>> think of tomorrow as well :) > >>>> > >>>> On Wed, 20 Jan 2010, Eric Fetzer wrote: > >>>> > >>>> I tried this Scot, but it didn't do it. So here's an easy repro: > >>>> <project default="main"> > >>>> <taskdef resource="net/sf/antcontrib/antlib.xml"/> > >>>> <property name="myProp" value="C:\myDog\Loves\Big\Juicy\Bones"/> > >>>> <target name="main"> > >>>> <propertyregex property="tmpProp" input="${myProp}" override="true" > >>>> regexp="\\" replace="\\\\" global="true"/> > >>>> <echo message="tmpProp is: ${tmpProp}"/> > >>>> </target> > >>>> </project> > >>>> It produces: > >>>> [echo] tmpProp is: C:\myDog\Loves\Big\Juicy\Bones > >>>> If I change it to: > >>>> <project default="main"> > >>>> <taskdef resource="net/sf/antcontrib/antlib.xml"/> > >>>> <property name="myProp" value="C:\myDog\Loves\Big\Juicy\Bones"/> > >>>> <target name="main"> > >>>> <propertyregex property="tmpProp" input="${myProp}" override="true" > >>>> regexp="\" replace="\\" global="true"/> > >>>> <echo message="tmpProp is: ${tmpProp}"/> > >>>> </target> > >>>> </project> > >>>> it crashes with: > >>>> java.util.regex.PatternSyntaxException: Unexpected internal error near > >>>> index 1 > >>>> \ > >>>> ^ > >>>> at java.util.regex.Pattern.error(Pattern.java:1650) > >>>> at java.util.regex.Pattern.compile(Pattern.java:1403) > >>>> at java.util.regex.Pattern.<init>(Pattern.java:1124) > >>>> at java.util.regex.Pattern.compile(Pattern.java:840) > >>>> at > >>>> org.apache.tools.ant.util.regexp.Jdk14RegexpMatcher.getCompiledPatter > >>>> n(Jdk14RegexpMatcher.java:67) > >>>> at > >>>> org.apache.tools.ant.util.regexp.Jdk14RegexpMatcher.matches(Jdk14Rege > >>>> xpMatcher.java:94) > >>>> at > >>>> net.sf.antcontrib.property.RegexTask.doReplace(RegexTask.java:135) > >>>> at > >>>> net.sf.antcontrib.property.RegexTask.execute(RegexTask.java:192) > >>>> at > >>>> org.apache.tools.ant.UnknownElement.execute(UnknownElement.java:288) > >>>> at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) > >>>> at > >>>> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl. > >>>> java:39) > >>>> at > >>>> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAcces > >>>> sorImpl.java:25) > >>>> at java.lang.reflect.Method.invoke(Method.java:585) > >>>> at > >>>> org.apache.tools.ant.dispatch.DispatchUtils.execute(DispatchUtils.jav > >>>> a:106) > >>>> at org.apache.tools.ant.Task.perform(Task.java:348) > >>>> at org.apache.tools.ant.Target.execute(Target.java:357) > >>>> at org.apache.tools.ant.Target.performTasks(Target.java:385) > >>>> at > >>>> org.apache.tools.ant.Project.executeSortedTargets(Project.java:1337) > >>>> at org.apache.tools.ant.Project.executeTarget(Project.java:1306) > >>>> at > >>>> org.apache.tools.ant.helper.DefaultExecutor.executeTargets(DefaultExe > >>>> cutor.java:41) > >>>> at org.apache.tools.ant.Project.executeTargets(Project.java:1189) > >>>> at org.apache.tools.ant.Main.runBuild(Main.java:758) > >>>> at org.apache.tools.ant.Main.startAnt(Main.java:217) > >>>> at org.apache.tools.ant.launch.Launcher.run(Launcher.java:257) > >>>> at org.apache.tools.ant.launch.Launcher.main(Launcher.java:104) > >>>> I don't know that what we're trying to do is possible with > >>>> propertyregex. It seems it may need some scripting. All I'm really > >>>> trying to do is: > >>>> if(property1.indexOf(string1) >= 0) then return true; > >>>> I'll take a look at how to achieve this tomorrow. Thanks! > >>>> Eric > >>>> ________________________________ > >>>> From: Scot P. Floess <sflo...@nc.rr.com> > >>>> To: Ant Users List <user@ant.apache.org> > >>>> Sent: Wed, January 20, 2010 2:21:41 PM > >>>> Subject: Re: AppendToProperty MacroDef > >>>> Mmm - you may need to do this before your first propertyregex > >>>> <propertyregex property="tmpProp" input="${propertyList}" > >>>> override="true" regexp="\\" replace="\\\\" globale="true"/> > >>>> Basically the above will escape the \ > >>>> On Wed, 20 Jan 2010, Eric Fetzer wrote: > >>>> Well, out of that error and on to the next. It seems that PropertyRegEx > >>>> has an issue with the "\" as well. I wrote a different macrodef that > >>>> works without slashes, but not with slashes. Anyone see a better way? > >>>> <macrodef name="md.isInPropList" description="Find if a dir is a > >>>> subdir of any dir in the list"> > >>>> <attribute name="var.item"/> > >>>> <attribute name="var.itemList"/> > >>>> <sequential> > >>>> <!--First get rid of any values left from previous calls to this > >>>> md and set to false--> > >>>> <unset name="isInList"/> > >>>> <property name="isInList" value="false"/> > >>>> <!--For loop on each item in itemlist to see if any of them are > >>>> true--> > >>>> <for list="@{var.itemList}" param="item"> > >>>> <sequential> > >>>> <!--Make sure regExResult isn't left over--> > >>>> <unset name="regExResult"/> > >>>> <!--Regex expression that will result in the value if it is in > >>>> there--> > >>>> <propertyregex property="regExResult" > >>>> input="${propertyList}" > >>>> override="true" > >>>> regexp=".*(@{item})" > >>>> select="\1" > >>>> casesensitive="false" > >>>> /> > >>>> <!--If regExResult is set to the value of the item, we have a > >>>> match--> > >>>> <if> > >>>> <equals arg1="${regExResult}" arg2="${item}"/> > >>>> <then> > >>>> <unset name="isInList"/> > >>>> <property name="isInList" value="true"/> > >>>> </then> > >>>> </if> > >>>> </sequential> > >>>> </for> > >>>> </sequential> > >>>> </macrodef> > >>>> Thanks, > >>>> Eric > >>>> ________________________________ > >>>> From: Eric Fetzer <elstonk...@yahoo.com> > >>>> To: Ant Users List <user@ant.apache.org> > >>>> Sent: Wed, January 20, 2010 1:40:34 PM > >>>> Subject: Re: AppendToProperty MacroDef > >>>> Beautiful, thanks Scott! > >>>> On Jan 20, 2010, at 1:18 PM, "Scot P. Floess" <sflo...@nc.rr.com> wrote: > >>>> You could use Ant Contrib's var task - probably be a little easier :) > >>>> <macrodef name="md.AppendProperty"> > >>>> <attribute name="var.propertyName"/> > >>>> <attribute name="var.stringAppend"/> > >>>> <sequential> > >>>> <var name="@{var.propertyName}" > >>>> value="$...@{var.propertyname}}@{var.stringAppend}"/> > >>>> </sequential> > >>>> </macrodef> > >>>> On Wed, 20 Jan 2010, Eric Fetzer wrote: > >>>> Hi all. I wrote a MacroDef to append a string to a property. All works > >>>> as planned until you slip a "\" in there and then it gets jacked up. My > >>>> javascripting has MUCH to be desired. Any help? > >>>> <macrodef name="md.AppendProperty"> > >>>> <attribute name="var.propertyName"/> > >>>> <attribute name="var.stringAppend"/> > >>>> <sequential> > >>>> <script language="javascript"> <![CDATA[ > >>>> curVal=project.getProperty("@{var.propertyName}"); > >>>> > >>>> project.setProperty("@{var.propertyName}",curVal+"@{var.stringAppend}"); > >>>> ]]> > >>>> </script> > >>>> </sequential> > >>>> </macrodef> > >>>> Thanks, > >>>> Eric > >>>> Scot P. Floess > >>>> 27 Lake Royale > >>>> Louisburg, NC 27549 > >>>> 252-478-8087 (Home) > >>>> 919-890-8117 (Work) > >>>> Chief Architect JPlate http://sourceforge.net/projects/jplate > >>>> Chief Architect JavaPIM http://sourceforge.net/projects/javapim > >>>> Architect Keros http://sourceforge.net/projects/keros > >>>> --------------------------------------------------------------------- > >>>> To unsubscribe, e-mail: user-unsubscr...@ant.apache.org > >>>> For additional commands, e-mail: user-h...@ant.apache.org > >>>> > >>>> --------------------------------------------------------------------- > >>>> To unsubscribe, e-mail: user-unsubscr...@ant.apache.org > >>>> For additional commands, e-mail: user-h...@ant.apache.org > >>>> Scot P. Floess > >>>> 27 Lake Royale > >>>> Louisburg, NC 27549 > >>>> 252-478-8087 (Home) > >>>> 919-890-8117 (Work) > >>>> Chief Architect JPlate http://sourceforge.net/projects/jplate > >>>> Chief Architect JavaPIM http://sourceforge.net/projects/javapim > >>>> Architect Keros http://sourceforge.net/projects/keros > >>>> --------------------------------------------------------------------- > >>>> To unsubscribe, e-mail: user-unsubscr...@ant.apache.org > >>>> For additional commands, e-mail: user-h...@ant.apache.org > >>>> > >>>> Scot P. Floess > >>>> 27 Lake Royale > >>>> Louisburg, NC 27549 > >>>> > >>>> 252-478-8087 (Home) > >>>> 919-890-8117 (Work) > >>>> > >>>> Chief Architect JPlate http://sourceforge.net/projects/jplate > >>>> Chief Architect JavaPIM http://sourceforge.net/projects/javapim > >>>> > >>>> Architect Keros http://sourceforge.net/projects/keros > >>>> > >>>> > >>>> Scot P. Floess > >>>> 27 Lake Royale > >>>> Louisburg, NC 27549 > >>>> > >>>> 252-478-8087 (Home) > >>>> 919-890-8117 (Work) > >>>> > >>>> Chief Architect JPlate http://sourceforge.net/projects/jplate > >>>> Chief Architect JavaPIM http://sourceforge.net/projects/javapim > >>>> > >>>> Architect Keros http://sourceforge.net/projects/keros > >>>> > >>>> --------------------------------------------------------------------- > >>>> To unsubscribe, e-mail: user-unsubscr...@ant.apache.org > >>>> For additional commands, e-mail: user-h...@ant.apache.org > >>>> > >>>> > >>>> > >>>> > >>>> > >>>> > >>>> --------------------------------------------------------------------- > >>>> To unsubscribe, e-mail: user-unsubscr...@ant.apache.org > >>>> For additional commands, e-mail: user-h...@ant.apache.org > >>>> > >>>> > >>> > >>> Scot P. Floess > >>> 27 Lake Royale > >>> Louisburg, NC 27549 > >>> > >>> 252-478-8087 (Home) > >>> 919-890-8117 (Work) > >>> > >>> Chief Architect JPlate http://sourceforge.net/projects/jplate > >>> Chief Architect JavaPIM http://sourceforge.net/projects/javapim > >>> > >>> Architect Keros http://sourceforge.net/projects/keros > >>> > >>> --------------------------------------------------------------------- > >>> To unsubscribe, e-mail: user-unsubscr...@ant.apache.org > >>> For additional commands, e-mail: user-h...@ant.apache.org > >> > >> Scot P. Floess > >> 27 Lake Royale > >> Louisburg, NC 27549 > >> > >> 252-478-8087 (Home) > >> 919-890-8117 (Work) > >> > >> Chief Architect JPlate http://sourceforge.net/projects/jplate > >> Chief Architect JavaPIM http://sourceforge.net/projects/javapim > >> > >> Architect Keros http://sourceforge.net/projects/keros > >> > >> --------------------------------------------------------------------- > >> To unsubscribe, e-mail: user-unsubscr...@ant.apache.org > >> For additional commands, e-mail: user-h...@ant.apache.org > > > > Scot P. Floess > > 27 Lake Royale > > Louisburg, NC 27549 > > > > 252-478-8087 (Home) > > 919-890-8117 (Work) > > > > Chief Architect JPlate http://sourceforge.net/projects/jplate > > Chief Architect JavaPIM http://sourceforge.net/projects/javapim > > > > Architect Keros http://sourceforge.net/projects/keros > > > > --------------------------------------------------------------------- > > To unsubscribe, e-mail: user-unsubscr...@ant.apache.org > > For additional commands, e-mail: user-h...@ant.apache.org > > Scot P. Floess > 27 Lake Royale > Louisburg, NC 27549 > > 252-478-8087 (Home) > 919-890-8117 (Work) > > Chief Architect JPlate http://sourceforge.net/projects/jplate > Chief Architect JavaPIM http://sourceforge.net/projects/javapim > > Architect Keros http://sourceforge.net/projects/keros > > > Scot P. Floess 27 Lake Royale Louisburg, NC 27549 252-478-8087 (Home) 919-890-8117 (Work) Chief Architect JPlate http://sourceforge.net/projects/jplate Chief Architect JavaPIM http://sourceforge.net/projects/javapim Architect Keros http://sourceforge.net/projects/keros