I added a "pattern" attribute that will allow for any SimpleDateFormat pattern string to be specified, then the "start" and "end" attributes will be parsed using the pattern.
Works pretty well, and I left some conditional logic in place so that if "pattern" isn't specified, the it has the old behavior.
I asked for some feedback on ant-dev, haven't heard anything from anyone :^(
I'll be happy to send you what I have, if you're interested.
Ken
At 18:08 2003-02-09, Felipe Martin Anaya wrote:
At 06/02/2003 20:04 -0500, you wrote:I have already done it :-)Thanks, I'll give that a shot. Seems like a waste, though, doesn't it?If I *ever* get to slow down a little, I'll look into the CVS source...
In cvschangelog task the 'start' parameter use date format yyyy-MM-dd, not timestamp.
Maybe this message should be sent to ant-dev list...
Felipe
Ken At 19:06 2003-02-06, you wrote:At 06/02/2003 12:21 -0500, you wrote:The following ant script won't quite work for me, and I'm sure it is a stupid user trick, but I just can't see what I'm doing wrong. It appears that the date in the "start" attribute is unparseable for some reason, but is sure looks ok to me, is parseable by CVS itself.I'have the same problem.
I think something is wrong in source code. See CVS reporitory of ant proyect.
The workaround is generate all changelog and filter with xsl.
<cvschangelog dir="${DESTINO}/PRUEBAS"
destfile="${DESTINO}/changelog0.xml"/>
<style in="${DESTINO}/changelog0.xml" out="/opt/Serrablo/serrablo/miprueba.html"
style="changelog.xsl">
<param name="StartDay" expression="2003-01-25"/>
<param name="StartHour" expression="23:10"/>
</style>
<style in="${DESTINO}/changelog0.xml" out="/opt/Serrablo/serrablo/prueba.html"
style="${ant.home}/../etc/changelog.xsl">
<param name="title" expression="Ant ChangeLog de Revista Serrablo"/>
<param name="module" expression="PRUEBAS"/>
<param name="cvsweb" expression="http://serrablo.org/cgi-bin/viewcvs.cgi/"/>
</style>
BTW, I started with that value as a property read from a file via "property file=<file>", and thought the "\:" inserted by "<propertyfile>" was the problem, but it doesn't appear to be.
What am I trying to accomplish? Generate the CvsChangeLog for all changes since the last release build. Any other suggestions on how to accomplish this short of CruiseControl or Maven would be welcome!
Ken
------------------------------cvs-log.xml---------------------------------------
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<project name="CostEstimationWorkbench" default="generate-change-log" basedir=".">
<target name="generate-change-log" >
<cvschangelog destfile="changelog.xml" start="2003-02-05 14:00" />
<style in="changelog.xml"
out="changelog.html"
style="${ant.home}/etc/changelog.xsl">
<param name="title" expression="${ant.project.name} ChangeLog"/>
<param name="module" expression="${ant.project.name}"/>
<param name="cvsweb" expression="http://devweb/cgi-bin/cvsweb.cgi/${ant.project.name}" />
</style>
</target>
</project>
----------------------Output from 'ant -debug -f cvs-log.xml' -----------------
kgentle@KSDEV14 $ ant -debug -f cvs-log.xml
Apache Ant version 1.5.1 compiled on October 2 2002
Buildfile: cvs-log.xml
Detected Java version: 1.4 in: C:\cygwin\usr\java\J2SDK1~1.1_0\jre
Detected OS: Windows 2000
+User task: propertyfile org.apache.tools.ant.taskdefs.optional.PropertyFile
+User task: vsscheckin org.apache.tools.ant.taskdefs.optional.vss.MSVSSCHECKIN
+User task: sql org.apache.tools.ant.taskdefs.SQLExec
+User task: cvspass org.apache.tools.ant.taskdefs.CVSPass
+User task: p4reopen org.apache.tools.ant.taskdefs.optional.perforce.P4Reopen
+User task: csc org.apache.tools.ant.taskdefs.optional.dotnet.CSharp
+User task: dirname org.apache.tools.ant.taskdefs.Dirname
+User task: wlrun org.apache.tools.ant.taskdefs.optional.ejb.WLRun
+User task: p4label org.apache.tools.ant.taskdefs.optional.perforce.P4Label
+User task: p4revert org.apache.tools.ant.taskdefs.optional.perforce.P4Revert
+User task: replaceregexp org.apache.tools.ant.taskdefs.optional.ReplaceRegExp
+User task: get org.apache.tools.ant.taskdefs.Get
+User task: jjtree org.apache.tools.ant.taskdefs.optional.javacc.JJTree
+User task: sleep org.apache.tools.ant.taskdefs.Sleep
+User task: jarlib-display org.apache.tools.ant.taskdefs.optional.extension.JarLibDisplayTask
+User task: dependset org.apache.tools.ant.taskdefs.DependSet
+User task: zip org.apache.tools.ant.taskdefs.Zip
+User task: patch org.apache.tools.ant.taskdefs.Patch
+User task: jspc org.apache.tools.ant.taskdefs.optional.jsp.JspC
+User task: style org.apache.tools.ant.taskdefs.XSLTProcess
+User task: test org.apache.tools.ant.taskdefs.optional.Test
+User task: tstamp org.apache.tools.ant.taskdefs.Tstamp
+User task: unwar org.apache.tools.ant.taskdefs.Expand
+User task: vsshistory org.apache.tools.ant.taskdefs.optional.vss.MSVSSHISTORY
+User task: icontract org.apache.tools.ant.taskdefs.optional.IContract
+User task: cvschangelog org.apache.tools.ant.taskdefs.cvslib.ChangeLogTask
+User task: p4submit org.apache.tools.ant.taskdefs.optional.perforce.P4Submit
+User task: ccmcheckin org.apache.tools.ant.taskdefs.optional.ccm.CCMCheckin
+User task: p4change org.apache.tools.ant.taskdefs.optional.perforce.P4Change
+User task: bzip2 org.apache.tools.ant.taskdefs.BZip2
+User task: p4delete org.apache.tools.ant.taskdefs.optional.perforce.P4Delete
+User task: vssadd org.apache.tools.ant.taskdefs.optional.vss.MSVSSADD
+User task: javadoc org.apache.tools.ant.taskdefs.Javadoc
+User task: translate org.apache.tools.ant.taskdefs.optional.i18n.Translate
+User task: signjar org.apache.tools.ant.taskdefs.SignJar
+User task: vajload org.apache.tools.ant.taskdefs.optional.ide.VAJLoadProjects
+User task: jarlib-available org.apache.tools.ant.taskdefs.optional.extension.JarLibAvailableTask
+User task: WsdlToDotnet org.apache.tools.ant.taskdefs.optional.dotnet.WsdlToDotnet
+User task: buildnumber org.apache.tools.ant.taskdefs.BuildNumber
+User task: jpcovmerge org.apache.tools.ant.taskdefs.optional.sitraka.CovMerge
+User task: ejbjar org.apache.tools.ant.taskdefs.optional.ejb.EjbJar
+User task: war org.apache.tools.ant.taskdefs.War
Could not load a dependent class (com/starbase/starteam/Item) for task stlist
+User task: rename org.apache.tools.ant.taskdefs.Rename
+User task: sequential org.apache.tools.ant.taskdefs.Sequential
+User task: serverdeploy org.apache.tools.ant.taskdefs.optional.j2ee.ServerDeploy
+User task: property org.apache.tools.ant.taskdefs.Property
+User task: move org.apache.tools.ant.taskdefs.Move
+User task: copydir org.apache.tools.ant.taskdefs.Copydir
+User task: cccheckin org.apache.tools.ant.taskdefs.optional.clearcase.CCCheckin
+User task: wljspc org.apache.tools.ant.taskdefs.optional.jsp.WLJspc
+User task: fixcrlf org.apache.tools.ant.taskdefs.FixCRLF
+User task: telnet org.apache.tools.ant.taskdefs.optional.net.TelnetTask
+User task: sosget org.apache.tools.ant.taskdefs.optional.sos.SOSGet
+User task: pathconvert org.apache.tools.ant.taskdefs.PathConvert
+User task: record org.apache.tools.ant.taskdefs.Recorder
+User task: p4sync org.apache.tools.ant.taskdefs.optional.perforce.P4Sync
+User task: exec org.apache.tools.ant.taskdefs.ExecTask
+User task: p4edit org.apache.tools.ant.taskdefs.optional.perforce.P4Edit
+User task: manifest org.apache.tools.ant.taskdefs.ManifestTask
+User task: maudit org.apache.tools.ant.taskdefs.optional.metamata.MAudit
+User task: antlr org.apache.tools.ant.taskdefs.optional.ANTLR
+User task: netrexxc org.apache.tools.ant.taskdefs.optional.NetRexxC
+User task: ftp org.apache.tools.ant.taskdefs.optional.net.FTP
+User task: jpcovreport org.apache.tools.ant.taskdefs.optional.sitraka.CovReport
+User task: execon org.apache.tools.ant.taskdefs.ExecuteOn
+User task: ccmcheckout org.apache.tools.ant.taskdefs.optional.ccm.CCMCheckout
+User task: ant org.apache.tools.ant.taskdefs.Ant
+User task: xmlvalidate org.apache.tools.ant.taskdefs.optional.XMLValidateTask
+User task: xslt org.apache.tools.ant.taskdefs.XSLTProcess
+User task: iplanet-ejbc org.apache.tools.ant.taskdefs.optional.ejb.IPlanetEjbcTask
+User task: ccmcheckintask org.apache.tools.ant.taskdefs.optional.ccm.CCMCheckinDefault
+User task: gzip org.apache.tools.ant.taskdefs.GZip
+User task: native2ascii org.apache.tools.ant.taskdefs.optional.Native2Ascii
+User task: starteam org.apache.tools.ant.taskdefs.optional.scm.AntStarTeamCheckOut
+User task: ear org.apache.tools.ant.taskdefs.Ear
+User task: input org.apache.tools.ant.taskdefs.Input
+User task: rmic org.apache.tools.ant.taskdefs.Rmic
+User task: checksum org.apache.tools.ant.taskdefs.Checksum
+User task: mail org.apache.tools.ant.taskdefs.email.EmailTask
+User task: loadfile org.apache.tools.ant.taskdefs.LoadFile
+User task: vsscheckout org.apache.tools.ant.taskdefs.optional.vss.MSVSSCHECKOUT
+User task: stylebook org.apache.tools.ant.taskdefs.optional.StyleBook
+User task: soscheckin org.apache.tools.ant.taskdefs.optional.sos.SOSCheckin
+User task: mimemail org.apache.tools.ant.taskdefs.optional.net.MimeMail
+User task: stlabel org.apache.tools.ant.taskdefs.optional.starteam.StarTeamLabel
+User task: gunzip org.apache.tools.ant.taskdefs.GUnzip
+User task: concat org.apache.tools.ant.taskdefs.Concat
+User task: cab org.apache.tools.ant.taskdefs.optional.Cab
+User task: touch org.apache.tools.ant.taskdefs.Touch
+User task: parallel org.apache.tools.ant.taskdefs.Parallel
+User task: splash org.apache.tools.ant.taskdefs.optional.splash.SplashTask
+User task: antcall org.apache.tools.ant.taskdefs.CallTarget
+User task: cccheckout org.apache.tools.ant.taskdefs.optional.clearcase.CCCheckout
+User task: typedef org.apache.tools.ant.taskdefs.Typedef
+User task: p4have org.apache.tools.ant.taskdefs.optional.perforce.P4Have
+User task: filter org.apache.tools.ant.taskdefs.Filter
+User task: xmlproperty org.apache.tools.ant.taskdefs.XmlProperty
Could not load a dependent class (jdepend/xmlui/JDepend) for task jdepend
+User task: copy org.apache.tools.ant.taskdefs.Copy
+User task: antstructure org.apache.tools.ant.taskdefs.AntStructure
Could not load a dependent class (com/ibm/bsf/BSFException) for task script
+User task: ccmcreatetask org.apache.tools.ant.taskdefs.optional.ccm.CCMCreateTask
+User task: rpm org.apache.tools.ant.taskdefs.optional.Rpm
+User task: delete org.apache.tools.ant.taskdefs.Delete
+User task: replace org.apache.tools.ant.taskdefs.Replace
+User task: mmetrics org.apache.tools.ant.taskdefs.optional.metamata.MMetrics
+User task: waitfor org.apache.tools.ant.taskdefs.WaitFor
+User task: untar org.apache.tools.ant.taskdefs.Untar
+User task: loadproperties org.apache.tools.ant.taskdefs.LoadProperties
+User task: available org.apache.tools.ant.taskdefs.Available
+User task: echoproperties org.apache.tools.ant.taskdefs.optional.EchoProperties
+User task: junit org.apache.tools.ant.taskdefs.optional.junit.JUnitTask
Could not load a dependent class (com/starbase/starteam/Folder) for task stcheckin
+User task: vajexport org.apache.tools.ant.taskdefs.optional.ide.VAJExport
+User task: stcheckout org.apache.tools.ant.taskdefs.optional.starteam.StarTeamCheckout
+User task: bunzip2 org.apache.tools.ant.taskdefs.BUnzip2
+User task: copyfile org.apache.tools.ant.taskdefs.Copyfile
+User task: vsscreate org.apache.tools.ant.taskdefs.optional.vss.MSVSSCREATE
+User task: ejbc org.apache.tools.ant.taskdefs.optional.ejb.Ejbc
+User task: unjar org.apache.tools.ant.taskdefs.Expand
+User task: wsdltodotnet org.apache.tools.ant.taskdefs.optional.dotnet.WsdlToDotnet
+User task: mkdir org.apache.tools.ant.taskdefs.Mkdir
+User task: condition org.apache.tools.ant.taskdefs.ConditionTask
+User task: cvs org.apache.tools.ant.taskdefs.Cvs
+User task: tempfile org.apache.tools.ant.taskdefs.TempFile
+User task: junitreport org.apache.tools.ant.taskdefs.optional.junit.XMLResultAggregator
+User task: taskdef org.apache.tools.ant.taskdefs.Taskdef
+User task: echo org.apache.tools.ant.taskdefs.Echo
+User task: ccupdate org.apache.tools.ant.taskdefs.optional.clearcase.CCUpdate
+User task: java org.apache.tools.ant.taskdefs.Java
+User task: renameext org.apache.tools.ant.taskdefs.optional.RenameExtensions
+User task: vsslabel org.apache.tools.ant.taskdefs.optional.vss.MSVSSLABEL
+User task: basename org.apache.tools.ant.taskdefs.Basename
+User task: javadoc2 org.apache.tools.ant.taskdefs.Javadoc
+User task: vsscp org.apache.tools.ant.taskdefs.optional.vss.MSVSSCP
+User task: tar org.apache.tools.ant.taskdefs.Tar
+User task: vajimport org.apache.tools.ant.taskdefs.optional.ide.VAJImport
+User task: setproxy org.apache.tools.ant.taskdefs.optional.net.SetProxy
+User task: wlstop org.apache.tools.ant.taskdefs.optional.ejb.WLStop
+User task: p4counter org.apache.tools.ant.taskdefs.optional.perforce.P4Counter
+User task: ilasm org.apache.tools.ant.taskdefs.optional.dotnet.Ilasm
+User task: soscheckout org.apache.tools.ant.taskdefs.optional.sos.SOSCheckout
+User task: apply org.apache.tools.ant.taskdefs.Transform
+User task: ccuncheckout org.apache.tools.ant.taskdefs.optional.clearcase.CCUnCheckout
+User task: jarlib-resolve org.apache.tools.ant.taskdefs.optional.extension.JarLibResolveTask
+User task: jlink org.apache.tools.ant.taskdefs.optional.jlink.JlinkTask
+User task: cvstagdiff org.apache.tools.ant.taskdefs.cvslib.CvsTagDiff
+User task: javacc org.apache.tools.ant.taskdefs.optional.javacc.JavaCC
+User task: chmod org.apache.tools.ant.taskdefs.Chmod
+User task: pvcs org.apache.tools.ant.taskdefs.optional.pvcs.Pvcs
+User task: jarlib-manifest org.apache.tools.ant.taskdefs.optional.extension.JarLibManifestTask
+User task: jar org.apache.tools.ant.taskdefs.Jar
+User task: sound org.apache.tools.ant.taskdefs.optional.sound.SoundTask
+User task: mparse org.apache.tools.ant.taskdefs.optional.metamata.MParse
+User task: blgenclient org.apache.tools.ant.taskdefs.optional.ejb.BorlandGenerateClient
+User task: uptodate org.apache.tools.ant.taskdefs.UpToDate
+User task: genkey org.apache.tools.ant.taskdefs.GenerateKey
+User task: javah org.apache.tools.ant.taskdefs.optional.Javah
+User task: ccmreconfigure org.apache.tools.ant.taskdefs.optional.ccm.CCMReconfigure
+User task: fail org.apache.tools.ant.taskdefs.Exit
+User task: unzip org.apache.tools.ant.taskdefs.Expand
+User task: javac org.apache.tools.ant.taskdefs.Javac
+User task: p4add org.apache.tools.ant.taskdefs.optional.perforce.P4Add
+User task: jpcoverage org.apache.tools.ant.taskdefs.optional.sitraka.Coverage
+User task: soslabel org.apache.tools.ant.taskdefs.optional.sos.SOSLabel
+User task: depend org.apache.tools.ant.taskdefs.optional.depend.Depend
+User task: vssget org.apache.tools.ant.taskdefs.optional.vss.MSVSSGET
+User task: deltree org.apache.tools.ant.taskdefs.Deltree
+User task: ddcreator org.apache.tools.ant.taskdefs.optional.ejb.DDCreator
+User datatype: patternset org.apache.tools.ant.types.PatternSet
+User datatype: filterset org.apache.tools.ant.types.FilterSet
+User datatype: libfileset org.apache.tools.ant.taskdefs.optional.extension.LibFileSet
+User datatype: filterreader org.apache.tools.ant.types.AntFilterReader
+User datatype: extension org.apache.tools.ant.taskdefs.optional.extension.ExtensionAdapter
+User datatype: fileset org.apache.tools.ant.types.FileSet
+User datatype: dirset org.apache.tools.ant.types.DirSet
+User datatype: filelist org.apache.tools.ant.types.FileList
+User datatype: filterchain org.apache.tools.ant.types.FilterChain
+User datatype: path org.apache.tools.ant.types.Path
+User datatype: classfileset org.apache.tools.ant.types.optional.depend.ClassfileSet
+User datatype: description org.apache.tools.ant.types.Description
+User datatype: xmlcatalog org.apache.tools.ant.types.XMLCatalog
+User datatype: selector org.apache.tools.ant.types.selectors.SelectSelector
+User datatype: mapper org.apache.tools.ant.types.Mapper
+User datatype: substitution org.apache.tools.ant.types.Substitution
+User datatype: extensionSet org.apache.tools.ant.taskdefs.optional.extension.ExtensionSet
+User datatype: regexp org.apache.tools.ant.types.RegularExpression
Setting ro project property: ant.version -> Apache Ant version 1.5.1 compiled on
October 2 2002
Setting ro project property: ant.file -> C:\cygwin\usr\local\eclipse\workspace\C
ostEstimationWorkbench\cvs-log.xml
parsing buildfile cvs-log.xml with URI = file:C:/cygwin/usr/local/eclipse/workspace/CostEstimationWorkbench/cvs-log.xml
Setting ro project property: ant.project.name -> CostEstimationWorkbench
Adding reference: CostEstimationWorkbench -> org.apache.tools.ant.Project@3820e
Project base dir set to: C:\cygwin\usr\local\eclipse\workspace\CostEstimationWorkbench
+Target: generate-change-log
+Task: cvschangelog
+Task: style
Build sequence for target `generate-change-log' is [generate-change-log]
Complete build sequence is [generate-change-log]
generate-change-log:
BUILD FAILED
file:C:/cygwin/usr/local/eclipse/workspace/CostEstimationWorkbench/cvs-log.xml:4: java.lang.IllegalArgumentException
at org.apache.tools.ant.IntrospectionHelper.setAttribute(IntrospectionHelper.java:435)
at org.apache.tools.ant.ProjectHelper.configure(ProjectHelper.java:306)
at org.apache.tools.ant.RuntimeConfigurable.maybeConfigure(RuntimeConfigurable.java:242)
at org.apache.tools.ant.RuntimeConfigurable.maybeConfigure(RuntimeConfigurable.java:211)
at org.apache.tools.ant.Task.maybeConfigure(Task.java:259)
at org.apache.tools.ant.Task.perform(Task.java:318)
at org.apache.tools.ant.Target.execute(Target.java:309)
at org.apache.tools.ant.Target.performTasks(Target.java:336)
at org.apache.tools.ant.Project.executeTarget(Project.java:1306)
at org.apache.tools.ant.Project.executeTargets(Project.java:1250)
at org.apache.tools.ant.Main.runBuild(Main.java:610)
at org.apache.tools.ant.Main.start(Main.java:196)
at org.apache.tools.ant.Main.main(Main.java:235)
Caused by: java.lang.IllegalArgumentException
at java.util.Date.parse(Date.java:582)
at java.util.Date.<init>(Date.java:264)
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:39)
at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:27)
at java.lang.reflect.Constructor.newInstance(Constructor.java:274)
at org.apache.tools.ant.IntrospectionHelper$12.set(IntrospectionHelper.java:796)
at org.apache.tools.ant.IntrospectionHelper.setAttribute(IntrospectionHelper.java:426)
... 12 more
--- Nested Exception ---
java.lang.IllegalArgumentException
at java.util.Date.parse(Date.java:582)
at java.util.Date.<init>(Date.java:264)
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:39)
at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:27)
at java.lang.reflect.Constructor.newInstance(Constructor.java:274)
at org.apache.tools.ant.IntrospectionHelper$12.set(IntrospectionHelper.java:796)
at org.apache.tools.ant.IntrospectionHelper.setAttribute(IntrospectionHelper.java:426)
at org.apache.tools.ant.ProjectHelper.configure(ProjectHelper.java:306)
at org.apache.tools.ant.RuntimeConfigurable.maybeConfigure(RuntimeConfigurable.java:242)
at org.apache.tools.ant.RuntimeConfigurable.maybeConfigure(RuntimeConfigurable.java:211)
at org.apache.tools.ant.Task.maybeConfigure(Task.java:259)
at org.apache.tools.ant.Task.perform(Task.java:318)
at org.apache.tools.ant.Target.execute(Target.java:309)
at org.apache.tools.ant.Target.performTasks(Target.java:336)
at org.apache.tools.ant.Project.executeTarget(Project.java:1306)
at org.apache.tools.ant.Project.executeTargets(Project.java:1250)
at org.apache.tools.ant.Main.runBuild(Main.java:610)
at org.apache.tools.ant.Main.start(Main.java:196)
at org.apache.tools.ant.Main.main(Main.java:235)
Total time: 2 seconds
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]
--------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]============================================================= J. Kenneth Gentle (Ken) | Phone: (610) 255-0361 Gentle Software, LLC | Email: [EMAIL PROTECTED] ============================================================= --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]--------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
============================================================= J. Kenneth Gentle (Ken) | Phone: (610) 255-0361 Gentle Software, LLC | Email: [EMAIL PROTECTED] ============================================================= --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
