You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@karaf.apache.org by ff...@apache.org on 2015/04/20 11:36:45 UTC

karaf git commit: [KARAF-3627]Add bundle revision information to bundle:list command (cherry picked from commit bdd666603615d4049ea618e4f55ad125d93863a3)

Repository: karaf
Updated Branches:
  refs/heads/master 056239dca -> 2601b3307


[KARAF-3627]Add bundle revision information to bundle:list command
(cherry picked from commit bdd666603615d4049ea618e4f55ad125d93863a3)


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

Branch: refs/heads/master
Commit: 2601b3307d6c0bb344a85d0693ef48f98758c67a
Parents: 056239d
Author: Freeman Fang <fr...@gmail.com>
Authored: Mon Apr 20 16:45:23 2015 +0800
Committer: Freeman Fang <fr...@gmail.com>
Committed: Mon Apr 20 17:27:46 2015 +0800

----------------------------------------------------------------------
 .../org/apache/karaf/bundle/command/List.java    |  7 +++++++
 .../org/apache/karaf/bundle/core/BundleInfo.java |  1 +
 .../bundle/core/internal/BundleInfoImpl.java     | 19 +++++++++++++++++++
 3 files changed, 27 insertions(+)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/karaf/blob/2601b330/bundle/core/src/main/java/org/apache/karaf/bundle/command/List.java
----------------------------------------------------------------------
diff --git a/bundle/core/src/main/java/org/apache/karaf/bundle/command/List.java b/bundle/core/src/main/java/org/apache/karaf/bundle/command/List.java
index 82119c0..4cf6562 100644
--- a/bundle/core/src/main/java/org/apache/karaf/bundle/command/List.java
+++ b/bundle/core/src/main/java/org/apache/karaf/bundle/command/List.java
@@ -43,6 +43,9 @@ public class List extends BundlesCommand {
 
     @Option(name = "-u", description = "Shows the update locations", required = false, multiValued = false)
     boolean showUpdate;
+    
+    @Option(name = "-r", description = "Shows the bundle revisions", required = false, multiValued = false)
+    boolean showRevisions;
 
     @Option(name = "-t", valueToShowInHelp = "", description = "Specifies the bundle threshold; bundles with a start-level less than this value will not get printed out.", required = false, multiValued = false)
     int bundleLevelThreshold = -1;
@@ -131,6 +134,8 @@ public class List extends BundlesCommand {
             msg = "Symbolic name";
         } else if (showUpdate) {
             msg = "Update location";
+        } else if (showRevisions) {
+            msg = "Revisions";
         }
         return msg;
     }
@@ -187,6 +192,8 @@ public class List extends BundlesCommand {
             return info.getSymbolicName() == null ? "<no symbolic name>" : info.getSymbolicName();
         } else if (showUpdate) {
             return info.getUpdateLocation();
+        } else if (showRevisions) {
+            return info.getRevisions();
         } else {
             String name = (info.getName() == null) ? info.getSymbolicName() : info.getName();
             return (name == null) ? info.getUpdateLocation() : name;

http://git-wip-us.apache.org/repos/asf/karaf/blob/2601b330/bundle/core/src/main/java/org/apache/karaf/bundle/core/BundleInfo.java
----------------------------------------------------------------------
diff --git a/bundle/core/src/main/java/org/apache/karaf/bundle/core/BundleInfo.java b/bundle/core/src/main/java/org/apache/karaf/bundle/core/BundleInfo.java
index cfeecd5..962e802 100644
--- a/bundle/core/src/main/java/org/apache/karaf/bundle/core/BundleInfo.java
+++ b/bundle/core/src/main/java/org/apache/karaf/bundle/core/BundleInfo.java
@@ -26,6 +26,7 @@ public interface BundleInfo {
     String getName();
     String getUpdateLocation();
     String getVersion();
+    String getRevisions();
     
     /**
      * Combined bundle state from OSGi and all BundleStateServices

http://git-wip-us.apache.org/repos/asf/karaf/blob/2601b330/bundle/core/src/main/java/org/apache/karaf/bundle/core/internal/BundleInfoImpl.java
----------------------------------------------------------------------
diff --git a/bundle/core/src/main/java/org/apache/karaf/bundle/core/internal/BundleInfoImpl.java b/bundle/core/src/main/java/org/apache/karaf/bundle/core/internal/BundleInfoImpl.java
index bc6b21f..7fd811c 100644
--- a/bundle/core/src/main/java/org/apache/karaf/bundle/core/internal/BundleInfoImpl.java
+++ b/bundle/core/src/main/java/org/apache/karaf/bundle/core/internal/BundleInfoImpl.java
@@ -37,6 +37,7 @@ public class BundleInfoImpl implements BundleInfo {
     private String symbolicName;
     private String updateLocation;
     private String version;
+    private String revisions;
     private long bundleId;
     private BundleState state;
     private boolean isFragment;
@@ -62,6 +63,7 @@ public class BundleInfoImpl implements BundleInfo {
         String locationFromHeader = (String)bundle.getHeaders().get(Constants.BUNDLE_UPDATELOCATION);
         this.updateLocation = locationFromHeader != null ? locationFromHeader : bundle.getLocation();
         this.version = (String)bundle.getHeaders().get(Constants.BUNDLE_VERSION);
+        this.revisions = populateRevisions(bundle);
         this.bundleId = bundle.getBundleId();
         this.state = (extState != BundleState.Unknown) ? extState : getBundleState(bundle);
         populateFragementInfos(bundle);
@@ -82,6 +84,18 @@ public class BundleInfoImpl implements BundleInfo {
             }
         }
     }
+    
+    private String populateRevisions(Bundle bundle) {
+        String ret = "";
+        BundleRevisions revisions = bundle.adapt(BundleRevisions.class);
+        if (revisions == null) {
+            return ret;
+        }
+        for (BundleRevision revision : revisions.getRevisions()) {
+            ret = ret + "[" + revision + "]" + " ";
+        }
+        return ret;
+    }
 
     private void getFragments(BundleRevision revision) {
         List<BundleWire> wires = revision.getWiring().getProvidedWires(BundleRevision.HOST_NAMESPACE);
@@ -160,4 +174,9 @@ public class BundleInfoImpl implements BundleInfo {
         return this.fragmentHosts;
     }
 
+    @Override
+    public String getRevisions() {
+        return this.revisions;
+    }
+
 }