You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@flex.apache.org by cd...@apache.org on 2016/03/19 17:07:48 UTC
git commit: [flex-falcon] [refs/heads/develop] - Implemented the
MavenTestAdapter to automatically unpack the framework config zip (Needed the
commons-compress library for that)
Repository: flex-falcon
Updated Branches:
refs/heads/develop b4fd16147 -> da24e6038
Implemented the MavenTestAdapter to automatically unpack the framework config zip (Needed the commons-compress library for that)
Project: http://git-wip-us.apache.org/repos/asf/flex-falcon/repo
Commit: http://git-wip-us.apache.org/repos/asf/flex-falcon/commit/da24e603
Tree: http://git-wip-us.apache.org/repos/asf/flex-falcon/tree/da24e603
Diff: http://git-wip-us.apache.org/repos/asf/flex-falcon/diff/da24e603
Branch: refs/heads/develop
Commit: da24e6038b731d4ec725724e8a8b892137e049a0
Parents: b4fd161
Author: Christofer Dutz <ch...@codecentric.de>
Authored: Sat Mar 19 17:07:42 2016 +0100
Committer: Christofer Dutz <ch...@codecentric.de>
Committed: Sat Mar 19 17:07:42 2016 +0100
----------------------------------------------------------------------
compiler.tests/downloads.xml | 35 ++++++++-
.../org/apache/flex/utils/MavenTestAdapter.java | 74 +++++++++++++++++++-
2 files changed, 103 insertions(+), 6 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/flex-falcon/blob/da24e603/compiler.tests/downloads.xml
----------------------------------------------------------------------
diff --git a/compiler.tests/downloads.xml b/compiler.tests/downloads.xml
index 2638cb9..ebd4324 100644
--- a/compiler.tests/downloads.xml
+++ b/compiler.tests/downloads.xml
@@ -33,7 +33,8 @@
For Apache, the JARS must be removed from the repository.
Licenses:
- JUnit (4.10) - CPL 1.0
+ JUnit (4.10) - CPL 1.0
+ Commons Compress - Apache 2.0
-->
<!--
@@ -41,7 +42,7 @@
they are each downloaded only if they don't already exist.
-->
- <target name="main" depends="prepare, junit-jar"
+ <target name="main" depends="prepare, junit-jar, commons-compress-jar"
description="Downloads all the required thirdparty JARs"/>
<target name="prepare" >
@@ -57,6 +58,7 @@
<delete includeEmptyDirs="true" failonerror="false">
<fileset dir="${download.dir}">
<include name="junit*/**"/>
+ <include name="commons-compress*/**"/>
</fileset>
</delete>
</target>
@@ -115,5 +117,32 @@
<param name="destJarFile" value="${lib.dir}/junit-4.10.jar"/>
</antcall>
</target>
-
+
+ <!--
+ commons-compress
+ -->
+
+ <target name="commons-compress-jar-check" description="Checks if commons-compress JAR exists.">
+ <condition property="commons-compress.jar.exists">
+ <and>
+ <available file="${lib.dir}/commons-compress-1.10.jar"/>
+ </and>
+ </condition>
+ </target>
+
+ <target name="commons-compress-jar" depends="commons-compress-jar-check" unless="commons-compress.jar.exists"
+ description="Copies the commons-compress JAR to the lib directory.">
+ <echo message="Obtaining lib/commons-compress-1.10.jar"/>
+ <antcall target="commons-compress-download-jar"/>
+ </target>
+
+ <target name="commons-compress-download-jar" depends="commons-compress-jar-check" unless="commons-compress.jar.exists"
+ description="Downloads the commons-compress jar.">
+ <antcall target="download-jar">
+ <param name="srcUrl" value="https://repo1.maven.org/maven2/org/apache/commons/commons-compress/1.10"/>
+ <param name="srcJarFile" value="commons-compress-1.10.jar"/>
+ <param name="destJarFile" value="${lib.dir}/commons-compress-1.10.jar"/>
+ </antcall>
+ </target>
+
</project>
http://git-wip-us.apache.org/repos/asf/flex-falcon/blob/da24e603/compiler.tests/src/org/apache/flex/utils/MavenTestAdapter.java
----------------------------------------------------------------------
diff --git a/compiler.tests/src/org/apache/flex/utils/MavenTestAdapter.java b/compiler.tests/src/org/apache/flex/utils/MavenTestAdapter.java
index 485d14b..ae45eda 100644
--- a/compiler.tests/src/org/apache/flex/utils/MavenTestAdapter.java
+++ b/compiler.tests/src/org/apache/flex/utils/MavenTestAdapter.java
@@ -19,9 +19,13 @@
package org.apache.flex.utils;
+import org.apache.commons.compress.archivers.ArchiveEntry;
+import org.apache.commons.compress.archivers.ArchiveException;
+import org.apache.commons.compress.archivers.ArchiveInputStream;
+import org.apache.commons.compress.archivers.ArchiveStreamFactory;
import org.apache.commons.io.FilenameUtils;
-import java.io.File;
+import java.io.*;
import java.util.ArrayList;
import java.util.List;
@@ -30,6 +34,10 @@ import java.util.List;
*/
public class MavenTestAdapter implements ITestAdapter {
+ private static final int KILOBYTE = 1024;
+ private static final int MEGABYTE = KILOBYTE * 1024;
+ private static final int BUFFER_MAX = MEGABYTE;
+
@Override
public String getTempDir() {
File tempDir = new File("target/surefire-temp");
@@ -79,7 +87,7 @@ public class MavenTestAdapter implements ITestAdapter {
// If the directory doesn't exist, we have to create it by unpacking the zip archive.
// This is identical behaviour to Flexmojos, which does the same thing.
if(!unpackedConfigsDir.exists()) {
- // TODO: Implement
+ unpackFrameworkConfigs(configsZip, unpackedConfigsDir);
}
return new File(unpackedConfigsDir, type + "-manifest.xml").getPath();
}
@@ -105,7 +113,7 @@ public class MavenTestAdapter implements ITestAdapter {
// If the directory doesn't exist, we have to create it by unpacking the zip archive.
// This is identical behaviour to Flexmojos, which does the same thing.
if(!unpackedConfigsDir.exists()) {
- // TODO: Implement
+ unpackFrameworkConfigs(configsZip, unpackedConfigsDir);
}
return new File(unpackedConfigsDir, type + "-manifest.xml").getPath();
}
@@ -133,4 +141,64 @@ public class MavenTestAdapter implements ITestAdapter {
return dependency;
}
+ private void unpackFrameworkConfigs(File configZip, File outputDirectory) {
+ final byte[] data = new byte[BUFFER_MAX];
+ ArchiveInputStream archiveInputStream = null;
+ ArchiveEntry entry;
+ try {
+ archiveInputStream = new ArchiveStreamFactory().createArchiveInputStream(
+ new BufferedInputStream(new FileInputStream(configZip)));
+ if(!outputDirectory.exists() && !outputDirectory.mkdirs()) {
+ throw new RuntimeException("Could not create output directory for config zip at " +
+ outputDirectory.getPath());
+ }
+ while ((entry = archiveInputStream.getNextEntry()) != null) {
+ final File outputFile = new File(outputDirectory, entry.getName());
+
+ // Entry is a directory.
+ if (entry.isDirectory()) {
+ if (!outputFile.exists()) {
+ if(!outputFile.mkdirs()) {
+ throw new RuntimeException(
+ "Could not create output directory " + outputFile.getAbsolutePath());
+ }
+ }
+ }
+
+ // Entry is a file.
+ else {
+ final FileOutputStream fos = new FileOutputStream(outputFile);
+ BufferedOutputStream dest = null;
+ try {
+ dest = new BufferedOutputStream(fos, BUFFER_MAX);
+
+ int count;
+ while ((count = archiveInputStream.read(data, 0, BUFFER_MAX)) != -1) {
+ dest.write(data, 0, count);
+ }
+ } finally {
+ if(dest != null) {
+ dest.flush();
+ dest.close();
+ }
+ }
+ }
+ }
+ } catch (FileNotFoundException e) {
+ throw new RuntimeException("Error unpacking resources", e);
+ } catch (IOException e) {
+ throw new RuntimeException("Error unpacking resources", e);
+ } catch (ArchiveException e) {
+ throw new RuntimeException("Error unpacking resources", e);
+ } finally {
+ if(archiveInputStream != null) {
+ try {
+ archiveInputStream.close();
+ } catch(Exception e) {
+ // Ignore...
+ }
+ }
+ }
+ }
+
}