Author: jvanzyl Date: Sun Dec 31 13:07:01 2006 New Revision: 491490 URL: http://svn.apache.org/viewvc?view=rev&rev=491490 Log: MNG-2724: Create a component in the embedder who's responsibility is to configure an execution request http://jira.codehaus.org/browse/MNG-2724
Added: maven/components/trunk/maven-embedder/src/main/java/org/apache/maven/embedder/execution/DefaultMavenExecutionRequestDefaultsPopulator.java (with props) maven/components/trunk/maven-embedder/src/main/java/org/apache/maven/embedder/execution/MavenExecutionRequestDefaultsPopulator.java (with props) maven/components/trunk/maven-embedder/src/main/resources/META-INF/plexus/components.xml (with props) Added: maven/components/trunk/maven-embedder/src/main/java/org/apache/maven/embedder/execution/DefaultMavenExecutionRequestDefaultsPopulator.java URL: http://svn.apache.org/viewvc/maven/components/trunk/maven-embedder/src/main/java/org/apache/maven/embedder/execution/DefaultMavenExecutionRequestDefaultsPopulator.java?view=auto&rev=491490 ============================================================================== --- maven/components/trunk/maven-embedder/src/main/java/org/apache/maven/embedder/execution/DefaultMavenExecutionRequestDefaultsPopulator.java (added) +++ maven/components/trunk/maven-embedder/src/main/java/org/apache/maven/embedder/execution/DefaultMavenExecutionRequestDefaultsPopulator.java Sun Dec 31 13:07:01 2006 @@ -0,0 +1,87 @@ +package org.apache.maven.embedder.execution; + +import java.io.File; + +import org.apache.maven.MavenTools; +import org.apache.maven.SettingsConfigurationException; +import org.apache.maven.artifact.repository.ArtifactRepositoryFactory; +import org.apache.maven.artifact.repository.ArtifactRepositoryPolicy; +import org.apache.maven.embedder.MavenEmbedderException; +import org.apache.maven.execution.MavenExecutionRequest; +import org.codehaus.plexus.logging.AbstractLogEnabled; + +public class DefaultMavenExecutionRequestDefaultsPopulator + extends AbstractLogEnabled + implements MavenExecutionRequestDefaultsPopulator +{ + private MavenTools mavenTools; + + private ArtifactRepositoryFactory artifactRepositoryFactory; + + public MavenExecutionRequest populateDefaults(MavenExecutionRequest request) + throws MavenEmbedderException + { + // Settings + // Local repository + // TransferListener + // EventMonitor + // Proxy + + // Settings + + if ( request.getSettings() == null ) + { + File userSettingsPath = mavenTools.getUserSettingsPath( request.getSettingsFile() ); + + File globalSettingsFile = mavenTools.getGlobalSettingsPath(); + + try + { + request.setSettings( mavenTools.buildSettings( userSettingsPath, globalSettingsFile, request.isInteractiveMode(), + request.isOffline(), request.isUsePluginRegistry(), + request.isUsePluginUpdateOverride() ) ); + } + catch ( SettingsConfigurationException e ) + { + throw new MavenEmbedderException( "Error processing settings.xml.", e ); + } + } + + // Local repository + + if ( request.getLocalRepository() == null ) + { + String localRepositoryPath = mavenTools.getLocalRepositoryPath( request.getSettings() ); + + if ( request.getLocalRepository() == null ) + { + request.setLocalRepository( mavenTools.createLocalRepository( new File( localRepositoryPath ) ) ); + } + } + + // Repository update policies + + 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() ); + + return request; + } +} Propchange: maven/components/trunk/maven-embedder/src/main/java/org/apache/maven/embedder/execution/DefaultMavenExecutionRequestDefaultsPopulator.java ------------------------------------------------------------------------------ svn:eol-style = native Propchange: maven/components/trunk/maven-embedder/src/main/java/org/apache/maven/embedder/execution/DefaultMavenExecutionRequestDefaultsPopulator.java ------------------------------------------------------------------------------ svn:keywords = Author Date Id Revision Added: maven/components/trunk/maven-embedder/src/main/java/org/apache/maven/embedder/execution/MavenExecutionRequestDefaultsPopulator.java URL: http://svn.apache.org/viewvc/maven/components/trunk/maven-embedder/src/main/java/org/apache/maven/embedder/execution/MavenExecutionRequestDefaultsPopulator.java?view=auto&rev=491490 ============================================================================== --- maven/components/trunk/maven-embedder/src/main/java/org/apache/maven/embedder/execution/MavenExecutionRequestDefaultsPopulator.java (added) +++ maven/components/trunk/maven-embedder/src/main/java/org/apache/maven/embedder/execution/MavenExecutionRequestDefaultsPopulator.java Sun Dec 31 13:07:01 2006 @@ -0,0 +1,12 @@ +package org.apache.maven.embedder.execution; + +import org.apache.maven.embedder.MavenEmbedderException; +import org.apache.maven.execution.MavenExecutionRequest; + +public interface MavenExecutionRequestDefaultsPopulator +{ + String ROLE = MavenExecutionRequestDefaultsPopulator.class.getName(); + + MavenExecutionRequest populateDefaults( MavenExecutionRequest request ) + throws MavenEmbedderException; +} Propchange: maven/components/trunk/maven-embedder/src/main/java/org/apache/maven/embedder/execution/MavenExecutionRequestDefaultsPopulator.java ------------------------------------------------------------------------------ svn:eol-style = native Propchange: maven/components/trunk/maven-embedder/src/main/java/org/apache/maven/embedder/execution/MavenExecutionRequestDefaultsPopulator.java ------------------------------------------------------------------------------ svn:keywords = Author Date Id Revision Added: maven/components/trunk/maven-embedder/src/main/resources/META-INF/plexus/components.xml URL: http://svn.apache.org/viewvc/maven/components/trunk/maven-embedder/src/main/resources/META-INF/plexus/components.xml?view=auto&rev=491490 ============================================================================== --- maven/components/trunk/maven-embedder/src/main/resources/META-INF/plexus/components.xml (added) +++ maven/components/trunk/maven-embedder/src/main/resources/META-INF/plexus/components.xml Sun Dec 31 13:07:01 2006 @@ -0,0 +1,16 @@ +<component-set> + <components> + <component> + <role>org.apache.maven.embedder.execution.MavenExecutionRequestDefaultsPopulator</role> + <implementation>org.apache.maven.embedder.execution.DefaultMavenExecutionRequestDefaultsPopulator</implementation> + <requirements> + <requirement> + <role>org.apache.maven.MavenTools</role> + </requirement> + <requirement> + <role>org.apache.maven.artifact.repository.ArtifactRepositoryFactory</role> + </requirement> + </requirements> + </component> + </components> +</component-set> \ No newline at end of file Propchange: maven/components/trunk/maven-embedder/src/main/resources/META-INF/plexus/components.xml ------------------------------------------------------------------------------ svn:eol-style = native Propchange: maven/components/trunk/maven-embedder/src/main/resources/META-INF/plexus/components.xml ------------------------------------------------------------------------------ svn:keywords = Author Date Id Revision