this is the correction association ccmcheckin=org.apache.tools.ant.taskdefs.optional.ccm.CCMCheckin ccmcheckout=org.apache.tools.ant.taskdefs.optional.ccm.CCMCheckout ccmcheckintask=org.apache.tools.ant.taskdefs.optional.ccm.CCMCheckinDefault ccmreconfigure=org.apache.tools.ant.taskdefs.optional.ccm.CCMReconfigure ccmcreatetask=org.apache.tools.ant.taskdefs.optional.ccm.CCMCreateTask
-------------------------------------------- Benoit Moussaud - Software Team Leader [EMAIL PROTECTED] CTS - Cril Telecom Software http://www.criltelecom.com 8 rue danjou 92517 Boulogne Billancourt - France Tel: (33) 1 58 17 04 78 -----Message d'origine----- De : [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] Envoy� : vendredi 27 juillet 2001 11:15 � : [EMAIL PROTECTED] Objet : cvs commit: jakarta-ant/src/main/org/apache/tools/ant/taskdefs/optional/ccm CCMCheck.java CCMCheckin.java CCMCheckinDefault.java CCMCheckout.java CCMCreateTask.java CCMReconfigure.java Continuus.java bodewig 01/07/27 02:14:58 Modified: . WHATSNEW docs/manual optionaltasklist.html src/main/org/apache/tools/ant/taskdefs defaults.properties Added: docs/manual/OptionalTasks ccm.html src/main/org/apache/tools/ant/taskdefs/optional/ccm CCMCheck.java CCMCheckin.java CCMCheckinDefault.java CCMCheckout.java CCMCreateTask.java CCMReconfigure.java Continuus.java Log: New suite of tasks of Continuus. Submitted by: Beno�t Moussaud <[EMAIL PROTECTED]> Note that I don't use Continuus, so this patch has not been tested for functionality (it compiles and looks OK, that's all I can check). Note 2: I'm not sure whether my assumption <cccheckin>=CCMCheckin <ccmcheckintask>=ccm.CCMCheckinDefault is correct. Revision Changes Path 1.134 +1 -1 jakarta-ant/WHATSNEW Index: WHATSNEW =================================================================== RCS file: /home/cvs/jakarta-ant/WHATSNEW,v retrieving revision 1.133 retrieving revision 1.134 diff -u -r1.133 -r1.134 --- WHATSNEW 2001/07/27 06:52:50 1.133 +++ WHATSNEW 2001/07/27 09:14:58 1.134 @@ -39,7 +39,7 @@ -------------- * New tasks: ear, p4counter, record, cvspass, vsscheckin, vsscheckout, - typedef, sleep, mimemail + typedef, sleep, mimemail, set of tasks for Continuus/Synergy * Ant now uses JAXP 1.1 1.15 +1 -0 jakarta-ant/docs/manual/optionaltasklist.html Index: optionaltasklist.html =================================================================== RCS file: /home/cvs/jakarta-ant/docs/manual/optionaltasklist.html,v retrieving revision 1.14 retrieving revision 1.15 diff -u -r1.14 -r1.15 --- optionaltasklist.html 2001/07/11 16:11:31 1.14 +++ optionaltasklist.html 2001/07/27 09:14:58 1.15 @@ -15,6 +15,7 @@ <a href="OptionalTasks/antlr.html">ANTLR</a><br> <a href="OptionalTasks/cab.html">Cab</a><br> <a href="OptionalTasks/clearcase.html">Clearcase Tasks</a><br> +<a href="OptionalTasks/ccm.html">Continuus/Synergy Tasks</a><br> <a href="OptionalTasks/depend.html">Depend</a><br> <a href="OptionalTasks/ejb.html">EJB Tasks</a><br> <a href="OptionalTasks/ftp.html">FTP</a><br> 1.1 jakarta-ant/docs/manual/OptionalTasks/ccm.html Index: ccm.html =================================================================== <html> <head> <meta http-equiv="Content-Language" content="en-us"> <title>Ant</title> </head> <body> <h1>Continuus Support</h1> <ul> <li><a href="#cccheckin">CCMCheckin</a></li> <li><a href="#cccheckout">CCMCheckout</a></li> <li><a href="#ccmcheckintask">CCMCheckinTask</a></li> <li><a href="#ccmreconfigure">CCMReconfigure</a></li> <li><a href="#ccmcreatetask">CCMCreateTask</a></li> </ul> <p>These ant tasks are wrapper around Continnus Source Manager. It have been tested under version 5.1 on Windows 2000.</p> <hr> <h2><a name="cccheckin">CCMCheckin</a></h2> <h3>Description</h3> Task to perform a Checkin command to Continnus <h3>Parameters</h3> <table border="1" cellpadding="2" cellspacing="0" width="598"> <tr> <th>Attribute</th> <th>Values</th> <th>Required</th> </tr> <tr> <td>file</td> <td>Path to the file that the command will operate on</td> <td>Yes</td> </tr> <tr> <td>comment</td> <td>Specify a comment.</td> <td>No</td> </tr> <tr> <td>task</td> <td>Specify the task number used to checkin the file (may use 'default')</td> <td>No</td> </tr> <tr> <td>ccmcommand</td> <td>path to the ccm excutable file. default serach into the PATH</td> <td>No</td> </tr> </table> <h3>Examples</h3> <blockquote> <pre><ccmcheckin file="c:/wa/com/foo/MyFile.java" comment="mycomment" /> </pre> </blockquote> <p>Does a Continnuus <i>checkin</i> on the file <i>c:/wa/com/foo/MyFile.java</i>. Comment attribute <i>mycomment</i> is added as a task comment. The task used is the one set as the fault.</p> <hr> <h2><a name="cccheckout">CCMCheckout</a></h2> <h3>Description</h3> Task to perform a Checkout command to Continuus <h3>Parameters</h3> <table border="1" cellpadding="2" cellspacing="0" width="614"> <tr> <th width="84">Attribute</th> <th width="396">Values</th> <th width="24">Required</th> </tr> <tr> <td width="84">file</td> <td width="396">Path to the file that the command will operate on</td> <td width="24">Yes</td> </tr> <tr> <td width="84">comment</td> <td width="396">Specify a comment.</td> <td width="24">No</td> </tr> <tr> <td width="84">task</td> <td width="396">Specify the task number used to checkin the file (may use 'default')</td> <td width="24">No</td> </tr> <tr> <td width="84">ccmcommand</td> <td width="396">path to the ccm excutable file. default serach into the PATH</td> <td width="24">No</td> </tr> </table> <h3>Examples</h3> <blockquote> <pre><ccmcheckin file="c:/wa/com/foo/MyFile.java" comment="mycomment"/> </pre> </blockquote> <p>Does a Continnuus <i>checkout</i> on the file <i>c:/wa/com/foo/MyFile.java</i>. Comment attribute <i>mycomment</i> is added as a task comment The used task is the one set as the fault.</p> <hr> <h2><a name="ccmcheckintask">CCMCheckinTask</a></h2> <h3>Description</h3> Task to perform a check in default task command to Continnuus <h3>Parameters</h3> <table border="1" cellpadding="2" cellspacing="0"> <tr> <th>Attribute</th> <th>Values</th> <th>Required</th> </tr> <tr> <td>comment</td> <td>Specify a comment.</td> <td>No</td> </tr> <tr> <td>task</td> <td>Specify the task number used to checkin the file (may use 'default')</td> <td>No</td> </tr> <tr> <td>ccmcommand</td> <td>path to the ccm excutable file. default serach into the PATH</td> <td>No</td> </tr> </table> <h3>Examples </h3> <blockquote> <pre><ccmcheckintask comment="blahblah/> </pre> </blockquote> <p>Does a Checkin default task on all the checkou-ed filed in the current task.</p> <hr> <h2><a name="ccmreconfigure">CCMReconfigure</a></h2> <h3>Description</h3> Task to perform an reconfigure command to Continuus. <h3>Parameters</h3> <table border="1" cellpadding="2" cellspacing="0"> <tr> <th>Attribute</th> <th>Values</th> <th>Required</th> </tr> <tr> <td>recurse</td> <td>recurse on subproject (default false)</td> <td>No</td> </tr> <tr> <td>verbose</td> <td>do a verbose reconfigure operation (default false)</td> <td>No</td> </tr> <tr> <td>ccmproject</td> <td>Specifies the ccm project on which the operation is applied.</td> <td>Yes</td> </tr> <tr> <td>ccmcommand</td> <td>path to the ccm excutable file. default serach into the PATH</td> <td>No</td> </tr> </table> <h3>Examples</h3> <blockquote> <pre><ccmreconfigure ccmproject="ANTCCM_TEST#BMO_1" verbose="true" /> </pre> </blockquote> <p>Does a Continuus <i>reconfiguree</i> on the project <i>ANTCCM_TEST#BMO_1</i>. </p> <hr> <h2><a name="ccmcreatetask">CCMCreateTask</a></h2> <h3>Description</h3> Task to perform an create task command to Continuus. <h3>Parameters</h3> <table border="1" cellpadding="2" cellspacing="0"> <tr> <th>Attribute</th> <th>Values</th> <th>Required</th> </tr> <tr> <td>comment</td> <td>Specify a comment.</td> <td>No</td> </tr> <tr> <td>platform</td> <td>Specify the target platform</td> <td>No</td> </tr> <tr> <td>ccmcommand</td> <td>path to the ccm excutable file. default serach into the PATH</td> <td>No</td> </tr> <tr> <td>resolver</td> <td>Specify the resolver</td> <td>No</td> </tr> <tr> <td>release</td> <td>Specify the CCM release</td> <td>No</td> </tr> <tr> <td>subsystem</td> <td>Specify the subsystem</td> <td>No</td> </tr> <tr> <td>task</td> <td>Specify the task number used to checkin the file (may use 'default')</td> <td>No</td> </tr> </table> <h3>Examples</h3> <blockquote> <pre><ccmcreatetask resolver="{user.name}" release="ANTCCM_TEST" comment="blahblah" /> </pre> </blockquote> <p>Does a Continuus <i>create task</i> for the release <i>ANTCCM_TEST</i> to the current logged person as the resolver for this task.</p> <p> </p> </body> </html> 1.84 +5 -0 jakarta-ant/src/main/org/apache/tools/ant/taskdefs/defaults.properties Index: defaults.properties =================================================================== RCS file: /home/cvs/jakarta-ant/src/main/org/apache/tools/ant/taskdefs/defaults.proper ties,v retrieving revision 1.83 retrieving revision 1.84 diff -u -r1.83 -r1.84 --- defaults.properties 2001/07/22 13:12:29 1.83 +++ defaults.properties 2001/07/27 09:14:58 1.84 @@ -109,6 +109,11 @@ iplanet-ejbc=org.apache.tools.ant.taskdefs.optional.ejb.IPlanetEjbcTask jdepend=org.apache.tools.ant.taskdefs.optional.jdepend.JDependTask mimemail=org.apache.tools.ant.taskdefs.optional.net.MimeMail +cccheckin=org.apache.tools.ant.taskdefs.optional.ccm.CCMCheckin +cccheckout=org.apache.tools.ant.taskdefs.optional.ccm.CCMCheckout +ccmcheckintask=org.apache.tools.ant.taskdefs.optional.ccm.CCMCheckinDefault +ccmreconfigure=org.apache.tools.ant.taskdefs.optional.ccm.CCMReconfigure +ccmcreatetask=org.apache.tools.ant.taskdefs.optional.ccm.CCMCreateTask # deprecated ant tasks (kept for back compatibility) javadoc2=org.apache.tools.ant.taskdefs.Javadoc 1.1 jakarta-ant/src/main/org/apache/tools/ant/taskdefs/optional/ccm/CCMCheck.jav a Index: CCMCheck.java =================================================================== /* * The Apache Software License, Version 1.1 * * Copyright (c) 2001 The Apache Software Foundation. All rights * reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions * are met: * * 1. Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * * 2. Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in * the documentation and/or other materials provided with the * distribution. * * 3. The end-user documentation included with the redistribution, if * any, must include the following acknowlegement: * "This product includes software developed by the * Apache Software Foundation (http://www.apache.org/)." * Alternately, this acknowlegement may appear in the software itself, * if and wherever such third-party acknowlegements normally appear. * * 4. The names "The Jakarta Project", "Ant", and "Apache Software * Foundation" must not be used to endorse or promote products derived * from this software without prior written permission. For written * permission, please contact [EMAIL PROTECTED] * * 5. Products derived from this software may not be called "Apache" * nor may "Apache" appear in their names without prior written * permission of the Apache Group. * * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE * DISCLAIMED. IN NO EVENT SHALL THE APACHE SOFTWARE FOUNDATION OR * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGE. * ==================================================================== * * This software consists of voluntary contributions made by many * individuals on behalf of the Apache Software Foundation. For more * information on the Apache Software Foundation, please see * <http://www.apache.org/>. */ package org.apache.tools.ant.taskdefs.optional.ccm; import org.apache.tools.ant.*; import org.apache.tools.ant.types.Commandline; import org.apache.tools.ant.types.Path; import java.io.File; /** * Class common to all check commands (checkout, checkin,checkin default task); * @author Benoit Moussaud [EMAIL PROTECTED] */ public class CCMCheck extends Continuus { private File _file = null; private String _comment = null; private String _task = null; public CCMCheck() { super(); } /** * Get the value of file. * @return value of file. */ public File getFile() { return _file; } /** * Set the value of file. * @param v Value to assign to file. */ public void setFile(File v) { this._file = v; } /** * Get the value of comment. * @return value of comment. */ public String getComment() { return _comment; } /** * Set the value of comment. * @param v Value to assign to comment. */ public void setComment(String v) { this._comment = v; } /** * Get the value of task. * @return value of task. */ public String getTask() { return _task; } /** * Set the value of task. * @param v Value to assign to task. */ public void setTask(String v) { this._task = v; } /** * Executes the task. * <p> * Builds a command line to execute ccm and then calls Exec's run method * to execute the command line. * </p> */ public void execute() throws BuildException { Commandline commandLine = new Commandline(); Project aProj = getProject(); int result = 0; // build the command line from what we got the format is // ccm co /t .. files // as specified in the CLEARTOOL.EXE help commandLine.setExecutable(getCcmCommand()); commandLine.createArgument().setValue(getCcmAction()); checkOptions(commandLine); result = run(commandLine); if ( result != 0 ) { String msg = "Failed executing: " + commandLine.toString(); throw new BuildException(msg, location); } } /** * Check the command line options. */ private void checkOptions(Commandline cmd) { if (getComment() != null) { cmd.createArgument().setValue(FLAG_COMMENT); cmd.createArgument().setValue(getComment()); } if ( getTask() != null) { cmd.createArgument().setValue(FLAG_TASK); cmd.createArgument().setValue(getTask()); } // end of if () if ( getFile() != null ) { cmd.createArgument().setValue(_file.getAbsolutePath()); } // end of if () } /** * -comment flag -- comment to attach to the file */ public static final String FLAG_COMMENT = "/comment"; /** * -task flag -- associate checckout task with task */ public static final String FLAG_TASK = "/task"; } 1.1 jakarta-ant/src/main/org/apache/tools/ant/taskdefs/optional/ccm/CCMCheckin.j ava Index: CCMCheckin.java =================================================================== /* * The Apache Software License, Version 1.1 * * Copyright (c) 2001 The Apache Software Foundation. All rights * reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions * are met: * * 1. Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * * 2. Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in * the documentation and/or other materials provided with the * distribution. * * 3. The end-user documentation included with the redistribution, if * any, must include the following acknowlegement: * "This product includes software developed by the * Apache Software Foundation (http://www.apache.org/)." * Alternately, this acknowlegement may appear in the software itself, * if and wherever such third-party acknowlegements normally appear. * * 4. The names "The Jakarta Project", "Ant", and "Apache Software * Foundation" must not be used to endorse or promote products derived * from this software without prior written permission. For written * permission, please contact [EMAIL PROTECTED] * * 5. Products derived from this software may not be called "Apache" * nor may "Apache" appear in their names without prior written * permission of the Apache Group. * * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE * DISCLAIMED. IN NO EVENT SHALL THE APACHE SOFTWARE FOUNDATION OR * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGE. * ==================================================================== * * This software consists of voluntary contributions made by many * individuals on behalf of the Apache Software Foundation. For more * information on the Apache Software Foundation, please see * <http://www.apache.org/>. */ package org.apache.tools.ant.taskdefs.optional.ccm; import java.util.Date; /** * Task to perform Checkin command to Continuus * @author Benoit Moussaud [EMAIL PROTECTED] */ public class CCMCheckin extends CCMCheck { public CCMCheckin() { super(); setCcmAction(COMMAND_CHECKIN); setComment("Checkin "+ new Date()); } } 1.1 jakarta-ant/src/main/org/apache/tools/ant/taskdefs/optional/ccm/CCMCheckinDe fault.java Index: CCMCheckinDefault.java =================================================================== /* * The Apache Software License, Version 1.1 * * Copyright (c) 2001 The Apache Software Foundation. All rights * reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions * are met: * * 1. Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * * 2. Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in * the documentation and/or other materials provided with the * distribution. * * 3. The end-user documentation included with the redistribution, if * any, must include the following acknowlegement: * "This product includes software developed by the * Apache Software Foundation (http://www.apache.org/)." * Alternately, this acknowlegement may appear in the software itself, * if and wherever such third-party acknowlegements normally appear. * * 4. The names "The Jakarta Project", "Ant", and "Apache Software * Foundation" must not be used to endorse or promote products derived * from this software without prior written permission. For written * permission, please contact [EMAIL PROTECTED] * * 5. Products derived from this software may not be called "Apache" * nor may "Apache" appear in their names without prior written * permission of the Apache Group. * * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE * DISCLAIMED. IN NO EVENT SHALL THE APACHE SOFTWARE FOUNDATION OR * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGE. * ==================================================================== * * This software consists of voluntary contributions made by many * individuals on behalf of the Apache Software Foundation. For more * information on the Apache Software Foundation, please see * <http://www.apache.org/>. */ package org.apache.tools.ant.taskdefs.optional.ccm; /** * Task to perform Checkin Default task command to Continuus * @author Benoit Moussaud [EMAIL PROTECTED] */ public class CCMCheckinDefault extends CCMCheck { public CCMCheckinDefault(){ super(); setCcmAction(COMMAND_CHECKIN); setTask(DEFAULT_TASK); } public static final String DEFAULT_TASK = "default"; } 1.1 jakarta-ant/src/main/org/apache/tools/ant/taskdefs/optional/ccm/CCMCheckout. java Index: CCMCheckout.java =================================================================== /* * The Apache Software License, Version 1.1 * * Copyright (c) 2001 The Apache Software Foundation. All rights * reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions * are met: * * 1. Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * * 2. Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in * the documentation and/or other materials provided with the * distribution. * * 3. The end-user documentation included with the redistribution, if * any, must include the following acknowlegement: * "This product includes software developed by the * Apache Software Foundation (http://www.apache.org/)." * Alternately, this acknowlegement may appear in the software itself, * if and wherever such third-party acknowlegements normally appear. * * 4. The names "The Jakarta Project", "Ant", and "Apache Software * Foundation" must not be used to endorse or promote products derived * from this software without prior written permission. For written * permission, please contact [EMAIL PROTECTED] * * 5. Products derived from this software may not be called "Apache" * nor may "Apache" appear in their names without prior written * permission of the Apache Group. * * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE * DISCLAIMED. IN NO EVENT SHALL THE APACHE SOFTWARE FOUNDATION OR * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGE. * ==================================================================== * * This software consists of voluntary contributions made by many * individuals on behalf of the Apache Software Foundation. For more * information on the Apache Software Foundation, please see * <http://www.apache.org/>. */ package org.apache.tools.ant.taskdefs.optional.ccm; /** * Task to perform Checkout command to Continuus * @author Benoit Moussaud [EMAIL PROTECTED] */ public class CCMCheckout extends CCMCheck { public CCMCheckout(){ super(); setCcmAction(COMMAND_CHECKOUT); } } 1.1 jakarta-ant/src/main/org/apache/tools/ant/taskdefs/optional/ccm/CCMCreateTas k.java Index: CCMCreateTask.java =================================================================== /* * The Apache Software License, Version 1.1 * * Copyright (c) 2001 The Apache Software Foundation. All rights * reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions * are met: * * 1. Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * * 2. Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in * the documentation and/or other materials provided with the * distribution. * * 3. The end-user documentation included with the redistribution, if * any, must include the following acknowlegement: * "This product includes software developed by the * Apache Software Foundation (http://www.apache.org/)." * Alternately, this acknowlegement may appear in the software itself, * if and wherever such third-party acknowlegements normally appear. * * 4. The names "The Jakarta Project", "Ant", and "Apache Software * Foundation" must not be used to endorse or promote products derived * from this software without prior written permission. For written * permission, please contact [EMAIL PROTECTED] * * 5. Products derived from this software may not be called "Apache" * nor may "Apache" appear in their names without prior written * permission of the Apache Group. * * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE * DISCLAIMED. IN NO EVENT SHALL THE APACHE SOFTWARE FOUNDATION OR * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGE. * ==================================================================== * * This software consists of voluntary contributions made by many * individuals on behalf of the Apache Software Foundation. For more * information on the Apache Software Foundation, please see * <http://www.apache.org/>. */ package org.apache.tools.ant.taskdefs.optional.ccm; import java.io.BufferedReader; import java.io.File; import java.io.IOException; import java.io.InputStream; import java.io.InputStreamReader; import java.io.OutputStream; import java.lang.NullPointerException; import org.apache.tools.ant.*; import org.apache.tools.ant.taskdefs.ExecuteStreamHandler; import org.apache.tools.ant.types.Commandline; import org.apache.tools.ant.types.Path; /** * Task allows to create new ccm task and set it as the default * @author Benoit Moussaud [EMAIL PROTECTED] */ public class CCMCreateTask extends Continuus implements ExecuteStreamHandler { private String comment = null; private String platform = null; private String resolver = null; private String release = null; private String subSystem = null; private String task = null; public CCMCreateTask() { super(); setCcmAction(COMMAND_CREATE_TASK); } /** * Executes the task. * <p> * Builds a command line to execute ccm and then calls Exec's run method * to execute the command line. * </p> */ public void execute() throws BuildException { Commandline commandLine = new Commandline(); Project aProj = getProject(); int result = 0; // build the command line from what we got the format // as specified in the CCM.EXE help commandLine.setExecutable(getCcmCommand()); commandLine.createArgument().setValue(getCcmAction()); checkOptions(commandLine); result = run(commandLine,this); if ( result != 0 ) { String msg = "Failed executing: " + commandLine.toString(); throw new BuildException(msg, location); } //create task ok, set this task as the default one Commandline commandLine2 = new Commandline(); commandLine2.setExecutable(getCcmCommand()); commandLine2.createArgument().setValue(COMMAND_DEFAULT_TASK); commandLine2.createArgument().setValue(getTask()); log(commandLine.toString(),Project.MSG_DEBUG); result = run(commandLine2); if ( result != 0 ) { String msg = "Failed executing: " + commandLine2.toString(); throw new BuildException(msg, location); } } /** * Check the command line options. */ private void checkOptions(Commandline cmd) { if (getComment() != null) { cmd.createArgument().setValue(FLAG_COMMENT); cmd.createArgument().setValue("\""+getComment()+"\""); } if ( getPlatform() != null) { cmd.createArgument().setValue(FLAG_PLATFORM); cmd.createArgument().setValue(getPlatform()); } // end of if () if ( getResolver() != null) { cmd.createArgument().setValue(FLAG_RESOLVER); cmd.createArgument().setValue(getResolver()); } // end of if () if ( getSubSystem() != null) { cmd.createArgument().setValue(FLAG_SUBSYSTEM); cmd.createArgument().setValue("\""+getSubSystem()+"\""); } // end of if () if ( getRelease() != null ) { cmd.createArgument().setValue(FLAG_RELEASE); cmd.createArgument().setValue(getRelease()); } // end of if () } /** * Get the value of comment. * @return value of comment. */ public String getComment() { return comment; } /** * Set the value of comment. * @param v Value to assign to comment. */ public void setComment(String v) { this.comment = v; } /** * Get the value of platform. * @return value of platform. */ public String getPlatform() { return platform; } /** * Set the value of platform. * @param v Value to assign to platform. */ public void setPlatform(String v) { this.platform = v; } /** * Get the value of resolver. * @return value of resolver. */ public String getResolver() { return resolver; } /** * Set the value of resolver. * @param v Value to assign to resolver. */ public void setResolver(String v) { this.resolver = v; } /** * Get the value of release. * @return value of release. */ public String getRelease() { return release; } /** * Set the value of release. * @param v Value to assign to release. */ public void setRelease(String v) { this.release = v; } /** * Get the value of subSystem. * @return value of subSystem. */ public String getSubSystem() { return subSystem; } /** * Set the value of subSystem. * @param v Value to assign to subSystem. */ public void setSubSystem(String v) { this.subSystem = v; } /** * Get the value of task. * @return value of task. */ public String getTask() { return task; } /** * Set the value of task. * @param v Value to assign to task. */ public void setTask(String v) { this.task = v; } /** * /comment -- comments associated to the task */ public static final String FLAG_COMMENT = "/synopsis"; /** * /platform flag -- target platform */ public static final String FLAG_PLATFORM = "/plat"; /** * /resolver flag */ public static final String FLAG_RESOLVER = "/resolver"; /** * /release flag */ public static final String FLAG_RELEASE = "/release"; /** * /release flag */ public static final String FLAG_SUBSYSTEM = "/subsystem"; /** * -task flag -- associate checckout task with task */ public static final String FLAG_TASK = "/task"; // implementation of org.apache.tools.ant.taskdefs.ExecuteStreamHandler interface /** * * @exception java.io.IOException <description> */ public void start() throws IOException { } /** * */ public void stop(){ } /** * * @param param1 <description> * @exception java.io.IOException <description> */ public void setProcessInputStream(OutputStream param1) throws IOException { } /** * * @param param1 <description> * @exception java.io.IOException <description> */ public void setProcessErrorStream(InputStream is) throws IOException { BufferedReader reader = new BufferedReader(new InputStreamReader(is)); String s = reader.readLine(); if ( s != null) { log("err "+s,Project.MSG_DEBUG); } // end of if () } /** * read the output stream to retrieve the new task number. * @param is InputStream * @exception java.io.IOException */ public void setProcessOutputStream(InputStream is) throws IOException { String buffer = ""; try { BufferedReader reader = new BufferedReader(new InputStreamReader(is)); buffer = reader.readLine(); if ( buffer != null) { log("buffer:" +buffer,Project.MSG_DEBUG); String taskstring = buffer.substring(buffer.indexOf(' ')).trim(); taskstring = taskstring.substring(0,taskstring.lastIndexOf(' ')).trim(); setTask(taskstring); log("task is "+getTask(),Project.MSG_DEBUG); } // end of if () } catch ( NullPointerException npe) { log("error procession stream , null pointer exception",Project.MSG_ERR); npe.printStackTrace(); throw new BuildException(npe.getClass().getName()); } // end of catch catch (Exception e) { log("error procession stream "+e.getMessage(),Project.MSG_ERR); throw new BuildException(e.getMessage()); } // end of try-catch } } 1.1 jakarta-ant/src/main/org/apache/tools/ant/taskdefs/optional/ccm/CCMReconfigu re.java Index: CCMReconfigure.java =================================================================== /* * The Apache Software License, Version 1.1 * * Copyright (c) 2001 The Apache Software Foundation. All rights * reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions * are met: * * 1. Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * * 2. Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in * the documentation and/or other materials provided with the * distribution. * * 3. The end-user documentation included with the redistribution, if * any, must include the following acknowlegement: * "This product includes software developed by the * Apache Software Foundation (http://www.apache.org/)." * Alternately, this acknowlegement may appear in the software itself, * if and wherever such third-party acknowlegements normally appear. * * 4. The names "The Jakarta Project", "Ant", and "Apache Software * Foundation" must not be used to endorse or promote products derived * from this software without prior written permission. For written * permission, please contact [EMAIL PROTECTED] * * 5. Products derived from this software may not be called "Apache" * nor may "Apache" appear in their names without prior written * permission of the Apache Group. * * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE * DISCLAIMED. IN NO EVENT SHALL THE APACHE SOFTWARE FOUNDATION OR * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGE. * ==================================================================== * * This software consists of voluntary contributions made by many * individuals on behalf of the Apache Software Foundation. For more * information on the Apache Software Foundation, please see * <http://www.apache.org/>. */ package org.apache.tools.ant.taskdefs.optional.ccm; import java.io.BufferedReader; import java.io.File; import java.io.IOException; import java.io.InputStream; import java.io.InputStreamReader; import java.io.OutputStream; import org.apache.tools.ant.*; import org.apache.tools.ant.types.Commandline; import org.apache.tools.ant.types.Path; /** * Task allows to reconfigure a project, recurcively or not * @author Benoit Moussaud [EMAIL PROTECTED] */ public class CCMReconfigure extends Continuus { private String project = null; private boolean recurse = false; private boolean verbose = false; public CCMReconfigure() { super(); setCcmAction(COMMAND_RECONFIGURE); } /** * Executes the task. * <p> * Builds a command line to execute ccm and then calls Exec's run method * to execute the command line. * </p> */ public void execute() throws BuildException { Commandline commandLine = new Commandline(); Project aProj = getProject(); int result = 0; // build the command line from what we got the format // as specified in the CCM.EXE help commandLine.setExecutable(getCcmCommand()); commandLine.createArgument().setValue(getCcmAction()); checkOptions(commandLine); result = run(commandLine); if ( result != 0 ) { String msg = "Failed executing: " + commandLine.toString(); throw new BuildException(msg, location); } } /** * Check the command line options. */ private void checkOptions(Commandline cmd) { if ( isRecurse() == true) { cmd.createArgument().setValue(FLAG_RECURSE); } // end of if () if ( isVerbose() == true) { cmd.createArgument().setValue(FLAG_VERBOSE); } // end of if () if (getCcmProject() != null) { cmd.createArgument().setValue(FLAG_PROJECT); cmd.createArgument().setValue(getCcmProject()); } } /** * Get the value of project. * @return value of project. */ public String getCcmProject() { return project; } /** * Set the value of project. * @param v Value to assign to project. */ public void setCcmProject(String v) { this.project = v; } /** * Get the value of recurse. * @return value of recurse. */ public boolean isRecurse() { return recurse; } /** * Set the value of recurse. * @param v Value to assign to recurse. */ public void setRecurse(boolean v) { this.recurse = v; } /** * Get the value of verbose. * @return value of verbose. */ public boolean isVerbose() { return verbose; } /** * Set the value of verbose. * @param v Value to assign to verbose. */ public void setVerbose(boolean v) { this.verbose = v; } /** * /recurse -- */ public static final String FLAG_RECURSE = "/recurse"; /** * /recurse -- */ public static final String FLAG_VERBOSE = "/verbose"; /** * /project flag -- target project */ public static final String FLAG_PROJECT = "/project"; } 1.1 jakarta-ant/src/main/org/apache/tools/ant/taskdefs/optional/ccm/Continuus.ja va Index: Continuus.java =================================================================== /* * The Apache Software License, Version 1.1 * * Copyright (c) 2001 The Apache Software Foundation. All rights * reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions * are met: * * 1. Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * * 2. Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in * the documentation and/or other materials provided with the * distribution. * * 3. The end-user documentation included with the redistribution, if * any, must include the following acknowlegement: * "This product includes software developed by the * Apache Software Foundation (http://www.apache.org/)." * Alternately, this acknowlegement may appear in the software itself, * if and wherever such third-party acknowlegements normally appear. * * 4. The names "The Jakarta Project", "Ant", and "Apache Software * Foundation" must not be used to endorse or promote products derived * from this software without prior written permission. For written * permission, please contact [EMAIL PROTECTED] * * 5. Products derived from this software may not be called "Apache" * nor may "Apache" appear in their names without prior written * permission of the Apache Group. * * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE * DISCLAIMED. IN NO EVENT SHALL THE APACHE SOFTWARE FOUNDATION OR * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGE. * ==================================================================== * * This software consists of voluntary contributions made by many * individuals on behalf of the Apache Software Foundation. For more * information on the Apache Software Foundation, please see * <http://www.apache.org/>. */ package org.apache.tools.ant.taskdefs.optional.ccm; import org.apache.tools.ant.*; import org.apache.tools.ant.taskdefs.Execute; import org.apache.tools.ant.taskdefs.LogStreamHandler; import org.apache.tools.ant.taskdefs.ExecuteStreamHandler; import org.apache.tools.ant.types.Commandline; import java.io.File; /** * A base class for creating tasks for executing commands on Continuus 5.1 * <p> * The class extends the task as it operates by executing the ccm.exe program * supplied with Continuus/Synergy. By default the task expects the ccm executable to be * in the path, * you can override this be specifying the ccmdir attribute. * </p> * * @author Benoit Moussaud [EMAIL PROTECTED] */ public abstract class Continuus extends Task { private String _ccmDir = ""; private String _ccmAction = ""; /** * Get the value of ccmAction. * @return value of ccmAction. */ public String getCcmAction() { return _ccmAction; } /** * Set the value of ccmAction. * @param v Value to assign to ccmAction. */ public void setCcmAction(String v) { this._ccmAction = v; } /** * Set the directory where the ccm executable is located * @param dir the directory containing the ccm executable */ public final void setCcmDir(String dir) { _ccmDir = project.translatePath(dir); } /** * Builds and returns the command string to execute ccm * @return String containing path to the executable */ protected final String getCcmCommand() { String toReturn = _ccmDir; if ( !toReturn.equals("") && !toReturn.endsWith("/") ) { toReturn += "/"; } toReturn += CCM_EXE; return toReturn; } protected int run(Commandline cmd, ExecuteStreamHandler handler) { try { Execute exe = new Execute(handler); exe.setAntRun(getProject()); exe.setWorkingDirectory(getProject().getBaseDir()); exe.setCommandline(cmd.getCommandline()); return exe.execute(); } catch (java.io.IOException e) { throw new BuildException(e, location); } } protected int run(Commandline cmd) { return run(cmd,new LogStreamHandler(this, Project.MSG_VERBOSE, Project.MSG_WARN)); } /** * Constant for the thing to execute */ private static final String CCM_EXE = "ccm"; /** * The 'CreateTask' command */ public static final String COMMAND_CREATE_TASK = "create_task"; /** * The 'Checkout' command */ public static final String COMMAND_CHECKOUT = "co"; /** * The 'Checkin' command */ public static final String COMMAND_CHECKIN = "ci"; /** * The 'Reconfigure' command */ public static final String COMMAND_RECONFIGURE = "reconfigure"; /** * The 'Reconfigure' command */ public static final String COMMAND_DEFAULT_TASK = "default_task"; }
