git-svn-id: https://svn.apache.org/repos/asf/ant/core/trunk@270944 13f79535-47bb-0310-9956-ffa450edef68master
@@ -8,15 +8,12 @@ | |||
package org.apache.tools.ant.taskdefs.archive; | |||
import java.io.File; | |||
import java.io.FileInputStream; | |||
import java.io.FileNotFoundException; | |||
import java.io.FileOutputStream; | |||
import java.io.IOException; | |||
import java.io.InputStream; | |||
import java.util.ArrayList; | |||
import java.util.Date; | |||
import java.util.zip.ZipEntry; | |||
import java.util.zip.ZipInputStream; | |||
import org.apache.avalon.excalibur.io.FileUtil; | |||
import org.apache.avalon.excalibur.io.IOUtil; | |||
import org.apache.myrmidon.api.TaskContext; | |||
@@ -35,7 +32,7 @@ import org.apache.tools.ant.types.ScannerUtil; | |||
* @author <a href="mailto:stefan.bodewig@epost.de">Stefan Bodewig</a> | |||
* @author <a href="mailto:umagesh@rediffmail.com">Magesh Umasankar</a> | |||
*/ | |||
public class Expand | |||
public abstract class Expand | |||
extends MatchingTask | |||
{ | |||
private boolean m_overwrite = true; | |||
@@ -171,46 +168,26 @@ public class Expand | |||
getLogger().info( message ); | |||
} | |||
expandArchive( src, dir ); | |||
if( getLogger().isDebugEnabled() ) | |||
{ | |||
final String message = "expand complete"; | |||
getLogger().debug( message ); | |||
} | |||
} | |||
protected void expandArchive( final File src, final File dir ) | |||
throws TaskException | |||
{ | |||
ZipInputStream zis = null; | |||
try | |||
{ | |||
// code from WarExpand | |||
zis = new ZipInputStream( new FileInputStream( src ) ); | |||
ZipEntry ze = null; | |||
while( ( ze = zis.getNextEntry() ) != null ) | |||
{ | |||
final Date date = new Date( ze.getTime() ); | |||
extractFile( dir, | |||
zis, | |||
ze.getName(), | |||
date, | |||
ze.isDirectory() ); | |||
} | |||
expandArchive( src, dir ); | |||
} | |||
catch( final IOException ioe ) | |||
{ | |||
final String message = "Error while expanding " + src.getPath(); | |||
throw new TaskException( message, ioe ); | |||
} | |||
finally | |||
if( getLogger().isDebugEnabled() ) | |||
{ | |||
IOUtil.shutdownStream( zis ); | |||
final String message = "expand complete"; | |||
getLogger().debug( message ); | |||
} | |||
} | |||
protected abstract void expandArchive( final File src, final File dir ) | |||
throws IOException, TaskException; | |||
protected void extractFile( final File dir, | |||
final InputStream input, | |||
final String entryName, | |||
@@ -25,7 +25,7 @@ public class Untar | |||
extends Expand | |||
{ | |||
protected void expandArchive( final File src, final File dir ) | |||
throws TaskException | |||
throws IOException, TaskException | |||
{ | |||
TarInputStream input = null; | |||
FileInputStream fileInput = null; | |||
@@ -44,18 +44,10 @@ public class Untar | |||
entry.isDirectory() ); | |||
} | |||
} | |||
catch( final IOException ioe ) | |||
{ | |||
final String message = "Error while expanding " + src.getPath(); | |||
throw new TaskException( message, ioe ); | |||
} | |||
finally | |||
{ | |||
IOUtil.shutdownStream( fileInput ); | |||
IOUtil.shutdownStream( input ); | |||
} | |||
final String message = "expand complete"; | |||
getLogger().debug( message ); | |||
} | |||
} |
@@ -0,0 +1,53 @@ | |||
/* | |||
* Copyright (C) The Apache Software Foundation. All rights reserved. | |||
* | |||
* This software is published under the terms of the Apache Software License | |||
* version 1.1, a copy of which has been included with this distribution in | |||
* the LICENSE.txt file. | |||
*/ | |||
package org.apache.tools.ant.taskdefs.archive; | |||
import java.io.File; | |||
import java.io.FileInputStream; | |||
import java.io.IOException; | |||
import java.util.Date; | |||
import java.util.zip.ZipEntry; | |||
import java.util.zip.ZipInputStream; | |||
import org.apache.avalon.excalibur.io.IOUtil; | |||
import org.apache.myrmidon.api.TaskException; | |||
/** | |||
* Untar a file. Heavily based on the Expand task. | |||
* | |||
* @author <a href="mailto:stefan.bodewig@epost.de">Stefan Bodewig</a> | |||
* @author <a href="mailto:umagesh@rediffmail.com">Magesh Umasankar</a> | |||
*/ | |||
public class Unzip | |||
extends Expand | |||
{ | |||
protected void expandArchive( final File src, final File dir ) | |||
throws IOException, TaskException | |||
{ | |||
ZipInputStream zis = null; | |||
try | |||
{ | |||
// code from WarExpand | |||
zis = new ZipInputStream( new FileInputStream( src ) ); | |||
ZipEntry ze = null; | |||
while( ( ze = zis.getNextEntry() ) != null ) | |||
{ | |||
final Date date = new Date( ze.getTime() ); | |||
extractFile( dir, | |||
zis, | |||
ze.getName(), | |||
date, | |||
ze.isDirectory() ); | |||
} | |||
} | |||
finally | |||
{ | |||
IOUtil.shutdownStream( zis ); | |||
} | |||
} | |||
} |
@@ -8,15 +8,12 @@ | |||
package org.apache.tools.ant.taskdefs.archive; | |||
import java.io.File; | |||
import java.io.FileInputStream; | |||
import java.io.FileNotFoundException; | |||
import java.io.FileOutputStream; | |||
import java.io.IOException; | |||
import java.io.InputStream; | |||
import java.util.ArrayList; | |||
import java.util.Date; | |||
import java.util.zip.ZipEntry; | |||
import java.util.zip.ZipInputStream; | |||
import org.apache.avalon.excalibur.io.FileUtil; | |||
import org.apache.avalon.excalibur.io.IOUtil; | |||
import org.apache.myrmidon.api.TaskContext; | |||
@@ -35,7 +32,7 @@ import org.apache.tools.ant.types.ScannerUtil; | |||
* @author <a href="mailto:stefan.bodewig@epost.de">Stefan Bodewig</a> | |||
* @author <a href="mailto:umagesh@rediffmail.com">Magesh Umasankar</a> | |||
*/ | |||
public class Expand | |||
public abstract class Expand | |||
extends MatchingTask | |||
{ | |||
private boolean m_overwrite = true; | |||
@@ -171,46 +168,26 @@ public class Expand | |||
getLogger().info( message ); | |||
} | |||
expandArchive( src, dir ); | |||
if( getLogger().isDebugEnabled() ) | |||
{ | |||
final String message = "expand complete"; | |||
getLogger().debug( message ); | |||
} | |||
} | |||
protected void expandArchive( final File src, final File dir ) | |||
throws TaskException | |||
{ | |||
ZipInputStream zis = null; | |||
try | |||
{ | |||
// code from WarExpand | |||
zis = new ZipInputStream( new FileInputStream( src ) ); | |||
ZipEntry ze = null; | |||
while( ( ze = zis.getNextEntry() ) != null ) | |||
{ | |||
final Date date = new Date( ze.getTime() ); | |||
extractFile( dir, | |||
zis, | |||
ze.getName(), | |||
date, | |||
ze.isDirectory() ); | |||
} | |||
expandArchive( src, dir ); | |||
} | |||
catch( final IOException ioe ) | |||
{ | |||
final String message = "Error while expanding " + src.getPath(); | |||
throw new TaskException( message, ioe ); | |||
} | |||
finally | |||
if( getLogger().isDebugEnabled() ) | |||
{ | |||
IOUtil.shutdownStream( zis ); | |||
final String message = "expand complete"; | |||
getLogger().debug( message ); | |||
} | |||
} | |||
protected abstract void expandArchive( final File src, final File dir ) | |||
throws IOException, TaskException; | |||
protected void extractFile( final File dir, | |||
final InputStream input, | |||
final String entryName, | |||
@@ -25,7 +25,7 @@ public class Untar | |||
extends Expand | |||
{ | |||
protected void expandArchive( final File src, final File dir ) | |||
throws TaskException | |||
throws IOException, TaskException | |||
{ | |||
TarInputStream input = null; | |||
FileInputStream fileInput = null; | |||
@@ -44,18 +44,10 @@ public class Untar | |||
entry.isDirectory() ); | |||
} | |||
} | |||
catch( final IOException ioe ) | |||
{ | |||
final String message = "Error while expanding " + src.getPath(); | |||
throw new TaskException( message, ioe ); | |||
} | |||
finally | |||
{ | |||
IOUtil.shutdownStream( fileInput ); | |||
IOUtil.shutdownStream( input ); | |||
} | |||
final String message = "expand complete"; | |||
getLogger().debug( message ); | |||
} | |||
} |
@@ -0,0 +1,53 @@ | |||
/* | |||
* Copyright (C) The Apache Software Foundation. All rights reserved. | |||
* | |||
* This software is published under the terms of the Apache Software License | |||
* version 1.1, a copy of which has been included with this distribution in | |||
* the LICENSE.txt file. | |||
*/ | |||
package org.apache.tools.ant.taskdefs.archive; | |||
import java.io.File; | |||
import java.io.FileInputStream; | |||
import java.io.IOException; | |||
import java.util.Date; | |||
import java.util.zip.ZipEntry; | |||
import java.util.zip.ZipInputStream; | |||
import org.apache.avalon.excalibur.io.IOUtil; | |||
import org.apache.myrmidon.api.TaskException; | |||
/** | |||
* Untar a file. Heavily based on the Expand task. | |||
* | |||
* @author <a href="mailto:stefan.bodewig@epost.de">Stefan Bodewig</a> | |||
* @author <a href="mailto:umagesh@rediffmail.com">Magesh Umasankar</a> | |||
*/ | |||
public class Unzip | |||
extends Expand | |||
{ | |||
protected void expandArchive( final File src, final File dir ) | |||
throws IOException, TaskException | |||
{ | |||
ZipInputStream zis = null; | |||
try | |||
{ | |||
// code from WarExpand | |||
zis = new ZipInputStream( new FileInputStream( src ) ); | |||
ZipEntry ze = null; | |||
while( ( ze = zis.getNextEntry() ) != null ) | |||
{ | |||
final Date date = new Date( ze.getTime() ); | |||
extractFile( dir, | |||
zis, | |||
ze.getName(), | |||
date, | |||
ze.isDirectory() ); | |||
} | |||
} | |||
finally | |||
{ | |||
IOUtil.shutdownStream( zis ); | |||
} | |||
} | |||
} |