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;
}