ant-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From bode...@apache.org
Subject cvs commit: jakarta-ant/src/main/org/apache/tools/ant/taskdefs/optional/vss MSVSSADD.java MSVSSCP.java MSVSS.java
Date Thu, 21 Mar 2002 08:33:56 GMT
bodewig     02/03/21 00:33:56

  Modified:    docs/manual/OptionalTasks vss.html
               src/main/org/apache/tools/ant/taskdefs defaults.properties
               src/main/org/apache/tools/ant/taskdefs/optional/vss
                        MSVSS.java
  Added:       src/main/org/apache/tools/ant/taskdefs/optional/vss
                        MSVSSADD.java MSVSSCP.java
  Log:
  additional vss tasks (add and cp).
  
  not really tested, but they look the same as all the other vss tasks
  that went in untested 8-)
  
  PR: 7153
  Submitted by:	Nigel Magnay <Nigel.Magnay@Parsec.co.uk>
  
  Revision  Changes    Path
  1.6       +129 -1    jakarta-ant/docs/manual/OptionalTasks/vss.html
  
  Index: vss.html
  ===================================================================
  RCS file: /home/cvs/jakarta-ant/docs/manual/OptionalTasks/vss.html,v
  retrieving revision 1.5
  retrieving revision 1.6
  diff -u -r1.5 -r1.6
  --- vss.html	3 Feb 2002 22:09:09 -0000	1.5
  +++ vss.html	21 Mar 2002 08:33:56 -0000	1.6
  @@ -13,6 +13,7 @@
       <li>Martin Poeschl (<a href="mailto:mpoeschl@marmot.at">mpoeschl@marmot.at</a>)</li>
       <li>Phillip Wells</li>
       <li>Jon Skeet (<a href="mailto:jon.skeet@peramon.com">jon.skeet@peramon.com</a>)</li>
  +    <li>Nigel Magnay (<a href="mailto:nigel.magnay@parsec.co.uk">nigel.magnay@parsec.co.uk</a>)</li>
    </ul>
   <p>2001/04/29</p>
   <hr>
  @@ -53,6 +54,14 @@
           <td><a href="#vsscheckout">vsscheckout</a></td>
           <td>Copies a file from the current project to the current folder, for the
purpose of editing.</td>
       </tr>
  +    <tr>
  +        <td><a href="#vssadd">vssadd</a></td>
  +        <td>Adds a new file into the VSS Archive</td>
  +    </tr>
  +    <tr>
  +        <td><a href="#vsscp">vsscp</a></td>
  +        <td>Change the current project being used in VSS</td>
  +    </tr>
   </table>
   
   <hr>
  @@ -536,7 +545,126 @@
   </p>
   <hr>
   
  -<p align="center">Copyright &copy; 2001 Apache Software Foundation. All rights
  +<!-- VSSADD -->
  +
  +<h2><a name="vssadd">VssAdd</a></h2>
  +<h3>Description</h3>
  +Task to perform ADD commands to Microsoft Visual SourceSafe.
  +<h3>Parameters</h3>
  +<table border="1" cellpadding="2" cellspacing="0">
  +  <tr>
  +    <th>Attribute</th>
  +    <th>Values</th>
  +    <th>Required</th>
  +  </tr>
  +  <tr>
  +     <td>localpath</td>
  +     <td>Specify the local file(s) to add to VSS</td>
  +     <td>Yes</td>
  +  </tr>
  +  <tr>
  +     <td>login</td>
  +     <td>username[,password] - The username and password needed to get access
  +         to VSS. Note that you may need to specify both (if you have a password) - 
  +         Ant/VSS will hang if you leave the password out and VSS does not accept 
  +         login without a password. </td>
  +     <td>No</td>
  +  </tr>
  +  <tr>
  +     <td>ssdir</td>
  +     <td>directory where <code>ss.exe</code> resides. By default the
  +         task expects it to be in the PATH.</td>
  +     <td>No</td>
  +  </tr>
  +  <tr>
  +     <td>serverPath</td>
  +     <td>directory where <code>srssafe.ini</code> resides.</td>
  +     <td>No</td>
  +  </tr>
  +  <tr>
  +     <td>writable</td>
  +     <td>true or false</td>
  +     <td>No</td>
  +  </tr>
  +  <tr>
  +     <td>recursive</td>
  +     <td>true or false</td>
  +     <td>No</td>
  +  </tr>
  +  <tr>
  +     <td>comment</td>
  +     <td>Comment to use for the files that where checked in.</td>
  +     <td>No</td>
  +  </tr>
  +  <tr>
  +     <td>autoresponse</td>
  +     <td>'Y', 'N' or empty. Specify how to reply to questions from VSS.</td>
  +     <td>No</td>
  +  </tr>
  +</table>
  +
  +<h3>Examples</h3>
  +<blockquote>
  +<pre>
  +&lt;vssadd localpath=&quot;D:\build\build.00012.zip&quot;
  +            comment=&quot;Added by automatic build&quot;/&gt;
  +</pre>
  +</blockquote>
  +<p>Add the file named build.00012.zip into the project current working
  +directory (see vsscp).</p>
  +<hr>
  +
  +<!-- VSSCP -->
  +
  +<h2><a name="vsscp">VssCp</a></h2>
  +<h3>Description</h3>
  +<p>Task to perform CP (Change Project) commands to Microsoft Visual SourceSafe.</p>
  +<p>This task is typically used before a VssAdd in order to set the target project</p>
  +<h3>Parameters</h3>
  +<table border="1" cellpadding="2" cellspacing="0">
  +  <tr>
  +    <th>Attribute</th>
  +    <th>Values</th>
  +    <th>Required</th>
  +  </tr>
  +  <tr>
  +     <td>vsspath</td>
  +     <td>SourceSafe path which specifies the project you wish to 
  +         make the current project. You should not specify the leading dollar-sign - 
  +         it is prepended by Ant automatically.</td>
  +     <td>Yes</td>
  +  </tr>
  +  <tr>
  +     <td>login</td>
  +     <td>username[,password] - The username and password needed to get access
  +         to VSS. Note that you may need to specify both (if you have a password) - 
  +         Ant/VSS will hang if you leave the password out and VSS does not accept 
  +         login without a password. </td>
  +     <td>No</td>
  +  </tr>
  +  <tr>
  +     <td>ssdir</td>
  +     <td>directory where <code>ss.exe</code> resides. By default the
  +         task expects it to be in the PATH.</td>
  +     <td>No</td>
  +  </tr>
  +  <tr>
  +     <td>serverPath</td>
  +     <td>directory where <code>srssafe.ini</code> resides.</td>
  +     <td>No</td>
  +  </tr>
  +</table>
  +
  +<h3>Examples</h3>
  +<blockquote>
  +<pre>
  +&lt;vsscp vsspath=&quot;/Projects/ant&quot;/&gt;
  +</pre>
  +</blockquote>
  +<p>Sets the current VSS project to <i>$/Projects/ant</i>.</p>
  +<hr>
  +
  +<p align="center">Copyright &copy; 2001-2002 Apache Software Foundation. All
rights
   Reserved.</p>
   </body>
   </html>
  
  
  
  1.112     +6 -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.properties,v
  retrieving revision 1.111
  retrieving revision 1.112
  diff -u -r1.111 -r1.112
  --- defaults.properties	20 Mar 2002 02:48:15 -0000	1.111
  +++ defaults.properties	21 Mar 2002 08:33:56 -0000	1.112
  @@ -72,7 +72,13 @@
   ddcreator=org.apache.tools.ant.taskdefs.optional.ejb.DDCreator
   wlrun=org.apache.tools.ant.taskdefs.optional.ejb.WLRun
   wlstop=org.apache.tools.ant.taskdefs.optional.ejb.WLStop
  +vssadd=org.apache.tools.ant.taskdefs.optional.vss.MSVSSADD
  +vsscheckin=org.apache.tools.ant.taskdefs.optional.vss.MSVSSCHECKIN
  +vsscheckout=org.apache.tools.ant.taskdefs.optional.vss.MSVSSCHECKOUT
  +vsscp=org.apache.tools.ant.taskdefs.optional.vss.MSVSSCP
   vssget=org.apache.tools.ant.taskdefs.optional.vss.MSVSSGET
  +vsshistory=org.apache.tools.ant.taskdefs.optional.vss.MSVSSHISTORY
  +vsslabel=org.apache.tools.ant.taskdefs.optional.vss.MSVSSLABEL
   ejbjar=org.apache.tools.ant.taskdefs.optional.ejb.EjbJar
   mparse=org.apache.tools.ant.taskdefs.optional.metamata.MParse
   mmetrics=org.apache.tools.ant.taskdefs.optional.metamata.MMetrics
  
  
  
  1.16      +8 -0      jakarta-ant/src/main/org/apache/tools/ant/taskdefs/optional/vss/MSVSS.java
  
  Index: MSVSS.java
  ===================================================================
  RCS file: /home/cvs/jakarta-ant/src/main/org/apache/tools/ant/taskdefs/optional/vss/MSVSS.java,v
  retrieving revision 1.15
  retrieving revision 1.16
  diff -u -r1.15 -r1.16
  --- MSVSS.java	25 Feb 2002 17:38:17 -0000	1.15
  +++ MSVSS.java	21 Mar 2002 08:33:56 -0000	1.16
  @@ -200,6 +200,14 @@
       public final static String PROJECT_PREFIX = "$";
   
       /**
  +     * The 'CP' command
  +     */
  +    public final static String COMMAND_CP = "CP";
  +    /**
  +     * The 'Add' command
  +     */
  +    public final static String COMMAND_ADD = "Add";
  +    /**
        * The 'Get' command
        */
       public final static String COMMAND_GET = "Get";
  
  
  
  1.1                  jakarta-ant/src/main/org/apache/tools/ant/taskdefs/optional/vss/MSVSSADD.java
  
  Index: MSVSSADD.java
  ===================================================================
  /*
   * The Apache Software License, Version 1.1
   *
   * Copyright (c) 2002 The Apache Software Foundation.  All rights
   * reserved.
   *
   * Redistribution and use in source and binary forms, with or without
   * modification, are permitted provided that the following conditions
   * are met:
   *
   * 1. Redistributions of source code must retain the above copyright
   *    notice, this list of conditions and the following disclaimer.
   *
   * 2. Redistributions in binary form must reproduce the above copyright
   *    notice, this list of conditions and the following disclaimer in
   *    the documentation and/or other materials provided with the
   *    distribution.
   *
   * 3. The end-user documentation included with the redistribution, if
   *    any, must include the following acknowlegement:
   *       "This product includes software developed by the
   *        Apache Software Foundation (http://www.apache.org/)."
   *    Alternately, this acknowlegement may appear in the software itself,
   *    if and wherever such third-party acknowlegements normally appear.
   *
   * 4. The names "The Jakarta Project", "Ant", and "Apache Software
   *    Foundation" must not be used to endorse or promote products derived
   *    from this software without prior written permission. For written
   *    permission, please contact apache@apache.org.
   *
   * 5. Products derived from this software may not be called "Apache"
   *    nor may "Apache" appear in their names without prior written
   *    permission of the Apache Group.
   *
   * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED
   * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
   * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
   * DISCLAIMED.  IN NO EVENT SHALL THE APACHE SOFTWARE FOUNDATION OR
   * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
   * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
   * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
   * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
   * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
   * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
   * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
   * SUCH DAMAGE.
   * ====================================================================
   *
   * This software consists of voluntary contributions made by many
   * individuals on behalf of the Apache Software Foundation.  For more
   * information on the Apache Software Foundation, please see
   * <http://www.apache.org/>.
   */
  
  package org.apache.tools.ant.taskdefs.optional.vss;
  
  import org.apache.tools.ant.BuildException;
  import org.apache.tools.ant.types.Commandline;
  import org.apache.tools.ant.types.Path;
  
  import java.io.File;
  
  /**
   * Task to perform Add commands to Microsoft Visual Source Safe.
   * Based on the VSS Checkin code by Martin Poeschl
   *
   * @author Nigel Magnay
   */
  public class MSVSSADD extends MSVSS {
  
      private String m_LocalPath = null;
      private boolean m_Recursive = false;
      private boolean m_Writable = false;
      private String m_AutoResponse = null;
      private String m_Comment = "-";
  
      /**
       * Executes the task.
       * <p>
       * Builds a command line to execute ss and then calls Exec's run method
       * to execute the command line.
       */
      public void execute() throws BuildException {
          Commandline commandLine = new Commandline();
          int result = 0;
  
           // first off, make sure that we've got a command and a localPath ...
          if (getLocalPath() == null) {
              String msg = "localPath attribute must be set!";
              throw new BuildException(msg, location);
          }
  
          // now look for illegal combinations of things ...
  
          // build the command line from what we got the format is
          // ss Add VSS items [-B] [-C] [-D-] [-H] [-I-] [-K] [-N] [-O] [-R] [-W] [-Y] [-?]
          // as specified in the SS.EXE help
          commandLine.setExecutable(getSSCommand());
          commandLine.createArgument().setValue(COMMAND_ADD);
  
          // VSS items
          commandLine.createArgument().setValue(getLocalPath());        
          // -I- or -I-Y or -I-N
          getAutoresponse(commandLine);
          // -R
          getRecursiveCommand(commandLine);
          // -W
          getWritableCommand(commandLine);
          // -Y
          getLoginCommand(commandLine);
          // -C
          commandLine.createArgument().setValue("-C"+getComment());
  
          result = run(commandLine);
          if ( result != 0 ) {
              String msg = "Failed executing: " + commandLine.toString();
              throw new BuildException(msg, location);
          }
      }
  
      /**
       * Set behaviour recursive or non-recursive
       */
      public void setRecursive(boolean recursive) {
          m_Recursive = recursive;
      }
  
      /**
       * @return the 'recursive' command if the attribute was 'true', otherwise an empty string
       */
      public void getRecursiveCommand(Commandline cmd) {
          if ( !m_Recursive ) {
              return;
          } else {
              cmd.createArgument().setValue(FLAG_RECURSION);
          }
      }
  
      /**
       * Set behaviour, used in get command to make files that are 'got' writable
       */
      public final void setWritable(boolean argWritable) {
          m_Writable = argWritable;
      }
  
      /**
       * @return the 'make writable' command if the attribute was 'true', otherwise an empty
string
       */
      public void getWritableCommand(Commandline cmd) {
          if ( !m_Writable ) {
              return;
          } else {
              cmd.createArgument().setValue(FLAG_WRITABLE);
          }
      }
  
      public void setAutoresponse(String response){
          if ( response.equals("") || response.equals("null") ) {
              m_AutoResponse = null;
          } else {
              m_AutoResponse = response;
          }
      }
  
      /**
       * Checks the value set for the autoResponse.
       * if it equals "Y" then we return -I-Y
       * if it equals "N" then we return -I-N
       * otherwise we return -I
       */
      public void getAutoresponse(Commandline cmd) {
  
          if ( m_AutoResponse == null) {
              cmd.createArgument().setValue(FLAG_AUTORESPONSE_DEF);
          } else if ( m_AutoResponse.equalsIgnoreCase("Y")) {
              cmd.createArgument().setValue(FLAG_AUTORESPONSE_YES);
  
          } else if ( m_AutoResponse.equalsIgnoreCase("N")) {
              cmd.createArgument().setValue(FLAG_AUTORESPONSE_NO);
          }else {
              cmd.createArgument().setValue(FLAG_AUTORESPONSE_DEF);
          } // end of else
  
      }
  
      /**
       * Set the comment to apply in SourceSafe
       * <p>
       * If this is null or empty, it will be replaced with "-" which
       * is what SourceSafe uses for an empty comment.
       */
      public void setComment(String comment) {
          if ( comment.equals("") || comment.equals("null") ) {
              m_Comment = "-";
          } else {
              m_Comment = comment;
          }
      }
  
      /**
       * Gets the comment to be applied.
       * @return the comment to be applied.
       */
      public String getComment() {
          return m_Comment;
      }
  
      /**
       * Set the local path.
       */
      public void setLocalpath(Path localPath) {
          m_LocalPath = localPath.toString();
      }
  
      public String getLocalPath() {
          return m_LocalPath;
      }
  }
  
  
  
  1.1                  jakarta-ant/src/main/org/apache/tools/ant/taskdefs/optional/vss/MSVSSCP.java
  
  Index: MSVSSCP.java
  ===================================================================
  /*
   * The Apache Software License, Version 1.1
   *
   * Copyright (c) 2002 The Apache Software Foundation.  All rights
   * reserved.
   *
   * Redistribution and use in source and binary forms, with or without
   * modification, are permitted provided that the following conditions
   * are met:
   *
   * 1. Redistributions of source code must retain the above copyright
   *    notice, this list of conditions and the following disclaimer.
   *
   * 2. Redistributions in binary form must reproduce the above copyright
   *    notice, this list of conditions and the following disclaimer in
   *    the documentation and/or other materials provided with the
   *    distribution.
   *
   * 3. The end-user documentation included with the redistribution, if
   *    any, must include the following acknowlegement:
   *       "This product includes software developed by the
   *        Apache Software Foundation (http://www.apache.org/)."
   *    Alternately, this acknowlegement may appear in the software itself,
   *    if and wherever such third-party acknowlegements normally appear.
   *
   * 4. The names "The Jakarta Project", "Ant", and "Apache Software
   *    Foundation" must not be used to endorse or promote products derived
   *    from this software without prior written permission. For written
   *    permission, please contact apache@apache.org.
   *
   * 5. Products derived from this software may not be called "Apache"
   *    nor may "Apache" appear in their names without prior written
   *    permission of the Apache Group.
   *
   * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED
   * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
   * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
   * DISCLAIMED.  IN NO EVENT SHALL THE APACHE SOFTWARE FOUNDATION OR
   * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
   * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
   * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
   * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
   * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
   * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
   * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
   * SUCH DAMAGE.
   * ====================================================================
   *
   * This software consists of voluntary contributions made by many
   * individuals on behalf of the Apache Software Foundation.  For more
   * information on the Apache Software Foundation, please see
   * <http://www.apache.org/>.
   */
  
  package org.apache.tools.ant.taskdefs.optional.vss;
  
  import org.apache.tools.ant.BuildException;
  import org.apache.tools.ant.types.Commandline;
  import org.apache.tools.ant.types.Path;
  
  import java.io.File;
  
  /**
   * Task to perform CP (Change Project) commands to Microsoft Visual Source Safe.
   * Based on the VSS Checkin code by Martin Poeschl
   *
   * @author Nigel Magnay
   *
   * @ant.task name="vsscp" category="scm"
   */
  public class MSVSSCP extends MSVSS {
  
      private String m_AutoResponse = null;
  
      /**
       * Executes the task.
       * <p>
       * Builds a command line to execute ss and then calls Exec's run method
       * to execute the command line.
       */
      public void execute() throws BuildException {
          Commandline commandLine = new Commandline();
          int result = 0;
  
          // first off, make sure that we've got a command and a vssdir ...
          if (getVsspath() == null) {
              String msg = "vsspath attribute must be set!";
              throw new BuildException(msg, location);
          }
  
          // now look for illegal combinations of things ...
  
          // build the command line from what we got the format is
          // ss CP VSS items [-H] [-I-] [-Y] [-?]
          // as specified in the SS.EXE help
          commandLine.setExecutable(getSSCommand());
          commandLine.createArgument().setValue(COMMAND_CP);
  
          // VSS items
          commandLine.createArgument().setValue(getVsspath());      
          // -I- or -I-Y or -I-N
          getAutoresponse(commandLine);        
          // -Y
          getLoginCommand(commandLine);
          
          result = run(commandLine);
          if ( result != 0 ) {
              String msg = "Failed executing: " + commandLine.toString();
              throw new BuildException(msg, location);
          }
      }
  
      public void setAutoresponse(String response) {
          if ( response.equals("") || response.equals("null") ) {
              m_AutoResponse = null;
          } else {
              m_AutoResponse = response;
          }
      }
  
      /**
       * Checks the value set for the autoResponse.
       * if it equals "Y" then we return -I-Y
       * if it equals "N" then we return -I-N
       * otherwise we return -I
       */
      public void getAutoresponse(Commandline cmd) {
  
          if ( m_AutoResponse == null) {
              cmd.createArgument().setValue(FLAG_AUTORESPONSE_DEF);
          } else if ( m_AutoResponse.equalsIgnoreCase("Y")) {
              cmd.createArgument().setValue(FLAG_AUTORESPONSE_YES);
  
          } else if ( m_AutoResponse.equalsIgnoreCase("N")) {
              cmd.createArgument().setValue(FLAG_AUTORESPONSE_NO);
          }else {
              cmd.createArgument().setValue(FLAG_AUTORESPONSE_DEF);
          } // end of else
  
      }
  }
  
  
  

--
To unsubscribe, e-mail:   <mailto:ant-dev-unsubscribe@jakarta.apache.org>
For additional commands, e-mail: <mailto:ant-dev-help@jakarta.apache.org>


Mime
View raw message