Author: bentmann
Date: Tue Aug 11 18:45:28 2009
New Revision: 803243
URL: http://svn.apache.org/viewvc?rev=803243&view=rev
Log:
o Delayed injection of plugin default configuration until the project is
actually executed to allow for plugin resolution from the reactor
Modified:
maven/components/trunk/maven-core/src/main/java/org/apache/maven/DefaultMaven.java
maven/components/trunk/maven-core/src/main/java/org/apache/maven/lifecycle/DefaultLifecycleExecutor.java
maven/components/trunk/maven-core/src/main/java/org/apache/maven/project/DefaultProjectBuilder.java
maven/components/trunk/maven-core/src/main/java/org/apache/maven/project/DefaultProjectBuildingRequest.java
maven/components/trunk/maven-core/src/main/java/org/apache/maven/project/ProjectBuildingRequest.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?rev=803243&r1=803242&r2=803243&view=diff
==============================================================================
---
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
Tue Aug 11 18:45:28 2009
@@ -42,6 +42,7 @@
import org.apache.maven.project.MavenProject;
import org.apache.maven.project.ProjectBuilder;
import org.apache.maven.project.ProjectBuildingException;
+import org.apache.maven.project.ProjectBuildingRequest;
import org.apache.maven.project.ProjectBuildingResult;
import org.apache.maven.repository.DelegatingLocalArtifactRepository;
import org.codehaus.plexus.PlexusContainer;
@@ -215,8 +216,11 @@
ExceptionHandler handler = new DefaultExceptionHandler();
ExceptionSummary es = handler.handleException( e );
-
- result.addException( e );
+
+ if ( !result.getExceptions().contains( e ) )
+ {
+ result.addException( e );
+ }
result.setExceptionSummary( es );
@@ -288,8 +292,15 @@
private void collectProjects( List<MavenProject> projects, List<File>
files, MavenExecutionRequest request )
throws MavenExecutionException, ProjectBuildingException
{
- List<ProjectBuildingResult> results =
- projectBuilder.build( files, request.isRecursive(),
request.getProjectBuildingRequest() );
+ ProjectBuildingRequest projectBuildingRequest =
request.getProjectBuildingRequest();
+
+ /*
+ * NOTE: We delay plugin configuration processing until a project is
actually build to allow plugins to be
+ * resolved from the reactor.
+ */
+ projectBuildingRequest.setProcessPluginConfiguration( false );
+
+ List<ProjectBuildingResult> results = projectBuilder.build( files,
request.isRecursive(), projectBuildingRequest );
for ( ProjectBuildingResult result : results )
{
Modified:
maven/components/trunk/maven-core/src/main/java/org/apache/maven/lifecycle/DefaultLifecycleExecutor.java
URL:
http://svn.apache.org/viewvc/maven/components/trunk/maven-core/src/main/java/org/apache/maven/lifecycle/DefaultLifecycleExecutor.java?rev=803243&r1=803242&r2=803243&view=diff
==============================================================================
---
maven/components/trunk/maven-core/src/main/java/org/apache/maven/lifecycle/DefaultLifecycleExecutor.java
(original)
+++
maven/components/trunk/maven-core/src/main/java/org/apache/maven/lifecycle/DefaultLifecycleExecutor.java
Tue Aug 11 18:45:28 2009
@@ -176,6 +176,9 @@
{
session.setCurrentProject( currentProject );
+ repositoryRequest.setRemoteRepositories(
currentProject.getPluginArtifactRepositories() );
+ populateDefaultConfigurationForPlugins(
currentProject.getBuild().getPlugins(), repositoryRequest );
+
ClassRealm projectRealm = currentProject.getClassRealm();
if ( projectRealm != null )
{
Modified:
maven/components/trunk/maven-core/src/main/java/org/apache/maven/project/DefaultProjectBuilder.java
URL:
http://svn.apache.org/viewvc/maven/components/trunk/maven-core/src/main/java/org/apache/maven/project/DefaultProjectBuilder.java?rev=803243&r1=803242&r2=803243&view=diff
==============================================================================
---
maven/components/trunk/maven-core/src/main/java/org/apache/maven/project/DefaultProjectBuilder.java
(original)
+++
maven/components/trunk/maven-core/src/main/java/org/apache/maven/project/DefaultProjectBuilder.java
Tue Aug 11 18:45:28 2009
@@ -499,7 +499,7 @@
try
{
- if ( configuration.isProcessPlugins() )
+ if ( configuration.isProcessPlugins() &&
configuration.isProcessPluginConfiguration() )
{
RepositoryRequest repositoryRequest = new
DefaultRepositoryRequest();
repositoryRequest.setLocalRepository(
configuration.getLocalRepository() );
Modified:
maven/components/trunk/maven-core/src/main/java/org/apache/maven/project/DefaultProjectBuildingRequest.java
URL:
http://svn.apache.org/viewvc/maven/components/trunk/maven-core/src/main/java/org/apache/maven/project/DefaultProjectBuildingRequest.java?rev=803243&r1=803242&r2=803243&view=diff
==============================================================================
---
maven/components/trunk/maven-core/src/main/java/org/apache/maven/project/DefaultProjectBuildingRequest.java
(original)
+++
maven/components/trunk/maven-core/src/main/java/org/apache/maven/project/DefaultProjectBuildingRequest.java
Tue Aug 11 18:45:28 2009
@@ -52,6 +52,8 @@
private boolean processPlugins;
+ private boolean processPluginConfiguration;
+
private List<Profile> profiles;
private List<String> activeProfileIds;
@@ -67,6 +69,7 @@
public DefaultProjectBuildingRequest()
{
processPlugins = true;
+ processPluginConfiguration = true;
profiles = new ArrayList<Profile>();
activeProfileIds = new ArrayList<String>();
inactiveProfileIds = new ArrayList<String>();
@@ -221,6 +224,17 @@
return this;
}
+ public boolean isProcessPluginConfiguration()
+ {
+ return processPluginConfiguration;
+ }
+
+ public ProjectBuildingRequest setProcessPluginConfiguration( boolean
processPluginConfiguration )
+ {
+ this.processPluginConfiguration = processPluginConfiguration;
+ return this;
+ }
+
public ProjectBuildingRequest setValidationLevel( int validationLevel )
{
this.validationLevel = validationLevel;
Modified:
maven/components/trunk/maven-core/src/main/java/org/apache/maven/project/ProjectBuildingRequest.java
URL:
http://svn.apache.org/viewvc/maven/components/trunk/maven-core/src/main/java/org/apache/maven/project/ProjectBuildingRequest.java?rev=803243&r1=803242&r2=803243&view=diff
==============================================================================
---
maven/components/trunk/maven-core/src/main/java/org/apache/maven/project/ProjectBuildingRequest.java
(original)
+++
maven/components/trunk/maven-core/src/main/java/org/apache/maven/project/ProjectBuildingRequest.java
Tue Aug 11 18:45:28 2009
@@ -92,11 +92,15 @@
void setTopLevelProjectForReactor(MavenProject mavenProject);
MavenProject getTopLevelProjectFromReactor();
-
+
ProjectBuildingRequest setProcessPlugins( boolean processPlugins );
-
+
boolean isProcessPlugins();
+ ProjectBuildingRequest setProcessPluginConfiguration( boolean
processPluginConfiguration );
+
+ boolean isProcessPluginConfiguration();
+
/**
* Controls the level of validation to perform on processed models. By
default, models are validated in strict mode.
*