Only in .: .classpath Only in .: .project Only in .: bin diff -ur ./src/java/org/apache/ivy/ant/IvyMakePom.java ../apache-ivy-2.0.0-custom/src/java/org/apache/ivy/ant/IvyMakePom.java --- ./src/java/org/apache/ivy/ant/IvyMakePom.java 2008-02-23 12:14:12.000000000 -0500 +++ ../apache-ivy-2.0.0-custom/src/java/org/apache/ivy/ant/IvyMakePom.java 2008-03-10 22:04:54.969797200 -0400 @@ -63,11 +63,11 @@ private Collection mappings = new ArrayList(); - public File getPomFile() { + public File getTargetDir() { return pomFile; } - public void setPomFile(File file) { + public void setTargetDir(File file) { pomFile = file; } @@ -99,15 +99,17 @@ throw new BuildException("source ivy file is required for makepom task"); } if (pomFile == null) { - throw new BuildException("destination pom file is required for makepom task"); + throw new BuildException("destination dir is required for makepom task"); } ModuleDescriptor md = XmlModuleDescriptorParser.getInstance().parseDescriptor( getSettings(), ivyFile.toURL(), false); - PomModuleDescriptorWriter.write(md, + int uniqueArtifacts = PomModuleDescriptorWriter.write(md, headerFile == null ? null : FileUtil.readEntirely(getHeaderFile()), mappings.isEmpty() ? PomModuleDescriptorWriter.DEFAULT_MAPPING : new ConfigurationScopeMapping(getMappingsMap()), pomFile); + project.setProperty("ivy.pom.descriptor.size", + String.valueOf(uniqueArtifacts)); } catch (MalformedURLException e) { throw new BuildException("unable to convert given ivy file to url: " + ivyFile + ": " + e, e); @@ -116,7 +118,7 @@ throw new BuildException("syntax errors in ivy file " + ivyFile + ": " + e, e); } catch (Exception e) { throw new BuildException("impossible convert given ivy file to pom file: " + e - + " from=" + ivyFile + " to=" + pomFile, e); + + " from=" + ivyFile, e); } } diff -ur ./src/java/org/apache/ivy/plugins/parser/m2/PomModuleDescriptorWriter.java ../apache-ivy-2.0.0-custom/src/java/org/apache/ivy/plugins/parser/m2/PomModuleDescriptorWriter.java --- ./src/java/org/apache/ivy/plugins/parser/m2/PomModuleDescriptorWriter.java 2008-02-23 12:14:10.000000000 -0500 +++ ../apache-ivy-2.0.0-custom/src/java/org/apache/ivy/plugins/parser/m2/PomModuleDescriptorWriter.java 2008-03-11 12:06:52.230424800 -0400 @@ -26,6 +26,7 @@ import java.util.Map; import org.apache.ivy.Ivy; +import org.apache.ivy.core.module.descriptor.Artifact; import org.apache.ivy.core.module.descriptor.DependencyDescriptor; import org.apache.ivy.core.module.descriptor.ModuleDescriptor; import org.apache.ivy.core.module.id.ModuleRevisionId; @@ -46,14 +47,42 @@ write(md, null, mapping, output); } - public static void write(ModuleDescriptor md, + public static int write(ModuleDescriptor md, String licenseHeader, ConfigurationScopeMapping mapping, File output) throws IOException { if (output.getParentFile() != null) { output.getParentFile().mkdirs(); } - PrintWriter out = new PrintWriter(new OutputStreamWriter(new FileOutputStream(output), - "UTF-8")); + PrintWriter out = new PrintWriter(new OutputStreamWriter( + new FileOutputStream(output + "/" + md.getModuleRevisionId().getName() + + ".pom"), "UTF-8")); + + String packaging = null; + Map uniqueArtifacts = new HashMap (); + + Artifact[] artifacts = md.getAllArtifacts(); + + if (artifacts != null && artifacts.length > 0) { + for (int i = 0; i < artifacts.length; i++) { + if ((!"ivy".equals(artifacts[i].getType()) + && !"pom".equals(artifacts[i].getType()))) { + + String artifactKey = artifacts[i].getName(); + if (!uniqueArtifacts.containsKey(artifacts[i].getName()) + && !artifactKey.equals(md.getModuleRevisionId().getName())) { + uniqueArtifacts.put(artifactKey, artifacts[i]); + } + + if (packaging == null) packaging = artifacts[i].getExt(); + } + } + artifacts = null; + + if (uniqueArtifacts.size() > 0) { + packaging = "pom"; + } + } + try { out.println(""); if (licenseHeader != null) { @@ -72,19 +101,32 @@ out.println(" xsi:schemaLocation=\"http://maven.apache.org/POM/4.0.0 " + "http://maven.apache.org/maven-v4_0_0.xsd\">\n"); out.println(" 4.0.0"); - printModuleId(md, out); + printModuleId(md, out, packaging); printDependencies(md, mapping, out); + out.println(""); } finally { out.close(); } + + int outputValue = uniqueArtifacts.size(); + if (outputValue > 0) { + Artifact[] unique = new Artifact[uniqueArtifacts.size()]; + uniqueArtifacts.values().toArray(unique); + uniqueArtifacts = null; + + handleArtifacts(md, licenseHeader, unique, output); + } + + return outputValue; } - private static void printModuleId(ModuleDescriptor md, PrintWriter out) { + private static void printModuleId(ModuleDescriptor md, PrintWriter out, String packaging) { ModuleRevisionId mrid = md.getModuleRevisionId(); + out.println(" " + mrid.getOrganisation() + ""); out.println(" " + mrid.getName() + ""); - out.println(" jar"); + out.println(" " + packaging + ""); if (mrid.getRevision() != null) { out.println(" " + mrid.getRevision() + ""); } @@ -92,7 +134,73 @@ out.println(" " + md.getHomePage() + ""); } } - + + private static void handleArtifacts(ModuleDescriptor md, String licenseHeader, + Artifact[] artifacts, File output) throws IOException { + for (int i = 0; i < artifacts.length; i++) { + + PrintWriter out = new PrintWriter(new OutputStreamWriter( + new FileOutputStream(output + "/" + artifacts[i].getName() + ".pom"), "UTF-8")); + + try { + out.println(""); + if (licenseHeader != null) { + out.print(licenseHeader); + } + out.println(""); + out.println("\n"); + out.println(" 4.0.0"); + + printArtifactId(md, artifacts[i], out); + printParent(md, out); + + out.println(""); + } finally { + out.close(); + } + } + } + + private static void printParent(ModuleDescriptor md, PrintWriter out) { + ModuleRevisionId mrid = md.getModuleRevisionId(); + out.println(""); + out.println(" "); + out.println(" " + mrid.getOrganisation() + ""); + out.println(" " + mrid.getName() + ""); + if (mrid.getRevision() != null) { + out.println(" " + mrid.getRevision() + ""); + } + if (md.getHomePage() != null) { + out.println(" " + md.getHomePage() + ""); + } + out.println(" "); + } + + private static void printArtifactId(ModuleDescriptor md, Artifact artifact, + PrintWriter out) { + ModuleRevisionId mrid = md.getModuleRevisionId(); + out.println(" " + mrid.getOrganisation() + ""); + out.println(" " + artifact.getName() + ""); + out.println(" " + ((artifact.getExt() != null) ? + artifact.getExt() : artifact.getType()) + ""); + if (mrid.getRevision() != null) { + out.println(" " + mrid.getRevision() + ""); + } + if (md.getHomePage() != null) { + out.println(" " + md.getHomePage() + ""); + } + } + private static void printDependencies( ModuleDescriptor md, ConfigurationScopeMapping mapping, PrintWriter out) { DependencyDescriptor[] dds = md.getDependencies(); Only in .: ttv