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]