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