You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@maven.apache.org by jd...@apache.org on 2007/08/16 01:49:17 UTC

svn commit: r566413 - in /maven/plugins/trunk/maven-assembly-plugin/src: main/java/org/apache/maven/plugin/assembly/io/DefaultAssemblyReader.java test/java/org/apache/maven/plugin/assembly/io/DefaultAssemblyReaderTest.java

Author: jdcasey
Date: Wed Aug 15 16:49:16 2007
New Revision: 566413

URL: http://svn.apache.org/viewvc?view=rev&rev=566413
Log:
[MASSEMBLY-184] Modified assembly descriptor loading process to inject component descriptors ahead of interpolation, so they too are interpolated.

Modified:
    maven/plugins/trunk/maven-assembly-plugin/src/main/java/org/apache/maven/plugin/assembly/io/DefaultAssemblyReader.java
    maven/plugins/trunk/maven-assembly-plugin/src/test/java/org/apache/maven/plugin/assembly/io/DefaultAssemblyReaderTest.java

Modified: maven/plugins/trunk/maven-assembly-plugin/src/main/java/org/apache/maven/plugin/assembly/io/DefaultAssemblyReader.java
URL: http://svn.apache.org/viewvc/maven/plugins/trunk/maven-assembly-plugin/src/main/java/org/apache/maven/plugin/assembly/io/DefaultAssemblyReader.java?view=diff&rev=566413&r1=566412&r2=566413
==============================================================================
--- maven/plugins/trunk/maven-assembly-plugin/src/main/java/org/apache/maven/plugin/assembly/io/DefaultAssemblyReader.java (original)
+++ maven/plugins/trunk/maven-assembly-plugin/src/main/java/org/apache/maven/plugin/assembly/io/DefaultAssemblyReader.java Wed Aug 15 16:49:16 2007
@@ -265,6 +265,8 @@
             AssemblyXpp3Reader r = new AssemblyXpp3Reader();
             assembly = r.read( reader );
 
+            mergeComponentsWithMainAssembly( assembly, configSource );
+
             assembly = new AssemblyInterpolator().interpolate( assembly, project, context );
         }
         catch ( IOException e )
@@ -288,8 +290,6 @@
         {
             includeSiteInAssembly( assembly, configSource );
         }
-
-        mergeComponentsWithMainAssembly( assembly, configSource );
 
         return assembly;
     }

Modified: maven/plugins/trunk/maven-assembly-plugin/src/test/java/org/apache/maven/plugin/assembly/io/DefaultAssemblyReaderTest.java
URL: http://svn.apache.org/viewvc/maven/plugins/trunk/maven-assembly-plugin/src/test/java/org/apache/maven/plugin/assembly/io/DefaultAssemblyReaderTest.java?view=diff&rev=566413&r1=566412&r2=566413
==============================================================================
--- maven/plugins/trunk/maven-assembly-plugin/src/test/java/org/apache/maven/plugin/assembly/io/DefaultAssemblyReaderTest.java (original)
+++ maven/plugins/trunk/maven-assembly-plugin/src/test/java/org/apache/maven/plugin/assembly/io/DefaultAssemblyReaderTest.java Wed Aug 15 16:49:16 2007
@@ -659,6 +659,74 @@
         mockManager.verifyAll();
     }
 
+    public void testReadAssembly_ShouldReadAssemblyWithComponentInterpolationWithoutSiteDirInclusionOrAssemblyInterpolation()
+			throws IOException, AssemblyReadException, InvalidAssemblerConfigurationException
+	 {
+		File componentsFile = fileManager.createTempFile();
+
+		File basedir = componentsFile.getParentFile();
+		String componentsFilename = componentsFile.getName();
+
+		Component component = new Component();
+
+		FileSet fs = new FileSet();
+		fs.setDirectory("${groupId}-dir");
+
+		component.addFileSet(fs);
+
+		FileWriter fw = null;
+
+		try {
+			fw = new FileWriter(componentsFile);
+			new ComponentXpp3Writer().write(fw, component);
+		} finally {
+			IOUtil.close(fw);
+		}
+
+		Assembly assembly = new Assembly();
+		assembly.setId("test");
+
+		assembly.addComponentDescriptor(componentsFilename);
+
+		StringWriter sw = new StringWriter();
+		AssemblyXpp3Writer assemblyWriter = new AssemblyXpp3Writer();
+
+		assemblyWriter.write(sw, assembly);
+
+		StringReader sr = new StringReader(sw.toString());
+
+		configSource.getBasedir();
+		configSourceControl.setReturnValue(basedir, MockControl.ONE_OR_MORE);
+
+		Model model = new Model();
+		model.setGroupId("group");
+		model.setArtifactId("artifact");
+		model.setVersion("version");
+
+		MavenProject project = new MavenProject(model);
+
+		configSource.getProject();
+		configSourceControl.setReturnValue(project);
+
+		configSource.isSiteIncluded();
+		configSourceControl.setReturnValue(false);
+
+		mockManager.replayAll();
+
+		Assembly result = new DefaultAssemblyReader().readAssembly(sr,
+				"testLocation", configSource);
+
+		assertEquals(assembly.getId(), result.getId());
+
+		List fileSets = result.getFileSets();
+
+		assertEquals(1, fileSets.size());
+
+		assertEquals("group-dir", ((FileSet) fileSets.get(0)).getDirectory());
+
+		mockManager.verifyAll();
+	}
+
     public void testReadAssembly_ShouldReadAssemblyWithInterpolationWithoutComponentsOrSiteDirInclusion()
         throws IOException, AssemblyReadException, InvalidAssemblerConfigurationException
     {