You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@karaf.apache.org by an...@apache.org on 2015/01/25 12:57:12 UTC
[5/5] karaf git commit: show alternative documentation solution with
asciidoc
show alternative documentation solution with asciidoc
Project: http://git-wip-us.apache.org/repos/asf/karaf/repo
Commit: http://git-wip-us.apache.org/repos/asf/karaf/commit/677c6d46
Tree: http://git-wip-us.apache.org/repos/asf/karaf/tree/677c6d46
Diff: http://git-wip-us.apache.org/repos/asf/karaf/diff/677c6d46
Branch: refs/heads/master
Commit: 677c6d4603488e9079cff4c56f459c81f45b47c3
Parents: 63f201b
Author: anierbeck <bc...@googlemail.com>
Authored: Sun Jan 25 12:56:22 2015 +0100
Committer: anierbeck <bc...@googlemail.com>
Committed: Sun Jan 25 12:56:22 2015 +0100
----------------------------------------------------------------------
manual/pom.xml | 951 ++++++++++---------
.../asciidoc/users-guide/adociguration.adoc | 351 +++++++
manual/src/main/asciidoc/users-guide/cdi.adoc | 88 ++
.../src/main/asciidoc/users-guide/console.adoc | 413 ++++++++
.../main/asciidoc/users-guide/deployers.adoc | 272 ++++++
.../users-guide/directory-structure.adoc | 20 +
manual/src/main/asciidoc/users-guide/ejb.adoc | 80 ++
.../main/asciidoc/users-guide/enterprise.adoc | 21 +
.../src/main/asciidoc/users-guide/failover.adoc | 229 +++++
.../src/main/asciidoc/users-guide/features.adoc | 50 +
manual/src/main/asciidoc/users-guide/http.adoc | 60 ++
manual/src/main/asciidoc/users-guide/index.adoc | 63 ++
.../main/asciidoc/users-guide/installation.adoc | 144 +++
.../main/asciidoc/users-guide/instances.adoc | 365 +++++++
manual/src/main/asciidoc/users-guide/jdbc.adoc | 212 +++++
manual/src/main/asciidoc/users-guide/jms.adoc | 290 ++++++
manual/src/main/asciidoc/users-guide/jndi.adoc | 205 ++++
manual/src/main/asciidoc/users-guide/jpa.adoc | 26 +
manual/src/main/asciidoc/users-guide/jta.adoc | 105 ++
manual/src/main/asciidoc/users-guide/kar.adoc | 297 ++++++
manual/src/main/asciidoc/users-guide/log.adoc | 551 +++++++++++
.../main/asciidoc/users-guide/migration.adoc | 52 +
.../main/asciidoc/users-guide/monitoring.adoc | 259 +++++
manual/src/main/asciidoc/users-guide/obr.adoc | 359 +++++++
.../users-guide/provisioning-schema.adoc | 32 +
.../main/asciidoc/users-guide/provisioning.adoc | 585 ++++++++++++
.../src/main/asciidoc/users-guide/remote.adoc | 409 ++++++++
.../src/main/asciidoc/users-guide/security.adoc | 569 +++++++++++
.../main/asciidoc/users-guide/start-stop.adoc | 419 ++++++++
.../src/main/asciidoc/users-guide/tuning.adoc | 145 +++
.../src/main/asciidoc/users-guide/update.adoc | 5 +
manual/src/main/asciidoc/users-guide/urls.adoc | 44 +
.../main/asciidoc/users-guide/webconsole.adoc | 48 +
.../main/asciidoc/users-guide/webcontainer.adoc | 275 ++++++
.../src/main/asciidoc/users-guide/wrapper.adoc | 376 ++++++++
35 files changed, 7914 insertions(+), 456 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/karaf/blob/677c6d46/manual/pom.xml
----------------------------------------------------------------------
diff --git a/manual/pom.xml b/manual/pom.xml
index 21643cf..fafa089 100644
--- a/manual/pom.xml
+++ b/manual/pom.xml
@@ -1,126 +1,120 @@
<?xml version="1.0" encoding="UTF-8"?>
-<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
- <!--
+ <!-- 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. -->
- 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
+ <modelVersion>4.0.0</modelVersion>
- http://www.apache.org/licenses/LICENSE-2.0
+ <parent>
+ <groupId>org.apache.karaf</groupId>
+ <artifactId>karaf</artifactId>
+ <version>4.0.0-SNAPSHOT</version>
+ <relativePath>../pom.xml</relativePath>
+ </parent>
- 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.
- -->
+ <artifactId>manual</artifactId>
+ <name>Apache Karaf :: Manual</name>
+ <packaging>war</packaging>
- <modelVersion>4.0.0</modelVersion>
+ <properties>
+ <must-succeed>false</must-succeed>
+ <manual.dir>${project.build.directory}/manual</manual.dir>
+ <manual>${manual.dir}/manual-${project.version}</manual>
+ <netbeans.hint.deploy.server>Tomcat60</netbeans.hint.deploy.server>
+ <jetty-port>8080</jetty-port>
+ <jetty-war-dir>${project.build.directory}/webapp/</jetty-war-dir>
+ <scalate.version>1.4.0</scalate.version>
+ <wikitext.version>1.3</wikitext.version>
+ <scalate.editor>${env.SCALATE_EDITOR}</scalate.editor>
+ <scalate.mode>production</scalate.mode>
+ <scalate.workdir>${project.build.directory}/scalateWorkDir</scalate.workdir>
+ <karaf.version>${project.version}</karaf.version>
+ <maven.wagon.version>1.0-beta-6</maven.wagon.version>
+ </properties>
- <parent>
- <groupId>org.apache.karaf</groupId>
- <artifactId>karaf</artifactId>
- <version>4.0.0-SNAPSHOT</version>
- <relativePath>../pom.xml</relativePath>
- </parent>
+ <dependencies>
+ <dependency>
+ <groupId>org.fusesource.scalate</groupId>
+ <artifactId>scalate-wikitext</artifactId>
+ <version>${scalate.version}</version>
+ </dependency>
+ <dependency>
+ <groupId>ch.qos.logback</groupId>
+ <artifactId>logback-classic</artifactId>
+ <version>1.0.0</version>
+ </dependency>
+ <dependency>
+ <groupId>org.slf4j</groupId>
+ <artifactId>slf4j-api</artifactId>
+ </dependency>
+ <dependency>
+ <groupId>org.scala-lang</groupId>
+ <artifactId>scala-library</artifactId>
+ <version>2.8.1</version>
+ </dependency>
+ <dependency>
+ <groupId>org.scala-lang</groupId>
+ <artifactId>scala-compiler</artifactId>
+ <version>2.8.1</version>
+ </dependency>
+ </dependencies>
- <artifactId>manual</artifactId>
- <name>Apache Karaf :: Manual</name>
- <packaging>war</packaging>
-
- <properties>
- <must-succeed>false</must-succeed>
- <manual.dir>${project.build.directory}/manual</manual.dir>
- <manual>${manual.dir}/manual-${project.version}</manual>
- <netbeans.hint.deploy.server>Tomcat60</netbeans.hint.deploy.server>
- <jetty-port>8080</jetty-port>
- <jetty-war-dir>${project.build.directory}/webapp/</jetty-war-dir>
- <scalate.version>1.4.0</scalate.version>
- <wikitext.version>1.3</wikitext.version>
- <scalate.editor>${env.SCALATE_EDITOR}</scalate.editor>
- <scalate.mode>production</scalate.mode>
- <scalate.workdir>${project.build.directory}/scalateWorkDir</scalate.workdir>
- <karaf.version>${project.version}</karaf.version>
- <maven.wagon.version>1.0-beta-6</maven.wagon.version>
- </properties>
-
- <dependencies>
- <dependency>
- <groupId>org.fusesource.scalate</groupId>
- <artifactId>scalate-wikitext</artifactId>
- <version>${scalate.version}</version>
- </dependency>
- <dependency>
- <groupId>ch.qos.logback</groupId>
- <artifactId>logback-classic</artifactId>
- <version>1.0.0</version>
- </dependency>
- <dependency>
- <groupId>org.slf4j</groupId>
- <artifactId>slf4j-api</artifactId>
- </dependency>
- <dependency>
- <groupId>org.scala-lang</groupId>
- <artifactId>scala-library</artifactId>
- <version>2.8.1</version>
- </dependency>
- <dependency>
- <groupId>org.scala-lang</groupId>
- <artifactId>scala-compiler</artifactId>
- <version>2.8.1</version>
- </dependency>
- </dependencies>
-
- <build>
- <plugins>
- <plugin>
- <groupId>org.apache.maven.plugins</groupId>
- <artifactId>maven-resources-plugin</artifactId>
- <configuration>
- <useDefaultDelimiters>false</useDefaultDelimiters>
- <delimiters>
- <delimiter>${*}</delimiter>
- </delimiters>
- </configuration>
- <executions>
- <execution>
- <id>filter</id>
- <phase>generate-resources</phase>
- <goals>
- <goal>copy-resources</goal>
- </goals>
- <configuration>
- <outputDirectory>${project.build.directory}/webapp</outputDirectory>
- <resources>
- <resource>
- <directory>src/main/webapp</directory>
- <filtering>true</filtering>
- </resource>
- </resources>
- </configuration>
- </execution>
- </executions>
- </plugin>
- <plugin>
- <groupId>org.codehaus.mojo</groupId>
- <artifactId>build-helper-maven-plugin</artifactId>
- <executions>
- <execution>
- <id>add-source</id>
- <phase>generate-resources</phase>
- <goals>
- <goal>add-source</goal>
- </goals>
- <configuration>
- <sources>
- <source>${project.build.directory}/webapp</source>
- </sources>
- </configuration>
- </execution>
+ <build>
+ <plugins>
+ <plugin>
+ <groupId>org.apache.maven.plugins</groupId>
+ <artifactId>maven-resources-plugin</artifactId>
+ <configuration>
+ <useDefaultDelimiters>false</useDefaultDelimiters>
+ <delimiters>
+ <delimiter>${*}</delimiter>
+ </delimiters>
+ </configuration>
+ <executions>
+ <execution>
+ <id>filter</id>
+ <phase>generate-resources</phase>
+ <goals>
+ <goal>copy-resources</goal>
+ </goals>
+ <configuration>
+ <outputDirectory>${project.build.directory}/webapp</outputDirectory>
+ <resources>
+ <resource>
+ <directory>src/main/webapp</directory>
+ <filtering>true</filtering>
+ </resource>
+ </resources>
+ </configuration>
+ </execution>
+ </executions>
+ </plugin>
+ <plugin>
+ <groupId>org.codehaus.mojo</groupId>
+ <artifactId>build-helper-maven-plugin</artifactId>
+ <executions>
+ <execution>
+ <id>add-source</id>
+ <phase>generate-resources</phase>
+ <goals>
+ <goal>add-source</goal>
+ </goals>
+ <configuration>
+ <sources>
+ <source>${project.build.directory}/webapp</source>
+ </sources>
+ </configuration>
+ </execution>
<!--
<execution>
<id>attach-artifacts</id>
@@ -138,358 +132,403 @@
</configuration>
</execution>
-->
- </executions>
- </plugin>
- <plugin>
- <groupId>org.apache.karaf.tooling</groupId>
- <artifactId>karaf-maven-plugin</artifactId>
- <version>${project.version}</version>
- <executions>
- <execution>
- <id>generate-commands-help</id>
- <phase>generate-resources</phase>
- <goals>
- <goal>commands-generate-help</goal>
- </goals>
- <configuration>
- <format>conf</format>
- <targetFolder>${project.build.directory}/webapp/commands/</targetFolder>
- <classLoader>plugin</classLoader>
- </configuration>
- </execution>
- </executions>
- <dependencies>
- <!-- Commands for help generation -->
- <dependency>
- <groupId>org.apache.karaf.shell</groupId>
- <artifactId>org.apache.karaf.shell.commands</artifactId>
- <version>${project.version}</version>
- </dependency>
- <dependency>
- <groupId>org.apache.karaf.shell</groupId>
- <artifactId>org.apache.karaf.shell.core</artifactId>
- <version>${project.version}</version>
- </dependency>
- <dependency>
- <groupId>org.apache.karaf.log</groupId>
- <artifactId>org.apache.karaf.log.core</artifactId>
- <version>${project.version}</version>
- </dependency>
- <dependency>
- <groupId>org.apache.karaf.obr</groupId>
- <artifactId>org.apache.karaf.obr.core</artifactId>
- <version>${project.version}</version>
- </dependency>
- <dependency>
- <groupId>org.apache.karaf.bundle</groupId>
- <artifactId>org.apache.karaf.bundle.core</artifactId>
- <version>${project.version}</version>
- </dependency>
- <dependency>
- <groupId>org.apache.karaf.bundle</groupId>
- <artifactId>org.apache.karaf.bundle.springstate</artifactId>
- <version>${project.version}</version>
- </dependency>
- <dependency>
- <groupId>org.apache.karaf.service</groupId>
- <artifactId>org.apache.karaf.service.core</artifactId>
- <version>${project.version}</version>
- </dependency>
- <dependency>
- <groupId>org.apache.karaf.system</groupId>
- <artifactId>org.apache.karaf.system.core</artifactId>
- <version>${project.version}</version>
- </dependency>
- <dependency>
- <groupId>org.apache.karaf.shell</groupId>
- <artifactId>org.apache.karaf.shell.ssh</artifactId>
- <version>${project.version}</version>
- </dependency>
- <dependency>
- <groupId>org.apache.karaf.web</groupId>
- <artifactId>org.apache.karaf.web.core</artifactId>
- <version>${project.version}</version>
- </dependency>
- <dependency>
- <groupId>org.apache.karaf.wrapper</groupId>
- <artifactId>org.apache.karaf.wrapper.core</artifactId>
- <version>${project.version}</version>
- </dependency>
- <dependency>
- <groupId>org.apache.karaf.instance</groupId>
- <artifactId>org.apache.karaf.instance.core</artifactId>
- <version>${project.version}</version>
- </dependency>
- <dependency>
- <groupId>org.apache.karaf.diagnostic</groupId>
- <artifactId>org.apache.karaf.diagnostic.core</artifactId>
- <version>${project.version}</version>
- </dependency>
- <dependency>
- <groupId>org.apache.karaf.features</groupId>
- <artifactId>org.apache.karaf.features.command</artifactId>
- <version>${project.version}</version>
- </dependency>
- <dependency>
- <groupId>org.apache.karaf.jaas</groupId>
- <artifactId>org.apache.karaf.jaas.command</artifactId>
- <version>${project.version}</version>
- </dependency>
- <dependency>
- <groupId>org.apache.karaf.scr</groupId>
- <artifactId>org.apache.karaf.scr.command</artifactId>
- <version>${project.version}</version>
- </dependency>
- <!-- Additional Required Dependencies -->
- <dependency>
- <groupId>org.apache.felix</groupId>
- <artifactId>org.apache.felix.gogo.runtime</artifactId>
- <version>${felix.gogo.version}</version>
- </dependency>
- <dependency>
- <groupId>org.osgi</groupId>
- <artifactId>org.osgi.core</artifactId>
- <version>${osgi.version}</version>
- </dependency>
- <dependency>
- <groupId>org.osgi</groupId>
- <artifactId>org.osgi.compendium</artifactId>
- <version>${osgi.compendium.version}</version>
- </dependency>
- <dependency>
- <groupId>org.apache.felix</groupId>
- <artifactId>org.apache.felix.bundlerepository</artifactId>
- <version>${felix.bundlerepository.version}</version>
- </dependency>
- </dependencies>
- </plugin>
+ </executions>
+ </plugin>
+ <plugin>
+ <groupId>org.apache.karaf.tooling</groupId>
+ <artifactId>karaf-maven-plugin</artifactId>
+ <version>${project.version}</version>
+ <executions>
+ <execution>
+ <id>generate-commands-help</id>
+ <phase>generate-resources</phase>
+ <goals>
+ <goal>commands-generate-help</goal>
+ </goals>
+ <configuration>
+ <format>conf</format>
+ <targetFolder>${project.build.directory}/webapp/commands/</targetFolder>
+ <classLoader>plugin</classLoader>
+ </configuration>
+ </execution>
+ </executions>
+ <dependencies>
+ <!-- Commands for help generation -->
+ <dependency>
+ <groupId>org.apache.karaf.shell</groupId>
+ <artifactId>org.apache.karaf.shell.commands</artifactId>
+ <version>${project.version}</version>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.karaf.shell</groupId>
+ <artifactId>org.apache.karaf.shell.core</artifactId>
+ <version>${project.version}</version>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.karaf.log</groupId>
+ <artifactId>org.apache.karaf.log.core</artifactId>
+ <version>${project.version}</version>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.karaf.obr</groupId>
+ <artifactId>org.apache.karaf.obr.core</artifactId>
+ <version>${project.version}</version>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.karaf.bundle</groupId>
+ <artifactId>org.apache.karaf.bundle.core</artifactId>
+ <version>${project.version}</version>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.karaf.bundle</groupId>
+ <artifactId>org.apache.karaf.bundle.springstate</artifactId>
+ <version>${project.version}</version>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.karaf.service</groupId>
+ <artifactId>org.apache.karaf.service.core</artifactId>
+ <version>${project.version}</version>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.karaf.system</groupId>
+ <artifactId>org.apache.karaf.system.core</artifactId>
+ <version>${project.version}</version>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.karaf.shell</groupId>
+ <artifactId>org.apache.karaf.shell.ssh</artifactId>
+ <version>${project.version}</version>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.karaf.web</groupId>
+ <artifactId>org.apache.karaf.web.core</artifactId>
+ <version>${project.version}</version>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.karaf.wrapper</groupId>
+ <artifactId>org.apache.karaf.wrapper.core</artifactId>
+ <version>${project.version}</version>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.karaf.instance</groupId>
+ <artifactId>org.apache.karaf.instance.core</artifactId>
+ <version>${project.version}</version>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.karaf.diagnostic</groupId>
+ <artifactId>org.apache.karaf.diagnostic.core</artifactId>
+ <version>${project.version}</version>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.karaf.features</groupId>
+ <artifactId>org.apache.karaf.features.command</artifactId>
+ <version>${project.version}</version>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.karaf.jaas</groupId>
+ <artifactId>org.apache.karaf.jaas.command</artifactId>
+ <version>${project.version}</version>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.karaf.scr</groupId>
+ <artifactId>org.apache.karaf.scr.command</artifactId>
+ <version>${project.version}</version>
+ </dependency>
+ <!-- Additional Required Dependencies -->
+ <dependency>
+ <groupId>org.apache.felix</groupId>
+ <artifactId>org.apache.felix.gogo.runtime</artifactId>
+ <version>${felix.gogo.version}</version>
+ </dependency>
+ <dependency>
+ <groupId>org.osgi</groupId>
+ <artifactId>org.osgi.core</artifactId>
+ <version>${osgi.version}</version>
+ </dependency>
+ <dependency>
+ <groupId>org.osgi</groupId>
+ <artifactId>org.osgi.compendium</artifactId>
+ <version>${osgi.compendium.version}</version>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.felix</groupId>
+ <artifactId>org.apache.felix.bundlerepository</artifactId>
+ <version>${felix.bundlerepository.version}</version>
+ </dependency>
+ </dependencies>
+ </plugin>
<plugin>
- <groupId>org.fusesource.scalate</groupId>
- <artifactId>maven-scalate-plugin</artifactId>
- <version>${scalate.version}</version>
- <executions>
- <execution>
- <id>generate-htmls</id>
- <phase>prepare-package</phase>
- <goals>
- <goal>sitegen-no-fork</goal>
- </goals>
- <configuration>
- <warSourceDirectory>${project.build.directory}/webapp</warSourceDirectory>
- </configuration>
- </execution>
- </executions>
- <configuration>
- <remoteServerId>people.apache.org</remoteServerId>
- <remoteServerUrl>scp://people.apache.org/www/karaf.apache.org/manual/${karaf.version}
- </remoteServerUrl>
- </configuration>
- <dependencies>
- <dependency>
- <groupId>org.apache.maven.wagon</groupId>
- <artifactId>wagon-ssh</artifactId>
- <version>${maven.wagon.version}</version>
- </dependency>
- <dependency>
- <groupId>org.fusesource.wikitext</groupId>
- <artifactId>confluence-core</artifactId>
- <version>${wikitext.version}</version>
- </dependency>
- </dependencies>
- </plugin>
- <plugin>
- <groupId>org.apache.maven.plugins</groupId>
- <artifactId>maven-antrun-plugin</artifactId>
- <executions>
- <execution>
- <id>create-manual</id>
- <phase>package</phase>
- <goals>
- <goal>run</goal>
- </goals>
- <configuration>
- <tasks>
- <mkdir dir="${manual.dir}" />
- <move file="${project.build.directory}/sitegen/manual.html" tofile="${manual}.html" />
- <echo message="Generating PDF using Prince XML (http://www.princexml.com/)" />
- <exec executable="prince">
- <arg value="${manual}.html" />
- <arg value="${manual}.pdf" />
- <arg value="--log" />
- <arg value="${project.build.directory}/prince.log" />
- </exec>
- <attachartifact file="${manual}.html" type="html" />
- <attachartifact file="${manual}.pdf" type="pdf" />
- </tasks>
- </configuration>
- </execution>
- </executions>
- </plugin>
- <plugin>
- <groupId>org.apache.maven.plugins</groupId>
- <artifactId>maven-war-plugin</artifactId>
- <configuration>
- <webResources>
- <resource>
- <directory>${project.build.directory}/webapp/</directory>
- </resource>
- </webResources>
- <archive>
- <manifestFile>${project.build.outputDirectory}/META-INF/MANIFEST.MF</manifestFile>
- </archive>
- </configuration>
- </plugin>
- <plugin>
- <groupId>org.mortbay.jetty</groupId>
- <artifactId>jetty-maven-plugin</artifactId>
- <version>7.1.5.v20100705</version>
- <configuration>
+ <groupId>org.apache.maven.plugins</groupId>
+ <artifactId>maven-war-plugin</artifactId>
+ <configuration>
+ <webResources>
+ <resource>
+ <directory>${project.build.directory}/webapp/</directory>
+ </resource>
+ </webResources>
+ <archive>
+ <manifestFile>${project.build.outputDirectory}/META-INF/MANIFEST.MF</manifestFile>
+ </archive>
+ </configuration>
+ </plugin>
+ <plugin>
+ <groupId>org.mortbay.jetty</groupId>
+ <artifactId>jetty-maven-plugin</artifactId>
+ <version>7.1.5.v20100705</version>
+ <configuration>
<!-- When editing the conf files, you can comment this line to run
mvn jetty:run
to have a live web site
-->
- <webAppSourceDirectory>${jetty-war-dir}</webAppSourceDirectory>
+ <webAppSourceDirectory>${jetty-war-dir}</webAppSourceDirectory>
- <systemProperties>
- <systemProperty>
- <name>scalate.editor</name>
- <value>${scalate.editor}</value>
- </systemProperty>
- <systemProperty>
- <name>scalate.workdir</name>
- <value>${scalate.workdir}</value>
- </systemProperty>
- <systemProperty>
- <name>scalate.mode</name>
- <value>${scalate.mode}</value>
- </systemProperty>
- </systemProperties>
- </configuration>
- </plugin>
- <plugin>
- <groupId>org.apache.felix</groupId>
- <artifactId>maven-bundle-plugin</artifactId>
- <version>2.4.0</version>
- <executions>
- <execution>
- <id>bundle-manifest</id>
- <phase>process-classes</phase>
- <goals>
- <goal>manifest</goal>
- </goals>
- </execution>
- </executions>
- <configuration>
- <supportedProjectTypes>
- <supportedProjectType>jar</supportedProjectType>
- <supportedProjectType>bundle</supportedProjectType>
- <supportedProjectType>war</supportedProjectType>
- </supportedProjectTypes>
- <instructions>
- <Import-Package>
+ <systemProperties>
+ <systemProperty>
+ <name>scalate.editor</name>
+ <value>${scalate.editor}</value>
+ </systemProperty>
+ <systemProperty>
+ <name>scalate.workdir</name>
+ <value>${scalate.workdir}</value>
+ </systemProperty>
+ <systemProperty>
+ <name>scalate.mode</name>
+ <value>${scalate.mode}</value>
+ </systemProperty>
+ </systemProperties>
+ </configuration>
+ </plugin>
+ <plugin>
+ <groupId>org.apache.felix</groupId>
+ <artifactId>maven-bundle-plugin</artifactId>
+ <version>2.4.0</version>
+ <executions>
+ <execution>
+ <id>bundle-manifest</id>
+ <phase>process-classes</phase>
+ <goals>
+ <goal>manifest</goal>
+ </goals>
+ </execution>
+ </executions>
+ <configuration>
+ <supportedProjectTypes>
+ <supportedProjectType>jar</supportedProjectType>
+ <supportedProjectType>bundle</supportedProjectType>
+ <supportedProjectType>war</supportedProjectType>
+ </supportedProjectTypes>
+ <instructions>
+ <Import-Package>
- </Import-Package>
- <Bundle-ClassPath>.,WEB-INF/classes</Bundle-ClassPath>
- <Embed-Directory>WEB-INF/lib</Embed-Directory>
- <Embed-Dependency>*;scope=compile|runtime</Embed-Dependency>
- <Embed-Transitive>true</Embed-Transitive>
- <Web-ContextPath>/karaf-doc</Web-ContextPath>
- </instructions>
- </configuration>
- </plugin>
- <plugin>
- <groupId>org.apache.maven.plugins</groupId>
- <artifactId>maven-scm-publish-plugin</artifactId>
- <version>1.0-beta-2</version>
- <configuration>
- <checkinComment>[scm-publish] Updating main site with Karaf manual</checkinComment>
- <pubScmUrl>scm:svn:https://svn.apache.org/repos/asf/karaf/site/production/manual/latest</pubScmUrl>
- <content>${project.build.directory}/sitegen</content>
- </configuration>
- </plugin>
- </plugins>
- </build>
+ </Import-Package>
+ <Bundle-ClassPath>.,WEB-INF/classes</Bundle-ClassPath>
+ <Embed-Directory>WEB-INF/lib</Embed-Directory>
+ <Embed-Dependency>*;scope=compile|runtime</Embed-Dependency>
+ <Embed-Transitive>true</Embed-Transitive>
+ <Web-ContextPath>/karaf-doc</Web-ContextPath>
+ </instructions>
+ </configuration>
+ </plugin>
+ <plugin>
+ <groupId>org.apache.maven.plugins</groupId>
+ <artifactId>maven-scm-publish-plugin</artifactId>
+ <version>1.0-beta-2</version>
+ <configuration>
+ <checkinComment>[scm-publish] Updating main site with Karaf manual</checkinComment>
+ <pubScmUrl>scm:svn:https://svn.apache.org/repos/asf/karaf/site/production/manual/latest</pubScmUrl>
+ <content>${project.build.directory}/sitegen</content>
+ </configuration>
+ </plugin>
+ </plugins>
+ </build>
- <reporting>
- <plugins>
- <plugin>
- <groupId>org.fusesource.scalate</groupId>
- <artifactId>maven-scalate-plugin</artifactId>
- <version>${scalate.version}</version>
- </plugin>
- </plugins>
- </reporting>
+ <reporting>
+ <plugins>
+ <plugin>
+ <groupId>org.fusesource.scalate</groupId>
+ <artifactId>maven-scalate-plugin</artifactId>
+ <version>${scalate.version}</version>
+ </plugin>
+ </plugins>
+ </reporting>
- <profiles>
- <profile>
- <id>live</id>
- <properties>
- <jetty-war-dir>${basedir}/src/main/webapp/</jetty-war-dir>
- <scalate.mode>development</scalate.mode>
- </properties>
- </profile>
- <profile>
- <id>pdf-manual</id>
- <build>
- <plugins>
- <plugin>
- <groupId>org.apache.maven.plugins</groupId>
- <artifactId>maven-antrun-plugin</artifactId>
- <executions>
- <execution>
- <id>attach-manual</id>
- <phase>install</phase>
- <goals>
- <goal>run</goal>
- </goals>
- <configuration>
- <tasks>
- <mkdir dir="${manual.dir}" />
+ <profiles>
+ <profile>
+ <id>live</id>
+ <properties>
+ <jetty-war-dir>${basedir}/src/main/webapp/</jetty-war-dir>
+ <scalate.mode>development</scalate.mode>
+ </properties>
+ </profile>
+ <profile>
+ <id>scalate-manual</id>
+ <activation>
+ <activeByDefault>true</activeByDefault>
+ </activation>
+
+ <build>
+ <plugins>
+ <plugin>
+ <groupId>org.fusesource.scalate</groupId>
+ <artifactId>maven-scalate-plugin</artifactId>
+ <version>${scalate.version}</version>
+ <executions>
+ <execution>
+ <id>generate-htmls</id>
+ <phase>prepare-package</phase>
+ <goals>
+ <goal>sitegen-no-fork</goal>
+ </goals>
+ <configuration>
+ <warSourceDirectory>${project.build.directory}/webapp</warSourceDirectory>
+ </configuration>
+ </execution>
+ </executions>
+ <configuration>
+ <remoteServerId>people.apache.org</remoteServerId>
+ <remoteServerUrl>scp://people.apache.org/www/karaf.apache.org/manual/${karaf.version}
+ </remoteServerUrl>
+ </configuration>
+ <dependencies>
+ <dependency>
+ <groupId>org.apache.maven.wagon</groupId>
+ <artifactId>wagon-ssh</artifactId>
+ <version>${maven.wagon.version}</version>
+ </dependency>
+ <dependency>
+ <groupId>org.fusesource.wikitext</groupId>
+ <artifactId>confluence-core</artifactId>
+ <version>${wikitext.version}</version>
+ </dependency>
+ </dependencies>
+ </plugin>
+ <plugin>
+ <groupId>org.apache.maven.plugins</groupId>
+ <artifactId>maven-antrun-plugin</artifactId>
+ <executions>
+ <execution>
+ <id>create-manual</id>
+ <phase>package</phase>
+ <goals>
+ <goal>run</goal>
+ </goals>
+ <configuration>
+ <tasks>
+ <mkdir dir="${manual.dir}" />
+ <move file="${project.build.directory}/sitegen/manual.html" tofile="${manual}.html" />
+ <echo message="Generating PDF using Prince XML (http://www.princexml.com/)" />
+ <exec executable="prince">
+ <arg value="${manual}.html" />
+ <arg value="${manual}.pdf" />
+ <arg value="--log" />
+ <arg value="${project.build.directory}/prince.log" />
+ </exec>
+ <attachartifact file="${manual}.html" type="html" />
+ <attachartifact file="${manual}.pdf" type="pdf" />
+ </tasks>
+ </configuration>
+ </execution>
+ </executions>
+ </plugin>
+ </plugins>
+ </build>
+ </profile>
+ <profile>
+ <id>pdf-manual</id>
+ <build>
+ <plugins>
+ <plugin>
+ <groupId>org.apache.maven.plugins</groupId>
+ <artifactId>maven-antrun-plugin</artifactId>
+ <executions>
+ <execution>
+ <id>attach-manual</id>
+ <phase>install</phase>
+ <goals>
+ <goal>run</goal>
+ </goals>
+ <configuration>
+ <tasks>
+ <mkdir dir="${manual.dir}" />
<move file="${project.build.directory}/sitegen/manual.html" tofile="${manual}.html" />
<echo message="Generating PDF using Prince XML (http://www.princexml.com/)" />
- <exec executable="prince">
- <arg value="${manual}.html" />
- <arg value="${manual}.pdf" />
- <arg value="--log" />
- <arg value="${project.build.directory}/prince.log" />
- </exec>
- </tasks>
- </configuration>
- </execution>
- </executions>
- </plugin>
- <plugin>
- <groupId>org.codehaus.mojo</groupId>
- <artifactId>build-helper-maven-plugin</artifactId>
- <executions>
- <execution>
- <id>attach-artifacts</id>
- <phase>install</phase>
- <goals>
- <goal>attach-artifact</goal>
- </goals>
- <configuration>
- <artifacts>
- <artifact>
- <file>${manual}.pdf</file>
- <type>pdf</type>
- </artifact>
- </artifacts>
- </configuration>
- </execution>
- </executions>
- </plugin>
-
- </plugins>
- </build>
- </profile>
- <profile>
- <id>release</id>
- <properties>
- <must-succeed>true</must-succeed>
- </properties>
- </profile>
- </profiles>
+ <exec executable="prince">
+ <arg value="${manual}.html" />
+ <arg value="${manual}.pdf" />
+ <arg value="--log" />
+ <arg value="${project.build.directory}/prince.log" />
+ </exec>
+ </tasks>
+ </configuration>
+ </execution>
+ </executions>
+ </plugin>
+ <plugin>
+ <groupId>org.codehaus.mojo</groupId>
+ <artifactId>build-helper-maven-plugin</artifactId>
+ <executions>
+ <execution>
+ <id>attach-artifacts</id>
+ <phase>install</phase>
+ <goals>
+ <goal>attach-artifact</goal>
+ </goals>
+ <configuration>
+ <artifacts>
+ <artifact>
+ <file>${manual}.pdf</file>
+ <type>pdf</type>
+ </artifact>
+ </artifacts>
+ </configuration>
+ </execution>
+ </executions>
+ </plugin>
+ </plugins>
+ </build>
+ </profile>
+ <profile>
+ <id>asciidoc</id>
+ <build>
+ <plugins>
+ <plugin>
+ <groupId>org.asciidoctor</groupId>
+ <artifactId>asciidoctor-maven-plugin</artifactId>
+ <version>1.5.2</version>
+ <executions>
+ <execution>
+ <id>output-html</id>
+ <phase>generate-resources</phase>
+ <goals>
+ <goal>process-asciidoc</goal>
+ </goals>
+ <configuration>
+ <sourceHighlighter>coderay</sourceHighlighter>
+ <backend>html5</backend>
+ <attributes>
+ <toc />
+ <linkcss>false</linkcss>
+ <doctype>book</doctype>
+ </attributes>
+ </configuration>
+ </execution>
+ </executions>
+ <configuration>
+ <sourceDirectory>src/main/asciidoc</sourceDirectory>
+ <headerFooter>true</headerFooter>
+ <imagesDir>../resources/images</imagesDir>
+ </configuration>
+ </plugin>
+ </plugins>
+ </build>
+ </profile>
+ <profile>
+ <id>release</id>
+ <properties>
+ <must-succeed>true</must-succeed>
+ </properties>
+ </profile>
+ </profiles>
</project>
http://git-wip-us.apache.org/repos/asf/karaf/blob/677c6d46/manual/src/main/asciidoc/users-guide/adociguration.adoc
----------------------------------------------------------------------
diff --git a/manual/src/main/asciidoc/users-guide/adociguration.adoc b/manual/src/main/asciidoc/users-guide/adociguration.adoc
new file mode 100644
index 0000000..c5d48c3
--- /dev/null
+++ b/manual/src/main/asciidoc/users-guide/adociguration.adoc
@@ -0,0 +1,351 @@
+= Configuration
+
+== Files
+
+Apache Karaf stores and loads all configuration in files located in the `etc` folder.
+
+By default, the `etc` folder is located relatively to the `KARAF_BASE` folder. You can define another location
+using the `KARAF_ETC` variable.
+
+Each configuration is identified by a ID (the ConfigAdmin PID). The configuration files name follows the `pid.cfg`
+name convention.
+
+For instance, `etc/org.apache.karaf.shell.cfg` means that this file is the file used by the configuration with
+`org.apache.karaf.shell` as PID.
+
+A configuration file is a properties file containing key/value pairs:
+
+----
+property=value
+----
+
+In Apache Karaf, a configuration is PID with a set of properties attached.
+
+Apache Karaf automatically loads all `*.cfg` files from the `etc` folder.
+
+You can configure the behaviour of the configuration files using some dedicated properties in the
+`etc/config.properties` configuration file:
+
+----
+...
+#
+# 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
+...
+----
+
+* `felix.fileinstall.enableConfigSave` flush back in the configuration file the changes performed directly on the
+configuration service (ConfigAdmin). If `true`, any change (using `config:*` commands, MBeans, OSGi service) is
+persisted back in the configuration false. Default is `true`.
+* `felix.fileinstall.dir` is the directory where Apache Karaf is looking for configuration files. Default is `${karaf.etc`}
+meaning the value of the `KARAF_ETC` variable.
+* `felix.fileinstall.filter` is the file name pattern used to load only some configuration files. Only files matching
+the pattern will be loaded. Default value is `.*\\.cfg` meaning *.cfg files.
+* `felix.fileinstall.poll` is the polling interval (in milliseconds). Default value is `1000` meaning that Apache
+Karaf "re-loads" the configuration files every second.
+* `felix.fileinstall.noInitialDelay` is a flag indicating if the configuration file polling starts as soon as Apache
+Karaf starts or wait for a certain time. If `true`, Apache Karaf polls the configuration files as soon as the configuration
+service starts.
+* `felix.fileinstall.log.level` is the log message verbosity level of the configuration polling service. More
+this value is high, more verbose the configuration service is.
+
+You can change the configuration at runtime by directly editiing the configuration file.
+
+You can also do the same using the `config:*` commands or the ConfigMBean.
+
+== `config:*` commands
+
+Apache Karaf provides a set of commands to manage the configuration.
+
+=== `config:list`
+
+`config:list` displays the list of all configurations available, or the properties in a given configuration (PID).
+
+Without the `query` argument, the `config:list` command display all configurations, with PID, attached bundle and
+properties defined in the configuration:
+
+----
+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 = (&(osgi.command.scope=system)(osgi.command.function=start-level))
+ * = *
+ start-level = admin # admin can set any start level, including < 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 < 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
+...
+----
+
+The `query` argument accepts a query using a LDAP syntax.
+
+For instance, you can display details on one specific configuration using the following filter:
+
+----
+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
+----
+
+=== `config:edit`
+
+`config:edit` is the first command to do when you want to change a configuration. `config:edit` command put you
+in edition mode for a given configuration.
+
+For instance, you can edit the `org.apache.karaf.log` configuration:
+
+----
+karaf@root()> config:edit org.apache.karaf.log
+----
+
+The `config:edit` command doesn't display anything, it just puts you in configuration edit mode. You are now ready
+to use other config commands (like `config:property-append`, `config:property-delete`, `config:property-set`, ...).
+
+If you provide a configuration PID that doesn't exist yet, Apache Karaf will create a new configuration (and so a new
+configuration file) automatically.
+
+All changes that you do in configuration edit mode are store in your console session: the changes are not directly
+applied in the configuration. It allows you to "commit" the changes (see `config:update` command) or "rollback" and
+cancel your changes (see `config:cancel` command).
+
+=== `config:property-list`
+
+The `config:property-list` lists the properties for the currently edited configuration.
+
+Assuming that you edited the `org.apache.karaf.log` configuration, you can do:
+
+----
+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
+----
+
+=== `config:property-set`
+
+The `config:property-set` command update the value of a given property in the currently edited configuration.
+
+For instance, to change the value of the `size` property of previously edited `org.apache.karaf.log` configuration,
+you can do:
+
+----
+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
+----
+
+If the property doesn't exist, the `config:property-set` command creates the property.
+
+You can use `config:property-set` command outside the configuration edit mode, by specifying the `-p` (for configuration pid) option:
+
+----
+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
+----
+
+{warning}
+Using the `pid` option, you bypass the configuration commit and rollback mechanism.
+{warning}
+
+=== `config:property-append`
+
+The `config:property-append` is similar to `config:property-set` command, but instead of completely replacing the
+property value, it appends a string at the end of the property value.
+
+For instance, to add 1 at the end of the value of the `size` property in `org.apache.karaf.log` configuration
+(and so have 5001 for the value instead of 500), you can do:
+
+----
+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
+----
+
+Like the `config:property-set` command, if the property doesn't exist, the `config:property-set` command creates
+the property.
+
+You can use the `config:property-append` command outside the configuration edit mode, by specifying the `-p` (for configuration pid) option:
+
+----
+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
+----
+
+{warning}
+Using the `pid` option, you bypass the configuration commit and rollback mechanism.
+{warning}
+
+=== `config:property-delete`
+
+The `config:property-delete` command delete a property in the currently edited configuration.
+
+For instance, you previously added a `test` property in `org.apache.karaf.log` configuration. To delete this `test`
+property, you do:
+
+----
+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
+----
+
+You can use the `config:property-delete` command outside the configuration edit mode, by specifying the `-p` (for configuration pid) option:
+
+----
+karaf@root()> config:property-delete -p org.apache.karaf.log test
+----
+
+=== `config:update` and `config:cancel`
+
+When you are in the configuration edit mode, all changes that you do using `config:property*` commands are stored in "memory"
+(actually in the console session).
+
+Thanks to that, you can "commit" your changes using the `config:update` command. The `config:update` command will
+commit your changes, update the configuration, and (if possible) update the configuration files.
+
+For instance, after changing `org.apache.karaf.log` configuration with some `config:property*` commands, you have
+to commit your change like this:
+
+----
+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
+----
+
+On the other hand, if you want to "rollback" your changes, you can use the `config:cancel` command. It will cancel all
+changes that you did, and return of the configuration state just before the `config:edit` command. The `config:cancel`
+exits from the edit mode.
+
+For instance, you added the test property in the `org.apache.karaf.log` configuration, but it was a mistake:
+
+----
+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
+----
+
+=== `config:delete`
+
+The `config:delete` command completely delete an existing configuration. You don't have to be in edit mode to delete
+a configuration.
+
+For instance, you added `my.config` configuration:
+
+----
+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
+----
+
+You can delete the `my.config` configuration (including all properties in the configuration) using the `config:delete`
+command:
+
+----
+karaf@root()> config:delete my.config
+karaf@root()> config:list "(service.pid=my.config)"
+karaf@root()>
+----
+
+== JMX ConfigMBean
+
+On the JMX layer, you have a MBean dedicated to the management of the configurations: the ConfigMBean.
+
+The ConfigMBean object name is: `org.apache.karaf:type=config,name=*`.
+
+=== Attributes
+
+The `Configs` attribute is a list of all configuration PIDs.
+
+=== Operations
+
+* `listProperties(pid)` returns the list of properties (property=value formatted) for the configuration `pid`.
+* `deleteProperty(pid, property)` deletes the `property` from the configuration `pid`.
+* `appendProperty(pid, property, value)` appends `value` at the end of the value of the `property` of the configuration `pid`.
+* `setProperty(pid, property, value)` sets `value` for the value of the `property` of the configuration `pid`.
+* `delete(pid)` deletes the configuration identified by the `pid`.
+* `create(pid)` creates an empty (without any property) configuration with `pid`.
+* `update(pid, properties)` updates a configuration identified with `pid` with the provided `properties` map.
+
http://git-wip-us.apache.org/repos/asf/karaf/blob/677c6d46/manual/src/main/asciidoc/users-guide/cdi.adoc
----------------------------------------------------------------------
diff --git a/manual/src/main/asciidoc/users-guide/cdi.adoc b/manual/src/main/asciidoc/users-guide/cdi.adoc
new file mode 100644
index 0000000..b23a148
--- /dev/null
+++ b/manual/src/main/asciidoc/users-guide/cdi.adoc
@@ -0,0 +1,88 @@
+= CDI
+
+This section described how to add support of CDI, and embed a CDI container in Apache Karaf. It doesn't describe
+how to develop CDI applications. See the developer guide for that.
+
+== Pax CDI
+
+Apache Karaf supports different CDI containers by using Pax CDI.
+
+Pax CDI is pre-referenced in Apache Karaf. To register the Pax CDI features, you can do:
+
+----
+karaf@root()> feature:repo-add pax-cdi
+----
+
+This command will register the latest pax-cdi features.
+
+You can see now a set of new CDI features available:
+
+----
+karaf@root()> feature:list|grep -i cdi
+openwebbeans | 1.2.1 | | | enterprise-4.0.0-SNAPSHOT | Apache OpenWebBeans CDI container support
+weld | 2.1.1.Final | | | enterprise-4.0.0-SNAPSHOT | JBoss Weld CDI container support
+pax-cdi | 0.8.0 | | | org.ops4j.pax.cdi-0.8.0 | Provide CDI support
+pax-cdi-1.1 | 0.8.0 | | | org.ops4j.pax.cdi-0.8.0 | Provide CDI 1.1 support
+pax-cdi-1.2 | 0.8.0 | | | org.ops4j.pax.cdi-0.8.0 | Provide CDI 1.2 support
+pax-cdi-weld | 0.8.0 | | | org.ops4j.pax.cdi-0.8.0 | Weld CDI support
+pax-cdi-1.1-weld | 0.8.0 | | | org.ops4j.pax.cdi-0.8.0 | Weld CDI 1.1 support
+pax-cdi-1.2-weld | 0.8.0 | | | org.ops4j.pax.cdi-0.8.0 | Weld CDI 1.2 support
+pax-cdi-openwebbeans | 0.8.0 | | | org.ops4j.pax.cdi-0.8.0 | OpenWebBeans CDI support
+pax-cdi-web | 0.8.0 | | | org.ops4j.pax.cdi-0.8.0 | Web CDI support
+pax-cdi-1.1-web | 0.8.0 | | | org.ops4j.pax.cdi-0.8.0 | Web CDI 1.1 support
+pax-cdi-1.2-web | 0.8.0 | | | org.ops4j.pax.cdi-0.8.0 | Web CDI 1.2 support
+pax-cdi-web-weld | 0.8.0 | | | org.ops4j.pax.cdi-0.8.0 | Weld Web CDI support
+pax-cdi-1.1-web-weld | 0.8.0 | | | org.ops4j.pax.cdi-0.8.0 | Weld Web CDI 1.1 support
+pax-cdi-1.2-web-weld | 0.8.0 | | | org.ops4j.pax.cdi-0.8.0 | Weld Web CDI 1.2 support
+pax-cdi-web-openwebbeans | 0.8.0 | | | org.ops4j.pax.cdi-0.8.0 | OpenWebBeans Web CDI support
+deltaspike-core | 1.0.0 | | | org.ops4j.pax.cdi-0.8.0 | Apache Deltaspike core support
+deltaspike-jpa | 1.0.0 | | | org.ops4j.pax.cdi-0.8.0 | Apache Deltaspike jpa support
+----
+
+{warning}
+Starting from Apache Karaf 3.0.1, the `feature:repo-add pax-cdi` command is no more required.
+Pax CDI features are now automatically included in the Apache Karaf enterprise features.
+{warning}
+
+== CDI Containers
+
+Thanks to Pax CDI, Apache Karaf supports multiple CDI implementation versions, and different CDI containers.
+
+You just have to install the feature corresponding to the CDI container and version that you want to use.
+
+=== Apache OpenWebBeans
+
+Apache Karaf provides a ready to use feature for Apache OpenWebBeans.
+
+The `openwebbeans` feature automatically install the Pax CDI features and the Apache OpenWebBeans bundles:
+
+----
+karaf@root()> feature:install openwebbeans
+----
+
+{warning}
+With Apache Karaf 3.0.0, don't forget to register the pax-cdi features repository first with:
+
+----
+karaf@root()> feature:repo-add pax-cdi
+----
+{warning}
+
+=== JBoss Weld CDI container
+
+Apache Karaf provides a ready to use feature for JBoss Weld.
+
+The `weld` feature automatically install the Pax CDI features and the JBoss Weld bundles:
+
+----
+karaf@root()> feature:install weld
+----
+
+{warning}
+With Apache Karaf 3.0.0, don't forget to register the pax-cdi features repository first with:
+
+----
+karaf@root()> feature:repo-add pax-cdi
+----
+{warning}
+
http://git-wip-us.apache.org/repos/asf/karaf/blob/677c6d46/manual/src/main/asciidoc/users-guide/console.adoc
----------------------------------------------------------------------
diff --git a/manual/src/main/asciidoc/users-guide/console.adoc b/manual/src/main/asciidoc/users-guide/console.adoc
new file mode 100644
index 0000000..b4d228d
--- /dev/null
+++ b/manual/src/main/asciidoc/users-guide/console.adoc
@@ -0,0 +1,413 @@
+= Using the console
+
+== Available commands
+
+To see a list of the available commands in the console, you can use the `help`:
+
+----
+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
+...
+----
+
+You have the list of all commands with a short description.
+
+You can use the tab key to get a quick list of all commands:
+
+----
+karaf@root()> Display all 280 possibilities? (y or n)
+...
+----
+
+== Subshell and completion mode
+
+The commands have a scope and a name. For instance, the command `feature:list` has `feature` as scope, and `list` as name.
+
+Karaf "groups" the commands by scope. Each scope form a subshell.
+
+You can directly execute a command with its full qualified name (scope:name):
+
+----
+karaf@root()> feature:list
+...
+----
+
+or enter in a subshell and type the command contextual to the subshell:
+
+----
+karaf@root()> feature
+karaf@root(feature)> list
+----
+
+You can note that you enter in a subshell directly by typing the subshell name (here `feature`). You can "switch" directly from a subshell to another:
+
+----
+karaf@root()> feature
+karaf@root(feature)> bundle
+karaf@root(bundle)>
+----
+
+The prompt displays the current subshell between ().
+
+The `exit` command goes to the parent subshell:
+
+----
+karaf@root()> feature
+karaf@root(feature)> exit
+karaf@root()>
+----
+
+The completion mode defines the behaviour of the tab key and the help command.
+
+You have three different modes available:
+
+* GLOBAL
+* FIRST
+* SUBSHELL
+
+You can define your default completion mode using the completionMode property in `etc/org.apache.karaf.shell.cfg` file. By default, you have:
+
+----
+completionMode = GLOBAL
+----
+
+You can also change the completion mode “on the fly” (while using the Karaf shell console) using the `shell:completion` command:
+
+----
+karaf@root()> shell:completion
+GLOBAL
+karaf@root()> shell:completion FIRST
+karaf@root()> shell:completion
+FIRST
+----
+
+`shell:completion` can inform you about the current completion mode used. You can also provide the new completion mode that you want.
+
+GLOBAL completion mode is the default one in Karaf 3.0.0 (mostly for transition purpose).
+
+GLOBAL mode doesn’t really use subshell: it’s the same behavior as in previous Karaf versions.
+
+When you type the tab key, whatever in which subshell you are, the completion will display all commands and all aliases:
+
+----
+karaf@root()> <TAB>
+karaf@root()> Display all 273 possibilities? (y or n)
+...
+karaf@root()> feature
+karaf@root(feature)> <TAB>
+karaf@root(feature)> Display all 273 possibilities? (y or n)
+----
+
+FIRST completion mode is an alternative to the GLOBAL completion mode.
+
+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).
+However, if you type the tab key when you are in a subshell, the completion will display only the commands of the current subshell:
+
+----
+karaf@root()> shell:completion FIRST
+karaf@root()> <TAB>
+karaf@root()> Display all 273 possibilities? (y or n)
+...
+karaf@root()> feature
+karaf@root(feature)> <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)> <TAB>
+karaf@root(log)>
+clear display exception-display get log set tail
+----
+
+SUBSHELL completion mode is the real subshell mode.
+
+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.
+Once you are in a subshell, if you type the TAB key, the completion displays the commands of the current subshell:
+
+----
+karaf@root()> shell:completion SUBSHELL
+karaf@root()> <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)> <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)> <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
+----
+
+== Unix like environment
+
+Karaf console provides a full Unix like environment.
+
+=== Help or man
+
+We already saw the usage of the `help` command to display all commands available.
+
+But you can also use the `help` command to get details about a command or
+the `man` command which is an alias to the `help` command.
+You can also use another form to get the command help, by using the `--help` option to the command.
+
+So these commands
+
+----
+karaf@root()> help feature:list
+karaf@root()> man feature:list
+karaf@root()> feature:list --help
+----
+
+All produce the same help output:
+----
+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
+
+----
+
+=== Completion
+
+When you type the tab key, Karaf tries to complete:
+
+* subshell
+* commands
+* aliases
+* command arguments
+* command options
+
+=== Alias
+
+An alias is another name associated to a given command.
+
+The `shell:alias` command creates a new alias. For instance, to create the `list-installed-features` alias to the actual
+`feature:list -i` command, you can do:
+
+----
+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
+----
+
+At login, the Apache Karaf console reads the `etc/shell.init.script` file where you can create your aliases.
+It's similar to a bashrc or profile file on Unix.
+
+----
+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 } ;
+----
+
+You can see here the aliases available by default:
+
+* `ld` is a short form to display log (alias to `log:display` command)
+* `lde` is a short form to display exceptions (alias to `log:exception-display` command)
+* `la` is a short form to list all bundles (alias to `bundle:list -t 0` command)
+* `ls` is a short form to list all services (alias to `service:list` command)
+* `cl` is a short form to list all configurations (alias to `config:list` command)
+* `halt` is a short form to shutdown Apache Karaf (alias to `system:shutdown -h -f` command)
+* `help` is a short form to display help (alias to `*:help` command)
+* `man` is the same as help (alias to `help` command)
+* `log:list` displays all loggers and level (alias to `log:get ALL` command)
+
+You can create your own aliases in the `etc/shell.init.script` file.
+
+=== Key binding
+
+Like on most Unix environment, Karaf console support some key bindings:
+
+* the arrows key to navigate in the commands history
+* CTRL-D to logout/shutdown Karaf
+* CTRL-R to search previously executed command
+* CTRL-U to remove the current line
+
+=== Pipe
+
+You can pipe the output of one command as input to another one. It's a pipe, using the | character:
+
+----
+karaf@root()> feature:list | grep -i war
+war | 3.0.0 | | standard-3.0.0 | Turn Karaf as a full WebContainer
+----
+
+=== Grep, more, find, ...
+
+Karaf console provides some core commands similar to Unix environment:
+
+* `shell:head` displays the first line of the input
+* `shell:source` executes commands contained in a script
+* `shell:alias` creates an alias to an existing command
+* `shell:history` prints the commands history
+* `shell:cat` displays the content of a file or URL
+* `shell:if` allows you to use conditions (if, then, else blocks) in script
+* `shell:tac` captures stdin and returns it as a string
+* `shell:clear` clears the current console display
+* `shell:info` prints various information about the current Karaf instance
+* `shell:tail` displays the last lines of the input
+* `shell:completion` displays or change the current completion mode
+* `shell:java` executes a Java application
+* `shell:threads` prints the current thread
+* `shell:date` displays the current date (optionally using a format)
+* `shell:watch` periodically executes a command and refresh the output
+* `shell:each` executes a closure on a list of arguments
+* `shell:env` displays or sets the value of a shell session variable
+* `shell:more` is a file pager
+* `shell:wc` prints newline, words, and byte counts for each file
+* `shell:echo` echoes and prints arguments to stdout
+* `shell:new` creates a new Java object
+* `shell:edit` calls a text editor on the current file or URL
+* `shell:printf` formats and prints arguments
+* `shell:exec` executes a system command
+* `shell:sleep` sleeps for a bit then wakes up
+* `shell:grep` prints lines matching the given pattern
+* `shell:sort` writes sorted concatenation of all files to stdout
+
+You don't have to use the fully qualified name of the command, you can directly use the command name as long as it is unique.
+So you can use 'head' instead of 'shell:head'
+
+Again, you can find details and all options of these commands using `help` command or `--help` option.
+
+=== Scripting
+
+The Apache Karaf Console supports a complete scripting language, similar to bash or csh on Unix.
+
+The `each` (`shell:each`) command can iterate in a list:
+
+----
+karaf@root()> list = [1 2 3]; each ($list) { echo $it }
+1
+2
+3
+----
+
+You can create the list yourself (as in the previous example), or some commands can return a list too.
+
+We can note that the console created a "session" variable with the name `list` that you can access with `$list`.
+
+The `$it` variable is an implicit one corresponding to the current object (here the current iterated value from the
+list).
+
+When you create a list with `[]`, Apache Karaf console creates a Java ArrayList. It means that you can use methods
+available in the ArrayList objects (like get or size for instance):
+
+----
+karaf@root()> list = ["Hello" world]; echo ($list get 0) ($list get 1)
+Hello world
+----
+
+We can note here that calling a method on an object is directly using `(object method argument)`.
+Here `($list get 0)` means `$list.get(0)` where `$list` is the ArrayList.
+
+The `class` notation will display details about the object:
+
+----
+karaf@root()> $list class
+...
+ProtectionDomain ProtectionDomain null
+ null
+ <no principals>
+ java.security.Permissions@6521c24e (
+ ("java.security.AllPermission" "<all permissions>" "<all actions>")
+)
+
+
+Signers null
+SimpleName ArrayList
+TypeParameters [E]
+----
+
+You can "cast" a variable to a given type.
+
+----
+karaf@root()> ("hello world" toCharArray)
+[h, e, l, l, o, , w, o, r, l, d]
+----
+
+If it fails, you will see the casting exception:
+
+----
+karaf@root()> ("hello world" toCharArray)[0]
+Error executing command: [C cannot be cast to [Ljava.lang.Object;
+----
+
+You can "call" a script using the `shell:source` command:
+
+----
+karaf@root> shell:source script.txt
+True!
+----
+
+where `script.txt` contains:
+
+----
+foo = "foo"
+if { $foo equals "foo" } {
+ echo "True!"
+}
+----
+
+{warning}
+The spaces are important when writing script.
+For instance, the following script is not correct:
+
+----
+if{ $foo equals "foo" } ...
+----
+
+and will fail with:
+
+----
+karaf@root> shell:source script.txt
+Error executing command: Cannot coerce echo "true!"() to any of []
+----
+
+because a space is missing after the `if` statement.
+{warning}
+
+As for the aliases, you can create init scripts in the `etc/shell.init.script` file.
+You can also named you script with an alias. Actually, the aliases are just scripts.
+
+See the Scripting section of the developers guide for details.
+
+== Security
+
+The Apache Karaf console supports a Role Based Access Control (RBAC) security mechanism. It means that depending of
+the user connected to the console, you can define, depending of the user's groups and roles, the permission to execute
+some commands, or limit the values allowed for the arguments.
+
+Console security is detailed in the [Security section|security] of this user guide.