You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@sling.apache.org by da...@apache.org on 2019/01/18 16:42:54 UTC

[sling-slingfeature-maven-plugin] branch master updated: SLING-8221 Feature model does not override from command line a property if set in pom.xml

This is an automated email from the ASF dual-hosted git repository.

davidb pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/sling-slingfeature-maven-plugin.git


The following commit(s) were added to refs/heads/master by this push:
     new eb1ad3d  SLING-8221 Feature model does not override from command line a property if set in pom.xml
eb1ad3d is described below

commit eb1ad3dc0381529552ce9fb7babbb1bf78577fa0
Author: David Bosschaert <bo...@adobe.com>
AuthorDate: Fri Jan 18 16:42:13 2019 +0000

    SLING-8221 Feature model does not override from command line a property if set in pom.xml
---
 .../apache/sling/feature/maven/Substitution.java   |  7 +++--
 .../sling/feature/maven/SubstitutionTest.java      | 36 ++++++++++++++++++++--
 2 files changed, 37 insertions(+), 6 deletions(-)

diff --git a/src/main/java/org/apache/sling/feature/maven/Substitution.java b/src/main/java/org/apache/sling/feature/maven/Substitution.java
index 6a7b46c..300b866 100644
--- a/src/main/java/org/apache/sling/feature/maven/Substitution.java
+++ b/src/main/java/org/apache/sling/feature/maven/Substitution.java
@@ -16,9 +16,6 @@
  */
 package org.apache.sling.feature.maven;
 
-import java.util.Collections;
-import java.util.List;
-
 import org.apache.maven.artifact.versioning.DefaultArtifactVersion;
 import org.apache.maven.project.MavenProject;
 import org.apache.maven.shared.osgi.DefaultMaven2OsgiConverter;
@@ -31,10 +28,14 @@ import org.codehaus.plexus.interpolation.PropertiesBasedValueSource;
 import org.codehaus.plexus.interpolation.RecursionInterceptor;
 import org.codehaus.plexus.interpolation.RegexBasedInterpolator;
 
+import java.util.Collections;
+import java.util.List;
+
 public class Substitution {
     public static String replaceMavenVars(MavenProject project, String s) {
         RegexBasedInterpolator interpolator = new RegexBasedInterpolator();
         project.getProperties().setProperty("project.osgiVersion", getOSGiVersion(project.getVersion()));
+        interpolator.addValueSource(new PropertiesBasedValueSource(System.getProperties()));
         interpolator.addValueSource(new PropertiesBasedValueSource(project.getProperties()));
 
         List<String> synonymPrefixes = Collections.singletonList("project.");
diff --git a/src/test/java/org/apache/sling/feature/maven/SubstitutionTest.java b/src/test/java/org/apache/sling/feature/maven/SubstitutionTest.java
index 244a7d5..6602dff 100644
--- a/src/test/java/org/apache/sling/feature/maven/SubstitutionTest.java
+++ b/src/test/java/org/apache/sling/feature/maven/SubstitutionTest.java
@@ -16,13 +16,43 @@
  */
 package org.apache.sling.feature.maven;
 
-import static org.junit.Assert.assertEquals;
-
+import org.apache.maven.project.MavenProject;
 import org.junit.Test;
 
+import java.util.Properties;
+
+import static org.junit.Assert.assertEquals;
+
 public class SubstitutionTest {
+    @Test
+    public void testReplaceMavenVars() {
+        MavenProject proj = new MavenProject();
+        Properties p = proj.getProperties();
+        p.put("test", "foo");
+        assertEquals("hellofoogoodbyefoo", Substitution.replaceMavenVars(proj, "hello${test}goodbye${test}"));
+    }
+
+    @Test
+    public void testReplaceMavenVarsWithSystemProperties() {
+        Properties storedProps = new Properties();
+        storedProps.putAll(System.getProperties());
+
+        try {
+            MavenProject proj = new MavenProject();
+            Properties p = proj.getProperties();
+            p.put("test", "foo");
+
+            System.setProperty("test", "bar");
+
+            assertEquals("hellobargoodbyebar", Substitution.replaceMavenVars(proj, "hello${test}goodbye${test}"));
+        } finally {
+            // Restore the system properties
+            System.setProperties(storedProps);
+        }
+    }
 
-    @Test public void testOSGiVersion() {
+    @Test
+    public void testOSGiVersion() {
     	assertEquals("1.2.3", Substitution.getOSGiVersion("1.2.3"));
     	assertEquals("1.2.0.SNAPSHOT", Substitution.getOSGiVersion("1.2-SNAPSHOT"));
     	assertEquals("4.5.6.SNAPSHOT", Substitution.getOSGiVersion("4.5.6-SNAPSHOT"));