You are viewing a plain text version of this content. The canonical link for it is here.
Posted to user@ant.apache.org by Rhino <rh...@sympatico.ca> on 2011/10/30 02:47:30 UTC

Target Execution Sequence

  I'm having a perplexing problem and I'm hoping someone here can help 
me understand whatever I'm missing. I was moderately fluent with Ant at 
one point but I've been away from it a  while and have probably just 
forgotten some fundamental that I need to know.

Here's the deal. I have an Ant script that is displaying an AntForm. The 
AntForm contains some checkboxes that are supposed to make me keep or 
omit three particular paragraphs in a document I am writing later in the 
script. Basically, I use the AntForm to set specific booleans, one for 
each of the three paragraphs, in a Java source file to true or false. 
Then, I generate the document with a program that I've written and that 
program either writes the specified paragraphs or omits them based on 
the values of the booleans. At least, that's what's SUPPOSED to happen.

In reality, the booleans are being seen by the program that generates 
the document as true regardless of what has been done with the AntForm. 
Therefore, all three special paragraphs always appear in the document 
even when I've asked for some or all of them to be omitted.

This baffles me because I actually display the contents of the Java 
source file to myself in the Ant script before and after the execution 
of the program that generates the document and the values of the three 
booleans and they have the correct values. For instance, I can set the 
three booleans to false, true and false respectively via the AntForm and 
that's exactly how they appear in the Java source file just before I 
generate the document.  (Then I reset the values to their defaults (all 
three true) then display them to myself and they are all true.) However, 
when I write the values of the booleans within the program that is 
generating the document, they are invariably all true, even if they have 
been set to different values.

I don't understand why I'm getting this misbehaviour.

My working theory is that Ant is NOT executing the tasks within the 
script in the expected order. When I add the -verbose and -debug 
parameters to the Ant Build, I see something that the task that displays 
the AntForm is done in its proper sequence, namely first within the 
script. However, the tasks that are to be executed to change the values 
of the booleans are NOT executed immediately after the AntForm is 
displayed but after the compile of the Java code. The script is 
displaying the AntForm and letting me check the checkboxes as I like, 
then compiling the code and ONLY THEN actually editing the source file 
to set some of the booleans to false. I think this explains why the 
switches are always seen as true by the document-generating program: the 
generator is simply not getting the edited version of the source file.

Can anyone confirm that my theory makes sense? Or, if it doesn't, 
suggest a better explanation? If I'm on the right track, what is it that 
I'm not understanding about the execution sequences of tasks within 
targets? I had assumed that each task within a target would be executed 
before tasks in other targets were started....

--
Rhino

---------------------------------------------------------------------
To unsubscribe, e-mail: user-unsubscribe@ant.apache.org
For additional commands, e-mail: user-help@ant.apache.org


Re: Target Execution Sequence

Posted by Rhino <rh...@sympatico.ca>.

On 2011-10-31 04:44, Dominique Devienne wrote:
> On Sun, Oct 30, 2011 at 2:47 AM, Rhino<rh...@sympatico.ca>  wrote:
>>   I'm having a perplexing problem and I'm hoping someone here can help me
>> understand whatever I'm missing. I was moderately fluent with Ant at one
>> point but I've been away from it a  while and have probably just forgotten
>> some fundamental that I need to know.
>> [...]
>> In reality, the booleans are being seen by the program that generates the
>> document as true regardless of what has been done with the AntForm.
>> Therefore, all three special paragraphs always appear in the document even
>> when I've asked for some or all of them to be omitted.
> Haven't looked at the build you included later, but just in case it's
> a lucky guess, remember that some "conditionals" in Ant only look at
> whether a property is set, rather than its actual value (true or
> false, 0, or 1, etc...).
Right, I seem to remember that....
> For example<target name="..." if="foo"/>,
> will execute if property "foo" is *set*, to whatever. This is
> typically worked around by using<target name="..." depends="test-foo"
> if="foo-is-true?"/>  with<target name="test-foo">  <condition
> property="foo-is-true?"><istrue property="foo"/></condition></target>.
> (WARNING: untested code). This works because is target's dependencies
> are always evaluated before itself (if these dependencies haven't been
> already satisfied/evaluated). Hope this helps. --DD
>
Sorry, I'm not following your example. Which of those things are you 
putting on which tasks?

Also, please see my reply to Patrick's suggestion. Perhaps you can shed 
some light on the underlying problem of why my edited source file is not 
being seen by the main program that uses it.

--
Rhino
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: user-unsubscribe@ant.apache.org
> For additional commands, e-mail: user-help@ant.apache.org
>
>
>

---------------------------------------------------------------------
To unsubscribe, e-mail: user-unsubscribe@ant.apache.org
For additional commands, e-mail: user-help@ant.apache.org


Re: Target Execution Sequence

Posted by Dominique Devienne <dd...@gmail.com>.
On Sun, Oct 30, 2011 at 2:47 AM, Rhino <rh...@sympatico.ca> wrote:
>  I'm having a perplexing problem and I'm hoping someone here can help me
> understand whatever I'm missing. I was moderately fluent with Ant at one
> point but I've been away from it a  while and have probably just forgotten
> some fundamental that I need to know.
> [...]
> In reality, the booleans are being seen by the program that generates the
> document as true regardless of what has been done with the AntForm.
> Therefore, all three special paragraphs always appear in the document even
> when I've asked for some or all of them to be omitted.

Haven't looked at the build you included later, but just in case it's
a lucky guess, remember that some "conditionals" in Ant only look at
whether a property is set, rather than its actual value (true or
false, 0, or 1, etc...). For example <target name="..." if="foo"/>,
will execute if property "foo" is *set*, to whatever. This is
typically worked around by using <target name="..." depends="test-foo"
if="foo-is-true?"/> with <target name="test-foo"> <condition
property="foo-is-true?"><istrue property="foo"/></condition></target>.
(WARNING: untested code). This works because is target's dependencies
are always evaluated before itself (if these dependencies haven't been
already satisfied/evaluated). Hope this helps. --DD

---------------------------------------------------------------------
To unsubscribe, e-mail: user-unsubscribe@ant.apache.org
For additional commands, e-mail: user-help@ant.apache.org


Re: Target Execution Sequence

Posted by Rhino <rh...@sympatico.ca>.
  Hi Patrick,

Thanks for your suggestions.

I'm running Ant 1.8.2 in Eclipse 3.7. For what it's worth, I tried just 
changing the ifs to use properties expansion and it didn't change anything.

So I added  "depends="Omit_Email_Address, Omit_Recent_Education, 
Omit_Important_Note" to the javac task. On the next run of the build, 
the tasks executed in the following order: datetime, verify_format (I 
chose List_Format), Set_List_Format, verify_switches (I checked all 
three), Omit_Email_Address, Omit_Recent_Education, Omit_Important_Note, 
compile, jar, gen_javadocs, gen_resume_files, copy_to_local, upload (I 
chose "none"), no_upload.

Sounds perfect, right? Well, I was happy that the task sequence was what 
I wanted it to be but it didn't actually solve the underlying problem! 
When the gen_resume_files target executed, it displayed that all three 
switches were false, as I wanted, but when the java task executed the 
main program, all three of the switches werestill displayed as TRUE by 
the main program and the paragraphs that I wanted to omit all appeared 
in the documents ! The program still seems to be seeing the unedited 
ResumeConstants file, even though I recompiled it in the hope of picking 
up the edited version just before generating the program. In each step, 
the replaceregxp says the file was changed and saved when I use the 
-verbose flag.

What's going on here? I don't understand why it is seeing the wrong 
version of the file despite all my efforts to do simple edits on the 
ResumeConstants file, all of which appear to have taken place.

--
Rhino

On 2011-10-30 13:47, Patrick Martin wrote:
> Hello,
>
> just a quick guess, your "compile" target should probably be depending on
> the "Omit*" ones.
>
> Also, it may not have any impact in your case, but the if attributes of
> your Omit targets will only check if properties are set. If your using Ant
>> 1.8.0, you might want to use properties expansion. Something
> like if="${omit.email.address}" instead of if="omit.email.address". Ant
> will check if the value is true, false or if property with
> name ${omit.email.address} is set.
>
> Rgds,
>
> Patrick
>
> 2011/10/30 Rhino<rh...@sympatico.ca>
>
>>   Okay, you asked for it so here it is, my complete build script. It's
>> rather long but I didn't want to snip any bits out for fear that it would
>> skew the picture. However, I think you could safely ignore many of the
>> targets, especially those whose names start with "upload".
>>
>> Just to recap, the behaviour I'm seeing when I use -debug and -verbose is
>> that the "verify_switches" target is executing, then the "compile", then
>> whichever of the three "omit_" targets are appropriate depending on what I
>> did in the AntForm displayed by "verify_switches". I think that's why the
>> edits to the ResumeConstants file are being done but not making any
>> difference: the "gen_resume_files" target is using the UNALTERED version of
>> ResumeConstants, not the edited version. What do I have to do to ensure
>> that the "omit_" targets are only being executed if necessary but that if
>> they need to be executed, they are executed BEFORE the compile?
>>
>>
>> <?xml version="1.0" ?><project name="Resume" default="buildall"
>> basedir=".">
>> <description>Copy the resume files to the local filesystem for testing and
>> to the server for
>> client use.
>> </description>
>>
>> <property name="pgmname" value="ResumeApplet" description="The name of the
>> applet."/>
>> <property name="domain.slashes" value="com\foo" description="The domain
>> name written as a path."/>
>> <property name="mydocs" value="c:\Documents and Settings\Sparky\My
>> Documents" description="The path to My Documents."/>
>> <property name="db2" value="c:\Program Files\IBM\SQLLIB" description="The
>> path to DB2."/>
>> <property name="jdkbin" value="c:\Program Files\Java\jdk1.6.0_18\bin"
>> description="The path to the Java JDK binaries."/>
>> <property name="workspace351" value="c:\eclipse\workspace"
>> description="The path to the Eclipse 3.5.1 workspace."/>
>> <property name="commonpath" value="c:\eclipse\workspace" description="The
>> path to the Common project."/>
>> <property name="iText.jar" value="c:\iText\1.3\itext-1.3.**jar"
>> description="The path to the iText jars."/>
>> <property name="antform.home" value="c:\Ant\AntForm\antform-**bin-2.0"
>> description="The path to the AntForm code."/>
>> <property name="resume.proj" value="Resume" description="The name of the
>> resume project."/>
>> <property name="common.proj" value="Common" description="The name of the
>> project containing the common code."/>
>> <property name="common.test.proj" value="UnitTests" description="The name
>> of the project containing the tests for the common code."/>
>> <property name="resume.pkg" value="${domain.slashes}\**resume"
>> description="The name of the resume package containing the ResumeApplet
>> code."/>
>> <property name="common.pkg" value="${domain.slashes}\**common"
>> description="The name of the package containing the common code."/>
>> <property name="common.tests.pkg" value="${domain.slashes}\**tests\common"
>> description="The name of the package containing tests for common code."/>
>> <property name="common.tests.util.pkg" value="${domain.slashes}\**common\tests\utilities"
>> description="The name of the package containing test for common
>> utilities."/>
>> <property name="compiler.path" value="${jdkbin}\javac" description="The
>> path of the Java 1.6.0_18 compiler."/>
>> <property name="db2java.zip" value="${db2}\java\db2java.**zip"
>> description="Files needed by JDBC to connect to DB2."/>
>> <property name="db2jcc.jar" value="${db2}\java\db2jcc.jar"
>> description="Files needed by JDBC to connect to DB2."/>
>> <property name="db2jcc_lic.jar" value="${db2}\java\db2jcc_**license_cu.jar"
>> description="Files needed by JDBC to connect to DB2."/>
>> <property name="javadoc.path" value="${jdkbin}\javadoc" description="The
>> path to the directory containing the Javadoc program."/>
>> <property name="resume.src" value="${workspace351}\${**resume.proj}\src"
>> description="The path to the source files for the ResumeApplet code."/>
>> <property name="resume.bin" value="${workspace351}\${**resume.proj}\bin"
>> description="The path to the class files for the ResumeApplet code."/>
>> <property name="common.src" value="${commonpath}\${common.**proj}\src"
>> description="The path to the source files for the common code."/>
>> <property name="common.bin" value="${commonpath}\${common.**proj}\bin"
>> description="The path to the class files for the common code."/>
>> <property name="test.src" value="${workspace351}\${**common.test.proj}\src"
>> description="The path to the JUnit test source for the common code."/>
>> <property name="resume.jar.dir" value="${workspace351}\${**resume.proj}\jar"
>> description="The path to the jar file for the ResumeApplet."/>
>> <property name="resume.jar.file" value="${pgmname}.jar" description="The
>> name of the jar file containing the ResumeApplet."/>
>> <property name="resume.xml.dir" value="${workspace351}\${**resume.proj}\xml"
>> description="The path to the XML directory for the Resume project."/>
>> <property name="resume.output.dir" value="${workspace351}\${**resume.proj}\output"
>> description="The path to the output directory for the Resume project. This
>> contains the files created by the ResumeGenerator, except for the
>> Javadocs."/>
>> <property name="word.resume" value="${mydocs}\resume.doc" description="The
>> name and path to the original of the Word version of the resume."/>
>> <property name="resume.javadoc.dir" value="${workspace351}\${**resume.proj}\doc"
>> description="The path to the directory where the Resume and Common javadocs
>> are written."/>
>> <property name="db2.sql.dir" value="${db2}\Scripts\Foo" description="The
>> directory in which the DB2 scripts are stored."/>
>> <property name="local.resume.dir" value="${mydocs}\Applets\**resume"
>> description="The local file system directory which contains the Resume
>> files. Used for testing the Resume locally."/>
>> <property name="create.resume.script" value="'c:\Documents and
>> Settings\Sparky\My Documents\CreateWordResume.**vbs'" description="The
>> VBScript that silently creates the resume."/>
>> <property name="export.macros.script" value="'c:\Documents and
>> Settings\Sparky\My Documents\ExportWordMacros.**vbs'" description="The
>> VBScript that silently exports the Word macros."/>
>> <property name="export.macros.path" value="'c:\Documents and
>> Settings\Sparky\My Documents\WordMacros.txt'" description="The name of the
>> file that will contain the exported Word macros."/>
>> <property name="Host1Free.hostname" value="smresume.host1.com"
>> description="The domain name for the Host1Free webspace."/>
>> <property name="Host1Free.resume.dir" value="public_html" description="The
>> directory on the Host1Free server which will hold the Resume information."/>
>> <property name="Foo.hostname" value="www.foo.com" description="The Foo
>> domain name."/>
>> <property name="Foo.resume.dir" value="/home/foo/public_html/**resume"
>> description="The directory in the Foo server where the Resume information
>> is stored."/>
>> <property name="Foo.sql.dir" value="/home/sparky/MySQL/Foo"
>> description="The directory containing the originals of the database
>> scripts."/>
>> <property name="Foo.keyfile" value="${mydocs}\Desktop\**Mycroft\id_rsa"
>> description="The directory on the local machine containing the keyfile for
>> the Foo server."/>
>> <property name="RoadRunner.hostname" value="www3.sympatico.com"
>> description="The domain name for the RoadRunner personal webspace."/>
>> <property name="RoadRunner.resume.dir" value="resume" description="The
>> directory on the RoadRunner server which will hold the Resume
>> information."/>
>> <property name="X10.hostname" value="rcresume.x10hosting.com**"
>> description="The name of the X10 host that will contain the resume."/>
>> <property name="X10.resume.dir" value="public_html/resume"
>> description="The name of the directory that will contain the resume."/>
>> <property name="retries.allowed" value="3" description="The number of
>> retries that the FTP task can attempt. -1 means infinite number."/>
>>
>> <!--==========================**==============================**==========
>>     Task definitions for tasks that aren't Ant core or optional tasks.
>>     ==============================**==============================**
>> ======-->
>> <taskdef name="antform" classname="com.sardak.antform.**AntForm"
>> classpath="${antform.home}/**lib/antform.jar"/>
>> <taskdef name="antmenu" classname="com.sardak.antform.**AntMenu"
>> classpath="${antform.home}/**lib/antform.jar"/>
>>
>> <!--==========================**==============================**==========
>>     Import common code.
>>     ==============================**==============================**
>> ======-->
>> <property name="import.path" value="${ant.home}\imports"/>
>> <import file="${import.path}\sounds.**xml" description="Play appropriate
>> sounds depending on whether build worked or failed."/>
>> <import file="${import.path}\datetime.**xml" description="Display date
>> and time that build started."/>
>>
>> <!--==========================**==============================**==========
>>     Establish patternsets.
>>     ==============================**==============================**
>> ======-->
>> <patternset id="ps.resume" description="The project-specific resume code.">
>> <include name="${resume.pkg}\*.*"/>
>> <include name="${resume.pkg}\Resources\**Resume*.java"/>
>> </patternset>
>>
>> <patternset id="ps.applet" description="The project-specific code needed
>> by the applet.">
>> <include name="${resume.pkg}\**EmploymentHistoryFormats.*"/>
>> <include name="${resume.pkg}\Resume.*"/**>
>> <include name="${resume.pkg}\**ResumeApplet.*"/>
>> <include name="${resume.pkg}\**ResumeConstants.*"/>
>> <include name="${resume.pkg}\Resources\**ResumeList*.*"/>
>> </patternset>
>>
>> <patternset id="ps.applet.common" description="The common code needed by
>> the applet.">
>> <include name="${common.pkg}\**CommonConstants.*"/>
>> <include name="${common.pkg}\Hybrid.*"/**>
>> <include name="${common.pkg}\lookups\**ColorName.*"/>
>> <include name="${common.pkg}\lookups\**ColorPalette.*"/>
>> <include name="${common.pkg}\lookups\**PadPosition.*"/>
>> <include name="${common.pkg}\lookups\**WrappingCases.*"/>
>> <include name="${common.pkg}\utilities\**CountUtils.*"/>
>> <include name="${common.pkg}\utilities\**ErrorUtils.*"/>
>> <include name="${common.pkg}\utilities\**LocalizationUtils.*"/>
>> <include name="${common.pkg}\utilities\**StringUtils.*"/>
>> <include name="${common.pkg}\utilities\**WrapUtils.*"/>
>> <include name="${common.pkg}\utilities\**Resources\StringUtilsMsg*.*"/>
>> </patternset>
>>
>> <patternset id="ps.common" description="The programs in the common package
>> needed by the resume classes.">
>> <include name="${common.pkg}\**CommonConstants.*"/>
>> <include name="${common.pkg}\lookups\**ColorName.*"/>
>> <include name="${common.pkg}\lookups\**ColorPalette.*"/>
>> <include name="${common.pkg}\lookups\**Months.*"/>
>> <include name="${common.pkg}\utilities\**CountUtils.*"/>
>> <include name="${common.pkg}\utilities\**ColorConversionUtils.*"/>
>> <include name="${common.pkg}\utilities\**DateTimeUtils.*"/>
>> <include name="${common.pkg}\utilities\**LocalizationUtils.*"/>
>> <include name="${common.pkg}\utilities\**StringUtils.*"/>
>> <include name="${common.pkg}\utilities\**WrapUtils.*"/>
>> <include name="${common.pkg}\utilities\**WrappingCases.*"/>
>> </patternset>
>>
>> <patternset id="ps.test.common" description="Common test cases.">
>> <include name="PalettesTest.java"/>
>> </patternset>
>>
>> <patternset id="ps.test.util" description="Common utilities test cases.">
>> <include name="**ColorConversionUtilsTest.java"**/>
>> <include name="DateTimeUtilsTest.java"/**>
>> <include name="StringUtilsTest.java"/>
>> </patternset>
>>
>> <patternset id="ps.html" description="The HTML and CSS files.">
>> <include name="*.html"/>
>> <include name="*.css"/>
>> <include name="noJava.png"/>
>> </patternset>
>>
>> <patternset id="ps.pdf" description="The PDF files.">
>> <include name="*.pdf"/>
>> </patternset>
>>
>> <patternset id="ps.asc" description="The ASCII file.">
>> <include name="*.asc"/>
>> </patternset>
>>
>> <patternset id="ps.jar" description="Jars.">
>> <include name="*.jar"/>
>> </patternset>
>>
>> <patternset id="ps.word" description="Word docs.">
>> <include name="smalarkey-resume.doc"/>
>> <include name="WordMacros.txt"/>
>> </patternset>
>>
>> <patternset id="ps.xml" description="XML files.">
>> <include name="build.xml"/>
>> </patternset>
>>
>> <patternset id="ps.sql" description="SQL scripts.">
>> <include name="*_Locale.sql"/>
>> <include name="*_Labels.sql"/>
>> <include name="*_Reference.sql"/>
>> <include name="*_Reference_Rels.sql"/>
>> <include name="*_Reference_Paras.sql"/>
>> </patternset>
>>
>> <!--==========================**==============================**==========
>>    Let the user choose the format for the Employment History.
>>     ==============================**==============================**
>> ======-->
>> <target name="verify_format" description="Let the user choose the desired
>> Employment History format for the resumes.">
>> <antmenu title="Choose Employment History Format">
>> <label>You have the option of generating the resumes so that the
>> description of each job in the Employment History is formatted as a
>> paragraph or as a bulleted list. Choose the desired format or choose Abort
>> to cancel the build.</label>
>> <button label="List Format" target="Set_List_Format"/>
>> <button label="Paragraph Format" target="Set_Paragraph_Format"/**>
>> <button label="Abort" target="abort"/>
>> </antmenu>
>> </target>
>>
>> <target name="Set_List_Format" description="Ensure that job descriptions
>> in the Employment History section will appear as bulleted lists.">
>> <replaceregexp file="${resume.src}\${resume.**pkg}\ResumeConstants.java"
>>         match="^[\s]*public static final EmploymentHistoryFormats
>> DESIRED_EMPLOYMENT_HISTORY_**FORMAT[\s]*=[\s]*([^;]+);[\s]***$"
>>         replace="    public static final EmploymentHistoryFormats
>> DESIRED_EMPLOYMENT_HISTORY_**FORMAT = EmploymentHistoryFormats.LIST_**
>> FORMAT;"
>>         byline="true"/>
>> </target>
>>
>> <target name="Set_Paragraph_Format" description="Ensure that job
>> descriptions in the Employment History section will appear as a paragraph.">
>> <replaceregexp file="${resume.src}\${resume.**pkg}\ResumeConstants.java"
>>         match="^[\s]*public static final EmploymentHistoryFormats
>> DESIRED_EMPLOYMENT_HISTORY_**FORMAT[\s]*=[\s]*([^;]+);[\s]***$"
>>         replace="    public static final EmploymentHistoryFormats
>> DESIRED_EMPLOYMENT_HISTORY_**FORMAT = EmploymentHistoryFormats.**
>> PARAGRAPH_FORMAT;"
>>         byline="true"/>
>> </target>
>>
>> <target name="abort" description="Display a message that the build was
>> cancelled.">
>> <fail message="The user chose not to proceed with the build."/>
>> </target>
>>
>> <!--==========================**==============================**==========
>>    Let the user choose to show or hide specific items.
>>     ==============================**==============================**
>> ======-->
>> <target name="verify_switches" description="Let the user choose which
>> content to omit.">
>> <antform title="Choose Information Which Will Not Be Displayed">
>> <label>Use the checkboxes to control which of the following content is
>> shown. Choose Abort to cancel the build.</label>
>> <booleanProperty label="Omit Email Address" property="omit.email.address"/
>> **>
>> <booleanProperty label="Omit Recent Education" property="omit.recent.**
>> education"/>
>> <booleanProperty label="Omit Important Note" property="omit.important.note"
>> **/>
>> <controlbar>
>> <button label="Abort" target="abort2" type="cancel"/>
>> <button label="Ok" type="ok"/>
>> </controlbar>
>> </antform>
>> </target>
>>
>> <target name="Omit_Email_Address" description="Omit the email address."
>> if="omit.email.address">
>> <replaceregexp file="${resume.src}\${resume.**pkg}\ResumeConstants.java"
>>         match="^[\s]*public static final boolean
>> SHOW_EMAIL_ADDRESS[\s]*=[\s]*(**[^;]+);[\s]*$"
>>         replace="    public static final boolean SHOW_EMAIL_ADDRESS =
>> false;"
>>         byline="true"/>
>> </target>
>>
>> <target name="Omit_Recent_Education" description="Omit the recent
>> education." if="omit.recent.education">
>> <replaceregexp file="${resume.src}\${resume.**pkg}\ResumeConstants.java"
>>         match="^[\s]*public static final boolean
>> SHOW_RECENT_EDUCATION[\s]*=[\**s]*([^;]+);[\s]*$"
>>         replace="    public static final boolean SHOW_RECENT_EDUCATION =
>> false;"
>>         byline="true"/>
>> </target>
>>
>> <target name="Omit_Important_Note" description="Omit the important note."
>> if="omit.important.note">
>> <replaceregexp file="${resume.src}\${resume.**pkg}\ResumeConstants.java"
>>         match="^[\s]*public static final boolean
>> SHOW_IMPORTANT_NOTE[\s]*=[\s]***([^;]+);[\s]*$"
>>         replace="    public static final boolean SHOW_IMPORTANT_NOTE =
>> false;"
>>         byline="true"/>
>> </target>
>>
>> <target name="abort2" description="Display a message that the build was
>> cancelled.">
>> <fail message="The user chose not to proceed with the build."/>
>> </target>
>>
>> <!--==========================**==============================**==========
>>    Compile all of the Java code, both project-specific and common.
>>     ==============================**==============================**
>> ======-->
>> <target name="compile" description="Compile the Java code.">
>> <javac srcdir="${common.src}" destdir="${common.bin}" compiler="modern"
>> fork="yes"
>>         verbose="no" debug="on" debuglevel="lines,vars,source"
>> deprecation="yes"
>>         executable="${compiler.path}" source="1.6" includeantruntime="false"
>>         description="Compile the code in the common package.">
>> <patternset refid="ps.common"/>
>> </javac>
>> <javac srcdir="${resume.src}" destdir="${resume.bin}" compiler="modern"
>> fork="yes"
>>         verbose="no" debug="on" debuglevel="lines,vars,source"
>> deprecation="yes"
>>         executable="${compiler.path}" source="1.6" includeantruntime="false"
>>         description="Compile the code in the resume and resume.Resources
>> packages.">
>> <classpath>
>> <pathelement path="${common.bin}"/>
>> <pathelement path="${iText.jar}"/>
>> </classpath>
>> <patternset refid="ps.resume"/>
>> </javac>
>> </target>
>>
>> <!--==========================**==============================**==========
>>    Jar the class files and resources used by the applet.
>>     ==============================**==============================**
>> ======-->
>> <target name="jar" depends="compile" description="Jar the class files and
>> resources used by the applet.">
>> <delete file="${resume.jar.dir}/${**resume.jar.file}" description="Delete
>> the old jar."/>
>> <jar destfile="${resume.jar.dir}/${**resume.jar.file}" compress="true"
>>         description="Create the new jar.">
>> <manifest>
>> <attribute name="Manifest-Version" value="1.0"/>
>> <attribute name="Main-Class" value="com.foo.resume.**ResumeApplet"/>
>> <attribute name="Implementation-Title" value="Résumé"/>
>> <attribute name="Implementation-Version" value="${start.TODAY} at
>> ${start.TIME}"/>
>> <attribute name="Implementation-Vendor" value="foo.com"/>
>> </manifest>
>> <fileset dir="${resume.bin}" defaultexcludes="yes">
>> <patternset refid="ps.applet"/>
>> </fileset>
>> <fileset dir="${common.bin}" defaultexcludes="yes">
>> <patternset refid="ps.applet.common"/>
>> </fileset>
>> </jar>
>> </target>
>>
>> <!--==========================**==============================**==========
>>     Generate the Javadocs for the project and for the common classes
>>     used by the project.
>>     ==============================**==============================**
>> ======-->
>> <target name="gen_javadocs"
>>     description="Generate the Javadocs for the project classes and the
>> common classes that support them.">
>> <delete includeEmptyDirs="true"
>>         description="Delete contents of javadoc directory but not the
>> directory itself.">
>> <fileset dir="${resume.javadoc.dir}" includes="**/*"/>
>> </delete>
>>
>> <javadoc destdir="${resume.javadoc.dir}**"
>>         author="true"
>>         version="true"
>>         use="true"
>>         splitindex="true"
>>         access="public"
>>         executable="${javadoc.path}"
>>         source="1.6"
>>         windowtitle="Resume API"
>>         breakiterator="true"
>>         overview="${resume.output.dir}**\javadoc_overview.html"
>> doctitle="Résumé Overview"
>>         classpath="${iText.jar}:${**common.bin}"
>>         description="Generate Javadocs for the project and the supporting
>> common code.">
>>
>> <fileset dir="${resume.src}" defaultexcludes="yes">
>> <patternset refid="ps.resume"/>
>> </fileset>
>> <fileset dir="${common.src}" defaultexcludes="yes">
>> <patternset refid="ps.common"/>
>> </fileset>
>>
>> <doctitle><![CDATA[<h1>R&**eacute;sum&eacute;</h1>]]></**doctitle>
>> <bottom><![CDATA[<i>Copyright&#169; 2006-2011 Sparky Malarkey. All Rights
>> Reserved. Last generated on ${start.TODAY} at ${start.TIME}.</i>]]></bottom>
>> <group title="Résumé Packages" packages="resume*"/>
>> <group title="Common Packages" packages="common*"/>
>> <link href="http://java.sun.com/**j2se/1.6.0/docs/api<http://java.sun.com/j2se/1.6.0/docs/api>
>> "/>
>> </javadoc>
>> </target>
>>
>> <!--==========================**==============================**==========
>>     Generate the main HTML page, HTML version of the resume, HTML for
>>     the page that will contain the applet and source code links, HTML
>>     for the Javadocs overview, CSS for the preceding files, and the
>>     ASCII, PDF, and Word versions of the resume.
>>     ==============================**==============================**
>> ======-->
>> <target name="gen_resume_files" depends="Omit_Email_Address,**
>> Omit_Recent_Education,Omit_**Important_Note" description="Generate HTML,
>> CSS, ASCII, PDF and Word files.">
>>
>> <!--TEMPORARY-->
>> <echo message="Display ResumConstants just BEFORE generating the
>> resumes."/>
>> <concat>
>> <fileset dir="${resume.src}\${resume.**pkg}" includes="ResumeConstants.**
>> java"/>
>> </concat>
>>
>> <echo message="Generate all files containing resumes and their supporting
>> files EXCEPT for the Word version of the resume."/>
>> <java classname="com.foo.resume.**ResumeFileGenerator" fork="false"
>>         description="Execute the ResumeFileGenerator program.">
>> <classpath>
>> <pathelement path="${common.bin}"/>
>> <pathelement path="${resume.bin}"/>
>> <pathelement path="${iText.jar}"/>
>> <pathelement path="${db2java.zip}"/>
>> <pathelement path="${db2jcc.jar}"/>
>> <pathelement path="${db2jcc_lic.jar}"/>
>> </classpath>
>> <sysproperty key="log.path" value="c:\\eclipse\workspace\**Resume\log"/>
>> </java>
>>
>> <echo message="Generate the Word version of the resume."/>
>> <exec executable="cscript.exe" os="Windows XP" failonerror="true"
>> description="Generate the Word version of the resume via a VBScript that
>> invokes a macro.">
>> <arg line="${create.resume.script}"**/>
>> </exec>
>>
>>
>> <echo message="Export the Word macros that created the resume."/>
>> <exec executable="cscript.exe" os="Windows XP" failonerror="true"
>> description="Export the macros used to create the resume.">
>> <arg line="${export.macros.script} ${export.macros.path}"/>
>> </exec>
>>
>>
>> <echo message="Reset switches used to control resume content."/>
>> <replaceregexp file="${resume.src}\${resume.**pkg}\ResumeConstants.java"
>>         match="^[\s]*public static final boolean
>> SHOW_EMAIL_ADDRESS[\s]*=[\s]*(**[^;]+);[\s]*$"
>>         replace="    public static final boolean SHOW_EMAIL_ADDRESS = true;"
>>         byline="true"/>
>>
>> <replaceregexp file="${resume.src}\${resume.**pkg}\ResumeConstants.java"
>>         match="^[\s]*public static final boolean
>> SHOW_RECENT_EDUCATION[\s]*=[\**s]*([^;]+);[\s]*$"
>>         replace="    public static final boolean SHOW_RECENT_EDUCATION =
>> true;"
>>         byline="true"/>
>>
>> <replaceregexp file="${resume.src}\${resume.**pkg}\ResumeConstants.java"
>>         match="^[\s]*public static final boolean
>> SHOW_IMPORTANT_NOTE[\s]*=[\s]***([^;]+);[\s]*$"
>>         replace="    public static final boolean SHOW_IMPORTANT_NOTE =
>> true;"
>>         byline="true"/>
>>
>> <!--TEMPORARY-->
>> <echo message="Display ResumConstants just AFTER generating the resumes."/>
>> <concat>
>> <fileset dir="${resume.src}\${resume.**pkg}" includes="ResumeConstants.**
>> java"/>
>> </concat>
>>
>> </target>
>>
>> <!--==========================**==============================**==========
>>     Copy all necessary code to the file system for local testing.
>>
>>     NOTES:
>>     - mkdir only makes a directory if it doesn't already exist
>>     - copy overlays existing files with newer versions of those same files
>>     ==============================**==============================**
>> ======-->
>> <target name="copy_to_local" description="Copy files to the local file
>> system for testing.">
>>
>> <echo message="Deleting the local resume directory and everything in it."/>
>> <delete includeemptydirs="true" quiet="true"
>>         description="Delete everything within the local resume directory,
>> including the local resume directory itself.">
>> <fileset dir="${local.resume.dir}"/>
>> </delete>
>>
>> <echo message="Creating the resume directory and its subdirectories."/>
>> <mkdir dir="${local.resume.dir}"/>
>> <mkdir dir="${local.resume.dir}\asc"/**>
>> <mkdir dir="${local.resume.dir}\jar"/**>
>> <mkdir dir="${local.resume.dir}\**javadoc"/>
>> <mkdir dir="${local.resume.dir}\pdf"/**>
>> <mkdir dir="${local.resume.dir}\sql"/**>
>> <mkdir dir="${local.resume.dir}\src"/**>
>> <mkdir dir="${local.resume.dir}\test"**/>
>> <mkdir dir="${local.resume.dir}\word"**/>
>> <mkdir dir="${local.resume.dir}\xml"/**>
>>
>> <echo message="Populating main directory."/>
>> <copy todir="${local.resume.dir}" failonerror="false"
>>         description="Copy HTML and CSS files to the local file system.">
>> <fileset dir="${resume.output.dir}">
>> <patternset refid="ps.html"/>
>> </fileset>
>> </copy>
>>
>> <echo message="Populating asc directory."/>
>> <copy todir="${local.resume.dir}\**asc" failonerror="false"
>>         description="Copy ASCII files to the local file system.">
>> <fileset dir="${resume.output.dir}">
>> <patternset refid="ps.asc"/>
>> </fileset>
>> </copy>
>>
>> <echo message="Populating jar directory."/>
>> <copy todir="${local.resume.dir}\**jar" failonerror="false"
>>         description="Copy jars to local file system.">
>> <fileset dir="${resume.jar.dir}">
>> <patternset refid="ps.jar"/>
>> </fileset>
>> </copy>
>>
>> <echo message="Populating javadocs directory."/>
>> <copy todir="${local.resume.dir}\**javadoc" failonerror="false"
>>         description="Copy Javadocs to local file system.">
>> <fileset dir="${resume.javadoc.dir}" description="Javadocs"/>
>> </copy>
>>
>> <echo message="Populating pdf directory."/>
>> <copy todir="${local.resume.dir}\**pdf" failonerror="false"
>>         description="Copy PDFs to local file system.">
>> <fileset dir="${resume.output.dir}">
>> <patternset refid="ps.pdf"/>
>> </fileset>
>> </copy>
>>
>> <echo message="Populating sql directory."/>
>> <copy todir="${local.resume.dir}\**sql" failonerror="false"
>>         description="Copy SQL to local file system.">
>> <fileset dir="${db2.sql.dir}">
>> <patternset refid="ps.sql"/>
>> </fileset>
>> </copy>
>>
>> <echo message="Populating src directory."/>
>> <copy todir="${local.resume.dir}\**src" failonerror="false"
>>         description="Copy Java source files for resume and common code to
>> Local file system.">
>> <fileset dir="${resume.src}" description="Source files for Resume">
>> <patternset refid="ps.resume"/>
>> </fileset>
>> <fileset dir="${common.src}" description="Source files for common code">
>> <patternset refid="ps.common"/>
>> </fileset>
>> </copy>
>>
>> <echo message="Populating test directory."/>
>> <copy todir="${local.resume.dir}\**test" failonerror="false"
>>        description="Copy JUnit tests to Local file system.">
>> <fileset dir="${test.src}\${common.**tests.util.pkg}" description="Source
>> files for JUnit tests of common classes">
>> <patternset refid="ps.test.util"/>
>> </fileset>
>> <fileset dir="${test.src}\${common.**tests.pkg}" description="Source
>> files for JUnit tests of common utilities classes">
>> <patternset refid="ps.test.common"/>
>> </fileset>
>> </copy>
>>
>> <echo message="Populating word directory."/>
>> <copy todir="${local.resume.dir}\**word" failonerror="false"
>>         description="Copy Word docs to local file system.">
>> <fileset dir="${mydocs}">
>> <patternset refid="ps.word"/>
>> </fileset>
>> </copy>
>>
>> <echo message="Populating xml directory."/>
>> <copy todir="${local.resume.dir}\**xml" failonerror="false"
>>         description="Copy XML files to local file system.">
>> <fileset dir="${resume.xml.dir}">
>> <patternset refid="ps.xml"/>
>> </fileset>
>> </copy>
>>
>> </target>
>>
>> <!--==========================**==============================**==========
>>     Determine which server is the target.
>>     ==============================**==============================**
>> ======-->
>> <target name="upload" description="Determine which server(s) should get
>> the files.">
>> <antmenu title="Upload Resume">
>> <label>Choose a server to which you want to upload the resume.</label>
>> <!--<button label="Foo server" target="upload_to_Foo"/>-->
>> <button label="Host1Free server" target="upload_to_Host1Free"/>
>> <button label="RoadRunner server" target="upload_to_RoadRunner"/**>
>> <button label="X10 server" target="upload_to_X10"/>
>> <button label="All servers" target="upload_all"/>
>> <button label="Don't upload" target="no_upload"/>
>> </antmenu>
>> </target>
>>
>> <target name="no_upload" description="Display a message that the upload
>> was bypassed.">
>> <echo message="The user chose not to upload the resume to any server."/>
>> </target>
>>
>> <!--==========================**==============================**==========
>>     Upload to all of the servers.
>>     ==============================**==============================**
>> =======-->
>> <target  name="upload_all" depends="upload_to_Host1Free,
>> upload_to_RoadRunner,upload_**to_X10" description="Upload to all
>> servers.">
>> <echo message="Finished uploading to all servers."/>
>> </target>
>>
>> <!--==========================**==============================**==========
>>      Upload to the Host1Free server.
>>     ==============================**==============================**
>> ======-->
>> <target name="upload_to_Host1Free" description="Upload to the Host1Free
>> server.">
>>
>> <antform title="Upload to Host1Free Server">
>> <label>Please supply the userid and password for the Host1Free
>> server.</label>
>> <textProperty label="Userid: " property="userid" columns="15"
>> required="true"/>
>> <textProperty label="Password: " property="password" columns="15"
>> password="true" required="true"/>
>> </antform>
>>
>> <echo message="Uploading to Host1Free...."/>
>>
>> <echo message="Deleting all files (but not subdirectories) *beneath* the
>> resume directory."/>
>> <antcall target="currentTime"/>
>> <ftp action="del" server="${Host1Free.hostname}" userid="${userid}"
>> password="${password}"
>>         remotedir="${Host1Free.resume.**dir}"
>>         retriesallowed="${retries.**allowed}"
>>         description="Delete all files under resume directory at any level.">
>> <fileset>
>> <include name="**\*"/>
>> </fileset>
>> </ftp>
>>
>> <echo message="Deleting all (now empty) subdirectories *beneath* the
>> resume directory."/>
>> <antcall target="currentTime"/>
>> <ftp action="rmdir" server="${Host1Free.hostname}" userid="${userid}"
>> password="${password}"
>>         retriesallowed="${retries.**allowed}"
>>         remotedir="${Host1Free.resume.**dir}">
>> <fileset>
>> <include name="**\*"/>
>> </fileset>
>> </ftp>
>>
>> <echo message="Re-creating all subdirectories within resume directory."/>
>> <antcall target="currentTime"/>
>> <ftp action="mkdir" server="${Host1Free.hostname}" userid="${userid}"
>> password="${password}"
>>         remotedir="${Host1Free.resume.**dir}/asc"
>> retriesallowed="${retries.**allowed}" ignoreNoncriticalErrors="true"**/>
>> <ftp action="mkdir" server="${Host1Free.hostname}" userid="${userid}"
>> password="${password}"
>>         remotedir="${Host1Free.resume.**dir}/jar"
>> retriesallowed="${retries.**allowed}" ignoreNoncriticalErrors="true"**/>
>> <ftp action="mkdir" server="${Host1Free.hostname}" userid="${userid}"
>> password="${password}"
>>         remotedir="${Host1Free.resume.**dir}/javadoc"
>> retriesallowed="${retries.**allowed}" ignoreNoncriticalErrors="true"**/>
>> <ftp action="mkdir" server="${Host1Free.hostname}" userid="${userid}"
>> password="${password}"
>>         remotedir="${Host1Free.resume.**dir}/pdf"
>> retriesallowed="${retries.**allowed}" ignoreNoncriticalErrors="true"**/>
>> <ftp action="mkdir" server="${Host1Free.hostname}" userid="${userid}"
>> password="${password}"
>>         remotedir="${Host1Free.resume.**dir}/sql"
>> retriesallowed="${retries.**allowed}" ignoreNoncriticalErrors="true"**/>
>> <ftp action="mkdir" server="${Host1Free.hostname}" userid="${userid}"
>> password="${password}"
>>         remotedir="${Host1Free.resume.**dir}/src"
>> retriesallowed="${retries.**allowed}" ignoreNoncriticalErrors="true"**/>
>> <ftp action="mkdir" server="${Host1Free.hostname}" userid="${userid}"
>> password="${password}"
>>         remotedir="${Host1Free.resume.**dir}/test"
>> retriesallowed="${retries.**allowed}" ignoreNoncriticalErrors="true"**/>
>> <ftp action="mkdir" server="${Host1Free.hostname}" userid="${userid}"
>> password="${password}"
>>         remotedir="${Host1Free.resume.**dir}/word"
>> retriesallowed="${retries.**allowed}" ignoreNoncriticalErrors="true"**/>
>> <ftp action="mkdir" server="${Host1Free.hostname}" userid="${userid}"
>> password="${password}"
>>         remotedir="${Host1Free.resume.**dir}/xml"
>> retriesallowed="${retries.**allowed}" ignoreNoncriticalErrors="true"**/>
>>
>> <echo message="Populating main directory."/>
>> <antcall target="currentTime"/>
>> <ftp action="send" server="${Host1Free.hostname}" userid="${userid}"
>> password="${password}"
>>         description="Populate main resume directory"
>>         remotedir="${Host1Free.resume.**dir}"
>>         retriesallowed="${retries.**allowed}"
>>         separator="/" binary="yes" verbose="yes">
>> <fileset dir="${resume.output.dir}">
>> <patternset refid="ps.html"/>
>> </fileset>
>> </ftp>
>>
>> <echo message="Populating asc directory."/>
>> <antcall target="currentTime"/>
>> <ftp action="send" server="${Host1Free.hostname}" userid="${userid}"
>> password="${password}"
>>         description="Populate main resume directory"
>>         remotedir="${Host1Free.resume.**dir}/asc"
>>         retriesallowed="${retries.**allowed}"
>>         separator="/" binary="yes" verbose="yes">
>> <fileset dir="${resume.output.dir}">
>> <patternset refid="ps.asc"/>
>> </fileset>
>> </ftp>
>>
>> <echo message="Populating jar directory."/>
>> <antcall target="currentTime"/>
>> <ftp action="send" server="${Host1Free.hostname}" userid="${userid}"
>> password="${password}"
>>         description="Populate jar directory"
>>         remotedir="${Host1Free.resume.**dir}/jar"
>>         retriesallowed="${retries.**allowed}"
>>         separator="/" binary="yes" verbose="yes">
>> <fileset dir="${resume.jar.dir}">
>> <patternset refid="ps.jar"/>
>> </fileset>
>> </ftp>
>>
>> <echo message="Populating javadoc directory."/>
>> <antcall target="currentTime"/>
>> <ftp action="send" server="${Host1Free.hostname}" userid="${userid}"
>> password="${password}"
>>         description="Populate javadoc directory"
>>         remotedir="${Host1Free.resume.**dir}/javadoc"
>>         retriesallowed="${retries.**allowed}"
>>         separator="/" binary="no" verbose="yes">
>> <fileset dir="${resume.javadoc.dir}"/>
>> </ftp>
>>
>> <echo message="Populating pdf directory."/>
>> <antcall target="currentTime"/>
>> <ftp action="send" server="${Host1Free.hostname}" userid="${userid}"
>> password="${password}"
>>         description="Populate pdf directory"
>>         remotedir="${Host1Free.resume.**dir}/pdf"
>>         retriesallowed="${retries.**allowed}"
>>         separator="/" binary="yes" verbose="yes">
>> <fileset dir="${resume.output.dir}">
>> <patternset refid="ps.pdf"/>
>> </fileset>
>> </ftp>
>>
>> <echo message="Populating sql directory."/>
>> <antcall target="currentTime"/>
>> <ftp action="send" server="${Host1Free.hostname}" userid="${userid}"
>> password="${password}"
>>         description="Populate sql directory"
>>         remotedir="${Host1Free.resume.**dir}/sql"
>>         retriesallowed="${retries.**allowed}"
>>         separator="/" binary="yes" verbose="yes">
>> <fileset dir="${db2.sql.dir}">
>> <patternset refid="ps.sql"/>
>> </fileset>
>> </ftp>
>>
>> <echo message="Populating src directory."/>
>> <antcall target="currentTime"/>
>> <ftp action="send" server="${Host1Free.hostname}" userid="${userid}"
>> password="${password}"
>>         description="Populate src directory"
>>         remotedir="${Host1Free.resume.**dir}/src"
>>         retriesallowed="${retries.**allowed}"
>>         separator="/" binary="no" verbose="yes">
>> <fileset dir="${resume.src}">
>> <patternset refid="ps.resume"/>
>> </fileset>
>> <fileset dir="${common.src}">
>> <patternset refid="ps.common"/>
>> </fileset>
>> </ftp>
>>
>> <!--
>> <echo message="Populating test directory."/>
>> <antcall target="currentTime"/>
>> <ftp action="send" server="${Host1Free.hostname}" userid="${userid}"
>> password="${password}"
>>         description="Populate test directory"
>>         remotedir="${Host1Free.resume.**dir}/test"
>>         retriesallowed="${retries.**allowed}"
>>         separator="/" binary="no" verbose="yes">
>> <fileset dir="${test.src}" description="JUnit test files">
>> <patternset refid="ps.test"/>
>> </fileset>
>> </ftp>
>>     -->
>>
>> <echo message="Populating word directory."/>
>> <antcall target="currentTime"/>
>> <ftp action="send" server="${Host1Free.hostname}" userid="${userid}"
>> password="${password}"
>>         description="Populate test directory"
>>         remotedir="${Host1Free.resume.**dir}/word"
>>         retriesallowed="${retries.**allowed}"
>>         separator="/" binary="yes" verbose="yes">
>> <fileset dir="${mydocs}">
>> <patternset refid="ps.word"/>
>> </fileset>
>> </ftp>
>>
>> <echo message="Populating xml directory."/>
>> <antcall target="currentTime"/>
>> <ftp action="send" server="${Host1Free.hostname}" userid="${userid}"
>> password="${password}"
>>         description="Populate xml directory"
>>         remotedir="${Host1Free.resume.**dir}/xml"
>>         retriesallowed="${retries.**allowed}"
>>         separator="/" binary="no" verbose="yes">
>> <fileset dir="${resume.xml.dir}">
>> <patternset refid="ps.xml"/>
>> </fileset>
>> </ftp>
>>
>> </target>
>>
>> <!--==========================**==============================**==========
>>     Upload to the Foo server. The Foo server uses SSH so the 'scp'
>>     task is used for each upload of a file or directory. The 'sshexec'
>>     task is used to create directories.
>>
>>     NOTE: The Foo server no longer exists. This code is being kept
>>     only as an example of using the 'scp' and 'sshexec' tasks.
>>    ==============================**==============================**
>> ======-->
>> <target name="upload_to_Foo" description="Upload to the Foo server.">
>>
>> <antform title="Upload to Foo Server">
>> <label>Please supply the loginid and SSH passphrase for the Foo
>> server.</label>
>> <textProperty label="Login ID: " property="loginid" columns="15"
>> required="true"/>
>> <textProperty label="SSH Passphrase: " property="passphrase" columns="15"
>> password="true" required="true"/>
>> </antform>
>>
>> <echo message="Uploading to Foo...."/>
>>
>> <echo message="Deleting resume directory and all files and directories
>> below it."/>
>> <antcall target="currentTime"/>
>> <sshexec host="${Foo.hostname}" username="${loginid}" trust="true"
>>         keyfile="${Foo.keyfile}" passphrase="${passphrase}"
>>         command="rm -rf ${Foo.resume.dir}"/>
>>
>> <echo message="Creating directories."/>
>> <antcall target="currentTime"/>
>> <sshexec host="${Foo.hostname}" username="${loginid}" trust="true"
>>         keyfile="${Foo.keyfile}" passphrase="${passphrase}"
>>         command="mkdir ${Foo.resume.dir}"/>
>> <sshexec host="${Foo.hostname}" username="${loginid}" trust="true"
>>         keyfile="${Foo.keyfile}" passphrase="${passphrase}"
>>         command="mkdir ${Foo.resume.dir}/asc"/>
>> <sshexec host="${Foo.hostname}" username="${loginid}" trust="true"
>>         keyfile="${Foo.keyfile}" passphrase="${passphrase}"
>>         command="mkdir ${Foo.resume.dir}/jar"/>
>> <sshexec host="${Foo.hostname}" username="${loginid}" trust="true"
>>         keyfile="${Foo.keyfile}" passphrase="${passphrase}"
>>         command="mkdir ${Foo.resume.dir}/javadoc"/>
>> <sshexec host="${Foo.hostname}" username="${loginid}" trust="true"
>>         keyfile="${Foo.keyfile}" passphrase="${passphrase}"
>>         command="mkdir ${Foo.resume.dir}/pdf"/>
>> <sshexec host="${Foo.hostname}" username="${loginid}" trust="true"
>>         keyfile="${Foo.keyfile}" passphrase="${passphrase}"
>>         command="mkdir ${Foo.resume.dir}/sql"/>
>> <sshexec host="${Foo.hostname}" username="${loginid}" trust="true"
>>         keyfile="${Foo.keyfile}" passphrase="${passphrase}"
>>         command="mkdir ${Foo.resume.dir}/src"/>
>> <sshexec host="${Foo.hostname}" username="${loginid}" trust="true"
>>         keyfile="${Foo.keyfile}" passphrase="${passphrase}"
>>         command="mkdir ${Foo.resume.dir}/test"/>
>> <sshexec host="${Foo.hostname}" username="${loginid}" trust="true"
>>         keyfile="${Foo.keyfile}" passphrase="${passphrase}"
>>         command="mkdir ${Foo.resume.dir}/word"/>
>> <sshexec host="${Foo.hostname}" username="${loginid}" trust="true"
>>         keyfile="${Foo.keyfile}" passphrase="${passphrase}"
>>         command="mkdir ${Foo.resume.dir}/xml"/>
>>
>> <echo message="Populating main directory."/>
>> <antcall target="currentTime"/>
>> <scp todir="${loginid}@${Foo.**hostname}:${Foo.resume.dir}" trust="true"
>>         keyfile="${Foo.keyfile}" passphrase="${passphrase}">
>> <fileset dir="${resume.output.dir}">
>> <patternset refid="ps.html"/>
>> </fileset>
>> </scp>
>>
>> <echo message="Populating asc directory."/>
>> <antcall target="currentTime"/>
>> <scp todir="${loginid}@${Foo.**hostname}:${Foo.resume.dir}/**asc"
>> trust="true"
>>         keyfile="${Foo.keyfile}" passphrase="${passphrase}">
>> <fileset dir="${resume.output.dir}">
>> <patternset refid="ps.asc"/>
>> </fileset>
>> </scp>
>>
>> <echo message="Populating jar directory."/>
>> <antcall target="currentTime"/>
>> <scp todir="${loginid}@${Foo.**hostname}:${Foo.resume.dir}/**jar"
>> trust="true"
>>         keyfile="${Foo.keyfile}" passphrase="${passphrase}">
>> <fileset dir="${resume.jar.dir}">
>> <patternset refid="ps.jar"/>
>> </fileset>
>> </scp>
>>
>> <echo message="Populating javadoc directory."/>
>> <antcall target="currentTime"/>
>> <scp todir="${loginid}@${Foo.**hostname}:${Foo.resume.dir}/**javadoc"
>> trust="true"
>>         keyfile="${Foo.keyfile}" passphrase="${passphrase}">
>> <fileset dir="${resume.javadoc.dir}"/>
>> </scp>
>>
>> <echo message="Populating pdf directory."/>
>> <antcall target="currentTime"/>
>> <scp todir="${loginid}@${Foo.**hostname}:${Foo.resume.dir}/**pdf"
>> trust="true"
>>         keyfile="${Foo.keyfile}" passphrase="${passphrase}">
>> <fileset dir="${resume.output.dir}">
>> <patternset refid="ps.pdf"/>
>> </fileset>
>> </scp>
>>
>> <echo message="Populating sql directory."/>
>> <antcall target="currentTime"/>
>> <scp todir="${loginid}@${Foo.**hostname}:${Foo.resume.dir}/**sql"
>> trust="true"
>>         keyfile="${Foo.keyfile}" passphrase="${passphrase}">
>> <fileset dir="${db2.sql.dir}">
>> <patternset refid="ps.sql"/>
>> </fileset>
>> </scp>
>>
>> <echo message="Populating src directory."/>
>> <antcall target="currentTime"/>
>> <scp todir="${loginid}@${Foo.**hostname}:${Foo.resume.dir}/**src"
>> trust="true"
>>         keyfile="${Foo.keyfile}" passphrase="${passphrase}">
>> <fileset dir="${resume.src}">
>> <patternset refid="ps.resume"/>
>> </fileset>
>> <fileset dir="${common.src}">
>> <patternset refid="ps.common"/>
>> </fileset>
>> </scp>
>>
>> <echo message="Populating test directory."/>
>> <antcall target="currentTime"/>
>> <scp todir="${loginid}@${Foo.**hostname}:${Foo.resume.dir}/**test"
>> trust="true"
>>         keyfile="${Foo.keyfile}" passphrase="${passphrase}">
>> <fileset dir="${test.src}">
>> <patternset refid="ps.test"/>
>> </fileset>
>> </scp>
>>
>> <echo message="Populating word directory."/>
>> <antcall target="currentTime"/>
>> <scp todir="${loginid}@${Foo.**hostname}:${Foo.resume.dir}/**word"
>> trust="true"
>>         keyfile="${Foo.keyfile}" passphrase="${passphrase}">
>> <fileset dir="${resume.word.dir}">
>> <patternset refid="ps.word"/>
>> </fileset>
>> </scp>
>>
>> <echo message="Populating xml directory."/>
>> <antcall target="currentTime"/>
>> <scp todir="${loginid}@${Foo.**hostname}:${Foo.resume.dir}/**xml"
>> trust="true"
>>         keyfile="${Foo.keyfile}" passphrase="${passphrase}">
>> <fileset dir="${resume.xml.dir}">
>> <patternset refid="ps.xml"/>
>> </fileset>
>> </scp>
>>
>> </target>
>>
>> <!--==========================**==============================**==========
>>      Upload to the RoadRunner server.
>>     ==============================**==============================**
>> ======-->
>> <target name="upload_to_RoadRunner" description="Upload to the RoadRunner
>> server.">
>>
>> <antform title="Upload to RoadRunner Server">
>> <label>Please supply the userid and password for the RoadRunner
>> server.</label>
>> <textProperty label="Userid: " property="userid" columns="15"
>> required="true"/>
>> <textProperty label="Password: " property="password" columns="15"
>> password="true" required="true"/>
>> </antform>
>>
>> <echo message="Uploading to RoadRunner...."/>
>>
>> <echo message="Deleting all files (but not subdirectories) *beneath* the
>> resume directory."/>
>> <antcall target="currentTime"/>
>> <ftp action="del" server="${RoadRunner.hostname}**" userid="${userid}"
>> password="${password}"
>>         remotedir="${RoadRunner.**resume.dir}"
>>         retriesallowed="${retries.**allowed}"
>>         description="Delete all files under resume directory at any level.">
>> <fileset>
>> <include name="**\*"/>
>> </fileset>
>> </ftp>
>>
>> <echo message="Deleting all (now empty) subdirectories *beneath* the
>> resume directory."/>
>> <antcall target="currentTime"/>
>> <ftp action="rmdir" server="${RoadRunner.hostname}**" userid="${userid}"
>> password="${password}"
>>         retriesallowed="${retries.**allowed}"
>>         remotedir="${RoadRunner.**resume.dir}">
>> <fileset>
>> <include name="**\*"/>
>> </fileset>
>> </ftp>
>>
>> <echo message="Re-creating all subdirectories within resume directory."/>
>> <antcall target="currentTime"/>
>> <ftp action="mkdir" server="${RoadRunner.hostname}**" userid="${userid}"
>> password="${password}"
>>         remotedir="${RoadRunner.**resume.dir}/asc"
>> retriesallowed="${retries.**allowed}" ignoreNoncriticalErrors="true"**/>
>> <ftp action="mkdir" server="${RoadRunner.hostname}**" userid="${userid}"
>> password="${password}"
>>         remotedir="${RoadRunner.**resume.dir}/jar"
>> retriesallowed="${retries.**allowed}" ignoreNoncriticalErrors="true"**/>
>> <ftp action="mkdir" server="${RoadRunner.hostname}**" userid="${userid}"
>> password="${password}"
>>         remotedir="${RoadRunner.**resume.dir}/javadoc"
>> retriesallowed="${retries.**allowed}" ignoreNoncriticalErrors="true"**/>
>> <ftp action="mkdir" server="${RoadRunner.hostname}**" userid="${userid}"
>> password="${password}"
>>         remotedir="${RoadRunner.**resume.dir}/pdf"
>> retriesallowed="${retries.**allowed}" ignoreNoncriticalErrors="true"**/>
>> <ftp action="mkdir" server="${RoadRunner.hostname}**" userid="${userid}"
>> password="${password}"
>>         remotedir="${RoadRunner.**resume.dir}/sql"
>> retriesallowed="${retries.**allowed}" ignoreNoncriticalErrors="true"**/>
>> <ftp action="mkdir" server="${RoadRunner.hostname}**" userid="${userid}"
>> password="${password}"
>>         remotedir="${RoadRunner.**resume.dir}/src"
>> retriesallowed="${retries.**allowed}" ignoreNoncriticalErrors="true"**/>
>> <ftp action="mkdir" server="${RoadRunner.hostname}**" userid="${userid}"
>> password="${password}"
>>         remotedir="${RoadRunner.**resume.dir}/test"
>> retriesallowed="${retries.**allowed}" ignoreNoncriticalErrors="true"**/>
>> <ftp action="mkdir" server="${RoadRunner.hostname}**" userid="${userid}"
>> password="${password}"
>>         remotedir="${RoadRunner.**resume.dir}/word"
>> retriesallowed="${retries.**allowed}" ignoreNoncriticalErrors="true"**/>
>> <ftp action="mkdir" server="${RoadRunner.hostname}**" userid="${userid}"
>> password="${password}"
>>         remotedir="${RoadRunner.**resume.dir}/xml"
>> retriesallowed="${retries.**allowed}" ignoreNoncriticalErrors="true"**/>
>>
>> <echo message="Populating main directory."/>
>> <antcall target="currentTime"/>
>> <ftp action="send" server="${RoadRunner.hostname}**" userid="${userid}"
>> password="${password}"
>>         description="Populate main resume directory"
>>         remotedir="${RoadRunner.**resume.dir}"
>>         retriesallowed="${retries.**allowed}"
>>         separator="/" binary="yes" verbose="yes">
>> <fileset dir="${resume.output.dir}">
>> <patternset refid="ps.html"/>
>> </fileset>
>> </ftp>
>>
>> <echo message="Populating asc directory."/>
>> <antcall target="currentTime"/>
>> <ftp action="send" server="${RoadRunner.hostname}**" userid="${userid}"
>> password="${password}"
>>         description="Populate main resume directory"
>>         remotedir="${RoadRunner.**resume.dir}/asc"
>>         retriesallowed="${retries.**allowed}"
>>         separator="/" binary="yes" verbose="yes">
>> <fileset dir="${resume.output.dir}">
>> <patternset refid="ps.asc"/>
>> </fileset>
>> </ftp>
>>
>> <echo message="Populating jar directory."/>
>> <antcall target="currentTime"/>
>> <ftp action="send" server="${RoadRunner.hostname}**" userid="${userid}"
>> password="${password}"
>>         description="Populate jar directory"
>>         remotedir="${RoadRunner.**resume.dir}/jar"
>>         retriesallowed="${retries.**allowed}"
>>         separator="/" binary="yes" verbose="yes">
>> <fileset dir="${resume.jar.dir}">
>> <patternset refid="ps.jar"/>
>> </fileset>
>> </ftp>
>>
>> <echo message="Populating javadoc directory."/>
>> <antcall target="currentTime"/>
>> <ftp action="send" server="${RoadRunner.hostname}**" userid="${userid}"
>> password="${password}"
>>         description="Populate javadoc directory"
>>         remotedir="${RoadRunner.**resume.dir}/javadoc"
>>         retriesallowed="${retries.**allowed}"
>>         separator="/" binary="no" verbose="yes">
>> <fileset dir="${resume.javadoc.dir}"/>
>> </ftp>
>>
>> <echo message="Populating pdf directory."/>
>> <antcall target="currentTime"/>
>> <ftp action="send" server="${RoadRunner.hostname}**" userid="${userid}"
>> password="${password}"
>>         description="Populate pdf directory"
>>         remotedir="${RoadRunner.**resume.dir}/pdf"
>>         retriesallowed="${retries.**allowed}"
>>         separator="/" binary="yes" verbose="yes">
>> <fileset dir="${resume.output.dir}">
>> <patternset refid="ps.pdf"/>
>> </fileset>
>> </ftp>
>>
>> <echo message="Populating sql directory."/>
>> <antcall target="currentTime"/>
>> <ftp action="send" server="${RoadRunner.hostname}**" userid="${userid}"
>> password="${password}"
>>         description="Populate sql directory"
>>         remotedir="${RoadRunner.**resume.dir}/sql"
>>         retriesallowed="${retries.**allowed}"
>>         separator="/" binary="yes" verbose="yes">
>> <fileset dir="${db2.sql.dir}">
>> <patternset refid="ps.sql"/>
>> </fileset>
>> </ftp>
>>
>> <echo message="Populating src directory."/>
>> <antcall target="currentTime"/>
>> <ftp action="send" server="${RoadRunner.hostname}**" userid="${userid}"
>> password="${password}"
>>         description="Populate src directory"
>>         remotedir="${RoadRunner.**resume.dir}/src"
>>         retriesallowed="${retries.**allowed}"
>>         separator="/" binary="no" verbose="yes">
>> <fileset dir="${resume.src}">
>> <patternset refid="ps.resume"/>
>> </fileset>
>> <fileset dir="${common.src}">
>> <patternset refid="ps.common"/>
>> </fileset>
>> </ftp>
>>
>> <!--
>> <echo message="Populating test directory."/>
>> <antcall target="currentTime"/>
>> <ftp action="send" server="${RoadRunner.hostname}**" userid="${userid}"
>> password="${password}"
>>         description="Populate test directory"
>>         remotedir="${RoadRunner.**resume.dir}/test"
>>         retriesallowed="${retries.**allowed}"
>>         separator="/" binary="no" verbose="yes">
>> <fileset dir="${test.src}" description="JUnit test files">
>> <patternset refid="ps.test"/>
>> </fileset>
>> </ftp>
>>         -->
>>
>> <echo message="Populating word directory."/>
>> <antcall target="currentTime"/>
>> <ftp action="send" server="${RoadRunner.hostname}**" userid="${userid}"
>> password="${password}"
>>         description="Populate test directory"
>>         remotedir="${RoadRunner.**resume.dir}/word"
>>         retriesallowed="${retries.**allowed}"
>>         separator="/" binary="yes" verbose="yes">
>> <fileset dir="${resume.word.dir}">
>> <patternset refid="ps.word"/>
>> </fileset>
>> </ftp>
>>
>> <echo message="Populating xml directory."/>
>> <antcall target="currentTime"/>
>> <ftp action="send" server="${RoadRunner.hostname}**" userid="${userid}"
>> password="${password}"
>>         description="Populate xml directory"
>>         remotedir="${RoadRunner.**resume.dir}/xml"
>>         retriesallowed="${retries.**allowed}"
>>         separator="/" binary="no" verbose="yes">
>> <fileset dir="${resume.xml.dir}">
>> <patternset refid="ps.xml"/>
>> </fileset>
>> </ftp>
>>
>> </target>
>>
>> <!--==========================**==============================**==========
>>     Upload to the X10 server.
>>    ==============================**==============================**
>> ======-->
>> <target name="upload_to_X10" description="Upload to the X10 server.">
>>
>> <antform title="Upload to X10 Server">
>> <label>Please supply the username and password for the X10 server.</label>
>> <textProperty label="userid: " property="userid" columns="15"
>> required="true"/>
>> <textProperty label="password: " property="password" columns="15"
>> password="true" required="true"/>
>> </antform>
>>
>> <echo message="Uploading to X10...."/>
>>
>> <echo message="Deleting all files (but not subdirectories) *beneath* the
>> resume directory."/>
>> <antcall target="currentTime"/>
>> <ftp action="del" server="${X10.hostname}" userid="${userid}"
>> password="${password}"
>>         remotedir="${X10.resume.dir}"
>>         retriesallowed="${retries.**allowed}"
>>         description="Delete all files under resume directory at any level.">
>> <fileset>
>> <include name="**\*"/>
>> </fileset>
>> </ftp>
>>
>> <echo message="Deleting all (now empty) subdirectories *beneath* the
>> resume directory."/>
>> <antcall target="currentTime"/>
>> <ftp action="rmdir" server="${X10.hostname}" userid="${userid}"
>> password="${password}"
>>         retriesallowed="${retries.**allowed}"
>>         remotedir="${X10.resume.dir}">
>> <fileset>
>> <include name="**\*"/>
>> </fileset>
>> </ftp>
>>
>> <echo message="Re-creating all subdirectories within resume directory."/>
>> <antcall target="currentTime"/>
>> <ftp action="mkdir" server="${X10.hostname}" userid="${userid}"
>> password="${password}"
>>         remotedir="${X10.resume.dir}/**asc" retriesallowed="${retries.**allowed}"
>> ignoreNoncriticalErrors="true"**/>
>> <ftp action="mkdir" server="${X10.hostname}" userid="${userid}"
>> password="${password}"
>>         remotedir="${X10.resume.dir}/**jar" retriesallowed="${retries.**allowed}"
>> ignoreNoncriticalErrors="true"**/>
>> <ftp action="mkdir" server="${X10.hostname}" userid="${userid}"
>> password="${password}"
>>         remotedir="${X10.resume.dir}/**javadoc" retriesallowed="${retries.*
>> *allowed}" ignoreNoncriticalErrors="true"**/>
>> <ftp action="mkdir" server="${X10.hostname}" userid="${userid}"
>> password="${password}"
>>         remotedir="${X10.resume.dir}/**pdf" retriesallowed="${retries.**allowed}"
>> ignoreNoncriticalErrors="true"**/>
>> <ftp action="mkdir" server="${X10.hostname}" userid="${userid}"
>> password="${password}"
>>         remotedir="${X10.resume.dir}/**sql" retriesallowed="${retries.**allowed}"
>> ignoreNoncriticalErrors="true"**/>
>> <ftp action="mkdir" server="${X10.hostname}" userid="${userid}"
>> password="${password}"
>>         remotedir="${X10.resume.dir}/**src" retriesallowed="${retries.**allowed}"
>> ignoreNoncriticalErrors="true"**/>
>> <ftp action="mkdir" server="${X10.hostname}" userid="${userid}"
>> password="${password}"
>>         remotedir="${X10.resume.dir}/**test" retriesallowed="${retries.**allowed}"
>> ignoreNoncriticalErrors="true"**/>
>> <ftp action="mkdir" server="${X10.hostname}" userid="${userid}"
>> password="${password}"
>>         remotedir="${X10.resume.dir}/**word" retriesallowed="${retries.**allowed}"
>> ignoreNoncriticalErrors="true"**/>
>> <ftp action="mkdir" server="${X10.hostname}" userid="${userid}"
>> password="${password}"
>>         remotedir="${X10.resume.dir}/**xml" retriesallowed="${retries.**allowed}"
>> ignoreNoncriticalErrors="true"**/>
>>
>> <echo message="Populating main directory."/>
>> <antcall target="currentTime"/>
>> <ftp action="send" server="${X10.hostname}" userid="${userid}"
>> password="${password}"
>>         description="Populate main resume directory"
>>         remotedir="${X10.resume.dir}"
>>         retriesallowed="${retries.**allowed}"
>>         separator="/" binary="yes" verbose="yes">
>> <fileset dir="${resume.output.dir}">
>> <patternset refid="ps.html"/>
>> </fileset>
>> </ftp>
>>
>> <echo message="Populating asc directory."/>
>> <antcall target="currentTime"/>
>> <ftp action="send" server="${X10.hostname}" userid="${userid}"
>> password="${password}"
>>         description="Populate main resume directory"
>>         remotedir="${X10.resume.dir}/**asc"
>>         retriesallowed="${retries.**allowed}"
>>         separator="/" binary="yes" verbose="yes">
>> <fileset dir="${resume.output.dir}">
>> <patternset refid="ps.asc"/>
>> </fileset>
>> </ftp>
>>
>> <echo message="Populating jar directory."/>
>> <antcall target="currentTime"/>
>> <ftp action="send" server="${X10.hostname}" userid="${userid}"
>> password="${password}"
>>         description="Populate jar directory"
>>         remotedir="${X10.resume.dir}/**jar"
>>         retriesallowed="${retries.**allowed}"
>>         separator="/" binary="yes" verbose="yes">
>> <fileset dir="${resume.jar.dir}">
>> <patternset refid="ps.jar"/>
>> </fileset>
>> </ftp>
>>
>> <echo message="Populating javadoc directory."/>
>> <antcall target="currentTime"/>
>> <ftp action="send" server="${X10.hostname}" userid="${userid}"
>> password="${password}"
>>         description="Populate javadoc directory"
>>         remotedir="${X10.resume.dir}/**javadoc"
>>         retriesallowed="${retries.**allowed}"
>>         separator="/" binary="no" verbose="yes">
>> <fileset dir="${resume.javadoc.dir}"/>
>> </ftp>
>>
>> <echo message="Populating pdf directory."/>
>> <antcall target="currentTime"/>
>> <ftp action="send" server="${X10.hostname}" userid="${userid}"
>> password="${password}"
>>         description="Populate pdf directory"
>>         remotedir="${X10.resume.dir}/**pdf"
>>         retriesallowed="${retries.**allowed}"
>>         separator="/" binary="yes" verbose="yes">
>> <fileset dir="${resume.output.dir}">
>> <patternset refid="ps.pdf"/>
>> </fileset>
>> </ftp>
>>
>> <echo message="Populating sql directory."/>
>> <antcall target="currentTime"/>
>> <ftp action="send" server="${X10.hostname}" userid="${userid}"
>> password="${password}"
>>         description="Populate sql directory"
>>         remotedir="${X10.resume.dir}/**sql"
>>         retriesallowed="${retries.**allowed}"
>>         separator="/" binary="yes" verbose="yes">
>> <fileset dir="${db2.sql.dir}">
>> <patternset refid="ps.sql"/>
>> </fileset>
>> </ftp>
>>
>> <echo message="Populating src directory."/>
>> <antcall target="currentTime"/>
>> <ftp action="send" server="${X10.hostname}" userid="${userid}"
>> password="${password}"
>>         description="Populate src directory"
>>         remotedir="${X10.resume.dir}/**src"
>>         retriesallowed="${retries.**allowed}"
>>         separator="/" binary="no" verbose="yes">
>> <fileset dir="${resume.src}">
>> <patternset refid="ps.resume"/>
>> </fileset>
>> <fileset dir="${common.src}">
>> <patternset refid="ps.common"/>
>> </fileset>
>> </ftp>
>>
>> <echo message="Populating test directory."/>
>> <antcall target="currentTime"/>
>> <ftp action="send" server="${X10.hostname}" userid="${userid}"
>> password="${password}"
>>         description="Populate test directory"
>>         remotedir="${X10.resume.dir}/**test"
>>         retriesallowed="${retries.**allowed}"
>>         separator="/" binary="no" verbose="yes">
>> <fileset dir="${test.src}\${common.**tests.util.pkg}" description="JUnit
>> test files">
>> <patternset refid="ps.test.util"/>
>> </fileset>
>> <fileset dir="${test.src}\${common.**tests.pkg}" description="JUnit test
>> files">
>> <patternset refid="ps.test.common"/>
>> </fileset>
>> </ftp>
>>
>> <echo message="Populating word directory."/>
>> <antcall target="currentTime"/>
>> <ftp action="send" server="${X10.hostname}" userid="${userid}"
>> password="${password}"
>>         description="Populate test directory"
>>         remotedir="${X10.resume.dir}/**word"
>>         retriesallowed="${retries.**allowed}"
>>         separator="/" binary="no" verbose="yes">
>> <fileset dir="${mydocs}">
>> <patternset refid="ps.word"/>
>> </fileset>
>> </ftp>
>>
>> <echo message="Populating xml directory."/>
>> <antcall target="currentTime"/>
>> <ftp action="send" server="${X10.hostname}" userid="${userid}"
>> password="${password}"
>>         description="Populate xml directory"
>>         remotedir="${X10.resume.dir}/**xml"
>>         retriesallowed="${retries.**allowed}"
>>         separator="/" binary="no" verbose="yes">
>> <fileset dir="${resume.xml.dir}">
>> <patternset refid="ps.xml"/>
>> </fileset>
>> </ftp>
>>
>> </target>
>>
>> <!--==========================**==============================**==========
>>    Do the complete build.
>>     ==============================**==============================**
>> ======-->
>> <target name="buildall" depends="datetime,verify_**
>> format,verify_switches,jar,**gen_javadocs,gen_resume_files,**copy_to_local,upload"
>> description="Tasks that make up a complete build.">
>> <echo message="The build has ended successfully."/>
>> </target>
>>
>> <!--==========================**==============================**==========
>>    Do the 'setup' build which only initializes ResumeContants prior to
>> running the program.
>>     ==============================**==============================**
>> ======-->
>> <target name="setup" depends="datetime,verify_**
>> format,verify_switches,Omit_**Email_Address,Omit_Recent_**Education,Omit_Important_Note"
>> description="Tasks that make up a setup build.">
>> <echo message="The build has ended successfully."/>
>> </target>
>>
>> <!--==========================**==============================**==========
>>    Do the 'RoadRunner' build which only does the upload to the RoadRunner
>> server.
>>     ==============================**==============================**
>> ======-->
>> <target name="RoadRunner" depends="upload_to_RoadRunner"
>> description="Tasks that make up a RoadRunner build.">
>> <echo message="The build has ended successfully."/>
>> </target>
>>
>> <!--==========================**==============================**==========
>>    Do the 'X10' build which only does the upload to the X10 server.
>>     ==============================**==============================**
>> ======-->
>> <target name="X10" depends="upload_to_X10" description="Tasks that make up
>> an X10 build.">
>> <echo message="The build has ended successfully."/>
>> </target>
>>
>> <!--==========================**==============================**==========
>>    Do the 'switches' build.
>>     ==============================**==============================**
>> ======-->
>> <target name="build_switches" depends="datetime,verify_**switches,compile,
>> gen_resume_files" description="Tasks that make up a build to test the
>> functioning of the switches.">
>> <echo message="The build has ended successfully."/>
>> </target>
>>
>>
>> </project>
>>
>> On 2011-10-29 22:11, Vimil Saju wrote:
>>
>>> It would be helpful if you could attach the build file along with the
>>> mail.
>>>
>>>
>>> ______________________________**__
>>> From: Rhino<rh...@sympatico.ca>
>>> To: ant-user<us...@ant.apache.org>
>>> Sent: Saturday, October 29, 2011 5:47 PM
>>> Subject: Target Execution Sequence
>>>
>>>
>>> I'm having a perplexing problem and I'm hoping someone here can help me
>>> understand whatever I'm missing. I was moderately fluent with Ant at one
>>> point but I've been away from it a  while and have probably just forgotten
>>> some fundamental that I need to know.
>>>
>>> Here's the deal. I have an Ant script that is displaying an AntForm. The
>>> AntForm contains some checkboxes that are supposed to make me keep or omit
>>> three particular paragraphs in a document I am writing later in the script.
>>> Basically, I use the AntForm to set specific booleans, one for each of the
>>> three paragraphs, in a Java source file to true or false. Then, I generate
>>> the document with a program that I've written and that program either
>>> writes the specified paragraphs or omits them based on the values of the
>>> booleans. At least, that's what's SUPPOSED to happen.
>>>
>>> In reality, the booleans are being seen by the program that generates the
>>> document as true regardless of what has been done with the AntForm.
>>> Therefore, all three special paragraphs always appear in the document even
>>> when I've asked for some or all of them to be omitted.
>>>
>>> This baffles me because I actually display the contents of the Java
>>> source file to myself in the Ant script before and after the execution of
>>> the program that generates the document and the values of the three
>>> booleans and they have the correct values. For instance, I can set the
>>> three booleans to false, true and false respectively via the AntForm and
>>> that's exactly how they appear in the Java source file just before I
>>> generate the document.  (Then I reset the values to their defaults (all
>>> three true) then display them to myself and they are all true.) However,
>>> when I write the values of the booleans within the program that is
>>> generating the document, they are invariably all true, even if they have
>>> been set to different values.
>>>
>>> I don't understand why I'm getting this misbehaviour.
>>>
>>> My working theory is that Ant is NOT executing the tasks within the
>>> script in the expected order. When I add the -verbose and -debug parameters
>>> to the Ant Build, I see something that the task that displays the AntForm
>>> is done in its proper sequence, namely first within the script. However,
>>> the tasks that are to be executed to change the values of the booleans are
>>> NOT executed immediately after the AntForm is displayed but after the
>>> compile of the Java code. The script is displaying the AntForm and letting
>>> me check the checkboxes as I like, then compiling the code and ONLY THEN
>>> actually editing the source file to set some of the booleans to false. I
>>> think this explains why the switches are always seen as true by the
>>> document-generating program: the generator is simply not getting the edited
>>> version of the source file.
>>>
>>> Can anyone confirm that my theory makes sense? Or, if it doesn't, suggest
>>> a better explanation? If I'm on the right track, what is it that I'm not
>>> understanding about the execution sequences of tasks within targets? I had
>>> assumed that each task within a target would be executed before tasks in
>>> other targets were started....
>>>
>>> --
>>> Rhino
>>>
>>> ------------------------------**------------------------------**---------
>>> To unsubscribe, e-mail: user-unsubscribe@ant.apache.**org<us...@ant.apache.org>
>>> For additional commands, e-mail: user-help@ant.apache.org
>>>
>> ------------------------------**------------------------------**---------
>> To unsubscribe, e-mail: user-unsubscribe@ant.apache.**org<us...@ant.apache.org>
>> For additional commands, e-mail: user-help@ant.apache.org
>>
>>

---------------------------------------------------------------------
To unsubscribe, e-mail: user-unsubscribe@ant.apache.org
For additional commands, e-mail: user-help@ant.apache.org


Re: Target Execution Sequence

Posted by Patrick Martin <pj...@gmail.com>.
Hello,

just a quick guess, your "compile" target should probably be depending on
the "Omit*" ones.

Also, it may not have any impact in your case, but the if attributes of
your Omit targets will only check if properties are set. If your using Ant
> 1.8.0, you might want to use properties expansion. Something
like if="${omit.email.address}" instead of if="omit.email.address". Ant
will check if the value is true, false or if property with
name ${omit.email.address} is set.

Rgds,

Patrick

2011/10/30 Rhino <rh...@sympatico.ca>

>
>  Okay, you asked for it so here it is, my complete build script. It's
> rather long but I didn't want to snip any bits out for fear that it would
> skew the picture. However, I think you could safely ignore many of the
> targets, especially those whose names start with "upload".
>
> Just to recap, the behaviour I'm seeing when I use -debug and -verbose is
> that the "verify_switches" target is executing, then the "compile", then
> whichever of the three "omit_" targets are appropriate depending on what I
> did in the AntForm displayed by "verify_switches". I think that's why the
> edits to the ResumeConstants file are being done but not making any
> difference: the "gen_resume_files" target is using the UNALTERED version of
> ResumeConstants, not the edited version. What do I have to do to ensure
> that the "omit_" targets are only being executed if necessary but that if
> they need to be executed, they are executed BEFORE the compile?
>
>
> <?xml version="1.0" ?><project name="Resume" default="buildall"
> basedir=".">
> <description>Copy the resume files to the local filesystem for testing and
> to the server for
> client use.
> </description>
>
> <property name="pgmname" value="ResumeApplet" description="The name of the
> applet."/>
> <property name="domain.slashes" value="com\foo" description="The domain
> name written as a path."/>
> <property name="mydocs" value="c:\Documents and Settings\Sparky\My
> Documents" description="The path to My Documents."/>
> <property name="db2" value="c:\Program Files\IBM\SQLLIB" description="The
> path to DB2."/>
> <property name="jdkbin" value="c:\Program Files\Java\jdk1.6.0_18\bin"
> description="The path to the Java JDK binaries."/>
> <property name="workspace351" value="c:\eclipse\workspace"
> description="The path to the Eclipse 3.5.1 workspace."/>
> <property name="commonpath" value="c:\eclipse\workspace" description="The
> path to the Common project."/>
> <property name="iText.jar" value="c:\iText\1.3\itext-1.3.**jar"
> description="The path to the iText jars."/>
> <property name="antform.home" value="c:\Ant\AntForm\antform-**bin-2.0"
> description="The path to the AntForm code."/>
> <property name="resume.proj" value="Resume" description="The name of the
> resume project."/>
> <property name="common.proj" value="Common" description="The name of the
> project containing the common code."/>
> <property name="common.test.proj" value="UnitTests" description="The name
> of the project containing the tests for the common code."/>
> <property name="resume.pkg" value="${domain.slashes}\**resume"
> description="The name of the resume package containing the ResumeApplet
> code."/>
> <property name="common.pkg" value="${domain.slashes}\**common"
> description="The name of the package containing the common code."/>
> <property name="common.tests.pkg" value="${domain.slashes}\**tests\common"
> description="The name of the package containing tests for common code."/>
> <property name="common.tests.util.pkg" value="${domain.slashes}\**common\tests\utilities"
> description="The name of the package containing test for common
> utilities."/>
> <property name="compiler.path" value="${jdkbin}\javac" description="The
> path of the Java 1.6.0_18 compiler."/>
> <property name="db2java.zip" value="${db2}\java\db2java.**zip"
> description="Files needed by JDBC to connect to DB2."/>
> <property name="db2jcc.jar" value="${db2}\java\db2jcc.jar"
> description="Files needed by JDBC to connect to DB2."/>
> <property name="db2jcc_lic.jar" value="${db2}\java\db2jcc_**license_cu.jar"
> description="Files needed by JDBC to connect to DB2."/>
> <property name="javadoc.path" value="${jdkbin}\javadoc" description="The
> path to the directory containing the Javadoc program."/>
> <property name="resume.src" value="${workspace351}\${**resume.proj}\src"
> description="The path to the source files for the ResumeApplet code."/>
> <property name="resume.bin" value="${workspace351}\${**resume.proj}\bin"
> description="The path to the class files for the ResumeApplet code."/>
> <property name="common.src" value="${commonpath}\${common.**proj}\src"
> description="The path to the source files for the common code."/>
> <property name="common.bin" value="${commonpath}\${common.**proj}\bin"
> description="The path to the class files for the common code."/>
> <property name="test.src" value="${workspace351}\${**common.test.proj}\src"
> description="The path to the JUnit test source for the common code."/>
> <property name="resume.jar.dir" value="${workspace351}\${**resume.proj}\jar"
> description="The path to the jar file for the ResumeApplet."/>
> <property name="resume.jar.file" value="${pgmname}.jar" description="The
> name of the jar file containing the ResumeApplet."/>
> <property name="resume.xml.dir" value="${workspace351}\${**resume.proj}\xml"
> description="The path to the XML directory for the Resume project."/>
> <property name="resume.output.dir" value="${workspace351}\${**resume.proj}\output"
> description="The path to the output directory for the Resume project. This
> contains the files created by the ResumeGenerator, except for the
> Javadocs."/>
> <property name="word.resume" value="${mydocs}\resume.doc" description="The
> name and path to the original of the Word version of the resume."/>
> <property name="resume.javadoc.dir" value="${workspace351}\${**resume.proj}\doc"
> description="The path to the directory where the Resume and Common javadocs
> are written."/>
> <property name="db2.sql.dir" value="${db2}\Scripts\Foo" description="The
> directory in which the DB2 scripts are stored."/>
> <property name="local.resume.dir" value="${mydocs}\Applets\**resume"
> description="The local file system directory which contains the Resume
> files. Used for testing the Resume locally."/>
> <property name="create.resume.script" value="'c:\Documents and
> Settings\Sparky\My Documents\CreateWordResume.**vbs'" description="The
> VBScript that silently creates the resume."/>
> <property name="export.macros.script" value="'c:\Documents and
> Settings\Sparky\My Documents\ExportWordMacros.**vbs'" description="The
> VBScript that silently exports the Word macros."/>
> <property name="export.macros.path" value="'c:\Documents and
> Settings\Sparky\My Documents\WordMacros.txt'" description="The name of the
> file that will contain the exported Word macros."/>
> <property name="Host1Free.hostname" value="smresume.host1.com"
> description="The domain name for the Host1Free webspace."/>
> <property name="Host1Free.resume.dir" value="public_html" description="The
> directory on the Host1Free server which will hold the Resume information."/>
> <property name="Foo.hostname" value="www.foo.com" description="The Foo
> domain name."/>
> <property name="Foo.resume.dir" value="/home/foo/public_html/**resume"
> description="The directory in the Foo server where the Resume information
> is stored."/>
> <property name="Foo.sql.dir" value="/home/sparky/MySQL/Foo"
> description="The directory containing the originals of the database
> scripts."/>
> <property name="Foo.keyfile" value="${mydocs}\Desktop\**Mycroft\id_rsa"
> description="The directory on the local machine containing the keyfile for
> the Foo server."/>
> <property name="RoadRunner.hostname" value="www3.sympatico.com"
> description="The domain name for the RoadRunner personal webspace."/>
> <property name="RoadRunner.resume.dir" value="resume" description="The
> directory on the RoadRunner server which will hold the Resume
> information."/>
> <property name="X10.hostname" value="rcresume.x10hosting.com**"
> description="The name of the X10 host that will contain the resume."/>
> <property name="X10.resume.dir" value="public_html/resume"
> description="The name of the directory that will contain the resume."/>
> <property name="retries.allowed" value="3" description="The number of
> retries that the FTP task can attempt. -1 means infinite number."/>
>
> <!--==========================**==============================**==========
>    Task definitions for tasks that aren't Ant core or optional tasks.
>    ==============================**==============================**
> ======-->
> <taskdef name="antform" classname="com.sardak.antform.**AntForm"
> classpath="${antform.home}/**lib/antform.jar"/>
> <taskdef name="antmenu" classname="com.sardak.antform.**AntMenu"
> classpath="${antform.home}/**lib/antform.jar"/>
>
> <!--==========================**==============================**==========
>    Import common code.
>    ==============================**==============================**
> ======-->
> <property name="import.path" value="${ant.home}\imports"/>
> <import file="${import.path}\sounds.**xml" description="Play appropriate
> sounds depending on whether build worked or failed."/>
> <import file="${import.path}\datetime.**xml" description="Display date
> and time that build started."/>
>
> <!--==========================**==============================**==========
>    Establish patternsets.
>    ==============================**==============================**
> ======-->
> <patternset id="ps.resume" description="The project-specific resume code.">
> <include name="${resume.pkg}\*.*"/>
> <include name="${resume.pkg}\Resources\**Resume*.java"/>
> </patternset>
>
> <patternset id="ps.applet" description="The project-specific code needed
> by the applet.">
> <include name="${resume.pkg}\**EmploymentHistoryFormats.*"/>
> <include name="${resume.pkg}\Resume.*"/**>
> <include name="${resume.pkg}\**ResumeApplet.*"/>
> <include name="${resume.pkg}\**ResumeConstants.*"/>
> <include name="${resume.pkg}\Resources\**ResumeList*.*"/>
> </patternset>
>
> <patternset id="ps.applet.common" description="The common code needed by
> the applet.">
> <include name="${common.pkg}\**CommonConstants.*"/>
> <include name="${common.pkg}\Hybrid.*"/**>
> <include name="${common.pkg}\lookups\**ColorName.*"/>
> <include name="${common.pkg}\lookups\**ColorPalette.*"/>
> <include name="${common.pkg}\lookups\**PadPosition.*"/>
> <include name="${common.pkg}\lookups\**WrappingCases.*"/>
> <include name="${common.pkg}\utilities\**CountUtils.*"/>
> <include name="${common.pkg}\utilities\**ErrorUtils.*"/>
> <include name="${common.pkg}\utilities\**LocalizationUtils.*"/>
> <include name="${common.pkg}\utilities\**StringUtils.*"/>
> <include name="${common.pkg}\utilities\**WrapUtils.*"/>
> <include name="${common.pkg}\utilities\**Resources\StringUtilsMsg*.*"/>
> </patternset>
>
> <patternset id="ps.common" description="The programs in the common package
> needed by the resume classes.">
> <include name="${common.pkg}\**CommonConstants.*"/>
> <include name="${common.pkg}\lookups\**ColorName.*"/>
> <include name="${common.pkg}\lookups\**ColorPalette.*"/>
> <include name="${common.pkg}\lookups\**Months.*"/>
> <include name="${common.pkg}\utilities\**CountUtils.*"/>
> <include name="${common.pkg}\utilities\**ColorConversionUtils.*"/>
> <include name="${common.pkg}\utilities\**DateTimeUtils.*"/>
> <include name="${common.pkg}\utilities\**LocalizationUtils.*"/>
> <include name="${common.pkg}\utilities\**StringUtils.*"/>
> <include name="${common.pkg}\utilities\**WrapUtils.*"/>
> <include name="${common.pkg}\utilities\**WrappingCases.*"/>
> </patternset>
>
> <patternset id="ps.test.common" description="Common test cases.">
> <include name="PalettesTest.java"/>
> </patternset>
>
> <patternset id="ps.test.util" description="Common utilities test cases.">
> <include name="**ColorConversionUtilsTest.java"**/>
> <include name="DateTimeUtilsTest.java"/**>
> <include name="StringUtilsTest.java"/>
> </patternset>
>
> <patternset id="ps.html" description="The HTML and CSS files.">
> <include name="*.html"/>
> <include name="*.css"/>
> <include name="noJava.png"/>
> </patternset>
>
> <patternset id="ps.pdf" description="The PDF files.">
> <include name="*.pdf"/>
> </patternset>
>
> <patternset id="ps.asc" description="The ASCII file.">
> <include name="*.asc"/>
> </patternset>
>
> <patternset id="ps.jar" description="Jars.">
> <include name="*.jar"/>
> </patternset>
>
> <patternset id="ps.word" description="Word docs.">
> <include name="smalarkey-resume.doc"/>
> <include name="WordMacros.txt"/>
> </patternset>
>
> <patternset id="ps.xml" description="XML files.">
> <include name="build.xml"/>
> </patternset>
>
> <patternset id="ps.sql" description="SQL scripts.">
> <include name="*_Locale.sql"/>
> <include name="*_Labels.sql"/>
> <include name="*_Reference.sql"/>
> <include name="*_Reference_Rels.sql"/>
> <include name="*_Reference_Paras.sql"/>
> </patternset>
>
> <!--==========================**==============================**==========
>   Let the user choose the format for the Employment History.
>    ==============================**==============================**
> ======-->
> <target name="verify_format" description="Let the user choose the desired
> Employment History format for the resumes.">
> <antmenu title="Choose Employment History Format">
> <label>You have the option of generating the resumes so that the
> description of each job in the Employment History is formatted as a
> paragraph or as a bulleted list. Choose the desired format or choose Abort
> to cancel the build.</label>
> <button label="List Format" target="Set_List_Format"/>
> <button label="Paragraph Format" target="Set_Paragraph_Format"/**>
> <button label="Abort" target="abort"/>
> </antmenu>
> </target>
>
> <target name="Set_List_Format" description="Ensure that job descriptions
> in the Employment History section will appear as bulleted lists.">
> <replaceregexp file="${resume.src}\${resume.**pkg}\ResumeConstants.java"
>        match="^[\s]*public static final EmploymentHistoryFormats
> DESIRED_EMPLOYMENT_HISTORY_**FORMAT[\s]*=[\s]*([^;]+);[\s]***$"
>        replace="    public static final EmploymentHistoryFormats
> DESIRED_EMPLOYMENT_HISTORY_**FORMAT = EmploymentHistoryFormats.LIST_**
> FORMAT;"
>        byline="true"/>
> </target>
>
> <target name="Set_Paragraph_Format" description="Ensure that job
> descriptions in the Employment History section will appear as a paragraph.">
> <replaceregexp file="${resume.src}\${resume.**pkg}\ResumeConstants.java"
>        match="^[\s]*public static final EmploymentHistoryFormats
> DESIRED_EMPLOYMENT_HISTORY_**FORMAT[\s]*=[\s]*([^;]+);[\s]***$"
>        replace="    public static final EmploymentHistoryFormats
> DESIRED_EMPLOYMENT_HISTORY_**FORMAT = EmploymentHistoryFormats.**
> PARAGRAPH_FORMAT;"
>        byline="true"/>
> </target>
>
> <target name="abort" description="Display a message that the build was
> cancelled.">
> <fail message="The user chose not to proceed with the build."/>
> </target>
>
> <!--==========================**==============================**==========
>   Let the user choose to show or hide specific items.
>    ==============================**==============================**
> ======-->
> <target name="verify_switches" description="Let the user choose which
> content to omit.">
> <antform title="Choose Information Which Will Not Be Displayed">
> <label>Use the checkboxes to control which of the following content is
> shown. Choose Abort to cancel the build.</label>
> <booleanProperty label="Omit Email Address" property="omit.email.address"/
> **>
> <booleanProperty label="Omit Recent Education" property="omit.recent.**
> education"/>
> <booleanProperty label="Omit Important Note" property="omit.important.note"
> **/>
> <controlbar>
> <button label="Abort" target="abort2" type="cancel"/>
> <button label="Ok" type="ok"/>
> </controlbar>
> </antform>
> </target>
>
> <target name="Omit_Email_Address" description="Omit the email address."
> if="omit.email.address">
> <replaceregexp file="${resume.src}\${resume.**pkg}\ResumeConstants.java"
>        match="^[\s]*public static final boolean
> SHOW_EMAIL_ADDRESS[\s]*=[\s]*(**[^;]+);[\s]*$"
>        replace="    public static final boolean SHOW_EMAIL_ADDRESS =
> false;"
>        byline="true"/>
> </target>
>
> <target name="Omit_Recent_Education" description="Omit the recent
> education." if="omit.recent.education">
> <replaceregexp file="${resume.src}\${resume.**pkg}\ResumeConstants.java"
>        match="^[\s]*public static final boolean
> SHOW_RECENT_EDUCATION[\s]*=[\**s]*([^;]+);[\s]*$"
>        replace="    public static final boolean SHOW_RECENT_EDUCATION =
> false;"
>        byline="true"/>
> </target>
>
> <target name="Omit_Important_Note" description="Omit the important note."
> if="omit.important.note">
> <replaceregexp file="${resume.src}\${resume.**pkg}\ResumeConstants.java"
>        match="^[\s]*public static final boolean
> SHOW_IMPORTANT_NOTE[\s]*=[\s]***([^;]+);[\s]*$"
>        replace="    public static final boolean SHOW_IMPORTANT_NOTE =
> false;"
>        byline="true"/>
> </target>
>
> <target name="abort2" description="Display a message that the build was
> cancelled.">
> <fail message="The user chose not to proceed with the build."/>
> </target>
>
> <!--==========================**==============================**==========
>   Compile all of the Java code, both project-specific and common.
>    ==============================**==============================**
> ======-->
> <target name="compile" description="Compile the Java code.">
> <javac srcdir="${common.src}" destdir="${common.bin}" compiler="modern"
> fork="yes"
>        verbose="no" debug="on" debuglevel="lines,vars,source"
> deprecation="yes"
>        executable="${compiler.path}" source="1.6" includeantruntime="false"
>        description="Compile the code in the common package.">
> <patternset refid="ps.common"/>
> </javac>
> <javac srcdir="${resume.src}" destdir="${resume.bin}" compiler="modern"
> fork="yes"
>        verbose="no" debug="on" debuglevel="lines,vars,source"
> deprecation="yes"
>        executable="${compiler.path}" source="1.6" includeantruntime="false"
>        description="Compile the code in the resume and resume.Resources
> packages.">
> <classpath>
> <pathelement path="${common.bin}"/>
> <pathelement path="${iText.jar}"/>
> </classpath>
> <patternset refid="ps.resume"/>
> </javac>
> </target>
>
> <!--==========================**==============================**==========
>   Jar the class files and resources used by the applet.
>    ==============================**==============================**
> ======-->
> <target name="jar" depends="compile" description="Jar the class files and
> resources used by the applet.">
> <delete file="${resume.jar.dir}/${**resume.jar.file}" description="Delete
> the old jar."/>
> <jar destfile="${resume.jar.dir}/${**resume.jar.file}" compress="true"
>        description="Create the new jar.">
> <manifest>
> <attribute name="Manifest-Version" value="1.0"/>
> <attribute name="Main-Class" value="com.foo.resume.**ResumeApplet"/>
> <attribute name="Implementation-Title" value="Résumé"/>
> <attribute name="Implementation-Version" value="${start.TODAY} at
> ${start.TIME}"/>
> <attribute name="Implementation-Vendor" value="foo.com"/>
> </manifest>
> <fileset dir="${resume.bin}" defaultexcludes="yes">
> <patternset refid="ps.applet"/>
> </fileset>
> <fileset dir="${common.bin}" defaultexcludes="yes">
> <patternset refid="ps.applet.common"/>
> </fileset>
> </jar>
> </target>
>
> <!--==========================**==============================**==========
>    Generate the Javadocs for the project and for the common classes
>    used by the project.
>    ==============================**==============================**
> ======-->
> <target name="gen_javadocs"
>    description="Generate the Javadocs for the project classes and the
> common classes that support them.">
> <delete includeEmptyDirs="true"
>        description="Delete contents of javadoc directory but not the
> directory itself.">
> <fileset dir="${resume.javadoc.dir}" includes="**/*"/>
> </delete>
>
> <javadoc destdir="${resume.javadoc.dir}**"
>        author="true"
>        version="true"
>        use="true"
>        splitindex="true"
>        access="public"
>        executable="${javadoc.path}"
>        source="1.6"
>        windowtitle="Resume API"
>        breakiterator="true"
>        overview="${resume.output.dir}**\javadoc_overview.html"
> doctitle="Résumé Overview"
>        classpath="${iText.jar}:${**common.bin}"
>        description="Generate Javadocs for the project and the supporting
> common code.">
>
> <fileset dir="${resume.src}" defaultexcludes="yes">
> <patternset refid="ps.resume"/>
> </fileset>
> <fileset dir="${common.src}" defaultexcludes="yes">
> <patternset refid="ps.common"/>
> </fileset>
>
> <doctitle><![CDATA[<h1>R&**eacute;sum&eacute;</h1>]]></**doctitle>
> <bottom><![CDATA[<i>Copyright &#169; 2006-2011 Sparky Malarkey. All Rights
> Reserved. Last generated on ${start.TODAY} at ${start.TIME}.</i>]]></bottom>
> <group title="Résumé Packages" packages="resume*"/>
> <group title="Common Packages" packages="common*"/>
> <link href="http://java.sun.com/**j2se/1.6.0/docs/api<http://java.sun.com/j2se/1.6.0/docs/api>
> "/>
> </javadoc>
> </target>
>
> <!--==========================**==============================**==========
>    Generate the main HTML page, HTML version of the resume, HTML for
>    the page that will contain the applet and source code links, HTML
>    for the Javadocs overview, CSS for the preceding files, and the
>    ASCII, PDF, and Word versions of the resume.
>    ==============================**==============================**
> ======-->
> <target name="gen_resume_files" depends="Omit_Email_Address,**
> Omit_Recent_Education,Omit_**Important_Note" description="Generate HTML,
> CSS, ASCII, PDF and Word files.">
>
> <!--TEMPORARY-->
> <echo message="Display ResumConstants just BEFORE generating the
> resumes."/>
> <concat>
> <fileset dir="${resume.src}\${resume.**pkg}" includes="ResumeConstants.**
> java"/>
> </concat>
>
> <echo message="Generate all files containing resumes and their supporting
> files EXCEPT for the Word version of the resume."/>
> <java classname="com.foo.resume.**ResumeFileGenerator" fork="false"
>        description="Execute the ResumeFileGenerator program.">
> <classpath>
> <pathelement path="${common.bin}"/>
> <pathelement path="${resume.bin}"/>
> <pathelement path="${iText.jar}"/>
> <pathelement path="${db2java.zip}"/>
> <pathelement path="${db2jcc.jar}"/>
> <pathelement path="${db2jcc_lic.jar}"/>
> </classpath>
> <sysproperty key="log.path" value="c:\\eclipse\workspace\**Resume\log"/>
> </java>
>
> <echo message="Generate the Word version of the resume."/>
> <exec executable="cscript.exe" os="Windows XP" failonerror="true"
> description="Generate the Word version of the resume via a VBScript that
> invokes a macro.">
> <arg line="${create.resume.script}"**/>
> </exec>
>
>
> <echo message="Export the Word macros that created the resume."/>
> <exec executable="cscript.exe" os="Windows XP" failonerror="true"
> description="Export the macros used to create the resume.">
> <arg line="${export.macros.script} ${export.macros.path}"/>
> </exec>
>
>
> <echo message="Reset switches used to control resume content."/>
> <replaceregexp file="${resume.src}\${resume.**pkg}\ResumeConstants.java"
>        match="^[\s]*public static final boolean
> SHOW_EMAIL_ADDRESS[\s]*=[\s]*(**[^;]+);[\s]*$"
>        replace="    public static final boolean SHOW_EMAIL_ADDRESS = true;"
>        byline="true"/>
>
> <replaceregexp file="${resume.src}\${resume.**pkg}\ResumeConstants.java"
>        match="^[\s]*public static final boolean
> SHOW_RECENT_EDUCATION[\s]*=[\**s]*([^;]+);[\s]*$"
>        replace="    public static final boolean SHOW_RECENT_EDUCATION =
> true;"
>        byline="true"/>
>
> <replaceregexp file="${resume.src}\${resume.**pkg}\ResumeConstants.java"
>        match="^[\s]*public static final boolean
> SHOW_IMPORTANT_NOTE[\s]*=[\s]***([^;]+);[\s]*$"
>        replace="    public static final boolean SHOW_IMPORTANT_NOTE =
> true;"
>        byline="true"/>
>
> <!--TEMPORARY-->
> <echo message="Display ResumConstants just AFTER generating the resumes."/>
> <concat>
> <fileset dir="${resume.src}\${resume.**pkg}" includes="ResumeConstants.**
> java"/>
> </concat>
>
> </target>
>
> <!--==========================**==============================**==========
>    Copy all necessary code to the file system for local testing.
>
>    NOTES:
>    - mkdir only makes a directory if it doesn't already exist
>    - copy overlays existing files with newer versions of those same files
>    ==============================**==============================**
> ======-->
> <target name="copy_to_local" description="Copy files to the local file
> system for testing.">
>
> <echo message="Deleting the local resume directory and everything in it."/>
> <delete includeemptydirs="true" quiet="true"
>        description="Delete everything within the local resume directory,
> including the local resume directory itself.">
> <fileset dir="${local.resume.dir}"/>
> </delete>
>
> <echo message="Creating the resume directory and its subdirectories."/>
> <mkdir dir="${local.resume.dir}"/>
> <mkdir dir="${local.resume.dir}\asc"/**>
> <mkdir dir="${local.resume.dir}\jar"/**>
> <mkdir dir="${local.resume.dir}\**javadoc"/>
> <mkdir dir="${local.resume.dir}\pdf"/**>
> <mkdir dir="${local.resume.dir}\sql"/**>
> <mkdir dir="${local.resume.dir}\src"/**>
> <mkdir dir="${local.resume.dir}\test"**/>
> <mkdir dir="${local.resume.dir}\word"**/>
> <mkdir dir="${local.resume.dir}\xml"/**>
>
> <echo message="Populating main directory."/>
> <copy todir="${local.resume.dir}" failonerror="false"
>        description="Copy HTML and CSS files to the local file system.">
> <fileset dir="${resume.output.dir}">
> <patternset refid="ps.html"/>
> </fileset>
> </copy>
>
> <echo message="Populating asc directory."/>
> <copy todir="${local.resume.dir}\**asc" failonerror="false"
>        description="Copy ASCII files to the local file system.">
> <fileset dir="${resume.output.dir}">
> <patternset refid="ps.asc"/>
> </fileset>
> </copy>
>
> <echo message="Populating jar directory."/>
> <copy todir="${local.resume.dir}\**jar" failonerror="false"
>        description="Copy jars to local file system.">
> <fileset dir="${resume.jar.dir}">
> <patternset refid="ps.jar"/>
> </fileset>
> </copy>
>
> <echo message="Populating javadocs directory."/>
> <copy todir="${local.resume.dir}\**javadoc" failonerror="false"
>        description="Copy Javadocs to local file system.">
> <fileset dir="${resume.javadoc.dir}" description="Javadocs"/>
> </copy>
>
> <echo message="Populating pdf directory."/>
> <copy todir="${local.resume.dir}\**pdf" failonerror="false"
>        description="Copy PDFs to local file system.">
> <fileset dir="${resume.output.dir}">
> <patternset refid="ps.pdf"/>
> </fileset>
> </copy>
>
> <echo message="Populating sql directory."/>
> <copy todir="${local.resume.dir}\**sql" failonerror="false"
>        description="Copy SQL to local file system.">
> <fileset dir="${db2.sql.dir}">
> <patternset refid="ps.sql"/>
> </fileset>
> </copy>
>
> <echo message="Populating src directory."/>
> <copy todir="${local.resume.dir}\**src" failonerror="false"
>        description="Copy Java source files for resume and common code to
> Local file system.">
> <fileset dir="${resume.src}" description="Source files for Resume">
> <patternset refid="ps.resume"/>
> </fileset>
> <fileset dir="${common.src}" description="Source files for common code">
> <patternset refid="ps.common"/>
> </fileset>
> </copy>
>
> <echo message="Populating test directory."/>
> <copy todir="${local.resume.dir}\**test" failonerror="false"
>       description="Copy JUnit tests to Local file system.">
> <fileset dir="${test.src}\${common.**tests.util.pkg}" description="Source
> files for JUnit tests of common classes">
> <patternset refid="ps.test.util"/>
> </fileset>
> <fileset dir="${test.src}\${common.**tests.pkg}" description="Source
> files for JUnit tests of common utilities classes">
> <patternset refid="ps.test.common"/>
> </fileset>
> </copy>
>
> <echo message="Populating word directory."/>
> <copy todir="${local.resume.dir}\**word" failonerror="false"
>        description="Copy Word docs to local file system.">
> <fileset dir="${mydocs}">
> <patternset refid="ps.word"/>
> </fileset>
> </copy>
>
> <echo message="Populating xml directory."/>
> <copy todir="${local.resume.dir}\**xml" failonerror="false"
>        description="Copy XML files to local file system.">
> <fileset dir="${resume.xml.dir}">
> <patternset refid="ps.xml"/>
> </fileset>
> </copy>
>
> </target>
>
> <!--==========================**==============================**==========
>    Determine which server is the target.
>    ==============================**==============================**
> ======-->
> <target name="upload" description="Determine which server(s) should get
> the files.">
> <antmenu title="Upload Resume">
> <label>Choose a server to which you want to upload the resume.</label>
> <!--<button label="Foo server" target="upload_to_Foo"/>-->
> <button label="Host1Free server" target="upload_to_Host1Free"/>
> <button label="RoadRunner server" target="upload_to_RoadRunner"/**>
> <button label="X10 server" target="upload_to_X10"/>
> <button label="All servers" target="upload_all"/>
> <button label="Don't upload" target="no_upload"/>
> </antmenu>
> </target>
>
> <target name="no_upload" description="Display a message that the upload
> was bypassed.">
> <echo message="The user chose not to upload the resume to any server."/>
> </target>
>
> <!--==========================**==============================**==========
>    Upload to all of the servers.
>    ==============================**==============================**
> =======-->
> <target  name="upload_all" depends="upload_to_Host1Free,
> upload_to_RoadRunner,upload_**to_X10" description="Upload to all
> servers.">
> <echo message="Finished uploading to all servers."/>
> </target>
>
> <!--==========================**==============================**==========
>     Upload to the Host1Free server.
>    ==============================**==============================**
> ======-->
> <target name="upload_to_Host1Free" description="Upload to the Host1Free
> server.">
>
> <antform title="Upload to Host1Free Server">
> <label>Please supply the userid and password for the Host1Free
> server.</label>
> <textProperty label="Userid: " property="userid" columns="15"
> required="true"/>
> <textProperty label="Password: " property="password" columns="15"
> password="true" required="true"/>
> </antform>
>
> <echo message="Uploading to Host1Free...."/>
>
> <echo message="Deleting all files (but not subdirectories) *beneath* the
> resume directory."/>
> <antcall target="currentTime"/>
> <ftp action="del" server="${Host1Free.hostname}" userid="${userid}"
> password="${password}"
>        remotedir="${Host1Free.resume.**dir}"
>        retriesallowed="${retries.**allowed}"
>        description="Delete all files under resume directory at any level.">
> <fileset>
> <include name="**\*"/>
> </fileset>
> </ftp>
>
> <echo message="Deleting all (now empty) subdirectories *beneath* the
> resume directory."/>
> <antcall target="currentTime"/>
> <ftp action="rmdir" server="${Host1Free.hostname}" userid="${userid}"
> password="${password}"
>        retriesallowed="${retries.**allowed}"
>        remotedir="${Host1Free.resume.**dir}">
> <fileset>
> <include name="**\*"/>
> </fileset>
> </ftp>
>
> <echo message="Re-creating all subdirectories within resume directory."/>
> <antcall target="currentTime"/>
> <ftp action="mkdir" server="${Host1Free.hostname}" userid="${userid}"
> password="${password}"
>        remotedir="${Host1Free.resume.**dir}/asc"
> retriesallowed="${retries.**allowed}" ignoreNoncriticalErrors="true"**/>
> <ftp action="mkdir" server="${Host1Free.hostname}" userid="${userid}"
> password="${password}"
>        remotedir="${Host1Free.resume.**dir}/jar"
> retriesallowed="${retries.**allowed}" ignoreNoncriticalErrors="true"**/>
> <ftp action="mkdir" server="${Host1Free.hostname}" userid="${userid}"
> password="${password}"
>        remotedir="${Host1Free.resume.**dir}/javadoc"
> retriesallowed="${retries.**allowed}" ignoreNoncriticalErrors="true"**/>
> <ftp action="mkdir" server="${Host1Free.hostname}" userid="${userid}"
> password="${password}"
>        remotedir="${Host1Free.resume.**dir}/pdf"
> retriesallowed="${retries.**allowed}" ignoreNoncriticalErrors="true"**/>
> <ftp action="mkdir" server="${Host1Free.hostname}" userid="${userid}"
> password="${password}"
>        remotedir="${Host1Free.resume.**dir}/sql"
> retriesallowed="${retries.**allowed}" ignoreNoncriticalErrors="true"**/>
> <ftp action="mkdir" server="${Host1Free.hostname}" userid="${userid}"
> password="${password}"
>        remotedir="${Host1Free.resume.**dir}/src"
> retriesallowed="${retries.**allowed}" ignoreNoncriticalErrors="true"**/>
> <ftp action="mkdir" server="${Host1Free.hostname}" userid="${userid}"
> password="${password}"
>        remotedir="${Host1Free.resume.**dir}/test"
> retriesallowed="${retries.**allowed}" ignoreNoncriticalErrors="true"**/>
> <ftp action="mkdir" server="${Host1Free.hostname}" userid="${userid}"
> password="${password}"
>        remotedir="${Host1Free.resume.**dir}/word"
> retriesallowed="${retries.**allowed}" ignoreNoncriticalErrors="true"**/>
> <ftp action="mkdir" server="${Host1Free.hostname}" userid="${userid}"
> password="${password}"
>        remotedir="${Host1Free.resume.**dir}/xml"
> retriesallowed="${retries.**allowed}" ignoreNoncriticalErrors="true"**/>
>
> <echo message="Populating main directory."/>
> <antcall target="currentTime"/>
> <ftp action="send" server="${Host1Free.hostname}" userid="${userid}"
> password="${password}"
>        description="Populate main resume directory"
>        remotedir="${Host1Free.resume.**dir}"
>        retriesallowed="${retries.**allowed}"
>        separator="/" binary="yes" verbose="yes">
> <fileset dir="${resume.output.dir}">
> <patternset refid="ps.html"/>
> </fileset>
> </ftp>
>
> <echo message="Populating asc directory."/>
> <antcall target="currentTime"/>
> <ftp action="send" server="${Host1Free.hostname}" userid="${userid}"
> password="${password}"
>        description="Populate main resume directory"
>        remotedir="${Host1Free.resume.**dir}/asc"
>        retriesallowed="${retries.**allowed}"
>        separator="/" binary="yes" verbose="yes">
> <fileset dir="${resume.output.dir}">
> <patternset refid="ps.asc"/>
> </fileset>
> </ftp>
>
> <echo message="Populating jar directory."/>
> <antcall target="currentTime"/>
> <ftp action="send" server="${Host1Free.hostname}" userid="${userid}"
> password="${password}"
>        description="Populate jar directory"
>        remotedir="${Host1Free.resume.**dir}/jar"
>        retriesallowed="${retries.**allowed}"
>        separator="/" binary="yes" verbose="yes">
> <fileset dir="${resume.jar.dir}">
> <patternset refid="ps.jar"/>
> </fileset>
> </ftp>
>
> <echo message="Populating javadoc directory."/>
> <antcall target="currentTime"/>
> <ftp action="send" server="${Host1Free.hostname}" userid="${userid}"
> password="${password}"
>        description="Populate javadoc directory"
>        remotedir="${Host1Free.resume.**dir}/javadoc"
>        retriesallowed="${retries.**allowed}"
>        separator="/" binary="no" verbose="yes">
> <fileset dir="${resume.javadoc.dir}"/>
> </ftp>
>
> <echo message="Populating pdf directory."/>
> <antcall target="currentTime"/>
> <ftp action="send" server="${Host1Free.hostname}" userid="${userid}"
> password="${password}"
>        description="Populate pdf directory"
>        remotedir="${Host1Free.resume.**dir}/pdf"
>        retriesallowed="${retries.**allowed}"
>        separator="/" binary="yes" verbose="yes">
> <fileset dir="${resume.output.dir}">
> <patternset refid="ps.pdf"/>
> </fileset>
> </ftp>
>
> <echo message="Populating sql directory."/>
> <antcall target="currentTime"/>
> <ftp action="send" server="${Host1Free.hostname}" userid="${userid}"
> password="${password}"
>        description="Populate sql directory"
>        remotedir="${Host1Free.resume.**dir}/sql"
>        retriesallowed="${retries.**allowed}"
>        separator="/" binary="yes" verbose="yes">
> <fileset dir="${db2.sql.dir}">
> <patternset refid="ps.sql"/>
> </fileset>
> </ftp>
>
> <echo message="Populating src directory."/>
> <antcall target="currentTime"/>
> <ftp action="send" server="${Host1Free.hostname}" userid="${userid}"
> password="${password}"
>        description="Populate src directory"
>        remotedir="${Host1Free.resume.**dir}/src"
>        retriesallowed="${retries.**allowed}"
>        separator="/" binary="no" verbose="yes">
> <fileset dir="${resume.src}">
> <patternset refid="ps.resume"/>
> </fileset>
> <fileset dir="${common.src}">
> <patternset refid="ps.common"/>
> </fileset>
> </ftp>
>
> <!--
> <echo message="Populating test directory."/>
> <antcall target="currentTime"/>
> <ftp action="send" server="${Host1Free.hostname}" userid="${userid}"
> password="${password}"
>        description="Populate test directory"
>        remotedir="${Host1Free.resume.**dir}/test"
>        retriesallowed="${retries.**allowed}"
>        separator="/" binary="no" verbose="yes">
> <fileset dir="${test.src}" description="JUnit test files">
> <patternset refid="ps.test"/>
> </fileset>
> </ftp>
>    -->
>
> <echo message="Populating word directory."/>
> <antcall target="currentTime"/>
> <ftp action="send" server="${Host1Free.hostname}" userid="${userid}"
> password="${password}"
>        description="Populate test directory"
>        remotedir="${Host1Free.resume.**dir}/word"
>        retriesallowed="${retries.**allowed}"
>        separator="/" binary="yes" verbose="yes">
> <fileset dir="${mydocs}">
> <patternset refid="ps.word"/>
> </fileset>
> </ftp>
>
> <echo message="Populating xml directory."/>
> <antcall target="currentTime"/>
> <ftp action="send" server="${Host1Free.hostname}" userid="${userid}"
> password="${password}"
>        description="Populate xml directory"
>        remotedir="${Host1Free.resume.**dir}/xml"
>        retriesallowed="${retries.**allowed}"
>        separator="/" binary="no" verbose="yes">
> <fileset dir="${resume.xml.dir}">
> <patternset refid="ps.xml"/>
> </fileset>
> </ftp>
>
> </target>
>
> <!--==========================**==============================**==========
>    Upload to the Foo server. The Foo server uses SSH so the 'scp'
>    task is used for each upload of a file or directory. The 'sshexec'
>    task is used to create directories.
>
>    NOTE: The Foo server no longer exists. This code is being kept
>    only as an example of using the 'scp' and 'sshexec' tasks.
>   ==============================**==============================**
> ======-->
> <target name="upload_to_Foo" description="Upload to the Foo server.">
>
> <antform title="Upload to Foo Server">
> <label>Please supply the loginid and SSH passphrase for the Foo
> server.</label>
> <textProperty label="Login ID: " property="loginid" columns="15"
> required="true"/>
> <textProperty label="SSH Passphrase: " property="passphrase" columns="15"
> password="true" required="true"/>
> </antform>
>
> <echo message="Uploading to Foo...."/>
>
> <echo message="Deleting resume directory and all files and directories
> below it."/>
> <antcall target="currentTime"/>
> <sshexec host="${Foo.hostname}" username="${loginid}" trust="true"
>        keyfile="${Foo.keyfile}" passphrase="${passphrase}"
>        command="rm -rf ${Foo.resume.dir}"/>
>
> <echo message="Creating directories."/>
> <antcall target="currentTime"/>
> <sshexec host="${Foo.hostname}" username="${loginid}" trust="true"
>        keyfile="${Foo.keyfile}" passphrase="${passphrase}"
>        command="mkdir ${Foo.resume.dir}"/>
> <sshexec host="${Foo.hostname}" username="${loginid}" trust="true"
>        keyfile="${Foo.keyfile}" passphrase="${passphrase}"
>        command="mkdir ${Foo.resume.dir}/asc"/>
> <sshexec host="${Foo.hostname}" username="${loginid}" trust="true"
>        keyfile="${Foo.keyfile}" passphrase="${passphrase}"
>        command="mkdir ${Foo.resume.dir}/jar"/>
> <sshexec host="${Foo.hostname}" username="${loginid}" trust="true"
>        keyfile="${Foo.keyfile}" passphrase="${passphrase}"
>        command="mkdir ${Foo.resume.dir}/javadoc"/>
> <sshexec host="${Foo.hostname}" username="${loginid}" trust="true"
>        keyfile="${Foo.keyfile}" passphrase="${passphrase}"
>        command="mkdir ${Foo.resume.dir}/pdf"/>
> <sshexec host="${Foo.hostname}" username="${loginid}" trust="true"
>        keyfile="${Foo.keyfile}" passphrase="${passphrase}"
>        command="mkdir ${Foo.resume.dir}/sql"/>
> <sshexec host="${Foo.hostname}" username="${loginid}" trust="true"
>        keyfile="${Foo.keyfile}" passphrase="${passphrase}"
>        command="mkdir ${Foo.resume.dir}/src"/>
> <sshexec host="${Foo.hostname}" username="${loginid}" trust="true"
>        keyfile="${Foo.keyfile}" passphrase="${passphrase}"
>        command="mkdir ${Foo.resume.dir}/test"/>
> <sshexec host="${Foo.hostname}" username="${loginid}" trust="true"
>        keyfile="${Foo.keyfile}" passphrase="${passphrase}"
>        command="mkdir ${Foo.resume.dir}/word"/>
> <sshexec host="${Foo.hostname}" username="${loginid}" trust="true"
>        keyfile="${Foo.keyfile}" passphrase="${passphrase}"
>        command="mkdir ${Foo.resume.dir}/xml"/>
>
> <echo message="Populating main directory."/>
> <antcall target="currentTime"/>
> <scp todir="${loginid}@${Foo.**hostname}:${Foo.resume.dir}" trust="true"
>        keyfile="${Foo.keyfile}" passphrase="${passphrase}">
> <fileset dir="${resume.output.dir}">
> <patternset refid="ps.html"/>
> </fileset>
> </scp>
>
> <echo message="Populating asc directory."/>
> <antcall target="currentTime"/>
> <scp todir="${loginid}@${Foo.**hostname}:${Foo.resume.dir}/**asc"
> trust="true"
>        keyfile="${Foo.keyfile}" passphrase="${passphrase}">
> <fileset dir="${resume.output.dir}">
> <patternset refid="ps.asc"/>
> </fileset>
> </scp>
>
> <echo message="Populating jar directory."/>
> <antcall target="currentTime"/>
> <scp todir="${loginid}@${Foo.**hostname}:${Foo.resume.dir}/**jar"
> trust="true"
>        keyfile="${Foo.keyfile}" passphrase="${passphrase}">
> <fileset dir="${resume.jar.dir}">
> <patternset refid="ps.jar"/>
> </fileset>
> </scp>
>
> <echo message="Populating javadoc directory."/>
> <antcall target="currentTime"/>
> <scp todir="${loginid}@${Foo.**hostname}:${Foo.resume.dir}/**javadoc"
> trust="true"
>        keyfile="${Foo.keyfile}" passphrase="${passphrase}">
> <fileset dir="${resume.javadoc.dir}"/>
> </scp>
>
> <echo message="Populating pdf directory."/>
> <antcall target="currentTime"/>
> <scp todir="${loginid}@${Foo.**hostname}:${Foo.resume.dir}/**pdf"
> trust="true"
>        keyfile="${Foo.keyfile}" passphrase="${passphrase}">
> <fileset dir="${resume.output.dir}">
> <patternset refid="ps.pdf"/>
> </fileset>
> </scp>
>
> <echo message="Populating sql directory."/>
> <antcall target="currentTime"/>
> <scp todir="${loginid}@${Foo.**hostname}:${Foo.resume.dir}/**sql"
> trust="true"
>        keyfile="${Foo.keyfile}" passphrase="${passphrase}">
> <fileset dir="${db2.sql.dir}">
> <patternset refid="ps.sql"/>
> </fileset>
> </scp>
>
> <echo message="Populating src directory."/>
> <antcall target="currentTime"/>
> <scp todir="${loginid}@${Foo.**hostname}:${Foo.resume.dir}/**src"
> trust="true"
>        keyfile="${Foo.keyfile}" passphrase="${passphrase}">
> <fileset dir="${resume.src}">
> <patternset refid="ps.resume"/>
> </fileset>
> <fileset dir="${common.src}">
> <patternset refid="ps.common"/>
> </fileset>
> </scp>
>
> <echo message="Populating test directory."/>
> <antcall target="currentTime"/>
> <scp todir="${loginid}@${Foo.**hostname}:${Foo.resume.dir}/**test"
> trust="true"
>        keyfile="${Foo.keyfile}" passphrase="${passphrase}">
> <fileset dir="${test.src}">
> <patternset refid="ps.test"/>
> </fileset>
> </scp>
>
> <echo message="Populating word directory."/>
> <antcall target="currentTime"/>
> <scp todir="${loginid}@${Foo.**hostname}:${Foo.resume.dir}/**word"
> trust="true"
>        keyfile="${Foo.keyfile}" passphrase="${passphrase}">
> <fileset dir="${resume.word.dir}">
> <patternset refid="ps.word"/>
> </fileset>
> </scp>
>
> <echo message="Populating xml directory."/>
> <antcall target="currentTime"/>
> <scp todir="${loginid}@${Foo.**hostname}:${Foo.resume.dir}/**xml"
> trust="true"
>        keyfile="${Foo.keyfile}" passphrase="${passphrase}">
> <fileset dir="${resume.xml.dir}">
> <patternset refid="ps.xml"/>
> </fileset>
> </scp>
>
> </target>
>
> <!--==========================**==============================**==========
>     Upload to the RoadRunner server.
>    ==============================**==============================**
> ======-->
> <target name="upload_to_RoadRunner" description="Upload to the RoadRunner
> server.">
>
> <antform title="Upload to RoadRunner Server">
> <label>Please supply the userid and password for the RoadRunner
> server.</label>
> <textProperty label="Userid: " property="userid" columns="15"
> required="true"/>
> <textProperty label="Password: " property="password" columns="15"
> password="true" required="true"/>
> </antform>
>
> <echo message="Uploading to RoadRunner...."/>
>
> <echo message="Deleting all files (but not subdirectories) *beneath* the
> resume directory."/>
> <antcall target="currentTime"/>
> <ftp action="del" server="${RoadRunner.hostname}**" userid="${userid}"
> password="${password}"
>        remotedir="${RoadRunner.**resume.dir}"
>        retriesallowed="${retries.**allowed}"
>        description="Delete all files under resume directory at any level.">
> <fileset>
> <include name="**\*"/>
> </fileset>
> </ftp>
>
> <echo message="Deleting all (now empty) subdirectories *beneath* the
> resume directory."/>
> <antcall target="currentTime"/>
> <ftp action="rmdir" server="${RoadRunner.hostname}**" userid="${userid}"
> password="${password}"
>        retriesallowed="${retries.**allowed}"
>        remotedir="${RoadRunner.**resume.dir}">
> <fileset>
> <include name="**\*"/>
> </fileset>
> </ftp>
>
> <echo message="Re-creating all subdirectories within resume directory."/>
> <antcall target="currentTime"/>
> <ftp action="mkdir" server="${RoadRunner.hostname}**" userid="${userid}"
> password="${password}"
>        remotedir="${RoadRunner.**resume.dir}/asc"
> retriesallowed="${retries.**allowed}" ignoreNoncriticalErrors="true"**/>
> <ftp action="mkdir" server="${RoadRunner.hostname}**" userid="${userid}"
> password="${password}"
>        remotedir="${RoadRunner.**resume.dir}/jar"
> retriesallowed="${retries.**allowed}" ignoreNoncriticalErrors="true"**/>
> <ftp action="mkdir" server="${RoadRunner.hostname}**" userid="${userid}"
> password="${password}"
>        remotedir="${RoadRunner.**resume.dir}/javadoc"
> retriesallowed="${retries.**allowed}" ignoreNoncriticalErrors="true"**/>
> <ftp action="mkdir" server="${RoadRunner.hostname}**" userid="${userid}"
> password="${password}"
>        remotedir="${RoadRunner.**resume.dir}/pdf"
> retriesallowed="${retries.**allowed}" ignoreNoncriticalErrors="true"**/>
> <ftp action="mkdir" server="${RoadRunner.hostname}**" userid="${userid}"
> password="${password}"
>        remotedir="${RoadRunner.**resume.dir}/sql"
> retriesallowed="${retries.**allowed}" ignoreNoncriticalErrors="true"**/>
> <ftp action="mkdir" server="${RoadRunner.hostname}**" userid="${userid}"
> password="${password}"
>        remotedir="${RoadRunner.**resume.dir}/src"
> retriesallowed="${retries.**allowed}" ignoreNoncriticalErrors="true"**/>
> <ftp action="mkdir" server="${RoadRunner.hostname}**" userid="${userid}"
> password="${password}"
>        remotedir="${RoadRunner.**resume.dir}/test"
> retriesallowed="${retries.**allowed}" ignoreNoncriticalErrors="true"**/>
> <ftp action="mkdir" server="${RoadRunner.hostname}**" userid="${userid}"
> password="${password}"
>        remotedir="${RoadRunner.**resume.dir}/word"
> retriesallowed="${retries.**allowed}" ignoreNoncriticalErrors="true"**/>
> <ftp action="mkdir" server="${RoadRunner.hostname}**" userid="${userid}"
> password="${password}"
>        remotedir="${RoadRunner.**resume.dir}/xml"
> retriesallowed="${retries.**allowed}" ignoreNoncriticalErrors="true"**/>
>
> <echo message="Populating main directory."/>
> <antcall target="currentTime"/>
> <ftp action="send" server="${RoadRunner.hostname}**" userid="${userid}"
> password="${password}"
>        description="Populate main resume directory"
>        remotedir="${RoadRunner.**resume.dir}"
>        retriesallowed="${retries.**allowed}"
>        separator="/" binary="yes" verbose="yes">
> <fileset dir="${resume.output.dir}">
> <patternset refid="ps.html"/>
> </fileset>
> </ftp>
>
> <echo message="Populating asc directory."/>
> <antcall target="currentTime"/>
> <ftp action="send" server="${RoadRunner.hostname}**" userid="${userid}"
> password="${password}"
>        description="Populate main resume directory"
>        remotedir="${RoadRunner.**resume.dir}/asc"
>        retriesallowed="${retries.**allowed}"
>        separator="/" binary="yes" verbose="yes">
> <fileset dir="${resume.output.dir}">
> <patternset refid="ps.asc"/>
> </fileset>
> </ftp>
>
> <echo message="Populating jar directory."/>
> <antcall target="currentTime"/>
> <ftp action="send" server="${RoadRunner.hostname}**" userid="${userid}"
> password="${password}"
>        description="Populate jar directory"
>        remotedir="${RoadRunner.**resume.dir}/jar"
>        retriesallowed="${retries.**allowed}"
>        separator="/" binary="yes" verbose="yes">
> <fileset dir="${resume.jar.dir}">
> <patternset refid="ps.jar"/>
> </fileset>
> </ftp>
>
> <echo message="Populating javadoc directory."/>
> <antcall target="currentTime"/>
> <ftp action="send" server="${RoadRunner.hostname}**" userid="${userid}"
> password="${password}"
>        description="Populate javadoc directory"
>        remotedir="${RoadRunner.**resume.dir}/javadoc"
>        retriesallowed="${retries.**allowed}"
>        separator="/" binary="no" verbose="yes">
> <fileset dir="${resume.javadoc.dir}"/>
> </ftp>
>
> <echo message="Populating pdf directory."/>
> <antcall target="currentTime"/>
> <ftp action="send" server="${RoadRunner.hostname}**" userid="${userid}"
> password="${password}"
>        description="Populate pdf directory"
>        remotedir="${RoadRunner.**resume.dir}/pdf"
>        retriesallowed="${retries.**allowed}"
>        separator="/" binary="yes" verbose="yes">
> <fileset dir="${resume.output.dir}">
> <patternset refid="ps.pdf"/>
> </fileset>
> </ftp>
>
> <echo message="Populating sql directory."/>
> <antcall target="currentTime"/>
> <ftp action="send" server="${RoadRunner.hostname}**" userid="${userid}"
> password="${password}"
>        description="Populate sql directory"
>        remotedir="${RoadRunner.**resume.dir}/sql"
>        retriesallowed="${retries.**allowed}"
>        separator="/" binary="yes" verbose="yes">
> <fileset dir="${db2.sql.dir}">
> <patternset refid="ps.sql"/>
> </fileset>
> </ftp>
>
> <echo message="Populating src directory."/>
> <antcall target="currentTime"/>
> <ftp action="send" server="${RoadRunner.hostname}**" userid="${userid}"
> password="${password}"
>        description="Populate src directory"
>        remotedir="${RoadRunner.**resume.dir}/src"
>        retriesallowed="${retries.**allowed}"
>        separator="/" binary="no" verbose="yes">
> <fileset dir="${resume.src}">
> <patternset refid="ps.resume"/>
> </fileset>
> <fileset dir="${common.src}">
> <patternset refid="ps.common"/>
> </fileset>
> </ftp>
>
> <!--
> <echo message="Populating test directory."/>
> <antcall target="currentTime"/>
> <ftp action="send" server="${RoadRunner.hostname}**" userid="${userid}"
> password="${password}"
>        description="Populate test directory"
>        remotedir="${RoadRunner.**resume.dir}/test"
>        retriesallowed="${retries.**allowed}"
>        separator="/" binary="no" verbose="yes">
> <fileset dir="${test.src}" description="JUnit test files">
> <patternset refid="ps.test"/>
> </fileset>
> </ftp>
>        -->
>
> <echo message="Populating word directory."/>
> <antcall target="currentTime"/>
> <ftp action="send" server="${RoadRunner.hostname}**" userid="${userid}"
> password="${password}"
>        description="Populate test directory"
>        remotedir="${RoadRunner.**resume.dir}/word"
>        retriesallowed="${retries.**allowed}"
>        separator="/" binary="yes" verbose="yes">
> <fileset dir="${resume.word.dir}">
> <patternset refid="ps.word"/>
> </fileset>
> </ftp>
>
> <echo message="Populating xml directory."/>
> <antcall target="currentTime"/>
> <ftp action="send" server="${RoadRunner.hostname}**" userid="${userid}"
> password="${password}"
>        description="Populate xml directory"
>        remotedir="${RoadRunner.**resume.dir}/xml"
>        retriesallowed="${retries.**allowed}"
>        separator="/" binary="no" verbose="yes">
> <fileset dir="${resume.xml.dir}">
> <patternset refid="ps.xml"/>
> </fileset>
> </ftp>
>
> </target>
>
> <!--==========================**==============================**==========
>    Upload to the X10 server.
>   ==============================**==============================**
> ======-->
> <target name="upload_to_X10" description="Upload to the X10 server.">
>
> <antform title="Upload to X10 Server">
> <label>Please supply the username and password for the X10 server.</label>
> <textProperty label="userid: " property="userid" columns="15"
> required="true"/>
> <textProperty label="password: " property="password" columns="15"
> password="true" required="true"/>
> </antform>
>
> <echo message="Uploading to X10...."/>
>
> <echo message="Deleting all files (but not subdirectories) *beneath* the
> resume directory."/>
> <antcall target="currentTime"/>
> <ftp action="del" server="${X10.hostname}" userid="${userid}"
> password="${password}"
>        remotedir="${X10.resume.dir}"
>        retriesallowed="${retries.**allowed}"
>        description="Delete all files under resume directory at any level.">
> <fileset>
> <include name="**\*"/>
> </fileset>
> </ftp>
>
> <echo message="Deleting all (now empty) subdirectories *beneath* the
> resume directory."/>
> <antcall target="currentTime"/>
> <ftp action="rmdir" server="${X10.hostname}" userid="${userid}"
> password="${password}"
>        retriesallowed="${retries.**allowed}"
>        remotedir="${X10.resume.dir}">
> <fileset>
> <include name="**\*"/>
> </fileset>
> </ftp>
>
> <echo message="Re-creating all subdirectories within resume directory."/>
> <antcall target="currentTime"/>
> <ftp action="mkdir" server="${X10.hostname}" userid="${userid}"
> password="${password}"
>        remotedir="${X10.resume.dir}/**asc" retriesallowed="${retries.**allowed}"
> ignoreNoncriticalErrors="true"**/>
> <ftp action="mkdir" server="${X10.hostname}" userid="${userid}"
> password="${password}"
>        remotedir="${X10.resume.dir}/**jar" retriesallowed="${retries.**allowed}"
> ignoreNoncriticalErrors="true"**/>
> <ftp action="mkdir" server="${X10.hostname}" userid="${userid}"
> password="${password}"
>        remotedir="${X10.resume.dir}/**javadoc" retriesallowed="${retries.*
> *allowed}" ignoreNoncriticalErrors="true"**/>
> <ftp action="mkdir" server="${X10.hostname}" userid="${userid}"
> password="${password}"
>        remotedir="${X10.resume.dir}/**pdf" retriesallowed="${retries.**allowed}"
> ignoreNoncriticalErrors="true"**/>
> <ftp action="mkdir" server="${X10.hostname}" userid="${userid}"
> password="${password}"
>        remotedir="${X10.resume.dir}/**sql" retriesallowed="${retries.**allowed}"
> ignoreNoncriticalErrors="true"**/>
> <ftp action="mkdir" server="${X10.hostname}" userid="${userid}"
> password="${password}"
>        remotedir="${X10.resume.dir}/**src" retriesallowed="${retries.**allowed}"
> ignoreNoncriticalErrors="true"**/>
> <ftp action="mkdir" server="${X10.hostname}" userid="${userid}"
> password="${password}"
>        remotedir="${X10.resume.dir}/**test" retriesallowed="${retries.**allowed}"
> ignoreNoncriticalErrors="true"**/>
> <ftp action="mkdir" server="${X10.hostname}" userid="${userid}"
> password="${password}"
>        remotedir="${X10.resume.dir}/**word" retriesallowed="${retries.**allowed}"
> ignoreNoncriticalErrors="true"**/>
> <ftp action="mkdir" server="${X10.hostname}" userid="${userid}"
> password="${password}"
>        remotedir="${X10.resume.dir}/**xml" retriesallowed="${retries.**allowed}"
> ignoreNoncriticalErrors="true"**/>
>
> <echo message="Populating main directory."/>
> <antcall target="currentTime"/>
> <ftp action="send" server="${X10.hostname}" userid="${userid}"
> password="${password}"
>        description="Populate main resume directory"
>        remotedir="${X10.resume.dir}"
>        retriesallowed="${retries.**allowed}"
>        separator="/" binary="yes" verbose="yes">
> <fileset dir="${resume.output.dir}">
> <patternset refid="ps.html"/>
> </fileset>
> </ftp>
>
> <echo message="Populating asc directory."/>
> <antcall target="currentTime"/>
> <ftp action="send" server="${X10.hostname}" userid="${userid}"
> password="${password}"
>        description="Populate main resume directory"
>        remotedir="${X10.resume.dir}/**asc"
>        retriesallowed="${retries.**allowed}"
>        separator="/" binary="yes" verbose="yes">
> <fileset dir="${resume.output.dir}">
> <patternset refid="ps.asc"/>
> </fileset>
> </ftp>
>
> <echo message="Populating jar directory."/>
> <antcall target="currentTime"/>
> <ftp action="send" server="${X10.hostname}" userid="${userid}"
> password="${password}"
>        description="Populate jar directory"
>        remotedir="${X10.resume.dir}/**jar"
>        retriesallowed="${retries.**allowed}"
>        separator="/" binary="yes" verbose="yes">
> <fileset dir="${resume.jar.dir}">
> <patternset refid="ps.jar"/>
> </fileset>
> </ftp>
>
> <echo message="Populating javadoc directory."/>
> <antcall target="currentTime"/>
> <ftp action="send" server="${X10.hostname}" userid="${userid}"
> password="${password}"
>        description="Populate javadoc directory"
>        remotedir="${X10.resume.dir}/**javadoc"
>        retriesallowed="${retries.**allowed}"
>        separator="/" binary="no" verbose="yes">
> <fileset dir="${resume.javadoc.dir}"/>
> </ftp>
>
> <echo message="Populating pdf directory."/>
> <antcall target="currentTime"/>
> <ftp action="send" server="${X10.hostname}" userid="${userid}"
> password="${password}"
>        description="Populate pdf directory"
>        remotedir="${X10.resume.dir}/**pdf"
>        retriesallowed="${retries.**allowed}"
>        separator="/" binary="yes" verbose="yes">
> <fileset dir="${resume.output.dir}">
> <patternset refid="ps.pdf"/>
> </fileset>
> </ftp>
>
> <echo message="Populating sql directory."/>
> <antcall target="currentTime"/>
> <ftp action="send" server="${X10.hostname}" userid="${userid}"
> password="${password}"
>        description="Populate sql directory"
>        remotedir="${X10.resume.dir}/**sql"
>        retriesallowed="${retries.**allowed}"
>        separator="/" binary="yes" verbose="yes">
> <fileset dir="${db2.sql.dir}">
> <patternset refid="ps.sql"/>
> </fileset>
> </ftp>
>
> <echo message="Populating src directory."/>
> <antcall target="currentTime"/>
> <ftp action="send" server="${X10.hostname}" userid="${userid}"
> password="${password}"
>        description="Populate src directory"
>        remotedir="${X10.resume.dir}/**src"
>        retriesallowed="${retries.**allowed}"
>        separator="/" binary="no" verbose="yes">
> <fileset dir="${resume.src}">
> <patternset refid="ps.resume"/>
> </fileset>
> <fileset dir="${common.src}">
> <patternset refid="ps.common"/>
> </fileset>
> </ftp>
>
> <echo message="Populating test directory."/>
> <antcall target="currentTime"/>
> <ftp action="send" server="${X10.hostname}" userid="${userid}"
> password="${password}"
>        description="Populate test directory"
>        remotedir="${X10.resume.dir}/**test"
>        retriesallowed="${retries.**allowed}"
>        separator="/" binary="no" verbose="yes">
> <fileset dir="${test.src}\${common.**tests.util.pkg}" description="JUnit
> test files">
> <patternset refid="ps.test.util"/>
> </fileset>
> <fileset dir="${test.src}\${common.**tests.pkg}" description="JUnit test
> files">
> <patternset refid="ps.test.common"/>
> </fileset>
> </ftp>
>
> <echo message="Populating word directory."/>
> <antcall target="currentTime"/>
> <ftp action="send" server="${X10.hostname}" userid="${userid}"
> password="${password}"
>        description="Populate test directory"
>        remotedir="${X10.resume.dir}/**word"
>        retriesallowed="${retries.**allowed}"
>        separator="/" binary="no" verbose="yes">
> <fileset dir="${mydocs}">
> <patternset refid="ps.word"/>
> </fileset>
> </ftp>
>
> <echo message="Populating xml directory."/>
> <antcall target="currentTime"/>
> <ftp action="send" server="${X10.hostname}" userid="${userid}"
> password="${password}"
>        description="Populate xml directory"
>        remotedir="${X10.resume.dir}/**xml"
>        retriesallowed="${retries.**allowed}"
>        separator="/" binary="no" verbose="yes">
> <fileset dir="${resume.xml.dir}">
> <patternset refid="ps.xml"/>
> </fileset>
> </ftp>
>
> </target>
>
> <!--==========================**==============================**==========
>   Do the complete build.
>    ==============================**==============================**
> ======-->
> <target name="buildall" depends="datetime,verify_**
> format,verify_switches,jar,**gen_javadocs,gen_resume_files,**copy_to_local,upload"
> description="Tasks that make up a complete build.">
> <echo message="The build has ended successfully."/>
> </target>
>
> <!--==========================**==============================**==========
>   Do the 'setup' build which only initializes ResumeContants prior to
> running the program.
>    ==============================**==============================**
> ======-->
> <target name="setup" depends="datetime,verify_**
> format,verify_switches,Omit_**Email_Address,Omit_Recent_**Education,Omit_Important_Note"
> description="Tasks that make up a setup build.">
> <echo message="The build has ended successfully."/>
> </target>
>
> <!--==========================**==============================**==========
>   Do the 'RoadRunner' build which only does the upload to the RoadRunner
> server.
>    ==============================**==============================**
> ======-->
> <target name="RoadRunner" depends="upload_to_RoadRunner"
> description="Tasks that make up a RoadRunner build.">
> <echo message="The build has ended successfully."/>
> </target>
>
> <!--==========================**==============================**==========
>   Do the 'X10' build which only does the upload to the X10 server.
>    ==============================**==============================**
> ======-->
> <target name="X10" depends="upload_to_X10" description="Tasks that make up
> an X10 build.">
> <echo message="The build has ended successfully."/>
> </target>
>
> <!--==========================**==============================**==========
>   Do the 'switches' build.
>    ==============================**==============================**
> ======-->
> <target name="build_switches" depends="datetime,verify_**switches,compile,
> gen_resume_files" description="Tasks that make up a build to test the
> functioning of the switches.">
> <echo message="The build has ended successfully."/>
> </target>
>
>
> </project>
>
> On 2011-10-29 22:11, Vimil Saju wrote:
>
>> It would be helpful if you could attach the build file along with the
>> mail.
>>
>>
>> ______________________________**__
>> From: Rhino<rh...@sympatico.ca>
>> To: ant-user<us...@ant.apache.org>
>> Sent: Saturday, October 29, 2011 5:47 PM
>> Subject: Target Execution Sequence
>>
>>
>> I'm having a perplexing problem and I'm hoping someone here can help me
>> understand whatever I'm missing. I was moderately fluent with Ant at one
>> point but I've been away from it a  while and have probably just forgotten
>> some fundamental that I need to know.
>>
>> Here's the deal. I have an Ant script that is displaying an AntForm. The
>> AntForm contains some checkboxes that are supposed to make me keep or omit
>> three particular paragraphs in a document I am writing later in the script.
>> Basically, I use the AntForm to set specific booleans, one for each of the
>> three paragraphs, in a Java source file to true or false. Then, I generate
>> the document with a program that I've written and that program either
>> writes the specified paragraphs or omits them based on the values of the
>> booleans. At least, that's what's SUPPOSED to happen.
>>
>> In reality, the booleans are being seen by the program that generates the
>> document as true regardless of what has been done with the AntForm.
>> Therefore, all three special paragraphs always appear in the document even
>> when I've asked for some or all of them to be omitted.
>>
>> This baffles me because I actually display the contents of the Java
>> source file to myself in the Ant script before and after the execution of
>> the program that generates the document and the values of the three
>> booleans and they have the correct values. For instance, I can set the
>> three booleans to false, true and false respectively via the AntForm and
>> that's exactly how they appear in the Java source file just before I
>> generate the document.  (Then I reset the values to their defaults (all
>> three true) then display them to myself and they are all true.) However,
>> when I write the values of the booleans within the program that is
>> generating the document, they are invariably all true, even if they have
>> been set to different values.
>>
>> I don't understand why I'm getting this misbehaviour.
>>
>> My working theory is that Ant is NOT executing the tasks within the
>> script in the expected order. When I add the -verbose and -debug parameters
>> to the Ant Build, I see something that the task that displays the AntForm
>> is done in its proper sequence, namely first within the script. However,
>> the tasks that are to be executed to change the values of the booleans are
>> NOT executed immediately after the AntForm is displayed but after the
>> compile of the Java code. The script is displaying the AntForm and letting
>> me check the checkboxes as I like, then compiling the code and ONLY THEN
>> actually editing the source file to set some of the booleans to false. I
>> think this explains why the switches are always seen as true by the
>> document-generating program: the generator is simply not getting the edited
>> version of the source file.
>>
>> Can anyone confirm that my theory makes sense? Or, if it doesn't, suggest
>> a better explanation? If I'm on the right track, what is it that I'm not
>> understanding about the execution sequences of tasks within targets? I had
>> assumed that each task within a target would be executed before tasks in
>> other targets were started....
>>
>> --
>> Rhino
>>
>> ------------------------------**------------------------------**---------
>> To unsubscribe, e-mail: user-unsubscribe@ant.apache.**org<us...@ant.apache.org>
>> For additional commands, e-mail: user-help@ant.apache.org
>>
>
> ------------------------------**------------------------------**---------
> To unsubscribe, e-mail: user-unsubscribe@ant.apache.**org<us...@ant.apache.org>
> For additional commands, e-mail: user-help@ant.apache.org
>
>

Re: Target Execution Sequence

Posted by Rhino <rh...@sympatico.ca>.
  Okay, you asked for it so here it is, my complete build script. It's 
rather long but I didn't want to snip any bits out for fear that it 
would skew the picture. However, I think you could safely ignore many of 
the targets, especially those whose names start with "upload".

Just to recap, the behaviour I'm seeing when I use -debug and -verbose 
is that the "verify_switches" target is executing, then the "compile", 
then whichever of the three "omit_" targets are appropriate depending on 
what I did in the AntForm displayed by "verify_switches". I think that's 
why the edits to the ResumeConstants file are being done but not making 
any difference: the "gen_resume_files" target is using the UNALTERED 
version of ResumeConstants, not the edited version. What do I have to do 
to ensure that the "omit_" targets are only being executed if necessary 
but that if they need to be executed, they are executed BEFORE the compile?


<?xml version="1.0" ?><project name="Resume" default="buildall" basedir=".">
<description>Copy the resume files to the local filesystem for testing 
and to the server for
client use.
</description>

<property name="pgmname" value="ResumeApplet" description="The name of 
the applet."/>
<property name="domain.slashes" value="com\foo" description="The domain 
name written as a path."/>
<property name="mydocs" value="c:\Documents and Settings\Sparky\My 
Documents" description="The path to My Documents."/>
<property name="db2" value="c:\Program Files\IBM\SQLLIB" 
description="The path to DB2."/>
<property name="jdkbin" value="c:\Program Files\Java\jdk1.6.0_18\bin" 
description="The path to the Java JDK binaries."/>
<property name="workspace351" value="c:\eclipse\workspace" 
description="The path to the Eclipse 3.5.1 workspace."/>
<property name="commonpath" value="c:\eclipse\workspace" 
description="The path to the Common project."/>
<property name="iText.jar" value="c:\iText\1.3\itext-1.3.jar" 
description="The path to the iText jars."/>
<property name="antform.home" value="c:\Ant\AntForm\antform-bin-2.0" 
description="The path to the AntForm code."/>
<property name="resume.proj" value="Resume" description="The name of the 
resume project."/>
<property name="common.proj" value="Common" description="The name of the 
project containing the common code."/>
<property name="common.test.proj" value="UnitTests" description="The 
name of the project containing the tests for the common code."/>
<property name="resume.pkg" value="${domain.slashes}\resume" 
description="The name of the resume package containing the ResumeApplet 
code."/>
<property name="common.pkg" value="${domain.slashes}\common" 
description="The name of the package containing the common code."/>
<property name="common.tests.pkg" value="${domain.slashes}\tests\common" 
description="The name of the package containing tests for common code."/>
<property name="common.tests.util.pkg" 
value="${domain.slashes}\common\tests\utilities" description="The name 
of the package containing test for common utilities."/>
<property name="compiler.path" value="${jdkbin}\javac" description="The 
path of the Java 1.6.0_18 compiler."/>
<property name="db2java.zip" value="${db2}\java\db2java.zip" 
description="Files needed by JDBC to connect to DB2."/>
<property name="db2jcc.jar" value="${db2}\java\db2jcc.jar" 
description="Files needed by JDBC to connect to DB2."/>
<property name="db2jcc_lic.jar" 
value="${db2}\java\db2jcc_license_cu.jar" description="Files needed by 
JDBC to connect to DB2."/>
<property name="javadoc.path" value="${jdkbin}\javadoc" description="The 
path to the directory containing the Javadoc program."/>
<property name="resume.src" value="${workspace351}\${resume.proj}\src" 
description="The path to the source files for the ResumeApplet code."/>
<property name="resume.bin" value="${workspace351}\${resume.proj}\bin" 
description="The path to the class files for the ResumeApplet code."/>
<property name="common.src" value="${commonpath}\${common.proj}\src" 
description="The path to the source files for the common code."/>
<property name="common.bin" value="${commonpath}\${common.proj}\bin" 
description="The path to the class files for the common code."/>
<property name="test.src" 
value="${workspace351}\${common.test.proj}\src" description="The path to 
the JUnit test source for the common code."/>
<property name="resume.jar.dir" 
value="${workspace351}\${resume.proj}\jar" description="The path to the 
jar file for the ResumeApplet."/>
<property name="resume.jar.file" value="${pgmname}.jar" description="The 
name of the jar file containing the ResumeApplet."/>
<property name="resume.xml.dir" 
value="${workspace351}\${resume.proj}\xml" description="The path to the 
XML directory for the Resume project."/>
<property name="resume.output.dir" 
value="${workspace351}\${resume.proj}\output" description="The path to 
the output directory for the Resume project. This contains the files 
created by the ResumeGenerator, except for the Javadocs."/>
<property name="word.resume" value="${mydocs}\resume.doc" 
description="The name and path to the original of the Word version of 
the resume."/>
<property name="resume.javadoc.dir" 
value="${workspace351}\${resume.proj}\doc" description="The path to the 
directory where the Resume and Common javadocs are written."/>
<property name="db2.sql.dir" value="${db2}\Scripts\Foo" description="The 
directory in which the DB2 scripts are stored."/>
<property name="local.resume.dir" value="${mydocs}\Applets\resume" 
description="The local file system directory which contains the Resume 
files. Used for testing the Resume locally."/>
<property name="create.resume.script" value="'c:\Documents and 
Settings\Sparky\My Documents\CreateWordResume.vbs'" description="The 
VBScript that silently creates the resume."/>
<property name="export.macros.script" value="'c:\Documents and 
Settings\Sparky\My Documents\ExportWordMacros.vbs'" description="The 
VBScript that silently exports the Word macros."/>
<property name="export.macros.path" value="'c:\Documents and 
Settings\Sparky\My Documents\WordMacros.txt'" description="The name of 
the file that will contain the exported Word macros."/>
<property name="Host1Free.hostname" value="smresume.host1.com" 
description="The domain name for the Host1Free webspace."/>
<property name="Host1Free.resume.dir" value="public_html" 
description="The directory on the Host1Free server which will hold the 
Resume information."/>
<property name="Foo.hostname" value="www.foo.com" description="The Foo 
domain name."/>
<property name="Foo.resume.dir" value="/home/foo/public_html/resume" 
description="The directory in the Foo server where the Resume 
information is stored."/>
<property name="Foo.sql.dir" value="/home/sparky/MySQL/Foo" 
description="The directory containing the originals of the database 
scripts."/>
<property name="Foo.keyfile" value="${mydocs}\Desktop\Mycroft\id_rsa" 
description="The directory on the local machine containing the keyfile 
for the Foo server."/>
<property name="RoadRunner.hostname" value="www3.sympatico.com" 
description="The domain name for the RoadRunner personal webspace."/>
<property name="RoadRunner.resume.dir" value="resume" description="The 
directory on the RoadRunner server which will hold the Resume 
information."/>
<property name="X10.hostname" value="rcresume.x10hosting.com" 
description="The name of the X10 host that will contain the resume."/>
<property name="X10.resume.dir" value="public_html/resume" 
description="The name of the directory that will contain the resume."/>
<property name="retries.allowed" value="3" description="The number of 
retries that the FTP task can attempt. -1 means infinite number."/>

<!--==================================================================
     Task definitions for tasks that aren't Ant core or optional tasks.
     ==================================================================-->
<taskdef name="antform" classname="com.sardak.antform.AntForm" 
classpath="${antform.home}/lib/antform.jar"/>
<taskdef name="antmenu" classname="com.sardak.antform.AntMenu" 
classpath="${antform.home}/lib/antform.jar"/>

<!--==================================================================
     Import common code.
     ==================================================================-->
<property name="import.path" value="${ant.home}\imports"/>
<import file="${import.path}\sounds.xml" description="Play appropriate 
sounds depending on whether build worked or failed."/>
<import file="${import.path}\datetime.xml" description="Display date and 
time that build started."/>

<!--==================================================================
     Establish patternsets.
     ==================================================================-->
<patternset id="ps.resume" description="The project-specific resume code.">
<include name="${resume.pkg}\*.*"/>
<include name="${resume.pkg}\Resources\Resume*.java"/>
</patternset>

<patternset id="ps.applet" description="The project-specific code needed 
by the applet.">
<include name="${resume.pkg}\EmploymentHistoryFormats.*"/>
<include name="${resume.pkg}\Resume.*"/>
<include name="${resume.pkg}\ResumeApplet.*"/>
<include name="${resume.pkg}\ResumeConstants.*"/>
<include name="${resume.pkg}\Resources\ResumeList*.*"/>
</patternset>

<patternset id="ps.applet.common" description="The common code needed by 
the applet.">
<include name="${common.pkg}\CommonConstants.*"/>
<include name="${common.pkg}\Hybrid.*"/>
<include name="${common.pkg}\lookups\ColorName.*"/>
<include name="${common.pkg}\lookups\ColorPalette.*"/>
<include name="${common.pkg}\lookups\PadPosition.*"/>
<include name="${common.pkg}\lookups\WrappingCases.*"/>
<include name="${common.pkg}\utilities\CountUtils.*"/>
<include name="${common.pkg}\utilities\ErrorUtils.*"/>
<include name="${common.pkg}\utilities\LocalizationUtils.*"/>
<include name="${common.pkg}\utilities\StringUtils.*"/>
<include name="${common.pkg}\utilities\WrapUtils.*"/>
<include name="${common.pkg}\utilities\Resources\StringUtilsMsg*.*"/>
</patternset>

<patternset id="ps.common" description="The programs in the common 
package needed by the resume classes.">
<include name="${common.pkg}\CommonConstants.*"/>
<include name="${common.pkg}\lookups\ColorName.*"/>
<include name="${common.pkg}\lookups\ColorPalette.*"/>
<include name="${common.pkg}\lookups\Months.*"/>
<include name="${common.pkg}\utilities\CountUtils.*"/>
<include name="${common.pkg}\utilities\ColorConversionUtils.*"/>
<include name="${common.pkg}\utilities\DateTimeUtils.*"/>
<include name="${common.pkg}\utilities\LocalizationUtils.*"/>
<include name="${common.pkg}\utilities\StringUtils.*"/>
<include name="${common.pkg}\utilities\WrapUtils.*"/>
<include name="${common.pkg}\utilities\WrappingCases.*"/>
</patternset>

<patternset id="ps.test.common" description="Common test cases.">
<include name="PalettesTest.java"/>
</patternset>

<patternset id="ps.test.util" description="Common utilities test cases.">
<include name="ColorConversionUtilsTest.java"/>
<include name="DateTimeUtilsTest.java"/>
<include name="StringUtilsTest.java"/>
</patternset>

<patternset id="ps.html" description="The HTML and CSS files.">
<include name="*.html"/>
<include name="*.css"/>
<include name="noJava.png"/>
</patternset>

<patternset id="ps.pdf" description="The PDF files.">
<include name="*.pdf"/>
</patternset>

<patternset id="ps.asc" description="The ASCII file.">
<include name="*.asc"/>
</patternset>

<patternset id="ps.jar" description="Jars.">
<include name="*.jar"/>
</patternset>

<patternset id="ps.word" description="Word docs.">
<include name="smalarkey-resume.doc"/>
<include name="WordMacros.txt"/>
</patternset>

<patternset id="ps.xml" description="XML files.">
<include name="build.xml"/>
</patternset>

<patternset id="ps.sql" description="SQL scripts.">
<include name="*_Locale.sql"/>
<include name="*_Labels.sql"/>
<include name="*_Reference.sql"/>
<include name="*_Reference_Rels.sql"/>
<include name="*_Reference_Paras.sql"/>
</patternset>

<!--==================================================================
    Let the user choose the format for the Employment History.
     ==================================================================-->
<target name="verify_format" description="Let the user choose the 
desired Employment History format for the resumes.">
<antmenu title="Choose Employment History Format">
<label>You have the option of generating the resumes so that the 
description of each job in the Employment History is formatted as a 
paragraph or as a bulleted list. Choose the desired format or choose 
Abort to cancel the build.</label>
<button label="List Format" target="Set_List_Format"/>
<button label="Paragraph Format" target="Set_Paragraph_Format"/>
<button label="Abort" target="abort"/>
</antmenu>
</target>

<target name="Set_List_Format" description="Ensure that job descriptions 
in the Employment History section will appear as bulleted lists.">
<replaceregexp file="${resume.src}\${resume.pkg}\ResumeConstants.java"
         match="^[\s]*public static final EmploymentHistoryFormats 
DESIRED_EMPLOYMENT_HISTORY_FORMAT[\s]*=[\s]*([^;]+);[\s]*$"
         replace="    public static final EmploymentHistoryFormats 
DESIRED_EMPLOYMENT_HISTORY_FORMAT = EmploymentHistoryFormats.LIST_FORMAT;"
         byline="true"/>
</target>

<target name="Set_Paragraph_Format" description="Ensure that job 
descriptions in the Employment History section will appear as a paragraph.">
<replaceregexp file="${resume.src}\${resume.pkg}\ResumeConstants.java"
         match="^[\s]*public static final EmploymentHistoryFormats 
DESIRED_EMPLOYMENT_HISTORY_FORMAT[\s]*=[\s]*([^;]+);[\s]*$"
         replace="    public static final EmploymentHistoryFormats 
DESIRED_EMPLOYMENT_HISTORY_FORMAT = 
EmploymentHistoryFormats.PARAGRAPH_FORMAT;"
         byline="true"/>
</target>

<target name="abort" description="Display a message that the build was 
cancelled.">
<fail message="The user chose not to proceed with the build."/>
</target>

<!--==================================================================
    Let the user choose to show or hide specific items.
     ==================================================================-->
<target name="verify_switches" description="Let the user choose which 
content to omit.">
<antform title="Choose Information Which Will Not Be Displayed">
<label>Use the checkboxes to control which of the following content is 
shown. Choose Abort to cancel the build.</label>
<booleanProperty label="Omit Email Address" property="omit.email.address"/>
<booleanProperty label="Omit Recent Education" 
property="omit.recent.education"/>
<booleanProperty label="Omit Important Note" 
property="omit.important.note"/>
<controlbar>
<button label="Abort" target="abort2" type="cancel"/>
<button label="Ok" type="ok"/>
</controlbar>
</antform>
</target>

<target name="Omit_Email_Address" description="Omit the email address." 
if="omit.email.address">
<replaceregexp file="${resume.src}\${resume.pkg}\ResumeConstants.java"
         match="^[\s]*public static final boolean 
SHOW_EMAIL_ADDRESS[\s]*=[\s]*([^;]+);[\s]*$"
         replace="    public static final boolean SHOW_EMAIL_ADDRESS = 
false;"
         byline="true"/>
</target>

<target name="Omit_Recent_Education" description="Omit the recent 
education." if="omit.recent.education">
<replaceregexp file="${resume.src}\${resume.pkg}\ResumeConstants.java"
         match="^[\s]*public static final boolean 
SHOW_RECENT_EDUCATION[\s]*=[\s]*([^;]+);[\s]*$"
         replace="    public static final boolean SHOW_RECENT_EDUCATION 
= false;"
         byline="true"/>
</target>

<target name="Omit_Important_Note" description="Omit the important 
note." if="omit.important.note">
<replaceregexp file="${resume.src}\${resume.pkg}\ResumeConstants.java"
         match="^[\s]*public static final boolean 
SHOW_IMPORTANT_NOTE[\s]*=[\s]*([^;]+);[\s]*$"
         replace="    public static final boolean SHOW_IMPORTANT_NOTE = 
false;"
         byline="true"/>
</target>

<target name="abort2" description="Display a message that the build was 
cancelled.">
<fail message="The user chose not to proceed with the build."/>
</target>

<!--==================================================================
    Compile all of the Java code, both project-specific and common.
     ==================================================================-->
<target name="compile" description="Compile the Java code.">
<javac srcdir="${common.src}" destdir="${common.bin}" compiler="modern" 
fork="yes"
         verbose="no" debug="on" debuglevel="lines,vars,source" 
deprecation="yes"
         executable="${compiler.path}" source="1.6" 
includeantruntime="false"
         description="Compile the code in the common package.">
<patternset refid="ps.common"/>
</javac>
<javac srcdir="${resume.src}" destdir="${resume.bin}" compiler="modern" 
fork="yes"
         verbose="no" debug="on" debuglevel="lines,vars,source" 
deprecation="yes"
         executable="${compiler.path}" source="1.6" 
includeantruntime="false"
         description="Compile the code in the resume and 
resume.Resources packages.">
<classpath>
<pathelement path="${common.bin}"/>
<pathelement path="${iText.jar}"/>
</classpath>
<patternset refid="ps.resume"/>
</javac>
</target>

<!--==================================================================
    Jar the class files and resources used by the applet.
     ==================================================================-->
<target name="jar" depends="compile" description="Jar the class files 
and resources used by the applet.">
<delete file="${resume.jar.dir}/${resume.jar.file}" description="Delete 
the old jar."/>
<jar destfile="${resume.jar.dir}/${resume.jar.file}" compress="true"
         description="Create the new jar.">
<manifest>
<attribute name="Manifest-Version" value="1.0"/>
<attribute name="Main-Class" value="com.foo.resume.ResumeApplet"/>
<attribute name="Implementation-Title" value="Résumé"/>
<attribute name="Implementation-Version" value="${start.TODAY} at 
${start.TIME}"/>
<attribute name="Implementation-Vendor" value="foo.com"/>
</manifest>
<fileset dir="${resume.bin}" defaultexcludes="yes">
<patternset refid="ps.applet"/>
</fileset>
<fileset dir="${common.bin}" defaultexcludes="yes">
<patternset refid="ps.applet.common"/>
</fileset>
</jar>
</target>

<!--==================================================================
     Generate the Javadocs for the project and for the common classes
     used by the project.
     ==================================================================-->
<target name="gen_javadocs"
     description="Generate the Javadocs for the project classes and the 
common classes that support them.">
<delete includeEmptyDirs="true"
         description="Delete contents of javadoc directory but not the 
directory itself.">
<fileset dir="${resume.javadoc.dir}" includes="**/*"/>
</delete>

<javadoc destdir="${resume.javadoc.dir}"
         author="true"
         version="true"
         use="true"
         splitindex="true"
         access="public"
         executable="${javadoc.path}"
         source="1.6"
         windowtitle="Resume API"
         breakiterator="true"
         overview="${resume.output.dir}\javadoc_overview.html" 
doctitle="Résumé Overview"
         classpath="${iText.jar}:${common.bin}"
         description="Generate Javadocs for the project and the 
supporting common code.">

<fileset dir="${resume.src}" defaultexcludes="yes">
<patternset refid="ps.resume"/>
</fileset>
<fileset dir="${common.src}" defaultexcludes="yes">
<patternset refid="ps.common"/>
</fileset>

<doctitle><![CDATA[<h1>R&eacute;sum&eacute;</h1>]]></doctitle>
<bottom><![CDATA[<i>Copyright &#169; 2006-2011 Sparky Malarkey. All 
Rights Reserved. Last generated on ${start.TODAY} at 
${start.TIME}.</i>]]></bottom>
<group title="Résumé Packages" packages="resume*"/>
<group title="Common Packages" packages="common*"/>
<link href="http://java.sun.com/j2se/1.6.0/docs/api"/>
</javadoc>
</target>

<!--==================================================================
     Generate the main HTML page, HTML version of the resume, HTML for
     the page that will contain the applet and source code links, HTML
     for the Javadocs overview, CSS for the preceding files, and the
     ASCII, PDF, and Word versions of the resume.
     ==================================================================-->
<target name="gen_resume_files" 
depends="Omit_Email_Address,Omit_Recent_Education,Omit_Important_Note" 
description="Generate HTML, CSS, ASCII, PDF and Word files.">

<!--TEMPORARY-->
<echo message="Display ResumConstants just BEFORE generating the resumes."/>
<concat>
<fileset dir="${resume.src}\${resume.pkg}" includes="ResumeConstants.java"/>
</concat>

<echo message="Generate all files containing resumes and their 
supporting files EXCEPT for the Word version of the resume."/>
<java classname="com.foo.resume.ResumeFileGenerator" fork="false"
         description="Execute the ResumeFileGenerator program.">
<classpath>
<pathelement path="${common.bin}"/>
<pathelement path="${resume.bin}"/>
<pathelement path="${iText.jar}"/>
<pathelement path="${db2java.zip}"/>
<pathelement path="${db2jcc.jar}"/>
<pathelement path="${db2jcc_lic.jar}"/>
</classpath>
<sysproperty key="log.path" value="c:\\eclipse\workspace\Resume\log"/>
</java>

<echo message="Generate the Word version of the resume."/>
<exec executable="cscript.exe" os="Windows XP" failonerror="true" 
description="Generate the Word version of the resume via a VBScript that 
invokes a macro.">
<arg line="${create.resume.script}"/>
</exec>


<echo message="Export the Word macros that created the resume."/>
<exec executable="cscript.exe" os="Windows XP" failonerror="true" 
description="Export the macros used to create the resume.">
<arg line="${export.macros.script} ${export.macros.path}"/>
</exec>


<echo message="Reset switches used to control resume content."/>
<replaceregexp file="${resume.src}\${resume.pkg}\ResumeConstants.java"
         match="^[\s]*public static final boolean 
SHOW_EMAIL_ADDRESS[\s]*=[\s]*([^;]+);[\s]*$"
         replace="    public static final boolean SHOW_EMAIL_ADDRESS = 
true;"
         byline="true"/>

<replaceregexp file="${resume.src}\${resume.pkg}\ResumeConstants.java"
         match="^[\s]*public static final boolean 
SHOW_RECENT_EDUCATION[\s]*=[\s]*([^;]+);[\s]*$"
         replace="    public static final boolean SHOW_RECENT_EDUCATION 
= true;"
         byline="true"/>

<replaceregexp file="${resume.src}\${resume.pkg}\ResumeConstants.java"
         match="^[\s]*public static final boolean 
SHOW_IMPORTANT_NOTE[\s]*=[\s]*([^;]+);[\s]*$"
         replace="    public static final boolean SHOW_IMPORTANT_NOTE = 
true;"
         byline="true"/>

<!--TEMPORARY-->
<echo message="Display ResumConstants just AFTER generating the resumes."/>
<concat>
<fileset dir="${resume.src}\${resume.pkg}" includes="ResumeConstants.java"/>
</concat>

</target>

<!--==================================================================
     Copy all necessary code to the file system for local testing.

     NOTES:
     - mkdir only makes a directory if it doesn't already exist
     - copy overlays existing files with newer versions of those same files
     ==================================================================-->
<target name="copy_to_local" description="Copy files to the local file 
system for testing.">

<echo message="Deleting the local resume directory and everything in it."/>
<delete includeemptydirs="true" quiet="true"
         description="Delete everything within the local resume 
directory, including the local resume directory itself.">
<fileset dir="${local.resume.dir}"/>
</delete>

<echo message="Creating the resume directory and its subdirectories."/>
<mkdir dir="${local.resume.dir}"/>
<mkdir dir="${local.resume.dir}\asc"/>
<mkdir dir="${local.resume.dir}\jar"/>
<mkdir dir="${local.resume.dir}\javadoc"/>
<mkdir dir="${local.resume.dir}\pdf"/>
<mkdir dir="${local.resume.dir}\sql"/>
<mkdir dir="${local.resume.dir}\src"/>
<mkdir dir="${local.resume.dir}\test"/>
<mkdir dir="${local.resume.dir}\word"/>
<mkdir dir="${local.resume.dir}\xml"/>

<echo message="Populating main directory."/>
<copy todir="${local.resume.dir}" failonerror="false"
         description="Copy HTML and CSS files to the local file system.">
<fileset dir="${resume.output.dir}">
<patternset refid="ps.html"/>
</fileset>
</copy>

<echo message="Populating asc directory."/>
<copy todir="${local.resume.dir}\asc" failonerror="false"
         description="Copy ASCII files to the local file system.">
<fileset dir="${resume.output.dir}">
<patternset refid="ps.asc"/>
</fileset>
</copy>

<echo message="Populating jar directory."/>
<copy todir="${local.resume.dir}\jar" failonerror="false"
         description="Copy jars to local file system.">
<fileset dir="${resume.jar.dir}">
<patternset refid="ps.jar"/>
</fileset>
</copy>

<echo message="Populating javadocs directory."/>
<copy todir="${local.resume.dir}\javadoc" failonerror="false"
         description="Copy Javadocs to local file system.">
<fileset dir="${resume.javadoc.dir}" description="Javadocs"/>
</copy>

<echo message="Populating pdf directory."/>
<copy todir="${local.resume.dir}\pdf" failonerror="false"
         description="Copy PDFs to local file system.">
<fileset dir="${resume.output.dir}">
<patternset refid="ps.pdf"/>
</fileset>
</copy>

<echo message="Populating sql directory."/>
<copy todir="${local.resume.dir}\sql" failonerror="false"
         description="Copy SQL to local file system.">
<fileset dir="${db2.sql.dir}">
<patternset refid="ps.sql"/>
</fileset>
</copy>

<echo message="Populating src directory."/>
<copy todir="${local.resume.dir}\src" failonerror="false"
         description="Copy Java source files for resume and common code 
to Local file system.">
<fileset dir="${resume.src}" description="Source files for Resume">
<patternset refid="ps.resume"/>
</fileset>
<fileset dir="${common.src}" description="Source files for common code">
<patternset refid="ps.common"/>
</fileset>
</copy>

<echo message="Populating test directory."/>
<copy todir="${local.resume.dir}\test" failonerror="false"
        description="Copy JUnit tests to Local file system.">
<fileset dir="${test.src}\${common.tests.util.pkg}" description="Source 
files for JUnit tests of common classes">
<patternset refid="ps.test.util"/>
</fileset>
<fileset dir="${test.src}\${common.tests.pkg}" description="Source files 
for JUnit tests of common utilities classes">
<patternset refid="ps.test.common"/>
</fileset>
</copy>

<echo message="Populating word directory."/>
<copy todir="${local.resume.dir}\word" failonerror="false"
         description="Copy Word docs to local file system.">
<fileset dir="${mydocs}">
<patternset refid="ps.word"/>
</fileset>
</copy>

<echo message="Populating xml directory."/>
<copy todir="${local.resume.dir}\xml" failonerror="false"
         description="Copy XML files to local file system.">
<fileset dir="${resume.xml.dir}">
<patternset refid="ps.xml"/>
</fileset>
</copy>

</target>

<!--==================================================================
     Determine which server is the target.
     ==================================================================-->
<target name="upload" description="Determine which server(s) should get 
the files.">
<antmenu title="Upload Resume">
<label>Choose a server to which you want to upload the resume.</label>
<!--<button label="Foo server" target="upload_to_Foo"/>-->
<button label="Host1Free server" target="upload_to_Host1Free"/>
<button label="RoadRunner server" target="upload_to_RoadRunner"/>
<button label="X10 server" target="upload_to_X10"/>
<button label="All servers" target="upload_all"/>
<button label="Don't upload" target="no_upload"/>
</antmenu>
</target>

<target name="no_upload" description="Display a message that the upload 
was bypassed.">
<echo message="The user chose not to upload the resume to any server."/>
</target>

<!--==================================================================
     Upload to all of the servers.
     ===================================================================-->
<target  name="upload_all" depends="upload_to_Host1Free, 
upload_to_RoadRunner,upload_to_X10" description="Upload to all servers.">
<echo message="Finished uploading to all servers."/>
</target>

<!--==================================================================
      Upload to the Host1Free server.
     ==================================================================-->
<target name="upload_to_Host1Free" description="Upload to the Host1Free 
server.">

<antform title="Upload to Host1Free Server">
<label>Please supply the userid and password for the Host1Free 
server.</label>
<textProperty label="Userid: " property="userid" columns="15" 
required="true"/>
<textProperty label="Password: " property="password" columns="15" 
password="true" required="true"/>
</antform>

<echo message="Uploading to Host1Free...."/>

<echo message="Deleting all files (but not subdirectories) *beneath* the 
resume directory."/>
<antcall target="currentTime"/>
<ftp action="del" server="${Host1Free.hostname}" userid="${userid}" 
password="${password}"
         remotedir="${Host1Free.resume.dir}"
         retriesallowed="${retries.allowed}"
         description="Delete all files under resume directory at any 
level.">
<fileset>
<include name="**\*"/>
</fileset>
</ftp>

<echo message="Deleting all (now empty) subdirectories *beneath* the 
resume directory."/>
<antcall target="currentTime"/>
<ftp action="rmdir" server="${Host1Free.hostname}" userid="${userid}" 
password="${password}"
         retriesallowed="${retries.allowed}"
         remotedir="${Host1Free.resume.dir}">
<fileset>
<include name="**\*"/>
</fileset>
</ftp>

<echo message="Re-creating all subdirectories within resume directory."/>
<antcall target="currentTime"/>
<ftp action="mkdir" server="${Host1Free.hostname}" userid="${userid}" 
password="${password}"
         remotedir="${Host1Free.resume.dir}/asc" 
retriesallowed="${retries.allowed}" ignoreNoncriticalErrors="true"/>
<ftp action="mkdir" server="${Host1Free.hostname}" userid="${userid}" 
password="${password}"
         remotedir="${Host1Free.resume.dir}/jar" 
retriesallowed="${retries.allowed}" ignoreNoncriticalErrors="true"/>
<ftp action="mkdir" server="${Host1Free.hostname}" userid="${userid}" 
password="${password}"
         remotedir="${Host1Free.resume.dir}/javadoc" 
retriesallowed="${retries.allowed}" ignoreNoncriticalErrors="true"/>
<ftp action="mkdir" server="${Host1Free.hostname}" userid="${userid}" 
password="${password}"
         remotedir="${Host1Free.resume.dir}/pdf" 
retriesallowed="${retries.allowed}" ignoreNoncriticalErrors="true"/>
<ftp action="mkdir" server="${Host1Free.hostname}" userid="${userid}" 
password="${password}"
         remotedir="${Host1Free.resume.dir}/sql" 
retriesallowed="${retries.allowed}" ignoreNoncriticalErrors="true"/>
<ftp action="mkdir" server="${Host1Free.hostname}" userid="${userid}" 
password="${password}"
         remotedir="${Host1Free.resume.dir}/src" 
retriesallowed="${retries.allowed}" ignoreNoncriticalErrors="true"/>
<ftp action="mkdir" server="${Host1Free.hostname}" userid="${userid}" 
password="${password}"
         remotedir="${Host1Free.resume.dir}/test" 
retriesallowed="${retries.allowed}" ignoreNoncriticalErrors="true"/>
<ftp action="mkdir" server="${Host1Free.hostname}" userid="${userid}" 
password="${password}"
         remotedir="${Host1Free.resume.dir}/word" 
retriesallowed="${retries.allowed}" ignoreNoncriticalErrors="true"/>
<ftp action="mkdir" server="${Host1Free.hostname}" userid="${userid}" 
password="${password}"
         remotedir="${Host1Free.resume.dir}/xml" 
retriesallowed="${retries.allowed}" ignoreNoncriticalErrors="true"/>

<echo message="Populating main directory."/>
<antcall target="currentTime"/>
<ftp action="send" server="${Host1Free.hostname}" userid="${userid}" 
password="${password}"
         description="Populate main resume directory"
         remotedir="${Host1Free.resume.dir}"
         retriesallowed="${retries.allowed}"
         separator="/" binary="yes" verbose="yes">
<fileset dir="${resume.output.dir}">
<patternset refid="ps.html"/>
</fileset>
</ftp>

<echo message="Populating asc directory."/>
<antcall target="currentTime"/>
<ftp action="send" server="${Host1Free.hostname}" userid="${userid}" 
password="${password}"
         description="Populate main resume directory"
         remotedir="${Host1Free.resume.dir}/asc"
         retriesallowed="${retries.allowed}"
         separator="/" binary="yes" verbose="yes">
<fileset dir="${resume.output.dir}">
<patternset refid="ps.asc"/>
</fileset>
</ftp>

<echo message="Populating jar directory."/>
<antcall target="currentTime"/>
<ftp action="send" server="${Host1Free.hostname}" userid="${userid}" 
password="${password}"
         description="Populate jar directory"
         remotedir="${Host1Free.resume.dir}/jar"
         retriesallowed="${retries.allowed}"
         separator="/" binary="yes" verbose="yes">
<fileset dir="${resume.jar.dir}">
<patternset refid="ps.jar"/>
</fileset>
</ftp>

<echo message="Populating javadoc directory."/>
<antcall target="currentTime"/>
<ftp action="send" server="${Host1Free.hostname}" userid="${userid}" 
password="${password}"
         description="Populate javadoc directory"
         remotedir="${Host1Free.resume.dir}/javadoc"
         retriesallowed="${retries.allowed}"
         separator="/" binary="no" verbose="yes">
<fileset dir="${resume.javadoc.dir}"/>
</ftp>

<echo message="Populating pdf directory."/>
<antcall target="currentTime"/>
<ftp action="send" server="${Host1Free.hostname}" userid="${userid}" 
password="${password}"
         description="Populate pdf directory"
         remotedir="${Host1Free.resume.dir}/pdf"
         retriesallowed="${retries.allowed}"
         separator="/" binary="yes" verbose="yes">
<fileset dir="${resume.output.dir}">
<patternset refid="ps.pdf"/>
</fileset>
</ftp>

<echo message="Populating sql directory."/>
<antcall target="currentTime"/>
<ftp action="send" server="${Host1Free.hostname}" userid="${userid}" 
password="${password}"
         description="Populate sql directory"
         remotedir="${Host1Free.resume.dir}/sql"
         retriesallowed="${retries.allowed}"
         separator="/" binary="yes" verbose="yes">
<fileset dir="${db2.sql.dir}">
<patternset refid="ps.sql"/>
</fileset>
</ftp>

<echo message="Populating src directory."/>
<antcall target="currentTime"/>
<ftp action="send" server="${Host1Free.hostname}" userid="${userid}" 
password="${password}"
         description="Populate src directory"
         remotedir="${Host1Free.resume.dir}/src"
         retriesallowed="${retries.allowed}"
         separator="/" binary="no" verbose="yes">
<fileset dir="${resume.src}">
<patternset refid="ps.resume"/>
</fileset>
<fileset dir="${common.src}">
<patternset refid="ps.common"/>
</fileset>
</ftp>

<!--
<echo message="Populating test directory."/>
<antcall target="currentTime"/>
<ftp action="send" server="${Host1Free.hostname}" userid="${userid}" 
password="${password}"
         description="Populate test directory"
         remotedir="${Host1Free.resume.dir}/test"
         retriesallowed="${retries.allowed}"
         separator="/" binary="no" verbose="yes">
<fileset dir="${test.src}" description="JUnit test files">
<patternset refid="ps.test"/>
</fileset>
</ftp>
     -->

<echo message="Populating word directory."/>
<antcall target="currentTime"/>
<ftp action="send" server="${Host1Free.hostname}" userid="${userid}" 
password="${password}"
         description="Populate test directory"
         remotedir="${Host1Free.resume.dir}/word"
         retriesallowed="${retries.allowed}"
         separator="/" binary="yes" verbose="yes">
<fileset dir="${mydocs}">
<patternset refid="ps.word"/>
</fileset>
</ftp>

<echo message="Populating xml directory."/>
<antcall target="currentTime"/>
<ftp action="send" server="${Host1Free.hostname}" userid="${userid}" 
password="${password}"
         description="Populate xml directory"
         remotedir="${Host1Free.resume.dir}/xml"
         retriesallowed="${retries.allowed}"
         separator="/" binary="no" verbose="yes">
<fileset dir="${resume.xml.dir}">
<patternset refid="ps.xml"/>
</fileset>
</ftp>

</target>

<!--==================================================================
     Upload to the Foo server. The Foo server uses SSH so the 'scp'
     task is used for each upload of a file or directory. The 'sshexec'
     task is used to create directories.

     NOTE: The Foo server no longer exists. This code is being kept
     only as an example of using the 'scp' and 'sshexec' tasks.
    ==================================================================-->
<target name="upload_to_Foo" description="Upload to the Foo server.">

<antform title="Upload to Foo Server">
<label>Please supply the loginid and SSH passphrase for the Foo 
server.</label>
<textProperty label="Login ID: " property="loginid" columns="15" 
required="true"/>
<textProperty label="SSH Passphrase: " property="passphrase" 
columns="15" password="true" required="true"/>
</antform>

<echo message="Uploading to Foo...."/>

<echo message="Deleting resume directory and all files and directories 
below it."/>
<antcall target="currentTime"/>
<sshexec host="${Foo.hostname}" username="${loginid}" trust="true"
         keyfile="${Foo.keyfile}" passphrase="${passphrase}"
         command="rm -rf ${Foo.resume.dir}"/>

<echo message="Creating directories."/>
<antcall target="currentTime"/>
<sshexec host="${Foo.hostname}" username="${loginid}" trust="true"
         keyfile="${Foo.keyfile}" passphrase="${passphrase}"
         command="mkdir ${Foo.resume.dir}"/>
<sshexec host="${Foo.hostname}" username="${loginid}" trust="true"
         keyfile="${Foo.keyfile}" passphrase="${passphrase}"
         command="mkdir ${Foo.resume.dir}/asc"/>
<sshexec host="${Foo.hostname}" username="${loginid}" trust="true"
         keyfile="${Foo.keyfile}" passphrase="${passphrase}"
         command="mkdir ${Foo.resume.dir}/jar"/>
<sshexec host="${Foo.hostname}" username="${loginid}" trust="true"
         keyfile="${Foo.keyfile}" passphrase="${passphrase}"
         command="mkdir ${Foo.resume.dir}/javadoc"/>
<sshexec host="${Foo.hostname}" username="${loginid}" trust="true"
         keyfile="${Foo.keyfile}" passphrase="${passphrase}"
         command="mkdir ${Foo.resume.dir}/pdf"/>
<sshexec host="${Foo.hostname}" username="${loginid}" trust="true"
         keyfile="${Foo.keyfile}" passphrase="${passphrase}"
         command="mkdir ${Foo.resume.dir}/sql"/>
<sshexec host="${Foo.hostname}" username="${loginid}" trust="true"
         keyfile="${Foo.keyfile}" passphrase="${passphrase}"
         command="mkdir ${Foo.resume.dir}/src"/>
<sshexec host="${Foo.hostname}" username="${loginid}" trust="true"
         keyfile="${Foo.keyfile}" passphrase="${passphrase}"
         command="mkdir ${Foo.resume.dir}/test"/>
<sshexec host="${Foo.hostname}" username="${loginid}" trust="true"
         keyfile="${Foo.keyfile}" passphrase="${passphrase}"
         command="mkdir ${Foo.resume.dir}/word"/>
<sshexec host="${Foo.hostname}" username="${loginid}" trust="true"
         keyfile="${Foo.keyfile}" passphrase="${passphrase}"
         command="mkdir ${Foo.resume.dir}/xml"/>

<echo message="Populating main directory."/>
<antcall target="currentTime"/>
<scp todir="${loginid}@${Foo.hostname}:${Foo.resume.dir}" trust="true"
         keyfile="${Foo.keyfile}" passphrase="${passphrase}">
<fileset dir="${resume.output.dir}">
<patternset refid="ps.html"/>
</fileset>
</scp>

<echo message="Populating asc directory."/>
<antcall target="currentTime"/>
<scp todir="${loginid}@${Foo.hostname}:${Foo.resume.dir}/asc" trust="true"
         keyfile="${Foo.keyfile}" passphrase="${passphrase}">
<fileset dir="${resume.output.dir}">
<patternset refid="ps.asc"/>
</fileset>
</scp>

<echo message="Populating jar directory."/>
<antcall target="currentTime"/>
<scp todir="${loginid}@${Foo.hostname}:${Foo.resume.dir}/jar" trust="true"
         keyfile="${Foo.keyfile}" passphrase="${passphrase}">
<fileset dir="${resume.jar.dir}">
<patternset refid="ps.jar"/>
</fileset>
</scp>

<echo message="Populating javadoc directory."/>
<antcall target="currentTime"/>
<scp todir="${loginid}@${Foo.hostname}:${Foo.resume.dir}/javadoc" 
trust="true"
         keyfile="${Foo.keyfile}" passphrase="${passphrase}">
<fileset dir="${resume.javadoc.dir}"/>
</scp>

<echo message="Populating pdf directory."/>
<antcall target="currentTime"/>
<scp todir="${loginid}@${Foo.hostname}:${Foo.resume.dir}/pdf" trust="true"
         keyfile="${Foo.keyfile}" passphrase="${passphrase}">
<fileset dir="${resume.output.dir}">
<patternset refid="ps.pdf"/>
</fileset>
</scp>

<echo message="Populating sql directory."/>
<antcall target="currentTime"/>
<scp todir="${loginid}@${Foo.hostname}:${Foo.resume.dir}/sql" trust="true"
         keyfile="${Foo.keyfile}" passphrase="${passphrase}">
<fileset dir="${db2.sql.dir}">
<patternset refid="ps.sql"/>
</fileset>
</scp>

<echo message="Populating src directory."/>
<antcall target="currentTime"/>
<scp todir="${loginid}@${Foo.hostname}:${Foo.resume.dir}/src" trust="true"
         keyfile="${Foo.keyfile}" passphrase="${passphrase}">
<fileset dir="${resume.src}">
<patternset refid="ps.resume"/>
</fileset>
<fileset dir="${common.src}">
<patternset refid="ps.common"/>
</fileset>
</scp>

<echo message="Populating test directory."/>
<antcall target="currentTime"/>
<scp todir="${loginid}@${Foo.hostname}:${Foo.resume.dir}/test" trust="true"
         keyfile="${Foo.keyfile}" passphrase="${passphrase}">
<fileset dir="${test.src}">
<patternset refid="ps.test"/>
</fileset>
</scp>

<echo message="Populating word directory."/>
<antcall target="currentTime"/>
<scp todir="${loginid}@${Foo.hostname}:${Foo.resume.dir}/word" trust="true"
         keyfile="${Foo.keyfile}" passphrase="${passphrase}">
<fileset dir="${resume.word.dir}">
<patternset refid="ps.word"/>
</fileset>
</scp>

<echo message="Populating xml directory."/>
<antcall target="currentTime"/>
<scp todir="${loginid}@${Foo.hostname}:${Foo.resume.dir}/xml" trust="true"
         keyfile="${Foo.keyfile}" passphrase="${passphrase}">
<fileset dir="${resume.xml.dir}">
<patternset refid="ps.xml"/>
</fileset>
</scp>

</target>

<!--==================================================================
      Upload to the RoadRunner server.
     ==================================================================-->
<target name="upload_to_RoadRunner" description="Upload to the 
RoadRunner server.">

<antform title="Upload to RoadRunner Server">
<label>Please supply the userid and password for the RoadRunner 
server.</label>
<textProperty label="Userid: " property="userid" columns="15" 
required="true"/>
<textProperty label="Password: " property="password" columns="15" 
password="true" required="true"/>
</antform>

<echo message="Uploading to RoadRunner...."/>

<echo message="Deleting all files (but not subdirectories) *beneath* the 
resume directory."/>
<antcall target="currentTime"/>
<ftp action="del" server="${RoadRunner.hostname}" userid="${userid}" 
password="${password}"
         remotedir="${RoadRunner.resume.dir}"
         retriesallowed="${retries.allowed}"
         description="Delete all files under resume directory at any 
level.">
<fileset>
<include name="**\*"/>
</fileset>
</ftp>

<echo message="Deleting all (now empty) subdirectories *beneath* the 
resume directory."/>
<antcall target="currentTime"/>
<ftp action="rmdir" server="${RoadRunner.hostname}" userid="${userid}" 
password="${password}"
         retriesallowed="${retries.allowed}"
         remotedir="${RoadRunner.resume.dir}">
<fileset>
<include name="**\*"/>
</fileset>
</ftp>

<echo message="Re-creating all subdirectories within resume directory."/>
<antcall target="currentTime"/>
<ftp action="mkdir" server="${RoadRunner.hostname}" userid="${userid}" 
password="${password}"
         remotedir="${RoadRunner.resume.dir}/asc" 
retriesallowed="${retries.allowed}" ignoreNoncriticalErrors="true"/>
<ftp action="mkdir" server="${RoadRunner.hostname}" userid="${userid}" 
password="${password}"
         remotedir="${RoadRunner.resume.dir}/jar" 
retriesallowed="${retries.allowed}" ignoreNoncriticalErrors="true"/>
<ftp action="mkdir" server="${RoadRunner.hostname}" userid="${userid}" 
password="${password}"
         remotedir="${RoadRunner.resume.dir}/javadoc" 
retriesallowed="${retries.allowed}" ignoreNoncriticalErrors="true"/>
<ftp action="mkdir" server="${RoadRunner.hostname}" userid="${userid}" 
password="${password}"
         remotedir="${RoadRunner.resume.dir}/pdf" 
retriesallowed="${retries.allowed}" ignoreNoncriticalErrors="true"/>
<ftp action="mkdir" server="${RoadRunner.hostname}" userid="${userid}" 
password="${password}"
         remotedir="${RoadRunner.resume.dir}/sql" 
retriesallowed="${retries.allowed}" ignoreNoncriticalErrors="true"/>
<ftp action="mkdir" server="${RoadRunner.hostname}" userid="${userid}" 
password="${password}"
         remotedir="${RoadRunner.resume.dir}/src" 
retriesallowed="${retries.allowed}" ignoreNoncriticalErrors="true"/>
<ftp action="mkdir" server="${RoadRunner.hostname}" userid="${userid}" 
password="${password}"
         remotedir="${RoadRunner.resume.dir}/test" 
retriesallowed="${retries.allowed}" ignoreNoncriticalErrors="true"/>
<ftp action="mkdir" server="${RoadRunner.hostname}" userid="${userid}" 
password="${password}"
         remotedir="${RoadRunner.resume.dir}/word" 
retriesallowed="${retries.allowed}" ignoreNoncriticalErrors="true"/>
<ftp action="mkdir" server="${RoadRunner.hostname}" userid="${userid}" 
password="${password}"
         remotedir="${RoadRunner.resume.dir}/xml" 
retriesallowed="${retries.allowed}" ignoreNoncriticalErrors="true"/>

<echo message="Populating main directory."/>
<antcall target="currentTime"/>
<ftp action="send" server="${RoadRunner.hostname}" userid="${userid}" 
password="${password}"
         description="Populate main resume directory"
         remotedir="${RoadRunner.resume.dir}"
         retriesallowed="${retries.allowed}"
         separator="/" binary="yes" verbose="yes">
<fileset dir="${resume.output.dir}">
<patternset refid="ps.html"/>
</fileset>
</ftp>

<echo message="Populating asc directory."/>
<antcall target="currentTime"/>
<ftp action="send" server="${RoadRunner.hostname}" userid="${userid}" 
password="${password}"
         description="Populate main resume directory"
         remotedir="${RoadRunner.resume.dir}/asc"
         retriesallowed="${retries.allowed}"
         separator="/" binary="yes" verbose="yes">
<fileset dir="${resume.output.dir}">
<patternset refid="ps.asc"/>
</fileset>
</ftp>

<echo message="Populating jar directory."/>
<antcall target="currentTime"/>
<ftp action="send" server="${RoadRunner.hostname}" userid="${userid}" 
password="${password}"
         description="Populate jar directory"
         remotedir="${RoadRunner.resume.dir}/jar"
         retriesallowed="${retries.allowed}"
         separator="/" binary="yes" verbose="yes">
<fileset dir="${resume.jar.dir}">
<patternset refid="ps.jar"/>
</fileset>
</ftp>

<echo message="Populating javadoc directory."/>
<antcall target="currentTime"/>
<ftp action="send" server="${RoadRunner.hostname}" userid="${userid}" 
password="${password}"
         description="Populate javadoc directory"
         remotedir="${RoadRunner.resume.dir}/javadoc"
         retriesallowed="${retries.allowed}"
         separator="/" binary="no" verbose="yes">
<fileset dir="${resume.javadoc.dir}"/>
</ftp>

<echo message="Populating pdf directory."/>
<antcall target="currentTime"/>
<ftp action="send" server="${RoadRunner.hostname}" userid="${userid}" 
password="${password}"
         description="Populate pdf directory"
         remotedir="${RoadRunner.resume.dir}/pdf"
         retriesallowed="${retries.allowed}"
         separator="/" binary="yes" verbose="yes">
<fileset dir="${resume.output.dir}">
<patternset refid="ps.pdf"/>
</fileset>
</ftp>

<echo message="Populating sql directory."/>
<antcall target="currentTime"/>
<ftp action="send" server="${RoadRunner.hostname}" userid="${userid}" 
password="${password}"
         description="Populate sql directory"
         remotedir="${RoadRunner.resume.dir}/sql"
         retriesallowed="${retries.allowed}"
         separator="/" binary="yes" verbose="yes">
<fileset dir="${db2.sql.dir}">
<patternset refid="ps.sql"/>
</fileset>
</ftp>

<echo message="Populating src directory."/>
<antcall target="currentTime"/>
<ftp action="send" server="${RoadRunner.hostname}" userid="${userid}" 
password="${password}"
         description="Populate src directory"
         remotedir="${RoadRunner.resume.dir}/src"
         retriesallowed="${retries.allowed}"
         separator="/" binary="no" verbose="yes">
<fileset dir="${resume.src}">
<patternset refid="ps.resume"/>
</fileset>
<fileset dir="${common.src}">
<patternset refid="ps.common"/>
</fileset>
</ftp>

<!--
<echo message="Populating test directory."/>
<antcall target="currentTime"/>
<ftp action="send" server="${RoadRunner.hostname}" userid="${userid}" 
password="${password}"
         description="Populate test directory"
         remotedir="${RoadRunner.resume.dir}/test"
         retriesallowed="${retries.allowed}"
         separator="/" binary="no" verbose="yes">
<fileset dir="${test.src}" description="JUnit test files">
<patternset refid="ps.test"/>
</fileset>
</ftp>
         -->

<echo message="Populating word directory."/>
<antcall target="currentTime"/>
<ftp action="send" server="${RoadRunner.hostname}" userid="${userid}" 
password="${password}"
         description="Populate test directory"
         remotedir="${RoadRunner.resume.dir}/word"
         retriesallowed="${retries.allowed}"
         separator="/" binary="yes" verbose="yes">
<fileset dir="${resume.word.dir}">
<patternset refid="ps.word"/>
</fileset>
</ftp>

<echo message="Populating xml directory."/>
<antcall target="currentTime"/>
<ftp action="send" server="${RoadRunner.hostname}" userid="${userid}" 
password="${password}"
         description="Populate xml directory"
         remotedir="${RoadRunner.resume.dir}/xml"
         retriesallowed="${retries.allowed}"
         separator="/" binary="no" verbose="yes">
<fileset dir="${resume.xml.dir}">
<patternset refid="ps.xml"/>
</fileset>
</ftp>

</target>

<!--==================================================================
     Upload to the X10 server.
    ==================================================================-->
<target name="upload_to_X10" description="Upload to the X10 server.">

<antform title="Upload to X10 Server">
<label>Please supply the username and password for the X10 server.</label>
<textProperty label="userid: " property="userid" columns="15" 
required="true"/>
<textProperty label="password: " property="password" columns="15" 
password="true" required="true"/>
</antform>

<echo message="Uploading to X10...."/>

<echo message="Deleting all files (but not subdirectories) *beneath* the 
resume directory."/>
<antcall target="currentTime"/>
<ftp action="del" server="${X10.hostname}" userid="${userid}" 
password="${password}"
         remotedir="${X10.resume.dir}"
         retriesallowed="${retries.allowed}"
         description="Delete all files under resume directory at any 
level.">
<fileset>
<include name="**\*"/>
</fileset>
</ftp>

<echo message="Deleting all (now empty) subdirectories *beneath* the 
resume directory."/>
<antcall target="currentTime"/>
<ftp action="rmdir" server="${X10.hostname}" userid="${userid}" 
password="${password}"
         retriesallowed="${retries.allowed}"
         remotedir="${X10.resume.dir}">
<fileset>
<include name="**\*"/>
</fileset>
</ftp>

<echo message="Re-creating all subdirectories within resume directory."/>
<antcall target="currentTime"/>
<ftp action="mkdir" server="${X10.hostname}" userid="${userid}" 
password="${password}"
         remotedir="${X10.resume.dir}/asc" 
retriesallowed="${retries.allowed}" ignoreNoncriticalErrors="true"/>
<ftp action="mkdir" server="${X10.hostname}" userid="${userid}" 
password="${password}"
         remotedir="${X10.resume.dir}/jar" 
retriesallowed="${retries.allowed}" ignoreNoncriticalErrors="true"/>
<ftp action="mkdir" server="${X10.hostname}" userid="${userid}" 
password="${password}"
         remotedir="${X10.resume.dir}/javadoc" 
retriesallowed="${retries.allowed}" ignoreNoncriticalErrors="true"/>
<ftp action="mkdir" server="${X10.hostname}" userid="${userid}" 
password="${password}"
         remotedir="${X10.resume.dir}/pdf" 
retriesallowed="${retries.allowed}" ignoreNoncriticalErrors="true"/>
<ftp action="mkdir" server="${X10.hostname}" userid="${userid}" 
password="${password}"
         remotedir="${X10.resume.dir}/sql" 
retriesallowed="${retries.allowed}" ignoreNoncriticalErrors="true"/>
<ftp action="mkdir" server="${X10.hostname}" userid="${userid}" 
password="${password}"
         remotedir="${X10.resume.dir}/src" 
retriesallowed="${retries.allowed}" ignoreNoncriticalErrors="true"/>
<ftp action="mkdir" server="${X10.hostname}" userid="${userid}" 
password="${password}"
         remotedir="${X10.resume.dir}/test" 
retriesallowed="${retries.allowed}" ignoreNoncriticalErrors="true"/>
<ftp action="mkdir" server="${X10.hostname}" userid="${userid}" 
password="${password}"
         remotedir="${X10.resume.dir}/word" 
retriesallowed="${retries.allowed}" ignoreNoncriticalErrors="true"/>
<ftp action="mkdir" server="${X10.hostname}" userid="${userid}" 
password="${password}"
         remotedir="${X10.resume.dir}/xml" 
retriesallowed="${retries.allowed}" ignoreNoncriticalErrors="true"/>

<echo message="Populating main directory."/>
<antcall target="currentTime"/>
<ftp action="send" server="${X10.hostname}" userid="${userid}" 
password="${password}"
         description="Populate main resume directory"
         remotedir="${X10.resume.dir}"
         retriesallowed="${retries.allowed}"
         separator="/" binary="yes" verbose="yes">
<fileset dir="${resume.output.dir}">
<patternset refid="ps.html"/>
</fileset>
</ftp>

<echo message="Populating asc directory."/>
<antcall target="currentTime"/>
<ftp action="send" server="${X10.hostname}" userid="${userid}" 
password="${password}"
         description="Populate main resume directory"
         remotedir="${X10.resume.dir}/asc"
         retriesallowed="${retries.allowed}"
         separator="/" binary="yes" verbose="yes">
<fileset dir="${resume.output.dir}">
<patternset refid="ps.asc"/>
</fileset>
</ftp>

<echo message="Populating jar directory."/>
<antcall target="currentTime"/>
<ftp action="send" server="${X10.hostname}" userid="${userid}" 
password="${password}"
         description="Populate jar directory"
         remotedir="${X10.resume.dir}/jar"
         retriesallowed="${retries.allowed}"
         separator="/" binary="yes" verbose="yes">
<fileset dir="${resume.jar.dir}">
<patternset refid="ps.jar"/>
</fileset>
</ftp>

<echo message="Populating javadoc directory."/>
<antcall target="currentTime"/>
<ftp action="send" server="${X10.hostname}" userid="${userid}" 
password="${password}"
         description="Populate javadoc directory"
         remotedir="${X10.resume.dir}/javadoc"
         retriesallowed="${retries.allowed}"
         separator="/" binary="no" verbose="yes">
<fileset dir="${resume.javadoc.dir}"/>
</ftp>

<echo message="Populating pdf directory."/>
<antcall target="currentTime"/>
<ftp action="send" server="${X10.hostname}" userid="${userid}" 
password="${password}"
         description="Populate pdf directory"
         remotedir="${X10.resume.dir}/pdf"
         retriesallowed="${retries.allowed}"
         separator="/" binary="yes" verbose="yes">
<fileset dir="${resume.output.dir}">
<patternset refid="ps.pdf"/>
</fileset>
</ftp>

<echo message="Populating sql directory."/>
<antcall target="currentTime"/>
<ftp action="send" server="${X10.hostname}" userid="${userid}" 
password="${password}"
         description="Populate sql directory"
         remotedir="${X10.resume.dir}/sql"
         retriesallowed="${retries.allowed}"
         separator="/" binary="yes" verbose="yes">
<fileset dir="${db2.sql.dir}">
<patternset refid="ps.sql"/>
</fileset>
</ftp>

<echo message="Populating src directory."/>
<antcall target="currentTime"/>
<ftp action="send" server="${X10.hostname}" userid="${userid}" 
password="${password}"
         description="Populate src directory"
         remotedir="${X10.resume.dir}/src"
         retriesallowed="${retries.allowed}"
         separator="/" binary="no" verbose="yes">
<fileset dir="${resume.src}">
<patternset refid="ps.resume"/>
</fileset>
<fileset dir="${common.src}">
<patternset refid="ps.common"/>
</fileset>
</ftp>

<echo message="Populating test directory."/>
<antcall target="currentTime"/>
<ftp action="send" server="${X10.hostname}" userid="${userid}" 
password="${password}"
         description="Populate test directory"
         remotedir="${X10.resume.dir}/test"
         retriesallowed="${retries.allowed}"
         separator="/" binary="no" verbose="yes">
<fileset dir="${test.src}\${common.tests.util.pkg}" description="JUnit 
test files">
<patternset refid="ps.test.util"/>
</fileset>
<fileset dir="${test.src}\${common.tests.pkg}" description="JUnit test 
files">
<patternset refid="ps.test.common"/>
</fileset>
</ftp>

<echo message="Populating word directory."/>
<antcall target="currentTime"/>
<ftp action="send" server="${X10.hostname}" userid="${userid}" 
password="${password}"
         description="Populate test directory"
         remotedir="${X10.resume.dir}/word"
         retriesallowed="${retries.allowed}"
         separator="/" binary="no" verbose="yes">
<fileset dir="${mydocs}">
<patternset refid="ps.word"/>
</fileset>
</ftp>

<echo message="Populating xml directory."/>
<antcall target="currentTime"/>
<ftp action="send" server="${X10.hostname}" userid="${userid}" 
password="${password}"
         description="Populate xml directory"
         remotedir="${X10.resume.dir}/xml"
         retriesallowed="${retries.allowed}"
         separator="/" binary="no" verbose="yes">
<fileset dir="${resume.xml.dir}">
<patternset refid="ps.xml"/>
</fileset>
</ftp>

</target>

<!--==================================================================
    Do the complete build.
     ==================================================================-->
<target name="buildall" 
depends="datetime,verify_format,verify_switches,jar,gen_javadocs,gen_resume_files,copy_to_local,upload" 
description="Tasks that make up a complete build.">
<echo message="The build has ended successfully."/>
</target>

<!--==================================================================
    Do the 'setup' build which only initializes ResumeContants prior to 
running the program.
     ==================================================================-->
<target name="setup" 
depends="datetime,verify_format,verify_switches,Omit_Email_Address,Omit_Recent_Education,Omit_Important_Note" 
description="Tasks that make up a setup build.">
<echo message="The build has ended successfully."/>
</target>

<!--==================================================================
    Do the 'RoadRunner' build which only does the upload to the 
RoadRunner server.
     ==================================================================-->
<target name="RoadRunner" depends="upload_to_RoadRunner" 
description="Tasks that make up a RoadRunner build.">
<echo message="The build has ended successfully."/>
</target>

<!--==================================================================
    Do the 'X10' build which only does the upload to the X10 server.
     ==================================================================-->
<target name="X10" depends="upload_to_X10" description="Tasks that make 
up an X10 build.">
<echo message="The build has ended successfully."/>
</target>

<!--==================================================================
    Do the 'switches' build.
     ==================================================================-->
<target name="build_switches" depends="datetime,verify_switches,compile, 
gen_resume_files" description="Tasks that make up a build to test the 
functioning of the switches.">
<echo message="The build has ended successfully."/>
</target>


</project>
On 2011-10-29 22:11, Vimil Saju wrote:
> It would be helpful if you could attach the build file along with the mail.
>
>
> ________________________________
> From: Rhino<rh...@sympatico.ca>
> To: ant-user<us...@ant.apache.org>
> Sent: Saturday, October 29, 2011 5:47 PM
> Subject: Target Execution Sequence
>
>
> I'm having a perplexing problem and I'm hoping someone here can help me understand whatever I'm missing. I was moderately fluent with Ant at one point but I've been away from it a  while and have probably just forgotten some fundamental that I need to know.
>
> Here's the deal. I have an Ant script that is displaying an AntForm. The AntForm contains some checkboxes that are supposed to make me keep or omit three particular paragraphs in a document I am writing later in the script. Basically, I use the AntForm to set specific booleans, one for each of the three paragraphs, in a Java source file to true or false. Then, I generate the document with a program that I've written and that program either writes the specified paragraphs or omits them based on the values of the booleans. At least, that's what's SUPPOSED to happen.
>
> In reality, the booleans are being seen by the program that generates the document as true regardless of what has been done with the AntForm. Therefore, all three special paragraphs always appear in the document even when I've asked for some or all of them to be omitted.
>
> This baffles me because I actually display the contents of the Java source file to myself in the Ant script before and after the execution of the program that generates the document and the values of the three booleans and they have the correct values. For instance, I can set the three booleans to false, true and false respectively via the AntForm and that's exactly how they appear in the Java source file just before I generate the document.  (Then I reset the values to their defaults (all three true) then display them to myself and they are all true.) However, when I write the values of the booleans within the program that is generating the document, they are invariably all true, even if they have been set to different values.
>
> I don't understand why I'm getting this misbehaviour.
>
> My working theory is that Ant is NOT executing the tasks within the script in the expected order. When I add the -verbose and -debug parameters to the Ant Build, I see something that the task that displays the AntForm is done in its proper sequence, namely first within the script. However, the tasks that are to be executed to change the values of the booleans are NOT executed immediately after the AntForm is displayed but after the compile of the Java code. The script is displaying the AntForm and letting me check the checkboxes as I like, then compiling the code and ONLY THEN actually editing the source file to set some of the booleans to false. I think this explains why the switches are always seen as true by the document-generating program: the generator is simply not getting the edited version of the source file.
>
> Can anyone confirm that my theory makes sense? Or, if it doesn't, suggest a better explanation? If I'm on the right track, what is it that I'm not understanding about the execution sequences of tasks within targets? I had assumed that each task within a target would be executed before tasks in other targets were started....
>
> --
> Rhino
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: user-unsubscribe@ant.apache.org
> For additional commands, e-mail: user-help@ant.apache.org

---------------------------------------------------------------------
To unsubscribe, e-mail: user-unsubscribe@ant.apache.org
For additional commands, e-mail: user-help@ant.apache.org


Re: Target Execution Sequence

Posted by Rick Genter <ri...@gmail.com>.
Meanwhile a few things to remember:

- if you want targets to execute in a specific order, you have to set up their dependencies appropriately. Targets that are not directly dependent upon each other are not guaranteed to execute in any particular order.
- properties are immutable. Once set, you can't change them.

Good luck.

On Oct 29, 2011, at 8:54 PM, Rhino wrote:

> 
> I was afraid you were going to say that. It'll take a while to obfuscate the parts that I don't want to make public. I'll send it along tomorrow.
> 
> --
> Rhino
> 
> On 2011-10-29 22:11, Vimil Saju wrote:
>> It would be helpful if you could attach the build file along with the mail.
>> 
>> 
>> ________________________________
>> From: Rhino<rh...@sympatico.ca>
>> To: ant-user<us...@ant.apache.org>
>> Sent: Saturday, October 29, 2011 5:47 PM
>> Subject: Target Execution Sequence
>> 
>> 
>> I'm having a perplexing problem and I'm hoping someone here can help me understand whatever I'm missing. I was moderately fluent with Ant at one point but I've been away from it a  while and have probably just forgotten some fundamental that I need to know.
>> 
>> Here's the deal. I have an Ant script that is displaying an AntForm. The AntForm contains some checkboxes that are supposed to make me keep or omit three particular paragraphs in a document I am writing later in the script. Basically, I use the AntForm to set specific booleans, one for each of the three paragraphs, in a Java source file to true or false. Then, I generate the document with a program that I've written and that program either writes the specified paragraphs or omits them based on the values of the booleans. At least, that's what's SUPPOSED to happen.
>> 
>> In reality, the booleans are being seen by the program that generates the document as true regardless of what has been done with the AntForm. Therefore, all three special paragraphs always appear in the document even when I've asked for some or all of them to be omitted.
>> 
>> This baffles me because I actually display the contents of the Java source file to myself in the Ant script before and after the execution of the program that generates the document and the values of the three booleans and they have the correct values. For instance, I can set the three booleans to false, true and false respectively via the AntForm and that's exactly how they appear in the Java source file just before I generate the document.  (Then I reset the values to their defaults (all three true) then display them to myself and they are all true.) However, when I write the values of the booleans within the program that is generating the document, they are invariably all true, even if they have been set to different values.
>> 
>> I don't understand why I'm getting this misbehaviour.
>> 
>> My working theory is that Ant is NOT executing the tasks within the script in the expected order. When I add the -verbose and -debug parameters to the Ant Build, I see something that the task that displays the AntForm is done in its proper sequence, namely first within the script. However, the tasks that are to be executed to change the values of the booleans are NOT executed immediately after the AntForm is displayed but after the compile of the Java code. The script is displaying the AntForm and letting me check the checkboxes as I like, then compiling the code and ONLY THEN actually editing the source file to set some of the booleans to false. I think this explains why the switches are always seen as true by the document-generating program: the generator is simply not getting the edited version of the source file.
>> 
>> Can anyone confirm that my theory makes sense? Or, if it doesn't, suggest a better explanation? If I'm on the right track, what is it that I'm not understanding about the execution sequences of tasks within targets? I had assumed that each task within a target would be executed before tasks in other targets were started....
>> 
>> --
>> Rhino
>> 
>> ---------------------------------------------------------------------
>> To unsubscribe, e-mail: user-unsubscribe@ant.apache.org
>> For additional commands, e-mail: user-help@ant.apache.org
> 
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: user-unsubscribe@ant.apache.org
> For additional commands, e-mail: user-help@ant.apache.org
> 

--
Rick Genter
rick.genter@gmail.com


---------------------------------------------------------------------
To unsubscribe, e-mail: user-unsubscribe@ant.apache.org
For additional commands, e-mail: user-help@ant.apache.org


Re: Target Execution Sequence

Posted by Rhino <rh...@sympatico.ca>.
  I was afraid you were going to say that. It'll take a while to 
obfuscate the parts that I don't want to make public. I'll send it along 
tomorrow.

--
Rhino

On 2011-10-29 22:11, Vimil Saju wrote:
> It would be helpful if you could attach the build file along with the mail.
>
>
> ________________________________
> From: Rhino<rh...@sympatico.ca>
> To: ant-user<us...@ant.apache.org>
> Sent: Saturday, October 29, 2011 5:47 PM
> Subject: Target Execution Sequence
>
>
> I'm having a perplexing problem and I'm hoping someone here can help me understand whatever I'm missing. I was moderately fluent with Ant at one point but I've been away from it a  while and have probably just forgotten some fundamental that I need to know.
>
> Here's the deal. I have an Ant script that is displaying an AntForm. The AntForm contains some checkboxes that are supposed to make me keep or omit three particular paragraphs in a document I am writing later in the script. Basically, I use the AntForm to set specific booleans, one for each of the three paragraphs, in a Java source file to true or false. Then, I generate the document with a program that I've written and that program either writes the specified paragraphs or omits them based on the values of the booleans. At least, that's what's SUPPOSED to happen.
>
> In reality, the booleans are being seen by the program that generates the document as true regardless of what has been done with the AntForm. Therefore, all three special paragraphs always appear in the document even when I've asked for some or all of them to be omitted.
>
> This baffles me because I actually display the contents of the Java source file to myself in the Ant script before and after the execution of the program that generates the document and the values of the three booleans and they have the correct values. For instance, I can set the three booleans to false, true and false respectively via the AntForm and that's exactly how they appear in the Java source file just before I generate the document.  (Then I reset the values to their defaults (all three true) then display them to myself and they are all true.) However, when I write the values of the booleans within the program that is generating the document, they are invariably all true, even if they have been set to different values.
>
> I don't understand why I'm getting this misbehaviour.
>
> My working theory is that Ant is NOT executing the tasks within the script in the expected order. When I add the -verbose and -debug parameters to the Ant Build, I see something that the task that displays the AntForm is done in its proper sequence, namely first within the script. However, the tasks that are to be executed to change the values of the booleans are NOT executed immediately after the AntForm is displayed but after the compile of the Java code. The script is displaying the AntForm and letting me check the checkboxes as I like, then compiling the code and ONLY THEN actually editing the source file to set some of the booleans to false. I think this explains why the switches are always seen as true by the document-generating program: the generator is simply not getting the edited version of the source file.
>
> Can anyone confirm that my theory makes sense? Or, if it doesn't, suggest a better explanation? If I'm on the right track, what is it that I'm not understanding about the execution sequences of tasks within targets? I had assumed that each task within a target would be executed before tasks in other targets were started....
>
> --
> Rhino
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: user-unsubscribe@ant.apache.org
> For additional commands, e-mail: user-help@ant.apache.org

---------------------------------------------------------------------
To unsubscribe, e-mail: user-unsubscribe@ant.apache.org
For additional commands, e-mail: user-help@ant.apache.org


Re: Target Execution Sequence

Posted by Vimil Saju <vi...@yahoo.com>.
It would be helpful if you could attach the build file along with the mail.


________________________________
From: Rhino <rh...@sympatico.ca>
To: ant-user <us...@ant.apache.org>
Sent: Saturday, October 29, 2011 5:47 PM
Subject: Target Execution Sequence


I'm having a perplexing problem and I'm hoping someone here can help me understand whatever I'm missing. I was moderately fluent with Ant at one point but I've been away from it a  while and have probably just forgotten some fundamental that I need to know.

Here's the deal. I have an Ant script that is displaying an AntForm. The AntForm contains some checkboxes that are supposed to make me keep or omit three particular paragraphs in a document I am writing later in the script. Basically, I use the AntForm to set specific booleans, one for each of the three paragraphs, in a Java source file to true or false. Then, I generate the document with a program that I've written and that program either writes the specified paragraphs or omits them based on the values of the booleans. At least, that's what's SUPPOSED to happen.

In reality, the booleans are being seen by the program that generates the document as true regardless of what has been done with the AntForm. Therefore, all three special paragraphs always appear in the document even when I've asked for some or all of them to be omitted.

This baffles me because I actually display the contents of the Java source file to myself in the Ant script before and after the execution of the program that generates the document and the values of the three booleans and they have the correct values. For instance, I can set the three booleans to false, true and false respectively via the AntForm and that's exactly how they appear in the Java source file just before I generate the document.  (Then I reset the values to their defaults (all three true) then display them to myself and they are all true.) However, when I write the values of the booleans within the program that is generating the document, they are invariably all true, even if they have been set to different values.

I don't understand why I'm getting this misbehaviour.

My working theory is that Ant is NOT executing the tasks within the script in the expected order. When I add the -verbose and -debug parameters to the Ant Build, I see something that the task that displays the AntForm is done in its proper sequence, namely first within the script. However, the tasks that are to be executed to change the values of the booleans are NOT executed immediately after the AntForm is displayed but after the compile of the Java code. The script is displaying the AntForm and letting me check the checkboxes as I like, then compiling the code and ONLY THEN actually editing the source file to set some of the booleans to false. I think this explains why the switches are always seen as true by the document-generating program: the generator is simply not getting the edited version of the source file.

Can anyone confirm that my theory makes sense? Or, if it doesn't, suggest a better explanation? If I'm on the right track, what is it that I'm not understanding about the execution sequences of tasks within targets? I had assumed that each task within a target would be executed before tasks in other targets were started....

--
Rhino

---------------------------------------------------------------------
To unsubscribe, e-mail: user-unsubscribe@ant.apache.org
For additional commands, e-mail: user-help@ant.apache.org