23
23
import java .io .IOException ;
24
24
import java .io .InputStream ;
25
25
import java .lang .reflect .UndeclaredThrowableException ;
26
+ import java .nio .charset .Charset ;
26
27
import java .util .ArrayList ;
27
28
import java .util .HashMap ;
28
29
import java .util .HashSet ;
44
45
import org .codehaus .plexus .components .io .attributes .PlexusIoResourceAttributes ;
45
46
import org .codehaus .plexus .components .io .functions .ResourceAttributeSupplier ;
46
47
import org .codehaus .plexus .components .io .resources .AbstractPlexusIoResourceCollection ;
48
+ import org .codehaus .plexus .components .io .resources .EncodingSupported ;
47
49
import org .codehaus .plexus .components .io .resources .PlexusIoArchivedResourceCollection ;
48
50
import org .codehaus .plexus .components .io .resources .PlexusIoFileResourceCollection ;
49
51
import org .codehaus .plexus .components .io .resources .PlexusIoResource ;
@@ -694,7 +696,7 @@ public Map getDirs()
694
696
}
695
697
}
696
698
697
- protected PlexusIoResourceCollection asResourceCollection ( final ArchivedFileSet fileSet )
699
+ protected PlexusIoResourceCollection asResourceCollection ( final ArchivedFileSet fileSet , Charset charset )
698
700
throws ArchiverException
699
701
{
700
702
final File archiveFile = fileSet .getArchive ();
@@ -710,6 +712,10 @@ protected PlexusIoResourceCollection asResourceCollection( final ArchivedFileSet
710
712
"Error adding archived file-set. PlexusIoResourceCollection not found for: " + archiveFile , e );
711
713
}
712
714
715
+ if (resources instanceof EncodingSupported ) {
716
+ ((EncodingSupported )resources ).setEncoding ( charset );
717
+
718
+ }
713
719
if ( resources instanceof PlexusIoArchivedResourceCollection )
714
720
{
715
721
( (PlexusIoArchivedResourceCollection ) resources ).setFile ( fileSet .getArchive () );
@@ -764,7 +770,14 @@ private void doAddResource(Object item){
764
770
public void addArchivedFileSet ( final ArchivedFileSet fileSet )
765
771
throws ArchiverException
766
772
{
767
- final PlexusIoResourceCollection resourceCollection = asResourceCollection ( fileSet );
773
+ final PlexusIoResourceCollection resourceCollection = asResourceCollection ( fileSet , null );
774
+ addResources ( resourceCollection );
775
+ }
776
+
777
+ public void addArchivedFileSet ( final ArchivedFileSet fileSet , Charset charset )
778
+ throws ArchiverException
779
+ {
780
+ final PlexusIoResourceCollection resourceCollection = asResourceCollection ( fileSet , charset );
768
781
addResources ( resourceCollection );
769
782
}
770
783
0 commit comments