You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@karaf.apache.org by jb...@apache.org on 2019/11/25 06:35:19 UTC

svn commit: r1870356 [2/4] - in /karaf/site/production/manual/latest: ./ commands/

Modified: karaf/site/production/manual/latest/index.html
URL: http://svn.apache.org/viewvc/karaf/site/production/manual/latest/index.html?rev=1870356&r1=1870355&r2=1870356&view=diff
==============================================================================
--- karaf/site/production/manual/latest/index.html (original)
+++ karaf/site/production/manual/latest/index.html Mon Nov 25 06:35:17 2019
@@ -829,60 +829,64 @@ table.CodeRay td.code>pre{padding:0}
 <ul class="sectlevel3">
 <li><a href="#_dynamically_wrapping_jars">5.10.1. Dynamically wrapping jars</a></li>
 <li><a href="#_statically_bundling_jars">5.10.2. Statically bundling jars</a></li>
-<li><a href="#_blueprint">5.10.3. Blueprint</a></li>
-<li><a href="#_scr">5.10.4. SCR</a></li>
 </ul>
 </li>
-<li><a href="#_archetypes">5.11. Archetypes</a>
+<li><a href="#_blueprint">5.11. Blueprint</a></li>
+<li><a href="#_scr">5.12. SCR</a></li>
+<li><a href="#_archetypes">5.13. Archetypes</a>
 <ul class="sectlevel3">
-<li><a href="#_create_a_command_karaf_command_archetype">5.11.1. Create a command (karaf-command-archetype)</a></li>
-<li><a href="#_create_an_osgi_bundle_karaf_bundle_archetype">5.11.2. Create an OSGi bundle (karaf-bundle-archetype)</a></li>
-<li><a href="#_create_an_osgi_blueprint_bundle_karaf_blueprint_archetype">5.11.3. Create an OSGi blueprint bundle (karaf-blueprint-archetype)</a></li>
-<li><a href="#_create_a_features_xml_karaf_feature_archetype">5.11.4. Create a features XML (karaf-feature-archetype)</a></li>
-<li><a href="#_create_a_kar_file_karaf_kar_archetype">5.11.5. Create a KAR file (karaf-kar-archetype)</a></li>
+<li><a href="#_create_a_command_karaf_command_archetype">5.13.1. Create a command (karaf-command-archetype)</a></li>
+<li><a href="#_create_an_osgi_bundle_karaf_bundle_archetype">5.13.2. Create an OSGi bundle (karaf-bundle-archetype)</a></li>
+<li><a href="#_create_an_osgi_blueprint_bundle_karaf_blueprint_archetype">5.13.3. Create an OSGi blueprint bundle (karaf-blueprint-archetype)</a></li>
+<li><a href="#_create_a_features_xml_karaf_feature_archetype">5.13.4. Create a features XML (karaf-feature-archetype)</a></li>
+<li><a href="#_create_a_kar_file_karaf_kar_archetype">5.13.5. Create a KAR file (karaf-kar-archetype)</a></li>
 </ul>
 </li>
-<li><a href="#_security_framework">5.12. Security framework</a>
+<li><a href="#_security_framework">5.14. Security framework</a>
 <ul class="sectlevel3">
-<li><a href="#_overview_2">5.12.1. Overview</a></li>
-<li><a href="#_schema">5.12.2. Schema</a></li>
-<li><a href="#_architecture">5.12.3. Architecture</a></li>
-<li><a href="#_available_realm_and_login_modules">5.12.4. Available realm and login modules</a></li>
-<li><a href="#_encryption_service">5.12.5. Encryption service</a></li>
-<li><a href="#_role_discovery_policies">5.12.6. Role discovery policies</a></li>
-<li><a href="#_default_role_policies">5.12.7. Default role policies</a></li>
+<li><a href="#_overview_2">5.14.1. Overview</a></li>
+<li><a href="#_schema">5.14.2. Schema</a></li>
+<li><a href="#_architecture">5.14.3. Architecture</a></li>
+<li><a href="#_available_realm_and_login_modules">5.14.4. Available realm and login modules</a></li>
+<li><a href="#_encryption_service">5.14.5. Encryption service</a></li>
+<li><a href="#_role_discovery_policies">5.14.6. Role discovery policies</a></li>
+<li><a href="#_default_role_policies">5.14.7. Default role policies</a></li>
 </ul>
 </li>
-<li><a href="#_troubleshooting_debugging_profiling_and_monitoring">5.13. Troubleshooting, Debugging, Profiling, and Monitoring</a>
+<li><a href="#_troubleshooting_debugging_profiling_and_monitoring">5.15. Troubleshooting, Debugging, Profiling, and Monitoring</a>
 <ul class="sectlevel3">
-<li><a href="#_troubleshooting">5.13.1. Troubleshooting</a></li>
-<li><a href="#_debugging">5.13.2. Debugging</a></li>
-<li><a href="#_profiling">5.13.3. Profiling</a></li>
-<li><a href="#_monitoring">5.13.4. Monitoring</a></li>
-</ul>
-</li>
-<li><a href="#_writing_integration_tests">5.14. Writing integration tests</a></li>
-<li><a href="#_dump_extender">5.15. Dump extender</a>
-<ul class="sectlevel3">
-<li><a href="#_jdbc_jpa">5.15.1. JDBC &amp; JPA</a></li>
-<li><a href="#_jms_2">5.15.2. JMS</a></li>
-<li><a href="#_custom_log_appender">5.15.3. Custom log appender</a></li>
-<li><a href="#_custom_jmx_mbean">5.15.4. Custom JMX MBean</a></li>
-<li><a href="#_working_with_profiles">5.15.5. Working with profiles</a></li>
-<li><a href="#_servlet">5.15.6. Servlet</a></li>
-<li><a href="#_war">5.15.7. WAR</a></li>
-<li><a href="#_rest_service">5.15.8. REST service</a></li>
-<li><a href="#_soap_service">5.15.9. SOAP service</a></li>
-<li><a href="#_scheduling_jobs">5.15.10. Scheduling jobs</a></li>
-<li><a href="#_custom_url_handler">5.15.11. Custom URL handler</a></li>
-</ul>
-</li>
-<li><a href="#_github_contributions">5.16. Github Contributions</a>
+<li><a href="#_troubleshooting">5.15.1. Troubleshooting</a></li>
+<li><a href="#_debugging">5.15.2. Debugging</a></li>
+<li><a href="#_profiling">5.15.3. Profiling</a></li>
+<li><a href="#_monitoring">5.15.4. Monitoring</a></li>
+</ul>
+</li>
+<li><a href="#_configuration_9">5.16. Configuration</a></li>
+<li><a href="#_deployer_3">5.17. Deployer</a></li>
+<li><a href="#_dump_extender">5.18. Dump extender</a></li>
+<li><a href="#_jdbc_jpa">5.19. JDBC &amp; JPA</a></li>
+<li><a href="#_jms_2">5.20. JMS</a></li>
+<li><a href="#_custom_log_appender">5.21. Custom log appender</a></li>
+<li><a href="#_custom_jmx_mbean">5.22. Custom JMX MBean</a></li>
+<li><a href="#_working_with_profiles">5.23. Working with profiles</a></li>
+<li><a href="#_security_jaas">5.24. Security &amp; JAAS</a></li>
+<li><a href="#_servlet">5.25. Servlet</a></li>
+<li><a href="#_war">5.26. WAR</a></li>
+<li><a href="#_http_resources">5.27. HTTP Resources</a></li>
+<li><a href="#_rest_service">5.28. REST service</a></li>
+<li><a href="#_soap_service">5.29. SOAP service</a></li>
+<li><a href="#_websocket">5.30. Websocket</a></li>
+<li><a href="#_scheduler_2">5.31. Scheduler</a></li>
+<li><a href="#_quick_example_with_apache_camel">5.32. Quick example with Apache Camel</a></li>
+<li><a href="#_custom_url_handler">5.33. Custom URL handler</a></li>
+<li><a href="#_integration_tests">5.34. Integration Tests</a></li>
+<li><a href="#_distributions_docker">5.35. Distributions &amp; Docker</a></li>
+<li><a href="#_github_contributions">5.36. Github Contributions</a>
 <ul class="sectlevel3">
-<li><a href="#_introduction">5.16.1. Introduction</a></li>
-<li><a href="#_suggested_workflow">5.16.2. Suggested Workflow</a></li>
-<li><a href="#_license_reminder">5.16.3. License Reminder</a></li>
-<li><a href="#_how_to_generate_a_one_file_patch_via_throw_away_branch">5.16.4. How to Generate a One-File-Patch Via Throw-Away Branch</a></li>
+<li><a href="#_introduction">5.36.1. Introduction</a></li>
+<li><a href="#_suggested_workflow">5.36.2. Suggested Workflow</a></li>
+<li><a href="#_license_reminder">5.36.3. License Reminder</a></li>
+<li><a href="#_how_to_generate_a_one_file_patch_via_throw_away_branch">5.36.4. How to Generate a One-File-Patch Via Throw-Away Branch</a></li>
 </ul>
 </li>
 </ul>
@@ -895,11 +899,11 @@ table.CodeRay td.code>pre{padding:0}
 <h2 id="_overview">1. Overview</h2>
 <div class="sectionbody">
 <div class="paragraph">
-<p>Apache Karaf is a modern and polymorphic container.</p>
+<p>Apache Karaf is a modern polymorphic application container.</p>
 </div>
 <div class="paragraph">
-<p>Karaf can be used standalone as a container, supporting a wide range of applications and technologies.
-It also supports the "run anywhere" (on any machine with Java, cloud, docker images, &#8230;&#8203;) using the embedded mode.</p>
+<p>Karaf can be used as a standalone container, supporting a wide range of applications and technologies.
+It also supports the "run anywhere" concept (on any machine with Java, cloud, docker images, &#8230;&#8203;) using the embedded mode.</p>
 </div>
 <div class="paragraph">
 <p>It&#8217;s a lightweight, powerful, and enterprise ready platform.</p>
@@ -977,7 +981,7 @@ Framework, but you can easily switch to
 <div class="sect2">
 <h3 id="_prerequisites">2.1. Prerequisites</h3>
 <div class="paragraph">
-<p>Karaf requires a Java SE 8 or Java SE 9 environment to run. Refer to <a href="http://www.oracle.com/technetwork/java/javase/" class="bare">http://www.oracle.com/technetwork/java/javase/</a> for details on how to download and install Java SE 1.8 or greater.</p>
+<p>Karaf requires a Java SE 8 or higher to run. Refer to <a href="http://www.oracle.com/technetwork/java/javase/" class="bare">http://www.oracle.com/technetwork/java/javase/</a> for details on how to download and install Java SE 1.8 or greater.</p>
 </div>
 <div class="ulist">
 <ul>
@@ -1112,7 +1116,7 @@ OPTIONS
 </div>
 <div class="listingblock">
 <div class="content">
-<pre>feature:repo-add camel 2.20.0
+<pre>feature:repo-add camel
 feature:install deployer camel-blueprint aries-blueprint
 cat &gt; deploy/example.xml &lt;&lt;END
 &lt;blueprint xmlns="http://www.osgi.org/xmlns/blueprint/v1.0.0"&gt;
@@ -1132,8 +1136,8 @@ END</pre>
 </div>
 </div>
 <div class="paragraph">
-<p>The example installed is using Camel to start a timer every 2 seconds and output a message in the log.
-The previous commands download the Camel features descriptor and install the example feature.</p>
+<p>The example that is installed is using Camel to start a timer every 2 seconds and output a message in the log.
+The previous commands downloaded the Camel features descriptor and installed the example feature.</p>
 </div>
 <div class="paragraph">
 <p>You can display the log in the shell:</p>
@@ -1363,7 +1367,7 @@ The <code>bin</code> folder contains bot
 <p>However, in Karaf 4.x, you can use DS and new annotations and avoid the usage of a blueprint XML.</p>
 </div>
 <div class="paragraph">
-<p>The new annotations are available: @Service, @Completion, @Parsing, @Reference. It allows you to complete define the command
+<p>The new annotations are available: @Service, @Completion, @Parsing, @Reference. It allows you to completely define the command
 in the command class directly.</p>
 </div>
 <div class="paragraph">
@@ -1487,8 +1491,10 @@ As soon as you use a "new style" feature
 <p><code>karaf:assembly</code> to create a custom Karaf distribution assembly</p>
 </li>
 <li>
-<p><code>karaf:kar</code> to create a kar file
-* <code>karaf:verify</code> to verify and validate Karaf features</p>
+<p><code>karaf:kar</code> to create a kar file</p>
+</li>
+<li>
+<p><code>karaf:verify</code> to verify and validate Karaf features</p>
 </li>
 <li>
 <p><code>karaf:features-add-to-repository</code> to recursively copy features XML and content into a folder (repository)</p>
@@ -1523,7 +1529,7 @@ As soon as you use a "new style" feature
 <p>If you upgrade an existing container, <code>lib</code> and <code>system</code> folder have to be updated (just an override copy).</p>
 </div>
 <div class="paragraph">
-<p>For the <code>etc</code> folder, a diff is required as some properties changed and new configurations are available.</p>
+<p>For the <code>etc</code> folder, a diff is required as some properties have changed and new configurations are available.</p>
 </div>
 </div>
 </div>
@@ -1534,7 +1540,7 @@ As soon as you use a "new style" feature
 <div class="sect2">
 <h3 id="_installation">4.1. Installation</h3>
 <div class="paragraph">
-<p>Apache Karaf is a lightweight container, very easy to install and administrate, on both Unix and Windows platforms.</p>
+<p>Apache Karaf is a lightweight container, that is very easy to install and administer, on both Unix and Windows platforms.</p>
 </div>
 <div class="sect3">
 <h4 id="_requirements">4.1.1. Requirements</h4>
@@ -1567,7 +1573,7 @@ As soon as you use a "new style" feature
 <div class="ulist">
 <ul>
 <li>
-<p>Java SE 1.7.x or greater (<a href="http://www.oracle.com/technetwork/java/javase/" class="bare">http://www.oracle.com/technetwork/java/javase/</a>).</p>
+<p>Java SE 1.8 or greater (<a href="http://www.oracle.com/technetwork/java/javase/" class="bare">http://www.oracle.com/technetwork/java/javase/</a>).</p>
 </li>
 <li>
 <p>The JAVA_HOME environment variable must be set to the directory where the Java runtime is installed,</p>
@@ -1584,7 +1590,7 @@ As soon as you use a "new style" feature
 <p>The "default" distribution is a "ready to use" distribution, with pre-installed features.</p>
 </div>
 <div class="paragraph">
-<p>The "minimal" distribution is like the minimal distributions that you can find for most of Unix distributions.
+<p>The "minimal" distribution is like the minimal distributions that you can find for most of the Unix distributions.
 Only the core layer is packaged, most of the features and bundles are downloaded from Internet at bootstrap.
 It means that Apache Karaf minimal distribution requires an Internet connection to start correctly.
 The features provided by the "minimal" distribution are exactly the same as in the "default" distribution, the difference
@@ -1609,13 +1615,13 @@ is that the minimal distribution will do
 <div class="olist arabic">
 <ol class="arabic">
 <li>
-<p>From a browser, navigate to <a href="http://karaf.apache.org/index/community/download.html" class="bare">http://karaf.apache.org/index/community/download.html</a>.</p>
+<p>From a browser, navigate to <a href="http://karaf.apache.org/download.html" class="bare">http://karaf.apache.org/download.html</a>.</p>
 </li>
 <li>
 <p>Download Apache Karaf binary distribution in the zip format: <code>apache-karaf-4.0.0.zip</code>.</p>
 </li>
 <li>
-<p>Extract the files from the zip file into a directory of your choice (it&#8217;s the <code>KARAF_HOME</code>.</p>
+<p>Extract the files from the zip file into a directory of your choice (it&#8217;s the <code>KARAF_HOME</code>).</p>
 </li>
 </ol>
 </div>
@@ -1688,7 +1694,7 @@ is that the minimal distribution will do
 <div class="olist arabic">
 <ol class="arabic">
 <li>
-<p>From a browser, navigate to <a href="http://karaf.apache.org/index/community/download.html" class="bare">http://karaf.apache.org/index/community/download.html</a>.</p>
+<p>From a browser, navigate to <a href="http://karaf.apache.org/download.html" class="bare">http://karaf.apache.org/download.html</a>.</p>
 </li>
 <li>
 <p>Download Apache Karaf binary distribution in the tar.gz format: <code>apache-karaf-4.0.0.tar.gz</code>.</p>
@@ -1700,8 +1706,7 @@ is that the minimal distribution will do
 </div>
 <div class="listingblock">
 <div class="content">
-<pre>gunzip apache-karaf-4.0.0.tar.gz
-tar xvf apache-karaf-4.0.0.tar</pre>
+<pre>tar zxvf apache-karaf-4.0.0.tar.gz</pre>
 </div>
 </div>
 <div class="admonitionblock note">
@@ -1777,10 +1782,10 @@ apt-get install openjdk-8-jdk karaf</pre
 <h4 id="_post_installation_steps">4.1.3. Post-Installation steps</h4>
 <div class="paragraph">
 <p>Thought it is not always required, it is strongly advised to set up the <code>JAVA_HOME</code> environment property to point to the JDK you want Apache Karaf to use before starting it.
-This property is used to locate the <code>java</code> executable and should be configured to point to the home directory of the Java SE 7 installation.</p>
+This property is used to locate the <code>java</code> executable and should be configured to point to the home directory of the Java SE 8 installation.</p>
 </div>
 <div class="paragraph">
-<p>By default, all Apache Karaf files are "gather" in one directory: the <code>KARAF_HOME</code>.</p>
+<p>By default, all Apache Karaf files are "gathered" in one directory: <code>KARAF_HOME</code>.</p>
 </div>
 <div class="paragraph">
 <p>You can define your own directory layout, by using some Karaf environment variables:</p>
@@ -1820,7 +1825,7 @@ This property is used to locate the <cod
 <div class="ulist">
 <ul>
 <li>
-<p>Java SE Development Kit 1.7.x or greater (<a href="http://www.oracle.com/technetwork/java/javase/" class="bare">http://www.oracle.com/technetwork/java/javase/</a>).</p>
+<p>Java SE Development Kit 1.8 or greater (<a href="http://www.oracle.com/technetwork/java/javase/" class="bare">http://www.oracle.com/technetwork/java/javase/</a>).</p>
 </li>
 <li>
 <p>Apache Maven 3.5.0 or greater (<a href="http://maven.apache.org/download.html" class="bare">http://maven.apache.org/download.html</a>).</p>
@@ -1835,16 +1840,16 @@ This property is used to locate the <cod
 <div class="ulist">
 <ul>
 <li>
-<p>the sources distribution <code>apache-karaf-4.0.0-src.zip</code> available at <a href="http://karaf.apache.org/index/community/download.html" class="bare">http://karaf.apache.org/index/community/download.html</a>. Extract the files in the directory of your choice.</p>
+<p>the sources distribution <code>apache-karaf-4.0.0-src.zip</code> available at <a href="http://karaf.apache.org/download.html" class="bare">http://karaf.apache.org/download.html</a>. Extract the files in the directory of your choice.</p>
 </li>
 <li>
-<p>by checkout of the git repository:</p>
+<p>by checking out the git repository:</p>
 </li>
 </ul>
 </div>
 <div class="listingblock">
 <div class="content">
-<pre>git clone https://git-wip-us.apache.org/repos/asf/karaf.git karaf</pre>
+<pre>git clone https://github.com/apache/karaf karaf</pre>
 </div>
 </div>
 <div class="paragraph">
@@ -1886,16 +1891,16 @@ This property is used to locate the <cod
 <div class="ulist">
 <ul>
 <li>
-<p>the sources distribution <code>apache-karaf-4.0.0-src.tar.gz</code> available at <a href="http://karaf.apache.org/index/community/download.html" class="bare">http://karaf.apache.org/index/community/download.html</a>. Extract the files in the directory of your choice.</p>
+<p>the sources distribution <code>apache-karaf-4.0.0-src.tar.gz</code> available at <a href="http://karaf.apache.org/download.html" class="bare">http://karaf.apache.org/download.html</a>. Extract the files in the directory of your choice.</p>
 </li>
 <li>
-<p>by checkout of the git repository:</p>
+<p>by checking out the git repository:</p>
 </li>
 </ul>
 </div>
 <div class="listingblock">
 <div class="content">
-<pre>git clone https://git-wip-us.apache.org/repos/asf/karaf.git karaf</pre>
+<pre>git clone https://github.com/apache/karaf karaf</pre>
 </div>
 </div>
 <div class="paragraph">
@@ -2012,18 +2017,18 @@ using the clean option to the Karaf star
 <div class="sect3">
 <h4 id="_start">4.3.1. Start</h4>
 <div class="paragraph">
-<p>Apache Karaf supports different start mode:</p>
+<p>Apache Karaf supports different start modes:</p>
 </div>
 <div class="ulist">
 <ul>
 <li>
-<p>the "regular" mode starts Apache Karaf in foreground, including the shell console.</p>
+<p>the "regular" mode starts Apache Karaf in the foreground, including the shell console.</p>
 </li>
 <li>
-<p>the "server" mode starts Apache Karaf in foreground, without the shell console.</p>
+<p>the "server" mode starts Apache Karaf in the foreground, without the shell console.</p>
 </li>
 <li>
-<p>the "background" mode starts Apache Karaf in background.</p>
+<p>the "background" mode starts Apache Karaf in the background.</p>
 </li>
 </ul>
 </div>
@@ -2223,7 +2228,7 @@ karaf@root()&gt;</pre>
 <p><code>JAVA_MAX_PERM_MEM</code>: maximum perm memory for the JVM (default is JVM default value).</p>
 </li>
 <li>
-<p><code>KARAF_HOME</code>: the location of your Apache Karaf installation (default is found depending where you launch the startup script).</p>
+<p><code>KARAF_HOME</code>: the location of your Apache Karaf installation (default is found depending on where you launch the startup script).</p>
 </li>
 <li>
 <p><code>KARAF_BASE</code>: the location of your Apache Karaf base (default is <code>KARAF_HOME</code>).</p>
@@ -2407,19 +2412,19 @@ karaf@root()&gt;</pre>
 <div class="sect3">
 <h4 id="_stop">4.3.2. Stop</h4>
 <div class="paragraph">
-<p>When you start Apache Karaf in regular mode, the <code>logout</code> command or CTRL-D key binding logout from the console and shutdown Apache Karaf.</p>
+<p>When you start Apache Karaf in regular mode, the <code>logout</code> command or CTRL-D key binding logs out from the console and shuts Apache Karaf down.</p>
 </div>
 <div class="paragraph">
 <p>When you start Apache Karaf in background mode (with the <code>bin/start</code> Unix script (<code>bin\start.bat</code> on Windows)), you can use the <code>bin/stop</code> Unix script (<code>bin\stop.bat</code> on Windows).</p>
 </div>
 <div class="paragraph">
-<p>More generally, you can use the <code>shutdown</code> command (on the Apache Karaf console) that work in any case.</p>
+<p>More generally, you can use the <code>shutdown</code> command (on the Apache Karaf console) that works for all cases.</p>
 </div>
 <div class="paragraph">
 <p>The <code>shutdown</code> command is very similar to the the <code>shutdown</code> Unix command.</p>
 </div>
 <div class="paragraph">
-<p>To shutdown Apache Karaf now, you can simple using <code>shutdown</code>:</p>
+<p>To shutdown Apache Karaf now, you can simply use <code>shutdown</code>:</p>
 </div>
 <div class="listingblock">
 <div class="content">
@@ -2643,7 +2648,7 @@ Running ...</pre>
 <div class="sect3">
 <h4 id="_service_wrapper">4.4.1. 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>
+<p>The "Service Wrapper" correctly handles "user 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.
@@ -2726,7 +2731,7 @@ OPTIONS
 </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>
+<p>The <code>wrapper:install</code> command detects the running Operating Service and provides 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>
@@ -2794,7 +2799,7 @@ 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>
+<p>Karaf also supports the systemd service, so you can use systemctl instead of a SystemV based service:</p>
 </div>
 <div class="listingblock">
 <div class="content">
@@ -2808,7 +2813,7 @@ update-rc.d karaf-service defaults</pre>
 <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>
+<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>
@@ -2838,7 +2843,7 @@ update-rc.d karaf-service defaults</pre>
 <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>
+<p>On MacOS you can install the service for a 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>
@@ -2910,7 +2915,7 @@ launchctl stop org.apache.karaf.KARAF</p
 <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).
+<p>In this file, you can configure the different environment variables used by Apache Karaf. The Service Wrapper installer automatically populates these variables for you during the installation (using <code>wrapper:install</code> command).
 For instance:</p>
 </div>
 <div class="ulist">
@@ -2964,12 +2969,12 @@ For instance:</p>
 <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>
+<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 switched 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>
+<p>This is a example of the generated <code>etc/karaf-wrapper.conf</code> file:</p>
 </div>
 <div class="listingblock">
 <div class="content">
@@ -3125,7 +3130,7 @@ wrapper.ntservice.interactive=false</pre
 </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>
+<p>As opposed to the Service Wrapper, the templates targeting Unix systems do not rely on 3rd party binaries</p>
 </div>
 </td>
 </tr>
@@ -3140,7 +3145,7 @@ wrapper.ntservice.interactive=false</pre
 <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>
+<p>The karaf-service.sh utility helps you to generate ready to use scripts by automatically identifying the operating system, the default init system and the template to use.</p>
 </div>
 <div class="admonitionblock note">
 <table>
@@ -3240,7 +3245,7 @@ wrapper.ntservice.interactive=false</pre
 <div class="sect4">
 <h5 id="_systemd">Systemd</h5>
 <div class="paragraph">
-<p>When karaf-service.sh detect Systemd, it generates three files:</p>
+<p>When karaf-service.sh detects Systemd, it generates three files:</p>
 </div>
 <div class="ulist">
 <ul>
@@ -3276,7 +3281,7 @@ $ systemctl enable karaf-4.service</pre>
 <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>
+<p>When karaf-service.sh detects a SysV system, it generates two files:</p>
 </div>
 <div class="ulist">
 <ul>
@@ -3320,7 +3325,7 @@ $ chkconfig karaf-4 on</pre>
 <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>
+<p>When karaf-service.sh detects a Solaris system, it generates a single file:</p>
 </div>
 <div class="literalblock">
 <div class="title">Example</div>
@@ -3744,7 +3749,7 @@ log:list = { log:get ALL } ;</pre>
 <div class="sect4">
 <h5 id="_key_binding">Key binding</h5>
 <div class="paragraph">
-<p>Like on most Unix environment, Karaf console support some key bindings:</p>
+<p>Like on most Unix environments, the Karaf console supports some key bindings:</p>
 </div>
 <div class="ulist">
 <ul>
@@ -3781,7 +3786,7 @@ blueprint-web                 | 4.0.0
 <div class="sect4">
 <h5 id="_grep_more_find">Grep, more, find, &#8230;&#8203;</h5>
 <div class="paragraph">
-<p>Karaf console provides some core commands similar to Unix environment:</p>
+<p>Karaf console provides some core commands similar to a Unix environment:</p>
 </div>
 <div class="ulist">
 <ul>
@@ -4016,7 +4021,7 @@ if { $foo equals "foo" } {
 </td>
 <td class="content">
 <div class="paragraph">
-<p>The spaces are important when writing script.
+<p>The spaces are important when writing scripts.
 For instance, the following script is not correct:</p>
 </div>
 <div class="listingblock">
@@ -4042,7 +4047,7 @@ Error executing command: Cannot coerce e
 </div>
 <div class="paragraph">
 <p>As for the aliases, you can create init scripts in the <code>etc/shell.init.script</code> file.
-You can also named you script with an alias. Actually, the aliases are just scripts.</p>
+You can also name your script with an alias. Actually, the aliases are just scripts.</p>
 </div>
 <div class="paragraph">
 <p>See the Scripting section of the developers guide for details.</p>
@@ -4052,8 +4057,8 @@ You can also named you script with an al
 <div class="sect3">
 <h4 id="_security">4.5.4. Security</h4>
 <div class="paragraph">
-<p>The Apache Karaf console supports a Role Based Access Control (RBAC) security mechanism. It means that depending of
-the user connected to the console, you can define, depending of the user&#8217;s groups and roles, the permission to execute
+<p>The Apache Karaf console supports a Role Based Access Control (RBAC) security mechanism. It means that for
+the user connected to the console, you can define, depending on the user&#8217;s groups and roles, the permission to execute
 some commands, or limit the values allowed for the arguments.</p>
 </div>
 <div class="paragraph">
@@ -4081,7 +4086,7 @@ container and services running inside of
 (see the <a href="security">Security section</a> of the user guide for details).</p>
 </div>
 <div class="paragraph">
-<p>In addition of the remote console, Apache Karaf also provides a remote filesystem. This remote filesystem can be accessed
+<p>In addition to the remote console, Apache Karaf also provides a remote filesystem. This remote filesystem can be accessed
 using a SCP/SFTP client.</p>
 </div>
 <div class="sect4">
@@ -4144,9 +4149,9 @@ hostKey = ${karaf.etc}/host.key
 #hostKeyPub = ${karaf.etc}/host.key.pub
 
 #
-# Role name used for SSH access authorization
+# sshRole defines the role required to access the console through ssh
 #
-# sshRole = admin
+# sshRole = ssh
 
 #
 # Defines if the SFTP system is enabled or not in the SSH server
@@ -4188,7 +4193,7 @@ completionMode = GLOBAL</pre>
 </li>
 <li>
 <p><code>sshHost</code> is the address of the network interface where the SSHd server is bound. The default value is 0.0.0.0,
-meaning that the SSHd server is bound on all network interfaces. You can bind on a target interface providing the IP
+meaning that the SSHd server is bound on all network interfaces. You can bind on a target interface by providing the IP
 address of the network interface.</p>
 </li>
 <li>
@@ -4199,16 +4204,16 @@ private key of the SSHd server.</p>
 <p><code>sshRole</code> is the default role used for SSH access. See the [Security section|security] of this user guide for details.</p>
 </li>
 <li>
-<p><code>sftpEnabled</code> controls if the SSH server start the SFTP system or not. When enabled, Karaf SSHd supports SFTP, meaning
-that you can remotely access to the Karaf filesystem with any sftp clients.</p>
+<p><code>sftpEnabled</code> controls if the SSH server starts the SFTP system or not. When enabled, Karaf SSHd supports SFTP, meaning
+that you can remotely access the Karaf filesystem with any sftp client.</p>
 </li>
 <li>
 <p><code>keySize</code> is the key size used by the SSHd server. The possible values are 1024, 2048, 3072, or 4096. The default
-value is 1024.</p>
+value is 2048.</p>
 </li>
 <li>
-<p><code>algorithm</code> is the host key algorithm used by the SSHd server. The possible values are DSA or RSA. The default
-value is DSA.</p>
+<p><code>algorithm</code> is the host key algorithm used by the SSHd server. The possible values are DSA, EC or RSA. The default
+value is RSA.</p>
 </li>
 </ul>
 </div>
@@ -4243,10 +4248,10 @@ You can do it with:</p>
 <div class="sect5">
 <h6 id="_system_native_clients">System native clients</h6>
 <div class="paragraph">
-<p>The Apache Karaf SSHd server is a pure SSHd server, similar to OpenSSH daemon.</p>
+<p>The Apache Karaf SSHd server is a pure SSHd server, similar to a OpenSSH daemon.</p>
 </div>
 <div class="paragraph">
-<p>It means that you can use directly a SSH client from your system.</p>
+<p>It means that you can directly use a SSH client from your system.</p>
 </div>
 <div class="paragraph">
 <p>For instance, on Unix, you can directly use OpenSSH:</p>
@@ -4279,7 +4284,7 @@ karaf@root()&gt;</pre>
 <p>On Windows, you can use Putty, Kitty, etc.</p>
 </div>
 <div class="paragraph">
-<p>If you don&#8217;t have SSH client installed on your machine, you can use Apache Karaf client.</p>
+<p>If you don&#8217;t have a SSH client installed on your machine, you can use the Apache Karaf client.</p>
 </div>
 </div>
 <div class="sect5">
@@ -4360,7 +4365,7 @@ Connected</pre>
 </div>
 </div>
 <div class="paragraph">
-<p>As the <code>ssh:ssh</code> command is a pure SSH client, so it means that you can connect to a Unix OpenSSH daemon:</p>
+<p>As the <code>ssh:ssh</code> command is a pure SSH client, it means that you can connect to a Unix OpenSSH daemon:</p>
 </div>
 <div class="listingblock">
 <div class="content">
@@ -4378,10 +4383,10 @@ user@server:~$</pre>
 <div class="sect5">
 <h6 id="_apache_karaf_client">Apache Karaf client</h6>
 <div class="paragraph">
-<p>The <code>ssh:ssh</code> command requires to be run into a running Apache Karaf console.</p>
+<p>The <code>ssh:ssh</code> command can only be run in a running Apache Karaf console.</p>
 </div>
 <div class="paragraph">
-<p>For commodity, the <code>ssh:ssh</code> command is "wrapped" as a standalone client: the <code>bin/client</code> Unix script (<code>bin\client.bat</code> on Windows).</p>
+<p>For convenience, the <code>ssh:ssh</code> command is "wrapped" as a standalone client: the <code>bin/client</code> Unix script (<code>bin\client.bat</code> on Windows).</p>
 </div>
 <div class="listingblock">
 <div class="content">
@@ -4401,7 +4406,7 @@ If no commands are specified, the client
 </div>
 </div>
 <div class="paragraph">
-<p>For instance, to connect to local Apache Karaf instance (on the default SSHd server 8101 port), you can directly use
+<p>For instance, to connect to a local Apache Karaf instance (on the default SSHd server 8101 port), you can directly use
 <code>bin/client</code> Unix script (<code>bin\client.bat</code> on Windows) without any argument or option:</p>
 </div>
 <div class="listingblock">
@@ -4465,7 +4470,7 @@ Last login: Tue Dec  3 18:18:31 2013 fro
 <div class="ulist">
 <ul>
 <li>
-<p>using CTRL-D key binding. Note that CTRL-D just logout from the remote console in this case, it doesn&#8217;t shutdown
+<p>using CTRL-D key binding. Note that CTRL-D just logs out from the remote console in this case, it doesn&#8217;t shutdown
 the Apache Karaf instance (as CTRL-D does when used on a local console).</p>
 </li>
 <li>
@@ -4476,9 +4481,9 @@ the Apache Karaf instance (as CTRL-D doe
 </div>
 </div>
 <div class="sect4">
-<h5 id="_filsystem_clients">Filsystem clients</h5>
+<h5 id="_filesystem_clients">Filesystem clients</h5>
 <div class="paragraph">
-<p>Apache Karaf SSHd server also provides complete fileystem access via SSH. For security reason, the available filesystem
+<p>Apache Karaf SSHd server also provides complete fileystem access via SSH. For security reasons, the available filesystem
 is limited to <code>KARAF_BASE</code> directory.</p>
 </div>
 <div class="paragraph">
@@ -4512,7 +4517,7 @@ folder, retrieve log files, populate the
 <p>It&#8217;s probably easier to use a SFTP complient client.</p>
 </div>
 <div class="paragraph">
-<p>For instance, on Unix system, you can use <code>lftp</code> or <code>ncftp</code>:</p>
+<p>For instance, on a Unix system, you can use <code>lftp</code> or <code>ncftp</code>:</p>
 </div>
 <div class="listingblock">
 <div class="content">
@@ -4537,7 +4542,7 @@ lftp karaf@localhost:/&gt;</pre>
 </div>
 </div>
 <div class="paragraph">
-<p>You can also use graphic client like <code>filezilla</code>, <code>gftp</code>, <code>nautilus</code>, etc.</p>
+<p>You can also use a graphic client like <code>filezilla</code>, <code>gftp</code>, <code>nautilus</code>, etc.</p>
 </div>
 <div class="paragraph">
 <p>On Windows, you can use <code>filezilla</code>, <code>WinSCP</code>, etc.</p>
@@ -4546,7 +4551,7 @@ lftp karaf@localhost:/&gt;</pre>
 <div class="sect5">
 <h6 id="_apache_maven">Apache Maven</h6>
 <div class="paragraph">
-<p>Apache Karaf <code>system</code> folder is the Karaf repository, that use a Maven directory structure. It&#8217;s where Apache Karaf
+<p>The Apache Karaf <code>system</code> folder is the Karaf repository, that uses a Maven directory structure. It&#8217;s where Apache Karaf
 looks for the artifacts (bundles, features, kars, etc).</p>
 </div>
 <div class="paragraph">
@@ -4621,7 +4626,7 @@ looks for the artifacts (bundles, featur
 </ul>
 </div>
 <div class="paragraph">
-<p>It means that the applications can use any logging framework, Apache Karaf will use the central log system to manage the
+<p>It means that applications can use any logging framework, Apache Karaf will use the central log system to manage the
 loggers, appenders, etc.</p>
 </div>
 <div class="sect3">
@@ -4633,7 +4638,7 @@ loggers, appenders, etc.</p>
 <p>This file is a <a href="http://logging.apache.org/log4j/1.2/manual.html">standard Log4j configuration file</a>.</p>
 </div>
 <div class="paragraph">
-<p>You find the different Log4j element:</p>
+<p>You find the different Log4j elements:</p>
 </div>
 <div class="ulist">
 <ul>
@@ -4724,7 +4729,7 @@ messages directly to standard output. It
 </div>
 </div>
 <div class="paragraph">
-<p>The <code>out</code> appender is the default one. It&#8217;s rolling file appender that maintain and rotate 10 log files of 1MB each.
+<p>The <code>out</code> appender is the default one. It&#8217;s a rolling file appender that maintains and rotates 10 log files of 1MB each.
 The log files are located in <code>data/log/karaf.log</code> by default.</p>
 </div>
 <div class="paragraph">
@@ -4801,8 +4806,8 @@ used by the log commands (see later).</p
 <h4 id="_code_karaf_log_console_code_property">4.7.3. <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
+Java logging is used initially by the <code>Main</code> class and <code>org.apache.karaf.main.lock.Lock</code> implementations.
+In order to configure the logging level, please set the system property <code>karaf.log.console</code> to one of the standard JUL
 levels:</p>
 </div>
 <div class="ulist">
@@ -4930,7 +4935,7 @@ You can limit the number of entries to d
 </div>
 </div>
 <div class="paragraph">
-<p>You can also limit the number of entries stored and retain using the <code>size</code> property in <code>etc/org.apache.karaf.log.cfg</code> file:</p>
+<p>You can also limit the number of entries stored and retained using the <code>size</code> property in the <code>etc/org.apache.karaf.log.cfg</code> file:</p>
 </div>
 <div class="listingblock">
 <div class="content">
@@ -4947,7 +4952,7 @@ size = 500</pre>
 You can disable the coloring using the <code>--no-color</code> option.</p>
 </div>
 <div class="paragraph">
-<p>The log entries format pattern doesn&#8217;t use the conversion pattern define in <code>etc/org.ops4j.pax.logging.cfg</code> file.
+<p>The log entries format pattern doesn&#8217;t use the conversion pattern defined in <code>etc/org.ops4j.pax.logging.cfg</code> file.
 By default, it uses the <code>pattern</code> property defined in <code>etc/org.apache.karaf.log.cfg</code>.</p>
 </div>
 <div class="listingblock">
@@ -5102,7 +5107,7 @@ my.logger | INFO</pre>
 <div class="paragraph">
 <p>The purpose of the DEFAULT keyword is to delete the current level of the logger (and only the level, the other properties
 like appender are not deleted)
-in order to use the level of the logger parent (logger are hierarchical).</p>
+in order to use the level of the logger parent (loggers are hierarchical).</p>
 </div>
 <div class="paragraph">
 <p>For instance, you have defined the following loggers (in <code>etc/org.ops4j.pax.logging.cfg</code> file):</p>
@@ -5154,7 +5159,7 @@ my.logger.custom=appender2</pre>
 <p>It means that, at runtime, the <code>my.logger.custom</code> logger uses the level of its parent <code>my.logger</code>, so <code>INFO</code>.</p>
 </div>
 <div class="paragraph">
-<p>Now, if we use DEFAULT keyword with the <code>my.logger</code> logger:</p>
+<p>Now, if we use the DEFAULT keyword with the <code>my.logger</code> logger:</p>
 </div>
 <div class="listingblock">
 <div class="content">
@@ -5175,7 +5180,7 @@ my.logger.custom=appender2</pre>
 <p>So, both <code>my.logger.custom</code> and <code>my.logger</code> use the log level of the parent <code>rootLogger</code>.</p>
 </div>
 <div class="paragraph">
-<p>It&#8217;s not possible to use DEFAULT keyword with the <code>rootLogger</code> and it doesn&#8217;t have parent.</p>
+<p>It&#8217;s not possible to use the DEFAULT keyword with the <code>rootLogger</code> as it doesn&#8217;t have a parent.</p>
 </div>
 </div>
 <div class="sect4">
@@ -5240,7 +5245,7 @@ my.logger.custom=appender2</pre>
 <div class="sect4">
 <h5 id="_filters">Filters</h5>
 <div class="paragraph">
-<p>You can use filters on appender. Filters allow log events to be evaluated to determine if or how they should be published.</p>
+<p>You can use filters on an appender. Filters allow log events to be evaluated to determine if or how they should be published.</p>
 </div>
 <div class="paragraph">
 <p>Log4j provides ready to use filters:</p>
@@ -5343,13 +5348,13 @@ log4j.appender.jms=org.apache.log4j.net.
 <div class="sect4">
 <h5 id="_error_handlers">Error handlers</h5>
 <div class="paragraph">
-<p>Sometime, appenders can fail. For instance, a RollingFileAppender tries to write on the filesystem but the filesystem is full, or a JMS appender tries to send a message but the JMS broker is not there.</p>
+<p>Sometime, appenders can fail. For instance, a RollingFileAppender tries to write to the filesystem but the filesystem is full, or a JMS appender tries to send a message but the JMS broker is not there.</p>
 </div>
 <div class="paragraph">
-<p>As log can be very critical to you, you have to be inform that the log appender failed.</p>
+<p>As logs can be very critical to you, you have to be informed that the log appender failed.</p>
 </div>
 <div class="paragraph">
-<p>It&#8217;s the purpose of the error handlers. Appenders may delegate their error handling to error handlers, giving a chance to react to this appender errors.</p>
+<p>This is the purpose of the error handlers. Appenders may delegate their error handling to error handlers, giving a chance to react to the errors of the appender.</p>
 </div>
 <div class="paragraph">
 <p>You have two error handlers available:</p>
@@ -5512,11 +5517,11 @@ You can now use your appender directly i
 <p>Apache Karaf stores and loads all configuration in files located in the <code>etc</code> folder.</p>
 </div>
 <div class="paragraph">
-<p>By default, the <code>etc</code> folder is located relatively to the <code>KARAF_BASE</code> folder. You can define another location
+<p>By default, the <code>etc</code> folder is relative to the <code>KARAF_BASE</code> folder. You can define another location
 using the <code>KARAF_ETC</code> variable.</p>
 </div>
 <div class="paragraph">
-<p>Each configuration is identified by a ID (the ConfigAdmin PID). The configuration files name follows the <code>pid.cfg</code>
+<p>Each configuration is identified by a ID (the ConfigAdmin PID). The configuration file names follow the <code>pid.cfg</code>
 name convention.</p>
 </div>
 <div class="paragraph">
@@ -5550,7 +5555,7 @@ property4=${existing_property:+bar}  # "
 values can be defined for them as well using the same syntax as above.</p>
 </div>
 <div class="paragraph">
-<p>In Apache Karaf, a configuration is PID with a set of properties attached.</p>
+<p>In Apache Karaf, a configuration is a PID with a set of properties attached.</p>
 </div>
 <div class="paragraph">
 <p>Apache Karaf automatically loads all <code>*.cfg</code> files from the <code>etc</code> folder.</p>
@@ -5600,8 +5605,8 @@ Karaf starts or wait for a certain time.
 service starts.</p>
 </li>
 <li>
-<p><code>felix.fileinstall.log.level</code> is the log message verbosity level of the configuration polling service. More
-this value is high, more verbose the configuration service is.</p>
+<p><code>felix.fileinstall.log.level</code> is the log message verbosity level of the configuration polling service. The
+higher this value, the more verbose the configuration service is.</p>
 </li>
 <li>
 <p><code>felix.fileinstall.log.default</code> is the logging framework to use, <code>jul</code> meaning Java Util Logging.</p>
@@ -5615,9 +5620,9 @@ this value is high, more verbose the con
 <p>You can also do the same using the <code>config:*</code> commands or the ConfigMBean.</p>
 </div>
 <div class="paragraph">
-<p>Apache Karaf persists configuration using own persistence manager in case of when available persistence managers do not support that.
+<p>Apache Karaf persists configuration using its own persistence manager in the case of when available persistence managers do not support that.
 Configuration files are placed by default in <code>KARAF_ETC</code>, but it could be overridden via variable <code>storage</code> in <code>etc/org.apache.karaf.config.cfg</code>.
-If you want to disable karaf persistence manager, set storage variable to empty string (<code>storage=</code>).</p>
+If you want to disable the Karaf persistence manager, set the storage variable to an empty string (<code>storage=</code>).</p>
 </div>
 </div>
 <div class="sect3">
@@ -5685,7 +5690,7 @@ Properties:
 <h5 id="_code_config_edit_code"><code>config:edit</code></h5>
 <div class="paragraph">
 <p><code>config:edit</code> is the first command to do when you want to change a configuration. <code>config:edit</code> command put you
-in edition mode for a given configuration.</p>
+in edit mode for a given configuration.</p>
 </div>
 <div class="paragraph">
 <p>For instance, you can edit the <code>org.apache.karaf.log</code> configuration:</p>
@@ -5704,7 +5709,7 @@ to use other config commands (like <code
 configuration file) automatically.</p>
 </div>
 <div class="paragraph">
-<p>All changes that you do in configuration edit mode are store in your console session: the changes are not directly
+<p>All changes that you do in configuration edit mode are stored in your console session: the changes are not directly
 applied in the configuration. It allows you to "commit" the changes (see <code>config:update</code> command) or "rollback" and
 cancel your changes (see <code>config:cancel</code> command).</p>
 </div>
@@ -5730,10 +5735,10 @@ cancel your changes (see <code>config:ca
 <div class="sect4">
 <h5 id="_code_config_property_set_code"><code>config:property-set</code></h5>
 <div class="paragraph">
-<p>The <code>config:property-set</code> command update the value of a given property in the currently edited configuration.</p>
+<p>The <code>config:property-set</code> command updates the value of a given property in the currently edited configuration.</p>
 </div>
 <div class="paragraph">
-<p>For instance, to change the value of the <code>size</code> property of previously edited <code>org.apache.karaf.log</code> configuration,
+<p>For instance, to change the value of the <code>size</code> property of the previously edited <code>org.apache.karaf.log</code> configuration,
 you can do:</p>
 </div>
 <div class="listingblock">
@@ -5840,7 +5845,7 @@ Properties:
 <div class="sect4">
 <h5 id="_code_config_property_delete_code"><code>config:property-delete</code></h5>
 <div class="paragraph">
-<p>The <code>config:property-delete</code> command delete a property in the currently edited configuration.</p>
+<p>The <code>config:property-delete</code> command deletes a property in the currently edited configuration.</p>
 </div>
 <div class="paragraph">
 <p>For instance, you previously added a <code>test</code> property in <code>org.apache.karaf.log</code> configuration. To delete this <code>test</code>
@@ -5905,7 +5910,7 @@ Properties:
 </div>
 <div class="paragraph">
 <p>On the other hand, if you want to "rollback" your changes, you can use the <code>config:cancel</code> command. It will cancel all
-changes that you did, and return of the configuration state just before the <code>config:edit</code> command. The <code>config:cancel</code>
+changes that you did, and return to the configuration state just before the <code>config:edit</code> command. The <code>config:cancel</code>
 exits from the edit mode.</p>
 </div>
 <div class="paragraph">
@@ -5931,7 +5936,7 @@ Properties:
 <div class="sect4">
 <h5 id="_code_config_delete_code"><code>config:delete</code></h5>
 <div class="paragraph">
-<p>The <code>config:delete</code> command completely delete an existing configuration. You don&#8217;t have to be in edit mode to delete
+<p>The <code>config:delete</code> command completely deletes an existing configuration. You don&#8217;t have to be in edit mode to delete
 a configuration.</p>
 </div>
 <div class="paragraph">
@@ -6072,8 +6077,8 @@ located in a directory which is not avai
 <p>In addition to being less verbose, the Maven url handlers can also resolve snapshots and can use a local copy of the jar if one is available in your Maven local repository.</p>
 </div>
 <div class="paragraph">
-<p>The <code>org.ops4j.pax.url.mvn</code> bundle resolves <code>mvn</code> URLs. It can be configured using the file <code>etc/org.ops4j.pax.url.cfg</code>.
-Full reference of <code>org.ops4j.pax.url.mvn</code> PID configuration can be found <a href="https://ops4j1.jira.com/wiki/display/paxurl/Aether+Configuration">on pax-web Wiki page</a>.</p>
+<p>The <code>org.ops4j.pax.url.mvn</code> bundle resolves <code>mvn</code> URLs. It can be configured using the file <code>etc/org.ops4j.pax.url.mvn.cfg</code>.
+Full reference of <code>org.ops4j.pax.url.mvn</code> PID configuration can be found on <a href="https://ops4j1.jira.com/wiki/display/paxurl/Aether+Configuration">the pax-web Wiki page</a>.</p>
 </div>
 <div class="paragraph">
 <p>The most important property is:</p>
@@ -6091,10 +6096,10 @@ Full reference of <code>org.ops4j.pax.ur
 <div class="ulist">
 <ul>
 <li>
-<p><code>org.ops4j.pax.url.mvn.defaulRepositories</code> : Comma separated list of locations that are checked before querying remote repositories. These can be treated as read-only repositories, as nothing is written there during artifact resolution.</p>
+<p><code>org.ops4j.pax.url.mvn.defaultRepositories</code> : Comma separated list of locations that are checked before querying remote repositories. These can be treated as read-only repositories, as nothing is written there during artifact resolution.</p>
 </li>
 <li>
-<p><code>org.ops4j.pax.url.mvn.localRepository</code> : by default (implicitly) it&#8217;s standard <code>~/.m2/repository</code> location. This
+<p><code>org.ops4j.pax.url.mvn.localRepository</code> : by default (implicitly) it&#8217;s the standard <code>~/.m2/repository</code> location. This
 local repository is used to store artifacts downloaded from one of remote repositories, so at next resolution attempt
 no remote request is issued.</p>
 </li>
@@ -6118,12 +6123,12 @@ no remote request is issued.</p>
 <p>Full configuration of <code>org.ops4j.pax.url.mvn</code> bundle can be done using <code>org.ops4j.pax.url.mvn</code> PID (see <code>etc/org.ops4j.pax.url.mvn.cfg</code> file). This however may be cumbersome in some scenarios.</p>
 </div>
 <div class="paragraph">
-<p>In order to make user&#8217;s life easier and provide more <em>domain</em> oriented approach, Karaf provides several shell commands that makes Maven configuration easier.</p>
+<p>In order to make the user&#8217;s life easier and to provide more <em>domain</em> oriented approach, Karaf provides several shell commands that makes Maven configuration easier.</p>
 </div>
 <div class="sect4">
 <h5 id="_maven_summary">maven:summary</h5>
 <div class="paragraph">
-<p>This command shows quick summary about current <code>org.ops4j.pax.url.mvn</code> PID configuration. For example:</p>
+<p>This command shows a quick summary about current <code>org.ops4j.pax.url.mvn</code> PID configuration. For example:</p>
 </div>
 <div class="listingblock">
 <div class="content">
@@ -6172,7 +6177,7 @@ This option may be used only by user wit
 <div class="sect4">
 <h5 id="_maven_repository_list">maven:repository-list</h5>
 <div class="paragraph">
-<p>This command displays all configured Maven repositories - in much more readable way than plain <code>config:proplist --pid org.ops4j.pax.url.mvn</code> command does.</p>
+<p>This command displays all configured Maven repositories - in a much more readable way than the plain <code>config:proplist --pid org.ops4j.pax.url.mvn</code> command does.</p>
 </div>
 <div class="listingblock">
 <div class="content">
@@ -6198,10 +6203,10 @@ child.system.repository │ file:/dat
 <div class="ulist">
 <ul>
 <li>
-<p><code>-v</code> option shows additional information about policies related to given repository</p>
+<p><code>-v</code> option shows additional information about policies related to a given repository</p>
 </li>
 <li>
-<p><code>-x</code> shows credentials for given repository (if defined)</p>
+<p><code>-x</code> shows credentials for a given repository (if defined)</p>
 </li>
 </ul>
 </div>
@@ -6209,9 +6214,9 @@ child.system.repository │ file:/dat
 <div class="sect4">
 <h5 id="_maven_password">maven:password</h5>
 <div class="paragraph">
-<p><code>org.ops4j.pax.url.mvn</code> bundle uses Aether library to handle Maven resolution. It uses <code>settings.xml</code> file if
+<p><code>org.ops4j.pax.url.mvn</code> bundle uses the Aether library to handle Maven resolution. It uses the <code>settings.xml</code> file if
 credentials have to be used when accessing remote Maven repositories. This isn&#8217;t done by <code>org.ops4j.pax.url.mvn</code>,
-but by Aether itself (or rather maven-settings library). When dealing with <code>settings.xml</code> file, passwords that
+but by Aether itself (or rather maven-settings library). When dealing with the <code>settings.xml</code> file, passwords that
 are stored there may need to be decrypted.
 Outside of Karaf, we can use <code>mvn -emp</code> and <code>mvn -ep</code> passwords and manually configure <code>~/.m2/settings-security.xml</code>
 file.</p>
@@ -6225,7 +6230,7 @@ password</em> stored inside <code>settin
 there&#8217;s a need to use it, one has to be created manually.</p>
 </div>
 <div class="paragraph">
-<p>Here&#8217;s the way to encrypt Maven <em>master password</em> (which is used to encrypt ordinary passwords for repository or http proxies):</p>
+<p>Here&#8217;s the way to encrypt the Maven <em>master password</em> (which is used to encrypt ordinary passwords for repository or http proxies):</p>
 </div>
 <div class="listingblock">
 <div class="content">
@@ -6235,8 +6240,8 @@ Encrypted master password: {y+p9TiYuwVEH
 </div>
 </div>
 <div class="paragraph">
-<p>The above usage simply prints encrypted <em>master password</em>. We can however make this password persistent. This will
-result in new <code>settings-security.xml</code> file to be created and change in <code>org.ops4j.pax.url.mvn.security</code> property.</p>
+<p>The above usage simply prints the encrypted <em>master password</em>. We can however make this password persistent. This will
+result in the creation of a new <code>settings-security.xml</code> file and a change in the <code>org.ops4j.pax.url.mvn.security</code> property.</p>
 </div>
 <div class="admonitionblock note">
 <table>
@@ -6246,7 +6251,7 @@ result in new <code>settings-security.xm
 </td>
 <td class="content">
 Karaf maven commands will never overwrite your current <code>~/.m2/settings.xml</code> or <code>~/.m2/settings-security.xml</code> files.
-If there&#8217;s a need to change these files, maven commands will make a copy of existing file and set relevant <code>org.ops4j.pax.url.mvn</code> PID options
+If there&#8217;s a need to change these files, maven commands will make a copy of the existing file and set relevant <code>org.ops4j.pax.url.mvn</code> PID options
 to point to new locations.
 </td>
 </tr>
@@ -6303,10 +6308,10 @@ repositories are Sonatype Nexus or JFrog
 </dl>
 </div>
 <div class="paragraph">
-<p>Both kinds of repositories may be created using <code>maven:repository-add</code> command.</p>
+<p>Both kinds of repositories may be created using the <code>maven:repository-add</code> command.</p>
 </div>
 <div class="paragraph">
-<p>Here&#8217;s how default repository may be created:</p>
+<p>Here&#8217;s how a default repository may be created:</p>
 </div>
 <div class="listingblock">
 <div class="content">
@@ -6321,7 +6326,7 @@ my.default.repository   │ file:/dat
 </div>
 </div>
 <div class="paragraph">
-<p>For remote repository, we can specify more options (like credentials or update policies):</p>
+<p>For a remote repository, we can specify more options (like credentials or update policies):</p>
 </div>
 <div class="listingblock">
 <div class="content">
@@ -6339,7 +6344,7 @@ my.remote.repository            │ h
 </div>
 </div>
 <div class="paragraph">
-<p>In the above example, new <code>settings.xml</code> file was created. The reason is that although new repository itself was added
+<p>In the above example, a new <code>settings.xml</code> file was created. The reason is that although a new repository itself was added
 to <code>org.ops4j.pax.url.mvn.repositories</code> property, the credentials had to be stored in <code>settings.xml</code> file:</p>
 </div>
 <div class="listingblock">
@@ -6414,7 +6419,7 @@ be done in <code>settings.xml</code> and
 </div>
 <div class="paragraph">
 <p><code>maven:http-proxy</code> command can be used to add/change/remove HTTP proxy definition. It automatically does a copy
-of existing <code>settings.xml</code> file and changes <code>org.ops4j.pax.url.mvn.settings</code> PID property.</p>
+of the existing <code>settings.xml</code> file and changes <code>org.ops4j.pax.url.mvn.settings</code> PID property.</p>
 </div>
 <div class="paragraph">
 <p>For example:</p>
@@ -6443,7 +6448,7 @@ my.proxy │ proxy.everfree.forest â
 </div>
 </div>
 <div class="paragraph">
-<p>Here&#8217;s summary of options for <code>maven:http-proxy</code> command:</p>
+<p>Here&#8217;s a summary of options for the <code>maven:http-proxy</code> command:</p>
 </div>
 <div class="ulist">
 <ul>
@@ -6496,7 +6501,7 @@ accessed bypassing HTTP proxy</p>
 <div class="sect3">
 <h4 id="_application">4.10.1. Application</h4>
 <div class="paragraph">
-<p>By provisioning application, it means install all modules, configuration, and transitive applications.</p>
+<p>By provisioning an application, it means to install all modules, configuration, and transitive applications.</p>
 </div>
 </div>
 <div class="sect3">
@@ -6508,7 +6513,7 @@ accessed bypassing HTTP proxy</p>
 <p>An OSGi application is a set of OSGi bundles. An OSGi bundle is a regular jar file, with additional metadata in the jar MANIFEST.</p>
 </div>
 <div class="paragraph">
-<p>In OSGi, a bundle can depend to other bundles. So, it means that to deploy an OSGi application, most of the time, you have
+<p>In OSGi, a bundle can depend on other bundles. So, it means that to deploy an OSGi application, most of the time, you have
 to firstly deploy a lot of other bundles required by the application.</p>
 </div>
 <div class="paragraph">
@@ -6517,7 +6522,7 @@ to satisfy their own dependencies.</p>
 </div>
 <div class="paragraph">
 <p>More over, typically, an application requires configuration (see the [Configuration section|configuration] of the user guide).
-So, before being able to start your application, in addition of the dependency bundles, you have to create or deploy the
+So, before being able to start your application, in addition to the dependency bundles, you have to create or deploy the
 configuration.</p>
 </div>
 <div class="paragraph">
@@ -6559,10 +6564,10 @@ configuration.</p>
 </div>
 <div class="paragraph">
 <p>When you install a feature, Apache Karaf installs all resources described in the feature. It means that it will
-automatically resolves and installs all bundles, configurations, and dependency features described in the feature.</p>
+automatically resolve and install all bundles, configuration, and dependency features described in the feature.</p>
 </div>
 <div class="paragraph">
-<p>The feature resolver checks the service requirements, and install the bundles providing the services matching the requirements.
+<p>The feature resolver checks the service requirements, and installs the bundles providing the services matching the requirements.
 The default mode enables this behavior only for "new style" features repositories (basically, the features repositories XML with
 schema equal or greater to 1.3.0). It doesn&#8217;t apply for "old style" features repositories (coming from Karaf 2 or 3).</p>
 </div>
@@ -6591,7 +6596,7 @@ schema equal or greater to 1.3.0). It do
 </ul>
 </div>
 <div class="paragraph">
-<p>Additionally, a feature can also define requirements. In that case, Karaf can automatically additional bundles or features
+<p>Additionally, a feature can also define requirements. In that case, Karaf can automatically install additional bundles or features
 providing the capabilities to satisfy the requirements.</p>
 </div>
 <div class="paragraph">
@@ -6629,13 +6634,13 @@ the features repository that provides th
 for details.
 The <code>feature1</code> feature is available in version <code>1.0.0</code>, and contains two bundles. The <code>&lt;bundle/&gt;</code> element contains a URL
 to the bundle artifact (see [Artifacts repositories and URLs section|urls] for details). If you install the <code>feature1</code> feature
-(using <code>feature:install</code> or the FeatureMBean as described later), Apache Karaf will automatically installs the two bundles
+(using <code>feature:install</code> or the FeatureMBean as described later), Apache Karaf will automatically install the two bundles
 described.
 The <code>feature2</code> feature is available in version <code>1.1.0</code>, and contains a reference to the <code>feature1</code> feature and a bundle.
 The <code>&lt;feature/&gt;</code> element contains the name of a feature. A specific feature version can be defined using the <code>version</code>
 attribute to the <code>&lt;feature/&gt;</code> element (<code>&lt;feature version="1.0.0"&gt;feature1&lt;/feature&gt;</code>). If the <code>version</code> attribute is
 not specified, Apache Karaf will install the latest version available. If you install the <code>feature2</code> feature (using <code>feature:install</code>
-or the FeatureMBean as described later), Apache Karaf will automatically installs <code>feature1</code> (if it&#8217;s not already installed)
+or the FeatureMBean as described later), Apache Karaf will automatically install <code>feature1</code> (if it&#8217;s not already installed)
 and the bundle.</p>
 </div>
 <div class="paragraph">
@@ -6644,8 +6649,8 @@ and the bundle.</p>
 <div class="paragraph">
 <p>The features state is stored in the Apache Karaf cache (in the <code>KARAF_DATA</code> folder). You can restart Apache Karaf, the
 previously installed features remain installed and available after restart.
-If you do a clean restart or you delete the Apache Karaf cache (delete the <code>KARAF_DATA</code> folder), all previously features
-repositories registered and features installed will be lost: you will have to register the features repositories and install
+If you do a clean restart or you delete the Apache Karaf cache (delete the <code>KARAF_DATA</code> folder), all previously registered features
+repositories and features installed will be lost: you will have to register the features repositories and install
 features by hand again.
 To prevent this behaviour, you can specify features as boot features.</p>
 </div>
@@ -6653,11 +6658,10 @@ To prevent this behaviour, you can speci
 <div class="sect3">
 <h4 id="_boot_features">4.10.5. Boot features</h4>
 <div class="paragraph">
-<p>You can describe some features as boot features. A boot feature will be automatically install by Apache Karaf, even if it has
-not been previously installed using <code>feature:install</code> or FeatureMBean.</p>
+<p>A boot feature is automatically installed by Apache Karaf, even if it has not been previously installed using <code>feature:install</code> or FeatureMBean.</p>
 </div>
 <div class="paragraph">
-<p>Apache Karaf features configuration is located in the <code>etc/org.apache.karaf.features.cfg</code> configuration file.</p>
+<p>The Apache Karaf features configuration is located in the <code>etc/org.apache.karaf.features.cfg</code> configuration file.</p>
 </div>
 <div class="paragraph">
 <p>This configuration file contains the two properties to use to define boot features:</p>
@@ -6672,6 +6676,50 @@ not been previously installed using <cod
 </li>
 </ul>
 </div>
+<div class="exampleblock">
+<div class="content">
+<div class="paragraph">
+<p>To remove features from the <code>featuresBoot</code> list in the <code>etc/org.apache.karaf.features.cfg</code> configuration file:</p>
+</div>
+<div class="olist arabic">
+<ol class="arabic">
+<li>
+<p>Navigate to <code>etc/org.apache.karaf.features.cfg</code>.</p>
+</li>
+<li>
+<p>Remove the undesired feature.</p>
+</li>
+<li>
+<p>Restart your container.</p>
+</li>
+</ol>
+</div>
+<div class="admonitionblock note">
+<table>
+<tr>
+<td class="icon">
+<div class="title">Note</div>
+</td>
+<td class="content">
+After the restart, the features will be present in the <code>etc/org.apache.karaf.features.cfg</code> configuration file, but they will not be installed and the undesired feature or behavior will no longer be present or active.
+</td>
+</tr>
+</table>
+</div>
+<div class="admonitionblock note">
+<table>
+<tr>
+<td class="icon">
+<div class="title">Note</div>
+</td>
+<td class="content">
+Another way to clean up the <code>featuresBoot</code> is to stop Karaf, update <code>featuresBoot</code>, and remove the <strong>data</strong> folder.
+</td>
+</tr>
+</table>
+</div>
+</div>
+</div>
 </div>
 <div class="sect3">
 <h4 id="_features_upgrade">4.10.6. Features upgrade</h4>
@@ -6709,7 +6757,7 @@ would overide pax-logging-service 1.8.3
 configuration file, in the <code>karaf.startlevel.bundle</code> property.</p>
 </div>
 <div class="paragraph">
-<p>This value can be "overrided" by the <code>start-level</code> attribute of the <code>&lt;bundle/&gt;</code> element, in the features XML.</p>
+<p>This value can be "overridden" by the <code>start-level</code> attribute of the <code>&lt;bundle/&gt;</code> element, in the features XML.</p>
 </div>
 <div class="listingblock">
 <div class="content">
@@ -6720,7 +6768,7 @@ configuration file, in the <code>karaf.s
 </div>
 </div>
 <div class="paragraph">
-<p>The start-level attribute insure that the <code>myproject-dao</code> bundle is started before the bundles that use it.</p>
+<p>The start-level attribute insures that the <code>myproject-dao</code> bundle is started before the bundles that use it.</p>
 </div>
 <div class="paragraph">
 <p>Instead of using start-level, a better solution is to simply let the OSGi framework know what your dependencies are by
@@ -6761,7 +6809,7 @@ To do so, a feature can specify the <cod
 <div class="sect3">
 <h4 id="_dependent_features">4.10.9. Dependent features</h4>
 <div class="paragraph">
-<p>A feature can depend to a set of other features:</p>
+<p>A feature can depend on a set of other features:</p>
 </div>
 <div class="listingblock">
 <div class="content">
@@ -6801,7 +6849,7 @@ To do so, a feature can specify the <cod
 <div class="sect4">
 <h5 id="_feature_prerequisites">Feature prerequisites</h5>
 <div class="paragraph">
-<p>Prerequisite feature is special kind of dependency. If you will add <code>prerequisite</code> attribute to dependant feature tag then it will force installation and also activation of bundles in dependant feature before installation of actual feature. This may be handy in case if bundles enlisted in given feature are not using pre installed URL such <code>wrap</code> or <code>war</code>.</p>
+<p>A prerequisite feature is a special kind of dependency. If you add the <code>prerequisite</code> attribute to dependant feature tag then it will force installation and also activation of bundles in the dependant feature before the installation of the actual feature. This may be handy in the case that bundles enlisted in a given feature are not using pre installed URLs such as <code>wrap</code> or <code>war</code>.</p>
 </div>
 </div>
 </div>
@@ -6879,7 +6927,7 @@ the features and bundles capabilities an
 <p>The requirement specifies that the feature will work by only if the JDK version is not 1.8 (so basically 1.7).</p>
 </div>
 <div class="paragraph">
-<p>The features resolver is also able to refresh the bundles when an optional dependency is satisfy, rewiring the optional import.</p>
+<p>The features resolver is also able to refresh the bundles when an optional dependency is satisfied, rewiring the optional import.</p>
 </div>
 </div>
 </div>
@@ -6888,7 +6936,7 @@ the features and bundles capabilities an
 <div class="sect4">
 <h5 id="_code_feature_repo_list_code"><code>feature:repo-list</code></h5>
 <div class="paragraph">
-<p>The <code>feature:repo-list</code> command lists all registered features repository:</p>
+<p>The <code>feature:repo-list</code> command lists all registered feature repositories:</p>
 </div>
 <div class="listingblock">
 <div class="content">
@@ -7239,7 +7287,7 @@ Done.</pre>
 </div>
 <div class="paragraph">
 <p>If a feature contains a bundle which is already installed, by default, Apache Karaf will refresh this bundle.
-Sometime, this refresh can cause issue to other running applications. If you want to disable the auto-refresh of installed
+Sometime, this refresh can cause an issue with other running applications. If you want to disable the auto-refresh of installed
 bundles, you can use the <code>-r</code> option:</p>
 </div>
 <div class="listingblock">
@@ -7275,7 +7323,7 @@ the wiring in other bundles.</p>
 <div class="sect4">
 <h5 id="_code_feature_stop_code"><code>feature:stop</code></h5>
 <div class="paragraph">
-<p>You can also stop a feature: it means that all services provided by the feature will be stop and removed from the service registry. However, the packages
+<p>You can also stop a feature: it means that all services provided by the feature will be stopped and removed from the service registry. However, the packages
 are still available for the wiring (the bundles are in resolved state).</p>
 </div>
 </div>
@@ -7306,9 +7354,17 @@ themselves if not used by other feature.
 <p>Apache Karaf provides a features deployer.</p>
 </div>
 <div class="paragraph">
-<p>When you drop a features XML in the deploy folder, the features deployer does:
-* register the features XML as a features repository
-* the features with <code>install</code> attribute set to "auto" will be automatically installed by the features deployer.</p>
+<p>When you drop a features XML in the deploy folder, the features deployer does:</p>
+</div>
+<div class="ulist">
+<ul>
+<li>
+<p>register the features XML as a features repository</p>
+</li>
+<li>
+<p>the features with <code>install</code> attribute set to "auto" will be automatically installed by the features deployer.</p>
+</li>
+</ul>
 </div>
 <div class="paragraph">
 <p>For instance, dropping the following XML in the deploy folder will automatically install feature1 and feature2, whereas
@@ -7547,7 +7603,7 @@ felix.fileinstall.log.level     = 3</pre
 <p>The Blueprint deployer is able to handle plain Blueprint XML configuration files.</p>
 </div>
 <div class="paragraph">
-<p>The Blueprint deployer is able to transform "on the fly" any Blueprint XML file into valid OSGi bundle.</p>
+<p>The Blueprint deployer is able to transform "on the fly" any Blueprint XML file into a valid OSGi bundle.</p>
 </div>
 <div class="paragraph">
 <p>The generated OSGi MANIFEST will contain the following headers:</p>
@@ -7769,20 +7825,17 @@ For instance:</p>
 <p>As described in the <a href="provisioning">Provisioning section</a>, Apache Karaf features describe applications.</p>
 </div>
 <div class="paragraph">
-<p>A feature defines different resources to resolve using URL (for instance, bundles URLs, or configuration files URLs).
+<p>A feature defines different resources to resolve using URLs (for instance, bundles URLs, or configuration files URLs).
 As described in the [Artifacts repositories and URLs section|urls], Apache Karaf looks for artifacts (bundles,
 configuration files, &#8230;&#8203;) in the artifact repositories.
-Apache Karaf may require to download artifacts from remote repositories.</p>
+Apache Karaf may have to download artifacts from remote repositories.</p>
 </div>
 <div class="paragraph">
 <p>Apache Karaf provides a special type of artifact that package a features XML and all resources described in the features
 of this XML. This artifact is named a KAR (KAraf aRchive).</p>
 </div>
 <div class="paragraph">
-<p>A KAR file is a zip archive containing the</p>
-</div>
-<div class="paragraph">
-<p>Basically, the kar format is a jar (so a zip file) which contains a set of feature descriptor and bundle jar files.</p>
+<p>A KAR file is essentially a jar (so a zip file) which contains a set of feature descriptor and bundle jar files.</p>
 </div>
 <div class="paragraph">
 <p>A KAR file contains a <code>repository</code> folder containing:</p>
@@ -7876,16 +7929,23 @@ updating: repository/ (stored 0%)
 <p>The Apache Karaf Maven plugin provides the <code>kar</code> goal.</p>
 </div>
 <div class="paragraph">
-<p>The <code>kar</code> goal does:
-. Reads all features specified in the features XML.
-. For each feature described in the features XML, the goal resolves the bundles described in the feature.
-. The goal finally packages the features XML, and the resolved bundles in a zip file.</p>
+<p>The <code>kar</code> goal does:</p>
 </div>
-<div class="paragraph">
-<p>For instance, the following Maven POM create <code>my-kar.kar</code></p>
+<div class="olist arabic">
+<ol class="arabic">
+<li>
+<p>Reads all features specified in the features XML.</p>
+</li>
+<li>
+<p>For each feature described in the features XML, the goal resolves the bundles described in the feature.</p>
+</li>
+<li>
+<p>The goal finally packages the features XML, and the resolved bundles in a zip file.</p>
+</li>
+</ol>
 </div>
 <div class="paragraph">
-<p>For instance, you can use the following POM to create a kar:</p>
+<p>For instance, you can use the following POM to create <code>my-kar.kar</code>:</p>
 </div>
 <div class="listingblock">
 <div class="content">
@@ -7922,7 +7982,7 @@ updating: repository/ (stored 0%)
 </div>
 </div>
 <div class="paragraph">
-<p>Uou will have your kar in the <code>target</code> directory.</p>
+<p>The kar will be installed in the <code>target</code> directory.</p>
 </div>
 </div>
 <div class="sect3">
@@ -8023,7 +8083,7 @@ is supported by the <code>kar:install</c
 </div>
 </div>
 <div class="paragraph">
-<p>The KAR file is uncompressed and populated the <code>KARAF_BASE/system</code> folder.</p>
+<p>The KAR file is uncompressed and used to populate the <code>KARAF_BASE/system</code> folder.</p>
 </div>
 <div class="paragraph">
 <p>The Apache Karaf KAR service is looking for features XML files in the KAR file, registers the features XML and automatically
@@ -8036,7 +8096,7 @@ installs all features described in the f
 <div class="sect4">
 <h5 id="_code_kar_uninstall_code"><code>kar:uninstall</code></h5>
 <div class="paragraph">
-<p>The <code>kar:uninstall</code> command uninstall a KAR file (identified by a name).</p>
+<p>The <code>kar:uninstall</code> command uninstalls a KAR file (identified by a name).</p>
 </div>
 <div class="paragraph">
 <p>By uninstall, it means that:</p>
@@ -8112,7 +8172,7 @@ noAutoStartBundles=false
 </div>
 </div>
 <div class="paragraph">
-<p>By default, when the KAR deployer install features, by default, it refresh the bundles already installed.
+<p>By default, when the KAR deployer installs features, it refreshes the bundles already installed.
 You can disable the automatic bundles refresh by setting the <code>noAutoRefreshBundles</code> property to <code>false</code>.</p>
 </div>
 </div>
@@ -8185,7 +8245,7 @@ list of <code>features</code> to include
 </div>
 </div>
 <div class="paragraph">
-<p>The new instance is fresh Apache Karaf instance. It uses default configuration files set, as you install a fresh Karaf distribution.</p>
+<p>The new instance is a fresh Apache Karaf instance. It uses the same default configuration files, as when you install a fresh Karaf distribution.</p>
 </div>
 <div class="paragraph">
 <p>You can enable the verbose mode for the <code>instance:create</code> command using the <code>-v</code> option:</p>
@@ -8745,7 +8805,7 @@ authentication and/or authorization on t
 the realm.</p>
 </div>
 <div class="paragraph">
-<p>The <code>jaas:realm-list</code> command list the current defined realms:</p>
+<p>The <code>jaas:realm-list</code> command lists the current defined realms:</p>
 </div>
 <div class="listingblock">
 <div class="content">
@@ -8859,7 +8919,7 @@ The default password is <code>karaf</cod
 <p>The <code>karaf</code> user is member of one group: the <code>admingroup</code>.</p>
 </div>
 <div class="paragraph">
-<p>A group is always prefixed by <code>_g_:</code>. An entry without this prefix is an user.</p>
+<p>A group is always prefixed by <code>_g_:</code>. An entry without this prefix is a user.</p>
 </div>
 <div class="paragraph">
 <p>A group defines a set of roles. By default, the <code>admingroup</code> defines <code>group</code>, <code>admin</code>, <code>manager</code>, and <code>viewer</code>
@@ -8879,7 +8939,7 @@ roles.</p>
 <p>We already used the <code>jaas:realm-list</code> previously in this section.</p>
 </div>
 <div class="paragraph">
-<p>The <code>jaas:realm-list</code> command list the realm and the login modules for each realm:</p>
+<p>The <code>jaas:realm-list</code> command lists the realm and the login modules for each realm:</p>
 </div>
 <div class="listingblock">
 <div class="content">
@@ -8973,7 +9033,7 @@ foo       |            |</pre>
 <div class="sect5">
 <h6 id="_code_jaas_user_delete_code"><code>jaas:user-delete</code></h6>
 <div class="paragraph">
-<p>The <code>jaas:user-delete</code> command deletes an user from the currently edited login module:</p>
+<p>The <code>jaas:user-delete</code> command deletes a user from the currently edited login module:</p>
 </div>
 <div class="listingblock">
 <div class="content">
@@ -8999,7 +9059,7 @@ karaf     | admingroup | viewer</pre>
 <div class="sect5">
 <h6 id="_code_jaas_group_add_code"><code>jaas:group-add</code></h6>
 <div class="paragraph">
-<p>The <code>jaas:group-add</code> command assigns a group (and eventually creates the group) to an user in the currently edited login module:</p>
+<p>The <code>jaas:group-add</code> command assigns a group (and eventually creates the group) to a user in the currently edited login module:</p>
 </div>
 <div class="listingblock">
 <div class="content">
@@ -9010,7 +9070,7 @@ karaf     | admingroup | viewer</pre>
 <div class="sect5">
 <h6 id="_code_jaas_group_delete_code"><code>jaas:group-delete</code></h6>
 <div class="paragraph">
-<p>The <code>jaas:group-delete</code> command removes an user from a group in the currently edited login module:</p>
+<p>The <code>jaas:group-delete</code> command removes a user from a group in the currently edited login module:</p>
 </div>
 <div class="listingblock">
 <div class="content">
@@ -9132,7 +9192,7 @@ encryption.encoding = hexadecimal</pre>
 <p>If the <code>encryption.enabled</code> property is set to true, the password encryption is enabled.</p>
 </div>
 <div class="paragraph">
-<p>With encryption enabled, the password are encrypted at the first time an user logs in. The encrypted passwords are
+<p>With encryption enabled, the password are encrypted at the first time a user logs in. The encrypted passwords are
 prefixed and suffixed with <code>\{CRYPT\</code>}. To re-encrypt the password, you can reset the password in clear (in <code>etc/users.properties</code>
 file), without the <code>\{CRYPT\</code>} prefix and suffix. Apache Karaf will detect that this password is in clear (because it&#8217;s not
 prefixed and suffixed with <code>\{CRYPT\</code>}) and encrypt it again.</p>
@@ -9165,8 +9225,8 @@ or <code>base64</code>. The default valu
 <p>For the SSH layer, Karaf supports the authentication by key, allowing to login without providing the password.</p>
 </div>
 <div class="paragraph">
-<p>The SSH client (so bin/client provided by Karaf itself, or any ssh client like OpenSSH) uses a public/private keys pair that
-will identify himself on Karaf SSHD (server side).</p>
+<p>The SSH client (so bin/client provided by Karaf itself, or any ssh client like OpenSSH) uses a public/private keypair that
+will identify itself on Karaf SSHD (server side).</p>
 </div>
 <div class="paragraph">
 <p>The keys allowed to connect are stored in <code>etc/keys.properties</code> file, following the format:</p>
@@ -9342,7 +9402,7 @@ the users with the <code>manager</code>
 </li>
 <li>
 <p><code>etc/org.apache.karaf.command.acl.feature.cfg</code> configuration file defines the ACL for <code>feature:*</code> commands.
-Only the users with <code>admin</code> role can execute <code>feature:install</code> and <code>feature:uninstall</code> commands. The other <code>feature:*</code>
+Only the users with <code>admin</code> role can execute <code>feature:install</code>, <code>feature:uninstall</code>,<code>feature:start</code>, <code>feature:stop</code> and <code>feature:update</code> commands. The other <code>feature:*</code>
 commands can be executed by any user.</p>
 </li>
 <li>
@@ -9360,6 +9420,11 @@ can be executed by any user.</p>
 Only the users with <code>admin</code> role can execute <code>shell:edit</code>, <code>shell:exec</code>, <code>shell:new</code>, and <code>shell:java</code> commands.
 The other <code>shell:*</code> commands can be executed by any user.</p>
 </li>
+<li>
+<p><code>etc/org.apache.karaf.command.acl.system.cfg</code> configuration file defines the ACL for <code>system:*</code> commands.
+Only the users with <code>admin</code> role can execute <code>system:property</code> and <code>system:shutdown</code> commands. Users with <code>manager</code> role can call <code>system:start-level</code> above 100, otherwise <code>admin</code> role is required. Also users with <code>viewer</code> role can obtain the current start-level.
+The other <code>system:*</code> commands can be executed by any user.</p>
+</li>
 </ul>
 </div>
 <div class="paragraph">
@@ -9367,7 +9432,7 @@ The other <code>shell:*</code> commands
 Apache Karaf Cellar, <code>etc/org.apache.karaf.command.acl.camel.cfg</code> from Apache Camel, &#8230;&#8203;).</p>
 </div>
 <div class="paragraph">
-<p>You can fine tuned the command RBAC support by editing the <code>karaf.secured.services</code> property in <code>etc/system.properties</code>:</p>
+<p>You can fine tune the command RBAC support by editing the <code>karaf.secured.services</code> property in <code>etc/system.properties</code>:</p>
 </div>
 <div class="listingblock">
 <div class="content">
@@ -9456,7 +9521,7 @@ The <code>set*()</code> and all other <c
 <p>The WebConsole doesn&#8217;t support fine grained RBAC like console or JMX for now.</p>
 </div>
 <div class="paragraph">
-<p>All users with the <code>admin</code> role can logon the WebConsole and perform any operations.</p>
+<p>All users with the <code>admin</code> role can logon to the WebConsole and perform any operations.</p>
 </div>
 </div>
 </div>
@@ -9508,9 +9573,17 @@ policy configuration (<code>$JAVA_HOME/j
 <p>While this approach works fine, it has a global effect and requires you to configure all your servers accordingly.</p>
 </div>
 <div class="paragraph">
-<p>Apache Karaf offers a simple way to configure additional security providers:
-* put your provider jar in <code>lib/ext</code>
-* modify the <code>etc/config.properties</code> configuration file to add the following property</p>
+<p>Apache Karaf offers a simple way to configure additional security providers:</p>
+</div>
+<div class="ulist">
+<ul>
+<li>
+<p>put your provider jar in <code>lib/ext</code></p>
+</li>
+<li>
+<p>modify the <code>etc/config.properties</code> configuration file to add the following property</p>
+</li>
+</ul>
 </div>
 <div class="listingblock">
 <div class="content">
@@ -9551,7 +9624,7 @@ can access those.</p>
 <p>Official Karaf docker image are also available on Docker Hub.</p>
 </div>
 <div class="paragraph">
-<p>But, Apache Karaf also provides a docker feature allows you to:</p>
+<p>But, Apache Karaf also provides a docker feature that allows you to:</p>
 </div>
 <div class="ulist">
 <ul>
@@ -9716,7 +9789,7 @@ machine where Apache Karaf instance is r
 <div class="paragraph">
 <p>The location of the Docker backend (URL) can be specified as an option to the <code>docker:*</code> commands. By default, Karaf Docker
 feature uses <code>http://localhost:2375</code>. Please, take a look on the Docker documentation how to enable remote API using HTTP
-for Docker daemon. As short notice, you just have to enable <code>tcp</code> transport connector enabled for the docker daemon.
+for Docker daemon. In a nutshell, you just have to enable the <code>tcp</code> transport connector for the docker daemon.
 You have to do it using the <code>-H</code> option on <code>dockerd</code>:</p>
 </div>
 <div class="listingblock">
@@ -9931,7 +10004,7 @@ Id
 <div class="sect3">
 <h4 id="_provision_docker_container">4.15.13. Provision Docker container</h4>
 <div class="paragraph">
-<p>Provisioning is a specific way of creating container based on the current running Karaf instance: it creates a Docker container using the current running Apache Karaf instance <code>karaf.base</code>.</p>
+<p>Provisioning is a specific way of creating a container based on the current running Karaf instance: it creates a Docker container using the current running Apache Karaf instance <code>karaf.base</code>.</p>
 </div>
 <div class="paragraph">
 <p>You can then reuse this container to create a Docker image and to duplicate the container on another Docker backend via dockerhub.</p>
@@ -10096,7 +10169,7 @@ from a bundle repository. This makes it
 </div>
 </div>
 <div class="paragraph">
-<p>The OBR feature turns Apache Karaf as an OBR client. It means that Apache Karaf can use a OBR repository to the installation
+<p>The OBR feature turns Apache Karaf into an OBR client. It means that Apache Karaf can use a OBR repository for the installation
 of the bundles, and during the installation of the features.</p>
 </div>
 <div class="paragraph">
@@ -10180,7 +10253,7 @@ Index | OBR URL
 <div class="sect4">
 <h5 id="_code_obr_url_refresh_code"><code>obr:url-refresh</code></h5>
 <div class="paragraph">
-<p>The <code>obr:url-refresh</code> command refresh an OBR repository (reloading the URL).</p>
+<p>The <code>obr:url-refresh</code> command refreshes an OBR repository (reloading the URL).</p>
 </div>
 <div class="paragraph">
 <p>The OBR service doesn&#8217;t take "on the fly" the changes performed on an OBR repository <code>repository.xml</code>. You have to
@@ -10637,7 +10710,7 @@ So it is much more convenient than regis
 <div class="sect3">
 <h4 id="_webcontainer_jsp_servlet">4.17.2. WebContainer (JSP/Servlet)</h4>
 <div class="paragraph">
-<p>Apache Karaf can act a complete WebContainer, fully supporting JSP/Servlet specification.</p>
+<p>Apache Karaf can act as a complete WebContainer, fully supporting the JSP/Servlet specifications.</p>
 </div>
 <div class="paragraph">
 <p>Apache Karaf WebContainer supports both:</p>
@@ -10705,10 +10778,10 @@ It means that just installing the <code>
 </div>
 </div>
 <div class="paragraph">
-<p>Note: if you want to use port numbers &lt; 1024, remember you have to run with root privileges.</p>
+<p>Note: if you want to use port numbers &lt; 1024, remember you have to run with root privileges. However note that this is not a good idea from a security point of view.</p>
 </div>
 <div class="paragraph">
-<p>It&#8217;s possible to enable HTTPs "internal" connector. The first step is to create a keystore containing a server certificate.
+<p>It&#8217;s possible to enable the HTTPs "internal" connector. The first step is to create a keystore containing a server certificate.
 For instance the following command creates a keystore with a self-signed certificate:</p>
 </div>
 <div class="listingblock">
@@ -11525,7 +11598,7 @@ and the regular JNDI service.</p>
 <h5 id="_apache_aries_transaction_and_objectweb_howl">Apache Aries Transaction and ObjectWeb HOWL</h5>
 <div class="paragraph">

[... 929 lines stripped ...]