<!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; sling-feature-converter:convert-pm</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-right"></span>Project Information</a>  </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="sling-feature-converter:convert-pm"></a>sling-feature-converter:convert-pm</h2>
      
<p><b>Full name</b>:</p>
      
<p>org.apache.sling:sling-feature-converter-maven-plugin:1.0.4:convert-pm</p>
      
<p><b>Description</b>:</p>
      
<div>Converts the given list of Provisioning Models into Feature Models</div>
      
<p><b>Attributes</b>:</p>
      
<ul>
        
<li>Requires a Maven project to be executed.</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><tt><a href="#inputFolder">&lt;inputFolder&gt;</a></tt></td>
            
<td><tt>File</tt></td>
            
<td><tt>-</tt></td>
            
<td>The folder that contains the Provisioning Models<br /><b>User property is</b>: <tt>inputFolder</tt>.<br /></td>
          </tr>
          
<tr class="a">
            
<td><tt><a href="#outputFolder">&lt;outputFolder&gt;</a></tt></td>
            
<td><tt>String</tt></td>
            
<td><tt>-</tt></td>
            
<td>The folder that will contain the created Feature Models relative to
the Maven Basedir Folder<br /><b>Default value is</b>: <tt>target/features</tt>.<br /><b>User property is</b>: <tt>outputFolder</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><tt><a href="#artifactId">&lt;artifactId&gt;</a></tt></td>
            
<td><tt>String</tt></td>
            
<td><tt>-</tt></td>
            
<td>If provided this becomes the Feature's Artifact Id. Tis will also
make the original name to become the classifier<br /><b>User property is</b>: <tt>artifactId</tt>.<br /></td>
          </tr>
          
<tr class="a">
            
<td><tt><a href="#excludeBundles">&lt;excludeBundles&gt;</a></tt></td>
            
<td><tt>List</tt></td>
            
<td><tt>-</tt></td>
            
<td>List of Bundles to be excluded from the Feature Model files<br /><b>User property is</b>: <tt>excludeBundles</tt>.<br /></td>
          </tr>
          
<tr class="b">
            
<td><tt><a href="#frameworkProperties">&lt;frameworkProperties&gt;</a></tt></td>
            
<td><tt>List</tt></td>
            
<td><tt>-</tt></td>
            
<td>Franework Properties to be added to a given Feature Model. The
format looks like this:
'launchpad:felix.systempackages.substitution=true' where launchpad
is the name of the PM<br /><b>User property is</b>: <tt>frameworkProperties</tt>.<br /></td>
          </tr>
          
<tr class="a">
            
<td><tt><a href="#groupId">&lt;groupId&gt;</a></tt></td>
            
<td><tt>String</tt></td>
            
<td><tt>-</tt></td>
            
<td>If provided this becomes the Feature's Group Id<br /><b>User property is</b>: <tt>groupId</tt>.<br /></td>
          </tr>
          
<tr class="b">
            
<td><tt><a href="#noProvisioningModelName">&lt;noProvisioningModelName&gt;</a></tt></td>
            
<td><tt>boolean</tt></td>
            
<td><tt>-</tt></td>
            
<td>If set to <tt>true</tt> the converted Content Package will be
installed in the local Maven Repository<br /><b>Default value is</b>: <tt>true</tt>.<br /><b>User property is</b>: <tt>noProvisioningModelName</tt>.<br /></td>
          </tr>
          
<tr class="a">
            
<td><tt><a href="#runModes">&lt;runModes&gt;</a></tt></td>
            
<td><tt>List</tt></td>
            
<td><tt>-</tt></td>
            
<td>List of all Runmodes that are considered for this conversion The
default and all parts of all runmodes listed are placed into the
Feature Models, all others are excluded<br /><b>User property is</b>: <tt>runModes</tt>.<br /></td>
          </tr>
          
<tr class="b">
            
<td><tt><a href="#version">&lt;version&gt;</a></tt></td>
            
<td><tt>String</tt></td>
            
<td><tt>-</tt></td>
            
<td>If provided this becomes the Feature's Version<br /><b>User property is</b>: <tt>version</tt>.<br /></td>
          </tr>
        </table>
      </div>
      
<div class="section">
<h3><a name="Parameter_Details"></a>Parameter Details</h3>
        
<div class="section">
<h4><a name="a.3CartifactId.3E"></a><b><a name="artifactId">&lt;artifactId&gt;</a></b></h4>
        
<div>If provided this becomes the Feature's Artifact Id. Tis will also
make the original name to become the classifier</div>
        
<ul>
          
<li><b>Type</b>: <tt>java.lang.String</tt></li>
          
<li><b>Required</b>: <tt>No</tt></li>
          
<li><b>User Property</b>: <tt>artifactId</tt></li>
        </ul><hr /></div>
<div class="section">
<h4><a name="a.3CexcludeBundles.3E"></a><b><a name="excludeBundles">&lt;excludeBundles&gt;</a></b></h4>
        
<div>List of Bundles to be excluded from the Feature Model files</div>
        
<ul>
          
<li><b>Type</b>: <tt>java.util.List</tt></li>
          
<li><b>Required</b>: <tt>No</tt></li>
          
<li><b>User Property</b>: <tt>excludeBundles</tt></li>
        </ul><hr /></div>
<div class="section">
<h4><a name="a.3CframeworkProperties.3E"></a><b><a name="frameworkProperties">&lt;frameworkProperties&gt;</a></b></h4>
        
<div>Franework Properties to be added to a given Feature Model. The
format looks like this:
'launchpad:felix.systempackages.substitution=true' where launchpad
is the name of the PM</div>
        
<ul>
          
<li><b>Type</b>: <tt>java.util.List</tt></li>
          
<li><b>Required</b>: <tt>No</tt></li>
          
<li><b>User Property</b>: <tt>frameworkProperties</tt></li>
        </ul><hr /></div>
<div class="section">
<h4><a name="a.3CgroupId.3E"></a><b><a name="groupId">&lt;groupId&gt;</a></b></h4>
        
<div>If provided this becomes the Feature's Group Id</div>
        
<ul>
          
<li><b>Type</b>: <tt>java.lang.String</tt></li>
          
<li><b>Required</b>: <tt>No</tt></li>
          
<li><b>User Property</b>: <tt>groupId</tt></li>
        </ul><hr /></div>
<div class="section">
<h4><a name="a.3CinputFolder.3E"></a><b><a name="inputFolder">&lt;inputFolder&gt;</a></b></h4>
        
<div>The folder that contains the Provisioning Models</div>
        
<ul>
          
<li><b>Type</b>: <tt>java.io.File</tt></li>
          
<li><b>Required</b>: <tt>Yes</tt></li>
          
<li><b>User Property</b>: <tt>inputFolder</tt></li>
        </ul><hr /></div>
<div class="section">
<h4><a name="a.3CnoProvisioningModelName.3E"></a><b><a name="noProvisioningModelName">&lt;noProvisioningModelName&gt;</a></b></h4>
        
<div>If set to <tt>true</tt> the converted Content Package will be
installed in the local Maven Repository</div>
        
<ul>
          
<li><b>Type</b>: <tt>boolean</tt></li>
          
<li><b>Required</b>: <tt>No</tt></li>
          
<li><b>User Property</b>: <tt>noProvisioningModelName</tt></li>
          
<li><b>Default</b>: <tt>true</tt></li>
        </ul><hr /></div>
<div class="section">
<h4><a name="a.3CoutputFolder.3E"></a><b><a name="outputFolder">&lt;outputFolder&gt;</a></b></h4>
        
<div>The folder that will contain the created Feature Models relative to
the Maven Basedir Folder</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>outputFolder</tt></li>
          
<li><b>Default</b>: <tt>target/features</tt></li>
        </ul><hr /></div>
<div class="section">
<h4><a name="a.3CrunModes.3E"></a><b><a name="runModes">&lt;runModes&gt;</a></b></h4>
        
<div>List of all Runmodes that are considered for this conversion The
default and all parts of all runmodes listed are placed into the
Feature Models, all others are excluded</div>
        
<ul>
          
<li><b>Type</b>: <tt>java.util.List</tt></li>
          
<li><b>Required</b>: <tt>No</tt></li>
          
<li><b>User Property</b>: <tt>runModes</tt></li>
        </ul><hr /></div>
<div class="section">
<h4><a name="a.3Cversion.3E"></a><b><a name="version">&lt;version&gt;</a></b></h4>
        
<div>If provided this becomes the Feature's Version</div>
        
<ul>
          
<li><b>Type</b>: <tt>java.lang.String</tt></li>
          
<li><b>Required</b>: <tt>No</tt></li>
          
<li><b>User Property</b>: <tt>version</tt></li>
        </ul>
      </div></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>