peterreilly    2004/11/22 02:48:57

  Modified:    src/main/org/apache/tools/ant/types/selectors
                        SignedSelector.java
               src/main/org/apache/tools/ant/types defaults.properties
               src/main/org/apache/tools/ant/taskdefs defaults.properties
  Added:       src/main/org/apache/tools/ant/taskdefs/condition
                        IsSigned.java
  Removed:     src/main/org/apache/tools/ant/taskdefs IsSigned.java
                        ConditionAndTask.java
  Log:
  remove issigned task, make it a condition only
  
  Revision  Changes    Path
  1.2       +1 -1      
ant/src/main/org/apache/tools/ant/types/selectors/SignedSelector.java
  
  Index: SignedSelector.java
  ===================================================================
  RCS file: 
/home/cvs/ant/src/main/org/apache/tools/ant/types/selectors/SignedSelector.java,v
  retrieving revision 1.1
  retrieving revision 1.2
  diff -u -r1.1 -r1.2
  --- SignedSelector.java       22 Nov 2004 10:07:22 -0000      1.1
  +++ SignedSelector.java       22 Nov 2004 10:48:57 -0000      1.2
  @@ -18,7 +18,7 @@
   package org.apache.tools.ant.types.selectors;
   import java.io.File;
   import org.apache.tools.ant.types.DataType;
  -import org.apache.tools.ant.taskdefs.IsSigned;
  +import org.apache.tools.ant.taskdefs.condition.IsSigned;
   
   /**
    * Selector that chooses files based on whether they are signed or not.
  
  
  
  1.30      +1 -0      
ant/src/main/org/apache/tools/ant/types/defaults.properties
  
  Index: defaults.properties
  ===================================================================
  RCS file: 
/home/cvs/ant/src/main/org/apache/tools/ant/types/defaults.properties,v
  retrieving revision 1.29
  retrieving revision 1.30
  diff -u -r1.29 -r1.30
  --- defaults.properties       22 Nov 2004 10:07:22 -0000      1.29
  +++ defaults.properties       22 Nov 2004 10:48:57 -0000      1.30
  @@ -34,5 +34,6 @@
   propertyset=org.apache.tools.ant.types.PropertySet
   assertions=org.apache.tools.ant.types.Assertions
   concatfilter=org.apache.tools.ant.filters.ConcatFilter
  +issigned=org.apache.tools.ant.taskdefs.condition.IsSigned
   ispingable=org.apache.tools.ant.taskdefs.optional.condition.IsPingable
   
mavenrepository=org.apache.tools.ant.taskdefs.optional.repository.MavenRepository
  
  
  
  1.162     +0 -1      
ant/src/main/org/apache/tools/ant/taskdefs/defaults.properties
  
  Index: defaults.properties
  ===================================================================
  RCS file: 
/home/cvs/ant/src/main/org/apache/tools/ant/taskdefs/defaults.properties,v
  retrieving revision 1.161
  retrieving revision 1.162
  diff -u -r1.161 -r1.162
  --- defaults.properties       22 Nov 2004 10:07:22 -0000      1.161
  +++ defaults.properties       22 Nov 2004 10:48:57 -0000      1.162
  @@ -80,7 +80,6 @@
   presetdef=org.apache.tools.ant.taskdefs.PreSetDef
   macrodef=org.apache.tools.ant.taskdefs.MacroDef
   nice=org.apache.tools.ant.taskdefs.Nice
  -issigned=org.apache.tools.ant.taskdefs.IsSigned
   libraries=org.apache.tools.ant.taskdefs.repository.Libraries
   
   # optional tasks
  
  
  
  1.1                  
ant/src/main/org/apache/tools/ant/taskdefs/condition/IsSigned.java
  
  Index: IsSigned.java
  ===================================================================
  /*
   * Copyright  2004 The Apache Software Foundation
   *
   *  Licensed 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.condition;
  
  import org.apache.tools.ant.BuildException;
  import org.apache.tools.ant.Project;
  import org.apache.tools.ant.types.DataType;
  import java.io.File;
  import java.io.IOException;
  import java.util.zip.ZipEntry;
  import java.util.zip.ZipFile;
  import java.util.Enumeration;
  
  /**
   * Checks whether a jarfile is signed: if the name of the
   * signature is passed, the file is checked for presence of that
   * particular signature; otherwise the file is checked for the
   * existence of any signature.
   */
  public class IsSigned extends DataType implements Condition {
  
      private static final String SIG_START = "META-INF/";
      private static final String SIG_END = ".SF";
  
      private String name;
      private File   file;
  
     /**
       * The jarfile that is to be tested for the presence
       * of a signature.
       *
       * @param file jarfile to be tested.
       */
      public void setFile(File file) {
          this.file = file;
      }
  
     /**
       * The signature name to check jarfile for.
       *
       * @param name signature to look for.
       */
      public void setName(String name) {
          this.name = name;
      }
  
      /**
       * Returns <CODE>true</code> if the file exists and is signed with
       * the signature specified, or, if <CODE>name</code> wasn't
       * specified, if the file contains a signature.
       * @return true if the file is signed.
       */
      public boolean eval() {
          if (file == null) {
              throw new BuildException("The file attribute must be set.");
          }
          if (file != null && !file.exists()) {
              log("The file \"" + file.getAbsolutePath()
                      + "\" does not exist.", Project.MSG_VERBOSE);
              return false;
          }
  
          ZipFile jarFile = null;
          try {
              jarFile = new ZipFile(file);
              if (null == name) {
                  Enumeration entries = jarFile.entries();
                  while (entries.hasMoreElements()) {
                      String name = ((ZipEntry) 
entries.nextElement()).getName();
                      if (name.startsWith(SIG_START) && name.endsWith(SIG_END)) 
{
                          log("File \"" + file.getAbsolutePath()
                              + "\" is signed.", Project.MSG_VERBOSE);
                          return true;
                      }
                  }
                  return false;
              } else {
                  boolean shortSig = jarFile.getEntry(SIG_START
                                      + name.toUpperCase()
                                      + SIG_END) != null;
                  boolean longSig  = jarFile.getEntry(SIG_START
                                      + name.substring(0, 8).toUpperCase()
                                      + SIG_END) != null;
                  if (shortSig || longSig) {
                      log("File \"" + file.getAbsolutePath()
                          + "\" is signed.", Project.MSG_VERBOSE);
                      return true;
                  } else {
                      return false;
                  }
              }
          } catch (IOException e) {
              log("Got IOException reading file \"" + file.getAbsolutePath()
                  + "\"" + e, Project.MSG_VERBOSE);
              return false;
          } finally {
              if (jarFile != null) {
                  try {
                      jarFile.close();
                  } catch (IOException e) {
                      // Ignored
                  }
              }
          }
      }
  }
  
  
  

---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to