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 {