AbstractJarSignerTask (Apache Ant API)
Description: declaration: package: org.apache.tools.ant.taskdefs, class: AbstractJarSignerTask

# Class AbstractJarSignerTask

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

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

  ### Fields inherited from class Task

  `target, taskName, taskType, wrapper`
  Modifier and Type
  Field
  Description
  `protected Target`
  `target`
  Deprecated.
  since 1.6.x.
  `protected String`
  `taskName`
  Deprecated.
  since 1.6.x.
  `protected String`
  `taskType`
  Deprecated.
  since 1.6.x.
  `protected RuntimeConfigurable`
  `wrapper`
  Deprecated.
  since 1.6.x.

  ### Fields inherited from class ProjectComponent

  `description, location, project`
  Modifier and Type
  Field
  Description
  `protected String`
  `description`
  Deprecated.
  since 1.6.x.
  `protected Location`
  `location`
  Deprecated.
  since 1.6.x.
  `protected Project`
  `project`
  Deprecated.
  since 1.6.x.

- ## Constructor Summary

  Constructors
  Constructor
  Description
  `AbstractJarSignerTask()`

- ## Method Summary

  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, 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 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(String alias)`
  the alias to sign under; required
  `protected void`
  `setCommonOptions(ExecTask cmd)`
  these are options common to signing and verifying
  `void`
  `setExecutable(String executable)`
  Sets the actual executable command to invoke, instead of the binary `jarsigner` found in Ant's JDK.
  `void`
  `setJar(File jar)`
  the jar file to sign; required
  `void`
  `setKeypass(String keypass)`
  password for private key (if different); optional
  `void`
  `setKeystore(String keystore)`
  keystore location; required
  `void`
  `setMaxmemory(String max)`
  Set the maximum memory to be used by the jarsigner process
  `void`
  `setProviderArg(String providerArg)`
  Sets the value for the -providerArg command line argument.
  `void`
  `setProviderClass(String providerClass)`
  Sets the value for the -providerClass command line argument.
  `void`
  `setProviderName(String providerName)`
  Sets the value for the -providerName command line argument.
  `void`
  `setStorepass(String storepass)`
  password for keystore integrity; required
  `void`
  `setStoretype(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 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`
  Modifier and Type
  Method
  Description
  `final void`
  `bindToOwner(Task owner)`
  Bind a task to another; use this when configuring a newly created task to do work on behalf of another.
  `void`
  `execute()`
  Called by the project to let the task do its work.
  `Target`
  `getOwningTarget()`
  Returns the container target of this task.
  `RuntimeConfigurable`
  `getRuntimeConfigurableWrapper()`
  Returns the wrapper used for runtime configuration.
  `String`
  `getTaskName()`
  Returns the name to use in logging messages.
  `String`
  `getTaskType()`
  Return the type of task.
  `protected RuntimeConfigurable`
  `getWrapper()`
  Return the runtime configurable structure for this task.
  `protected void`
  `handleErrorFlush(String output)`
  Handles an error line by logging it with the WARN priority.
  `protected void`
  `handleErrorOutput(String output)`
  Handles an error output by logging it with the WARN priority.
  `protected void`
  `handleFlush(String output)`
  Handles output by logging it with the INFO priority.
  `protected int`
  `handleInput(byte[] buffer, int offset, int length)`
  Handle an input request by this task.
  `protected void`
  `handleOutput(String output)`
  Handles output by logging it with the INFO priority.
  `void`
  `init()`
  Called by the project to let the task initialize properly.
  `protected final boolean`
  `isInvalid()`
  Has this task been marked invalid?
  `void`
  `log(String msg)`
  Logs a message with the default (INFO) priority.
  `void`
  `log(String msg, int msgLevel)`
  Logs a message with the given priority.
  `void`
  `log(String msg, Throwable t, int msgLevel)`
  Logs a message with the given priority.
  `void`
  `log(Throwable t, int msgLevel)`
  Logs a message with the given priority.
  `void`
  `maybeConfigure()`
  Configures this task - if it hasn't been done already.
  `final void`
  `perform()`
  Performs this task if it's still valid, or gets a replacement version and performs that otherwise.
  `void`
  `reconfigure()`
  Force the task to be reconfigured from its RuntimeConfigurable.
  `void`
  `setOwningTarget(Target target)`
  Sets the target container of this task.
  `void`
  `setRuntimeConfigurableWrapper(RuntimeConfigurable wrapper)`
  Sets the wrapper to be used for runtime configuration.
  `void`
  `setTaskName(String name)`
  Sets the name to use in logging messages.
  `void`
  `setTaskType(String type)`
  Sets the name with which the task has been invoked.

  ### Methods inherited from class ProjectComponent

  `clone, getDescription, getLocation, getProject, setDescription, setLocation, setProject`
  Modifier and Type
  Method
  Description
  `Object`
  `clone()`
  `String`
  `getDescription()`
  Returns the description of the current action.
  `Location`
  `getLocation()`
  Returns the file/location where this task was defined.
  `Project`
  `getProject()`
  Returns the project to which this component belongs.
  `void`
  `setDescription(String desc)`
  Sets a description of the current action.
  `void`
  `setLocation(Location location)`
  Sets the file/location where this task was defined.
  `void`
  `setProject(Project project)`
  Sets the project object of this component.

  ### Methods inherited from class Object

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

- ## Field Details

  - ### ERROR_NO_SOURCE

    public static final 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 String JARSIGNER_COMMAND
    name of JDK program we are looking for
    See Also:
      - Constant Field Values

  - ### jar

    protected File jar
    The name of the jar file.

  - ### alias

    protected String alias
    The alias of signer.

  - ### keystore

    protected String keystore
    The url or path of keystore file.

  - ### storepass

    protected String storepass
    password for the store

  - ### storetype

    protected String storetype
    type of store,-storetype param

  - ### keypass

    protected 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 String maxMemory
    The maximum amount of memory to use for Jar signer

  - ### filesets

    protected Vector<FileSet> filesets
    the filesets of the jars to sign

- ## Constructor Details

  - ### AbstractJarSignerTask

    public AbstractJarSignerTask()

- ## Method Details

  - ### setMaxmemory

    public void setMaxmemory(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(File jar)
    the jar file to sign; required
    Parameters:
      `jar` - the jar file to sign

  - ### setAlias

    public void setAlias(String alias)
    the alias to sign under; required
    Parameters:
      `alias` - the alias to sign under

  - ### setKeystore

    public void setKeystore(String keystore)
    keystore location; required
    Parameters:
      `keystore` - the keystore location

  - ### setStorepass

    public void setStorepass(String storepass)
    password for keystore integrity; required
    Parameters:
      `storepass` - the password for the keystore

  - ### setStoretype

    public void setStoretype(String storetype)
    keystore type; optional
    Parameters:
      `storetype` - the keystore type

  - ### setKeypass

    public void setKeypass(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(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(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(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(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 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, 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