<!DOCTYPE html>
<!--
 | Generated by Apache Maven Doxia at 2014-07-14
 | Rendered using Apache Maven Fluido Skin 1.3.0
-->
<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="20140714" />
    <meta http-equiv="Content-Language" content="en" />
    <title>Eclipse CBI Plugins - Project Modules</title>
    <link rel="stylesheet" href="./css/apache-maven-fluido-1.3.0.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.3.0.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: 2014-07-14</li>
                  <li class="divider">|</li> <li id="projectVersion">Version: 1.1.0</li>
                      
                
                    
      
                            </ul>
      </div>

            
      <div class="row-fluid">
        <div id="leftColumn" class="span3">
          <div class="well sidebar-nav">
                
                    
                <ul class="nav nav-list">
                    <li class="nav-header">CBI Plugins</li>
                                
      <li>
    
                          <a href="project-info.html" title="Project Info">
          <i class="none"></i>
        Project Info</a>
            </li>
                  
      <li>
    
                          <a href="eclipse-jarsigner-plugin/plugin-info.html" title="Eclipse Jar Signing Plugin">
          <i class="none"></i>
        Eclipse Jar Signing Plugin</a>
            </li>
                  
      <li>
    
                          <a href="eclipse-macsigner-plugin/plugin-info.html" title="Eclipse Mac Signing Plugin">
          <i class="none"></i>
        Eclipse Mac Signing Plugin</a>
            </li>
                  
      <li>
    
                          <a href="eclipse-winsigner-plugin/plugin-info.html" title="Eclipse Windows Signing Plugin">
          <i class="none"></i>
        Eclipse Windows Signing Plugin</a>
            </li>
            </ul>
                
                    
                
          <hr class="divider" />

           <div id="poweredBy">
                            <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="span9" >
                                  
            <div class="section">
<h2>Project Modules<a name="Project_Modules"></a></h2><a name="Project_Modules"></a>
<p>This project has declared the following modules:</p>
<table border="0" class="table table-striped">
<tr class="a">
<th>Name</th>
<th>Description</th></tr>
<tr class="b">
<td><a href="org.eclipse.cbi.common/index.html">Eclipse :: CBI :: Signing Common Utilities</a></td>
<td>Provides common signing methods used by the CBI signing plugins</td></tr>
<tr class="a">
<td><a href="eclipse-cbi-plugin/index.html">Eclipse :: CBI :: The Eclipse CBI Maven Plugin</a></td>
<td>CBI plugins are created to enable the Eclipse community to use
      various services at Eclipse including the signing infrastructure.</td></tr>
<tr class="b">
<td><a href="eclipse-jarsigner-plugin/index.html">Eclipse :: CBI :: The Eclipse JAR Signing Maven Plugin</a></td>
<td>Plugin for signing code on the eclipse build servers using jar signing webservice.</td></tr>
<tr class="a">
<td><a href="eclipse-macsigner-plugin/index.html">Eclipse :: CBI :: The Eclipse Mac Signing Maven Plugin</a></td>
<td>Plugin for signing Macintosh apps on the eclipse build servers using app signing webservice.</td></tr>
<tr class="b">
<td><a href="eclipse-winsigner-plugin/index.html">Eclipse :: CBI :: The Eclipse Windows Signing Maven Plugin</a></td>
<td>Plugin for signing windows executables on the eclipse build servers using exe signing webservice.</td></tr></table></div>
                  </div>
            </div>
          </div>

    <hr/>

    <footer>
            <div class="container-fluid">
              <div class="row span12">Copyright &copy;                    2014
                        <a href="http://eclipse.org/">Eclipse Foundation</a>.
            All Rights Reserved.      
                    
      </div>

        
        
                </div>
    </footer>
  </body>
</html>
