You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@directory.apache.org by fe...@apache.org on 2007/12/06 11:36:24 UTC
svn commit: r601684 - in /directory/sandbox/felixk/studio-plugin: pom.xml
src/main/java/org/apache/directory/studio/maven/plugins/AbstractStudioMojo.java
Author: felixk
Date: Thu Dec 6 02:36:24 2007
New Revision: 601684
URL: http://svn.apache.org/viewvc?rev=601684&view=rev
Log:
Use plexus unarchiver
Modified:
directory/sandbox/felixk/studio-plugin/pom.xml
directory/sandbox/felixk/studio-plugin/src/main/java/org/apache/directory/studio/maven/plugins/AbstractStudioMojo.java
Modified: directory/sandbox/felixk/studio-plugin/pom.xml
URL: http://svn.apache.org/viewvc/directory/sandbox/felixk/studio-plugin/pom.xml?rev=601684&r1=601683&r2=601684&view=diff
==============================================================================
--- directory/sandbox/felixk/studio-plugin/pom.xml (original)
+++ directory/sandbox/felixk/studio-plugin/pom.xml Thu Dec 6 02:36:24 2007
@@ -68,6 +68,36 @@
<artifactId>maven-model</artifactId>
<version>2.0.7</version>
</dependency>
+ <dependency>
+ <groupId>org.codehaus.plexus</groupId>
+ <artifactId>plexus-archiver</artifactId>
+ <version>1.0-alpha-9</version>
+ <exclusions>
+ <exclusion>
+ <groupId>org.codehaus.plexus</groupId>
+ <artifactId>plexus-container-default</artifactId>
+ </exclusion>
+ <exclusion>
+ <groupId>org.codehaus.plexus</groupId>
+ <artifactId>plexus-component-api</artifactId>
+ </exclusion>
+ </exclusions>
+ </dependency>
+ <dependency>
+ <groupId>org.codehaus.plexus</groupId>
+ <artifactId>plexus-io</artifactId>
+ <version>1.0-alpha-1</version>
+ <exclusions>
+ <exclusion>
+ <groupId>org.codehaus.plexus</groupId>
+ <artifactId>plexus-container-default</artifactId>
+ </exclusion>
+ <exclusion>
+ <groupId>org.codehaus.plexus</groupId>
+ <artifactId>plexus-component-api</artifactId>
+ </exclusion>
+ </exclusions>
+ </dependency>
</dependencies>
<reporting>
Modified: directory/sandbox/felixk/studio-plugin/src/main/java/org/apache/directory/studio/maven/plugins/AbstractStudioMojo.java
URL: http://svn.apache.org/viewvc/directory/sandbox/felixk/studio-plugin/src/main/java/org/apache/directory/studio/maven/plugins/AbstractStudioMojo.java?rev=601684&r1=601683&r2=601684&view=diff
==============================================================================
--- directory/sandbox/felixk/studio-plugin/src/main/java/org/apache/directory/studio/maven/plugins/AbstractStudioMojo.java (original)
+++ directory/sandbox/felixk/studio-plugin/src/main/java/org/apache/directory/studio/maven/plugins/AbstractStudioMojo.java Thu Dec 6 02:36:24 2007
@@ -22,12 +22,9 @@
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
-import java.io.InputStream;
-import java.util.Enumeration;
import java.util.Iterator;
import java.util.List;
import java.util.zip.ZipEntry;
-import java.util.zip.ZipFile;
import java.util.zip.ZipOutputStream;
import org.apache.commons.lang.StringUtils;
@@ -43,6 +40,10 @@
import org.apache.maven.plugin.AbstractMojo;
import org.apache.maven.plugin.MojoExecutionException;
import org.apache.maven.project.MavenProject;
+import org.codehaus.plexus.archiver.ArchiverException;
+import org.codehaus.plexus.archiver.UnArchiver;
+import org.codehaus.plexus.archiver.manager.ArchiverManager;
+import org.codehaus.plexus.archiver.manager.NoSuchArchiverException;
/**
* The abstract studio mojo
@@ -53,6 +54,15 @@
public abstract class AbstractStudioMojo extends AbstractMojo {
/**
+ * To look up Archiver/UnArchiver implementations
+ *
+ * @parameter expression="${component.org.codehaus.plexus.archiver.manager.ArchiverManager}"
+ * @required
+ * @readonly
+ */
+ protected ArchiverManager archiverManager;
+
+ /**
* Location of the file.
*
* @parameter expression="${project.build.directory}"
@@ -153,40 +163,29 @@
/**
* Unzip a file into a directory
*
- * @param unzipDir
+ * @param location
* The directory the file unzip into
- * @param zipFile
+ * @param file
* The file to unzip
*/
- protected void unzipToDir(final File unzipDir, final File zipFile) throws Exception {
- final ZipFile zf = new ZipFile(zipFile);
-
+ protected void unzipToDir(final File location, final File file) throws Exception {
try {
- final Enumeration<? extends ZipEntry> zipEnum = zf.entries();
- while (zipEnum.hasMoreElements()) {
- final ZipEntry item = zipEnum.nextElement();
-
- if (item.isDirectory()) {
- final File newdir = new File(unzipDir.getAbsoluteFile() + File.separator + item.getName());
- newdir.mkdirs();
- } else {
- final String newfile = unzipDir.getAbsoluteFile() + File.separator + item.getName();
- final InputStream is = zf.getInputStream(item);
- final FileOutputStream fos = new FileOutputStream(newfile);
- try {
- int ch;
- while ((ch = is.read()) != -1) {
- fos.write(ch);
- }
- } finally {
- is.close();
- fos.flush();
- fos.close();
- }
- }
+ location.mkdirs();
+ UnArchiver unArchiver = archiverManager.getUnArchiver( file );
+ unArchiver.setSourceFile( file );
+
+ unArchiver.setDestDirectory( location );
+ unArchiver.extract();
}
- } finally {
- zf.close();
+ catch ( NoSuchArchiverException e )
+ {
+ throw new MojoExecutionException( "Unknown archiver type", e );
+ }
+ catch ( ArchiverException e )
+ {
+ e.printStackTrace();
+ throw new MojoExecutionException( "Error unpacking file: " + file + " to: " + location + "\r\n"
+ + e.toString(), e );
}
}