Added:
maven/website/components/plugins-archives/maven-jarsigner-plugin-LATEST/jacoco/org.apache.maven.plugins.jarsigner/JarsignerSignMojo.html
==============================================================================
---
maven/website/components/plugins-archives/maven-jarsigner-plugin-LATEST/jacoco/org.apache.maven.plugins.jarsigner/JarsignerSignMojo.html
(added)
+++
maven/website/components/plugins-archives/maven-jarsigner-plugin-LATEST/jacoco/org.apache.maven.plugins.jarsigner/JarsignerSignMojo.html
Tue Sep 3 16:39:49 2024
@@ -0,0 +1 @@
+<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML
1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"><html
xmlns="http://www.w3.org/1999/xhtml" lang="en"><head><meta
http-equiv="Content-Type" content="text/html;charset=UTF-8"/><link
rel="stylesheet" href="../jacoco-resources/report.css" type="text/css"/><link
rel="shortcut icon" href="../jacoco-resources/report.gif"
type="image/gif"/><title>JarsignerSignMojo</title><script
type="text/javascript" src="../jacoco-resources/sort.js"></script></head><body
onload="initialSort(['breadcrumb'])"><div class="breadcrumb"
id="breadcrumb"><span class="info"><a href="../jacoco-sessions.html"
class="el_session">Sessions</a></span><a href="../index.html"
class="el_report">Apache Maven Jarsigner Plugin</a> > <a href="index.html"
class="el_package">org.apache.maven.plugins.jarsigner</a> > <span
class="el_class">JarsignerSignMojo</span></div><h1>JarsignerSignMojo</h1><table
class="coverage" cellspaci
ng="0" id="coveragetable"><thead><tr><td class="sortable" id="a"
onclick="toggleSort(this)">Element</td><td class="down sortable bar" id="b"
onclick="toggleSort(this)">Missed Instructions</td><td class="sortable ctr2"
id="c" onclick="toggleSort(this)">Cov.</td><td class="sortable bar" id="d"
onclick="toggleSort(this)">Missed Branches</td><td class="sortable ctr2" id="e"
onclick="toggleSort(this)">Cov.</td><td class="sortable ctr1" id="f"
onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="g"
onclick="toggleSort(this)">Cxty</td><td class="sortable ctr1" id="h"
onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="i"
onclick="toggleSort(this)">Lines</td><td class="sortable ctr1" id="j"
onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="k"
onclick="toggleSort(this)">Methods</td></tr></thead><tfoot><tr><td>Total</td><td
class="bar">36 of 473</td><td class="ctr2">92%</td><td class="bar">5 of
40</td><td class="ctr2">87%</td><td class="ctr1">5
</td><td class="ctr2">33</td><td class="ctr1">7</td><td
class="ctr2">88</td><td class="ctr1">0</td><td
class="ctr2">13</td></tr></tfoot><tbody><tr><td id="a7"><a
href="JarsignerSignMojo.java.html#L241"
class="el_method">preProcessArchive(File)</a></td><td class="bar" id="b0"><img
src="../jacoco-resources/redbar.gif" width="12" height="10" title="19"
alt="19"/><img src="../jacoco-resources/greenbar.gif" width="4" height="10"
title="7" alt="7"/></td><td class="ctr2" id="c12">26%</td><td class="bar"
id="d4"><img src="../jacoco-resources/greenbar.gif" width="10" height="10"
title="2" alt="2"/></td><td class="ctr2" id="e0">100%</td><td class="ctr1"
id="f4">0</td><td class="ctr2" id="g4">2</td><td class="ctr1" id="h1">2</td><td
class="ctr2" id="i4">6</td><td class="ctr1" id="j0">0</td><td class="ctr2"
id="k0">1</td></tr><tr><td id="a8"><a href="JarsignerSignMojo.java.html#L312"
class="el_method">processArchives(List)</a></td><td class="bar" id="b1"><img
src="../jacoco-resources/redbar.gif
" width="9" height="10" title="15" alt="15"/><img
src="../jacoco-resources/greenbar.gif" width="26" height="10" title="41"
alt="41"/></td><td class="ctr2" id="c11">73%</td><td class="bar" id="d3"><img
src="../jacoco-resources/redbar.gif" width="5" height="10" title="1"
alt="1"/><img src="../jacoco-resources/greenbar.gif" width="16" height="10"
title="3" alt="3"/></td><td class="ctr2" id="e4">75%</td><td class="ctr1"
id="f1">1</td><td class="ctr2" id="g2">3</td><td class="ctr1" id="h0">4</td><td
class="ctr2" id="i1">16</td><td class="ctr1" id="j1">0</td><td class="ctr2"
id="k1">1</td></tr><tr><td id="a2"><a href="JarsignerSignMojo.java.html#L347"
class="el_method">executeJarSigner(JarSigner, JarSignerRequest)</a></td><td
class="bar" id="b2"><img src="../jacoco-resources/greenbar.gif" width="41"
height="10" title="64" alt="64"/></td><td class="ctr2" id="c9">98%</td><td
class="bar" id="d2"><img src="../jacoco-resources/redbar.gif" width="5"
height="10" title="1" alt="1"/><img src="../j
acoco-resources/greenbar.gif" width="27" height="10" title="5"
alt="5"/></td><td class="ctr2" id="e3">83%</td><td class="ctr1"
id="f2">1</td><td class="ctr2" id="g1">4</td><td class="ctr1" id="h2">1</td><td
class="ctr2" id="i2">12</td><td class="ctr1" id="j2">0</td><td class="ctr2"
id="k2">1</td></tr><tr><td id="a3"><a href="JarsignerSignMojo.java.html#L230"
class="el_method">getCommandlineInfo(Commandline)</a></td><td class="bar"
id="b3"><img src="../jacoco-resources/greenbar.gif" width="10" height="10"
title="16" alt="16"/></td><td class="ctr2" id="c10">94%</td><td class="bar"
id="d0"><img src="../jacoco-resources/redbar.gif" width="10" height="10"
title="2" alt="2"/><img src="../jacoco-resources/greenbar.gif" width="10"
height="10" title="2" alt="2"/></td><td class="ctr2" id="e5">50%</td><td
class="ctr1" id="f0">2</td><td class="ctr2" id="g3">3</td><td class="ctr1"
id="h3">0</td><td class="ctr2" id="i7">4</td><td class="ctr1" id="j3">0</td><td
class="ctr2" id="k3">1</td></tr><tr>
<td id="a11"><a href="JarsignerSignMojo.java.html#L252"
class="el_method">validateParameters()</a></td><td class="bar" id="b4"><img
src="../jacoco-resources/greenbar.gif" width="120" height="10" title="185"
alt="185"/></td><td class="ctr2" id="c0">100%</td><td class="bar" id="d1"><img
src="../jacoco-resources/redbar.gif" width="5" height="10" title="1"
alt="1"/><img src="../jacoco-resources/greenbar.gif" width="114" height="10"
title="21" alt="21"/></td><td class="ctr2" id="e2">95%</td><td class="ctr1"
id="f3">1</td><td class="ctr2" id="g0">12</td><td class="ctr1"
id="h4">0</td><td class="ctr2" id="i0">20</td><td class="ctr1"
id="j4">0</td><td class="ctr2" id="k4">1</td></tr><tr><td id="a12"><a
href="JarsignerSignMojo.java.html#L398" class="el_method">waitAfterFailure(int,
Duration, JarsignerSignMojo.Sleeper)</a></td><td class="bar" id="b5"><img
src="../jacoco-resources/greenbar.gif" width="34" height="10" title="53"
alt="53"/></td><td class="ctr2" id="c1">100%</td><td class="bar" i
d="d5"><img src="../jacoco-resources/greenbar.gif" width="10" height="10"
title="2" alt="2"/></td><td class="ctr2" id="e1">100%</td><td class="ctr1"
id="f5">0</td><td class="ctr2" id="g5">2</td><td class="ctr1" id="h5">0</td><td
class="ctr2" id="i3">11</td><td class="ctr1" id="j5">0</td><td class="ctr2"
id="k5">1</td></tr><tr><td id="a0"><a href="JarsignerSignMojo.java.html#L289"
class="el_method">createRequest(File)</a></td><td class="bar" id="b6"><img
src="../jacoco-resources/greenbar.gif" width="16" height="10" title="26"
alt="26"/></td><td class="ctr2" id="c2">100%</td><td class="bar" id="d6"/><td
class="ctr2" id="e6">n/a</td><td class="ctr1" id="f6">0</td><td class="ctr2"
id="g6">1</td><td class="ctr1" id="h6">0</td><td class="ctr2" id="i5">6</td><td
class="ctr1" id="j6">0</td><td class="ctr2" id="k6">1</td></tr><tr><td
id="a10"><a href="JarsignerSignMojo.java.html#L301"
class="el_method">updateJarSignerRequestWithTsa(JarSignerSignRequest,
TsaSelector.TsaServer)</a></td><td cla
ss="bar" id="b7"><img src="../jacoco-resources/greenbar.gif" width="11"
height="10" title="17" alt="17"/></td><td class="ctr2" id="c3">100%</td><td
class="bar" id="d7"/><td class="ctr2" id="e7">n/a</td><td class="ctr1"
id="f7">0</td><td class="ctr2" id="g7">1</td><td class="ctr1" id="h7">0</td><td
class="ctr2" id="i6">5</td><td class="ctr1" id="j7">0</td><td class="ctr2"
id="k7">1</td></tr><tr><td id="a4"><a href="JarsignerSignMojo.java.html#L53"
class="el_method">JarsignerSignMojo()</a></td><td class="bar" id="b8"><img
src="../jacoco-resources/greenbar.gif" width="4" height="10" title="7"
alt="7"/></td><td class="ctr2" id="c4">100%</td><td class="bar" id="d8"/><td
class="ctr2" id="e8">n/a</td><td class="ctr1" id="f8">0</td><td class="ctr2"
id="g8">1</td><td class="ctr1" id="h8">0</td><td class="ctr2" id="i8">2</td><td
class="ctr1" id="j8">0</td><td class="ctr2" id="k8">1</td></tr><tr><td
id="a1"><a href="JarsignerSignMojo.java.html#L386"
class="el_method">defaultWaitStrategy(int, D
uration)</a></td><td class="bar" id="b9"><img
src="../jacoco-resources/greenbar.gif" width="3" height="10" title="6"
alt="6"/></td><td class="ctr2" id="c5">100%</td><td class="bar" id="d9"/><td
class="ctr2" id="e9">n/a</td><td class="ctr1" id="f9">0</td><td class="ctr2"
id="g9">1</td><td class="ctr1" id="h9">0</td><td class="ctr2" id="i9">2</td><td
class="ctr1" id="j9">0</td><td class="ctr2" id="k9">1</td></tr><tr><td
id="a6"><a href="JarsignerSignMojo.java.html#L314"
class="el_method">lambda$processArchives$1(ExecutorService, File)</a></td><td
class="bar" id="b10"><img src="../jacoco-resources/greenbar.gif" width="3"
height="10" title="6" alt="6"/></td><td class="ctr2" id="c6">100%</td><td
class="bar" id="d10"/><td class="ctr2" id="e10">n/a</td><td class="ctr1"
id="f10">0</td><td class="ctr2" id="g10">1</td><td class="ctr1"
id="h10">0</td><td class="ctr2" id="i12">1</td><td class="ctr1"
id="j10">0</td><td class="ctr2" id="k10">1</td></tr><tr><td id="a5"><a
href="JarsignerSignMojo.j
ava.html#L315" class="el_method">lambda$processArchives$0(File)</a></td><td
class="bar" id="b11"><img src="../jacoco-resources/greenbar.gif" width="3"
height="10" title="5" alt="5"/></td><td class="ctr2" id="c7">100%</td><td
class="bar" id="d11"/><td class="ctr2" id="e11">n/a</td><td class="ctr1"
id="f11">0</td><td class="ctr2" id="g11">1</td><td class="ctr1"
id="h11">0</td><td class="ctr2" id="i10">2</td><td class="ctr1"
id="j11">0</td><td class="ctr2" id="k11">1</td></tr><tr><td id="a9"><a
href="JarsignerSignMojo.java.html#L368"
class="el_method">setWaitStrategy(JarsignerSignMojo.WaitStrategy)</a></td><td
class="bar" id="b12"><img src="../jacoco-resources/greenbar.gif" width="2"
height="10" title="4" alt="4"/></td><td class="ctr2" id="c8">100%</td><td
class="bar" id="d12"/><td class="ctr2" id="e12">n/a</td><td class="ctr1"
id="f12">0</td><td class="ctr2" id="g12">1</td><td class="ctr1"
id="h12">0</td><td class="ctr2" id="i11">2</td><td class="ctr1"
id="j12">0</td><td class="ctr2"
id="k12">1</td></tr></tbody></table><div class="footer"><span
class="right">Created with <a href="http://www.jacoco.org/jacoco">JaCoCo</a>
0.8.12.202403310830</span></div></body></html>
\ No newline at end of file
Propchange:
maven/website/components/plugins-archives/maven-jarsigner-plugin-LATEST/jacoco/org.apache.maven.plugins.jarsigner/JarsignerSignMojo.html
------------------------------------------------------------------------------
svn:eol-style = native
Added:
maven/website/components/plugins-archives/maven-jarsigner-plugin-LATEST/jacoco/org.apache.maven.plugins.jarsigner/JarsignerSignMojo.java.html
==============================================================================
---
maven/website/components/plugins-archives/maven-jarsigner-plugin-LATEST/jacoco/org.apache.maven.plugins.jarsigner/JarsignerSignMojo.java.html
(added)
+++
maven/website/components/plugins-archives/maven-jarsigner-plugin-LATEST/jacoco/org.apache.maven.plugins.jarsigner/JarsignerSignMojo.java.html
Tue Sep 3 16:39:49 2024
@@ -0,0 +1,412 @@
+<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML
1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"><html
xmlns="http://www.w3.org/1999/xhtml" lang="en"><head><meta
http-equiv="Content-Type" content="text/html;charset=UTF-8"/><link
rel="stylesheet" href="../jacoco-resources/report.css" type="text/css"/><link
rel="shortcut icon" href="../jacoco-resources/report.gif"
type="image/gif"/><title>JarsignerSignMojo.java</title><link rel="stylesheet"
href="../jacoco-resources/prettify.css" type="text/css"/><script
type="text/javascript"
src="../jacoco-resources/prettify.js"></script></head><body
onload="window['PR_TAB_WIDTH']=4;prettyPrint()"><div class="breadcrumb"
id="breadcrumb"><span class="info"><a href="../jacoco-sessions.html"
class="el_session">Sessions</a></span><a href="../index.html"
class="el_report">Apache Maven Jarsigner Plugin</a> > <a
href="index.source.html"
class="el_package">org.apache.maven.plugins.jarsigner</a> > <span
class="el_source">JarsignerSignMojo.java</span></div><h1>JarsignerSignMojo.java</h1><pre
class="source lang-java linenums">/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.maven.plugins.jarsigner;
+
+import java.io.File;
+import java.io.IOException;
+import java.time.Duration;
+import java.util.List;
+import java.util.concurrent.Callable;
+import java.util.concurrent.ExecutionException;
+import java.util.concurrent.ExecutorService;
+import java.util.concurrent.Executors;
+import java.util.concurrent.Future;
+import java.util.stream.Collectors;
+
+import org.apache.maven.plugin.MojoExecutionException;
+import org.apache.maven.plugins.annotations.LifecyclePhase;
+import org.apache.maven.plugins.annotations.Mojo;
+import org.apache.maven.plugins.annotations.Parameter;
+import org.apache.maven.plugins.jarsigner.TsaSelector.TsaServer;
+import org.apache.maven.shared.jarsigner.JarSigner;
+import org.apache.maven.shared.jarsigner.JarSignerRequest;
+import org.apache.maven.shared.jarsigner.JarSignerSignRequest;
+import org.apache.maven.shared.jarsigner.JarSignerUtil;
+import org.apache.maven.shared.utils.StringUtils;
+import org.apache.maven.shared.utils.cli.Commandline;
+import org.apache.maven.shared.utils.cli.javatool.JavaToolException;
+import org.apache.maven.shared.utils.cli.javatool.JavaToolResult;
+
+/**
+ * Signs a project artifact and attachments using jarsigner.
+ *
+ * @author <a href="[email protected]">Christian
Schulte</a>
+ * @since 1.0
+ */
+@Mojo(name = "sign", defaultPhase = LifecyclePhase.PACKAGE,
threadSafe = true)
+<span class="fc" id="L53">public class JarsignerSignMojo extends
AbstractJarsignerMojo {</span>
+
+ /**
+ * See <a
href="https://docs.oracle.com/javase/7/docs/technotes/tools/windows/jarsigner.html#Options">options</a>.
+ */
+ @Parameter(property = "jarsigner.keypass")
+ private String keypass;
+
+ /**
+ * See <a
href="https://docs.oracle.com/javase/7/docs/technotes/tools/windows/jarsigner.html#Options">options</a>.
+ */
+ @Parameter(property = "jarsigner.sigfile")
+ private String sigfile;
+
+ /**
+ * Indicates whether existing signatures should be removed from the
processed JAR files prior to signing them. If
+ * enabled, the resulting JAR will appear as being signed only once.
+ *
+ * @since 1.1
+ */
+ @Parameter(property = "jarsigner.removeExistingSignatures",
defaultValue = "false")
+ private boolean removeExistingSignatures;
+
+ /**
+ * <p>URL(s) to Time Stamping Authority (TSA) server(s) to use to
timestamp the signing.
+ * See <a
href="https://docs.oracle.com/javase/7/docs/technotes/tools/windows/jarsigner.html#Options">options</a>.
+ * Separate multiple TSA URLs with comma (without space) or a nested XML
tag.</p>
+ *
+ * <pre>{@code
+ * <configuration>
+ *
<tsa>http://timestamp.digicert.com,http://timestamp.globalsign.com/tsa/r6advanced1</tsa>
+ * </configuration>
+ * }</pre>
+ *
+ * <pre>{@code
+ * <configuration>
+ * <tsa>
+ * <url>http://timestamp.digicert.com</url>
+ *
<url>http://timestamp.globalsign.com/tsa/r6advanced1</url>
+ * </tsa>
+ * </configuration>
+ * }</pre>
+ *
+ * <p>Usage of multiple TSA servers only makes sense when {@link
#maxTries} is more than 1. A different TSA server
+ * will only be used at retries.</p>
+ *
+ * <p>Changed to a list since 3.1.0. Single XML element (without
comma) is still supported.</p>
+ *
+ * @since 1.3
+ */
+ @Parameter(property = "jarsigner.tsa")
+ private String[] tsa;
+
+ /**
+ * <p>Alias(es) for certificate(s) in the active keystore used to
find a TSA URL. From the certificate the X509v3
+ * extension "Subject Information Access" field is examined to
find the TSA server URL. See
+ * <a
href="https://docs.oracle.com/javase/7/docs/technotes/tools/windows/jarsigner.html#Options">options</a>.
+ * Separate multiple aliases with comma (without space) or a nested XML
tag.</p>
+ *
+ * <pre>{@code
+ * <configuration>
+ * <tsacert>alias1,alias2</tsacert>
+ * </configuration>
+ * }</pre>
+ *
+ * <pre>{@code
+ * <configuration>
+ * <tsacert>
+ * <alias>alias1</alias>
+ * <alias>alias2</alias>
+ * </tsacert>
+ * </configuration>
+ * }</pre>
+ *
+ * <p>Should not be used at the same time as the {@link #tsa}
parameter (because jarsigner will typically ignore
+ * tsacert, if tsa is set).</p>
+ *
+ * <p>Usage of multiple aliases only makes sense when {@link
#maxTries} is more than 1. A different TSA server
+ * will only be used at retries.</p>
+ *
+ * <p>Changed to a list since 3.1.0. Single XML element (without
comma) is still supported.</p>
+ *
+ * @since 1.3
+ */
+ @Parameter(property = "jarsigner.tsacert")
+ private String[] tsacert;
+
+ /**
+ * <p>OID(s) to send to the TSA server to identify the policy ID the
server should use. If not specified TSA server
+ * will choose a default policy ID. Each TSA server vendor will typically
define their own policy OIDs. See
+ * <a
href="https://docs.oracle.com/javase/8/docs/technotes/tools/windows/jarsigner.html#CCHIFIAD">options</a>.
+ * Separate multiple OIDs with comma (without space) or a nested XML
tag.</p>
+ *
+ * <pre>{@code
+ * <configuration>
+ *
<tsapolicyid>1.3.6.1.4.1.4146.2.3.1.2,2.16.840.1.114412.7.1</tsapolicyid>
+ * </configuration>
+ * }</pre>
+ *
+ * <pre>{@code
+ * <configuration>
+ * <tsapolicyid>
+ * <oid>1.3.6.1.4.1.4146.2.3.1.2</oid>
+ * <oid>2.16.840.1.114412.7.1</oid>
+ * </tsapolicyid>
+ * </configuration>
+ * }</pre>
+ *
+ * <p>If used, the number of OIDs should be the same as the number
of elements in {@link #tsa} or {@link #tsacert}.
+ * The first OID will be used for the first TSA server, the second OID for
the second TSA server and so on.</p>
+ *
+ * @since 3.1.0
+ */
+ @Parameter(property = "jarsigner.tsapolicyid")
+ private String[] tsapolicyid;
+
+ /**
+ * The message digest algorithm to use in the messageImprint that the TSA
server will timestamp. A default value
+ * (for example {@code SHA-384}) will be selected by jarsigner if this
parameter is not set. Only available in
+ * Java 11 and later. See <a
href="https://docs.oracle.com/en/java/javase/11/tools/jarsigner.html">options</a>.
+ *
+ * @since 3.1.0
+ */
+ @Parameter(property = "jarsigner.tsadigestalg")
+ private String tsadigestalg;
+
+ /**
+ * Location of the extra certificate chain file. See
+ * <a
href="https://docs.oracle.com/javase/7/docs/technotes/tools/windows/jarsigner.html#Options">options</a>.
+ *
+ * @since 1.5
+ */
+ @Parameter(property = "jarsigner.certchain", required = false)
+ private File certchain;
+
+ /**
+ * How many times to try to sign a jar (assuming each previous attempt is
a failure). This option may be desirable
+ * if any network operations are used during signing, for example using a
Time Stamp Authority or network based
+ * PKCS11 HSM solution for storing code signing keys.
+ *
+ * The default value of 1 indicates that no retries should be made.
+ *
+ * @since 3.1.0
+ */
+ @Parameter(property = "jarsigner.maxTries", defaultValue =
"1")
+ private int maxTries;
+
+ /**
+ * Maximum delay, in seconds, to wait after a failed attempt before
re-trying. The delay after a failed attempt
+ * follows an exponential backoff strategy, with increasing delay times.
+ *
+ * @since 3.1.0
+ */
+ @Parameter(property = "jarsigner.maxRetryDelaySeconds",
defaultValue = "0")
+ private int maxRetryDelaySeconds;
+
+ /**
+ * Maximum number of parallel threads to use when signing jar files.
Increases performance when signing multiple jar
+ * files, especially when network operations are used during signing, for
example when using a Time Stamp Authority
+ * or network based PKCS11 HSM solution for storing code signing keys.
Note: the logging from the signing process
+ * will be interleaved, and harder to read, when using many threads.
+ *
+ * @since 3.1.0
+ */
+ @Parameter(property = "jarsigner.threadCount", defaultValue =
"1")
+ private int threadCount;
+
+ /** Current WaitStrategy, to allow for sleeping after a signing failure. */
+<span class="fc" id="L221"> private WaitStrategy waitStrategy =
this::defaultWaitStrategy;</span>
+
+ private TsaSelector tsaSelector;
+
+ /** Exponent limit for exponential wait after failure function. 2^20 =
1048576 sec ~= 12 days. */
+ private static final int MAX_WAIT_EXPONENT_ATTEMPT = 20;
+
+ @Override
+ protected String getCommandlineInfo(final Commandline commandLine) {
+<span class="pc bpc" id="L230" title="1 of 2 branches missed."> String
commandLineInfo = commandLine != null ? commandLine.toString() : null;</span>
+
+<span class="pc bpc" id="L232" title="1 of 2 branches missed."> if
(commandLineInfo != null) {</span>
+<span class="fc" id="L233"> commandLineInfo =
StringUtils.replace(commandLineInfo, this.keypass, "'*****'");</span>
+ }
+
+<span class="fc" id="L236"> return commandLineInfo;</span>
+ }
+
+ @Override
+ protected void preProcessArchive(final File archive) throws
MojoExecutionException {
+<span class="fc bfc" id="L241" title="All 2 branches covered."> if
(removeExistingSignatures) {</span>
+ try {
+<span class="fc" id="L243">
JarSignerUtil.unsignArchive(archive);</span>
+<span class="nc" id="L244"> } catch (IOException e) {</span>
+<span class="nc" id="L245"> throw new
MojoExecutionException("Failed to unsign archive " + archive +
": " + e.getMessage(), e);</span>
+<span class="fc" id="L246"> }</span>
+ }
+<span class="fc" id="L248"> }</span>
+
+ @Override
+ protected void validateParameters() throws MojoExecutionException {
+<span class="fc" id="L252"> super.validateParameters();</span>
+
+<span class="fc bfc" id="L254" title="All 2 branches covered."> if
(maxTries < 1) {</span>
+<span class="fc" id="L255">
getLog().warn(getMessage("invalidMaxTries", maxTries));</span>
+<span class="fc" id="L256"> maxTries = 1;</span>
+ }
+
+<span class="fc bfc" id="L259" title="All 2 branches covered."> if
(maxRetryDelaySeconds < 0) {</span>
+<span class="fc" id="L260">
getLog().warn(getMessage("invalidMaxRetryDelaySeconds",
maxRetryDelaySeconds));</span>
+<span class="fc" id="L261"> maxRetryDelaySeconds = 0;</span>
+ }
+
+<span class="fc bfc" id="L264" title="All 2 branches covered."> if
(threadCount < 1) {</span>
+<span class="fc" id="L265">
getLog().warn(getMessage("invalidThreadCount", threadCount));</span>
+<span class="fc" id="L266"> threadCount = 1;</span>
+ }
+
+<span class="fc bfc" id="L269" title="All 4 branches covered."> if
(tsa.length > 0 && tsacert.length > 0) {</span>
+<span class="fc" id="L270">
getLog().warn(getMessage("warnUsageTsaAndTsacertSimultaneous"));</span>
+ }
+<span class="pc bpc" id="L272" title="1 of 4 branches missed."> if
(tsapolicyid.length > tsa.length || tsapolicyid.length > tsacert.length)
{</span>
+<span class="fc" id="L273">
getLog().warn(getMessage("warnUsageTsapolicyidTooMany",
tsapolicyid.length, tsa.length, tsacert.length));</span>
+ }
+<span class="fc bfc" id="L275" title="All 4 branches covered."> if
(tsa.length > 1 && maxTries == 1) {</span>
+<span class="fc" id="L276">
getLog().warn(getMessage("warnUsageMultiTsaWithoutRetry",
tsa.length));</span>
+ }
+<span class="fc bfc" id="L278" title="All 4 branches covered."> if
(tsacert.length > 1 && maxTries == 1) {</span>
+<span class="fc" id="L279">
getLog().warn(getMessage("warnUsageMultiTsacertWithoutRetry",
tsacert.length));</span>
+ }
+<span class="fc" id="L281"> tsaSelector = new TsaSelector(tsa, tsacert,
tsapolicyid, tsadigestalg);</span>
+<span class="fc" id="L282"> }</span>
+
+ /**
+ * {@inheritDoc}
+ */
+ @Override
+ protected JarSignerRequest createRequest(File archive) throws
MojoExecutionException {
+<span class="fc" id="L289"> JarSignerSignRequest request = new
JarSignerSignRequest();</span>
+<span class="fc" id="L290"> request.setSigfile(sigfile);</span>
+<span class="fc" id="L291"> updateJarSignerRequestWithTsa(request,
tsaSelector.getServer());</span>
+<span class="fc" id="L292"> request.setCertchain(certchain);</span>
+
+ // Special handling for passwords through the Maven Security Dispatcher
+<span class="fc" id="L295"> request.setKeypass(decrypt(keypass));</span>
+<span class="fc" id="L296"> return request;</span>
+ }
+
+ /** Modifies JarSignerRequest with TSA parameters */
+ private void updateJarSignerRequestWithTsa(JarSignerSignRequest request,
TsaServer tsaServer) {
+<span class="fc" id="L301">
request.setTsaLocation(tsaServer.getTsaUrl());</span>
+<span class="fc" id="L302">
request.setTsaAlias(tsaServer.getTsaAlias());</span>
+<span class="fc" id="L303">
request.setTsapolicyid(tsaServer.getTsaPolicyId());</span>
+<span class="fc" id="L304">
request.setTsadigestalg(tsaServer.getTsaDigestAlt());</span>
+<span class="fc" id="L305"> }</span>
+
+ /**
+ * {@inheritDoc} Processing of files may be parallelized for increased
performance.
+ */
+ @Override
+ protected void processArchives(List<File> archives) throws
MojoExecutionException {
+<span class="fc" id="L312"> ExecutorService executor =
Executors.newFixedThreadPool(threadCount);</span>
+<span class="fc" id="L313"> List<Future<Void>> futures =
archives.stream()</span>
+<span class="fc" id="L314"> .map(file ->
executor.submit((Callable<Void>) () -> {</span>
+<span class="fc" id="L315"> processArchive(file);</span>
+<span class="fc" id="L316"> return null; // Return dummy
value to conform with Void type</span>
+ }))
+<span class="fc" id="L318">
.collect(Collectors.toList());</span>
+ try {
+<span class="fc bfc" id="L320" title="All 2 branches covered."> for
(Future<Void> future : futures) {</span>
+<span class="fc" id="L321"> future.get(); // Wait for
completion. Result ignored, but may raise any Exception</span>
+<span class="fc" id="L322"> }</span>
+<span class="nc" id="L323"> } catch (InterruptedException e) {</span>
+<span class="nc" id="L324">
Thread.currentThread().interrupt();</span>
+<span class="nc" id="L325"> throw new
MojoExecutionException("Thread interrupted while waiting for jarsigner to
complete", e);</span>
+<span class="fc" id="L326"> } catch (ExecutionException e) {</span>
+<span class="pc bpc" id="L327" title="1 of 2 branches missed."> if
(e.getCause() instanceof MojoExecutionException) {</span>
+<span class="fc" id="L328"> throw (MojoExecutionException)
e.getCause();</span>
+ }
+<span class="nc" id="L330"> throw new
MojoExecutionException("Error processing archives", e);</span>
+ } finally {
+ // Shutdown of thread pool. If an Exception occurred, remaining
threads will be aborted "best effort"
+<span class="fc" id="L333"> executor.shutdownNow();</span>
+ }
+<span class="fc" id="L335"> }</span>
+
+ /**
+ * {@inheritDoc}
+ *
+ * Will retry signing up to maxTries times if it fails.
+ *
+ * @throws MojoExecutionException if all signing attempts fail
+ */
+ @Override
+ protected void executeJarSigner(JarSigner jarSigner, JarSignerRequest
request)
+ throws JavaToolException, MojoExecutionException {
+<span class="pc bpc" id="L347" title="1 of 2 branches missed."> for
(int attempt = 0; attempt < maxTries; attempt++) {</span>
+<span class="fc" id="L348"> JavaToolResult result =
jarSigner.execute(request);</span>
+<span class="fc" id="L349"> int resultCode =
result.getExitCode();</span>
+<span class="fc bfc" id="L350" title="All 2 branches covered."> if
(resultCode == 0) {</span>
+<span class="fc" id="L351"> return;</span>
+ }
+<span class="fc" id="L353"> tsaSelector.registerFailure(); // Could
be TSA server problem or something unrelated to TSA</span>
+
+<span class="fc bfc" id="L355" title="All 2 branches covered."> if
(attempt < maxTries - 1) { // If not last attempt</span>
+<span class="fc" id="L356">
waitStrategy.waitAfterFailure(attempt,
Duration.ofSeconds(maxRetryDelaySeconds));</span>
+<span class="fc" id="L357">
updateJarSignerRequestWithTsa((JarSignerSignRequest) request,
tsaSelector.getServer());</span>
+ } else {
+ // Last attempt failed, use this failure as resulting failure
+<span class="fc" id="L360"> throw new
MojoExecutionException(</span>
+<span class="fc" id="L361">
getMessage("failure", getCommandlineInfo(result.getCommandline()),
resultCode));</span>
+ }
+ }
+<span class="nc" id="L364"> }</span>
+
+ /** Set current WaitStrategy. Package private for testing. */
+ void setWaitStrategy(WaitStrategy waitStrategy) {
+<span class="fc" id="L368"> this.waitStrategy = waitStrategy;</span>
+<span class="fc" id="L369"> }</span>
+
+ /** Wait/sleep after a signing failure before the next re-try should
happen. */
+ @FunctionalInterface
+ interface WaitStrategy {
+ /**
+ * Will be called after a signing failure, if a re-try is about to
happen. May as a side effect sleep current
+ * thread for some time.
+ *
+ * @param attempt the attempt number (0 is the first)
+ * @param maxRetryDelay the maximum duration to sleep (may be zero)
+ * @throws MojoExecutionException if the sleep was interrupted
+ */
+ void waitAfterFailure(int attempt, Duration maxRetryDelay) throws
MojoExecutionException;
+ }
+
+ private void defaultWaitStrategy(int attempt, Duration maxRetryDelay)
throws MojoExecutionException {
+<span class="fc" id="L386"> waitAfterFailure(attempt, maxRetryDelay,
Thread::sleep);</span>
+<span class="fc" id="L387"> }</span>
+
+ /** Thread.sleep(long millis) interface to make testing easier */
+ @FunctionalInterface
+ interface Sleeper {
+ void sleep(long millis) throws InterruptedException;
+ }
+
+ /** Package private for testing */
+ void waitAfterFailure(int attempt, Duration maxRetryDelay, Sleeper
sleeper) throws MojoExecutionException {
+ // Use attempt as exponent in the exponential function, but limit it
to avoid too big values.
+<span class="fc" id="L398"> int exponentAttempt = Math.min(attempt,
MAX_WAIT_EXPONENT_ATTEMPT);</span>
+<span class="fc" id="L399"> long delayMillis = (long)
(Duration.ofSeconds(1).toMillis() * Math.pow(2, exponentAttempt));</span>
+<span class="fc" id="L400"> delayMillis = Math.min(delayMillis,
maxRetryDelay.toMillis());</span>
+<span class="fc bfc" id="L401" title="All 2 branches covered."> if
(delayMillis > 0) {</span>
+<span class="fc" id="L402"> getLog().info("Sleeping after
failed attempt for " + (delayMillis / 1000) + "
seconds...");</span>
+ try {
+<span class="fc" id="L404"> sleeper.sleep(delayMillis);</span>
+<span class="fc" id="L405"> } catch (InterruptedException e)
{</span>
+<span class="fc" id="L406">
Thread.currentThread().interrupt();</span>
+<span class="fc" id="L407"> throw new
MojoExecutionException("Thread interrupted while waiting after
failure", e);</span>
+<span class="fc" id="L408"> }</span>
+ }
+<span class="fc" id="L410"> }</span>
+}
+</pre><div class="footer"><span class="right">Created with <a
href="http://www.jacoco.org/jacoco">JaCoCo</a>
0.8.12.202403310830</span></div></body></html>
\ No newline at end of file
Propchange:
maven/website/components/plugins-archives/maven-jarsigner-plugin-LATEST/jacoco/org.apache.maven.plugins.jarsigner/JarsignerSignMojo.java.html
------------------------------------------------------------------------------
svn:eol-style = native
Added:
maven/website/components/plugins-archives/maven-jarsigner-plugin-LATEST/jacoco/org.apache.maven.plugins.jarsigner/JarsignerVerifyMojo.html
==============================================================================
---
maven/website/components/plugins-archives/maven-jarsigner-plugin-LATEST/jacoco/org.apache.maven.plugins.jarsigner/JarsignerVerifyMojo.html
(added)
+++
maven/website/components/plugins-archives/maven-jarsigner-plugin-LATEST/jacoco/org.apache.maven.plugins.jarsigner/JarsignerVerifyMojo.html
Tue Sep 3 16:39:49 2024
@@ -0,0 +1 @@
+<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML
1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"><html
xmlns="http://www.w3.org/1999/xhtml" lang="en"><head><meta
http-equiv="Content-Type" content="text/html;charset=UTF-8"/><link
rel="stylesheet" href="../jacoco-resources/report.css" type="text/css"/><link
rel="shortcut icon" href="../jacoco-resources/report.gif"
type="image/gif"/><title>JarsignerVerifyMojo</title><script
type="text/javascript" src="../jacoco-resources/sort.js"></script></head><body
onload="initialSort(['breadcrumb'])"><div class="breadcrumb"
id="breadcrumb"><span class="info"><a href="../jacoco-sessions.html"
class="el_session">Sessions</a></span><a href="../index.html"
class="el_report">Apache Maven Jarsigner Plugin</a> > <a href="index.html"
class="el_package">org.apache.maven.plugins.jarsigner</a> > <span
class="el_class">JarsignerVerifyMojo</span></div><h1>JarsignerVerifyMojo</h1><table
class="coverage" cel
lspacing="0" id="coveragetable"><thead><tr><td class="sortable" id="a"
onclick="toggleSort(this)">Element</td><td class="down sortable bar" id="b"
onclick="toggleSort(this)">Missed Instructions</td><td class="sortable ctr2"
id="c" onclick="toggleSort(this)">Cov.</td><td class="sortable bar" id="d"
onclick="toggleSort(this)">Missed Branches</td><td class="sortable ctr2" id="e"
onclick="toggleSort(this)">Cov.</td><td class="sortable ctr1" id="f"
onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="g"
onclick="toggleSort(this)">Cxty</td><td class="sortable ctr1" id="h"
onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="i"
onclick="toggleSort(this)">Lines</td><td class="sortable ctr1" id="j"
onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="k"
onclick="toggleSort(this)">Methods</td></tr></thead><tfoot><tr><td>Total</td><td
class="bar">19 of 89</td><td class="ctr2">78%</td><td class="bar">0 of
6</td><td class="ctr2">100%</td><td class="ct
r1">0</td><td class="ctr2">7</td><td class="ctr1">3</td><td
class="ctr2">20</td><td class="ctr1">0</td><td
class="ctr2">4</td></tr></tfoot><tbody><tr><td id="a3"><a
href="JarsignerVerifyMojo.java.html#L73"
class="el_method">preProcessArchive(File)</a></td><td class="bar" id="b0"><img
src="../jacoco-resources/redbar.gif" width="50" height="10" title="19"
alt="19"/><img src="../jacoco-resources/greenbar.gif" width="69" height="10"
title="26" alt="26"/></td><td class="ctr2" id="c3">57%</td><td class="bar"
id="d0"><img src="../jacoco-resources/greenbar.gif" width="120" height="10"
title="4" alt="4"/></td><td class="ctr2" id="e0">100%</td><td class="ctr1"
id="f0">0</td><td class="ctr2" id="g0">3</td><td class="ctr1" id="h0">3</td><td
class="ctr2" id="i0">10</td><td class="ctr1" id="j0">0</td><td class="ctr2"
id="k0">1</td></tr><tr><td id="a1"><a href="JarsignerVerifyMojo.java.html#L97"
class="el_method">executeJarSigner(JarSigner, JarSignerRequest)</a></td><td
class="bar" id="b1"><img sr
c="../jacoco-resources/greenbar.gif" width="82" height="10" title="31"
alt="31"/></td><td class="ctr2" id="c0">100%</td><td class="bar" id="d1"><img
src="../jacoco-resources/greenbar.gif" width="60" height="10" title="2"
alt="2"/></td><td class="ctr2" id="e1">100%</td><td class="ctr1"
id="f1">0</td><td class="ctr2" id="g1">2</td><td class="ctr1" id="h1">0</td><td
class="ctr2" id="i1">6</td><td class="ctr1" id="j1">0</td><td class="ctr2"
id="k1">1</td></tr><tr><td id="a0"><a href="JarsignerVerifyMojo.java.html#L66"
class="el_method">createRequest(File)</a></td><td class="bar" id="b2"><img
src="../jacoco-resources/greenbar.gif" width="26" height="10" title="10"
alt="10"/></td><td class="ctr2" id="c1">100%</td><td class="bar" id="d2"/><td
class="ctr2" id="e2">n/a</td><td class="ctr1" id="f2">0</td><td class="ctr2"
id="g2">1</td><td class="ctr1" id="h2">0</td><td class="ctr2" id="i2">3</td><td
class="ctr1" id="j2">0</td><td class="ctr2" id="k2">1</td></tr><tr><td
id="a2"><a href="Jarsig
nerVerifyMojo.java.html#L42"
class="el_method">JarsignerVerifyMojo()</a></td><td class="bar" id="b3"><img
src="../jacoco-resources/greenbar.gif" width="8" height="10" title="3"
alt="3"/></td><td class="ctr2" id="c2">100%</td><td class="bar" id="d3"/><td
class="ctr2" id="e3">n/a</td><td class="ctr1" id="f3">0</td><td class="ctr2"
id="g3">1</td><td class="ctr1" id="h3">0</td><td class="ctr2" id="i3">1</td><td
class="ctr1" id="j3">0</td><td class="ctr2"
id="k3">1</td></tr></tbody></table><div class="footer"><span
class="right">Created with <a href="http://www.jacoco.org/jacoco">JaCoCo</a>
0.8.12.202403310830</span></div></body></html>
\ No newline at end of file
Propchange:
maven/website/components/plugins-archives/maven-jarsigner-plugin-LATEST/jacoco/org.apache.maven.plugins.jarsigner/JarsignerVerifyMojo.html
------------------------------------------------------------------------------
svn:eol-style = native
Added:
maven/website/components/plugins-archives/maven-jarsigner-plugin-LATEST/jacoco/org.apache.maven.plugins.jarsigner/JarsignerVerifyMojo.java.html
==============================================================================
---
maven/website/components/plugins-archives/maven-jarsigner-plugin-LATEST/jacoco/org.apache.maven.plugins.jarsigner/JarsignerVerifyMojo.java.html
(added)
+++
maven/website/components/plugins-archives/maven-jarsigner-plugin-LATEST/jacoco/org.apache.maven.plugins.jarsigner/JarsignerVerifyMojo.java.html
Tue Sep 3 16:39:49 2024
@@ -0,0 +1,105 @@
+<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML
1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"><html
xmlns="http://www.w3.org/1999/xhtml" lang="en"><head><meta
http-equiv="Content-Type" content="text/html;charset=UTF-8"/><link
rel="stylesheet" href="../jacoco-resources/report.css" type="text/css"/><link
rel="shortcut icon" href="../jacoco-resources/report.gif"
type="image/gif"/><title>JarsignerVerifyMojo.java</title><link rel="stylesheet"
href="../jacoco-resources/prettify.css" type="text/css"/><script
type="text/javascript"
src="../jacoco-resources/prettify.js"></script></head><body
onload="window['PR_TAB_WIDTH']=4;prettyPrint()"><div class="breadcrumb"
id="breadcrumb"><span class="info"><a href="../jacoco-sessions.html"
class="el_session">Sessions</a></span><a href="../index.html"
class="el_report">Apache Maven Jarsigner Plugin</a> > <a
href="index.source.html"
class="el_package">org.apache.maven.plugins.jarsigner</a> > <sp
an
class="el_source">JarsignerVerifyMojo.java</span></div><h1>JarsignerVerifyMojo.java</h1><pre
class="source lang-java linenums">/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.maven.plugins.jarsigner;
+
+import java.io.File;
+import java.io.IOException;
+
+import org.apache.maven.plugin.MojoExecutionException;
+import org.apache.maven.plugins.annotations.LifecyclePhase;
+import org.apache.maven.plugins.annotations.Mojo;
+import org.apache.maven.plugins.annotations.Parameter;
+import org.apache.maven.shared.jarsigner.JarSigner;
+import org.apache.maven.shared.jarsigner.JarSignerRequest;
+import org.apache.maven.shared.jarsigner.JarSignerUtil;
+import org.apache.maven.shared.jarsigner.JarSignerVerifyRequest;
+import org.apache.maven.shared.utils.cli.javatool.JavaToolException;
+import org.apache.maven.shared.utils.cli.javatool.JavaToolResult;
+
+/**
+ * Checks the signatures of a project artifact and attachments using jarsigner.
+ *
+ * @author <a href="[email protected]">Christian
Schulte</a>
+ * @since 1.0
+ */
+@Mojo(name = "verify", defaultPhase = LifecyclePhase.VERIFY,
threadSafe = true)
+<span class="fc" id="L42">public class JarsignerVerifyMojo extends
AbstractJarsignerMojo {</span>
+
+ /**
+ * See <a
href="https://docs.oracle.com/javase/7/docs/technotes/tools/windows/jarsigner.html#Options">options</a>.
+ */
+ @Parameter(property = "jarsigner.certs", defaultValue =
"false")
+ private boolean certs;
+
+ /**
+ * When <code>true</code> this will make the execute()
operation fail,
+ * throwing an exception, when verifying a non signed jar.
+ * Primarily to keep backwards compatibility with existing code, and allow
reusing the
+ * bean in unattended operations when set to
<code>false</code>.
+ *
+ * @since 1.3
+ **/
+ @Parameter(property = "jarsigner.errorWhenNotSigned",
defaultValue = "false")
+ private boolean errorWhenNotSigned;
+
+ /**
+ * {@inheritDoc}
+ */
+ @Override
+ protected JarSignerRequest createRequest(File archive) {
+<span class="fc" id="L66"> JarSignerVerifyRequest request = new
JarSignerVerifyRequest();</span>
+<span class="fc" id="L67"> request.setCerts(certs);</span>
+<span class="fc" id="L68"> return request;</span>
+ }
+
+ @Override
+ protected void preProcessArchive(File archive) throws
MojoExecutionException {
+<span class="fc" id="L73"> super.preProcessArchive(archive);</span>
+
+<span class="fc bfc" id="L75" title="All 2 branches covered."> if
(errorWhenNotSigned) {</span>
+
+ // check archive if signed
+ boolean archiveSigned;
+ try {
+<span class="fc" id="L80"> archiveSigned =
JarSignerUtil.isArchiveSigned(archive);</span>
+<span class="nc" id="L81"> } catch (IOException e) {</span>
+<span class="nc" id="L82"> throw new
MojoExecutionException(</span>
+<span class="nc" id="L83"> "Failed to check if
archive " + archive + " is signed: " + e.getMessage(), e);</span>
+<span class="fc" id="L84"> }</span>
+
+<span class="fc bfc" id="L86" title="All 2 branches covered."> if
(!archiveSigned) {</span>
+
+ // fails, archive must be signed
+<span class="fc" id="L89"> throw new
MojoExecutionException(getMessage("archiveNotSigned",
archive));</span>
+ }
+ }
+<span class="fc" id="L92"> }</span>
+
+ @Override
+ protected void executeJarSigner(JarSigner jarSigner, JarSignerRequest
request)
+ throws JavaToolException, MojoExecutionException {
+<span class="fc" id="L97"> JavaToolResult result =
jarSigner.execute(request);</span>
+<span class="fc" id="L98"> int resultCode = result.getExitCode();</span>
+<span class="fc bfc" id="L99" title="All 2 branches covered."> if
(resultCode != 0) {</span>
+<span class="fc" id="L100"> throw new MojoExecutionException(</span>
+<span class="fc" id="L101"> getMessage("failure",
getCommandlineInfo(result.getCommandline()), resultCode));</span>
+ }
+<span class="fc" id="L103"> }</span>
+}
+</pre><div class="footer"><span class="right">Created with <a
href="http://www.jacoco.org/jacoco">JaCoCo</a>
0.8.12.202403310830</span></div></body></html>
\ No newline at end of file
Propchange:
maven/website/components/plugins-archives/maven-jarsigner-plugin-LATEST/jacoco/org.apache.maven.plugins.jarsigner/JarsignerVerifyMojo.java.html
------------------------------------------------------------------------------
svn:eol-style = native
Added:
maven/website/components/plugins-archives/maven-jarsigner-plugin-LATEST/jacoco/org.apache.maven.plugins.jarsigner/TsaSelector$TsaServer.html
==============================================================================
---
maven/website/components/plugins-archives/maven-jarsigner-plugin-LATEST/jacoco/org.apache.maven.plugins.jarsigner/TsaSelector$TsaServer.html
(added)
+++
maven/website/components/plugins-archives/maven-jarsigner-plugin-LATEST/jacoco/org.apache.maven.plugins.jarsigner/TsaSelector$TsaServer.html
Tue Sep 3 16:39:49 2024
@@ -0,0 +1 @@
+<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML
1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"><html
xmlns="http://www.w3.org/1999/xhtml" lang="en"><head><meta
http-equiv="Content-Type" content="text/html;charset=UTF-8"/><link
rel="stylesheet" href="../jacoco-resources/report.css" type="text/css"/><link
rel="shortcut icon" href="../jacoco-resources/report.gif"
type="image/gif"/><title>TsaSelector.TsaServer</title><script
type="text/javascript" src="../jacoco-resources/sort.js"></script></head><body
onload="initialSort(['breadcrumb'])"><div class="breadcrumb"
id="breadcrumb"><span class="info"><a href="../jacoco-sessions.html"
class="el_session">Sessions</a></span><a href="../index.html"
class="el_report">Apache Maven Jarsigner Plugin</a> > <a href="index.html"
class="el_package">org.apache.maven.plugins.jarsigner</a> > <span
class="el_class">TsaSelector.TsaServer</span></div><h1>TsaSelector.TsaServer</h1><table
class="coverag
e" cellspacing="0" id="coveragetable"><thead><tr><td class="sortable" id="a"
onclick="toggleSort(this)">Element</td><td class="down sortable bar" id="b"
onclick="toggleSort(this)">Missed Instructions</td><td class="sortable ctr2"
id="c" onclick="toggleSort(this)">Cov.</td><td class="sortable bar" id="d"
onclick="toggleSort(this)">Missed Branches</td><td class="sortable ctr2" id="e"
onclick="toggleSort(this)">Cov.</td><td class="sortable ctr1" id="f"
onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="g"
onclick="toggleSort(this)">Cxty</td><td class="sortable ctr1" id="h"
onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="i"
onclick="toggleSort(this)">Lines</td><td class="sortable ctr1" id="j"
onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="k"
onclick="toggleSort(this)">Methods</td></tr></thead><tfoot><tr><td>Total</td><td
class="bar">0 of 42</td><td class="ctr2">100%</td><td class="bar">0 of
0</td><td class="ctr2">n/a</td><td clas
s="ctr1">0</td><td class="ctr2">6</td><td class="ctr1">0</td><td
class="ctr2">12</td><td class="ctr1">0</td><td
class="ctr2">6</td></tr></tfoot><tbody><tr><td id="a5"><a
href="TsaSelector.java.html#L111"
class="el_method">TsaSelector.TsaServer(String, String, String,
String)</a></td><td class="bar" id="b0"><img
src="../jacoco-resources/greenbar.gif" width="120" height="10" title="21"
alt="21"/></td><td class="ctr2" id="c0">100%</td><td class="bar" id="d0"/><td
class="ctr2" id="e0">n/a</td><td class="ctr1" id="f0">0</td><td class="ctr2"
id="g0">1</td><td class="ctr1" id="h0">0</td><td class="ctr2" id="i0">7</td><td
class="ctr1" id="j0">0</td><td class="ctr2" id="k0">1</td></tr><tr><td
id="a4"><a href="TsaSelector.java.html#L109" class="el_method">static
{...}</a></td><td class="bar" id="b1"><img
src="../jacoco-resources/greenbar.gif" width="51" height="10" title="9"
alt="9"/></td><td class="ctr2" id="c1">100%</td><td class="bar" id="d1"/><td
class="ctr2" id="e1">n/a</td><td class="ct
r1" id="f1">0</td><td class="ctr2" id="g1">1</td><td class="ctr1"
id="h1">0</td><td class="ctr2" id="i1">1</td><td class="ctr1" id="j1">0</td><td
class="ctr2" id="k1">1</td></tr><tr><td id="a3"><a
href="TsaSelector.java.html#L125" class="el_method">getTsaUrl()</a></td><td
class="bar" id="b2"><img src="../jacoco-resources/greenbar.gif" width="17"
height="10" title="3" alt="3"/></td><td class="ctr2" id="c2">100%</td><td
class="bar" id="d2"/><td class="ctr2" id="e2">n/a</td><td class="ctr1"
id="f2">0</td><td class="ctr2" id="g2">1</td><td class="ctr1" id="h2">0</td><td
class="ctr2" id="i2">1</td><td class="ctr1" id="j2">0</td><td class="ctr2"
id="k2">1</td></tr><tr><td id="a0"><a href="TsaSelector.java.html#L129"
class="el_method">getTsaAlias()</a></td><td class="bar" id="b3"><img
src="../jacoco-resources/greenbar.gif" width="17" height="10" title="3"
alt="3"/></td><td class="ctr2" id="c3">100%</td><td class="bar" id="d3"/><td
class="ctr2" id="e3">n/a</td><td class="ctr1" id="f3">0</td
><td class="ctr2" id="g3">1</td><td class="ctr1" id="h3">0</td><td
>class="ctr2" id="i3">1</td><td class="ctr1" id="j3">0</td><td class="ctr2"
>id="k3">1</td></tr><tr><td id="a2"><a href="TsaSelector.java.html#L133"
>class="el_method">getTsaPolicyId()</a></td><td class="bar" id="b4"><img
>src="../jacoco-resources/greenbar.gif" width="17" height="10" title="3"
>alt="3"/></td><td class="ctr2" id="c4">100%</td><td class="bar" id="d4"/><td
>class="ctr2" id="e4">n/a</td><td class="ctr1" id="f4">0</td><td class="ctr2"
>id="g4">1</td><td class="ctr1" id="h4">0</td><td class="ctr2"
>id="i4">1</td><td class="ctr1" id="j4">0</td><td class="ctr2"
>id="k4">1</td></tr><tr><td id="a1"><a href="TsaSelector.java.html#L137"
>class="el_method">getTsaDigestAlt()</a></td><td class="bar" id="b5"><img
>src="../jacoco-resources/greenbar.gif" width="17" height="10" title="3"
>alt="3"/></td><td class="ctr2" id="c5">100%</td><td class="bar" id="d5"/><td
>class="ctr2" id="e5">n/a</td><td class="ctr1" id="f5">0</td><td cla
ss="ctr2" id="g5">1</td><td class="ctr1" id="h5">0</td><td class="ctr2"
id="i5">1</td><td class="ctr1" id="j5">0</td><td class="ctr2"
id="k5">1</td></tr></tbody></table><div class="footer"><span
class="right">Created with <a href="http://www.jacoco.org/jacoco">JaCoCo</a>
0.8.12.202403310830</span></div></body></html>
\ No newline at end of file
Propchange:
maven/website/components/plugins-archives/maven-jarsigner-plugin-LATEST/jacoco/org.apache.maven.plugins.jarsigner/TsaSelector$TsaServer.html
------------------------------------------------------------------------------
svn:eol-style = native
Added:
maven/website/components/plugins-archives/maven-jarsigner-plugin-LATEST/jacoco/org.apache.maven.plugins.jarsigner/TsaSelector.html
==============================================================================
---
maven/website/components/plugins-archives/maven-jarsigner-plugin-LATEST/jacoco/org.apache.maven.plugins.jarsigner/TsaSelector.html
(added)
+++
maven/website/components/plugins-archives/maven-jarsigner-plugin-LATEST/jacoco/org.apache.maven.plugins.jarsigner/TsaSelector.html
Tue Sep 3 16:39:49 2024
@@ -0,0 +1 @@
+<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML
1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"><html
xmlns="http://www.w3.org/1999/xhtml" lang="en"><head><meta
http-equiv="Content-Type" content="text/html;charset=UTF-8"/><link
rel="stylesheet" href="../jacoco-resources/report.css" type="text/css"/><link
rel="shortcut icon" href="../jacoco-resources/report.gif"
type="image/gif"/><title>TsaSelector</title><script type="text/javascript"
src="../jacoco-resources/sort.js"></script></head><body
onload="initialSort(['breadcrumb'])"><div class="breadcrumb"
id="breadcrumb"><span class="info"><a href="../jacoco-sessions.html"
class="el_session">Sessions</a></span><a href="../index.html"
class="el_report">Apache Maven Jarsigner Plugin</a> > <a href="index.html"
class="el_package">org.apache.maven.plugins.jarsigner</a> > <span
class="el_class">TsaSelector</span></div><h1>TsaSelector</h1><table
class="coverage" cellspacing="0" id="coverag
etable"><thead><tr><td class="sortable" id="a"
onclick="toggleSort(this)">Element</td><td class="down sortable bar" id="b"
onclick="toggleSort(this)">Missed Instructions</td><td class="sortable ctr2"
id="c" onclick="toggleSort(this)">Cov.</td><td class="sortable bar" id="d"
onclick="toggleSort(this)">Missed Branches</td><td class="sortable ctr2" id="e"
onclick="toggleSort(this)">Cov.</td><td class="sortable ctr1" id="f"
onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="g"
onclick="toggleSort(this)">Cxty</td><td class="sortable ctr1" id="h"
onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="i"
onclick="toggleSort(this)">Lines</td><td class="sortable ctr1" id="j"
onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="k"
onclick="toggleSort(this)">Methods</td></tr></thead><tfoot><tr><td>Total</td><td
class="bar">0 of 125</td><td class="ctr2">100%</td><td class="bar">0 of
16</td><td class="ctr2">100%</td><td class="ctr1">0</td><td class="c
tr2">11</td><td class="ctr1">0</td><td class="ctr2">21</td><td
class="ctr1">0</td><td class="ctr2">3</td></tr></tfoot><tbody><tr><td
id="a2"><a href="TsaSelector.java.html#L57"
class="el_method">TsaSelector(String[], String[], String[], String)</a></td><td
class="bar" id="b0"><img src="../jacoco-resources/greenbar.gif" width="120"
height="10" title="75" alt="75"/></td><td class="ctr2" id="c0">100%</td><td
class="bar" id="d0"><img src="../jacoco-resources/greenbar.gif" width="120"
height="10" title="10" alt="10"/></td><td class="ctr2" id="e0">100%</td><td
class="ctr1" id="f0">0</td><td class="ctr2" id="g0">6</td><td class="ctr1"
id="h0">0</td><td class="ctr2" id="i0">12</td><td class="ctr1"
id="j0">0</td><td class="ctr2" id="k0">1</td></tr><tr><td id="a0"><a
href="TsaSelector.java.html#L85" class="el_method">getServer()</a></td><td
class="bar" id="b1"><img src="../jacoco-resources/greenbar.gif" width="60"
height="10" title="38" alt="38"/></td><td class="ctr2" id="c1">100%</td><td cla
ss="bar" id="d1"><img src="../jacoco-resources/greenbar.gif" width="48"
height="10" title="4" alt="4"/></td><td class="ctr2" id="e1">100%</td><td
class="ctr1" id="f1">0</td><td class="ctr2" id="g1">3</td><td class="ctr1"
id="h1">0</td><td class="ctr2" id="i1">6</td><td class="ctr1" id="j1">0</td><td
class="ctr2" id="k1">1</td></tr><tr><td id="a1"><a
href="TsaSelector.java.html#L102"
class="el_method">registerFailure()</a></td><td class="bar" id="b2"><img
src="../jacoco-resources/greenbar.gif" width="19" height="10" title="12"
alt="12"/></td><td class="ctr2" id="c2">100%</td><td class="bar" id="d2"><img
src="../jacoco-resources/greenbar.gif" width="24" height="10" title="2"
alt="2"/></td><td class="ctr2" id="e2">100%</td><td class="ctr1"
id="f2">0</td><td class="ctr2" id="g2">2</td><td class="ctr1" id="h2">0</td><td
class="ctr2" id="i2">3</td><td class="ctr1" id="j2">0</td><td class="ctr2"
id="k2">1</td></tr></tbody></table><div class="footer"><span
class="right">Created with <a href
="http://www.jacoco.org/jacoco">JaCoCo</a>
0.8.12.202403310830</span></div></body></html>
\ No newline at end of file
Propchange:
maven/website/components/plugins-archives/maven-jarsigner-plugin-LATEST/jacoco/org.apache.maven.plugins.jarsigner/TsaSelector.html
------------------------------------------------------------------------------
svn:eol-style = native
Added:
maven/website/components/plugins-archives/maven-jarsigner-plugin-LATEST/jacoco/org.apache.maven.plugins.jarsigner/TsaSelector.java.html
==============================================================================
---
maven/website/components/plugins-archives/maven-jarsigner-plugin-LATEST/jacoco/org.apache.maven.plugins.jarsigner/TsaSelector.java.html
(added)
+++
maven/website/components/plugins-archives/maven-jarsigner-plugin-LATEST/jacoco/org.apache.maven.plugins.jarsigner/TsaSelector.java.html
Tue Sep 3 16:39:49 2024
@@ -0,0 +1,141 @@
+<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML
1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"><html
xmlns="http://www.w3.org/1999/xhtml" lang="en"><head><meta
http-equiv="Content-Type" content="text/html;charset=UTF-8"/><link
rel="stylesheet" href="../jacoco-resources/report.css" type="text/css"/><link
rel="shortcut icon" href="../jacoco-resources/report.gif"
type="image/gif"/><title>TsaSelector.java</title><link rel="stylesheet"
href="../jacoco-resources/prettify.css" type="text/css"/><script
type="text/javascript"
src="../jacoco-resources/prettify.js"></script></head><body
onload="window['PR_TAB_WIDTH']=4;prettyPrint()"><div class="breadcrumb"
id="breadcrumb"><span class="info"><a href="../jacoco-sessions.html"
class="el_session">Sessions</a></span><a href="../index.html"
class="el_report">Apache Maven Jarsigner Plugin</a> > <a
href="index.source.html"
class="el_package">org.apache.maven.plugins.jarsigner</a> > <span class
="el_source">TsaSelector.java</span></div><h1>TsaSelector.java</h1><pre
class="source lang-java linenums">/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.maven.plugins.jarsigner;
+
+import java.util.ArrayList;
+import java.util.Collections;
+import java.util.List;
+import java.util.concurrent.atomic.AtomicInteger;
+
+/**
+ * Helper class to select a Time Stamping Authority (TSA) server along with
parameters to send. The protocol is defined
+ * in RFC 3161: Internet X.509 Public Key Infrastructure Time-Stamp Protocol
(TSP).
+ *
+ * From a jarsigner perspective there are two things that are important:
+ * 1. Finding a TSA server URL
+ * 2. What parameters to use for TSA server communication.
+ *
+ * Finding a URL can be done in two ways:
+ * a) The end-user has specified an explicit URL (the most common way)
+ * b) The end-user has specified a keystore alias that points to a certificate
in the active keystore. From the
+ * certificate the X509v3 extension "Subject Information Access"
field is examined to find the TSA server URL.
+ * Example:
+ * <pre>
+ * [vagrant@podmanhost ~]$ openssl x509 -noout -ext subjectInfoAccess -in
tsa-server.crt
+ * Subject Information Access:
+ * AD Time Stamping -
URI:http://timestamp.globalsign.com/tsa/r6advanced1
+ * </pre>
+ *
+ * Each TSA server vendor typically has defined its own OID for what
"policy" to use in the timestamping process. For
+ * example GlobalSign might use 1.3.6.1.4.1.4146.2.3.1.2. A DigiCert TSA
server would not accept this OID. In most cases
+ * there is no need for the end-user to specify this because the TSA server
will choose a default.
+ *
+ * jarsigner will send a message digest to the TSA server along with the
message digest algorithm. For example
+ * {@code SHA-384}. A TSA server might reject the chosen algorithm, but
typically most TSA servers supports the "common"
+ * ones (like SHA-256, SHA-384 and SHA-512). In most cases there is no need
for the end-user to specify this because the
+ * jarsigner tool choose a good default.
+ */
+class TsaSelector {
+
+ /** The current TsaServer in use (if any). One per thread */
+<span class="fc" id="L57"> private final ThreadLocal<TsaServer>
currentTsaServer = new ThreadLocal<>();</span>
+
+ /** List of TSA servers. Will at minimum contain a dummy/empty value */
+ private final List<TsaServer> tsaServers;
+
+<span class="fc" id="L62"> TsaSelector(String[] tsa, String[] tsacert,
String[] tsapolicyid, String tsadigestalg) {</span>
+<span class="fc" id="L63"> List<TsaServer> tsaServersTmp = new
ArrayList<>();</span>
+
+<span class="fc bfc" id="L65" title="All 2 branches covered."> for (int
i = 0; i < Math.max(tsa.length, tsacert.length); i++) {</span>
+<span class="fc bfc" id="L66" title="All 2 branches covered.">
String tsaUrl = i < tsa.length ? tsa[i] : null;</span>
+<span class="fc bfc" id="L67" title="All 2 branches covered.">
String tsaAlias = i < tsacert.length ? tsacert[i] : null;</span>
+<span class="fc bfc" id="L68" title="All 2 branches covered.">
String tsaPolicyId = i < tsapolicyid.length ? tsapolicyid[i] : null;</span>
+<span class="fc" id="L69"> tsaServersTmp.add(new TsaServer(tsaUrl,
tsaAlias, tsaPolicyId, tsadigestalg));</span>
+ }
+
+<span class="fc bfc" id="L72" title="All 2 branches covered."> if
(tsaServersTmp.isEmpty()) {</span>
+<span class="fc" id="L73">
tsaServersTmp.add(TsaServer.EMPTY);</span>
+ }
+<span class="fc" id="L75"> this.tsaServers =
Collections.unmodifiableList(tsaServersTmp);</span>
+<span class="fc" id="L76"> }</span>
+
+ /**
+ * Gets the next "best" TSA server to use.
+ *
+ * Uses a "best effort" approach without any synchronization. It
may not select the "snapshot-consistent" best TSA
+ * server, but good enough.
+ */
+ TsaServer getServer() {
+<span class="fc" id="L85"> TsaServer best = tsaServers.get(0);</span>
+<span class="fc bfc" id="L86" title="All 2 branches covered."> for (int
i = 1; i < tsaServers.size(); i++) {</span>
+<span class="fc bfc" id="L87" title="All 2 branches covered."> if
(best.failureCount.get() > tsaServers.get(i).failureCount.get()) {</span>
+<span class="fc" id="L88"> best = tsaServers.get(i);</span>
+ }
+ }
+<span class="fc" id="L91"> currentTsaServer.set(best);</span>
+<span class="fc" id="L92"> return best;</span>
+ }
+
+ /**
+ * Register that the current used TsaServer was involved in a jarsigner
execution that failed. This could be a
+ * problem with the TsaServer, but it could also be other factors
unrelated to the TsaServer. Regardless of the
+ * cause of the failure it is registered as a failure for the current used
TsaServer to be used when determining the
+ * next TsaServer to try.
+ */
+ void registerFailure() {
+<span class="fc bfc" id="L102" title="All 2 branches covered."> if
(currentTsaServer.get() != null) {</span>
+<span class="fc" id="L103">
currentTsaServer.get().failureCount.incrementAndGet();</span>
+ }
+<span class="fc" id="L105"> }</span>
+
+ /** Representation of a single TSA server and the parameters to use for it
*/
+ static class TsaServer {
+<span class="fc" id="L109"> private static final TsaServer EMPTY = new
TsaServer(null, null, null, null);</span>
+
+<span class="fc" id="L111"> private final AtomicInteger failureCount =
new AtomicInteger(0);</span>
+ private final String tsaUrl;
+ private final String tsaAlias;
+ private final String tsaPolicyId;
+ private final String tsaDigestAlt;
+
+<span class="fc" id="L117"> private TsaServer(String tsaUrl, String
tsaAlias, String tsaPolicyId, String tsaDigestAlt) {</span>
+<span class="fc" id="L118"> this.tsaUrl = tsaUrl;</span>
+<span class="fc" id="L119"> this.tsaAlias = tsaAlias;</span>
+<span class="fc" id="L120"> this.tsaPolicyId = tsaPolicyId;</span>
+<span class="fc" id="L121"> this.tsaDigestAlt = tsaDigestAlt;</span>
+<span class="fc" id="L122"> }</span>
+
+ String getTsaUrl() {
+<span class="fc" id="L125"> return tsaUrl;</span>
+ }
+
+ String getTsaAlias() {
+<span class="fc" id="L129"> return tsaAlias;</span>
+ }
+
+ String getTsaPolicyId() {
+<span class="fc" id="L133"> return tsaPolicyId;</span>
+ }
+
+ String getTsaDigestAlt() {
+<span class="fc" id="L137"> return tsaDigestAlt;</span>
+ }
+ }
+}
+</pre><div class="footer"><span class="right">Created with <a
href="http://www.jacoco.org/jacoco">JaCoCo</a>
0.8.12.202403310830</span></div></body></html>
\ No newline at end of file
Propchange:
maven/website/components/plugins-archives/maven-jarsigner-plugin-LATEST/jacoco/org.apache.maven.plugins.jarsigner/TsaSelector.java.html
------------------------------------------------------------------------------
svn:eol-style = native
Added:
maven/website/components/plugins-archives/maven-jarsigner-plugin-LATEST/jacoco/org.apache.maven.plugins.jarsigner/index.html
==============================================================================
---
maven/website/components/plugins-archives/maven-jarsigner-plugin-LATEST/jacoco/org.apache.maven.plugins.jarsigner/index.html
(added)
+++
maven/website/components/plugins-archives/maven-jarsigner-plugin-LATEST/jacoco/org.apache.maven.plugins.jarsigner/index.html
Tue Sep 3 16:39:49 2024
@@ -0,0 +1 @@
+<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML
1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"><html
xmlns="http://www.w3.org/1999/xhtml" lang="en"><head><meta
http-equiv="Content-Type" content="text/html;charset=UTF-8"/><link
rel="stylesheet" href="../jacoco-resources/report.css" type="text/css"/><link
rel="shortcut icon" href="../jacoco-resources/report.gif"
type="image/gif"/><title>org.apache.maven.plugins.jarsigner</title><script
type="text/javascript" src="../jacoco-resources/sort.js"></script></head><body
onload="initialSort(['breadcrumb', 'coveragetable'])"><div class="breadcrumb"
id="breadcrumb"><span class="info"><a href="index.source.html"
class="el_source">Source Files</a><a href="../jacoco-sessions.html"
class="el_session">Sessions</a></span><a href="../index.html"
class="el_report">Apache Maven Jarsigner Plugin</a> > <span
class="el_package">org.apache.maven.plugins.jarsigner</span></div><h1>org.apache.maven.plugins
.jarsigner</h1><table class="coverage" cellspacing="0"
id="coveragetable"><thead><tr><td class="sortable" id="a"
onclick="toggleSort(this)">Element</td><td class="down sortable bar" id="b"
onclick="toggleSort(this)">Missed Instructions</td><td class="sortable ctr2"
id="c" onclick="toggleSort(this)">Cov.</td><td class="sortable bar" id="d"
onclick="toggleSort(this)">Missed Branches</td><td class="sortable ctr2" id="e"
onclick="toggleSort(this)">Cov.</td><td class="sortable ctr1" id="f"
onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="g"
onclick="toggleSort(this)">Cxty</td><td class="sortable ctr1" id="h"
onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="i"
onclick="toggleSort(this)">Lines</td><td class="sortable ctr1" id="j"
onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="k"
onclick="toggleSort(this)">Methods</td><td class="sortable ctr1" id="l"
onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="m"
onclick="tog
gleSort(this)">Classes</td></tr></thead><tfoot><tr><td>Total</td><td
class="bar">264 of 1,452</td><td class="ctr2">81%</td><td class="bar">24 of
140</td><td class="ctr2">82%</td><td class="ctr1">22</td><td
class="ctr2">111</td><td class="ctr1">42</td><td class="ctr2">280</td><td
class="ctr1">2</td><td class="ctr2">41</td><td class="ctr1">0</td><td
class="ctr2">5</td></tr></tfoot><tbody><tr><td id="a0"><a
href="AbstractJarsignerMojo.html"
class="el_class">AbstractJarsignerMojo</a></td><td class="bar" id="b0"><img
src="../jacoco-resources/redbar.gif" width="34" height="10" title="209"
alt="209"/><img src="../jacoco-resources/greenbar.gif" width="85" height="10"
title="514" alt="514"/></td><td class="ctr2" id="c4">71%</td><td class="bar"
id="d0"><img src="../jacoco-resources/redbar.gif" width="29" height="10"
title="19" alt="19"/><img src="../jacoco-resources/greenbar.gif" width="90"
height="10" title="59" alt="59"/></td><td class="ctr2" id="e3">75%</td><td
class="ctr1" id="f0">17</td>
<td class="ctr2" id="g0">54</td><td class="ctr1" id="h0">32</td><td
class="ctr2" id="i0">139</td><td class="ctr1" id="j0">2</td><td class="ctr2"
id="k0">15</td><td class="ctr1" id="l0">0</td><td class="ctr2"
id="m0">1</td></tr><tr><td id="a1"><a href="JarsignerSignMojo.html"
class="el_class">JarsignerSignMojo</a></td><td class="bar" id="b1"><img
src="../jacoco-resources/redbar.gif" width="5" height="10" title="36"
alt="36"/><img src="../jacoco-resources/greenbar.gif" width="72" height="10"
title="437" alt="437"/></td><td class="ctr2" id="c2">92%</td><td class="bar"
id="d1"><img src="../jacoco-resources/redbar.gif" width="7" height="10"
title="5" alt="5"/><img src="../jacoco-resources/greenbar.gif" width="53"
height="10" title="35" alt="35"/></td><td class="ctr2" id="e2">87%</td><td
class="ctr1" id="f1">5</td><td class="ctr2" id="g1">33</td><td class="ctr1"
id="h1">7</td><td class="ctr2" id="i1">88</td><td class="ctr1"
id="j1">0</td><td class="ctr2" id="k1">13</td><td class="ctr1" id
="l1">0</td><td class="ctr2" id="m1">1</td></tr><tr><td id="a2"><a
href="JarsignerVerifyMojo.html"
class="el_class">JarsignerVerifyMojo</a></td><td class="bar" id="b2"><img
src="../jacoco-resources/redbar.gif" width="3" height="10" title="19"
alt="19"/><img src="../jacoco-resources/greenbar.gif" width="11" height="10"
title="70" alt="70"/></td><td class="ctr2" id="c3">78%</td><td class="bar"
id="d3"><img src="../jacoco-resources/greenbar.gif" width="9" height="10"
title="6" alt="6"/></td><td class="ctr2" id="e0">100%</td><td class="ctr1"
id="f2">0</td><td class="ctr2" id="g3">7</td><td class="ctr1" id="h2">3</td><td
class="ctr2" id="i3">20</td><td class="ctr1" id="j2">0</td><td class="ctr2"
id="k3">4</td><td class="ctr1" id="l2">0</td><td class="ctr2"
id="m2">1</td></tr><tr><td id="a3"><a href="TsaSelector.html"
class="el_class">TsaSelector</a></td><td class="bar" id="b3"><img
src="../jacoco-resources/greenbar.gif" width="20" height="10" title="125"
alt="125"/></td><td class="ctr2"
id="c0">100%</td><td class="bar" id="d2"><img
src="../jacoco-resources/greenbar.gif" width="24" height="10" title="16"
alt="16"/></td><td class="ctr2" id="e1">100%</td><td class="ctr1"
id="f3">0</td><td class="ctr2" id="g2">11</td><td class="ctr1"
id="h3">0</td><td class="ctr2" id="i2">21</td><td class="ctr1"
id="j3">0</td><td class="ctr2" id="k4">3</td><td class="ctr1" id="l3">0</td><td
class="ctr2" id="m3">1</td></tr><tr><td id="a4"><a
href="TsaSelector$TsaServer.html"
class="el_class">TsaSelector.TsaServer</a></td><td class="bar" id="b4"><img
src="../jacoco-resources/greenbar.gif" width="6" height="10" title="42"
alt="42"/></td><td class="ctr2" id="c1">100%</td><td class="bar" id="d4"/><td
class="ctr2" id="e4">n/a</td><td class="ctr1" id="f4">0</td><td class="ctr2"
id="g4">6</td><td class="ctr1" id="h4">0</td><td class="ctr2"
id="i4">12</td><td class="ctr1" id="j4">0</td><td class="ctr2"
id="k2">6</td><td class="ctr1" id="l4">0</td><td class="ctr2"
id="m4">1</td></tr></tbody></ta
ble><div class="footer"><span class="right">Created with <a
href="http://www.jacoco.org/jacoco">JaCoCo</a>
0.8.12.202403310830</span></div></body></html>
\ No newline at end of file
Propchange:
maven/website/components/plugins-archives/maven-jarsigner-plugin-LATEST/jacoco/org.apache.maven.plugins.jarsigner/index.html
------------------------------------------------------------------------------
svn:eol-style = native
Added:
maven/website/components/plugins-archives/maven-jarsigner-plugin-LATEST/jacoco/org.apache.maven.plugins.jarsigner/index.source.html
==============================================================================
---
maven/website/components/plugins-archives/maven-jarsigner-plugin-LATEST/jacoco/org.apache.maven.plugins.jarsigner/index.source.html
(added)
+++
maven/website/components/plugins-archives/maven-jarsigner-plugin-LATEST/jacoco/org.apache.maven.plugins.jarsigner/index.source.html
Tue Sep 3 16:39:49 2024
@@ -0,0 +1 @@
+<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML
1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"><html
xmlns="http://www.w3.org/1999/xhtml" lang="en"><head><meta
http-equiv="Content-Type" content="text/html;charset=UTF-8"/><link
rel="stylesheet" href="../jacoco-resources/report.css" type="text/css"/><link
rel="shortcut icon" href="../jacoco-resources/report.gif"
type="image/gif"/><title>org.apache.maven.plugins.jarsigner</title><script
type="text/javascript" src="../jacoco-resources/sort.js"></script></head><body
onload="initialSort(['breadcrumb', 'coveragetable'])"><div class="breadcrumb"
id="breadcrumb"><span class="info"><a href="index.html"
class="el_class">Classes</a><a href="../jacoco-sessions.html"
class="el_session">Sessions</a></span><a href="../index.html"
class="el_report">Apache Maven Jarsigner Plugin</a> > <span
class="el_package">org.apache.maven.plugins.jarsigner</span></div><h1>org.apache.maven.plugins.jarsigner</h
1><table class="coverage" cellspacing="0" id="coveragetable"><thead><tr><td
class="sortable" id="a" onclick="toggleSort(this)">Element</td><td class="down
sortable bar" id="b" onclick="toggleSort(this)">Missed Instructions</td><td
class="sortable ctr2" id="c" onclick="toggleSort(this)">Cov.</td><td
class="sortable bar" id="d" onclick="toggleSort(this)">Missed Branches</td><td
class="sortable ctr2" id="e" onclick="toggleSort(this)">Cov.</td><td
class="sortable ctr1" id="f" onclick="toggleSort(this)">Missed</td><td
class="sortable ctr2" id="g" onclick="toggleSort(this)">Cxty</td><td
class="sortable ctr1" id="h" onclick="toggleSort(this)">Missed</td><td
class="sortable ctr2" id="i" onclick="toggleSort(this)">Lines</td><td
class="sortable ctr1" id="j" onclick="toggleSort(this)">Missed</td><td
class="sortable ctr2" id="k" onclick="toggleSort(this)">Methods</td><td
class="sortable ctr1" id="l" onclick="toggleSort(this)">Missed</td><td
class="sortable ctr2" id="m" onclick="toggleSort(this)
">Classes</td></tr></thead><tfoot><tr><td>Total</td><td class="bar">264 of
1,452</td><td class="ctr2">81%</td><td class="bar">24 of 140</td><td
class="ctr2">82%</td><td class="ctr1">22</td><td class="ctr2">111</td><td
class="ctr1">42</td><td class="ctr2">280</td><td class="ctr1">2</td><td
class="ctr2">41</td><td class="ctr1">0</td><td
class="ctr2">5</td></tr></tfoot><tbody><tr><td id="a0"><a
href="AbstractJarsignerMojo.java.html"
class="el_source">AbstractJarsignerMojo.java</a></td><td class="bar"
id="b0"><img src="../jacoco-resources/redbar.gif" width="34" height="10"
title="209" alt="209"/><img src="../jacoco-resources/greenbar.gif" width="85"
height="10" title="514" alt="514"/></td><td class="ctr2" id="c3">71%</td><td
class="bar" id="d0"><img src="../jacoco-resources/redbar.gif" width="29"
height="10" title="19" alt="19"/><img src="../jacoco-resources/greenbar.gif"
width="90" height="10" title="59" alt="59"/></td><td class="ctr2"
id="e3">75%</td><td class="ctr1" id="f0">17</td><t
d class="ctr2" id="g0">54</td><td class="ctr1" id="h0">32</td><td class="ctr2"
id="i0">139</td><td class="ctr1" id="j0">2</td><td class="ctr2"
id="k0">15</td><td class="ctr1" id="l0">0</td><td class="ctr2"
id="m1">1</td></tr><tr><td id="a1"><a href="JarsignerSignMojo.java.html"
class="el_source">JarsignerSignMojo.java</a></td><td class="bar" id="b1"><img
src="../jacoco-resources/redbar.gif" width="5" height="10" title="36"
alt="36"/><img src="../jacoco-resources/greenbar.gif" width="72" height="10"
title="437" alt="437"/></td><td class="ctr2" id="c1">92%</td><td class="bar"
id="d1"><img src="../jacoco-resources/redbar.gif" width="7" height="10"
title="5" alt="5"/><img src="../jacoco-resources/greenbar.gif" width="53"
height="10" title="35" alt="35"/></td><td class="ctr2" id="e2">87%</td><td
class="ctr1" id="f1">5</td><td class="ctr2" id="g1">33</td><td class="ctr1"
id="h1">7</td><td class="ctr2" id="i1">88</td><td class="ctr1"
id="j1">0</td><td class="ctr2" id="k1">13</td><td class=
"ctr1" id="l1">0</td><td class="ctr2" id="m2">1</td></tr><tr><td id="a2"><a
href="JarsignerVerifyMojo.java.html"
class="el_source">JarsignerVerifyMojo.java</a></td><td class="bar" id="b2"><img
src="../jacoco-resources/redbar.gif" width="3" height="10" title="19"
alt="19"/><img src="../jacoco-resources/greenbar.gif" width="11" height="10"
title="70" alt="70"/></td><td class="ctr2" id="c2">78%</td><td class="bar"
id="d3"><img src="../jacoco-resources/greenbar.gif" width="9" height="10"
title="6" alt="6"/></td><td class="ctr2" id="e0">100%</td><td class="ctr1"
id="f2">0</td><td class="ctr2" id="g3">7</td><td class="ctr1" id="h2">3</td><td
class="ctr2" id="i3">20</td><td class="ctr1" id="j2">0</td><td class="ctr2"
id="k3">4</td><td class="ctr1" id="l2">0</td><td class="ctr2"
id="m3">1</td></tr><tr><td id="a3"><a href="TsaSelector.java.html"
class="el_source">TsaSelector.java</a></td><td class="bar" id="b3"><img
src="../jacoco-resources/greenbar.gif" width="27" height="10" title="167" al
t="167"/></td><td class="ctr2" id="c0">100%</td><td class="bar" id="d2"><img
src="../jacoco-resources/greenbar.gif" width="24" height="10" title="16"
alt="16"/></td><td class="ctr2" id="e1">100%</td><td class="ctr1"
id="f3">0</td><td class="ctr2" id="g2">17</td><td class="ctr1"
id="h3">0</td><td class="ctr2" id="i2">33</td><td class="ctr1"
id="j3">0</td><td class="ctr2" id="k2">9</td><td class="ctr1" id="l3">0</td><td
class="ctr2" id="m0">2</td></tr></tbody></table><div class="footer"><span
class="right">Created with <a href="http://www.jacoco.org/jacoco">JaCoCo</a>
0.8.12.202403310830</span></div></body></html>
\ No newline at end of file
Propchange:
maven/website/components/plugins-archives/maven-jarsigner-plugin-LATEST/jacoco/org.apache.maven.plugins.jarsigner/index.source.html
------------------------------------------------------------------------------
svn:eol-style = native