You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@karaf.apache.org by gn...@apache.org on 2015/06/23 13:00:36 UTC
karaf git commit: [KARAF-3793] Another fix for optional features
Repository: karaf
Updated Branches:
refs/heads/master 88593a583 -> 2477ee462
[KARAF-3793] Another fix for optional features
Project: http://git-wip-us.apache.org/repos/asf/karaf/repo
Commit: http://git-wip-us.apache.org/repos/asf/karaf/commit/2477ee46
Tree: http://git-wip-us.apache.org/repos/asf/karaf/tree/2477ee46
Diff: http://git-wip-us.apache.org/repos/asf/karaf/diff/2477ee46
Branch: refs/heads/master
Commit: 2477ee46249a6efe3182e896ebab036d23cc4145
Parents: 88593a5
Author: Guillaume Nodet <gn...@Guillaumes-MacBook-Pro.local>
Authored: Tue Jun 23 11:41:40 2015 +0200
Committer: Guillaume Nodet <gn...@Guillaumes-MacBook-Pro.local>
Committed: Tue Jun 23 11:41:40 2015 +0200
----------------------------------------------------------------------
.../features/standard/src/main/feature/feature.xml | 1 -
.../internal/region/SubsystemResolveContext.java | 12 +++++++++---
2 files changed, 9 insertions(+), 4 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/karaf/blob/2477ee46/assemblies/features/standard/src/main/feature/feature.xml
----------------------------------------------------------------------
diff --git a/assemblies/features/standard/src/main/feature/feature.xml b/assemblies/features/standard/src/main/feature/feature.xml
index f0aabf6..8628795 100644
--- a/assemblies/features/standard/src/main/feature/feature.xml
+++ b/assemblies/features/standard/src/main/feature/feature.xml
@@ -342,7 +342,6 @@
<feature name="http" version="${project.version}" description="Implementation of the OSGI HTTP Service">
<feature>pax-http</feature>
- <feature>pax-http-jetty</feature>
<bundle start-level="30">mvn:org.apache.karaf.http/org.apache.karaf.http.core/${project.version}</bundle>
</feature>
http://git-wip-us.apache.org/repos/asf/karaf/blob/2477ee46/features/core/src/main/java/org/apache/karaf/features/internal/region/SubsystemResolveContext.java
----------------------------------------------------------------------
diff --git a/features/core/src/main/java/org/apache/karaf/features/internal/region/SubsystemResolveContext.java b/features/core/src/main/java/org/apache/karaf/features/internal/region/SubsystemResolveContext.java
index 704db13..0a8405f 100644
--- a/features/core/src/main/java/org/apache/karaf/features/internal/region/SubsystemResolveContext.java
+++ b/features/core/src/main/java/org/apache/karaf/features/internal/region/SubsystemResolveContext.java
@@ -38,6 +38,7 @@ import org.eclipse.equinox.region.Region;
import org.eclipse.equinox.region.RegionDigraph;
import org.eclipse.equinox.region.RegionFilter;
import org.osgi.framework.BundleException;
+import org.osgi.framework.namespace.PackageNamespace;
import org.osgi.framework.wiring.BundleRevision;
import org.osgi.namespace.service.ServiceNamespace;
import org.osgi.resource.Capability;
@@ -108,7 +109,7 @@ public class SubsystemResolveContext extends ResolveContext {
for (Resource res : new ArrayList<>(mandatory)) {
// Check mandatory requirements of mandatory resources
for (Requirement req : res.getRequirements(null)) {
- if (isOptional(req)) {
+ if (isOptional(req) || isDynamic(req)) {
continue;
}
List<Capability> caps = findProviders(req);
@@ -129,7 +130,7 @@ public class SubsystemResolveContext extends ResolveContext {
mand.add(r);
} else {
for (Requirement req2 : r.getRequirements(null)) {
- if (!IDENTITY_NAMESPACE.equals(req2.getNamespace()) || !isOptional(req2)) {
+ if (!IDENTITY_NAMESPACE.equals(req2.getNamespace()) || isOptional(req2) || isDynamic(req2)) {
continue;
}
List<Capability> caps2 = findProviders(req2);
@@ -155,7 +156,12 @@ public class SubsystemResolveContext extends ResolveContext {
static boolean isOptional(Requirement req) {
String resolution = req.getDirectives().get(REQUIREMENT_RESOLUTION_DIRECTIVE);
- return RESOLUTION_OPTIONAL.equalsIgnoreCase(resolution);
+ return RESOLUTION_OPTIONAL.equals(resolution);
+ }
+
+ static boolean isDynamic(Requirement req) {
+ String resolution = req.getDirectives().get(REQUIREMENT_RESOLUTION_DIRECTIVE);
+ return PackageNamespace.RESOLUTION_DYNAMIC.equals(resolution);
}
void prepare(Subsystem subsystem) {