11package org .codehaus .plexus .archiver .jar ;
22
3- import org .apache .commons .compress .archivers .zip .ZipArchiveEntry ;
4- import org .apache .commons .compress .archivers .zip .ZipFile ;
53import org .codehaus .plexus .PlexusTestCase ;
64import org .codehaus .plexus .archiver .Archiver ;
75import org .codehaus .plexus .archiver .util .DefaultArchivedFileSet ;
8- import org .codehaus .plexus .components .io .filemappers . IdentityMapper ;
6+ import org .codehaus .plexus .components .io .attributes . Java7AttributeUtils ;
97import org .codehaus .plexus .components .io .functions .InputStreamTransformer ;
108import org .codehaus .plexus .components .io .resources .PlexusIoResource ;
11- import org .junit .Test ;
129
1310import javax .annotation .Nonnull ;
1411import java .io .File ;
1512import java .io .IOException ;
1613import java .io .InputStream ;
1714import java .nio .charset .Charset ;
18- import java .util .Enumeration ;
1915
20- public class UnpackJarTest extends PlexusTestCase
16+ public class DirectoryArchiverUnpackJarTest
17+ extends PlexusTestCase
2118{
2219
2320 public static final String [] DEFAULT_INCLUDES_ARRAY = { "**/*" };
@@ -37,24 +34,30 @@ public InputStream transform( @Nonnull PlexusIoResource resource, @Nonnull Input
3734 }
3835 }
3936
40-
4137 public void test_dependency_sets_depSet_unpacked_rdonly ()
4238 throws Exception
4339 {
44- if (true ) return ;
45- File src = new File ("src/test/resources/unpack_issue.jar" );
46- assertTrue ( src .exists ());
40+ File src = new File ( "src/test/resources/unpack_issue.jar" );
41+ assertTrue ( src .exists () );
4742 DefaultArchivedFileSet afs = DefaultArchivedFileSet .archivedFileSet ( src );
4843 afs .setIncludes ( DEFAULT_INCLUDES_ARRAY );
4944 afs .setExcludes ( null );
5045 afs .setPrefix ( "child-1/" );
5146 afs .setStreamTransformer ( new IdentityTransformer () );
52- Archiver archiver = (Archiver )lookup ( Archiver .ROLE , "dir" );
47+ Archiver archiver = (Archiver ) lookup ( Archiver .ROLE , "dir" );
5348 archiver .setDefaultDirectoryMode ( 0555 );
54- archiver .setDirectoryMode ( 0555 ); // causes permission denied
49+ archiver .setDirectoryMode ( 0555 ); // causes permission denied if bug is not fixed.
5550 archiver .setDestFile ( new File ( "target/depset_unpack" ) );
56- archiver .addArchivedFileSet ( afs , Charset .forName ("UTF-8" ));
51+ archiver .addArchivedFileSet ( afs , Charset .forName ( "UTF-8" ) );
5752 archiver .createArchive ();
58- assertTrue ( new File ("target/depset_unpack/child-1/META-INF/MANIFEST.MF" ).exists ());
53+ assertTrue ( new File ( "target/depset_unpack/child-1/META-INF/MANIFEST.MF" ).exists () );
54+
55+
56+ // make them writeable or mvn clean will fail
57+ Java7AttributeUtils .chmod ( new File ("target/depset_unpack/child-1/META-INF" ), 0777 );
58+ Java7AttributeUtils .chmod ( new File ("target/depset_unpack/child-1/META-INF/maven" ), 0777 );
59+ Java7AttributeUtils .chmod ( new File ("target/depset_unpack/child-1/META-INF/maven/test" ), 0777 );
60+ Java7AttributeUtils .chmod ( new File ("target/depset_unpack/child-1/META-INF/maven/test/child1" ), 0777 );
61+ Java7AttributeUtils .chmod ( new File ("target/depset_unpack/child-1/assembly-resources" ), 0777 );
5962 }
6063}
0 commit comments