diff --git a/maven-core/src/main/java/org/apache/maven/DefaultMaven.java b/maven-core/src/main/java/org/apache/maven/DefaultMaven.java
index 416debc7a4..5d1b726da3 100644
--- a/maven-core/src/main/java/org/apache/maven/DefaultMaven.java
+++ b/maven-core/src/main/java/org/apache/maven/DefaultMaven.java
@@ -509,7 +509,7 @@ private void resolveParameters( Settings settings )
wagonManager.addAuthenticationInfo( server.getId(), server.getUsername(), server.getPassword(),
server.getPrivateKey(), server.getPassphrase() );
-
+
wagonManager.addPermissionInfo( server.getId(), server.getFilePermissions(),
server.getDirectoryPermissions() );
}
diff --git a/maven-embedder/src/main/java/org/apache/maven/embedder/MavenEmbedder.java b/maven-embedder/src/main/java/org/apache/maven/embedder/MavenEmbedder.java
index f12a2aece5..fa6b8a63e8 100644
--- a/maven-embedder/src/main/java/org/apache/maven/embedder/MavenEmbedder.java
+++ b/maven-embedder/src/main/java/org/apache/maven/embedder/MavenEmbedder.java
@@ -32,6 +32,7 @@
import org.apache.maven.settings.MavenSettingsBuilder;
import org.apache.maven.settings.Settings;
import org.apache.maven.settings.RuntimeInfo;
+import org.apache.maven.wagon.events.TransferListener;
import org.codehaus.classworlds.ClassWorld;
import org.codehaus.classworlds.DuplicateRealmException;
import org.codehaus.plexus.PlexusContainerException;
@@ -171,6 +172,12 @@ public MavenProject readProject( File mavenProject )
return mavenProjectBuilder.build( mavenProject, localRepository, profileManager );
}
+ public MavenProject readProjectWithDependencies( File mavenProject, TransferListener transferListener )
+ throws ProjectBuildingException, ArtifactResolutionException
+ {
+ return mavenProjectBuilder.buildWithDependencies( mavenProject, localRepository, profileManager, transferListener );
+ }
+
public MavenProject readProjectWithDependencies( File mavenProject )
throws ProjectBuildingException, ArtifactResolutionException
{
diff --git a/maven-project/src/main/java/org/apache/maven/project/DefaultMavenProjectBuilder.java b/maven-project/src/main/java/org/apache/maven/project/DefaultMavenProjectBuilder.java
index cc4d4eba27..1ce8313d77 100644
--- a/maven-project/src/main/java/org/apache/maven/project/DefaultMavenProjectBuilder.java
+++ b/maven-project/src/main/java/org/apache/maven/project/DefaultMavenProjectBuilder.java
@@ -18,6 +18,7 @@
import org.apache.maven.artifact.Artifact;
import org.apache.maven.artifact.ArtifactStatus;
+import org.apache.maven.artifact.manager.WagonManager;
import org.apache.maven.artifact.factory.ArtifactFactory;
import org.apache.maven.artifact.metadata.ArtifactMetadataSource;
import org.apache.maven.artifact.repository.ArtifactRepository;
@@ -55,6 +56,7 @@
import org.apache.maven.project.path.PathTranslator;
import org.apache.maven.project.validation.ModelValidationResult;
import org.apache.maven.project.validation.ModelValidator;
+import org.apache.maven.wagon.events.TransferListener;
import org.codehaus.plexus.PlexusConstants;
import org.codehaus.plexus.PlexusContainer;
import org.codehaus.plexus.component.repository.exception.ComponentLookupException;
@@ -126,6 +128,14 @@ public class DefaultMavenProjectBuilder
private ArtifactTransformationManager transformationManager;
+ // ----------------------------------------------------------------------
+ // I am making this available for use with a new method that takes a
+ // a monitor wagon monitor as a parameter so that tools can use the
+ // methods here and receive callbacks. MNG-1015
+ // ----------------------------------------------------------------------
+
+ private WagonManager wagonManager;
+
private final Map modelCache = new HashMap();
public static final String MAVEN_MODEL_VERSION = "4.0.0";
@@ -141,11 +151,21 @@ public void initialize()
// MavenProjectBuilder Implementation
// ----------------------------------------------------------------------
+ public MavenProject buildWithDependencies( File projectDescriptor,
+ ArtifactRepository localRepository,
+ ProfileManager profileManager )
+ throws ProjectBuildingException, ArtifactResolutionException
+ {
+ return buildWithDependencies( projectDescriptor, localRepository, profileManager, null );
+ }
+
/**
* @todo move to metadatasource itself?
*/
- public MavenProject buildWithDependencies( File projectDescriptor, ArtifactRepository localRepository,
- ProfileManager profileManager )
+ public MavenProject buildWithDependencies( File projectDescriptor,
+ ArtifactRepository localRepository,
+ ProfileManager profileManager,
+ TransferListener transferListener )
throws ProjectBuildingException, ArtifactResolutionException
{
MavenProject project = buildFromSourceFile( projectDescriptor, localRepository, profileManager );
@@ -177,6 +197,12 @@ public MavenProject buildWithDependencies( File projectDescriptor, ArtifactRepos
{
throw new ProjectBuildingException( "Error in dependency version", e );
}
+
+ if ( transferListener != null )
+ {
+ wagonManager.setDownloadMonitor( transferListener );
+ }
+
ArtifactResolutionResult result = artifactResolver.resolveTransitively( project.getDependencyArtifacts(),
projectArtifact, managedVersions,
localRepository,
@@ -184,6 +210,7 @@ public MavenProject buildWithDependencies( File projectDescriptor, ArtifactRepos
artifactMetadataSource );
project.setArtifacts( result.getArtifacts() );
+
return project;
}
diff --git a/maven-project/src/main/java/org/apache/maven/project/MavenProjectBuilder.java b/maven-project/src/main/java/org/apache/maven/project/MavenProjectBuilder.java
index 3623c8f30d..4d1e0bf0fd 100644
--- a/maven-project/src/main/java/org/apache/maven/project/MavenProjectBuilder.java
+++ b/maven-project/src/main/java/org/apache/maven/project/MavenProjectBuilder.java
@@ -20,6 +20,7 @@
import org.apache.maven.artifact.repository.ArtifactRepository;
import org.apache.maven.artifact.resolver.ArtifactResolutionException;
import org.apache.maven.profiles.ProfileManager;
+import org.apache.maven.wagon.events.TransferListener;
import java.io.File;
import java.util.List;
@@ -43,9 +44,25 @@ public MavenProject build( File projectDescriptor, ArtifactRepository localRepos
MavenProject build( File project, ArtifactRepository localRepository, ProfileManager globalProfileManager )
throws ProjectBuildingException;
- MavenProject buildWithDependencies( File project, ArtifactRepository localRepository, ProfileManager globalProfileManager )
+ // ----------------------------------------------------------------------
+ // These methods are used by the MavenEmbedder
+ // ----------------------------------------------------------------------
+
+ MavenProject buildWithDependencies( File project,
+ ArtifactRepository localRepository,
+ ProfileManager globalProfileManager,
+ TransferListener transferListener )
throws ProjectBuildingException, ArtifactResolutionException;
+ MavenProject buildWithDependencies( File project,
+ ArtifactRepository localRepository,
+ ProfileManager globalProfileManager )
+ throws ProjectBuildingException, ArtifactResolutionException;
+
+ // ----------------------------------------------------------------------
+ //
+ // ----------------------------------------------------------------------
+
/**
* Build the artifact from the local repository, resolving it if necessary.
*
diff --git a/maven-project/src/main/resources/META-INF/plexus/components.xml b/maven-project/src/main/resources/META-INF/plexus/components.xml
index 6fd727eb1f..3ee6654e31 100644
--- a/maven-project/src/main/resources/META-INF/plexus/components.xml
+++ b/maven-project/src/main/resources/META-INF/plexus/components.xml
@@ -83,6 +83,9 @@
org.apache.maven.artifact.repository.ArtifactRepositoryFactory
+
+ org.apache.maven.artifact.manager.WagonManager
+