You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@karaf.apache.org by jb...@apache.org on 2017/06/16 12:39:25 UTC
karaf git commit: [KARAF-5205] Add refresh option to bundle:update and update MBean operation
Repository: karaf
Updated Branches:
refs/heads/master db064db65 -> d3b54adc9
[KARAF-5205] Add refresh option to bundle:update and update MBean operation
Project: http://git-wip-us.apache.org/repos/asf/karaf/repo
Commit: http://git-wip-us.apache.org/repos/asf/karaf/commit/d3b54adc
Tree: http://git-wip-us.apache.org/repos/asf/karaf/tree/d3b54adc
Diff: http://git-wip-us.apache.org/repos/asf/karaf/diff/d3b54adc
Branch: refs/heads/master
Commit: d3b54adc9163df2a292c035100ca3ecde0908b0a
Parents: db064db
Author: Jean-Baptiste Onofré <jb...@apache.org>
Authored: Fri Jun 16 14:38:47 2017 +0200
Committer: Jean-Baptiste Onofré <jb...@apache.org>
Committed: Fri Jun 16 14:38:47 2017 +0200
----------------------------------------------------------------------
.../java/org/apache/karaf/bundle/command/Update.java | 8 ++++++++
.../org/apache/karaf/bundle/core/BundlesMBean.java | 2 ++
.../karaf/bundle/core/internal/BundlesMBeanImpl.java | 15 ++++++++++++++-
3 files changed, 24 insertions(+), 1 deletion(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/karaf/blob/d3b54adc/bundle/core/src/main/java/org/apache/karaf/bundle/command/Update.java
----------------------------------------------------------------------
diff --git a/bundle/core/src/main/java/org/apache/karaf/bundle/command/Update.java b/bundle/core/src/main/java/org/apache/karaf/bundle/command/Update.java
index 88ea368..c1afe44 100644
--- a/bundle/core/src/main/java/org/apache/karaf/bundle/command/Update.java
+++ b/bundle/core/src/main/java/org/apache/karaf/bundle/command/Update.java
@@ -31,6 +31,7 @@ import org.apache.karaf.util.bundles.BundleUtils;
import org.osgi.framework.Bundle;
import org.osgi.framework.BundleException;
import org.osgi.framework.Constants;
+import org.osgi.framework.wiring.FrameworkWiring;
@Command(scope = "bundle", name = "update", description = "Update bundle.")
@Service
@@ -42,6 +43,9 @@ public class Update extends BundleCommand {
@Option(name = "--raw", description = "Do not update the bundles's Bundle-UpdateLocation manifest header")
boolean raw;
+ @Option(name = "-r", aliases = { "--refresh" }, description = "Perform a refresh after the bundle update", required = false, multiValued = false)
+ boolean refresh;
+
protected Object doExecute(Bundle bundle) throws Exception {
if (location != null) {
update(bundle, location.toURL());
@@ -53,6 +57,10 @@ public class Update extends BundleCommand {
bundle.update();
}
}
+ if (refresh) {
+ FrameworkWiring wiring = bundleContext.getBundle(0).adapt(FrameworkWiring.class);
+ wiring.refreshBundles(null);
+ }
return null;
}
http://git-wip-us.apache.org/repos/asf/karaf/blob/d3b54adc/bundle/core/src/main/java/org/apache/karaf/bundle/core/BundlesMBean.java
----------------------------------------------------------------------
diff --git a/bundle/core/src/main/java/org/apache/karaf/bundle/core/BundlesMBean.java b/bundle/core/src/main/java/org/apache/karaf/bundle/core/BundlesMBean.java
index 0327622..c191dfa 100644
--- a/bundle/core/src/main/java/org/apache/karaf/bundle/core/BundlesMBean.java
+++ b/bundle/core/src/main/java/org/apache/karaf/bundle/core/BundlesMBean.java
@@ -33,7 +33,9 @@ public interface BundlesMBean {
void refresh(String bundleId) throws MBeanException;
void update(String bundleId) throws MBeanException;
+ void update(String bundleId, boolean refresh) throws MBeanException;
void update(String bundleId, String location) throws MBeanException;
+ void update(String bundleId, String location, boolean refresh) throws MBeanException;
void resolve() throws MBeanException;
void resolve(String bundleId) throws MBeanException;
http://git-wip-us.apache.org/repos/asf/karaf/blob/d3b54adc/bundle/core/src/main/java/org/apache/karaf/bundle/core/internal/BundlesMBeanImpl.java
----------------------------------------------------------------------
diff --git a/bundle/core/src/main/java/org/apache/karaf/bundle/core/internal/BundlesMBeanImpl.java b/bundle/core/src/main/java/org/apache/karaf/bundle/core/internal/BundlesMBeanImpl.java
index d994057..2f56fa7 100644
--- a/bundle/core/src/main/java/org/apache/karaf/bundle/core/internal/BundlesMBeanImpl.java
+++ b/bundle/core/src/main/java/org/apache/karaf/bundle/core/internal/BundlesMBeanImpl.java
@@ -142,10 +142,18 @@ public class BundlesMBeanImpl extends StandardMBean implements BundlesMBean {
}
public void update(String bundleId) throws MBeanException {
- update(bundleId, null);
+ update(bundleId, null, false);
+ }
+
+ public void update(String bundleId, boolean refresh) throws MBeanException {
+ update(bundleId, null, refresh);
}
public void update(String bundleId, String location) throws MBeanException {
+ update(bundleId, location, false);
+ }
+
+ public void update(String bundleId, String location, boolean refresh) throws MBeanException {
try {
List<Bundle> bundles = selectBundles(bundleId);
@@ -162,6 +170,11 @@ public class BundlesMBeanImpl extends StandardMBean implements BundlesMBean {
InputStream is = new URL(location).openStream();
bundles.get(0).update(is);
+
+ if (refresh) {
+ FrameworkWiring wiring = bundleContext.getBundle(0).adapt(FrameworkWiring.class);
+ wiring.refreshBundles(null);
+ }
} catch (Exception e) {
throw new MBeanException(null, e.toString());
}