You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@karaf.apache.org by jb...@apache.org on 2015/11/27 09:43:41 UTC
karaf git commit: To fix KARAF-4082 added code to manage conditional
statement in feature definition.
Repository: karaf
Updated Branches:
refs/heads/master 4cc3268f8 -> db7791d17
To fix KARAF-4082 added code to manage conditional statement in feature definition.
Project: http://git-wip-us.apache.org/repos/asf/karaf/repo
Commit: http://git-wip-us.apache.org/repos/asf/karaf/commit/db7791d1
Tree: http://git-wip-us.apache.org/repos/asf/karaf/tree/db7791d1
Diff: http://git-wip-us.apache.org/repos/asf/karaf/diff/db7791d1
Branch: refs/heads/master
Commit: db7791d176f32a34ef572fc0764d65c4441dfa09
Parents: 4cc3268
Author: ggerla <gi...@gmail.com>
Authored: Thu Nov 26 19:20:56 2015 +0100
Committer: ggerla <gi...@gmail.com>
Committed: Thu Nov 26 19:20:56 2015 +0100
----------------------------------------------------------------------
.../tooling/features/AbstractFeatureMojo.java | 15 +++++++++++++++
.../tooling/features/AddToRepositoryMojo.java | 18 ++++++++++++++++++
2 files changed, 33 insertions(+)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/karaf/blob/db7791d1/tooling/karaf-maven-plugin/src/main/java/org/apache/karaf/tooling/features/AbstractFeatureMojo.java
----------------------------------------------------------------------
diff --git a/tooling/karaf-maven-plugin/src/main/java/org/apache/karaf/tooling/features/AbstractFeatureMojo.java b/tooling/karaf-maven-plugin/src/main/java/org/apache/karaf/tooling/features/AbstractFeatureMojo.java
index d80fd1d..93d823d 100644
--- a/tooling/karaf-maven-plugin/src/main/java/org/apache/karaf/tooling/features/AbstractFeatureMojo.java
+++ b/tooling/karaf-maven-plugin/src/main/java/org/apache/karaf/tooling/features/AbstractFeatureMojo.java
@@ -27,6 +27,8 @@ import java.util.Set;
import org.apache.felix.utils.version.VersionRange;
import org.apache.felix.utils.version.VersionTable;
+import org.apache.karaf.features.BundleInfo;
+import org.apache.karaf.features.Conditional;
import org.apache.karaf.features.internal.model.Bundle;
import org.apache.karaf.features.internal.model.ConfigFile;
import org.apache.karaf.features.internal.model.Dependency;
@@ -70,6 +72,12 @@ public abstract class AbstractFeatureMojo extends MojoSupport {
protected boolean skipNonMavenProtocols = true;
/**
+ * Ignore the dependency flag on the bundles in the features XML
+ */
+ @Parameter(defaultValue = "false")
+ protected boolean ignoreDependencyFlag;
+
+ /**
* The start level exported when no explicit start level is set for a bundle
*/
@Parameter
@@ -241,6 +249,13 @@ public abstract class AbstractFeatureMojo extends MojoSupport {
for (Bundle bundle : feature.getBundle()) {
resolveArtifact(bundle.getLocation());
}
+ for (Conditional conditional : feature.getConditional()) {
+ for (BundleInfo bundle : conditional.getBundles()) {
+ if (ignoreDependencyFlag || (!ignoreDependencyFlag && !bundle.isDependency())) {
+ resolveArtifact(bundle.getLocation());
+ }
+ }
+ }
for (ConfigFile configfile : feature.getConfigfile()) {
resolveArtifact(configfile.getLocation());
}
http://git-wip-us.apache.org/repos/asf/karaf/blob/db7791d1/tooling/karaf-maven-plugin/src/main/java/org/apache/karaf/tooling/features/AddToRepositoryMojo.java
----------------------------------------------------------------------
diff --git a/tooling/karaf-maven-plugin/src/main/java/org/apache/karaf/tooling/features/AddToRepositoryMojo.java b/tooling/karaf-maven-plugin/src/main/java/org/apache/karaf/tooling/features/AddToRepositoryMojo.java
index cf59ce0..cee39bb 100644
--- a/tooling/karaf-maven-plugin/src/main/java/org/apache/karaf/tooling/features/AddToRepositoryMojo.java
+++ b/tooling/karaf-maven-plugin/src/main/java/org/apache/karaf/tooling/features/AddToRepositoryMojo.java
@@ -21,6 +21,8 @@ import java.io.File;
import java.util.List;
import java.util.Set;
+import org.apache.karaf.features.BundleInfo;
+import org.apache.karaf.features.Conditional;
import org.apache.karaf.features.internal.model.Bundle;
import org.apache.karaf.features.internal.model.ConfigFile;
import org.apache.karaf.features.internal.model.Feature;
@@ -61,6 +63,9 @@ public class AddToRepositoryMojo extends AbstractFeatureMojo {
for (Feature feature : featuresSet) {
copyBundlesToDestRepository(feature.getBundle());
+ for(Conditional conditional : feature.getConditional()) {
+ copyBundlesConditionalToDestRepository(conditional.getBundles());
+ }
copyConfigFilesToDestRepository(feature.getConfigfile());
}
@@ -68,6 +73,19 @@ public class AddToRepositoryMojo extends AbstractFeatureMojo {
}
+ private void copyBundlesConditionalToDestRepository(List<? extends BundleInfo> artifactRefsConditional) throws MojoExecutionException {
+ for (BundleInfo artifactRef : artifactRefsConditional) {
+ if (ignoreDependencyFlag || (!ignoreDependencyFlag && !artifactRef.isDependency())) {
+ Artifact artifact = resourceToArtifact(artifactRef.getLocation(), skipNonMavenProtocols);
+ // Avoid getting NPE on artifact.getFile in some cases
+ resolveArtifact(artifact, remoteRepos);
+ if (artifact != null) {
+ copy(artifact, repository);
+ }
+ }
+ }
+ }
+
private void copyBundlesToDestRepository(List<? extends Bundle> artifactRefs) throws MojoExecutionException {
for (Bundle artifactRef : artifactRefs) {
Artifact artifact = resourceToArtifact(artifactRef.getLocation(), skipNonMavenProtocols);