summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAntoine Levy-Lambert <antoine@apache.org>2013-02-04 04:36:59 +0000
committerAntoine Levy-Lambert <antoine@apache.org>2013-02-04 04:36:59 +0000
commit8344e79c7d28e4a2be4da378b0fd97201f2b2c9d (patch)
tree506459689b51706b2ace4e1e7f7ab608770f4864
parent82641d77bb4d421ae6190f0b99484f668ebc2106 (diff)
downloadant-8344e79c7d28e4a2be4da378b0fd97201f2b2c9d.tar.gz
removing Perforce Ant tasks
git-svn-id: https://svn.apache.org/repos/asf/ant/core/trunk@1442023 13f79535-47bb-0310-9956-ffa450edef68
-rw-r--r--WHATSNEW2
-rw-r--r--build.xml1
-rw-r--r--manual/Tasks/perforce.html1006
-rw-r--r--manual/install.html2
-rw-r--r--manual/running.html8
-rw-r--r--manual/tasklist.html1
-rw-r--r--manual/tasksoverview.html8
-rw-r--r--src/etc/ant-bin.wxs95
-rw-r--r--src/etc/poms/ant-apache-oro/pom.xml6
-rw-r--r--src/etc/poms/ant/pom.xml2
-rw-r--r--src/etc/testcases/taskdefs/optional/perforce/changerenumbered.xml50
-rw-r--r--src/etc/testcases/taskdefs/optional/perforce/needsresolve.xml73
-rw-r--r--src/main/org/apache/tools/ant/taskdefs/defaults.properties15
-rw-r--r--src/main/org/apache/tools/ant/taskdefs/optional/perforce/FStatP4OutputHandler.java60
-rw-r--r--src/main/org/apache/tools/ant/taskdefs/optional/perforce/P4Add.java143
-rw-r--r--src/main/org/apache/tools/ant/taskdefs/optional/perforce/P4Base.java311
-rw-r--r--src/main/org/apache/tools/ant/taskdefs/optional/perforce/P4Change.java147
-rw-r--r--src/main/org/apache/tools/ant/taskdefs/optional/perforce/P4Counter.java151
-rw-r--r--src/main/org/apache/tools/ant/taskdefs/optional/perforce/P4Delete.java65
-rw-r--r--src/main/org/apache/tools/ant/taskdefs/optional/perforce/P4Edit.java73
-rw-r--r--src/main/org/apache/tools/ant/taskdefs/optional/perforce/P4Fstat.java200
-rw-r--r--src/main/org/apache/tools/ant/taskdefs/optional/perforce/P4Handler.java43
-rw-r--r--src/main/org/apache/tools/ant/taskdefs/optional/perforce/P4HandlerAdapter.java117
-rw-r--r--src/main/org/apache/tools/ant/taskdefs/optional/perforce/P4Have.java46
-rw-r--r--src/main/org/apache/tools/ant/taskdefs/optional/perforce/P4Integrate.java318
-rw-r--r--src/main/org/apache/tools/ant/taskdefs/optional/perforce/P4Label.java176
-rw-r--r--src/main/org/apache/tools/ant/taskdefs/optional/perforce/P4Labelsync.java150
-rw-r--r--src/main/org/apache/tools/ant/taskdefs/optional/perforce/P4OutputHandler.java34
-rw-r--r--src/main/org/apache/tools/ant/taskdefs/optional/perforce/P4OutputStream.java85
-rw-r--r--src/main/org/apache/tools/ant/taskdefs/optional/perforce/P4Reopen.java60
-rw-r--r--src/main/org/apache/tools/ant/taskdefs/optional/perforce/P4Resolve.java187
-rw-r--r--src/main/org/apache/tools/ant/taskdefs/optional/perforce/P4Revert.java85
-rw-r--r--src/main/org/apache/tools/ant/taskdefs/optional/perforce/P4Submit.java155
-rw-r--r--src/main/org/apache/tools/ant/taskdefs/optional/perforce/P4Sync.java107
-rw-r--r--src/main/org/apache/tools/ant/taskdefs/optional/perforce/SimpleP4OutputHandler.java96
-rw-r--r--src/main/org/apache/tools/ant/taskdefs/optional/perforce/package.html40
-rw-r--r--src/tests/junit/org/apache/tools/ant/taskdefs/optional/perforce/P4ChangeTest.java52
-rw-r--r--src/tests/junit/org/apache/tools/ant/taskdefs/optional/perforce/p4integrate.xml32
38 files changed, 53 insertions, 4149 deletions
diff --git a/WHATSNEW b/WHATSNEW
index ee5fb45dc..1b002caff 100644
--- a/WHATSNEW
+++ b/WHATSNEW
@@ -16,6 +16,8 @@ Changes that could break older environments:
* Any FileResource whose represented File has a parent also has a basedir.
+ * Removing the Perforce Ant tasks replaced by tasks supplied by Perforce Inc.
+
Fixed bugs:
-----------
diff --git a/build.xml b/build.xml
index f867c3c7c..3f99dca3a 100644
--- a/build.xml
+++ b/build.xml
@@ -205,7 +205,6 @@
<selector id="needs.apache-oro">
<or>
<filename name="${regexp.package}/JakartaOro*"/>
- <filename name="${optional.package}/perforce/"/>
</or>
</selector>
diff --git a/manual/Tasks/perforce.html b/manual/Tasks/perforce.html
deleted file mode 100644
index 04be0e279..000000000
--- a/manual/Tasks/perforce.html
+++ /dev/null
@@ -1,1006 +0,0 @@
-<!--
- Licensed to the Apache Software Foundation (ASF) under one or more
- contributor license agreements. See the NOTICE file distributed with
- this work for additional information regarding copyright ownership.
- The ASF licenses this file to You under the Apache License, Version 2.0
- (the "License"); you may not use this file except in compliance with
- the License. You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
--->
-<html>
-<head>
-<link rel="stylesheet" type="text/css" href="../stylesheets/style.css">
-<title>Perforce Tasks</title>
-</head>
-<body>
-<h1>Perforce Tasks User Manual</h1>
-<p>by</p>
-<ul>
- <li>Les Hughes (<a href="mailto:leslie.hughes@rubus.com">leslie.hughes@rubus.com</a>)</li>
- <li>Kirk Wylie (<a href="mailto:kirk@radik.com">kirk@radik.com</a>)</li>
- <li>Matt Bishop (<a href="mailto:matt@thebishops.org">matt@thebishops.org</a>)</li>
- <li>Antoine Levy-Lambert</li>
-</ul>
-<hr>
-<h2>Contents</h2>
-<ul>
- <li><a href="#intro">Introduction</a></li>
- <li><a href="#tasks">The Tasks</a></li>
- <li><a href="#changes">Change History</a></li>
-</ul>
-<br>
-<h2><a name="intro">Introduction</a></h2>
-<p>These tasks provide an interface to the <a href="http://www.perforce.com" target="_top">Perforce</a> SCM.
-The <code>org.apache.tools.ant.taskdefs.optional.perforce</code> package consists of a simple framework to support
-p4 functionality as well as some Apache Ant tasks encapsulating frequently used (by me :-) p4 commands.
-However, the addition of new p4 commands is a pretty simple task (see the source).
-Although it is possible to use these commands on the desktop,
-they were primarily intended to be used by automated build systems.</p>
-
-<p><b>Note:</b> These tasks require the <a href="http://attic.apache.org/projects/jakarta-oro.html" target="_top">oro</a> regular
-expression package. See <a href="../install.html#librarydependencies">library dependencies</a> for the precise
-version required.
-You will also need the Perforce client executable (p4 or p4.exe but not p4win.exe) in your path.
-</p>
-
-
-
-<h2><a name="tasks">The Tasks</a></h2>
-
-<table border="0" cellspacing="0" cellpadding="3">
- <tr>
- <td><b>Task</b></td>
- <td><b>Description</b></td>
- </tr>
- <tr>
- <td><a href="#p4sync">P4Sync</a></td>
- <td>Synchronise a workspace to a depot</td>
- </tr>
- <tr>
- <td><a href="#p4change">P4Change</a></td>
- <td>Request a new changelist from the Perforce server</td>
- </tr>
- <tr>
- <td><a href="#p4edit">P4Edit</a></td>
- <td>Open files for edit (checkout)</td>
- </tr>
- <tr>
- <td><a href="#p4submit">P4Submit</a></td>
- <td>Submit a changelist to the Perforce server (checkin)</td>
- </tr>
- <tr>
- <td><a href="#p4have">P4Have</a></td>
- <td>List current files in client view, useful for reporting</td>
- </tr>
- <tr>
- <td><a href="#p4label">P4Label</a></td>
- <td>Create a label reflecting files in the current workspace</td>
- </tr>
- <tr>
- <td><a href="#p4labelsync">P4Labelsync</a></td>
- <td>Syncs an existing label</td>
- </tr>
- <tr>
- <td><a href="#p4counter">P4Counter</a></td>
- <td>Obtain or set the value of a counter</td>
- </tr>
- <tr>
- <td><a href="#p4reopen">P4Reopen</a></td>
- <td>Move files between changelists</td>
- </tr>
-
- <tr>
- <td><a href="#p4revert">P4Revert</a></td>
- <td>Revert files</td>
- </tr>
-
- <tr>
- <td><a href="#p4add">P4Add</a></td>
- <td>Add files</td>
- </tr>
- <tr>
- <td><a href="#p4delete">P4Delete</a></td>
- <td>Delete files</td>
- </tr>
- <tr>
- <td><a href="#p4integrate">P4Integrate</a></td>
- <td>Integrate files</td>
- </tr>
- <tr>
- <td><a href="#p4resolve">P4Resolve</a></td>
- <td>Resolve files</td>
- </tr>
- <tr>
- <td><a href="#p4fstat">P4Fstat</a></td>
- <td>Show differences between local repository and p4 repository</td>
- </tr>
-</table>
-
-<h3>General P4 Properties</h3>
-<p>Each p4 task requires a number of settings, either through build-wide properties, individual attributes
-or environment variables. These are
-</p>
-<table border="1" cellpadding="2" cellspacing="0">
- <tr>
- <td valign="top"><b>Property</b></td>
- <td valign="top"><b>Attribute</b></td>
- <td valign="top"><b>Env Var</b></td>
- <td valign="top"><b>Description</b></td>
- <td align="center" valign="top"><b>Default</b></td>
- </tr>
- <tr>
- <td valign="top">p4.port</td>
- <td valign="top">port</td>
- <td valign="top">P4PORT</td>
- <td valign="top">The p4d server and port to connect to</td>
- <td valign="top">perforce:1666</td>
- </tr>
- <tr>
- <td valign="top">p4.client</td>
- <td valign="top">client</td>
- <td valign="top">P4CLIENT</td>
- <td valign="top">The p4 client spec to use</td>
- <td valign="top">The logged in username</td>
- </tr>
- <tr>
- <td valign="top">p4.user</td>
- <td valign="top">user</td>
- <td valign="top">P4USER</td>
- <td valign="top">The p4 username</td>
- <td valign="top">The logged in username</td>
- </tr>
-<tr>
- <td valign="top" align="center">--</td>
- <td valign="top">view</td>
- <td valign="top" align="center">--</td>
- <td valign="top">The client, branch or label view to operate upon. See the p4 user guide for more info.</td>
- <td valign="top">//...</td>
- </tr>
-
-</table>
-<p> Your local installation of Perforce may require other settings (e.g.
-P4PASSWD, P4CONFIG). Many of these settings can be set using the globalopts
-attribute (described below), but not all. If a setting cannot be set
-by the command-line options, then it can only be set outside of Ant as an
-environment variable.
-</p>
-<p>
-Additionally, you may also specify the following attributes:
-</p>
-<p>
-<table border="1" cellpadding="2" cellspacing="0">
-<tr>
- <td valign="top"><b>Attribute</b></td>
- <td valign="top"><b>Description</b></td>
- <td align="center" valign="top"><b>Required</b></td>
-</tr>
-<tr>
- <td valign="top">failonerror</td>
- <td valign="top">Specifies whether to stop the build
- (<code>true</code>|<code>yes</code>|<code>on</code>)
- or keep going (<code>false</code>|<code>no</code>|<code>off</code>)
- if an error is returned from the p4 command.</td>
- <td valign="top">No; defaults to true.</td>
- </tr>
- <tr>
- <td valign="top">globalopts<br></td>
- <td valign="top">Specifies global options for perforce to use while
- executing the task. These properties should be concatenated into one
- string,<br>
- such as "-P <i>password</i> -C EUCJIS". Use the command-line option
- syntax, NOT the environment variable names. See the<br>
- Perforce Command Reference for details.</td>
- <td valign="top">No<br></td>
- </tr>
-</table>
-</p>
-
-<h3>Examples</h3>
-<p>Setting in the environment:-</p>
-<p>
-(Unix csh)</p>
-<pre>setenv P4PORT myperforcebox:1666</pre>
-<p>(Unix sh et al)</p>
-<pre>P4USER=myp4userid; export P4USER</pre>
-<p>Using build properties:-</p>
-<pre>&lt;property name=&quot;p4.client&quot; value=&quot;nightlybuild&quot;/&gt;</pre>
-<p>Using task attributes:-</p>
-<pre>
-&lt;p4Whatever
- port=&quot;myserver:1666&quot;
- client=&quot;smoketest&quot;
- user=&quot;smoketestdude&quot;
- .
- .
- .
-/&gt;
-</pre>
-
-<p>
-For more information regarding the underlying 'p4' commands you are referred to the Perforce Command Reference
-available from the <a href="http://www.perforce.com/" target="_top">Perforce website</a>.
-</p>
-
-
-<hr>
-<h2>Task Descriptions</h2>
-<h2><a name="p4sync">P4Sync</a></h2>
-<h3>Description:</h3>
-<p>Synchronize the current workspace with the depot.</p>
-
-<h3>Parameters</h3>
-<table border="1" cellpadding="2" cellspacing="0">
- <tr>
- <td valign="top"><b>Attribute</b></td>
- <td valign="top"><b>Description</b></td>
- <td align="center" valign="top"><b>Required</b></td>
- </tr>
- <tr>
- <td valign="top">force</td>
- <td valign="top">force a refresh of files, if this attribute has
- been set.</td>
- <td valign="top" align="center">no - if omitted, it will be off,
- otherwise a refresh will be forced.</td>
- </tr>
-<tr>
- <td valign="top">label</td>
- <td valign="top">sync client to label</td>
- <td valign="top" align="center">no</td>
- </tr>
-</table>
-
-<h3>Examples</h3>
-<pre>&lt;p4sync label=&quot;nightlybuild-0.0123&quot; force=&quot;foo&quot;/&gt;
-&lt;p4sync view=&quot;//depot/projects/projectfoo/main/src/...&quot;/&gt;
-</pre>
-<hr>
-
-
-
-<h2><a name="p4change">P4Change</a></h2>
-<h3>Description:</h3>
-<p>Request a new changelist from the Perforce server.
-This task sets the ${p4.change} property which can then be passed to <A HREF="#p4submit">P4Submit</A>,
-<A HREF="#p4edit">P4Edit</A>, or <a HREF="#p4add">P4Add</A>, or <a HREF="#p4delete">P4Delete</A>,
-then to <A HREF="#p4submit">P4Submit</A>.
-</p>
-<h3>Parameters</h3>
-<table border="1" cellpadding="2" cellspacing="0">
- <tr>
- <td valign="top"><b>Attribute</b></td>
- <td valign="top"><b>Description</b></td>
- <td align="center" valign="top"><b>Required</b></td>
- </tr>
- <tr>
- <td valign="top">description</td>
- <td valign="top">Description for ChangeList. If none specified, it will
- default to "AutoSubmit By Ant"</td>
- <td valign="top" align="center">No.</td>
- </tr>
-</table>
-
-<h3>Examples</h3>
-<pre>&lt;p4change description="Change Build Number in Script"&gt;
-</pre>
-<hr>
-
-
-
-
-<h2><a name="p4edit">P4Edit</a></h2>
-<h3>Description:</h3>
-<p>Open file(s) for edit. P4Change should be used to obtain a new changelist for P4Edit as,
-although P4Edit can open files to the default change, P4Submit cannot yet submit it.
-</p>
-<h3>Parameters</h3>
-<table border="1" cellpadding="2" cellspacing="0">
- <tr>
- <td valign="top"><b>Attribute</b></td>
- <td valign="top"><b>Description</b></td>
- <td align="center" valign="top"><b>Required</b></td>
- </tr>
- <tr>
- <td valign="top">view</td>
- <td valign="top">The filespec to request to edit</td>
- <td valign="top" align="center">Yes</td>
- </tr>
- <tr>
- <td valign="top">change</td>
- <td valign="top">An existing changelist number to assign files to.</td>
- <td valign="top" align="center">No, but see above.</td>
- </tr>
-
-</table>
-
-<h3>Examples</h3>
-<pre>
-&lt;p4edit
- view=&quot;//depot/projects/projectfoo/main/src/Blah.java...&quot;
- change=&quot;${p4.change}&quot;/&gt;
-</pre>
-<hr>
-
-
-
-
-<h2><a name="p4submit">P4Submit</a></h2>
-<h3>Description:</h3>
-<p>Submit a changelist, usually obtained from P4Change.
-<p>P4Submit will also change the value of the property p4.change if the change list is renamed by the Perforce server.
-<p>P4Submit will set a property p4.needsresolve to 1 if the change could not be submitted due to files needing resolving.
-<p>Files will need resolve if at the time of checking in, the revision that was checked out to do the current edit
-is not the latest any more.
-<p>If no files need resolve, the p4.needsresolve will be set to 0.
-</p>
-<h3>Parameters</h3>
-<table border="1" cellpadding="2" cellspacing="0">
- <tr>
- <td valign="top"><b>Attribute</b></td>
- <td valign="top"><b>Description</b></td>
- <td align="center" valign="top"><b>Required</b></td>
- </tr>
- <tr>
- <td valign="top">change</td>
- <td valign="top">The changelist number to submit</td>
- <td valign="top" align="center">Yes</td>
- </tr>
- <tr>
- <td valign="top">changeproperty</td>
- <td valign="top">Name of a property to which the new change number
- will be assigned if the Perforce server renumbers the change<br>
- Since Ant 1.6.1</td>
- <td valign="top" align="center">No</td>
- </tr>
- <tr>
- <td valign="top">needsresolveproperty</td>
- <td valign="top">Name of property which will be set to <code>true</code>
- if the submit requires a resolve<br>
- Since Ant 1.6.1</td>
- <td valign="top" align="center">No</td>
- </tr>
-</table>
-
-<h3>Examples</h3>
-<pre>&lt;p4submit change=&quot;${p4.change}&quot;/&gt;
-</pre>
-<hr>
-
-
-
-
-<h2><a name="p4have">P4Have</a></h2>
-<h3>Description:</h3>
-<p>List handy file info reflecting the current client contents.
-</p>
-<h3>Parameters</h3>
-<table border="1" cellpadding="2" cellspacing="0">
- <tr>
- <td valign="top"><b>Attribute</b></td>
- <td valign="top"><b>Description</b></td>
- <td align="center" valign="top"><b>Required</b></td>
- </tr>
- <tr>
- <td valign="top">None</td>
- <td valign="top" align="center">--</td>
- <td valign="top" align="center">--</td>
- </tr>
-</table>
-
-<h3>Examples</h3>
-<pre>&lt;p4have/&gt;
-</pre>
-<hr>
-
-
-
-
-<h2><a name="p4label">P4Label</a></h2>
-<h3>Description:</h3>
-<p>Create a new label and set contents to reflect current client file revisions.
-</p>
-<h3>Parameters</h3>
-<table border="1" cellpadding="2" cellspacing="0">
- <tr>
- <td valign="top"><b>Attribute</b></td>
- <td valign="top"><b>Description</b></td>
- <td align="center" valign="top"><b>Required</b></td>
- </tr>
- <tr>
- <td valign="top">name</td>
- <td valign="top">The name of the label</td>
- <td valign="top" align="center">Yes</td>
- </tr>
- <tr>
- <td valign="top">view</td>
- <td valign="top">client view to use for label<br>
- The view can contain multiple lines separated by ; or :</td>
- <td valign="top" align="center">No</td>
- </tr>
- <tr>
- <td valign="top">desc</td>
- <td valign="top">Label Description</td>
- <td valign="top" align="center">No</td>
- </tr>
- <tr>
- <td valign="top">lock</td>
- <td valign="top">Lock the label once created.</td>
- <td valign="top" align="center">No</td>
- </tr>
-
-
-</table>
-<h3>Examples</h3>
-<pre>
-&lt;p4label
- name=&quot;NightlyBuild:${DSTAMP}:${TSTAMP}&quot;
- desc=&quot;Auto Nightly Build&quot;
- lock=&quot;locked&quot;
- view=&quot;//firstdepot/...;//secondepot/foo/bar/...&quot;
-/&gt;
-</pre>
-<hr>
-
-
-<h2><a name="p4labelsync">P4Labelsync</a></h2>
-<h3>Description:</h3>
-<p>Syncs an existing label against the current workspace or against specified revisions.
-</p>
-<h3>Parameters</h3>
-<table border="1" cellpadding="2" cellspacing="0">
- <tr>
- <td valign="top"><b>Attribute</b></td>
- <td valign="top"><b>Description</b></td>
- <td align="center" valign="top"><b>Required</b></td>
- <td align="center" valign="top"><b>Perforce command line flag</b></td>
- </tr>
- <tr>
- <td valign="top">name</td>
- <td valign="top">The name of the label</td>
- <td valign="center" align="center">Yes</td>
- <td valign="top" align="center">-l labelname</td>
- </tr>
- <tr>
- <td valign="top">view</td>
- <td valign="top">
- list of files or revision specs separated by : or ;<br>
- in the absence of this attribute, the labelsync will be done against the current Perforce client or the value of the p4client attribute or the value of the p4.client property or the value of the environment variable P4CLIENT</td>
- <td valign="center" align="center">No</td>
- <td valign="center" align="center">file[revRange] ... </td>
- </tr>
- <tr>
- <td valign="top">simulationmode</td>
- <td valign="top">Displays which effect the operation would have on the label but do not actually do it</td>
- <td valign="center" align="center">No</td>
- <td valign="top" align="center">-n</td>
- </tr>
- <tr>
- <td valign="top">add</td>
- <td valign="top">If set to true, preserve files which exist in the label, but not in the current view</td>
- <td valign="center" align="center">No</td>
- <td valign="top" align="center">-a</td>
- </tr>
- <tr>
- <td valign="top">delete</td>
- <td valign="top">If set to true, remove from the label the files mentioned in the view attribute</td>
- <td valign="center" align="center">No</td>
- <td valign="top" align="center">-d</td>
- </tr>
-
-
-</table>
-<h3>Examples</h3>
-<pre>
-&lt;
-p4labelsync
-name=&quot;current_release&quot;
-view="//depot/...#head;//depot2/file1#25"
-add=&quot;true&quot;
-/&gt;
-</pre>
-This example will add into the label called <i>current_release</i> the current head revision of all the files located under <i>//depot</i>
-and the revision 25 of the file <i>//depot2/file1</i>.
-<pre>
-&lt;
-p4labelsync
-name=&quot;current_release&quot;
-p4client=&quot;myclient&quot;
-/&gt;
-</pre>
-This example will update the label called <i>current_release</i> so that it reflects the Perforce client <i>myclient</i>.<br>
-Files present in the label before the sync and not present currently in the client will be removed from the label, because the add attribute is not set.
-<pre>
-&lt;
-p4labelsync
-name=&quot;current_release&quot;
-/&gt;
-</pre>
-This example will update the label called <i>current_release</i> so that it reflects the current default client for the ant Perforce tasks.<br>
-The default client is by order of priority :
-<ul>
-<li>
-the value of the p4.client property if set in the project
-</li>
-<li>
-the value of the P4CLIENT environment variable
-</li>
-<li>
-the default Perforce client from the Windows registry under Windows operating systems
-</li>
-</ul>
-Files present in the label before the sync and not present currently in the client will be removed from the label, because the add attribute is not set.
-<hr>
-
-
-<h2><a name="p4counter">P4Counter</a></h2>
-<h3>Description:</h3>
-<p>
-Obtain or set the value of a counter. When used in its base form
-(where only the counter name is provided), the counter value will be
-printed to the output stream. When the value is provided, the counter
-will be set to the value provided. When a property name is provided,
-the property will be filled with the value of the counter. You may
-not specify to both get and set the value of the counter in the same
-Task.
-</p>
-<P>
-The user performing this task must have Perforce &quot;review&quot; permissions
-as defined by Perforce protections in order for this task to succeed.
-</P>
-<h3>Parameters</h3>
-<table border="1" cellpadding="2" cellspacing="0">
- <tr>
- <td valign="top"><b>Attribute</b></td>
- <td valign="top"><b>Description</b></td>
- <td align="center" valign="top"><b>Required</b></td>
- </tr>
- <tr>
- <td valign="top">name</td>
- <td valign="top">The name of the counter</td>
- <td valign="top" align="center">Yes</td>
- </tr>
- <tr>
- <td valign="top">value</td>
- <td valign="top">The new value for the counter</td>
- <td valign="top" align="center">No</td>
- </tr>
- <tr>
- <td valign="top">property</td>
- <td valign="top">The property to be set with the value of the counter</td>
- <td valign="top" align="center">No</td>
- </tr>
-</table>
-
-<h3>Examples</h3>
-Print the value of the counter named &quot;last-clean-build&quot; to the output stream:
-<pre>
-&lt;p4counter name=&quot;last-clean-build&quot;/&gt;
-</PRE>
-Set the value of the counter based on the value of the &quot;TSTAMP&quot; property:
-<PRE>
-&lt;p4counter name=&quot;last-clean-build&quot; value=&quot;${TSTAMP}&quot;/&gt;
-</PRE>
-Set the value of the &quot;p4.last.clean.build&quot; property to the current
-value of the &quot;last-clean-build&quot; counter:
-<PRE>
-&lt;p4counter name=&quot;last-clean-build&quot; property=&quot;p4.last.clean.build&quot;/&gt;
-</pre>
-<hr>
-
-
-
-
-<h2><a name="p4reopen">P4Reopen</a></h2>
-<h3>Description:</h3>
-<p>
-Move (or reopen in Perforce speak) checkout files between changelists.
-</p>
-<h3>Parameters</h3>
-<table border="1" cellpadding="2" cellspacing="0">
- <tr>
- <td valign="top"><b>Attribute</b></td>
- <td valign="top"><b>Description</b></td>
- <td align="center" valign="top"><b>Required</b></td>
- </tr>
- <tr>
- <td valign="top">tochange</td>
- <td valign="top">The changelist to move files to.</td>
- <td valign="top" align="center">Yes</td>
- </tr>
-</table>
-
-<h3>Examples</h3>
-Move all open files to the default changelist
-<pre>
-&lt;p4reopen view=&quot;//...&quot; tochange=&quot;default&quot;/&gt;
-</PRE>
-Create a new changelist then reopen into it, any files from the view //projects/foo/main/...
-<PRE>
-&lt;p4change description="Move files out of the way"/&gt;
-&lt;p4reopen view=&quot;//projects/foo/main/...&quot; tochange=&quot;${p4.change}&quot;/&gt;
-</pre>
-<hr>
-
-
-
-<h2><a name="p4revert">P4Revert</a></h2>
-<h3>Description:</h3>
-<p>
-Reverts files.
-</p>
-<h3>Parameters</h3>
-<table border="1" cellpadding="2" cellspacing="0">
- <tr>
- <td valign="top"><b>Attribute</b></td>
- <td valign="top"><b>Description</b></td>
- <td align="center" valign="top"><b>Required</b></td>
- </tr>
- <tr>
- <td valign="top">change</td>
- <td valign="top">The changelist to revert.</td>
- <td valign="top" align="center">No</td>
- </tr>
- <tr>
- <td valign="top">revertOnlyUnchanged</td>
- <td valign="top">Revert only unchanged files (p4 revert -a)</td>
- <td valign="top" align="center">No</td>
- </tr>
-
-</table>
-
-<h3>Examples</h3>
-Revert everything!
-<pre>
-&lt;p4revert view=&quot;//...&quot;/&gt;
-</PRE>
-Revert any unchanged files in the default change
-<PRE>
-&lt;p4revert change="default" revertonlyunchanged=&quot;true&quot;/&gt;
-</pre>
-<hr>
-
-<h2><a name="p4add">P4Add</a></h2>
-<h3>Description:</h3>
-<p>
-Adds files specified in nested fileset children.
-</p>
-<h3>Parameters</h3>
-<table border="1" cellpadding="2" cellspacing="0">
- <tr>
- <td valign="top"><b>Attribute</b></td>
- <td valign="top"><b>Description</b></td>
- <td align="center" valign="top"><b>Required</b></td>
- </tr>
- <tr>
- <td valign="top">commandlength</td>
- <td valign="top">A positive integer specifying the maximum length
- of the commandline when calling Perforce to add the files.
- Defaults to 450, higher values mean faster execution,
- but also possible failures.</td>
- <td valign="top" align="center">No</td>
- </tr>
- <tr>
- <td valign="top">changelist</td>
- <td valign="top">If specified the open files are associated with the
-specified pending changelist number; otherwise the open files are
-associated with the default changelist.</td>
- <td valign="top" align="center">No</td>
- </tr>
-
-</table>
-
-<h3>Examples</h3>
-Require a changelist, add all java files starting from a directory,
-and submit
-
-<pre>
-&lt;p4change/&gt;
-&lt;p4add commandlength=&quot;20000&quot; changelist=&quot;${p4.change}&quot;&gt;
- &lt;fileset dir=&quot;../dir/src/&quot; includes=&quot;**/*.java&quot;/&gt;
-&lt;p4add&gt;
-&lt;p4submit change=&quot;${p4.change}&quot;/&gt;
-</pre>
-<hr>
-
-<h2><a name="p4fstat">P4Fstat</a></h2>
-<h3>Description:</h3>
-<p>
-Lists files under Perforce control and files not under Perforce control in one or several filesets
-</p>
-<h3>Parameters</h3>
-<table border="1" cellpadding="2" cellspacing="0">
- <tr>
- <td valign="top"><b>Attribute</b></td>
- <td valign="top"><b>Description</b></td>
- <td align="center" valign="top"><b>Required</b></td>
- </tr>
- <tr>
- <td valign="top">showfilter</td>
- <td valign="top">should be one of
- <table border="1">
- <tr><td>value</td><td>description</td></tr>
- <tr><td>&quot;all&quot;</td><td>list all files, first the ones which are under Perforce control, then the others</td></tr>
- <tr><td>&quot;existing&quot;</td><td>list only files under Perforce control</td></tr>
- <tr><td>&quot;non-existing&quot;</td><td>list only files which are not under Perforce control</td></tr></table>
- </td>
- <td valign="top" align="center">Yes</td>
- </tr>
- <tr>
- <td valign="top">fileset</td>
- <td valign="top">one or several <a href="../Types/fileset.html">fileset(s)</a></td>
- <td valign="top" align="center">yes (at least one fileset is needed)</td>
- </tr>
-</table>
-Several nested filesets can be used with P4Fstat, one should be there at least.
-<h3>Examples</h3>
-will list all the files under C:\dev\gnu\depot, sorted by under Perforce or not under Perforce<br>
-<pre>
-&lt;project name=&quot;p4fstat&quot; default=&quot;p4fstat&quot; basedir=&quot;C:\dev\gnu&quot;&gt;
- &lt;target name=&quot;p4fstat&quot; &gt;
- &lt;p4fstat showfilter=&quot;all&quot;&gt;
- &lt;fileset dir=&quot;depot&quot; includes=&quot;**/*&quot;/&gt;
- &lt;/p4fstat&gt;
- &lt;/target&gt;
-&lt;/project&gt;</p>
-</pre>
-
-
-
-
-<h2><a name="p4delete">P4Delete</a></h2>
-<h3>Description:</h3>
-<p>Open file(s) for delete. P4Change should be used to obtain a new changelist for P4Delete as,
-although P4Delete can open files to the default change, P4Submit cannot yet submit it.
-</p>
-<h3>Parameters</h3>
-<table border="1" cellpadding="2" cellspacing="0">
- <tr>
- <td valign="top"><b>Attribute</b></td>
- <td valign="top"><b>Description</b></td>
- <td align="center" valign="top"><b>Required</b></td>
- </tr>
- <tr>
- <td valign="top">view</td>
- <td valign="top">The filespec to request to delete</td>
- <td valign="top" align="center">Yes</td>
- </tr>
- <tr>
- <td valign="top">change</td>
- <td valign="top">An existing changelist number to assign files to.</td>
- <td valign="top" align="center">No, but see above.</td>
- </tr>
-
-</table>
-
-<h3>Examples</h3>
-<pre>
-&lt;p4delete
- view=&quot;//depot/projects/projectfoo/main/src/Blah.java...&quot;
- change=&quot;${p4.change}&quot;/&gt;
-</pre>
-<hr>
-<h2><a name="p4integrate">P4Integrate</a></h2>
-<h3>Description:</h3>
-<p>Open file(s) for integrate. P4Change should be used to obtain a new changelist for P4Integrate as,
-although P4Integrate can open files to the default change, P4Submit cannot yet submit it.
-</p>
-<h3>Parameters</h3>
-<p>If this task is used without using a branch definition, both fromfile and tofile must be supplied.
-If a branch definition is supplied, at least one of fromfile or tofile should be supplied.
-Both fromfile and tofile can be supplied together with a branch definition.</p>
-<table border="1" cellpadding="2" cellspacing="0">
- <tr>
- <td valign="top"><b>Attribute</b></td>
- <td valign="top"><b>Description</b></td>
- <td align="center" valign="top"><b>Required</b></td>
- <td align="center" valign="top"><b>Perforce command line flag</b></td>
- </tr>
- <tr>
- <td valign="top">fromfile</td>
- <td valign="top">Original file or view</td>
- <td valign="top" align="center">required if a branch is not specified</td>
- <td valign="top" align="center"></td>
- </tr>
- <tr>
- <td valign="top">tofile</td>
- <td valign="top">Target file or view.</td>
- <td valign="top" align="center">required if a branch is not specified</td>
- <td valign="top" align="center"></td>
- </tr>
- <tr>
- <td valign="top">branch</td>
- <td valign="top">Name of branch specification</td>
- <td valign="center">No</td>
- <td valign="top" align="center">-b</td>
- </tr>
- <tr>
- <td valign="top">change</td>
- <td valign="top">An existing changelist number to assign files to.</td>
- <td valign="top" align="center">No, but see above.</td>
- <td valign="top" align="center">-c</td>
- </tr>
- <tr>
- <td valign="top">forceintegrate</td>
- <td valign="top">Forces integration regardless of previous integration history (*)</td>
- <td valign="center">No</td>
- <td valign="top" align="center">-f</td>
- </tr>
- <tr>
- <td valign="top">restoredeletedrevisions</td>
- <td valign="top">Enables integration around deleted revisions (*)</td>
- <td valign="center">No</td>
- <td valign="top" align="center">-d</td>
- </tr>
- <tr>
- <td valign="top">leavetargetrevision</td>
- <td valign="top">Prevents target files from being synced to head revision before integration (*)</td>
- <td valign="center">No</td>
- <td valign="top" align="center">-h</td>
- </tr>
- <tr>
- <td valign="top">enablebaselessmerges</td>
- <td valign="top">Forces integration to existing target files which have no integration history relative to the source files (*)</td>
- <td valign="center">No</td>
- <td valign="top" align="center">-i</td>
- </tr>
- <tr>
- <td valign="top">simulationmode</td>
- <td valign="top">Displays which integrations are necessary but do not actually schedule them (*)</td>
- <td valign="center">No</td>
- <td valign="top" align="center">-n</td>
- </tr>
- <tr>
- <td valign="top">reversebranchmappings</td>
- <td valign="top">Reverses mappings in the branch view, with source and target files exchanging place (*)</td>
- <td valign="center">No</td>
- <td valign="top" align="center">-r</td>
- </tr>
- <tr>
- <td valign="top">propagatesourcefiletype</td>
- <td valign="top">Makes source file type propagate to existing target files (*)</td>
- <td valign="center">No</td>
- <td valign="top" align="center">-t</td>
- </tr>
- <tr>
- <td valign="top">nocopynewtargetfiles</td>
- <td valign="top">Prevents the physical delivery on disk of new target files (*)</td>
- <td valign="center">No</td>
- <td valign="top" align="center">-v</td>
- </tr>
-</table>
-<br>
-(*) The following applies for a number of flags. The default is false. To set the flag, use &quot;true&quot;
-
-<h3>Examples</h3>
-<pre>
-&lt;p4integrate
- fromfile=&quot;//depot/projects/projectfoo/main/src/Blah.java...&quot;
- tofile=&quot;//depot/projects/projectfoo/release/src/Blah.java...&quot;
- change=&quot;${p4.change}&quot;/&gt;
-</pre>
-<hr>
-<h2><a name="p4resolve">P4Resolve</a></h2>
-<h3>Description:</h3>
-<p>Resolves files. You want to do this if :
-<ul>
-<li>
-there have been or there may be concurrent edits of the same file. For instance, you have begun to edit a file, and while you were working on it, somebody has submitted a new version of the same file. When you first attempt to submit your file(s), you will get a message (property p4.needsresolve set).
-</li>
-<li>
-you have just been doing an integration to existing target files
-</li>
-</ul>
-P4Resolve does not use a change list number (it takes it from the files it is working on).
-</p>
-<h3>Parameters</h3>
-<table border="1" cellpadding="2" cellspacing="0">
- <tr>
- <td valign="top"><b>Attribute</b></td>
- <td valign="top"><b>Description</b></td>
- <td align="center" valign="top"><b>Required</b></td>
- <td align="center" valign="top"><b>Perforce command line flag</b></td>
- </tr>
- <tr>
- <td valign="top">view</td>
- <td valign="top">The filespec to request to delete</td>
- <td valign="top" align="center">Yes</td>
- <td valign="top" align="center"></td>
- </tr>
- <tr>
- <td valign="top">resolvemode</td>
- <td valign="top">Should have one of these values :
- <ul>
- <li>&quot;automatic&quot;</li>
- <li>&quot;force&quot;</li>
- <li>&quot;safe&quot;</li>
- <li>&quot;theirs&quot;</li>
- <li>&quot;yours&quot;</li>
- </ul></td>
- <td valign="top" align="center">Yes</td>
- <td valign="top" align="center">corresponds to one of -am -af -as -at -ay </td>
- </tr>
- <tr>
- <td valign="top">redoall</td>
- <td valign="top">allows previously resolved files to be resolved again (*)</td>
- <td valign="top" align="center">No</td>
- <td valign="top" align="center">-f</td>
- </tr>
- <tr>
- <td valign="top">simulationmode</td>
- <td valign="top">Lists the integrations which would be performed, without actually doing them. (*)</td>
- <td valign="top" align="center">No</td>
- <td valign="top" align="center">-n</td>
- </tr>
- <tr>
- <td valign="top">forcetextmode</td>
- <td valign="top">Attempts a textual merge, even for binary files (*)</td>
- <td valign="top" align="center">No</td>
- <td valign="top" align="center">-t</td>
- </tr>
- <tr>
- <td valign="top">markersforall</td>
- <td valign="top">Puts in markers for all changes, conflicting or not (*)</td>
- <td valign="top" align="center">No</td>
- <td valign="top" align="center">-v</td>
- </tr>
-</table>
-<br>
-(*) The following applies for a number of flags. The default is false. To set the flag, use &quot;true&quot;
-
-<h3>Examples</h3>
-<pre>
-&lt;p4resolve
- view=&quot;//depot/projects/projectfoo/main/src/Blah.java...&quot;
- resolvemode=&quot;automatic&quot;/&gt;
-</pre>
-
-<h2><a name="changes">Change History</a></h2>
-<table border="1" cellpadding="2" cellspacing="0">
-<tr>
- <td valign="top">Sept 2000</td>
- <td valign="top" align="center">--</td>
- <td valign="top">Internal Release within Rubus</td>
-</tr>
-
-<tr>
- <td valign="top">Nov 2000</td>
- <td valign="top">V1.0</td>
- <td valign="top">Initial Release donated to ASF :-)</td>
-</tr>
-<tr>
- <td valign="top">Jan 2001</td>
- <td valign="top">V1.1</td>
- <td valign="top">Fixed cross platform (NT/Unix) bug<br>
- Refactored p4 output handling code<br>
- Refactored exec'ing code</td>
-</tr>
-<tr>
- <td valign="top">Jan 2003</td>
- <td valign="top">V1.2</td>
- <td valign="top">Added globalopts to P4Base to allow
- additional global options to be set.<br>
- Added p4fstat task</td>
-</tr>
-<tr>
- <td valign="top">May 2003</td>
- <td valign="top">V1.3</td>
- <td valign="top">Added p4labelsync, p4resolve, p4integrate.<br>
- Changed p4submit (detection of changes of change numbers,
- and of failed submits due to resolution needed)</td>
-</tr>
-<tr>
- <td valign="top">Jan 2004</td>
- <td valign="top">Ant 1.6.1</td>
- <td valign="top">
-Changed p4submit, needsresolveproperty and changeproperty added</td>
-</tr>
-</table>
-
-</body>
-</html>
diff --git a/manual/install.html b/manual/install.html
index 8000d3821..cec4d3806 100644
--- a/manual/install.html
+++ b/manual/install.html
@@ -846,7 +846,7 @@ Installing Ant / Optional Tasks</a> section above.</p>
</tr>
<tr>
<td>jakarta-oro-2.0.8.jar</td>
- <td>regexp type with mappers (if you do not wish to use java.util.regex) and the Perforce tasks<br>
+ <td>regexp type with mappers (if you do not wish to use java.util.regex)<br>
To use the FTP task,
you need jakarta-oro 2.0.8 or later, and <a href="#commons-net">commons-net</a></td>
<td><a href="http://attic.apache.org/projects/jakarta-oro.html" target="_top">http://attic.apache.org/projects/jakarta-oro.html</a></td>
diff --git a/manual/running.html b/manual/running.html
index ed8c7154b..ef7d73bab 100644
--- a/manual/running.html
+++ b/manual/running.html
@@ -457,13 +457,7 @@ org.apache.tools.ant.Executor implementation specified here.
org.apache.tools.ant.ArgumentProcessor.
</td>
</tr>
-<tr>
- <td><code>p4.port, p4.client, p4.user</code></td>
- <td>several formats</td>
- <td>Specify defaults for port-, client- and user-setting of the
- <a href="Tasks/perforce.html">perforce</a> tasks.
- </td>
-</tr>
+
<tr>
<td><code>websphere.home</code></td>
<td>path</td>
diff --git a/manual/tasklist.html b/manual/tasklist.html
index 7d55164da..716744ca0 100644
--- a/manual/tasklist.html
+++ b/manual/tasklist.html
@@ -132,7 +132,6 @@
<li><a href="Tasks/parallel.html">Parallel</a></li>
<li><a href="Tasks/patch.html">Patch</a></li>
<li><a href="Tasks/pathconvert.html">PathConvert</a></li>
-<li><a href="Tasks/perforce.html">Perforce Tasks</a></li>
<li><a href="Tasks/presetdef.html">PreSetDef</a></li>
<li><a href="Tasks/projecthelper.html">ProjectHelper</a></li>
<li><a href="Tasks/property.html">Property</a></li>
diff --git a/manual/tasksoverview.html b/manual/tasksoverview.html
index 9dfa02a3d..99aa11b01 100644
--- a/manual/tasksoverview.html
+++ b/manual/tasksoverview.html
@@ -1142,13 +1142,7 @@ documentation.</p>
commands.</p></td>
</tr>
- <tr valign="top">
- <td nowrap><a href="Tasks/perforce.html">Perforce</a></td>
- <td><p>Tasks to perform the Perforce <i>p4sync</i>, <i>p4change</i>,
- <i>p4edit</i>, <i>p4submit</i>, <i>p4have</i>, <i>p4label</i>,
- <i>p4counter</i>, <i>p4reopen</i>, <i>p4revert</i>, and <i>p4add</i>
- commands.</p></td>
- </tr>
+
<tr valign="top">
<td nowrap><a href="Tasks/pvcstask.html">Pvcs</a></td>
diff --git a/src/etc/ant-bin.wxs b/src/etc/ant-bin.wxs
index eddb24461..74ed74feb 100644
--- a/src/etc/ant-bin.wxs
+++ b/src/etc/ant-bin.wxs
@@ -374,79 +374,78 @@
<File DiskId="1" Id="file554" Name="MPARSE_1.HTM" LongName="mparse.html" Vital="yes" src="$(var.dist.dir)/docs\manual\OptionalTasks\mparse.html" />
<File DiskId="1" Id="file555" Name="NATIVE_1.HTM" LongName="native2ascii.html" Vital="yes" src="$(var.dist.dir)/docs\manual\OptionalTasks\native2ascii.html" />
<File DiskId="1" Id="file556" Name="NETREX_1.HTM" LongName="netrexxc.html" Vital="yes" src="$(var.dist.dir)/docs\manual\OptionalTasks\netrexxc.html" />
- <File DiskId="1" Id="file557" Name="PERFOR_1.HTM" LongName="perforce.html" Vital="yes" src="$(var.dist.dir)/docs\manual\OptionalTasks\perforce.html" />
- <File DiskId="1" Id="file558" Name="PROPER_1.HTM" LongName="propertyfile.html" Vital="yes" src="$(var.dist.dir)/docs\manual\OptionalTasks\propertyfile.html" />
- <File DiskId="1" Id="file559" Name="PVCSTA_1.HTM" LongName="pvcstask.html" Vital="yes" src="$(var.dist.dir)/docs\manual\OptionalTasks\pvcstask.html" />
- <File DiskId="1" Id="file560" Name="RENAME_1.HTM" LongName="renameextensions.html" Vital="yes" src="$(var.dist.dir)/docs\manual\OptionalTasks\renameextensions.html" />
- <File DiskId="1" Id="file561" Name="REPLAC_1.HTM" LongName="replaceregexp.html" Vital="yes" src="$(var.dist.dir)/docs\manual\OptionalTasks\replaceregexp.html" />
- <File DiskId="1" Id="file562" Name="REXEC_1.HTM" LongName="rexec.html" Vital="yes" src="$(var.dist.dir)/docs\manual\OptionalTasks\rexec.html" />
- <File DiskId="1" Id="file563" Name="RPM_1.HTM" LongName="rpm.html" Vital="yes" src="$(var.dist.dir)/docs\manual\OptionalTasks\rpm.html" />
- <File DiskId="1" Id="file564" Name="SCHEMA_1.HTM" LongName="schemavalidate.html" Vital="yes" src="$(var.dist.dir)/docs\manual\OptionalTasks\schemavalidate.html" />
- <File DiskId="1" Id="file565" Name="SCP_1.HTM" LongName="scp.html" Vital="yes" src="$(var.dist.dir)/docs\manual\OptionalTasks\scp.html" />
- <File DiskId="1" Id="file566" Name="SCRIPT_2.HTM" LongName="script.html" Vital="yes" src="$(var.dist.dir)/docs\manual\OptionalTasks\script.html" />
- <File DiskId="1" Id="file567" Name="SCRIPT_1.HTM" LongName="scriptdef.html" Vital="yes" src="$(var.dist.dir)/docs\manual\OptionalTasks\scriptdef.html" />
- <File DiskId="1" Id="file568" Name="SERVER_1.HTM" LongName="serverdeploy.html" Vital="yes" src="$(var.dist.dir)/docs\manual\OptionalTasks\serverdeploy.html" />
- <File DiskId="1" Id="file569" Name="SETPRO_1.HTM" LongName="setproxy.html" Vital="yes" src="$(var.dist.dir)/docs\manual\OptionalTasks\setproxy.html" />
- <File DiskId="1" Id="file570" Name="SOS_1.HTM" LongName="sos.html" Vital="yes" src="$(var.dist.dir)/docs\manual\OptionalTasks\sos.html" />
- <File DiskId="1" Id="file571" Name="SOUND_1.HTM" LongName="sound.html" Vital="yes" src="$(var.dist.dir)/docs\manual\OptionalTasks\sound.html" />
- <File DiskId="1" Id="file572" Name="SPLASH_1.HTM" LongName="splash.html" Vital="yes" src="$(var.dist.dir)/docs\manual\OptionalTasks\splash.html" />
- <File DiskId="1" Id="file573" Name="SSHEXE_1.HTM" LongName="sshexec.html" Vital="yes" src="$(var.dist.dir)/docs\manual\OptionalTasks\sshexec.html" />
- <File DiskId="1" Id="file574" Name="STARTE_1.HTM" LongName="starteam.html" Vital="yes" src="$(var.dist.dir)/docs\manual\OptionalTasks\starteam.html" />
- <File DiskId="1" Id="file576" Name="SYMLIN_1.HTM" LongName="symlink.html" Vital="yes" src="$(var.dist.dir)/docs\manual\OptionalTasks\symlink.html" />
- <File DiskId="1" Id="file577" Name="TELNET_1.HTM" LongName="telnet.html" Vital="yes" src="$(var.dist.dir)/docs\manual\OptionalTasks\telnet.html" />
- <File DiskId="1" Id="file578" Name="TRANSL_1.HTM" LongName="translate.html" Vital="yes" src="$(var.dist.dir)/docs\manual\OptionalTasks\translate.html" />
- <File DiskId="1" Id="file579" Name="VBC_1.HTM" LongName="vbc.html" Vital="yes" src="$(var.dist.dir)/docs\manual\OptionalTasks\vbc.html" />
- <File DiskId="1" Id="file580" Name="VSS_1.HTM" LongName="vss.html" Vital="yes" src="$(var.dist.dir)/docs\manual\OptionalTasks\vss.html" />
- <File DiskId="1" Id="file581" Name="WLJSPC_1.HTM" LongName="wljspc.html" Vital="yes" src="$(var.dist.dir)/docs\manual\OptionalTasks\wljspc.html" />
- <File DiskId="1" Id="file582" Name="WSDLTO_1.HTM" LongName="wsdltodotnet.html" Vital="yes" src="$(var.dist.dir)/docs\manual\OptionalTasks\wsdltodotnet.html" />
- <File DiskId="1" Id="file583" Name="XMLVAL_1.HTM" LongName="xmlvalidate.html" Vital="yes" src="$(var.dist.dir)/docs\manual\OptionalTasks\xmlvalidate.html" />
+ <File DiskId="1" Id="file557" Name="PROPER_1.HTM" LongName="propertyfile.html" Vital="yes" src="$(var.dist.dir)/docs\manual\OptionalTasks\propertyfile.html" />
+ <File DiskId="1" Id="file558" Name="PVCSTA_1.HTM" LongName="pvcstask.html" Vital="yes" src="$(var.dist.dir)/docs\manual\OptionalTasks\pvcstask.html" />
+ <File DiskId="1" Id="file559" Name="RENAME_1.HTM" LongName="renameextensions.html" Vital="yes" src="$(var.dist.dir)/docs\manual\OptionalTasks\renameextensions.html" />
+ <File DiskId="1" Id="file560" Name="REPLAC_1.HTM" LongName="replaceregexp.html" Vital="yes" src="$(var.dist.dir)/docs\manual\OptionalTasks\replaceregexp.html" />
+ <File DiskId="1" Id="file561" Name="REXEC_1.HTM" LongName="rexec.html" Vital="yes" src="$(var.dist.dir)/docs\manual\OptionalTasks\rexec.html" />
+ <File DiskId="1" Id="file562" Name="RPM_1.HTM" LongName="rpm.html" Vital="yes" src="$(var.dist.dir)/docs\manual\OptionalTasks\rpm.html" />
+ <File DiskId="1" Id="file563" Name="SCHEMA_1.HTM" LongName="schemavalidate.html" Vital="yes" src="$(var.dist.dir)/docs\manual\OptionalTasks\schemavalidate.html" />
+ <File DiskId="1" Id="file564" Name="SCP_1.HTM" LongName="scp.html" Vital="yes" src="$(var.dist.dir)/docs\manual\OptionalTasks\scp.html" />
+ <File DiskId="1" Id="file565" Name="SCRIPT_2.HTM" LongName="script.html" Vital="yes" src="$(var.dist.dir)/docs\manual\OptionalTasks\script.html" />
+ <File DiskId="1" Id="file566" Name="SCRIPT_1.HTM" LongName="scriptdef.html" Vital="yes" src="$(var.dist.dir)/docs\manual\OptionalTasks\scriptdef.html" />
+ <File DiskId="1" Id="file567" Name="SERVER_1.HTM" LongName="serverdeploy.html" Vital="yes" src="$(var.dist.dir)/docs\manual\OptionalTasks\serverdeploy.html" />
+ <File DiskId="1" Id="file568" Name="SETPRO_1.HTM" LongName="setproxy.html" Vital="yes" src="$(var.dist.dir)/docs\manual\OptionalTasks\setproxy.html" />
+ <File DiskId="1" Id="file569" Name="SOS_1.HTM" LongName="sos.html" Vital="yes" src="$(var.dist.dir)/docs\manual\OptionalTasks\sos.html" />
+ <File DiskId="1" Id="file570" Name="SOUND_1.HTM" LongName="sound.html" Vital="yes" src="$(var.dist.dir)/docs\manual\OptionalTasks\sound.html" />
+ <File DiskId="1" Id="file571" Name="SPLASH_1.HTM" LongName="splash.html" Vital="yes" src="$(var.dist.dir)/docs\manual\OptionalTasks\splash.html" />
+ <File DiskId="1" Id="file572" Name="SSHEXE_1.HTM" LongName="sshexec.html" Vital="yes" src="$(var.dist.dir)/docs\manual\OptionalTasks\sshexec.html" />
+ <File DiskId="1" Id="file573" Name="STARTE_1.HTM" LongName="starteam.html" Vital="yes" src="$(var.dist.dir)/docs\manual\OptionalTasks\starteam.html" />
+ <File DiskId="1" Id="file574" Name="SYMLIN_1.HTM" LongName="symlink.html" Vital="yes" src="$(var.dist.dir)/docs\manual\OptionalTasks\symlink.html" />
+ <File DiskId="1" Id="file575" Name="TELNET_1.HTM" LongName="telnet.html" Vital="yes" src="$(var.dist.dir)/docs\manual\OptionalTasks\telnet.html" />
+ <File DiskId="1" Id="file576" Name="TRANSL_1.HTM" LongName="translate.html" Vital="yes" src="$(var.dist.dir)/docs\manual\OptionalTasks\translate.html" />
+ <File DiskId="1" Id="file577" Name="VBC_1.HTM" LongName="vbc.html" Vital="yes" src="$(var.dist.dir)/docs\manual\OptionalTasks\vbc.html" />
+ <File DiskId="1" Id="file578" Name="VSS_1.HTM" LongName="vss.html" Vital="yes" src="$(var.dist.dir)/docs\manual\OptionalTasks\vss.html" />
+ <File DiskId="1" Id="file579" Name="WLJSPC_1.HTM" LongName="wljspc.html" Vital="yes" src="$(var.dist.dir)/docs\manual\OptionalTasks\wljspc.html" />
+ <File DiskId="1" Id="file580" Name="WSDLTO_1.HTM" LongName="wsdltodotnet.html" Vital="yes" src="$(var.dist.dir)/docs\manual\OptionalTasks\wsdltodotnet.html" />
+ <File DiskId="1" Id="file581" Name="XMLVAL_1.HTM" LongName="xmlvalidate.html" Vital="yes" src="$(var.dist.dir)/docs\manual\OptionalTasks\xmlvalidate.html" />
</Component>
</Directory>
<Directory Id="directory93" Name="OPTION_2" LongName="OptionalTypes">
<Component Id="component90" DiskId="1" Guid="0507ED6A-50CE-4c58-A046-B74E7CFCB3CA">
- <File DiskId="1" Id="file584" Name="CLASSF_1.HTM" LongName="classfileset.html" Vital="yes" src="$(var.dist.dir)/docs\manual\OptionalTypes\classfileset.html" />
- <File DiskId="1" Id="file585" Name="EXTENS_2.HTM" LongName="extension.html" Vital="yes" src="$(var.dist.dir)/docs\manual\OptionalTypes\extension.html" />
- <File DiskId="1" Id="file586" Name="EXTENS_1.HTM" LongName="extensionset.html" Vital="yes" src="$(var.dist.dir)/docs\manual\OptionalTypes\extensionset.html" />
+ <File DiskId="1" Id="file582" Name="CLASSF_1.HTM" LongName="classfileset.html" Vital="yes" src="$(var.dist.dir)/docs\manual\OptionalTypes\classfileset.html" />
+ <File DiskId="1" Id="file583" Name="EXTENS_2.HTM" LongName="extension.html" Vital="yes" src="$(var.dist.dir)/docs\manual\OptionalTypes\extension.html" />
+ <File DiskId="1" Id="file584" Name="EXTENS_1.HTM" LongName="extensionset.html" Vital="yes" src="$(var.dist.dir)/docs\manual\OptionalTypes\extensionset.html" />
</Component>
</Directory>
<Directory Id="directory94" Name="STYLES_1" LongName="stylesheets">
<Component Id="component91" DiskId="1" Guid="4B25D154-CC25-4f93-8D36-BF23E4C29F06">
- <File DiskId="1" Id="file587" Name="ANTMAN_1.CSS" LongName="antmanual.css" Vital="yes" src="$(var.dist.dir)/docs\manual\stylesheets\antmanual.css" />
- <File DiskId="1" Id="file588" Name="style.css" Vital="yes" src="$(var.dist.dir)/docs\manual\stylesheets\style.css" />
+ <File DiskId="1" Id="file585" Name="ANTMAN_1.CSS" LongName="antmanual.css" Vital="yes" src="$(var.dist.dir)/docs\manual\stylesheets\antmanual.css" />
+ <File DiskId="1" Id="file586" Name="style.css" Vital="yes" src="$(var.dist.dir)/docs\manual\stylesheets\style.css" />
</Component>
</Directory>
</Directory>
<Directory Id="directory95" Name="projects">
<Component Id="component92" DiskId="1" Guid="FB149E10-8B7F-4206-AA50-8698C06BEC6E">
- <File DiskId="1" Id="file589" Name="INDEX_1.HTM" LongName="index.html" Vital="yes" src="$(var.dist.dir)/docs\projects\index.html" />
+ <File DiskId="1" Id="file587" Name="INDEX_1.HTM" LongName="index.html" Vital="yes" src="$(var.dist.dir)/docs\projects\index.html" />
</Component>
</Directory>
<Directory Id="directory96" Name="webtest">
<Component Id="component93" DiskId="1" Guid="A26B499E-E57F-47e3-88B2-66C1293383BE">
- <File DiskId="1" Id="file590" Name="TESTKE_1" LongName="testkeystore" Vital="yes" src="$(var.dist.dir)/docs\webtest\testkeystore" />
+ <File DiskId="1" Id="file588" Name="TESTKE_1" LongName="testkeystore" Vital="yes" src="$(var.dist.dir)/docs\webtest\testkeystore" />
</Component>
</Directory>
</Directory>
<Directory Id="directory97" Name="etc">
<Component Id="component94" DiskId="1" Guid="90BD5A92-DA62-48ce-8799-868E387EC7C8">
- <File DiskId="1" Id="file591" Name="ANT-BO_1.JAR" LongName="ant-bootstrap.jar" Vital="yes" src="$(var.dist.dir)/etc\ant-bootstrap.jar" />
- <File DiskId="1" Id="file592" Name="CHANGE_1.XSL" LongName="changelog.xsl" Vital="yes" src="$(var.dist.dir)/etc\changelog.xsl" />
- <File DiskId="1" Id="file593" Name="COVERA_1.XSL" LongName="coverage-frames.xsl" Vital="yes" src="$(var.dist.dir)/etc\coverage-frames.xsl" />
- <File DiskId="1" Id="file594" Name="JDEPEN_1.XSL" LongName="jdepend-frames.xsl" Vital="yes" src="$(var.dist.dir)/etc\jdepend-frames.xsl" />
- <File DiskId="1" Id="file595" Name="jdepend.xsl" Vital="yes" src="$(var.dist.dir)/etc\jdepend.xsl" />
- <File DiskId="1" Id="file596" Name="JUNIT-_3.XSL" LongName="junit-frames-xalan1.xsl" Vital="yes" src="$(var.dist.dir)/etc\junit-frames-xalan1.xsl" />
- <File DiskId="1" Id="file597" Name="JUNIT-_1.XSL" LongName="junit-frames.xsl" Vital="yes" src="$(var.dist.dir)/etc\junit-frames.xsl" />
- <File DiskId="1" Id="file598" Name="JUNIT-_2.XSL" LongName="junit-noframes.xsl" Vital="yes" src="$(var.dist.dir)/etc\junit-noframes.xsl" />
- <File DiskId="1" Id="file599" Name="log.xsl" Vital="yes" src="$(var.dist.dir)/etc\log.xsl" />
- <File DiskId="1" Id="file600" Name="MAUDIT_1.XSL" LongName="maudit-frames.xsl" Vital="yes" src="$(var.dist.dir)/etc\maudit-frames.xsl" />
- <File DiskId="1" Id="file601" Name="MMETRI_1.XSL" LongName="mmetrics-frames.xsl" Vital="yes" src="$(var.dist.dir)/etc\mmetrics-frames.xsl" />
- <File DiskId="1" Id="file602" Name="tagdiff.xsl" Vital="yes" src="$(var.dist.dir)/etc\tagdiff.xsl" />
+ <File DiskId="1" Id="file589" Name="ANT-BO_1.JAR" LongName="ant-bootstrap.jar" Vital="yes" src="$(var.dist.dir)/etc\ant-bootstrap.jar" />
+ <File DiskId="1" Id="file590" Name="CHANGE_1.XSL" LongName="changelog.xsl" Vital="yes" src="$(var.dist.dir)/etc\changelog.xsl" />
+ <File DiskId="1" Id="file591" Name="COVERA_1.XSL" LongName="coverage-frames.xsl" Vital="yes" src="$(var.dist.dir)/etc\coverage-frames.xsl" />
+ <File DiskId="1" Id="file592" Name="JDEPEN_1.XSL" LongName="jdepend-frames.xsl" Vital="yes" src="$(var.dist.dir)/etc\jdepend-frames.xsl" />
+ <File DiskId="1" Id="file593" Name="jdepend.xsl" Vital="yes" src="$(var.dist.dir)/etc\jdepend.xsl" />
+ <File DiskId="1" Id="file594" Name="JUNIT-_3.XSL" LongName="junit-frames-xalan1.xsl" Vital="yes" src="$(var.dist.dir)/etc\junit-frames-xalan1.xsl" />
+ <File DiskId="1" Id="file595" Name="JUNIT-_1.XSL" LongName="junit-frames.xsl" Vital="yes" src="$(var.dist.dir)/etc\junit-frames.xsl" />
+ <File DiskId="1" Id="file596" Name="JUNIT-_2.XSL" LongName="junit-noframes.xsl" Vital="yes" src="$(var.dist.dir)/etc\junit-noframes.xsl" />
+ <File DiskId="1" Id="file597" Name="log.xsl" Vital="yes" src="$(var.dist.dir)/etc\log.xsl" />
+ <File DiskId="1" Id="file598" Name="MAUDIT_1.XSL" LongName="maudit-frames.xsl" Vital="yes" src="$(var.dist.dir)/etc\maudit-frames.xsl" />
+ <File DiskId="1" Id="file599" Name="MMETRI_1.XSL" LongName="mmetrics-frames.xsl" Vital="yes" src="$(var.dist.dir)/etc\mmetrics-frames.xsl" />
+ <File DiskId="1" Id="file600" Name="tagdiff.xsl" Vital="yes" src="$(var.dist.dir)/etc\tagdiff.xsl" />
</Component>
<Directory Id="directory98" Name="CHECKS_1" LongName="checkstyle">
<Component Id="component95" DiskId="1" Guid="2AEB59C7-5CEF-401c-9AB9-911B995F00FC">
- <File DiskId="1" Id="file603" Name="CHECKS_1.XSL" LongName="checkstyle-frames.xsl" Vital="yes" src="$(var.dist.dir)/etc\checkstyle\checkstyle-frames.xsl" />
- <File DiskId="1" Id="file604" Name="CHECKS_3.XSL" LongName="checkstyle-text.xsl" Vital="yes" src="$(var.dist.dir)/etc\checkstyle\checkstyle-text.xsl" />
- <File DiskId="1" Id="file605" Name="CHECKS_2.XSL" LongName="checkstyle-xdoc.xsl" Vital="yes" src="$(var.dist.dir)/etc\checkstyle\checkstyle-xdoc.xsl" />
+ <File DiskId="1" Id="file601" Name="CHECKS_1.XSL" LongName="checkstyle-frames.xsl" Vital="yes" src="$(var.dist.dir)/etc\checkstyle\checkstyle-frames.xsl" />
+ <File DiskId="1" Id="file602" Name="CHECKS_3.XSL" LongName="checkstyle-text.xsl" Vital="yes" src="$(var.dist.dir)/etc\checkstyle\checkstyle-text.xsl" />
+ <File DiskId="1" Id="file603" Name="CHECKS_2.XSL" LongName="checkstyle-xdoc.xsl" Vital="yes" src="$(var.dist.dir)/etc\checkstyle\checkstyle-xdoc.xsl" />
</Component>
</Directory>
</Directory>
diff --git a/src/etc/poms/ant-apache-oro/pom.xml b/src/etc/poms/ant-apache-oro/pom.xml
index d4b4f5e56..acc9b73ce 100644
--- a/src/etc/poms/ant-apache-oro/pom.xml
+++ b/src/etc/poms/ant-apache-oro/pom.xml
@@ -57,16 +57,12 @@
<configuration>
<includes>
<include>org/apache/tools/ant/util/regexp/JakartaOro*</include>
- <include>org/apache/tools/ant/taskdefs/optional/perforce/*</include>
</includes>
- <testIncludes>
- <include>org/apache/tools/ant/taskdefs/optional/perforce/*</include>
- </testIncludes>
</configuration>
</plugin>
</plugins>
<sourceDirectory>../../../../src/main</sourceDirectory>
- <testSourceDirectory>../../../../src/testcases</testSourceDirectory>
+ <testSourceDirectory>../../../../src/tests/junit</testSourceDirectory>
<outputDirectory>../../../../target/${project.artifactId}/classes</outputDirectory>
<testOutputDirectory>../../../../target/${project.artifactId}/testcases</testOutputDirectory>
<directory>../../../../target/${project.artifactId}</directory>
diff --git a/src/etc/poms/ant/pom.xml b/src/etc/poms/ant/pom.xml
index 2268eeba0..567d11c6a 100644
--- a/src/etc/poms/ant/pom.xml
+++ b/src/etc/poms/ant/pom.xml
@@ -102,7 +102,6 @@
<exclude>org/apache/tools/ant/taskdefs/optional/net/FTP*</exclude>
<exclude>org/apache/tools/ant/taskdefs/optional/net/RExec*</exclude>
<exclude>org/apache/tools/ant/taskdefs/optional/net/TelnetTask*</exclude>
- <exclude>org/apache/tools/ant/taskdefs/optional/perforce/*</exclude>
<exclude>org/apache/tools/ant/taskdefs/optional/junit/*</exclude>
<exclude>org/apache/tools/ant/taskdefs/optional/ssh/*</exclude>
<exclude>org/apache/tools/ant/taskdefs/optional/image/*</exclude>
@@ -133,7 +132,6 @@
<exclude>org/apache/tools/ant/taskdefs/optional/junit/</exclude>
<exclude>org/apache/tools/ant/taskdefs/optional/net/FTP*</exclude>
<exclude>org/apache/tools/ant/taskdefs/optional/ssh/*</exclude>
- <exclude>org/apache/tools/ant/taskdefs/optional/perforce/*</exclude>
</testExcludes>
</configuration>
</plugin>
diff --git a/src/etc/testcases/taskdefs/optional/perforce/changerenumbered.xml b/src/etc/testcases/taskdefs/optional/perforce/changerenumbered.xml
deleted file mode 100644
index 497f0534c..000000000
--- a/src/etc/testcases/taskdefs/optional/perforce/changerenumbered.xml
+++ /dev/null
@@ -1,50 +0,0 @@
-<?xml version="1.0"?>
-<!--
- Licensed to the Apache Software Foundation (ASF) under one or more
- contributor license agreements. See the NOTICE file distributed with
- this work for additional information regarding copyright ownership.
- The ASF licenses this file to You under the Apache License, Version 2.0
- (the "License"); you may not use this file except in compliance with
- the License. You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
--->
-<!-- author Antoine Levy-Lambert -->
-<!-- this file demonstrates that p4.change will be modified by p4submit -->
-<!-- if the change number is modified by the Perforce daemon during the submission -->
-<project name="build1" default="runtest">
- <target name="runtest">
- <p4change/>
- <property name="change1" value="${p4.change}" />
- <echo>
-doing a first change ${change1}
-</echo>
- <p4change/>
- <property name="change2" value="${p4.change}" />
- <echo>
-doing a second change ${change2}
-</echo>
- <p4edit view="//depot/foobar" change="${change1}" />
- <p4edit view="//depot/hello" change="${change2}" />
- <echo>
-before submitting of hello change ${change2} p4.change is now ${p4.change}
-</echo>
- <p4submit change="${change2}"/>
- <echo>
-after submitting of hello p4.change is now ${p4.change}
-</echo>
- <echo>
-before submitting of foobar change ${change1}
-</echo>
- <p4submit change="${change1}"/>
- <echo>
-after submitting of foobar p4.change is now ${p4.change}
-</echo>
- </target>
-</project>
diff --git a/src/etc/testcases/taskdefs/optional/perforce/needsresolve.xml b/src/etc/testcases/taskdefs/optional/perforce/needsresolve.xml
deleted file mode 100644
index 00c90e512..000000000
--- a/src/etc/testcases/taskdefs/optional/perforce/needsresolve.xml
+++ /dev/null
@@ -1,73 +0,0 @@
-<?xml version="1.0"?>
-<!--
- Licensed to the Apache Software Foundation (ASF) under one or more
- contributor license agreements. See the NOTICE file distributed with
- this work for additional information regarding copyright ownership.
- The ASF licenses this file to You under the Apache License, Version 2.0
- (the "License"); you may not use this file except in compliance with
- the License. You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
--->
-<!-- author Antoine Levy-Lambert -->
-<!-- this test shows that p4 submit can now indicate that a file needs to be resolved -->
-<!-- before running the test, edit this xml and change the 5 properties at the top to values which make sense on your system-->
-<!-- the test uses two Perforce client specs which must exist beforehand -->
-<!-- also using both client specs you should be able to edit the file ${depot_file_spec} -->
-<project name="testresolve" default= "test">
- <property name="first_client" value="levyant_dev_ant"/>
- <property name="first_client_root" value="C:\dev\depot"/>
- <property name="second_client" value="levyant_cygwin_test"/>
- <property name="second_client_root" value="C:\dev\test"/>
- <property name="depot_file_spec" value="//depot/foobar"/>
- <target name="test">
- <p4change client="${first_client}"/>
- <property name="change1" value="${p4.change}" />
- <p4change client="${second_client}"/>
- <property name="change2" value="${p4.change}" />
- <sequential>
- <antcall target="edit">
- <param name="p4.client" value="${first_client}"/>
- <param name="client_root" value="${first_client_root}"/>
- <param name="change" value="${change1}"/>
- </antcall>
- <antcall target="edit">
- <param name="p4.client" value="${second_client}"/>
- <param name="client_root" value="${second_client_root}"/>
- <param name="change" value="${change2}"/>
- </antcall>
- <antcall target="submit">
- <param name="p4.client" value="${first_client}"/>
- <param name="change" value="${change1}"/>
- </antcall>
- <antcall target="submit">
- <param name="p4.client" value="${second_client}"/>
- <param name="change" value="${change2}"/>
- </antcall>
- </sequential>
- </target>
- <target name="edit">
- <echo>
-doing a change ${change} on client ${p4.client}
-</echo>
- <p4edit change="${change}" view="${depot_file_spec}"/>
- <mkdir dir="${client_root}/depot"/>
- <echo file="${client_root}/depot/foobar">
-hello ${p4.client} ${change}
-</echo>
- </target>
- <target name="submit">
- <p4submit change="${change}" needsresolveproperty="needsresolve" changeproperty="mychange"/>
- <echo>
-p4.needsresolve ${p4.needsresolve} after submit
- needsresolveproperty ${needsresolve} after submit
- changeproperty ${mychange} after submit
-</echo>
- </target>
-</project> \ No newline at end of file
diff --git a/src/main/org/apache/tools/ant/taskdefs/defaults.properties b/src/main/org/apache/tools/ant/taskdefs/defaults.properties
index b17ad8d87..54c03ea19 100644
--- a/src/main/org/apache/tools/ant/taskdefs/defaults.properties
+++ b/src/main/org/apache/tools/ant/taskdefs/defaults.properties
@@ -159,21 +159,6 @@ junit=org.apache.tools.ant.taskdefs.optional.junit.JUnitTask
junitreport=org.apache.tools.ant.taskdefs.optional.junit.XMLResultAggregator
native2ascii=org.apache.tools.ant.taskdefs.optional.Native2Ascii
netrexxc=org.apache.tools.ant.taskdefs.optional.NetRexxC
-p4add=org.apache.tools.ant.taskdefs.optional.perforce.P4Add
-p4change=org.apache.tools.ant.taskdefs.optional.perforce.P4Change
-p4counter=org.apache.tools.ant.taskdefs.optional.perforce.P4Counter
-p4delete=org.apache.tools.ant.taskdefs.optional.perforce.P4Delete
-p4edit=org.apache.tools.ant.taskdefs.optional.perforce.P4Edit
-p4fstat=org.apache.tools.ant.taskdefs.optional.perforce.P4Fstat
-p4have=org.apache.tools.ant.taskdefs.optional.perforce.P4Have
-p4integrate=org.apache.tools.ant.taskdefs.optional.perforce.P4Integrate
-p4label=org.apache.tools.ant.taskdefs.optional.perforce.P4Label
-p4labelsync=org.apache.tools.ant.taskdefs.optional.perforce.P4Labelsync
-p4reopen=org.apache.tools.ant.taskdefs.optional.perforce.P4Reopen
-p4resolve=org.apache.tools.ant.taskdefs.optional.perforce.P4Resolve
-p4revert=org.apache.tools.ant.taskdefs.optional.perforce.P4Revert
-p4submit=org.apache.tools.ant.taskdefs.optional.perforce.P4Submit
-p4sync=org.apache.tools.ant.taskdefs.optional.perforce.P4Sync
propertyfile=org.apache.tools.ant.taskdefs.optional.PropertyFile
pvcs=org.apache.tools.ant.taskdefs.optional.pvcs.Pvcs
replaceregexp=org.apache.tools.ant.taskdefs.optional.ReplaceRegExp
diff --git a/src/main/org/apache/tools/ant/taskdefs/optional/perforce/FStatP4OutputHandler.java b/src/main/org/apache/tools/ant/taskdefs/optional/perforce/FStatP4OutputHandler.java
deleted file mode 100644
index 2d8c0a2fd..000000000
--- a/src/main/org/apache/tools/ant/taskdefs/optional/perforce/FStatP4OutputHandler.java
+++ /dev/null
@@ -1,60 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- *
- */
-package org.apache.tools.ant.taskdefs.optional.perforce;
-import org.apache.tools.ant.BuildException;
-import org.apache.tools.ant.Project;
-import org.apache.oro.text.perl.Perl5Util;
-
-import java.util.ArrayList;
-
-/**
- * FStatP4OutputHandler - spezialied Perforce output handler
- * able to sort files recognized as managed by Perforce and files not
- * managed by Perforce in the output
- *
- */
-class FStatP4OutputHandler extends P4HandlerAdapter {
- private P4Fstat parent;
- private ArrayList existing = new ArrayList();
- private ArrayList nonExisting = new ArrayList();
- private static Perl5Util util = new Perl5Util();
-
- public FStatP4OutputHandler(P4Fstat parent) {
- this.parent = parent;
- }
-
- public void process(String line) throws BuildException {
- if (util.match("/^... clientFile (.+)$/", line)) {
- String f = util.group(1);
- existing.add(f);
- } else if (util.match("/^(.+) - no such file/", line)) {
- String f = util.group(1);
- nonExisting.add(f);
- }
- parent.log(parent.util.substitute("s/^.*: //", line),
- Project.MSG_VERBOSE);
- }
-
- public ArrayList getExisting() {
- return existing;
- }
-
- public ArrayList getNonExisting() {
- return nonExisting;
- }
-}
diff --git a/src/main/org/apache/tools/ant/taskdefs/optional/perforce/P4Add.java b/src/main/org/apache/tools/ant/taskdefs/optional/perforce/P4Add.java
deleted file mode 100644
index 24a458c9e..000000000
--- a/src/main/org/apache/tools/ant/taskdefs/optional/perforce/P4Add.java
+++ /dev/null
@@ -1,143 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- *
- */
-/*
- * 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 java.io.File;
-import java.util.Vector;
-
-import org.apache.tools.ant.Project;
-import org.apache.tools.ant.BuildException;
-import org.apache.tools.ant.DirectoryScanner;
-import org.apache.tools.ant.types.FileSet;
-
-/**
- * Adds specified files to Perforce.
- *
- * <b>Example Usage:</b>
- * <table border="1">
- * <th>Function</th><th>Command</th>
- * <tr><td>Add files using P4USER, P4PORT and P4CLIENT settings specified</td>
- * <td>&lt;P4add <br>P4view="//projects/foo/main/source/..." <br>P4User="fbloggs"
- * <br>P4Port="km01:1666"
- * <br>P4Client="fbloggsclient"&gt;<br>&lt;fileset basedir="dir" includes="**&#47;*.java"&gt;<br>
- * &lt;/p4add&gt;</td></tr>
- * <tr><td>Add files using P4USER, P4PORT and P4CLIENT settings defined in environment</td><td>
- * &lt;P4add P4view="//projects/foo/main/source/..." /&gt;<br>&lt;fileset basedir="dir"
- * includes="**&#47;*.java"&gt;<br>&lt;/p4add&gt;</td></tr>
- * <tr><td>Specify the length of command line arguments to pass to each invocation of p4</td>
- * <td>&lt;p4add Commandlength="450"&gt;</td></tr>
- * </table>
- *
- * @ant.task category="scm"
- */
-public class P4Add extends P4Base {
- private static final int DEFAULT_CMD_LENGTH = 450;
- private int changelist;
- private String addCmd = "";
- private Vector filesets = new Vector();
- private int cmdLength = DEFAULT_CMD_LENGTH;
-
- /**
- * Set the maximum length
- * of the commandline when calling Perforce to add the files.
- * Defaults to 450, higher values mean faster execution,
- * but also possible failures.
- * @param len maximum length of command line default is 450.
- * @throws BuildException if trying to set the command line length to 0 or less.
- */
-
- public void setCommandlength(int len) throws BuildException {
- if (len <= 0) {
- throw new BuildException("P4Add: Commandlength should be a positive number");
- }
- this.cmdLength = len;
- }
-
- /**
- * If specified the open files are associated with the
- * specified pending changelist number; otherwise the open files are
- * associated with the default changelist.
- *
- * @param changelist the change list number.
- *
- * @throws BuildException if trying to set a change list number &lt;=0.
- */
- public void setChangelist(int changelist) throws BuildException {
- if (changelist <= 0) {
- throw new BuildException("P4Add: Changelist# should be a positive number");
- }
- this.changelist = changelist;
- }
-
- /**
- * Add a fileset whose files will be added to Perforce.
- *
- * @param set the FileSet that one wants to add to Perforce Source Control.
- */
- public void addFileset(FileSet set) {
- filesets.addElement(set);
- }
-
- /**
- * Run the task.
- *
- * @throws BuildException if the execution of the Perforce command fails.
- */
- public void execute() throws BuildException {
- if (P4View != null) {
- addCmd = P4View;
- }
- P4CmdOpts = (changelist > 0) ? ("-c " + changelist) : "";
-
- StringBuffer filelist = new StringBuffer();
-
- final int size = filesets.size();
- for (int i = 0; i < size; i++) {
- FileSet fs = (FileSet) filesets.elementAt(i);
- DirectoryScanner ds = fs.getDirectoryScanner(getProject());
-
- String[] srcFiles = ds.getIncludedFiles();
- if (srcFiles != null) {
- for (int j = 0; j < srcFiles.length; j++) {
- File f = new File(ds.getBasedir(), srcFiles[j]);
- filelist.append(" ").append('"').append(f.getAbsolutePath()).append('"');
- if (filelist.length() > cmdLength) {
- execP4Add(filelist);
- filelist = new StringBuffer();
- }
- }
- if (filelist.length() > 0) {
- execP4Add(filelist);
- }
- } else {
- log("No files specified to add!", Project.MSG_WARN);
- }
- }
- }
-
- private void execP4Add(StringBuffer list) {
- log("Execing add " + P4CmdOpts + " " + addCmd + list, Project.MSG_INFO);
- execP4Command("-s add " + P4CmdOpts + " " + addCmd + list, new SimpleP4OutputHandler(this));
- }
-}
diff --git a/src/main/org/apache/tools/ant/taskdefs/optional/perforce/P4Base.java b/src/main/org/apache/tools/ant/taskdefs/optional/perforce/P4Base.java
deleted file mode 100644
index 62a7512be..000000000
--- a/src/main/org/apache/tools/ant/taskdefs/optional/perforce/P4Base.java
+++ /dev/null
@@ -1,311 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- *
- */
-/*
- * 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 java.io.IOException;
-import org.apache.oro.text.perl.Perl5Util;
-import org.apache.tools.ant.BuildException;
-import org.apache.tools.ant.Project;
-import org.apache.tools.ant.taskdefs.Execute;
-import org.apache.tools.ant.types.Commandline;
-
-
-/** Base class for Perforce (P4) ANT tasks. See individual task for example usage.
- *
- * @see P4Sync
- * @see P4Have
- * @see P4Change
- * @see P4Edit
- * @see P4Submit
- * @see P4Label
- * @see org.apache.tools.ant.taskdefs.Execute
- */
-public abstract class P4Base extends org.apache.tools.ant.Task {
- // CheckStyle:VisibilityModifier OFF - bc
- // CheckStyle:MemberNameCheck OFF - bc
- /**Perl5 regexp in Java - cool eh? */
- protected Perl5Util util = null;
- /** The OS shell to use (cmd.exe or /bin/sh) */
- protected String shell;
-
- //P4 runtime directives
- /** Perforce Server Port (eg KM01:1666) */
- protected String P4Port = "";
- /** Perforce Client (eg myclientspec) */
- protected String P4Client = "";
- /** Perforce User (eg fbloggs) */
- protected String P4User = "";
- /** Perforce view for commands. (eg //projects/foobar/main/source/... )*/
- protected String P4View = "";
-
- // Perforce task directives
- /** Keep going or fail on error - defaults to fail. */
- protected boolean failOnError = true;
-
- //P4 g-opts and cmd opts (rtfm)
- /** Perforce 'global' opts.
- * Forms half of low level API */
- protected String P4Opts = "";
- /** Perforce command opts.
- * Forms half of low level API */
- protected String P4CmdOpts = "";
-
- /** Set by the task or a handler to indicate that the task has failed. BuildExceptions
- * can also be thrown to indicate failure. */
- private boolean inError = false;
-
- /** If inError is set, then errorMessage needs to contain the reason why. */
- private String errorMessage = "";
-
- // CheckStyle:MemberNameCheck ON
- // CheckStyle:VisibilityModifier ON
-
- /**
- * gets whether or not the task has encountered an error
- * @return error flag
- * @since ant 1.6
- */
- public boolean getInError() {
- return inError;
- }
-
- /**
- * sets the error flag on the task
- * @param inError if true an error has been encountered by the handler
- * @since ant 1.6
- */
- public void setInError(boolean inError) {
- this.inError = inError;
- }
-
- /**
- * gets the error message recorded by the Perforce handler
- * @return error message
- */
- public String getErrorMessage() {
- return errorMessage;
- }
-
- /**
- * sets the error message
- * @param errorMessage line of error output
- */
- public void setErrorMessage(String errorMessage) {
- this.errorMessage = errorMessage;
- }
- //Setters called by Ant
-
- /**
- * The p4d server and port to connect to;
- * optional, default "perforce:1666"
- *
- * @param p4Port the port one wants to set such as localhost:1666
- */
- public void setPort(String p4Port) {
- this.P4Port = "-p" + p4Port;
- }
-
- /**
- * The p4 client spec to use;
- * optional, defaults to the current user
- *
- * @param p4Client the name of the Perforce client spec
- */
- public void setClient(String p4Client) {
- this.P4Client = "-c" + p4Client;
- }
-
- /**
- * The p4 username;
- * optional, defaults to the current user
- *
- * @param p4User the user name
- */
- public void setUser(String p4User) {
- this.P4User = "-u" + p4User;
- }
- /**
- * Set global P4 options; Used on all
- * of the Perforce tasks.
- *
- * @param p4Opts global options, to use a specific P4Config file for instance
- */
- public void setGlobalopts(String p4Opts) {
- this.P4Opts = p4Opts;
- }
- /**
- * The client, branch or label view to operate upon;
- * optional default "//...".
- *
- * the view is required for the following tasks :
- * <ul>
- * <li>p4delete</li>
- * <li>p4edit</li>
- * <li>p4reopen</li>
- * <li>p4resolve</li>
- * </ul>
- *
- * @param p4View the view one wants to use
- */
- public void setView(String p4View) {
- this.P4View = p4View;
- }
-
- /**
- * Set extra command options; only used on some
- * of the Perforce tasks.
- *
- * @param p4CmdOpts command line options going after the particular
- * Perforce command
- */
- public void setCmdopts(String p4CmdOpts) {
- this.P4CmdOpts = p4CmdOpts;
- }
-
- /**
- * whether to stop the build (true, default)
- * or keep going if an error is returned from the p4 command
- * @param fail indicates whether one wants to fail the build if an error comes from the
- * Perforce command
- */
- public void setFailonerror(boolean fail) {
- failOnError = fail;
- }
- /**
- * sets attributes Port, Client, User from properties
- * if these properties are defined.
- * Called automatically by UnknownElement
- * @see org.apache.tools.ant.UnknownElement
- * <table>
- * <tr><th>Property</th><th>Attribute</th></tr>
- * <tr><td>p4.port</td><td>Port</td></tr>
- * <tr><td>p4.client</td><td>Client</td></tr>
- * <tr><td>p4.user</td><td>User</td></tr>
- * </table>
- */
- public void init() {
-
- util = new Perl5Util();
-
- //Get default P4 settings from environment - Mark would have done something cool with
- //introspection here.....:-)
- String tmpprop;
- // CheckStyle:InnerAssignment OFF
- if ((tmpprop = getProject().getProperty("p4.port")) != null) {
- setPort(tmpprop);
- }
- if ((tmpprop = getProject().getProperty("p4.client")) != null) {
- setClient(tmpprop);
- }
- if ((tmpprop = getProject().getProperty("p4.user")) != null) {
- setUser(tmpprop);
- }
- // CheckStyle:InnerAssignment ON
- }
- /**
- * no usages found for this method
- * runs a Perforce command without a handler
- * @param command the command that one wants to execute
- * @throws BuildException if failonerror is set and the command fails
- */
- protected void execP4Command(String command) throws BuildException {
- execP4Command(command, null);
- }
-
- /**
- * Execute P4 command assembled by subclasses.
- *
- * @param command The command to run
- * @param handler A P4Handler to process any input and output
- *
- * @throws BuildException if failonerror has been set to true
- */
- protected void execP4Command(String command, P4Handler handler) throws BuildException {
- try {
- // reset error flags before executing the command
- inError = false;
- errorMessage = "";
- Commandline commandline = new Commandline();
- commandline.setExecutable("p4");
-
- //Check API for these - it's how CVS does it...
- if (P4Port != null && P4Port.length() != 0) {
- commandline.createArgument().setValue(P4Port);
- }
- if (P4User != null && P4User.length() != 0) {
- commandline.createArgument().setValue(P4User);
- }
- if (P4Client != null && P4Client.length() != 0) {
- commandline.createArgument().setValue(P4Client);
- }
- if (P4Opts != null && P4Opts.length() != 0) {
- commandline.createArgument().setLine(P4Opts);
- }
- commandline.createArgument().setLine(command);
-
- log(commandline.describeCommand(), Project.MSG_VERBOSE);
-
- if (handler == null) {
- handler = new SimpleP4OutputHandler(this);
- }
-
- Execute exe = new Execute(handler, null);
-
- exe.setAntRun(getProject());
-
- exe.setCommandline(commandline.getCommandline());
-
- try {
- exe.execute();
-
- if (inError && failOnError) {
- throw new BuildException(errorMessage);
- }
- } catch (IOException e) {
- throw new BuildException(e);
- } finally {
- try {
- handler.stop();
- } catch (Exception e) {
- log("Error stopping execution framework: " + e.toString(),
- Project.MSG_ERR);
- }
- }
-
-
- } catch (Exception e) {
- String failMsg = "Problem exec'ing P4 command: " + e.getMessage();
- if (failOnError) {
- if (e instanceof BuildException) {
- throw (BuildException) e;
- } else {
- throw new BuildException(failMsg, e);
- }
- } else {
- log(failMsg, Project.MSG_ERR);
- }
-
- }
- }
-}
diff --git a/src/main/org/apache/tools/ant/taskdefs/optional/perforce/P4Change.java b/src/main/org/apache/tools/ant/taskdefs/optional/perforce/P4Change.java
deleted file mode 100644
index c9cf3ef6b..000000000
--- a/src/main/org/apache/tools/ant/taskdefs/optional/perforce/P4Change.java
+++ /dev/null
@@ -1,147 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- *
- */
-/*
- * 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.BuildException;
-import org.apache.tools.ant.Project;
-
-/**
- * Requests a new changelist from the Perforce server.
- * P4Change creates a new changelist in perforce. P4Change sets the property
- * ${p4.change} with the new changelist number. This should then be passed into
- * p4edit and p4submit.
- *
- *
- * @see P4Edit
- * @see P4Submit
- *
- * @ant.task category="scm"
- */
-public class P4Change extends P4Base {
- // CheckStyle:VisibilityModifier OFF - bc
-
- protected String emptyChangeList = null;
- protected String description = "AutoSubmit By Ant";
- // CheckStyle:VisibilityModifier ON
-
- /**
- * creates a new Perforce change list
- * sets the p4.change property to the number of the new change list
- * @throws BuildException if the word error appears in the output coming from Perforce
- */
- public void execute() throws BuildException {
-
- if (emptyChangeList == null) {
- emptyChangeList = getEmptyChangeList();
- }
- final Project myProj = getProject();
-
- P4Handler handler = new P4HandlerAdapter() {
- public void process(String line) {
- if (util.match("/Change/", line)) {
-
- //Remove any non-numerical chars - should leave the change number
- line = util.substitute("s/[^0-9]//g", line);
-
- int changenumber = Integer.parseInt(line);
- log("Change Number is " + changenumber, Project.MSG_INFO);
- myProj.setProperty("p4.change", "" + changenumber);
-
- } else if (util.match("/error/", line)) {
- throw new BuildException("Perforce Error, check client settings and/or server");
- }
-
- }
- };
-
- handler.setOutput(emptyChangeList);
-
- execP4Command("change -i", handler);
- }
-
- /**
- * returns the text of an empty change list
- * @return the text of an empty change list
- * @throws BuildException if the text error is displayed
- * in the Perforce output outside of a comment line
- */
- public String getEmptyChangeList() throws BuildException {
- final StringBuffer stringbuf = new StringBuffer();
-
- execP4Command("change -o", new P4HandlerAdapter() {
- public void process(String line) {
- if (!util.match("/^#/", line)) {
- if (util.match("/error/", line)) {
- log("Client Error", Project.MSG_VERBOSE);
- throw new BuildException("Perforce Error, "
- + "check client settings and/or server");
- } else if (util.match("/<enter description here>/", line)) {
- // we need to escape the description in case there are /
- description = backslash(description);
- line = util.substitute("s/<enter description here>/"
- + description + "/", line);
- } else if (util.match("/\\/\\//", line)) {
- //Match "//" for begining of depot filespec
- return;
- }
- stringbuf.append(line);
- stringbuf.append("\n");
- }
- }
- });
- return stringbuf.toString();
- }
-
- /**
- * Ensure that a string is backslashing slashes so that it does not
- * confuse them with Perl substitution delimiter in Oro. Backslashes are
- * always backslashes in a string unless they escape the delimiter.
- * @param value the string to backslash for slashes
- * @return the backslashed string
- * @see <a href="http://jakarta.apache.org/oro/api/org/apache/oro/text/perl/Perl5Util.html
- * #substitute(java.lang.String,%20java.lang.String)">Oro</a>
- */
- public static final String backslash(String value) {
- final StringBuffer buf = new StringBuffer(value.length());
- final int len = value.length();
- for (int i = 0; i < len; i++) {
- char c = value.charAt(i);
- if (c == '/') {
- buf.append('\\');
- }
- buf.append(c);
- }
- return buf.toString();
- }
-
- /**
- * Description for ChangeList;optional.
- * If none is specified, it will default to "AutoSubmit By Ant"
- * @param desc description for the change list
- */
- public void setDescription(String desc) {
- this.description = desc;
- }
-
-} //EoF
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
deleted file mode 100644
index 2fd13f5c7..000000000
--- a/src/main/org/apache/tools/ant/taskdefs/optional/perforce/P4Counter.java
+++ /dev/null
@@ -1,151 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- *
- */
-/*
- * 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.BuildException;
-import org.apache.tools.ant.Project;
-
-/**
- * Obtains or sets the value of a counter.
- *
- * <p> When used in its base form
- * (where only the counter name is provided), the counter value will be
- * printed to the output stream. When the value is provided, the counter
- * will be set to the value provided. When a property name is provided,
- * the property will be filled with the value of the counter. You may
- * not specify to both get and set the value of the counter in the same
- * Task.
- * </p>
- * <P>
- * The user performing this task must have Perforce &quot;review&quot; permissions
- * as defined by Perforce protections in order for this task to succeed.
-</P>
-
- * Example Usage:<br>
- * &lt;p4counter name="${p4.counter}" property=${p4.change}"/&gt;
- *
- * @ant.task category="scm"
- */
-
-public class P4Counter extends P4Base {
- // CheckStyle:VisibilityModifier OFF - bc
- /**
- * name of the counter
- */
- public String counter = null;
- /**
- * name of an optional property
- */
- public String property = null;
- /**
- * flag telling whether the value of the counter should be set
- */
- public boolean shouldSetValue = false;
- /**
- * flag telling whether a property should be set
- */
- public boolean shouldSetProperty = false;
- /**
- * new value for the counter
- */
- public int value = 0;
-
- // CheckStyle:VisibilityModifier ON
-
- /**
- * The name of the counter; required
- * @param counter name of the counter
- */
- public void setName(String counter) {
- this.counter = counter;
- }
-
- /**
- * The new value for the counter; optional.
- * @param value new value for the counter
- */
- public void setValue(int value) {
- this.value = value;
- shouldSetValue = true;
- }
-
- /**
- * A property to be set with the value of the counter
- * @param property the name of a property to set with the value
- * of the counter
- */
- public void setProperty(String property) {
- this.property = property;
- shouldSetProperty = true;
- }
-
- /**
- * again, properties are mutable in this tsk
- * @throws BuildException if the required parameters are not supplied.
- */
- public void execute() throws BuildException {
-
- if ((counter == null) || counter.length() == 0) {
- throw new BuildException("No counter specified to retrieve");
- }
-
- if (shouldSetValue && shouldSetProperty) {
- throw new BuildException("Cannot both set the value of the property and retrieve the "
- + "value of the property.");
- }
-
- String command = "counter " + P4CmdOpts + " " + counter;
- if (!shouldSetProperty) {
- // NOTE kirk@radik.com 04-April-2001 -- If you put in the -s, you
- // have to start running through regular expressions here. Much easier
- // to just not include the scripting information than to try to add it
- // and strip it later.
- command = "-s " + command;
- }
- if (shouldSetValue) {
- command += " " + value;
- }
-
- if (shouldSetProperty) {
- final Project myProj = getProject();
-
- P4Handler handler = new P4HandlerAdapter() {
- public void process(String line) {
- log("P4Counter retrieved line \"" + line + "\"", Project.MSG_VERBOSE);
- try {
- value = Integer.parseInt(line);
- myProj.setProperty(property, "" + value);
- } catch (NumberFormatException nfe) {
- throw new BuildException("Perforce error. "
- + "Could not retrieve counter value.");
- }
- }
- };
-
- execP4Command(command, handler);
- } else {
- execP4Command(command, new SimpleP4OutputHandler(this));
- }
- }
-}
diff --git a/src/main/org/apache/tools/ant/taskdefs/optional/perforce/P4Delete.java b/src/main/org/apache/tools/ant/taskdefs/optional/perforce/P4Delete.java
deleted file mode 100644
index 0631311ea..000000000
--- a/src/main/org/apache/tools/ant/taskdefs/optional/perforce/P4Delete.java
+++ /dev/null
@@ -1,65 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- *
- */
-package org.apache.tools.ant.taskdefs.optional.perforce;
-
-import org.apache.tools.ant.BuildException;
-
-/** Checkout files for deletion.
- *
- * Example Usage:<br>
- * &lt;p4delete change="${p4.change}" view="//depot/project/foo.txt" /&gt;<br>
- *
- * Simple re-write of P4Edit changing 'edit' to 'delete'.<br>
- *
- * @todo What to do if file is already open in one of our changelists perhaps
- * (See also {@link P4Edit P4Edit})?<br>
- *
- * @ant.task category="scm"
- */
-public class P4Delete extends P4Base {
-
- // CheckStyle:VisibilityModifier OFF - bc
- /**
- * number of the change list to work on
- */
- public String change = null;
- // CheckStyle:VisibilityModifier ON
-
- /**
- * An existing changelist number for the deletion; optional
- * but strongly recommended.
- * @param change the number of a change list
- */
- public void setChange(String change) {
- this.change = change;
- }
-
- /**
- * executes the p4 delete task
- * @throws BuildException if there is no view specified
- */
- public void execute() throws BuildException {
- if (change != null) {
- P4CmdOpts = "-c " + change;
- }
- if (P4View == null) {
- throw new BuildException("No view specified to delete");
- }
- execP4Command("-s delete " + P4CmdOpts + " " + P4View, new SimpleP4OutputHandler(this));
- }
-}
diff --git a/src/main/org/apache/tools/ant/taskdefs/optional/perforce/P4Edit.java b/src/main/org/apache/tools/ant/taskdefs/optional/perforce/P4Edit.java
deleted file mode 100644
index c313311d1..000000000
--- a/src/main/org/apache/tools/ant/taskdefs/optional/perforce/P4Edit.java
+++ /dev/null
@@ -1,73 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- *
- */
-/*
- * 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.BuildException;
-
-/**
- * Open file(s) for edit.
- * P4Change should be used to obtain a new changelist for P4Edit as,
- * although P4Edit can open files to the default change,
- * P4Submit cannot yet submit to it.
- * Example Usage:<br>
- * &lt;p4edit change="${p4.change}" view="//depot/project/foo.txt" /&gt;
- *
- * @todo Should call reopen if file is already open in one of our changelists perhaps?
- *
- * @ant.task category="scm"
- */
-
-public class P4Edit extends P4Base {
-
- // CheckStyle:VisibilityModifier OFF - bc
- /**
- * number of the change list to work on
- */
- public String change = null;
-
- // CheckStyle:VisibilityModifier ON
-
- /**
- * An existing changelist number to assign files to; optional
- * but strongly recommended.
- * @param change the change list number
- */
- public void setChange(String change) {
- this.change = change;
- }
-
- /**
- * Run the p4 edit command
- * @throws BuildException if there is no view specified
- */
- public void execute() throws BuildException {
- if (change != null) {
- P4CmdOpts = "-c " + change;
- }
- if (P4View == null) {
- throw new BuildException("No view specified to edit");
- }
- execP4Command("-s edit " + P4CmdOpts + " " + P4View, new SimpleP4OutputHandler(this));
- }
-}
diff --git a/src/main/org/apache/tools/ant/taskdefs/optional/perforce/P4Fstat.java b/src/main/org/apache/tools/ant/taskdefs/optional/perforce/P4Fstat.java
deleted file mode 100644
index 7ef4d48d1..000000000
--- a/src/main/org/apache/tools/ant/taskdefs/optional/perforce/P4Fstat.java
+++ /dev/null
@@ -1,200 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- *
- */
-/*
- * 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 java.io.File;
-import java.util.Vector;
-import java.util.ArrayList;
-
-import org.apache.tools.ant.Project;
-import org.apache.tools.ant.BuildException;
-import org.apache.tools.ant.DirectoryScanner;
-import org.apache.tools.ant.types.FileSet;
-
-/**
- * P4Fstat--find out which files are under Perforce control and which are not.
- *
- * <br><b>Example Usage:</b><br>
- * <pre>
- * &lt;project name=&quot;p4fstat&quot; default=&quot;p4fstat&quot;
- * basedir=&quot;C:\dev\gnu&quot;&gt;
- * &lt;target name=&quot;p4fstat&quot; &gt;
- * &lt;p4fstat showfilter=&quot;all&quot;&gt;
- * &lt;fileset dir=&quot;depot&quot; includes=&quot;**\/*&quot;/&gt;
- * &lt;/p4fstat&gt;
- * &lt;/target&gt;
- * &lt;/project&gt;
- * </pre>
- *
- * @ant.task category="scm"
- */
-public class P4Fstat extends P4Base {
-
- private int changelist;
- private String addCmd = "";
- private Vector filesets = new Vector();
- private static final int DEFAULT_CMD_LENGTH = 300;
- private int cmdLength = DEFAULT_CMD_LENGTH;
- private static final int SHOW_ALL = 0;
- private static final int SHOW_EXISTING = 1;
- private static final int SHOW_NON_EXISTING = 2;
- private int show = SHOW_NON_EXISTING;
- private FStatP4OutputHandler handler;
- private StringBuffer filelist;
- private int fileNum = 0;
- private int doneFileNum = 0;
- private boolean debug = false;
-
- private static final String EXISTING_HEADER
- = "Following files exist in perforce";
- private static final String NONEXISTING_HEADER
- = "Following files do not exist in perforce";
-
- /**
- * Sets the filter that one wants applied.
- * <table>
- * <tr><th>Option</th><th>Meaning</th></tr>
- * <tr><td>all</td><td>all files under Perforce control or not</td></tr>
- * <tr><td>existing</td><td>only files under Perforce control</td></tr>
- * <tr><td>non-existing</td><td>only files not under Perforce control or not</td></tr>
- * </table>
- * @param filter should be one of all|existing|non-existing.
- */
- public void setShowFilter(String filter) {
- if (filter.equalsIgnoreCase("all")) {
- show = SHOW_ALL;
- } else if (filter.equalsIgnoreCase("existing")) {
- show = SHOW_EXISTING;
- } else if (filter.equalsIgnoreCase("non-existing")) {
- show = SHOW_NON_EXISTING;
- } else {
- throw new BuildException("P4Fstat: ShowFilter should be one of: "
- + "all, existing, non-existing");
- }
- }
-
- /**
- * Sets optionally a change list number.
- * @param changelist change list that one wants information about.
- * @throws BuildException if the change list number is negative.
- */
- public void setChangelist(int changelist) throws BuildException {
- if (changelist <= 0) {
- throw new BuildException("P4FStat: Changelist# should be a "
- + "positive number");
- }
- this.changelist = changelist;
- }
-
- /**
- * Adds a fileset to be examined by p4fstat.
- * @param set the fileset to add.
- */
- public void addFileset(FileSet set) {
- filesets.addElement(set);
- }
-
- /**
- * Executes the p4fstat task.
- * @throws BuildException if no files are specified.
- */
- public void execute() throws BuildException {
- handler = new FStatP4OutputHandler(this);
- if (P4View != null) {
- addCmd = P4View;
- }
- P4CmdOpts = (changelist > 0) ? ("-c " + changelist) : "";
-
- filelist = new StringBuffer();
-
- final int size = filesets.size();
- for (int i = 0; i < size; i++) {
- FileSet fs = (FileSet) filesets.elementAt(i);
- DirectoryScanner ds = fs.getDirectoryScanner(getProject());
-
- String[] srcFiles = ds.getIncludedFiles();
-
- if (srcFiles != null) {
- fileNum = srcFiles.length;
- for (int j = 0; j < srcFiles.length; j++) {
- File f = new File(ds.getBasedir(), srcFiles[j]);
- filelist.append(" ").append('"').append(f.getAbsolutePath()).append('"');
- doneFileNum++;
- if (filelist.length() > cmdLength) {
-
- execP4Fstat(filelist);
- filelist = new StringBuffer();
- }
- }
- if (filelist.length() > 0) {
- execP4Fstat(filelist);
- }
- } else {
- log("No files specified to query status on!", Project.MSG_WARN);
- }
- }
- if (show == SHOW_ALL || show == SHOW_EXISTING) {
- printRes(handler.getExisting(), EXISTING_HEADER);
- }
- if (show == SHOW_ALL || show == SHOW_NON_EXISTING) {
- printRes(handler.getNonExisting(), NONEXISTING_HEADER);
- }
- }
-
- /**
- * Return the number of files seen.
- * @return the number of files seen.
- */
- public int getLengthOfTask() {
- return fileNum;
- }
-
- /**
- * Return the number of passes to make.
- * IS THIS BEING USED?
- * @return number of passes (how many filesets).
- */
- int getPasses() {
- return filesets.size();
- }
-
- private void printRes(ArrayList ar, String header) {
- log(header, Project.MSG_INFO);
- final int size = ar.size();
- for (int i = 0; i < size; i++) {
- log((String) ar.get(i), Project.MSG_INFO);
- }
- }
-
- private void execP4Fstat(StringBuffer list) {
- String l = list.substring(0);
- if (debug) {
- log("Executing fstat " + P4CmdOpts + " " + addCmd + l + "\n",
- Project.MSG_INFO);
- }
- execP4Command("fstat " + P4CmdOpts + " " + addCmd + l, handler);
- }
-
-}
diff --git a/src/main/org/apache/tools/ant/taskdefs/optional/perforce/P4Handler.java b/src/main/org/apache/tools/ant/taskdefs/optional/perforce/P4Handler.java
deleted file mode 100644
index 53064a89a..000000000
--- a/src/main/org/apache/tools/ant/taskdefs/optional/perforce/P4Handler.java
+++ /dev/null
@@ -1,43 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- *
- */
-
-package org.apache.tools.ant.taskdefs.optional.perforce;
-
-import org.apache.tools.ant.BuildException;
-import org.apache.tools.ant.taskdefs.ExecuteStreamHandler;
-
-/** Interface for p4 job output stream handler. Classes implementing this interface
- * can be called back by P4Base.execP4Command();
- *
- */
-public interface P4Handler extends ExecuteStreamHandler {
-
- /**
- * processing of one line of stdout or of stderr
- * @param line a line of stdout or stderr that the implementation will process
- * @throws BuildException at the discretion of the implementation.
- */
- void process(String line) throws BuildException;
-
- /**
- * set any data to be written to P4's stdin
- * @param line the text to write to P4's stdin
- * @throws BuildException if the line cannot be processed.
- */
- void setOutput(String line) throws BuildException;
-}
diff --git a/src/main/org/apache/tools/ant/taskdefs/optional/perforce/P4HandlerAdapter.java b/src/main/org/apache/tools/ant/taskdefs/optional/perforce/P4HandlerAdapter.java
deleted file mode 100644
index 7ac13c8f0..000000000
--- a/src/main/org/apache/tools/ant/taskdefs/optional/perforce/P4HandlerAdapter.java
+++ /dev/null
@@ -1,117 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- *
- */
-
-package org.apache.tools.ant.taskdefs.optional.perforce;
-
-import java.io.ByteArrayInputStream;
-import java.io.IOException;
-import java.io.InputStream;
-import java.io.OutputStream;
-
-import org.apache.tools.ant.BuildException;
-import org.apache.tools.ant.taskdefs.PumpStreamHandler;
-/**
- * base class to manage streams around the execution of the Perforce
- * command line client
- */
-public abstract class P4HandlerAdapter implements P4Handler {
- // CheckStyle:VisibilityModifier OFF - bc
- String p4input = "";
- private PumpStreamHandler myHandler = null;
- // CheckStyle:VisibilityModifier ON
- /**
- * set any data to be written to P4's stdin
- * @param p4Input the text to write to P4's stdin
- */
- public void setOutput(String p4Input) {
- this.p4input = p4Input;
- }
- /**
- * subclasses of P4HandlerAdapter must implement this routine
- * processing of one line of stdout or of stderr
- * @param line line of stdout or stderr to process
- */
- public abstract void process(String line);
-
- /**
- * this routine gets called by the execute routine of the Execute class
- * it connects the PumpStreamHandler to the input/output/error streams of the process.
- * @throws BuildException if there is a error.
- * @see org.apache.tools.ant.taskdefs.Execute#execute
- */
- public void start() throws BuildException {
- if (p4input != null && p4input.length() > 0) {
- myHandler = new PumpStreamHandler(new P4OutputStream(this), new P4OutputStream(this),
- new ByteArrayInputStream(p4input.getBytes()));
- } else {
- myHandler = new PumpStreamHandler(new P4OutputStream(this), new P4OutputStream(this));
- }
- myHandler.setProcessInputStream(os);
- myHandler.setProcessErrorStream(es);
- myHandler.setProcessOutputStream(is);
- myHandler.start();
- }
-
- /**
- * stops the processing of streams
- * called from P4Base#execP4Command(String command, P4Handler handler)
- * @see P4Base#execP4Command(String, P4Handler)
- */
- public void stop() {
- if (myHandler != null) {
- // might never have been started, forfor example ifif p4
- // is not on the PATH
- myHandler.stop();
- }
- }
-
- // CheckStyle:VisibilityModifier OFF - bc
- OutputStream os; //Input
- InputStream is; //Output
- InputStream es; //Error
- // CheckStyle:VisibilityModifier ON
-
- /**
- * connects the handler to the input stream into Perforce
- * used indirectly by tasks requiring to send specific standard input
- * such as p4label, p4change
- * @param os the stream bringing input to the p4 executable
- * @throws IOException under unknown circumstances
- */
- public void setProcessInputStream(OutputStream os) throws IOException {
- this.os = os;
- }
-
- /**
- * connects the handler to the stderr of the Perforce process
- * @param is stderr coming from Perforce
- * @throws IOException under unknown circumstances
- */
- public void setProcessErrorStream(InputStream is) throws IOException {
- this.es = is;
- }
-
- /**
- * connects the handler to the stdout of the Perforce process
- * @param is stdout coming from Perforce
- * @throws IOException under unknown circumstances
- */
- public void setProcessOutputStream(InputStream is) throws IOException {
- this.is = is;
- }
-}
diff --git a/src/main/org/apache/tools/ant/taskdefs/optional/perforce/P4Have.java b/src/main/org/apache/tools/ant/taskdefs/optional/perforce/P4Have.java
deleted file mode 100644
index 4776f6096..000000000
--- a/src/main/org/apache/tools/ant/taskdefs/optional/perforce/P4Have.java
+++ /dev/null
@@ -1,46 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- *
- */
-/*
- * 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.BuildException;
-
-
-/** Lists Perforce files currently on client.
- *
- * P4Have simply dumps the current file version info into
- * the Ant log (or stdout).
- *
- * @ant.task category="scm"
- */
-public class P4Have extends P4Base {
-
- /**
- * Execute the Perforce <code>have</code> command.
- *
- * @throws BuildException if the command cannot be executed.
- */
- public void execute() throws BuildException {
- execP4Command("have " + P4CmdOpts + " " + P4View, new SimpleP4OutputHandler(this));
- }
-}
diff --git a/src/main/org/apache/tools/ant/taskdefs/optional/perforce/P4Integrate.java b/src/main/org/apache/tools/ant/taskdefs/optional/perforce/P4Integrate.java
deleted file mode 100644
index 294e8398a..000000000
--- a/src/main/org/apache/tools/ant/taskdefs/optional/perforce/P4Integrate.java
+++ /dev/null
@@ -1,318 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- *
- */
-/*
- * 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.BuildException;
-
-/**
- * Integrate file(s).
- * P4Change should be used to obtain a new changelist for P4Integrate,
- * although P4Integrate can open files to the default change,
- * P4Submit cannot yet submit to it.
- * Example Usage:<br>
- * &lt;p4integrate change="${p4.change}"
- * fromfile="//depot/project/dev/foo.txt" tofile="//depot/project/main/foo.txt" /&gt;
- *
- *
- * @ant.task category="scm"
- */
-
-public class P4Integrate extends P4Base {
-
- private String change = null;
- private String fromfile = null;
- private String tofile = null;
- private String branch = null;
- private boolean restoredeletedrevisions = false;
- private boolean forceintegrate = false;
- private boolean leavetargetrevision = false;
- private boolean enablebaselessmerges = false;
- private boolean simulationmode = false;
- private boolean reversebranchmappings = false;
- private boolean propagatesourcefiletype = false;
- private boolean nocopynewtargetfiles = false;
-
- /**
- * get the changelist number
- *
- * @return the changelist number set for this task
- */
- public String getChange() {
- return change;
- }
-
- /**
- * set the changelist number for the operation
- *
- * @param change An existing changelist number to assign files to; optional
- * but strongly recommended.
- */
- public void setChange(String change) {
- this.change = change;
- }
-
- /**
- * get the from file specification
- *
- * @return the from file specification
- */
- public String getFromfile() {
- return fromfile;
- }
-
- /**
- * sets the from file specification
- *
- * @param fromf the from file specification
- */
- public void setFromfile(String fromf) {
- this.fromfile = fromf;
- }
-
- /**
- * get the to file specification
- *
- * @return the to file specification
- */
- public String getTofile() {
- return tofile;
- }
-
- /**
- * sets the to file specification
- *
- * @param tof the to file specification
- */
- public void setTofile(String tof) {
- this.tofile = tof;
- }
-
- /**
- * get the branch
- *
- * @return the name of the branch
- */
- public String getBranch() {
- return branch;
- }
-
- /**
- * sets the branch
- *
- * @param br the name of the branch to use
- */
- public void setBranch(String br) {
- this.branch = br;
- }
-
- /**
- * gets the restoredeletedrevisions flag
- *
- * @return restore deleted revisions
- */
- public boolean isRestoreDeletedRevisions() {
- return restoredeletedrevisions;
- }
-
- /**
- * sets the restoredeletedrevisions flag
- *
- * @param setrest value chosen for restoredeletedrevisions
- */
- public void setRestoreDeletedRevisions(boolean setrest) {
- this.restoredeletedrevisions = setrest;
- }
-
- /**
- * gets the forceintegrate flag
- *
- * @return restore deleted revisions
- */
- public boolean isForceIntegrate() {
- return forceintegrate;
- }
-
- /**
- * sets the forceintegrate flag
- *
- * @param setrest value chosen for forceintegrate
- */
- public void setForceIntegrate(boolean setrest) {
- this.forceintegrate = setrest;
- }
-
- /**
- * gets the leavetargetrevision flag
- *
- * @return flag indicating if the target revision should be preserved
- */
- public boolean isLeaveTargetRevision() {
- return leavetargetrevision;
- }
-
- /**
- * sets the leavetargetrevision flag
- *
- * @param setrest value chosen for leavetargetrevision
- */
- public void setLeaveTargetRevision(boolean setrest) {
- this.leavetargetrevision = setrest;
- }
-
- /**
- * gets the enablebaselessmerges flag
- *
- * @return boolean indicating if baseless merges are desired
- */
- public boolean isEnableBaselessMerges() {
- return enablebaselessmerges;
- }
-
- /**
- * sets the enablebaselessmerges flag
- *
- * @param setrest value chosen for enablebaselessmerges
- */
- public void setEnableBaselessMerges(boolean setrest) {
- this.enablebaselessmerges = setrest;
- }
-
- /**
- * gets the simulationmode flag
- *
- * @return simulation mode flag
- */
- public boolean isSimulationMode() {
- return simulationmode;
- }
-
- /**
- * sets the simulationmode flag
- *
- * @param setrest value chosen for simulationmode
- */
- public void setSimulationMode(boolean setrest) {
- this.simulationmode = setrest;
- }
- /**
- * returns the flag indicating if reverse branch mappings are sought
- *
- * @return reversebranchmappings flag
- */
- public boolean isReversebranchmappings() {
- return reversebranchmappings;
- }
-
- /**
- * sets the reversebranchmappings flag
- *
- * @param reversebranchmappings flag indicating if reverse branch mappings are sought
- */
- public void setReversebranchmappings(boolean reversebranchmappings) {
- this.reversebranchmappings = reversebranchmappings;
- }
- /**
- * returns flag indicating if propagation of source file type is sought
- *
- * @return flag set to true if you want to propagate source file type for existing target files
- */
- public boolean isPropagatesourcefiletype() {
- return propagatesourcefiletype;
- }
- /**
- * sets flag indicating if one wants to propagate the source file type
- *
- * @param propagatesourcefiletype
- * set it to true if you want to change the type of existing target files
- * according to type of source file.
- */
- public void setPropagatesourcefiletype(boolean propagatesourcefiletype) {
- this.propagatesourcefiletype = propagatesourcefiletype;
- }
- /**
- * indicates intention to suppress the copying on the local hard disk of new target files.
- *
- * @return indicates intention to suppress the copying
- * on the local hard disk of new target files.
- */
- public boolean isNocopynewtargetfiles() {
- return nocopynewtargetfiles;
- }
-
- /**
- * sets nocopynewtargetfiles flag
- *
- * @param nocopynewtargetfiles set it to true to gain speed in integration by not copying on
- * the local Perforce client new target files
- */
- public void setNocopynewtargetfiles(boolean nocopynewtargetfiles) {
- this.nocopynewtargetfiles = nocopynewtargetfiles;
- }
-
- /**
- * execute the p4 integrate
- * @throws BuildException if there are missing parameters
- */
- public void execute() throws BuildException {
- if (change != null) {
- P4CmdOpts = "-c " + change;
- }
- if (this.forceintegrate) {
- P4CmdOpts = P4CmdOpts + " -f";
- }
- if (this.restoredeletedrevisions) {
- P4CmdOpts = P4CmdOpts + " -d";
- }
- if (this.leavetargetrevision) {
- P4CmdOpts = P4CmdOpts + " -h";
- }
- if (this.enablebaselessmerges) {
- P4CmdOpts = P4CmdOpts + " -i";
- }
- if (this.simulationmode) {
- P4CmdOpts = P4CmdOpts + " -n";
- }
- if (this.reversebranchmappings) {
- P4CmdOpts = P4CmdOpts + " -r";
- }
- if (this.propagatesourcefiletype) {
- P4CmdOpts = P4CmdOpts + " -t";
- }
- if (this.nocopynewtargetfiles) {
- P4CmdOpts = P4CmdOpts + "-v";
- }
- String command;
- if (branch == null && fromfile != null && tofile != null) {
- command = P4CmdOpts + " " + fromfile + " " + tofile;
- } else if (branch != null && fromfile == null && tofile != null) {
- command = P4CmdOpts + " -b " + branch + " " + tofile;
- } else if (branch != null && fromfile != null) {
- command = P4CmdOpts + " -b " + branch + " -s " + fromfile + " " + tofile;
- } else {
- throw new BuildException("you need to specify fromfile and tofile, "
- + "or branch and tofile, or branch and fromfile, or branch and fromfile and tofile ");
- }
- execP4Command("-s integrate " + command, new SimpleP4OutputHandler(this));
- }
-}
diff --git a/src/main/org/apache/tools/ant/taskdefs/optional/perforce/P4Label.java b/src/main/org/apache/tools/ant/taskdefs/optional/perforce/P4Label.java
deleted file mode 100644
index 0c2edb7e3..000000000
--- a/src/main/org/apache/tools/ant/taskdefs/optional/perforce/P4Label.java
+++ /dev/null
@@ -1,176 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- *
- */
-/*
- * 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 java.text.SimpleDateFormat;
-import java.util.Date;
-import org.apache.tools.ant.BuildException;
-import org.apache.tools.ant.Project;
-import org.apache.tools.ant.util.StringUtils;
-
-/**
- * Creates a new Perforce label and set contents to reflect current
- * client file revisions.
- *
- * Label name defaults to AntLabel if none set.
- *
- * Example Usage:
- * <pre>
- * &lt;P4Label name="MyLabel-${TSTAMP}-${DSTAMP}" desc="Auto Build Label" /&gt;
- * </pre>
- *
- * @ant.task category="scm"
- */
-public class P4Label extends P4Base {
-
- // CheckStyle:VisibilityModifier OFF - bc
- protected String name;
- protected String desc;
- protected String lock;
- // CheckStyle:VisibilityModifier ON
-
- /**
- * The name of the label; optional, default "AntLabel"
- * @param name the name of the label
- */
- public void setName(String name) {
- this.name = name;
- }
-
- /**
- *Label Description; optional
- * @param desc description of the label
- */
- public void setDesc(String desc) {
- this.desc = desc;
- }
-
- /**
- * when set to "locked", Perforce will lock the label once created; optional.
- * @param lock only admissible value "locked"
- */
- public void setLock(String lock) {
- this.lock = lock;
- }
-
- /**
- * do the work
- * @throws BuildException if failonerror has been set to true and Perforce fails
- */
- public void execute() throws BuildException {
- log("P4Label exec:", Project.MSG_INFO);
-
- if (P4View == null || P4View.length() < 1) {
- log("View not set, assuming //depot/...", Project.MSG_WARN);
- P4View = "//depot/...";
- } else {
- P4View = StringUtils.replace(P4View, ":", "\n\t");
- P4View = StringUtils.replace(P4View, ";", "\n\t");
- }
-
- if (desc == null || desc.length() < 1) {
- log("Label Description not set, assuming 'AntLabel'",
- Project.MSG_WARN);
- desc = "AntLabel";
- }
-
- if (lock != null && !lock.equalsIgnoreCase("locked")) {
- log("lock attribute invalid - ignoring", Project.MSG_WARN);
- }
-
- if (name == null || name.length() < 1) {
- SimpleDateFormat formatter
- = new SimpleDateFormat("yyyy.MM.dd-hh:mm");
- Date now = new Date();
- name = "AntLabel-" + formatter.format(now);
- log("name not set, assuming '" + name + "'", Project.MSG_WARN);
- }
-
-
- //We have to create a unlocked label first
- String newLabel =
- "Label: " + name
- + "\nDescription: " + desc
- + "\nOptions: unlocked"
- + "\nView: \n\t" + P4View;
-
- P4Handler handler = new P4HandlerAdapter() {
- public void process(String line) {
- log(line, Project.MSG_VERBOSE);
- }
- };
-
- handler.setOutput(newLabel);
-
- execP4Command("label -i", handler);
-
- execP4Command("labelsync -l " + name, new P4HandlerAdapter() {
- public void process(String line) {
- log(line, Project.MSG_VERBOSE);
- }
- });
-
-
- log("Created Label " + name + " (" + desc + ") with view:\n" + P4View,
- Project.MSG_INFO);
-
- //Now lock if required
- if (lock != null && lock.equalsIgnoreCase("locked")) {
-
- log("Modifying lock status to 'locked'", Project.MSG_INFO);
-
- final StringBuffer labelSpec = new StringBuffer();
-
- //Read back the label spec from perforce,
- //Replace Options
- //Submit back to Perforce
-
- handler = new P4HandlerAdapter() {
- public void process(String line) {
- log(line, Project.MSG_VERBOSE);
-
- if (util.match("/^Options:/", line)) {
- line = "Options: " + lock;
- }
-
- labelSpec.append(line + "\n");
- }
- };
-
-
- execP4Command("label -o " + name, handler);
- log(labelSpec.toString(), Project.MSG_DEBUG);
-
- log("Now locking label...", Project.MSG_VERBOSE);
- handler = new P4HandlerAdapter() {
- public void process(String line) {
- log(line, Project.MSG_VERBOSE);
- }
- };
-
- handler.setOutput(labelSpec.toString());
- execP4Command("label -i", handler);
- }
- }
-}
diff --git a/src/main/org/apache/tools/ant/taskdefs/optional/perforce/P4Labelsync.java b/src/main/org/apache/tools/ant/taskdefs/optional/perforce/P4Labelsync.java
deleted file mode 100644
index f27c50ced..000000000
--- a/src/main/org/apache/tools/ant/taskdefs/optional/perforce/P4Labelsync.java
+++ /dev/null
@@ -1,150 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- *
- */
-/*
- * 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.BuildException;
-import org.apache.tools.ant.Project;
-import org.apache.tools.ant.util.StringUtils;
-
-/**
- * This method syncs an existing Perforce label against the Perforce client
- * or against a set of files/revisions.
- *
- *
- * Example Usage:
- * <pre>
- * &lt;p4labelsync name="MyLabel-${TSTAMP}-${DSTAMP}"
- * view="//depot/...#head;//depot2/file1#25" /&gt;
- * </pre>
- *
- * @ant.task category="scm"
- */
-public class P4Labelsync extends P4Base {
-
- // CheckStyle:VisibilityModifier OFF - bc
- protected String name;
- private boolean add; /* -a */
- private boolean delete; /* -n */
- private boolean simulationmode; /* -n */
- // CheckStyle:VisibilityModifier ON
- /**
- * -a flag of p4 labelsync - preserve files which exist in the label,
- * but not in the current view
- * @return add attribute
- * if set to true the task will not remove any files from the label
- * only add files which were not there previously or update these where the revision has changed
- * the add attribute is the -a flag of p4 labelsync
- */
- public boolean isAdd() {
- return add;
- }
- /**
- * -a flag of p4 labelsync - preserve files which exist in the label,
- * but not in the current view
- * @param add if set to true the task will not remove any files from the label
- * only add files which were not there previously or update these where the revision has changed
- * the add attribute is the -a flag of p4 labelsync
- */
- public void setAdd(boolean add) {
- this.add = add;
- }
- /**
- * -d flag of p4 labelsync; indicates an intention of deleting from the label
- * the files specified in the view
- * @return delete attribute
- */
- public boolean isDelete() {
- return delete;
- }
-
- /**
- * -d flag of p4 labelsync; indicates an intention of deleting from the label
- * the files specified in the view
- * @param delete indicates intention of deleting from the label
- * the files specified in the view
- */
- public void setDelete(boolean delete) {
- this.delete = delete;
- }
-
-
- /**
- * The name of the label; optional, default "AntLabel"
- * @param name of the label
- */
- public void setName(String name) {
- this.name = name;
- }
- /**
- * -n flag of p4 labelsync - display changes without actually doing them
- * @return -n flag of p4 labelsync
- */
- public boolean isSimulationmode() {
- return simulationmode;
- }
- /**
- * -n flag of p4 labelsync - display changes without actually doing them
- * @param simulationmode display changes without actually doing them
- */
- public void setSimulationmode(boolean simulationmode) {
- this.simulationmode = simulationmode;
- }
-
-
- /**
- * do the work
- * @throws BuildException if the label name is not supplied
- */
- public void execute() throws BuildException {
- log("P4Labelsync exec:", Project.MSG_INFO);
-
- if (P4View != null && P4View.length() >= 1) {
- P4View = StringUtils.replace(P4View, ":", "\n\t");
- P4View = StringUtils.replace(P4View, ";", "\n\t");
- }
- if (P4View == null) {
- P4View = "";
- }
-
- if (name == null || name.length() < 1) {
- throw new BuildException("name attribute is compulsory for labelsync");
- }
-
- if (this.isSimulationmode()) {
- P4CmdOpts = P4CmdOpts + " -n";
- }
- if (this.isDelete()) {
- P4CmdOpts = P4CmdOpts + " -d";
- }
- if (this.isAdd()) {
- P4CmdOpts = P4CmdOpts + " -a";
- }
-
- execP4Command("-s labelsync -l " + name + " " + P4CmdOpts + " " + P4View,
- new SimpleP4OutputHandler(this));
-
-
- }
-}
-
diff --git a/src/main/org/apache/tools/ant/taskdefs/optional/perforce/P4OutputHandler.java b/src/main/org/apache/tools/ant/taskdefs/optional/perforce/P4OutputHandler.java
deleted file mode 100644
index f782f738c..000000000
--- a/src/main/org/apache/tools/ant/taskdefs/optional/perforce/P4OutputHandler.java
+++ /dev/null
@@ -1,34 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- *
- */
-
-package org.apache.tools.ant.taskdefs.optional.perforce;
-
-import org.apache.tools.ant.BuildException;
-
-/** Interface for p4 job output stream handler. Classes implementing this interface
- * can be called back by P4Base.execP4Command();
- *
- */
-public interface P4OutputHandler {
- /**
- * implementations will be able to process lines of output from Perforce
- * @param line a line of stdout or stderr coming from Perforce
- * @throws BuildException implementations are allowed to throw BuildException
- */
- void process(String line) throws BuildException;
-}
diff --git a/src/main/org/apache/tools/ant/taskdefs/optional/perforce/P4OutputStream.java b/src/main/org/apache/tools/ant/taskdefs/optional/perforce/P4OutputStream.java
deleted file mode 100644
index 93c22bda1..000000000
--- a/src/main/org/apache/tools/ant/taskdefs/optional/perforce/P4OutputStream.java
+++ /dev/null
@@ -1,85 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- *
- */
-
-package org.apache.tools.ant.taskdefs.optional.perforce;
-
-import java.io.OutputStream;
-import java.io.ByteArrayOutputStream;
-import java.io.IOException;
-
-/**
- * heavily inspired from LogOutputStream
- * this stream class calls back the P4Handler on each line of stdout or stderr read
- */
-public class P4OutputStream extends OutputStream {
- private P4Handler handler;
- private ByteArrayOutputStream buffer = new ByteArrayOutputStream();
- private boolean skip = false;
-
- /**
- * creates a new P4OutputStream for a P4Handler
- * @param handler the handler which will process the streams
- */
- public P4OutputStream(P4Handler handler) {
- this.handler = handler;
- }
-
- /**
- * Write the data to the buffer and flush the buffer, if a line
- * separator is detected.
- *
- * @param cc data to log (byte).
- * @throws IOException IOException if an I/O error occurs. In particular,
- * an <code>IOException</code> may be thrown if the
- * output stream has been closed.
- */
- public void write(int cc) throws IOException {
- final byte c = (byte) cc;
- if ((c == '\n') || (c == '\r')) {
- if (!skip) {
- processBuffer();
- }
- } else {
- buffer.write(cc);
- }
- skip = (c == '\r');
- }
-
-
- /**
- * Converts the buffer to a string and sends it to <code>processLine</code>
- */
- protected void processBuffer() {
- handler.process(buffer.toString());
- buffer.reset();
- }
-
- /**
- * Writes all remaining
- * @throws IOException if an I/O error occurs.
- */
- public void close() throws IOException {
- if (buffer.size() > 0) {
- processBuffer();
- }
- super.close();
- }
-
-}
-
-
diff --git a/src/main/org/apache/tools/ant/taskdefs/optional/perforce/P4Reopen.java b/src/main/org/apache/tools/ant/taskdefs/optional/perforce/P4Reopen.java
deleted file mode 100644
index 642bf07f3..000000000
--- a/src/main/org/apache/tools/ant/taskdefs/optional/perforce/P4Reopen.java
+++ /dev/null
@@ -1,60 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- *
- */
-/*
- * 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.BuildException;
-
-/**
- * Reopen Perforce checkout files between changelists.
- *
- * @ant.task category="scm"
- */
-public class P4Reopen extends P4Base {
-
- private String toChange = "";
-
- /**
- * The changelist to move files to; required.
- * @param toChange new change list number
- * @throws BuildException if the change parameter is null or empty
- */
- public void setToChange(String toChange) throws BuildException {
- if (toChange == null || toChange.equals("")) {
- throw new BuildException("P4Reopen: tochange cannot be null or empty");
- }
-
- this.toChange = toChange;
- }
-
- /**
- * do the work
- * @throws BuildException if P4View is null
- */
- public void execute() throws BuildException {
- if (P4View == null) {
- throw new BuildException("No view specified to reopen");
- }
- execP4Command("-s reopen -c " + toChange + " " + P4View, new SimpleP4OutputHandler(this));
- }
-}
diff --git a/src/main/org/apache/tools/ant/taskdefs/optional/perforce/P4Resolve.java b/src/main/org/apache/tools/ant/taskdefs/optional/perforce/P4Resolve.java
deleted file mode 100644
index 3fd7f4725..000000000
--- a/src/main/org/apache/tools/ant/taskdefs/optional/perforce/P4Resolve.java
+++ /dev/null
@@ -1,187 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- *
- */
-/*
-* 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.BuildException;
-
-/**
- * @ant.task category="scm"
- */
-public class P4Resolve extends P4Base {
- private String resolvemode = null;
-
-
- private boolean redoall; /* -f */
- private boolean simulationmode; /* -n */
- private boolean forcetextmode; /* -t */
- private boolean markersforall; /* -v */
- private static final String AUTOMATIC = "automatic";
- private static final String FORCE = "force";
- private static final String SAFE = "safe";
- private static final String THEIRS = "theirs";
- private static final String YOURS = "yours";
- private static final String[] RESOLVE_MODES = {
- AUTOMATIC,
- FORCE,
- SAFE,
- THEIRS,
- YOURS
- };
- /**
- * returns the resolve mode
- * @return returns the resolve mode
- */
- public String getResolvemode() {
- return resolvemode;
- }
- /**
- * values for resolvemode
- * <ul>
- * <li> automatic -am</li>
- * <li> force -af </li>
- * <li> safe -as </li>
- * <li> theirs -at </li>
- * <li> yours -ay </li>
- * </ul>
- * @param resolvemode one of automatic, force, safe, theirs, yours
- */
- public void setResolvemode(String resolvemode) {
- boolean found = false;
- for (int counter = 0; counter < RESOLVE_MODES.length; counter++) {
- if (resolvemode.equals(RESOLVE_MODES[counter])) {
- found = true;
- break;
- }
- }
- if (!found) {
- throw new BuildException("Unacceptable value for resolve mode");
- }
- this.resolvemode = resolvemode;
- }
-
- /**
- * allows previously resolved files to be resolved again
- * @return flag indicating whether one wants to
- * allow previously resolved files to be resolved again
- */
- public boolean isRedoall() {
- return redoall;
- }
-
- /**
- * set the redoall flag
- * @param redoall flag indicating whether one want to
- * allow previously resolved files to be resolved again
- */
- public void setRedoall(boolean redoall) {
- this.redoall = redoall;
- }
-
- /**
- * read the simulation mode flag
- * @return flag indicating whether one wants just to simulate
- * the p4 resolve operation without actually doing it
- */
- public boolean isSimulationmode() {
- return simulationmode;
- }
-
- /**
- * sets a flag
- * @param simulationmode set to true, lists the integrations which would be performed,
- * without actually doing them.
- */
- public void setSimulationmode(boolean simulationmode) {
- this.simulationmode = simulationmode;
- }
-
- /**
- * If set to true, attempts a textual merge, even for binary files
- * @return flag value
- */
- public boolean isForcetextmode() {
- return forcetextmode;
- }
-
- /**
- * If set to true, attempts a textual merge, even for binary files
- * @param forcetextmode set the flag value
- */
- public void setForcetextmode(boolean forcetextmode) {
- this.forcetextmode = forcetextmode;
- }
-
- /**
- * If set to true, puts in markers for all changes, conflicting or not
- * @return flag markersforall value
- */
- public boolean isMarkersforall() {
- return markersforall;
- }
-
- /**
- * If set to true, puts in markers for all changes, conflicting or not
- * @param markersforall flag true or false
- */
- public void setMarkersforall(boolean markersforall) {
- this.markersforall = markersforall;
- }
-
- /**
- * execute the p4 resolve
- * @throws BuildException if there is a wrong resolve mode specified
- * or no view specified
- */
- public void execute() throws BuildException {
- if (this.resolvemode.equals(AUTOMATIC)) {
- P4CmdOpts = P4CmdOpts + " -am";
- } else if (this.resolvemode.equals(FORCE)) {
- P4CmdOpts = P4CmdOpts + " -af";
- } else if (this.resolvemode.equals(SAFE)) {
- P4CmdOpts = P4CmdOpts + " -as";
- } else if (this.resolvemode.equals(THEIRS)) {
- P4CmdOpts = P4CmdOpts + " -at";
- } else if (this.resolvemode.equals(YOURS)) {
- P4CmdOpts = P4CmdOpts + " -ay";
- } else {
- throw new BuildException("unsupported or absent resolve mode");
- }
- if (P4View == null) {
- throw new BuildException("please specify a view");
- }
- if (this.isRedoall()) {
- P4CmdOpts = P4CmdOpts + " -f";
- }
- if (this.isSimulationmode()) {
- P4CmdOpts = P4CmdOpts + " -n";
- }
- if (this.isForcetextmode()) {
- P4CmdOpts = P4CmdOpts + " -t";
- }
- if (this.isMarkersforall()) {
- P4CmdOpts = P4CmdOpts + " -v";
- }
- execP4Command("-s resolve " + P4CmdOpts + " " + P4View, new SimpleP4OutputHandler(this));
- }
-}
diff --git a/src/main/org/apache/tools/ant/taskdefs/optional/perforce/P4Revert.java b/src/main/org/apache/tools/ant/taskdefs/optional/perforce/P4Revert.java
deleted file mode 100644
index 2beb89318..000000000
--- a/src/main/org/apache/tools/ant/taskdefs/optional/perforce/P4Revert.java
+++ /dev/null
@@ -1,85 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- *
- */
-/*
- * 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.BuildException;
-
-/**
- * Revert Perforce open files or files in a changelist
- *
- * @ant.task category="scm"
- */
-public class P4Revert extends P4Base {
-
- private String revertChange = null;
- private boolean onlyUnchanged = false;
-
- /**
- * The changelist to revert; optional.
- * @param revertChange : the change list to revert
- * @throws BuildException if the change list is null or empty string
- */
- public void setChange(String revertChange) throws BuildException {
- if (revertChange == null || revertChange.equals("")) {
- throw new BuildException("P4Revert: change cannot be null or empty");
- }
-
- this.revertChange = revertChange;
-
- }
-
- /**
- * flag to revert only unchanged files (p4 revert -a); optional, default false.
- * @param onlyUnchanged if set to true revert only unchanged files
- */
- public void setRevertOnlyUnchanged(boolean onlyUnchanged) {
- this.onlyUnchanged = onlyUnchanged;
- }
-
- /**
- * do the work
- * @throws BuildException if an error occurs during the execution of the Perforce command
- * and failonError is set to true
- */
- public void execute() throws BuildException {
-
- /* Here we can either revert any unchanged files in a changelist
- * or
- * any files regardless of whether they have been changed or not
- *
- *
- * The whole process also accepts a p4 filespec
- */
- String p4cmd = "-s revert";
- if (onlyUnchanged) {
- p4cmd += " -a";
- }
-
- if (revertChange != null) {
- p4cmd += " -c " + revertChange;
- }
-
- execP4Command(p4cmd + " " + P4View, new SimpleP4OutputHandler(this));
- }
-}
diff --git a/src/main/org/apache/tools/ant/taskdefs/optional/perforce/P4Submit.java b/src/main/org/apache/tools/ant/taskdefs/optional/perforce/P4Submit.java
deleted file mode 100644
index 9409b19be..000000000
--- a/src/main/org/apache/tools/ant/taskdefs/optional/perforce/P4Submit.java
+++ /dev/null
@@ -1,155 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- *
- */
-/*
- * 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.BuildException;
-import org.apache.tools.ant.Project;
-import java.util.Vector;
-
-/** Submits a numbered changelist to Perforce.
- *
- * <B>Note:</B> P4Submit cannot (yet) submit the default changelist.
- * This shouldn't be a problem with the ANT task as the usual flow is
- * P4Change to create a new numbered change followed by P4Edit then P4Submit.
- *
- * Example Usage:-<br>
- * &lt;p4submit change="${p4.change}" /&gt;
- *
- * @ant.task category="scm"
- */
-public class P4Submit extends P4Base {
-
- // CheckStyle:VisibilityModifier OFF - bc
- //ToDo: If dealing with default cl need to parse out <enter description here>
- /**
- * change list number
- */
- public String change;
- // CheckStyle:VisibilityModifier ON
- /**
- * change property
- */
- private String changeProperty;
- /**
- * needsresolveproperty
- */
- private String needsResolveProperty;
- /**
- * set the change list number to submit
- * @param change The changelist number to submit; required.
- */
- public void setChange(String change) {
- this.change = change;
- }
- /**
- * property defining the change number if the change number gets renumbered
- * @param changeProperty name of a new property to which the change number
- * will be assigned if it changes
- * @since ant 1.6.1
- */
- public void setChangeProperty(String changeProperty) {
- this.changeProperty = changeProperty;
- }
- /**
- * property defining the need to resolve the change list
- * @param needsResolveProperty a property which will be set if the change needs resolve
- * @since ant 1.6.1
- */
- public void setNeedsResolveProperty(String needsResolveProperty) {
- this.needsResolveProperty = needsResolveProperty;
- }
-
- /**
- * do the work
- * @throws BuildException if no change list specified
- */
- public void execute() throws BuildException {
- if (change != null) {
- execP4Command("submit -c " + change, (P4HandlerAdapter) new P4SubmitAdapter(this));
- } else {
- //here we'd parse the output from change -o into submit -i
- //in order to support default change.
- throw new BuildException("No change specified (no support for default change yet....");
- }
- }
-
- /**
- * internal class used to process the output of p4 submit
- */
- public class P4SubmitAdapter extends SimpleP4OutputHandler {
- /**
- * Constructor.
- * @param parent a P4Base instance.
- */
- public P4SubmitAdapter(P4Base parent) {
- super(parent);
- }
- /**
- * process a line of stdout/stderr coming from Perforce
- * @param line line of stdout or stderr coming from Perforce
- */
- public void process(String line) {
- super.process(line);
- getProject().setProperty("p4.needsresolve", "0");
- // this type of output might happen
- // Change 18 renamed change 20 and submitted.
- if (util.match("/renamed/", line)) {
- try {
- Vector myarray = new Vector();
- util.split(myarray, line);
- boolean found = false;
- final int size = myarray.size();
- for (int counter = 0; counter < size; counter++) {
- if (found) {
- String chnum = (String) myarray.elementAt(counter + 1);
- int changenumber = Integer.parseInt(chnum);
- log("Perforce change renamed " + changenumber, Project.MSG_INFO);
- getProject().setProperty("p4.change", "" + changenumber);
- if (changeProperty != null) {
- getProject().setNewProperty(changeProperty, chnum);
- }
- found = false;
- }
- if (((myarray.elementAt(counter))).equals("renamed")) {
- found = true;
- }
- }
- // NumberFormatException or ArrayOutOfBondsException could happen here
- } catch (Exception e) {
- String msg = "Failed to parse " + line + "\n"
- + " due to " + e.getMessage();
- throw new BuildException(msg, e, getLocation());
- }
- }
- if (util.match("/p4 submit -c/", line)) {
- getProject().setProperty("p4.needsresolve", "1");
- if (needsResolveProperty != null) {
- getProject().setNewProperty(needsResolveProperty, "true");
- }
- }
-
- }
- }
-
-}
diff --git a/src/main/org/apache/tools/ant/taskdefs/optional/perforce/P4Sync.java b/src/main/org/apache/tools/ant/taskdefs/optional/perforce/P4Sync.java
deleted file mode 100644
index e32966cb3..000000000
--- a/src/main/org/apache/tools/ant/taskdefs/optional/perforce/P4Sync.java
+++ /dev/null
@@ -1,107 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- *
- */
-/*
- * 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.BuildException;
-import org.apache.tools.ant.Project;
-
-/** Synchronize client space to a Perforce depot view.
- *
- * The API allows additional functionality of the "p4 sync" command
- * (such as "p4 sync -f //...#have" or other exotic invocations).</P>
- *
- * <b>Example Usage:</b>
- * <table border="1">
- * <th>Function</th><th>Command</th>
- * <tr><td>Sync to head using P4USER, P4PORT and P4CLIENT settings specified</td>
- * <td>&lt;P4Sync <br>P4view="//projects/foo/main/source/..." <br>
- * P4User="fbloggs" <br>P4Port="km01:1666" <br>P4Client="fbloggsclient" /&gt;</td></tr>
- * <tr><td>Sync to head using P4USER, P4PORT and P4CLIENT settings defined in environment</td>
- * <td>&lt;P4Sync P4view="//projects/foo/main/source/..." /&gt;</td></tr>
- * <tr><td>Force a re-sync to head, refreshing all files</td>
- * <td>&lt;P4Sync force="yes" P4view="//projects/foo/main/source/..." /&gt;</td></tr>
- * <tr><td>Sync to a label</td><td>&lt;P4Sync label="myPerforceLabel" /&gt;</td></tr>
- * </table>
- *
- * @todo Add decent label error handling for non-exsitant labels
- *
- * @ant.task category="scm"
- */
-public class P4Sync extends P4Base {
-
- // CheckStyle:VisibilityModifier OFF - bc
- String label;
- private String syncCmd = "";
- // CheckStyle:VisibilityModifier ON
-
- /**
- * Label to sync client to; optional.
- * @param label name of a label against which one want to sync
- * @throws BuildException if label is null or empty string
- */
- public void setLabel(String label) throws BuildException {
- if (label == null || label.equals("")) {
- throw new BuildException("P4Sync: Labels cannot be Null or Empty");
- }
-
- this.label = label;
-
- }
-
-
- /**
- * force a refresh of files, if this attribute is set; false by default.
- * @param force sync all files, whether they are supposed to be already uptodate or not.
- * @throws BuildException if a label is set and force is null
- */
- public void setForce(String force) throws BuildException {
- if (force == null && !label.equals("")) {
- throw new BuildException("P4Sync: If you want to force, set force to non-null string!");
- }
- P4CmdOpts = "-f";
- }
-
- /**
- * do the work
- * @throws BuildException if an error occurs during the execution of the Perforce command
- * and failOnError is set to true
- */
- public void execute() throws BuildException {
-
-
- if (P4View != null) {
- syncCmd = P4View;
- }
-
-
- if (label != null && !label.equals("")) {
- syncCmd = syncCmd + "@" + label;
- }
-
-
- log("Execing sync " + P4CmdOpts + " " + syncCmd, Project.MSG_VERBOSE);
-
- execP4Command("-s sync " + P4CmdOpts + " " + syncCmd, new SimpleP4OutputHandler(this));
- }
-}
diff --git a/src/main/org/apache/tools/ant/taskdefs/optional/perforce/SimpleP4OutputHandler.java b/src/main/org/apache/tools/ant/taskdefs/optional/perforce/SimpleP4OutputHandler.java
deleted file mode 100644
index 3e5a3cd95..000000000
--- a/src/main/org/apache/tools/ant/taskdefs/optional/perforce/SimpleP4OutputHandler.java
+++ /dev/null
@@ -1,96 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- *
- */
-/*
- * 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.BuildException;
-import org.apache.tools.ant.Project;
-import org.apache.tools.ant.util.StringUtils;
-
-/**
- * simple implementation of P4HandlerAdapter used by tasks which are not
- * actually processing the output from Perforce
- */
-public class SimpleP4OutputHandler extends P4HandlerAdapter {
-
- // CheckStyle:VisibilityModifier OFF - bc
- P4Base parent;
- // CheckStyle:VisibilityModifier ON
-
- /**
- * simple constructor
- * @param parent a P4Base instance
- */
- public SimpleP4OutputHandler(P4Base parent) {
- this.parent = parent;
- }
-
- /**
- * process one line of stderr/stdout
- * if error conditions are detected, then setters are called on the
- * parent
- * @param line line of output
- * @throws BuildException does not throw exceptions any more
- */
- public void process(String line) throws BuildException {
- if (parent.util.match("/^exit/", line)) {
- return;
- }
-
- //Throw exception on errors (except up-to-date)
- //
- //When a server is down, the code expects :
- //Perforce client error:
- //Connect to server failed; check $P4PORT.
- //TCP connect to localhost:1666 failed.
- //connect: localhost:1666: Connection refused
- //Some forms producing commands (p4 -s change -o) do tag the output
- //others don't.....
- //Others mark errors as info, for example edit a file
- //which is already open for edit.....
- //Just look for error: - catches most things....
-
- if (parent.util.match("/^error:/", line)
- || parent.util.match("/^Perforce client error:/", line)) {
- //when running labelsync, if view elements are in sync,
- //Perforce produces a line of output
- //looking like this one :
- //error: //depot/file2 - label in sync.
- if (!parent.util.match("/label in sync/", line)
- && !parent.util.match("/up-to-date/", line)) {
- parent.setInError(true);
- } else {
- //sync says "error:" when a file is up-to-date
- line = parent.util.substitute("s/^[^:]*: //", line);
- }
- } else if (parent.util.match("/^info.*?:/", line)) {
- //sometimes there's "info1:
- line = parent.util.substitute("s/^[^:]*: //", line);
- }
- parent.log(line, parent.getInError() ? Project.MSG_ERR : Project.MSG_INFO);
-
- if (parent.getInError()) {
- parent.setErrorMessage(parent.getErrorMessage() + line + StringUtils.LINE_SEP);
- }
- }
-}
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
deleted file mode 100644
index 49dd91747..000000000
--- a/src/main/org/apache/tools/ant/taskdefs/optional/perforce/package.html
+++ /dev/null
@@ -1,40 +0,0 @@
-<!--
- Licensed to the Apache Software Foundation (ASF) under one or more
- contributor license agreements. See the NOTICE file distributed with
- this work for additional information regarding copyright ownership.
- The ASF licenses this file to You under the Apache License, Version 2.0
- (the "License"); you may not use this file except in compliance with
- the License. You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
--->
-<body>
-ANT Tasks for Perforce integration.
-
-These tasks provide basic P4 capabilities to automated ANT-based build systems. <b>Note:</b>
-the tasks in this package are linked against the Jakarta ORO 2.0 library which
-brings the power of Perl 5 regular expressions to Java.
-
-These tasks also require you to have the p4 (or p4.exe) client in your path.
-
-@see <A HREF="http://ant.apache.org/">Ant Project</A>
-@see <A HREF="http://www.perforce.com/">Perforce</A>
-
-@see org.apache.tools.ant.taskdefs.optional.perforce.P4Sync
-@see org.apache.tools.ant.taskdefs.optional.perforce.P4Label
-@see org.apache.tools.ant.taskdefs.optional.perforce.P4Have
-@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
-
-
-
-@author <A HREF="mailto:leslie.hughes@rubus.com">Les Hughes</A>
-</body>
diff --git a/src/tests/junit/org/apache/tools/ant/taskdefs/optional/perforce/P4ChangeTest.java b/src/tests/junit/org/apache/tools/ant/taskdefs/optional/perforce/P4ChangeTest.java
deleted file mode 100644
index 0a44ae815..000000000
--- a/src/tests/junit/org/apache/tools/ant/taskdefs/optional/perforce/P4ChangeTest.java
+++ /dev/null
@@ -1,52 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- *
- */
-package org.apache.tools.ant.taskdefs.optional.perforce;
-
-import junit.framework.TestCase;
-import org.apache.oro.text.perl.Perl5Util;
-
-/**
- * Basic testcase to ensure that backslashing is OK.
- */
-public class P4ChangeTest extends TestCase {
-
- protected P4Change p4change;
-
- public P4ChangeTest(String s) {
- super(s);
- }
-
- protected void setUp() throws Exception {
- p4change = new P4Change();
- }
-
- public void testBackslash(){
- String input = "comment with a / inside";
- String output = P4Change.backslash(input);
- assertEquals("comment with a \\/ inside", output);
- }
-
- public void testSubstitute(){
- Perl5Util util = new Perl5Util();
- String tosubstitute = "xx<here>xx";
- String input = P4Change.backslash("/a/b/c/");
- String output = util.substitute("s/<here>/" + input + "/", tosubstitute);
- assertEquals("xx/a/b/c/xx", output);
- }
-
-}
diff --git a/src/tests/junit/org/apache/tools/ant/taskdefs/optional/perforce/p4integrate.xml b/src/tests/junit/org/apache/tools/ant/taskdefs/optional/perforce/p4integrate.xml
deleted file mode 100644
index 40e0d96fd..000000000
--- a/src/tests/junit/org/apache/tools/ant/taskdefs/optional/perforce/p4integrate.xml
+++ /dev/null
@@ -1,32 +0,0 @@
-<?xml version="1.0"?>
-<!--
- Licensed to the Apache Software Foundation (ASF) under one or more
- contributor license agreements. See the NOTICE file distributed with
- this work for additional information regarding copyright ownership.
- The ASF licenses this file to You under the Apache License, Version 2.0
- (the "License"); you may not use this file except in compliance with
- the License. You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
--->
-<!-- author Antoine Levy-Lambert levylambert@tiscali-dsl.de -->
-<!-- this test demonstrates p4integrate -->
-<project name="integrate" default= "testintegrate">
- <property name="second_client" value="levyant_cygwin_test"/>
- <property name="second_client_root" value="C:\dev\test"/>
- <property name="depot_file_spec" value="//depot/foobar"/>
- <property name="depot_file_spec_2" value="//depot/hello"/>
- <target name="testintegrate">
- <p4change client="${second_client}"/>
- <property name="change1" value="${p4.change}" />
- <p4integrate client="${second_client}" change="${p4.change}" fromfile="${depot_file_spec}" tofile="${depot_file_spec_2}" forceintegrate="true" />
- <p4resolve client="${second_client}" view="${depot_file_spec_2}" resolvemode="theirs"/>
- <p4submit client="${second_client}" change="${p4.change}"/>
- </target>
-</project>