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/11/28 17:08:33 UTC
svn commit: r885106 - in
/maven/maven-3/trunk/maven-model-builder/src/main/java/org/apache/maven/model/building:
DefaultModelBuilder.java DefaultModelProblemCollector.java
Author: bentmann
Date: Sat Nov 28 16:08:32 2009
New Revision: 885106
URL: http://svn.apache.org/viewvc?rev=885106&view=rev
Log:
o Improved handling of circular parents
Modified:
maven/maven-3/trunk/maven-model-builder/src/main/java/org/apache/maven/model/building/DefaultModelBuilder.java
maven/maven-3/trunk/maven-model-builder/src/main/java/org/apache/maven/model/building/DefaultModelProblemCollector.java
Modified: maven/maven-3/trunk/maven-model-builder/src/main/java/org/apache/maven/model/building/DefaultModelBuilder.java
URL: http://svn.apache.org/viewvc/maven/maven-3/trunk/maven-model-builder/src/main/java/org/apache/maven/model/building/DefaultModelBuilder.java?rev=885106&r1=885105&r2=885106&view=diff
==============================================================================
--- maven/maven-3/trunk/maven-model-builder/src/main/java/org/apache/maven/model/building/DefaultModelBuilder.java (original)
+++ maven/maven-3/trunk/maven-model-builder/src/main/java/org/apache/maven/model/building/DefaultModelBuilder.java Sat Nov 28 16:08:32 2009
@@ -117,7 +117,7 @@
return build( request, new LinkedHashSet<String>() );
}
- private ModelBuildingResult build( ModelBuildingRequest request, Collection<String> imports )
+ private ModelBuildingResult build( ModelBuildingRequest request, Collection<String> importIds )
throws ModelBuildingException
{
DefaultModelBuildingResult result = new DefaultModelBuildingResult();
@@ -137,6 +137,9 @@
ModelData resultData = new ModelData( inputModel );
ModelData superData = new ModelData( getSuperModel() );
+ Collection<String> parentIds = new LinkedHashSet<String>();
+ parentIds.add( ModelProblemUtils.toId( inputModel ) );
+
List<ModelData> lineage = new ArrayList<ModelData>();
for ( ModelData currentData = resultData; currentData != null; )
@@ -182,6 +185,18 @@
{
currentData = superData;
}
+ else if ( !parentIds.add( currentData.getId() ) )
+ {
+ String message = "The parents form a cycle: ";
+ for ( String modelId : parentIds )
+ {
+ message += modelId + " -> ";
+ }
+ message += currentData.getId();
+
+ problems.add( ModelProblem.Severity.FATAL, message, null );
+ throw new ModelBuildingException( problems.getRootModelId(), problems.getProblems() );
+ }
}
assembleInheritance( lineage, request, problems );
@@ -588,7 +603,7 @@
}
private void importDependencyManagement( Model model, ModelBuildingRequest request,
- DefaultModelProblemCollector problems, Collection<String> imports )
+ DefaultModelProblemCollector problems, Collection<String> importIds )
{
DependencyManagement depMngt = model.getDependencyManagement();
@@ -599,7 +614,7 @@
String importing = model.getGroupId() + ':' + model.getArtifactId() + ':' + model.getVersion();
- imports.add( importing );
+ importIds.add( importing );
ModelResolver modelResolver = request.getModelResolver();
@@ -624,10 +639,10 @@
String imported = groupId + ':' + artifactId + ':' + version;
- if ( imports.contains( imported ) )
+ if ( importIds.contains( imported ) )
{
String message = "The dependencies of type=pom and with scope=import form a cycle: ";
- for ( String modelId : imports )
+ for ( String modelId : importIds )
{
message += modelId + " -> ";
}
@@ -673,7 +688,7 @@
ModelBuildingResult importResult;
try
{
- importResult = build( importRequest, imports );
+ importResult = build( importRequest, importIds );
}
catch ( ModelBuildingException e )
{
@@ -703,7 +718,7 @@
importMngts.add( importMngt );
}
- imports.remove( importing );
+ importIds.remove( importing );
dependencyManagementImporter.importManagement( model, importMngts, request, problems );
}
Modified: maven/maven-3/trunk/maven-model-builder/src/main/java/org/apache/maven/model/building/DefaultModelProblemCollector.java
URL: http://svn.apache.org/viewvc/maven/maven-3/trunk/maven-model-builder/src/main/java/org/apache/maven/model/building/DefaultModelProblemCollector.java?rev=885106&r1=885105&r2=885106&view=diff
==============================================================================
--- maven/maven-3/trunk/maven-model-builder/src/main/java/org/apache/maven/model/building/DefaultModelProblemCollector.java (original)
+++ maven/maven-3/trunk/maven-model-builder/src/main/java/org/apache/maven/model/building/DefaultModelProblemCollector.java Sat Nov 28 16:08:32 2009
@@ -86,6 +86,11 @@
{
this.sourceModel = source;
this.source = null;
+
+ if ( rootModel == null )
+ {
+ rootModel = source;
+ }
}
private String getSource()