You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@maven.apache.org by jd...@apache.org on 2007/02/24 01:44:30 UTC
svn commit: r511172 - in /maven/components/trunk:
maven-embedder/src/main/java/org/apache/maven/embedder/
maven-embedder/src/test/java/org/apache/maven/embedder/ maven-settings/
maven-settings/src/main/java/org/apache/maven/settings/ maven-settings/src...
Author: jdcasey
Date: Fri Feb 23 16:44:29 2007
New Revision: 511172
URL: http://svn.apache.org/viewvc?view=rev&rev=511172
Log:
Adding SettingsBuilderAdvice, to enable skipping default locations for settings files. Also, removing the settings cache, to enable call-by-call synchronization of settings between Maven embedder instances that share the same settings files. Next step is to refresh settings per-call to the embedder.
Added:
maven/components/trunk/maven-settings/src/main/java/org/apache/maven/settings/SettingsBuilderAdvice.java (with props)
Removed:
maven/components/trunk/maven-settings/src/main/java/org/apache/maven/settings/cache/
Modified:
maven/components/trunk/maven-embedder/src/main/java/org/apache/maven/embedder/DefaultMavenEmbedderConfiguration.java
maven/components/trunk/maven-embedder/src/main/java/org/apache/maven/embedder/MavenEmbedder.java
maven/components/trunk/maven-embedder/src/main/java/org/apache/maven/embedder/MavenEmbedderConfiguration.java
maven/components/trunk/maven-embedder/src/test/java/org/apache/maven/embedder/MavenEmbedderTest.java
maven/components/trunk/maven-settings/pom.xml
maven/components/trunk/maven-settings/src/main/java/org/apache/maven/settings/DefaultMavenSettingsBuilder.java
maven/components/trunk/maven-settings/src/main/java/org/apache/maven/settings/MavenSettingsBuilder.java
maven/components/trunk/maven-settings/src/main/java/org/apache/maven/settings/RuntimeInfo.java
maven/components/trunk/maven-settings/src/main/java/org/apache/maven/settings/SettingsUtils.java
maven/components/trunk/maven-settings/src/main/resources/META-INF/plexus/components.xml
maven/components/trunk/maven-tools/src/main/java/org/apache/maven/DefaultMavenTools.java
maven/components/trunk/maven-tools/src/main/java/org/apache/maven/MavenTools.java
Modified: maven/components/trunk/maven-embedder/src/main/java/org/apache/maven/embedder/DefaultMavenEmbedderConfiguration.java
URL: http://svn.apache.org/viewvc/maven/components/trunk/maven-embedder/src/main/java/org/apache/maven/embedder/DefaultMavenEmbedderConfiguration.java?view=diff&rev=511172&r1=511171&r2=511172
==============================================================================
--- maven/components/trunk/maven-embedder/src/main/java/org/apache/maven/embedder/DefaultMavenEmbedderConfiguration.java (original)
+++ maven/components/trunk/maven-embedder/src/main/java/org/apache/maven/embedder/DefaultMavenEmbedderConfiguration.java Fri Feb 23 16:44:29 2007
@@ -15,15 +15,15 @@
* limitations under the License.
*/
+import org.apache.maven.settings.SettingsBuilderAdvice;
+import org.codehaus.plexus.classworlds.ClassWorld;
+
import java.io.File;
import java.net.URL;
import java.util.ArrayList;
import java.util.List;
import java.util.Properties;
-import org.apache.maven.settings.Settings;
-import org.codehaus.plexus.classworlds.ClassWorld;
-
/**
* Default implementation of MavenEmbedderConfiguration intefrace.
*
@@ -36,8 +36,6 @@
private List actives;
- private Settings settings;
-
private File userSettings;
private File globalSettings;
@@ -53,6 +51,8 @@
private ClassWorld classWorld;
+ private SettingsBuilderAdvice advice;
+
/** Creates a new instance of DefaultMavenEmbedderConfiguration */
public DefaultMavenEmbedderConfiguration()
{
@@ -180,5 +180,15 @@
{
this.classWorld = new ClassWorld( "plexus.core", loader );
return this;
+ }
+
+ public SettingsBuilderAdvice getSettingsBuilderAdvice()
+ {
+ return advice;
+ }
+
+ public void setSettingsBuilderAdvice( SettingsBuilderAdvice advice )
+ {
+ this.advice = advice;
}
}
Modified: maven/components/trunk/maven-embedder/src/main/java/org/apache/maven/embedder/MavenEmbedder.java
URL: http://svn.apache.org/viewvc/maven/components/trunk/maven-embedder/src/main/java/org/apache/maven/embedder/MavenEmbedder.java?view=diff&rev=511172&r1=511171&r2=511172
==============================================================================
--- maven/components/trunk/maven-embedder/src/main/java/org/apache/maven/embedder/MavenEmbedder.java (original)
+++ maven/components/trunk/maven-embedder/src/main/java/org/apache/maven/embedder/MavenEmbedder.java Fri Feb 23 16:44:29 2007
@@ -39,9 +39,13 @@
import org.apache.maven.execution.MavenExecutionResult;
import org.apache.maven.lifecycle.LifecycleExecutor;
import org.apache.maven.model.Model;
+import org.apache.maven.model.Plugin;
import org.apache.maven.model.io.jdom.MavenJDOMWriter;
import org.apache.maven.model.io.xpp3.MavenXpp3Reader;
import org.apache.maven.plugin.InvalidPluginException;
+import org.apache.maven.plugin.PluginManager;
+import org.apache.maven.plugin.PluginManagerException;
+import org.apache.maven.plugin.PluginNotFoundException;
import org.apache.maven.plugin.descriptor.PluginDescriptorBuilder;
import org.apache.maven.plugin.version.PluginVersionNotFoundException;
import org.apache.maven.plugin.version.PluginVersionResolutionException;
@@ -66,12 +70,13 @@
import org.codehaus.plexus.configuration.PlexusConfiguration;
import org.codehaus.plexus.configuration.PlexusConfigurationException;
import org.codehaus.plexus.logging.LoggerManager;
+import org.codehaus.plexus.util.IOUtil;
import org.codehaus.plexus.util.xml.pull.XmlPullParserException;
import java.io.File;
import java.io.FileReader;
+import java.io.FileWriter;
import java.io.IOException;
-import java.io.Reader;
import java.io.Writer;
import java.net.URL;
import java.util.ArrayList;
@@ -81,11 +86,6 @@
import java.util.List;
import java.util.Map;
-import org.apache.maven.model.Plugin;
-import org.apache.maven.plugin.PluginManager;
-import org.apache.maven.plugin.PluginManagerException;
-import org.apache.maven.plugin.PluginNotFoundException;
-
/**
* Class intended to be used by clients who wish to embed Maven into their applications
*
@@ -243,20 +243,23 @@
// ----------------------------------------------------------------------
// Settings
// ----------------------------------------------------------------------
-
- public static Settings readSettingsFromFile( Reader reader )
+
+ public static Settings readSettings( File settingsFile )
throws SettingsConfigurationException, MavenEmbedderException, IOException
{
- return readSettingsFromFile( reader, null );
+ return readSettings( settingsFile, null );
}
- public static Settings readSettingsFromFile( Reader reader, MavenEmbedderLogger logger )
+ public static Settings readSettings( File settingsFile, MavenEmbedderLogger logger )
throws SettingsConfigurationException, MavenEmbedderException, IOException
{
DefaultPlexusContainer container = null;
+ FileReader reader = null;
try
{
+ reader = new FileReader( settingsFile );
+
try
{
container = new DefaultPlexusContainer();
@@ -289,6 +292,8 @@
}
finally
{
+ IOUtil.close( reader );
+
if ( container != null )
{
container.dispose();
@@ -296,19 +301,22 @@
}
}
- public static void writeSettings( Writer writer, Settings settings )
+ public static void writeSettings( File settingsFile, Settings settings )
throws IOException, MavenEmbedderException
{
- writeSettings( writer, settings, null );
+ writeSettings( settingsFile, settings, null );
}
- public static void writeSettings( Writer writer, Settings settings, MavenEmbedderLogger logger )
+ public static void writeSettings( File settingsFile, Settings settings, MavenEmbedderLogger logger )
throws IOException, MavenEmbedderException
{
DefaultPlexusContainer container = null;
+ FileWriter writer = null;
try
{
+ writer = new FileWriter( settingsFile );
+
try
{
container = new DefaultPlexusContainer();
@@ -339,6 +347,8 @@
}
finally
{
+ IOUtil.close( writer );
+
if ( container != null )
{
container.dispose();
@@ -699,7 +709,8 @@
artifactHandlerManager = (ArtifactHandlerManager) container.lookup( ArtifactHandlerManager.ROLE );
// These three things can be cached for a single session of the embedder
- settings = mavenTools.buildSettings( req.getUserSettingsFile(), req.getGlobalSettingsFile(), false );
+ settings = mavenTools.buildSettings( req.getUserSettingsFile(), req.getGlobalSettingsFile(), false,
+ req.getSettingsBuilderAdvice() );
localRepository = createLocalRepository( settings );
Modified: maven/components/trunk/maven-embedder/src/main/java/org/apache/maven/embedder/MavenEmbedderConfiguration.java
URL: http://svn.apache.org/viewvc/maven/components/trunk/maven-embedder/src/main/java/org/apache/maven/embedder/MavenEmbedderConfiguration.java?view=diff&rev=511172&r1=511171&r2=511172
==============================================================================
--- maven/components/trunk/maven-embedder/src/main/java/org/apache/maven/embedder/MavenEmbedderConfiguration.java (original)
+++ maven/components/trunk/maven-embedder/src/main/java/org/apache/maven/embedder/MavenEmbedderConfiguration.java Fri Feb 23 16:44:29 2007
@@ -20,6 +20,7 @@
import java.util.List;
import java.util.Properties;
+import org.apache.maven.settings.SettingsBuilderAdvice;
import org.codehaus.plexus.classworlds.ClassWorld;
/**
@@ -84,13 +85,17 @@
List getExtensions();
- public MavenEmbedderConfiguration setMavenEmbedderLogger( MavenEmbedderLogger logger );
+ MavenEmbedderConfiguration setMavenEmbedderLogger( MavenEmbedderLogger logger );
- public MavenEmbedderLogger getMavenEmbedderLogger();
+ MavenEmbedderLogger getMavenEmbedderLogger();
- public ClassWorld getClassWorld();
+ ClassWorld getClassWorld();
- public MavenEmbedderConfiguration setClassWorld( ClassWorld classWorld );
+ MavenEmbedderConfiguration setClassWorld( ClassWorld classWorld );
- public MavenEmbedderConfiguration setClassLoader( ClassLoader loader );
+ MavenEmbedderConfiguration setClassLoader( ClassLoader loader );
+
+ SettingsBuilderAdvice getSettingsBuilderAdvice();
+
+ void setSettingsBuilderAdvice( SettingsBuilderAdvice advice );
}
Modified: maven/components/trunk/maven-embedder/src/test/java/org/apache/maven/embedder/MavenEmbedderTest.java
URL: http://svn.apache.org/viewvc/maven/components/trunk/maven-embedder/src/test/java/org/apache/maven/embedder/MavenEmbedderTest.java?view=diff&rev=511172&r1=511171&r2=511172
==============================================================================
--- maven/components/trunk/maven-embedder/src/test/java/org/apache/maven/embedder/MavenEmbedderTest.java (original)
+++ maven/components/trunk/maven-embedder/src/test/java/org/apache/maven/embedder/MavenEmbedderTest.java Fri Feb 23 16:44:29 2007
@@ -1,7 +1,6 @@
package org.apache.maven.embedder;
import org.apache.maven.SettingsConfigurationException;
-import org.apache.maven.artifact.Artifact;
import org.apache.maven.artifact.handler.ArtifactHandler;
import org.apache.maven.execution.DefaultMavenExecutionRequest;
import org.apache.maven.execution.MavenExecutionRequest;
@@ -240,7 +239,7 @@
assertEquals( 1, artifacts.size() );
- Artifact artifact = (Artifact) artifacts.iterator().next();
+ artifacts.iterator().next();
}
public void testProjectWithExtensionsReading()
@@ -317,19 +316,10 @@
IOUtil.close( writer );
}
- FileReader reader = null;
- try
- {
- reader = new FileReader( settingsFile );
- Settings result = MavenEmbedder.readSettingsFromFile( reader );
-
- assertEquals( localRepoPath, result.getLocalRepository() );
- assertTrue( result.isOffline() );
- }
- finally
- {
- IOUtil.close( reader );
- }
+ Settings result = MavenEmbedder.readSettings( settingsFile );
+
+ assertEquals( localRepoPath, result.getLocalRepository() );
+ assertTrue( result.isOffline() );
}
public void testReadSettings_shouldFailToValidate()
@@ -359,11 +349,9 @@
IOUtil.close( writer );
}
- FileReader reader = null;
try
{
- reader = new FileReader( settingsFile );
- Settings result = MavenEmbedder.readSettingsFromFile( reader );
+ MavenEmbedder.readSettings( settingsFile );
fail( "Settings should not pass validation when being read." );
}
@@ -372,10 +360,6 @@
String message = e.getMessage();
assertTrue( message.indexOf( "Failed to validate" ) > -1 );
}
- finally
- {
- IOUtil.close( reader );
- }
}
public void testWriteSettings()
@@ -391,16 +375,7 @@
File settingsFile = File.createTempFile( "embedder-test.settings.", "" );
settingsFile.deleteOnExit();
- FileWriter writer = null;
- try
- {
- writer = new FileWriter( settingsFile );
- MavenEmbedder.writeSettings( writer, s );
- }
- finally
- {
- IOUtil.close( writer );
- }
+ MavenEmbedder.writeSettings( settingsFile, s );
FileReader reader = null;
try
@@ -433,11 +408,9 @@
File settingsFile = File.createTempFile( "embedder-test.settings.", "" );
settingsFile.deleteOnExit();
- FileWriter writer = null;
try
{
- writer = new FileWriter( settingsFile );
- MavenEmbedder.writeSettings( writer, s );
+ MavenEmbedder.writeSettings( settingsFile, s );
fail( "Validation of settings should fail before settings are written." );
}
@@ -445,10 +418,6 @@
{
String message = e.getMessage();
assertTrue( message.indexOf( "Failed to validate" ) > -1 );
- }
- finally
- {
- IOUtil.close( writer );
}
}
Modified: maven/components/trunk/maven-settings/pom.xml
URL: http://svn.apache.org/viewvc/maven/components/trunk/maven-settings/pom.xml?view=diff&rev=511172&r1=511171&r2=511172
==============================================================================
--- maven/components/trunk/maven-settings/pom.xml (original)
+++ maven/components/trunk/maven-settings/pom.xml Fri Feb 23 16:44:29 2007
@@ -49,11 +49,6 @@
<dependencies>
<dependency>
<groupId>org.apache.maven</groupId>
- <artifactId>maven-build-context</artifactId>
- <version>2.1-SNAPSHOT</version>
- </dependency>
- <dependency>
- <groupId>org.apache.maven</groupId>
<artifactId>maven-model</artifactId>
<version>2.1-SNAPSHOT</version>
</dependency>
Modified: maven/components/trunk/maven-settings/src/main/java/org/apache/maven/settings/DefaultMavenSettingsBuilder.java
URL: http://svn.apache.org/viewvc/maven/components/trunk/maven-settings/src/main/java/org/apache/maven/settings/DefaultMavenSettingsBuilder.java?view=diff&rev=511172&r1=511171&r2=511172
==============================================================================
--- maven/components/trunk/maven-settings/src/main/java/org/apache/maven/settings/DefaultMavenSettingsBuilder.java (original)
+++ maven/components/trunk/maven-settings/src/main/java/org/apache/maven/settings/DefaultMavenSettingsBuilder.java Fri Feb 23 16:44:29 2007
@@ -16,14 +16,15 @@
* limitations under the License.
*/
-import org.apache.maven.context.BuildContextManager;
-import org.apache.maven.settings.cache.SettingsCache;
import org.apache.maven.settings.io.xpp3.SettingsXpp3Reader;
+import org.apache.maven.settings.validation.SettingsValidationResult;
+import org.apache.maven.settings.validation.SettingsValidator;
import org.codehaus.plexus.logging.AbstractLogEnabled;
import org.codehaus.plexus.util.IOUtil;
import org.codehaus.plexus.util.interpolation.EnvarBasedValueSource;
import org.codehaus.plexus.util.interpolation.RegexBasedInterpolator;
import org.codehaus.plexus.util.xml.pull.XmlPullParserException;
+
import java.io.File;
import java.io.FileReader;
import java.io.IOException;
@@ -31,8 +32,6 @@
import java.io.StringWriter;
import java.util.Iterator;
import java.util.List;
-import org.apache.maven.settings.validation.SettingsValidationResult;
-import org.apache.maven.settings.validation.SettingsValidator;
/**
* @author jdcasey
@@ -42,57 +41,62 @@
extends AbstractLogEnabled
implements MavenSettingsBuilder
{
-
+
private SettingsValidator validator;
-
- private BuildContextManager buildContextManager;
-
+
/**
* @since 2.1
*/
public Settings buildSettings( File userSettingsFile, File globalSettingsFile )
throws IOException, XmlPullParserException
{
- SettingsCache cache = SettingsCache.read( buildContextManager, userSettingsFile, globalSettingsFile );
-
- if ( cache != null )
- {
- return cache.getSettings();
- }
-
- // NOTE: We're allowing users to hang themselves here...if the global settings file is null,
- // the default location is NOT read.
- Settings globalSettings = readSettings( globalSettingsFile );
-
- if ( userSettingsFile == null )
+ return buildSettings( userSettingsFile, globalSettingsFile, new SettingsBuilderAdvice() );
+ }
+
+ /**
+ * @since 2.1
+ */
+ public Settings buildSettings( File userSettingsFile, File globalSettingsFile, SettingsBuilderAdvice advice )
+ throws IOException, XmlPullParserException
+ {
+ if ( advice.isDefaultUserLocationEnabled() && userSettingsFile == null )
{
userSettingsFile = DEFAULT_USER_SETTINGS_FILE;
}
- Settings userSettings = readSettings( userSettingsFile );
+ if ( advice.isDefaultGlobalLocationEnabled() && globalSettingsFile == null )
+ {
+ globalSettingsFile = DEFAULT_GLOBAL_SETTINGS_FILE;
+ }
+
+ if ( globalSettingsFile == null && userSettingsFile == null )
+ {
+ getLogger().debug(
+ "No settings files provided, and default locations are disabled for this request. Returning empty Settings instance." );
+ return new Settings();
+ }
+
+ Settings globalSettings = readSettings( globalSettingsFile );
if ( globalSettings == null )
{
globalSettings = new Settings();
}
+ Settings userSettings = readSettings( userSettingsFile );
+
if ( userSettings == null )
{
userSettings = new Settings();
-
- userSettings.setRuntimeInfo( new RuntimeInfo( userSettings ) );
}
-
+
validateSettings( globalSettings, globalSettingsFile );
-
+
validateSettings( userSettings, userSettingsFile );
SettingsUtils.merge( userSettings, globalSettings, TrackableBase.GLOBAL_LEVEL );
activateDefaultProfiles( userSettings );
-
- cache = new SettingsCache( userSettingsFile, globalSettingsFile, userSettings );
- cache.store( buildContextManager );
return userSettings;
}
@@ -115,7 +119,6 @@
return buildSettings( userSettingsFile, null );
}
-
private Settings readSettings( File settingsFile )
throws IOException, XmlPullParserException
{
@@ -148,7 +151,8 @@
catch ( Exception e )
{
getLogger().warn(
- "Failed to initialize environment variable resolver. Skipping environment substitution in settings." );
+ "Failed to initialize environment variable resolver. Skipping environment substitution in settings." );
+
getLogger().debug( "Failed to initialize envar resolver. Skipping resolution.", e );
}
@@ -160,10 +164,22 @@
RuntimeInfo rtInfo = new RuntimeInfo( settings );
- rtInfo.setFile( settingsFile );
+ rtInfo.addLocation( settingsFile.getAbsolutePath() );
settings.setRuntimeInfo( rtInfo );
}
+ catch ( XmlPullParserException e )
+ {
+ getLogger().error( "Failed to read settings from: " + settingsFile + ". Throwing XmlPullParserException..." );
+
+ throw e;
+ }
+ catch ( IOException e )
+ {
+ getLogger().error( "Failed to read settings from: " + settingsFile + ". Throwing IOException..." );
+
+ throw e;
+ }
finally
{
IOUtil.close( reader );
@@ -187,15 +203,16 @@
}
}
}
-
- private void validateSettings(Settings settings, File location) throws IOException {
+
+ private void validateSettings( Settings settings, File location )
+ throws IOException
+ {
SettingsValidationResult validationResult = validator.validate( settings );
if ( validationResult.getMessageCount() > 0 )
{
- throw new IOException( "Failed to validate Settings file at " + location +
- "\n" + validationResult.render("\n") );
+ throw new IOException( "Failed to validate Settings file at " + location + "\n" + validationResult.render( "\n" ) );
}
-
+
}
}
Modified: maven/components/trunk/maven-settings/src/main/java/org/apache/maven/settings/MavenSettingsBuilder.java
URL: http://svn.apache.org/viewvc/maven/components/trunk/maven-settings/src/main/java/org/apache/maven/settings/MavenSettingsBuilder.java?view=diff&rev=511172&r1=511171&r2=511172
==============================================================================
--- maven/components/trunk/maven-settings/src/main/java/org/apache/maven/settings/MavenSettingsBuilder.java (original)
+++ maven/components/trunk/maven-settings/src/main/java/org/apache/maven/settings/MavenSettingsBuilder.java Fri Feb 23 16:44:29 2007
@@ -51,4 +51,11 @@
*/
Settings buildSettings( File userSettingsFile, File globalSettingsFile )
throws IOException, XmlPullParserException;
+
+ /**
+ * @since 2.1
+ */
+ Settings buildSettings( File userSettingsPath, File globalSettingsPath, SettingsBuilderAdvice advice )
+ throws IOException, XmlPullParserException;
+
}
Modified: maven/components/trunk/maven-settings/src/main/java/org/apache/maven/settings/RuntimeInfo.java
URL: http://svn.apache.org/viewvc/maven/components/trunk/maven-settings/src/main/java/org/apache/maven/settings/RuntimeInfo.java?view=diff&rev=511172&r1=511171&r2=511172
==============================================================================
--- maven/components/trunk/maven-settings/src/main/java/org/apache/maven/settings/RuntimeInfo.java (original)
+++ maven/components/trunk/maven-settings/src/main/java/org/apache/maven/settings/RuntimeInfo.java Fri Feb 23 16:44:29 2007
@@ -1,7 +1,8 @@
package org.apache.maven.settings;
-import java.io.File;
+import java.util.ArrayList;
import java.util.HashMap;
+import java.util.List;
import java.util.Map;
/*
@@ -23,7 +24,7 @@
public class RuntimeInfo
{
- private File file;
+ private List locations = new ArrayList();
// using Boolean for 3VL (null for not-set, otherwise override with value)
private Boolean pluginUpdateForced;
@@ -49,14 +50,14 @@
this.settings = settings;
}
- public void setFile( File file )
+ public void addLocation( String path )
{
- this.file = file;
+ this.locations.add( path );
}
- public File getFile()
+ public List getLocations()
{
- return file;
+ return locations;
}
public void setPluginUpdateOverride( Boolean pluginUpdateForced )
@@ -126,5 +127,5 @@
{
return localRepositorySourceLevel;
}
-
+
}
Added: maven/components/trunk/maven-settings/src/main/java/org/apache/maven/settings/SettingsBuilderAdvice.java
URL: http://svn.apache.org/viewvc/maven/components/trunk/maven-settings/src/main/java/org/apache/maven/settings/SettingsBuilderAdvice.java?view=auto&rev=511172
==============================================================================
--- maven/components/trunk/maven-settings/src/main/java/org/apache/maven/settings/SettingsBuilderAdvice.java (added)
+++ maven/components/trunk/maven-settings/src/main/java/org/apache/maven/settings/SettingsBuilderAdvice.java Fri Feb 23 16:44:29 2007
@@ -0,0 +1,30 @@
+package org.apache.maven.settings;
+
+public class SettingsBuilderAdvice
+{
+
+ private boolean defaultUserLocationEnabled = true;
+
+ private boolean defaultGlobalLocationEnabled = true;
+
+ public boolean isDefaultGlobalLocationEnabled()
+ {
+ return defaultGlobalLocationEnabled;
+ }
+
+ public boolean isDefaultUserLocationEnabled()
+ {
+ return defaultUserLocationEnabled;
+ }
+
+ public void setDefaultGlobalLocationEnabled( boolean defaultGlobalLocationEnabled )
+ {
+ this.defaultGlobalLocationEnabled = defaultGlobalLocationEnabled;
+ }
+
+ public void setDefaultUserLocationEnabled( boolean defaultUserLocationEnabled )
+ {
+ this.defaultUserLocationEnabled = defaultUserLocationEnabled;
+ }
+
+}
Propchange: maven/components/trunk/maven-settings/src/main/java/org/apache/maven/settings/SettingsBuilderAdvice.java
------------------------------------------------------------------------------
svn:eol-style = native
Propchange: maven/components/trunk/maven-settings/src/main/java/org/apache/maven/settings/SettingsBuilderAdvice.java
------------------------------------------------------------------------------
svn:keywords = "Author Date Id Revision"
Modified: maven/components/trunk/maven-settings/src/main/java/org/apache/maven/settings/SettingsUtils.java
URL: http://svn.apache.org/viewvc/maven/components/trunk/maven-settings/src/main/java/org/apache/maven/settings/SettingsUtils.java?view=diff&rev=511172&r1=511171&r2=511172
==============================================================================
--- maven/components/trunk/maven-settings/src/main/java/org/apache/maven/settings/SettingsUtils.java (original)
+++ maven/components/trunk/maven-settings/src/main/java/org/apache/maven/settings/SettingsUtils.java Fri Feb 23 16:44:29 2007
@@ -60,10 +60,24 @@
{
dominantActiveProfiles.add( profileId );
- dominant.getRuntimeInfo().setActiveProfileSourceLevel( profileId, recessiveSourceLevel );
+ if ( dominant.getRuntimeInfo() != null )
+ {
+ dominant.getRuntimeInfo().setActiveProfileSourceLevel( profileId, recessiveSourceLevel );
+ }
}
}
}
+
+ if ( dominant.getRuntimeInfo() != null && recessive.getRuntimeInfo() != null )
+ {
+ List recessiveLocations = recessive.getRuntimeInfo().getLocations();
+ for ( Iterator it = recessiveLocations.iterator(); it.hasNext(); )
+ {
+ String path = (String) it.next();
+
+ dominant.getRuntimeInfo().addLocation( path );
+ }
+ }
List dominantPluginGroupIds = dominant.getPluginGroups();
List recessivePluginGroupIds = recessive.getPluginGroups();
@@ -84,7 +98,10 @@
{
dominantPluginGroupIds.add( pluginGroupId );
- dominant.getRuntimeInfo().setPluginGroupIdSourceLevel( pluginGroupId, recessiveSourceLevel );
+ if ( dominant.getRuntimeInfo() != null )
+ {
+ dominant.getRuntimeInfo().setPluginGroupIdSourceLevel( pluginGroupId, recessiveSourceLevel );
+ }
}
}
}
@@ -93,7 +110,10 @@
{
dominant.setLocalRepository( recessive.getLocalRepository() );
- dominant.getRuntimeInfo().setLocalRepositorySourceLevel( recessiveSourceLevel );
+ if ( dominant.getRuntimeInfo() != null )
+ {
+ dominant.getRuntimeInfo().setLocalRepositorySourceLevel( recessiveSourceLevel );
+ }
}
shallowMergeById( dominant.getMirrors(), recessive.getMirrors(), recessiveSourceLevel );
Modified: maven/components/trunk/maven-settings/src/main/resources/META-INF/plexus/components.xml
URL: http://svn.apache.org/viewvc/maven/components/trunk/maven-settings/src/main/resources/META-INF/plexus/components.xml?view=diff&rev=511172&r1=511171&r2=511172
==============================================================================
--- maven/components/trunk/maven-settings/src/main/resources/META-INF/plexus/components.xml (original)
+++ maven/components/trunk/maven-settings/src/main/resources/META-INF/plexus/components.xml Fri Feb 23 16:44:29 2007
@@ -13,10 +13,6 @@
<requirement>
<role>org.apache.maven.settings.validation.SettingsValidator</role>
</requirement>
- <requirement>
- <role>org.apache.maven.context.BuildContextManager</role>
- <role-hint>default</role-hint>
- </requirement>
</requirements>
<!--
<configuration>
Modified: maven/components/trunk/maven-tools/src/main/java/org/apache/maven/DefaultMavenTools.java
URL: http://svn.apache.org/viewvc/maven/components/trunk/maven-tools/src/main/java/org/apache/maven/DefaultMavenTools.java?view=diff&rev=511172&r1=511171&r2=511172
==============================================================================
--- maven/components/trunk/maven-tools/src/main/java/org/apache/maven/DefaultMavenTools.java (original)
+++ maven/components/trunk/maven-tools/src/main/java/org/apache/maven/DefaultMavenTools.java Fri Feb 23 16:44:29 2007
@@ -1,29 +1,30 @@
package org.apache.maven;
+import org.apache.maven.artifact.InvalidRepositoryException;
import org.apache.maven.artifact.repository.ArtifactRepository;
import org.apache.maven.artifact.repository.ArtifactRepositoryFactory;
import org.apache.maven.artifact.repository.ArtifactRepositoryPolicy;
import org.apache.maven.artifact.repository.DefaultArtifactRepository;
import org.apache.maven.artifact.repository.layout.ArtifactRepositoryLayout;
-import org.apache.maven.artifact.InvalidRepositoryException;
+import org.apache.maven.model.DeploymentRepository;
+import org.apache.maven.model.Repository;
+import org.apache.maven.model.RepositoryBase;
+import org.apache.maven.model.RepositoryPolicy;
import org.apache.maven.settings.MavenSettingsBuilder;
import org.apache.maven.settings.RuntimeInfo;
import org.apache.maven.settings.Settings;
+import org.apache.maven.settings.SettingsBuilderAdvice;
import org.apache.maven.settings.io.jdom.SettingsJDOMWriter;
import org.apache.maven.settings.io.xpp3.SettingsXpp3Reader;
import org.apache.maven.settings.validation.SettingsValidationResult;
import org.apache.maven.settings.validation.SettingsValidator;
-import org.apache.maven.model.Repository;
-import org.apache.maven.model.DeploymentRepository;
-import org.apache.maven.model.RepositoryPolicy;
-import org.apache.maven.model.RepositoryBase;
-import org.codehaus.plexus.util.xml.pull.XmlPullParserException;
-import org.codehaus.plexus.PlexusContainer;
import org.codehaus.plexus.PlexusConstants;
+import org.codehaus.plexus.PlexusContainer;
+import org.codehaus.plexus.component.repository.exception.ComponentLookupException;
import org.codehaus.plexus.context.Context;
import org.codehaus.plexus.context.ContextException;
import org.codehaus.plexus.personality.plexus.lifecycle.phase.Contextualizable;
-import org.codehaus.plexus.component.repository.exception.ComponentLookupException;
+import org.codehaus.plexus.util.xml.pull.XmlPullParserException;
import org.jdom.Document;
import org.jdom.Element;
import org.jdom.output.Format;
@@ -32,9 +33,9 @@
import java.io.IOException;
import java.io.Reader;
import java.io.Writer;
-import java.util.List;
import java.util.ArrayList;
import java.util.Iterator;
+import java.util.List;
/**
* @author Jason van Zyl
@@ -95,9 +96,21 @@
boolean pluginUpdateOverride )
throws SettingsConfigurationException
{
- Settings settings = buildSettings(userSettingsPath,
- globalSettingsPath,
- pluginUpdateOverride);
+ return buildSettings( userSettingsPath, globalSettingsPath, interactive, offline, usePluginRegistry,
+ pluginUpdateOverride, new SettingsBuilderAdvice() );
+ }
+
+ public Settings buildSettings( File userSettingsPath,
+ File globalSettingsPath,
+ boolean interactive,
+ boolean offline,
+ boolean usePluginRegistry,
+ boolean pluginUpdateOverride,
+ SettingsBuilderAdvice advice )
+ throws SettingsConfigurationException
+ {
+ Settings settings = buildSettings( userSettingsPath, globalSettingsPath, pluginUpdateOverride, advice );
+
if ( offline )
{
settings.setOffline( true );
@@ -115,11 +128,25 @@
boolean pluginUpdateOverride )
throws SettingsConfigurationException
{
+ return buildSettings( userSettingsPath, globalSettingsPath, pluginUpdateOverride, new SettingsBuilderAdvice() );
+ }
+
+ public Settings buildSettings( File userSettingsPath,
+ File globalSettingsPath,
+ boolean pluginUpdateOverride,
+ SettingsBuilderAdvice advice )
+ throws SettingsConfigurationException
+ {
Settings settings;
+
+ if ( advice == null )
+ {
+ advice = new SettingsBuilderAdvice();
+ }
try
{
- settings = settingsBuilder.buildSettings( userSettingsPath, globalSettingsPath );
+ settings = settingsBuilder.buildSettings( userSettingsPath, globalSettingsPath, advice );
}
catch ( IOException e )
{
Modified: maven/components/trunk/maven-tools/src/main/java/org/apache/maven/MavenTools.java
URL: http://svn.apache.org/viewvc/maven/components/trunk/maven-tools/src/main/java/org/apache/maven/MavenTools.java?view=diff&rev=511172&r1=511171&r2=511172
==============================================================================
--- maven/components/trunk/maven-tools/src/main/java/org/apache/maven/MavenTools.java (original)
+++ maven/components/trunk/maven-tools/src/main/java/org/apache/maven/MavenTools.java Fri Feb 23 16:44:29 2007
@@ -6,6 +6,7 @@
import org.apache.maven.model.Repository;
import org.apache.maven.settings.MavenSettingsBuilder;
import org.apache.maven.settings.Settings;
+import org.apache.maven.settings.SettingsBuilderAdvice;
import java.io.File;
import java.io.IOException;
@@ -60,9 +61,24 @@
boolean interactive,
boolean offline,
boolean usePluginRegistry,
+ boolean pluginUpdateOverride,
+ SettingsBuilderAdvice advice )
+ throws SettingsConfigurationException;
+
+ Settings buildSettings( File userSettingsPath,
+ File globalSettingsPath,
+ boolean interactive,
+ boolean offline,
+ boolean usePluginRegistry,
boolean pluginUpdateOverride )
throws SettingsConfigurationException;
+ Settings buildSettings( File userSettingsPath,
+ File globalSettingsPath,
+ boolean pluginUpdateOverride,
+ SettingsBuilderAdvice advice )
+ throws SettingsConfigurationException;
+
Settings buildSettings( File userSettingsPath,
File globalSettingsPath,
boolean pluginUpdateOverride )