Browse Source

Adapted Signjar so that it does not run every time unless absolutely required (or unable to be determined if required).

Submitted By: keeskuip@technologist.com


git-svn-id: https://svn.apache.org/repos/asf/ant/core/trunk@268336 13f79535-47bb-0310-9956-ffa450edef68
master
Peter Donald 24 years ago
parent
commit
f358a34a1d
1 changed files with 21 additions and 2 deletions
  1. +21
    -2
      src/main/org/apache/tools/ant/taskdefs/SignJar.java

+ 21
- 2
src/main/org/apache/tools/ant/taskdefs/SignJar.java View File

@@ -60,7 +60,7 @@ import org.apache.tools.ant.types.Commandline;
/**
* Sign a archive.
*
* @author Peter Donald <a href="mailto:donaldp@mad.scientist.com">donaldp@mad.scientist.com</a>
* @author Peter Donald <a href="mailto:donaldp@apache.org">donaldp@apache.org</a>
*/
public class SignJar extends Task {

@@ -148,6 +148,8 @@ public class SignJar extends Task {
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 @@ public class SignJar extends Task {
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;
}
}


Loading…
Cancel
Save