<!DOCTYPE html>
<!--
 | Generated by Apache Maven Doxia Site Renderer 1.8.1 at 2020-01-16 
 | 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="20200116" />
    <meta http-equiv="Content-Language" content="en" />
    <title>Apache Sling Feature Model Converter Plugin &#x2013; Project Dependency Management</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"><div id="bannerLeft"><h2>Apache Sling Feature Model Converter Plugin</h2>
</div>
</div>
        <div class="pull-right"></div>
        <div class="clear"><hr/></div>
      </div>

      <div id="breadcrumbs">
        <ul class="breadcrumb">
        <li id="publishDate">Last Published: 2020-01-16<span class="divider">|</span>
</li>
          <li id="projectVersion">Version: 1.0.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">Overview</li>
    <li><a href="index.html" title="Introduction"><span class="none"></span>Introduction</a>  </li>
    <li><a href="plugin-info.html" title="Goals"><span class="none"></span>Goals</a>  </li>
    <li><a href="usage.html" title="Usage"><span class="none"></span>Usage</a>  </li>
          <li class="nav-header">Project Documentation</li>
    <li><a href="project-info.html" title="Project Information"><span class="icon-chevron-down"></span>Project Information</a>
      <ul class="nav nav-list">
    <li><a href="dependencies.html" title="Dependencies"><span class="none"></span>Dependencies</a>  </li>
    <li><a href="dependency-info.html" title="Dependency Information"><span class="none"></span>Dependency Information</a>  </li>
    <li class="active"><a href="#"><span class="none"></span>Dependency Management</a>
  </li>
    <li><a href="distribution-management.html" title="Distribution Management"><span class="none"></span>Distribution Management</a>  </li>
    <li><a href="index.html" title="About"><span class="none"></span>About</a>  </li>
    <li><a href="issue-management.html" title="Issue Management"><span class="none"></span>Issue Management</a>  </li>
    <li><a href="licenses.html" title="Licenses"><span class="none"></span>Licenses</a>  </li>
    <li><a href="mailing-lists.html" title="Mailing Lists"><span class="none"></span>Mailing Lists</a>  </li>
    <li><a href="plugin-management.html" title="Plugin Management"><span class="none"></span>Plugin Management</a>  </li>
    <li><a href="plugins.html" title="Plugins"><span class="none"></span>Plugins</a>  </li>
    <li><a href="scm.html" title="Source Code Management"><span class="none"></span>Source Code Management</a>  </li>
    <li><a href="summary.html" title="Summary"><span class="none"></span>Summary</a>  </li>
    <li><a href="team.html" title="Team"><span class="none"></span>Team</a>  </li>
      </ul>
  </li>
    <li><a href="project-reports.html" title="Project Reports"><span class="icon-chevron-right"></span>Project Reports</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="Project_Dependency_Management"></a>Project Dependency Management</h2><a name="Project_Dependency_Management"></a>
<div class="section">
<h3><a name="test"></a>test</h3><a name="test"></a>
<p>The following is a list of test dependencies in the DependencyManagement of this project. These dependencies can be included in the submodules to compile and run unit tests for the submodule:</p>
<table border="0" class="table table-striped">
<tr class="a">
<th>GroupId</th>
<th>ArtifactId</th>
<th>Version</th>
<th>Type</th>
<th>License</th></tr>
<tr class="b">
<td>junit</td>
<td><a class="externalLink" href="http://junit.org">junit</a></td>
<td>4.12</td>
<td>jar</td>
<td><a class="externalLink" href="http://www.eclipse.org/legal/epl-v10.html">Eclipse Public License 1.0</a></td></tr>
<tr class="a">
<td>org.jmock</td>
<td><a class="externalLink" href="http://nexus.sonatype.org/oss-repository-hosting.html/jmock-parent/jmock-junit4">jmock-junit4</a></td>
<td>2.8.2</td>
<td>jar</td>
<td><a class="externalLink" href="http://jmock.org/license.html">BSD style</a></td></tr>
<tr class="b">
<td>org.slf4j</td>
<td><a class="externalLink" href="http://www.slf4j.org">slf4j-simple</a></td>
<td>1.7.25</td>
<td>jar</td>
<td><a class="externalLink" href="http://www.opensource.org/licenses/mit-license.php">MIT License</a></td></tr></table></div>
<div class="section">
<h3><a name="provided"></a>provided</h3><a name="provided"></a>
<p>The following is a list of provided dependencies in the DependencyManagement of this project. These dependencies can be included in the submodules to compile the submodule, but should be provided by default when using the library:</p>
<table border="0" class="table table-striped">
<tr class="a">
<th>GroupId</th>
<th>ArtifactId</th>
<th>Version</th>
<th>Type</th>
<th>License</th></tr>
<tr class="b">
<td>javax.inject</td>
<td><a class="externalLink" href="http://code.google.com/p/atinject/">javax.inject</a></td>
<td>1</td>
<td>jar</td>
<td><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0.txt">The Apache Software License, Version 2.0</a></td></tr>
<tr class="a">
<td>javax.jcr</td>
<td><a class="externalLink" href="http://www.jcp.org/en/jsr/detail?id=283">jcr</a></td>
<td>2.0</td>
<td>jar</td>
<td><a class="externalLink" href="http://www.day.com/dam/day/downloads/jsr283/day-spec-license.htm">Day Specification License</a>, <a class="externalLink" href="http://www.day.com/content/dam/day/downloads/jsr283/LICENSE.txt">Day Specification License addendum</a></td></tr>
<tr class="b">
<td>javax.servlet</td>
<td><a class="externalLink" href="http://servlet-spec.java.net">javax.servlet-api</a></td>
<td>3.1.0</td>
<td>jar</td>
<td><a class="externalLink" href="https://glassfish.dev.java.net/nonav/public/CDDL+GPL.html">CDDL + GPLv2 with classpath exception</a></td></tr>
<tr class="a">
<td>org.jetbrains</td>
<td><a class="externalLink" href="https://github.com/JetBrains/java-annotations">annotations</a></td>
<td>16.0.2</td>
<td>jar</td>
<td><a class="externalLink" href="http://www.apache.org/license/LICENSE-2.0.txt">The Apache Software License, Version 2.0</a></td></tr>
<tr class="b">
<td>org.slf4j</td>
<td><a class="externalLink" href="http://www.slf4j.org">slf4j-api</a></td>
<td>1.7.25</td>
<td>jar</td>
<td><a class="externalLink" href="http://www.opensource.org/licenses/mit-license.php">MIT License</a></td></tr></table></div></div>
        </div>
      </div>
    </div>
    <hr/>
    <footer>
      <div class="container-fluid">
        <div class="row-fluid">
            <p>Copyright &copy;2007&#x2013;2020
<a href="https://www.apache.org/">The Apache Software Foundation</a>.
All rights reserved.</p>
        </div>
        </div>
    </footer>
    </body>
</html>
