git-svn-id: https://svn.apache.org/repos/asf/ant/core/trunk@271404 13f79535-47bb-0310-9956-ffa450edef68master
| @@ -111,7 +111,7 @@ public class Zip | |||
| /** | |||
| * Sets whether we want to compress the files or only store them. | |||
| * | |||
| * @param c The new Compress value | |||
| * @param compress The new Compress value | |||
| */ | |||
| public void setCompress( final boolean compress ) | |||
| { | |||
| @@ -146,8 +146,6 @@ public class Zip | |||
| /** | |||
| * Emulate Sun's jar utility by not adding parent dirs | |||
| * | |||
| * @param f The new Filesonly value | |||
| */ | |||
| public void setFilesonly( final boolean filesonly ) | |||
| { | |||
| @@ -157,8 +155,6 @@ public class Zip | |||
| /** | |||
| * Sets whether we want to update the file (if it exists) or create a new | |||
| * one. | |||
| * | |||
| * @param c The new Update value | |||
| */ | |||
| public void setUpdate( final boolean update ) | |||
| { | |||
| @@ -527,15 +523,12 @@ public class Zip | |||
| } | |||
| for( int i = 0; i < dirs.length; i++ ) | |||
| { | |||
| if( "".equals( dirs[ i ] ) ) | |||
| final String dir = dirs[ i ]; | |||
| if( "".equals( dir ) ) | |||
| { | |||
| continue; | |||
| } | |||
| String name = dirs[ i ].replace( File.separatorChar, '/' ); | |||
| if( !name.endsWith( "/" ) ) | |||
| { | |||
| name += "/"; | |||
| } | |||
| final String name = getName( dir ); | |||
| addParentDirs( thisBaseDir, name, zOut, prefix ); | |||
| } | |||
| @@ -564,6 +557,16 @@ public class Zip | |||
| } | |||
| } | |||
| private String getName( final String dir ) | |||
| { | |||
| String name = dir.replace( File.separatorChar, '/' ); | |||
| if( !name.endsWith( "/" ) ) | |||
| { | |||
| name += "/"; | |||
| } | |||
| return name; | |||
| } | |||
| /** | |||
| * Iterate over the given ArrayList of (zip)filesets and add all files to the | |||
| * ZipOutputStream using the given prefix or fullpath. | |||
| @@ -587,16 +590,10 @@ public class Zip | |||
| if( fs instanceof ZipFileSet ) | |||
| { | |||
| ZipFileSet zfs = (ZipFileSet)fs; | |||
| prefix = zfs.getPrefix(); | |||
| prefix = getPrefix( zfs.getPrefix() ); | |||
| fullpath = zfs.getFullpath(); | |||
| } | |||
| if( prefix.length() > 0 | |||
| && !prefix.endsWith( "/" ) | |||
| && !prefix.endsWith( "\\" ) ) | |||
| { | |||
| prefix += "/"; | |||
| } | |||
| // Need to manually add either fullpath's parent directory, or | |||
| // the prefix directory, to the archive. | |||
| @@ -623,6 +620,18 @@ public class Zip | |||
| } | |||
| } | |||
| private String getPrefix( final String prefix ) | |||
| { | |||
| String result = prefix; | |||
| if( result.length() > 0 | |||
| && !result.endsWith( "/" ) | |||
| && !result.endsWith( "\\" ) ) | |||
| { | |||
| result += "/"; | |||
| } | |||
| return result; | |||
| } | |||
| /** | |||
| * Ensure all parent dirs of a given entry have been added. | |||
| * | |||
| @@ -111,7 +111,7 @@ public class Zip | |||
| /** | |||
| * Sets whether we want to compress the files or only store them. | |||
| * | |||
| * @param c The new Compress value | |||
| * @param compress The new Compress value | |||
| */ | |||
| public void setCompress( final boolean compress ) | |||
| { | |||
| @@ -146,8 +146,6 @@ public class Zip | |||
| /** | |||
| * Emulate Sun's jar utility by not adding parent dirs | |||
| * | |||
| * @param f The new Filesonly value | |||
| */ | |||
| public void setFilesonly( final boolean filesonly ) | |||
| { | |||
| @@ -157,8 +155,6 @@ public class Zip | |||
| /** | |||
| * Sets whether we want to update the file (if it exists) or create a new | |||
| * one. | |||
| * | |||
| * @param c The new Update value | |||
| */ | |||
| public void setUpdate( final boolean update ) | |||
| { | |||
| @@ -527,15 +523,12 @@ public class Zip | |||
| } | |||
| for( int i = 0; i < dirs.length; i++ ) | |||
| { | |||
| if( "".equals( dirs[ i ] ) ) | |||
| final String dir = dirs[ i ]; | |||
| if( "".equals( dir ) ) | |||
| { | |||
| continue; | |||
| } | |||
| String name = dirs[ i ].replace( File.separatorChar, '/' ); | |||
| if( !name.endsWith( "/" ) ) | |||
| { | |||
| name += "/"; | |||
| } | |||
| final String name = getName( dir ); | |||
| addParentDirs( thisBaseDir, name, zOut, prefix ); | |||
| } | |||
| @@ -564,6 +557,16 @@ public class Zip | |||
| } | |||
| } | |||
| private String getName( final String dir ) | |||
| { | |||
| String name = dir.replace( File.separatorChar, '/' ); | |||
| if( !name.endsWith( "/" ) ) | |||
| { | |||
| name += "/"; | |||
| } | |||
| return name; | |||
| } | |||
| /** | |||
| * Iterate over the given ArrayList of (zip)filesets and add all files to the | |||
| * ZipOutputStream using the given prefix or fullpath. | |||
| @@ -587,16 +590,10 @@ public class Zip | |||
| if( fs instanceof ZipFileSet ) | |||
| { | |||
| ZipFileSet zfs = (ZipFileSet)fs; | |||
| prefix = zfs.getPrefix(); | |||
| prefix = getPrefix( zfs.getPrefix() ); | |||
| fullpath = zfs.getFullpath(); | |||
| } | |||
| if( prefix.length() > 0 | |||
| && !prefix.endsWith( "/" ) | |||
| && !prefix.endsWith( "\\" ) ) | |||
| { | |||
| prefix += "/"; | |||
| } | |||
| // Need to manually add either fullpath's parent directory, or | |||
| // the prefix directory, to the archive. | |||
| @@ -623,6 +620,18 @@ public class Zip | |||
| } | |||
| } | |||
| private String getPrefix( final String prefix ) | |||
| { | |||
| String result = prefix; | |||
| if( result.length() > 0 | |||
| && !result.endsWith( "/" ) | |||
| && !result.endsWith( "\\" ) ) | |||
| { | |||
| result += "/"; | |||
| } | |||
| return result; | |||
| } | |||
| /** | |||
| * Ensure all parent dirs of a given entry have been added. | |||
| * | |||