diff --git a/bundle/src/main/java/org/apache/karaf/cellar/bundle/shell/ListBundleCommand.java b/bundle/src/main/java/org/apache/karaf/cellar/bundle/shell/ListBundleCommand.java index 34a6484b0..1b032d844 100644 --- a/bundle/src/main/java/org/apache/karaf/cellar/bundle/shell/ListBundleCommand.java +++ b/bundle/src/main/java/org/apache/karaf/cellar/bundle/shell/ListBundleCommand.java @@ -81,6 +81,15 @@ protected Object doExecute() throws Exception { table.column("Name"); } + if (ids != null && !ids.isEmpty()) { + // do filtering by ids + Set matchingBundles = new HashSet(selector(allBundles)); + for (Iterator bundles = allBundles.keySet().iterator(); bundles.hasNext();) { + if (!matchingBundles.contains(bundles.next())) { + bundles.remove(); + } + } + } List bundles = new ArrayList(allBundles.values()); Collections.sort(bundles, new BundleStateComparator());