Modified: karaf/site/production/manual/latest/installation.html
URL: 
http://svn.apache.org/viewvc/karaf/site/production/manual/latest/installation.html?rev=1816059&r1=1816058&r2=1816059&view=diff
==============================================================================
--- karaf/site/production/manual/latest/installation.html (original)
+++ karaf/site/production/manual/latest/installation.html Wed Nov 22 14:52:25 
2017
@@ -860,7 +860,7 @@ This property is used to locate the <cod
 </div>
 <div id="footer">
 <div id="footer-text">
-Last updated 2016-04-27 13:59:28 CEST
+Last updated 2017-07-26 16:36:29 +02:00
 </div>
 </div>
 </body>

Modified: karaf/site/production/manual/latest/instances.html
URL: 
http://svn.apache.org/viewvc/karaf/site/production/manual/latest/instances.html?rev=1816059&r1=1816058&r2=1816059&view=diff
==============================================================================
--- karaf/site/production/manual/latest/instances.html (original)
+++ karaf/site/production/manual/latest/instances.html Wed Nov 22 14:52:25 2017
@@ -1067,7 +1067,7 @@ If wait is true, this operation is waiti
 </div>
 <div id="footer">
 <div id="footer-text">
-Last updated 2016-04-27 13:59:28 CEST
+Last updated 2017-07-26 16:36:29 +02:00
 </div>
 </div>
 </body>

Modified: karaf/site/production/manual/latest/jdbc.html
URL: 
http://svn.apache.org/viewvc/karaf/site/production/manual/latest/jdbc.html?rev=1816059&r1=1816058&r2=1816059&view=diff
==============================================================================
--- karaf/site/production/manual/latest/jdbc.html (original)
+++ karaf/site/production/manual/latest/jdbc.html Wed Nov 22 14:52:25 2017
@@ -641,7 +641,7 @@ OPTIONS
 </div>
 <div class="listingblock">
 <div class="content">
-<pre>karaf@root()&gt; jdbc:ds-create -dn derby -dbName test -url 
jdbc:derby:test test</pre>
+<pre>karaf@root()&gt; jdbc:ds-create -dn derby -url 
"jdbc:derby:test;create=true" test</pre>
 </div>
 </div>
 <div class="paragraph">
@@ -832,7 +832,7 @@ REF_GENERATION | TYPE_NAME | TABLE_NAME
 </div>
 <div id="footer">
 <div id="footer-text">
-Last updated 2016-04-27 13:59:28 CEST
+Last updated 2017-11-15 16:55:26 +01:00
 </div>
 </div>
 </body>

Modified: karaf/site/production/manual/latest/jms.html
URL: 
http://svn.apache.org/viewvc/karaf/site/production/manual/latest/jms.html?rev=1816059&r1=1816058&r2=1816059&view=diff
==============================================================================
--- karaf/site/production/manual/latest/jms.html (original)
+++ karaf/site/production/manual/latest/jms.html Wed Nov 22 14:52:25 2017
@@ -983,7 +983,7 @@ ID:vostro-59602-1387462183019-3:3:1:1:1
 </div>
 <div id="footer">
 <div id="footer-text">
-Last updated 2016-04-27 13:59:28 CEST
+Last updated 2017-07-26 16:36:29 +02:00
 </div>
 </div>
 </body>

Modified: karaf/site/production/manual/latest/jndi.html
URL: 
http://svn.apache.org/viewvc/karaf/site/production/manual/latest/jndi.html?rev=1816059&r1=1816058&r2=1816059&view=diff
==============================================================================
--- karaf/site/production/manual/latest/jndi.html (original)
+++ karaf/site/production/manual/latest/jndi.html Wed Nov 22 14:52:25 2017
@@ -831,7 +831,7 @@ and the regular JNDI service.</p>
 </div>
 <div id="footer">
 <div id="footer-text">
-Last updated 2016-04-27 13:59:28 CEST
+Last updated 2017-07-26 16:36:29 +02:00
 </div>
 </div>
 </body>

Modified: karaf/site/production/manual/latest/jpa.html
URL: 
http://svn.apache.org/viewvc/karaf/site/production/manual/latest/jpa.html?rev=1816059&r1=1816058&r2=1816059&view=diff
==============================================================================
--- karaf/site/production/manual/latest/jpa.html (original)
+++ karaf/site/production/manual/latest/jpa.html Wed Nov 22 14:52:25 2017
@@ -568,7 +568,7 @@ container managed persistence for applic
 </div>
 <div id="footer">
 <div id="footer-text">
-Last updated 2016-04-27 13:59:28 CEST
+Last updated 2017-07-26 16:36:29 +02:00
 </div>
 </div>
 </body>

Modified: karaf/site/production/manual/latest/jta.html
URL: 
http://svn.apache.org/viewvc/karaf/site/production/manual/latest/jta.html?rev=1816059&r1=1816058&r2=1816059&view=diff
==============================================================================
--- karaf/site/production/manual/latest/jta.html (original)
+++ karaf/site/production/manual/latest/jta.html Wed Nov 22 14:52:25 2017
@@ -658,7 +658,7 @@ aries.transaction.howl.bufferSizeKBytes
 </div>
 <div id="footer">
 <div id="footer-text">
-Last updated 2016-04-27 13:59:28 CEST
+Last updated 2017-07-26 16:36:29 +02:00
 </div>
 </div>
 </body>

Modified: karaf/site/production/manual/latest/kar.html
URL: 
http://svn.apache.org/viewvc/karaf/site/production/manual/latest/kar.html?rev=1816059&r1=1816058&r2=1816059&view=diff
==============================================================================
--- karaf/site/production/manual/latest/kar.html (original)
+++ karaf/site/production/manual/latest/kar.html Wed Nov 22 14:52:25 2017
@@ -776,6 +776,9 @@ is supported by the <code>kar:install</c
 <p>The Apache Karaf KAR service is looking for features XML files in the KAR 
file, registers the features XML and automatically
 installs all features described in the features repositories present in the 
KAR file.</p>
 </div>
+<div class="paragraph">
+<p>Optionally, you can control if the bundles should be automatically started 
or not using <code>--no-start</code> option.</p>
+</div>
 </div>
 <div class="sect4">
 <h5 id="__code_kar_uninstall_code"><code>kar:uninstall</code></h5>
@@ -841,7 +844,18 @@ installs all features described in the f
 # Enable or disable the refresh of the bundles when installing
 # the features contained in a KAR file
 #
-noAutoRefreshBundles=false</pre>
+noAutoRefreshBundles=false
+
+#
+# Enable or disable the automatic start of the bundles when installing
+# the features contained in a KAR file
+#
+noAutoStartBundles=false
+
+#
+# Directory where the kar are stored (when downloaded from Maven for instance)
+#
+#karStorage=${karaf.data}/kar</pre>
 </div>
 </div>
 <div class="paragraph">
@@ -871,6 +885,9 @@ You can disable the automatic bundles re
 <p><code>install(url)</code> installs the KAR file at the given 
<code>url</code>.</p>
 </li>
 <li>
+<p><code>install(url, noAutoStartBundles)</code> installs the KAR file at the 
given <code>url</code>, deciding if you want to automatically start the bundles 
or not.</p>
+</li>
+<li>
 <p><code>create(repository, features)</code> creates a KAR file using the 
given features <code>repository</code> name, and optionally the
 list of <code>features</code> to include in the KAR file.</p>
 </li>
@@ -885,7 +902,7 @@ list of <code>features</code> to include
 </div>
 <div id="footer">
 <div id="footer-text">
-Last updated 2016-04-27 13:59:28 CEST
+Last updated 2017-11-15 16:55:26 +01:00
 </div>
 </div>
 </body>

Modified: karaf/site/production/manual/latest/karaf-maven-plugin.html
URL: 
http://svn.apache.org/viewvc/karaf/site/production/manual/latest/karaf-maven-plugin.html?rev=1816059&r1=1816058&r2=1816059&view=diff
==============================================================================
--- karaf/site/production/manual/latest/karaf-maven-plugin.html (original)
+++ karaf/site/production/manual/latest/karaf-maven-plugin.html Wed Nov 22 
14:52:25 2017
@@ -577,11 +577,11 @@ table.CodeRay td.code>pre{padding:0}
 <tbody>
 <tr>
 <td class="tableblock halign-left valign-top"><p 
class="tableblock">feature</p></td>
-<td class="tableblock halign-left valign-top"><p class="tableblock">The 
feature packaging generates a features.xml descriptor using the 
<code>karaf:features-generate-descriptor</code></p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">The 
feature packaging verifies a features.xml descriptor using the 
<code>karaf:verify</code> goal.</p></td>
 </tr>
 <tr>
 <td class="tableblock halign-left valign-top"><p 
class="tableblock">kar</p></td>
-<td class="tableblock halign-left valign-top"><p class="tableblock">The kar 
packaging generates a features.xml descriptor using the 
<code>karaf:features-generate-descriptor</code> and then packages a kar using 
the <code>karaf:features-create-kar</code></p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">The kar 
packaging generates a features.xml descriptor using the 
<code>karaf:features-generate-descriptor</code> and then packages a kar using 
the <code>karaf:features-create-kar</code> goal.</p></td>
 </tr>
 <tr>
 <td class="tableblock halign-left valign-top"><p 
class="tableblock">karaf-assembly</p></td>
@@ -696,9 +696,6 @@ option in the Karaf shell console.</p>
 <div class="sect4">
 <h5 
id="__code_karaf_features_generate_descriptor_code"><code>karaf:features-generate-descriptor</code></h5>
 <div class="paragraph">
-<p>Except in unusual circumstances, use the 
<code>&lt;packaging&gt;feature&lt;/packaging&gt;</code> to run this goal.</p>
-</div>
-<div class="paragraph">
 <p>The <code>karaf:features-generate-descriptor</code> goal generates a 
features XML file based on the Maven dependencies.
 By default, it will follow Maven transitive dependencies, stopping when it 
encounters bundles already present in features that are Maven dependencies.</p>
 </div>
@@ -797,11 +794,19 @@ This can be overridden by specifying the
         &lt;artifactId&gt;karaf-maven-plugin&lt;/artifactId&gt;
         &lt;version&gt;${project.version}&lt;/version&gt;
         &lt;extensions&gt;true&lt;/extensions&gt;
-          &lt;configuration&gt;
-            &lt;startLevel&gt;80&lt;/startLevel&gt;
-            &lt;aggregateFeatures&gt;true&lt;/aggregateFeatures&gt;
-          &lt;/configuration&gt;
-        &lt;/plugin&gt;
+        &lt;configuration&gt;
+          &lt;enableGeneration&gt;true&lt;/enableGeneration&gt;
+        &lt;/configuration&gt;
+        &lt;executions&gt;
+          &lt;execution&gt;
+            &lt;id&gt;generate-features-file&lt;/id&gt;
+            &lt;phase&gt;generate-resources&lt;/phase&gt;
+            &lt;goals&gt;
+              &lt;goal&gt;features-generate-descriptor&lt;/goal&gt;
+            &lt;/goals&gt;
+          &lt;/execution&gt;
+        &lt;/executions&gt;
+      &lt;/plugin&gt;
     &lt;/plugins&gt;
   &lt;/build&gt;
 &lt;/project&gt;</pre>
@@ -812,6 +817,9 @@ This can be overridden by specifying the
 <div class="sect4">
 <h5 id="__code_karaf_verify_code"><code>karaf:verify</code></h5>
 <div class="paragraph">
+<p>Except in unusual circumstances, use the 
<code>&lt;packaging&gt;feature&lt;/packaging&gt;</code> to run this goal.</p>
+</div>
+<div class="paragraph">
 <p>The <code>karaf:verify</code> goal verifies and validates a features XML 
descriptor by checking if all the required imports
 for the bundles defined in the features can be matched to a provided 
export.</p>
 </div>
@@ -831,32 +839,32 @@ It reads the definition for the packages
 <pre>&lt;project&gt;
   &lt;build&gt;
     &lt;plugins&gt;
-            &lt;plugin&gt;
-                &lt;groupId&gt;org.apache.karaf.tooling&lt;/groupId&gt;
-                &lt;artifactId&gt;karaf-maven-plugin&lt;/artifactId&gt;
-                &lt;configuration&gt;
-                &lt;/configuration&gt;
-                &lt;executions&gt;
-                    &lt;execution&gt;
-                        &lt;id&gt;verify&lt;/id&gt;
-                        &lt;phase&gt;process-resources&lt;/phase&gt;
-                        &lt;goals&gt;
-                            &lt;goal&gt;verify&lt;/goal&gt;
-                        &lt;/goals&gt;
-                        &lt;configuration&gt;
-                            &lt;descriptors&gt;
-                                
&lt;descriptor&gt;mvn:org.apache.karaf.features/framework/4.0.4/xml/features&lt;/descriptor&gt;
-                                
&lt;descriptor&gt;file:${project.build.directory}/feature/feature.xml&lt;/descriptor&gt;
-                            &lt;/descriptors&gt;
-                            
&lt;distribution&gt;org.apache.karaf.features:framework&lt;/distribution&gt;
-                            &lt;javase&gt;1.8&lt;/javase&gt;
-                            &lt;framework&gt;
-                                &lt;feature&gt;framework&lt;/feature&gt;
-                            &lt;/framework&gt;
-                        &lt;/configuration&gt;
-                    &lt;/execution&gt;
-                &lt;/executions&gt;
-            &lt;/plugin&gt;
+      &lt;plugin&gt;
+        &lt;groupId&gt;org.apache.karaf.tooling&lt;/groupId&gt;
+        &lt;artifactId&gt;karaf-maven-plugin&lt;/artifactId&gt;
+        &lt;configuration&gt;
+        &lt;/configuration&gt;
+        &lt;executions&gt;
+          &lt;execution&gt;
+            &lt;id&gt;verify&lt;/id&gt;
+            &lt;phase&gt;process-resources&lt;/phase&gt;
+            &lt;goals&gt;
+              &lt;goal&gt;verify&lt;/goal&gt;
+            &lt;/goals&gt;
+            &lt;configuration&gt;
+              &lt;descriptors&gt;
+                
&lt;descriptor&gt;mvn:org.apache.karaf.features/framework/4.0.4/xml/features&lt;/descriptor&gt;
+                
&lt;descriptor&gt;file:${project.build.directory}/feature/feature.xml&lt;/descriptor&gt;
+              &lt;/descriptors&gt;
+              
&lt;distribution&gt;org.apache.karaf.features:framework&lt;/distribution&gt;
+              &lt;javase&gt;1.8&lt;/javase&gt;
+              &lt;framework&gt;
+                &lt;feature&gt;framework&lt;/feature&gt;
+              &lt;/framework&gt;
+            &lt;/configuration&gt;
+          &lt;/execution&gt;
+        &lt;/executions&gt;
+      &lt;/plugin&gt;
     &lt;/plugins&gt;
   &lt;/build&gt;
 &lt;/project&gt;</pre>
@@ -1170,6 +1178,16 @@ META-INF in the kar, without getting ins
 <td class="tableblock halign-left valign-top"><p 
class="tableblock"><code>File</code></p></td>
 <td class="tableblock halign-left valign-top"><p class="tableblock">The target 
file to set as the project&#8217;s artifact. Default value: 
${project.file}</p></td>
 </tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p 
class="tableblock"><code>archiveZip</code></p></td>
+<td class="tableblock halign-left valign-top"><p 
class="tableblock"><code>Boolean</code></p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">Switches 
creation of *.zip artifact on or off. Default value: true</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p 
class="tableblock"><code>archiveTarGz</code></p></td>
+<td class="tableblock halign-left valign-top"><p 
class="tableblock"><code>Boolean</code></p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">Switches 
creation of *.tar.gz artifact on or off. Default value: true</p></td>
+</tr>
 </tbody>
 </table>
 </div>
@@ -1198,7 +1216,7 @@ META-INF in the kar, without getting ins
 </div>
 <div id="footer">
 <div id="footer-text">
-Last updated 2016-04-27 13:59:28 CEST
+Last updated 2017-11-22 15:12:31 +01:00
 </div>
 </div>
 </body>

Modified: karaf/site/production/manual/latest/log.html
URL: 
http://svn.apache.org/viewvc/karaf/site/production/manual/latest/log.html?rev=1816059&r1=1816058&r2=1816059&view=diff
==============================================================================
--- karaf/site/production/manual/latest/log.html (original)
+++ karaf/site/production/manual/latest/log.html Wed Nov 22 14:52:25 2017
@@ -718,6 +718,88 @@ used by the log commands (see later).</p
 </div>
 </div>
 <div class="sect3">
+<h4 id="__code_karaf_log_console_code_property"><code>karaf.log.console</code> 
property</h4>
+<div class="paragraph">
+<p>Before Karaf starts <em>proper</em> logging facilities (pax-logging), it 
may configure <code>java.util.logging</code>. Standard
+Java logging is used initially by <code>Main</code> class and 
<code>org.apache.karaf.main.lock.Lock</code> implementations.
+In order to configure logging level, please set system property 
<code>karaf.log.console</code> to one of standard JUL
+levels:</p>
+</div>
+<div class="ulist">
+<ul>
+<li>
+<p><code>SEVERE</code> (highest value)</p>
+</li>
+<li>
+<p><code>WARNING</code></p>
+</li>
+<li>
+<p><code>INFO</code></p>
+</li>
+<li>
+<p><code>CONFIG</code></p>
+</li>
+<li>
+<p><code>FINE</code></p>
+</li>
+<li>
+<p><code>FINER</code></p>
+</li>
+<li>
+<p><code>FINEST</code> (lowest value)</p>
+</li>
+</ul>
+</div>
+<div class="paragraph">
+<p>Additionally, de-facto standard log4j(2) levels can be used:</p>
+</div>
+<div class="ulist">
+<ul>
+<li>
+<p><code>TRACE</code></p>
+</li>
+<li>
+<p><code>DEBUG</code></p>
+</li>
+<li>
+<p><code>INFO</code></p>
+</li>
+<li>
+<p><code>WARN</code></p>
+</li>
+<li>
+<p><code>ERROR</code></p>
+</li>
+<li>
+<p><code>OFF</code></p>
+</li>
+<li>
+<p><code>DEFAULT</code></p>
+</li>
+</ul>
+</div>
+<div class="paragraph">
+<p>And because <code>org.ops4j.pax.logging</code> PID uses 
<code>karaf.log.console</code> property, it&#8217;s in fact better to use log4j 
levels instead:</p>
+</div>
+<div class="listingblock">
+<div class="content">
+<pre class="CodeRay highlight 
nowrap"><code>log4j2.rootLogger.appenderRef.Console.filter.threshold.level = 
${karaf.log.console:-OFF}</code></pre>
+</div>
+</div>
+<div class="paragraph">
+<p>For example, setting <code>karaf.log.console</code> to <code>INFO</code> 
(or lower) will turn on these logs when starting Karaf:</p>
+</div>
+<div class="listingblock">
+<div class="content">
+<pre class="CodeRay highlight nowrap"><code>Jul 04, 2017 7:53:18 AM 
org.apache.karaf.main.Main launch
+INFO: Installing and starting initial bundles
+Jul 04, 2017 7:53:18 AM org.apache.karaf.main.Main launch
+INFO: All initial bundles installed and set to start
+...</code></pre>
+</div>
+</div>
+</div>
+<div class="sect3">
 <h4 id="_commands">Commands</h4>
 <div class="paragraph">
 <p>Instead of changing the <code>etc/org.ops4j.pax.logging.cfg</code> file, 
Apache Karaf provides a set of commands allowing to
@@ -1345,7 +1427,7 @@ You can now use your appender directly i
 </div>
 <div id="footer">
 <div id="footer-text">
-Last updated 2016-04-27 13:59:28 CEST
+Last updated 2017-11-22 15:12:31 +01:00
 </div>
 </div>
 </body>

Modified: karaf/site/production/manual/latest/monitoring.html
URL: 
http://svn.apache.org/viewvc/karaf/site/production/manual/latest/monitoring.html?rev=1816059&r1=1816058&r2=1816059&view=diff
==============================================================================
--- karaf/site/production/manual/latest/monitoring.html (original)
+++ karaf/site/production/manual/latest/monitoring.html Wed Nov 22 14:52:25 2017
@@ -913,7 +913,7 @@ Enter host password for user 'karaf':
 </div>
 <div id="footer">
 <div id="footer-text">
-Last updated 2016-04-27 13:59:28 CEST
+Last updated 2017-07-26 16:36:29 +02:00
 </div>
 </div>
 </body>

Modified: karaf/site/production/manual/latest/obr.html
URL: 
http://svn.apache.org/viewvc/karaf/site/production/manual/latest/obr.html?rev=1816059&r1=1816058&r2=1816059&view=diff
==============================================================================
--- karaf/site/production/manual/latest/obr.html (original)
+++ karaf/site/production/manual/latest/obr.html Wed Nov 22 14:52:25 2017
@@ -997,7 +997,7 @@ by the OBR service (meaning installing m
 </div>
 <div id="footer">
 <div id="footer-text">
-Last updated 2016-04-27 13:59:28 CEST
+Last updated 2017-07-26 16:36:29 +02:00
 </div>
 </div>
 </body>

Added: karaf/site/production/manual/latest/os-integration.html
URL: 
http://svn.apache.org/viewvc/karaf/site/production/manual/latest/os-integration.html?rev=1816059&view=auto
==============================================================================
--- karaf/site/production/manual/latest/os-integration.html (added)
+++ karaf/site/production/manual/latest/os-integration.html Wed Nov 22 14:52:25 
2017
@@ -0,0 +1,1291 @@
+<!DOCTYPE html>
+<html lang="en">
+<head>
+<meta charset="UTF-8">
+<!--[if IE]><meta http-equiv="X-UA-Compatible" content="IE=edge"><![endif]-->
+<meta name="viewport" content="width=device-width, initial-scale=1.0">
+<meta name="generator" content="Asciidoctor 1.5.2">
+<title>Integration in the operating system</title>
+<link rel="stylesheet" 
href="https://fonts.googleapis.com/css?family=Open+Sans:300,300italic,400,400italic,600,600italic%7CNoto+Serif:400,400italic,700,700italic%7CDroid+Sans+Mono:400";>
+<style>
+/* Asciidoctor default stylesheet | MIT License | http://asciidoctor.org */
+/* Remove the comments around the @import statement below when using this as a 
custom stylesheet */
+/*@import 
"https://fonts.googleapis.com/css?family=Open+Sans:300,300italic,400,400italic,600,600italic%7CNoto+Serif:400,400italic,700,700italic%7CDroid+Sans+Mono:400";*/
+article,aside,details,figcaption,figure,footer,header,hgroup,main,nav,section,summary{display:block}
+audio,canvas,video{display:inline-block}
+audio:not([controls]){display:none;height:0}
+[hidden],template{display:none}
+script{display:none!important}
+html{font-family:sans-serif;-ms-text-size-adjust:100%;-webkit-text-size-adjust:100%}
+body{margin:0}
+a{background:transparent}
+a:focus{outline:thin dotted}
+a:active,a:hover{outline:0}
+h1{font-size:2em;margin:.67em 0}
+abbr[title]{border-bottom:1px dotted}
+b,strong{font-weight:bold}
+dfn{font-style:italic}
+hr{-moz-box-sizing:content-box;box-sizing:content-box;height:0}
+mark{background:#ff0;color:#000}
+code,kbd,pre,samp{font-family:monospace;font-size:1em}
+pre{white-space:pre-wrap}
+q{quotes:"\201C" "\201D" "\2018" "\2019"}
+small{font-size:80%}
+sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}
+sup{top:-.5em}
+sub{bottom:-.25em}
+img{border:0}
+svg:not(:root){overflow:hidden}
+figure{margin:0}
+fieldset{border:1px solid silver;margin:0 2px;padding:.35em .625em .75em}
+legend{border:0;padding:0}
+button,input,select,textarea{font-family:inherit;font-size:100%;margin:0}
+button,input{line-height:normal}
+button,select{text-transform:none}
+button,html 
input[type="button"],input[type="reset"],input[type="submit"]{-webkit-appearance:button;cursor:pointer}
+button[disabled],html input[disabled]{cursor:default}
+input[type="checkbox"],input[type="radio"]{box-sizing:border-box;padding:0}
+input[type="search"]{-webkit-appearance:textfield;-moz-box-sizing:content-box;-webkit-box-sizing:content-box;box-sizing:content-box}
+input[type="search"]::-webkit-search-cancel-button,input[type="search"]::-webkit-search-decoration{-webkit-appearance:none}
+button::-moz-focus-inner,input::-moz-focus-inner{border:0;padding:0}
+textarea{overflow:auto;vertical-align:top}
+table{border-collapse:collapse;border-spacing:0}
+*,*:before,*:after{-moz-box-sizing:border-box;-webkit-box-sizing:border-box;box-sizing:border-box}
+html,body{font-size:100%}
+body{background:#fff;color:rgba(0,0,0,.8);padding:0;margin:0;font-family:"Noto 
Serif","DejaVu 
Serif",serif;font-weight:400;font-style:normal;line-height:1;position:relative;cursor:auto}
+a:hover{cursor:pointer}
+img,object,embed{max-width:100%;height:auto}
+object,embed{height:100%}
+img{-ms-interpolation-mode:bicubic}
+#map_canvas img,#map_canvas embed,#map_canvas object,.map_canvas 
img,.map_canvas embed,.map_canvas object{max-width:none!important}
+.left{float:left!important}
+.right{float:right!important}
+.text-left{text-align:left!important}
+.text-right{text-align:right!important}
+.text-center{text-align:center!important}
+.text-justify{text-align:justify!important}
+.hide{display:none}
+.antialiased,body{-webkit-font-smoothing:antialiased}
+img{display:inline-block;vertical-align:middle}
+textarea{height:auto;min-height:50px}
+select{width:100%}
+p.lead,.paragraph.lead>p,#preamble>.sectionbody>.paragraph:first-of-type 
p{font-size:1.21875em;line-height:1.6}
+.subheader,.admonitionblock 
td.content>.title,.audioblock>.title,.exampleblock>.title,.imageblock>.title,.listingblock>.title,.literalblock>.title,.stemblock>.title,.openblock>.title,.paragraph>.title,.quoteblock>.title,table.tableblock>.title,.verseblock>.title,.videoblock>.title,.dlist>.title,.olist>.title,.ulist>.title,.qlist>.title,.hdlist>.title{line-height:1.45;color:#7a2518;font-weight:400;margin-top:0;margin-bottom:.25em}
+div,dl,dt,dd,ul,ol,li,h1,h2,h3,#toctitle,.sidebarblock>.content>.title,h4,h5,h6,pre,form,p,blockquote,th,td{margin:0;padding:0;direction:ltr}
+a{color:#2156a5;text-decoration:underline;line-height:inherit}
+a:hover,a:focus{color:#1d4b8f}
+a img{border:none}
+p{font-family:inherit;font-weight:400;font-size:1em;line-height:1.6;margin-bottom:1.25em;text-rendering:optimizeLegibility}
+p aside{font-size:.875em;line-height:1.35;font-style:italic}
+h1,h2,h3,#toctitle,.sidebarblock>.content>.title,h4,h5,h6{font-family:"Open 
Sans","DejaVu 
Sans",sans-serif;font-weight:300;font-style:normal;color:#ba3925;text-rendering:optimizeLegibility;margin-top:1em;margin-bottom:.5em;line-height:1.0125em}
+h1 small,h2 small,h3 small,#toctitle small,.sidebarblock>.content>.title 
small,h4 small,h5 small,h6 small{font-size:60%;color:#e99b8f;line-height:0}
+h1{font-size:2.125em}
+h2{font-size:1.6875em}
+h3,#toctitle,.sidebarblock>.content>.title{font-size:1.375em}
+h4,h5{font-size:1.125em}
+h6{font-size:1em}
+hr{border:solid #ddddd8;border-width:1px 0 0;clear:both;margin:1.25em 0 
1.1875em;height:0}
+em,i{font-style:italic;line-height:inherit}
+strong,b{font-weight:bold;line-height:inherit}
+small{font-size:60%;line-height:inherit}
+code{font-family:"Droid Sans Mono","DejaVu Sans 
Mono",monospace;font-weight:400;color:rgba(0,0,0,.9)}
+ul,ol,dl{font-size:1em;line-height:1.6;margin-bottom:1.25em;list-style-position:outside;font-family:inherit}
+ul,ol,ul.no-bullet,ol.no-bullet{margin-left:1.5em}
+ul li ul,ul li ol{margin-left:1.25em;margin-bottom:0;font-size:1em}
+ul.square li ul,ul.circle li ul,ul.disc li ul{list-style:inherit}
+ul.square{list-style-type:square}
+ul.circle{list-style-type:circle}
+ul.disc{list-style-type:disc}
+ul.no-bullet{list-style:none}
+ol li ul,ol li ol{margin-left:1.25em;margin-bottom:0}
+dl dt{margin-bottom:.3125em;font-weight:bold}
+dl dd{margin-bottom:1.25em}
+abbr,acronym{text-transform:uppercase;font-size:90%;color:rgba(0,0,0,.8);border-bottom:1px
 dotted #ddd;cursor:help}
+abbr{text-transform:none}
+blockquote{margin:0 0 1.25em;padding:.5625em 1.25em 0 1.1875em;border-left:1px 
solid #ddd}
+blockquote cite{display:block;font-size:.9375em;color:rgba(0,0,0,.6)}
+blockquote cite:before{content:"\2014 \0020"}
+blockquote cite a,blockquote cite a:visited{color:rgba(0,0,0,.6)}
+blockquote,blockquote p{line-height:1.6;color:rgba(0,0,0,.85)}
+@media only screen and 
(min-width:768px){h1,h2,h3,#toctitle,.sidebarblock>.content>.title,h4,h5,h6{line-height:1.2}
+h1{font-size:2.75em}
+h2{font-size:2.3125em}
+h3,#toctitle,.sidebarblock>.content>.title{font-size:1.6875em}
+h4{font-size:1.4375em}}table{background:#fff;margin-bottom:1.25em;border:solid 
1px #dedede}
+table thead,table tfoot{background:#f7f8f7;font-weight:bold}
+table thead tr th,table thead tr td,table tfoot tr th,table tfoot tr 
td{padding:.5em .625em 
.625em;font-size:inherit;color:rgba(0,0,0,.8);text-align:left}
+table tr th,table tr td{padding:.5625em 
.625em;font-size:inherit;color:rgba(0,0,0,.8)}
+table tr.even,table tr.alt,table tr:nth-of-type(even){background:#f8f8f7}
+table thead tr th,table tfoot tr th,table tbody tr td,table tr td,table tfoot 
tr td{display:table-cell;line-height:1.6}
+h1,h2,h3,#toctitle,.sidebarblock>.content>.title,h4,h5,h6{line-height:1.2;word-spacing:-.05em}
+h1 strong,h2 strong,h3 strong,#toctitle strong,.sidebarblock>.content>.title 
strong,h4 strong,h5 strong,h6 strong{font-weight:400}
+.clearfix:before,.clearfix:after,.float-group:before,.float-group:after{content:"
 ";display:table}
+.clearfix:after,.float-group:after{clear:both}
+*:not(pre)>code{font-size:.9375em;font-style:normal!important;letter-spacing:0;padding:.1em
 
.5ex;word-spacing:-.15em;background-color:#f7f7f8;-webkit-border-radius:4px;border-radius:4px;line-height:1.45;text-rendering:optimizeSpeed}
+pre,pre>code{line-height:1.45;color:rgba(0,0,0,.9);font-family:"Droid Sans 
Mono","DejaVu Sans Mono",monospace;font-weight:400;text-rendering:optimizeSpeed}
+.keyseq{color:rgba(51,51,51,.8)}
+kbd{display:inline-block;color:rgba(0,0,0,.8);font-size:.75em;line-height:1.4;background-color:#f7f7f7;border:1px
 solid #ccc;-webkit-border-radius:3px;border-radius:3px;-webkit-box-shadow:0 
1px 0 rgba(0,0,0,.2),0 0 0 .1em white inset;box-shadow:0 1px 0 rgba(0,0,0,.2),0 
0 0 .1em #fff inset;margin:-.15em .15em 0 .15em;padding:.2em .6em .2em 
.5em;vertical-align:middle;white-space:nowrap}
+.keyseq kbd:first-child{margin-left:0}
+.keyseq kbd:last-child{margin-right:0}
+.menuseq,.menu{color:rgba(0,0,0,.8)}
+b.button:before,b.button:after{position:relative;top:-1px;font-weight:400}
+b.button:before{content:"[";padding:0 3px 0 2px}
+b.button:after{content:"]";padding:0 2px 0 3px}
+p a>code:hover{color:rgba(0,0,0,.9)}
+#header,#content,#footnotes,#footer{width:100%;margin-left:auto;margin-right:auto;margin-top:0;margin-bottom:0;max-width:62.5em;*zoom:1;position:relative;padding-left:.9375em;padding-right:.9375em}
+#header:before,#header:after,#content:before,#content:after,#footnotes:before,#footnotes:after,#footer:before,#footer:after{content:"
 ";display:table}
+#header:after,#content:after,#footnotes:after,#footer:after{clear:both}
+#content{margin-top:1.25em}
+#content:before{content:none}
+#header>h1:first-child{color:rgba(0,0,0,.85);margin-top:2.25rem;margin-bottom:0}
+#header>h1:first-child+#toc{margin-top:8px;border-top:1px solid #ddddd8}
+#header>h1:only-child,body.toc2 #header>h1:nth-last-child(2){border-bottom:1px 
solid #ddddd8;padding-bottom:8px}
+#header .details{border-bottom:1px solid 
#ddddd8;line-height:1.45;padding-top:.25em;padding-bottom:.25em;padding-left:.25em;color:rgba(0,0,0,.6);display:-ms-flexbox;display:-webkit-flex;display:flex;-ms-flex-flow:row
 wrap;-webkit-flex-flow:row wrap;flex-flow:row wrap}
+#header .details span:first-child{margin-left:-.125em}
+#header .details span.email a{color:rgba(0,0,0,.85)}
+#header .details br{display:none}
+#header .details br+span:before{content:"\00a0\2013\00a0"}
+#header .details 
br+span.author:before{content:"\00a0\22c5\00a0";color:rgba(0,0,0,.85)}
+#header .details br+span#revremark:before{content:"\00a0|\00a0"}
+#header #revnumber{text-transform:capitalize}
+#header #revnumber:after{content:"\00a0"}
+#content>h1:first-child:not([class]){color:rgba(0,0,0,.85);border-bottom:1px 
solid 
#ddddd8;padding-bottom:8px;margin-top:0;padding-top:1rem;margin-bottom:1.25rem}
+#toc{border-bottom:1px solid #efefed;padding-bottom:.5em}
+#toc>ul{margin-left:.125em}
+#toc ul.sectlevel0>li>a{font-style:italic}
+#toc ul.sectlevel0 ul.sectlevel1{margin:.5em 0}
+#toc ul{font-family:"Open Sans","DejaVu Sans",sans-serif;list-style-type:none}
+#toc a{text-decoration:none}
+#toc a:active{text-decoration:underline}
+#toctitle{color:#7a2518;font-size:1.2em}
+@media only screen and (min-width:768px){#toctitle{font-size:1.375em}
+body.toc2{padding-left:15em;padding-right:0}
+#toc.toc2{margin-top:0!important;background-color:#f8f8f7;position:fixed;width:15em;left:0;top:0;border-right:1px
 solid 
#efefed;border-top-width:0!important;border-bottom-width:0!important;z-index:1000;padding:1.25em
 1em;height:100%;overflow:auto}
+#toc.toc2 #toctitle{margin-top:0;font-size:1.2em}
+#toc.toc2>ul{font-size:.9em;margin-bottom:0}
+#toc.toc2 ul ul{margin-left:0;padding-left:1em}
+#toc.toc2 ul.sectlevel0 
ul.sectlevel1{padding-left:0;margin-top:.5em;margin-bottom:.5em}
+body.toc2.toc-right{padding-left:0;padding-right:15em}
+body.toc2.toc-right #toc.toc2{border-right-width:0;border-left:1px solid 
#efefed;left:auto;right:0}}@media only screen and 
(min-width:1280px){body.toc2{padding-left:20em;padding-right:0}
+#toc.toc2{width:20em}
+#toc.toc2 #toctitle{font-size:1.375em}
+#toc.toc2>ul{font-size:.95em}
+#toc.toc2 ul ul{padding-left:1.25em}
+body.toc2.toc-right{padding-left:0;padding-right:20em}}#content 
#toc{border-style:solid;border-width:1px;border-color:#e0e0dc;margin-bottom:1.25em;padding:1.25em;background:#f8f8f7;-webkit-border-radius:4px;border-radius:4px}
+#content #toc>:first-child{margin-top:0}
+#content #toc>:last-child{margin-bottom:0}
+#footer{max-width:100%;background-color:rgba(0,0,0,.8);padding:1.25em}
+#footer-text{color:rgba(255,255,255,.8);line-height:1.44}
+.sect1{padding-bottom:.625em}
+@media only screen and 
(min-width:768px){.sect1{padding-bottom:1.25em}}.sect1+.sect1{border-top:1px 
solid #efefed}
+#content 
h1>a.anchor,h2>a.anchor,h3>a.anchor,#toctitle>a.anchor,.sidebarblock>.content>.title>a.anchor,h4>a.anchor,h5>a.anchor,h6>a.anchor{position:absolute;z-index:1001;width:1.5ex;margin-left:-1.5ex;display:block;text-decoration:none!important;visibility:hidden;text-align:center;font-weight:400}
+#content 
h1>a.anchor:before,h2>a.anchor:before,h3>a.anchor:before,#toctitle>a.anchor:before,.sidebarblock>.content>.title>a.anchor:before,h4>a.anchor:before,h5>a.anchor:before,h6>a.anchor:before{content:"\00A7";font-size:.85em;display:block;padding-top:.1em}
+#content h1:hover>a.anchor,#content 
h1>a.anchor:hover,h2:hover>a.anchor,h2>a.anchor:hover,h3:hover>a.anchor,#toctitle:hover>a.anchor,.sidebarblock>.content>.title:hover>a.anchor,h3>a.anchor:hover,#toctitle>a.anchor:hover,.sidebarblock>.content>.title>a.anchor:hover,h4:hover>a.anchor,h4>a.anchor:hover,h5:hover>a.anchor,h5>a.anchor:hover,h6:hover>a.anchor,h6>a.anchor:hover{visibility:visible}
+#content 
h1>a.link,h2>a.link,h3>a.link,#toctitle>a.link,.sidebarblock>.content>.title>a.link,h4>a.link,h5>a.link,h6>a.link{color:#ba3925;text-decoration:none}
+#content 
h1>a.link:hover,h2>a.link:hover,h3>a.link:hover,#toctitle>a.link:hover,.sidebarblock>.content>.title>a.link:hover,h4>a.link:hover,h5>a.link:hover,h6>a.link:hover{color:#a53221}
+.audioblock,.imageblock,.literalblock,.listingblock,.stemblock,.videoblock{margin-bottom:1.25em}
+.admonitionblock 
td.content>.title,.audioblock>.title,.exampleblock>.title,.imageblock>.title,.listingblock>.title,.literalblock>.title,.stemblock>.title,.openblock>.title,.paragraph>.title,.quoteblock>.title,table.tableblock>.title,.verseblock>.title,.videoblock>.title,.dlist>.title,.olist>.title,.ulist>.title,.qlist>.title,.hdlist>.title{text-rendering:optimizeLegibility;text-align:left;font-family:"Noto
 Serif","DejaVu Serif",serif;font-size:1rem;font-style:italic}
+table.tableblock>caption.title{white-space:nowrap;overflow:visible;max-width:0}
+.paragraph.lead>p,#preamble>.sectionbody>.paragraph:first-of-type 
p{color:rgba(0,0,0,.85)}
+table.tableblock #preamble>.sectionbody>.paragraph:first-of-type 
p{font-size:inherit}
+.admonitionblock>table{border-collapse:separate;border:0;background:none;width:100%}
+.admonitionblock>table td.icon{text-align:center;width:80px}
+.admonitionblock>table td.icon img{max-width:none}
+.admonitionblock>table td.icon .title{font-weight:bold;font-family:"Open 
Sans","DejaVu Sans",sans-serif;text-transform:uppercase}
+.admonitionblock>table 
td.content{padding-left:1.125em;padding-right:1.25em;border-left:1px solid 
#ddddd8;color:rgba(0,0,0,.6)}
+.admonitionblock>table td.content>:last-child>:last-child{margin-bottom:0}
+.exampleblock>.content{border-style:solid;border-width:1px;border-color:#e6e6e6;margin-bottom:1.25em;padding:1.25em;background:#fff;-webkit-border-radius:4px;border-radius:4px}
+.exampleblock>.content>:first-child{margin-top:0}
+.exampleblock>.content>:last-child{margin-bottom:0}
+.sidebarblock{border-style:solid;border-width:1px;border-color:#e0e0dc;margin-bottom:1.25em;padding:1.25em;background:#f8f8f7;-webkit-border-radius:4px;border-radius:4px}
+.sidebarblock>:first-child{margin-top:0}
+.sidebarblock>:last-child{margin-bottom:0}
+.sidebarblock>.content>.title{color:#7a2518;margin-top:0;text-align:center}
+.exampleblock>.content>:last-child>:last-child,.exampleblock>.content 
.olist>ol>li:last-child>:last-child,.exampleblock>.content 
.ulist>ul>li:last-child>:last-child,.exampleblock>.content 
.qlist>ol>li:last-child>:last-child,.sidebarblock>.content>:last-child>:last-child,.sidebarblock>.content
 .olist>ol>li:last-child>:last-child,.sidebarblock>.content 
.ulist>ul>li:last-child>:last-child,.sidebarblock>.content 
.qlist>ol>li:last-child>:last-child{margin-bottom:0}
+.literalblock pre,.listingblock pre:not(.highlight),.listingblock 
pre[class="highlight"],.listingblock pre[class^="highlight "],.listingblock 
pre.CodeRay,.listingblock pre.prettyprint{background:#f7f7f8}
+.sidebarblock .literalblock pre,.sidebarblock .listingblock 
pre:not(.highlight),.sidebarblock .listingblock 
pre[class="highlight"],.sidebarblock .listingblock pre[class^="highlight 
"],.sidebarblock .listingblock pre.CodeRay,.sidebarblock .listingblock 
pre.prettyprint{background:#f2f1f1}
+.literalblock pre,.literalblock pre[class],.listingblock pre,.listingblock 
pre[class]{-webkit-border-radius:4px;border-radius:4px;word-wrap:break-word;padding:1em;font-size:.8125em}
+.literalblock pre.nowrap,.literalblock pre[class].nowrap,.listingblock 
pre.nowrap,.listingblock 
pre[class].nowrap{overflow-x:auto;white-space:pre;word-wrap:normal}
+@media only screen and (min-width:768px){.literalblock pre,.literalblock 
pre[class],.listingblock pre,.listingblock 
pre[class]{font-size:.90625em}}@media only screen and 
(min-width:1280px){.literalblock pre,.literalblock pre[class],.listingblock 
pre,.listingblock pre[class]{font-size:1em}}.literalblock.output 
pre{color:#f7f7f8;background-color:rgba(0,0,0,.9)}
+.listingblock pre.highlightjs{padding:0}
+.listingblock 
pre.highlightjs>code{padding:1em;-webkit-border-radius:4px;border-radius:4px}
+.listingblock pre.prettyprint{border-width:0}
+.listingblock>.content{position:relative}
+.listingblock 
code[data-lang]:before{display:none;content:attr(data-lang);position:absolute;font-size:.75em;top:.425rem;right:.5rem;line-height:1;text-transform:uppercase;color:#999}
+.listingblock:hover code[data-lang]:before{display:block}
+.listingblock.terminal pre 
.command:before{content:attr(data-prompt);padding-right:.5em;color:#999}
+.listingblock.terminal pre .command:not([data-prompt]):before{content:"$"}
+table.pyhltable{border-collapse:separate;border:0;margin-bottom:0;background:none}
+table.pyhltable td{vertical-align:top;padding-top:0;padding-bottom:0}
+table.pyhltable td.code{padding-left:.75em;padding-right:0}
+pre.pygments .lineno,table.pyhltable 
td:not(.code){color:#999;padding-left:0;padding-right:.5em;border-right:1px 
solid #ddddd8}
+pre.pygments .lineno{display:inline-block;margin-right:.25em}
+table.pyhltable .linenodiv{background:none!important;padding-right:0!important}
+.quoteblock{margin:0 1em 1.25em 1.5em;display:table}
+.quoteblock>.title{margin-left:-1.5em;margin-bottom:.75em}
+.quoteblock blockquote,.quoteblock blockquote 
p{color:rgba(0,0,0,.85);font-size:1.15rem;line-height:1.75;word-spacing:.1em;letter-spacing:0;font-style:italic;text-align:justify}
+.quoteblock blockquote{margin:0;padding:0;border:0}
+.quoteblock 
blockquote:before{content:"\201c";float:left;font-size:2.75em;font-weight:bold;line-height:.6em;margin-left:-.6em;color:#7a2518;text-shadow:0
 1px 2px rgba(0,0,0,.1)}
+.quoteblock blockquote>.paragraph:last-child p{margin-bottom:0}
+.quoteblock .attribution{margin-top:.5em;margin-right:.5ex;text-align:right}
+.quoteblock .quoteblock{margin-left:0;margin-right:0;padding:.5em 
0;border-left:3px solid rgba(0,0,0,.6)}
+.quoteblock .quoteblock blockquote{padding:0 0 0 .75em}
+.quoteblock .quoteblock blockquote:before{display:none}
+.verseblock{margin:0 1em 1.25em 1em}
+.verseblock pre{font-family:"Open Sans","DejaVu 
Sans",sans;font-size:1.15rem;color:rgba(0,0,0,.85);font-weight:300;text-rendering:optimizeLegibility}
+.verseblock pre strong{font-weight:400}
+.verseblock .attribution{margin-top:1.25rem;margin-left:.5ex}
+.quoteblock .attribution,.verseblock 
.attribution{font-size:.9375em;line-height:1.45;font-style:italic}
+.quoteblock .attribution br,.verseblock .attribution br{display:none}
+.quoteblock .attribution cite,.verseblock .attribution 
cite{display:block;letter-spacing:-.05em;color:rgba(0,0,0,.6)}
+.quoteblock.abstract{margin:0 0 1.25em 0;display:block}
+.quoteblock.abstract blockquote,.quoteblock.abstract blockquote 
p{text-align:left;word-spacing:0}
+.quoteblock.abstract blockquote:before,.quoteblock.abstract blockquote 
p:first-of-type:before{display:none}
+table.tableblock{max-width:100%;border-collapse:separate}
+table.tableblock td>.paragraph:last-child p>p:last-child,table.tableblock 
th>p:last-child,table.tableblock td>p:last-child{margin-bottom:0}
+table.spread{width:100%}
+table.tableblock,th.tableblock,td.tableblock{border:0 solid #dedede}
+table.grid-all th.tableblock,table.grid-all td.tableblock{border-width:0 1px 
1px 0}
+table.grid-all tfoot>tr>th.tableblock,table.grid-all 
tfoot>tr>td.tableblock{border-width:1px 1px 0 0}
+table.grid-cols th.tableblock,table.grid-cols td.tableblock{border-width:0 1px 
0 0}
+table.grid-all *>tr>.tableblock:last-child,table.grid-cols 
*>tr>.tableblock:last-child{border-right-width:0}
+table.grid-rows th.tableblock,table.grid-rows td.tableblock{border-width:0 0 
1px 0}
+table.grid-all tbody>tr:last-child>th.tableblock,table.grid-all 
tbody>tr:last-child>td.tableblock,table.grid-all 
thead:last-child>tr>th.tableblock,table.grid-rows 
tbody>tr:last-child>th.tableblock,table.grid-rows 
tbody>tr:last-child>td.tableblock,table.grid-rows 
thead:last-child>tr>th.tableblock{border-bottom-width:0}
+table.grid-rows tfoot>tr>th.tableblock,table.grid-rows 
tfoot>tr>td.tableblock{border-width:1px 0 0 0}
+table.frame-all{border-width:1px}
+table.frame-sides{border-width:0 1px}
+table.frame-topbot{border-width:1px 0}
+th.halign-left,td.halign-left{text-align:left}
+th.halign-right,td.halign-right{text-align:right}
+th.halign-center,td.halign-center{text-align:center}
+th.valign-top,td.valign-top{vertical-align:top}
+th.valign-bottom,td.valign-bottom{vertical-align:bottom}
+th.valign-middle,td.valign-middle{vertical-align:middle}
+table thead th,table tfoot th{font-weight:bold}
+tbody tr th{display:table-cell;line-height:1.6;background:#f7f8f7}
+tbody tr th,tbody tr th p,tfoot tr th,tfoot tr th 
p{color:rgba(0,0,0,.8);font-weight:bold}
+p.tableblock>code:only-child{background:none;padding:0}
+p.tableblock{font-size:1em}
+td>div.verse{white-space:pre}
+ol{margin-left:1.75em}
+ul li ol{margin-left:1.5em}
+dl dd{margin-left:1.125em}
+dl dd:last-child,dl dd:last-child>:last-child{margin-bottom:0}
+ol>li p,ul>li p,ul dd,ol dd,.olist .olist,.ulist .ulist,.ulist .olist,.olist 
.ulist{margin-bottom:.625em}
+ul.unstyled,ol.unnumbered,ul.checklist,ul.none{list-style-type:none}
+ul.unstyled,ol.unnumbered,ul.checklist{margin-left:.625em}
+ul.checklist li>p:first-child>.fa-square-o:first-child,ul.checklist 
li>p:first-child>.fa-check-square-o:first-child{width:1em;font-size:.85em}
+ul.checklist 
li>p:first-child>input[type="checkbox"]:first-child{width:1em;position:relative;top:1px}
+ul.inline{margin:0 auto .625em 
auto;margin-left:-1.375em;margin-right:0;padding:0;list-style:none;overflow:hidden}
+ul.inline>li{list-style:none;float:left;margin-left:1.375em;display:block}
+ul.inline>li>*{display:block}
+.unstyled dl dt{font-weight:400;font-style:normal}
+ol.arabic{list-style-type:decimal}
+ol.decimal{list-style-type:decimal-leading-zero}
+ol.loweralpha{list-style-type:lower-alpha}
+ol.upperalpha{list-style-type:upper-alpha}
+ol.lowerroman{list-style-type:lower-roman}
+ol.upperroman{list-style-type:upper-roman}
+ol.lowergreek{list-style-type:lower-greek}
+.hdlist>table,.colist>table{border:0;background:none}
+.hdlist>table>tbody>tr,.colist>table>tbody>tr{background:none}
+td.hdlist1{padding-right:.75em;font-weight:bold}
+td.hdlist1,td.hdlist2{vertical-align:top}
+.literalblock+.colist,.listingblock+.colist{margin-top:-.5em}
+.colist>table tr>td:first-of-type{padding:0 .75em;line-height:1}
+.colist>table tr>td:last-of-type{padding:.25em 0}
+.thumb,.th{line-height:0;display:inline-block;border:solid 4px 
#fff;-webkit-box-shadow:0 0 0 1px #ddd;box-shadow:0 0 0 1px #ddd}
+.imageblock.left,.imageblock[style*="float: left"]{margin:.25em .625em 1.25em 
0}
+.imageblock.right,.imageblock[style*="float: right"]{margin:.25em 0 1.25em 
.625em}
+.imageblock>.title{margin-bottom:0}
+.imageblock.thumb,.imageblock.th{border-width:6px}
+.imageblock.thumb>.title,.imageblock.th>.title{padding:0 .125em}
+.image.left,.image.right{margin-top:.25em;margin-bottom:.25em;display:inline-block;line-height:0}
+.image.left{margin-right:.625em}
+.image.right{margin-left:.625em}
+a.image{text-decoration:none}
+span.footnote,span.footnoteref{vertical-align:super;font-size:.875em}
+span.footnote a,span.footnoteref a{text-decoration:none}
+span.footnote a:active,span.footnoteref a:active{text-decoration:underline}
+#footnotes{padding-top:.75em;padding-bottom:.75em;margin-bottom:.625em}
+#footnotes hr{width:20%;min-width:6.25em;margin:-.25em 0 .75em 
0;border-width:1px 0 0 0}
+#footnotes .footnote{padding:0 
.375em;line-height:1.3;font-size:.875em;margin-left:1.2em;text-indent:-1.2em;margin-bottom:.2em}
+#footnotes .footnote a:first-of-type{font-weight:bold;text-decoration:none}
+#footnotes .footnote:last-of-type{margin-bottom:0}
+#content #footnotes{margin-top:-.625em;margin-bottom:0;padding:.75em 0}
+.gist .file-data>table{border:0;background:#fff;width:100%;margin-bottom:0}
+.gist .file-data>table td.line-data{width:99%}
+div.unbreakable{page-break-inside:avoid}
+.big{font-size:larger}
+.small{font-size:smaller}
+.underline{text-decoration:underline}
+.overline{text-decoration:overline}
+.line-through{text-decoration:line-through}
+.aqua{color:#00bfbf}
+.aqua-background{background-color:#00fafa}
+.black{color:#000}
+.black-background{background-color:#000}
+.blue{color:#0000bf}
+.blue-background{background-color:#0000fa}
+.fuchsia{color:#bf00bf}
+.fuchsia-background{background-color:#fa00fa}
+.gray{color:#606060}
+.gray-background{background-color:#7d7d7d}
+.green{color:#006000}
+.green-background{background-color:#007d00}
+.lime{color:#00bf00}
+.lime-background{background-color:#00fa00}
+.maroon{color:#600000}
+.maroon-background{background-color:#7d0000}
+.navy{color:#000060}
+.navy-background{background-color:#00007d}
+.olive{color:#606000}
+.olive-background{background-color:#7d7d00}
+.purple{color:#600060}
+.purple-background{background-color:#7d007d}
+.red{color:#bf0000}
+.red-background{background-color:#fa0000}
+.silver{color:#909090}
+.silver-background{background-color:#bcbcbc}
+.teal{color:#006060}
+.teal-background{background-color:#007d7d}
+.white{color:#bfbfbf}
+.white-background{background-color:#fafafa}
+.yellow{color:#bfbf00}
+.yellow-background{background-color:#fafa00}
+span.icon>.fa{cursor:default}
+.admonitionblock td.icon [class^="fa icon-"]{font-size:2.5em;text-shadow:1px 
1px 2px rgba(0,0,0,.5);cursor:default}
+.admonitionblock td.icon .icon-note:before{content:"\f05a";color:#19407c}
+.admonitionblock td.icon .icon-tip:before{content:"\f0eb";text-shadow:1px 1px 
2px rgba(155,155,0,.8);color:#111}
+.admonitionblock td.icon .icon-warning:before{content:"\f071";color:#bf6900}
+.admonitionblock td.icon .icon-caution:before{content:"\f06d";color:#bf3400}
+.admonitionblock td.icon .icon-important:before{content:"\f06a";color:#bf0000}
+.conum[data-value]{display:inline-block;color:#fff!important;background-color:rgba(0,0,0,.8);-webkit-border-radius:100px;border-radius:100px;text-align:center;font-size:.75em;width:1.67em;height:1.67em;line-height:1.67em;font-family:"Open
 Sans","DejaVu Sans",sans-serif;font-style:normal;font-weight:bold}
+.conum[data-value] *{color:#fff!important}
+.conum[data-value]+b{display:none}
+.conum[data-value]:after{content:attr(data-value)}
+pre .conum[data-value]{position:relative;top:-.125em}
+b.conum *{color:inherit!important}
+.conum:not([data-value]):empty{display:none}
+h1,h2{letter-spacing:-.01em}
+dt,th.tableblock,td.content{text-rendering:optimizeLegibility}
+p,td.content{letter-spacing:-.01em}
+p strong,td.content strong{letter-spacing:-.005em}
+p,blockquote,dt,td.content{font-size:1.0625rem}
+p{margin-bottom:1.25rem}
+.sidebarblock p,.sidebarblock dt,.sidebarblock 
td.content,p.tableblock{font-size:1em}
+.exampleblock>.content{background-color:#fffef7;border-color:#e0e0dc;-webkit-box-shadow:0
 1px 4px #e0e0dc;box-shadow:0 1px 4px #e0e0dc}
+.print-only{display:none!important}
+@media print{@page{margin:1.25cm .75cm}
+*{-webkit-box-shadow:none!important;box-shadow:none!important;text-shadow:none!important}
+a{color:inherit!important;text-decoration:underline!important}
+a.bare,a[href^="#"],a[href^="mailto:"]{text-decoration:none!important}
+a[href^="http:"]:not(.bare):after,a[href^="https:"]:not(.bare):after{content:"("
 attr(href) ")";display:inline-block;font-size:.875em;padding-left:.25em}
+abbr[title]:after{content:" (" attr(title) ")"}
+pre,blockquote,tr,img{page-break-inside:avoid}
+thead{display:table-header-group}
+img{max-width:100%!important}
+p,blockquote,dt,td.content{font-size:1em;orphans:3;widows:3}
+h2,h3,#toctitle,.sidebarblock>.content>.title{page-break-after:avoid}
+#toc,.sidebarblock,.exampleblock>.content{background:none!important}
+#toc{border-bottom:1px solid #ddddd8!important;padding-bottom:0!important}
+.sect1{padding-bottom:0!important}
+.sect1+.sect1{border:0!important}
+#header>h1:first-child{margin-top:1.25rem}
+body.book #header{text-align:center}
+body.book #header>h1:first-child{border:0!important;margin:2.5em 0 1em 0}
+body.book #header 
.details{border:0!important;display:block;padding:0!important}
+body.book #header .details span:first-child{margin-left:0!important}
+body.book #header .details br{display:block}
+body.book #header .details br+span:before{content:none!important}
+body.book 
#toc{border:0!important;text-align:left!important;padding:0!important;margin:0!important}
+body.book #toc,body.book #preamble,body.book h1.sect0,body.book 
.sect1>h2{page-break-before:always}
+.listingblock code[data-lang]:before{display:block}
+#footer{background:none!important;padding:0 .9375em}
+#footer-text{color:rgba(0,0,0,.6)!important;font-size:.9em}
+.hide-on-print{display:none!important}
+.print-only{display:block!important}
+.hide-for-print{display:none!important}
+.show-for-print{display:inherit!important}}
+</style>
+<style>
+/* Stylesheet for CodeRay to match GitHub theme | MIT License | 
http://foundation.zurb.com */
+/*pre.CodeRay {background-color:#f7f7f8;}*/
+.CodeRay .line-numbers{border-right:1px solid #d8d8d8;padding:0 0.5em 0 .25em}
+.CodeRay 
span.line-numbers{display:inline-block;margin-right:.5em;color:rgba(0,0,0,.3)}
+.CodeRay .line-numbers strong{font-weight: normal}
+table.CodeRay{border-collapse:separate;border-spacing:0;margin-bottom:0;border:0;background:none}
+table.CodeRay td{vertical-align: top}
+table.CodeRay td.line-numbers{text-align:right}
+table.CodeRay td.line-numbers>pre{padding:0;color:rgba(0,0,0,.3)}
+table.CodeRay td.code{padding:0 0 0 .5em}
+table.CodeRay td.code>pre{padding:0}
+.CodeRay .debug{color:#fff !important;background:#000080 !important}
+.CodeRay .annotation{color:#007}
+.CodeRay .attribute-name{color:#000080}
+.CodeRay .attribute-value{color:#700}
+.CodeRay .binary{color:#509}
+.CodeRay .comment{color:#998;font-style:italic}
+.CodeRay .char{color:#04d}
+.CodeRay .char .content{color:#04d}
+.CodeRay .char .delimiter{color:#039}
+.CodeRay .class{color:#458;font-weight:bold}
+.CodeRay .complex{color:#a08}
+.CodeRay .constant,.CodeRay .predefined-constant{color:#008080}
+.CodeRay .color{color:#099}
+.CodeRay .class-variable{color:#369}
+.CodeRay .decorator{color:#b0b}
+.CodeRay .definition{color:#099}
+.CodeRay .delimiter{color:#000}
+.CodeRay .doc{color:#970}
+.CodeRay .doctype{color:#34b}
+.CodeRay .doc-string{color:#d42}
+.CodeRay .escape{color:#666}
+.CodeRay .entity{color:#800}
+.CodeRay .error{color:#808}
+.CodeRay .exception{color:inherit}
+.CodeRay .filename{color:#099}
+.CodeRay .function{color:#900;font-weight:bold}
+.CodeRay .global-variable{color:#008080}
+.CodeRay .hex{color:#058}
+.CodeRay .integer,.CodeRay .float{color:#099}
+.CodeRay .include{color:#555}
+.CodeRay .inline{color:#00}
+.CodeRay .inline .inline{background:#ccc}
+.CodeRay .inline .inline .inline{background:#bbb}
+.CodeRay .inline .inline-delimiter{color:#d14}
+.CodeRay .inline-delimiter{color:#d14}
+.CodeRay .important{color:#555;font-weight:bold}
+.CodeRay .interpreted{color:#b2b}
+.CodeRay .instance-variable{color:#008080}
+.CodeRay .label{color:#970}
+.CodeRay .local-variable{color:#963}
+.CodeRay .octal{color:#40e}
+.CodeRay .predefined{color:#369}
+.CodeRay .preprocessor{color:#579}
+.CodeRay .pseudo-class{color:#555}
+.CodeRay .directive{font-weight:bold}
+.CodeRay .type{font-weight:bold}
+.CodeRay .predefined-type{color:inherit}
+.CodeRay .reserved,.CodeRay .keyword {color:#000;font-weight:bold}
+.CodeRay .key{color:#808}
+.CodeRay .key .delimiter{color:#606}
+.CodeRay .key .char{color:#80f}
+.CodeRay .value{color:#088}
+.CodeRay .regexp .delimiter{color:#808}
+.CodeRay .regexp .content{color:#808}
+.CodeRay .regexp .modifier{color:#808}
+.CodeRay .regexp .char{color:#d14}
+.CodeRay .regexp .function{color:#404;font-weight:bold}
+.CodeRay .string{color:#d20}
+.CodeRay .string .string .string{background:#ffd0d0}
+.CodeRay .string .content{color:#d14}
+.CodeRay .string .char{color:#d14}
+.CodeRay .string .delimiter{color:#d14}
+.CodeRay .shell{color:#d14}
+.CodeRay .shell .delimiter{color:#d14}
+.CodeRay .symbol{color:#990073}
+.CodeRay .symbol .content{color:#a60}
+.CodeRay .symbol .delimiter{color:#630}
+.CodeRay .tag{color:#008080}
+.CodeRay .tag-special{color:#d70}
+.CodeRay .variable{color:#036}
+.CodeRay .insert{background:#afa}
+.CodeRay .delete{background:#faa}
+.CodeRay .change{color:#aaf;background:#007}
+.CodeRay .head{color:#f8f;background:#505}
+.CodeRay .insert .insert{color:#080}
+.CodeRay .delete .delete{color:#800}
+.CodeRay .change .change{color:#66f}
+.CodeRay .head .head{color:#f4f}
+</style>
+</head>
+<body class="article">
+<div id="header">
+<div id="toc" class="toc">
+<div id="toctitle">Table of Contents</div>
+<ul class="sectlevel2">
+<li><a href="#_integration_in_the_operating_system">Integration in the 
operating system</a></li>
+</ul>
+</div>
+</div>
+<div id="content">
+<div class="sect2">
+<h3 id="_integration_in_the_operating_system">Integration in the operating 
system</h3>
+<div class="paragraph">
+<p>In the previous chapter, we saw the different scripts and commands to 
start, stop, restart Apache Karaf.</p>
+</div>
+<div class="paragraph">
+<p>Instead of using these commands and scripts, you can integrate Apache Karaf 
directly in your operating system service control using:</p>
+</div>
+<div class="ulist">
+<ul>
+<li>
+<p><a href="#_service_wrapper">Service Wrapper</a></p>
+</li>
+<li>
+<p><a href="#_service_script_templates">Service Script Templates</a></p>
+</li>
+</ul>
+</div>
+<div class="paragraph">
+<p>The above methods allow you to directly integrate Apache Karaf:</p>
+</div>
+<div class="ulist">
+<ul>
+<li>
+<p>like a native Windows Service</p>
+</li>
+<li>
+<p>like a Unix daemon process</p>
+</li>
+</ul>
+</div>
+<div class="sect3">
+<h4 id="_service_wrapper">Service Wrapper</h4>
+<div class="paragraph">
+<p>The "Service Wrapper" correctly handles "user&#8217;s log outs" under 
Windows, service dependencies, and the ability to run services which interact 
with the desktop.</p>
+</div>
+<div class="paragraph">
+<p>It also includes advanced fault detection software which monitors an 
application.
+The "Service Wrapper" is able to detect crashes, freezes, out of memory and 
other exception events, then automatically react by restarting Apache Karaf 
with a minimum of delay.
+It guarantees the maximum possible uptime of Apache Karaf.</p>
+</div>
+<div class="sect4">
+<h5 id="_supported_platforms">Supported platforms</h5>
+<div class="ulist">
+<ul>
+<li>
+<p>Windows 8, 7, 2008 R2, 2003, Vista (32 and 64 bits architecture)</p>
+</li>
+<li>
+<p>Linux RedHat Enterprise Linux, Debian, CentOS, Fedora, Ubuntu (32 and 64 
bits architecture)</p>
+</li>
+<li>
+<p>FreeBSD 9.x, 8.x</p>
+</li>
+<li>
+<p>AIX 5.x, 6.x, 7.x (Power architecture)</p>
+</li>
+<li>
+<p>Solaris 8, 9, 10 (x86/Sparc, 32 and 64 bits architecture)</p>
+</li>
+<li>
+<p>HP-UX 10.x, 11.x (32 and 64 bits architecture)</p>
+</li>
+<li>
+<p>SGI Irix</p>
+</li>
+<li>
+<p>MacOS X</p>
+</li>
+</ul>
+</div>
+</div>
+<div class="sect4">
+<h5 id="_installation">Installation</h5>
+<div class="paragraph">
+<p>Apache Karaf Service Wrapper is an optional feature. You have to install 
the "Service Wrapper" installer first.</p>
+</div>
+<div class="paragraph">
+<p>In the console:</p>
+</div>
+<div class="listingblock">
+<div class="content">
+<pre>karaf@root()&gt; feature:install service-wrapper</pre>
+</div>
+</div>
+<div class="paragraph">
+<p>Now, you have the <code>wrapper:install</code> command, to "register" 
Apache Karaf as service/daemon on your system:</p>
+</div>
+<div class="listingblock">
+<div class="content">
+<pre>karaf@root()&gt; wrapper:install --help
+DESCRIPTION
+        wrapper:install
+
+        Install the container as a system service in the OS.
+
+SYNTAX
+        wrapper:install [options]
+
+OPTIONS
+        -d, --display
+                The display name of the service.
+                (defaults to karaf)
+        --help
+                Display this help message
+        -s, --start-type
+                Mode in which the service is installed. AUTO_START or 
DEMAND_START (Default: AUTO_START)
+                (defaults to AUTO_START)
+        -n, --name
+                The service name that will be used when installing the 
service. (Default: karaf)
+                (defaults to karaf)
+        -D, --description
+                The description of the service.
+                (defaults to )</pre>
+</div>
+</div>
+<div class="paragraph">
+<p>The <code>wrapper:install</code> command detects the running Operating 
Service and provide the service/daemon ready to be integrated in your 
system.</p>
+</div>
+<div class="paragraph">
+<p>For instance, on a Ubuntu/Debian Linux system:</p>
+</div>
+<div class="listingblock">
+<div class="content">
+<pre>karaf@root()&gt; wrapper:install
+Creating file: /opt/apache-karaf-4.0.0/bin/karaf-wrapper
+Creating file: /opt/apache-karaf-4.0.0/bin/karaf-service
+Creating file: /opt/apache-karaf-4.0.0/etc/karaf-wrapper.conf
+Creating missing directory: /opt/apache-karaf-4.0.0/lib/wrapper
+Creating file: /opt/apache-karaf-4.0.0/lib/wrapper/libwrapper.so
+Creating file: /opt/apache-karaf-4.0.0/lib/wrapper/karaf-wrapper.jar
+Creating file: /opt/apache-karaf-4.0.0/lib/wrapper/karaf-wrapper-main.jar
+
+Setup complete.  You may wish to tweak the JVM properties in the wrapper 
configuration file:
+        /opt/apache-karaf-4.0.0/etc/karaf-wrapper.conf
+before installing and starting the service.
+
+
+Ubuntu/Debian Linux system detected:
+  To install the service:
+    $ ln -s /opt/apache-karaf-4.0.0/bin/karaf-service /etc/init.d/
+
+  To start the service when the machine is rebooted:
+    $ update-rc.d karaf-service defaults
+
+  To disable starting the service when the machine is rebooted:
+    $ update-rc.d -f karaf-service remove
+
+  To start the service:
+    $ /etc/init.d/karaf-service start
+
+  To stop the service:
+    $ /etc/init.d/karaf-service stop
+
+  To uninstall the service :
+    $ rm /etc/init.d/karaf-service</pre>
+</div>
+</div>
+<div class="admonitionblock note">
+<table>
+<tr>
+<td class="icon">
+<div class="title">Note</div>
+</td>
+<td class="content">
+<div class="paragraph">
+<p>You can install the wrapper without starting Karaf using bin/shell 
wrapper:install command.</p>
+</div>
+</td>
+</tr>
+</table>
+</div>
+<div class="paragraph">
+<p>You can note that <code>wrapper:install</code> command detected the running 
operating system ("Ubuntu/Debian Linux system detected").</p>
+</div>
+<div class="paragraph">
+<p>You have a complete explanation and list of system commands to perform to 
integrate Apache Karaf in your systemV:</p>
+</div>
+<div class="listingblock">
+<div class="content">
+<pre>ln -s /opt/apache-karaf-4.0.0/bin/karaf-service /etc/init.d/
+update-rc.d karaf-service defaults</pre>
+</div>
+</div>
+<div class="paragraph">
+<p>Karaf also supports systemd service, so you can use systemctl instead of 
SystemV based service:</p>
+</div>
+<div class="listingblock">
+<div class="content">
+<pre>systemctl enable /opt/apache-karaf-4.0.2/bin/karaf.service</pre>
+</div>
+</div>
+<div class="paragraph">
+<p>This will enable Karaf at system boot.</p>
+</div>
+</div>
+<div class="sect4">
+<h5 id="_uninstall">Uninstall</h5>
+<div class="paragraph">
+<p>The <code>wrapper:install</code> provides the system commands to perform to 
uninstall the service/daemon).</p>
+</div>
+<div class="paragraph">
+<p>For instance, on Ubuntu/Debian, to uninstall the Apache Karaf service, you 
have to remove the <code>karaf-service</code> script from the runlevel 
scripts:</p>
+</div>
+<div class="listingblock">
+<div class="content">
+<pre>rm /etc/init.d/karaf-service</pre>
+</div>
+</div>
+<div class="paragraph">
+<p>If you preferred the systemd service instead of systemV:</p>
+</div>
+<div class="listingblock">
+<div class="content">
+<pre>systemctl disable karaf</pre>
+</div>
+</div>
+<div class="paragraph">
+<p>You can remove the "Wrapper Service" installer after that:</p>
+</div>
+<div class="listingblock">
+<div class="content">
+<pre>karaf@root()&gt; feature:uninstall service-wrapper</pre>
+</div>
+</div>
+</div>
+<div class="sect4">
+<h5 id="_note_for_macos_users">Note for MacOS users</h5>
+<div class="paragraph">
+<p>On MacOS you can install the service for an user or for the system.</p>
+</div>
+<div class="paragraph">
+<p>If you want to add <code>bin/org.apache.karaf.KARAF</code> as user service 
move this file into <code>~/Library/LaunchAgents/</code>:</p>
+</div>
+<div class="listingblock">
+<div class="content">
+<pre>mv bin/org.apache.karaf.KARAF.plist ~/Library/LaunchAgents/</pre>
+</div>
+</div>
+<div class="paragraph">
+<p>If you want to add org.apache.karaf.KARAF as system service move this into 
/Library/LaunchDaemons:</p>
+</div>
+<div class="listingblock">
+<div class="content">
+<pre>sudo mv bin/org.apache.karaf.KARAF.plist /Library/LaunchDaemons/</pre>
+</div>
+</div>
+<div class="paragraph">
+<p>Change owner and rights:</p>
+</div>
+<div class="listingblock">
+<div class="content">
+<pre>sudo chown root:wheel /Library/LaunchDaemons/org.apache.karaf.KARAF.plist
+sudo chmod u=rw,g=r,o=r 
/Library/LaunchDaemons/org.apache.karaf.KARAF.plist</pre>
+</div>
+</div>
+<div class="paragraph">
+<p>You can test your service:</p>
+</div>
+<div class="listingblock">
+<div class="content">
+<pre>launchctl load ~/Library/LaunchAgents/org.apache.karaf.KARAF.plist
+launchctl start org.apache.karaf.KARAF
+launchctl stop org.apache.karaf.KARAF</pre>
+</div>
+</div>
+<div class="paragraph">
+<p>Finally, after restart your session or system you can use launchctl command 
to start and stop your service.</p>
+</div>
+<div class="paragraph">
+<p>If you want to remove the service call:</p>
+</div>
+<div class="listingblock">
+<div class="content">
+<pre>launchctl remove org.apache.karaf.KARAF</pre>
+</div>
+</div>
+</div>
+<div class="sect4">
+<h5 id="_configuration">Configuration</h5>
+<div class="paragraph">
+<p>When using scripts in the Apache Karaf <code>bin</code> folder, you can 
using <code>bin/setenv</code> Unix script (<code>bin\setenv.bat</code> on 
Windows) as described in the [Start, stop, restart, connect|start-stop] section 
of the documentation.</p>
+</div>
+<div class="admonitionblock note">
+<table>
+<tr>
+<td class="icon">
+<div class="title">Note</div>
+</td>
+<td class="content">
+<div class="paragraph">
+<p>The <code>bin/setenv</code> Unix script (<code>bin\setenv.bat</code> on 
Windows) is not used by the Apache Karaf Service Wrapper.</p>
+</div>
+</td>
+</tr>
+</table>
+</div>
+<div class="paragraph">
+<p>To configure Apache Karaf started by the Service Wrapper, you have to tune 
the <code>etc/karaf-wrapper.conf</code> file. If you provided the 
<code>name</code> option to the <code>wrapper:install</code> command, the file 
is <code>etc/karaf-yourname.conf</code>.</p>
+</div>
+<div class="paragraph">
+<p>In this file, you can configure the different environment variables used by 
Apache Karaf. The Service Wrapper installer automatically populate these 
variables for you during the installation (using <code>wrapper:install</code> 
command).
+For instance:</p>
+</div>
+<div class="ulist">
+<ul>
+<li>
+<p><code>set.default.JAVA_HOME</code> is the <code>JAVA_HOME</code> used to 
start Apache Karaf (populated during Service Wrapper installation).</p>
+</li>
+<li>
+<p><code>set.default.KARAF_HOME</code> is the location of your Apache Karaf 
installation (populated during Service Wrapper installation).</p>
+</li>
+<li>
+<p><code>set.default.KARAF_BASE</code> is the location of your Apache Karaf 
installation (populated during Service Wrapper installation).</p>
+</li>
+<li>
+<p><code>set.default.KARAF_DATA</code> is the location of the Apache Karaf 
data folder (populated during Service Wrapper installation).</p>
+</li>
+<li>
+<p><code>set.default.KARAF_ETC</code> is the location of the Apache Karaf etc 
folder (populated during Service Wrapper installation).</p>
+</li>
+<li>
+<p><code>wrapper.java.additional</code> is used to pass additional arguments 
to the Java command, indexed by the argument number. The next index to use is 
11.</p>
+</li>
+<li>
+<p><code>wrapper.java.initmemory</code> is the initial JVM memory size (the 
<code>-Xms</code>). It&#8217;s not set by default (JVM default).</p>
+</li>
+<li>
+<p><code>wrapper.java.maxmemory</code> is the maximum JVM memory size (the 
<code>-Xmx</code>). It&#8217;s set to 512M by default.</p>
+</li>
+<li>
+<p><code>wrapper.logfile</code> is the location of the Service Wrapper log 
file. It&#8217;s set to <code>%KARAF_DATA%/log/wrapper.log</code> by 
default.</p>
+</li>
+<li>
+<p><code>wrapper.logfile.loglevel</code> is the Service Wrapper log level. 
It&#8217;s set to <code>INFO</code> by default.</p>
+</li>
+<li>
+<p><code>wrapper.logfile.maxsize</code> is the Service Wrapper log file 
maximum size (before rotation). It&#8217;s set to <code>10m</code> (10MB) by 
default.</p>
+</li>
+<li>
+<p><code>wrapper.logfile.maxfiles</code> is the number of Service Wrapper log 
files created (and rotated). It&#8217;s set to <code>5</code> by default.</p>
+</li>
+<li>
+<p><code>wrapper.syslog.loglevel</code> is the integration with Unix syslog 
daemon. By default, it&#8217;s set to <code>none</code> meaning disabled.</p>
+</li>
+<li>
+<p><code>wrapper.ntservice.name</code> is Windows service specific and defines 
the Windows service name. It&#8217;s set to the <code>name</code> option of the 
<code>wrapper:install</code> command, or <code>karaf</code> by default.</p>
+</li>
+<li>
+<p><code>wrapper.ntservice.displayname</code> is Windows service specific and 
defines the Windows service display name. It&#8217;s set to the 
<code>display</code> option of the <code>wrapper:install</code> command, or 
<code>karaf</code> by default.</p>
+</li>
+<li>
+<p><code>wrapper.ntservice.description</code> is Windows service specific and 
defines the Windows service description. It&#8217;s set to the 
<code>description</code> option of the <code>wrapper:install</code> command, or 
empty by default.</p>
+</li>
+<li>
+<p><code>wrapper.ntservice.starttype</code> is Windows service specific and 
defines if the Windows service is started automatically with the service, or 
just on demand. It&#8217;s set to <code>AUTO_START</code> by default, and could 
be switch to <code>DEMAND_START</code>.</p>
+</li>
+</ul>
+</div>
+<div class="paragraph">
+<p>This is a example of generated <code>etc/karaf-wrapper.conf</code> file:</p>
+</div>
+<div class="listingblock">
+<div class="content">
+<pre># ------------------------------------------------------------------------
+# Licensed to the Apache Software Foundation (ASF) under one or more
+# contributor license agreements.  See the NOTICE file distributed with
+# this work for additional information regarding copyright ownership.
+# The ASF licenses this file to You under the Apache License, Version 2.0
+# (the "License"); you may not use this file except in compliance with
+# the License.  You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+# ------------------------------------------------------------------------
+
+#********************************************************************
+# Wrapper Properties
+#********************************************************************
+set.default.JAVA_HOME=/opt/jdk/1.7.0_21
+set.default.KARAF_HOME=/opt/apache-karaf-4.0.0
+set.default.KARAF_BASE=/opt/apache-karaf-4.0.0
+set.default.KARAF_DATA=/opt/apache-karaf-4.0.0/data
+set.default.KARAF_ETC=/opt/apache-karaf-4.0.0/etc
+
+# Java Application
+wrapper.working.dir=%KARAF_BASE%
+wrapper.java.command=%JAVA_HOME%/bin/java
+wrapper.java.mainclass=org.apache.karaf.wrapper.internal.Main
+wrapper.java.classpath.1=%KARAF_HOME%/lib/karaf-wrapper.jar
+wrapper.java.classpath.2=%KARAF_HOME%/lib/karaf.jar
+wrapper.java.classpath.3=%KARAF_HOME%/lib/karaf-jaas-boot.jar
+wrapper.java.classpath.4=%KARAF_HOME%/lib/karaf-wrapper-main.jar
+wrapper.java.classpath.5=%KARAF_HOME%/lib/karaf-org.osgi.core.jar
+wrapper.java.library.path.1=%KARAF_HOME%/lib/
+
+# Application Parameters.  Add parameters as needed starting from 1
+#wrapper.app.parameter.1=
+
+# JVM Parameters
+# note that n is the parameter number starting from 1.
+wrapper.java.additional.1=-Dkaraf.home=%KARAF_HOME%
+wrapper.java.additional.2=-Dkaraf.base=%KARAF_BASE%
+wrapper.java.additional.3=-Dkaraf.data=%KARAF_DATA%
+wrapper.java.additional.4=-Dkaraf.etc=%KARAF_ETC%
+wrapper.java.additional.5=-Dcom.sun.management.jmxremote
+wrapper.java.additional.6=-Dkaraf.startLocalConsole=false
+wrapper.java.additional.7=-Dkaraf.startRemoteShell=true
+
+# Uncomment to enable jmx
+#wrapper.java.additional.n=-Dcom.sun.management.jmxremote.port=1616
+#wrapper.java.additional.n=-Dcom.sun.management.jmxremote.authenticate=false
+#wrapper.java.additional.n=-Dcom.sun.management.jmxremote.ssl=false
+
+# Uncomment to enable YourKit profiling
+#wrapper.java.additional.n=-Xrunyjpagent
+
+# Uncomment to enable remote debugging
+#wrapper.java.additional.n=-Xdebug -Xnoagent -Djava.compiler=NONE
+#wrapper.java.additional.n=-Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=5005
+
+# Initial Java Heap Size (in MB)
+#wrapper.java.initmemory=3
+
+# Maximum Java Heap Size (in MB)
+wrapper.java.maxmemory=512
+
+
+#********************************************************************
+# Wrapper Logging Properties
+#********************************************************************
+# Format of output for the console.  (See docs for formats)
+wrapper.console.format=PM
+
+# Log Level for console output.  (See docs for log levels)
+wrapper.console.loglevel=INFO
+
+# Log file to use for wrapper output logging.
+wrapper.logfile=%KARAF_DATA%/log/wrapper.log
+
+# Format of output for the log file.  (See docs for formats)
+wrapper.logfile.format=LPTM
+
+# Log Level for log file output.  (See docs for log levels)
+wrapper.logfile.loglevel=INFO
+
+# Maximum size that the log file will be allowed to grow to before
+#  the log is rolled. Size is specified in bytes.  The default value
+#  of 0, disables log rolling.  May abbreviate with the 'k' (kb) or
+#  'm' (mb) suffix.  For example: 10m = 10 megabytes.
+wrapper.logfile.maxsize=10m
+
+# Maximum number of rolled log files which will be allowed before old
+#  files are deleted.  The default value of 0 implies no limit.
+wrapper.logfile.maxfiles=5
+
+# Log Level for sys/event log output.  (See docs for log levels)
+wrapper.syslog.loglevel=NONE
+
+#********************************************************************
+# Wrapper Windows Properties
+#********************************************************************
+# Title to use when running as a console
+wrapper.console.title=karaf
+
+#********************************************************************
+# Wrapper Windows NT/2000/XP Service Properties
+#********************************************************************
+# WARNING - Do not modify any of these properties when an application
+#  using this configuration file has been installed as a service.
+#  Please uninstall the service before modifying this section.  The
+#  service can then be reinstalled.
+
+# Name of the service
+wrapper.ntservice.name=karaf
+
+# Display name of the service
+wrapper.ntservice.displayname=karaf
+
+# Description of the service
+wrapper.ntservice.description=
+
+# Service dependencies.  Add dependencies as needed starting from 1
+wrapper.ntservice.dependency.1=
+
+# Mode in which the service is installed.  AUTO_START or DEMAND_START
+wrapper.ntservice.starttype=AUTO_START
+
+# Allow the service to interact with the desktop.
+wrapper.ntservice.interactive=false</pre>
+</div>
+</div>
+</div>
+</div>
+<div class="sect3">
+<h4 id="_service_script_templates">Service Script Templates</h4>
+<div class="paragraph">
+<p>By using the "Service Script Templates", you can run Apache Karaf with the 
help of operating system specific init scripts.</p>
+</div>
+<div class="admonitionblock note">
+<table>
+<tr>
+<td class="icon">
+<div class="title">Note</div>
+</td>
+<td class="content">
+<div class="paragraph">
+<p>As opposite of Service Wrapper, the templates targeting Unix system do not 
rely on a 3th party binaries</p>
+</div>
+</td>
+</tr>
+</table>
+</div>
+<div class="paragraph">
+<p>You can find these templates under the bin/contrib directory.</p>
+</div>
+<div class="paragraph">
+<p>&#160;<br></p>
+</div>
+<div class="sect4">
+<h5 id="_unix">Unix</h5>
+<div class="paragraph">
+<p>The karaf-service.sh utility helps you to generate ready to use scripts by 
automatically identify the operating system, the default init system and the 
template to use.</p>
+</div>
+<div class="admonitionblock note">
+<table>
+<tr>
+<td class="icon">
+<div class="title">Note</div>
+</td>
+<td class="content">
+<div class="paragraph">
+<p>You may still need to customize the generated files to adapt them to your 
environment.</p>
+</div>
+</td>
+</tr>
+</table>
+</div>
+<div class="paragraph">
+<p>The utility karaf-service.sh can be configured by defining environment 
variables or by passing command line options:</p>
+</div>
+<table class="tableblock frame-all grid-all spread">
+<colgroup>
+<col style="width: 33%;">
+<col style="width: 33%;">
+<col style="width: 33%;">
+</colgroup>
+<tbody>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock">Command 
line option</p></td>
+<td class="tableblock halign-left valign-top"><p 
class="tableblock">Environment variable</p></td>
+<td class="tableblock halign-left valign-top"><p 
class="tableblock">Description</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock">-k</p></td>
+<td class="tableblock halign-left valign-top"><p 
class="tableblock">KARAF_SERVICE_PATH</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">Karaf 
installation path (mandatory)</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock">-d</p></td>
+<td class="tableblock halign-left valign-top"><p 
class="tableblock">KARAF_SERVICE_DATA</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">Karaf data 
path (default to ${KARAF_SERVICE_PATH}/data)</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock">-c</p></td>
+<td class="tableblock halign-left valign-top"><p 
class="tableblock">KARAF_SERVICE_CONF</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">Karaf 
configuration file (default to 
${KARAF_SERVICE_PATH/etc/${KARAF_SERVICE_NAME}.conf</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock">-t</p></td>
+<td class="tableblock halign-left valign-top"><p 
class="tableblock">KARAF_SERVICE_ETC</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">Karaf etc 
path (default to ${KARAF_SERVICE_PATH/etc}</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock">-p</p></td>
+<td class="tableblock halign-left valign-top"><p 
class="tableblock">KARAF_SERVICE_PIDFILE</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">Karaf pid 
path (default to ${KARAF_SERVICE_DATA}/${KARAF_SERVICE_NAME}.pid)</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock">-n</p></td>
+<td class="tableblock halign-left valign-top"><p 
class="tableblock">KARAF_SERVICE_NAME</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">Karaf 
service name (default karaf)</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock">-e</p></td>
+<td class="tableblock halign-left valign-top"><p 
class="tableblock">KARAF_ENV</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">Karaf 
environment variable (can be repeated)</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock">-u</p></td>
+<td class="tableblock halign-left valign-top"><p 
class="tableblock">KARAF_SERVICE_USER</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">Karaf 
user</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock">-g</p></td>
+<td class="tableblock halign-left valign-top"><p 
class="tableblock">KARAF_SERVICE_GROUP</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">Karaf 
group (default ${KARAF_SERVICE_USER)</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock">-l</p></td>
+<td class="tableblock halign-left valign-top"><p 
class="tableblock">KARAF_SERVICE_LOG</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">Karaf 
console log (default to 
${KARAF_SERVICE_DATA}/log/${KARAF_SERVICE_NAME}-console.log)</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock">-f</p></td>
+<td class="tableblock halign-left valign-top"><p 
class="tableblock">KARAF_SERVICE_TEMPLATE</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">Template 
file to use</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock">-x</p></td>
+<td class="tableblock halign-left valign-top"><p 
class="tableblock">KARAF_SERVICE_EXECUTABLE</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">Karaf 
executable name (defaul karaf</p></td>
+</tr>
+</tbody>
+</table>
+<div class="paragraph">
+<p>&#160;<br></p>
+</div>
+</div>
+<div class="sect4">
+<h5 id="_systemd">Systemd</h5>
+<div class="paragraph">
+<p>When karaf-service.sh detect Systemd, it generates three files:</p>
+</div>
+<div class="ulist">
+<ul>
+<li>
+<p>a systemd unit file to manage the root Apache Karaf container</p>
+</li>
+<li>
+<p>a systemd environment file with variables used by the root Apache Karaf 
container</p>
+</li>
+<li>
+<p>a systemd template unit file to manage Apache Karaf child containers</p>
+</li>
+</ul>
+</div>
+<div class="literalblock">
+<div class="title">Example</div>
+<div class="content">
+<pre>$ ./karaf-service.sh -k /opt/karaf-4 -n karaf-4
+Writing service file "/opt/karaf-4/bin/contrib/karaf-4.service"
+Writing service configuration file ""/opt/karaf-4/etc/karaf-4.conf"
+Writing service file "/opt/karaf-4/bin/contrib/[email protected]"
+
+$ cp /opt/karaf-4/bin/contrib/karaf-4.service /etc/systemd/system
+$ cp /opt/karaf-4/bin/contrib/[email protected] /etc/systemd/system
+
+$ systemctl enable karaf-4.service</pre>
+</div>
+</div>
+<div class="paragraph">
+<p>&#160;<br></p>
+</div>
+</div>
+<div class="sect4">
+<h5 id="_sysv">SysV</h5>
+<div class="paragraph">
+<p>When karaf-service.sh detect a SysV system, it generates two files:</p>
+</div>
+<div class="ulist">
+<ul>
+<li>
+<p>an init script to manage the root Apache Karaf container</p>
+</li>
+<li>
+<p>an environment file with variables used by the root Apache Karaf 
container</p>
+</li>
+</ul>
+</div>
+<div class="literalblock">
+<div class="title">Example</div>
+<div class="content">
+<pre>$ ./karaf-service.sh -k /opt/karaf-4 -n karaf-4
+Writing service file "/opt/karaf-4/bin/contrib/karaf-4"
+Writing service configuration file "/opt/karaf-4/etc/karaf-4.conf"
+
+$ ln -s /opt/karaf-4/bin/contrib/karaf-4 /etc/init.d/
+$ chkconfig karaf-4 on</pre>
+</div>
+</div>
+<div class="admonitionblock note">
+<table>
+<tr>
+<td class="icon">
+<div class="title">Note</div>
+</td>
+<td class="content">
+<div class="paragraph">
+<p>To enable service startup upon boot, please consult your operating system 
init guide</p>
+</div>
+</td>
+</tr>
+</table>
+</div>
+<div class="paragraph">
+<p>&#160;<br></p>
+</div>
+</div>
+<div class="sect4">
+<h5 id="_solaris_smf">Solaris SMF</h5>
+<div class="paragraph">
+<p>When karaf-service.sh detect a Solaris system, it generates a single 
file:</p>
+</div>
+<div class="literalblock">
+<div class="title">Example</div>
+<div class="content">
+<pre>$ ./karaf-service.sh -k /opt/karaf-4 -n karaf-4 -u lburgazz -g lburgazz
+Writing service file "/opt/karaf-4/bin/contrib/karaf-4.xml"
+
+$ svccfg validate /opt/karaf-4/bin/contrib/karaf-4.xml
+$ svccfg import /opt/karaf-4/bin/contrib/karaf-4.xml</pre>
+</div>
+</div>
+<div class="admonitionblock note">
+<table>
+<tr>
+<td class="icon">
+<div class="title">Note</div>
+</td>
+<td class="content">
+<div class="paragraph">
+<p>The generated SMF descriptor is defined as transient so the start method is 
executed once</p>
+</div>
+</td>
+</tr>
+</table>
+</div>
+<div class="paragraph">
+<p>&#160;<br></p>
+</div>
+</div>
+<div class="sect4">
+<h5 id="_windows">Windows</h5>
+<div class="paragraph">
+<p>Installation of Apache Karaf as windows service is supported through <a 
href="https://github.com/kohsuke/winsw";>winsw</a>.</p>
+</div>
+<div class="paragraph">
+<p>Steps:</p>
+</div>
+<div class="ulist">
+<ul>
+<li>
+<p>Rename karaf-service-win.exe to the service name i.e karaf-4.exe</p>
+</li>
+<li>
+<p>Rename karaf-service-win.xml to match the service name i.e. karaf-4.xml</p>
+</li>
+<li>
+<p>Customize the service descriptor to fit your needs</p>
+</li>
+<li>
+<p>Use the service executable to install/star/stop the service</p>
+</li>
+</ul>
+</div>
+<div class="literalblock">
+<div class="title">Example</div>
+<div class="content">
+<pre>C:\opt\apache-karaf-4\bin\contrib&gt; karaf-4.exe install
+C:\opt\apache-karaf-4\bin\contrib&gt; karaf-4.exe start</pre>
+</div>
+</div>
+</div>
+</div>
+</div>
+</div>
+<div id="footer">
+<div id="footer-text">
+Last updated 2017-11-22 15:12:31 +01:00
+</div>
+</div>
+</body>
+</html>
\ No newline at end of file

Modified: karaf/site/production/manual/latest/overview.html
URL: 
http://svn.apache.org/viewvc/karaf/site/production/manual/latest/overview.html?rev=1816059&r1=1816058&r2=1816059&view=diff
==============================================================================
--- karaf/site/production/manual/latest/overview.html (original)
+++ karaf/site/production/manual/latest/overview.html Wed Nov 22 14:52:25 2017
@@ -590,7 +590,7 @@ Framework, but you can easily switch to
 </div>
 <div id="footer">
 <div id="footer-text">
-Last updated 2016-04-27 13:59:28 CEST
+Last updated 2017-07-26 16:36:29 +02:00
 </div>
 </div>
 </body>

Modified: karaf/site/production/manual/latest/provisioning.html
URL: 
http://svn.apache.org/viewvc/karaf/site/production/manual/latest/provisioning.html?rev=1816059&r1=1816058&r2=1816059&view=diff
==============================================================================
--- karaf/site/production/manual/latest/provisioning.html (original)
+++ karaf/site/production/manual/latest/provisioning.html Wed Nov 22 14:52:25 
2017
@@ -687,10 +687,10 @@ not been previously installed using <cod
 <div class="ulist">
 <ul>
 <li>
-<p><code>featuresRepositories</code> contains a list (coma separated) of 
features repositories (features XML) URLs.</p>
+<p><code>featuresRepositories</code> contains a list (comma-separated) of 
features repositories (features XML) URLs.</p>
 </li>
 <li>
-<p><code>featuresBoot</code> contains a list (come separated) of features to 
install at boot.</p>
+<p><code>featuresBoot</code> contains a list (comma-separated) of features to 
install at boot.</p>
 </li>
 </ul>
 </div>
@@ -708,6 +708,21 @@ not been previously installed using <cod
 </div>
 </div>
 <div class="sect3">
+<h4 id="_overrides">Overrides</h4>
+<div class="paragraph">
+<p>Bundles defined in features can be overridden by using a file 
etc/overrides.properties.
+Each line in the file defines one override. The syntax is:
+&lt;bundle-uri&gt;[;range="[min,max)"]
+The given bundle will override all bundles in feature definitions with the 
same symbolic name if the version
+of the override is greater than the version of the overridden bundle and the 
range matches.
+If no range is given then compatibility on the micro version level is 
assumed.</p>
+</div>
+<div class="paragraph">
+<p>So for example the override 
mvn:org.ops4j.pax.logging/pax-logging-service/1.8.5
+would overide pax-logging-service 1.8.3 but not 1.8.6 or 1.7.0.</p>
+</div>
+</div>
+<div class="sect3">
 <h4 id="_feature_bundles">Feature bundles</h4>
 <div class="sect4">
 <h5 id="_start_level">Start Level</h5>
@@ -797,11 +812,14 @@ To do so, a feature can specify the <cod
 <p>The feature with the highest version available in the range will be 
installed.</p>
 </div>
 <div class="paragraph">
-<p>If a single version is specified, this version will be chosen.</p>
+<p>If a single version is specified, the range will be considered 
open-ended.</p>
 </div>
 <div class="paragraph">
 <p>If nothing is specified, the highest available will be installed.</p>
 </div>
+<div class="paragraph">
+<p>To specify an exact version, use a closed range such as 
<code>[3.1,3.1]</code>.</p>
+</div>
 <div class="sect4">
 <h5 id="_feature_prerequisites">Feature prerequisites</h5>
 <div class="paragraph">
@@ -1466,7 +1484,7 @@ feature3 won&#8217;t be installed:</p>
 </div>
 <div id="footer">
 <div id="footer-text">
-Last updated 2016-04-28 09:56:45 CEST
+Last updated 2017-11-22 15:12:31 +01:00
 </div>
 </div>
 </body>


Reply via email to