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


Reply via email to