You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@maven.apache.org by si...@apache.org on 2008/08/29 19:19:58 UTC

svn commit: r690340 - /maven/shared/trunk/maven-shared-model/src/main/java/org/apache/maven/shared/model/ModelTransformerContext.java

Author: sisbell
Date: Fri Aug 29 10:19:57 2008
New Revision: 690340

URL: http://svn.apache.org/viewvc?rev=690340&view=rev
Log:
Fix: There may be empty tags, containing empty tags. Now removes entire parent node.

Modified:
    maven/shared/trunk/maven-shared-model/src/main/java/org/apache/maven/shared/model/ModelTransformerContext.java

Modified: maven/shared/trunk/maven-shared-model/src/main/java/org/apache/maven/shared/model/ModelTransformerContext.java
URL: http://svn.apache.org/viewvc/maven/shared/trunk/maven-shared-model/src/main/java/org/apache/maven/shared/model/ModelTransformerContext.java?rev=690340&r1=690339&r2=690340&view=diff
==============================================================================
--- maven/shared/trunk/maven-shared-model/src/main/java/org/apache/maven/shared/model/ModelTransformerContext.java (original)
+++ maven/shared/trunk/maven-shared-model/src/main/java/org/apache/maven/shared/model/ModelTransformerContext.java Fri Aug 29 10:19:57 2008
@@ -123,15 +123,7 @@
         List<ModelProperty> transformedProperties =
                 importModelProperties(importModels, fromModelTransformer.transformToModelProperties( domainModels ));
 
-        List<ModelProperty> emptyTags = new ArrayList<ModelProperty>();
-        for(ModelProperty mp: transformedProperties)
-        {
-            if(isEmptyTag(mp, transformedProperties))
-            {
-                emptyTags.add(mp);
-            }
-        }
-        transformedProperties.removeAll(emptyTags);
+        transformedProperties.removeAll(findEmptyTags(transformedProperties));
 
         String baseUriForModel = fromModelTransformer.getBaseUri();
         List<ModelProperty> modelProperties =
@@ -325,6 +317,23 @@
         }
         return processedProperties;
     }
+
+    private List<ModelProperty> findEmptyTags(List<ModelProperty> modelProperties)
+    {
+        List<ModelProperty> props = new ArrayList<ModelProperty>(modelProperties);
+        List<ModelProperty> emptyTags = new ArrayList<ModelProperty>();
+        for(ModelProperty mp: props)
+        {
+            if(isEmptyTag(mp, props))
+            {
+                emptyTags.add(mp);
+                props.remove(mp);
+                emptyTags.addAll(findEmptyTags(props));
+                break;
+            }
+        }
+        return emptyTags;
+    }
     
     private static boolean isEmptyTag(ModelProperty modelProperty, List<ModelProperty> modelProperties)
     {
@@ -344,7 +353,7 @@
 
         String uri = modelProperty.getUri();
         for(ModelProperty mp: modelProperties) {
-            if(mp.getUri().startsWith(uri))
+            if(mp.getUri().startsWith(uri) && !mp.equals(modelProperty))
             {
                 return false;
             }