org.apache.tools.ant.taskdefs

## Class AbstractJarSignerTask

- java.lang.Object
- - org.apache.tools.ant.ProjectComponent
  - - org.apache.tools.ant.Task
    - - org.apache.tools.ant.taskdefs.AbstractJarSignerTask

All Implemented Interfaces:
  java.lang.Cloneable

Direct Known Subclasses:
  SignJar, VerifyJar

    public abstract class AbstractJarSignerTask
    extends Task

This is factored out from `SignJar`; a base class that can be used for both signing and verifying JAR files using jarsigner

### Field Summary

Fields
`protected java.lang.String` `alias` The alias of signer.
`static java.lang.String` `ERROR_NO_SOURCE` error string for unit test verification: "jar must be set through jar attribute or nested filesets"
`protected java.util.Vector<FileSet>` `filesets` the filesets of the jars to sign
`protected java.io.File` `jar` The name of the jar file.
`protected static java.lang.String` `JARSIGNER_COMMAND` name of JDK program we are looking for
`protected java.lang.String` `keypass` password for the key in the store
`protected java.lang.String` `keystore` The url or path of keystore file.
`protected java.lang.String` `maxMemory` The maximum amount of memory to use for Jar signer
`protected java.lang.String` `storepass` password for the store
`protected java.lang.String` `storetype` type of store,-storetype param
`protected boolean` `strict` strict checking
`protected boolean` `verbose` verbose output

### 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`

### Constructor Summary

Constructors
Constructor and Description
`AbstractJarSignerTask()`

### Method Summary

All Methods Instance Methods Concrete Methods
`void` `addFileset(FileSet set)` Adds a set of files to sign
`void` `addSysproperty(Environment.Variable sysp)` Add a system property.
`protected void` `addValue(ExecTask cmd, java.lang.String value)` add a value argument to a command
`protected void` `beginExecution()` init processing logic; this is retained through our execution(s)
`protected void` `bindToKeystore(ExecTask cmd)` bind to a keystore if the attributes are there
`protected ExecTask` `createJarSigner()` create the jarsigner executable task
`Path` `createPath()` Adds a path of files to sign.
`protected Path` `createUnifiedSourcePath()` clone our path and add all explicitly specified FileSets as well, patch in the jar attribute as a new fileset if it is defined.
`protected java.util.Vector<FileSet>` `createUnifiedSources()` clone our filesets vector, and patch in the jar attribute as a new fileset, if is defined
`protected void` `declareSysProperty(ExecTask cmd, Environment.Variable property)`
`protected void` `endExecution()` any cleanup logic
`RedirectorElement` `getRedirector()` get the redirector.
`protected boolean` `hasResources()` Has either a path or a fileset been specified?
`void` `setAlias(java.lang.String alias)` the alias to sign under; required
`protected void` `setCommonOptions(ExecTask cmd)` these are options common to signing and verifying
`void` `setExecutable(java.lang.String executable)` Sets the actual executable command to invoke, instead of the binary `jarsigner` found in Ant's JDK.
`void` `setJar(java.io.File jar)` the jar file to sign; required
`void` `setKeypass(java.lang.String keypass)` password for private key (if different); optional
`void` `setKeystore(java.lang.String keystore)` keystore location; required
`void` `setMaxmemory(java.lang.String max)` Set the maximum memory to be used by the jarsigner process
`void` `setStorepass(java.lang.String storepass)` password for keystore integrity; required
`void` `setStoretype(java.lang.String storetype)` keystore type; optional
`void` `setStrict(boolean strict)` do strict checking
`void` `setVerbose(boolean verbose)` Enable verbose output when signing ; optional: default false

### 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, setDescription, setLocation, setProject`

### Methods inherited from class java.lang.Object

`equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

### Field Detail

#### jar

    protected java.io.File jar

The name of the jar file.

#### alias

    protected java.lang.String alias

The alias of signer.

#### keystore

    protected java.lang.String keystore

The url or path of keystore file.

#### storepass

    protected java.lang.String storepass

password for the store

#### storetype

    protected java.lang.String storetype

type of store,-storetype param

#### keypass

    protected java.lang.String keypass

password for the key in the store

#### verbose

    protected boolean verbose

verbose output

#### strict

    protected boolean strict

strict checking

Since:
  Ant 1.9.1

#### maxMemory

    protected java.lang.String maxMemory

The maximum amount of memory to use for Jar signer

#### filesets

    protected java.util.Vector<FileSet> filesets

the filesets of the jars to sign

#### JARSIGNER_COMMAND

    protected static final java.lang.String JARSIGNER_COMMAND

name of JDK program we are looking for

See Also:
  Constant Field Values

#### ERROR_NO_SOURCE

    public static final java.lang.String ERROR_NO_SOURCE

error string for unit test verification: "jar must be set through jar attribute or nested filesets"

See Also:
  Constant Field Values

### Constructor Detail

#### AbstractJarSignerTask

    public AbstractJarSignerTask()

### Method Detail

#### setMaxmemory

    public void setMaxmemory(java.lang.String max)

Set the maximum memory to be used by the jarsigner process

Parameters:
  `max` - a string indicating the maximum memory according to the JVM conventions (e.g. 128m is 128 Megabytes)

#### setJar

    public void setJar(java.io.File jar)

the jar file to sign; required

Parameters:
  `jar` - the jar file to sign

#### setAlias

    public void setAlias(java.lang.String alias)

the alias to sign under; required

Parameters:
  `alias` - the alias to sign under

#### setKeystore

    public void setKeystore(java.lang.String keystore)

keystore location; required

Parameters:
  `keystore` - the keystore location

#### setStorepass

    public void setStorepass(java.lang.String storepass)

password for keystore integrity; required

Parameters:
  `storepass` - the password for the keystore

#### setStoretype

    public void setStoretype(java.lang.String storetype)

keystore type; optional

Parameters:
  `storetype` - the keystore type

#### setKeypass

    public void setKeypass(java.lang.String keypass)

password for private key (if different); optional

Parameters:
  `keypass` - the password for the key (if different)

#### setVerbose

    public void setVerbose(boolean verbose)

Enable verbose output when signing ; optional: default false

Parameters:
  `verbose` - if true enable verbose output

#### setStrict

    public void setStrict(boolean strict)

do strict checking

Parameters:
  `strict` -
Since:
  Ant 1.9.1

#### addFileset

    public void addFileset(FileSet set)

Adds a set of files to sign

Parameters:
  `set` - a set of files to sign
Since:
  Ant 1.4

#### addSysproperty

    public void addSysproperty(Environment.Variable sysp)

Add a system property.

Parameters:
  `sysp` - system property.

#### createPath

    public Path createPath()

Adds a path of files to sign.

Returns:
  a path of files to sign.
Since:
  Ant 1.7

#### beginExecution

    protected void beginExecution()

init processing logic; this is retained through our execution(s)

#### endExecution

    protected void endExecution()

any cleanup logic

#### getRedirector

    public RedirectorElement getRedirector()

get the redirector. Non-null between invocations of `beginExecution()` and `endExecution()`

Returns:
  a redirector or null

#### setExecutable

    public void setExecutable(java.lang.String executable)

Sets the actual executable command to invoke, instead of the binary `jarsigner` found in Ant's JDK.

Parameters:
  `executable` - the command to invoke.
Since:
  Ant 1.8.0

#### setCommonOptions

    protected void setCommonOptions(ExecTask cmd)

these are options common to signing and verifying

Parameters:
  `cmd` - command to configure

#### declareSysProperty

    protected void declareSysProperty(ExecTask cmd,
                                      Environment.Variable property)
                               throws BuildException

Parameters:
  `cmd` - command to configure
  `property` - property to set
Throws:
  `BuildException` - if the property is not correctly defined.

#### bindToKeystore

    protected void bindToKeystore(ExecTask cmd)

bind to a keystore if the attributes are there

Parameters:
  `cmd` - command to configure

#### createJarSigner

    protected ExecTask createJarSigner()

create the jarsigner executable task

Returns:
  a task set up with the executable of jarsigner, failonerror=true and bound to our redirector

#### createUnifiedSources

    protected java.util.Vector<FileSet> createUnifiedSources()

clone our filesets vector, and patch in the jar attribute as a new fileset, if is defined

Returns:
  a vector of FileSet instances

#### createUnifiedSourcePath

    protected Path createUnifiedSourcePath()

clone our path and add all explicitly specified FileSets as well, patch in the jar attribute as a new fileset if it is defined.

Returns:
  a path that contains all files to sign
Since:
  Ant 1.7

#### hasResources

    protected boolean hasResources()

Has either a path or a fileset been specified?

Returns:
  true if a path or fileset has been specified.
Since:
  Ant 1.7

#### addValue

    protected void addValue(ExecTask cmd,
                            java.lang.String value)

add a value argument to a command

Parameters:
  `cmd` - command to manipulate
  `value` - value to add