You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@karaf.apache.org by gn...@apache.org on 2015/03/25 09:31:15 UTC

[3/3] karaf git commit: [KARAF-3633] Help mechanism improvements

[KARAF-3633] Help mechanism improvements

Project: http://git-wip-us.apache.org/repos/asf/karaf/repo
Commit: http://git-wip-us.apache.org/repos/asf/karaf/commit/f38a1e20
Tree: http://git-wip-us.apache.org/repos/asf/karaf/tree/f38a1e20
Diff: http://git-wip-us.apache.org/repos/asf/karaf/diff/f38a1e20

Branch: refs/heads/master
Commit: f38a1e20c8bed21f65eef4d99d28c41e9bdf0d46
Parents: 773c6c4
Author: Guillaume Nodet <gn...@gmail.com>
Authored: Wed Mar 25 08:45:38 2015 +0100
Committer: Guillaume Nodet <gn...@gmail.com>
Committed: Wed Mar 25 08:54:01 2015 +0100

----------------------------------------------------------------------
 .../org/apache/karaf/bundle/command/Info.java   |  32 +---
 .../wikidoc/AnsiPrintingWikiVisitor.java        |  58 -------
 .../bundle/command/wikidoc/WikiParser.java      |  95 -----------
 .../bundle/command/wikidoc/WikiVisitor.java     |  29 ----
 .../src/main/resources/OSGI-INF/bundle.info     |  18 ++
 .../bundle/command/wikidoc/WikiParserTest.java  |  94 ----------
 client/src/main/resources/OSGI-INF/bundle.info  |  18 ++
 config/src/main/resources/OSGI-INF/bundle.info  |  28 ++-
 .../src/main/resources/OSGI-INF/bundle.info     |  18 ++
 .../src/main/resources/OSGI-INF/bundle.info     |  32 +++-
 .../kar/src/main/resources/OSGI-INF/bundle.info |  18 ++
 .../src/main/resources/OSGI-INF/bundle.info     |  18 ++
 .../src/main/resources/OSGI-INF/bundle.info     |  18 ++
 .../src/main/resources/OSGI-INF/bundle.info     |  18 ++
 .../src/main/resources/OSGI-INF/bundle.info     |  18 ++
 .../features/command/InfoFeatureCommand.java    |   7 +-
 .../src/main/resources/OSGI-INF/bundle.info     |  52 +++---
 .../main/resources/OSGI-INF/shell-feature.info  |  29 ++++
 .../src/main/resources/OSGI-INF/bundle.info     |  18 ++
 http/src/main/resources/OSGI-INF/bundle.info    |  39 ++++-
 .../src/main/resources/OSGI-INF/bundle.info     |  66 ++++---
 .../src/main/resources/OSGI-INF/bundle.info     |  24 ++-
 .../src/main/resources/OSGI-INF/bundle.info     |  24 ++-
 .../src/main/resources/OSGI-INF/bundle.info     |  18 ++
 .../src/main/resources/OSGI-INF/bundle.info     |  47 +++--
 .../src/main/resources/OSGI-INF/bundle.info     |  18 ++
 .../src/main/resources/OSGI-INF/bundle.info     |  18 ++
 .../src/main/resources/OSGI-INF/bundle.info     |  18 ++
 jdbc/src/main/resources/OSGI-INF/bundle.info    |  37 +++-
 jms/src/main/resources/OSGI-INF/bundle.info     |  37 +++-
 jndi/src/main/resources/OSGI-INF/bundle.info    |  38 ++++-
 kar/src/main/resources/OSGI-INF/bundle.info     |  38 ++++-
 log/src/main/resources/OSGI-INF/bundle.info     |  49 ++++--
 main/src/main/resources/OSGI-INF/bundle.info    |  30 +++-
 .../src/main/resources/OSGI-INF/bundle.info     |  22 ++-
 .../src/main/resources/OSGI-INF/bundle.info     |  18 ++
 obr/src/main/resources/OSGI-INF/bundle.info     |  49 ++++--
 package/src/main/resources/OSGI-INF/bundle.info |  33 +++-
 pom.xml                                         |   1 -
 .../src/main/resources/OSGI-INF/bundle.info     |  46 +++--
 .../src/main/resources/OSGI-INF/bundle.info     |  34 +++-
 .../src/main/resources/OSGI-INF/bundle.info     |  22 ++-
 .../src/main/resources/OSGI-INF/bundle.info     |  22 ++-
 .../src/main/resources/OSGI-INF/bundle.info     |  22 ++-
 .../src/main/resources/OSGI-INF/bundle.info     |  24 ++-
 .../src/main/resources/OSGI-INF/bundle.info     |  39 ++++-
 .../src/main/resources/OSGI-INF/bundle.info     |  18 ++
 .../src/main/resources/OSGI-INF/bundle.info     |  58 +++----
 .../src/main/resources/OSGI-INF/bundle.info     |  18 ++
 shell/core/pom.xml                              |   1 +
 .../impl/console/commands/SubShellCommand.java  |  11 ++
 .../impl/console/commands/TopLevelCommand.java  |   4 +-
 .../commands/help/BundleHelpProvider.java       |  80 +++++++++
 .../commands/help/CommandListHelpProvider.java  |  95 ++++++++---
 .../commands/help/CommandsHelpProvider.java     |  87 ++++++++++
 .../impl/console/commands/help/HelpCommand.java |  16 +-
 .../commands/help/ShellHelpProvider.java        | 144 ++++++++++++++++
 .../help/wikidoc/AnsiPrintingWikiVisitor.java   |  94 ++++++++++
 .../commands/help/wikidoc/WikiParser.java       | 171 +++++++++++++++++++
 .../commands/help/wikidoc/WikiVisitor.java      |  31 ++++
 .../karaf/shell/support/ansi/SimpleAnsi.java    |   1 +
 .../apache/karaf/shell/support/table/Col.java   |  14 ++
 .../src/main/resources/OSGI-INF/bundle.info     |  18 ++
 .../commands/help/wikidoc/WikiParserTest.java   | 110 ++++++++++++
 .../ssh/src/main/resources/OSGI-INF/bundle.info |  38 ++++-
 system/src/main/resources/OSGI-INF/bundle.info  |  35 +++-
 web/src/main/resources/OSGI-INF/bundle.info     |  35 +++-
 .../src/main/resources/OSGI-INF/bundle.info     |  18 ++
 .../src/main/resources/OSGI-INF/bundle.info     |  18 ++
 .../src/main/resources/OSGI-INF/bundle.info     |  18 ++
 .../src/main/resources/OSGI-INF/bundle.info     |  24 ++-
 .../src/main/resources/OSGI-INF/bundle.info     |  18 ++
 wrapper/src/main/resources/OSGI-INF/bundle.info |  35 +++-
 73 files changed, 2079 insertions(+), 582 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/karaf/blob/f38a1e20/bundle/core/src/main/java/org/apache/karaf/bundle/command/Info.java
----------------------------------------------------------------------
diff --git a/bundle/core/src/main/java/org/apache/karaf/bundle/command/Info.java b/bundle/core/src/main/java/org/apache/karaf/bundle/command/Info.java
index a2e2ea2..01b7623 100644
--- a/bundle/core/src/main/java/org/apache/karaf/bundle/command/Info.java
+++ b/bundle/core/src/main/java/org/apache/karaf/bundle/command/Info.java
@@ -16,25 +16,19 @@
  */
 package org.apache.karaf.bundle.command;
 
-import java.io.BufferedReader;
-import java.io.IOException;
-import java.io.InputStreamReader;
-import java.net.URL;
-import java.nio.Buffer;
-import java.util.List;
-
-import org.apache.karaf.bundle.command.wikidoc.AnsiPrintingWikiVisitor;
-import org.apache.karaf.bundle.command.wikidoc.WikiParser;
-import org.apache.karaf.bundle.command.wikidoc.WikiVisitor;
 import org.apache.karaf.shell.api.action.Command;
+import org.apache.karaf.shell.api.action.lifecycle.Reference;
 import org.apache.karaf.shell.api.action.lifecycle.Service;
-import org.apache.karaf.shell.support.ShellUtil;
+import org.apache.karaf.shell.api.console.Session;
 import org.osgi.framework.Bundle;
 
 @Command(scope = "bundle", name = "info", description = "Displays detailed information of a given bundles.")
 @Service
 public class Info extends BundlesCommand {
 
+    @Reference
+    Session session;
+
     /**
      * <p>
      * Get the OSGI-INF/bundle.info entry from the bundle and display it.
@@ -44,21 +38,7 @@ public class Info extends BundlesCommand {
      */
     @Override
     protected void executeOnBundle(Bundle bundle) throws Exception {
-        String title = ShellUtil.getBundleName(bundle);
-        System.out.println("\n" + title);
-        System.out.println(ShellUtil.getUnderlineString(title));
-        URL bundleInfo = bundle.getEntry("OSGI-INF/bundle.info");
-        if (bundleInfo != null) {
-            try (
-                BufferedReader reader = new BufferedReader(new InputStreamReader(bundleInfo.openStream()));
-            ) {
-                WikiVisitor visitor = new AnsiPrintingWikiVisitor(System.out);
-                WikiParser parser = new WikiParser(visitor);
-                parser.parse(reader);
-            } catch (Exception e) {
-                // ignore
-            }
-        }
+        session.execute("help 'bundle|" + bundle.getBundleId() + "'");
     }
 
 }

http://git-wip-us.apache.org/repos/asf/karaf/blob/f38a1e20/bundle/core/src/main/java/org/apache/karaf/bundle/command/wikidoc/AnsiPrintingWikiVisitor.java
----------------------------------------------------------------------
diff --git a/bundle/core/src/main/java/org/apache/karaf/bundle/command/wikidoc/AnsiPrintingWikiVisitor.java b/bundle/core/src/main/java/org/apache/karaf/bundle/command/wikidoc/AnsiPrintingWikiVisitor.java
deleted file mode 100644
index 077cfef..0000000
--- a/bundle/core/src/main/java/org/apache/karaf/bundle/command/wikidoc/AnsiPrintingWikiVisitor.java
+++ /dev/null
@@ -1,58 +0,0 @@
-/*
- * 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.
- */
-package org.apache.karaf.bundle.command.wikidoc;
-
-import java.io.PrintStream;
-
-import org.fusesource.jansi.Ansi;
-import org.fusesource.jansi.Ansi.Attribute;
-import org.fusesource.jansi.Ansi.Color;
-
-/**
- * Translates the Wiki tags to Ansi escape sequences to display them on the console
- */
-public class AnsiPrintingWikiVisitor implements WikiVisitor {
-	private PrintStream out;
-	
-	public AnsiPrintingWikiVisitor(PrintStream out) {
-		this.out = out;
-	}
-	
-	@Override
-	public void heading(int level, String header) {
-		this.out.print(Ansi.ansi().a(Attribute.INTENSITY_BOLD).a(header)
-				.a(Attribute.INTENSITY_BOLD_OFF).toString());
-	}
-	
-	@Override
-	public void link(String target, String title) {
-		this.out.print(Ansi.ansi().fg(Color.YELLOW) 
-				.a(target).fg(Color.DEFAULT));
-	}
-
-	@Override
-	public void enumeration(String text) {
-		this.out.print(Ansi.ansi().a(" * ").fg(Color.CYAN).a(text).fg(Color.DEFAULT).a(" "));
-	}
-
-	@Override
-	public void text(String text) {
-		this.out.print(text);
-	}
-
-
-}

http://git-wip-us.apache.org/repos/asf/karaf/blob/f38a1e20/bundle/core/src/main/java/org/apache/karaf/bundle/command/wikidoc/WikiParser.java
----------------------------------------------------------------------
diff --git a/bundle/core/src/main/java/org/apache/karaf/bundle/command/wikidoc/WikiParser.java b/bundle/core/src/main/java/org/apache/karaf/bundle/command/wikidoc/WikiParser.java
deleted file mode 100644
index d98208f..0000000
--- a/bundle/core/src/main/java/org/apache/karaf/bundle/command/wikidoc/WikiParser.java
+++ /dev/null
@@ -1,95 +0,0 @@
-/*
- * 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.
- */
-package org.apache.karaf.bundle.command.wikidoc;
-
-import org.apache.karaf.util.StringEscapeUtils;
-
-import java.io.BufferedReader;
-import java.io.IOException;
-import java.io.Reader;
-import java.util.StringTokenizer;
-
-/**
- * Parses wiki syntax from a reader and calls a Wikivisitor with the 
- * tokens it finds
- */
-public class WikiParser {
-	WikiVisitor visitor;
-	
-	public WikiParser(WikiVisitor visitor) {
-		this.visitor = visitor;
-	}
-
-	public void parse(String line) {
-        String unescaped = StringEscapeUtils.unescapeJava(line);
-		StringTokenizer tokenizer = new StringTokenizer(unescaped, "\u001B[h*", true);
-		while (tokenizer.hasMoreTokens()) {
-			String token = tokenizer.nextToken();
-            if ("\u001B".equals(token)) {
-                parseEsc(tokenizer, token);
-            } else if ("[".equals(token)) {
-				parseLink(tokenizer);
-			} else if ("h".equals(token)) {
-				parseHeading(tokenizer);
-			} else if ("*".equals(token)){
-				parseEnumeration(tokenizer);
-			} else {
-				visitor.text(token);
-			}
-		}
-	}
-
-    private void parseEsc(StringTokenizer tokenizer, String token) {
-        visitor.text(token + tokenizer.nextToken() + tokenizer.nextToken("\u001B[]"));
-    }
-	
-	private void parseEnumeration(StringTokenizer tokenizer) {
-		String text = tokenizer.nextToken("-\n");
-		visitor.enumeration(text.trim());
-	}
-
-	private void parseHeading(StringTokenizer tokenizer) {
-		String level = tokenizer.nextToken("123456789");
-		if (!level.matches("[123456789]")) {
-			visitor.text("h" + level);
-			return;
-		}
-		String dot = tokenizer.nextToken(".\n");
-		if (!".".equals(dot)) {
-			visitor.text("h" + level + dot);
-			return;
-		}
-		String heading = tokenizer.hasMoreTokens() ? tokenizer.nextToken("\n") : "";
-		visitor.heading(new Integer(level), heading.trim());
-	}
-
-	private void parseLink(StringTokenizer tokenizer) {
-		String token = tokenizer.nextToken("]");
-		visitor.link(token, "");
-		tokenizer.nextToken();
-	}
-
-	public void parse(Reader reader) throws IOException {
-		BufferedReader br = new BufferedReader(reader);
-		String line;
-		while ((line = br.readLine()) != null) {
-			parse(line);
-			visitor.text("\n");
-		}
-	}
-
-}

http://git-wip-us.apache.org/repos/asf/karaf/blob/f38a1e20/bundle/core/src/main/java/org/apache/karaf/bundle/command/wikidoc/WikiVisitor.java
----------------------------------------------------------------------
diff --git a/bundle/core/src/main/java/org/apache/karaf/bundle/command/wikidoc/WikiVisitor.java b/bundle/core/src/main/java/org/apache/karaf/bundle/command/wikidoc/WikiVisitor.java
deleted file mode 100644
index b4a5fb3..0000000
--- a/bundle/core/src/main/java/org/apache/karaf/bundle/command/wikidoc/WikiVisitor.java
+++ /dev/null
@@ -1,29 +0,0 @@
-/*
- * 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.
- */
-package org.apache.karaf.bundle.command.wikidoc;
-
-/**
- * Will be used by WikiParser to call the respective handler when it recognizes the tag 
- */
-public interface WikiVisitor {
-
-	void link(String target, String title);
-	void heading(int level, String title);
-	void enumeration(String text);
-	void text(String text);
-
-}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/karaf/blob/f38a1e20/bundle/core/src/main/resources/OSGI-INF/bundle.info
----------------------------------------------------------------------
diff --git a/bundle/core/src/main/resources/OSGI-INF/bundle.info b/bundle/core/src/main/resources/OSGI-INF/bundle.info
index a8980aa..30fc317 100644
--- a/bundle/core/src/main/resources/OSGI-INF/bundle.info
+++ b/bundle/core/src/main/resources/OSGI-INF/bundle.info
@@ -1,3 +1,21 @@
+#
+#
+#    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.
+#
+#
 h1. Synopsis
 
 ${project.name}

http://git-wip-us.apache.org/repos/asf/karaf/blob/f38a1e20/bundle/core/src/test/java/org/apache/karaf/bundle/command/wikidoc/WikiParserTest.java
----------------------------------------------------------------------
diff --git a/bundle/core/src/test/java/org/apache/karaf/bundle/command/wikidoc/WikiParserTest.java b/bundle/core/src/test/java/org/apache/karaf/bundle/command/wikidoc/WikiParserTest.java
deleted file mode 100644
index 37101c3..0000000
--- a/bundle/core/src/test/java/org/apache/karaf/bundle/command/wikidoc/WikiParserTest.java
+++ /dev/null
@@ -1,94 +0,0 @@
-/*
- * 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.
- */
-package org.apache.karaf.bundle.command.wikidoc;
-
-import java.io.IOException;
-import java.io.StringReader;
-
-import org.easymock.EasyMock;
-import org.junit.Test;
-
-public class WikiParserTest {
-
-	private static final String TESTDOC = 
-		"h1. myTestdoc\n" +
-		"\n" +
-		"Some text\n" +
-		"* enumeration\n" +
-		" some text [a link] some more text\n" +
-		"h1 is no heading";
-	
-	private static final String HEADINGCASES = 
-		"h1.\n" +
-		"hf.";
-
-	@Test
-	public void parseTestDoc() throws IOException {
-		WikiVisitor visitor = EasyMock.createStrictMock(WikiVisitor.class);
-		visitor.heading(1, "myTestdoc");
-		EasyMock.expectLastCall();
-		visitor.text("\n");
-		EasyMock.expectLastCall();
-		visitor.text("\n");
-		EasyMock.expectLastCall();
-		visitor.text("Some text");
-		EasyMock.expectLastCall();
-		visitor.text("\n");
-		EasyMock.expectLastCall();
-		visitor.enumeration("enumeration");
-		EasyMock.expectLastCall();
-		visitor.text("\n");
-		EasyMock.expectLastCall();		
-		visitor.text(" some text ");
-		EasyMock.expectLastCall();
-		visitor.link("a link", "");
-		EasyMock.expectLastCall();
-		visitor.text(" some more text");
-		EasyMock.expectLastCall();
-		visitor.text("\n");
-		EasyMock.expectLastCall();
-		visitor.text("h1 is no heading");
-		EasyMock.expectLastCall();
-		visitor.text("\n");
-		EasyMock.expectLastCall();
-
-		EasyMock.replay(visitor);
-		WikiParser parser = new WikiParser(visitor);
-		parser.parse(new StringReader(TESTDOC));
-		EasyMock.verify(visitor);
-	}
-	
-	@Test
-	public void parseHeadingSpecialCases() throws IOException {
-		WikiVisitor visitor = EasyMock.createStrictMock(WikiVisitor.class);
-
-		visitor.heading(1, "");
-		EasyMock.expectLastCall();
-		visitor.text("\n");
-		EasyMock.expectLastCall();
-
-		visitor.text("hf.");
-		EasyMock.expectLastCall();
-		visitor.text("\n");
-		EasyMock.expectLastCall();
-		
-		EasyMock.replay(visitor);
-		WikiParser parser = new WikiParser(visitor);
-		parser.parse(new StringReader(HEADINGCASES));
-		EasyMock.verify(visitor);
-	}
-}

http://git-wip-us.apache.org/repos/asf/karaf/blob/f38a1e20/client/src/main/resources/OSGI-INF/bundle.info
----------------------------------------------------------------------
diff --git a/client/src/main/resources/OSGI-INF/bundle.info b/client/src/main/resources/OSGI-INF/bundle.info
index 7d25be7..d721c0b 100644
--- a/client/src/main/resources/OSGI-INF/bundle.info
+++ b/client/src/main/resources/OSGI-INF/bundle.info
@@ -1,3 +1,21 @@
+#
+#
+#    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.
+#
+#
 h1. Synopsis
 
 ${project.name}

http://git-wip-us.apache.org/repos/asf/karaf/blob/f38a1e20/config/src/main/resources/OSGI-INF/bundle.info
----------------------------------------------------------------------
diff --git a/config/src/main/resources/OSGI-INF/bundle.info b/config/src/main/resources/OSGI-INF/bundle.info
index 3cd35da..80c68be 100644
--- a/config/src/main/resources/OSGI-INF/bundle.info
+++ b/config/src/main/resources/OSGI-INF/bundle.info
@@ -1,3 +1,21 @@
+#
+#
+#    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.
+#
+#
 h1. Synopsis
 
 ${project.name}
@@ -13,13 +31,15 @@ This bundle provides Karaf shell commands to manipulate the ConfigAdmin OSGi ser
 
 The following commands are available:
 * config:cancel - Cancels the changes to the configuration being edited.
+* config:delete - Delete a configuration.
 * config:edit - Creates or edits a configuration.
 * config:list - Lists existing configurations.
-* config:propappend - Appends the given value to an existing property or creates
+* config:meta - Lists meta type information.
+* config:property\\-append - Appends the given value to an existing property or creates
  the property with the specified name and value.
-* config:propdel - Deletes a property from the edited configuration.
-* config:proplist - Lists properties from the currently edited configuration.
-* config:propset - Sets a property in the currently edited configuration.
+* config:property\\-delete - Deletes a property from the edited configuration.
+* config:property\\-list - Lists properties from the currently edited configuration.
+* config:property\\-set - Sets a property in the currently edited configuration.
 * config:update - Saves and propagates changes from the configuration being edited.
 
 h1. See also

http://git-wip-us.apache.org/repos/asf/karaf/blob/f38a1e20/deployer/blueprint/src/main/resources/OSGI-INF/bundle.info
----------------------------------------------------------------------
diff --git a/deployer/blueprint/src/main/resources/OSGI-INF/bundle.info b/deployer/blueprint/src/main/resources/OSGI-INF/bundle.info
index a2a68a3..9b05cba 100644
--- a/deployer/blueprint/src/main/resources/OSGI-INF/bundle.info
+++ b/deployer/blueprint/src/main/resources/OSGI-INF/bundle.info
@@ -1,3 +1,21 @@
+#
+#
+#    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.
+#
+#
 h1. Synopsis
 
 ${project.name}

http://git-wip-us.apache.org/repos/asf/karaf/blob/f38a1e20/deployer/features/src/main/resources/OSGI-INF/bundle.info
----------------------------------------------------------------------
diff --git a/deployer/features/src/main/resources/OSGI-INF/bundle.info b/deployer/features/src/main/resources/OSGI-INF/bundle.info
index 837834d..08c3408 100644
--- a/deployer/features/src/main/resources/OSGI-INF/bundle.info
+++ b/deployer/features/src/main/resources/OSGI-INF/bundle.info
@@ -1,18 +1,36 @@
+#
+#
+#    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.
+#
+#
 h1. Synopsis
 
-${project.name}
+	${project.name}
 
-${project.description}
+	${project.description}
 
-Maven URL:
-[mvn:${project.groupId}/${project.artifactId}/${project.version}]
+	Maven URL:
+		[mvn:${project.groupId}/${project.artifactId}/${project.version}]
 
 h1. Description
 
-The features deployer allow you to drop directly a XML features descriptor in the Karaf deploy directory.
+	The features deployer allow you to drop directly a XML features descriptor in the Karaf deploy directory.
 
-Karaf will resolve and deploy all features and bundles contained in this features descriptor.
+	Karaf will resolve and deploy all features and bundles contained in this features descriptor.
 
 h1. See also
 
-Deployer - section of the Karaf User Guide.
\ No newline at end of file
+	Deployer - section of the Karaf User Guide.
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/karaf/blob/f38a1e20/deployer/kar/src/main/resources/OSGI-INF/bundle.info
----------------------------------------------------------------------
diff --git a/deployer/kar/src/main/resources/OSGI-INF/bundle.info b/deployer/kar/src/main/resources/OSGI-INF/bundle.info
index b3a1c3b..666ccd6 100644
--- a/deployer/kar/src/main/resources/OSGI-INF/bundle.info
+++ b/deployer/kar/src/main/resources/OSGI-INF/bundle.info
@@ -1,3 +1,21 @@
+#
+#
+#    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.
+#
+#
 h1. Synopsis
 
 ${project.name}

http://git-wip-us.apache.org/repos/asf/karaf/blob/f38a1e20/deployer/spring/src/main/resources/OSGI-INF/bundle.info
----------------------------------------------------------------------
diff --git a/deployer/spring/src/main/resources/OSGI-INF/bundle.info b/deployer/spring/src/main/resources/OSGI-INF/bundle.info
index 0712eb9..021fb02 100644
--- a/deployer/spring/src/main/resources/OSGI-INF/bundle.info
+++ b/deployer/spring/src/main/resources/OSGI-INF/bundle.info
@@ -1,3 +1,21 @@
+#
+#
+#    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.
+#
+#
 h1. Synopsis
 
 ${project.name}

http://git-wip-us.apache.org/repos/asf/karaf/blob/f38a1e20/deployer/wrap/src/main/resources/OSGI-INF/bundle.info
----------------------------------------------------------------------
diff --git a/deployer/wrap/src/main/resources/OSGI-INF/bundle.info b/deployer/wrap/src/main/resources/OSGI-INF/bundle.info
index 81a738d..16c8853 100644
--- a/deployer/wrap/src/main/resources/OSGI-INF/bundle.info
+++ b/deployer/wrap/src/main/resources/OSGI-INF/bundle.info
@@ -1,3 +1,21 @@
+#
+#
+#    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.
+#
+#
 h1. Synopsis
 
 ${project.name}

http://git-wip-us.apache.org/repos/asf/karaf/blob/f38a1e20/diagnostic/boot/src/main/resources/OSGI-INF/bundle.info
----------------------------------------------------------------------
diff --git a/diagnostic/boot/src/main/resources/OSGI-INF/bundle.info b/diagnostic/boot/src/main/resources/OSGI-INF/bundle.info
index 6f8f9cb..4e0168f 100644
--- a/diagnostic/boot/src/main/resources/OSGI-INF/bundle.info
+++ b/diagnostic/boot/src/main/resources/OSGI-INF/bundle.info
@@ -1,3 +1,21 @@
+#
+#
+#    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.
+#
+#
 h1. Synopsis
 
 ${project.name}

http://git-wip-us.apache.org/repos/asf/karaf/blob/f38a1e20/diagnostic/core/src/main/resources/OSGI-INF/bundle.info
----------------------------------------------------------------------
diff --git a/diagnostic/core/src/main/resources/OSGI-INF/bundle.info b/diagnostic/core/src/main/resources/OSGI-INF/bundle.info
index ad58e7c..d099c95 100644
--- a/diagnostic/core/src/main/resources/OSGI-INF/bundle.info
+++ b/diagnostic/core/src/main/resources/OSGI-INF/bundle.info
@@ -1,3 +1,21 @@
+#
+#
+#    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.
+#
+#
 h1. Synopsis
 
 ${project.name}

http://git-wip-us.apache.org/repos/asf/karaf/blob/f38a1e20/features/command/src/main/java/org/apache/karaf/features/command/InfoFeatureCommand.java
----------------------------------------------------------------------
diff --git a/features/command/src/main/java/org/apache/karaf/features/command/InfoFeatureCommand.java b/features/command/src/main/java/org/apache/karaf/features/command/InfoFeatureCommand.java
index 5069fbb..21ebd47 100644
--- a/features/command/src/main/java/org/apache/karaf/features/command/InfoFeatureCommand.java
+++ b/features/command/src/main/java/org/apache/karaf/features/command/InfoFeatureCommand.java
@@ -85,8 +85,13 @@ public class InfoFeatureCommand extends FeaturesCommandSupport {
             conditional = true;
         }
 
+        boolean first = true;
         for (Feature feature : features) {
-            System.out.println("------------------------------------");
+            if (first) {
+                first = false;
+            } else {
+                System.out.println("------------------------------------");
+            }
             System.out.println("Feature " + feature.getName() + " " + feature.getVersion());
             if (feature.getDescription() != null) {
                 System.out.println("Description:");

http://git-wip-us.apache.org/repos/asf/karaf/blob/f38a1e20/features/command/src/main/resources/OSGI-INF/bundle.info
----------------------------------------------------------------------
diff --git a/features/command/src/main/resources/OSGI-INF/bundle.info b/features/command/src/main/resources/OSGI-INF/bundle.info
index f10729a..a9f4a63 100644
--- a/features/command/src/main/resources/OSGI-INF/bundle.info
+++ b/features/command/src/main/resources/OSGI-INF/bundle.info
@@ -1,33 +1,39 @@
+#
+#
+#    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.
+#
+#
 h1. Synopsis
 
-${project.name}
+	${project.name}
 
-${project.description}
+	${project.description}
 
-Maven URL:
-[mvn:${project.groupId}/${project.artifactId}/${project.version}]
+	Maven URL:
+		[mvn:${project.groupId}/${project.artifactId}/${project.version}]
 
 h1. Description
 
-This bundle provides the Karaf shell commands to manipulate features.
-
-The following commands are available:
-
-* feature:repo-add Add a list of repository URLs to the features service.
-* feature:info Show information about selected information.
-* feature:install Install a feature with the specified name and version.
-* feature:list List all existing features available from the defined repositories.
-* feature:repo-list Display a list of all defined repositories.
-* feature:repo-refresh Reload the list of available features from the repositories.
-* feature:repo-remove Remove the specified repository features service.
-* feature:uninstall Uninstall a feature with the specified name and version.
-* feature:version-list List all versions available for a given feature.
-* feature:requirement-list List provisioning requirements.
-* feature:requirement-add Add provisioning requirements.
-* feature:requirement-remove Remove provisioning requirements.
-* feature:start Start features with the specified name and version.
-* feature:regions Print information about region digraph.
+	This bundle provides the Karaf shell commands to manipulate features.
+
+h1. Commands
+
+	The following commands are available:
+\${command-list|feature|indent=8,list,cyan}
 
 h1. See also
 
-"Provisioning and features" section of the Karaf User Guide.
+	"Provisioning and features" section of the Karaf User Guide.

http://git-wip-us.apache.org/repos/asf/karaf/blob/f38a1e20/features/command/src/main/resources/OSGI-INF/shell-feature.info
----------------------------------------------------------------------
diff --git a/features/command/src/main/resources/OSGI-INF/shell-feature.info b/features/command/src/main/resources/OSGI-INF/shell-feature.info
new file mode 100644
index 0000000..aa8ab85
--- /dev/null
+++ b/features/command/src/main/resources/OSGI-INF/shell-feature.info
@@ -0,0 +1,29 @@
+#
+#
+#    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.
+#
+#
+h1. SUBSHELL
+    **feature**
+
+h1. SYNOPSIS
+    This shell provides the Karaf shell commands to manipulate features.
+
+h1. COMMANDS
+\${command-list|feature|indent=4}
+
+h1. SEE ALSO
+    Commands- and Provisioning- sections of the Karaf User Guide.
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/karaf/blob/f38a1e20/features/core/src/main/resources/OSGI-INF/bundle.info
----------------------------------------------------------------------
diff --git a/features/core/src/main/resources/OSGI-INF/bundle.info b/features/core/src/main/resources/OSGI-INF/bundle.info
index d5b4180..35057c1 100644
--- a/features/core/src/main/resources/OSGI-INF/bundle.info
+++ b/features/core/src/main/resources/OSGI-INF/bundle.info
@@ -1,3 +1,21 @@
+#
+#
+#    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.
+#
+#
 h1. Synopsis
 
 ${project.name}

http://git-wip-us.apache.org/repos/asf/karaf/blob/f38a1e20/http/src/main/resources/OSGI-INF/bundle.info
----------------------------------------------------------------------
diff --git a/http/src/main/resources/OSGI-INF/bundle.info b/http/src/main/resources/OSGI-INF/bundle.info
index 31222c7..1275de3 100644
--- a/http/src/main/resources/OSGI-INF/bundle.info
+++ b/http/src/main/resources/OSGI-INF/bundle.info
@@ -1,19 +1,42 @@
+#
+#
+#    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.
+#
+#
 h1. Synopsis
 
-${project.name}
+	${project.name}
 
-${project.description}
+	${project.description}
 
-Maven URL:
-[mvn:${project.groupId}/${project.artifactId}/${project.version}]
+	Maven URL:
+		[mvn:${project.groupId}/${project.artifactId}/${project.version}]
 
 h1. Description
 
-The http mbean management bundle exposes a HTTP MBean that can be used with any JMX client (for instance JConsole).
+	The http mbean management bundle exposes a HTTP MBean that can be used with any JMX client (for instance JConsole).
 
-The HTTP MBean allows quite the same actions that can be performed using http:* commands:
-  * list()
+	The HTTP MBean allows quite the same actions that can be performed using http:* commands:
+  		* list()
+
+h1. Commands
+
+	The following commands are available:
+\${command-list|http|indent=8,list,cyan}
 
 h1. See also
 
-  * Monitoring and Administration using JMX - section of the Karaf User Guide
+	* Monitoring and Administration using JMX - section of the Karaf User Guide

http://git-wip-us.apache.org/repos/asf/karaf/blob/f38a1e20/instance/src/main/resources/OSGI-INF/bundle.info
----------------------------------------------------------------------
diff --git a/instance/src/main/resources/OSGI-INF/bundle.info b/instance/src/main/resources/OSGI-INF/bundle.info
index 9d305c3..5cb94b4 100644
--- a/instance/src/main/resources/OSGI-INF/bundle.info
+++ b/instance/src/main/resources/OSGI-INF/bundle.info
@@ -1,36 +1,60 @@
+#
+#
+#    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.
+#
+#
 h1. Synopsis
 
-${project.name}
+	${project.name}
 
-${project.description}
+	${project.description}
 
-Maven URL:
-[mvn:${project.groupId}/${project.artifactId}/${project.version}]
+	Maven URL:
+		[mvn:${project.groupId}/${project.artifactId}/${project.version}]
 
 h1. Description
 
-This bundle is the core implementation of the Karaf instance feature.
+	This bundle is the core implementation of the Karaf instance feature.
 
-Karaf instance allows you to manage Karaf child instances.
+	Karaf instance allows you to manage Karaf child instances.
 
-You can create new Karaf instances, configure attributes, rename instances, stop instances, etc.
+	You can create new Karaf instances, configure attributes, rename instances, stop instances, etc.
 
-It also provides JMX MBeans related to the Karaf instance feature.
+h1. Commands
 
-In particular, an InstanceServiceMBean is provided that can be remotely administered using a JMX client (for instance
-JConsole).
+	The following commands are available:
+\${command-list|instance|indent=8,list,cyan}
 
-With this InstanceServiceMBean, you have the following operations available:
-* createInstance(name, sshPort, rmiPort, location, javaOpts, features, featureURLs) - Creates a new Karaf instance.
-* changeSshPort(name, port) - Changes the SSH port number of an existing Karaf instance.
-* changeRmiRegistryPort(name, port) - Changes the RMI registry port number of an existing Karaf instance.
-* changeRmiServerPort(name, port) - Changes the RMI server port number of an existing Karaf instance.
-* changeJavaOpts(name, javaopts) - Changes the Java options of an existing Karaf instance.
-* destroyInstance(name) - Destroys an existing Karaf instance.
-* startInstance(name) - Starts an existing Karaf instance.
-* stopInstance(name) - Stops an existing Karaf instance.
-* renameInstance(originalName, newName) - Renames an existing Karaf instance.
+h1. MBean
+
+	It also provides JMX MBeans related to the Karaf instance feature.
+
+	In particular, an InstanceServiceMBean is provided that can be remotely administered using a JMX client (for instance JConsole).
+
+	With this InstanceServiceMBean, you have the following operations available:
+		* createInstance(name, sshPort, rmiPort, location, javaOpts, features, featureURLs) - Creates a new Karaf instance.
+		* changeSshPort(name, port) - Changes the SSH port number of an existing Karaf instance.
+		* changeRmiRegistryPort(name, port) - Changes the RMI registry port number of an existing Karaf instance.
+		* changeRmiServerPort(name, port) - Changes the RMI server port number of an existing Karaf instance.
+		* changeJavaOpts(name, javaopts) - Changes the Java options of an existing Karaf instance.
+		* destroyInstance(name) - Destroys an existing Karaf instance.
+		* startInstance(name) - Starts an existing Karaf instance.
+		* stopInstance(name) - Stops an existing Karaf instance.
+		* renameInstance(originalName, newName) - Renames an existing Karaf instance.
 
 h1. See also
 
-Managing child instances - of the Karaf User Guide.
+	Managing child instances - of the Karaf User Guide.

http://git-wip-us.apache.org/repos/asf/karaf/blob/f38a1e20/jaas/blueprint/config/src/main/resources/OSGI-INF/bundle.info
----------------------------------------------------------------------
diff --git a/jaas/blueprint/config/src/main/resources/OSGI-INF/bundle.info b/jaas/blueprint/config/src/main/resources/OSGI-INF/bundle.info
index 6f57671..db4b4db 100644
--- a/jaas/blueprint/config/src/main/resources/OSGI-INF/bundle.info
+++ b/jaas/blueprint/config/src/main/resources/OSGI-INF/bundle.info
@@ -1,4 +1,22 @@
-\u001B[1mSYNOPSIS\u001B[0m
+#
+#
+#    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.
+#
+#
+h1. SYNOPSIS
     ${project.name}
 
     ${project.description}
@@ -6,9 +24,9 @@
     Maven URL:
         \u001B[33mmvn:${project.groupId}/${project.artifactId}/${project.version}\u001B[0m
 
-\u001B[1mDESCRIPTION\u001B[0m
+h1. DESCRIPTION
     A JAAS Namespace Handler for Blueprint
 
-\u001B[1mSEE ALSO\u001B[0m
+h1. SEE ALSO
     \u001B[36mSecurity Framework\u001B[0m section of the Karaf Developer Guide.
     \u001B[36mhttp://www.jasypt.org/\u001B[0m
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/karaf/blob/f38a1e20/jaas/blueprint/jasypt/src/main/resources/OSGI-INF/bundle.info
----------------------------------------------------------------------
diff --git a/jaas/blueprint/jasypt/src/main/resources/OSGI-INF/bundle.info b/jaas/blueprint/jasypt/src/main/resources/OSGI-INF/bundle.info
index b95de28..eab4a02 100644
--- a/jaas/blueprint/jasypt/src/main/resources/OSGI-INF/bundle.info
+++ b/jaas/blueprint/jasypt/src/main/resources/OSGI-INF/bundle.info
@@ -1,4 +1,22 @@
-\u001B[1mSYNOPSIS\u001B[0m
+#
+#
+#    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.
+#
+#
+h1. SYNOPSIS
     ${project.name}
 
     ${project.description}
@@ -6,9 +24,9 @@
     Maven URL:
         \u001B[33mmvn:${project.groupId}/${project.artifactId}/${project.version}\u001B[0m
 
-\u001B[1mDESCRIPTION\u001B[0m
+h1. DESCRIPTION
     A Jasypt Namespace Handler for Blueprint
 
-\u001B[1mSEE ALSO\u001B[0m
+h1. SEE ALSO
     \u001B[36mSecurity Framework\u001B[0m section of the Karaf Developer Guide.
     \u001B[36mhttp://www.jasypt.org/\u001B[0m
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/karaf/blob/f38a1e20/jaas/boot/src/main/resources/OSGI-INF/bundle.info
----------------------------------------------------------------------
diff --git a/jaas/boot/src/main/resources/OSGI-INF/bundle.info b/jaas/boot/src/main/resources/OSGI-INF/bundle.info
index 98d8fa7..1b8d052 100644
--- a/jaas/boot/src/main/resources/OSGI-INF/bundle.info
+++ b/jaas/boot/src/main/resources/OSGI-INF/bundle.info
@@ -1,3 +1,21 @@
+#
+#
+#    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.
+#
+#
 h1. Synopsis
 
 ${project.name}

http://git-wip-us.apache.org/repos/asf/karaf/blob/f38a1e20/jaas/command/src/main/resources/OSGI-INF/bundle.info
----------------------------------------------------------------------
diff --git a/jaas/command/src/main/resources/OSGI-INF/bundle.info b/jaas/command/src/main/resources/OSGI-INF/bundle.info
index 0a54ee5..030ac7f 100644
--- a/jaas/command/src/main/resources/OSGI-INF/bundle.info
+++ b/jaas/command/src/main/resources/OSGI-INF/bundle.info
@@ -1,29 +1,40 @@
+#
+#
+#    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.
+#
+#
 h1. Synopsis
 
-${project.name}
+	${project.name}
 
-${project.description}
+	${project.description}
 
-Maven URL:
-[mvn:${project.groupId}/${project.artifactId}/${project.version}]
+	Maven URL:
+		[mvn:${project.groupId}/${project.artifactId}/${project.version}]
 
 h1. Description
 
-This bundle provides Karaf shell commands to manipulate the JAAS security framework.
+	This bundle provides Karaf shell commands to manipulate the JAAS security framework.
 
-The following commands are available:
-* jaas:cancel - Cancel the modification of a JAAS realm
-* jaas:pending - Lists the modification on the active realm/module
-* jaas:list - Lists the modification on the active realm/module
-* jaas:userlist - Lists the users of the active realm/module
-* jaas:manage - Manage user and roles of a Jaas Realm
-* jaas:roleadd - Add a role to a user
-* jaas:roledel - Delete a role from a user
-* jaas:update - Update JAAS realm
-* jaas:useradd - Add a user
-* jaas:userdel - Delete a user
+h1. Commands
+
+	The following commands are available:
+\${command-list|jaas|indent=8,list.cyan}
 
 h1. See also
 
-* Security - section of the Karaf User Guide
-* Security Framework - section of the Karaf Developer Guide
+	* Security - section of the Karaf User Guide
+	* Security Framework - section of the Karaf Developer Guide

http://git-wip-us.apache.org/repos/asf/karaf/blob/f38a1e20/jaas/config/src/main/resources/OSGI-INF/bundle.info
----------------------------------------------------------------------
diff --git a/jaas/config/src/main/resources/OSGI-INF/bundle.info b/jaas/config/src/main/resources/OSGI-INF/bundle.info
index 72f3a07..ba907a5 100644
--- a/jaas/config/src/main/resources/OSGI-INF/bundle.info
+++ b/jaas/config/src/main/resources/OSGI-INF/bundle.info
@@ -1,3 +1,21 @@
+#
+#
+#    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.
+#
+#
 h1. Synopsis
 
 ${project.name}

http://git-wip-us.apache.org/repos/asf/karaf/blob/f38a1e20/jaas/jasypt/src/main/resources/OSGI-INF/bundle.info
----------------------------------------------------------------------
diff --git a/jaas/jasypt/src/main/resources/OSGI-INF/bundle.info b/jaas/jasypt/src/main/resources/OSGI-INF/bundle.info
index 86f8f5a..ab962d1 100644
--- a/jaas/jasypt/src/main/resources/OSGI-INF/bundle.info
+++ b/jaas/jasypt/src/main/resources/OSGI-INF/bundle.info
@@ -1,3 +1,21 @@
+#
+#
+#    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.
+#
+#
 h1. Synopsis
 
 ${project.name}

http://git-wip-us.apache.org/repos/asf/karaf/blob/f38a1e20/jaas/modules/src/main/resources/OSGI-INF/bundle.info
----------------------------------------------------------------------
diff --git a/jaas/modules/src/main/resources/OSGI-INF/bundle.info b/jaas/modules/src/main/resources/OSGI-INF/bundle.info
index 8d791f5..5ce5a08 100644
--- a/jaas/modules/src/main/resources/OSGI-INF/bundle.info
+++ b/jaas/modules/src/main/resources/OSGI-INF/bundle.info
@@ -1,3 +1,21 @@
+#
+#
+#    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.
+#
+#
 h1. Synopsis
 
 ${project.name}

http://git-wip-us.apache.org/repos/asf/karaf/blob/f38a1e20/jdbc/src/main/resources/OSGI-INF/bundle.info
----------------------------------------------------------------------
diff --git a/jdbc/src/main/resources/OSGI-INF/bundle.info b/jdbc/src/main/resources/OSGI-INF/bundle.info
index bc7a1cd..548cd96 100644
--- a/jdbc/src/main/resources/OSGI-INF/bundle.info
+++ b/jdbc/src/main/resources/OSGI-INF/bundle.info
@@ -1,18 +1,41 @@
+#
+#
+#    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.
+#
+#
 h1. Synopsis
 
-${project.name}
+	${project.name}
 
-${project.description}
+	${project.description}
 
-Maven URL:
-[mvn:${project.groupId}/${project.artifactId}/${project.version}]
+	Maven URL:
+		[mvn:${project.groupId}/${project.artifactId}/${project.version}]
 
 h1. Description
 
-This bundle is the core implementation of the JDBC service support.
+	This bundle is the core implementation of the JDBC service support.
 
-The JDBC service allows you to create datasources, see the defined datasources, execute query on a datasource, etc.
+	The JDBC service allows you to create datasources, see the defined datasources, execute query on a datasource, etc.
+
+h1. Commands
+
+	The bundle contains the following commands:
+\${command-list|jdbc|indent=8,list,cyan}
 
 h1. See also
 
-JDBC - section of the Karaf User Guide
+	JDBC - section of the Karaf User Guide

http://git-wip-us.apache.org/repos/asf/karaf/blob/f38a1e20/jms/src/main/resources/OSGI-INF/bundle.info
----------------------------------------------------------------------
diff --git a/jms/src/main/resources/OSGI-INF/bundle.info b/jms/src/main/resources/OSGI-INF/bundle.info
index 1aeb646..9d83749 100644
--- a/jms/src/main/resources/OSGI-INF/bundle.info
+++ b/jms/src/main/resources/OSGI-INF/bundle.info
@@ -1,18 +1,41 @@
+#
+#
+#    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.
+#
+#
 h1. Synopsis
 
-${project.name}
+	${project.name}
 
-${project.description}
+	${project.description}
 
-Maven URL:
-[mvn:${project.groupId}/${project.artifactId}/${project.version}]
+	Maven URL:
+		[mvn:${project.groupId}/${project.artifactId}/${project.version}]
 
 h1. Description
 
-This bundle is the core implementation of the JMS service support.
+	This bundle is the core implementation of the JMS service support.
 
-The JMS service allows you to create connection factories, and send/browse/consume messages.
+	The JMS service allows you to create connection factories, and send/browse/consume messages.
+
+h1. Commands
+
+	The bundle contains the following commands:
+\${command-list|jms|indent=8,list,cyan}
 
 h1. See also
 
-JMS - section of the Karaf User Guide
+	JMS - section of the Karaf User Guide

http://git-wip-us.apache.org/repos/asf/karaf/blob/f38a1e20/jndi/src/main/resources/OSGI-INF/bundle.info
----------------------------------------------------------------------
diff --git a/jndi/src/main/resources/OSGI-INF/bundle.info b/jndi/src/main/resources/OSGI-INF/bundle.info
index 4a7a606..f414afb 100644
--- a/jndi/src/main/resources/OSGI-INF/bundle.info
+++ b/jndi/src/main/resources/OSGI-INF/bundle.info
@@ -1,19 +1,41 @@
+#
+#
+#    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.
+#
+#
 h1. Synopsis
 
-${project.name}
+	${project.name}
 
-${project.description}
+	${project.description}
 
-Maven URL:
-[mvn:${project.groupId}/${project.artifactId}/${project.version}]
+	Maven URL:
+		[mvn:${project.groupId}/${project.artifactId}/${project.version}]
 
 h1. Description
 
-This bundle is the core implementation of the JNDI service support.
+	This bundle is the core implementation of the JNDI service support.
 
-JNDI allows to expose any OSGi services as JNDI names. Karaf JNDI also provides a set of commands and a MBean to list
-the current JNDI names, create JNDI aliases, ...
+	JNDI allows to expose any OSGi services as JNDI names. Karaf JNDI also provides a set of commands and a MBean to list the current JNDI names, create JNDI aliases, ...
+
+h1. Commands
+
+	The bundle contains the following commands:
+\${command-list|jms|indent=8,list,cyan}
 
 h1. See also
 
-JNDI - section of the Karaf User Guide
+	JNDI - section of the Karaf User Guide

http://git-wip-us.apache.org/repos/asf/karaf/blob/f38a1e20/kar/src/main/resources/OSGI-INF/bundle.info
----------------------------------------------------------------------
diff --git a/kar/src/main/resources/OSGI-INF/bundle.info b/kar/src/main/resources/OSGI-INF/bundle.info
index 7056453..eb89a23 100644
--- a/kar/src/main/resources/OSGI-INF/bundle.info
+++ b/kar/src/main/resources/OSGI-INF/bundle.info
@@ -1,19 +1,41 @@
+#
+#
+#    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.
+#
+#
 h1. Synopsis
 
-${project.name}
+	${project.name}
 
-${project.description}
+	${project.description}
 
-Maven URL:
-[mvn:${project.groupId}/${project.artifactId}/${project.version}]
+	Maven URL:
+		[mvn:${project.groupId}/${project.artifactId}/${project.version}]
 
 h1. Description
 
-This bundle is the core implementation of the Karaf kar support.
+	This bundle is the core implementation of the Karaf kar support.
 
-Karaf Archives (KAR) is an artifact (zip file) shipping a features XML and the associated bundles or configuration
-files.
+	Karaf Archives (KAR) is an artifact (zip file) shipping a features XML and the associated bundles or configuration files.
+
+h1. Commands
+
+	The bundle contains the following commands:
+\${command-list|kar|indent=8,list,cyan}
 
 h1. See also
 
-KAR - section of the Karaf User Guide
+	KAR - section of the Karaf User Guide

http://git-wip-us.apache.org/repos/asf/karaf/blob/f38a1e20/log/src/main/resources/OSGI-INF/bundle.info
----------------------------------------------------------------------
diff --git a/log/src/main/resources/OSGI-INF/bundle.info b/log/src/main/resources/OSGI-INF/bundle.info
index 2bd45bd..0968088 100644
--- a/log/src/main/resources/OSGI-INF/bundle.info
+++ b/log/src/main/resources/OSGI-INF/bundle.info
@@ -1,24 +1,47 @@
+#
+#
+#    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.
+#
+#
 h1. Synopsis
 
-${project.name}
+	${project.name}
 
-${project.description}
+	${project.description}
 
-Maven URL:
-[mvn:${project.groupId}/${project.artifactId}/${project.version}]
+	Maven URL:
+		[mvn:${project.groupId}/${project.artifactId}/${project.version}]
 
 h1. Description
 
-The log mbean management bundle exposes a Log MBean that can be used with any JMX client (for instance JConsole).
+	The log mbean management bundle exposes a Log MBean that can be used with any JMX client (for instance JConsole).
 
-The Log MBean allows quite the same actions that can be performed using log:* commands:
-  * display()
-  * display(logger)
-  * get()
-  * get(logger)
-  * set(level)
-  * list(level, logger)
+	The Log MBean allows quite the same actions that can be performed using log:* commands:
+  		* display()
+  		* display(logger)
+  		* get()
+  		* get(logger)
+  		* set(level)
+  		* list(level, logger)
+
+h1. Commands
+
+	The bundle contains the following commands:
+\${command-list|log|indent=8,list,cyan}
 
 h1. See also
 
-  * Monitoring and Administration using JMX - section of the Karaf User Guide
+	* Monitoring and Administration using JMX - section of the Karaf User Guide

http://git-wip-us.apache.org/repos/asf/karaf/blob/f38a1e20/main/src/main/resources/OSGI-INF/bundle.info
----------------------------------------------------------------------
diff --git a/main/src/main/resources/OSGI-INF/bundle.info b/main/src/main/resources/OSGI-INF/bundle.info
index ef32113..1222eae 100644
--- a/main/src/main/resources/OSGI-INF/bundle.info
+++ b/main/src/main/resources/OSGI-INF/bundle.info
@@ -1,17 +1,35 @@
+#
+#
+#    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.
+#
+#
 h1. Synopsis
 
-${project.name}
+	${project.name}
 
-${project.description}
+	${project.description}
 
-Maven URL:
-[mvn:${project.groupId}/${project.artifactId}/${project.version}]
+	Maven URL:
+		[mvn:${project.groupId}/${project.artifactId}/${project.version}]
 
 h1. Description
 
-This bundle is responsible for the main Karaf startup.
+	This bundle is responsible for the main Karaf startup.
 
-In particular, it manages the bootstrap of low level Karaf services such as the embedded Derby database, locking
+	In particular, it manages the bootstrap of low level Karaf services such as the embedded Derby database, locking
 facilities, etc.
 
 h1. See also

http://git-wip-us.apache.org/repos/asf/karaf/blob/f38a1e20/management/boot/src/main/resources/OSGI-INF/bundle.info
----------------------------------------------------------------------
diff --git a/management/boot/src/main/resources/OSGI-INF/bundle.info b/management/boot/src/main/resources/OSGI-INF/bundle.info
index 9490579..cd40f08 100644
--- a/management/boot/src/main/resources/OSGI-INF/bundle.info
+++ b/management/boot/src/main/resources/OSGI-INF/bundle.info
@@ -1,4 +1,22 @@
-\u001B[1mSYNOPSIS\u001B[0m
+#
+#
+#    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.
+#
+#
+h1. SYNOPSIS
     ${project.name}
 
     ${project.description}
@@ -6,7 +24,7 @@
     Maven URL:
         \u001B[33mmvn:${project.groupId}/${project.artifactId}/${project.version}\u001B[0m
 
-\u001B[1mDESCRIPTION\u001B[0m
+h1. DESCRIPTION
     This bundle provides JMX classes loaded during Karaf boot process.
 
     In particular it provides the KarafMBeanServerBuilder.

http://git-wip-us.apache.org/repos/asf/karaf/blob/f38a1e20/management/server/src/main/resources/OSGI-INF/bundle.info
----------------------------------------------------------------------
diff --git a/management/server/src/main/resources/OSGI-INF/bundle.info b/management/server/src/main/resources/OSGI-INF/bundle.info
index 137b8d0..0bc7c61 100644
--- a/management/server/src/main/resources/OSGI-INF/bundle.info
+++ b/management/server/src/main/resources/OSGI-INF/bundle.info
@@ -1,3 +1,21 @@
+#
+#
+#    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.
+#
+#
 h1. Synopsis
 
 ${project.name}

http://git-wip-us.apache.org/repos/asf/karaf/blob/f38a1e20/obr/src/main/resources/OSGI-INF/bundle.info
----------------------------------------------------------------------
diff --git a/obr/src/main/resources/OSGI-INF/bundle.info b/obr/src/main/resources/OSGI-INF/bundle.info
index e14433c..0c255b8 100644
--- a/obr/src/main/resources/OSGI-INF/bundle.info
+++ b/obr/src/main/resources/OSGI-INF/bundle.info
@@ -1,24 +1,47 @@
+#
+#
+#    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.
+#
+#
 h1. Synopsis
 
-${project.name}
+	${project.name}
 
-${project.description}
+	${project.description}
 
-Maven URL:
-[mvn:${project.groupId}/${project.artifactId}/${project.version}]
+	Maven URL:
+		[mvn:${project.groupId}/${project.artifactId}/${project.version}]
 
 h1. Description
 
-The obr mbean management bundle exposes an OBR MBean that can be used with any JMX client (for instance JConsole).
+	The obr mbean management bundle exposes an OBR MBean that can be used with any JMX client (for instance JConsole).
 
-The OBR MBean allows quite the same actions that can be performed using obr:* commands:
-  * listUrls()
-  * addUrl(url)
-  * removeUrl(url)
-  * refreshUrl(url)
-  * list()
-  * deploy(bundle)
-  * deploy(bundle, start)
+	The OBR MBean allows quite the same actions that can be performed using obr:* commands:
+  		* listUrls()
+  		* addUrl(url)
+  		* removeUrl(url)
+  		* refreshUrl(url)
+  		* list()
+  		* deploy(bundle)
+  		* deploy(bundle, start)
+
+h1. Commands
+
+	The bundle contains the following commands:
+\${command-list|obr|indent=8,list,cyan}
 
 h1. See also
 

http://git-wip-us.apache.org/repos/asf/karaf/blob/f38a1e20/package/src/main/resources/OSGI-INF/bundle.info
----------------------------------------------------------------------
diff --git a/package/src/main/resources/OSGI-INF/bundle.info b/package/src/main/resources/OSGI-INF/bundle.info
index b5747b7..6518206 100644
--- a/package/src/main/resources/OSGI-INF/bundle.info
+++ b/package/src/main/resources/OSGI-INF/bundle.info
@@ -1,15 +1,38 @@
+#
+#
+#    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.
+#
+#
 h1. Synopsis
 
-${project.name}
+   ${project.name}
 
-${project.description}
+   ${project.description}
 
-Maven URL:
-   [mvn:${project.groupId}/${project.artifactId}/${project.version}]
+   Maven URL:
+      [mvn:${project.groupId}/${project.artifactId}/${project.version}]
 
 h1. Description
 
-Services for handling packages
+   Services for handling packages.
+
+h1. Commands
+
+   The bundle contains the following commands:
+\${command-list|package|indent=8,list,cyan}
 
 h1. See also
 

http://git-wip-us.apache.org/repos/asf/karaf/blob/f38a1e20/pom.xml
----------------------------------------------------------------------
diff --git a/pom.xml b/pom.xml
index a2247f0..03ab99d 100644
--- a/pom.xml
+++ b/pom.xml
@@ -2270,7 +2270,6 @@
                                 <exclude>**/.settings/**</exclude>
                                 <exclude>**/bin/**</exclude>
                                 <!-- resources file -->
-                                <exclude>**/bundle.info</exclude>
                                 <exclude>**/goal.txt</exclude>
                                 <exclude>**/grep.txt</exclude>
                                 <exclude>**/edit.txt</exclude>

http://git-wip-us.apache.org/repos/asf/karaf/blob/f38a1e20/scheduler/src/main/resources/OSGI-INF/bundle.info
----------------------------------------------------------------------
diff --git a/scheduler/src/main/resources/OSGI-INF/bundle.info b/scheduler/src/main/resources/OSGI-INF/bundle.info
index 074eef4..d959a13 100644
--- a/scheduler/src/main/resources/OSGI-INF/bundle.info
+++ b/scheduler/src/main/resources/OSGI-INF/bundle.info
@@ -1,23 +1,45 @@
+#
+#
+#    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.
+#
+#
 h1. Synopsis
 
-${project.name}
+	${project.name}
 
-${project.description}
+	${project.description}
 
-Maven URL:
-[mvn:${project.groupId}/${project.artifactId}/${project.version}]
+	Maven URL:
+		[mvn:${project.groupId}/${project.artifactId}/${project.version}]
 
 h1. Description
 
-This bundle registers a service listener, which listens from service events related to java.lang.Runnable and org.apache.karaf.scheduler.Job interface.
-Each service with such interface may be added the following properties:
+	This bundle registers a service listener, which listens from service events related to java.lang.Runnable and org.apache.karaf.scheduler.Job interface.
+	Each service with such interface may be added the following properties:
+		* scheduler.name
+		* scheduler.period
+		* scheduler.expression
+		* scheduler.immediate
+		* scheduler.concurrent
 
-scheduler.name
-scheduler.period
-scheduler.expression
-scheduler.immediate
-scheduler.concurrent
+	One of scheduler.period or scheduler.expression is mandatory.
 
-One of scheduler.period or scheduler.expression is mandatory.
+h1. Commands
+
+	The bundle contains the following commands:
+\${command-list|scheduler|indent=8,list,cyan}
 
 

http://git-wip-us.apache.org/repos/asf/karaf/blob/f38a1e20/scr/command/src/main/resources/OSGI-INF/bundle.info
----------------------------------------------------------------------
diff --git a/scr/command/src/main/resources/OSGI-INF/bundle.info b/scr/command/src/main/resources/OSGI-INF/bundle.info
index b518b19..9983d13 100644
--- a/scr/command/src/main/resources/OSGI-INF/bundle.info
+++ b/scr/command/src/main/resources/OSGI-INF/bundle.info
@@ -1,4 +1,23 @@
-\u001B[1mSYNOPSIS\u001B[0m
+#
+#
+#    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.
+#
+#
+h1. Synopsis
+
     ${project.name}
 
     ${project.description}
@@ -6,14 +25,15 @@
     Maven URL:
         \u001B[33mmvn:${project.groupId}/${project.artifactId}/${project.version}\u001B[0m
 
-\u001B[1mDESCRIPTION\u001B[0m
+h1. Description
+
     This bundle provides the Karaf shell commands to manipulate DS Components.
 
+h1. Commands
+
     The following commands are available:
-    \u001B[36mscr:activate\u001B[0m Activates a component for the given component name.
-    \u001B[36mscr:deactivate\u001B[0m Deactivates a component for the given component name.
-    \u001B[36mscr:details\u001B[0m Shows details for the component with the given component name.
-    \u001B[36mscr:list\u001B[0m Gets the list of the currently available components.
+\${command-list|scr|indent=8,list,cyan}
+
+h1. See also
 
-\u001B[1mSEE ALSO\u001B[0m
     \u001B[36mCommands\u001B[0m and \u001B[36mDeclarative Services\u001B[0m sections of the Karaf User Guide.
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/karaf/blob/f38a1e20/scr/examples/component-factory/src/main/resources/OSGI-INF/bundle.info
----------------------------------------------------------------------
diff --git a/scr/examples/component-factory/src/main/resources/OSGI-INF/bundle.info b/scr/examples/component-factory/src/main/resources/OSGI-INF/bundle.info
index 655a64e..4e86c5a 100644
--- a/scr/examples/component-factory/src/main/resources/OSGI-INF/bundle.info
+++ b/scr/examples/component-factory/src/main/resources/OSGI-INF/bundle.info
@@ -1,4 +1,22 @@
-\u001B[1mSYNOPSIS\u001B[0m
+#
+#
+#    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.
+#
+#
+h1. SYNOPSIS
     ${project.name}
 
     ${project.description}
@@ -6,5 +24,5 @@
     Maven URL:
         \u001B[33mmvn:${project.groupId}/${project.artifactId}/${project.version}\u001B[0m
 
-\u001B[1mDESCRIPTION\u001B[0m
+h1. DESCRIPTION
     An SCR example project for Component Factories.
\ No newline at end of file