[KARAF-2902] Separate section for Karaf-xxx headers and sort headers
Project: http://git-wip-us.apache.org/repos/asf/karaf/repo Commit: http://git-wip-us.apache.org/repos/asf/karaf/commit/fd4b3f67 Tree: http://git-wip-us.apache.org/repos/asf/karaf/tree/fd4b3f67 Diff: http://git-wip-us.apache.org/repos/asf/karaf/diff/fd4b3f67 Branch: refs/heads/master Commit: fd4b3f67799c1d37f6756e1a9d2fe4c3c780f4e9 Parents: 6727c1b Author: Guillaume Nodet <gno...@gmail.com> Authored: Fri Apr 11 19:19:13 2014 +0200 Committer: Guillaume Nodet <gno...@gmail.com> Committed: Fri Apr 11 19:20:04 2014 +0200 ---------------------------------------------------------------------- .../apache/karaf/bundle/command/Headers.java | 27 ++++++++++++++++---- 1 file changed, 22 insertions(+), 5 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/karaf/blob/fd4b3f67/bundle/core/src/main/java/org/apache/karaf/bundle/command/Headers.java ---------------------------------------------------------------------- diff --git a/bundle/core/src/main/java/org/apache/karaf/bundle/command/Headers.java b/bundle/core/src/main/java/org/apache/karaf/bundle/command/Headers.java index 16083ff..5cf92c3 100644 --- a/bundle/core/src/main/java/org/apache/karaf/bundle/command/Headers.java +++ b/bundle/core/src/main/java/org/apache/karaf/bundle/command/Headers.java @@ -24,6 +24,7 @@ import java.util.HashMap; import java.util.Iterator; import java.util.List; import java.util.Map; +import java.util.TreeMap; import org.apache.felix.utils.manifest.Attribute; import org.apache.felix.utils.manifest.Clause; @@ -48,6 +49,7 @@ import org.osgi.framework.wiring.BundleWiring; @Service public class Headers extends BundlesCommand { + protected final static String KARAF_PREFIX = "Karaf-"; protected final static String BUNDLE_PREFIX = "Bundle-"; protected final static String PACKAGE_SUFFFIX = "-Package"; protected final static String SERVICE_SUFFIX = "-Service"; @@ -90,10 +92,11 @@ public class Headers extends BundlesCommand { protected String generateFormattedOutput(Bundle bundle) { StringBuilder output = new StringBuilder(); - Map<String, Object> otherAttribs = new HashMap<String, Object>(); - Map<String, Object> bundleAttribs = new HashMap<String, Object>(); - Map<String, Object> serviceAttribs = new HashMap<String, Object>(); - Map<String, Object> packagesAttribs = new HashMap<String, Object>(); + Map<String, Object> otherAttribs = new TreeMap<String, Object>(); + Map<String, Object> karafAttribs = new TreeMap<String, Object>(); + Map<String, Object> bundleAttribs = new TreeMap<String, Object>(); + Map<String, Object> serviceAttribs = new TreeMap<String, Object>(); + Map<String, Object> packagesAttribs = new TreeMap<String, Object>(); Dictionary<String, String> dict = bundle.getHeaders(); Enumeration<String> keys = dict.keys(); @@ -101,7 +104,10 @@ public class Headers extends BundlesCommand { while (keys.hasMoreElements()) { String k = (String) keys.nextElement(); Object v = dict.get(k); - if (k.startsWith(BUNDLE_PREFIX)) { + if (k.startsWith(KARAF_PREFIX)) { + // starts with Karaf-xxx + karafAttribs.put(k, v); + } else if (k.startsWith(BUNDLE_PREFIX)) { // starts with Bundle-xxx bundleAttribs.put(k, v); } else if (k.endsWith(SERVICE_SUFFIX) || k.endsWith(CAPABILITY_SUFFIX)) { @@ -124,6 +130,8 @@ public class Headers extends BundlesCommand { // ----------------------- // all other attributes // + // all Karaf attributes + // // all Bundle attributes // // all Service attributes @@ -138,6 +146,15 @@ public class Headers extends BundlesCommand { output.append('\n'); } + it = karafAttribs.entrySet().iterator(); + while (it.hasNext()) { + Map.Entry<String, Object> e = it.next(); + output.append(String.format("%s = %s\n", e.getKey(), ShellUtil.getValueString(e.getValue()))); + } + if (karafAttribs.size() > 0) { + output.append('\n'); + } + it = bundleAttribs.entrySet().iterator(); while (it.hasNext()) { Map.Entry<String, Object> e = it.next();