conor 2003/01/31 22:09:02 Modified: . WHATSNEW docs/manual/OptionalTasks ccm.html src/main/org/apache/tools/ant/taskdefs/optional/ccm CCMCheck.java Log: Add support for filesets to ccmcheckout PR: 14857 Submitted By: Benoit Moussaud Revision Changes Path 1.351 +1 -1 jakarta-ant/WHATSNEW Index: WHATSNEW =================================================================== RCS file: /home/cvs/jakarta-ant/WHATSNEW,v retrieving revision 1.350 retrieving revision 1.351 diff -u -w -u -r1.350 -r1.351 --- WHATSNEW 31 Jan 2003 12:15:18 -0000 1.350 +++ WHATSNEW 1 Feb 2003 06:09:02 -0000 1.351 @@ -175,7 +175,7 @@ * Shipped XML parser is now Xerces 2.3.0 -* <style> has a new attribute reuseloadedstylesheet to work around a +* <style> has a new attribute reloadstylesheet to work around a bug in widespread Xalan versions. * <tarfileset> has a new dirmode attribute to specify the permissions 1.8 +26 -6 jakarta-ant/docs/manual/OptionalTasks/ccm.html Index: ccm.html =================================================================== RCS file: /home/cvs/jakarta-ant/docs/manual/OptionalTasks/ccm.html,v retrieving revision 1.7 retrieving revision 1.8 diff -u -w -u -r1.7 -r1.8 --- ccm.html 4 Sep 2002 11:05:18 -0000 1.7 +++ ccm.html 1 Feb 2003 06:09:02 -0000 1.8 @@ -9,17 +9,18 @@ <h1>Continuus Support</h1> <ul> - <li><a href="#cccheckin">CCMCheckin</a></li> - <li><a href="#cccheckout">CCMCheckout</a></li> + <li><a href="#ccmheckin">CCMCheckin</a></li> + <li><a href="#ccmcheckout">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 wrappers around Continuus Source Manager. They have been tested - with version 5.1 on Windows 2000, but should work on other platforms with ccm installed.</p> + agains versions 5.1/6.2 on Windows 2000, but should work on other platforms with ccm installed.</p> +<p>author: <a href="mailto:[EMAIL PROTECTED]">Benoit Mousaud ([EMAIL PROTECTED]) </a></p> <hr> -<h2><a name="cccheckin">CCMCheckin</a></h2> +<h2><a name="ccmheckin">CCMCheckin</a></h2> <h3>Description</h3> Task to checkin a file <h3>Parameters</h3> @@ -60,7 +61,7 @@ Comment attribute <i>mycomment</i> is added as a task comment. The task used is the one set as the default.</p> <hr> -<h2><a name="cccheckout">CCMCheckout</a></h2> +<h2><a name="ccmheckout">CCMCheckout</a></h2> <h3>Description</h3> Task to perform a Checkout command to Continuus <h3>Parameters</h3> @@ -73,7 +74,11 @@ <tr> <td>file</td> <td>Path to the file that the command will operate on</td> - <td>Yes</td> + <td rowspan=2">Yes (file|fileset)</td> + </tr> + <tr> + <td>fileset</td> + <td>filset containing the file to be checked out</td> </tr> <tr> <td>comment</td> @@ -101,6 +106,21 @@ <p>Check out 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 default.</p> +<blockquote> + <pre><ccmcheckout comment="mycomment"> + <fileset dir="lib" > + <include name="**/*.jar" /> + </fileset> +</ccmcheckout > + </pre> +</blockquote> + +<p>Check out all the files in the <i>lib</i> directory having the <i>.jar</i> extension. + Comment attribute <i>mycomment</i> is added as a task comment + The used task is the one set as the default.</p> + + + <hr> <h2><a name="ccmcheckintask">CCMCheckinTask</a></h2> <h3>Description</h3> 1.10 +61 -8 jakarta-ant/src/main/org/apache/tools/ant/taskdefs/optional/ccm/CCMCheck.java Index: CCMCheck.java =================================================================== RCS file: /home/cvs/jakarta-ant/src/main/org/apache/tools/ant/taskdefs/optional/ccm/CCMCheck.java,v retrieving revision 1.9 retrieving revision 1.10 diff -u -w -u -r1.9 -r1.10 --- CCMCheck.java 31 Oct 2002 15:12:52 -0000 1.9 +++ CCMCheck.java 1 Feb 2003 06:09:02 -0000 1.10 @@ -1,7 +1,7 @@ /* * The Apache Software License, Version 1.1 * - * Copyright (c) 2001-2002 The Apache Software Foundation. All rights + * Copyright (c) 2001-2003 The Apache Software Foundation. All rights * reserved. * * Redistribution and use in source and binary forms, with or without @@ -54,10 +54,15 @@ package org.apache.tools.ant.taskdefs.optional.ccm; + import java.io.File; +import java.util.Vector; import org.apache.tools.ant.BuildException; +import org.apache.tools.ant.DirectoryScanner; import org.apache.tools.ant.Project; import org.apache.tools.ant.types.Commandline; +import org.apache.tools.ant.types.FileSet; + /** * Class common to all check commands (checkout, checkin,checkin default task); @@ -70,6 +75,8 @@ private String comment = null; private String task = null; + protected Vector filesets = new Vector(); + public CCMCheck() { super(); } @@ -87,6 +94,7 @@ * @param v Value to assign to file. */ public void setFile(File v) { + log("working file "+v, Project.MSG_VERBOSE); this.file = v; } @@ -126,6 +134,14 @@ /** + * Adds a set of files to copy. + */ + public void addFileset(FileSet set) { + filesets.addElement(set); + } + + + /** * Executes the task. * <p> * Builds a command line to execute ccm and then calls Exec's run method @@ -133,18 +149,55 @@ * </p> */ public void execute() throws BuildException { + + if (file == null && filesets.size() == 0) { + throw new BuildException( + "Specify at least one source - a file or a fileset."); + } + + if (file != null && file.exists() && file.isDirectory()) { + throw new BuildException("CCMCheck cannot be generated for directories"); + } + + if (file != null && filesets.size() > 0) { + throw new BuildException("Choose between file and fileset !"); + } + + if ( getFile() !=null ) { + doit(); + return ; + } + + int sizeofFileSet = filesets.size(); + for (int i = 0; i < sizeofFileSet; i++) { + FileSet fs = (FileSet) filesets.elementAt(i); + DirectoryScanner ds = fs.getDirectoryScanner(project); + String[] srcFiles = ds.getIncludedFiles(); + for (int j = 0; j < srcFiles.length; j++) { + File src = new File(fs.getDir(project), srcFiles[j]); + setFile(src); + doit(); + } + } + } + + /** + * check the file given by getFile(). + */ + private void doit() + { Commandline commandLine = new Commandline(); - 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 + // as specified in the CCM.EXE help + commandLine.setExecutable(getCcmCommand()); commandLine.createArgument().setValue(getCcmAction()); checkOptions(commandLine); - result = run(commandLine); + int result = run(commandLine); if (result != 0) { String msg = "Failed executing: " + commandLine.toString(); throw new BuildException(msg, getLocation()); @@ -164,11 +217,11 @@ 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 () + } } /**
--------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]