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;