<!DOCTYPE html>
<!--
 | Generated by Apache Maven Doxia Site Renderer 1.8.1 at 2019-06-06 
 | 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="20190606" />
    <meta http-equiv="Content-Language" content="en" />
    <title>Apache Sling Maven Plugin &#x2013; sling:uninstall</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 Maven 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: 2019-06-06<span class="divider">|</span>
</li>
          <li id="projectVersion">Version: 2.4.2</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 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:uninstall"></a>sling:uninstall</h2>
      
<p><b>Full name</b>:</p>
      
<p>org.apache.sling:sling-maven-plugin:2.4.2:uninstall</p>
      
<p><b>Description</b>:</p>
      
<div>Uninstall an OSGi bundle from a running Sling instance. The plugin
places by default an HTTP POST request to <a class="externalLink" href="http://felix.apache.org/documentation/subprojects/apache-felix-web-console/web-console-restful-api.html#post-requests">Felix
Web Console</a> to uninstall the bundle. It's also possible to use
HTTP DELETE leveraging the <a class="externalLink" href="http://sling.apache.org/documentation/development/repository-based-development.html">WebDAV
bundle from Sling</a>. or the <a class="externalLink" href="http://sling.apache.org/documentation/bundles/manipulating-content-the-slingpostservlet-servlets-post.html">Sling
POST servlet</a> to uninstall the bundle. The chosen method depends
on the parameter <tt>deploymentMethod</tt>.</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="#bundleStart">&lt;bundleStart&gt;</a></tt></td>
            
<td><tt>boolean</tt></td>
            
<td><tt>-</tt></td>
            
<td>Whether to start the uploaded bundle or not. Only applies when
POSTing to Felix Web Console<br /><b>Default value is</b>: <tt>true</tt>.<br /><b>User property is</b>: <tt>sling.bundle.start</tt>.<br /></td>
          </tr>
          
<tr class="a">
            
<td><tt><a href="#bundleStartLevel">&lt;bundleStartLevel&gt;</a></tt></td>
            
<td><tt>String</tt></td>
            
<td><tt>-</tt></td>
            
<td>The start level to set on the installed bundle. If the bundle is
already installed and therefore is only updated this parameter is
ignored. The parameter is also ignored if the running Sling
instance has no StartLevel service (which is unusual actually).
Only applies when POSTing to Felix Web Console.<br /><b>Default value is</b>: <tt>20</tt>.<br /><b>User property is</b>: <tt>sling.bundle.startlevel</tt>.<br /></td>
          </tr>
          
<tr class="b">
            
<td><tt><a href="#failOnError">&lt;failOnError&gt;</a></tt></td>
            
<td><tt>boolean</tt></td>
            
<td><tt>-</tt></td>
            
<td>Determines whether or not to fail the build if the HTTP POST or PUT
returns an non-OK response code.<br /><b>Default value is</b>: <tt>true</tt>.<br /><b>User property is</b>: <tt>sling.failOnError</tt>.<br /></td>
          </tr>
          
<tr class="a">
            
<td><tt><a href="#mimeType">&lt;mimeType&gt;</a></tt></td>
            
<td><tt>String</tt></td>
            
<td><tt>-</tt></td>
            
<td>The content type / mime type used for WebDAV or Sling POST
deployment.<br /><b>Default value is</b>: <tt>application/java-archive</tt>.<br /><b>User property is</b>: <tt>sling.mimeType</tt>.<br /></td>
          </tr>
          
<tr class="b">
            
<td><tt><a href="#mountByFS">&lt;mountByFS&gt;</a></tt></td>
            
<td><tt>boolean</tt></td>
            
<td><tt>-</tt></td>
            
<td>Whether to add the mapping for the <a class="externalLink" href="https://sling.apache.org/documentation/bundles/accessing-filesystem-resources-extensions-fsresource.html">Apache
Sling File System Resource Provider</a>.<br /><b>Default value is</b>: <tt>false</tt>.<br /><b>User property is</b>: <tt>sling.mountByFS</tt>.<br /></td>
          </tr>
          
<tr class="a">
            
<td><tt><a href="#password">&lt;password&gt;</a></tt></td>
            
<td><tt>String</tt></td>
            
<td><tt>-</tt></td>
            
<td>The password to authenticate at the running Sling instance.<br /><b>Default value is</b>: <tt>admin</tt>.<br /><b>User property is</b>: <tt>sling.password</tt>.<br /></td>
          </tr>
          
<tr class="b">
            
<td><tt><a href="#refreshPackages">&lt;refreshPackages&gt;</a></tt></td>
            
<td><tt>boolean</tt></td>
            
<td><tt>-</tt></td>
            
<td>Whether to refresh the packages after installing the uploaded
bundle. Only applies when POSTing to Felix Web Console<br /><b>Default value is</b>: <tt>true</tt>.<br /><b>User property is</b>: <tt>sling.refreshPackages</tt>.<br /></td>
          </tr>
          
<tr class="a">
            
<td><tt><a href="#slingUrl">&lt;slingUrl&gt;</a></tt></td>
            
<td><tt>String</tt></td>
            
<td><tt>-</tt></td>
            
<td>The URL of the running Sling instance. 

<p>The default is only useful for <b>WebConsole</b>
deployment.</p>

<p>For <b>WebDAV</b> deployment it is recommended to
include the Sling Simple WebDAV servlet root, for instance <a class="externalLink" href="http://localhost:8080/dav/default/libs/sling/install">http://localhost:8080/dav/default/libs/sling/install</a>.
Omitting the <tt>dav/default</tt> segment can lead to conflicts
with other servlets.</p><br /><b>Default value is</b>: <tt>http://localhost:8080/system/console</tt>.<br /><b>User property is</b>: <tt>sling.url</tt>.<br /></td>
          </tr>
          
<tr class="b">
            
<td><tt><a href="#user">&lt;user&gt;</a></tt></td>
            
<td><tt>String</tt></td>
            
<td><tt>-</tt></td>
            
<td>The user name to authenticate at the running Sling instance.<br /><b>Default value is</b>: <tt>admin</tt>.<br /><b>User property is</b>: <tt>sling.user</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="#bundleFileName">&lt;bundleFileName&gt;</a></tt></td>
            
<td><tt>String</tt></td>
            
<td><tt>-</tt></td>
            
<td>The name of the generated JAR file.<br /><b>Default value is</b>: <tt>${project.build.directory}/${project.build.finalName}.jar</tt>.<br /><b>User property is</b>: <tt>sling.file</tt>.<br /></td>
          </tr>
          
<tr class="a">
            
<td><tt><a href="#deploymentMethod">&lt;deploymentMethod&gt;</a></tt></td>
            
<td><tt>BundleDeploymentMethod</tt></td>
            
<td><tt>-</tt></td>
            
<td>Bundle deployment method. One of the following three values are
allowed 

<ol style="list-style-type: decimal">

<li><b>WebConsole</b>, uses the <a class="externalLink" href="http://felix.apache.org/documentation/subprojects/apache-felix-web-console/web-console-restful-api.html#post-requests">Felix
Web Console REST API</a> for deployment (HTTP POST). This is the
default. Make sure that <tt>slingUrl</tt> points to the Felix
Web Console in that case.</li>

<li><b>WebDAV</b>, uses <a class="externalLink" href="https://sling.apache.org/documentation/development/repository-based-development.html">WebDAV</a>
for deployment (HTTP PUT). Make sure that <tt>slingUrl</tt>
points to the entry path of the Sling WebDAV bundle (defaults to
<tt>/dav/default</tt> in the Sling starter). Issues a HTTP Delete
for the uninstall goal.</li>

<li><b>SlingPostServlet</b>, uses the <a class="externalLink" href="https://sling.apache.org/documentation/bundles/manipulating-content-the-slingpostservlet-servlets-post.html">Sling
Post Servlet</a> for deployment (HTTP POST). Make sure that
<tt>slingUrl</tt> points a path which is handled by the Sling
POST Servlet (usually below regular Sling root URL).</li>
</ol>
This has precedence over the deprecated parameter
<tt>usePut</tt>.<br /><b>User property is</b>: <tt>sling.deploy.method</tt>.<br /></td>
          </tr>
          
<tr class="b">
            
<td><tt><a href="#slingConsoleUrl">&lt;slingConsoleUrl&gt;</a></tt></td>
            
<td><tt>String</tt></td>
            
<td><tt>-</tt></td>
            
<td>The WebConsole URL of the running Sling instance. This is required
for file system provider operations. If not configured the value of
slingUrl is used.<br /><b>User property is</b>: <tt>sling.console.url</tt>.<br /></td>
          </tr>
          
<tr class="a">
            
<td><tt><a href="#slingUrlSuffix">&lt;slingUrlSuffix&gt;</a></tt></td>
            
<td><tt>String</tt></td>
            
<td><tt>-</tt></td>
            
<td>An optional url suffix which will be appended to the
<tt>sling.url</tt> for use as the real target url. This allows
to configure different target URLs in each POM, while using the
same common <tt>sling.url</tt> in a parent POM (eg.
<tt>sling.url=http://localhost:8080</tt> and
<tt>sling.urlSuffix=/project/specific/path</tt>). This is
typically used in conjunction with WebDAV or SlingPostServlet
deployment methods.<br /><b>User property is</b>: <tt>sling.urlSuffix</tt>.<br /></td>
          </tr>
          
<tr class="b">
            
<td><tt><a href="#usePut">&lt;usePut&gt;</a></tt></td>
            
<td><tt>boolean</tt></td>
            
<td><tt>-</tt></td>
            
<td><b>Deprecated.</b> Use <tt>deploymentMethod</tt> instead.<br /><b>Default value is</b>: <tt>false</tt>.<br /><b>User property is</b>: <tt>sling.usePut</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.3CbundleFileName.3E"></a><b><a name="bundleFileName">&lt;bundleFileName&gt;</a></b></h4>
        
<div>The name of the generated JAR file.</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>sling.file</tt></li>
          
<li><b>Default</b>: <tt>${project.build.directory}/${project.build.finalName}.jar</tt></li>
        </ul><hr /></div>
<div class="section">
<h4><a name="a.3CbundleStart.3E"></a><b><a name="bundleStart">&lt;bundleStart&gt;</a></b></h4>
        
<div>Whether to start the uploaded bundle or not. Only applies when
POSTing to Felix Web Console</div>
        
<ul>
          
<li><b>Type</b>: <tt>boolean</tt></li>
          
<li><b>Required</b>: <tt>Yes</tt></li>
          
<li><b>User Property</b>: <tt>sling.bundle.start</tt></li>
          
<li><b>Default</b>: <tt>true</tt></li>
        </ul><hr /></div>
<div class="section">
<h4><a name="a.3CbundleStartLevel.3E"></a><b><a name="bundleStartLevel">&lt;bundleStartLevel&gt;</a></b></h4>
        
<div>The start level to set on the installed bundle. If the bundle is
already installed and therefore is only updated this parameter is
ignored. The parameter is also ignored if the running Sling
instance has no StartLevel service (which is unusual actually).
Only applies when POSTing to Felix Web Console.</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>sling.bundle.startlevel</tt></li>
          
<li><b>Default</b>: <tt>20</tt></li>
        </ul><hr /></div>
<div class="section">
<h4><a name="a.3CdeploymentMethod.3E"></a><b><a name="deploymentMethod">&lt;deploymentMethod&gt;</a></b></h4>
        
<div>Bundle deployment method. One of the following three values are
allowed 

<ol style="list-style-type: decimal">

<li><b>WebConsole</b>, uses the <a class="externalLink" href="http://felix.apache.org/documentation/subprojects/apache-felix-web-console/web-console-restful-api.html#post-requests">Felix
Web Console REST API</a> for deployment (HTTP POST). This is the
default. Make sure that <tt>slingUrl</tt> points to the Felix
Web Console in that case.</li>

<li><b>WebDAV</b>, uses <a class="externalLink" href="https://sling.apache.org/documentation/development/repository-based-development.html">WebDAV</a>
for deployment (HTTP PUT). Make sure that <tt>slingUrl</tt>
points to the entry path of the Sling WebDAV bundle (defaults to
<tt>/dav/default</tt> in the Sling starter). Issues a HTTP Delete
for the uninstall goal.</li>

<li><b>SlingPostServlet</b>, uses the <a class="externalLink" href="https://sling.apache.org/documentation/bundles/manipulating-content-the-slingpostservlet-servlets-post.html">Sling
Post Servlet</a> for deployment (HTTP POST). Make sure that
<tt>slingUrl</tt> points a path which is handled by the Sling
POST Servlet (usually below regular Sling root URL).</li>
</ol>
This has precedence over the deprecated parameter
<tt>usePut</tt>.</div>
        
<ul>
          
<li><b>Type</b>: <tt>org.apache.sling.maven.bundlesupport.deploy.BundleDeploymentMethod</tt></li>
          
<li><b>Required</b>: <tt>No</tt></li>
          
<li><b>User Property</b>: <tt>sling.deploy.method</tt></li>
        </ul><hr /></div>
<div class="section">
<h4><a name="a.3CfailOnError.3E"></a><b><a name="failOnError">&lt;failOnError&gt;</a></b></h4>
        
<div>Determines whether or not to fail the build if the HTTP POST or PUT
returns an non-OK response code.</div>
        
<ul>
          
<li><b>Type</b>: <tt>boolean</tt></li>
          
<li><b>Required</b>: <tt>Yes</tt></li>
          
<li><b>User Property</b>: <tt>sling.failOnError</tt></li>
          
<li><b>Default</b>: <tt>true</tt></li>
        </ul><hr /></div>
<div class="section">
<h4><a name="a.3CmimeType.3E"></a><b><a name="mimeType">&lt;mimeType&gt;</a></b></h4>
        
<div>The content type / mime type used for WebDAV or Sling POST
deployment.</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>sling.mimeType</tt></li>
          
<li><b>Default</b>: <tt>application/java-archive</tt></li>
        </ul><hr /></div>
<div class="section">
<h4><a name="a.3CmountByFS.3E"></a><b><a name="mountByFS">&lt;mountByFS&gt;</a></b></h4>
        
<div>Whether to add the mapping for the <a class="externalLink" href="https://sling.apache.org/documentation/bundles/accessing-filesystem-resources-extensions-fsresource.html">Apache
Sling File System Resource Provider</a>.</div>
        
<ul>
          
<li><b>Type</b>: <tt>boolean</tt></li>
          
<li><b>Required</b>: <tt>Yes</tt></li>
          
<li><b>User Property</b>: <tt>sling.mountByFS</tt></li>
          
<li><b>Default</b>: <tt>false</tt></li>
        </ul><hr /></div>
<div class="section">
<h4><a name="a.3Cpassword.3E"></a><b><a name="password">&lt;password&gt;</a></b></h4>
        
<div>The password to authenticate at the running Sling instance.</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>sling.password</tt></li>
          
<li><b>Default</b>: <tt>admin</tt></li>
        </ul><hr /></div>
<div class="section">
<h4><a name="a.3CrefreshPackages.3E"></a><b><a name="refreshPackages">&lt;refreshPackages&gt;</a></b></h4>
        
<div>Whether to refresh the packages after installing the uploaded
bundle. Only applies when POSTing to Felix Web Console</div>
        
<ul>
          
<li><b>Type</b>: <tt>boolean</tt></li>
          
<li><b>Required</b>: <tt>Yes</tt></li>
          
<li><b>User Property</b>: <tt>sling.refreshPackages</tt></li>
          
<li><b>Default</b>: <tt>true</tt></li>
        </ul><hr /></div>
<div class="section">
<h4><a name="a.3CslingConsoleUrl.3E"></a><b><a name="slingConsoleUrl">&lt;slingConsoleUrl&gt;</a></b></h4>
        
<div>The WebConsole URL of the running Sling instance. This is required
for file system provider operations. If not configured the value of
slingUrl is used.</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>sling.console.url</tt></li>
        </ul><hr /></div>
<div class="section">
<h4><a name="a.3CslingUrl.3E"></a><b><a name="slingUrl">&lt;slingUrl&gt;</a></b></h4>
        
<div>The URL of the running Sling instance. 

<p>The default is only useful for <b>WebConsole</b>
deployment.</p>

<p>For <b>WebDAV</b> deployment it is recommended to
include the Sling Simple WebDAV servlet root, for instance <a class="externalLink" href="http://localhost:8080/dav/default/libs/sling/install">http://localhost:8080/dav/default/libs/sling/install</a>.
Omitting the <tt>dav/default</tt> segment can lead to conflicts
with other servlets.</p></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>sling.url</tt></li>
          
<li><b>Default</b>: <tt>http://localhost:8080/system/console</tt></li>
        </ul><hr /></div>
<div class="section">
<h4><a name="a.3CslingUrlSuffix.3E"></a><b><a name="slingUrlSuffix">&lt;slingUrlSuffix&gt;</a></b></h4>
        
<div>An optional url suffix which will be appended to the
<tt>sling.url</tt> for use as the real target url. This allows
to configure different target URLs in each POM, while using the
same common <tt>sling.url</tt> in a parent POM (eg.
<tt>sling.url=http://localhost:8080</tt> and
<tt>sling.urlSuffix=/project/specific/path</tt>). This is
typically used in conjunction with WebDAV or SlingPostServlet
deployment methods.</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>sling.urlSuffix</tt></li>
        </ul><hr /></div>
<div class="section">
<h4><a name="a.3CusePut.3E"></a><b><a name="usePut">&lt;usePut&gt;</a></b></h4>
        
<div><b>Deprecated.</b> Use <tt>deploymentMethod</tt> instead.</div>
        
<div>If a PUT via WebDAV should be used instead of the standard POST to
the Felix Web Console. In the <tt>uninstall</tt> goal, a HTTP
DELETE will be used.</div>
        
<ul>
          
<li><b>Type</b>: <tt>boolean</tt></li>
          
<li><b>Required</b>: <tt>No</tt></li>
          
<li><b>User Property</b>: <tt>sling.usePut</tt></li>
          
<li><b>Default</b>: <tt>false</tt></li>
        </ul><hr /></div>
<div class="section">
<h4><a name="a.3Cuser.3E"></a><b><a name="user">&lt;user&gt;</a></b></h4>
        
<div>The user name to authenticate at the running Sling instance.</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>sling.user</tt></li>
          
<li><b>Default</b>: <tt>admin</tt></li>
        </ul>
      </div></div>
    </div>
  

        </div>
      </div>
    </div>
    <hr/>
    <footer>
      <div class="container-fluid">
        <div class="row-fluid">
            <p>Copyright &copy;2007&#x2013;2019
<a href="https://www.apache.org/">The Apache Software Foundation</a>.
All rights reserved.</p>
        </div>
        </div>
    </footer>
    </body>
</html>
