Skip to content

Commit e959c3c

Browse files
tcollignonplamentotev
authored andcommitted
[MASSEMBLY-886] Add fileMappers to BaseFileSet
Closes #92
1 parent 2dbf008 commit e959c3c

File tree

5 files changed

+35
-2
lines changed

5 files changed

+35
-2
lines changed

pom.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@
1010
</parent>
1111

1212
<artifactId>plexus-archiver</artifactId>
13-
<version>3.6.1-SNAPSHOT</version>
13+
<version>3.7.0-SNAPSHOT</version>
1414
<name>Plexus Archiver Component</name>
1515

1616
<scm>

src/main/java/org/codehaus/plexus/archiver/AbstractArchiver.java

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -346,6 +346,7 @@ public void addFileSet( @Nonnull final FileSet fileSet )
346346
collection.setCaseSensitive( fileSet.isCaseSensitive() );
347347
collection.setUsingDefaultExcludes( fileSet.isUsingDefaultExcludes() );
348348
collection.setStreamTransformer( fileSet.getStreamTransformer() );
349+
collection.setFileMappers( fileSet.getFileMappers() );
349350

350351
if ( getOverrideDirectoryMode() > -1 || getOverrideFileMode() > -1 )
351352
{
@@ -737,6 +738,7 @@ protected PlexusIoResourceCollection asResourceCollection( final ArchivedFileSet
737738
proxy.setUsingDefaultExcludes( fileSet.isUsingDefaultExcludes() );
738739
proxy.setFileSelectors( fileSet.getFileSelectors() );
739740
proxy.setStreamTransformer( fileSet.getStreamTransformer() );
741+
proxy.setFileMappers( fileSet.getFileMappers() );
740742

741743
if ( getOverrideDirectoryMode() > -1 || getOverrideFileMode() > -1 )
742744
{

src/main/java/org/codehaus/plexus/archiver/BaseFileSet.java

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
package org.codehaus.plexus.archiver;
22

33
import javax.annotation.CheckForNull;
4+
import org.codehaus.plexus.components.io.filemappers.FileMapper;
45
import org.codehaus.plexus.components.io.fileselectors.FileSelector;
56
import org.codehaus.plexus.components.io.functions.InputStreamTransformer;
67

@@ -65,4 +66,11 @@ public interface BaseFileSet
6566
*/
6667
InputStreamTransformer getStreamTransformer();
6768

69+
/**
70+
* Returns a set of file mappers, which should be used
71+
* to change the filename of the included files.
72+
*/
73+
@CheckForNull
74+
FileMapper[] getFileMappers();
75+
6876
}

src/main/java/org/codehaus/plexus/archiver/util/AbstractFileSet.java

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@
1717

1818
import javax.annotation.Nonnull;
1919
import org.codehaus.plexus.archiver.BaseFileSet;
20+
import org.codehaus.plexus.components.io.filemappers.FileMapper;
2021
import org.codehaus.plexus.components.io.fileselectors.FileSelector;
2122
import org.codehaus.plexus.components.io.functions.InputStreamTransformer;
2223

@@ -45,6 +46,8 @@ public abstract class AbstractFileSet<T extends AbstractFileSet>
4546

4647
private InputStreamTransformer streamTransformer = null;
4748

49+
private FileMapper[] fileMappers;
50+
4851
/**
4952
* Sets a string of patterns, which excluded files
5053
* should match.
@@ -190,4 +193,19 @@ public InputStreamTransformer getStreamTransformer()
190193
return streamTransformer;
191194
}
192195

196+
/**
197+
* Sets a set of file mappers, which should be used
198+
* to change the filename of the included files.
199+
*/
200+
public void setFileMappers( FileMapper[] fileMappers )
201+
{
202+
this.fileMappers = fileMappers;
203+
}
204+
205+
@Override
206+
public FileMapper[] getFileMappers()
207+
{
208+
return fileMappers;
209+
}
210+
193211
}

src/test/java/org/codehaus/plexus/archiver/zip/ZipArchiverTest.java

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -59,6 +59,8 @@
5959
import org.codehaus.plexus.components.io.attributes.PlexusIoResourceAttributeUtils;
6060
import org.codehaus.plexus.components.io.attributes.PlexusIoResourceAttributes;
6161
import org.codehaus.plexus.components.io.attributes.SimpleResourceAttributes;
62+
import org.codehaus.plexus.components.io.filemappers.FileMapper;
63+
import org.codehaus.plexus.components.io.filemappers.PrefixFileMapper;
6264
import org.codehaus.plexus.components.io.functions.InputStreamTransformer;
6365
import org.codehaus.plexus.components.io.resources.PlexusIoFileResourceCollection;
6466
import org.codehaus.plexus.components.io.resources.PlexusIoResource;
@@ -429,6 +431,9 @@ public InputStream transform( @Nonnull PlexusIoResource resource, @Nonnull Input
429431

430432
};
431433
sfd.setStreamTransformer( is );
434+
PrefixFileMapper mapper = new PrefixFileMapper();
435+
mapper.setPrefix( "prefix" );
436+
sfd.setFileMappers( new FileMapper[] { mapper } );
432437
zipArchiver.addArchivedFileSet( sfd );
433438
zipArchiver.createArchive();
434439

@@ -438,7 +443,7 @@ public InputStream transform( @Nonnull PlexusIoResource resource, @Nonnull Input
438443
zipUnArchiver.setDestFile( destFile );
439444
zipUnArchiver.extract();
440445
File a3byteFile = new File( destFile,
441-
"Users/kristian/lsrc/plexus/plexus-archiver/src/main/java/org/codehaus/plexus/archiver/zip/ZipArchiver.java" );
446+
"prefixUsers/kristian/lsrc/plexus/plexus-archiver/src/main/java/org/codehaus/plexus/archiver/zip/ZipArchiver.java" );
442447
assertTrue( a3byteFile.exists() );
443448
assertTrue( a3byteFile.length() == 3 );
444449
}

0 commit comments

Comments
 (0)