You should be able to use the date pattern "MM/dd/yyyy
hh:mm a" to add the AM/PM to your date. That's wild
that the date selector doesn't use seconds. Two
possibilities come to mind:
-sleep for a minute after generating the timestamp. :(
-use ant-contrib's <outofdate> task to set a
comma-delimited list of out-of-date target files into
a property, to be used as the includes attribute of a
<fileset>.
In Ant, two things that would also make sense:
-Add a format attribute to the date selector,
defaulting to the current one.
-Add a millis attribute to <tstamp>, incompatible with
its pattern attribute.
-Matt
--- David Kavanagh <[EMAIL PROTECTED]> wrote:
> It's Alive! Now, I just need some help working out
> the file selection
> part. (which is using existing Ant constructs).
> Here is a sample of my build file.
>
> <target name="hotswap" depends="init"
> description="Compile and Hotswap
> changed classes">
> <taskdef name="hotswap"
> classname="org.apache.tools.ant.taskdefs.Hotswap"/>
> <mkdir dir="${build.classes.dir}"/>
> <tstamp>
> <format property="class.stamp"
> pattern="MM/dd/yyyy hh:mm" />
> </tstamp>
> <echo message="timestamp = ${class.stamp}"/>
> <javac .../>
> <hotswap verbose="true" hotswap="true"
> hsaddress="9000">
> <fileset dir="${build.classes.dir}"
> includes="**/*.class">
> <date datetime="${class.stamp} AM"
> when="after"/>
> </fileset>
> </hotswap>
> </target>
>
> This is an example of the timestamp that is
> returned. Is there a way to
> get this to use seconds as well? The granularity
> doesn't seem good
> enough for my purpose.
> [echo] timestamp = 04/02/2004 11:07
>
> In the <date>, it requires the AM or PM part, which
> I'm just putting in
> by hand (which isn't good either). Is there a better
> way to select files
> that have changed in the classes dir since the javac
> has run?
>
> Once I get this worked out, I'll clean up the task a
> little and make it
> available for everyone to try. (and provide some
> docs as well!)
>
> Thanks,
> David
>
> PS. I tested this by coding a specific class
> filename, since the date
> thing isn't working yet.
>
> Thus Spoke Matt Benson:
>
>
>http://ant.apache.org/manual/CoreTypes/selectors.html#dateselect
> >
> >You would have to use a nested <format> element in
> >your <tstamp> to create the date in the right
> format
> >for the date selector, but aside from that I can't
> see
> >any problems...
> >
> >-Matt
> >
> >--- [EMAIL PROTECTED] wrote:
> >
> >
> >>This sounds good to me! The less grunt work I have
> >>to do in my task, the better!
> >>I grabbed teh 1.6.1 source release and built it.
> If
> >>you could point me to the
> >><date> file selector you mention, it would help me
> a
> >>lot. I just poked around
> >>and it didn't jump out at me. I would like it if
> my
> >>task could just deal with a
> >>list of class files provided via some built-in
> >>filtering means.
> >>
> >>Thanks,
> >>David
> >>
> >>Quoting Matt Benson <[EMAIL PROTECTED]>:
> >>
> >>
> >>
> >>>Basically you should make any task as atomic as
> >>>possible. So all your task would need to know
> >>>
> >>>
> >>about
> >>
> >>
> >>>is a <fileset>. Then it becomes the user's
> >>>
> >>>
> >>problem
> >>
> >>
> >>>how to select which files to include. One way
> >>>
> >>>
> >>might
> >>
> >>
> >>>be to use a <tstamp>
> >>>to set a baseline time, then compile, then use a
> >>><date> file selector to get the updated classes.
> >>>Another way might use ant-contrib's <outofdate>
> to
> >>>determine which sources should be recompiled.
> You
> >>>could then compile only those sources to some
> >>>temporary build area, then hotswap only those
> >>>
> >>>
> >>classes.
> >>
> >>
> >>> The point is that others have designed ways in
> >>>
> >>>
> >>which
> >>
> >>
> >>>the files can be selected, so you gain maximum
> >>>flexibility (and minimum RESPONSIBILITY) the less
> >>>
> >>>
> >>your
> >>
> >>
> >>>Task is expected to do.
> >>>
> >>>-Matt
> >>>
> >>>--- [EMAIL PROTECTED] wrote:
> >>>
> >>>
> >>>>When I was toying with a separate task, I
> >>>>
> >>>>
> >>wondered
> >>
> >>
> >>>>if <uptodate> could be use
> >>>>somehow to create a <fileset>. I don't see now,
> >>>>
> >>>>
> >>but
> >>
> >>
> >>>>that would sure be a nice
> >>>>feature. Then, if I could assign an ID so I
> >>>>
> >>>>
> >>could
> >>
> >>
> >>>>make a <fileset> of files
> >>>>that aren't uptodate, run the compile, then take
> >>>>that same <fileset> as input
> >>>>to the <hotswap> target.
> >>>>The idea of a timestamp file could work. The
> >>>>sequence might be something like.
> >>>><touch file="timestamp"/>
> >>>><javac .../>
> >>>><hotswap classesdir="foo" host="localhost"
> >>>>port="9000" timefile="timestamp">
> >>>> <patternset>
> >>>> ... some pattern to apply to the classes
> >>>>
> >>>>
> >>dir
> >>
> >>
> >>>>...
> >>>> </patternset>
> >>>></hotswap>
> >>>>
> >>>>That way, the hotswap task would check the files
> >>>>
> >>>>
> >>in
> >>
> >>
> >>>>the classes dir based on the
> >>>>patternset and/or the timestamp.
> >>>>
> >>>>Seriously, I'm open to feedback. I might as well
> >>>>
> >>>>
> >>do
> >>
> >>
> >>>>it right the first time!
> >>>>
>
=== message truncated ===
__________________________________
Do you Yahoo!?
Yahoo! Small Business $15K Web Design Giveaway
http://promotions.yahoo.com/design_giveaway/
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]