Author: jvanzyl Date: Sun Dec 31 13:04:13 2006 New Revision: 491487 URL: http://svn.apache.org/viewvc?view=rev&rev=491487 Log: MNG-2724: Create a component in the embedder who's responsibility is to configure an execution request
Modified: maven/components/trunk/maven-core/src/main/java/org/apache/maven/DefaultMaven.java maven/components/trunk/maven-embedder/pom.xml maven/components/trunk/maven-embedder/src/main/java/org/apache/maven/embedder/MavenEmbedder.java Modified: maven/components/trunk/maven-core/src/main/java/org/apache/maven/DefaultMaven.java URL: http://svn.apache.org/viewvc/maven/components/trunk/maven-core/src/main/java/org/apache/maven/DefaultMaven.java?view=diff&rev=491487&r1=491486&r2=491487 ============================================================================== --- maven/components/trunk/maven-core/src/main/java/org/apache/maven/DefaultMaven.java (original) +++ maven/components/trunk/maven-core/src/main/java/org/apache/maven/DefaultMaven.java Sun Dec 31 13:04:13 2006 @@ -121,29 +121,7 @@ public MavenExecutionResult execute( MavenExecutionRequest request ) throws MavenExecutionException - { - //*** Move this stuff to the embedder - boolean snapshotPolicySet = false; - - if ( request.isOffline() ) - { - snapshotPolicySet = true; - } - - if ( !snapshotPolicySet ) { - if ( request.isUpdateSnapshots() ) - { - artifactRepositoryFactory.setGlobalUpdatePolicy( ArtifactRepositoryPolicy.UPDATE_POLICY_ALWAYS ); - } - else if ( request.isNoSnapshotUpdates() ) - { - getLogger().info( "+ Supressing SNAPSHOT updates."); - artifactRepositoryFactory.setGlobalUpdatePolicy( ArtifactRepositoryPolicy.UPDATE_POLICY_NEVER ); - } - } - - artifactRepositoryFactory.setGlobalChecksumPolicy( request.getGlobalChecksumPolicy() ); - + { Logger logger = loggerManager.getLoggerForComponent( Mojo.ROLE ); if ( request.getEventMonitors() == null ) @@ -152,16 +130,14 @@ } loggerManager.setThreshold( request.getLoggingLevel() ); - - request.setStartTime( new Date() ); - + wagonManager.setInteractive( request.isInteractiveMode() ); wagonManager.setDownloadMonitor( request.getTransferListener() ); wagonManager.setOnline( !request.getSettings().isOffline() ); - //*** + request.setStartTime( new Date() ); EventDispatcher dispatcher = new DefaultEventDispatcher( request.getEventMonitors() ); @@ -279,7 +255,6 @@ line(); } - } private ReactorManager doExecute( MavenExecutionRequest request, EventDispatcher dispatcher ) Modified: maven/components/trunk/maven-embedder/pom.xml URL: http://svn.apache.org/viewvc/maven/components/trunk/maven-embedder/pom.xml?view=diff&rev=491487&r1=491486&r2=491487 ============================================================================== --- maven/components/trunk/maven-embedder/pom.xml (original) +++ maven/components/trunk/maven-embedder/pom.xml Sun Dec 31 13:04:13 2006 @@ -27,7 +27,7 @@ <artifactId>maven-embedder</artifactId> <name>Maven Embedder</name> <properties> - <bundleVersion>2.1.0.v20061230-1839</bundleVersion> + <bundleVersion>2.1.0.v20061231-1402</bundleVersion> </properties> <build> <resources> 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=491487&r1=491486&r2=491487 ============================================================================== --- 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 Sun Dec 31 13:04:13 2006 @@ -29,6 +29,7 @@ import org.apache.maven.artifact.resolver.ArtifactNotFoundException; import org.apache.maven.artifact.resolver.ArtifactResolutionException; import org.apache.maven.artifact.resolver.ArtifactResolver; +import org.apache.maven.embedder.execution.MavenExecutionRequestDefaultsPopulator; import org.apache.maven.execution.DefaultMavenExecutionResult; import org.apache.maven.execution.MavenExecutionRequest; import org.apache.maven.execution.MavenExecutionResult; @@ -111,6 +112,8 @@ private MavenTools mavenTools; + private MavenExecutionRequestDefaultsPopulator defaultsPopulator; + // ---------------------------------------------------------------------- // Configuration // ---------------------------------------------------------------------- @@ -141,7 +144,8 @@ this( classWorld, null ); } - public MavenEmbedder( ClassWorld classWorld, MavenEmbedderLogger logger ) + public MavenEmbedder( ClassWorld classWorld, + MavenEmbedderLogger logger ) throws MavenEmbedderException { this.classWorld = classWorld; @@ -157,7 +161,8 @@ this( classLoader, null ); } - public MavenEmbedder( ClassLoader classLoader, MavenEmbedderLogger logger ) + public MavenEmbedder( ClassLoader classLoader, + MavenEmbedderLogger logger ) throws MavenEmbedderException { this( new ClassWorld( "plexus.core", classLoader ), logger ); @@ -226,66 +231,18 @@ return mavenProjectBuilder.buildWithDependencies( mavenProject, localRepository, profileManager ); } - private MavenExecutionRequest populateMavenExecutionRequestWithDefaults( MavenExecutionRequest r ) - throws MavenEmbedderException - { - // Settings - // Local repository - // TransferListener - // EventMonitor - - if ( r.getSettings() == null ) - { - File userSettingsPath = mavenTools.getUserSettingsPath( r.getSettingsFile() ); - - File globalSettingsFile = mavenTools.getGlobalSettingsPath(); - - try - { - r.setSettings( mavenTools.buildSettings( userSettingsPath, globalSettingsFile, r.isInteractiveMode(), - r.isOffline(), r.isUsePluginRegistry(), - r.isUsePluginUpdateOverride() ) ); - } - catch ( SettingsConfigurationException e ) - { - throw new MavenEmbedderException( "Error processing settings.xml.", e ); - } - } - - if ( r.getLocalRepository() == null ) - { - String localRepositoryPath = mavenTools.getLocalRepositoryPath( r.getSettings() ); - - if ( r.getLocalRepository() == null ) - { - r.setLocalRepository( mavenTools.createLocalRepository( new File( localRepositoryPath ) ) ); - } - } - - return r; - } - /** * This method is used to grab the list of dependencies that belong to a project so that a UI * can be populated. For example, a list of libraries that are used by an Eclipse, Netbeans, or * IntelliJ project. */ - // Not well formed exceptions to point people at errors - // line number in the originating POM so that errors can be shown - // Need to walk down the tree of dependencies and find all the errors and report in the result - // validate the request - // for dependency errors: identifier, path - // unable to see why you can't get a resource from the repository - // short message or error id - // completely obey the same settings used by the CLI, should work exactly the same as the - // command line. right now they are very different public MavenExecutionResult readProjectWithDependencies( MavenExecutionRequest request ) { MavenProject project = null; try { - request = populateMavenExecutionRequestWithDefaults( request ); + request = defaultsPopulator.populateDefaults( request ); project = mavenProjectBuilder.buildWithDependencies( new File( request.getPomFile() ), request.getLocalRepository(), profileManager, @@ -386,7 +343,6 @@ // ---------------------------------------------------------------------- // Execution of phases/goals // ---------------------------------------------------------------------- - // ---------------------------------------------------------------------- // Lifecycle information // ---------------------------------------------------------------------- @@ -548,22 +504,8 @@ wagonManager = (WagonManager) container.lookup( WagonManager.ROLE ); - // ---------------------------------------------------------------------------- - // Settings - // - // If the settings file and the global settings file are null then we will use - // the defaults that Maven provides. - // ---------------------------------------------------------------------------- - - if ( req.getUserSettingsFile() == null ) - { - req.setUserSettingsFile( mavenTools.getUserSettingsPath( null ) ); - } - - if ( req.getGlobalSettingsFile() == null ) - { - req.setGlobalSettingsFile( mavenTools.getGlobalSettingsPath() ); - } + defaultsPopulator = (MavenExecutionRequestDefaultsPopulator) container.lookup( + MavenExecutionRequestDefaultsPopulator.ROLE ); settings = mavenTools.buildSettings( req.getUserSettingsFile(), req.getGlobalSettingsFile(), false ); @@ -595,7 +537,6 @@ private void resolveParameters( Settings settings ) throws SettingsConfigurationException { - Proxy proxy = settings.getActiveProxy(); if ( proxy != null ) @@ -660,7 +601,7 @@ { try { - request = populateMavenExecutionRequestWithDefaults( request ); + request = defaultsPopulator.populateDefaults( request ); } catch ( MavenEmbedderException e ) {