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 2006/12/31 22:07:01 UTC

svn commit: r491490 - in /maven/components/trunk/maven-embedder/src/main: java/org/apache/maven/embedder/execution/ resources/META-INF/plexus/

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