Author: sisbell
Date: Fri Jul 18 03:30:43 2008
New Revision: 677873

URL: http://svn.apache.org/viewvc?rev=677873&view=rev
Log:
Support for attributes in the pom.

Modified:
    
maven/sandbox/trunk/shared/maven-shared-model/src/main/java/org/apache/maven/shared/model/ModelMarshaller.java
    
maven/sandbox/trunk/shared/maven-shared-model/src/main/java/org/apache/maven/shared/model/ModelTransformerContext.java
    
maven/sandbox/trunk/shared/maven-shared-model/src/main/java/org/apache/maven/shared/model/impl/DefaultModelDataSource.java

Modified: 
maven/sandbox/trunk/shared/maven-shared-model/src/main/java/org/apache/maven/shared/model/ModelMarshaller.java
URL: 
http://svn.apache.org/viewvc/maven/sandbox/trunk/shared/maven-shared-model/src/main/java/org/apache/maven/shared/model/ModelMarshaller.java?rev=677873&r1=677872&r2=677873&view=diff
==============================================================================
--- 
maven/sandbox/trunk/shared/maven-shared-model/src/main/java/org/apache/maven/shared/model/ModelMarshaller.java
 (original)
+++ 
maven/sandbox/trunk/shared/maven-shared-model/src/main/java/org/apache/maven/shared/model/ModelMarshaller.java
 Fri Jul 18 03:30:43 2008
@@ -14,6 +14,9 @@
  */
 public final class ModelMarshaller {
 
+    private ModelMarshaller() {
+    }
+
     public static List<ModelProperty> marshallXmlToModelProperties(InputStream 
inputStream, String baseUri,
                                                                    Set<String> 
collections)
             throws IOException {
@@ -39,6 +42,7 @@
         XMLStreamReader xmlStreamReader = null;
         try {
             xmlStreamReader = 
xmlInputFactory.createXMLStreamReader(inputStream);
+            Map<String, String> attributes = new HashMap<String, String>();
             for (; ; xmlStreamReader.next()) {
                 int type = xmlStreamReader.getEventType();
                 switch (type) {
@@ -55,6 +59,12 @@
                         depth++;
                         if (!tagName.equals(baseUri)) {
                             modelProperties.add(new ModelProperty(tagName, 
tagValue));
+                            if (!attributes.isEmpty()) {
+                                for (Map.Entry<String, String> e : 
attributes.entrySet()) {
+                                    modelProperties.add(new 
ModelProperty(e.getKey(), e.getValue()));
+                                }
+                                attributes.clear();
+                            }
                         }
 
                         tagName = 
uri.getUriFor(xmlStreamReader.getName().getLocalPart(), depth);
@@ -65,6 +75,13 @@
                             
uri.addTag(xmlStreamReader.getName().getLocalPart());
                         }
                         tagValue = null;
+
+                    }
+                    case XMLStreamConstants.ATTRIBUTE: {
+                        for (int i = 0; i < 
xmlStreamReader.getAttributeCount(); i++) {
+                            attributes.put(tagName + "#property/" + 
xmlStreamReader.getAttributeName(i).getLocalPart(),
+                                    xmlStreamReader.getAttributeValue(i));
+                        }
                         break;
                     }
                     case XMLStreamConstants.END_ELEMENT: {
@@ -74,6 +91,12 @@
                     }
                     case XMLStreamConstants.END_DOCUMENT: {
                         modelProperties.add(new ModelProperty(tagName, 
tagValue));
+                        if (!attributes.isEmpty()) {
+                            for (Map.Entry<String, String> e : 
attributes.entrySet()) {
+                                modelProperties.add(new 
ModelProperty(e.getKey(), e.getValue()));
+                            }
+                            attributes.clear();
+                        }
                         return modelProperties;
                     }
                 }
@@ -81,7 +104,7 @@
         } catch (XMLStreamException e) {
             throw new IOException(":" + e.toString());
         } finally {
-            if(xmlStreamReader != null) {
+            if (xmlStreamReader != null) {
                 try {
                     xmlStreamReader.close();
                 } catch (XMLStreamException e) {
@@ -96,7 +119,6 @@
         }
     }
 
-
     public static String unmarshalModelPropertiesToXml(List<ModelProperty> 
modelProperties, String baseUri) throws IOException {
         if (modelProperties == null || modelProperties.isEmpty()) {
             throw new IllegalArgumentException("modelProperties: null or 
empty");
@@ -113,8 +135,11 @@
         int n = 1;
         for (ModelProperty mp : modelProperties) {
             String uri = mp.getUri();
-            String val = (mp.getValue() != null) ? "\"" + mp.getValue() + "\"" 
: null;
-         //   System.out.println("new ModelProperty(\"" + mp.getUri() +"\" , " 
+ val +"),");
+            if(uri.contains("#property")) {
+                continue;    
+            }
+            //String val = (mp.getValue() != null) ? "\"" + mp.getValue() + 
"\"" : null;
+            //   System.out.println("new ModelProperty(\"" + mp.getUri() +"\" 
, " + val +"),");
             if (!uri.startsWith(baseUri)) {
                 throw new IllegalArgumentException("Passed in model property 
that does not match baseUri: Property URI = "
                         + uri + ", Base URI = " + baseUri);
@@ -126,7 +151,17 @@
                 }
             }
             String tag = tagNames.get(tagNames.size() - 1);
-            sb.append(toStartTag(tag));
+
+            ModelProperty attribute = null;
+            int peekIndex = modelProperties.indexOf(mp) + 1;
+            if(peekIndex <= modelProperties.size() - 1) {
+                ModelProperty peekProperty = modelProperties.get(peekIndex);
+                if(peekProperty.getUri().contains("#property")) {
+                    attribute = peekProperty;
+                }
+            }
+
+            sb.append(toStartTag(tag, attribute));
             if (mp.getResolvedValue() != null) {
                 sb.append(mp.getResolvedValue());
                 sb.append(toEndTag(tag));
@@ -146,9 +181,14 @@
         return 
Arrays.asList(uri.substring(basePosition).replaceAll("#collection", 
"").split("/"));
     }
 
-    private static String toStartTag(String value) {
+    private static String toStartTag(String value, ModelProperty attribute) {
         StringBuffer sb = new StringBuffer();
-        sb.append("<").append(value).append(">\r\n");
+        sb.append("<").append(value);
+        if(attribute != null) {
+            sb.append(" 
").append(attribute.getUri().substring(attribute.getUri().indexOf("#property/") 
+ 10)).append("=\"")
+                    .append(attribute.getValue()).append("\" ");
+        }
+        sb.append(">\r\n");
         return sb.toString();
     }
 

Modified: 
maven/sandbox/trunk/shared/maven-shared-model/src/main/java/org/apache/maven/shared/model/ModelTransformerContext.java
URL: 
http://svn.apache.org/viewvc/maven/sandbox/trunk/shared/maven-shared-model/src/main/java/org/apache/maven/shared/model/ModelTransformerContext.java?rev=677873&r1=677872&r2=677873&view=diff
==============================================================================
--- 
maven/sandbox/trunk/shared/maven-shared-model/src/main/java/org/apache/maven/shared/model/ModelTransformerContext.java
 (original)
+++ 
maven/sandbox/trunk/shared/maven-shared-model/src/main/java/org/apache/maven/shared/model/ModelTransformerContext.java
 Fri Jul 18 03:30:43 2008
@@ -127,7 +127,7 @@
 
         try {
             DomainModel domainModel = 
toModelTransformer.transformToDomainModel(mps);
-            domainModel.setEventHistory(modelDataSource.getEventHistory());
+            //domainModel.setEventHistory(modelDataSource.getEventHistory());
             return domainModel;
         } catch (IOException e) {
             System.out.println(modelDataSource.getEventHistory());
@@ -173,7 +173,7 @@
 
         for (ModelProperty p : properties) {
             String uri = p.getUri();
-            String parentUri = uri.substring(0, uri.lastIndexOf("/"));
+            String parentUri = uri.substring(0, 
uri.lastIndexOf("/")).replaceAll("#property", "");
             if (!projectIsContained && uri.equals(baseUri)) {
                 projectIsContained = true;
                 processedProperties.add(p);
@@ -184,7 +184,6 @@
                 position.add(pst, uri);
             } 
         }
-        logger.info("Properties removed through sort: " + (properties.size() - 
processedProperties.size()));
         return processedProperties;
     }
 }

Modified: 
maven/sandbox/trunk/shared/maven-shared-model/src/main/java/org/apache/maven/shared/model/impl/DefaultModelDataSource.java
URL: 
http://svn.apache.org/viewvc/maven/sandbox/trunk/shared/maven-shared-model/src/main/java/org/apache/maven/shared/model/impl/DefaultModelDataSource.java?rev=677873&r1=677872&r2=677873&view=diff
==============================================================================
--- 
maven/sandbox/trunk/shared/maven-shared-model/src/main/java/org/apache/maven/shared/model/impl/DefaultModelDataSource.java
 (original)
+++ 
maven/sandbox/trunk/shared/maven-shared-model/src/main/java/org/apache/maven/shared/model/impl/DefaultModelDataSource.java
 Fri Jul 18 03:30:43 2008
@@ -35,6 +35,7 @@
                     unknownProperties.add(mp);
                 }
             }
+
             List<DeleteEvent> des = new ArrayList<DeleteEvent>();
             for (DeleteEvent de : deleteEvents) {
                 if (aContainsAnyOfB(de.getRemovedModelProperties(), 
unknownProperties)) {
@@ -48,9 +49,6 @@
                 sb.append(mp).append("\r\n");
             }
 
-            //    for (DeleteEvent de : des) {
-            //        sb.append(de.toString());
-            //    }
             System.out.println(sb);
             throw new DataSourceException("ModelContainer 'a' contains 
elements not within datasource");
         }
@@ -269,11 +267,6 @@
                 uris.add(p.getUri());
             }
         }
-        /*
-        for (ModelProperty mp : processedProperties) {
-            System.out.println(mp);
-        }
-        */
         return processedProperties;
     }
 


Reply via email to