You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@flex.apache.org by ah...@apache.org on 2016/04/06 17:02:24 UTC

[15/50] git commit: [flex-falcon] [refs/heads/master] - - Introduced a ITestAdapter interface that wraps build-system specific details - Moved the Ant-specific parts into a new AntTestAdapter - Added a new MavenTestAdapter for running unit-tests with Mav

- Introduced a ITestAdapter interface that wraps build-system specific details
- Moved the Ant-specific parts into a new AntTestAdapter
- Added a new MavenTestAdapter for running unit-tests with Maven.
- Changed the MXMLNodeBaseTests to use the AntTestAdapter per default, but to allow overriding this by setting a system-property and hereby switching to the MavenTestAdapter


Project: http://git-wip-us.apache.org/repos/asf/flex-falcon/repo
Commit: http://git-wip-us.apache.org/repos/asf/flex-falcon/commit/04bc6501
Tree: http://git-wip-us.apache.org/repos/asf/flex-falcon/tree/04bc6501
Diff: http://git-wip-us.apache.org/repos/asf/flex-falcon/diff/04bc6501

Branch: refs/heads/master
Commit: 04bc65015703f7d3552c39008e9c2ca7eb7aeb9a
Parents: f796ca2
Author: Christofer Dutz <ch...@codecentric.de>
Authored: Wed Feb 24 09:40:36 2016 +0100
Committer: Christofer Dutz <ch...@codecentric.de>
Committed: Wed Feb 24 09:40:36 2016 +0100

----------------------------------------------------------------------
 .../org/apache/flex/utils/AntTestAdapter.java   | 46 ++++++++++++++
 .../src/org/apache/flex/utils/ITestAdapter.java | 17 ++++++
 .../org/apache/flex/utils/MavenTestAdapter.java | 63 ++++++++++++++++++++
 .../internal/tree/mxml/MXMLNodeBaseTests.java   | 29 ++++-----
 4 files changed, 138 insertions(+), 17 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/flex-falcon/blob/04bc6501/compiler.tests/src/org/apache/flex/utils/AntTestAdapter.java
----------------------------------------------------------------------
diff --git a/compiler.tests/src/org/apache/flex/utils/AntTestAdapter.java b/compiler.tests/src/org/apache/flex/utils/AntTestAdapter.java
new file mode 100644
index 0000000..32c24d5
--- /dev/null
+++ b/compiler.tests/src/org/apache/flex/utils/AntTestAdapter.java
@@ -0,0 +1,46 @@
+package org.apache.flex.utils;
+
+import java.io.File;
+import java.util.ArrayList;
+import java.util.List;
+
+import static org.junit.Assert.assertNotNull;
+
+/**
+ * Created by christoferdutz on 23.02.16.
+ */
+public class AntTestAdapter implements ITestAdapter {
+
+    private static EnvProperties env = EnvProperties.initiate();
+
+    @Override
+    public String getTempDir() {
+        return FilenameNormalization.normalize("temp"); // ensure this exists
+    }
+
+    @Override
+    public List<File> getLibraries(boolean withFlex) {
+        // Do some checks if all needed environment variables are set.
+        if (withFlex) {
+            assertNotNull("Environment variable FLEX_HOME is not set", env.SDK);
+        }
+        assertNotNull("Environment variable PLAYERGLOBAL_HOME is not set", env.FPSDK);
+
+        // Create a list of libs needed to compile.
+        List<File> libraries = new ArrayList<File>();
+        libraries.add(new File(FilenameNormalization.normalize(env.FPSDK + "\\" + env.FPVER + "\\playerglobal.swc")));
+        if (withFlex)
+        {
+            libraries.add(new File(FilenameNormalization.normalize(env.SDK + "\\frameworks\\libs\\framework.swc")));
+            libraries.add(new File(FilenameNormalization.normalize(env.SDK + "\\frameworks\\libs\\rpc.swc")));
+            libraries.add(new File(FilenameNormalization.normalize(env.SDK + "\\frameworks\\libs\\spark.swc")));
+        }
+        return libraries;
+    }
+
+    @Override
+    public String getManifestPath() {
+        return env.SDK + "\\frameworks\\mxml-2009-manifest.xml";
+    }
+
+}

http://git-wip-us.apache.org/repos/asf/flex-falcon/blob/04bc6501/compiler.tests/src/org/apache/flex/utils/ITestAdapter.java
----------------------------------------------------------------------
diff --git a/compiler.tests/src/org/apache/flex/utils/ITestAdapter.java b/compiler.tests/src/org/apache/flex/utils/ITestAdapter.java
new file mode 100644
index 0000000..460ce16
--- /dev/null
+++ b/compiler.tests/src/org/apache/flex/utils/ITestAdapter.java
@@ -0,0 +1,17 @@
+package org.apache.flex.utils;
+
+import java.io.File;
+import java.util.List;
+
+/**
+ * Created by christoferdutz on 23.02.16.
+ */
+public interface ITestAdapter {
+
+    String getTempDir();
+
+    List<File> getLibraries(boolean withFlex);
+
+    String getManifestPath();
+
+}

http://git-wip-us.apache.org/repos/asf/flex-falcon/blob/04bc6501/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
new file mode 100644
index 0000000..403ee67
--- /dev/null
+++ b/compiler.tests/src/org/apache/flex/utils/MavenTestAdapter.java
@@ -0,0 +1,63 @@
+package org.apache.flex.utils;
+
+import java.io.File;
+import java.util.ArrayList;
+import java.util.List;
+
+/**
+ * Created by christoferdutz on 23.02.16.
+ */
+public class MavenTestAdapter implements ITestAdapter {
+
+    @Override
+    public String getTempDir() {
+        File tempDir = new File("target/surefire-temp");
+        if(!tempDir.exists()) {
+            if(!tempDir.mkdirs()) {
+                throw new RuntimeException("Could not create temp dir at: " + tempDir.getAbsolutePath());
+            }
+        }
+        return tempDir.getPath();
+    }
+
+    @Override
+    public List<File> getLibraries(boolean withFlex) {
+        List<File> libs = new ArrayList<File>();
+        libs.add(getDependency("com.adobe.flash.framework", "playerglobal",
+                System.getProperty("flashVersion"), "swc", null));
+        if(withFlex) {
+            String flexVersion = System.getProperty("flexVersion");
+            libs.add(getDependency("org.apache.flex.framework", "framework", flexVersion, "swc", null));
+            libs.add(getDependency("org.apache.flex.framework", "rpc", flexVersion, "swc", null));
+            libs.add(getDependency("org.apache.flex.framework", "spark", flexVersion, "swc", null));
+        }
+        return libs;
+    }
+
+    @Override
+    public String getManifestPath() {
+        File configsZip = getDependency("org.apache.flex.framework", "framework",
+                System.getProperty("flexVersion"), "zip", "configs");
+        File frameworkDir = configsZip.getParentFile();
+        File unpackedConfigsDir = new File(frameworkDir, "configs_zip");
+        // 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
+        }
+        return new File(unpackedConfigsDir, "mxml-2009-manifest.xml").getPath();
+    }
+
+    private File getDependency(String groupId, String artifactId, String version, String type, String classifier) {
+        String dependencyPath = System.getProperty("mavenLocalRepoDir") + "/" + groupId.replaceAll("\\.", "/") + "/" +
+                artifactId + "/" + version + "/" + artifactId + "-" + version +
+                ((classifier != null) ? "-" + classifier : "") + "." + type;
+        dependencyPath = FilenameNormalization.normalize(dependencyPath);
+        File dependency = new File(dependencyPath);
+        if(!dependency.exists()) {
+            throw new RuntimeException("Could not read SWC dependency at " + dependency.getAbsolutePath());
+        }
+        return dependency;
+    }
+
+}

http://git-wip-us.apache.org/repos/asf/flex-falcon/blob/04bc6501/compiler.tests/unit-tests/org/apache/flex/compiler/internal/tree/mxml/MXMLNodeBaseTests.java
----------------------------------------------------------------------
diff --git a/compiler.tests/unit-tests/org/apache/flex/compiler/internal/tree/mxml/MXMLNodeBaseTests.java b/compiler.tests/unit-tests/org/apache/flex/compiler/internal/tree/mxml/MXMLNodeBaseTests.java
index 048b44c..70eed1a 100644
--- a/compiler.tests/unit-tests/org/apache/flex/compiler/internal/tree/mxml/MXMLNodeBaseTests.java
+++ b/compiler.tests/unit-tests/org/apache/flex/compiler/internal/tree/mxml/MXMLNodeBaseTests.java
@@ -43,6 +43,9 @@ import org.apache.flex.compiler.units.requests.ISyntaxTreeRequestResult;
 import org.apache.flex.utils.EnvProperties;
 import org.apache.flex.utils.FilenameNormalization;
 import org.apache.flex.utils.StringUtils;
+import org.apache.flex.utils.ITestAdapter;
+import org.apache.flex.utils.AntTestAdapter;
+import org.apache.flex.utils.MavenTestAdapter;
 import org.junit.Ignore;
 
 /**
@@ -124,14 +127,14 @@ public class MXMLNodeBaseTests
     
     protected IMXMLFileNode getMXMLFileNode(String mxml, boolean withFlex)
 	{
-    	if (withFlex)
-    		assertNotNull("Environment variable FLEX_HOME is not set", env.SDK);
-		assertNotNull("Environment variable PLAYERGLOBAL_HOME is not set", env.FPSDK);
-		
 		project = new FlexProject(workspace);
-		FlexProjectConfigurator.configure(project);		
-		
-		String tempDir = FilenameNormalization.normalize("temp"); // ensure this exists
+		FlexProjectConfigurator.configure(project);
+
+		// Depending on the "buildType" system-property, create the corresponding test-adapter.
+		// Make the AntTestAdapter the default.
+		ITestAdapter testAdapter = System.getProperty("buildType", "Ant").equals("Maven") ?
+				new MavenTestAdapter() : new AntTestAdapter();
+		String tempDir = testAdapter.getTempDir();
 				
 		File tempMXMLFile = null;
 		try
@@ -152,21 +155,13 @@ public class MXMLNodeBaseTests
 		sourcePath.add(new File(tempDir));
 		project.setSourcePath(sourcePath);
 
-		// Compile the code against playerglobal.swc.
-		List<File> libraries = new ArrayList<File>();
-		libraries.add(new File(FilenameNormalization.normalize(env.FPSDK + "\\" + env.FPVER + "\\playerglobal.swc")));
-		if (withFlex)
-		{
-			libraries.add(new File(FilenameNormalization.normalize(env.SDK + "\\frameworks\\libs\\framework.swc")));
-			libraries.add(new File(FilenameNormalization.normalize(env.SDK + "\\frameworks\\libs\\rpc.swc")));
-			libraries.add(new File(FilenameNormalization.normalize(env.SDK + "\\frameworks\\libs\\spark.swc")));
-		}
+		List<File> libraries = testAdapter.getLibraries(withFlex);
 		project.setLibraries(libraries);
 		
 		// Use the MXML 2009 manifest.
 		List<IMXMLNamespaceMapping> namespaceMappings = new ArrayList<IMXMLNamespaceMapping>();
 		IMXMLNamespaceMapping mxml2009 = new MXMLNamespaceMapping(
-		    "http://ns.adobe.com/mxml/2009", env.SDK + "\\frameworks\\mxml-2009-manifest.xml");
+		    "http://ns.adobe.com/mxml/2009", testAdapter.getManifestPath());
 		namespaceMappings.add(mxml2009);
 		project.setNamespaceMappings(namespaceMappings);