org.apache.tools.ant.taskdefs

Class SignJar

Implemented Interfaces:
Cloneable

public class SignJar
extends AbstractJarSignerTask

Signs JAR or ZIP files with the javasign command line tool. The tool detailed dependency checking: files are only signed if they are not signed. The signjar attribute can point to the file to generate; if this file exists then its modification date is used as a cue as to whether to resign any JAR file. Timestamp driven signing is based on the unstable and inadequately documented information in the Java1.5 docs
Since:
Ant 1.1
See Also:
beta documentation

Field Summary

static String
ERROR_BAD_MAP
error string for unit test verification:
static String
ERROR_MAPPER_WITHOUT_DEST
error string for unit test verification:
static String
ERROR_NO_ALIAS
error string for unit test verification:
static String
ERROR_NO_STOREPASS
error string for unit test verification:
static String
ERROR_SIGNEDJAR_AND_PATHS
error string for unit test verification
static String
ERROR_TODIR_AND_SIGNEDJAR
error string for unit test verification:
static String
ERROR_TOO_MANY_MAPPERS
error string for unit test verification:
protected File
destDir
the output directory when using paths.
protected boolean
internalsf
flag for internal sf signing
protected boolean
lazy
Whether to assume a jar which has an appropriate .SF file in is already signed.
protected boolean
sectionsonly
sign sections only?
protected String
sigfile
name to a signature file
protected File
signedjar
name of a single jar
protected String
tsacert
alias for the TSA in the keystore
protected String
tsaurl
URL for a tsa; null implies no tsa support

Fields inherited from class org.apache.tools.ant.taskdefs.AbstractJarSignerTask

ERROR_NO_SOURCE, JARSIGNER_COMMAND, alias, filesets, jar, keypass, keystore, maxMemory, storepass, storetype, verbose

Fields inherited from class org.apache.tools.ant.Task

target, taskName, taskType, wrapper

Fields inherited from class org.apache.tools.ant.ProjectComponent

description, location, project

Method Summary

void
add(FileNameMapper newMapper)
add a mapper to determine file naming policy.
void
execute()
sign the jar(s)
FileNameMapper
getMapper()
get the active mapper; may be null
String
getTsacert()
get the -tsacert option
String
getTsaurl()
get the -tsaurl url
protected boolean
isSigned(File file)
test for a file being signed, by looking for a signature in the META-INF directory with our alias.
protected boolean
isUpToDate(File jarFile, File signedjarFile)
Compare a jar file with its corresponding signed jar.
void
setDestDir(File destDir)
Optionally sets the output directory to be used.
void
setInternalsf(boolean internalsf)
Flag to include the .SF file inside the signature; optional; default false
void
setLazy(boolean lazy)
flag to control whether the presence of a signature file means a JAR is signed; optional, default false
void
setPreserveLastModified(boolean preserveLastModified)
true to indicate that the signed jar modification date remains the same as the original.
void
setSectionsonly(boolean sectionsonly)
flag to compute hash of entire manifest; optional, default false
void
setSigfile(String sigfile)
name of .SF/.DSA file; optional
void
setSignedjar(File signedjar)
name of signed JAR file; optional
void
setTsacert(String tsacert)
set the alias in the keystore of the TSA to use;
void
setTsaurl(String tsaurl)

Methods inherited from class org.apache.tools.ant.taskdefs.AbstractJarSignerTask

addFileset, addSysproperty, addValue, beginExecution, bindToKeystore, createJarSigner, createPath, createUnifiedSourcePath, createUnifiedSources, declareSysProperty, endExecution, getRedirector, hasResources, setAlias, setCommonOptions, setJar, setKeypass, setKeystore, setMaxmemory, setStorepass, setStoretype, setVerbose

Methods inherited from class org.apache.tools.ant.Task

bindToOwner, execute, getOwningTarget, getRuntimeConfigurableWrapper, getTaskName, getTaskType, getWrapper, handleErrorFlush, handleErrorOutput, handleFlush, handleInput, handleOutput, init, isInvalid, log, log, log, log, maybeConfigure, perform, reconfigure, setOwningTarget, setRuntimeConfigurableWrapper, setTaskName, setTaskType

Methods inherited from class org.apache.tools.ant.ProjectComponent

clone, getDescription, getLocation, getProject, log, log, setDescription, setLocation, setProject

Field Details

ERROR_BAD_MAP

public static final String ERROR_BAD_MAP
error string for unit test verification:

ERROR_MAPPER_WITHOUT_DEST

public static final String ERROR_MAPPER_WITHOUT_DEST
error string for unit test verification:

ERROR_NO_ALIAS

public static final String ERROR_NO_ALIAS
error string for unit test verification:

ERROR_NO_STOREPASS

public static final String ERROR_NO_STOREPASS
error string for unit test verification:

ERROR_SIGNEDJAR_AND_PATHS

public static final String ERROR_SIGNEDJAR_AND_PATHS
error string for unit test verification

ERROR_TODIR_AND_SIGNEDJAR

public static final String ERROR_TODIR_AND_SIGNEDJAR
error string for unit test verification:

ERROR_TOO_MANY_MAPPERS

public static final String ERROR_TOO_MANY_MAPPERS
error string for unit test verification:

destDir

protected File destDir
the output directory when using paths.

internalsf

protected boolean internalsf
flag for internal sf signing

lazy

protected boolean lazy
Whether to assume a jar which has an appropriate .SF file in is already signed.

sectionsonly

protected boolean sectionsonly
sign sections only?

sigfile

protected String sigfile
name to a signature file

signedjar

protected File signedjar
name of a single jar

tsacert

protected String tsacert
alias for the TSA in the keystore

tsaurl

protected String tsaurl
URL for a tsa; null implies no tsa support

Method Details

add

public void add(FileNameMapper newMapper)
add a mapper to determine file naming policy. Only used with toDir processing.
Parameters:
newMapper - the mapper to add.
Since:
Ant 1.7

execute

public void execute()
            throws BuildException
sign the jar(s)
Overrides:
execute in interface Task
Throws:
BuildException - on errors

getMapper

public FileNameMapper getMapper()
get the active mapper; may be null
Returns:
mapper or null
Since:
Ant 1.7

getTsacert

public String getTsacert()
get the -tsacert option
Returns:
a certificate alias or null
Since:
Ant 1.7

getTsaurl

public String getTsaurl()
get the -tsaurl url
Returns:
url or null
Since:
Ant 1.7

isSigned

protected boolean isSigned(File file)
test for a file being signed, by looking for a signature in the META-INF directory with our alias.
Parameters:
file - the file to be checked
Returns:
true if the file is signed

isUpToDate

protected boolean isUpToDate(File jarFile,
                             File signedjarFile)
Parameters:
jarFile - the unsigned jar file
signedjarFile - the result signed jar file
Returns:
true if the signedjarFile is considered up to date

setDestDir

public void setDestDir(File destDir)
Optionally sets the output directory to be used.
Parameters:
destDir - the directory in which to place signed jars
Since:
Ant 1.7

setInternalsf

public void setInternalsf(boolean internalsf)
Flag to include the .SF file inside the signature; optional; default false
Parameters:
internalsf - if true include the .SF file inside the signature

setLazy

public void setLazy(boolean lazy)
flag to control whether the presence of a signature file means a JAR is signed; optional, default false
Parameters:
lazy - flag to control whether the presence of a signature

setPreserveLastModified

public void setPreserveLastModified(boolean preserveLastModified)
true to indicate that the signed jar modification date remains the same as the original. Defaults to false
Parameters:
preserveLastModified - if true preserve the last modified time

setSectionsonly

public void setSectionsonly(boolean sectionsonly)
flag to compute hash of entire manifest; optional, default false
Parameters:
sectionsonly - flag to compute hash of entire manifest

setSigfile

public void setSigfile(String sigfile)
name of .SF/.DSA file; optional
Parameters:
sigfile - the name of the .SF/.DSA file

setSignedjar

public void setSignedjar(File signedjar)
name of signed JAR file; optional
Parameters:
signedjar - the name of the signed jar file

setTsacert

public void setTsacert(String tsacert)
set the alias in the keystore of the TSA to use;
Parameters:
tsacert - the cert alias.

setTsaurl

public void setTsaurl(String tsaurl)
Parameters:
tsaurl - the tsa url.
Since:
Ant 1.7