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 2013/12/25 07:31:55 UTC

svn commit: r1553356 [23/31] - in /karaf/site/production/manual/latest: ./ commands/ developers-guide/ users-guide/

Modified: karaf/site/production/manual/latest/users-guide/configuration.html
URL: http://svn.apache.org/viewvc/karaf/site/production/manual/latest/users-guide/configuration.html?rev=1553356&r1=1553355&r2=1553356&view=diff
==============================================================================
--- karaf/site/production/manual/latest/users-guide/configuration.html (original)
+++ karaf/site/production/manual/latest/users-guide/configuration.html Wed Dec 25 06:31:51 2013
@@ -8,7 +8,7 @@
     <link href="../css/style.css" rel="stylesheet" type="text/css"/>
     <link href="../css/pygmentize.css" rel="stylesheet" type="text/css"/>
     <title>
-      Apache Karaf 3.0.0-SNAPSHOT Guides
+      Apache Karaf 3.0.1-SNAPSHOT Guides
     </title>
   </head>
   <body>
@@ -93,7 +93,7 @@
                   <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="configuration.html">Configuration</a></li><li><a href="using-console.html">Using the console</a></li><li><a href="web-console.html">Web 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="deployer.html">Deployer</a></li><li><a href="child-instances.html">Child instances</a></li><li><a href="security.html">Security</a></li><li><a hre
 f="failover.html">Failover Deployments</a></li><li><a href="logging-system.html">Logging system</a></li><li><a href="provisioning.html">Provisioning</a></li><li><a href="kar.html">KAR archive</a></li><li><a href="jre-tuning.html">JRE tuning</a></li><li><a href="web-applications.html">Web applications</a></li><li><a href="http.html">HTTP service</a></li><li><a href="jmx.html">JMX for monitoring and administration</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/connect-console.html">Programmatically connect to the Console</a></li><li><a href="../developers-guide/shell-syntax.html">Shell syntax</a></li><li><a href="../developers-guide/creating-bundles.html">Creating bundles</a></li><li><a href="../developers-guide/debugging.html">Troubleshooting, Debugging and Profiling</a></li><li><a href="../developers-guide/developer-commands.html">Developer Com
 mands</a></li><li><a href="../developers-guide/archetypes.html">Maven Archetypes</a></li><li><a href="../developers-guide/extending-console.html">Extending the Console</a></li><li><a href="../developers-guide/branding-console.html">Branding the Console</a></li><li><a href="../developers-guide/karaf-maven-plugin.html">Using the Karaf Maven plugin</a></li><li><a href="../developers-guide/security-framework.html">Security Framework</a></li><li><a href="../developers-guide/custom-distribution.html">Custom Distribution</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>
+                        <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">Installation</a></li><li><a href="directory-structure.html">Directory structure</a></li><li><a href="start-stop.html">Start, stop, restart, connect</a></li><li><a href="wrapper.html">Integration in the operating system: the Service Wrapper</a></li><li><a href="console.html">Console</a></li><li><a href="remote.html">Remote</a></li><li><a href="log.html">Log</a></li><li><a href="configuration.html">Configuration</a></li><li><a href="urls.html">Artifacts repositories and URLs</a></li><li><a href="provisioning.html">Provisioning and features</a></li><li><a href="deployers.html">Deployers</a></li><li><a href="kar.html">KAR</a></li><li><a
  href="instances.html">Instances</a></li><li><a href="security.html">Security</a></li><li><a href="obr.html">OBR</a></li><li><a href="enterprise.html">Enterprise</a><ul><li><a href="webcontainer.html">WebContainer (JSP/Servlet)</a></li><li><a href="jndi.html">Naming (JNDI)</a></li><li><a href="jta.html">Transaction (JTA)</a></li><li><a href="jdbc.html">DataSource (JDBC)</a></li><li><a href="jms.html">MOM (JMS)</a></li><li><a href="jpa.html">Persistence (JPA)</a></li><li><a href="ejb.html">EJB</a></li><li><a href="cdi.html">CDI</a></li><li><a href="failover.html">HA/failover and cluster</a></li></ul></li><li><a href="monitoring.html">Monitoring and Management using JMX</a></li><li><a href="webconsole.html">WebConsole</a></li><li><a href="tuning.html">Tuning</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/developer-commands.html">Developer command
 s</a></li><li><a href="../developers-guide/scripting.html">Scripting</a></li><li><a href="../developers-guide/connect.html">Programmatically connect</a></li><li><a href="../developers-guide/branding.html">Branding</a></li><li><a href="../developers-guide/extending.html">Extending</a></li><li><a href="../developers-guide/karaf-maven-plugin.html">Karaf Maven plugin</a></li><li><a href="../developers-guide/custom-distribution.html">Custom distribution</a></li><li><a href="../developers-guide/services.html">OSGi services</a></li><li><a href="../developers-guide/creating-bundles.html">Create OSGi bundle</a></li><li><a href="../developers-guide/blueprint.html">Blueprint</a></li><li><a href="../developers-guide/cdi.html">CDI</a></li><li><a href="../developers-guide/archetypes.html">Maven Archetypes</a></li><li><a href="../developers-guide/security-framework.html">Security Framework</a></li><li><a href="../developers-guide/debugging.html">Troubleshooting, Debugging, Profiling</a></li><li><a
  href="../developers-guide/writing-tests.html">Integration testing</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>
@@ -101,14 +101,157 @@
               </td>
               <td height="100%" width="100%">
                 <div class="wiki-content">
-<h1 id="Configuration">Configuration</h1><p>All files in the <tt>etc</tt> directory that end with ".cfg" are loaded as config admin service pids. Changes to these config files are refelected in the config admin service.</p><p>Karaf provides a suite of commands to work on any config admin service pid grouped under <tt>config</tt>. To learn about all currently supported configuration commands type:</p><div class="table-wrap"><table class="confluenceTable"><tr><th class="confluenceTh"> Command                                </th><th class="confluenceTh"> Description   </th></tr><tr><td class="confluenceTd"> <a href="../commands/config-cancel.html"><tt>cancel</tt></a>     </td><td class="confluenceTd"> Discard changes </td></tr><tr><td class="confluenceTd"> <a href="../commands/config-edit.html"><tt>edit</tt></a>         </td><td class="confluenceTd"> Create or edit a configuration </td></tr><tr><td class="confluenceTd"> <a href="../commands/config-list.html"><tt>list</tt></a>         <
 /td><td class="confluenceTd"> List existing configurations </td></tr><tr><td class="confluenceTd"> <a href="../commands/config-property-delete.html"><tt>property-delete</tt></a>   </td><td class="confluenceTd"> Delete a property from the edited configuration </td></tr><tr><td class="confluenceTd"> <a href="../commands/config-property-list.html"><tt>property-list</tt></a> </td><td class="confluenceTd"> List properties from the edited configuration </td></tr><tr><td class="confluenceTd"> <a href="../commands/config-property-set.html"><tt>property-set</tt></a>   </td><td class="confluenceTd"> Set a property on the edited configuration </td></tr><tr><td class="confluenceTd"> <a href="../commands/config-update.html"><tt>update</tt></a>     </td><td class="confluenceTd"> Save and propagate changes from the configuration being edited </td></tr></table></div><h2 id="Editing">Editing</h2><h3 id="a1.SelectconfigurationPIDtoedit">1. Select configuration PID to edit</h3><p>For example to edit c
 onfiguration <tt>foo.bar</tt>:</p><pre>
-karaf@root> config:edit foo.bar
-</pre><h3 id="a2.Workonproperties">2. Work on properties</h3><p>Use the property commands to work on the properties. Any number of properties can be modified within a single editing session. </p><h3 id="a3.Updateorcanceltheedit">3. Update or cancel the edit</h3><p> * <a href="../commands/config-update.html"><tt>config:update</tt></a> save all changes<br/> * <a href="../commands/config-cancel.html"><tt>config:cancel</tt></a> discard all changes</p><h3 id="Modifyasingleproperty">Modify a single property</h3><p>To change a single property and commit the change in one step use:</p><pre>
-config:property-set -p &lt;pid> &lt;prop name> &lt;value>
-
-For example:
-config:property-set -p org.ops4j.pax.web org.osgi.service.http.port 8182
-</pre><h3 id="JMX">JMX</h3><p>Karaf also provides a Config MBean (org.apache.karaf:type=config) which allows work on configs using JMX.</p>
+<h1 id="Configuration">Configuration</h1><h2 id="Files">Files</h2><p>Apache Karaf stores and loads all configuration in files located in the <tt>etc</tt> folder.</p><p>By default, the <tt>etc</tt> folder is located relatively to the <tt>KARAF_BASE</tt> folder. You can define another location<br/>using the <tt>KARAF_ETC</tt> variable.</p><p>Each configuration is identified by a ID (the ConfigAdmin PID). The configuration files name follows the <tt>pid.cfg</tt><br/>name convention.</p><p>For instance, <tt>etc/org.apache.karaf.shell.cfg</tt> means that this file is the file used by the configuration with<br/><tt>org.apache.karaf.shell</tt> as PID.</p><p>A configuration file is a properties file containing key/value pairs:</p><pre>
+property=value
+</pre><p>In Apache Karaf, a configuration is PID with a set of properties attached.</p><p>Apache Karaf automatically loads all <tt>*.cfg</tt> files from the <tt>etc</tt> folder.</p><p>You can configure the behaviour of the configuration files using some dedicated properties in the<br/><tt>etc/config.properties</tt> configuration file:</p><pre>
+...
+#
+# Configuration FileMonitor properties
+#
+felix.fileinstall.enableConfigSave = true
+felix.fileinstall.dir    = ${karaf.etc}
+felix.fileinstall.filter = .*\\.cfg
+felix.fileinstall.poll   = 1000
+felix.fileinstall.noInitialDelay = true
+felix.fileinstall.log.level = 3
+...
+</pre><ul><li><tt>felix.fileinstall.enableConfigSave</tt> flush back in the configuration file the changes performed directly on the<p>configuration service (ConfigAdmin). If <tt>true</tt>, any change (using <tt>config:*</tt> commands, MBeans, OSGi service) is<br/>persisted back in the configuration false. Default is <tt>true</tt>.</p></li><li><tt>felix.fileinstall.dir</tt> is the directory where Apache Karaf is looking for configuration files. Default is <tt>${karaf.etc}</tt><p>meaning the value of the <tt>KARAF_ETC</tt> variable.</p></li><li><tt>felix.fileinstall.filter</tt> is the file name pattern used to load only some configuration files. Only files matching<p>the pattern will be loaded. Default value is <tt>.*<br/>.cfg</tt> meaning *.cfg files.</p></li><li><tt>felix.fileinstall.poll</tt> is the polling interval (in milliseconds). Default value is <tt>1000</tt> meaning that Apache<p>Karaf "re-loads" the configuration files every second.</p></li><li><tt>felix.fileinstall.noInit
 ialDelay</tt> is a flag indicating if the configuration file polling starts as soon as Apache<p>Karaf starts or wait for a certain time. If <tt>true</tt>, Apache Karaf polls the configuration files as soon as the configuration<br/>service starts.</p></li><li><tt>felix.fileinstall.log.level</tt> is the log message verbosity level of the configuration polling service. More<p>this value is high, more verbose the configuration service is.</p><p>You can change the configuration at runtime by directly editiing the configuration file.</p><p>You can also do the same using the <tt>config:*</tt> commands or the ConfigMBean.</p><h2 id="configcommands"><tt>config:*</tt> commands</h2><p>Apache Karaf provides a set of commands to manage the configuration.</p><h3 id="configlist"><tt>config:list</tt></h3><p><tt>config:list</tt> displays the list of all configurations available, or the properties in a given configuration (PID).</p><p>Without the <tt>query</tt> argument, the <tt>config:list</tt> comm
 and display all configurations, with PID, attached bundle and<br/>properties defined in the configuration:</p><pre>
+karaf@root()> config:list
+----------------------------------------------------------------
+Pid:            org.apache.karaf.service.acl.command.system.start-level
+BundleLocation: mvn:org.apache.karaf.shell/org.apache.karaf.shell.console/3.0.0
+Properties:
+   service.guard = (&amp;(osgi.command.scope=system)(osgi.command.function=start-level))
+   * = *
+   start-level = admin                           # admin can set any start level, including &lt; 100
+   start-level[/[^0-9]*/] = viewer               # viewer can obtain the current start level
+   execute[/.*/,/[^0-9]*/] = viewer               # viewer can obtain the current start level
+   execute = admin                           # admin can set any start level, including &lt; 100
+   service.pid = org.apache.karaf.service.acl.command.system.start-level
+   start-level[/.*[0-9][0-9][0-9]+.*/] = manager # manager can set startlevels above 100
+   execute[/.*/,/.*[0-9][0-9][0-9]+.*/] = manager # manager can set startlevels above 100
+----------------------------------------------------------------
+Pid:            org.apache.karaf.log
+BundleLocation: mvn:org.apache.karaf.log/org.apache.karaf.log.core/3.0.0
+Properties:
+   service.pid = org.apache.karaf.log
+   size = 500
+   pattern = %d{ISO8601} | %-5.5p | %-16.16t | %-32.32c{1} | %X{bundle.id} - %X{bundle.name} - %X{bundle.version} | %m%n
+   felix.fileinstall.filename = file:/opt/apache-karaf-3.0.0/etc/org.apache.karaf.log.cfg
+...
+</pre></li></ul><p>The <tt>query</tt> argument accepts a query using a LDAP syntax.</p><p>For instance, you can display details on one specific configuration using the following filter:</p><pre>
+karaf@root()> config:list "(service.pid=org.apache.karaf.log)"
+----------------------------------------------------------------
+Pid:            org.apache.karaf.log
+BundleLocation: mvn:org.apache.karaf.log/org.apache.karaf.log.core/3.0.0
+Properties:
+   service.pid = org.apache.karaf.log
+   size = 500
+   pattern = %d{ISO8601} | %-5.5p | %-16.16t | %-32.32c{1} | %X{bundle.id} - %X{bundle.name} - %X{bundle.version} | %m%n
+   felix.fileinstall.filename = file:/opt/apache-karaf-3.0.0/etc/org.apache.karaf.log.cfg
+</pre><h3 id="configedit"><tt>config:edit</tt></h3><p><tt>config:edit</tt> is the first command to do when you want to change a configuration. <tt>config:edit</tt> command put you<br/>in edition mode for a given configuration.</p><p>For instance, you can edit the <tt>org.apache.karaf.log</tt> configuration:</p><pre>
+karaf@root()> config:edit org.apache.karaf.log
+</pre><p>The <tt>config:edit</tt> command doesn't display anything, it just puts you in configuration edit mode. You are now ready<br/>to use other config commands (like <tt>config:property-append</tt>, <tt>config:property-delete</tt>, <tt>config:property-set</tt>, ...).</p><p>If you provide a configuration PID that doesn't exist yet, Apache Karaf will create a new configuration (and so a new<br/>configuration file) automatically.</p><p>All changes that you do in configuration edit mode are store in your console session: the changes are not directly<br/>applied in the configuration. It allows you to "commit" the changes (see <tt>config:update</tt> command) or "rollback" and<br/>cancel your changes (see <tt>config:cancel</tt> command).</p><h3 id="configpropertylist"><tt>config:property-list</tt></h3><p>The <tt>config:property-list</tt> lists the properties for the currently edited configuration.</p><p>Assuming that you edited the <tt>org.apache.karaf.log</tt> configuration, you can d
 o:</p><pre>
+karaf@root()> config:property-list
+   service.pid = org.apache.karaf.log
+   size = 500
+   pattern = %d{ISO8601} | %-5.5p | %-16.16t | %-32.32c{1} | %X{bundle.id} - %X{bundle.name} - %X{bundle.version} | %m%n
+   felix.fileinstall.filename = file:/opt/apache-karaf-3.0.0/etc/org.apache.karaf.log.cfg
+</pre><h3 id="configpropertyset"><tt>config:property-set</tt></h3><p>The <tt>config:property-set</tt> command update the value of a given property in the currently edited configuration.</p><p>For instance, to change the value of the <tt>size</tt> property of previously edited <tt>org.apache.karaf.log</tt> configuration,<br/>you can do:</p><pre>
+karaf@root()> config:property-set size 1000
+karaf@root()> config:property-list
+   service.pid = org.apache.karaf.log
+   size = 1000
+   pattern = %d{ISO8601} | %-5.5p | %-16.16t | %-32.32c{1} | %X{bundle.id} - %X{bundle.name} - %X{bundle.version} | %m%n
+   felix.fileinstall.filename = file:/opt/apache-karaf-3.0.0/etc/org.apache.karaf.log.cfg
+</pre><p>If the property doesn't exist, the <tt>config:property-set</tt> command creates the property.</p><p>You can use <tt>config:property-set</tt> command outside the configuration edit mode, by specifying the <tt>-p</tt> (for configuration pid) option:</p><pre>
+karaf@root()> config:property-set -p org.apache.karaf.log size 1000
+karaf@root()> config:list "(service.pid=org.apache.karaf.log)"
+----------------------------------------------------------------
+Pid:            org.apache.karaf.log
+BundleLocation: mvn:org.apache.karaf.log/org.apache.karaf.log.core/3.0.0
+Properties:
+   service.pid = org.apache.karaf.log
+   size = 1000
+   pattern = %d{ISO8601} | %-5.5p | %-16.16t | %-32.32c{1} | %X{bundle.id} - %X{bundle.name} - %X{bundle.version} | %m%n
+   felix.fileinstall.filename = file:/opt/apache-karaf-3.0.0/etc/org.apache.karaf.log.cfg
+</pre><div class="warning" style="border: 1px solid #c00;background-color: #fcc;margin: 20px;padding: 0px 6px 0px 6px;"><p>Using the <tt>pid</tt> option, you bypass the configuration commit and rollback mechanism.</p></div><h3 id="configpropertyappend"><tt>config:property-append</tt></h3><p>The <tt>config:property-append</tt> is similar to <tt>config:property-set</tt> command, but instead of completely replacing the<br/>property value, it appends a string at the end of the property value.</p><p>For instance, to add 1 at the end of the value of the <tt>size</tt> property in <tt>org.apache.karaf.log</tt> configuration<br/>(and so have 5001 for the value instead of 500), you can do:</p><pre>
+karaf@root()> config:property-append size 1
+karaf@root()> config:property-list
+   service.pid = org.apache.karaf.log
+   size = 5001
+   pattern = %d{ISO8601} | %-5.5p | %-16.16t | %-32.32c{1} | %X{bundle.id} - %X{bundle.name} - %X{bundle.version} | %m%n
+   felix.fileinstall.filename = file:/opt/apache-karaf-3.0.0/etc/org.apache.karaf.log.cfg
+</pre><p>Like the <tt>config:property-set</tt> command, if the property doesn't exist, the <tt>config:property-set</tt> command creates<br/>the property.</p><p>You can use the <tt>config:property-append</tt> command outside the configuration edit mode, by specifying the <tt>-p</tt> (for configuration pid) option:</p><pre>
+karaf@root()> config:property-append -p org.apache.karaf.log size 1
+karaf@root()> config:list "(service.pid=org.apache.karaf.log)"
+----------------------------------------------------------------
+Pid:            org.apache.karaf.log
+BundleLocation: mvn:org.apache.karaf.log/org.apache.karaf.log.core/3.0.0
+Properties:
+   service.pid = org.apache.karaf.log
+   size = 5001
+   pattern = %d{ISO8601} | %-5.5p | %-16.16t | %-32.32c{1} | %X{bundle.id} - %X{bundle.name} - %X{bundle.version} | %m%n
+   felix.fileinstall.filename = file:/opt/apache-karaf-3.0.0/etc/org.apache.karaf.log.cfg
+</pre><div class="warning" style="border: 1px solid #c00;background-color: #fcc;margin: 20px;padding: 0px 6px 0px 6px;"><p>Using the <tt>pid</tt> option, you bypass the configuration commit and rollback mechanism.</p></div><h3 id="configpropertydelete"><tt>config:property-delete</tt></h3><p>The <tt>config:property-delete</tt> command delete a property in the currently edited configuration.</p><p>For instance, you previously added a <tt>test</tt> property in <tt>org.apache.karaf.log</tt> configuration. To delete this <tt>test</tt><br/>property, you do:</p><pre>
+karaf@root()> config:property-set test test
+karaf@root()> config:property-list
+   service.pid = org.apache.karaf.log
+   size = 500
+   pattern = %d{ISO8601} | %-5.5p | %-16.16t | %-32.32c{1} | %X{bundle.id} - %X{bundle.name} - %X{bundle.version} | %m%n
+   felix.fileinstall.filename = file:/opt/apache-karaf-3.0.0/etc/org.apache.karaf.log.cfg
+   test = test
+karaf@root()> config:property-delete test
+karaf@root()> config:property-list
+   service.pid = org.apache.karaf.log
+   size = 500
+   pattern = %d{ISO8601} | %-5.5p | %-16.16t | %-32.32c{1} | %X{bundle.id} - %X{bundle.name} - %X{bundle.version} | %m%n
+   felix.fileinstall.filename = file:/opt/apache-karaf-3.0.0/etc/org.apache.karaf.log.cfg
+</pre><p>You can use the <tt>config:property-delete</tt> command outside the configuration edit mode, by specifying the <tt>-p</tt> (for configuration pid) option:</p><pre>
+karaf@root()> config:property-delete -p org.apache.karaf.log test
+</pre><h3 id="configupdateandconfigcancel"><tt>config:update</tt> and <tt>config:cancel</tt></h3><p>When you are in the configuration edit mode, all changes that you do using <tt>config:property*</tt> commands are stored in "memory"<br/>(actually in the console session).</p><p>Thanks to that, you can "commit" your changes using the <tt>config:update</tt> command. The <tt>config:update</tt> command will<br/>commit your changes, update the configuration, and (if possible) update the configuration files.</p><p>For instance, after changing <tt>org.apache.karaf.log</tt> configuration with some <tt>config:property*</tt> commands, you have<br/>to commit your change like this:</p><pre>
+karaf@root()> config:edit org.apache.karaf.log
+karaf@root()> config:property-set test test
+karaf@root()> config:update
+karaf@root()> config:list "(service.pid=org.apache.karaf.log)"
+----------------------------------------------------------------
+Pid:            org.apache.karaf.log
+BundleLocation: mvn:org.apache.karaf.log/org.apache.karaf.log.core/3.0.0
+Properties:
+   service.pid = org.apache.karaf.log
+   size = 500
+   pattern = %d{ISO8601} | %-5.5p | %-16.16t | %-32.32c{1} | %X{bundle.id} - %X{bundle.name} - %X{bundle.version} | %m%n
+   felix.fileinstall.filename = file:/opt/apache-karaf-3.0.0/etc/org.apache.karaf.log.cfg
+   test = test
+</pre><p>On the other hand, if you want to "rollback" your changes, you can use the <tt>config:cancel</tt> command. It will cancel all<br/>changes that you did, and return of the configuration state just before the <tt>config:edit</tt> command. The <tt>config:cancel</tt><br/>exits from the edit mode.</p><p>For instance, you added the test property in the <tt>org.apache.karaf.log</tt> configuration, but it was a mistake:</p><pre>
+karaf@root()> config:edit org.apache.karaf.log
+karaf@root()> config:property-set test test
+karaf@root()> config:cancel
+karaf@root()> config:list "(service.pid=org.apache.karaf.log)"
+----------------------------------------------------------------
+Pid:            org.apache.karaf.log
+BundleLocation: mvn:org.apache.karaf.log/org.apache.karaf.log.core/3.0.0
+Properties:
+   service.pid = org.apache.karaf.log
+   size = 500
+   pattern = %d{ISO8601} | %-5.5p | %-16.16t | %-32.32c{1} | %X{bundle.id} - %X{bundle.name} - %X{bundle.version} | %m%n
+   felix.fileinstall.filename = file:/opt/apache-karaf-3.0.0/etc/org.apache.karaf.log.cfg
+</pre><h3 id="configdelete"><tt>config:delete</tt></h3><p>The <tt>config:delete</tt> command completely delete an existing configuration. You don't have to be in edit mode to delete<br/>a configuration.</p><p>For instance, you added <tt>my.config</tt> configuration:</p><pre>
+karaf@root()> config:edit my.config
+karaf@root()> config:property-set test test
+karaf@root()> config:update
+karaf@root()> config:list "(service.pid=my.config)"
+----------------------------------------------------------------
+Pid:            my.config
+BundleLocation: null
+Properties:
+   service.pid = my.config
+   test = test
+</pre><p>You can delete the <tt>my.config</tt> configuration (including all properties in the configuration) using the <tt>config:delete</tt><br/>command:</p><pre>
+karaf@root()> config:delete my.config
+karaf@root()> config:list "(service.pid=my.config)"
+karaf@root()>
+</pre><h2 id="JMXConfigMBean">JMX ConfigMBean</h2><p>On the JMX layer, you have a MBean dedicated to the management of the configurations: the ConfigMBean.</p><p>The ConfigMBean object name is: <tt>org.apache.karaf:type=config,name=*</tt>.</p><h3 id="Attributes">Attributes</h3><p>The <tt>Configs</tt> attribute is a list of all configuration PIDs.</p><h3 id="Operations">Operations</h3><ul><li><tt>listProperties(pid)</tt> returns the list of properties (property=value formatted) for the configuration <tt>pid</tt>.</li><li><tt>deleteProperty(pid, property)</tt> deletes the <tt>property</tt> from the configuration <tt>pid</tt>.</li><li><tt>appendProperty(pid, property, value)</tt> appends <tt>value</tt> at the end of the value of the <tt>property</tt> of the configuration <tt>pid</tt>.</li><li><tt>setProperty(pid, property, value)</tt> sets <tt>value</tt> for the value of the <tt>property</tt> of the configuration <tt>pid</tt>.</li><li><tt>delete(pid)</tt> deletes the configuration iden
 tified by the <tt>pid</tt>.</li><li><tt>create(pid)</tt> creates an empty (without any property) configuration with <tt>pid</tt>.</li><li><tt>update(pid, properties)</tt> updates a configuration identified with <tt>pid</tt> with the provided <tt>properties</tt> map.</li></ul>
                 </div>
               </td>
             </tr>

Added: karaf/site/production/manual/latest/users-guide/console.html
URL: http://svn.apache.org/viewvc/karaf/site/production/manual/latest/users-guide/console.html?rev=1553356&view=auto
==============================================================================
--- karaf/site/production/manual/latest/users-guide/console.html (added)
+++ karaf/site/production/manual/latest/users-guide/console.html Wed Dec 25 06:31:51 2013
@@ -0,0 +1,393 @@
+<!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 3.0.1-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">Installation</a></li><li><a href="directory-structure.html">Directory structure</a></li><li><a href="start-stop.html">Start, stop, restart, connect</a></li><li><a href="wrapper.html">Integration in the operating system: the Service Wrapper</a></li><li><a href="console.html">Console</a></li><li><a href="remote.html">Remote</a></li><li><a href="log.html">Log</a></li><li><a href="configuration.html">Configuration</a></li><li><a href="urls.html">Artifacts repositories and URLs</a></li><li><a href="provisioning.html">Provisioning and features</a></li><li><a href="deployers.html">Deployers</a></li><li><a href="kar.html">KAR</a></li><li><a
  href="instances.html">Instances</a></li><li><a href="security.html">Security</a></li><li><a href="obr.html">OBR</a></li><li><a href="enterprise.html">Enterprise</a><ul><li><a href="webcontainer.html">WebContainer (JSP/Servlet)</a></li><li><a href="jndi.html">Naming (JNDI)</a></li><li><a href="jta.html">Transaction (JTA)</a></li><li><a href="jdbc.html">DataSource (JDBC)</a></li><li><a href="jms.html">MOM (JMS)</a></li><li><a href="jpa.html">Persistence (JPA)</a></li><li><a href="ejb.html">EJB</a></li><li><a href="cdi.html">CDI</a></li><li><a href="failover.html">HA/failover and cluster</a></li></ul></li><li><a href="monitoring.html">Monitoring and Management using JMX</a></li><li><a href="webconsole.html">WebConsole</a></li><li><a href="tuning.html">Tuning</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/developer-commands.html">Developer command
 s</a></li><li><a href="../developers-guide/scripting.html">Scripting</a></li><li><a href="../developers-guide/connect.html">Programmatically connect</a></li><li><a href="../developers-guide/branding.html">Branding</a></li><li><a href="../developers-guide/extending.html">Extending</a></li><li><a href="../developers-guide/karaf-maven-plugin.html">Karaf Maven plugin</a></li><li><a href="../developers-guide/custom-distribution.html">Custom distribution</a></li><li><a href="../developers-guide/services.html">OSGi services</a></li><li><a href="../developers-guide/creating-bundles.html">Create OSGi bundle</a></li><li><a href="../developers-guide/blueprint.html">Blueprint</a></li><li><a href="../developers-guide/cdi.html">CDI</a></li><li><a href="../developers-guide/archetypes.html">Maven Archetypes</a></li><li><a href="../developers-guide/security-framework.html">Security Framework</a></li><li><a href="../developers-guide/debugging.html">Troubleshooting, Debugging, Profiling</a></li><li><a
  href="../developers-guide/writing-tests.html">Integration testing</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="Usingtheconsole">Using the console</h1><h2 id="Availablecommands">Available commands</h2><p>To see a list of the available commands in the console, you can use the <tt>help</tt>:</p><pre>
+karaf@root()> help
+COMMANDS
+bundle
+bundle:capabilities               Displays OSGi capabilities of a given bundles.
+bundle:classes                    Displays a list of classes contained in the bundle
+...
+</pre><p>You have the list of all commands with a short description.</p><p>You can use the tab key to get a quick list of all commands:</p><pre>
+karaf@root()> Display all 280 possibilities? (y or n)
+...
+</pre><h2 id="Subshellandcompletionmode">Subshell and completion mode</h2><p>The commands have a scope and a name. For instance, the command <tt>feature:list</tt> has <tt>feature</tt> as scope, and <tt>list</tt> as name.</p><p>Karaf "groups" the commands by scope. Each scope form a subshell.</p><p>You can directly execute a command with its full qualified name (scope:name):</p><pre>
+karaf@root()> feature:list
+...
+</pre><p>or enter in a subshell and type the command contextual to the subshell:</p><pre>
+karaf@root()> feature
+karaf@root(feature)> list
+</pre><p>You can note that you enter in a subshell directly by typing the subshell name (here <tt>feature</tt>). You can "switch" directly from a subshell to another:</p><pre>
+karaf@root()> feature
+karaf@root(feature)> bundle
+karaf@root(bundle)>
+</pre><p>The prompt displays the current subshell between ().</p><p>The <tt>exit</tt> command goes to the parent subshell:</p><pre>
+karaf@root()> feature
+karaf@root(feature)> exit
+karaf@root()>
+</pre><p>The completion mode defines the behaviour of the tab key and the help command.</p><p>You have three different modes available:</p><ul><li>GLOBAL</li><li>FIRST</li><li>SUBSHELL</li></ul><p>You can define your default completion mode using the completionMode property in <tt>etc/org.apache.karaf.shell.cfg</tt> file. By default, you have:</p><pre>
+completionMode = GLOBAL
+</pre><p>You can also change the completion mode “on the fly” (while using the Karaf shell console) using the <tt>shell:completion</tt> command:</p><pre>
+karaf@root()> shell:completion
+GLOBAL
+karaf@root()> shell:completion FIRST
+karaf@root()> shell:completion
+FIRST
+</pre><p><tt>shell:completion</tt> can inform you about the current completion mode used. You can also provide the new completion mode that you want.</p><p>GLOBAL completion mode is the default one in Karaf 3.0.0 (mostly for transition purpose).</p><p>GLOBAL mode doesn’t really use subshell: it’s the same behavior as in previous Karaf versions.</p><p>When you type the tab key, whatever in which subshell you are, the completion will display all commands and all aliases:</p><pre>
+karaf@root()> &lt;TAB>
+karaf@root()> Display all 273 possibilities? (y or n)
+...
+karaf@root()> feature
+karaf@root(feature)> &lt;TAB>
+karaf@root(feature)> Display all 273 possibilities? (y or n)
+</pre><p>FIRST completion mode is an alternative to the GLOBAL completion mode.</p><p>If you type the tab key on the root level subshell, the completion will display the commands and the aliases from all subshells (as in GLOBAL mode).<br/>However, if you type the tab key when you are in a subshell, the completion will display only the commands of the current subshell:</p><pre>
+karaf@root()> shell:completion FIRST
+karaf@root()> &lt;TAB>
+karaf@root()> Display all 273 possibilities? (y or n)
+...
+karaf@root()> feature
+karaf@root(feature)> &lt;TAB>
+karaf@root(feature)>
+info install list repo-add repo-list repo-remove uninstall version-list
+karaf@root(feature)> exit
+karaf@root()> log
+karaf@root(log)> &lt;TAB>
+karaf@root(log)>
+clear display exception-display get log set tail
+</pre><p>SUBSHELL completion mode is the real subshell mode.</p><p>If you type the tab key on the root level, the completion displays the subshell commands (to go into a subshell), and the global aliases.<br/>Once you are in a subshell, if you type the TAB key, the completion displays the commands of the current subshell:</p><pre>
+karaf@root()> shell:completion SUBSHELL
+karaf@root()> &lt;TAB>
+karaf@root()>
+* bundle cl config dev feature help instance jaas kar la ld lde log log:list man package region service shell ssh system
+karaf@root()> bundle
+karaf@root(bundle)> &lt;TAB>
+karaf@root(bundle)>
+capabilities classes diag dynamic-import find-class headers info install list refresh requirements resolve restart services start start-level stop
+uninstall update watch
+karaf@root(bundle)> exit
+karaf@root()> camel
+karaf@root(camel)> &lt;TAB>
+karaf@root(camel)>
+backlog-tracer-dump backlog-tracer-info backlog-tracer-start backlog-tracer-stop context-info context-list context-start context-stop endpoint-list route-info route-list route-profile route-reset-stats
+route-resume route-show route-start route-stop route-suspend
+</pre><h2 id="Unixlikeenvironment">Unix like environment</h2><p>Karaf console provides a full Unix like environment.</p><h3 id="Helporman">Help or man</h3><p>We already saw the usage of the <tt>help</tt> command to display all commands available.</p><p>But you can also use the <tt>help</tt> command to get details about a command:</p><pre>
+karaf@root()> help feature:list
+DESCRIPTION
+        feature:list
+
+        Lists all existing features available from the defined repositories.
+
+SYNTAX
+        feature:list [options]
+
+OPTIONS
+        --help
+                Display this help message
+        -o, --ordered
+                Display a list using alphabetical order
+        -i, --installed
+                Display a list of all installed features only
+        --no-format
+                Disable table rendered output
+
+</pre><p>It's very similar to the <tt>man</tt> command on Unix. You can also use the <tt>man</tt> command (which is an lias to the <tt>help</tt> command):</p><pre>
+karaf@root()> man feature:list
+DESCRIPTION
+        feature:list
+
+        Lists all existing features available from the defined repositories.
+
+SYNTAX
+        feature:list [options]
+
+OPTIONS
+        --help
+                Display this help message
+        -o, --ordered
+                Display a list using alphabetical order
+        -i, --installed
+                Display a list of all installed features only
+        --no-format
+                Disable table rendered output
+
+</pre><p>You can also use another form to get the command help, by using the <tt>--help</tt> option to the command:</p><pre>
+karaf@root()> feature:list --help
+DESCRIPTION
+        feature:list
+
+        Lists all existing features available from the defined repositories.
+
+SYNTAX
+        feature:list [options]
+
+OPTIONS
+        --help
+                Display this help message
+        -o, --ordered
+                Display a list using alphabetical order
+        -i, --installed
+                Display a list of all installed features only
+        --no-format
+                Disable table rendered output
+
+</pre><h3 id="Completion">Completion</h3><p>When you type the tab key, Karaf tries to complete:</p><ul><li>the subshell</li><li>the commands</li><li>the aliases</li><li>the command arguments</li><li>the command option</li></ul><h3 id="Alias">Alias</h3><p>An alias is another name associated to a given command.</p><p>The <tt>shell:alias</tt> command creates a new alias. For instance, to create the <tt>list-installed-features</tt> alias to the actual<br/><tt>feature:list -i</tt> command, you can do:</p><pre>
+karaf@root()> alias "list-features-installed = { feature:list -i }"
+karaf@root()> list-features-installed 
+Name       | Version  | Installed | Repository     | Description
+---------------------------------------------------------------------------------------------------------
+standard   | 3.0.0    | x         | standard-3.0.0 | Karaf standard feature
+config     | 3.0.0    | x         | standard-3.0.0 | Provide OSGi ConfigAdmin support
+region     | 3.0.0    | x         | standard-3.0.0 | Provide Region Support
+package    | 3.0.0    | x         | standard-3.0.0 | Package commands and mbeans
+kar        | 3.0.0    | x         | standard-3.0.0 | Provide KAR (KARaf archive) support
+ssh        | 3.0.0    | x         | standard-3.0.0 | Provide a SSHd server on Karaf
+management | 3.0.0    | x         | standard-3.0.0 | Provide a JMX MBeanServer and a set of MBeans in K
+</pre><p>At login, the Apache Karaf console reads the <tt>etc/shell.init.script</tt> file where you can create your aliases.<br/>It's similar to a bashrc or profile file on Unix.</p><pre>
+//
+// Licensed to the Apache Software Foundation (ASF) under one
+// or more contributor license agreements.  See the NOTICE file
+// distributed with this work for additional information
+// regarding copyright ownership.  The ASF licenses this file
+// to you under the Apache License, Version 2.0 (the
+// "License"); you may not use this file except in compliance
+// with the License.  You may obtain a copy of the License at
+//
+//   http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing,
+// software distributed under the License is distributed on an
+// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+// KIND, either express or implied.  See the License for the
+// specific language governing permissions and limitations
+// under the License.
+//
+// This script is run each time a shell is created.
+// You can define here closures or variables that will be available
+// in each session.
+//
+ld = { log:display $args } ;
+lde = { log:exception-display $args } ;
+la = { bundle:list -t 0 $args } ;
+ls = { service:list $args } ;
+cl = { config:list "(service.pid=$args)" } ;
+halt = { system:shutdown -h -f $args } ;
+help = { *:help $args | more } ;
+man = { help $args } ;
+log:list = { log:get ALL } ;
+</pre><p>You can see here the aliases available by default:</p><ul><li><tt>ld</tt> is a short form to display log (alias to <tt>log:display</tt> command)</li><li><tt>lde</tt> is a short form to display exceptions (alias to <tt>log:exception-display</tt> command)</li><li><tt>la</tt> is a short form to list all bundles (alias to <tt>bundle:list -t 0</tt> command)</li><li><tt>ls</tt> is a short form to list all services (alias to <tt>service:list</tt> command)</li><li><tt>cl</tt> is a short form to list all configurations (alias to <tt>config:list</tt> command)</li><li><tt>halt</tt> is a short form to shutdown Apache Karaf (alias to <tt>system:shutdown -h -f</tt> command)</li><li><tt>help</tt> is a short form to display help (alias to <tt>*:help</tt> command)</li><li><tt>man</tt> is the same as help (alias to <tt>help</tt> command)</li><li><tt>log:list</tt> displays all loggers and level (alias to <tt>log:get ALL</tt> command)</li></ul><p>You can create your own aliases in the <tt>etc/
 shell.init.script</tt> file.</p><h3 id="Keybinding">Key binding</h3><p>Like on most Unix environment, Karaf console support some key bindings:</p><ul><li>the arrows key to navigate in the commands history</li><li>CTRL-D to logout/shutdown Karaf</li><li>CTRL-R to search previously executed command</li><li>CTRL-U to remove the current line</li></ul><h3 id="Pipe">Pipe</h3><p>You can pipe the output of one command as input to another one. It's a pipe, using the | character:</p><pre>
+karaf@root()> feature:list|grep -i karaf
+standard                      | 3.0.0  | x         | standard-3.0.0          | Karaf standard feature
+war                           | 3.0.0  |           | standard-3.0.0          | Turn Karaf as a full WebContainer
+kar                           | 3.0.0  | x         | standard-3.0.0          | Provide KAR (KARaf archive) support
+webconsole                    | 3.0.0  |           | standard-3.0.0          | Base support of the Karaf WebConsole
+ssh                           | 3.0.0  | x         | standard-3.0.0          | Provide a SSHd server on Karaf
+scheduler                     | 3.0.0  |           | standard-3.0.0          | Provide a scheduler service in Karaf to fire event
+jasypt-encryption             | 3.0.0  |           | standard-3.0.0          | Advanced encryption support for Karaf security
+</pre><h3 id="Grepmorefind...">Grep, more, find, ...</h3><p>Karaf console provides some core commands similar to Unix environment:</p><ul><li><tt>shell:head</tt> displays the first line of the input</li><li><tt>shell:source</tt> executes commands contained in a script</li><li><tt>shell:alias</tt> creates an alias to an existing command</li><li><tt>shell:history</tt> prints the commands history</li><li><tt>shell:cat</tt> displays the content of a file or URL</li><li><tt>shell:if</tt> allows you to use conditions (if, then, else blocks) in script</li><li><tt>shell:tac</tt> captures stdin and returns it as a string</li><li><tt>shell:clear</tt> clears the current console display</li><li><tt>shell:info</tt> prints various information about the current Karaf instance</li><li><tt>shell:tail</tt> displays the last lines of the input</li><li><tt>shell:completion</tt> displays or change the current completion mode</li><li><tt>shell:java</tt> executes a Java application</li><li><tt>shell:threa
 ds</tt> prints the current thread</li><li><tt>shell:date</tt> displays the current date (optionally using a format)</li><li><tt>shell:watch</tt> periodically executes a command and refresh the output</li><li><tt>shell:each</tt> executes a closure on a list of arguments</li><li><tt>shell:more</tt> is a file pager</li><li><tt>shell:wc</tt> prints newline, words, and byte counts for each file</li><li><tt>shell:echo</tt> echoes and prints arguments to stdout</li><li><tt>shell:new</tt> creates a new Java object</li><li><tt>shell:edit</tt> calls a text editor on the current file or URL</li><li><tt>shell:printf</tt> formats and prints arguments</li><li><tt>shell:exec</tt> executes a system command</li><li><tt>shell:sleep</tt> sleeps for a bit then wakes up</li><li><tt>shell:grep</tt> prints lines matching the given pattern</li><li><tt>shell:sort</tt> writes sorted concatenation of all files to stdout</li></ul><p>You don't have to use the full qualified name of the command, you can directly
  use the command name:</p><pre>
+karaf@root(shell)> head --help
+DESCRIPTION
+        shell:head
+
+        Displays the first lines of a file.
+
+SYNTAX
+        shell:head [options] [paths or urls]
+
+ARGUMENTS
+        paths or urls
+                A list of file paths or urls to display separated by whitespaces.
+
+OPTIONS
+        -n
+                The number of lines to display, starting at 1.
+        --help
+                Display this help message
+
+</pre><p>Again, you can find details and all options of these commands using <tt>help</tt> command or <tt>--help</tt> option.</p><h3 id="Scripting">Scripting</h3><p>The Apache Karaf Console supports a complete scripting language, similar to bash or csh on Unix.</p><p>The <tt>each</tt> (<tt>shell:each</tt>) command can iterate in a list:</p><pre>
+karaf@root()> list = [1 2 3]; each ($list) { echo $it }
+1
+2
+3
+</pre><p>You can create the list yourself (as in the previous example), or some commands can return a list too.</p><p>We can note that the console created a "session" variable with the name <tt>list</tt> that you can access with <tt>$list</tt>.</p><p>The <tt>$it</tt> variable is an implicit one corresponding to the current object (here the current iterated value from the<br/>list).</p><p>When you create a list with <tt>[]</tt>, Apache Karaf console creates a Java ArrayList. It means that you can use methods<br/>available in the ArrayList objects (like get or size for instance):</p><pre>
+karaf@root()> list = ["Hello" world]; echo ($list get 0) ($list get 1)
+Hello world
+</pre><p>We can note here that calling a method on an object is directly using <tt>(object method argument)</tt>.<br/>Here <tt>($list get 0)</tt> means <tt>$list.get(0)</tt> where <tt>$list</tt> is the ArrayList.</p><p>The <tt>class</tt> notation will display details about the object:</p><pre>
+karaf@root()> $list class
+...
+ProtectionDomain     ProtectionDomain  null
+ null
+ &lt;no principals>
+ java.security.Permissions@6521c24e (
+ ("java.security.AllPermission" "&lt;all permissions>" "&lt;all actions>")
+)
+
+
+Signers              null
+SimpleName           ArrayList
+TypeParameters       [E]
+</pre><p>You can "cast" a variable to a given type.</p><pre>
+karaf@root()> ("hello world" toCharArray)
+[h, e, l, l, o,  , w, o, r, l, d]
+</pre><p>If it fails, you will see the casting exception:</p><pre>
+karaf@root()> ("hello world" toCharArray)[0]
+Error executing command: [C cannot be cast to [Ljava.lang.Object;
+</pre><p>You can "call" a script using the <tt>shell:source</tt> command:</p><pre>
+karaf@root> shell:source script.txt
+True!
+</pre><p>where <tt>script.txt</tt> contains:</p><pre>
+foo = "foo"
+if { $foo equals "foo" } {
+  echo "True!"
+}
+</pre><div class="warning" style="border: 1px solid #c00;background-color: #fcc;margin: 20px;padding: 0px 6px 0px 6px;"><p>The spaces are important when writing script.<br/>For instance, the following script is not correct:</p><pre>
+if{ $foo equals "foo" } ...
+</pre><p>and will fail with:</p><pre>
+karaf@root> shell:source script.txt
+Error executing command: Cannot coerce echo "true!"() to any of []
+</pre><p>because a space is missing after the <tt>if</tt> statement.</p></div><p>As for the aliases, you can create init scripts in the <tt>etc/shell.init.script</tt> file.<br/>You can also named you script with an alias. Actually, the aliases are just scripts.</p><p>See the Scripting section of the developers guide for details.</p><h2 id="Security">Security</h2><p>The Apache Karaf console supports a Role Based Access Control (RBAC) security mechanism. It means that depending of<br/>the user connected to the console, you can define, depending of the user's groups and roles, the permission to execute<br/>some commands, or limit the values allowed for the arguments.</p><p>Console security is detailed in the <a href="security.html">Security section</a> of this user guide.</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/users-guide/deployers.html
URL: http://svn.apache.org/viewvc/karaf/site/production/manual/latest/users-guide/deployers.html?rev=1553356&view=auto
==============================================================================
--- karaf/site/production/manual/latest/users-guide/deployers.html (added)
+++ karaf/site/production/manual/latest/users-guide/deployers.html Wed Dec 25 06:31:51 2013
@@ -0,0 +1,296 @@
+<!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 3.0.1-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">Installation</a></li><li><a href="directory-structure.html">Directory structure</a></li><li><a href="start-stop.html">Start, stop, restart, connect</a></li><li><a href="wrapper.html">Integration in the operating system: the Service Wrapper</a></li><li><a href="console.html">Console</a></li><li><a href="remote.html">Remote</a></li><li><a href="log.html">Log</a></li><li><a href="configuration.html">Configuration</a></li><li><a href="urls.html">Artifacts repositories and URLs</a></li><li><a href="provisioning.html">Provisioning and features</a></li><li><a href="deployers.html">Deployers</a></li><li><a href="kar.html">KAR</a></li><li><a
  href="instances.html">Instances</a></li><li><a href="security.html">Security</a></li><li><a href="obr.html">OBR</a></li><li><a href="enterprise.html">Enterprise</a><ul><li><a href="webcontainer.html">WebContainer (JSP/Servlet)</a></li><li><a href="jndi.html">Naming (JNDI)</a></li><li><a href="jta.html">Transaction (JTA)</a></li><li><a href="jdbc.html">DataSource (JDBC)</a></li><li><a href="jms.html">MOM (JMS)</a></li><li><a href="jpa.html">Persistence (JPA)</a></li><li><a href="ejb.html">EJB</a></li><li><a href="cdi.html">CDI</a></li><li><a href="failover.html">HA/failover and cluster</a></li></ul></li><li><a href="monitoring.html">Monitoring and Management using JMX</a></li><li><a href="webconsole.html">WebConsole</a></li><li><a href="tuning.html">Tuning</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/developer-commands.html">Developer command
 s</a></li><li><a href="../developers-guide/scripting.html">Scripting</a></li><li><a href="../developers-guide/connect.html">Programmatically connect</a></li><li><a href="../developers-guide/branding.html">Branding</a></li><li><a href="../developers-guide/extending.html">Extending</a></li><li><a href="../developers-guide/karaf-maven-plugin.html">Karaf Maven plugin</a></li><li><a href="../developers-guide/custom-distribution.html">Custom distribution</a></li><li><a href="../developers-guide/services.html">OSGi services</a></li><li><a href="../developers-guide/creating-bundles.html">Create OSGi bundle</a></li><li><a href="../developers-guide/blueprint.html">Blueprint</a></li><li><a href="../developers-guide/cdi.html">CDI</a></li><li><a href="../developers-guide/archetypes.html">Maven Archetypes</a></li><li><a href="../developers-guide/security-framework.html">Security Framework</a></li><li><a href="../developers-guide/debugging.html">Troubleshooting, Debugging, Profiling</a></li><li><a
  href="../developers-guide/writing-tests.html">Integration testing</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="Deployers">Deployers</h1><p>The following picture describes the architecture of the deployers.</p><p><img border="0" src="../images/deployer.png"/></p><p>Apache Karaf polls the <tt>deploy</tt> folder for new files.</p><p>You can configure the location of the <tt>deploy</tt> folder, and the polling behaviour in the <tt>etc/org.apache.felix.fileinstall-deploy.cfg</tt><br/>configuration file:</p><pre>
+################################################################################
+#
+#    Licensed to the Apache Software Foundation (ASF) under one or more
+#    contributor license agreements.  See the NOTICE file distributed with
+#    this work for additional information regarding copyright ownership.
+#    The ASF licenses this file to You under the Apache License, Version 2.0
+#    (the "License"); you may not use this file except in compliance with
+#    the License.  You may obtain a copy of the License at
+#
+#       http://www.apache.org/licenses/LICENSE-2.0
+#
+#    Unless required by applicable law or agreed to in writing, software
+#    distributed under the License is distributed on an "AS IS" BASIS,
+#    WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+#    See the License for the specific language governing permissions and
+#    limitations under the License.
+#
+################################################################################
+
+felix.fileinstall.dir           = ${karaf.base}/deploy
+felix.fileinstall.tmpdir        = ${karaf.data}/generated-bundles
+felix.fileinstall.poll          = 1000
+felix.fileinstall.start.level   = 80
+felix.fileinstall.active.level  = 80
+</pre><ul><li><tt>felix.fileinstall.dir</tt> defines the location of the <tt>deploy</tt> folder. Default value is <tt>KARAF_BASE/deploy</tt>.</li><li><tt>felix.fileinstall.tmpdir</tt> defines a temporary folder where the deployers store their files. Default value is <tt>KARAF_DATA/generated-bundles</tt>.</li><li><tt>felix.fileinstall.poll</tt> defines the polling interval (in milliseconds). Default value is 1 second.</li></ul><p>When Apache Karaf polls a file from the <tt>deploy</tt> folder, it "delegates" the file handling to a deployer.</p><p>By default, Apache Karaf provides a set of deployers:</p><ul><li>Blueprint deployer is able to handle Blueprint XML files.</li><li>Spring deployer is able to handle Spring XML files.</li><li>Features deployer is able to handle Apache Karaf features XML files (see <a href="provisioning.html">Provisioning section</a> for details).</li><li>KAR deployer is able to handle KAR files (see <a href="kar.html">KAR section</a> for details).</li><li>Wrap
  deployer is able to handle non-OSGi jar files and turns it as OSGi bundles "on the fly".</li><li>Optionally, WAR deployer (if you install the war feature) is able to handle WAR files.</li></ul><h2 id="Blueprintdeployer">Blueprint deployer</h2><p>The Blueprint deployer is able to handle plain Blueprint XML configuration files.</p><p>The Blueprint deployer is able to transform "on the fly" any Blueprint XML file into valid OSGi bundle.</p><p>The generated OSGi MANIFEST will contain the following headers:</p><pre>
+Manifest-Version: 2
+Bundle-SymbolicName: [name of the file]
+Bundle-Version: [version of the file]
+Import-Package: [required packages]
+DynamicImport-Package: *
+</pre><p>The <tt>name</tt> and <tt>version</tt> of the file are extracted using a heuristic that will match common patterns.</p><p>For example <tt>my-config-1.0.1.xml</tt> will lead to <tt>name = my-config</tt> and <tt>version = 1.0.1</tt>.</p><p>The default imported packages are extracted from the spring file definition and includes all classes referenced directly.</p><p>If you need to customize the generated manifest, you can do so by including an xml element in your blueprint configuration:</p><pre>
+&lt;blueprint xmlns="http://www.osgi.org/xmlns/blueprint/v1.0.0">
+  &lt;manifest xmlns="http://karaf.apache.org/xmlns/deployer/blueprint/v1.0.0">
+    Require-Bundle= my-bundle
+  &lt;/manifest>
+</pre><h2 id="Springdeployer">Spring deployer</h2><p>The Spring deployer is similar to the Blueprint deployer.</p><p>The Spring deployer is able to deploy Spring XML files.</p><p>Like the Blueprint deployer, the generated OSGi MANIFEST will contain the following headers:</p><pre>
+Manifest-Version: 2
+Bundle-SymbolicName: [name of the file]
+Bundle-Version: [version of the file]
+Spring-Context: *;publish-context:=false;create-asynchronously:=true
+Import-Package: [required packages]
+DynamicImport-Package: *
+</pre><p>If you need to customize the generated manifest, you can do so by including a XML element in your Spring configuration:</p><pre>
+&lt;spring:beans ...>
+  &lt;manifest xmlns="http://karaf.apache.org/xmlns/deployer/spring/v1.0.0">
+    Require-Bundle= my-bundle
+  &lt;/manifest>
+</pre><h2 id="Featuresdeployer">Features deployer</h2><p>See the <a href="provisioning.html">Provisioning section</a> for details.</p><h2 id="KARdeployer">KAR deployer</h2><p>See the <a href="kar.html">KAR section</a> for details.</p><h2 id="Wardeployer">War deployer</h2><p>The installation of the WAR feature enables a WAR deployer.</p><p>It means that with the war feature installed, Apache Karaf is a complete OSGi WebContainer (like Tomcat) where<br/>you can deploy WAB (WebApplication Bundle) or pure WAR (WebApplication aRchive).</p><p>You can install the war feature with:</p><pre>
+karaf@root()> feature:install -v war
+Installing feature war 3.0.0
+Installing feature pax-war 3.0.5
+Installing feature pax-http-whiteboard 3.0.5
+Installing feature pax-http 3.0.5
+Installing feature pax-jetty 8.1.14.v20131031
+Found installed bundle: org.apache.servicemix.specs.activation-api-1.1 [81]
+Found installed bundle: org.apache.geronimo.specs.geronimo-servlet_3.0_spec [82]
+Found installed bundle: javax.mail [83]
+Found installed bundle: org.apache.geronimo.specs.geronimo-jta_1.1_spec [84]
+Found installed bundle: org.apache.geronimo.specs.geronimo-annotation_1.1_spec [85]
+Found installed bundle: org.apache.geronimo.specs.geronimo-jaspic_1.0_spec [86]
+Found installed bundle: org.apache.servicemix.bundles.asm [87]
+Found installed bundle: org.eclipse.jetty.aggregate.jetty-all-server [88]
+Checking configuration file mvn:org.ops4j.pax.web/pax-web-features/3.0.5/xml/jettyconfig
+Installing bundle mvn:org.ops4j.base/ops4j-base-lang/1.4.0
+Found installed bundle: org.ops4j.pax.swissbox.core [89]
+Found installed bundle: org.ops4j.pax.swissbox.optional.jcl [90]
+Found installed bundle: org.apache.xbean.bundleutils [91]
+Found installed bundle: org.apache.xbean.asm-shaded [92]
+Found installed bundle: org.apache.xbean.reflect [93]
+Found installed bundle: org.apache.xbean.finder-shaded [94]
+Found installed bundle: org.ops4j.pax.web.pax-web-api [95]
+Found installed bundle: org.ops4j.pax.web.pax-web-spi [96]
+Found installed bundle: org.ops4j.pax.web.pax-web-runtime [97]
+Found installed bundle: org.ops4j.pax.web.pax-web-jetty [98]
+Found installed bundle: org.ops4j.pax.web.pax-web-jsp [99]
+Found installed bundle: org.ops4j.pax.web.pax-web-extender-whiteboard [100]
+Installing bundle mvn:org.ops4j.pax.web/pax-web-jsp/3.0.5
+Found installed bundle: org.ops4j.pax.web.pax-web-extender-war [101]
+Installing bundle mvn:org.ops4j.pax.web/pax-web-extender-whiteboard/3.0.5
+Found installed bundle: org.ops4j.pax.web.pax-web-deployer [102]
+Found installed bundle: org.ops4j.pax.url.war [103]
+Found installed bundle: org.ops4j.pax.url.commons [104]
+Found installed bundle: org.ops4j.pax.swissbox.pax-swissbox-bnd [105]
+Found installed bundle: org.ops4j.pax.swissbox.property [106]
+Installing bundle mvn:org.ops4j.base/ops4j-base-net/1.4.0
+Installing bundle mvn:org.ops4j.base/ops4j-base-lang/1.4.0
+Installing bundle mvn:org.ops4j.base/ops4j-base-monitors/1.4.0
+Installing bundle mvn:org.ops4j.base/ops4j-base-util-property/1.4.0
+Found installed bundle: biz.aQute.bndlib [107]
+Found installed bundle: org.apache.karaf.web.core [108]
+Found installed bundle: org.apache.karaf.web.command [109]
+</pre><p>We can note that the Pax Web deployer (WAR deployer) has been started:</p><pre>
+...
+Found installed bundle: org.ops4j.pax.web.pax-web-deployer [102]
+...
+</pre><p>The WAR deployer supports:</p><ul><li>WAB files</li><li>WAR files</li><li>exploded WAR (as a directory named <tt>*.war</tt>).</li></ul><p>The only requirement of the WAR deployer is that the archive contains the <tt>WEB-INF/web.xml</tt> file.</p><h2 id="Wrapdeployer">Wrap deployer</h2><p>The wrap deployer allows you to "hot deploy" non-OSGi jar files ("classical" jar files) from the deploy folder.</p><p>The wrap deployer creates "on the fly" an OSGi bundle with a non-OSGi jar file.</p><p>The wrap deployer looks for jar files in the deploy folder. A jar file is considered as non-OSGi if the MANIFEST doesn't<br/>contain the <tt>Bundle-SymbolicName</tt> and <tt>Bundle-Version</tt> attributes, or if there is no MANIFEST at all.</p><p>The wrap deployer "transforms" non-OSGi jar file into an OSGi bundle.</p><p>The wrap deployer tries to populate the Bundle-SymbolicName and Bundle-Version extracted from the jar file path.</p><p>For example, if you simply copy commons-lang-2.3.jar 
 (which is not an OSGi bundle) into the deploy folder, you<br/>will see:</p><pre>
+karaf@root()> la|grep -i commons-lang
+80 | Active   |  80 | 2.3                   | commons-lang
+</pre><p>If you take a look on the commons-lang headers, you can see that the bundle exports all packages with optional resolution<br/>and that <tt>Bundle-SymbolicName</tt> and <tt>Bundle-Version</tt> have been populated:</p><pre>
+karaf@root()> bundle:headers 80
+
+commons-lang (80)
+-----------------
+Specification-Title = Commons Lang
+Tool = Bnd-2.1.0.20130426-122213
+Specification-Version = 2.3
+Specification-Vendor = Apache Software Foundation
+Implementation-Version = 2.3
+Generated-By-Ops4j-Pax-From = wrap:file:/opt/apache-karaf-3.0.0/deploy/commons-lang-2.3.jar$Bundle-SymbolicName=commons-lang&amp;Bundle-Version=2.3
+Implementation-Vendor-Id = org.apache
+Created-By = 1.7.0_21 (Oracle Corporation)
+Implementation-Title = Commons Lang
+Manifest-Version = 1.0
+Bnd-LastModified = 1386339925753
+X-Compile-Target-JDK = 1.1
+Originally-Created-By = 1.3.1_09-85 ("Apple Computer, Inc.")
+Ant-Version = Apache Ant 1.6.5
+Package = org.apache.commons.lang
+X-Compile-Source-JDK = 1.3
+Extension-Name = commons-lang
+Implementation-Vendor = Apache Software Foundation
+
+Bundle-Name = commons-lang
+Bundle-SymbolicName = commons-lang
+Bundle-Version = 2.3
+Bundle-ManifestVersion = 2
+
+Export-Package =
+        org.apache.commons.lang;uses:=org.apache.commons.lang.exception,
+        org.apache.commons.lang.builder,
+        org.apache.commons.lang.enum,
+        org.apache.commons.lang.enums,
+        org.apache.commons.lang.exception,
+        org.apache.commons.lang.math,
+        org.apache.commons.lang.mutable,
+        org.apache.commons.lang.text,
+        org.apache.commons.lang.time,
+        org,
+        org.apache,
+        org.apache.commons
+
+</pre><p>You can specify some MANIFEST headers by specifying the headers as URL parameters.</p><p>In the URL parameters, you can specify the headers using the '$' character and '&amp;' to separate the different headers.<br/>For instance:</p><pre>
+karaf@root()> bundle:install -s 'wrap:mvn:jboss/jbossall-client/4.2.3.GA/$Bundle-SymbolicName=jbossall-client&amp;Bundle-Version=4.2.3.GA&amp;Export-Package=org.jboss.remoting;version="4.2.3.GA",\!*'
+</pre><p>When defined in a features.xml file, it's necessary to escape any ampersands and quotes, or use a CDATA tag:</p><pre>
+&lt;bundle>wrap:mvn:jboss/jbossall-client/4.3.2.GA/$Bundle-SymbolicName=jbossall-client&amp;undle-Version=4.3.2.GA&amp;xport-Package=org.jboss.remoting;version=&quot;.3.2.GA&quot;!*&lt;/bundle>
+</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

Modified: karaf/site/production/manual/latest/users-guide/directory-structure.html
URL: http://svn.apache.org/viewvc/karaf/site/production/manual/latest/users-guide/directory-structure.html?rev=1553356&r1=1553355&r2=1553356&view=diff
==============================================================================
--- karaf/site/production/manual/latest/users-guide/directory-structure.html (original)
+++ karaf/site/production/manual/latest/users-guide/directory-structure.html Wed Dec 25 06:31:51 2013
@@ -8,7 +8,7 @@
     <link href="../css/style.css" rel="stylesheet" type="text/css"/>
     <link href="../css/pygmentize.css" rel="stylesheet" type="text/css"/>
     <title>
-      Apache Karaf 3.0.0-SNAPSHOT Guides
+      Apache Karaf 3.0.1-SNAPSHOT Guides
     </title>
   </head>
   <body>
@@ -93,7 +93,7 @@
                   <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="configuration.html">Configuration</a></li><li><a href="using-console.html">Using the console</a></li><li><a href="web-console.html">Web 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="deployer.html">Deployer</a></li><li><a href="child-instances.html">Child instances</a></li><li><a href="security.html">Security</a></li><li><a hre
 f="failover.html">Failover Deployments</a></li><li><a href="logging-system.html">Logging system</a></li><li><a href="provisioning.html">Provisioning</a></li><li><a href="kar.html">KAR archive</a></li><li><a href="jre-tuning.html">JRE tuning</a></li><li><a href="web-applications.html">Web applications</a></li><li><a href="http.html">HTTP service</a></li><li><a href="jmx.html">JMX for monitoring and administration</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/connect-console.html">Programmatically connect to the Console</a></li><li><a href="../developers-guide/shell-syntax.html">Shell syntax</a></li><li><a href="../developers-guide/creating-bundles.html">Creating bundles</a></li><li><a href="../developers-guide/debugging.html">Troubleshooting, Debugging and Profiling</a></li><li><a href="../developers-guide/developer-commands.html">Developer Com
 mands</a></li><li><a href="../developers-guide/archetypes.html">Maven Archetypes</a></li><li><a href="../developers-guide/extending-console.html">Extending the Console</a></li><li><a href="../developers-guide/branding-console.html">Branding the Console</a></li><li><a href="../developers-guide/karaf-maven-plugin.html">Using the Karaf Maven plugin</a></li><li><a href="../developers-guide/security-framework.html">Security Framework</a></li><li><a href="../developers-guide/custom-distribution.html">Custom Distribution</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>
+                        <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">Installation</a></li><li><a href="directory-structure.html">Directory structure</a></li><li><a href="start-stop.html">Start, stop, restart, connect</a></li><li><a href="wrapper.html">Integration in the operating system: the Service Wrapper</a></li><li><a href="console.html">Console</a></li><li><a href="remote.html">Remote</a></li><li><a href="log.html">Log</a></li><li><a href="configuration.html">Configuration</a></li><li><a href="urls.html">Artifacts repositories and URLs</a></li><li><a href="provisioning.html">Provisioning and features</a></li><li><a href="deployers.html">Deployers</a></li><li><a href="kar.html">KAR</a></li><li><a
  href="instances.html">Instances</a></li><li><a href="security.html">Security</a></li><li><a href="obr.html">OBR</a></li><li><a href="enterprise.html">Enterprise</a><ul><li><a href="webcontainer.html">WebContainer (JSP/Servlet)</a></li><li><a href="jndi.html">Naming (JNDI)</a></li><li><a href="jta.html">Transaction (JTA)</a></li><li><a href="jdbc.html">DataSource (JDBC)</a></li><li><a href="jms.html">MOM (JMS)</a></li><li><a href="jpa.html">Persistence (JPA)</a></li><li><a href="ejb.html">EJB</a></li><li><a href="cdi.html">CDI</a></li><li><a href="failover.html">HA/failover and cluster</a></li></ul></li><li><a href="monitoring.html">Monitoring and Management using JMX</a></li><li><a href="webconsole.html">WebConsole</a></li><li><a href="tuning.html">Tuning</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/developer-commands.html">Developer command
 s</a></li><li><a href="../developers-guide/scripting.html">Scripting</a></li><li><a href="../developers-guide/connect.html">Programmatically connect</a></li><li><a href="../developers-guide/branding.html">Branding</a></li><li><a href="../developers-guide/extending.html">Extending</a></li><li><a href="../developers-guide/karaf-maven-plugin.html">Karaf Maven plugin</a></li><li><a href="../developers-guide/custom-distribution.html">Custom distribution</a></li><li><a href="../developers-guide/services.html">OSGi services</a></li><li><a href="../developers-guide/creating-bundles.html">Create OSGi bundle</a></li><li><a href="../developers-guide/blueprint.html">Blueprint</a></li><li><a href="../developers-guide/cdi.html">CDI</a></li><li><a href="../developers-guide/archetypes.html">Maven Archetypes</a></li><li><a href="../developers-guide/security-framework.html">Security Framework</a></li><li><a href="../developers-guide/debugging.html">Troubleshooting, Debugging, Profiling</a></li><li><a
  href="../developers-guide/writing-tests.html">Integration testing</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>
@@ -101,7 +101,7 @@
               </td>
               <td height="100%" width="100%">
                 <div class="wiki-content">
-<h1 id="Directorystructure">Directory structure</h1><p>The directory layout of a Karaf installation is as follows:</p><ul><li><tt>/bin</tt>: startup scripts</li><li><tt>/etc</tt>: configuration files</li><li><tt>/data</tt>: working directory <ul><li><tt>/cache</tt>: OSGi framework bundle cache</li><li><tt>/generated-bundles</tt>: temporary folder used by the deployer</li><li><tt>/log</tt>: log files</li></ul></li><li><tt>/deploy</tt>: hot deploy directory</li><li><tt>/instances</tt>: directory containing <a href="child-instances.html">child instances</a></li><li><tt>/lib</tt>: contains the bootstrap libraries<ul><li><tt>/lib/ext</tt>: directory for JRE extensions</li><li><tt>/lib/endorsed</tt>: directory for endorsed libraries</li></ul></li><li><tt>/system</tt>: OSGi bundles repository, laid out as a Maven 2 repository</li></ul><div class="tip" style="border: 1px solid #090;background-color: #dfd;margin: 20px;padding: 0px 6px 0px 6px;"><p>The <tt>data</tt> folder contains all the wo
 rking and temporary files for Karaf.  If you want to restart from a clean state, you can wipe out this directory, which has the same effect as <a href="start-stop#Starting Karaf from clean.html">using the clean option</a>.</p></div>	
+<h1 id="Directorystructure">Directory structure</h1><p>The directory layout of a Karaf installation is as follows:</p><ul><li><tt>/bin</tt>: control scripts to start, stop, login, ...</li><li><tt>/etc</tt>: configuration files</li><li><tt>/data</tt>: working directory <ul><li><tt>/cache</tt>: OSGi framework bundle cache</li><li><tt>/generated-bundles</tt>: temporary folder used by the deployers</li><li><tt>/log</tt>: log files</li></ul></li><li><tt>/deploy</tt>: hot deploy directory</li><li><tt>/instances</tt>: directory containing <a href="instances.html">instances</a></li><li><tt>/lib</tt>: contains the bootstrap libraries<ul><li><tt>/lib/ext</tt>: directory for JRE extensions</li><li><tt>/lib/endorsed</tt>: directory for endorsed libraries</li></ul></li><li><tt>/system</tt>: OSGi bundles repository, laid out as a Maven 2 repository</li></ul><div class="tip" style="border: 1px solid #090;background-color: #dfd;margin: 20px;padding: 0px 6px 0px 6px;"><p>The <tt>data</tt> folder con
 tains all the working and temporary files for Karaf.<br/>If you want to restart from a clean state, you can wipe out this directory, which has the same effect as<br/><a href="start-stop#Starting Karaf from clean.html">using the clean option</a>.</p></div>	
                 </div>
               </td>
             </tr>