You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@maven.apache.org by mr...@apache.org on 2008/11/13 12:36:21 UTC

svn commit: r713707 - /maven/sandbox/branches/maven/maven-2.0.9-db/maven-settings/src/main/java/org/apache/maven/settings/DefaultMavenSettingsBuilder.java

Author: mrdon
Date: Thu Nov 13 03:36:20 2008
New Revision: 713707

URL: http://svn.apache.org/viewvc?rev=713707&view=rev
Log:
Adds support for settings.properties alongside settings.xml
MNG-3837

Modified:
    maven/sandbox/branches/maven/maven-2.0.9-db/maven-settings/src/main/java/org/apache/maven/settings/DefaultMavenSettingsBuilder.java

Modified: maven/sandbox/branches/maven/maven-2.0.9-db/maven-settings/src/main/java/org/apache/maven/settings/DefaultMavenSettingsBuilder.java
URL: http://svn.apache.org/viewvc/maven/sandbox/branches/maven/maven-2.0.9-db/maven-settings/src/main/java/org/apache/maven/settings/DefaultMavenSettingsBuilder.java?rev=713707&r1=713706&r2=713707&view=diff
==============================================================================
--- maven/sandbox/branches/maven/maven-2.0.9-db/maven-settings/src/main/java/org/apache/maven/settings/DefaultMavenSettingsBuilder.java (original)
+++ maven/sandbox/branches/maven/maven-2.0.9-db/maven-settings/src/main/java/org/apache/maven/settings/DefaultMavenSettingsBuilder.java Thu Nov 13 03:36:20 2008
@@ -26,16 +26,19 @@
 import org.codehaus.plexus.util.ReaderFactory;
 import org.codehaus.plexus.util.StringUtils;
 import org.codehaus.plexus.util.interpolation.EnvarBasedValueSource;
+import org.codehaus.plexus.util.interpolation.PropertiesBasedValueSource;
 import org.codehaus.plexus.util.interpolation.RegexBasedInterpolator;
 import org.codehaus.plexus.util.xml.pull.XmlPullParserException;
 
 import java.io.File;
+import java.io.FileInputStream;
 import java.io.IOException;
 import java.io.Reader;
 import java.io.StringReader;
 import java.io.StringWriter;
 import java.util.Iterator;
 import java.util.List;
+import java.util.Properties;
 
 /**
  * @author jdcasey
@@ -104,6 +107,8 @@
                 try
                 {
                     RegexBasedInterpolator interpolator = new RegexBasedInterpolator();
+            
+                    interpolator.addValueSource( new PropertiesBasedValueSource(loadSettingsProperties(settingsFile.getParentFile())));
                     interpolator.addValueSource( new EnvarBasedValueSource() );
 
                     rawInput = interpolator.interpolate( rawInput, "settings" );
@@ -136,6 +141,32 @@
         return settings;
     }
 
+    private Properties loadSettingsProperties(File parent)
+    {
+        Properties props = new Properties();
+        File settings = new File(parent, "settings.properties");
+        if (settings.exists())
+        {
+            getLogger().debug("Loading settings properties from "+settings.getAbsolutePath());
+            FileInputStream fin = null;
+            try
+            {
+                fin = new FileInputStream(settings);
+                props.load(fin);
+            }
+            catch (IOException ex)
+            {
+                getLogger().warn("Error reading settings.properties: "+ex.getMessage());
+                getLogger().debug("Exception when loading settings properties", ex);
+            }
+            finally
+            {
+                IOUtil.close(fin);
+            }
+        }
+        return props;
+    }
+
     public Settings buildSettings()
         throws IOException, XmlPullParserException
     {