You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@maven.apache.org by kr...@apache.org on 2014/10/27 22:03:50 UTC
svn commit: r1634686 - in /maven/plugins/trunk/maven-assembly-plugin/src:
main/java/org/apache/maven/plugin/assembly/archive/archiver/
main/java/org/apache/maven/plugin/assembly/archive/task/
main/java/org/apache/maven/plugin/assembly/format/ test/java...
Author: krosenvold
Date: Mon Oct 27 21:03:49 2014
New Revision: 1634686
URL: http://svn.apache.org/r1634686
Log:
Refactored code slightly
Modified:
maven/plugins/trunk/maven-assembly-plugin/src/main/java/org/apache/maven/plugin/assembly/archive/archiver/AssemblyProxyArchiver.java
maven/plugins/trunk/maven-assembly-plugin/src/main/java/org/apache/maven/plugin/assembly/archive/task/AddArtifactTask.java
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/main/java/org/apache/maven/plugin/assembly/format/ReaderFormatter.java
maven/plugins/trunk/maven-assembly-plugin/src/test/java/org/apache/maven/plugin/assembly/archive/task/AddArtifactTaskTest.java
maven/plugins/trunk/maven-assembly-plugin/src/test/java/org/apache/maven/plugin/assembly/archive/task/testutils/MockAndControlForAddArtifactTask.java
maven/plugins/trunk/maven-assembly-plugin/src/test/java/org/apache/maven/plugin/assembly/archive/task/testutils/MockAndControlForAddDependencySetsTask.java
Modified: maven/plugins/trunk/maven-assembly-plugin/src/main/java/org/apache/maven/plugin/assembly/archive/archiver/AssemblyProxyArchiver.java
URL: http://svn.apache.org/viewvc/maven/plugins/trunk/maven-assembly-plugin/src/main/java/org/apache/maven/plugin/assembly/archive/archiver/AssemblyProxyArchiver.java?rev=1634686&r1=1634685&r2=1634686&view=diff
==============================================================================
--- maven/plugins/trunk/maven-assembly-plugin/src/main/java/org/apache/maven/plugin/assembly/archive/archiver/AssemblyProxyArchiver.java (original)
+++ maven/plugins/trunk/maven-assembly-plugin/src/main/java/org/apache/maven/plugin/assembly/archive/archiver/AssemblyProxyArchiver.java Mon Oct 27 21:03:49 2014
@@ -801,7 +801,7 @@ public class AssemblyProxyArchiver
public void addArchivedFileSet( final ArchivedFileSet fileSet )
throws ArchiverException
{
- final String archiveKey = getArchiveKey( fileSet.getArchive(), "" );
+ final String archiveKey = getArchiveKey( fileSet.getArchive(), fileSet.getPrefix() );
if ( seenPaths.contains( archiveKey ) )
{
warn( "Archive: " + fileSet.getArchive() + " has already been added. Skipping." );
Modified: maven/plugins/trunk/maven-assembly-plugin/src/main/java/org/apache/maven/plugin/assembly/archive/task/AddArtifactTask.java
URL: http://svn.apache.org/viewvc/maven/plugins/trunk/maven-assembly-plugin/src/main/java/org/apache/maven/plugin/assembly/archive/task/AddArtifactTask.java?rev=1634686&r1=1634685&r2=1634686&view=diff
==============================================================================
--- maven/plugins/trunk/maven-assembly-plugin/src/main/java/org/apache/maven/plugin/assembly/archive/task/AddArtifactTask.java (original)
+++ maven/plugins/trunk/maven-assembly-plugin/src/main/java/org/apache/maven/plugin/assembly/archive/task/AddArtifactTask.java Mon Oct 27 21:03:49 2014
@@ -28,6 +28,9 @@ import org.apache.maven.plugin.assembly.
import org.apache.maven.project.MavenProject;
import org.codehaus.plexus.archiver.Archiver;
import org.codehaus.plexus.archiver.ArchiverException;
+import org.codehaus.plexus.archiver.util.DefaultArchivedFileSet;
+import org.codehaus.plexus.archiver.util.DefaultFileSet;
+import org.codehaus.plexus.components.io.functions.InputStreamTransformer;
import org.codehaus.plexus.logging.Logger;
import org.codehaus.plexus.util.FileUtils;
import org.codehaus.plexus.util.StringUtils;
@@ -67,11 +70,18 @@ public class AddArtifactTask
private String outputFileNameMapping;
private final Logger logger;
+ private final InputStreamTransformer transformer;
- public AddArtifactTask( final Artifact artifact, final Logger logger )
+ public AddArtifactTask( final Artifact artifact, final Logger logger, InputStreamTransformer transformer )
{
this.artifact = artifact;
this.logger = logger;
+ this.transformer = transformer;
+ }
+
+ public AddArtifactTask( final Artifact artifact, final Logger logger )
+ {
+ this(artifact, logger, null);
}
public void execute( final Archiver archiver, final AssemblerConfigurationSource configSource )
@@ -79,28 +89,10 @@ public class AddArtifactTask
{
// MASSEMBLY-282: We should support adding a project's standard output file as part of an assembly that replaces
// it.
- if ( ( ( artifact.getFile() != null ) && ( archiver.getDestFile() != null ) )
- && artifact.getFile()
- .equals( archiver.getDestFile() ) )
+ if (artifactIsArchiverDestination(archiver))
{
- final File tempRoot = configSource.getTemporaryRootDirectory();
- final File tempArtifactFile = new File( tempRoot, artifact.getFile()
- .getName() );
-
- logger.warn( "Artifact: "
- + artifact.getId()
- + " references the same file as the assembly destination file. Moving it to a temporary location for inclusion." );
- try
- {
- FileUtils.copyFile( artifact.getFile(), tempArtifactFile );
- }
- catch ( final IOException e )
- {
- throw new ArchiveCreationException( "Error moving artifact file: '" + artifact.getFile()
- + "' to temporary location: " + tempArtifactFile + ". Reason: " + e.getMessage(), e );
- }
- artifact.setFile( tempArtifactFile );
+ artifact.setFile(moveArtifactSomewhereElse(configSource));
}
String destDirectory = outputDirectory;
@@ -156,7 +148,13 @@ public class AddArtifactTask
else if ( artifactFile.isDirectory() )
{
logger.debug( "Adding artifact directory contents for: " + artifact + " to: " + outputLocation );
- archiver.addDirectory( artifactFile, outputLocation, includesArray, excludesArray );
+
+ DefaultFileSet fs = DefaultFileSet.fileSet( artifactFile);
+ fs.setIncludes(includesArray);
+ fs.setExcludes(excludesArray);
+ fs.setPrefix( outputLocation);
+// fs.setStreamTransformer(transformer);
+ archiver.addFileSet(fs);
}
else
{
@@ -165,7 +163,12 @@ public class AddArtifactTask
logger.debug( "excludes:\n"
+ ( excludesArray == null ? "none" : StringUtils.join( excludesArray, "\n" ) )
+ "\n" );
- archiver.addArchivedFileSet( artifactFile, outputLocation, includesArray, excludesArray );
+ DefaultArchivedFileSet afs = DefaultArchivedFileSet.archivedFileSet(artifactFile);
+ afs.setIncludes(includesArray);
+ afs.setExcludes(excludesArray);
+ afs.setPrefix(outputLocation);
+ //afs.setStreamTransformer(transformer);
+ archiver.addArchivedFileSet( afs );
}
}
catch ( final ArchiverException e )
@@ -219,6 +222,32 @@ public class AddArtifactTask
}
}
+ private File moveArtifactSomewhereElse(AssemblerConfigurationSource configSource) throws ArchiveCreationException {
+ final File tempRoot = configSource.getTemporaryRootDirectory();
+ final File tempArtifactFile = new File( tempRoot, artifact.getFile()
+ .getName() );
+
+ logger.warn( "Artifact: "
+ + artifact.getId()
+ + " references the same file as the assembly destination file. Moving it to a temporary location for inclusion." );
+ try
+ {
+ FileUtils.copyFile(artifact.getFile(), tempArtifactFile);
+ }
+ catch ( final IOException e )
+ {
+ throw new ArchiveCreationException( "Error moving artifact file: '" + artifact.getFile()
+ + "' to temporary location: " + tempArtifactFile + ". Reason: " + e.getMessage(), e );
+ }
+ return tempArtifactFile;
+ }
+
+ private boolean artifactIsArchiverDestination(Archiver archiver) {
+ return ( ( artifact.getFile() != null ) && ( archiver.getDestFile() != null ) )
+ && artifact.getFile()
+ .equals( archiver.getDestFile() );
+ }
+
public void setDirectoryMode( final int directoryMode )
{
this.directoryMode = directoryMode;
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=1634686&r1=1634685&r2=1634686&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 Mon Oct 27 21:03:49 2014
@@ -33,6 +33,7 @@ import org.apache.maven.plugin.assembly.
import org.apache.maven.plugin.assembly.InvalidAssemblerConfigurationException;
import org.apache.maven.plugin.assembly.archive.ArchiveCreationException;
import org.apache.maven.plugin.assembly.format.AssemblyFormattingException;
+import org.apache.maven.plugin.assembly.format.ReaderFormatter;
import org.apache.maven.plugin.assembly.model.DependencySet;
import org.apache.maven.plugin.assembly.model.FileSet;
import org.apache.maven.plugin.assembly.model.UnpackOptions;
@@ -48,6 +49,7 @@ import org.codehaus.plexus.archiver.Arch
import org.codehaus.plexus.archiver.UnArchiver;
import org.codehaus.plexus.archiver.manager.ArchiverManager;
import org.codehaus.plexus.archiver.manager.NoSuchArchiverException;
+import org.codehaus.plexus.components.io.functions.InputStreamTransformer;
import org.codehaus.plexus.logging.Logger;
/**
@@ -145,6 +147,8 @@ public class AddDependencySetsTask
{
checkMultiArtifactOutputConfig( dependencySet );
}
+ InputStreamTransformer transformer = dependencySet.isUnpack() && opts != null ? ReaderFormatter.getFileSetTransformers(configSource, opts.isFiltered(),
+ opts.getLineEnding()) : null;
logger.debug( "Adding " + dependencyArtifacts.size() + " dependency artifacts." );
@@ -177,7 +181,7 @@ public class AddDependencySetsTask
}
else
{
- addNormalArtifact( dependencySet, depArtifact, depProject, archiver, configSource );
+ addNormalArtifact( dependencySet, depArtifact, depProject, archiver, configSource, transformer );
}
}
}
@@ -278,6 +282,8 @@ public class AddDependencySetsTask
outDir = defaultOutputDirectory;
}
+ // TODO: MASSEMBLY-691 root cause is here!
+
String filenameMapping = dependencySet.getOutputFileNameMapping();
if ( filenameMapping == null )
{
@@ -303,14 +309,14 @@ public class AddDependencySetsTask
task.execute( archiver, configSource );
}
- private void addNormalArtifact( final DependencySet dependencySet, final Artifact depArtifact,
- final MavenProject depProject, final Archiver archiver,
- final AssemblerConfigurationSource configSource )
+ private void addNormalArtifact(final DependencySet dependencySet, final Artifact depArtifact,
+ final MavenProject depProject, final Archiver archiver,
+ final AssemblerConfigurationSource configSource, InputStreamTransformer transformer)
throws AssemblyFormattingException, ArchiveCreationException
{
logger.debug( "Adding dependency artifact " + depArtifact.getId() + "." );
- final AddArtifactTask task = new AddArtifactTask( depArtifact, logger );
+ final AddArtifactTask task = new AddArtifactTask( depArtifact, logger, transformer );
task.setProject( depProject );
task.setModuleProject( moduleProject );
Modified: maven/plugins/trunk/maven-assembly-plugin/src/main/java/org/apache/maven/plugin/assembly/format/ReaderFormatter.java
URL: http://svn.apache.org/viewvc/maven/plugins/trunk/maven-assembly-plugin/src/main/java/org/apache/maven/plugin/assembly/format/ReaderFormatter.java?rev=1634686&r1=1634685&r2=1634686&view=diff
==============================================================================
--- maven/plugins/trunk/maven-assembly-plugin/src/main/java/org/apache/maven/plugin/assembly/format/ReaderFormatter.java (original)
+++ maven/plugins/trunk/maven-assembly-plugin/src/main/java/org/apache/maven/plugin/assembly/format/ReaderFormatter.java Mon Oct 27 21:03:49 2014
@@ -30,6 +30,7 @@ import org.codehaus.plexus.components.io
import org.codehaus.plexus.components.io.resources.PlexusIoResource;
import javax.annotation.Nonnull;
+import javax.annotation.Nullable;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
@@ -86,7 +87,8 @@ public class ReaderFormatter
}
}
- public static InputStreamTransformer getFileSetTransformers( final AssemblerConfigurationSource configSource, final boolean isFiltered, String fileSetLineEnding )
+ public static @Nullable
+ InputStreamTransformer getFileSetTransformers( final AssemblerConfigurationSource configSource, final boolean isFiltered, String fileSetLineEnding )
throws AssemblyFormattingException
{
final String lineEndingHint = fileSetLineEnding;
Modified: maven/plugins/trunk/maven-assembly-plugin/src/test/java/org/apache/maven/plugin/assembly/archive/task/AddArtifactTaskTest.java
URL: http://svn.apache.org/viewvc/maven/plugins/trunk/maven-assembly-plugin/src/test/java/org/apache/maven/plugin/assembly/archive/task/AddArtifactTaskTest.java?rev=1634686&r1=1634685&r2=1634686&view=diff
==============================================================================
--- maven/plugins/trunk/maven-assembly-plugin/src/test/java/org/apache/maven/plugin/assembly/archive/task/AddArtifactTaskTest.java (original)
+++ maven/plugins/trunk/maven-assembly-plugin/src/test/java/org/apache/maven/plugin/assembly/archive/task/AddArtifactTaskTest.java Mon Oct 27 21:03:49 2014
@@ -28,6 +28,7 @@ import org.apache.maven.plugin.assembly.
import org.apache.maven.plugin.assembly.model.DependencySet;
import org.apache.maven.plugin.assembly.utils.TypeConversionUtils;
import org.apache.maven.project.MavenProject;
+import org.codehaus.plexus.archiver.ArchivedFileSet;
import org.codehaus.plexus.archiver.ArchiverException;
import org.codehaus.plexus.logging.Logger;
import org.codehaus.plexus.logging.console.ConsoleLogger;
@@ -39,6 +40,8 @@ import java.util.Arrays;
import junit.framework.TestCase;
import org.easymock.classextension.EasyMockSupport;
+import static org.easymock.EasyMock.anyObject;
+
public class AddArtifactTaskTest
extends TestCase
{
@@ -139,7 +142,8 @@ public class AddArtifactTaskTest
mac.expectGetDestFile( new File( "junk" ) );
try
{
- mac.archiver.addArchivedFileSet( artifactFile, outputLocation, AddArtifactTask.DEFAULT_INCLUDES_ARRAY, null );
+// mac.archiver.addArchivedFileSet( artifactFile, outputLocation, AddArtifactTask.DEFAULT_INCLUDES_ARRAY, null );
+ mac.archiver.addArchivedFileSet((ArchivedFileSet) anyObject());
}
catch ( ArchiverException e )
{
@@ -174,7 +178,7 @@ public class AddArtifactTaskTest
mac.expectGetDestFile( new File( "junk" ) );
try
{
- mac.archiver.addArchivedFileSet( artifactFile, outputLocation, AddArtifactTask.DEFAULT_INCLUDES_ARRAY, null );
+ mac.archiver.addArchivedFileSet((ArchivedFileSet) anyObject());
}
catch ( ArchiverException e )
{
Modified: maven/plugins/trunk/maven-assembly-plugin/src/test/java/org/apache/maven/plugin/assembly/archive/task/testutils/MockAndControlForAddArtifactTask.java
URL: http://svn.apache.org/viewvc/maven/plugins/trunk/maven-assembly-plugin/src/test/java/org/apache/maven/plugin/assembly/archive/task/testutils/MockAndControlForAddArtifactTask.java?rev=1634686&r1=1634685&r2=1634686&view=diff
==============================================================================
--- maven/plugins/trunk/maven-assembly-plugin/src/test/java/org/apache/maven/plugin/assembly/archive/task/testutils/MockAndControlForAddArtifactTask.java (original)
+++ maven/plugins/trunk/maven-assembly-plugin/src/test/java/org/apache/maven/plugin/assembly/archive/task/testutils/MockAndControlForAddArtifactTask.java Mon Oct 27 21:03:49 2014
@@ -26,6 +26,7 @@ import junit.framework.Assert;
import org.apache.maven.plugin.assembly.AssemblerConfigurationSource;
import org.apache.maven.project.MavenProject;
+import org.codehaus.plexus.archiver.ArchivedFileSet;
import org.codehaus.plexus.archiver.Archiver;
import org.codehaus.plexus.archiver.ArchiverException;
import org.easymock.EasyMock;
@@ -79,7 +80,10 @@ public class MockAndControlForAddArtifac
try
{
archiver.addArchivedFileSet( (File)anyObject(), (String)anyObject(), (String[])anyObject(), (String[])anyObject() );
- EasyMock.expectLastCall().atLeastOnce();
+ EasyMock.expectLastCall().anyTimes();
+ archiver.addArchivedFileSet((ArchivedFileSet) anyObject());
+ EasyMock.expectLastCall().anyTimes();
+
}
catch ( final ArchiverException e )
{
Modified: maven/plugins/trunk/maven-assembly-plugin/src/test/java/org/apache/maven/plugin/assembly/archive/task/testutils/MockAndControlForAddDependencySetsTask.java
URL: http://svn.apache.org/viewvc/maven/plugins/trunk/maven-assembly-plugin/src/test/java/org/apache/maven/plugin/assembly/archive/task/testutils/MockAndControlForAddDependencySetsTask.java?rev=1634686&r1=1634685&r2=1634686&view=diff
==============================================================================
--- maven/plugins/trunk/maven-assembly-plugin/src/test/java/org/apache/maven/plugin/assembly/archive/task/testutils/MockAndControlForAddDependencySetsTask.java (original)
+++ maven/plugins/trunk/maven-assembly-plugin/src/test/java/org/apache/maven/plugin/assembly/archive/task/testutils/MockAndControlForAddDependencySetsTask.java Mon Oct 27 21:03:49 2014
@@ -31,8 +31,10 @@ import org.apache.maven.plugin.assembly.
import org.apache.maven.project.MavenProject;
import org.apache.maven.project.MavenProjectBuilder;
import org.apache.maven.project.ProjectBuildingException;
+import org.codehaus.plexus.archiver.ArchivedFileSet;
import org.codehaus.plexus.archiver.Archiver;
import org.codehaus.plexus.archiver.ArchiverException;
+import org.codehaus.plexus.archiver.FileSet;
import org.codehaus.plexus.archiver.manager.ArchiverManager;
import org.easymock.EasyMock;
import org.easymock.classextension.EasyMockSupport;
@@ -82,11 +84,11 @@ public class MockAndControlForAddDepende
{
try
{
- archiver.addArchivedFileSet( (File)anyObject(), (String)anyObject(), (String[])anyObject(), (String[])anyObject() );
-
- archiver.addArchivedFileSet( (File) anyObject(), (String) anyObject(), (String[]) anyObject(),
+ archiver.addArchivedFileSet( (File) anyObject(), (String) anyObject(), (String[]) anyObject(),
(String[]) anyObject() );
EasyMock.expectLastCall().anyTimes();
+ archiver.addArchivedFileSet( (ArchivedFileSet)anyObject() );
+ EasyMock.expectLastCall().anyTimes();
}
catch ( final ArchiverException e )