Package 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
    Modifier and Type | Field | Description
    --- | --- | ---
    `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 | Description
    --- | ---
    `AbstractJarSignerTask()` |

  - ### Method Summary

    All Methods Instance Methods Concrete Methods
    Modifier and Type | Method | Description
    --- | --- | ---
    `void` | `addArg​(Commandline.Argument arg)` | Adds a nested <arg> element that can be used to specify command line arguments not supported via specific attributes.
    `protected void` | `addArgument​(ExecTask cmd, Commandline.Argument arg)` | add an argument to a command
    `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` | `setProviderArg​(java.lang.String providerArg)` | Sets the value for the -providerArg command line argument.
    `void` | `setProviderClass​(java.lang.String providerClass)` | Sets the value for the -providerClass command line argument.
    `void` | `setProviderName​(java.lang.String providerName)` | Sets the value for the -providerName command line argument.
    `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

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

    - #### JARSIGNER_COMMAND

          protected static final java.lang.String JARSIGNER_COMMAND

      name of JDK program we are looking for
      See Also:
        Constant Field Values

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

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

    - #### setProviderName

          public void setProviderName​(java.lang.String providerName)

      Sets the value for the -providerName command line argument.
      Parameters:
        `providerName` - the value for the -providerName command line argument
      Since:
        Ant 1.10.6

    - #### setProviderClass

          public void setProviderClass​(java.lang.String providerClass)

      Sets the value for the -providerClass command line argument.
      Parameters:
        `providerClass` - the value for the -providerClass command line argument
      Since:
        Ant 1.10.6

    - #### setProviderArg

          public void setProviderArg​(java.lang.String providerArg)

      Sets the value for the -providerArg command line argument.
      Parameters:
        `providerArg` - the value for the -providerArg command line argument
      Since:
        Ant 1.10.6

    - #### addArg

          public void addArg​(Commandline.Argument arg)

      Adds a nested <arg> element that can be used to specify command line arguments not supported via specific attributes.
      Parameters:
        `arg` - the argument to add
      Since:
        Ant 1.10.6

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

    - #### addArgument

          protected void addArgument​(ExecTask cmd,
                                     Commandline.Argument arg)

      add an argument to a command
      Parameters:
        `cmd` - command to manipulate
        `arg` - argument to add