You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@maven.apache.org by be...@apache.org on 2009/06/06 12:38:43 UTC
svn commit: r782223 - in /maven/components/trunk:
maven-core/src/main/java/org/apache/maven/project/
maven-model-builder/src/main/java/org/apache/maven/model/
Author: bentmann
Date: Sat Jun 6 10:38:42 2009
New Revision: 782223
URL: http://svn.apache.org/viewvc?rev=782223&view=rev
Log:
o Decoupled project building request from model building request
o Moved model resolver into model building request
Modified:
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
maven/components/trunk/maven-model-builder/src/main/java/org/apache/maven/model/DefaultModelBuilder.java
maven/components/trunk/maven-model-builder/src/main/java/org/apache/maven/model/DefaultModelBuildingRequest.java
maven/components/trunk/maven-model-builder/src/main/java/org/apache/maven/model/ModelBuilder.java
maven/components/trunk/maven-model-builder/src/main/java/org/apache/maven/model/ModelBuildingRequest.java
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=782223&r1=782222&r2=782223&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 Sat Jun 6 10:38:42 2009
@@ -28,10 +28,12 @@
import org.apache.maven.lifecycle.LifecycleExecutionException;
import org.apache.maven.lifecycle.LifecycleExecutor;
import org.apache.maven.model.Build;
+import org.apache.maven.model.DefaultModelBuildingRequest;
import org.apache.maven.model.FileModelSource;
import org.apache.maven.model.Model;
import org.apache.maven.model.ModelBuilder;
import org.apache.maven.model.ModelBuildingException;
+import org.apache.maven.model.ModelBuildingRequest;
import org.apache.maven.model.ModelBuildingResult;
import org.apache.maven.model.io.ModelReader;
import org.apache.maven.model.resolution.ModelResolver;
@@ -86,18 +88,25 @@
new RepositoryModelResolver( repositorySystem, resolutionErrorHandler, configuration.getLocalRepository(),
configuration.getRemoteRepositories() );
+ ModelBuildingRequest request = new DefaultModelBuildingRequest();
+ request.setLenientValidation( configuration.istLenientValidation() );
+ request.setProcessPlugins( configuration.isProcessPlugins() );
+ request.setProfiles( configuration.getProfiles() );
+ request.setActiveProfileIds( configuration.getActiveProfileIds() );
+ request.setInactiveProfileIds( configuration.getInactiveProfileIds() );
+ request.setExecutionProperties( configuration.getExecutionProperties() );
+ request.setModelResolver( resolver );
+
ModelBuildingResult result;
try
{
if ( localProject )
{
- result = modelBuilder.build( pomFile, configuration.getModelBuildingRequest(), resolver );
+ result = modelBuilder.build( pomFile, request );
}
else
{
- result =
- modelBuilder.build( new FileModelSource( pomFile ), configuration.getModelBuildingRequest(),
- resolver );
+ result = modelBuilder.build( new FileModelSource( pomFile ), request );
}
}
catch ( ModelBuildingException e )
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=782223&r1=782222&r2=782223&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 Sat Jun 6 10:38:42 2009
@@ -24,8 +24,6 @@
import java.util.Properties;
import org.apache.maven.artifact.repository.ArtifactRepository;
-import org.apache.maven.model.DefaultModelBuildingRequest;
-import org.apache.maven.model.ModelBuildingRequest;
import org.apache.maven.model.ModelEventListener;
import org.apache.maven.model.Profile;
@@ -40,7 +38,26 @@
private MavenProject topProject;
- private ModelBuildingRequest modelBuildingRequest = new DefaultModelBuildingRequest().setProcessPlugins( true );
+ private boolean lenientValidation;
+
+ private boolean processPlugins;
+
+ private List<Profile> profiles;
+
+ private List<String> activeProfileIds;
+
+ private List<String> inactiveProfileIds;
+
+ private Properties executionProperties;
+
+ public DefaultProjectBuildingRequest()
+ {
+ processPlugins = true;
+ profiles = new ArrayList<Profile>();
+ activeProfileIds = new ArrayList<String>();
+ inactiveProfileIds = new ArrayList<String>();
+ executionProperties = new Properties();
+ }
public MavenProject getTopLevelProjectFromReactor()
{
@@ -80,12 +97,17 @@
public Properties getExecutionProperties()
{
- return modelBuildingRequest.getExecutionProperties();
+ return executionProperties;
}
public ProjectBuildingRequest setExecutionProperties( Properties executionProperties )
{
- modelBuildingRequest.setExecutionProperties( executionProperties );
+ this.executionProperties.clear();
+ if ( executionProperties != null )
+ {
+ this.executionProperties.putAll( executionProperties );
+ }
+
return this;
}
@@ -102,64 +124,71 @@
public boolean isProcessPlugins()
{
- return modelBuildingRequest.isProcessPlugins();
+ return processPlugins;
}
public ProjectBuildingRequest setProcessPlugins( boolean processPlugins )
{
- modelBuildingRequest.setProcessPlugins( processPlugins );
+ this.processPlugins = processPlugins;
return this;
}
public ProjectBuildingRequest setLenientValidation( boolean lenientValidation )
{
- modelBuildingRequest.setLenientValidation( lenientValidation );
+ this.lenientValidation = lenientValidation;
return this;
}
public boolean istLenientValidation()
{
- return modelBuildingRequest.istLenientValidation();
+ return lenientValidation;
}
public List<String> getActiveProfileIds()
{
- return modelBuildingRequest.getActiveProfileIds();
+ return activeProfileIds;
}
public void setActiveProfileIds( List<String> activeProfileIds )
{
- modelBuildingRequest.setActiveProfileIds( activeProfileIds );
+ this.activeProfileIds.clear();
+ if ( activeProfileIds != null )
+ {
+ this.activeProfileIds.addAll( activeProfileIds );
+ }
}
public List<String> getInactiveProfileIds()
{
- return modelBuildingRequest.getInactiveProfileIds();
+ return inactiveProfileIds;
}
public void setInactiveProfileIds( List<String> inactiveProfileIds )
{
- modelBuildingRequest.setInactiveProfileIds( inactiveProfileIds );
+ this.inactiveProfileIds.clear();
+ if ( inactiveProfileIds != null )
+ {
+ this.inactiveProfileIds.addAll( inactiveProfileIds );
+ }
}
public void setProfiles( List<Profile> profiles )
{
- modelBuildingRequest.setProfiles( profiles );
+ this.profiles.clear();
+ if ( profiles != null )
+ {
+ this.profiles.addAll( profiles );
+ }
}
public void addProfile( Profile profile )
{
- modelBuildingRequest.getProfiles().add(profile);
+ profiles.add(profile);
}
public List<Profile> getProfiles()
{
- return modelBuildingRequest.getProfiles();
- }
-
- public ModelBuildingRequest getModelBuildingRequest()
- {
- return modelBuildingRequest;
+ return profiles;
}
}
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=782223&r1=782222&r2=782223&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 Sat Jun 6 10:38:42 2009
@@ -72,6 +72,4 @@
List<Profile> getProfiles();
- ModelBuildingRequest getModelBuildingRequest();
-
}
Modified: maven/components/trunk/maven-model-builder/src/main/java/org/apache/maven/model/DefaultModelBuilder.java
URL: http://svn.apache.org/viewvc/maven/components/trunk/maven-model-builder/src/main/java/org/apache/maven/model/DefaultModelBuilder.java?rev=782223&r1=782222&r2=782223&view=diff
==============================================================================
--- maven/components/trunk/maven-model-builder/src/main/java/org/apache/maven/model/DefaultModelBuilder.java (original)
+++ maven/components/trunk/maven-model-builder/src/main/java/org/apache/maven/model/DefaultModelBuilder.java Sat Jun 6 10:38:42 2009
@@ -93,20 +93,19 @@
@Requirement
private PluginConfigurationExpander pluginConfigurationExpander;
- public ModelBuildingResult build( File pomFile, ModelBuildingRequest request, ModelResolver modelResolver )
+ public ModelBuildingResult build( File pomFile, ModelBuildingRequest request )
throws ModelBuildingException
{
- return build( new FileModelSource( pomFile ), pomFile, request, modelResolver );
+ return build( new FileModelSource( pomFile ), pomFile, request );
}
- public ModelBuildingResult build( ModelSource modelSource, ModelBuildingRequest request, ModelResolver modelResolver )
+ public ModelBuildingResult build( ModelSource modelSource, ModelBuildingRequest request )
throws ModelBuildingException
{
- return build( modelSource, null, request, modelResolver );
+ return build( modelSource, null, request );
}
- private ModelBuildingResult build( ModelSource modelSource, File pomFile, ModelBuildingRequest request,
- ModelResolver modelResolver )
+ private ModelBuildingResult build( ModelSource modelSource, File pomFile, ModelBuildingRequest request )
throws ModelBuildingException
{
DefaultModelBuildingResult result = new DefaultModelBuildingResult();
@@ -121,7 +120,7 @@
List<Model> rawModels = new ArrayList<Model>();
List<Model> resultModels = new ArrayList<Model>();
- for ( Model current = model; current != null; current = readParent( current, request, modelResolver ) )
+ for ( Model current = model; current != null; current = readParent( current, request ) )
{
Model resultModel = current;
resultModels.add( resultModel );
@@ -148,7 +147,7 @@
result.setActiveProfiles( rawModel, activeProfiles );
- configureResolver( modelResolver, resultModel );
+ configureResolver( request.getModelResolver(), resultModel );
}
Model superModel = getSuperModel();
@@ -272,6 +271,11 @@
private void configureResolver( ModelResolver modelResolver, Model model )
throws ModelBuildingException
{
+ if ( modelResolver == null )
+ {
+ return;
+ }
+
for ( Repository repository : model.getRepositories() )
{
try
@@ -311,7 +315,7 @@
}
}
- private Model readParent( Model childModel, ModelBuildingRequest request, ModelResolver modelResolver )
+ private Model readParent( Model childModel, ModelBuildingRequest request )
throws ModelBuildingException
{
Model parentModel;
@@ -324,7 +328,7 @@
if ( parentModel == null )
{
- parentModel = readParentExternally( childModel, request, modelResolver );
+ parentModel = readParentExternally( childModel, request );
}
}
else
@@ -387,11 +391,20 @@
return candidateModel;
}
- private Model readParentExternally( Model childModel, ModelBuildingRequest request, ModelResolver modelResolver )
+ private Model readParentExternally( Model childModel, ModelBuildingRequest request )
throws ModelBuildingException
{
Parent parent = childModel.getParent();
+ ModelResolver modelResolver = request.getModelResolver();
+
+ if ( modelResolver == null )
+ {
+ Exception e = new IllegalArgumentException( "No model resolver provided" );
+ throw new UnresolvableParentException( "Failed to resolve parent POM " + toId( parent ) + " for POM "
+ + toSourceHint( childModel ), e );
+ }
+
ModelSource modelSource;
try
{
Modified: maven/components/trunk/maven-model-builder/src/main/java/org/apache/maven/model/DefaultModelBuildingRequest.java
URL: http://svn.apache.org/viewvc/maven/components/trunk/maven-model-builder/src/main/java/org/apache/maven/model/DefaultModelBuildingRequest.java?rev=782223&r1=782222&r2=782223&view=diff
==============================================================================
--- maven/components/trunk/maven-model-builder/src/main/java/org/apache/maven/model/DefaultModelBuildingRequest.java (original)
+++ maven/components/trunk/maven-model-builder/src/main/java/org/apache/maven/model/DefaultModelBuildingRequest.java Sat Jun 6 10:38:42 2009
@@ -23,6 +23,8 @@
import java.util.List;
import java.util.Properties;
+import org.apache.maven.model.resolution.ModelResolver;
+
/**
* Collects settings that control building of effective models.
*
@@ -44,6 +46,8 @@
private Properties executionProperties;
+ private ModelResolver modelResolver;
+
public DefaultModelBuildingRequest()
{
profiles = new ArrayList<Profile>();
@@ -140,4 +144,16 @@
return this;
}
+ public ModelResolver getModelResolver()
+ {
+ return this.modelResolver;
+ }
+
+ public DefaultModelBuildingRequest setModelResolver( ModelResolver modelResolver )
+ {
+ this.modelResolver = modelResolver;
+
+ return this;
+ }
+
}
Modified: maven/components/trunk/maven-model-builder/src/main/java/org/apache/maven/model/ModelBuilder.java
URL: http://svn.apache.org/viewvc/maven/components/trunk/maven-model-builder/src/main/java/org/apache/maven/model/ModelBuilder.java?rev=782223&r1=782222&r2=782223&view=diff
==============================================================================
--- maven/components/trunk/maven-model-builder/src/main/java/org/apache/maven/model/ModelBuilder.java (original)
+++ maven/components/trunk/maven-model-builder/src/main/java/org/apache/maven/model/ModelBuilder.java Sat Jun 6 10:38:42 2009
@@ -38,12 +38,10 @@
*
* @param pomFile The POM file of the project to build the effective model from, must not be {@code null}.
* @param request The model building request that holds further settings, must not be {@code null}.
- * @param modelResolver The model resolver used to resolve parent POMs that are not locally reachable from the
- * project directory, must not be {@code null}.
* @return The result of the model building, never {@code null}.
* @throws ModelBuildingException If the effective model could not be built.
*/
- ModelBuildingResult build( File pomFile, ModelBuildingRequest request, ModelResolver modelResolver )
+ ModelBuildingResult build( File pomFile, ModelBuildingRequest request )
throws ModelBuildingException;
/**
@@ -53,11 +51,10 @@
*
* @param modelSource The source of the POM, must not be {@code null}.
* @param request The model building request that holds further settings, must not be {@code null}.
- * @param modelResolver The model resolver used to resolve parent POMs, must not be {@code null}.
* @return The result of the model building, never {@code null}.
* @throws ModelBuildingException If the effective model could not be built.
*/
- ModelBuildingResult build( ModelSource modelSource, ModelBuildingRequest request, ModelResolver modelResolver )
+ ModelBuildingResult build( ModelSource modelSource, ModelBuildingRequest request )
throws ModelBuildingException;
}
Modified: maven/components/trunk/maven-model-builder/src/main/java/org/apache/maven/model/ModelBuildingRequest.java
URL: http://svn.apache.org/viewvc/maven/components/trunk/maven-model-builder/src/main/java/org/apache/maven/model/ModelBuildingRequest.java?rev=782223&r1=782222&r2=782223&view=diff
==============================================================================
--- maven/components/trunk/maven-model-builder/src/main/java/org/apache/maven/model/ModelBuildingRequest.java (original)
+++ maven/components/trunk/maven-model-builder/src/main/java/org/apache/maven/model/ModelBuildingRequest.java Sat Jun 6 10:38:42 2009
@@ -22,6 +22,8 @@
import java.util.List;
import java.util.Properties;
+import org.apache.maven.model.resolution.ModelResolver;
+
/**
* Collects settings that control the building of effective models.
*
@@ -127,4 +129,21 @@
*/
ModelBuildingRequest setExecutionProperties( Properties executionProperties );
+ /**
+ * Gets the model resolver to use for resolution of mixins or parents that are not locally reachable from the
+ * project directory.
+ *
+ * @return The model resolver or {@code null} if not set.
+ */
+ ModelResolver getModelResolver();
+
+ /**
+ * Sets the model resolver to use for resolution of mixins or parents that are not locally reachable from the
+ * project directory.
+ *
+ * @param modelResolver The model resolver to use, may be {@code null}.
+ * @return This request, never {@code null}.
+ */
+ ModelBuildingRequest setModelResolver( ModelResolver modelResolver );
+
}