Author: jdcasey Date: Mon Jun 20 16:34:34 2005 New Revision: 191588 URL: http://svn.apache.org/viewcvs?rev=191588&view=rev Log: Resolving issue: MNG-271
o Added method to MavenProject called writeModel( Writer ) o Added code in MavenArchiver to export the full effective POM to ${project.build.directory}/exported-pom.xml and then embed that in the archive, rather than simply embedding ${project.file}. Modified: maven/components/trunk/maven-archiver/src/main/java/org/apache/maven/archiver/MavenArchiver.java maven/components/trunk/maven-project/src/main/java/org/apache/maven/project/MavenProject.java Modified: maven/components/trunk/maven-archiver/src/main/java/org/apache/maven/archiver/MavenArchiver.java URL: http://svn.apache.org/viewcvs/maven/components/trunk/maven-archiver/src/main/java/org/apache/maven/archiver/MavenArchiver.java?rev=191588&r1=191587&r2=191588&view=diff ============================================================================== --- maven/components/trunk/maven-archiver/src/main/java/org/apache/maven/archiver/MavenArchiver.java (original) +++ maven/components/trunk/maven-archiver/src/main/java/org/apache/maven/archiver/MavenArchiver.java Mon Jun 20 16:34:34 2005 @@ -18,13 +18,16 @@ import org.apache.maven.artifact.Artifact; import org.apache.maven.artifact.DependencyResolutionRequiredException; +import org.apache.maven.model.io.xpp3.MavenXpp3Writer; import org.apache.maven.project.MavenProject; import org.codehaus.plexus.archiver.ArchiverException; import org.codehaus.plexus.archiver.jar.JarArchiver; import org.codehaus.plexus.archiver.jar.Manifest; import org.codehaus.plexus.archiver.jar.ManifestException; +import org.codehaus.plexus.util.IOUtil; import java.io.File; +import java.io.FileWriter; import java.io.IOException; import java.io.OutputStream; import java.io.FileOutputStream; @@ -215,8 +218,11 @@ String groupId = project.getGroupId(); String artifactId = project.getArtifactId(); + + + File exportReadyPom = writeExportReadyPom( project ); - archiver.addFile( project.getFile(), "META-INF/maven/" + groupId + "/" + artifactId + "/pom.xml" ); + archiver.addFile( exportReadyPom, "META-INF/maven/" + groupId + "/" + artifactId + "/pom.xml" ); // ---------------------------------------------------------------------- // Create pom.properties file @@ -268,5 +274,27 @@ // Cleanup pomPropertiesFile.delete(); + } + + private File writeExportReadyPom( MavenProject project ) throws IOException + { + String buildDirectory = project.getBuild().getDirectory(); + + File fullPom = new File( buildDirectory, "exported-pom.xml" ); + + FileWriter fWriter = null; + + try + { + fWriter = new FileWriter( fullPom ); + + project.writeModel( fWriter ); + } + finally + { + IOUtil.close( fWriter ); + } + + return fullPom; } } Modified: maven/components/trunk/maven-project/src/main/java/org/apache/maven/project/MavenProject.java URL: http://svn.apache.org/viewcvs/maven/components/trunk/maven-project/src/main/java/org/apache/maven/project/MavenProject.java?rev=191588&r1=191587&r2=191588&view=diff ============================================================================== --- maven/components/trunk/maven-project/src/main/java/org/apache/maven/project/MavenProject.java (original) +++ maven/components/trunk/maven-project/src/main/java/org/apache/maven/project/MavenProject.java Mon Jun 20 16:34:34 2005 @@ -40,9 +40,12 @@ import org.apache.maven.model.PluginExecution; import org.apache.maven.model.ReportPlugin; import org.apache.maven.model.ReportSet; +import org.apache.maven.model.io.xpp3.MavenXpp3Writer; import org.codehaus.plexus.util.xml.Xpp3Dom; import java.io.File; +import java.io.IOException; +import java.io.Writer; import java.util.ArrayList; import java.util.Collection; import java.util.Collections; @@ -1032,5 +1035,12 @@ public void setExecutionProject( MavenProject executionProject ) { this.executionProject = executionProject; + } + + public void writeModel( Writer writer ) throws IOException + { + MavenXpp3Writer pomWriter = new MavenXpp3Writer(); + + pomWriter.write( writer, getModel() ); } } --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]