Index: src/java/org/apache/ivy/plugins/parser/m2/PomModuleDescriptorParser.java =================================================================== --- src/java/org/apache/ivy/plugins/parser/m2/PomModuleDescriptorParser.java (revision 752110) +++ src/java/org/apache/ivy/plugins/parser/m2/PomModuleDescriptorParser.java (working copy) @@ -23,6 +23,7 @@ import java.net.URL; import java.text.ParseException; import java.util.Date; +import java.util.HashMap; import java.util.Iterator; import java.util.List; import java.util.Map; @@ -152,7 +153,24 @@ String groupId = domReader.getGroupId(); String artifactId = domReader.getArtifactId(); String version = domReader.getVersion(); - mdBuilder.setModuleRevId(groupId , artifactId , version); + + String directory = domReader.getDirectory(); + String finalName = domReader.getFinalName(); + Map extraAttributes = new HashMap(); + if(finalName!=null) { + extraAttributes.put("finalName", finalName); + } + if(directory!=null) { + extraAttributes.put("directory", directory); + } + + if(extraAttributes.size()>0) { + mdBuilder.setModuleRevId(groupId , artifactId , version,extraAttributes); + } + else { + mdBuilder.setModuleRevId(groupId , artifactId , version); + } + mdBuilder.setHomePage(domReader.getHomePage()); mdBuilder.setDescription(domReader.getDescription()); Index: src/java/org/apache/ivy/plugins/parser/m2/PomModuleDescriptorBuilder.java =================================================================== --- src/java/org/apache/ivy/plugins/parser/m2/PomModuleDescriptorBuilder.java (revision 752110) +++ src/java/org/apache/ivy/plugins/parser/m2/PomModuleDescriptorBuilder.java (working copy) @@ -223,6 +223,17 @@ } } + public void setModuleRevId(String groupId, String artifactId, String version, Map extraAttributes) { + mrid = ModuleRevisionId.newInstance(groupId, artifactId, version, extraAttributes); + ivyModuleDescriptor.setModuleRevisionId(mrid); + + if ((version == null) || version.endsWith("SNAPSHOT")) { + ivyModuleDescriptor.setStatus("integration"); + } else { + ivyModuleDescriptor.setStatus("release"); + } + } + public void setHomePage(String homePage) { ivyModuleDescriptor.setHomePage(homePage); } Index: src/java/org/apache/ivy/plugins/parser/m2/PomReader.java =================================================================== --- src/java/org/apache/ivy/plugins/parser/m2/PomReader.java (revision 752110) +++ src/java/org/apache/ivy/plugins/parser/m2/PomReader.java (working copy) @@ -82,6 +82,9 @@ private static final String PLUGINS = "plugins"; private static final String PLUGIN = "plugin"; private static final String TYPE = "type"; + private static final String BUILD = "build"; + private static final String FINAL_NAME = "finalName"; + private static final String DIRECTORY = "directory"; private HashMap properties = new HashMap(); @@ -443,7 +446,32 @@ return pomProperties; } - + /** + * + * @return the value of build->finalName or null, if not defined + */ + public String getFinalName(){ + Element build = getFirstChildElement(projectElement, BUILD); + if(build!=null) + { + return getFirstChildText(build, FINAL_NAME); + } + return null; + } + + /** + * + * @return the value of build->directory or null, if not defined + */ + public String getDirectory(){ + Element build = getFirstChildElement(projectElement, BUILD); + if(build!=null) + { + return getFirstChildText(build, DIRECTORY); + } + return null; + } + private String replaceProps(String val) { if (val == null) { return null;