Repository: karaf
Updated Branches:
  refs/heads/karaf-3.0.x 72595e366 -> 1c7856900


[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/1c785690
Tree: http://git-wip-us.apache.org/repos/asf/karaf/tree/1c785690
Diff: http://git-wip-us.apache.org/repos/asf/karaf/diff/1c785690

Branch: refs/heads/karaf-3.0.x
Commit: 1c7856900e43af16d261af3c3aeccb769f3dd766
Parents: 72595e3
Author: Guillaume Nodet <[email protected]>
Authored: Tue Nov 18 08:39:39 2014 +0100
Committer: Guillaume Nodet <[email protected]>
Committed: Tue Nov 18 08:39:56 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/1c785690/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 51f6065..4c99533 100644
--- a/main/src/main/java/org/apache/karaf/main/Main.java
+++ b/main/src/main/java/org/apache/karaf/main/Main.java
@@ -374,8 +374,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