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/01/08 08:54:23 UTC

[1/2] karaf git commit: [KARAF-3433]when OBR resolver to resolve the bundles in a given feature, it should also take the dependency feature bundles into account (cherry picked from commit 910fedee74832a15fca8a514c851ad3d979d1b0f)

Repository: karaf
Updated Branches:
  refs/heads/karaf-3.0.x 3ca841c2b -> aea27bc77


[KARAF-3433]when OBR resolver to resolve the bundles in a given feature, it should also take the dependency feature bundles into account
(cherry picked from commit 910fedee74832a15fca8a514c851ad3d979d1b0f)


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

Branch: refs/heads/karaf-3.0.x
Commit: d68bb493799fcf145402c47eed74ceaa304525c0
Parents: 3ca841c
Author: Freeman Fang <fr...@gmail.com>
Authored: Thu Jan 8 15:29:15 2015 +0800
Committer: Freeman Fang <fr...@gmail.com>
Committed: Thu Jan 8 15:30:47 2015 +0800

----------------------------------------------------------------------
 .../features/obr/internal/ObrResolver.java      | 32 ++++++++++++++++++--
 .../OSGI-INF/blueprint/features-obr.xml         |  3 ++
 2 files changed, 33 insertions(+), 2 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/karaf/blob/d68bb493/features/obr/src/main/java/org/apache/karaf/features/obr/internal/ObrResolver.java
----------------------------------------------------------------------
diff --git a/features/obr/src/main/java/org/apache/karaf/features/obr/internal/ObrResolver.java b/features/obr/src/main/java/org/apache/karaf/features/obr/internal/ObrResolver.java
index 2823e88..1473290 100644
--- a/features/obr/src/main/java/org/apache/karaf/features/obr/internal/ObrResolver.java
+++ b/features/obr/src/main/java/org/apache/karaf/features/obr/internal/ObrResolver.java
@@ -34,12 +34,14 @@ import org.apache.felix.bundlerepository.Requirement;
 import org.apache.felix.bundlerepository.Resource;
 import org.apache.karaf.features.BundleInfo;
 import org.apache.karaf.features.Feature;
+import org.apache.karaf.features.FeaturesService;
 import org.apache.karaf.features.Resolver;
 import org.osgi.framework.InvalidSyntaxException;
 
 public class ObrResolver implements Resolver {
 
     private RepositoryAdmin repositoryAdmin;
+    private FeaturesService featuresService;
     private boolean resolveOptionalImports;
     private boolean startByDefault;
     private int startLevel;
@@ -79,8 +81,8 @@ public class ObrResolver implements Resolver {
         List<Resource> ress = new ArrayList<Resource>();
         List<Resource> featureDeploy = new ArrayList<Resource>();
         Map<Object, BundleInfo> infos = new HashMap<Object, BundleInfo>();
-        for (BundleInfo bundleInfo : feature.getBundles()) {
-        	URL url = null;
+        for (BundleInfo bundleInfo : getAllBundles(feature)) {
+            URL url = null;
             try {
                 url = new URL(bundleInfo.getLocation());
             } catch (MalformedURLException e) {
@@ -156,6 +158,7 @@ public class ObrResolver implements Resolver {
             }
             bundles.add(info);
         }
+        
         return bundles;
     }
 
@@ -167,6 +170,23 @@ public class ObrResolver implements Resolver {
         }
     }
 
+    /**
+     * get all bundles from a given feature, including the bundles from dependency
+     * features
+     *
+     * @param feature
+     */
+    public List<BundleInfo> getAllBundles(Feature feature) throws Exception {
+        List<BundleInfo> bundles = new ArrayList<BundleInfo>();
+        bundles.addAll(feature.getBundles());
+        for (Feature dependency : feature.getDependencies()) {
+            dependency = getFeaturesService().getFeature(dependency.getName(), dependency.getVersion());
+            bundles.addAll(getAllBundles(dependency));
+        }
+        return bundles;
+        
+    }
+    
     protected void printUnderline(PrintWriter out, int length) {
         for (int i = 0; i < length; i++) {
             out.print('-');
@@ -196,4 +216,12 @@ public class ObrResolver implements Resolver {
         }
         return repositoryAdmin.getHelper().requirement(name, filter);
     }
+
+    public FeaturesService getFeaturesService() {
+        return featuresService;
+    }
+
+    public void setFeaturesService(FeaturesService featuresService) {
+        this.featuresService = featuresService;
+    }
 }

http://git-wip-us.apache.org/repos/asf/karaf/blob/d68bb493/features/obr/src/main/resources/OSGI-INF/blueprint/features-obr.xml
----------------------------------------------------------------------
diff --git a/features/obr/src/main/resources/OSGI-INF/blueprint/features-obr.xml b/features/obr/src/main/resources/OSGI-INF/blueprint/features-obr.xml
index 590258f..d709be2 100644
--- a/features/obr/src/main/resources/OSGI-INF/blueprint/features-obr.xml
+++ b/features/obr/src/main/resources/OSGI-INF/blueprint/features-obr.xml
@@ -34,12 +34,15 @@
 
     <bean id="obrResolver" class="org.apache.karaf.features.obr.internal.ObrResolver">
         <property name="repositoryAdmin" ref="repositoryAdmin" />
+        <property name="featuresService" ref="featuresService" />
         <property name="resolveOptionalImports" value="$[resolveOptionalImports]" />
         <property name="startByDefault" value="$[startByDefault]" />
         <property name="startLevel" value="$[startLevel]" />
     </bean>
 
     <reference id="repositoryAdmin" interface="org.apache.felix.bundlerepository.RepositoryAdmin" />
+ 
+    <reference id="featuresService" interface="org.apache.karaf.features.FeaturesService" />
 
     <service ref="obrResolver" interface="org.apache.karaf.features.Resolver">
         <service-properties>


[2/2] karaf git commit: [KARAF-3433]tidy up cherry-pick conflict

Posted by ff...@apache.org.
[KARAF-3433]tidy up cherry-pick conflict


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

Branch: refs/heads/karaf-3.0.x
Commit: aea27bc7710f7e172e42323f0c67d68484fd127a
Parents: d68bb49
Author: Freeman Fang <fr...@gmail.com>
Authored: Thu Jan 8 15:53:31 2015 +0800
Committer: Freeman Fang <fr...@gmail.com>
Committed: Thu Jan 8 15:53:31 2015 +0800

----------------------------------------------------------------------
 .../org/apache/karaf/features/obr/internal/ObrResolver.java   | 7 ++++---
 1 file changed, 4 insertions(+), 3 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/karaf/blob/aea27bc7/features/obr/src/main/java/org/apache/karaf/features/obr/internal/ObrResolver.java
----------------------------------------------------------------------
diff --git a/features/obr/src/main/java/org/apache/karaf/features/obr/internal/ObrResolver.java b/features/obr/src/main/java/org/apache/karaf/features/obr/internal/ObrResolver.java
index 1473290..775d7a2 100644
--- a/features/obr/src/main/java/org/apache/karaf/features/obr/internal/ObrResolver.java
+++ b/features/obr/src/main/java/org/apache/karaf/features/obr/internal/ObrResolver.java
@@ -33,6 +33,7 @@ import org.apache.felix.bundlerepository.RepositoryAdmin;
 import org.apache.felix.bundlerepository.Requirement;
 import org.apache.felix.bundlerepository.Resource;
 import org.apache.karaf.features.BundleInfo;
+import org.apache.karaf.features.Dependency;
 import org.apache.karaf.features.Feature;
 import org.apache.karaf.features.FeaturesService;
 import org.apache.karaf.features.Resolver;
@@ -179,9 +180,9 @@ public class ObrResolver implements Resolver {
     public List<BundleInfo> getAllBundles(Feature feature) throws Exception {
         List<BundleInfo> bundles = new ArrayList<BundleInfo>();
         bundles.addAll(feature.getBundles());
-        for (Feature dependency : feature.getDependencies()) {
-            dependency = getFeaturesService().getFeature(dependency.getName(), dependency.getVersion());
-            bundles.addAll(getAllBundles(dependency));
+        for (Dependency dependency : feature.getDependencies()) {
+            Feature dependencyfeature = getFeaturesService().getFeature(dependency.getName(), dependency.getVersion());
+            bundles.addAll(getAllBundles(dependencyfeature));
         }
         return bundles;