<!DOCTYPE html>
<!--
 | Generated by Apache Maven Doxia Site Renderer 1.7.4 at 2017-04-15 
 | Rendered using Apache Maven Fluido Skin 1.6
-->
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
  <head>
    <meta charset="UTF-8" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    <meta name="Date-Revision-yyyymmdd" content="20170415" />
    <meta http-equiv="Content-Language" content="en" />
    <title>eclipse-jarsigner-plugin &#x2013; eclipse-jarsigner:sign</title>
    <link rel="stylesheet" href="./css/apache-maven-fluido-1.6.min.css" />
    <link rel="stylesheet" href="./css/site.css" />
    <link rel="stylesheet" href="./css/print.css" media="print" />
      <script type="text/javascript" src="./js/apache-maven-fluido-1.6.min.js"></script>
      </head>
    <body class="topBarDisabled">
      <div class="container-fluid">
      <div id="banner">
        <div class="pull-left"><a href="https://eclipse.org" id="bannerLeft"><img src="https://eclipse.org/eclipse.org-common/themes/Nova/images/eclipse.png"  alt="Eclipse"/></a></div>
        <div class="pull-right"></div>
        <div class="clear"><hr/></div>
      </div>

      <div id="breadcrumbs">
        <ul class="breadcrumb">
        <li id="publishDate">Last Published: 2017-04-15<span class="divider">|</span>
</li>
          <li id="projectVersion">Version: 1.1.4</li>
        </ul>
      </div>
      <div class="row-fluid">
        <div id="leftColumn" class="span2">
          <div class="well sidebar-nav">
<ul class="nav nav-list">
          <li class="nav-header">CBI Maven Plugins</li>
    <li><a href="../index.html" title="Introduction"><span class="none"></span>Introduction</a>  </li>
    <li><a href="../eclipse-jarsigner-plugin/plugin-info.html" title="Jar Signer"><span class="none"></span>Jar Signer</a>  </li>
    <li><a href="../eclipse-winsigner-plugin/plugin-info.html" title="Windows Exe Signer"><span class="none"></span>Windows Exe Signer</a>  </li>
    <li><a href="../eclipse-macsigner-plugin/plugin-info.html" title="macOS App Signer"><span class="none"></span>macOS App Signer</a>  </li>
    <li><a href="../eclipse-dmg-packager/plugin-info.html" title="macOS DMG Packager"><span class="none"></span>macOS DMG Packager</a>  </li>
    <li><a href="../eclipse-cbi-plugin/plugin-info.html" title="Utilities"><span class="none"></span>Utilities</a>  </li>
  </ul>
          <hr />
          <div id="poweredBy">
              <div class="clear"></div>
              <div class="clear"></div>
              <div class="clear"></div>
              <div class="clear"></div>
  <a href="http://maven.apache.org/" title="Built by Maven" class="poweredBy"><img class="builtBy" alt="Built by Maven" src="./images/logos/maven-feather.png" /></a>
              </div>
          </div>
        </div>
        <div id="bodyColumn"  class="span10" >

  
    <div class="section">
<h2><a name="eclipse-jarsigner:sign"></a>eclipse-jarsigner:sign</h2>
      
<p><b>Full name</b>:</p>
      
<p>org.eclipse.cbi.maven.plugins:eclipse-jarsigner-plugin:1.1.4:sign</p>
      
<p><b>Description</b>:</p>
      
<div>Signs project main and attached artifacts using the Eclipse
jarsigner webservice. Only artifacts with <tt>.jar</tt>
extension are signed, other artifacts are not signed but a warning
message is logged.</div>
      
<p><b>Attributes</b>:</p>
      
<ul>
        
<li>Requires a Maven project to be executed.</li>
        
<li>Binds by default to the <a class="externalLink" href="http://maven.apache.org/ref/current/maven-core/lifecycles.html">lifecycle phase</a>: <tt>package</tt>.</li>
      </ul>
      
<div class="section">
<h3><a name="Required_Parameters"></a>Required Parameters</h3>
        
<table class="table table-striped" border="0">
          
<tr class="a">
            
<th>Name</th>
            
<th>Type</th>
            
<th>Since</th>
            
<th>Description</th>
          </tr>
          
<tr class="b">
            
<td><b><a href="#signerUrl">signerUrl</a></b></td>
            
<td><tt>String</tt></td>
            
<td><tt>-</tt></td>
            
<td>The signing service URL for signing Jar files. This service should
return a signed jar file.<br /><b>Default value is</b>: <tt>http://build.eclipse.org:31338/sign</tt>.<br /><b>User property is</b>: <tt>cbi.jarsigner.signerUrl</tt>.<br /></td>
          </tr>
        </table>
      </div>
      
<div class="section">
<h3><a name="Optional_Parameters"></a>Optional Parameters</h3>
        
<table class="table table-striped" border="0">
          
<tr class="a">
            
<th>Name</th>
            
<th>Type</th>
            
<th>Since</th>
            
<th>Description</th>
          </tr>
          
<tr class="b">
            
<td><b><a href="#connectTimeoutMillis">connectTimeoutMillis</a></b></td>
            
<td><tt>int</tt></td>
            
<td><tt>-</tt></td>
            
<td>Determines the timeout in milliseconds for any communication with
the signing server. A timeout value of zero is interpreted as an
infinite timeout.<br /><b>Default value is</b>: <tt>20000</tt>.<br /><b>User property is</b>: <tt>cbi.jarsigner.connectTimeoutMillis</tt>.<br /></td>
          </tr>
          
<tr class="a">
            
<td><b><a href="#continueOnFail">continueOnFail</a></b></td>
            
<td><tt>boolean</tt></td>
            
<td><tt>-</tt></td>
            
<td>Whether the build should be stopped if the signing process fails.<br /><b>Default value is</b>: <tt>false</tt>.<br /><b>User property is</b>: <tt>cbi.jarsigner.continueOnFail</tt>.<br /></td>
          </tr>
          
<tr class="b">
            
<td><b><a href="#deprecatedContinueOnFail">deprecatedContinueOnFail</a></b></td>
            
<td><tt>boolean</tt></td>
            
<td><tt>-</tt></td>
            
<td><b>Deprecated.</b> The user property <tt>continueOnFail</tt> is deprecated. You
should use the qualified property
<tt>cbi.jarsigner.continueOnFail</tt> instead. The
<tt>deprecatedContinueOnFail</tt> parameter has been introduced
to support this deprecated user property for backward compatibility
only.<br /><b>Default value is</b>: <tt>false</tt>.<br /><b>User property is</b>: <tt>continueOnFail</tt>.<br /></td>
          </tr>
          
<tr class="a">
            
<td><b><a href="#deprecatedRetryLimit">deprecatedRetryLimit</a></b></td>
            
<td><tt>int</tt></td>
            
<td><tt>-</tt></td>
            
<td><b>Deprecated.</b> The user property <tt>retryLimit</tt> is deprecated. You should
use the qualified property <tt>cbi.jarsigner.retryLimit</tt>
instead. The <tt>deprecatedRetryLimit</tt> parameter has been
introduced to support this deprecated user property for backward
compatibility only.<br /><b>Default value is</b>: <tt>3</tt>.<br /><b>User property is</b>: <tt>retryLimit</tt>.<br /></td>
          </tr>
          
<tr class="b">
            
<td><b><a href="#deprecatedRetryTimer">deprecatedRetryTimer</a></b></td>
            
<td><tt>int</tt></td>
            
<td><tt>-</tt></td>
            
<td><b>Deprecated.</b> The user property <tt>retryTimer</tt> is deprecated. You should
use the qualified property <tt>cbi.jarsigner.retryTimer</tt>
instead. The <tt>deprecatedRetryTimer</tt> parameter has been
introduced to support this deprecated user property for backward
compatibility only.<br /><b>Default value is</b>: <tt>10</tt>.<br /><b>User property is</b>: <tt>retryTimer</tt>.<br /></td>
          </tr>
          
<tr class="a">
            
<td><b><a href="#digestAlgorithm">digestAlgorithm</a></b></td>
            
<td><tt>MessageDigestAlgorithm</tt></td>
            
<td><tt>-</tt></td>
            
<td>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: 

<ul>

<li><b>DEFAULT</b>, tells to the remote signing
webservice to use its default digest algorithm to sign the jar</li>

<li><b>MD2</b></li>

<li><b>MD5</b></li>

<li><b>SHA_1</b></li>

<li><b>SHA1</b> Use this value if you need to be
compatible with some old frameworks (e.g., Eclipse Equinox 3.7 /
Indigo). Use SHA_1 otherwise.</li>

<li><b>SHA_224</b></li>

<li><b>SHA_256</b></li>

<li><b>SHA_384</b></li>

<li><b>SHA_512</b></li>
</ul><br /><b>Default value is</b>: <tt>DEFAULT</tt>.<br /><b>User property is</b>: <tt>cbi.jarsigner.digestAlgorithm</tt>.<br /></td>
          </tr>
          
<tr class="b">
            
<td><b><a href="#excludeInnerJars">excludeInnerJars</a></b></td>
            
<td><tt>boolean</tt></td>
            
<td><tt>-</tt></td>
            
<td>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).<br /><b>Default value is</b>: <tt>false</tt>.<br /></td>
          </tr>
          
<tr class="a">
            
<td><b><a href="#resigningStrategy">resigningStrategy</a></b></td>
            
<td><tt>JarResigner$Strategy</tt></td>
            
<td><tt>-</tt></td>
            
<td>The strategy to be used if the artifacts of the current project are
already signed (e.g., when <a class="externalLink" href="https://wiki.eclipse.org/Tycho/Reproducible_Version_Qualifiers">replaced
with a baseline version</a>). Valid values are: 

<ul>

<li><b>DO_NOT_RESIGN</b>, do nothing with the jar
file</li>

<li><b>THROW_EXCEPTION</b>, throws an exception and stop
the build if <tt>continueOnFail</tt> property is not set</li>

<li><b>RESIGN</b>, resigns the jar with the same
parameter as if it was not already signed (in particular the
configured <tt>digestAlgorithm</tt>)</li>

<li><b>RESIGN_WITH_SAME_DIGEST_ALGORITHM</b>, resigns the
jar with the same digest algorithm as the one used when it has been
previously signed. Thus, the <tt>digestAlgorithm</tt> is
ignored for the already signed jars.</li>

<li><b>OVERWRITE</b>, removes every signatures from the
jar and resigned it with the same parameter as if it was not
already signed (in particular the configured
<tt>digestAlgorithm</tt>)</li>

<li><b>OVERWRITE_WITH_SAME_DIGEST_ALGORITHM</b>, 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 <tt>digestAlgorithm</tt> is ignored for the already signed
jars.</li>
</ul><br /><b>Default value is</b>: <tt>RESIGN</tt>.<br /><b>User property is</b>: <tt>cbi.jarsigner.resigningStrategy</tt>.<br /></td>
          </tr>
          
<tr class="b">
            
<td><b><a href="#retryLimit">retryLimit</a></b></td>
            
<td><tt>int</tt></td>
            
<td><tt>-</tt></td>
            
<td>Number of times to retry signing if the server fails to sign.<br /><b>Default value is</b>: <tt>3</tt>.<br /><b>User property is</b>: <tt>cbi.jarsigner.retryLimit</tt>.<br /></td>
          </tr>
          
<tr class="a">
            
<td><b><a href="#retryTimer">retryTimer</a></b></td>
            
<td><tt>int</tt></td>
            
<td><tt>-</tt></td>
            
<td>Number of seconds to wait before retrying to sign.<br /><b>Default value is</b>: <tt>10</tt>.<br /><b>User property is</b>: <tt>cbi.jarsigner.retryTimer</tt>.<br /></td>
          </tr>
          
<tr class="b">
            
<td><b><a href="#signatureAlgorithm">signatureAlgorithm</a></b></td>
            
<td><tt>SignatureAlgorithm</tt></td>
            
<td><tt>-</tt></td>
            
<td>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: 

<ul>

<li><b>DEFAULT</b>, tells to the remote signing
webservice to use its default digest algorithm to sign the jar</li>

<li><b>NONEwithRSA</b></li>

<li><b>MD2withRSA</b></li>

<li><b>MD5withRSA</b></li>

<li><b>SHA1withRSA</b></li>

<li><b>SHA224withRSA</b></li>

<li><b>SHA256withRSA</b></li>

<li><b>SHA384withRSA</b></li>

<li><b>SHA512withRSA</b></li>

<li><b>SHA1withDSA</b></li>

<li><b>SHA224withDSA</b></li>

<li><b>SHA256withDSA</b></li>

<li><b>NONEwithECDSA</b></li>

<li><b>SHA1withECDSA</b></li>

<li><b>SHA224withECDSA</b></li>

<li><b>SHA256withECDSA</b></li>

<li><b>SHA384withECDSA</b></li>

<li><b>SHA512withECDSA</b></li>
</ul><br /><b>Default value is</b>: <tt>DEFAULT</tt>.<br /><b>User property is</b>: <tt>cbi.jarsigner.signatureAlgorithm</tt>.<br /></td>
          </tr>
          
<tr class="a">
            
<td><b><a href="#skip">skip</a></b></td>
            
<td><tt>boolean</tt></td>
            
<td><tt>-</tt></td>
            
<td>Whether the execution of this plugin should be skipped.<br /><b>Default value is</b>: <tt>false</tt>.<br /><b>User property is</b>: <tt>cbi.jarsigner.skip</tt>.<br /></td>
          </tr>
          
<tr class="b">
            
<td><b><a href="#supportedProjectTypes">supportedProjectTypes</a></b></td>
            
<td><tt>List</tt></td>
            
<td><tt>-</tt></td>
            
<td><b>Deprecated.</b> Not used anymore.<br /></td>
          </tr>
        </table>
      </div>
      
<div class="section">
<h3><a name="Parameter_Details"></a>Parameter Details</h3>
        
<p><b><a name="connectTimeoutMillis">connectTimeoutMillis</a>:</b></p>
        
<div>Determines the timeout in milliseconds for any communication with
the signing server. A timeout value of zero is interpreted as an
infinite timeout.</div>
        
<ul>
          
<li><b>Type</b>: <tt>int</tt></li>
          
<li><b>Required</b>: <tt>No</tt></li>
          
<li><b>User Property</b>: <tt>cbi.jarsigner.connectTimeoutMillis</tt></li>
          
<li><b>Default</b>: <tt>20000</tt></li>
        </ul><hr />
<p><b><a name="continueOnFail">continueOnFail</a>:</b></p>
        
<div>Whether the build should be stopped if the signing process fails.</div>
        
<ul>
          
<li><b>Type</b>: <tt>boolean</tt></li>
          
<li><b>Required</b>: <tt>No</tt></li>
          
<li><b>User Property</b>: <tt>cbi.jarsigner.continueOnFail</tt></li>
          
<li><b>Default</b>: <tt>false</tt></li>
        </ul><hr />
<p><b><a name="deprecatedContinueOnFail">deprecatedContinueOnFail</a>:</b></p>
        
<div><b>Deprecated.</b> The user property <tt>continueOnFail</tt> is deprecated. You
should use the qualified property
<tt>cbi.jarsigner.continueOnFail</tt> instead. The
<tt>deprecatedContinueOnFail</tt> parameter has been introduced
to support this deprecated user property for backward compatibility
only.</div>
        
<div>Whether the build should be stopped if the signing process fails.</div>
        
<ul>
          
<li><b>Type</b>: <tt>boolean</tt></li>
          
<li><b>Required</b>: <tt>No</tt></li>
          
<li><b>User Property</b>: <tt>continueOnFail</tt></li>
          
<li><b>Default</b>: <tt>false</tt></li>
        </ul><hr />
<p><b><a name="deprecatedRetryLimit">deprecatedRetryLimit</a>:</b></p>
        
<div><b>Deprecated.</b> The user property <tt>retryLimit</tt> is deprecated. You should
use the qualified property <tt>cbi.jarsigner.retryLimit</tt>
instead. The <tt>deprecatedRetryLimit</tt> parameter has been
introduced to support this deprecated user property for backward
compatibility only.</div>
        
<div>Number of times to retry signing if the server fails to sign.</div>
        
<ul>
          
<li><b>Type</b>: <tt>int</tt></li>
          
<li><b>Required</b>: <tt>No</tt></li>
          
<li><b>User Property</b>: <tt>retryLimit</tt></li>
          
<li><b>Default</b>: <tt>3</tt></li>
        </ul><hr />
<p><b><a name="deprecatedRetryTimer">deprecatedRetryTimer</a>:</b></p>
        
<div><b>Deprecated.</b> The user property <tt>retryTimer</tt> is deprecated. You should
use the qualified property <tt>cbi.jarsigner.retryTimer</tt>
instead. The <tt>deprecatedRetryTimer</tt> parameter has been
introduced to support this deprecated user property for backward
compatibility only.</div>
        
<div>Number of seconds to wait before retrying to sign.</div>
        
<ul>
          
<li><b>Type</b>: <tt>int</tt></li>
          
<li><b>Required</b>: <tt>No</tt></li>
          
<li><b>User Property</b>: <tt>retryTimer</tt></li>
          
<li><b>Default</b>: <tt>10</tt></li>
        </ul><hr />
<p><b><a name="digestAlgorithm">digestAlgorithm</a>:</b></p>
        
<div>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: 

<ul>

<li><b>DEFAULT</b>, tells to the remote signing
webservice to use its default digest algorithm to sign the jar</li>

<li><b>MD2</b></li>

<li><b>MD5</b></li>

<li><b>SHA_1</b></li>

<li><b>SHA1</b> Use this value if you need to be
compatible with some old frameworks (e.g., Eclipse Equinox 3.7 /
Indigo). Use SHA_1 otherwise.</li>

<li><b>SHA_224</b></li>

<li><b>SHA_256</b></li>

<li><b>SHA_384</b></li>

<li><b>SHA_512</b></li>
</ul></div>
        
<ul>
          
<li><b>Type</b>: <tt>org.eclipse.cbi.common.security.MessageDigestAlgorithm</tt></li>
          
<li><b>Required</b>: <tt>No</tt></li>
          
<li><b>User Property</b>: <tt>cbi.jarsigner.digestAlgorithm</tt></li>
          
<li><b>Default</b>: <tt>DEFAULT</tt></li>
        </ul><hr />
<p><b><a name="excludeInnerJars">excludeInnerJars</a>:</b></p>
        
<div>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).</div>
        
<ul>
          
<li><b>Type</b>: <tt>boolean</tt></li>
          
<li><b>Required</b>: <tt>No</tt></li>
          
<li><b>Default</b>: <tt>false</tt></li>
        </ul><hr />
<p><b><a name="resigningStrategy">resigningStrategy</a>:</b></p>
        
<div>The strategy to be used if the artifacts of the current project are
already signed (e.g., when <a class="externalLink" href="https://wiki.eclipse.org/Tycho/Reproducible_Version_Qualifiers">replaced
with a baseline version</a>). Valid values are: 

<ul>

<li><b>DO_NOT_RESIGN</b>, do nothing with the jar
file</li>

<li><b>THROW_EXCEPTION</b>, throws an exception and stop
the build if <tt>continueOnFail</tt> property is not set</li>

<li><b>RESIGN</b>, resigns the jar with the same
parameter as if it was not already signed (in particular the
configured <tt>digestAlgorithm</tt>)</li>

<li><b>RESIGN_WITH_SAME_DIGEST_ALGORITHM</b>, resigns the
jar with the same digest algorithm as the one used when it has been
previously signed. Thus, the <tt>digestAlgorithm</tt> is
ignored for the already signed jars.</li>

<li><b>OVERWRITE</b>, removes every signatures from the
jar and resigned it with the same parameter as if it was not
already signed (in particular the configured
<tt>digestAlgorithm</tt>)</li>

<li><b>OVERWRITE_WITH_SAME_DIGEST_ALGORITHM</b>, 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 <tt>digestAlgorithm</tt> is ignored for the already signed
jars.</li>
</ul></div>
        
<ul>
          
<li><b>Type</b>: <tt>org.eclipse.cbi.maven.plugins.jarsigner.JarResigner$Strategy</tt></li>
          
<li><b>Required</b>: <tt>No</tt></li>
          
<li><b>User Property</b>: <tt>cbi.jarsigner.resigningStrategy</tt></li>
          
<li><b>Default</b>: <tt>RESIGN</tt></li>
        </ul><hr />
<p><b><a name="retryLimit">retryLimit</a>:</b></p>
        
<div>Number of times to retry signing if the server fails to sign.</div>
        
<ul>
          
<li><b>Type</b>: <tt>int</tt></li>
          
<li><b>Required</b>: <tt>No</tt></li>
          
<li><b>User Property</b>: <tt>cbi.jarsigner.retryLimit</tt></li>
          
<li><b>Default</b>: <tt>3</tt></li>
        </ul><hr />
<p><b><a name="retryTimer">retryTimer</a>:</b></p>
        
<div>Number of seconds to wait before retrying to sign.</div>
        
<ul>
          
<li><b>Type</b>: <tt>int</tt></li>
          
<li><b>Required</b>: <tt>No</tt></li>
          
<li><b>User Property</b>: <tt>cbi.jarsigner.retryTimer</tt></li>
          
<li><b>Default</b>: <tt>10</tt></li>
        </ul><hr />
<p><b><a name="signatureAlgorithm">signatureAlgorithm</a>:</b></p>
        
<div>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: 

<ul>

<li><b>DEFAULT</b>, tells to the remote signing
webservice to use its default digest algorithm to sign the jar</li>

<li><b>NONEwithRSA</b></li>

<li><b>MD2withRSA</b></li>

<li><b>MD5withRSA</b></li>

<li><b>SHA1withRSA</b></li>

<li><b>SHA224withRSA</b></li>

<li><b>SHA256withRSA</b></li>

<li><b>SHA384withRSA</b></li>

<li><b>SHA512withRSA</b></li>

<li><b>SHA1withDSA</b></li>

<li><b>SHA224withDSA</b></li>

<li><b>SHA256withDSA</b></li>

<li><b>NONEwithECDSA</b></li>

<li><b>SHA1withECDSA</b></li>

<li><b>SHA224withECDSA</b></li>

<li><b>SHA256withECDSA</b></li>

<li><b>SHA384withECDSA</b></li>

<li><b>SHA512withECDSA</b></li>
</ul></div>
        
<ul>
          
<li><b>Type</b>: <tt>org.eclipse.cbi.common.security.SignatureAlgorithm</tt></li>
          
<li><b>Required</b>: <tt>No</tt></li>
          
<li><b>User Property</b>: <tt>cbi.jarsigner.signatureAlgorithm</tt></li>
          
<li><b>Default</b>: <tt>DEFAULT</tt></li>
        </ul><hr />
<p><b><a name="signerUrl">signerUrl</a>:</b></p>
        
<div>The signing service URL for signing Jar files. This service should
return a signed jar file.</div>
        
<ul>
          
<li><b>Type</b>: <tt>java.lang.String</tt></li>
          
<li><b>Required</b>: <tt>Yes</tt></li>
          
<li><b>User Property</b>: <tt>cbi.jarsigner.signerUrl</tt></li>
          
<li><b>Default</b>: <tt>http://build.eclipse.org:31338/sign</tt></li>
        </ul><hr />
<p><b><a name="skip">skip</a>:</b></p>
        
<div>Whether the execution of this plugin should be skipped.</div>
        
<ul>
          
<li><b>Type</b>: <tt>boolean</tt></li>
          
<li><b>Required</b>: <tt>No</tt></li>
          
<li><b>User Property</b>: <tt>cbi.jarsigner.skip</tt></li>
          
<li><b>Default</b>: <tt>false</tt></li>
        </ul><hr />
<p><b><a name="supportedProjectTypes">supportedProjectTypes</a>:</b></p>
        
<div><b>Deprecated.</b> Not used anymore.</div>
        
<div>Project types which this plugin supports.</div>
        
<ul>
          
<li><b>Type</b>: <tt>java.util.List</tt></li>
          
<li><b>Required</b>: <tt>No</tt></li>
        </ul>
      </div>
    </div>
  

        </div>
      </div>
    </div>
    <hr/>
    <footer>
      <div class="container-fluid">
        <div class="row-fluid">
            <p>Copyright &copy;2017
<a href="http://eclipse.org/">Eclipse Foundation</a>.
All rights reserved.</p>
        </div>
        </div>
    </footer>
    </body>
</html>
