Repository: karaf
Updated Branches:
  refs/heads/master b65f00fec -> f400aaabc


[KARAF-3368] Support reference:file:xxx urls in startup.properties


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

Branch: refs/heads/master
Commit: f400aaabc99993525e67c240da0adce1e42641b3
Parents: b65f00f
Author: Guillaume Nodet <[email protected]>
Authored: Tue Nov 18 08:39:39 2014 +0100
Committer: Guillaume Nodet <[email protected]>
Committed: Tue Nov 18 08:45:12 2014 +0100

----------------------------------------------------------------------
 main/src/main/java/org/apache/karaf/main/Main.java | 12 ++++++++++--
 1 file changed, 10 insertions(+), 2 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/karaf/blob/f400aaab/main/src/main/java/org/apache/karaf/main/Main.java
----------------------------------------------------------------------
diff --git a/main/src/main/java/org/apache/karaf/main/Main.java 
b/main/src/main/java/org/apache/karaf/main/Main.java
index e0305ff..b35a055 100644
--- a/main/src/main/java/org/apache/karaf/main/Main.java
+++ b/main/src/main/java/org/apache/karaf/main/Main.java
@@ -418,8 +418,16 @@ public class Main {
     private void installAndStartBundles(ArtifactResolver resolver, 
BundleContext context, List<BundleInfo> bundles) {
         for (BundleInfo bundleInfo : bundles) {
             try {
-                URI resolvedURI = resolver.resolve(bundleInfo.uri);
-                Bundle b = context.installBundle(bundleInfo.uri.toString(), 
resolvedURI.toURL().openStream());
+                Bundle b;
+                if (bundleInfo.uri.toString().startsWith("reference:file:")) {
+                    URI temp = 
URI.create(bundleInfo.uri.toString().substring("reference:file:".length()));
+                    URI resolvedURI = resolver.resolve(temp);
+                    URI finalUri = URI.create("reference:file:" + 
config.karafBase.toURI().relativize(resolvedURI));
+                    b = context.installBundle(finalUri.toString());
+                } else {
+                    URI resolvedURI = resolver.resolve(bundleInfo.uri);
+                    b = context.installBundle(bundleInfo.uri.toString(), 
resolvedURI.toURL().openStream());
+                }
                 
b.adapt(BundleStartLevel.class).setStartLevel(bundleInfo.startLevel);
                 if (isNotFragment(b)) {
                     b.start();

Reply via email to