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/02/08 08:56:40 UTC

svn commit: r1853195 [8/18] - 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=1853195&r1=1853194&r2=1853195&view=diff
==============================================================================
--- karaf/site/production/manual/latest/index.html (original)
+++ karaf/site/production/manual/latest/index.html Fri Feb  8 08:56:39 2019
@@ -4,21 +4,20 @@
 <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">
+<meta name="generator" content="Asciidoctor 1.5.6.1">
 <meta name="author" content="Apache Software Foundation">
 <title>Apache Karaf Container 4.x - Documentation</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">
+<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,700">
 <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";*/
+/* Remove comment around @import statement below when using 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,700";*/
 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}
@@ -53,12 +52,11 @@ textarea{overflow:auto;vertical-align:to
 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}
+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;tab-size:4;-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased}
 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}
@@ -66,10 +64,11 @@ img{-ms-interpolation-mode:bicubic}
 .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}
+img,object,svg{display:inline-block;vertical-align:middle}
 textarea{height:auto;min-height:50px}
 select{width:100%}
+.center{margin-left:auto;margin-right:auto}
+.spread{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}
@@ -91,13 +90,12 @@ strong,b{font-weight:bold;line-height:in
 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,ol{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}
@@ -112,7 +110,8 @@ blockquote,blockquote p{line-height:1.6;
 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}
+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)}
@@ -122,13 +121,21 @@ h1,h2,h3,#toctitle,.sidebarblock>.conten
 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}
+*: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;word-wrap:break-word}
+*:not(pre)>code.nobreak{word-wrap:normal}
+*:not(pre)>code.nowrap{white-space:nowrap}
 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}
+em em{font-style:normal}
+strong strong{font-weight:400}
 .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}
+kbd{font-family:"Droid Sans Mono","DejaVu Sans Mono",monospace;display:inline-block;color:rgba(0,0,0,.8);font-size:.65em;line-height:1.45;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:0 .15em;padding:.2em .5em;vertical-align:middle;position:relative;top:-.1em;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)}
+.menuseq,.menuref{color:#000}
+.menuseq b:not(.caret),.menuref{font-weight:inherit}
+.menuseq{word-spacing:-.02em}
+.menuseq b.caret{font-size:1.25em;line-height:.8}
+.menuseq i.caret{font-weight:bold;text-align:center;width:.45em}
 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}
@@ -156,29 +163,33 @@ p a>code:hover{color:rgba(0,0,0,.9)}
 #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 li{line-height:1.3334;margin-top:.3334em}
 #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 #toctitle{margin-top:0;margin-bottom:.8rem;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}
+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}
+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}
+@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}
@@ -191,7 +202,7 @@ table.tableblock>caption.title{white-spa
 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 img{max-width:initial}
 .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}
@@ -207,7 +218,9 @@ table.tableblock #preamble>.sectionbody>
 .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)}
+@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}
@@ -217,7 +230,7 @@ table.tableblock #preamble>.sectionbody>
 .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{vertical-align:top;padding-top:0;padding-bottom:0;line-height:1.45}
 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}
@@ -238,21 +251,20 @@ table.pyhltable .linenodiv{background:no
 .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 .attribution cite,.verseblock .attribution cite{display:block;letter-spacing:-.025em;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.grid-all>thead>tr>.tableblock,table.grid-all>tbody>tr>.tableblock{border-width:0 1px 1px 0}
+table.grid-all>tfoot>tr>.tableblock{border-width:1px 1px 0 0}
+table.grid-cols>*>tr>.tableblock{border-width:0 1px 0 0}
+table.grid-rows>thead>tr>.tableblock,table.grid-rows>tbody>tr>.tableblock{border-width:0 0 1px 0}
+table.grid-rows>tfoot>tr>.tableblock{border-width:1px 0 0 0}
+table.grid-all>*>tr>.tableblock:last-child,table.grid-cols>*>tr>.tableblock:last-child{border-right-width:0}
+table.grid-all>tbody>tr:last-child>.tableblock,table.grid-all>thead:last-child>tr>.tableblock,table.grid-rows>tbody>tr:last-child>.tableblock,table.grid-rows>thead:last-child>tr>.tableblock{border-bottom-width:0}
 table.frame-all{border-width:1px}
 table.frame-sides{border-width:0 1px}
 table.frame-topbot{border-width:1px 0}
@@ -273,10 +285,12 @@ 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.checklist,ul.none,ol.none,ul.no-bullet,ol.no-bullet,ol.unnumbered,ul.unstyled,ol.unstyled{list-style-type:none}
+ul.no-bullet,ol.no-bullet,ol.unnumbered{margin-left:.625em}
+ul.unstyled,ol.unstyled{margin-left:0}
+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:1.25em;font-size:.8em;position:relative;bottom:.125em}
+ul.checklist li>p:first-child>input[type="checkbox"]:first-child{margin-right:.25em}
 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}
@@ -290,10 +304,11 @@ ol.upperroman{list-style-type:upper-roma
 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}
+td.hdlist1,td.hdlist2{vertical-align:top;padding:0 .625em}
+td.hdlist1{font-weight:bold;padding-bottom:1.25em}
 .literalblock+.colist,.listingblock+.colist{margin-top:-.5em}
-.colist>table tr>td:first-of-type{padding:0 .75em;line-height:1}
+.colist>table tr>td:first-of-type{padding:.4em .75em 0 .75em;line-height:1;vertical-align:top}
+.colist>table tr>td:first-of-type img{max-width:initial}
 .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}
@@ -304,13 +319,14 @@ td.hdlist1,td.hdlist2{vertical-align:top
 .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}
+a.image{text-decoration:none;display:inline-block}
+a.image object{pointer-events:none}
+sup.footnote,sup.footnoteref{font-size:.875em;position:static;vertical-align:super}
+sup.footnote a,sup.footnoteref a{text-decoration:none}
+sup.footnote a:active,sup.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{padding:0 .375em 0 .225em;line-height:1.3334;font-size:.875em;margin-left:1.2em;text-indent:-1.05em;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}
@@ -355,6 +371,7 @@ div.unbreakable{page-break-inside:avoid}
 .yellow{color:#bfbf00}
 .yellow-background{background-color:#fafa00}
 span.icon>.fa{cursor:default}
+a span.icon>.fa{cursor:inherit}
 .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}
@@ -368,11 +385,10 @@ span.icon>.fa{cursor:default}
 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}
+dt,th.tableblock,td.content,div.footnote{text-rendering:optimizeLegibility}
+h1,h2,p,td.content,span.alt{letter-spacing:-.01em}
+p strong,td.content strong,div.footnote strong{letter-spacing:-.005em}
+p,blockquote,dt,td.content,span.alt{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}
@@ -383,9 +399,9 @@ a{color:inherit!important;text-decoratio
 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}
+pre,blockquote,tr,img,object,svg{page-break-inside:avoid}
 thead{display:table-header-group}
-img{max-width:100%!important}
+svg{max-width:100%}
 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}
@@ -414,9 +430,9 @@ body.book #toc,body.book #preamble,body.
 /*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}
+.CodeRay .line-numbers strong{color:rgba(0,0,0,.4)}
 table.CodeRay{border-collapse:separate;border-spacing:0;margin-bottom:0;border:0;background:none}
-table.CodeRay td{vertical-align: top}
+table.CodeRay td{vertical-align: top;line-height:1.45}
 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}
@@ -451,7 +467,7 @@ table.CodeRay td.code>pre{padding:0}
 .CodeRay .hex{color:#058}
 .CodeRay .integer,.CodeRay .float{color:#099}
 .CodeRay .include{color:#555}
-.CodeRay .inline{color:#00}
+.CodeRay .inline{color:#000}
 .CodeRay .inline .inline{background:#ccc}
 .CodeRay .inline .inline .inline{background:#bbb}
 .CodeRay .inline .inline-delimiter{color:#d14}
@@ -578,7 +594,7 @@ table.CodeRay td.code>pre{padding:0}
 <ul class="sectlevel3">
 <li><a href="#_configuration_files">4.7.1. Configuration files</a></li>
 <li><a href="#_log4j_v2_support">4.7.2. Log4j v2 support</a></li>
-<li><a href="#__code_karaf_log_console_code_property">4.7.3. <code>karaf.log.console</code> property</a></li>
+<li><a href="#_code_karaf_log_console_code_property">4.7.3. <code>karaf.log.console</code> property</a></li>
 <li><a href="#_commands_2">4.7.4. Commands</a></li>
 <li><a href="#_jmx_logmbean">4.7.5. JMX LogMBean</a></li>
 <li><a href="#_advanced_configuration">4.7.6. Advanced configuration</a></li>
@@ -587,7 +603,7 @@ table.CodeRay td.code>pre{padding:0}
 <li><a href="#_configuration_3">4.8. Configuration</a>
 <ul class="sectlevel3">
 <li><a href="#_files">4.8.1. Files</a></li>
-<li><a href="#__code_config_code_commands">4.8.2. <code>config:*</code> commands</a></li>
+<li><a href="#_code_config_code_commands">4.8.2. <code>config:*</code> commands</a></li>
 <li><a href="#_jmx_configmbean">4.8.3. JMX ConfigMBean</a></li>
 </ul>
 </li>
@@ -682,7 +698,7 @@ table.CodeRay td.code>pre{padding:0}
 <ul class="sectlevel3">
 <li><a href="#_features_obr_resolver">4.16.1. Features OBR resolver</a></li>
 <li><a href="#_commands_6">4.16.2. Commands</a></li>
-<li><a href="#__code_obr_start_code">4.16.3. <code>obr:start</code></a></li>
+<li><a href="#_code_obr_start_code">4.16.3. <code>obr:start</code></a></li>
 <li><a href="#_jmx_obrmbean">4.16.4. JMX ObrMBean</a></li>
 <li><a href="#_apache_karaf_cave">4.16.5. Apache Karaf Cave</a></li>
 </ul>
@@ -723,8 +739,10 @@ table.CodeRay td.code>pre{padding:0}
 <li><a href="#_configuration_7">4.20.2. Configuration</a></li>
 <li><a href="#_schedule_a_new_job_using_the_whitebox_service_paradigm_recommended">4.20.3. Schedule a new Job using the Whitebox-Service paradigm (recommended)</a></li>
 <li><a href="#_schedule_a_new_job_using_the_gogo_shell">4.20.4. Schedule a new Job using the Gogo Shell</a></li>
-<li><a href="#_schedule_a_new_job_using_the_scheduler_service">4.20.5. Schedule a new Job using the Scheduler Service</a></li>
-<li><a href="#_update_scheduling_of_an_existing_job">4.20.6. Update scheduling of an existing job</a></li>
+<li><a href="#_schedule_a_command">4.20.5. Schedule a command</a></li>
+<li><a href="#_schedule_a_new_job_using_the_scheduler_service">4.20.6. Schedule a new Job using the Scheduler Service</a></li>
+<li><a href="#_update_scheduling_of_an_existing_job">4.20.7. Update scheduling of an existing job</a></li>
+<li><a href="#_using_shared_jobs_store">4.20.8. Using shared jobs store</a></li>
 </ul>
 </li>
 <li><a href="#_tuning">4.21. Tuning</a>
@@ -797,7 +815,7 @@ table.CodeRay td.code>pre{padding:0}
 <li><a href="#_custom_distributions">5.8. Custom distributions</a>
 <ul class="sectlevel3">
 <li><a href="#_maven_assembly">5.8.1. Maven assembly</a></li>
-<li><a href="#__deprecated_old_style_maven_assembly">5.8.2. (deprecated old style) Maven assembly</a></li>
+<li><a href="#_deprecated_old_style_maven_assembly">5.8.2. (deprecated old style) Maven assembly</a></li>
 </ul>
 </li>
 <li><a href="#_creating_bundles">5.9. Creating Bundles</a>
@@ -1468,10 +1486,8 @@ 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</p>
-</li>
-<li>
-<p><code>karaf:verify</code> to verify and validate Karaf features</p>
+<p><code>karaf:kar</code> to create a kar file
+* <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>
@@ -1806,7 +1822,7 @@ This property is used to locate the <cod
 <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>
 </li>
 <li>
-<p>Apache Maven 3.0.4 or greater (<a href="http://maven.apache.org/download.html" class="bare">http://maven.apache.org/download.html</a>).</p>
+<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>
 </li>
 </ul>
 </div>
@@ -3144,9 +3160,9 @@ wrapper.ntservice.interactive=false</pre
 </div>
 <table class="tableblock frame-all grid-all spread">
 <colgroup>
-<col style="width: 33%;">
-<col style="width: 33%;">
-<col style="width: 33%;">
+<col style="width: 33.3333%;">
+<col style="width: 33.3333%;">
+<col style="width: 33.3334%;">
 </colgroup>
 <tbody>
 <tr>
@@ -4122,7 +4138,6 @@ hostKey = ${karaf.etc}/host.key
 
 #
 # Role name used for SSH access authorization
-# If not set, this defaults to the ${karaf.admin.role} configured in etc/system.properties
 #
 # sshRole = admin
 
@@ -4174,8 +4189,7 @@ address of the network interface.</p>
 and private key pair of the SSHd server.</p>
 </li>
 <li>
-<p><code>sshRole</code> is the default role used for SSH access. The default value is the value of <code>karaf.admin.role</code> property
-defined in <code>etc/system.properties</code>. See the [Security section|security] of this user guide for details.</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
@@ -4262,7 +4276,7 @@ karaf@root()&gt;</pre>
 </div>
 </div>
 <div class="sect5">
-<h6 id="__code_ssh_ssh_code_command"><code>ssh:ssh</code> command</h6>
+<h6 id="_code_ssh_ssh_code_command"><code>ssh:ssh</code> command</h6>
 <div class="paragraph">
 <p>Apache Karaf itself provides a SSH client. When you are on the Apache Karaf console, you have the <code>ssh:ssh</code> command:</p>
 </div>
@@ -4667,7 +4681,7 @@ log4j.appender.stdout.layout.ConversionP
 log4j.appender.out=org.apache.log4j.RollingFileAppender
 log4j.appender.out.layout=org.apache.log4j.PatternLayout
 log4j.appender.out.layout.ConversionPattern=%d{ISO8601} | %-5.5p | %-16.16t | %-32.32c{1} | %X{bundle.id} - %X{bundle.name} - %X{bundle.version} | %m%n
-log4j.appender.out.file=${karaf.data}/log/karaf.log
+log4j.appender.out.file=${karaf.log}/karaf.log
 log4j.appender.out.append=true
 log4j.appender.out.maxFileSize=1MB
 log4j.appender.out.maxBackupIndex=10
@@ -4679,7 +4693,7 @@ log4j.appender.sift.default=karaf
 log4j.appender.sift.appender=org.apache.log4j.FileAppender
 log4j.appender.sift.appender.layout=org.apache.log4j.PatternLayout
 log4j.appender.sift.appender.layout.ConversionPattern=%d{ISO8601} | %-5.5p | %-16.16t | %-32.32c{1} | %m%n
-log4j.appender.sift.appender.file=${karaf.data}/log/$\\{bundle.name\\}.log
+log4j.appender.sift.appender.file=${karaf.log}/$\\{bundle.name\\}.log
 log4j.appender.sift.appender.append=true</pre>
 </div>
 </div>
@@ -4753,8 +4767,8 @@ used by the log commands (see later).</p
         &lt;Console name="console" target="SYSTEM_OUT"&gt;
             &lt;PatternLayout pattern="%d{ABSOLUTE} | %-5.5p | %-16.16t | %-32.32c{1} | %X{bundle.id} - %X{bundle.name} - %X{bundle.version} | %m%n"/&gt;
         &lt;/Console&gt;
-        &lt;RollingFile name="out" fileName="${karaf.data}/log/karaf.log"
-              append="true" filePattern="${karaf.data}/log/$${date:yyyy-MM}/fuse-%d{MM-dd-yyyy}-%i.log.gz"&gt;
+        &lt;RollingFile name="out" fileName="${karaf.log}/karaf.log"
+              append="true" filePattern="${karaf.log}/$${date:yyyy-MM}/fuse-%d{MM-dd-yyyy}-%i.log.gz"&gt;
            &lt;PatternLayout&gt;
              &lt;Pattern&gt;%d{ABSOLUTE} | %-5.5p | %-16.16t | %-32.32c{1} | %X{bundle.id} - %X{bundle.name} - %X{bundle.version} | %m%n&lt;/Pattern&gt;
            &lt;/PatternLayout&gt;
@@ -4777,7 +4791,7 @@ used by the log commands (see later).</p
 </div>
 </div>
 <div class="sect3">
-<h4 id="__code_karaf_log_console_code_property">4.7.3. <code>karaf.log.console</code> property</h4>
+<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.
@@ -4865,13 +4879,13 @@ INFO: All initial bundles installed and
 dynamically change the log configuration and see the log content:</p>
 </div>
 <div class="sect4">
-<h5 id="__code_log_clear_code"><code>log:clear</code></h5>
+<h5 id="_code_log_clear_code"><code>log:clear</code></h5>
 <div class="paragraph">
 <p>The <code>log:clear</code> command clears the log entries.</p>
 </div>
 </div>
 <div class="sect4">
-<h5 id="__code_log_display_code"><code>log:display</code></h5>
+<h5 id="_code_log_display_code"><code>log:display</code></h5>
 <div class="paragraph">
 <p>The <code>log:display</code> command displays the log entries.</p>
 </div>
@@ -4956,7 +4970,7 @@ message, etc.</p>
 </div>
 </div>
 <div class="sect4">
-<h5 id="__code_log_exception_display_code"><code>log:exception-display</code></h5>
+<h5 id="_code_log_exception_display_code"><code>log:exception-display</code></h5>
 <div class="paragraph">
 <p>The <code>log:exception-display</code> command displays the last occurred exception.</p>
 </div>
@@ -4966,7 +4980,7 @@ specify a logger with the <code>logger</
 </div>
 </div>
 <div class="sect4">
-<h5 id="__code_log_get_code"><code>log:get</code></h5>
+<h5 id="_code_log_get_code"><code>log:get</code></h5>
 <div class="paragraph">
 <p>The <code>log:get</code> command show the current log level of a logger.</p>
 </div>
@@ -5020,7 +5034,7 @@ my.logger | DEBUG</pre>
 </div>
 </div>
 <div class="sect4">
-<h5 id="__code_log_log_code"><code>log:log</code></h5>
+<h5 id="_code_log_log_code"><code>log:log</code></h5>
 <div class="paragraph">
 <p>The <code>log:log</code> command allows you to manually add a message in the log. It&#8217;s interesting when you create Apache Karaf
 scripts:</p>
@@ -5044,7 +5058,7 @@ karaf@root()&gt; log:display
 </div>
 </div>
 <div class="sect4">
-<h5 id="__code_log_set_code"><code>log:set</code></h5>
+<h5 id="_code_log_set_code"><code>log:set</code></h5>
 <div class="paragraph">
 <p>The <code>log:set</code> command sets the log level of a logger.</p>
 </div>
@@ -5158,7 +5172,7 @@ my.logger.custom=appender2</pre>
 </div>
 </div>
 <div class="sect4">
-<h5 id="__code_log_tail_code"><code>log:tail</code></h5>
+<h5 id="_code_log_tail_code"><code>log:tail</code></h5>
 <div class="paragraph">
 <p>The <code>log:tail</code> is exactly the same as <code>log:display</code> but it continuously displays the log entries.</p>
 </div>
@@ -5394,7 +5408,7 @@ log4j.appender.sift.default=karaf
 log4j.appender.sift.appender=org.apache.log4j.FileAppender
 log4j.appender.sift.appender.layout=org.apache.log4j.PatternLayout
 log4j.appender.sift.appender.layout.ConversionPattern=%d{ABSOLUTE} | %-5.5p | %-16.16t | %-32.32c{1} | %-32.32C %4L | %m%n
-log4j.appender.sift.appender.file=${karaf.data}/log/$\\{bundle.name\\}.log
+log4j.appender.sift.appender.file=${karaf.log}/$\\{bundle.name\\}.log
 log4j.appender.sift.appender.append=true</pre>
 </div>
 </div>
@@ -5600,12 +5614,12 @@ If you want to disable karaf persistence
 </div>
 </div>
 <div class="sect3">
-<h4 id="__code_config_code_commands">4.8.2. <code>config:*</code> commands</h4>
+<h4 id="_code_config_code_commands">4.8.2. <code>config:*</code> commands</h4>
 <div class="paragraph">
 <p>Apache Karaf provides a set of commands to manage the configuration.</p>
 </div>
 <div class="sect4">
-<h5 id="__code_config_list_code"><code>config:list</code></h5>
+<h5 id="_code_config_list_code"><code>config:list</code></h5>
 <div class="paragraph">
 <p><code>config:list</code> displays the list of all configurations available, or the properties in a given configuration (PID).</p>
 </div>
@@ -5661,7 +5675,7 @@ Properties:
 </div>
 </div>
 <div class="sect4">
-<h5 id="__code_config_edit_code"><code>config:edit</code></h5>
+<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>
@@ -5689,7 +5703,7 @@ cancel your changes (see <code>config:ca
 </div>
 </div>
 <div class="sect4">
-<h5 id="__code_config_property_list_code"><code>config:property-list</code></h5>
+<h5 id="_code_config_property_list_code"><code>config:property-list</code></h5>
 <div class="paragraph">
 <p>The <code>config:property-list</code> lists the properties for the currently edited configuration.</p>
 </div>
@@ -5707,7 +5721,7 @@ cancel your changes (see <code>config:ca
 </div>
 </div>
 <div class="sect4">
-<h5 id="__code_config_property_set_code"><code>config:property-set</code></h5>
+<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>
 </div>
@@ -5761,7 +5775,7 @@ Properties:
 </div>
 </div>
 <div class="sect4">
-<h5 id="__code_config_property_append_code"><code>config:property-append</code></h5>
+<h5 id="_code_config_property_append_code"><code>config:property-append</code></h5>
 <div class="paragraph">
 <p>The <code>config:property-append</code> is similar to <code>config:property-set</code> command, but instead of completely replacing the
 property value, it appends a string at the end of the property value.</p>
@@ -5817,7 +5831,7 @@ Properties:
 </div>
 </div>
 <div class="sect4">
-<h5 id="__code_config_property_delete_code"><code>config:property-delete</code></h5>
+<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>
 </div>
@@ -5852,7 +5866,7 @@ karaf@root()&gt; config:property-list
 </div>
 </div>
 <div class="sect4">
-<h5 id="__code_config_update_code_and_code_config_cancel_code"><code>config:update</code> and <code>config:cancel</code></h5>
+<h5 id="_code_config_update_code_and_code_config_cancel_code"><code>config:update</code> and <code>config:cancel</code></h5>
 <div class="paragraph">
 <p>When you are in the configuration edit mode, all changes that you do using <code>config:property*</code> commands are stored in "memory"
 (actually in the console session).</p>
@@ -5908,7 +5922,7 @@ Properties:
 </div>
 </div>
 <div class="sect4">
-<h5 id="__code_config_delete_code"><code>config:delete</code></h5>
+<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
 a configuration.</p>
@@ -5943,7 +5957,7 @@ karaf@root()&gt;</pre>
 </div>
 </div>
 <div class="sect4">
-<h5 id="__code_config_meta_code"><code>config:meta</code></h5>
+<h5 id="_code_config_meta_code"><code>config:meta</code></h5>
 <div class="paragraph">
 <p>The <code>config:meta</code> command lists the meta type information related to a given configuration.</p>
 </div>
@@ -6865,7 +6879,7 @@ the features and bundles capabilities an
 <div class="sect3">
 <h4 id="_commands_3">4.10.12. Commands</h4>
 <div class="sect4">
-<h5 id="__code_feature_repo_list_code"><code>feature:repo-list</code></h5>
+<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>
 </div>
@@ -6905,7 +6919,7 @@ spring-4.0.0             | mvn:org.apach
 </div>
 </div>
 <div class="sect4">
-<h5 id="__code_feature_repo_add_code"><code>feature:repo-add</code></h5>
+<h5 id="_code_feature_repo_add_code"><code>feature:repo-add</code></h5>
 <div class="paragraph">
 <p>To register a features repository (and so having new features available in Apache Karaf), you have to use the
 <code>feature:repo-add</code> command.</p>
@@ -6976,12 +6990,12 @@ decanter=mvn:org.apache.karaf.decanter/a
 </div>
 </div>
 <div class="paragraph">
-<p>You can directly provide a features repository name to the <code>feature:repo-add</code> command. For install, to install Apache Karaf Cellar, you can do:</p>
+<p>You can directly provide a features repository name to the <code>feature:repo-add</code> command. For install, to install PAX JDBC, you can do:</p>
 </div>
 <div class="listingblock">
 <div class="content">
-<pre>karaf@root()&gt; feature:repo-add cellar
-Adding feature url mvn:org.apache.karaf.cellar/apache-karaf-cellar/LATEST/xml/features</pre>
+<pre>karaf@root()&gt; feature:repo-add pax-jdbc
+Adding feature url mvn:org.ops4j.pax.jdbc/pax-jdbc-features/LATEST/xml/features</pre>
 </div>
 </div>
 <div class="paragraph">
@@ -6990,8 +7004,8 @@ You can specify a target version with th
 </div>
 <div class="listingblock">
 <div class="content">
-<pre>karaf@root()&gt; feature:repo-add cellar 4.0.0.RC1
-Adding feature url mvn:org.apache.karaf.cellar/apache-karaf-cellar/4.0.0.RC1/xml/features</pre>
+<pre>karaf@root()&gt; feature:repo-add pax-jdbc 1.3.0
+Adding feature url mvn:org.ops4j.pax.jdbc/pax-jdbc-features/1.3.0/xml/features</pre>
 </div>
 </div>
 <div class="paragraph">
@@ -7000,8 +7014,8 @@ you can directly provide the features re
 </div>
 <div class="listingblock">
 <div class="content">
-<pre>karaf@root()&gt; feature:repo-add mvn:org.apache.karaf.cellar/apache-karaf-cellar/4.0.0.RC1/xml/features
-Adding feature url mvn:org.apache.karaf.cellar/apache-karaf-cellar/4.0.0.RC1/xml/features</pre>
+<pre>karaf@root()&gt; feature:repo-add mvn:org.ops4j.pax.jdbc/pax-jdbc-features/1.3.0/xml/features
+Adding feature url mvn:org.ops4j.pax.jdbc/pax-jdbc-features/1.3.0/xml/features</pre>
 </div>
 </div>
 <div class="paragraph">
@@ -7011,12 +7025,12 @@ features described in this features repo
 </div>
 <div class="listingblock">
 <div class="content">
-<pre>karaf@root()&gt; feature:repo-add -i cellar</pre>
+<pre>karaf@root()&gt; feature:repo-add -i pax-jdbc</pre>
 </div>
 </div>
 </div>
 <div class="sect4">
-<h5 id="__code_feature_repo_refresh_code"><code>feature:repo-refresh</code></h5>
+<h5 id="_code_feature_repo_refresh_code"><code>feature:repo-refresh</code></h5>
 <div class="paragraph">
 <p>Apache Karaf parses the features repository XML when you register it (using <code>feature:repo-add</code> command or the FeatureMBean).
 If the features repository XML changes, you have to indicate to Apache Karaf to refresh the features repository to load the changes.</p>
@@ -7049,18 +7063,18 @@ Refreshing feature url mvn:org.apache.ka
 </div>
 <div class="listingblock">
 <div class="content">
-<pre>karaf@root()&gt; feature:repo-refresh cellar
-Refreshing feature url mvn:org.apache.karaf.cellar/apache-karaf-cellar/LATEST/xml/features</pre>
+<pre>karaf@root()&gt; feature:repo-refresh pax-jdbc
+Refreshing feature url mvn:org.ops4j.pax.jdbc/pax-jdbc-features/LATEST/xml/features</pre>
 </div>
 </div>
 </div>
 <div class="sect4">
-<h5 id="__code_feature_repo_remove_code"><code>feature:repo-remove</code></h5>
+<h5 id="_code_feature_repo_remove_code"><code>feature:repo-remove</code></h5>
 <div class="paragraph">
 <p>The <code>feature:repo-remove</code> command removes a features repository from the registered ones.</p>
 </div>
 <div class="paragraph">
-<p>The <code>feature:repo-remove</code> command requires a argument:</p>
+<p>The <code>feature:repo-remove</code> command requires an argument:</p>
 </div>
 <div class="ulist">
 <ul>
@@ -7074,12 +7088,12 @@ Refreshing feature url mvn:org.apache.ka
 </div>
 <div class="listingblock">
 <div class="content">
-<pre>karaf@root()&gt; feature:repo-remove karaf-cellar-4.0.0.RC1</pre>
+<pre>karaf@root()&gt; feature:repo-remove org.ops4j.pax.jdbc-1.3.0</pre>
 </div>
 </div>
 <div class="listingblock">
 <div class="content">
-<pre>karaf@root()&gt; feature:repo-remove mvn:org.apache.karaf.cellar/apache-karaf-cellar/LATEST/xml/features</pre>
+<pre>karaf@root()&gt; feature:repo-remove mvn:org.ops4j.pax.jdbc/pax-jdbc-features/1.3.0/xml/features</pre>
 </div>
 </div>
 <div class="paragraph">
@@ -7091,12 +7105,12 @@ uninstall the features provided by the f
 </div>
 <div class="listingblock">
 <div class="content">
-<pre>karaf@root()&gt; feature:repo-remove -u karaf-cellar-4.0.0.RC1</pre>
+<pre>karaf@root()&gt; feature:repo-remove -u org.ops4j.pax.jdbc-1.3.0</pre>
 </div>
 </div>
 </div>
 <div class="sect4">
-<h5 id="__code_feature_list_code"><code>feature:list</code></h5>
+<h5 id="_code_feature_list_code"><code>feature:list</code></h5>
 <div class="paragraph">
 <p>The <code>feature:list</code> command lists all available features (provided by the different registered features repositories):</p>
 </div>
@@ -7171,7 +7185,7 @@ wrap            | 0.0.0   | x        | S
 </div>
 </div>
 <div class="sect4">
-<h5 id="__code_feature_install_code"><code>feature:install</code></h5>
+<h5 id="_code_feature_install_code"><code>feature:install</code></h5>
 <div class="paragraph">
 <p>The <code>feature:install</code> command installs a feature.</p>
 </div>
@@ -7239,7 +7253,7 @@ Done.</pre>
 </div>
 </div>
 <div class="sect4">
-<h5 id="__code_feature_start_code"><code>feature:start</code></h5>
+<h5 id="_code_feature_start_code"><code>feature:start</code></h5>
 <div class="paragraph">
 <p>By default, when you install a feature, it&#8217;s automatically installed. However, you can specify the <code>-s</code> option to the <code>feature:install</code> command.</p>
 </div>
@@ -7252,14 +7266,14 @@ the wiring in other bundles.</p>
 </div>
 </div>
 <div class="sect4">
-<h5 id="__code_feature_stop_code"><code>feature:stop</code></h5>
+<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
 are still available for the wiring (the bundles are in resolved state).</p>
 </div>
 </div>
 <div class="sect4">
-<h5 id="__code_feature_uninstall_code"><code>feature:uninstall</code></h5>
+<h5 id="_code_feature_uninstall_code"><code>feature:uninstall</code></h5>
 <div class="paragraph">
 <p>The <code>feature:uninstall</code> command uninstalls a feature. As the <code>feature:install</code> command, the <code>feature:uninstall</code> command
 requires the <code>feature</code> argument. The <code>feature</code> argument is the name of the feature, or the name/version of the feature.
@@ -7910,7 +7924,7 @@ updating: repository/ (stored 0%)
 <p>Apache Karaf provides <code>kar:*</code> commands to manage KAR archives.</p>
 </div>
 <div class="sect4">
-<h5 id="__code_kar_list_code"><code>kar:list</code></h5>
+<h5 id="_code_kar_list_code"><code>kar:list</code></h5>
 <div class="paragraph">
 <p>The <code>kar:list</code> command lists the installed KAR archives.</p>
 </div>
@@ -7927,7 +7941,7 @@ my-kar-1.0-SNAPSHOT</pre>
 </div>
 </div>
 <div class="sect4">
-<h5 id="__code_kar_create_code"><code>kar:create</code></h5>
+<h5 id="_code_kar_create_code"><code>kar:create</code></h5>
 <div class="paragraph">
 <p>Instead of using the <code>karaf-maven-plugin</code> or create the KAR archive by hand, you can use the <code>kar:create</code> command.</p>
 </div>
@@ -7988,7 +8002,7 @@ Kar file created : /opt/apache-karaf-4.1
 </div>
 </div>
 <div class="sect4">
-<h5 id="__code_kar_install_code"><code>kar:install</code></h5>
+<h5 id="_code_kar_install_code"><code>kar:install</code></h5>
 <div class="paragraph">
 <p>You can deploy a KAR file using <code>kar:install</code> command.</p>
 </div>
@@ -8013,7 +8027,7 @@ installs all features described in the f
 </div>
 </div>
 <div class="sect4">
-<h5 id="__code_kar_uninstall_code"><code>kar:uninstall</code></h5>
+<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>
 </div>
@@ -8827,7 +8841,7 @@ the users and a public key associated to
 # with the name "karaf".
 #
 karaf = karaf,_g_:admingroup
-_g_\:admingroup = group,admin,manager,viewer</pre>
+_g_\:admingroup = group,admin,manager,viewer,ssh</pre>
 </div>
 </div>
 <div class="paragraph">
@@ -8853,7 +8867,7 @@ roles.</p>
 <p>The <code>jaas:*</code> commands manage the realms, users, groups, roles in the console.</p>
 </div>
 <div class="sect5">
-<h6 id="__code_jaas_realm_list_code"><code>jaas:realm-list</code></h6>
+<h6 id="_code_jaas_realm_list_code"><code>jaas:realm-list</code></h6>
 <div class="paragraph">
 <p>We already used the <code>jaas:realm-list</code> previously in this section.</p>
 </div>
@@ -8877,7 +8891,7 @@ Index | Realm Name | Login Module Class
 </div>
 </div>
 <div class="sect5">
-<h6 id="__code_jaas_realm_manage_code"><code>jaas:realm-manage</code></h6>
+<h6 id="_code_jaas_realm_manage_code"><code>jaas:realm-manage</code></h6>
 <div class="paragraph">
 <p>The <code>jaas:realm-manage</code> command switch in realm/login module edit mode, where you can manage the users, groups, and roles in the login module.</p>
 </div>
@@ -8901,7 +8915,7 @@ option expects the login module class na
 </div>
 </div>
 <div class="sect5">
-<h6 id="__code_jaas_user_list_code"><code>jaas:user-list</code></h6>
+<h6 id="_code_jaas_user_list_code"><code>jaas:user-list</code></h6>
 <div class="paragraph">
 <p>When you are in edit mode, you can list the users in the login module using the <code>jaas:user-list</code>:</p>
 </div>
@@ -8920,7 +8934,7 @@ karaf     | admingroup | viewer</pre>
 </div>
 </div>
 <div class="sect5">
-<h6 id="__code_jaas_user_add_code"><code>jaas:user-add</code></h6>
+<h6 id="_code_jaas_user_add_code"><code>jaas:user-add</code></h6>
 <div class="paragraph">
 <p>The <code>jaas:user-add</code> command adds a new user (and the password) in the currently edited login module:</p>
 </div>
@@ -8950,7 +8964,7 @@ foo       |            |</pre>
 </div>
 </div>
 <div class="sect5">
-<h6 id="__code_jaas_user_delete_code"><code>jaas:user-delete</code></h6>
+<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>
 </div>
@@ -8976,7 +8990,7 @@ karaf     | admingroup | viewer</pre>
 </div>
 </div>
 <div class="sect5">
-<h6 id="__code_jaas_group_add_code"><code>jaas:group-add</code></h6>
+<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>
 </div>
@@ -8987,7 +9001,7 @@ karaf     | admingroup | viewer</pre>
 </div>
 </div>
 <div class="sect5">
-<h6 id="__code_jaas_group_delete_code"><code>jaas:group-delete</code></h6>
+<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>
 </div>
@@ -8998,7 +9012,7 @@ karaf     | admingroup | viewer</pre>
 </div>
 </div>
 <div class="sect5">
-<h6 id="__code_jaas_group_role_add_code"><code>jaas:group-role-add</code></h6>
+<h6 id="_code_jaas_group_role_add_code"><code>jaas:group-role-add</code></h6>
 <div class="paragraph">
 <p>The <code>jaas:group-role-add</code> command adds a role in a group in the currently edited login module:</p>
 </div>
@@ -9009,7 +9023,7 @@ karaf     | admingroup | viewer</pre>
 </div>
 </div>
 <div class="sect5">
-<h6 id="__code_jaas_group_role_delete_code"><code>jaas:group-role-delete</code></h6>
+<h6 id="_code_jaas_group_role_delete_code"><code>jaas:group-role-delete</code></h6>
 <div class="paragraph">
 <p>The <code>jaas:group-role-delete</code> command removes a role from a group in the currently edited login module:</p>
 </div>
@@ -9020,14 +9034,14 @@ karaf     | admingroup | viewer</pre>
 </div>
 </div>
 <div class="sect5">
-<h6 id="__code_jaas_update_code"><code>jaas:update</code></h6>
+<h6 id="_code_jaas_update_code"><code>jaas:update</code></h6>
 <div class="paragraph">
 <p>The <code>jaas:update</code> command commits your changes in the login module backend. For instance, in the case of the PropertiesLoginModule,
 the <code>etc/users.properties</code> will be updated only after the execution of the <code>jaas:update</code> command.</p>
 </div>
 </div>
 <div class="sect5">
-<h6 id="__code_jaas_cancel_code"><code>jaas:cancel</code></h6>
+<h6 id="_code_jaas_cancel_code"><code>jaas:cancel</code></h6>
 <div class="paragraph">
 <p>The <code>jaas:cancel</code> command rollback your changes and doesn&#8217;t update the login module backend.</p>
 </div>
@@ -9160,7 +9174,8 @@ will identify himself on Karaf SSHD (ser
 </div>
 <div class="listingblock">
 <div class="content">
-<pre># karaf=AAAAB3NzaC1kc3MAAACBAP1/U4EddRIpUt9KnC7s5Of2EbdSPO9EAMMeP4C2USZpRV1AIlH7WT2NWPq/xfW6MPbLm1Vs14E7gB00b/JmYLdrmVClpJ+f6AR7ECLCT7up1/63xhv4O1fnxqimFQ8E+4P208UewwI1VBNaFpEy9nXzrith1yrv8iIDGZ3RSAHHAAAAFQCXYFCPFSMLzLKSuYKi64QL8Fgc9QAAAIEA9+GghdabPd7LvKtcNrhXuXmUr7v6OuqC+VdMCz0HgmdRWVeOutRZT+ZxBxCBgLRJFnEj6EwoFhO3zwkyjMim4TwWeotUfI0o4KOuHiuzpnWRbqN/C/ohNWLx+2J6ASQ7zKTxvqhRkImog9/hWuWfBpKLZl6Ae1UlZAFMO/7PSSoAAACBAKKSU2PFl/qOLxIwmBZPPIcJshVe7bVUpFvyl3BbJDow8rXfskl8wO63OzP/qLmcJM0+JbcRU/53JjTuyk31drV2qxhIOsLDC9dGCWj47Y7TyhPdXh/0dthTRBy6bqGtRPxGa7gJov1xm/UuYYXPIUR/3x9MAZvZ5xvE0kYXO+rx,admin</pre>
+<pre>#karaf=AAAAB3NzaC1kc3MAAACBAP1/U4EddRIpUt9KnC7s5Of2EbdSPO9EAMMeP4C2USZpRV1AIlH7WT2NWPq/xfW6MPbLm1Vs14E7gB00b/JmYLdrmVClpJ+f6AR7ECLCT7up1/63xhv4O1fnxqimFQ8E+4P208UewwI1VBNaFpEy9nXzrith1yrv8iIDGZ3RSAHHAAAAFQCXYFCPFSMLzLKSuYKi64QL8Fgc9QAAAIEA9+GghdabPd7LvKtcNrhXuXmUr7v6OuqC+VdMCz0HgmdRWVeOutRZT+ZxBxCBgLRJFnEj6EwoFhO3zwkyjMim4TwWeotUfI0o4KOuHiuzpnWRbqN/C/ohNWLx+2J6ASQ7zKTxvqhRkImog9/hWuWfBpKLZl6Ae1UlZAFMO/7PSSoAAACBAKKSU2PFl/qOLxIwmBZPPIcJshVe7bVUpFvyl3BbJDow8rXfskl8wO63OzP/qLmcJM0+JbcRU/53JjTuyk31drV2qxhIOsLDC9dGCWj47Y7TyhPdXh/0dthTRBy6bqGtRPxGa7gJov1xm/UuYYXPIUR/3x9MAZvZ5xvE0kYXO+rx,_g_:admingroup
+_g_\:admingroup = group,admin,manager,viewer,systembundles,ssh</pre>
 </div>
 </div>
 <div class="admonitionblock note">
@@ -9185,32 +9200,36 @@ will identify himself on Karaf SSHD (ser
 </div>
 <div class="listingblock">
 <div class="content">
-<pre>ssh-keygen -t dsa -f karaf.id_dsa -N karaf</pre>
+<pre>ssh-keygen -t rsa -f karaf.id_rsa</pre>
+</div>
 </div>
+<div class="paragraph">
+<p>NB: you can provide a passphrase with <code>-N</code> option to <code>ssh-keygen</code> but, in that case, you will need to enter the passphrase to allow the SSH client to use the key.</p>
 </div>
 <div class="paragraph">
 <p>You have now the public and private keys:</p>
 </div>
 <div class="listingblock">
 <div class="content">
-<pre>-rw-------  1 jbonofre jbonofre    771 Jul 25 22:05 karaf.id_dsa
--rw-r--r--  1 jbonofre jbonofre    607 Jul 25 22:05 karaf.id_dsa.pub</pre>
+<pre>-rw-------  1 jbonofre jbonofre    771 Jul 25 22:05 karaf.id_rsa
+-rw-r--r--  1 jbonofre jbonofre    607 Jul 25 22:05 karaf.id_rsa.pub</pre>
 </div>
 </div>
 <div class="paragraph">
-<p>You can copy in the content of the <code>karaf.id_dsa.pub</code> file in the <code>etc/keys.properties</code>:</p>
+<p>You copy the key from <code>karaf.id_rsa.pub</code> file in the <code>etc/keys.properties</code>:</p>
 </div>
 <div class="listingblock">
 <div class="content">
-<pre>karaf=AAAAB3NzaC1kc3MAAACBAJLj9vnEhu3/Q9Cvym2jRDaNWkATgQiHZxmErCmiLRuD5Klfv+HT/+8WoYdnvj0YaXFP80phYhzZ7fbIO2LRFhYhPmGLa9nSeOsQlFuX5A9kY1120yB2kxSIZI0fU2hy1UCgmTxdTQPSYtdWBJyvO/vczoX/8I3FziEfss07Hj1NAAAAFQD1dKEzkt4e7rBPDokPOMZigBh4kwAAAIEAiLnpbGNbKm8SNLUEc/fJFswg4G4VjjngjbPZAjhkYe4+H2uYmynry6V+GOTS2kaFQGZRf9XhSpSwfdxKtx7vCCaoH9bZ6S5Pe0voWmeBhJXi/Sww8f2stpitW2Oq7V7lDdDG81+N/D7/rKDD5PjUyMsVqc1n9wCTmfqmi6XPEw8AAACAHAGwPn/Mv7P9Q9+JZRWtGq+i4pL1zs1OluiStCN9e/Ok96t3gRVKPheQ6IwLacNjC9KkSKrLtsVyepGA+V5j/N+Cmsl6csZilnLvMUTvL/cmHDEEhTIQnPNrDDv+tED2BFqkajQqYLgMWeGVqXsBU6IT66itZlYtrq4v6uDQG/o=,admin</pre>
+<pre>karaf=AAAAB3NzaC1yc2EAAAADAQABAAABAQCtXN9ZZ+K67UFbxZMxHsoR69vHNbN8qi17v/5jF83FUexRqu8FvWCInBoW7eVFyeIiFXGd/zaCrDHrZsqpwXNEha3ifvfGTY2+gMLfZZFgh2LFubXBH6G725XKs9aus+KLrwC8u/uPr9Sw3YeSb0zxrjiXqv6hGYhaAHnskAgRCUxa+P4/JYNVS/2+ZrvBrVMAwgEuwt1Y1IDYsXQRmLJPn5ayMCfzPTANXfgB7Hix    72f2XpHV3FdnKTbYwdA32Bg4ptJkuvyMXnBy5y7ChRU150YGRToC4ETcPF2DB0EPOcbOLsQlNTKKRYuNR1zEpp6RAfiWD65kmYK766CE8AbB,_g_:admingroup
+_g_\:admingroup = group,admin,manager,viewer,systembundles,ssh</pre>
 </div>
 </div>
 <div class="paragraph">
-<p>and specify to the client to use the <code>karaf.id_dsa</code> private key:</p>
+<p>and specify to the client to use the <code>karaf.id_rsa</code> private key:</p>
 </div>
 <div class="listingblock">
 <div class="content">
-<pre>bin/client -k ~/karaf.id_dsa</pre>
+<pre>bin/client -k ~/karaf.id_rsa</pre>
 </div>
 </div>
 <div class="paragraph">
@@ -9218,7 +9237,7 @@ will identify himself on Karaf SSHD (ser
 </div>
 <div class="listingblock">
 <div class="content">
-<pre>ssh -p 8101 -i ~/karaf.id_dsa karaf@localhost</pre>
+<pre>ssh -p 8101 -i ~/karaf.id_rsa karaf@localhost</pre>
 </div>
 </div>
 </div>
@@ -9558,7 +9577,7 @@ can access those.</p>
 <div class="sect4">
 <h5 id="_official_images">Official images</h5>
 <div class="paragraph">
-<p>Apache Karaf official docker images are available on Docker HUB: <a href="https://hub.docker.com/_/karaf/" class="bare">https://hub.docker.com/_/karaf/</a></p>
+<p>Apache Karaf official docker images should be available soon on Docker HUB: <a href="https://hub.docker.com/_/karaf/" class="bare">https://hub.docker.com/_/karaf/</a></p>
 </div>
 <div class="paragraph">
 <p>You can directly pull the official image:</p>
@@ -9608,19 +9627,19 @@ want to build the Karaf image run:</p>
 </div>
 <div class="listingblock">
 <div class="content">
-<pre>docker-compose run karaf</pre>
+<pre>docker run -i -t --name karaf karaf:latest karaf</pre>
 </div>
 </div>
 <div class="ulist">
 <ul>
 <li>
-<p>Run Karaf as a daemon (without interaction)</p>
+<p>Run Karaf without interaction but log displayed</p>
 </li>
 </ul>
 </div>
 <div class="listingblock">
 <div class="content">
-<pre>docker-compose up</pre>
+<pre>docker run --name karaf karaf:latest</pre>
 </div>
 </div>
 <div class="ulist">
@@ -9632,7 +9651,7 @@ want to build the Karaf image run:</p>
 </div>
 <div class="listingblock">
 <div class="content">
-<pre>docker-compose kill</pre>
+<pre>docker kill karaf</pre>
 </div>
 </div>
 <div class="sect5">
@@ -10103,7 +10122,7 @@ of bundles to install with the features.
 <div class="sect3">
 <h4 id="_commands_6">4.16.2. Commands</h4>
 <div class="sect4">
-<h5 id="__code_obr_url_add_code"><code>obr:url-add</code></h5>
+<h5 id="_code_obr_url_add_code"><code>obr:url-add</code></h5>
 <div class="paragraph">
 <p>The <code>obr:url-add</code> command registers the OBR repository at a given URL in the OBR service.</p>
 </div>
@@ -10124,7 +10143,7 @@ Any URL described in the [Artifacts repo
 </div>
 </div>
 <div class="sect4">
-<h5 id="__code_obr_url_list_code"><code>obr:url-list</code></h5>
+<h5 id="_code_obr_url_list_code"><code>obr:url-list</code></h5>
 <div class="paragraph">
 <p>The <code>obr:url-list</code> command lists the OBR repository (with URL) registered in the OBR service:</p>
 </div>
@@ -10138,7 +10157,7 @@ Index | OBR URL
 </div>
 </div>
 <div class="sect4">
-<h5 id="__code_obr_url_refresh_code"><code>obr:url-refresh</code></h5>
+<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>
 </div>
@@ -10173,7 +10192,7 @@ To do so, you have to use the <code>-i</
 </div>
 </div>
 <div class="sect4">
-<h5 id="__code_obr_url_remove_code"><code>obr:url-remove</code></h5>
+<h5 id="_code_obr_url_remove_code"><code>obr:url-remove</code></h5>
 <div class="paragraph">
 <p>The <code>obr:url-remove</code> command removes an OBR repository from the OBR service.</p>
 </div>
@@ -10196,7 +10215,7 @@ To do so, you have to use the <code>-i</
 </div>
 </div>
 <div class="sect4">
-<h5 id="__code_obr_list_code"><code>obr:list</code></h5>
+<h5 id="_code_obr_list_code"><code>obr:list</code></h5>
 <div class="paragraph">
 <p>The <code>obr:list</code> command lists all bundles available on the registered OBR repositories:</p>
 </div>
@@ -10215,7 +10234,7 @@ Apache Aries Application API
 </div>
 </div>
 <div class="sect4">
-<h5 id="__code_obr_info_code"><code>obr:info</code></h5>
+<h5 id="_code_obr_info_code"><code>obr:info</code></h5>
 <div class="paragraph">
 <p>The <code>obr:info</code> command displays the details about bundles available on the OBR service. Especially, it provides details about
 capabilities and requirements of bundles.</p>
@@ -10277,7 +10296,7 @@ It means that you have to use the follow
 </div>
 </div>
 <div class="sect4">
-<h5 id="__code_obr_source_code"><code>obr:source</code></h5>
+<h5 id="_code_obr_source_code"><code>obr:source</code></h5>
 <div class="paragraph">
 <p>In addition of the bundles executable, the OBR service can also store the bundles sources.</p>
 </div>
@@ -10309,7 +10328,7 @@ It means that you have to use the follow
 </div>
 </div>
 <div class="sect4">
-<h5 id="__code_obr_resolve_code"><code>obr:resolve</code></h5>
+<h5 id="_code_obr_resolve_code"><code>obr:resolve</code></h5>
 <div class="paragraph">
 <p>The <code>obr:resolve</code> command displays the resolution output for a given set of requirements. Actually, it show the bundles providing
 the capabilities to match the requirements. It&#8217;s what the OBR service does when executing <code>obr:deploy</code>.</p>
@@ -10330,7 +10349,7 @@ Required resource(s):
 </div>
 </div>
 <div class="sect4">
-<h5 id="__code_obr_find_code"><code>obr:find</code></h5>
+<h5 id="_code_obr_find_code"><code>obr:find</code></h5>
 <div class="paragraph">
 <p>The <code>obr:find</code> command is similar to the <code>obr:resolve</code> one. It displays the bundles resolving the provided requirements, with details.</p>
 </div>
@@ -10372,7 +10391,7 @@ Capabilities:
 </div>
 </div>
 <div class="sect4">
-<h5 id="__code_obr_deploy_code"><code>obr:deploy</code></h5>
+<h5 id="_code_obr_deploy_code"><code>obr:deploy</code></h5>
 <div class="paragraph">
 <p>The <code>obr:deploy</code> command installs a bundle from the OBR repository, including all bundles required to satisfy the bundle requirements.</p>
 </div>
@@ -10415,7 +10434,7 @@ It means that you have to use the follow
 </div>
 </div>
 <div class="sect3">
-<h4 id="__code_obr_start_code">4.16.3. <code>obr:start</code></h4>
+<h4 id="_code_obr_start_code">4.16.3. <code>obr:start</code></h4>
 <div class="paragraph">
 <p>The <code>obr:start</code> command does the same as <code>obr:deploy -s</code> command. It installs the bundle (and all required bundles to
 satisfy the requirements) and starts all installed bundles.</p>
@@ -10911,7 +10930,7 @@ remote web applications in Karaf.</p>
 <div class="sect4">
 <h5 id="_commands_7">Commands</h5>
 <div class="sect5">
-<h6 id="__code_http_list_code"><code>http:list</code></h6>
+<h6 id="_code_http_list_code"><code>http:list</code></h6>
 <div class="paragraph">
 <p>The <code>http:list</code> lists the available Servlets deployed in the WebContainer.</p>
 </div>
@@ -10939,7 +10958,7 @@ ID  | Servlet          | Servlet-Name
 </div>
 </div>
 <div class="sect5">
-<h6 id="__code_web_list_code"><code>web:list</code></h6>
+<h6 id="_code_web_list_code"><code>web:list</code></h6>
 <div class="paragraph">
 <p>The <code>web:list</code> command lists the WebApplication Bundles ("native" WAB or "wrapped WAR") deployed in the WebContainer.</p>
 </div>
@@ -10956,7 +10975,7 @@ ID  | State       | Web-State   | Level
 </div>
 </div>
 <div class="sect5">
-<h6 id="__code_web_stop_code"><code>web:stop</code></h6>
+<h6 id="_code_web_stop_code"><code>web:stop</code></h6>
 <div class="paragraph">
 <p>The <code>web:stop</code> command stops a web application in the WebContainer. The <code>web:stop</code> command expects a <code>id</code> argument
 corresponding to the bundle ID (as displayed by the <code>web:list</code> command).</p>
@@ -10971,7 +10990,7 @@ corresponding to the bundle ID (as displ
 </div>
 </div>
 <div class="sect5">
-<h6 id="__code_web_start_code"><code>web:start</code></h6>
+<h6 id="_code_web_start_code"><code>web:start</code></h6>
 <div class="paragraph">
 <p>The <code>web:start</code> command starts a web application in the WebContainer. The <code>web:start</code> command expects a <code>id</code> argument
 corresponding to the bundle ID (as displayed by the <code>web:list</code> command).</p>
@@ -10986,7 +11005,7 @@ corresponding to the bundle ID (as displ
 </div>
 </div>
 <div class="sect5">
-<h6 id="__code_http_proxies_code"><code>http:proxies</code></h6>
+<h6 id="_code_http_proxies_code"><code>http:proxies</code></h6>
 <div class="paragraph">
 <p>The <code>http:proxies</code> command list the configured HTTP proxies:</p>
 </div>
@@ -11002,7 +11021,7 @@ URL         │ ProxyTo
 </div>
 </div>
 <div class="sect4">
-<h5 id="__code_http_proxy_add_code"><code>http:proxy-add</code></h5>
+<h5 id="_code_http_proxy_add_code"><code>http:proxy-add</code></h5>
 <div class="paragraph">
 <p>The <code>http:proxy-add</code> registers a new HTTP proxy. For instance, you can proxy the Karaf WebConsole on another URL of your choice using:</p>
 </div>
@@ -11016,7 +11035,7 @@ URL         │ ProxyTo
 </div>
 </div>
 <div class="sect4">
-<h5 id="__code_http_proxy_remove_code"><code>http:proxy-remove</code></h5>
+<h5 id="_code_http_proxy_remove_code"><code>http:proxy-remove</code></h5>
 <div class="paragraph">
 <p>The <code>http:proxy-remove</code> removes an existing HTTP proxy:</p>
 </div>
@@ -11230,7 +11249,7 @@ Runnable r = (Runnable) ctx.lookup("this
 <p>Apache Karaf provides specific commands to manipulate the JNDI service.</p>
 </div>
 <div class="sect5">
-<h6 id="__code_jndi_names_code"><code>jndi:names</code></h6>
+<h6 id="_code_jndi_names_code"><code>jndi:names</code></h6>
 <div class="paragraph">
 <p>The <code>jndi:names</code> command lists all JNDI names. It groups both the JNDI names from the <code>osgi:service</code> scheme and the
 regular JNDI names:</p>
@@ -11279,7 +11298,7 @@ To display all JNDI sub-contexts (empty
 </div>
 </div>
 <div class="sect5">
-<h6 id="__code_jndi_contexts_code"><code>jndi:contexts</code></h6>
+<h6 id="_code_jndi_contexts_code"><code>jndi:contexts</code></h6>
 <div class="paragraph">
 <p>The <code>jndi:contexts</code> command lists all JNDI sub-contexts:</p>
 </div>
@@ -11294,7 +11313,7 @@ foo/bar</pre>
 </div>
 </div>
 <div class="sect5">
-<h6 id="__code_jndi_create_code"><code>jndi:create</code></h6>
+<h6 id="_code_jndi_create_code"><code>jndi:create</code></h6>
 <div class="paragraph">
 <p>The <code>jndi:create</code> command creates a new JNDI sub-context:</p>
 </div>
@@ -11305,7 +11324,7 @@ foo/bar</pre>
 </div>
 </div>
 <div class="sect5">
-<h6 id="__code_jndi_delete_code"><code>jndi:delete</code></h6>
+<h6 id="_code_jndi_delete_code"><code>jndi:delete</code></h6>
 <div class="paragraph">
 <p>The <code>jndi:delete</code> command deletes a JNDI sub-context:</p>
 </div>
@@ -11316,7 +11335,7 @@ foo/bar</pre>
 </div>
 </div>
 <div class="sect5">
-<h6 id="__code_jndi_alias_code"><code>jndi:alias</code></h6>
+<h6 id="_code_jndi_alias_code"><code>jndi:alias</code></h6>
 <div class="paragraph">
 <p>The <code>jndi:alias</code> command creates a new JNDI name (alias) with an existing one.</p>
 </div>
@@ -11363,7 +11382,7 @@ alias/jndi/service | org.apache.karaf.jn
 </div>
 </div>
 <div class="sect5">
-<h6 id="__code_jndi_bind_code"><code>jndi:bind</code></h6>
+<h6 id="_code_jndi_bind_code"><code>jndi:bind</code></h6>
 <div class="paragraph">
 <p>The <code>jndi:bind</code> command binds an OSGi service with a JNDI name.</p>
 </div>
@@ -11385,7 +11404,7 @@ services/kar      | org.apache.karaf.kar
 </div>
 </div>
 <div class="sect5">
-<h6 id="__code_jndi_unbind_code"><code>jndi:unbind</code></h6>
+<h6 id="_code_jndi_unbind_code"><code>jndi:unbind</code></h6>
 <div class="paragraph">
 <p>The <code>jndi:unbind</code> command unbind a given JNDI name:</p>
 </div>
@@ -11668,7 +11687,7 @@ aries.transaction.howl.bufferSizeKBytes
 <div class="sect4">
 <h5 id="_commands_9">Commands</h5>
 <div class="sect5">
-<h6 id="__code_jdbc_ds_create_code"><code>jdbc:ds-create</code></h6>
+<h6 id="_code_jdbc_ds_create_code"><code>jdbc:ds-create</code></h6>
 <div class="paragraph">
 <p>The <code>jdbc:ds-create</code> command automatically creates a datasource definition file by leveraging pax-jdbc.</p>
 </div>
@@ -11749,7 +11768,7 @@ OPTIONS
 </div>
 </div>
 <div class="sect4">
-<h5 id="__code_jdbc_ds_delete_code"><code>jdbc:ds-delete</code></h5>
+<h5 id="_code_jdbc_ds_delete_code"><code>jdbc:ds-delete</code></h5>
 <div class="paragraph">
 <p>The <code>jdbc:ds-delete</code> command deletes a datasource.</p>
 </div>
@@ -11760,22 +11779,24 @@ OPTIONS
 </div>
 </div>
 <div class="sect4">
-<h5 id="__code_jdbc_ds_list_code"><code>jdbc:ds-list</code></h5>
+<h5 id="_code_jdbc_ds_list_code"><code>jdbc:ds-list</code></h5>
 <div class="paragraph">
 <p>The <code>jdbc:ds-list</code> command lists the JDBC datasources:</p>
 </div>
 <div class="listingblock">
 <div class="content">
 <pre>karaf@root()&gt; jdbc:ds-list
-Name | Product | Version | URL | Status
----------------------------------------</pre>
+Name │ Service Id │ Product        │ Version              │ URL             │ Status
+─────┼────────────┼────────────────┼──────────────────────┼─────────────────┼───────
+test │ 112        │ Apache Derby   │ 10.8.2.2 - (1181258) │ jdbc:derby:test │ OK</pre>
 </div>
 </div>
 </div>
 <div class="sect4">
-<h5 id="__code_jdbc_ds_info_code"><code>jdbc:ds-info</code></h5>
+<h5 id="_code_jdbc_ds_info_code"><code>jdbc:ds-info</code></h5>
 <div class="paragraph">
-<p>The <code>jdbc:ds-info</code> command provides details about a JDBC datasource:</p>
+<p>The <code>jdbc:ds-info</code> command provides details about a JDBC datasource. The data source may be specified using name
+or service.id:</p>
 </div>
 <div class="listingblock">
 <div class="content">
@@ -11783,6 +11804,7 @@ Name | Product | Version | URL | Status
 Property       | Value
 --------------------------------------------------
 driver.version | 10.8.2.2 - (1181258)
+service.id     | 112
 username       | APP
 db.version     | 10.8.2.2 - (1181258)
 db.product     | Apache Derby
@@ -11792,7 +11814,7 @@ url            | jdbc:derby:test</pre>
 </div>
 </div>
 <div class="sect4">
-<h5 id="__code_jdbc_execute_code"><code>jdbc:execute</code></h5>
+<h5 id="_code_jdbc_execute_code"><code>jdbc:execute</code></h5>
 <div class="paragraph">
 <p>The <code>jdbc:execute</code> command executes a SQL query that doesn&#8217;t return any result on a given JDBC datasource.</p>
 </div>
@@ -11818,7 +11840,7 @@ karaf@root()&gt; jdbc:execute test "inse
 </div>
 </div>
 <div class="sect4">
-<h5 id="__code_jdbc_query_code"><code>jdbc:query</code></h5>
+<h5 id="_code_jdbc_query_code"><code>jdbc:query</code></h5>
 <div class="paragraph">
 <p>The <code>jdbc:query</code> command is similar to the <code>jdbc:execute</code> one but it displays the query result.</p>
 </div>
@@ -11836,7 +11858,7 @@ test       | test</pre>
 </div>
 </div>
 <div class="sect4">
-<h5 id="__code_jdbc_tables_code"><code>jdbc:tables</code></h5>
+<h5 id="_code_jdbc_tables_code"><code>jdbc:tables</code></h5>
 <div class="paragraph">
 <p>The <code>jdbc:tables</code> command displays all tables available on a given JDBC datasource:</p>
 </div>
@@ -11890,6 +11912,9 @@ REF_GENERATION | TYPE_NAME | TABLE_NAME
 <p><code>name</code> is the JDBC datasource name</p>
 </li>
 <li>
+<p><code>service.id</code> is the JDBC datasource ID of OSGi service</p>
+</li>
+<li>
 <p><code>product</code> is the database product backend</p>
 </li>
 <li>
@@ -11996,7 +12021,7 @@ and perform JMS operations (send or cons
 <div class="sect4">
 <h5 id="_commands_10">Commands</h5>
 <div class="sect5">
-<h6 id="__code_jms_create_code"><code>jms:create</code></h6>
+<h6 id="_code_jms_create_code"><code>jms:create</code></h6>
 <div class="paragraph">
 <p>The <code>jms:create</code> command creates a JMS connection factory in the Apache Karaf container. It automatically creates a
 blueprint XML file in the <code>deploy</code> folder containing the JMS connection factory definition corresponding
@@ -12125,7 +12150,7 @@ You have to install the required feature
 </div>
 </div>
 <div class="sect5">
-<h6 id="__code_jms_delete_code"><code>jms:delete</code></h6>
+<h6 id="_code_jms_delete_code"><code>jms:delete</code></h6>
 <div class="paragraph">
 <p>The <code>jms:delete</code> command deletes a JMS connection factory. The <code>name</code> argument is the name that you used at creation time:</p>
 </div>
@@ -12136,7 +12161,7 @@ You have to install the required feature
 </div>
 </div>
 <div class="sect5">
-<h6 id="__code_jms_connectionfactories_code"><code>jms:connectionfactories</code></h6>
+<h6 id="_code_jms_connectionfactories_code"><code>jms:connectionfactories</code></h6>
 <div class="paragraph">
 <p>The <code>jms:connectionfactories</code> command lists the JMS connection factories:</p>
 </div>
@@ -12150,7 +12175,7 @@ JMS Connection Factory
 </div>
 </div>
 <div class="sect5">
-<h6 id="__code_jms_info_code"><code>jms:info</code></h6>
+<h6 id="_code_jms_info_code"><code>jms:info</code></h6>
 <div class="paragraph">
 <p>The <code>jms:info</code> command provides details about the JMS connection factory:</p>
 </div>
@@ -12171,7 +12196,7 @@ version  | 5.9.0</pre>
 </div>
 </div>
 <div class="sect5">
-<h6 id="__code_jms_queues_code"><code>jms:queues</code></h6>
+<h6 id="_code_jms_queues_code"><code>jms:queues</code></h6>
 <div class="paragraph">
 <p>The <code>jms:queues</code> command lists the JMS queues available on a JMS broker. For instance:</p>
 </div>
@@ -12206,7 +12231,7 @@ For now, the command works only with Apa
 </div>
 </div>
 <div class="sect5">
-<h6 id="__code_jms_topics_code"><code>jms:topics</code></h6>
+<h6 id="_code_jms_topics_code"><code>jms:topics</code></h6>
 <div class="paragraph">
 <p>The <code>jms:topics</code> command lists the JMS topics available on a JMS broker. For instance:</p>
 </div>
@@ -12241,7 +12266,7 @@ For now, the command works only with Apa
 </div>
 </div>
 <div class="sect5">
-<h6 id="__code_jms_send_code"><code>jms:send</code></h6>
+<h6 id="_code_jms_send_code"><code>jms:send</code></h6>
 <div class="paragraph">
 <p>The <code>jms:send</code> command sends a message to a given JMS queue.</p>
 </div>
@@ -12258,7 +12283,7 @@ For now, the command works only with Apa
 </div>
 </div>
 <div class="sect5">
-<h6 id="__code_jms_consume_code"><code>jms:consume</code></h6>
+<h6 id="_code_jms_consume_code"><code>jms:consume</code></h6>
 <div class="paragraph">
 <p>The <code>jms:consume</code> command consumes messages from a JMS queue.</p>
 </div>
@@ -12294,7 +12319,7 @@ If you want to see the details of messag
 </div>
 </div>
 <div class="sect5">
-<h6 id="__code_jms_count_code"><code>jms:count</code></h6>
+<h6 id="_code_jms_count_code"><code>jms:count</code></h6>
 <div class="paragraph">
 <p>The <code>jms:count</code> command counts the number of pending messages into a JMS queue.</p>
 </div>
@@ -12314,7 +12339,7 @@ Messages Count
 </div>
 </div>
 <div class="sect5">
-<h6 id="__code_jms_browse_code"><code>jms:browse</code></h6>
+<h6 id="_code_jms_browse_code"><code>jms:browse</code></h6>
 <div class="paragraph">
 <p>The <code>jms:browse</code> command browses a JMS queue and display details about messages.</p>
 </div>
@@ -12352,7 +12377,7 @@ ID:vostro-59602-1387462183019-3:3:1:1:1
 </div>
 </div>
 <div class="sect5">
-<h6 id="__code_jms_move_code"><code>jms:move</code></h6>
+<h6 id="_code_jms_move_code"><code>jms:move</code></h6>
 <div class="paragraph">
 <p>The <code>jms:move</code> command consumes all messages from a JMS queue and send it to another one.</p>
 </div>
@@ -12768,7 +12793,8 @@ karaf.lock.jdbc.user=user
 karaf.lock.jdbc.password=password
 karaf.lock.jdbc.table=KARAF_LOCK
 karaf.lock.jdbc.clustername=karaf
-karaf.lock.jdbc.timeout=30</pre>
+karaf.lock.jdbc.timeout=30
+karaf.lock.lostThreshold=0</pre>
 </div>
 </div>
 <div class="ulist">
@@ -12787,6 +12813,9 @@ is the most generic database lock system
 <p><code>karaf.lock.delay</code> property is the interval period (in milliseconds) to check if the lock has been released or not.</p>
 </li>
 <li>
+<p><code>karaf.lock.lostThreshold</code> property is the count of attempts to re-acquire the lock before shutting down.</p>
+</li>
+<li>
 <p><code>karaf.lock.jdbc.url</code> property contains the JDBC URL to the database (derby in this example).</p>
 </li>
 <li>
@@ -13166,7 +13195,6 @@ objectName = connector:name=rmi
 
 #
 # Role name used for JMX access authorization
-# If not set, this defaults to the ${karaf.admin.role} configured in etc/system.properties
 #
 # jmxRole=admin</pre>
 </div>
@@ -13563,7 +13591,8 @@ Right now, the WebConsole doesn&#8217;t
 <div class="listingblock">
 <div class="content">
 <pre>scheduler:list
-scheduler:schedule
+scheduler:schedule-script
+scheduler:schedule-command
 scheduler:unschedule
 scheduler:reschedule</pre>
 </div>
@@ -13578,8 +13607,8 @@ scheduler:reschedule</pre>
 <caption class="title">Table 1. Scheduler properties</caption>
 <colgroup>
 <col style="width: 20%;">
-<col style="width: 13%;">
-<col style="width: 66%;">
+<col style="width: 13.3333%;">
+<col style="width: 66.6667%;">
 </colgroup>
 <thead>
 <tr>
@@ -13595,6 +13624,11 @@ scheduler:reschedule</pre>
 <td class="tableblock halign-left valign-top"><p class="tableblock">Defines the period for a job. The period is expressed in seconds. This property needs to be of type Long.</p></td>
 </tr>
 <tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock">Scheduler.PROPERTY_SCHEDULER_TIMES</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">-1</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">Defines the number of times the job is executed. -1 means infinite.</p></td>
+</tr>
+<tr>
 <td class="tableblock halign-left valign-top"><p class="tableblock">Scheduler.PROPERTY_SCHEDULER_IMMEDIATE</p></td>
 <td class="tableblock halign-left valign-top"><p class="tableblock">false</p></td>
 <td class="tableblock halign-left valign-top"><p class="tableblock">Define if a periodically job should be scheduled immediate.
@@ -13687,12 +13721,34 @@ Name                       │ Schedu
 PingJob.126                │ at(2017-11-22T15:37:17.103+01:00, -1, 10)</pre>
 </div>
 </div>
+<div class="paragraph">
+<p>It&#8217;s also possible to pass the number of execution of the scheduler job using the <code>scheduler.times</code> service property:</p>
+</div>
+<div class="listingblock">
+<div class="content">
+<pre class="CodeRay highlight"><code>@Component(immediate = true, property = {
+    "scheduler.period:Long=60",
+    "scheduler.times:Integer=5",
+    "scheduler.concurrent:Boolean=false",
+    "scheduler.name=PingJob"
+  }
+)
+public class PingThread implements Runnable {
+
+  @Override
+  public void run() {
+    // ..
+  }
+
+}</code></pre>
+</div>
+</div>
 </div>
 <div class="sect3">
 <h4 id="_schedule_a_new_job_using_the_gogo_shell">4.20.4. Schedule a new Job using the Gogo Shell</h4>
 <div class="listingblock">
 <div class="content">
-<pre>karaf@root()&gt; scheduler:schedule --help
+<pre>karaf@root()&gt; scheduler:schedule-script --help
 DESCRIPTION
         scheduler:schedule
 
@@ -13725,7 +13781,42 @@ OPTIONS
 </div>
 </div>
 <div class="sect3">
-<h4 id="_schedule_a_new_job_using_the_scheduler_service">4.20.5. Schedule a new Job using the Scheduler Service</h4>
+<h4 id="_schedule_a_command">4.20.5. Schedule a command</h4>
+<div class="listingblock">
+<div class="content">
+<pre>karaf@root()&gt; scheduler:schedule-command --help
+DESCRIPTION
+        scheduler:schedule-command
+
+        Schedule a command execution
+
+SYNTAX
+        scheduler:schedule-command [options] command
+
+ARGUMENTS
+        command
+                The command to schedule
+                (required)
+
+OPTIONS
+        --period
+                Time during executions (in seconds)
+        --at
+                Absolute date in ISO format (ex: 2014-05-13T13:56:45)
+        --help
+                Display this help message
+        --times
+                Number of times this job should be executed
+                (defaults to -1)
+        --concurrent
+                Should jobs run concurrently or not (defaults to false)
+        --cron
+                The cron expression</pre>
+</div>
+</div>
+</div>
+<div class="sect3">
+<h4 id="_schedule_a_new_job_using_the_scheduler_service">4.20.6. Schedule a new Job using the Scheduler Service</h4>
 <div class="paragraph">
 <p>Recommendation: Before using this low level api for registering jobs, consider using the whitebox approach instead.</p>
 </div>
@@ -13753,7 +13844,7 @@ public class Demo {
 </div>
 </div>
 <div class="sect3">
-<h4 id="_update_scheduling_of_an_existing_job">4.20.6. Update scheduling of an existing job</h4>
+<h4 id="_update_scheduling_of_an_existing_job">4.20.7. Update scheduling of an existing job</h4>
 <div class="paragraph">
 <p>You can change the scheduling of an existing job using <code>scheduler:reschedule</code> command.</p>
 </div>
@@ -13762,6 +13853,69 @@ public class Demo {
 as argument (as given by the <code>scheduler:list</code> command).</p>
 </div>
 </div>
+<div class="sect3">
+<h4 id="_using_shared_jobs_store">4.20.8. Using shared jobs store</h4>
+<div class="paragraph">
+<p>By the default, the Apache Karaf scheduler uses a memory storage for jobs. It&#8217;s local to a single Karaf instance.</p>
+</div>
+<div class="paragraph">
+<p>You can setup several Karaf instances scheduler to use a shared job storage. It&#8217;s especially interesting when you have
+a farm or cluster of Karaf instances.</p>
+</div>
+<div class="paragraph">
+<p>For instance, you can use a database as storage.</p>
+</div>
+<div class="paragraph">
+<p>You can create the datasource to this database, using the regular Karaf <code>jdbc</code> commands. For instance, to setup a <code>DataSource</code>
+for a remote Derby database, you can do:</p>
+</div>
+<div class="listingblock">
+<div class="content">
+<pre>karaf@root()&gt; feature:install jdbc
+karaf@root()&gt; feature:install pax-jdbc-derbyclient
+karaf@root()&gt; jdbc:ds-create -dn derbyclient -url jdbc:derby://host:1527/karaf_scheduler scheduler
+karaf@root()&gt; feature:install jndi</pre>
+</div>
+</div>
+<div class="paragraph">
+<p>You have to init the DataBase tables with the SQL scripts provided in Quartz distribution (in the <code>docs/dbTables</code> directory).</p>
+</div>
+<div class="paragraph">
+<p>Then you can configure the Karaf Scheduler to use this job storage, updating the <code>etc/org.apache.karaf.scheduler.cfg</code> file like this:</p>
+</div>
+<div class="listingblock">
+<div class="content">
+<pre>#============================================================================
+# Configure Karaf Scheduler Properties
+#============================================================================
+org.quartz.scheduler.instanceName=Karaf
+org.quartz.scheduler.instanceId=AUTO
+
+#============================================================================
+# Configure ThreadPool
+#============================================================================
+org.quartz.threadPool.class=org.quartz.simpl.SimpleThreadPool
+org.quartz.threadPool.threadCount=30
+org.quartz.threadPool.threadPriority=5
+
+
+#============================================================================
+# Configure JDBC DataSource
+#============================================================================
+org.quartz.dataSource.scheduler.jndiURL=osgi:service/javax.sql.DataSource/(osgi.jndi.service.name=scheduler)
+
+#============================================================================
+# Configure JDBC JobStore
+#============================================================================
+org.quartz.jobStore.class=org.quartz.impl.jdbcjobstore.JobStoreTX
+org.quartz.jobStore.dataSource=scheduler
+org.quartz.jobStore.driverDelegateClass=org.quartz.impl.jdbcjobstore.StdJDBCDelegate</pre>
+</div>
+</div>
+<div class="paragraph">
+<p>Then several Karaf instances scheduler will share the same JDBC job store and can work in a "cluster" way.</p>
+</div>
+</div>
 </div>
 <div class="sect2">
 <h3 id="_tuning">4.21. Tuning</h3>
@@ -14481,6 +14635,10 @@ karaf@root()&gt; %(SQRT(a^2 + b^2))
 <td class="tableblock halign-left valign-top"><p class="tableblock">&amp;&amp;</p></td>
 <td class="tableblock halign-left valign-top"><p class="tableblock">Boolean and</p></td>
 </tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock">||</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">Boolean or</p></td>
+</tr>
 </tbody>
 </table>
 </div>
@@ -15035,7 +15193,7 @@ The values default to the ones in <code>
 <div class="sect3">
 <h4 id="_branding_bundle">5.5.1. Branding bundle</h4>
 <div class="paragraph">
-<p>See [<a href="https://github.com/apache/karaf/examples/karaf-branding-example/README.md" class="bare">https://github.com/apache/karaf/examples/karaf-branding-example/README.md</a>].</p>
+<p>See [<a href="https://github.com/apache/karaf/tree/master/examples/karaf-branding-example" class="bare">https://github.com/apache/karaf/tree/master/examples/karaf-branding-example</a>].</p>
 </div>
 </div>
 <div class="sect3">
@@ -15234,7 +15392,7 @@ webconsole.stylesheet = /res/karaf/ui/we
 <p>The <code>karaf-maven-plugin</code> is able to generate documentation for Karaf commands</p>
 </div>
 <div class="sect4">
-<h5 id="__code_karaf_commands_generate_help_code"><code>karaf:commands-generate-help</code></h5>
+<h5 id="_code_karaf_commands_generate_help_code"><code>karaf:commands-generate-help</code></h5>
 <div class="paragraph">
 <p>The <code>karaf:commands-generate-help</code> goal generates documentation containing Karaf commands help.</p>
 </div>
@@ -15280,9 +15438,9 @@ option in the Karaf shell console.</p>
 <h6 id="_parameters">Parameters</h6>
 <table class="tableblock frame-all grid-all spread">
 <colgroup>
-<col style="width: 33%;">
-<col style="width: 33%;">
-<col style="width: 33%;">
+<col style="width: 33.3333%;">
+<col style="width: 33.3333%;">
+<col style="width: 33.3334%;">
 </colgroup>
 <thead>
 <tr>
@@ -15332,7 +15490,7 @@ option in the Karaf shell console.</p>
 <p>The <code>karaf-maven-plugin</code> provides several goals to help you create and verify features XML descriptors as well as leverage your features to create a custom Karaf distribution.</p>
 </div>
 <div class="sect4">
-<h5 id="__code_karaf_features_generate_descriptor_code"><code>karaf:features-generate-descriptor</code></h5>
+<h5 id="_code_karaf_features_generate_descriptor_code"><code>karaf:features-generate-descriptor</code></h5>
 <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>
@@ -15358,9 +15516,9 @@ By default, it will follow Maven transit
 </div>
 <table class="tableblock frame-all grid-all spread">
 <colgroup>
-<col style="width: 33%;">
-<col style="width: 33%;">
-<col style="width: 33%;">
+<col style="width: 33.3333%;">
+<col style="width: 33.3333%;">
+<col style="width: 33.3334%;">
 </colgroup>
 <thead>
 <tr>
@@ -15453,7 +15611,7 @@ This can be overridden by specifying the
 </div>
 </div>
 <div class="sect4">
-<h5 id="__code_karaf_verify_code"><code>karaf:verify</code></h5>
+<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>
@@ -15513,9 +15671,9 @@ It reads the definition for the packages
 <h6 id="_parameters_2">Parameters</h6>
 <table class="tableblock frame-all grid-all spread">
 <colgroup>
-<col style="width: 33%;">

[... 215 lines stripped ...]