Class AbstractJarsignerMojo

  • All Implemented Interfaces:
    org.apache.maven.plugin.ContextEnabled, org.apache.maven.plugin.Mojo
    Direct Known Subclasses:
    JarsignerSignMojo, JarsignerVerifyMojo

    public abstract class AbstractJarsignerMojo
    extends org.apache.maven.plugin.AbstractMojo
    Maven Jarsigner Plugin base class.
    Version:
    $Id$
    • Field Summary

      Fields 
      Modifier and Type Field Description
      private java.lang.String alias
      See options.
      private java.io.File archive
      Archive to process.
      private java.io.File archiveDirectory
      The base directory to scan for JAR files using Ant-like inclusion/exclusion patterns.
      private java.lang.String[] arguments
      List of additional arguments to append to the jarsigner command line.
      private java.lang.String[] excludeClassifiers
      A set of artifact classifiers describing the project attachments that should not be processed.
      private java.lang.String[] excludes
      The Ant-like exclusion patterns used to exclude JAR files from processing.
      private java.lang.String[] includeClassifiers
      A set of artifact classifiers describing the project attachments that should be processed.
      private java.lang.String[] includes
      The Ant-like inclusion patterns used to select JAR files to process.
      private org.apache.maven.shared.jarsigner.JarSigner jarSigner  
      private java.lang.String keystore
      See options.
      private java.lang.String maxMemory
      The maximum memory available to the JAR signer, e.g.
      private boolean processAttachedArtifacts
      Controls processing of project attachments.
      private boolean processMainArtifact
      Controls processing of the main artifact produced by the project.
      private org.apache.maven.project.MavenProject project
      The Maven project.
      private boolean protectedAuthenticationPath
      Must be set to true if the password must be given via a protected authentication path such as a dedicated PIN reader.
      private java.lang.String providerArg
      See options.
      private java.lang.String providerClass
      See options.
      private java.lang.String providerName
      See options.
      private org.sonatype.plexus.components.sec.dispatcher.SecDispatcher securityDispatcher  
      private org.apache.maven.execution.MavenSession session
      The current build session instance.
      private org.apache.maven.settings.Settings settings
      The Maven settings.
      private boolean skip
      Set to true to disable the plugin.
      private java.lang.String storepass
      See options.
      private java.lang.String storetype
      See options.
      private org.apache.maven.toolchain.ToolchainManager toolchainManager
      To obtain a toolchain if possible.
      private boolean verbose
      See options.
      private java.io.File workingDirectory
      Location of the working directory.
      • Fields inherited from interface org.apache.maven.plugin.Mojo

        ROLE
    • Method Summary

      All Methods Instance Methods Abstract Methods Concrete Methods 
      Modifier and Type Method Description
      protected abstract org.apache.maven.shared.jarsigner.JarSignerRequest createRequest​(java.io.File archive)
      Creates the jar signer request to be executed.
      protected java.lang.String decrypt​(java.lang.String encoded)  
      void execute()  
      protected java.lang.String getCommandlineInfo​(org.apache.maven.shared.utils.cli.Commandline commandLine)
      Gets a string representation of a Commandline.
      private java.lang.String getMessage​(java.lang.String key)  
      (package private) java.lang.String getMessage​(java.lang.String key, java.lang.Object arg)  
      private java.lang.String getMessage​(java.lang.String key, java.lang.Object[] args)
      Gets a message for a given key from the resource bundle backing the implementation.
      private java.lang.String getMessage​(java.lang.String key, java.lang.Object arg1, java.lang.Object arg2)  
      java.lang.String getStorepass()  
      java.lang.String getStoretype()  
      private org.apache.maven.toolchain.Toolchain getToolchain()
      FIXME tchemit-20123-11-13, need to find out how to do this...
      private boolean isZipFile​(org.apache.maven.artifact.Artifact artifact)
      Checks whether the specified artifact is a ZIP file.
      protected void preProcessArchive​(java.io.File archive)
      Pre-processes a given archive.
      private void processArchive​(java.io.File archive)
      Processes a given archive.
      private boolean processArtifact​(org.apache.maven.artifact.Artifact artifact)
      Processes a given artifact.
      • Methods inherited from class org.apache.maven.plugin.AbstractMojo

        getLog, getPluginContext, setLog, setPluginContext
      • Methods inherited from class java.lang.Object

        clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
    • Field Detail

      • verbose

        @Parameter(property="jarsigner.verbose",
                   defaultValue="false")
        private boolean verbose
        See options.
      • keystore

        @Parameter(property="jarsigner.keystore")
        private java.lang.String keystore
        See options.
      • storetype

        @Parameter(property="jarsigner.storetype")
        private java.lang.String storetype
        See options.
      • storepass

        @Parameter(property="jarsigner.storepass")
        private java.lang.String storepass
        See options.
      • providerName

        @Parameter(property="jarsigner.providerName")
        private java.lang.String providerName
        See options.
      • providerClass

        @Parameter(property="jarsigner.providerClass")
        private java.lang.String providerClass
        See options.
      • providerArg

        @Parameter(property="jarsigner.providerArg")
        private java.lang.String providerArg
        See options.
      • alias

        @Parameter(property="jarsigner.alias")
        private java.lang.String alias
        See options.
      • maxMemory

        @Parameter(property="jarsigner.maxMemory")
        private java.lang.String maxMemory
        The maximum memory available to the JAR signer, e.g. 256M. See -Xmx for more details.
      • archive

        @Parameter(property="jarsigner.archive")
        private java.io.File archive
        Archive to process. If set, neither the project artifact nor any attachments or archive sets are processed.
      • archiveDirectory

        @Parameter(property="jarsigner.archiveDirectory")
        private java.io.File archiveDirectory
        The base directory to scan for JAR files using Ant-like inclusion/exclusion patterns.
        Since:
        1.1
      • includes

        @Parameter
        private java.lang.String[] includes
        The Ant-like inclusion patterns used to select JAR files to process. The patterns must be relative to the directory given by the parameter archiveDirectory. By default, the pattern **/*.?ar is used.
        Since:
        1.1
      • excludes

        @Parameter
        private java.lang.String[] excludes
        The Ant-like exclusion patterns used to exclude JAR files from processing. The patterns must be relative to the directory given by the parameter archiveDirectory.
        Since:
        1.1
      • arguments

        @Parameter(property="jarsigner.arguments")
        private java.lang.String[] arguments
        List of additional arguments to append to the jarsigner command line.
      • skip

        @Parameter(property="jarsigner.skip",
                   defaultValue="false")
        private boolean skip
        Set to true to disable the plugin.
      • processMainArtifact

        @Parameter(property="jarsigner.processMainArtifact",
                   defaultValue="true")
        private boolean processMainArtifact
        Controls processing of the main artifact produced by the project.
        Since:
        1.1
      • processAttachedArtifacts

        @Parameter(property="jarsigner.processAttachedArtifacts",
                   defaultValue="true")
        private boolean processAttachedArtifacts
        Controls processing of project attachments. If enabled, attached artifacts that are no JAR/ZIP files will be automatically excluded from processing.
        Since:
        1.1
      • protectedAuthenticationPath

        @Parameter(property="jarsigner.protectedAuthenticationPath",
                   defaultValue="false")
        private boolean protectedAuthenticationPath
        Must be set to true if the password must be given via a protected authentication path such as a dedicated PIN reader.
        Since:
        1.3
      • includeClassifiers

        @Parameter
        private java.lang.String[] includeClassifiers
        A set of artifact classifiers describing the project attachments that should be processed. This parameter is only relevant if processAttachedArtifacts is true. If empty, all attachments are included.
        Since:
        1.2
      • excludeClassifiers

        @Parameter
        private java.lang.String[] excludeClassifiers
        A set of artifact classifiers describing the project attachments that should not be processed. This parameter is only relevant if processAttachedArtifacts is true. If empty, no attachments are excluded.
        Since:
        1.2
      • project

        @Parameter(defaultValue="${project}",
                   readonly=true,
                   required=true)
        private org.apache.maven.project.MavenProject project
        The Maven project.
      • settings

        @Parameter(defaultValue="${settings}",
                   readonly=true,
                   required=true)
        private org.apache.maven.settings.Settings settings
        The Maven settings.
        Since:
        1.5
      • workingDirectory

        @Parameter(defaultValue="${project.basedir}")
        private java.io.File workingDirectory
        Location of the working directory.
        Since:
        1.3
      • jarSigner

        @Component
        private org.apache.maven.shared.jarsigner.JarSigner jarSigner
      • session

        @Parameter(defaultValue="${session}",
                   readonly=true,
                   required=true)
        private org.apache.maven.execution.MavenSession session
        The current build session instance. This is used for toolchain manager API calls.
        Since:
        1.3
      • toolchainManager

        @Component
        private org.apache.maven.toolchain.ToolchainManager toolchainManager
        To obtain a toolchain if possible.
        Since:
        1.3
      • securityDispatcher

        @Component(hint="mng-4384")
        private org.sonatype.plexus.components.sec.dispatcher.SecDispatcher securityDispatcher
        Since:
        1.3.2
    • Constructor Detail

      • AbstractJarsignerMojo

        public AbstractJarsignerMojo()
    • Method Detail

      • execute

        public final void execute()
                           throws org.apache.maven.plugin.MojoExecutionException
        Throws:
        org.apache.maven.plugin.MojoExecutionException
      • createRequest

        protected abstract org.apache.maven.shared.jarsigner.JarSignerRequest createRequest​(java.io.File archive)
                                                                                     throws org.apache.maven.plugin.MojoExecutionException
        Creates the jar signer request to be executed.
        Parameters:
        archive - the archive file to treat by jarsigner
        Returns:
        the request
        Throws:
        org.apache.maven.plugin.MojoExecutionException - if an exception occurs
        Since:
        1.3
      • getCommandlineInfo

        protected java.lang.String getCommandlineInfo​(org.apache.maven.shared.utils.cli.Commandline commandLine)
        Gets a string representation of a Commandline.

        This method creates the string representation by calling commandLine.toString() by default.

        Parameters:
        commandLine - The Commandline to get a string representation of.
        Returns:
        The string representation of commandLine.
        Throws:
        java.lang.NullPointerException - if commandLine is null.
      • getStoretype

        public java.lang.String getStoretype()
      • getStorepass

        public java.lang.String getStorepass()
      • isZipFile

        private boolean isZipFile​(org.apache.maven.artifact.Artifact artifact)
        Checks whether the specified artifact is a ZIP file.
        Parameters:
        artifact - The artifact to check, may be null.
        Returns:
        true if the artifact looks like a ZIP file, false otherwise.
      • processArtifact

        private boolean processArtifact​(org.apache.maven.artifact.Artifact artifact)
                                 throws org.apache.maven.plugin.MojoExecutionException
        Processes a given artifact.
        Parameters:
        artifact - The artifact to process.
        Returns:
        true if the artifact is a JAR and was processed, false otherwise.
        Throws:
        java.lang.NullPointerException - if artifact is null.
        org.apache.maven.plugin.MojoExecutionException - if processing artifact fails.
      • preProcessArchive

        protected void preProcessArchive​(java.io.File archive)
                                  throws org.apache.maven.plugin.MojoExecutionException
        Pre-processes a given archive.
        Parameters:
        archive - The archive to process, must not be null.
        Throws:
        org.apache.maven.plugin.MojoExecutionException - If pre-processing failed.
      • processArchive

        private void processArchive​(java.io.File archive)
                             throws org.apache.maven.plugin.MojoExecutionException
        Processes a given archive.
        Parameters:
        archive - The archive to process.
        Throws:
        java.lang.NullPointerException - if archive is null.
        org.apache.maven.plugin.MojoExecutionException - if processing archive fails.
      • decrypt

        protected java.lang.String decrypt​(java.lang.String encoded)
                                    throws org.apache.maven.plugin.MojoExecutionException
        Throws:
        org.apache.maven.plugin.MojoExecutionException
      • getMessage

        private java.lang.String getMessage​(java.lang.String key,
                                            java.lang.Object[] args)
        Gets a message for a given key from the resource bundle backing the implementation.
        Parameters:
        key - The key of the message to return.
        args - Arguments to format the message with or null.
        Returns:
        The message with key key from the resource bundle backing the implementation.
        Throws:
        java.lang.NullPointerException - if key is null.
        java.util.MissingResourceException - if there is no message available matching key or accessing the resource bundle fails.
      • getMessage

        private java.lang.String getMessage​(java.lang.String key)
      • getMessage

        java.lang.String getMessage​(java.lang.String key,
                                    java.lang.Object arg)
      • getMessage

        private java.lang.String getMessage​(java.lang.String key,
                                            java.lang.Object arg1,
                                            java.lang.Object arg2)
      • getToolchain

        private org.apache.maven.toolchain.Toolchain getToolchain()
        FIXME tchemit-20123-11-13, need to find out how to do this... TODO remove the part with ToolchainManager lookup once we depend on 2.0.9 (have it as prerequisite). Define as regular component field then.
        Returns:
        Toolchain instance