You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@sling.apache.org by ro...@apache.org on 2017/11/07 09:14:54 UTC

[sling-maven-launchpad-plugin] 11/49: SLING-1454 - adding ability to read filtered sling properties from a file

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

rombert pushed a commit to annotated tag maven-launchpad-plugin-2.0.10
in repository https://gitbox.apache.org/repos/asf/sling-maven-launchpad-plugin.git

commit b3f5ef24afbe782e19cb865985b2147c23ccf468
Author: Justin Edelson <ju...@apache.org>
AuthorDate: Sat Mar 20 02:22:33 2010 +0000

    SLING-1454 - adding ability to read filtered sling properties from a file
    
    git-svn-id: https://svn.apache.org/repos/asf/sling/trunk/maven/maven-launchpad-plugin@925532 13f79535-47bb-0310-9956-ffa450edef68
---
 pom.xml                                            |  5 +++
 .../apache/sling/maven/projectsupport/RunMojo.java | 46 ++++++++++++++++++++++
 2 files changed, 51 insertions(+)

diff --git a/pom.xml b/pom.xml
index db71dd5..2b88de5 100644
--- a/pom.xml
+++ b/pom.xml
@@ -143,5 +143,10 @@
         	<artifactId>org.osgi.core</artifactId>
         	<version>4.2.0</version>
         </dependency>
+        <dependency>
+        	<groupId>org.apache.maven.shared</groupId>
+        	<artifactId>maven-filtering</artifactId>
+        	<version>1.0-beta-4</version>
+        </dependency>
     </dependencies>
 </project>
diff --git a/src/main/java/org/apache/sling/maven/projectsupport/RunMojo.java b/src/main/java/org/apache/sling/maven/projectsupport/RunMojo.java
index 4d52086..061ecd8 100644
--- a/src/main/java/org/apache/sling/maven/projectsupport/RunMojo.java
+++ b/src/main/java/org/apache/sling/maven/projectsupport/RunMojo.java
@@ -19,10 +19,12 @@ package org.apache.sling.maven.projectsupport;
 import static org.apache.felix.framework.util.FelixConstants.*;
 
 import java.io.File;
+import java.io.IOException;
 import java.net.MalformedURLException;
 import java.net.URL;
 import java.util.ArrayList;
 import java.util.Collections;
+import java.util.Enumeration;
 import java.util.HashMap;
 import java.util.Iterator;
 import java.util.List;
@@ -31,8 +33,12 @@ import java.util.Properties;
 
 import org.apache.felix.framework.Logger;
 import org.apache.maven.artifact.Artifact;
+import org.apache.maven.execution.MavenSession;
 import org.apache.maven.plugin.MojoExecutionException;
 import org.apache.maven.plugin.MojoFailureException;
+import org.apache.maven.shared.filtering.MavenFileFilter;
+import org.apache.maven.shared.filtering.MavenFilteringException;
+import org.apache.maven.shared.filtering.PropertyUtils;
 import org.apache.sling.launchpad.base.impl.ResourceProvider;
 import org.apache.sling.launchpad.base.impl.Sling;
 import org.apache.sling.launchpad.base.shared.Notifiable;
@@ -62,6 +68,7 @@ public class RunMojo extends AbstractBundleListMojo implements Notifiable {
      * listens
      */
     private static final String PROP_PORT = "org.osgi.service.http.port";
+
     /** Return the log level code for the string */
     private static int toLogLevelInt(String level, int defaultLevel) {
         for (int i = 0; i < logLevels.length; i++) {
@@ -91,6 +98,24 @@ public class RunMojo extends AbstractBundleListMojo implements Notifiable {
      */
     private String logLevel;
 
+    /**
+     * @parameter expression="${propertiesFile}"
+     *            default-value="src/test/config/sling.properties"
+     */
+    private File propertiesFile;
+
+    /**
+     * @component
+     */
+    private MavenFileFilter mavenFileFilter;
+
+    /**
+     * @parameter expression="${session}"
+     * @required
+     * @readonly
+     */
+    private MavenSession mavenSession;
+
     private ResourceProvider resourceProvider = new ResourceProvider() {
 
         @Override
@@ -234,6 +259,27 @@ public class RunMojo extends AbstractBundleListMojo implements Notifiable {
             Logger logger = new Logger();
             logger.setLogLevel(Logger.LOG_ERROR);
 
+            if (propertiesFile.exists()) {
+                File tmp = null;
+                try {
+                    tmp = File.createTempFile("sling", "props");
+                    mavenFileFilter.copyFile(propertiesFile, tmp, true, project, null, true, System
+                            .getProperty("file.encoding"), mavenSession);
+                    Properties loadedProps = PropertyUtils.loadPropertyFile(tmp, null);
+                    for (Object key : loadedProps.keySet()) {
+                        props.put((String) key, (String) loadedProps.get(key));
+                    }
+                } catch (IOException e) {
+                    throw new MojoExecutionException("Unable to create filtered properties file", e);
+                } catch (MavenFilteringException e) {
+                    throw new MojoExecutionException("Unable to create filtered properties file", e);
+                } finally {
+                    if (tmp != null) {
+                        tmp.delete();
+                    }
+                }
+            }
+
             // creating the instance launches the framework and we are done here
             sling = new Sling(this, logger, resourceProvider, props);
 

-- 
To stop receiving notification emails like this one, please contact
"commits@sling.apache.org" <co...@sling.apache.org>.