Class SignMojo

  • All Implemented Interfaces:
    org.apache.maven.plugin.ContextEnabled, org.apache.maven.plugin.Mojo

    @Mojo(name="sign",
          defaultPhase=PACKAGE)
    public class SignMojo
    extends org.apache.maven.plugin.AbstractMojo
    Signs project main and attached artifacts using the Eclipse jarsigner webservice. Only artifacts with .jar extension are signed, other artifacts are not signed but a warning message is logged.
    • Field Detail

      • DEFAULT_RETRY_TIMER_STRING

        private static final java.lang.String DEFAULT_RETRY_TIMER_STRING
        The default number of seconds the process will wait if
        See Also:
        Constant Field Values
      • DEFAULT_RETRY_TIMER

        private static final int DEFAULT_RETRY_TIMER
      • DEFAULT_RETRY_LIMIT_STRING

        private static final java.lang.String DEFAULT_RETRY_LIMIT_STRING
        See Also:
        Constant Field Values
      • DEFAULT_RETRY_LIMIT

        private static final int DEFAULT_RETRY_LIMIT
      • project

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

        @Parameter(required=true,
                   property="cbi.jarsigner.signerUrl",
                   defaultValue="http://build.eclipse.org:31338/sign")
        private java.lang.String signerUrl
        The signing service URL for signing Jar files. This service should return a signed jar file.
        Since:
        1.0.4
      • skip

        @Parameter(property="cbi.jarsigner.skip",
                   defaultValue="false")
        private boolean skip
        Whether the execution of this plugin should be skipped.
        Since:
        1.0.4
      • deprecatedContinueOnFail

        @Deprecated
        @Parameter(property="continueOnFail",
                   defaultValue="false")
        private boolean deprecatedContinueOnFail
        Deprecated.
        The user property continueOnFail is deprecated. You should use the qualified property cbi.jarsigner.continueOnFail instead. The deprecatedContinueOnFail parameter has been introduced to support this deprecated user property for backward compatibility only.
        Whether the build should be stopped if the signing process fails.
        Since:
        1.0.5 (for the user property, since 1.1.3 for the parameter).
      • continueOnFail

        @Parameter(property="cbi.jarsigner.continueOnFail",
                   defaultValue="false")
        private boolean continueOnFail
        Whether the build should be stopped if the signing process fails.
        Since:
        1.0.5 (for the parameter, since 1.1.3 for the qualified user property).
      • deprecatedRetryLimit

        @Deprecated
        @Parameter(property="retryLimit",
                   defaultValue="3")
        private int deprecatedRetryLimit
        Deprecated.
        The user property retryLimit is deprecated. You should use the qualified property cbi.jarsigner.retryLimit instead. The deprecatedRetryLimit parameter has been introduced to support this deprecated user property for backward compatibility only.
        Number of times to retry signing if the server fails to sign.
        Since:
        1.1.0 (for the property, since 1.1.3 for the parameter)
      • retryLimit

        @Parameter(property="cbi.jarsigner.retryLimit",
                   defaultValue="3")
        private int retryLimit
        Number of times to retry signing if the server fails to sign.
        Since:
        1.1.0 (for the parameter, since 1.1.3 for the qualified user user property)
      • deprecatedRetryTimer

        @Deprecated
        @Parameter(property="retryTimer",
                   defaultValue="10")
        private int deprecatedRetryTimer
        Deprecated.
        The user property retryTimer is deprecated. You should use the qualified property cbi.jarsigner.retryTimer instead. The deprecatedRetryTimer parameter has been introduced to support this deprecated user property for backward compatibility only.
        Number of seconds to wait before retrying to sign.
        Since:
        1.1.0 (for the user property, since 1.1.3 for the parameter).
      • retryTimer

        @Parameter(property="cbi.jarsigner.retryTimer",
                   defaultValue="10")
        private int retryTimer
        Number of seconds to wait before retrying to sign.
        Since:
        1.1.0 (for the parameter, since 1.1.3 for the qualified user user property)
      • excludeInnerJars

        @Parameter(defaultValue="false")
        private boolean excludeInnerJars
        Whether to excludes signing inner jars (not recursive, only apply to first level Jars inside the build Jar file; deeper jars are ignored in all cases).
        Since:
        1.0.5
      • supportedProjectTypes

        @Deprecated
        @Parameter
        private java.util.List<java.lang.String> supportedProjectTypes
        Deprecated.
        Not used anymore.
        Project types which this plugin supports.
      • resigningStrategy

        @Parameter(property="cbi.jarsigner.resigningStrategy",
                   defaultValue="RESIGN")
        private JarResigner.Strategy resigningStrategy
        The strategy to be used if the artifacts of the current project are already signed (e.g., when replaced with a baseline version). Valid values are:
        • DO_NOT_RESIGN, do nothing with the jar file
        • THROW_EXCEPTION, throws an exception and stop the build if continueOnFail property is not set
        • RESIGN, resigns the jar with the same parameter as if it was not already signed (in particular the configured digestAlgorithm)
        • RESIGN_WITH_SAME_DIGEST_ALGORITHM, resigns the jar with the same digest algorithm as the one used when it has been previously signed. Thus, the digestAlgorithm is ignored for the already signed jars.
        • OVERWRITE, removes every signatures from the jar and resigned it with the same parameter as if it was not already signed (in particular the configured digestAlgorithm)
        • OVERWRITE_WITH_SAME_DIGEST_ALGORITHM, removes every signatures from the jar and resign it with the same digest algorithm as the one used when it has been previously signed. Thus, the digestAlgorithm is ignored for the already signed jars.
        Since:
        1.1.3
      • digestAlgorithm

        @Parameter(property="cbi.jarsigner.digestAlgorithm",
                   defaultValue="DEFAULT")
        private MessageDigestAlgorithm digestAlgorithm
        The digest algorithm to use for signing the jar file. Supported values depends on the remote signing web services. Values recognized by this plugin are:
        • DEFAULT, tells to the remote signing webservice to use its default digest algorithm to sign the jar
        • MD2
        • MD5
        • SHA_1
        • SHA1 Use this value if you need to be compatible with some old frameworks (e.g., Eclipse Equinox 3.7 / Indigo). Use SHA_1 otherwise.
        • SHA_224
        • SHA_256
        • SHA_384
        • SHA_512
        Since:
        1.1.3
      • signatureAlgorithm

        @Parameter(property="cbi.jarsigner.signatureAlgorithm",
                   defaultValue="DEFAULT")
        private SignatureAlgorithm signatureAlgorithm
        The signature algorithm to use for signing the jar file. Supported values depends on the remote signing web services. Values recognized by this plugin are:
        • DEFAULT, tells to the remote signing webservice to use its default digest algorithm to sign the jar
        • NONEwithRSA
        • MD2withRSA
        • MD5withRSA
        • SHA1withRSA
        • SHA224withRSA
        • SHA256withRSA
        • SHA384withRSA
        • SHA512withRSA
        • SHA1withDSA
        • SHA224withDSA
        • SHA256withDSA
        • NONEwithECDSA
        • SHA1withECDSA
        • SHA224withECDSA
        • SHA256withECDSA
        • SHA384withECDSA
        • SHA512withECDSA
        Since:
        1.1.3
      • connectTimeoutMillis

        @Deprecated
        @Parameter(property="cbi.jarsigner.connectTimeoutMillis",
                   defaultValue="5000")
        private int connectTimeoutMillis
        Deprecated.
        Use timeoutMillis instead. This one is for establishing the TCP connection only, you may be looking for a wall timeout instead.
        Defines the timeout in milliseconds for establishing a TCP connection with the signing server. A timeout value of zero is interpreted as an infinite timeout.
        Since:
        1.1.4
      • timeoutMillis

        @Parameter(property="cbi.jarsigner.timeoutMillis",
                   defaultValue="0")
        private int timeoutMillis
        Defines the wall timeout in milliseconds for performing the remote request. A timeout value of zero is interpreted as an infinite timeout.
        Since:
        1.1.5
      • sigFile

        @Parameter(property="cbi.jarsigner.sigFile",
                   defaultValue="")
        private java.lang.String sigFile
        Since:
        1.1.5
    • Constructor Detail

      • SignMojo

        public SignMojo()
    • Method Detail

      • execute

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

        private void signArtifact​(JarSigner jarSigner,
                                  org.apache.maven.artifact.Artifact artifact)
                           throws org.apache.maven.plugin.MojoExecutionException
        Throws:
        org.apache.maven.plugin.MojoExecutionException
      • continueOnFail

        private boolean continueOnFail()
      • retryLimit

        private int retryLimit()
      • retryTimer

        private int retryTimer()
      • createJarSigner

        private JarSigner createJarSigner()
        Creates and returns the JarSigner according to the injected Mojo parameter.
        Returns:
        the JarSigner according to the injected Mojo parameter.