You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@karaf.apache.org by cs...@apache.org on 2015/06/17 16:35:57 UTC
karaf git commit: [KARAF-3520] Adding switch ignoreServiceReqs
Repository: karaf
Updated Branches:
refs/heads/master 2ef4efd6a -> 03be1aef9
[KARAF-3520] Adding switch ignoreServiceReqs
Project: http://git-wip-us.apache.org/repos/asf/karaf/repo
Commit: http://git-wip-us.apache.org/repos/asf/karaf/commit/03be1aef
Tree: http://git-wip-us.apache.org/repos/asf/karaf/tree/03be1aef
Diff: http://git-wip-us.apache.org/repos/asf/karaf/diff/03be1aef
Branch: refs/heads/master
Commit: 03be1aef98124fa084b59d3a8c4ab573e64be881
Parents: 2ef4efd
Author: Christian Schneider <ch...@die-schneider.net>
Authored: Wed Jun 17 16:35:27 2015 +0200
Committer: Christian Schneider <ch...@die-schneider.net>
Committed: Wed Jun 17 16:35:38 2015 +0200
----------------------------------------------------------------------
.../karaf/features/internal/osgi/Activator.java | 3 +++
.../internal/resolver/ResourceBuilder.java | 20 +++++++++++++++++++-
2 files changed, 22 insertions(+), 1 deletion(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/karaf/blob/03be1aef/features/core/src/main/java/org/apache/karaf/features/internal/osgi/Activator.java
----------------------------------------------------------------------
diff --git a/features/core/src/main/java/org/apache/karaf/features/internal/osgi/Activator.java b/features/core/src/main/java/org/apache/karaf/features/internal/osgi/Activator.java
index bfa7ddb..cf18497 100644
--- a/features/core/src/main/java/org/apache/karaf/features/internal/osgi/Activator.java
+++ b/features/core/src/main/java/org/apache/karaf/features/internal/osgi/Activator.java
@@ -37,6 +37,7 @@ import org.apache.karaf.features.internal.region.DigraphHelper;
import org.apache.karaf.features.internal.repository.AggregateRepository;
import org.apache.karaf.features.internal.repository.JsonRepository;
import org.apache.karaf.features.internal.repository.XmlRepository;
+import org.apache.karaf.features.internal.resolver.ResourceBuilder;
import org.apache.karaf.features.internal.service.BootFeaturesInstaller;
import org.apache.karaf.features.internal.service.EventAdminListener;
import org.apache.karaf.features.internal.service.FeatureFinder;
@@ -178,6 +179,8 @@ public class Activator extends BaseActivator {
long scheduleDelay = getLong("scheduleDelay", FeaturesService.DEFAULT_SCHEDULE_DELAY);
int scheduleMaxRun = getInt("scheduleMaxRun", FeaturesService.DEFAULT_SCHEDULE_MAX_RUN);
String blacklisted = getString("blacklisted", new File(System.getProperty("karaf.etc"), "blacklisted.properties").toURI().toString());
+ boolean ignoreServiceReqs = getBoolean("ignoreServiceReqs", true);
+ ResourceBuilder.setIgnoreServiceReqs(ignoreServiceReqs);
StateStorage stateStorage = new StateStorage() {
@Override
protected InputStream getInputStream() throws IOException {
http://git-wip-us.apache.org/repos/asf/karaf/blob/03be1aef/features/core/src/main/java/org/apache/karaf/features/internal/resolver/ResourceBuilder.java
----------------------------------------------------------------------
diff --git a/features/core/src/main/java/org/apache/karaf/features/internal/resolver/ResourceBuilder.java b/features/core/src/main/java/org/apache/karaf/features/internal/resolver/ResourceBuilder.java
index 0dbf4e2..707c594 100644
--- a/features/core/src/main/java/org/apache/karaf/features/internal/resolver/ResourceBuilder.java
+++ b/features/core/src/main/java/org/apache/karaf/features/internal/resolver/ResourceBuilder.java
@@ -56,10 +56,14 @@ public final class ResourceBuilder {
private static final int DELIMITER = 2;
private static final int STARTQUOTE = 4;
private static final int ENDQUOTE = 8;
-
+ private static boolean ignoreServiceReqs = true;
private ResourceBuilder() {
}
+
+ public static void setIgnoreServiceReqs(boolean ignoreServiceReqs) {
+ ResourceBuilder.ignoreServiceReqs = ignoreServiceReqs;
+ }
public static ResourceImpl build(String uri, Map<String, String> headerMap) throws BundleException {
return build(new ResourceImpl(), uri, headerMap);
@@ -216,6 +220,10 @@ public final class ResourceBuilder {
List<Requirement> reqs = convertImportService(importServices, resource);
requireReqs.addAll(reqs);
}
+
+ if (ignoreServiceReqs) {
+ requireReqs = filterServiceReqs(requireReqs);
+ }
// Combine all capabilities.
resource.addCapabilities(exportCaps);
@@ -231,6 +239,16 @@ public final class ResourceBuilder {
return resource;
}
+ private static List<Requirement> filterServiceReqs(List<Requirement> requireReqs) {
+ ArrayList<Requirement> filtered = new ArrayList<Requirement>();
+ for (Requirement req : requireReqs) {
+ if (!ServiceNamespace.SERVICE_NAMESPACE.equals(req.getNamespace())) {
+ filtered.add(req);
+ }
+ }
+ return filtered;
+ }
+
public static List<Requirement> parseRequirement(Resource resource, String requirement) throws BundleException {
List<ParsedHeaderClause> requireClauses = parseStandardHeader(requirement);
requireClauses = normalizeRequireCapabilityClauses(requireClauses);