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 2006/08/24 23:18:47 UTC
svn commit: r434525 - in /maven/plugins/trunk/maven-assembly-plugin/src:
it/dependency-sets/including-pom-dependency/src/assemble/
it/dependency-sets/including-sar-dependency/
it/dependency-sets/including-sar-dependency/src/assemble/
main/java/org/apac...
Author: jdcasey
Date: Thu Aug 24 14:18:46 2006
New Revision: 434525
URL: http://svn.apache.org/viewvc?rev=434525&view=rev
Log:
Fixing pom and sar dependency handling.
Added:
maven/plugins/trunk/maven-assembly-plugin/src/main/java/org/apache/maven/plugin/assembly/archive/archiver/SarUnArchiver.java (with props)
Removed:
maven/plugins/trunk/maven-assembly-plugin/src/main/java/org/apache/maven/plugin/assembly/archive/archiver/NoOpUnArchiver.java
maven/plugins/trunk/maven-assembly-plugin/src/test/java/org/apache/maven/plugin/assembly/archive/archiver/NoOpUnArchiverTest.java
Modified:
maven/plugins/trunk/maven-assembly-plugin/src/it/dependency-sets/including-pom-dependency/src/assemble/bin.xml
maven/plugins/trunk/maven-assembly-plugin/src/it/dependency-sets/including-sar-dependency/src/assemble/bin.xml
maven/plugins/trunk/maven-assembly-plugin/src/it/dependency-sets/including-sar-dependency/verify.bsh
maven/plugins/trunk/maven-assembly-plugin/src/main/java/org/apache/maven/plugin/assembly/archive/task/AddDependencySetsTask.java
maven/plugins/trunk/maven-assembly-plugin/src/test/java/org/apache/maven/plugin/assembly/archive/phase/DependencySetAssemblyPhaseTest.java
maven/plugins/trunk/maven-assembly-plugin/src/test/java/org/apache/maven/plugin/assembly/archive/phase/ModuleSetAssemblyPhaseTest.java
maven/plugins/trunk/maven-assembly-plugin/src/test/java/org/apache/maven/plugin/assembly/archive/task/AddDependencySetsTaskTest.java
Modified: maven/plugins/trunk/maven-assembly-plugin/src/it/dependency-sets/including-pom-dependency/src/assemble/bin.xml
URL: http://svn.apache.org/viewvc/maven/plugins/trunk/maven-assembly-plugin/src/it/dependency-sets/including-pom-dependency/src/assemble/bin.xml?rev=434525&r1=434524&r2=434525&view=diff
==============================================================================
--- maven/plugins/trunk/maven-assembly-plugin/src/it/dependency-sets/including-pom-dependency/src/assemble/bin.xml (original)
+++ maven/plugins/trunk/maven-assembly-plugin/src/it/dependency-sets/including-pom-dependency/src/assemble/bin.xml Thu Aug 24 14:18:46 2006
@@ -8,7 +8,7 @@
<dependencySet>
<outputFileNameMapping>${artifactId}.${extension}</outputFileNameMapping>
<outputDirectory>lib</outputDirectory>
- <unpack>false</unpack>
+ <unpack>true</unpack>
</dependencySet>
</dependencySets>
</assembly>
Modified: maven/plugins/trunk/maven-assembly-plugin/src/it/dependency-sets/including-sar-dependency/src/assemble/bin.xml
URL: http://svn.apache.org/viewvc/maven/plugins/trunk/maven-assembly-plugin/src/it/dependency-sets/including-sar-dependency/src/assemble/bin.xml?rev=434525&r1=434524&r2=434525&view=diff
==============================================================================
--- maven/plugins/trunk/maven-assembly-plugin/src/it/dependency-sets/including-sar-dependency/src/assemble/bin.xml (original)
+++ maven/plugins/trunk/maven-assembly-plugin/src/it/dependency-sets/including-sar-dependency/src/assemble/bin.xml Thu Aug 24 14:18:46 2006
@@ -8,7 +8,7 @@
<dependencySet>
<outputFileNameMapping>${artifactId}.${extension}</outputFileNameMapping>
<outputDirectory>lib</outputDirectory>
- <unpack>false</unpack>
+ <unpack>true</unpack>
</dependencySet>
</dependencySets>
</assembly>
Modified: maven/plugins/trunk/maven-assembly-plugin/src/it/dependency-sets/including-sar-dependency/verify.bsh
URL: http://svn.apache.org/viewvc/maven/plugins/trunk/maven-assembly-plugin/src/it/dependency-sets/including-sar-dependency/verify.bsh?rev=434525&r1=434524&r2=434525&view=diff
==============================================================================
--- maven/plugins/trunk/maven-assembly-plugin/src/it/dependency-sets/including-sar-dependency/verify.bsh (original)
+++ maven/plugins/trunk/maven-assembly-plugin/src/it/dependency-sets/including-sar-dependency/verify.bsh Thu Aug 24 14:18:46 2006
@@ -6,7 +6,6 @@
result = result && new File( basedir, "target/including-sar-dependency-1.0-SNAPSHOT-bin.dir/lib/xmlrpc.jar" ).exists();
result = result && new File( basedir, "target/including-sar-dependency-1.0-SNAPSHOT-bin.dir/lib/plexus-xmlrpc.jar" ).exists();
-// verify that the POM dep was included without extracting.
-result = result && new File( basedir, "target/including-sar-dependency-1.0-SNAPSHOT-bin.dir/lib/plexus-appserver-service-xmlrpc.sar" ).exists();
+result = result && new File( basedir, "target/including-sar-dependency-1.0-SNAPSHOT-bin.dir/lib/plexus-appserver-service-xmlrpc.sar/lib/commons-codec-1.3.jar" ).exists();
return result;
Added: maven/plugins/trunk/maven-assembly-plugin/src/main/java/org/apache/maven/plugin/assembly/archive/archiver/SarUnArchiver.java
URL: http://svn.apache.org/viewvc/maven/plugins/trunk/maven-assembly-plugin/src/main/java/org/apache/maven/plugin/assembly/archive/archiver/SarUnArchiver.java?rev=434525&view=auto
==============================================================================
--- maven/plugins/trunk/maven-assembly-plugin/src/main/java/org/apache/maven/plugin/assembly/archive/archiver/SarUnArchiver.java (added)
+++ maven/plugins/trunk/maven-assembly-plugin/src/main/java/org/apache/maven/plugin/assembly/archive/archiver/SarUnArchiver.java Thu Aug 24 14:18:46 2006
@@ -0,0 +1,14 @@
+package org.apache.maven.plugin.assembly.archive.archiver;
+
+import org.codehaus.plexus.archiver.zip.ZipUnArchiver;
+
+/**
+ * @plexus.component role="org.codehaus.plexus.archiver.UnArchiver" role-hint="sar"
+ * @author jdcasey
+ * @todo delete this class once the plexus maven plugin can merge a generated components.xml with an existing one.
+ */
+public class SarUnArchiver
+ extends ZipUnArchiver
+{
+
+}
Propchange: maven/plugins/trunk/maven-assembly-plugin/src/main/java/org/apache/maven/plugin/assembly/archive/archiver/SarUnArchiver.java
------------------------------------------------------------------------------
svn:eol-style = native
Propchange: maven/plugins/trunk/maven-assembly-plugin/src/main/java/org/apache/maven/plugin/assembly/archive/archiver/SarUnArchiver.java
------------------------------------------------------------------------------
svn:keywords = "Author Date Id Revision"
Modified: maven/plugins/trunk/maven-assembly-plugin/src/main/java/org/apache/maven/plugin/assembly/archive/task/AddDependencySetsTask.java
URL: http://svn.apache.org/viewvc/maven/plugins/trunk/maven-assembly-plugin/src/main/java/org/apache/maven/plugin/assembly/archive/task/AddDependencySetsTask.java?rev=434525&r1=434524&r2=434525&view=diff
==============================================================================
--- maven/plugins/trunk/maven-assembly-plugin/src/main/java/org/apache/maven/plugin/assembly/archive/task/AddDependencySetsTask.java (original)
+++ maven/plugins/trunk/maven-assembly-plugin/src/main/java/org/apache/maven/plugin/assembly/archive/task/AddDependencySetsTask.java Thu Aug 24 14:18:46 2006
@@ -6,14 +6,18 @@
import org.apache.maven.plugin.assembly.archive.ArchiveCreationException;
import org.apache.maven.plugin.assembly.filter.AssemblyScopeArtifactFilter;
import org.apache.maven.plugin.assembly.format.AssemblyFormattingException;
+import org.apache.maven.plugin.assembly.utils.AssemblyFormatUtils;
import org.apache.maven.plugin.assembly.utils.FilterUtils;
import org.apache.maven.plugins.assembly.model.DependencySet;
import org.apache.maven.project.MavenProject;
import org.apache.maven.project.MavenProjectBuilder;
import org.apache.maven.project.ProjectBuildingException;
import org.codehaus.plexus.archiver.Archiver;
+import org.codehaus.plexus.archiver.ArchiverException;
import org.codehaus.plexus.logging.Logger;
+import java.io.File;
+import java.util.ArrayList;
import java.util.Collections;
import java.util.HashSet;
import java.util.Iterator;
@@ -24,6 +28,17 @@
implements ArchiverTask
{
+ private static final List NON_ARCHIVE_DEPENDENCY_TYPES;
+
+ static
+ {
+ List nonArch = new ArrayList();
+
+ nonArch.add( "pom" );
+
+ NON_ARCHIVE_DEPENDENCY_TYPES = Collections.unmodifiableList( nonArch );
+ }
+
private final List dependencySets;
private boolean includeBaseDirectory = true;
@@ -38,7 +53,8 @@
private String defaultOutputFileNameMapping;
- public AddDependencySetsTask( List dependencySets, MavenProject project, MavenProjectBuilder projectBuilder, Logger logger )
+ public AddDependencySetsTask( List dependencySets, MavenProject project, MavenProjectBuilder projectBuilder,
+ Logger logger )
{
this.dependencySets = dependencySets;
this.project = project;
@@ -54,7 +70,7 @@
logger.debug( "No dependency sets specified." );
return;
}
-
+
for ( Iterator i = dependencySets.iterator(); i.hasNext(); )
{
DependencySet dependencySet = ( DependencySet ) i.next();
@@ -74,30 +90,74 @@
for ( Iterator j = dependencyArtifacts.iterator(); j.hasNext(); )
{
Artifact depArtifact = ( Artifact ) j.next();
-
+
MavenProject depProject;
try
{
- depProject = projectBuilder.buildFromRepository( depArtifact, configSource.getRemoteRepositories(),
- configSource.getLocalRepository() );
+ depProject =
+ projectBuilder.buildFromRepository( depArtifact, configSource.getRemoteRepositories(),
+ configSource.getLocalRepository() );
}
catch ( ProjectBuildingException e )
{
throw new ArchiveCreationException( "Error retrieving POM of module-dependency: " + depArtifact.getId()
+ "; Reason: " + e.getMessage(), e );
}
-
- AddArtifactTask task = new AddArtifactTask( depArtifact );
-
- task.setProject( depProject );
- task.setOutputDirectory( dependencySet.getOutputDirectory(), defaultOutputDirectory );
- task.setFileNameMapping( dependencySet.getOutputFileNameMapping(), defaultOutputFileNameMapping );
- task.setIncludeBaseDirectory( includeBaseDirectory );
- task.setDirectoryMode( dependencySet.getDirectoryMode() );
- task.setFileMode( dependencySet.getFileMode() );
- task.setUnpack( dependencySet.isUnpack() );
- task.execute( archiver, configSource );
+ if ( NON_ARCHIVE_DEPENDENCY_TYPES.contains( depArtifact.getType() ) )
+ {
+ addNonArchiveDependency( depArtifact, depProject, dependencySet, archiver );
+ }
+ else
+ {
+ AddArtifactTask task = new AddArtifactTask( depArtifact );
+
+ task.setProject( depProject );
+ task.setOutputDirectory( dependencySet.getOutputDirectory(), defaultOutputDirectory );
+ task.setFileNameMapping( dependencySet.getOutputFileNameMapping(), defaultOutputFileNameMapping );
+ task.setIncludeBaseDirectory( includeBaseDirectory );
+ task.setDirectoryMode( dependencySet.getDirectoryMode() );
+ task.setFileMode( dependencySet.getFileMode() );
+ task.setUnpack( dependencySet.isUnpack() );
+
+ task.execute( archiver, configSource );
+ }
+ }
+ }
+
+ private void addNonArchiveDependency( Artifact depArtifact, MavenProject depProject, DependencySet dependencySet,
+ Archiver archiver )
+ throws AssemblyFormattingException, ArchiveCreationException
+ {
+ File source = depArtifact.getFile();
+
+ String outputDirectory = dependencySet.getOutputDirectory();
+
+ outputDirectory =
+ AssemblyFormatUtils.getOutputDirectory( outputDirectory, depProject, depProject.getBuild().getFinalName(),
+ includeBaseDirectory );
+ String destName =
+ AssemblyFormatUtils.evaluateFileNameMapping( dependencySet.getOutputFileNameMapping(), depArtifact );
+
+ String target;
+
+ // omit the last char if ends with / or \\
+ if ( outputDirectory.endsWith( "/" ) || outputDirectory.endsWith( "\\" ) )
+ {
+ target = outputDirectory + destName;
+ }
+ else
+ {
+ target = outputDirectory + "/" + destName;
+ }
+
+ try
+ {
+ archiver.addFile( source, target, Integer.parseInt( dependencySet.getFileMode(), 8 ) );
+ }
+ catch ( ArchiverException e )
+ {
+ throw new ArchiveCreationException( "Error adding file to archive: " + e.getMessage(), e );
}
}
Modified: maven/plugins/trunk/maven-assembly-plugin/src/test/java/org/apache/maven/plugin/assembly/archive/phase/DependencySetAssemblyPhaseTest.java
URL: http://svn.apache.org/viewvc/maven/plugins/trunk/maven-assembly-plugin/src/test/java/org/apache/maven/plugin/assembly/archive/phase/DependencySetAssemblyPhaseTest.java?rev=434525&r1=434524&r2=434525&view=diff
==============================================================================
--- maven/plugins/trunk/maven-assembly-plugin/src/test/java/org/apache/maven/plugin/assembly/archive/phase/DependencySetAssemblyPhaseTest.java (original)
+++ maven/plugins/trunk/maven-assembly-plugin/src/test/java/org/apache/maven/plugin/assembly/archive/phase/DependencySetAssemblyPhaseTest.java Thu Aug 24 14:18:46 2006
@@ -54,6 +54,7 @@
MockAndControlForAddArtifactTask macTask = new MockAndControlForAddArtifactTask( mockManager );
macTask.expectArtifactGetFile();
+ macTask.expectArtifactGetType( "jar" );
macTask.expectArtifactGetScope( Artifact.SCOPE_COMPILE );
macTask.expectGetClassifier( null );
macTask.expectIsSnapshot( false );
Modified: maven/plugins/trunk/maven-assembly-plugin/src/test/java/org/apache/maven/plugin/assembly/archive/phase/ModuleSetAssemblyPhaseTest.java
URL: http://svn.apache.org/viewvc/maven/plugins/trunk/maven-assembly-plugin/src/test/java/org/apache/maven/plugin/assembly/archive/phase/ModuleSetAssemblyPhaseTest.java?rev=434525&r1=434524&r2=434525&view=diff
==============================================================================
--- maven/plugins/trunk/maven-assembly-plugin/src/test/java/org/apache/maven/plugin/assembly/archive/phase/ModuleSetAssemblyPhaseTest.java (original)
+++ maven/plugins/trunk/maven-assembly-plugin/src/test/java/org/apache/maven/plugin/assembly/archive/phase/ModuleSetAssemblyPhaseTest.java Thu Aug 24 14:18:46 2006
@@ -223,6 +223,7 @@
MockAndControlForArtifact macDepArtifact = new MockAndControlForArtifact( mm );
macDepArtifact.expectGetClassifier();
+ macDepArtifact.expectGetType( "jar" );
macDepArtifact.expectIsSnapshot( false );
macDepArtifact.expectGetArtifactHandler();
macDepArtifact.expectGetArtifactId( "dep" );
@@ -290,6 +291,7 @@
MockAndControlForArtifact macDepArtifact = new MockAndControlForArtifact( mm );
macDepArtifact.expectGetClassifier();
+ macDepArtifact.expectGetType( "jar" );
macDepArtifact.expectIsSnapshot( false );
macDepArtifact.expectGetArtifactHandler();
macDepArtifact.expectGetArtifactId( "dep" );
Modified: maven/plugins/trunk/maven-assembly-plugin/src/test/java/org/apache/maven/plugin/assembly/archive/task/AddDependencySetsTaskTest.java
URL: http://svn.apache.org/viewvc/maven/plugins/trunk/maven-assembly-plugin/src/test/java/org/apache/maven/plugin/assembly/archive/task/AddDependencySetsTaskTest.java?rev=434525&r1=434524&r2=434525&view=diff
==============================================================================
--- maven/plugins/trunk/maven-assembly-plugin/src/test/java/org/apache/maven/plugin/assembly/archive/task/AddDependencySetsTaskTest.java (original)
+++ maven/plugins/trunk/maven-assembly-plugin/src/test/java/org/apache/maven/plugin/assembly/archive/task/AddDependencySetsTaskTest.java Thu Aug 24 14:18:46 2006
@@ -84,6 +84,7 @@
MockAndControlForAddArtifactTask macTask = new MockAndControlForAddArtifactTask( mockManager );
macTask.expectArtifactGetFile();
+ macTask.expectArtifactGetType( "jar" );
macTask.expectArtifactGetScope( Artifact.SCOPE_COMPILE );
macTask.expectGetClassifier( null );
macTask.expectIsSnapshot( false );