You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@maven.apache.org by jv...@apache.org on 2007/02/28 02:32:39 UTC
svn commit: r512554 - in
/maven/components/trunk/maven-embedder/src/main/java/org/apache/maven/embedder:
DefaultMavenEmbedderConfiguration.java MavenEmbedder.java
MavenEmbedderConfiguration.java
Author: jvanzyl
Date: Tue Feb 27 17:32:38 2007
New Revision: 512554
URL: http://svn.apache.org/viewvc?view=rev&rev=512554
Log:
o settings simplication
o removing old configuration, cleaned up and moved to another package
Removed:
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/MavenEmbedderConfiguration.java
Modified:
maven/components/trunk/maven-embedder/src/main/java/org/apache/maven/embedder/MavenEmbedder.java
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=512554&r1=512553&r2=512554
==============================================================================
--- 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 Tue Feb 27 17:32:38 2007
@@ -17,7 +17,6 @@
*/
import org.apache.maven.Maven;
-import org.apache.maven.MavenTools;
import org.apache.maven.SettingsConfigurationException;
import org.apache.maven.artifact.Artifact;
import org.apache.maven.artifact.factory.ArtifactFactory;
@@ -32,11 +31,16 @@
import org.apache.maven.artifact.resolver.ArtifactResolver;
import org.apache.maven.artifact.versioning.InvalidVersionSpecificationException;
import org.apache.maven.context.BuildContextManager;
+import org.apache.maven.embedder.configuration.Configuration;
+import org.apache.maven.embedder.configuration.ConfigurationValidationResult;
+import org.apache.maven.embedder.configuration.DefaultConfigurationValidationResult;
import org.apache.maven.embedder.execution.MavenExecutionRequestDefaultsPopulator;
import org.apache.maven.embedder.writer.WriterUtils;
import org.apache.maven.execution.DefaultMavenExecutionResult;
import org.apache.maven.execution.MavenExecutionRequest;
import org.apache.maven.execution.MavenExecutionResult;
+import org.apache.maven.execution.MavenSession;
+import org.apache.maven.execution.DefaultMavenExecutionRequest;
import org.apache.maven.lifecycle.LifecycleExecutor;
import org.apache.maven.model.Model;
import org.apache.maven.model.Plugin;
@@ -56,6 +60,11 @@
import org.apache.maven.project.ProjectBuildingException;
import org.apache.maven.settings.MavenSettingsBuilder;
import org.apache.maven.settings.Settings;
+import org.apache.maven.settings.io.jdom.SettingsJDOMWriter;
+import org.apache.maven.settings.io.xpp3.SettingsXpp3Reader;
+import org.apache.maven.settings.validation.DefaultSettingsValidator;
+import org.apache.maven.settings.validation.SettingsValidationResult;
+import org.apache.maven.settings.validation.SettingsValidator;
import org.codehaus.plexus.DefaultPlexusContainer;
import org.codehaus.plexus.MutablePlexusContainer;
import org.codehaus.plexus.PlexusContainerException;
@@ -70,15 +79,19 @@
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 org.codehaus.plexus.util.StringUtils;
+import org.jdom.Document;
+import org.jdom.Element;
+import org.jdom.output.Format;
import java.io.File;
+import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
-import java.io.Writer;
import java.io.Reader;
+import java.io.Writer;
import java.net.URL;
import java.util.ArrayList;
import java.util.Collections;
@@ -94,6 +107,24 @@
*/
public class MavenEmbedder
{
+ public static final String DEFAULT_LOCAL_REPO_ID = "local";
+
+ public static final String DEFAULT_LAYOUT_ID = "default";
+
+ public static final String userHome = System.getProperty( "user.home" );
+
+ public static final File userMavenConfigurationHome = new File( userHome, ".m2" );
+
+ public static final String mavenHome = System.getProperty( "maven.home" );
+
+ public static final File defaultUserLocalRepository = new File( userMavenConfigurationHome, "repository" );
+
+ public static final File DEFAULT_USER_SETTINGS_FILE = new File( userMavenConfigurationHome, "settings.xml" );
+
+ // ----------------------------------------------------------------------------
+ //
+ // ----------------------------------------------------------------------------
+
private MutablePlexusContainer container;
// ----------------------------------------------------------------------
@@ -122,7 +153,7 @@
private Maven maven;
- private MavenTools mavenTools;
+ private MavenSettingsBuilder settingsBuilder;
private MavenExecutionRequestDefaultsPopulator defaultsPopulator;
@@ -146,7 +177,7 @@
// User options
// ----------------------------------------------------------------------
- private MavenEmbedderConfiguration embedderRequest;
+ private Configuration configuration;
private BuildContextManager buildContextManager;
@@ -154,33 +185,7 @@
// Constructors
// ----------------------------------------------------------------------------
- public MavenEmbedder( ClassWorld classWorld )
- throws MavenEmbedderException
- {
- this( classWorld, null );
- }
-
- public MavenEmbedder( ClassWorld classWorld,
- MavenEmbedderLogger logger )
- throws MavenEmbedderException
- {
- this( new DefaultMavenEmbedderConfiguration().setClassWorld( classWorld ).setMavenEmbedderLogger( logger ) );
- }
-
- public MavenEmbedder( ClassLoader classLoader )
- throws MavenEmbedderException
- {
- this( classLoader, null );
- }
-
- public MavenEmbedder( ClassLoader classLoader,
- MavenEmbedderLogger logger )
- throws MavenEmbedderException
- {
- this( new ClassWorld( "plexus.core", classLoader ), logger );
- }
-
- public MavenEmbedder( MavenEmbedderConfiguration embedderConfiguration )
+ public MavenEmbedder( Configuration embedderConfiguration )
throws MavenEmbedderException
{
start( embedderConfiguration );
@@ -200,6 +205,11 @@
return localRepository;
}
+ public Settings getSettings()
+ {
+ return settings;
+ }
+
public MavenEmbedderLogger getLogger()
{
return logger;
@@ -245,132 +255,73 @@
}
// ----------------------------------------------------------------------
- // Project
- // ----------------------------------------------------------------------
-
- public MavenProject readProject( File mavenProject )
- throws ProjectBuildingException
- {
- return mavenProjectBuilder.build( mavenProject, localRepository, profileManager );
- }
-
- // ----------------------------------------------------------------------
// Settings
// ----------------------------------------------------------------------
- public static Settings readSettings( File settingsFile )
- throws SettingsConfigurationException, MavenEmbedderException, IOException
+ public static void writeSettings( File file,
+ Settings settings )
+ throws IOException
{
- return readSettings( settingsFile, null );
- }
+ Writer fileWriter = new FileWriter( file );
- public static Settings readSettings( File settingsFile,
- MavenEmbedderLogger logger )
- throws SettingsConfigurationException, MavenEmbedderException, IOException
- {
- DefaultPlexusContainer container = null;
+ SettingsValidator settingsValidator = new DefaultSettingsValidator();
- FileReader reader = null;
- try
+ SettingsValidationResult validationResult = settingsValidator.validate( settings );
+
+ if ( validationResult.getMessageCount() > 0 )
{
- reader = new FileReader( settingsFile );
+ throw new IOException( "Failed to validate Settings.\n" + validationResult.render( "\n" ) );
+ }
- try
- {
- container = new DefaultPlexusContainer();
- }
- catch ( PlexusContainerException e )
- {
- throw new MavenEmbedderException( "Error starting container.", e );
- }
+ Element root = new Element( "settings" );
- if ( logger != null )
- {
- MavenEmbedderLoggerManager loggerManager =
- new MavenEmbedderLoggerManager( new PlexusLoggerAdapter( logger ) );
+ Document doc = new Document( root );
- container.setLoggerManager( loggerManager );
- }
+ SettingsJDOMWriter writer = new SettingsJDOMWriter();
- MavenTools mavenTools;
- try
- {
- mavenTools = (MavenTools) container.lookup( MavenTools.ROLE, container.getContainerRealm() );
- }
- catch ( ComponentLookupException e )
- {
- throw new MavenEmbedderException( "Error retrieving Maven tools.", e );
- }
+ String encoding = settings.getModelEncoding() != null ? settings.getModelEncoding() : "UTF-8";
- return mavenTools.readSettings( reader );
+ Format format = Format.getPrettyFormat().setEncoding( encoding );
+
+ try
+ {
+ writer.write( settings, doc, fileWriter, format );
}
finally
{
- IOUtil.close( reader );
-
- if ( container != null )
- {
- container.dispose();
- }
+ fileWriter.close();
}
}
- public static void writeSettings( File settingsFile,
- Settings settings )
- throws IOException, MavenEmbedderException
+ public static Settings readSettings( File file )
+ throws IOException, SettingsConfigurationException
{
- writeSettings( settingsFile, settings, null );
- }
+ Reader fileReader = new FileReader( file );
- public static void writeSettings( File settingsFile,
- Settings settings,
- MavenEmbedderLogger logger )
- throws IOException, MavenEmbedderException
- {
- DefaultPlexusContainer container = null;
+ SettingsValidator settingsValidator = new DefaultSettingsValidator();
+
+ SettingsXpp3Reader reader = new SettingsXpp3Reader();
- FileWriter writer = null;
try
{
- writer = new FileWriter( settingsFile );
-
- try
- {
- container = new DefaultPlexusContainer();
- }
- catch ( PlexusContainerException e )
- {
- throw new MavenEmbedderException( "Error starting container.", e );
- }
-
- if ( logger != null )
- {
- MavenEmbedderLoggerManager loggerManager =
- new MavenEmbedderLoggerManager( new PlexusLoggerAdapter( logger ) );
+ Settings settings = reader.read( fileReader );
- container.setLoggerManager( loggerManager );
- }
+ SettingsValidationResult validationResult = settingsValidator.validate( settings );
- MavenTools mavenTools;
- try
+ if ( validationResult.getMessageCount() > 0 )
{
- mavenTools = (MavenTools) container.lookup( MavenTools.ROLE, container.getContainerRealm() );
- }
- catch ( ComponentLookupException e )
- {
- throw new MavenEmbedderException( "Error retrieving Maven tools.", e );
+ throw new IOException( "Failed to validate Settings.\n" + validationResult.render( "\n" ) );
}
- mavenTools.writeSettings( settings, writer );
+ return settings;
+ }
+ catch ( XmlPullParserException e )
+ {
+ throw new SettingsConfigurationException( "Failed to parse settings.", e );
}
finally
{
- IOUtil.close( writer );
-
- if ( container != null )
- {
- container.dispose();
- }
+ fileReader.close();
}
}
@@ -385,7 +336,14 @@
PluginNotFoundException, PluginVersionNotFoundException
{
PluginManager pluginManager = (PluginManager) container.lookup( PluginManager.ROLE );
- pluginManager.verifyPlugin( plugin, project, settings, localRepository );
+
+ MavenExecutionRequest request = new DefaultMavenExecutionRequest()
+ .setSettings( settings )
+ .setLocalRepository( localRepository );
+
+ MavenSession session = new MavenSession( container, request, null, null );
+
+ pluginManager.verifyPlugin( plugin, project, session );
}
/** protected for tests only.. */
@@ -423,6 +381,7 @@
if ( plugin.isExtensions() )
{
verifyPlugin( plugin, project );
+
map.putAll( getPluginExtensionComponents( plugin ) );
// shudder...
@@ -436,9 +395,19 @@
}
}
}
+
return map;
}
+ // ----------------------------------------------------------------------
+ // Project
+ // ----------------------------------------------------------------------
+
+ public MavenProject readProject( File mavenProject )
+ throws ProjectBuildingException
+ {
+ return mavenProjectBuilder.build( mavenProject, localRepository, profileManager );
+ }
/**
* This method is used to grab the list of dependencies that belong to a project so that a UI
@@ -451,43 +420,16 @@
try
{
- request = defaultsPopulator.populateDefaults( request, embedderRequest );
-
+ request = defaultsPopulator.populateDefaults( request, this );
+ //mkleint: copied from DefaultLifecycleExecutor
project = readProject( new File( request.getPomFile() ) );
- //mkleint: copied from DefaultLifecycleExecutor
Map handlers = findArtifactTypeHandlers( project );
//is this necessary in this context, I doubt it..mkleint
artifactHandlerManager.addHandlers( handlers );
-
project = mavenProjectBuilder.buildWithDependencies( new File( request.getPomFile() ),
request.getLocalRepository(), profileManager,
request.getTransferListener() );
}
- catch ( PluginManagerException e )
- {
- return new DefaultMavenExecutionResult( project, Collections.singletonList( e ) );
- }
- catch ( PluginNotFoundException e )
- {
- return new DefaultMavenExecutionResult( project, Collections.singletonList( e ) );
- }
- catch ( MavenEmbedderException e )
- {
- return new DefaultMavenExecutionResult( project, Collections.singletonList( e ) );
- }
- catch ( ProjectBuildingException e )
- {
- return new DefaultMavenExecutionResult( project, Collections.singletonList( e ) );
- }
- catch ( ArtifactResolutionException e )
- {
- return new DefaultMavenExecutionResult( project, Collections.singletonList( e ) );
- }
- catch ( ArtifactNotFoundException e )
- {
- return new DefaultMavenExecutionResult( project, Collections.singletonList( e ) );
- }
- //mkleint: why do we have so many various exception handlings with same result?
catch ( Exception e )
{
return new DefaultMavenExecutionResult( project, Collections.singletonList( e ) );
@@ -571,72 +513,17 @@
// ----------------------------------------------------------------------
// Remote Repository
// ----------------------------------------------------------------------
- // ----------------------------------------------------------------------
- // Local Repository
- // ----------------------------------------------------------------------
-
- public static final String DEFAULT_LOCAL_REPO_ID = "local";
-
- public static final String DEFAULT_LAYOUT_ID = "default";
-
- public static final File DEFAULT_GLOBAL_SETTINGS_FILE = MavenSettingsBuilder.DEFAULT_GLOBAL_SETTINGS_FILE;
-
- public static final File DEFAULT_USER_SETTINGS_FILE = MavenSettingsBuilder.DEFAULT_USER_SETTINGS_FILE;
-
- public ArtifactRepository createLocalRepository( File localRepository )
- throws ComponentLookupException
- {
- return createLocalRepository( localRepository.getAbsolutePath(), DEFAULT_LOCAL_REPO_ID );
- }
-
- public ArtifactRepository createLocalRepository( Settings settings )
- {
- return createLocalRepository( mavenTools.getLocalRepositoryPath( settings ), DEFAULT_LOCAL_REPO_ID );
- }
-
- public ArtifactRepository createLocalRepository( String url,
- String repositoryId )
- {
- if ( !url.startsWith( "file:" ) )
- {
- url = "file://" + url;
- }
-
- return createRepository( url, repositoryId );
- }
-
- public ArtifactRepository createRepository( String url,
- String repositoryId )
- {
- // snapshots vs releases
- // offline = to turning the update policy off
-
- //TODO: we'll need to allow finer grained creation of repositories but this will do for now
-
- String updatePolicyFlag = ArtifactRepositoryPolicy.UPDATE_POLICY_ALWAYS;
-
- String checksumPolicyFlag = ArtifactRepositoryPolicy.CHECKSUM_POLICY_WARN;
-
- ArtifactRepositoryPolicy snapshotsPolicy =
- new ArtifactRepositoryPolicy( true, updatePolicyFlag, checksumPolicyFlag );
-
- ArtifactRepositoryPolicy releasesPolicy =
- new ArtifactRepositoryPolicy( true, updatePolicyFlag, checksumPolicyFlag );
-
- return artifactRepositoryFactory.createArtifactRepository( repositoryId, url, defaultArtifactRepositoryLayout,
- snapshotsPolicy, releasesPolicy );
- }
// ----------------------------------------------------------------------
// Lifecycle
// ----------------------------------------------------------------------
- private void start( MavenEmbedderConfiguration req )
+ private void start( Configuration configuration )
throws MavenEmbedderException
{
- this.classWorld = req.getClassWorld();
+ this.classWorld = configuration.getClassWorld();
- this.logger = req.getMavenEmbedderLogger();
+ this.logger = configuration.getMavenEmbedderLogger();
// ----------------------------------------------------------------------------
// Don't override any existing SecurityManager if one has been installed. Our
@@ -655,7 +542,7 @@
logger.warn( "Error trying to set the SecurityManager: " + e.getMessage() );
}
- this.embedderRequest = req;
+ this.configuration = configuration;
try
{
@@ -676,12 +563,12 @@
try
{
- if ( req.getContainerCustomizer() != null )
+ if ( configuration.getContainerCustomizer() != null )
{
- req.getContainerCustomizer().customize( container );
+ configuration.getContainerCustomizer().customize( container );
}
- handleExtensions( req.getExtensions() );
+ handleExtensions( configuration.getExtensions() );
// ----------------------------------------------------------------------
// Lookup each of the components we need to provide the desired
@@ -694,15 +581,15 @@
maven = (Maven) container.lookup( Maven.ROLE );
- mavenTools = (MavenTools) container.lookup( MavenTools.ROLE );
+ settingsBuilder = (MavenSettingsBuilder) container.lookup( MavenSettingsBuilder.ROLE );
pluginDescriptorBuilder = new PluginDescriptorBuilder();
- profileManager = new DefaultProfileManager( container, req.getSystemProperties() );
+ profileManager = new DefaultProfileManager( container, configuration.getSystemProperties() );
- profileManager.explicitlyActivate( req.getActiveProfiles() );
+ profileManager.explicitlyActivate( configuration.getActiveProfiles() );
- profileManager.explicitlyDeactivate( req.getInactiveProfiles() );
+ profileManager.explicitlyDeactivate( configuration.getInactiveProfiles() );
mavenProjectBuilder = (MavenProjectBuilder) container.lookup( MavenProjectBuilder.ROLE );
@@ -726,22 +613,31 @@
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,
- req.getSettingsBuilderAdvice() );
+ try
+ {
+ if ( configuration.getUserSettingsFile() == null )
+ {
+ configuration.setUserSettingsFile( DEFAULT_USER_SETTINGS_FILE );
+ }
+
+ settings = settingsBuilder.buildSettings( configuration.getUserSettingsFile(),
+ configuration.getGlobalSettingsFile() );
+ }
+ catch ( Exception e )
+ {
+ // If something goes wrong with parsing the settings
+ settings = new Settings();
+ }
localRepository = createLocalRepository( settings );
profileManager.loadSettingsProfiles( settings );
+
}
catch ( ComponentLookupException e )
{
throw new MavenEmbedderException( "Cannot lookup required component.", e );
}
- catch ( SettingsConfigurationException e )
- {
- throw new MavenEmbedderException( "Cannot create settings configuration", e );
- }
}
// ----------------------------------------------------------------------
@@ -806,6 +702,184 @@
}
}
+ // ----------------------------------------------------------------------------
+ // Validation
+ // ----------------------------------------------------------------------------
+
+ // ----------------------------------------------------------------------------
+ // Options for settings
+ //
+ // 1. No settings
+ // 2. User settings only
+ // 3. Global settings only
+ // 4. Both Users settings and Global settings. In the case that both are present
+ // the User settings take priority.
+ //
+ // What we would like to provide is a way that the client code does not have
+ // to deal with settings configuration at all.
+ // ----------------------------------------------------------------------------
+
+ public static ConfigurationValidationResult validateConfiguration( Configuration configuration )
+ {
+ ConfigurationValidationResult result = new DefaultConfigurationValidationResult();
+
+ if ( configuration.getUserSettingsFile() == null )
+ {
+ configuration.setUserSettingsFile( MavenEmbedder.DEFAULT_USER_SETTINGS_FILE );
+ }
+
+ Reader fileReader;
+
+ // User settings
+
+ try
+ {
+ fileReader = new FileReader( configuration.getUserSettingsFile() );
+
+ new SettingsXpp3Reader().read( fileReader );
+ }
+ catch ( FileNotFoundException e )
+ {
+ result.setUserSettingsFilePresent( false );
+ }
+ catch ( IOException e )
+ {
+ result.setUserSettingsFileParses( false );
+ }
+ catch ( XmlPullParserException e )
+ {
+ result.setUserSettingsFileParses( false );
+ }
+
+ // Global settings
+
+ if ( configuration.getGlobalSettingsFile() != null )
+ {
+
+ try
+ {
+ fileReader = new FileReader( configuration.getGlobalSettingsFile() );
+
+ new SettingsXpp3Reader().read( fileReader );
+ }
+ catch ( FileNotFoundException e )
+ {
+ result.setGlobalSettingsFilePresent( false );
+ }
+ catch ( IOException e )
+ {
+ result.setGlobalSettingsFileParses( false );
+ }
+ catch ( XmlPullParserException e )
+ {
+ result.setGlobalSettingsFileParses( false );
+ }
+ }
+
+ return result;
+ }
+
+ // ----------------------------------------------------------------------
+ // Local Repository
+ // ----------------------------------------------------------------------
+
+ public ArtifactRepository createLocalRepository( Settings settings )
+ throws MavenEmbedderException
+ {
+ String localRepositoryPath = null;
+
+ if ( configuration.getLocalRepository() != null )
+ {
+ localRepositoryPath = configuration.getLocalRepository().getAbsolutePath();
+ }
+
+ if ( StringUtils.isEmpty( localRepositoryPath ) )
+ {
+ localRepositoryPath = settings.getLocalRepository();
+ }
+
+ if ( StringUtils.isEmpty( localRepositoryPath ) )
+ {
+ localRepositoryPath = MavenEmbedder.defaultUserLocalRepository.getAbsolutePath();
+ }
+
+ return createLocalRepository( localRepositoryPath, MavenEmbedder.DEFAULT_LOCAL_REPO_ID );
+ }
+
+ public ArtifactRepository createLocalRepository( String url,
+ String repositoryId )
+ throws MavenEmbedderException
+ {
+ try
+ {
+ return createRepository( canonicalFileUrl( url ), repositoryId );
+ }
+ catch ( IOException e )
+ {
+ throw new MavenEmbedderException( "Unable to resolve canonical path for local repository " + url, e );
+ }
+ }
+
+ private String canonicalFileUrl( String url )
+ throws IOException
+ {
+ if ( !url.startsWith( "file:" ) )
+ {
+ url = "file://" + url;
+ }
+ else if ( url.startsWith( "file:" ) && !url.startsWith( "file://" ) )
+ {
+ url = "file://" + url.substring( "file:".length() );
+ }
+
+ // So now we have an url of the form file://<path>
+
+ // We want to eliminate any relative path nonsense and lock down the path so we
+ // need to fully resolve it before any sub-modules use the path. This can happen
+ // when you are using a custom settings.xml that contains a relative path entry
+ // for the local repository setting.
+
+ File localRepository = new File( url.substring( "file://".length() ) );
+
+ if ( !localRepository.isAbsolute() )
+ {
+ url = "file://" + localRepository.getCanonicalPath();
+ }
+
+ return url;
+ }
+
+ public ArtifactRepository createRepository( String url,
+ String repositoryId )
+ {
+ // snapshots vs releases
+ // offline = to turning the update policy off
+
+ //TODO: we'll need to allow finer grained creation of repositories but this will do for now
+
+ String updatePolicyFlag = ArtifactRepositoryPolicy.UPDATE_POLICY_ALWAYS;
+
+ String checksumPolicyFlag = ArtifactRepositoryPolicy.CHECKSUM_POLICY_WARN;
+
+ ArtifactRepositoryPolicy snapshotsPolicy =
+ new ArtifactRepositoryPolicy( true, updatePolicyFlag, checksumPolicyFlag );
+
+ ArtifactRepositoryPolicy releasesPolicy =
+ new ArtifactRepositoryPolicy( true, updatePolicyFlag, checksumPolicyFlag );
+
+ return artifactRepositoryFactory.createArtifactRepository( repositoryId, url, defaultArtifactRepositoryLayout,
+ snapshotsPolicy, releasesPolicy );
+ }
+
+ // ----------------------------------------------------------------------------
+ // Configuration
+ // ----------------------------------------------------------------------------
+
+ public Configuration getConfiguration()
+ {
+ return configuration;
+ }
+
// ----------------------------------------------------------------------
// Start of new embedder API
// ----------------------------------------------------------------------
@@ -813,6 +887,7 @@
public MavenExecutionResult execute( MavenExecutionRequest request )
{
LoggerManager loggerManager = container.getLoggerManager();
+
int oldThreshold = loggerManager.getThreshold();
try
@@ -821,7 +896,7 @@
try
{
- request = defaultsPopulator.populateDefaults( request, embedderRequest );
+ request = defaultsPopulator.populateDefaults( request, this );
}
catch ( MavenEmbedderException e )
{