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/26 21:48:01 UTC

svn commit: r689183 - in /maven/shared/trunk/maven-shared-model/src/main/java/org/apache/maven/shared/model: ModelTransformerContext.java impl/DefaultModelDataSource.java

Author: sisbell
Date: Tue Aug 26 12:48:00 2008
New Revision: 689183

URL: http://svn.apache.org/viewvc?rev=689183&view=rev
Log:
Fixed bug: If a node tag was empty, then the model property would be treated as text field. This caused the xml model generation to fail if it inherited a similar node that wasn't empty.

Modified:
    maven/shared/trunk/maven-shared-model/src/main/java/org/apache/maven/shared/model/ModelTransformerContext.java
    maven/shared/trunk/maven-shared-model/src/main/java/org/apache/maven/shared/model/impl/DefaultModelDataSource.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=689183&r1=689182&r2=689183&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 Tue Aug 26 12:48:00 2008
@@ -89,6 +89,7 @@
         if(modelPropertyTransformers == null) {
             throw new IllegalArgumentException("modelPropertyTransformers: null");
         }
+        
         List<ModelProperty> properties = new ArrayList<ModelProperty>(modelProperties);
         List<ModelPropertyTransformer> transformers = new ArrayList<ModelPropertyTransformer>(modelPropertyTransformers);
         for(ModelPropertyTransformer mpt : transformers) {
@@ -123,9 +124,20 @@
         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);
+
         String baseUriForModel = fromModelTransformer.getBaseUri();
         List<ModelProperty> modelProperties =
             sort( transformedProperties, baseUriForModel );
+
         ModelDataSource modelDataSource = new DefaultModelDataSource();
         modelDataSource.init( modelProperties, factories );
 
@@ -218,7 +230,7 @@
         try
         {
             DomainModel domainModel = toModelTransformer.transformToDomainModel( mps );
-            //domainModel.setEventHistory(modelDataSource.getEventHistory());
+            domainModel.setEventHistory(modelDataSource.getEventHistory());
             return domainModel;
         }
         catch ( IOException e )
@@ -303,4 +315,21 @@
         }
         return processedProperties;
     }
+    
+    private static boolean isEmptyTag(ModelProperty modelProperty, List<ModelProperty> modelProperties)
+    {
+        if(modelProperty.getValue() != null)
+        {
+            return modelProperty.getValue().trim().equals("");
+        }
+
+        String uri = modelProperty.getUri();
+        for(ModelProperty mp: modelProperties) {
+            if(mp.getUri().startsWith(uri))
+            {
+                return false;
+            }
+        }
+        return true;
+    }
 }
\ No newline at end of file

Modified: maven/shared/trunk/maven-shared-model/src/main/java/org/apache/maven/shared/model/impl/DefaultModelDataSource.java
URL: http://svn.apache.org/viewvc/maven/shared/trunk/maven-shared-model/src/main/java/org/apache/maven/shared/model/impl/DefaultModelDataSource.java?rev=689183&r1=689182&r2=689183&view=diff
==============================================================================
--- maven/shared/trunk/maven-shared-model/src/main/java/org/apache/maven/shared/model/impl/DefaultModelDataSource.java (original)
+++ maven/shared/trunk/maven-shared-model/src/main/java/org/apache/maven/shared/model/impl/DefaultModelDataSource.java Tue Aug 26 12:48:00 2008
@@ -364,15 +364,14 @@
                 throw new IllegalArgumentException(
                     "Base URI is longer than model property uri: Base URI = " + baseUri + ", ModelProperty = " + p );
             }
-            String subUri = p.getUri().substring( baseUri.length(), modelPropertyLength );
 
+           String subUri = p.getUri().substring( baseUri.length(), modelPropertyLength );
             if ( !uris.contains( p.getUri() ) || ( subUri.contains( "#collection" ) &&
                 (!subUri.endsWith( "#collection" ) && !subUri.endsWith("#set")) &&
                 ( !combineChildrenUris.contains( p.getUri() ) || p.getUri().endsWith( "#property/combine.children" ) ) ) )
             {
-
-                processedProperties.add( findLastIndexOfParent( p, processedProperties ) + 1, p );
-                uris.add( p.getUri() );
+                    processedProperties.add( findLastIndexOfParent( p, processedProperties ) + 1, p );
+                    uris.add( p.getUri() );
             }
             //if parentUri ends in set and uri is contained don't include it
         }