donaldp     00/12/10 00:30:53

  Modified:    src/main/org/apache/tools/ant/taskdefs SignJar.java
  Log:
  Adapted Signjar so that it does not run every time unless absolutely required 
(or unable to be determined if required).
  
  Submitted By: [EMAIL PROTECTED]
  
  Revision  Changes    Path
  1.6       +21 -2     
jakarta-ant/src/main/org/apache/tools/ant/taskdefs/SignJar.java
  
  Index: SignJar.java
  ===================================================================
  RCS file: 
/home/cvs/jakarta-ant/src/main/org/apache/tools/ant/taskdefs/SignJar.java,v
  retrieving revision 1.5
  retrieving revision 1.6
  diff -u -r1.5 -r1.6
  --- SignJar.java      2000/11/25 01:10:07     1.5
  +++ SignJar.java      2000/12/10 08:30:53     1.6
  @@ -60,7 +60,7 @@
   /**
    * Sign a archive.
    * 
  - * @author Peter Donald <a href="mailto:[EMAIL PROTECTED]">[EMAIL 
PROTECTED]</a>
  + * @author Peter Donald <a href="mailto:[EMAIL PROTECTED]">[EMAIL 
PROTECTED]</a>
    */
   public class SignJar extends Task {
   
  @@ -148,6 +148,8 @@
               throw new BuildException("storepass attribute must be set");
           } 
   
  +        if(isUpToDate()) return;
  +
           final StringBuffer sb = new StringBuffer();
   
           final ExecTask cmd = (ExecTask) project.createTask("exec");
  @@ -204,6 +206,23 @@
           cmd.setFailonerror(true);
           cmd.setTaskName( getTaskName() );
           cmd.execute();
  -    } 
  +    }
  +
  +    protected boolean isUpToDate() {
  +
  +        if( null != jar && null != signedjar ) {
  +
  +            final File jarFile = new File(jar);
  +            final File signedjarFile = new File(signedjar);
  +            
  +            if(!jarFile.exists()) return false;
  +            if(!signedjarFile.exists()) return false;
  +            if(jarFile.equals(signedjarFile)) return false;
  +            if(signedjarFile.lastModified() > jarFile.lastModified())
  +                return true;
  +        }
  +
  +        return false;
  +    }
   }
   
  
  
  

Reply via email to