diff --git a/WHATSNEW b/WHATSNEW index bd604343a..a26e0d129 100644 --- a/WHATSNEW +++ b/WHATSNEW @@ -13,6 +13,8 @@ Changes that could break older environments: Other changes: -------------- +* New tasks: ear, p4counter + * Ant now uses JAXP 1.1 * rmic now supports Kaffe's and Weblogic's version of rmic. diff --git a/docs/manual/OptionalTasks/perforce.html b/docs/manual/OptionalTasks/perforce.html index a1ce83f97..1a8c73d6e 100644 --- a/docs/manual/OptionalTasks/perforce.html +++ b/docs/manual/OptionalTasks/perforce.html @@ -59,6 +59,10 @@ You will also need the perforce client executable (p4 or p4.exe but not p4win.ex P4Label Create a label reflecting files in the current workspace + + P4Counter + Obtain or set the value of a counter +

General P4 Properties

@@ -142,6 +146,7 @@ available from the Perforce web <taskdef name="p4submit" classname="org.apache.tools.ant.taskdefs.optional.perforce.P4Submit" /> <taskdef name="p4have" classname="org.apache.tools.ant.taskdefs.optional.perforce.P4Have" /> <taskdef name="p4label" classname="org.apache.tools.ant.taskdefs.optional.perforce.P4Label" /> + <taskdef name="p4counter" classname="org.apache.tools.ant.taskdefs.optional.perforce.P4Counter" />
@@ -322,7 +327,6 @@ although P4Edit can open files to the default change, P4Submit cannot yet submi -

Examples

 <p4label
@@ -333,6 +337,37 @@ although P4Edit can open files to the default change,  P4Submit cannot yet submi
 
+

P4Counter

+

Description:

+

Obtain or set the value of a counter +

+

Parameters

+ + + + + + + + + + + + + + + + +
AttributeDescriptionRequired
nameThe name of the counterYes
valueThe new value for the counterNo
+ +

Examples

+
+<p4counter name="last-clean-build" />
+<p4counter name="last-clean-build" value="${TSTAMP}" />
+
+
+ +

Change History

diff --git a/src/main/org/apache/tools/ant/taskdefs/defaults.properties b/src/main/org/apache/tools/ant/taskdefs/defaults.properties index a19c74cb1..66ea759aa 100644 --- a/src/main/org/apache/tools/ant/taskdefs/defaults.properties +++ b/src/main/org/apache/tools/ant/taskdefs/defaults.properties @@ -83,6 +83,7 @@ p4have=org.apache.tools.ant.taskdefs.optional.perforce.P4Have p4sync=org.apache.tools.ant.taskdefs.optional.perforce.P4Sync p4edit=org.apache.tools.ant.taskdefs.optional.perforce.P4Edit p4submit=org.apache.tools.ant.taskdefs.optional.perforce.P4Submit +p4counter=org.apache.tools.ant.taskdefs.optional.perforce.P4Counter javah=org.apache.tools.ant.taskdefs.optional.Javah ccupdate=org.apache.tools.ant.taskdefs.optional.clearcase.CCUpdate cccheckout=org.apache.tools.ant.taskdefs.optional.clearcase.CCCheckout diff --git a/src/main/org/apache/tools/ant/taskdefs/optional/perforce/P4Counter.java b/src/main/org/apache/tools/ant/taskdefs/optional/perforce/P4Counter.java new file mode 100644 index 000000000..f92189be9 --- /dev/null +++ b/src/main/org/apache/tools/ant/taskdefs/optional/perforce/P4Counter.java @@ -0,0 +1,102 @@ +/* + * The Apache Software License, Version 1.1 + * + * Copyright (c) 2001 The Apache Software Foundation. All rights + * reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in + * the documentation and/or other materials provided with the + * distribution. + * + * 3. The end-user documentation included with the redistribution, if + * any, must include the following acknowlegement: + * "This product includes software developed by the + * Apache Software Foundation (http://www.apache.org/)." + * Alternately, this acknowlegement may appear in the software itself, + * if and wherever such third-party acknowlegements normally appear. + * + * 4. The names "The Jakarta Project", "Ant", and "Apache Software + * Foundation" must not be used to endorse or promote products derived + * from this software without prior written permission. For written + * permission, please contact apache@apache.org. + * + * 5. Products derived from this software may not be called "Apache" + * nor may "Apache" appear in their names without prior written + * permission of the Apache Group. + * + * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED + * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES + * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL THE APACHE SOFTWARE FOUNDATION OR + * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT + * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF + * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND + * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, + * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT + * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + * ==================================================================== + * + * This software consists of voluntary contributions made by many + * individuals on behalf of the Apache Software Foundation. For more + * information on the Apache Software Foundation, please see + * . + * + * Portions of this software are based upon public domain software + * originally written at the National Center for Supercomputing Applications, + * University of Illinois, Urbana-Champaign. + */ + +package org.apache.tools.ant.taskdefs.optional.perforce; + +import org.apache.tools.ant.*; + +/** P4Counter - Obtain the value of a counter. + * + * Example Usage:
+ * <p4counter name="${p4.change}"/> + * @author Kirk Wylie + * + * ToDo: Should be able to write the counter value to a property. + * I've left that out of the first version here because it involves + * changing the P4OutputHandler fairly substantially, and thus + * shouldn't be the second thing that I do here. + */ + +public class P4Counter extends P4Base { + public String counter = null; + public boolean shouldSetValue = false; + public int value = 0; + + public void setName(String counter) { + this.counter = counter; + } + + public void setValue(int value) { + this.value = value; + shouldSetValue = true; + } + + public void execute() throws BuildException { + + if((counter == null) || counter.length() == 0) { + throw new BuildException("No counter specified to retrieve"); + } + + String command = "-s counter " + P4CmdOpts + " " + counter; + if(shouldSetValue) { + command += " " + value; + } + + execP4Command(command, new SimpleP4OutputHandler(this)); + } +} diff --git a/src/main/org/apache/tools/ant/taskdefs/optional/perforce/package.html b/src/main/org/apache/tools/ant/taskdefs/optional/perforce/package.html index 99e31835e..125fc2aaf 100644 --- a/src/main/org/apache/tools/ant/taskdefs/optional/perforce/package.html +++ b/src/main/org/apache/tools/ant/taskdefs/optional/perforce/package.html @@ -16,6 +16,7 @@ These tasks also require you to have the p4 (or p4.exe) client in your path. @see org.apache.tools.ant.taskdefs.optional.perforce.P4Change @see org.apache.tools.ant.taskdefs.optional.perforce.P4Edit @see org.apache.tools.ant.taskdefs.optional.perforce.P4Submit +@see org.apache.tools.ant.taskdefs.optional.perforce.P4Counter