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/04/14 18:28:29 UTC
karaf git commit: [KARAF-3666] Simplify Conditional#asFeature to have
no arguments
Repository: karaf
Updated Branches:
refs/heads/master 0397cac32 -> eb4970d02
[KARAF-3666] Simplify Conditional#asFeature to have no arguments
Project: http://git-wip-us.apache.org/repos/asf/karaf/repo
Commit: http://git-wip-us.apache.org/repos/asf/karaf/commit/eb4970d0
Tree: http://git-wip-us.apache.org/repos/asf/karaf/tree/eb4970d0
Diff: http://git-wip-us.apache.org/repos/asf/karaf/diff/eb4970d0
Branch: refs/heads/master
Commit: eb4970d0267e0000a2c47f3f7e833e3ec8be00a4
Parents: 0397cac
Author: Guillaume Nodet <gn...@gmail.com>
Authored: Tue Apr 14 18:16:16 2015 +0200
Committer: Guillaume Nodet <gn...@gmail.com>
Committed: Tue Apr 14 18:28:04 2015 +0200
----------------------------------------------------------------------
.../features/command/InfoFeatureCommand.java | 2 +-
.../org/apache/karaf/features/Conditional.java | 2 +-
.../features/internal/model/Conditional.java | 19 ++++++++++++++++++-
.../karaf/features/internal/model/Feature.java | 7 +++++++
.../karaf/features/internal/model/Features.java | 7 +++++++
.../karaf/features/internal/model/JaxbUtil.java | 13 ++++++-------
.../features/internal/region/Subsystem.java | 2 +-
.../internal/resolver/FeatureResource.java | 2 +-
.../features/internal/service/Deployer.java | 2 +-
9 files changed, 43 insertions(+), 13 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/karaf/blob/eb4970d0/features/command/src/main/java/org/apache/karaf/features/command/InfoFeatureCommand.java
----------------------------------------------------------------------
diff --git a/features/command/src/main/java/org/apache/karaf/features/command/InfoFeatureCommand.java b/features/command/src/main/java/org/apache/karaf/features/command/InfoFeatureCommand.java
index 32d4ed4..c309571 100644
--- a/features/command/src/main/java/org/apache/karaf/features/command/InfoFeatureCommand.java
+++ b/features/command/src/main/java/org/apache/karaf/features/command/InfoFeatureCommand.java
@@ -268,7 +268,7 @@ public class InfoFeatureCommand extends FeaturesCommandSupport {
System.out.println("Feature contains followed conditionals:");
for (Conditional featureConditional : conditionals) {
String conditionDescription = getConditionDescription(featureConditional);
- Feature wrappedConditional = featureConditional.asFeature(feature.getName(), feature.getVersion());
+ Feature wrappedConditional = featureConditional.asFeature();
if (config) {
displayConfigInformation(wrappedConditional, String.format(CONDITIONAL_CONTENT, conditionDescription));
displayConfigFileInformation(wrappedConditional, String.format(CONDITIONAL_CONTENT, conditionDescription));
http://git-wip-us.apache.org/repos/asf/karaf/blob/eb4970d0/features/core/src/main/java/org/apache/karaf/features/Conditional.java
----------------------------------------------------------------------
diff --git a/features/core/src/main/java/org/apache/karaf/features/Conditional.java b/features/core/src/main/java/org/apache/karaf/features/Conditional.java
index 7cfb36f..adcf812 100644
--- a/features/core/src/main/java/org/apache/karaf/features/Conditional.java
+++ b/features/core/src/main/java/org/apache/karaf/features/Conditional.java
@@ -32,5 +32,5 @@ public interface Conditional {
List<ConfigFileInfo> getConfigurationFiles();
- Feature asFeature(String name, String version);
+ Feature asFeature();
}
http://git-wip-us.apache.org/repos/asf/karaf/blob/eb4970d0/features/core/src/main/java/org/apache/karaf/features/internal/model/Conditional.java
----------------------------------------------------------------------
diff --git a/features/core/src/main/java/org/apache/karaf/features/internal/model/Conditional.java b/features/core/src/main/java/org/apache/karaf/features/internal/model/Conditional.java
index ae309e5..a2fea40 100644
--- a/features/core/src/main/java/org/apache/karaf/features/internal/model/Conditional.java
+++ b/features/core/src/main/java/org/apache/karaf/features/internal/model/Conditional.java
@@ -22,6 +22,7 @@ import java.util.List;
import javax.xml.bind.annotation.XmlAccessType;
import javax.xml.bind.annotation.XmlAccessorType;
import javax.xml.bind.annotation.XmlElement;
+import javax.xml.bind.annotation.XmlTransient;
import javax.xml.bind.annotation.XmlType;
import org.apache.karaf.features.Feature;
@@ -39,6 +40,17 @@ public class Conditional extends Content implements org.apache.karaf.features.Co
@XmlElement(name = "condition")
protected List<String> condition;
+ @XmlTransient
+ protected Feature owner;
+
+ public Feature getOwner() {
+ return owner;
+ }
+
+ public void setOwner(Feature owner) {
+ this.owner = owner;
+ }
+
public List<String> getCondition() {
if (condition == null) {
this.condition = new ArrayList<>();
@@ -47,7 +59,12 @@ public class Conditional extends Content implements org.apache.karaf.features.Co
}
@Override
- public Feature asFeature(String name, String version) {
+ public Feature asFeature() {
+ if (owner == null) {
+ throw new IllegalStateException("No owner set for conditional");
+ }
+ String name = owner.getName();
+ String version = owner.getVersion();
String conditionName = name + "-condition-" + getConditionId().replaceAll("[^A-Za-z0-9 ]", "_");
org.apache.karaf.features.internal.model.Feature f = new org.apache.karaf.features.internal.model.Feature(conditionName, version);
f.getBundle().addAll(getBundle());
http://git-wip-us.apache.org/repos/asf/karaf/blob/eb4970d0/features/core/src/main/java/org/apache/karaf/features/internal/model/Feature.java
----------------------------------------------------------------------
diff --git a/features/core/src/main/java/org/apache/karaf/features/internal/model/Feature.java b/features/core/src/main/java/org/apache/karaf/features/internal/model/Feature.java
index 64ad376..90c9530 100644
--- a/features/core/src/main/java/org/apache/karaf/features/internal/model/Feature.java
+++ b/features/core/src/main/java/org/apache/karaf/features/internal/model/Feature.java
@@ -379,4 +379,11 @@ public class Feature extends Content implements org.apache.karaf.features.Featur
return this.library;
}
+ public void postUnmarshall() {
+ if (conditional != null) {
+ for (Conditional c : conditional) {
+ c.setOwner(this);
+ }
+ }
+ }
}
http://git-wip-us.apache.org/repos/asf/karaf/blob/eb4970d0/features/core/src/main/java/org/apache/karaf/features/internal/model/Features.java
----------------------------------------------------------------------
diff --git a/features/core/src/main/java/org/apache/karaf/features/internal/model/Features.java b/features/core/src/main/java/org/apache/karaf/features/internal/model/Features.java
index ff2e3dc..66d8d2f 100644
--- a/features/core/src/main/java/org/apache/karaf/features/internal/model/Features.java
+++ b/features/core/src/main/java/org/apache/karaf/features/internal/model/Features.java
@@ -136,4 +136,11 @@ public class Features {
this.name = value;
}
+ public void postUnmarshall() {
+ if (feature != null) {
+ for (Feature f : feature) {
+ f.postUnmarshall();
+ }
+ }
+ }
}
http://git-wip-us.apache.org/repos/asf/karaf/blob/eb4970d0/features/core/src/main/java/org/apache/karaf/features/internal/model/JaxbUtil.java
----------------------------------------------------------------------
diff --git a/features/core/src/main/java/org/apache/karaf/features/internal/model/JaxbUtil.java b/features/core/src/main/java/org/apache/karaf/features/internal/model/JaxbUtil.java
index e5ca6c0..a42c734 100644
--- a/features/core/src/main/java/org/apache/karaf/features/internal/model/JaxbUtil.java
+++ b/features/core/src/main/java/org/apache/karaf/features/internal/model/JaxbUtil.java
@@ -92,19 +92,18 @@ public final class JaxbUtil {
* @return a Features read from the input stream
*/
public static Features unmarshal(String uri, boolean validate) {
- if (validate) {
- return unmarshalValidate(uri, null);
- } else {
- return unmarshalNoValidate(uri, null);
- }
+ return unmarshal(uri, null, validate);
}
public static Features unmarshal(String uri, InputStream stream, boolean validate) {
+ Features features;
if (validate) {
- return unmarshalValidate(uri, stream);
+ features = unmarshalValidate(uri, stream);
} else {
- return unmarshalNoValidate(uri, stream);
+ features = unmarshalNoValidate(uri, stream);
}
+ features.postUnmarshall();
+ return features;
}
private static Features unmarshalValidate(String uri, InputStream stream) {
http://git-wip-us.apache.org/repos/asf/karaf/blob/eb4970d0/features/core/src/main/java/org/apache/karaf/features/internal/region/Subsystem.java
----------------------------------------------------------------------
diff --git a/features/core/src/main/java/org/apache/karaf/features/internal/region/Subsystem.java b/features/core/src/main/java/org/apache/karaf/features/internal/region/Subsystem.java
index 18a8f14..71a22d3 100644
--- a/features/core/src/main/java/org/apache/karaf/features/internal/region/Subsystem.java
+++ b/features/core/src/main/java/org/apache/karaf/features/internal/region/Subsystem.java
@@ -275,7 +275,7 @@ public class Subsystem extends ResourceImpl {
ss.requireFeature(dep.getName(), dep.getVersion(), mandatory && !dep.isDependency());
}
for (Conditional cond : feature.getConditional()) {
- Feature fcond = cond.asFeature(feature.getName(), feature.getVersion());
+ Feature fcond = cond.asFeature();
String ssName = this.name + "#" + (fcond.hasVersion() ? fcond.getName() + "-" + fcond.getVersion() : fcond.getName());
Subsystem fs = getChild(ssName);
if (fs == null) {
http://git-wip-us.apache.org/repos/asf/karaf/blob/eb4970d0/features/core/src/main/java/org/apache/karaf/features/internal/resolver/FeatureResource.java
----------------------------------------------------------------------
diff --git a/features/core/src/main/java/org/apache/karaf/features/internal/resolver/FeatureResource.java b/features/core/src/main/java/org/apache/karaf/features/internal/resolver/FeatureResource.java
index d7c7cf8..6e1a164 100644
--- a/features/core/src/main/java/org/apache/karaf/features/internal/resolver/FeatureResource.java
+++ b/features/core/src/main/java/org/apache/karaf/features/internal/resolver/FeatureResource.java
@@ -46,7 +46,7 @@ public final class FeatureResource extends ResourceImpl {
}
public static FeatureResource build(Feature feature, Conditional conditional, String featureRange, Map<String, ? extends Resource> locToRes) throws BundleException {
- Feature fcond = conditional.asFeature(feature.getName(), feature.getVersion());
+ Feature fcond = conditional.asFeature();
FeatureResource resource = build(fcond, featureRange, locToRes);
for (String cond : conditional.getCondition()) {
if (cond.startsWith("req:")) {
http://git-wip-us.apache.org/repos/asf/karaf/blob/eb4970d0/features/core/src/main/java/org/apache/karaf/features/internal/service/Deployer.java
----------------------------------------------------------------------
diff --git a/features/core/src/main/java/org/apache/karaf/features/internal/service/Deployer.java b/features/core/src/main/java/org/apache/karaf/features/internal/service/Deployer.java
index e759e56..37c276c 100644
--- a/features/core/src/main/java/org/apache/karaf/features/internal/service/Deployer.java
+++ b/features/core/src/main/java/org/apache/karaf/features/internal/service/Deployer.java
@@ -767,7 +767,7 @@ public class Deployer {
callback.installFeature(feature);
}
for (Conditional cond : feature.getConditional()) {
- Feature condFeature = cond.asFeature(feature.getName(), feature.getVersion());
+ Feature condFeature = cond.asFeature();
if (featureIds.contains(condFeature.getId())) {
callback.installFeature(condFeature);
}