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 2016/05/06 12:23:18 UTC

svn commit: r1742536 [22/23] - in /karaf/site/production/manual/latest-2.x: ./ commands/ css/ css/scalate/ developers-guide/ images/ users-guide/

Added: karaf/site/production/manual/latest-2.x/users-guide/provisioning-schema.html
URL: http://svn.apache.org/viewvc/karaf/site/production/manual/latest-2.x/users-guide/provisioning-schema.html?rev=1742536&view=auto
==============================================================================
--- karaf/site/production/manual/latest-2.x/users-guide/provisioning-schema.html (added)
+++ karaf/site/production/manual/latest-2.x/users-guide/provisioning-schema.html Fri May  6 12:23:15 2016
@@ -0,0 +1,150 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML Basic 1.1//EN" "http://www.w3.org/TR/xhtml-basic/xhtml-basic11.dtd"> 
+<html lang="en">
+  <head>
+    <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
+    <meta name="description" content="description goes here"/>
+    <meta name="keywords" content="keywords,goes,here"/>
+    <meta name="author" content="The Apache Karaf Team"/>
+    <link href="../css/style.css" rel="stylesheet" type="text/css"/>
+    <link href="../css/pygmentize.css" rel="stylesheet" type="text/css"/>
+    <title>
+      Apache Karaf 2.4.5-SNAPSHOT Guides
+    </title>
+  </head>
+  <body>
+    <table width="100%" cellpadding="0" cellspacing="0">
+      <tr width="100%">
+        <td id="cell-0-0" colspan="2">
+          &nbsp;
+        </td>
+        <td id="cell-0-1">
+          &nbsp;
+        </td>
+        <td id="cell-0-2" colspan="2">
+          &nbsp;
+        </td>
+      </tr>
+      <tr width="100%">
+        <td id="cell-1-0">
+          &nbsp;
+        </td>
+        <td id="cell-1-1">
+          &nbsp;
+        </td>
+        <td id="cell-1-2">
+          <div style="padding: 5px;">
+            <div id="banner">
+                    <table border="0" cellpadding="0" cellspacing="0" width="100%">
+        <tr>
+          <td align="left" class="topbardiv" nowrap="">
+<a href="http://karaf.apache.org/" title="A server side OSGi distribution">
+            <img border="0" src="../images/karaf-logo.png" width="400px"></img>
+</a>
+          </td>
+          <td align="right" nowrap="">
+<a href="http://www.apache.org/" title="The Apache Sofware Foundation">
+            <img border="0" src="../images/asf-logo.png">
+</a>
+          </td>
+        </tr>
+      </table>
+
+            </div>
+            <div id="top-menu">
+              <table border="0" cellpadding="1" cellspacing="0" width="100%">
+                <tr>
+                  <td>
+                    <div align="left"></div>
+                  </td>
+                  <td>
+                    <div align="right">
+                      <p>
+<a href="../index.html" title="Home">Home</a>
+&#124;
+<a href="index.html" title="Users Guide">Users Guide</a>
+&#124;
+<a href="../developers-guide/index.html" title="Developers Guide">Developers Guide</a>
+</p>
+
+
+                    </div>
+                  </td>
+                </tr>
+              </table>
+            </div>
+          </div>
+        </td>
+        <td id="cell-1-3">
+          &nbsp;
+        </td>
+        <td id="cell-1-4">
+          &nbsp;
+        </td>
+      </tr>
+      <tr width="100%">
+        <td id="cell-2-0" colspan="2">
+          &nbsp;
+        </td>
+        <td id="cell-2-1">
+          <table>
+            <tr height="100%" valign="top">
+              <td height="100%">
+                <div id="wrapper-menu-page-right">
+                  <div id="wrapper-menu-page-top">
+                    <div id="wrapper-menu-page-bottom">
+                      <div id="menu-page">
+                        <h3 id="Homeindex"><a href="../index.html">Home</a></h3><ul style="list-style: square"><li><a href="../overview.html">Overview</a></li><li><a href="../quick-start.html">Quick Start</a></li></ul><h3 id="UsersGuideusersguideindex"><a href="index.html">Users Guide</a></h3><ul style="list-style: square"><li><a href="installation.html">Installing Karaf</a></li><li><a href="directory-structure.html">Directory Structure</a></li><li><a href="start-stop.html">Starting and stopping Karaf</a></li><li><a href="wrapper.html">OS integration</a></li><li><a href="using-console.html">Using the console</a></li><li><a href="remote-console.html">Remote console</a></li><li><a href="web-console.html">Web console</a></li><li><a href="child-instances.html">Child instances</a></li><li><a href="security.html">Security</a></li><li><a href="failover.html">Failover Deployments</a></li><li><a href="logging-system.html">Logging system</a></li><li><a href="deployer.html">Deployer</a></li><l
 i><a href="provisioning.html">Provisioning</a></li><li><a href="kar.html">KAR archive</a></li><li><a href="configuration.html">Configuration</a></li><li><a href="http.html">HTTP service</a></li><li><a href="web-applications.html">Web applications</a></li><li><a href="jre-tuning.html">JRE tuning</a></li><li><a href="jmx.html">JMX for administration and monitoring</a></li></ul><h3 id="DevelopersGuidedevelopersguideindex"><a href="../developers-guide/index.html">Developers Guide</a></h3><ul style="list-style: square"><li><a href="../developers-guide/archetypes.html">Maven Archetypes</a></li><li><a href="../developers-guide/branding-console.html">Branding the Console</a></li><li><a href="../developers-guide/extending-console.html">Extending the Console</a></li><li><a href="../developers-guide/custom-distribution.html">Custom Distribution</a></li><li><a href="../developers-guide/security-framework.html">Security Framework</a></li><li><a href="../developers-guide/features-maven-plugin.htm
 l">Using the features-maven-plugin</a></li><li><a href="../developers-guide/debugging.html">Troubleshooting, Debugging and Profiling</a></li><li><a href="../developers-guide/connect-console.html">Programmatically connect to the console</a></li><li><a href="../developers-guide/writing-tests.html">Writing integration tests</a></li><li><a href="../developers-guide/creating-bundles.html">Creating bundles</a></li><li><a href="../developers-guide/shell-syntax.html">Shell syntax</a></li><li><a href="../developers-guide/github-contributions.html">Github Contributions</a></li></ul><h3 id="Commandscommandscommands"><a href="../commands/commands.html">Commands</a></h3>
+                      </div>
+                    </div>
+                  </div>
+                </div>
+              </td>
+              <td height="100%" width="100%">
+                <div class="wiki-content">
+<h1 id="XMLSchemaforprovisioning">XML Schema for provisioning</h1><p>The following schema can be found in Karaf sources. It is also available publicly at url http://karaf.apache.org/xmlns/features/v1.0.0.</p><div class="syntax"><div class="highlight"><pre><span class="cp">&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot;?&gt;</span>&#x000A;<span class="c">&lt;!--</span>&#x000A;<span class="c">    Licensed to the Apache Software Foundation (ASF) under one or more</span>&#x000A;<span class="c">    contributor license agreements. See the NOTICE file distributed with</span>&#x000A;<span class="c">    this work for additional information regarding copyright ownership.</span>&#x000A;<span class="c">    The ASF licenses this file to You under the Apache License, Version 2.0</span>&#x000A;<span class="c">    (the &quot;License&quot;); you may not use this file except in compliance with</span>&#x000A;<span class="c">    the License. You may obtain a copy of the License at</span>&#x
 000A;&#x000A;<span class="c">       http://www.apache.org/licenses/LICENSE-2.0</span>&#x000A;&#x000A;<span class="c">    Unless required by applicable law or agreed to in writing, software</span>&#x000A;<span class="c">    distributed under the License is distributed on an &quot;AS IS&quot; BASIS,</span>&#x000A;<span class="c">    WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.</span>&#x000A;<span class="c">    See the License for the specific language governing permissions and</span>&#x000A;<span class="c">    limitations under the License.</span>&#x000A;&#x000A;<span class="c">--&gt;</span>&#x000A;<span class="nt">&lt;xs:schema</span> <span class="na">elementFormDefault=</span><span class="s">&quot;qualified&quot;</span>&#x000A;    <span class="na">targetNamespace=</span><span class="s">&quot;http://karaf.apache.org/xmlns/features/v1.0.0&quot;</span>&#x000A;    <span class="na">xmlns:tns=</span><span class="s">&quot;http://karaf.apache.org/xmlns/features/v
 1.0.0&quot;</span>&#x000A;    <span class="na">xmlns:xs=</span><span class="s">&quot;http://www.w3.org/2001/XMLSchema&quot;</span><span class="nt">&gt;</span>&#x000A;&#x000A;    <span class="nt">&lt;xs:annotation&gt;</span>&#x000A;        <span class="nt">&lt;xs:documentation&gt;</span><span class="cp">&lt;![CDATA[</span>&#x000A;<span class="cp">Karaf features mechanism. For documentation please visit the</span>&#x000A;<span class="cp">&lt;a href=&quot;http://karaf.apache.org/&quot;&gt;Karaf website&lt;/a&gt;.</span>&#x000A;<span class="cp">        ]]&gt;</span><span class="nt">&lt;/xs:documentation&gt;</span>&#x000A;    <span class="nt">&lt;/xs:annotation&gt;</span>&#x000A;&#x000A;    <span class="nt">&lt;xs:complexType</span> <span class="na">name=</span><span class="s">&quot;features&quot;</span><span class="nt">&gt;</span>&#x000A;        <span class="nt">&lt;xs:annotation&gt;</span>&#x000A;            <span class="nt">&lt;xs:documentation&gt;</span><span class="cp">&lt;![CDATA[<
 /span>&#x000A;<span class="cp">Root element of Feature definition. It contains optional attribute for</span>&#x000A;<span class="cp">designating from which repository this feature should be loaded. The Karaf</span>&#x000A;<span class="cp">shell will show the repository name when displaying information about the feature.</span>&#x000A;<span class="cp">            ]]&gt;</span><span class="nt">&lt;/xs:documentation&gt;</span>&#x000A;        <span class="nt">&lt;/xs:annotation&gt;</span>&#x000A;        <span class="nt">&lt;xs:choice</span> <span class="na">minOccurs=</span><span class="s">&quot;0&quot;</span> <span class="na">maxOccurs=</span><span class="s">&quot;unbounded&quot;</span><span class="nt">&gt;</span>&#x000A;            <span class="nt">&lt;xs:element</span> <span class="na">name=</span><span class="s">&quot;repository&quot;</span> <span class="na">type=</span><span class="s">&quot;xs:anyURI&quot;</span><span class="nt">&gt;</span>&#x000A;                <span class="nt">&
 lt;xs:annotation&gt;</span>&#x000A;                    <span class="nt">&lt;xs:documentation&gt;</span><span class="cp">&lt;![CDATA[</span>&#x000A;<span class="cp">Additional repositories where dependencies are stored.</span>&#x000A;<span class="cp">                    ]]&gt;</span><span class="nt">&lt;/xs:documentation&gt;</span>&#x000A;                <span class="nt">&lt;/xs:annotation&gt;</span>&#x000A;            <span class="nt">&lt;/xs:element&gt;</span>&#x000A;            <span class="nt">&lt;xs:element</span> <span class="na">name=</span><span class="s">&quot;feature&quot;</span> <span class="na">type=</span><span class="s">&quot;tns:feature&quot;</span><span class="nt">&gt;</span>&#x000A;                <span class="nt">&lt;xs:annotation&gt;</span>&#x000A;                    <span class="nt">&lt;xs:documentation&gt;</span><span class="cp">&lt;![CDATA[</span>&#x000A;<span class="cp">Feature definition.</span>&#x000A;<span class="cp">                    ]]&gt;</span><span cl
 ass="nt">&lt;/xs:documentation&gt;</span>&#x000A;                <span class="nt">&lt;/xs:annotation&gt;</span>&#x000A;            <span class="nt">&lt;/xs:element&gt;</span>&#x000A;        <span class="nt">&lt;/xs:choice&gt;</span>&#x000A;        <span class="nt">&lt;xs:attribute</span> <span class="na">name=</span><span class="s">&quot;name&quot;</span> <span class="na">type=</span><span class="s">&quot;xs:string&quot;</span> <span class="nt">/&gt;</span>&#x000A;    <span class="nt">&lt;/xs:complexType&gt;</span>&#x000A;&#x000A;    <span class="nt">&lt;xs:complexType</span> <span class="na">name=</span><span class="s">&quot;feature&quot;</span><span class="nt">&gt;</span>&#x000A;        <span class="nt">&lt;xs:annotation&gt;</span>&#x000A;            <span class="nt">&lt;xs:documentation&gt;</span><span class="cp">&lt;![CDATA[</span>&#x000A;<span class="cp">Definition of the Feature.</span>&#x000A;<span class="cp">            ]]&gt;</span><span class="nt">&lt;/xs:documentation&gt;
 </span>&#x000A;        <span class="nt">&lt;/xs:annotation&gt;</span>&#x000A;        <span class="nt">&lt;xs:choice</span> <span class="na">minOccurs=</span><span class="s">&quot;0&quot;</span> <span class="na">maxOccurs=</span><span class="s">&quot;unbounded&quot;</span><span class="nt">&gt;</span>&#x000A;            <span class="nt">&lt;xs:element</span> <span class="na">name=</span><span class="s">&quot;details&quot;</span> <span class="na">minOccurs=</span><span class="s">&quot;0&quot;</span> <span class="na">type=</span><span class="s">&quot;xs:string&quot;</span><span class="nt">&gt;</span>&#x000A;                <span class="nt">&lt;xs:annotation&gt;</span>&#x000A;                    <span class="nt">&lt;xs:documentation&gt;</span><span class="cp">&lt;![CDATA[</span>&#x000A;<span class="cp">The help shown for this feature when using the feature:info console command.</span>&#x000A;<span class="cp">                    ]]&gt;</span>&#x000A;                    <span class="nt">&l
 t;/xs:documentation&gt;</span>&#x000A;                <span class="nt">&lt;/xs:annotation&gt;</span>&#x000A;            <span class="nt">&lt;/xs:element&gt;</span>&#x000A;            <span class="nt">&lt;xs:element</span> <span class="na">name=</span><span class="s">&quot;config&quot;</span> <span class="na">type=</span><span class="s">&quot;tns:config&quot;</span> <span class="nt">/&gt;</span>&#x000A;            <span class="nt">&lt;xs:element</span> <span class="na">name=</span><span class="s">&quot;configfile&quot;</span> <span class="na">type=</span><span class="s">&quot;tns:configFile&quot;</span> <span class="nt">/&gt;</span>&#x000A;            <span class="nt">&lt;xs:element</span> <span class="na">name=</span><span class="s">&quot;feature&quot;</span> <span class="na">type=</span><span class="s">&quot;tns:dependency&quot;</span> <span class="nt">/&gt;</span>&#x000A;            <span class="nt">&lt;xs:element</span> <span class="na">name=</span><span class="s">&quot;bundle&qu
 ot;</span> <span class="na">type=</span><span class="s">&quot;tns:bundle&quot;</span> <span class="nt">/&gt;</span>&#x000A;        <span class="nt">&lt;/xs:choice&gt;</span>&#x000A;        <span class="nt">&lt;xs:attribute</span> <span class="na">name=</span><span class="s">&quot;name&quot;</span> <span class="na">type=</span><span class="s">&quot;tns:featureName&quot;</span> <span class="na">use=</span><span class="s">&quot;required&quot;</span> <span class="nt">/&gt;</span>&#x000A;        <span class="nt">&lt;xs:attribute</span> <span class="na">name=</span><span class="s">&quot;version&quot;</span> <span class="na">type=</span><span class="s">&quot;xs:string&quot;</span> <span class="na">default=</span><span class="s">&quot;0.0.0&quot;</span> <span class="nt">/&gt;</span>&#x000A;        <span class="nt">&lt;xs:attribute</span> <span class="na">name=</span><span class="s">&quot;description&quot;</span> <span class="na">type=</span><span class="s">&quot;xs:string&quot;</span> <span
  class="nt">/&gt;</span>&#x000A;        <span class="nt">&lt;xs:attribute</span> <span class="na">name=</span><span class="s">&quot;resolver&quot;</span> <span class="na">type=</span><span class="s">&quot;tns:resolver&quot;</span><span class="nt">&gt;</span>&#x000A;            <span class="nt">&lt;xs:annotation&gt;</span>&#x000A;                <span class="nt">&lt;xs:documentation&gt;</span><span class="cp">&lt;![CDATA[</span>&#x000A;<span class="cp">Optional alternative resolver to use for determining the list of bundles to install for a given feature.</span>&#x000A;<span class="cp">                ]]&gt;</span>&#x000A;                <span class="nt">&lt;/xs:documentation&gt;</span>&#x000A;            <span class="nt">&lt;/xs:annotation&gt;</span>&#x000A;        <span class="nt">&lt;/xs:attribute&gt;</span>&#x000A;        <span class="nt">&lt;xs:attribute</span> <span class="na">name=</span><span class="s">&quot;install&quot;</span> <span class="na">type=</span><span class="s">&q
 uot;tns:install&quot;</span><span class="nt">&gt;</span>&#x000A;            <span class="nt">&lt;xs:annotation&gt;</span>&#x000A;                <span class="nt">&lt;xs:documentation&gt;</span><span class="cp">&lt;![CDATA[</span>&#x000A;<span class="cp">If true, marks that the feature should start automatically when placed in the deploy folder.</span>&#x000A;<span class="cp">                ]]&gt;</span>&#x000A;                <span class="nt">&lt;/xs:documentation&gt;</span>&#x000A;            <span class="nt">&lt;/xs:annotation&gt;</span>&#x000A;        <span class="nt">&lt;/xs:attribute&gt;</span>&#x000A;        <span class="nt">&lt;xs:attribute</span> <span class="na">name=</span><span class="s">&quot;start-level&quot;</span> <span class="na">type=</span><span class="s">&quot;xs:int&quot;</span><span class="nt">&gt;</span>&#x000A;             <span class="nt">&lt;xs:annotation&gt;</span>&#x000A;                <span class="nt">&lt;xs:documentation&gt;</span><span class="cp">&lt;
 ![CDATA[</span>&#x000A;<span class="cp">Set this attribute to have an OSGi start level for this feature different</span>&#x000A;<span class="cp">from the default start level defined in Karaf&#39;s config.properties.</span>&#x000A;<span class="cp">                ]]&gt;</span>&#x000A;                <span class="nt">&lt;/xs:documentation&gt;</span>&#x000A;             <span class="nt">&lt;/xs:annotation&gt;</span>&#x000A;         <span class="nt">&lt;/xs:attribute&gt;</span>&#x000A;    <span class="nt">&lt;/xs:complexType&gt;</span>&#x000A;&#x000A;    <span class="nt">&lt;xs:complexType</span> <span class="na">name=</span><span class="s">&quot;bundle&quot;</span><span class="nt">&gt;</span>&#x000A;        <span class="nt">&lt;xs:annotation&gt;</span>&#x000A;            <span class="nt">&lt;xs:documentation&gt;</span><span class="cp">&lt;![CDATA[</span>&#x000A;<span class="cp">Deployable element to install.</span>&#x000A;<span class="cp">            ]]&gt;</span><span class="nt">&lt;/
 xs:documentation&gt;</span>&#x000A;        <span class="nt">&lt;/xs:annotation&gt;</span>&#x000A;        <span class="nt">&lt;xs:simpleContent&gt;</span>&#x000A;            <span class="nt">&lt;xs:extension</span> <span class="na">base=</span><span class="s">&quot;xs:anyURI&quot;</span><span class="nt">&gt;</span>&#x000A;                <span class="nt">&lt;xs:attribute</span> <span class="na">name=</span><span class="s">&quot;start-level&quot;</span> <span class="na">type=</span><span class="s">&quot;xs:int&quot;</span><span class="nt">&gt;</span>&#x000A;                    <span class="nt">&lt;xs:annotation&gt;</span>&#x000A;                        <span class="nt">&lt;xs:documentation&gt;</span><span class="cp">&lt;![CDATA[</span>&#x000A;<span class="cp">Set this attribute to have an OSGi start level for this bundle different</span>&#x000A;<span class="cp">from the default start level defined in Karaf&#39;s config.properties.</span>&#x000A;<span class="cp">                       
  ]]&gt;</span>&#x000A;                        <span class="nt">&lt;/xs:documentation&gt;</span>&#x000A;                    <span class="nt">&lt;/xs:annotation&gt;</span>&#x000A;                <span class="nt">&lt;/xs:attribute&gt;</span>&#x000A;                <span class="nt">&lt;xs:attribute</span> <span class="na">name=</span><span class="s">&quot;start&quot;</span> <span class="na">type=</span><span class="s">&quot;xs:boolean&quot;</span><span class="nt">&gt;</span>&#x000A;                    <span class="nt">&lt;xs:annotation&gt;</span>&#x000A;                        <span class="nt">&lt;xs:documentation&gt;</span><span class="cp">&lt;![CDATA[</span>&#x000A;<span class="cp">If false, leaves bundle in resolved start rather than the default active state.</span>&#x000A;<span class="cp">                        ]]&gt;</span>&#x000A;                        <span class="nt">&lt;/xs:documentation&gt;</span>&#x000A;                    <span class="nt">&lt;/xs:annotation&gt;</span>&#x00
 0A;                <span class="nt">&lt;/xs:attribute&gt;</span>&#x000A;                <span class="nt">&lt;xs:attribute</span> <span class="na">name=</span><span class="s">&quot;dependency&quot;</span> <span class="na">type=</span><span class="s">&quot;xs:boolean&quot;</span><span class="nt">&gt;</span>&#x000A;                    <span class="nt">&lt;xs:annotation&gt;</span>&#x000A;                        <span class="nt">&lt;xs:documentation&gt;</span><span class="cp">&lt;![CDATA[</span>&#x000A;<span class="cp">Mark bundle as a dependency for the resolver.</span>&#x000A;<span class="cp">                        ]]&gt;</span>&#x000A;                        <span class="nt">&lt;/xs:documentation&gt;</span>&#x000A;                    <span class="nt">&lt;/xs:annotation&gt;</span>&#x000A;                <span class="nt">&lt;/xs:attribute&gt;</span>&#x000A;            <span class="nt">&lt;/xs:extension&gt;</span>&#x000A;        <span class="nt">&lt;/xs:simpleContent&gt;</span>&#x000A; 
    <span class="nt">&lt;/xs:complexType&gt;</span>&#x000A;&#x000A;    <span class="nt">&lt;xs:complexType</span> <span class="na">name=</span><span class="s">&quot;dependency&quot;</span><span class="nt">&gt;</span>&#x000A;        <span class="nt">&lt;xs:annotation&gt;</span>&#x000A;            <span class="nt">&lt;xs:documentation&gt;</span><span class="cp">&lt;![CDATA[</span>&#x000A;<span class="cp">Dependency of feature.</span>&#x000A;<span class="cp">            ]]&gt;</span><span class="nt">&lt;/xs:documentation&gt;</span>&#x000A;        <span class="nt">&lt;/xs:annotation&gt;</span>&#x000A;        <span class="nt">&lt;xs:simpleContent&gt;</span>&#x000A;            <span class="nt">&lt;xs:extension</span> <span class="na">base=</span><span class="s">&quot;tns:featureName&quot;</span><span class="nt">&gt;</span>&#x000A;                <span class="nt">&lt;xs:attribute</span> <span class="na">name=</span><span class="s">&quot;version&quot;</span> <span class="na">type=</span><spa
 n class="s">&quot;xs:string&quot;</span> <span class="na">default=</span><span class="s">&quot;0.0.0&quot;</span> <span class="nt">/&gt;</span>&#x000A;            <span class="nt">&lt;/xs:extension&gt;</span>&#x000A;        <span class="nt">&lt;/xs:simpleContent&gt;</span>&#x000A;    <span class="nt">&lt;/xs:complexType&gt;</span>&#x000A;&#x000A;    <span class="nt">&lt;xs:complexType</span> <span class="na">name=</span><span class="s">&quot;config&quot;</span><span class="nt">&gt;</span>&#x000A;        <span class="nt">&lt;xs:annotation&gt;</span>&#x000A;            <span class="nt">&lt;xs:documentation&gt;</span><span class="cp">&lt;![CDATA[</span>&#x000A;<span class="cp">Configuration entries which should be created during feature installation. This</span>&#x000A;<span class="cp">configuration may be used with OSGi Configuration Admin. The element content is</span>&#x000A;<span class="cp">read in as a properties file.</span>&#x000A;<span class="cp">            ]]&gt;</span><span 
 class="nt">&lt;/xs:documentation&gt;</span>&#x000A;        <span class="nt">&lt;/xs:annotation&gt;</span>&#x000A;        <span class="nt">&lt;xs:simpleContent&gt;</span>&#x000A;            <span class="nt">&lt;xs:extension</span> <span class="na">base=</span><span class="s">&quot;xs:string&quot;</span><span class="nt">&gt;</span>&#x000A;                <span class="nt">&lt;xs:attribute</span> <span class="na">name=</span><span class="s">&quot;name&quot;</span> <span class="na">type=</span><span class="s">&quot;xs:string&quot;</span> <span class="na">use=</span><span class="s">&quot;required&quot;</span> <span class="nt">/&gt;</span>&#x000A;            <span class="nt">&lt;/xs:extension&gt;</span>&#x000A;        <span class="nt">&lt;/xs:simpleContent&gt;</span>&#x000A;    <span class="nt">&lt;/xs:complexType&gt;</span>&#x000A;&#x000A;    <span class="nt">&lt;xs:complexType</span> <span class="na">name=</span><span class="s">&quot;configFile&quot;</span><span class="nt">&gt;</span>&#x
 000A;        <span class="nt">&lt;xs:annotation&gt;</span>&#x000A;            <span class="nt">&lt;xs:documentation&gt;</span><span class="cp">&lt;![CDATA[</span>&#x000A;<span class="cp">Additional configuration files which should be created during feature installation.</span>&#x000A;<span class="cp">            ]]&gt;</span><span class="nt">&lt;/xs:documentation&gt;</span>&#x000A;        <span class="nt">&lt;/xs:annotation&gt;</span>&#x000A;        <span class="nt">&lt;xs:simpleContent&gt;</span>&#x000A;            <span class="nt">&lt;xs:extension</span> <span class="na">base=</span><span class="s">&quot;xs:anyURI&quot;</span><span class="nt">&gt;</span>&#x000A;                <span class="nt">&lt;xs:attribute</span> <span class="na">name=</span><span class="s">&quot;finalname&quot;</span> <span class="na">type=</span><span class="s">&quot;xs:string&quot;</span> <span class="na">use=</span><span class="s">&quot;required&quot;</span><span class="nt">&gt;</span>&#x000A;             
        <span class="nt">&lt;xs:annotation&gt;</span>&#x000A;                        <span class="nt">&lt;xs:documentation&gt;</span><span class="cp">&lt;![CDATA[</span>&#x000A;<span class="cp">The final destination path and name for the configuration file.</span>&#x000A;<span class="cp">                        ]]&gt;</span><span class="nt">&lt;/xs:documentation&gt;</span>&#x000A;                    <span class="nt">&lt;/xs:annotation&gt;</span>&#x000A;                <span class="nt">&lt;/xs:attribute&gt;</span>&#x000A;                <span class="nt">&lt;xs:attribute</span> <span class="na">name=</span><span class="s">&quot;override&quot;</span> <span class="na">type=</span><span class="s">&quot;xs:boolean&quot;</span><span class="nt">&gt;</span>&#x000A;                    <span class="nt">&lt;xs:annotation&gt;</span>&#x000A;                        <span class="nt">&lt;xs:documentation&gt;</span><span class="cp">&lt;![CDATA[</span>&#x000A;<span class="cp">If the configFile already 
 exists at the finalname location, whether or not to replace it.</span>&#x000A;<span class="cp">                        ]]&gt;</span><span class="nt">&lt;/xs:documentation&gt;</span>&#x000A;                    <span class="nt">&lt;/xs:annotation&gt;</span>&#x000A;                <span class="nt">&lt;/xs:attribute&gt;</span>&#x000A;&#x000A;            <span class="nt">&lt;/xs:extension&gt;</span>&#x000A;        <span class="nt">&lt;/xs:simpleContent&gt;</span>&#x000A;    <span class="nt">&lt;/xs:complexType&gt;</span>&#x000A;&#x000A;    <span class="nt">&lt;xs:simpleType</span> <span class="na">name=</span><span class="s">&quot;featureName&quot;</span><span class="nt">&gt;</span>&#x000A;        <span class="nt">&lt;xs:annotation&gt;</span>&#x000A;            <span class="nt">&lt;xs:documentation&gt;</span><span class="cp">&lt;![CDATA[</span>&#x000A;<span class="cp">Feature name should be non empty string.</span>&#x000A;<span class="cp">            ]]&gt;</span><span class="nt">&lt;/xs
 :documentation&gt;</span>&#x000A;        <span class="nt">&lt;/xs:annotation&gt;</span>&#x000A;        <span class="nt">&lt;xs:restriction</span> <span class="na">base=</span><span class="s">&quot;xs:string&quot;</span><span class="nt">&gt;</span>&#x000A;            <span class="nt">&lt;xs:minLength</span> <span class="na">value=</span><span class="s">&quot;1&quot;</span> <span class="nt">/&gt;</span>&#x000A;        <span class="nt">&lt;/xs:restriction&gt;</span>&#x000A;    <span class="nt">&lt;/xs:simpleType&gt;</span>&#x000A;&#x000A;    <span class="nt">&lt;xs:simpleType</span> <span class="na">name=</span><span class="s">&quot;resolver&quot;</span><span class="nt">&gt;</span>&#x000A;        <span class="nt">&lt;xs:annotation&gt;</span>&#x000A;            <span class="nt">&lt;xs:documentation&gt;</span><span class="cp">&lt;![CDATA[</span>&#x000A;<span class="cp">Resolver to use. Karaf will look for OSGi service which have following properties:</span>&#x000A;<span class="cp">object
 Class: org.apache.karaf.features.Resolver</span>&#x000A;<span class="cp">name: the value</span>&#x000A;<span class="cp">            ]]&gt;</span><span class="nt">&lt;/xs:documentation&gt;</span>&#x000A;        <span class="nt">&lt;/xs:annotation&gt;</span>&#x000A;        <span class="nt">&lt;xs:restriction</span> <span class="na">base=</span><span class="s">&quot;xs:string&quot;</span><span class="nt">&gt;</span>&#x000A;            <span class="nt">&lt;xs:minLength</span> <span class="na">value=</span><span class="s">&quot;1&quot;</span> <span class="nt">/&gt;</span>&#x000A;        <span class="nt">&lt;/xs:restriction&gt;</span>&#x000A;    <span class="nt">&lt;/xs:simpleType&gt;</span>&#x000A;    <span class="nt">&lt;xs:simpleType</span> <span class="na">name=</span><span class="s">&quot;install&quot;</span><span class="nt">&gt;</span>&#x000A;        <span class="nt">&lt;xs:annotation&gt;</span>&#x000A;            <span class="nt">&lt;xs:documentation&gt;</span><span class="cp">&lt;
 ![CDATA[</span>&#x000A;<span class="cp">Installation mode. Can be either manual or auto. Specifies whether the feature should be automatically installed when</span>&#x000A;<span class="cp">dropped inside the deploy folder. Note: This attribute doesn&#39;t affect feature descriptors that are installed from the</span>&#x000A;<span class="cp">command line or as part of the org.apache.karaf.features.cfg.</span>&#x000A;<span class="cp">            ]]&gt;</span><span class="nt">&lt;/xs:documentation&gt;</span>&#x000A;        <span class="nt">&lt;/xs:annotation&gt;</span>&#x000A;        <span class="nt">&lt;xs:restriction</span> <span class="na">base=</span><span class="s">&quot;xs:string&quot;</span><span class="nt">&gt;</span>&#x000A;            <span class="nt">&lt;xs:minLength</span> <span class="na">value=</span><span class="s">&quot;1&quot;</span> <span class="nt">/&gt;</span>&#x000A;        <span class="nt">&lt;/xs:restriction&gt;</span>&#x000A;    <span class="nt">&lt;/xs:simpleTyp
 e&gt;</span>&#x000A;&#x000A;    <span class="nt">&lt;xs:element</span> <span class="na">name=</span><span class="s">&quot;features&quot;</span> <span class="na">type=</span><span class="s">&quot;tns:features&quot;</span> <span class="nt">/&gt;</span>&#x000A;&#x000A;<span class="nt">&lt;/xs:schema&gt;</span>&#x000A;</pre></div>&#x000A;</div>
+                </div>
+              </td>
+            </tr>
+          </table>
+        </td>
+        <td id="cell-2-2" colspan="2">
+          &nbsp;
+        </td>
+      </tr>
+      <tr width="100%">
+        <td id="cell-3-0">
+          &nbsp;
+        </td>
+        <td id="cell-3-1">
+          &nbsp;
+        </td>
+        <td id="cell-3-2">
+          <div id="footer">
+            <div id="site-footer">
+              &copy; 2008-2011 The Apache Software Foundation
+              <br/>
+              Apache Karaf, Karaf, Apache, the Apache feather logo, and the Apache Karaf project logo are trademarks of The Apache Software Foundation.
+            </div>
+          </div>
+        </td>
+        <td id="cell-3-3">
+          &nbsp;
+        </td>
+        <td id="cell-3-4">
+          &nbsp;
+        </td>
+      </tr>
+      <tr width="100%">
+        <td id="cell-4-0" colspan="2">
+          &nbsp;
+        </td>
+        <td id="cell-4-1">
+          &nbsp;
+        </td>
+        <td id="cell-4-2" colspan="2">
+          &nbsp;
+        </td>
+      </tr>
+    </table>
+  </body>
+</html>
\ No newline at end of file

Added: karaf/site/production/manual/latest-2.x/users-guide/provisioning.html
URL: http://svn.apache.org/viewvc/karaf/site/production/manual/latest-2.x/users-guide/provisioning.html?rev=1742536&view=auto
==============================================================================
--- karaf/site/production/manual/latest-2.x/users-guide/provisioning.html (added)
+++ karaf/site/production/manual/latest-2.x/users-guide/provisioning.html Fri May  6 12:23:15 2016
@@ -0,0 +1,263 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML Basic 1.1//EN" "http://www.w3.org/TR/xhtml-basic/xhtml-basic11.dtd"> 
+<html lang="en">
+  <head>
+    <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
+    <meta name="description" content="description goes here"/>
+    <meta name="keywords" content="keywords,goes,here"/>
+    <meta name="author" content="The Apache Karaf Team"/>
+    <link href="../css/style.css" rel="stylesheet" type="text/css"/>
+    <link href="../css/pygmentize.css" rel="stylesheet" type="text/css"/>
+    <title>
+      Apache Karaf 2.4.5-SNAPSHOT Guides
+    </title>
+  </head>
+  <body>
+    <table width="100%" cellpadding="0" cellspacing="0">
+      <tr width="100%">
+        <td id="cell-0-0" colspan="2">
+          &nbsp;
+        </td>
+        <td id="cell-0-1">
+          &nbsp;
+        </td>
+        <td id="cell-0-2" colspan="2">
+          &nbsp;
+        </td>
+      </tr>
+      <tr width="100%">
+        <td id="cell-1-0">
+          &nbsp;
+        </td>
+        <td id="cell-1-1">
+          &nbsp;
+        </td>
+        <td id="cell-1-2">
+          <div style="padding: 5px;">
+            <div id="banner">
+                    <table border="0" cellpadding="0" cellspacing="0" width="100%">
+        <tr>
+          <td align="left" class="topbardiv" nowrap="">
+<a href="http://karaf.apache.org/" title="A server side OSGi distribution">
+            <img border="0" src="../images/karaf-logo.png" width="400px"></img>
+</a>
+          </td>
+          <td align="right" nowrap="">
+<a href="http://www.apache.org/" title="The Apache Sofware Foundation">
+            <img border="0" src="../images/asf-logo.png">
+</a>
+          </td>
+        </tr>
+      </table>
+
+            </div>
+            <div id="top-menu">
+              <table border="0" cellpadding="1" cellspacing="0" width="100%">
+                <tr>
+                  <td>
+                    <div align="left"></div>
+                  </td>
+                  <td>
+                    <div align="right">
+                      <p>
+<a href="../index.html" title="Home">Home</a>
+&#124;
+<a href="index.html" title="Users Guide">Users Guide</a>
+&#124;
+<a href="../developers-guide/index.html" title="Developers Guide">Developers Guide</a>
+</p>
+
+
+                    </div>
+                  </td>
+                </tr>
+              </table>
+            </div>
+          </div>
+        </td>
+        <td id="cell-1-3">
+          &nbsp;
+        </td>
+        <td id="cell-1-4">
+          &nbsp;
+        </td>
+      </tr>
+      <tr width="100%">
+        <td id="cell-2-0" colspan="2">
+          &nbsp;
+        </td>
+        <td id="cell-2-1">
+          <table>
+            <tr height="100%" valign="top">
+              <td height="100%">
+                <div id="wrapper-menu-page-right">
+                  <div id="wrapper-menu-page-top">
+                    <div id="wrapper-menu-page-bottom">
+                      <div id="menu-page">
+                        <h3 id="Homeindex"><a href="../index.html">Home</a></h3><ul style="list-style: square"><li><a href="../overview.html">Overview</a></li><li><a href="../quick-start.html">Quick Start</a></li></ul><h3 id="UsersGuideusersguideindex"><a href="index.html">Users Guide</a></h3><ul style="list-style: square"><li><a href="installation.html">Installing Karaf</a></li><li><a href="directory-structure.html">Directory Structure</a></li><li><a href="start-stop.html">Starting and stopping Karaf</a></li><li><a href="wrapper.html">OS integration</a></li><li><a href="using-console.html">Using the console</a></li><li><a href="remote-console.html">Remote console</a></li><li><a href="web-console.html">Web console</a></li><li><a href="child-instances.html">Child instances</a></li><li><a href="security.html">Security</a></li><li><a href="failover.html">Failover Deployments</a></li><li><a href="logging-system.html">Logging system</a></li><li><a href="deployer.html">Deployer</a></li><l
 i><a href="provisioning.html">Provisioning</a></li><li><a href="kar.html">KAR archive</a></li><li><a href="configuration.html">Configuration</a></li><li><a href="http.html">HTTP service</a></li><li><a href="web-applications.html">Web applications</a></li><li><a href="jre-tuning.html">JRE tuning</a></li><li><a href="jmx.html">JMX for administration and monitoring</a></li></ul><h3 id="DevelopersGuidedevelopersguideindex"><a href="../developers-guide/index.html">Developers Guide</a></h3><ul style="list-style: square"><li><a href="../developers-guide/archetypes.html">Maven Archetypes</a></li><li><a href="../developers-guide/branding-console.html">Branding the Console</a></li><li><a href="../developers-guide/extending-console.html">Extending the Console</a></li><li><a href="../developers-guide/custom-distribution.html">Custom Distribution</a></li><li><a href="../developers-guide/security-framework.html">Security Framework</a></li><li><a href="../developers-guide/features-maven-plugin.htm
 l">Using the features-maven-plugin</a></li><li><a href="../developers-guide/debugging.html">Troubleshooting, Debugging and Profiling</a></li><li><a href="../developers-guide/connect-console.html">Programmatically connect to the console</a></li><li><a href="../developers-guide/writing-tests.html">Writing integration tests</a></li><li><a href="../developers-guide/creating-bundles.html">Creating bundles</a></li><li><a href="../developers-guide/shell-syntax.html">Shell syntax</a></li><li><a href="../developers-guide/github-contributions.html">Github Contributions</a></li></ul><h3 id="Commandscommandscommands"><a href="../commands/commands.html">Commands</a></h3>
+                      </div>
+                    </div>
+                  </div>
+                </div>
+              </td>
+              <td height="100%" width="100%">
+                <div class="wiki-content">
+<h1 id="Provisioning">Provisioning</h1><p>Karaf provides a simple, yet flexible, way to provision applications or "features".  Such a mechanism is mainly provided by a set of commands available in the <tt>features</tt> shell.  The provisioning system uses xml "repositories" that define a set of features.</p><h2 id="Repositories">Repositories</h2><p>The complete xml schema for feature descriptor are available on <a href="provisioning-schema.html">Features XML Schema</a> page. We recommend using this XML schema. It will allow Karaf to validate your repository before parsing. You may also verify your descriptor before adding it to Karaf by simply validation, even from IDE level.</p><p>Here is an example of such a repository:</p><pre>
+&lt;features xmlns="http://karaf.apache.org/xmlns/features/v1.0.0">
+    &lt;feature name="spring" version="3.0.4.RELEASE">
+        &lt;bundle>mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.aopalliance/1.0_1&lt;/bundle>
+        &lt;bundle>mvn:org.springframework/spring-core/3.0.4.RELEASE&lt;/bundle>
+        &lt;bundle>mvn:org.springframework/spring-beans/3.0.4.RELEASE&lt;/bundle>
+        &lt;bundle>mvn:org.springframework/spring-aop/3.0.4.RELEASE&lt;/bundle>
+        &lt;bundle>mvn:org.springframework/spring-context/3.0.4.RELEASE&lt;/bundle>
+        &lt;bundle>mvn:org.springframework/spring-context-support/3.0.4.RELEASE&lt;/bundle>
+    &lt;/feature>
+&lt;/features>
+</pre><p>A repository includes a list of <tt>feature</tt> elements, each one representing an application that can be installed.  The feature is identified by its <tt>name</tt> which must be unique amongst all the repositories used and consists of a set of bundles that need to be installed along with some optional dependencies on other features and some optional configurations for the Configuration Admin OSGi service.</p><p>References to features define in other repositories are allow and can be achieved by adding a list of repository.</p><pre class="xml code-xml">
+&lt;features xmlns="http://karaf.apache.org/xmlns/features/v1.0.0">
+  &lt;repository>mvn:org.apache.servicemix.nmr/apache-servicemix-nmr/1.3.0/xml/features&lt;/repository>
+  &lt;repository>mvn:org.apache.camel.karaf/apache-camel/2.5.0/xml/features&lt;/repository>
+  &lt;repository>mvn:org.apache.karaf/apache-karaf/2.1.2/xml/features&lt;/repository>
+  ...
+</pre><div class="warning" style="border: 1px solid #c00;background-color: #fcc;margin: 20px;padding: 0px 6px 0px 6px;"><p>Be careful when you define them as there is a risk of 'cycling' dependencies.</p></div><p>Remark: By default, all the features defined in a repository are not installed at the launch of Apache Karaf (see section hereafter 'h2. Service configuration' for more info).</p><h3 id="Bundles">Bundles</h3><p>The main information provided by a feature is the set of OSGi bundles that defines the application.  Such bundles are URLs pointing to the actual bundle jars.  For example, one would write the following definition:</p><pre>
+&lt;bundle>http://repo1.maven.org/maven2/org/apache/servicemix/nmr/org.apache.servicemix.nmr.api/1.0.0-m2/org.apache.servicemix.nmr.api-1.0.0-m2.jar&lt;/bundle>
+</pre><p>Doing this will make sure the above bundle is installed while installing the feature.</p><p>However, Karaf provides several URL handlers, in addition to the usual ones (file, http, etc...). One of these is the Maven URL handler, which allow reusing Maven repositories to point to the bundles.</p><h4 id="MavenURLHandler">Maven URL Handler</h4><p>The equivalent of the above bundle would be:</p><pre>
+&lt;bundle>mvn:org.apache.servicemix.nmr/org.apache.servicemix.nmr.api/1.0.0-m2&lt;/bundle>
+</pre><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><p>The <tt>org.ops4j.pax.url.mvn</tt> bundle resolves <tt>mvn</tt> URLs. This flexible tool can be configured through the configuration service. For example, to find the current repositories type:</p><pre>
+karaf@root:/> config:list
+...
+----------------------------------------------------------------
+Pid:            org.ops4j.pax.url.mvn
+BundleLocation: mvn:org.ops4j.pax.url/pax-url-mvn/0.3.3
+Properties:
+   service.pid = org.ops4j.pax.url.mvn
+   org.ops4j.pax.url.mvn.defaultRepositories = file:/opt/development/karaf/assembly/target/apache-felix-karaf-1.2.0-SNAPSHOT/system@snapshots
+   org.ops4j.pax.url.mvn.repositories = http://repo1.maven.org/maven2, 
+                                         http://svn.apache.org/repos/asf/servicemix/m2-repo 
+   below = list of repositories and even before the local repository
+</pre><p>The repositories checked are controlled by these configuration properties. </p><p>For example, <tt>org.ops4j.pax.url.mvn.repositories</tt> is a comma separate list of repository URLs specifying those remote repositories to be checked. So, to replace the defaults with a new repository at <tt>http://www.example.org/repo</tt> on the local machine:</p><pre>
+karaf@root:/> config:edit org.ops4j.pax.url.mvn
+karaf@root:/> config:proplist                  
+   service.pid = org.ops4j.pax.url.mvn
+   org.ops4j.pax.url.mvn.defaultRepositories = file:/opt/development/karaf/assembly/target/apache-felix-karaf-1.2.0-SNAPSHOT/system@snapshots
+   org.ops4j.pax.url.mvn.repositories = http://repo1.maven.org/maven2,
+                                        http://svn.apache.org/repos/asf/servicemix/m2-repo
+   below = list of repositories and even before the local repository
+karaf@root:/> config:propset org.ops4j.pax.url.mvn.repositories http://www.example.org/repo
+karaf@root:/> config:update
+</pre><p>By default, snapshots are disabled. To enable an URL for snapshots append @snapshots. For example</p><pre>
+http://www.example.org/repo@snapshots
+</pre><p>Repositories on the local machine are supported through <tt>file:/</tt> URLs</p><h4 id="Bundlestartlevel">Bundle start-level</h4><p><strong>Available since Karaf 2.0</strong></p><p>By default, the bundles deployed through the feature mechanism will have a start-level equals to the value defined in the configuration file <tt>config.properties</tt><br/>with the variable <tt>karaf.startlevel.bundle=80</tt>. This value can be changed using the xml attribute start-level. </p><pre class="xml code-xml">
+  &lt;feature name='my-project' version='1.0.0'>
+    &lt;feature version='2.4.0'>camel-spring&lt;/feature>
+    &lt;bundle start-level='80'>mvn:com.mycompany.myproject/myproject-dao&lt;/bundle>    
+    &lt;bundle start-level='85'>mvn:com.mycompany.myproject/myproject-service&lt;/bundle>
+    &lt;bundle start-level='85'>mvn:com.mycompany.myproject/myproject-camel-routing&lt;/bundle>
+  &lt;/feature> 
+</pre><p>  </p><p>The advantage in defining the bundle start-level is that you can deploy all your bundles including any required 'infrastructure' bundles (e.g Camel, ActiveMQ)<br/>at the same time and you will have the guarantee when using Spring Dynamic Modules or Blueprint that the Spring context will not be<br/>created without all the required services installed.</p><h4 id="Bundlestopstart">Bundle 'stop/start'</h4><p>The OSGI specification allows for installing a bundle without starting it. To use this functionality, simply add the following attribute in your &lt;bundle> definition</p><pre class="xml code-xml">
+  &lt;feature name='my-project' version='1.0.0'>
+    &lt;feature version='2.4.0'>camel-spring&lt;/feature>
+    &lt;bundle start-level='80' start='false'>mvn:com.mycompany.myproject/myproject-dao&lt;/bundle>    
+    &lt;bundle start-level='85' start='false'>mvn:com.mycompany.myproject/myproject-service&lt;/bundle>
+    &lt;bundle start-level='85' start='false'>mvn:com.mycompany.myproject/myproject-camel-routing&lt;/bundle>
+  &lt;/feature> 
+</pre><div class="warning" style="border: 1px solid #c00;background-color: #fcc;margin: 20px;padding: 0px 6px 0px 6px;"><p>Before Karaf 3.0 the start-level was NOT considered during the feature startup, but only the order in which bundles are defined in your feature.xml. Starting with 3.0 the start-level is no considered correctly. If you need to use the old behavior you can uncomment and change the respectStartLvlDuringFeatureStartup variable in org.apache.karaf.features.xml to false. But please be aware that it will be removed in 4.0 and should therefore be used only temporarily.</p></div><h4 id="Bundledependency">Bundle 'dependency'</h4><p>A bundle can be flagged as being a dependency.  Such information can be used by resolvers to compute the full list of bundles to be installed.</p><h3 id="Dependentfeatures">Dependent features</h3><p>Dependent features are useful when a given feature depends on another feature to be installed.  Such a dependency can be expressed easily in the fe
 ature definition:</p><pre>
+&lt;feature name="jbi">
+  &lt;feature>nmr&lt;/feature>
+  ...
+&lt;/feature>
+</pre><p>The effect of such a dependency is to automatically install the required <tt>nmr</tt> feature when the <tt>jbi</tt> feature is installed.</p><p>A version range can be specified on the feature dependency:</p><pre>
+&lt;feature name="spring-dm">
+  &lt;feature version="[2.5.6,4)">spring&lt;/feature>
+  ...
+&lt;/feature>
+</pre><p>In such a case, if no matching feature is already installed, the feature with the highest version available in the range will be installed.  If a single version is specified, this version will be chosen.  If nothing is specified, the highest available will be installed.</p><h3 id="Configurations">Configurations</h3><p>The configuration section allows for declaring deployment configuration of the OSGi Configuration Admin service along a set of bundles.<br/>Here is an example of such a configuration:</p><pre>
+&lt;config name="com.foo.bar">
+  myProperty = myValue
+&lt;/config>
+</pre><p>The <tt>name</tt> attribute of the <tt>configuration</tt> element will be used as the ManagedService PID for the configuration set in the Configuration Admin service.  When using a ManagedServiceFactory, the <tt>name</tt> attribute is <em>servicePid</em>-_aliasId_, where <em>servicePid</em> is the PID of the ManagedServiceFactory and <em>aliasId</em> is a label used to uniquely identify a particular service (an alias to the factory generated service PID).</p><p>Deploying such a configuration has the same effect as dropping a file named <tt>com.foo.bar.cfg</tt> into the <tt>etc</tt> folder.</p><p>The content of the <tt>configuration</tt> element is set of properties parsed using the <a href="http://java.sun.com/j2se/1.5.0/docs/api/java/util/Properties.html#load(java.io.InputStream)">standard java property mechanism</a>.</p><p>Such configuration as usually used with Spring-DM or Blueprint support for the Configuration Admin service, as in the following example, but using plai
 n OSGi APIs will of course work the same way:</p><pre>
+&lt;bean ...>
+    &lt;property name="propertyName" value="${myProperty}" />
+&lt;/bean>
+
+&lt;osgix:cm-properties id="cmProps" persistent-id="com.foo.bar">
+    &lt;prop key="myProperty">myValue&lt;/prop>
+&lt;/osgix:cm-properties>
+&lt;ctx:property-placeholder properties-ref="cmProps" />
+</pre><p>There may also be cases where you want to make the properties from multiple configuration files available to your bundle context. This is something you may<br/>want to do if you have a multi-bundle application where there are application properties used by multiple bundles, and each bundle has its own specific<br/>properties. In that case, <tt>&lt;ctx:property-placeholder></tt> won't work as it was designed to make only one configuration file available to a bundle context.<br/> To make more than one configuration file available to your bundle-context you would do something like this:</p><pre>
+&lt;beans:bean id="myBundleConfigurer"
+            class="org.springframework.beans.factory.config.PropertyPlaceholderConfig">
+    &lt;beans:property name="ignoreUnresolvablePlaceholders" value="true"/>
+    &lt;beans:property name="propertiesArray">
+        &lt;osgix:cm-properties id="myAppProps" persistent-id="myApp.props"/>
+        &lt;osgix:cm-properties id="myBundleProps" persistent-id="my.bundle.props"/>
+    &lt;/beans:property>
+&lt;/beans:bean>
+</pre><p>In this example, we are using SpringDM with osgi as the primary namespace. Instead of using ctx:context-placeholder we are using the "PropertyPlaceholderConfig"<br/>class. Then we are passing in a beans array and inside of that array is where we set our osgix:cm-properties elements. This element "returns" a properties bean.</p><p>For more information about using the Configuration Admin service in Spring-DM, see the <a href="http://static.springframework.org/osgi/docs/1.2.0-m2/reference/html/compendium.html#compendium:cm:props">Spring-DM documentation</a>.</p><h3 id="Configurationfiles">Configuration files</h3><p>In certain cases it is needed not only to provide configurations for the configuration admin service but to add additional<br/>configuration files e.g. a configuration file for jetty (jetty.xml). It even might be helpful to deploy a configuration<br/>file instead of a configuration for the config admin service since. To achieve this the attribute <tt>finalname</tt> 
 shows the<br/>final destination of the <tt>configfile</tt>, while the value references the Maven artifact to deploy.<br/>If the file is already present at the desired location it is kept and the deployment of the configuration file is skipped, as a already existing file might<br/>contain customization. This behaviour can be overriden by <tt>override</tt> set to true. </p><pre>
+&lt;configfile finalname="/etc/jetty.xml" override="false">mvn:org.apache.karaf/apache-karaf/2.4.5-SNAPSHOT/xml/jettyconfig&lt;/configfile>
+</pre><h3 id="Featureresolver">Feature resolver</h3><p>The resolver attribute on a feature can be set to force the use of a given resolver instead of the default resolution process.  A resolver will be use to obtain the list of bundles to actually install for a given feature.<br/>The default resolver will simply return the list of bundles provided in the feature description.<br/>The OBR resolver can be installed and used instead of the standard one.  In that case, the resolver will use the OBR service<br/>to determine the list of bundles to install (bundles flagged as dependency will only be used as possible candidates to solve<br/>various constraints).</p><h2 id="Commands">Commands</h2><h3 id="Repositorymanagement">Repository management</h3><p>The following commands can be used to manage the list of descriptors known by Karaf.  They use URLs pointing to features descriptors.  These URLs can use any protocol known to the Apache Karaf, the most common ones being http, file and mvn.</
 p><pre>
+features:addUrl      Add a list of repository URLs to the features service
+features:removeUrl   Remove a list of repository URLs from the features service
+features:listUrl     Display the repository URLs currently associated with the features service.
+features:refreshUrl  Reload the repositories to obtain a fresh list of features
+</pre><p>Karaf maintains a persistent list of these repositories so that if you add one URL and restart Karaf, the features will still be available.</p><p>The <tt>refreshUrl</tt> command is mostly used when developing features descriptors: when changing the descriptor, it can be<br/>handy to reload it in the Kernel without having to restart it or to remove then add the URL again.</p><h3 id="Featuresmanagement">Features management</h3><pre>
+features:install
+features:uninstall
+features:list
+</pre><h3 id="Examples">Examples</h3><p>1. Install features using mvn handler</p><pre>
+features:addUrl mvn:org.apache.servicemix.nmr/apache-servicemix-nmr/1.0.0-m2/xml/features
+features:install nmr
+</pre><p>2. Use file handler to deploy features file</p><pre>
+features:addUrl file:base/features/features.xml
+</pre><p>Note: The path is relative to the Apache Karaf installation directory</p><p>3. Deploy bundles from file system without using Maven</p><p>As we can use file:// as protocol handler to deploy bundles, you can use the following syntax to deploy bundles when they are <br/>located in a directory which is not available using Maven</p><pre class="xml code-xml">
+&lt;features xmlns="http://karaf.apache.org/xmlns/features/v1.0.0">
+   &lt;feature name="spring-web" version="2.5.6.SEC01">
+      &lt;bundle>file:base/bundles/spring-web-2.5.6.SEC01.jar&lt;/bundle>
+   &lt;/feature>
+&lt;/features>
+</pre><p>Note: The path is relative to the Apache Karaf installation directory</p><h2 id="Serviceconfiguration">Service configuration</h2><p>A simple configuration file located in <tt>etc/org.apache.karaf.features.cfg</tt> can be modified to customize the behavior when starting the Kernel for the first time.<br/>This configuration file contains two properties:</p><ul><li><tt>featuresBoot</tt>: a comma separated list of features to install at startup</li><li><tt>featuresRepositories</tt>: a comma separated list of feature repositories to load at startup</li></ul><p>This configuration file is of interest if you plan to distribute a customized Karaf distribution having pre-installed features.  Such a process is detailed in the <a href="../developers-guide/custom-distribution.html">building custom distributions</a> section.</p>
+                </div>
+              </td>
+            </tr>
+          </table>
+        </td>
+        <td id="cell-2-2" colspan="2">
+          &nbsp;
+        </td>
+      </tr>
+      <tr width="100%">
+        <td id="cell-3-0">
+          &nbsp;
+        </td>
+        <td id="cell-3-1">
+          &nbsp;
+        </td>
+        <td id="cell-3-2">
+          <div id="footer">
+            <div id="site-footer">
+              &copy; 2008-2011 The Apache Software Foundation
+              <br/>
+              Apache Karaf, Karaf, Apache, the Apache feather logo, and the Apache Karaf project logo are trademarks of The Apache Software Foundation.
+            </div>
+          </div>
+        </td>
+        <td id="cell-3-3">
+          &nbsp;
+        </td>
+        <td id="cell-3-4">
+          &nbsp;
+        </td>
+      </tr>
+      <tr width="100%">
+        <td id="cell-4-0" colspan="2">
+          &nbsp;
+        </td>
+        <td id="cell-4-1">
+          &nbsp;
+        </td>
+        <td id="cell-4-2" colspan="2">
+          &nbsp;
+        </td>
+      </tr>
+    </table>
+  </body>
+</html>
\ No newline at end of file

Added: karaf/site/production/manual/latest-2.x/users-guide/remote-console.html
URL: http://svn.apache.org/viewvc/karaf/site/production/manual/latest-2.x/users-guide/remote-console.html?rev=1742536&view=auto
==============================================================================
--- karaf/site/production/manual/latest-2.x/users-guide/remote-console.html (added)
+++ karaf/site/production/manual/latest-2.x/users-guide/remote-console.html Fri May  6 12:23:15 2016
@@ -0,0 +1,197 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML Basic 1.1//EN" "http://www.w3.org/TR/xhtml-basic/xhtml-basic11.dtd"> 
+<html lang="en">
+  <head>
+    <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
+    <meta name="description" content="description goes here"/>
+    <meta name="keywords" content="keywords,goes,here"/>
+    <meta name="author" content="The Apache Karaf Team"/>
+    <link href="../css/style.css" rel="stylesheet" type="text/css"/>
+    <link href="../css/pygmentize.css" rel="stylesheet" type="text/css"/>
+    <title>
+      Apache Karaf 2.4.5-SNAPSHOT Guides
+    </title>
+  </head>
+  <body>
+    <table width="100%" cellpadding="0" cellspacing="0">
+      <tr width="100%">
+        <td id="cell-0-0" colspan="2">
+          &nbsp;
+        </td>
+        <td id="cell-0-1">
+          &nbsp;
+        </td>
+        <td id="cell-0-2" colspan="2">
+          &nbsp;
+        </td>
+      </tr>
+      <tr width="100%">
+        <td id="cell-1-0">
+          &nbsp;
+        </td>
+        <td id="cell-1-1">
+          &nbsp;
+        </td>
+        <td id="cell-1-2">
+          <div style="padding: 5px;">
+            <div id="banner">
+                    <table border="0" cellpadding="0" cellspacing="0" width="100%">
+        <tr>
+          <td align="left" class="topbardiv" nowrap="">
+<a href="http://karaf.apache.org/" title="A server side OSGi distribution">
+            <img border="0" src="../images/karaf-logo.png" width="400px"></img>
+</a>
+          </td>
+          <td align="right" nowrap="">
+<a href="http://www.apache.org/" title="The Apache Sofware Foundation">
+            <img border="0" src="../images/asf-logo.png">
+</a>
+          </td>
+        </tr>
+      </table>
+
+            </div>
+            <div id="top-menu">
+              <table border="0" cellpadding="1" cellspacing="0" width="100%">
+                <tr>
+                  <td>
+                    <div align="left"></div>
+                  </td>
+                  <td>
+                    <div align="right">
+                      <p>
+<a href="../index.html" title="Home">Home</a>
+&#124;
+<a href="index.html" title="Users Guide">Users Guide</a>
+&#124;
+<a href="../developers-guide/index.html" title="Developers Guide">Developers Guide</a>
+</p>
+
+
+                    </div>
+                  </td>
+                </tr>
+              </table>
+            </div>
+          </div>
+        </td>
+        <td id="cell-1-3">
+          &nbsp;
+        </td>
+        <td id="cell-1-4">
+          &nbsp;
+        </td>
+      </tr>
+      <tr width="100%">
+        <td id="cell-2-0" colspan="2">
+          &nbsp;
+        </td>
+        <td id="cell-2-1">
+          <table>
+            <tr height="100%" valign="top">
+              <td height="100%">
+                <div id="wrapper-menu-page-right">
+                  <div id="wrapper-menu-page-top">
+                    <div id="wrapper-menu-page-bottom">
+                      <div id="menu-page">
+                        <h3 id="Homeindex"><a href="../index.html">Home</a></h3><ul style="list-style: square"><li><a href="../overview.html">Overview</a></li><li><a href="../quick-start.html">Quick Start</a></li></ul><h3 id="UsersGuideusersguideindex"><a href="index.html">Users Guide</a></h3><ul style="list-style: square"><li><a href="installation.html">Installing Karaf</a></li><li><a href="directory-structure.html">Directory Structure</a></li><li><a href="start-stop.html">Starting and stopping Karaf</a></li><li><a href="wrapper.html">OS integration</a></li><li><a href="using-console.html">Using the console</a></li><li><a href="remote-console.html">Remote console</a></li><li><a href="web-console.html">Web console</a></li><li><a href="child-instances.html">Child instances</a></li><li><a href="security.html">Security</a></li><li><a href="failover.html">Failover Deployments</a></li><li><a href="logging-system.html">Logging system</a></li><li><a href="deployer.html">Deployer</a></li><l
 i><a href="provisioning.html">Provisioning</a></li><li><a href="kar.html">KAR archive</a></li><li><a href="configuration.html">Configuration</a></li><li><a href="http.html">HTTP service</a></li><li><a href="web-applications.html">Web applications</a></li><li><a href="jre-tuning.html">JRE tuning</a></li><li><a href="jmx.html">JMX for administration and monitoring</a></li></ul><h3 id="DevelopersGuidedevelopersguideindex"><a href="../developers-guide/index.html">Developers Guide</a></h3><ul style="list-style: square"><li><a href="../developers-guide/archetypes.html">Maven Archetypes</a></li><li><a href="../developers-guide/branding-console.html">Branding the Console</a></li><li><a href="../developers-guide/extending-console.html">Extending the Console</a></li><li><a href="../developers-guide/custom-distribution.html">Custom Distribution</a></li><li><a href="../developers-guide/security-framework.html">Security Framework</a></li><li><a href="../developers-guide/features-maven-plugin.htm
 l">Using the features-maven-plugin</a></li><li><a href="../developers-guide/debugging.html">Troubleshooting, Debugging and Profiling</a></li><li><a href="../developers-guide/connect-console.html">Programmatically connect to the console</a></li><li><a href="../developers-guide/writing-tests.html">Writing integration tests</a></li><li><a href="../developers-guide/creating-bundles.html">Creating bundles</a></li><li><a href="../developers-guide/shell-syntax.html">Shell syntax</a></li><li><a href="../developers-guide/github-contributions.html">Github Contributions</a></li></ul><h3 id="Commandscommandscommands"><a href="../commands/commands.html">Commands</a></h3>
+                      </div>
+                    </div>
+                  </div>
+                </div>
+              </td>
+              <td height="100%" width="100%">
+                <div class="wiki-content">
+<h1 id="Usingremoteinstances">Using remote instances</h1><h2 id="Configuringremoteinstances">Configuring remote instances</h2><p>It does not always make sense to manage an instance of Karaf using its local console. You can manage Karaf remotely using a remote console.</p><p>When you start Karaf, it enables a remote console that can be accessed over SSH from any other Karaf console or plain SSH client.  The remote console provides all the features of the local console and gives a remote user complete control over the container and services running inside of it.</p><p>The SSH hostname and port number is configured in the <tt>etc/org.apache.karaf.shell.cfg</tt> configuration file with the following default values:</p><pre>
+sshPort=8101
+sshHost=0.0.0.0
+sshRealm=karaf
+hostKey=${karaf.base}/etc/host.key
+</pre><p>You can change this configuration using the <a href="configuration.html">config commands</a> or by editing the above file, but you'll need to restart the ssh console in order for it to use the new parameters.</p><pre>
+# define helper functions
+bundle-by-sn = { bm = new java.util.HashMap ;  each (bundles) { $bm put ($it symbolicName) $it } ; $bm get $1 }
+bundle-id-by-sn = { b = (bundle-by-sn $1) ; if { $b } { $b bundleId } { -1 } }
+# edit config
+config:edit org.apache.karaf.shell
+config:propset sshPort 8102
+config:update 
+# force a restart
+osgi:restart --force (bundle-id-by-sn org.apache.karaf.shell.ssh)
+</pre><h2 id="Connectinganddisconnectingremotely">Connecting and disconnecting remotely</h2><h3 id="Usingthesshsshcommand">Using the <tt>ssh:ssh</tt> command</h3><p>You can connect to a remote Karaf's console using the <a href="../commands/ssh-ssh.html"><tt>ssh:ssh</tt></a> command.</p><pre>
+karaf@root> ssh:ssh -l karaf -P karaf -p 8101 hostname
+</pre><div class="warning" style="border: 1px solid #c00;background-color: #fcc;margin: 20px;padding: 0px 6px 0px 6px;"><p>The default password is <tt>karaf</tt> but we recommend changing it. See the <a href="security.html">security</a> section for more informations.</p></div><p>To confirm that you have connected to the correct Karaf instance, type <a href="../commands/shell-info.html"><tt>shell:info</tt></a> at the <tt>karaf></tt> prompt. Information about the currently connected instance is returned, as shown.</p><pre>
+Karaf
+  Karaf home                  /local/apache-karaf-2.0.0
+  Karaf base                  /local/apache-karaf-2.0.0
+  OSGi Framework              org.eclipse.osgi - 3.5.1.R35x_v20090827
+JVM
+  Java Virtual Machine        Java HotSpot(TM) Server VM version 14.1-b02
+  ...
+</pre><h3 id="UsingtheKarafclient">Using the Karaf client</h3><p>The Karaf client allows you to securely connect to a remote Karaf instance without having to launch a Karaf instance locally.</p><p>For example, to quickly connect to a Karaf instance running in server mode on the same machine, run the following command:</p><pre>
+bin/client
+</pre><p>More commonly, you would provide a hostname, port, username and password to connect to a remote instance.  And, if you were using the client within a larger script, you could append console commands as follows:</p><pre>
+bin/client -a 8101 -h hostname -u karaf -p karaf features:install wrapper
+</pre><p>To display the available options for the client, type:</p><pre>
+> bin/client --help
+Apache Karaf client
+  -a [port]     specify the port to connect to
+  -h [host]     specify the host to connect to
+  -u [user]     specify the user name
+  -p [password] specify the password
+  --help        shows this help message
+  -v            raise verbosity
+  -r [attempts] retry connection establishment (up to attempts times)
+  -d [delay]    intra-retry delay (defaults to 2 seconds)
+  [commands]    commands to run
+If no commands are specified, the client will be put in an interactive mode
+</pre><h3 id="UsingaplainSSHclient">Using a plain SSH client</h3><p>You can also connect using a plain SSH client from your *nix system or Windows SSH client like Putty.</p><pre>
+~$ ssh -p 8101 karaf@localhost
+karaf@localhost's password: 
+</pre><h3 id="Disconnectingfromaremoteconsole">Disconnecting from a remote console</h3><p>To disconnect from a remote console, press <tt>Ctrl+D</tt>, <tt>shell:logout</tt> or simply <tt>logout</tt> at the Karaf prompt.</p><h2 id="Stoppingaremoteinstance">Stopping a remote instance</h2><h3 id="Usingtheremoteconsole">Using the remote console </h3><p>If you have connected to a remote console using the <a href="../commands/ssh-ssh.html"><tt>ssh:ssh</tt></a> command or the Karaf client, you can stop the remote instance using the <a href="../commands/osgi-shutdown.html"><tt>osgi:shutdown</tt></a> command.</p><div class="info" style="border: 1px solid #3c78b5;background-color: #D8E4F1;margin: 20px;padding: 0px 6px 0px 6px;"><p>Pressing <tt>Ctrl+D</tt> in a remote console simply closes the remote connection and returns you to the local shell.</p></div><h3 id="UsingtheKarafclient2">Using the Karaf client</h3><p>To stop a remote instance using the Karaf client, run the following from the <tt>
 lib</tt> directory:</p><pre>
+bin/client -u karaf -p karaf -a 8101 hostname osgi:shutdown
+</pre>
+                </div>
+              </td>
+            </tr>
+          </table>
+        </td>
+        <td id="cell-2-2" colspan="2">
+          &nbsp;
+        </td>
+      </tr>
+      <tr width="100%">
+        <td id="cell-3-0">
+          &nbsp;
+        </td>
+        <td id="cell-3-1">
+          &nbsp;
+        </td>
+        <td id="cell-3-2">
+          <div id="footer">
+            <div id="site-footer">
+              &copy; 2008-2011 The Apache Software Foundation
+              <br/>
+              Apache Karaf, Karaf, Apache, the Apache feather logo, and the Apache Karaf project logo are trademarks of The Apache Software Foundation.
+            </div>
+          </div>
+        </td>
+        <td id="cell-3-3">
+          &nbsp;
+        </td>
+        <td id="cell-3-4">
+          &nbsp;
+        </td>
+      </tr>
+      <tr width="100%">
+        <td id="cell-4-0" colspan="2">
+          &nbsp;
+        </td>
+        <td id="cell-4-1">
+          &nbsp;
+        </td>
+        <td id="cell-4-2" colspan="2">
+          &nbsp;
+        </td>
+      </tr>
+    </table>
+  </body>
+</html>
\ No newline at end of file

Added: karaf/site/production/manual/latest-2.x/users-guide/security.html
URL: http://svn.apache.org/viewvc/karaf/site/production/manual/latest-2.x/users-guide/security.html?rev=1742536&view=auto
==============================================================================
--- karaf/site/production/manual/latest-2.x/users-guide/security.html (added)
+++ karaf/site/production/manual/latest-2.x/users-guide/security.html Fri May  6 12:23:15 2016
@@ -0,0 +1,180 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML Basic 1.1//EN" "http://www.w3.org/TR/xhtml-basic/xhtml-basic11.dtd"> 
+<html lang="en">
+  <head>
+    <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
+    <meta name="description" content="description goes here"/>
+    <meta name="keywords" content="keywords,goes,here"/>
+    <meta name="author" content="The Apache Karaf Team"/>
+    <link href="../css/style.css" rel="stylesheet" type="text/css"/>
+    <link href="../css/pygmentize.css" rel="stylesheet" type="text/css"/>
+    <title>
+      Apache Karaf 2.4.5-SNAPSHOT Guides
+    </title>
+  </head>
+  <body>
+    <table width="100%" cellpadding="0" cellspacing="0">
+      <tr width="100%">
+        <td id="cell-0-0" colspan="2">
+          &nbsp;
+        </td>
+        <td id="cell-0-1">
+          &nbsp;
+        </td>
+        <td id="cell-0-2" colspan="2">
+          &nbsp;
+        </td>
+      </tr>
+      <tr width="100%">
+        <td id="cell-1-0">
+          &nbsp;
+        </td>
+        <td id="cell-1-1">
+          &nbsp;
+        </td>
+        <td id="cell-1-2">
+          <div style="padding: 5px;">
+            <div id="banner">
+                    <table border="0" cellpadding="0" cellspacing="0" width="100%">
+        <tr>
+          <td align="left" class="topbardiv" nowrap="">
+<a href="http://karaf.apache.org/" title="A server side OSGi distribution">
+            <img border="0" src="../images/karaf-logo.png" width="400px"></img>
+</a>
+          </td>
+          <td align="right" nowrap="">
+<a href="http://www.apache.org/" title="The Apache Sofware Foundation">
+            <img border="0" src="../images/asf-logo.png">
+</a>
+          </td>
+        </tr>
+      </table>
+
+            </div>
+            <div id="top-menu">
+              <table border="0" cellpadding="1" cellspacing="0" width="100%">
+                <tr>
+                  <td>
+                    <div align="left"></div>
+                  </td>
+                  <td>
+                    <div align="right">
+                      <p>
+<a href="../index.html" title="Home">Home</a>
+&#124;
+<a href="index.html" title="Users Guide">Users Guide</a>
+&#124;
+<a href="../developers-guide/index.html" title="Developers Guide">Developers Guide</a>
+</p>
+
+
+                    </div>
+                  </td>
+                </tr>
+              </table>
+            </div>
+          </div>
+        </td>
+        <td id="cell-1-3">
+          &nbsp;
+        </td>
+        <td id="cell-1-4">
+          &nbsp;
+        </td>
+      </tr>
+      <tr width="100%">
+        <td id="cell-2-0" colspan="2">
+          &nbsp;
+        </td>
+        <td id="cell-2-1">
+          <table>
+            <tr height="100%" valign="top">
+              <td height="100%">
+                <div id="wrapper-menu-page-right">
+                  <div id="wrapper-menu-page-top">
+                    <div id="wrapper-menu-page-bottom">
+                      <div id="menu-page">
+                        <h3 id="Homeindex"><a href="../index.html">Home</a></h3><ul style="list-style: square"><li><a href="../overview.html">Overview</a></li><li><a href="../quick-start.html">Quick Start</a></li></ul><h3 id="UsersGuideusersguideindex"><a href="index.html">Users Guide</a></h3><ul style="list-style: square"><li><a href="installation.html">Installing Karaf</a></li><li><a href="directory-structure.html">Directory Structure</a></li><li><a href="start-stop.html">Starting and stopping Karaf</a></li><li><a href="wrapper.html">OS integration</a></li><li><a href="using-console.html">Using the console</a></li><li><a href="remote-console.html">Remote console</a></li><li><a href="web-console.html">Web console</a></li><li><a href="child-instances.html">Child instances</a></li><li><a href="security.html">Security</a></li><li><a href="failover.html">Failover Deployments</a></li><li><a href="logging-system.html">Logging system</a></li><li><a href="deployer.html">Deployer</a></li><l
 i><a href="provisioning.html">Provisioning</a></li><li><a href="kar.html">KAR archive</a></li><li><a href="configuration.html">Configuration</a></li><li><a href="http.html">HTTP service</a></li><li><a href="web-applications.html">Web applications</a></li><li><a href="jre-tuning.html">JRE tuning</a></li><li><a href="jmx.html">JMX for administration and monitoring</a></li></ul><h3 id="DevelopersGuidedevelopersguideindex"><a href="../developers-guide/index.html">Developers Guide</a></h3><ul style="list-style: square"><li><a href="../developers-guide/archetypes.html">Maven Archetypes</a></li><li><a href="../developers-guide/branding-console.html">Branding the Console</a></li><li><a href="../developers-guide/extending-console.html">Extending the Console</a></li><li><a href="../developers-guide/custom-distribution.html">Custom Distribution</a></li><li><a href="../developers-guide/security-framework.html">Security Framework</a></li><li><a href="../developers-guide/features-maven-plugin.htm
 l">Using the features-maven-plugin</a></li><li><a href="../developers-guide/debugging.html">Troubleshooting, Debugging and Profiling</a></li><li><a href="../developers-guide/connect-console.html">Programmatically connect to the console</a></li><li><a href="../developers-guide/writing-tests.html">Writing integration tests</a></li><li><a href="../developers-guide/creating-bundles.html">Creating bundles</a></li><li><a href="../developers-guide/shell-syntax.html">Shell syntax</a></li><li><a href="../developers-guide/github-contributions.html">Github Contributions</a></li></ul><h3 id="Commandscommandscommands"><a href="../commands/commands.html">Commands</a></h3>
+                      </div>
+                    </div>
+                  </div>
+                </div>
+              </td>
+              <td height="100%" width="100%">
+                <div class="wiki-content">
+<h1 id="Security">Security</h1><h2 id="Managingauthenticationbyusersandpasswords">Managing authentication by users and passwords</h2><p>The default security configuration uses a property file located at <tt>etc/users.properties</tt> to store authorized users and their passwords.</p><p>The default user name is <tt>karaf</tt> and the associated password is <tt>karaf</tt> too.  We strongly encourage you to change the default password by editing the above file before moving Karaf into production.</p><p>The users are currently used in three different places in Karaf:</p><ul><li>access to the SSH console</li><li>access to the JMX management layer</li><li>access to the Web console<p>Those three ways all delegate to the same JAAS based security authentication.</p><p>The <tt>users.properties</tt> file contains one or more lines, each line defining a user, its password and the associated roles.</p><pre>
+user=password[,role][,role]...
+</pre></li></ul><h2 id="Managingauthenticationbykey">Managing authentication by key</h2><p>For the SSH layer, Karaf supports the authentication by key, allowing to login without providing the password.</p><p>The SSH client (so bin/client provided by Karaf itself, or any ssh client like OpenSSH) uses a public/private keys pair that<br/>will identify himself on Karaf SSHD (server side).</p><p>The keys allowed to connect are stored in <tt>etc/keys.properties</tt> file, following the format:</p><pre>
+user=key,role
+</pre><p>By default, Karaf allows a key for the karaf user:</p><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><div class="warning" style="border: 1px solid #c00;background-color: #fcc;margin: 20px;padding: 0px 6px 0px 6px;"><p>For security reason, this key is disabled. We encourage to create the keys pair per client and update the <tt>etc/keys.properties</tt> file.</p></div><p>The easiest way to create key pair is to use OpenSSH.</p><p>You can create a key pair using:</p><pre>
+ssh-keygen -t dsa -f karaf.id_dsa -N karaf
+</pre><p>You have now the public and private keys:</p><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><p>You can copy in the content of the <tt>karaf.id_dsa.pub</tt> file in the <tt>etc/keys.properties</tt>:</p><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><p>and specify to the client to use the <tt>karaf.id_dsa</tt> private key:</p><pre>
+bin/client -k ~/karaf.id_dsa
+</pre><p>or to ssh</p><pre>
+ssh -p 8101 -i ~/karaf.id_dsa karaf@localhost
+</pre><h2 id="Enablingpasswordencryption">Enabling password encryption</h2><p>In order to not keep the passwords in plain text, the passwords can be stored encrypted in the configuration file.<br/>This can be easily enabled using the following commands:</p><pre>
+# edit config
+config:edit org.apache.karaf.jaas
+config:propset encryption.enabled true
+config:update 
+# force a restart
+dev:restart
+</pre><p>The passwords will be encrypted automatically in the <tt>etc/users.properties</tt> configuration file the first time the user logs in.<br/>Encrypted passwords are prepended with <tt>{CRYPT}</tt> so that are easy to recognize.</p><h2 id="Managingrealms">Managing realms</h2><p>More information about modifying the default realm or deploying new realms is provided in the <a href="../developers-guide/security-framework.html">developers guide</a>.</p><h2 id="Deployingsecurityproviders">Deploying security providers</h2><p>Some applications require specific security providers to be available, such as <a href="http://www.bouncycastle.org">BouncyCastle</a>.  The JVM impose some restrictions about the use of such jars: they have to be signed and be available on the boot classpath.  One way to deploy those providers is to put them in the JRE folder at <tt>$JAVA_HOME/jre/lib/ext</tt> and modify the security policy configuration (<tt>$JAVA_HOME/jre/lib/security/java.security</tt>) in ord
 er to register such providers.</p><p>While this approach works fine, it has a global effect and requires you to configure all your servers accordingly.</p><p>Karaf offers a simple way to configure additional security providers:</p><ul><li>put your provider jar in <tt>lib/ext</tt></li><li>modify the <tt>etc/config.properties</tt> configuration file to add the following property</li></ul><pre>
+org.apache.karaf.security.providers = xxx,yyy
+</pre><p>The value of this property is a comma separated list of the provider class names to register.<br/>For example:</p><pre>
+org.apache.karaf.security.providers = org.bouncycastle.jce.provider.BouncyCastleProvider
+</pre><p>In addition, you may want to provide access to the classes from those providers from the system bundle so that all bundles can access those.  It can be done by modifying the <tt>org.osgi.framework.bootdelegation</tt> property in the same configuration file:</p><pre>
+org.osgi.framework.bootdelegation = ...,org.bouncycastle*
+</pre>
+                </div>
+              </td>
+            </tr>
+          </table>
+        </td>
+        <td id="cell-2-2" colspan="2">
+          &nbsp;
+        </td>
+      </tr>
+      <tr width="100%">
+        <td id="cell-3-0">
+          &nbsp;
+        </td>
+        <td id="cell-3-1">
+          &nbsp;
+        </td>
+        <td id="cell-3-2">
+          <div id="footer">
+            <div id="site-footer">
+              &copy; 2008-2011 The Apache Software Foundation
+              <br/>
+              Apache Karaf, Karaf, Apache, the Apache feather logo, and the Apache Karaf project logo are trademarks of The Apache Software Foundation.
+            </div>
+          </div>
+        </td>
+        <td id="cell-3-3">
+          &nbsp;
+        </td>
+        <td id="cell-3-4">
+          &nbsp;
+        </td>
+      </tr>
+      <tr width="100%">
+        <td id="cell-4-0" colspan="2">
+          &nbsp;
+        </td>
+        <td id="cell-4-1">
+          &nbsp;
+        </td>
+        <td id="cell-4-2" colspan="2">
+          &nbsp;
+        </td>
+      </tr>
+    </table>
+  </body>
+</html>
\ No newline at end of file