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/04/11 16:00:03 UTC
[36/50] git commit: [flex-falcon]
[refs/heads/feature/maven-migration] - changes to get XML in the requires
changes to get XML in the requires
Project: http://git-wip-us.apache.org/repos/asf/flex-falcon/repo
Commit: http://git-wip-us.apache.org/repos/asf/flex-falcon/commit/6c6584da
Tree: http://git-wip-us.apache.org/repos/asf/flex-falcon/tree/6c6584da
Diff: http://git-wip-us.apache.org/repos/asf/flex-falcon/diff/6c6584da
Branch: refs/heads/feature/maven-migration
Commit: 6c6584da5be8ab5c4df0012110479b4d7d336a8b
Parents: 88a9bc2
Author: Alex Harui <ah...@apache.org>
Authored: Thu Apr 7 10:39:28 2016 -0700
Committer: Alex Harui <ah...@apache.org>
Committed: Thu Apr 7 10:42:59 2016 -0700
----------------------------------------------------------------------
.../js/flexjs/TestFlexJSGlobalClasses.java | 1 +
.../codegen/js/flexjs/TestFlexJSProject.java | 15 +++
.../flex/compiler/internal/test/TestBase.java | 98 ++++++++++++++------
.../flexjs/projects/interfaces/Test_result.js | 1 +
.../flexjs/projects/super/Base_result.js | 1 +
.../flexjs/projects/xml_requires/XMLRequire.as | 30 ++++++
.../projects/xml_requires/XMLRequire_result.js | 74 +++++++++++++++
.../codegen/js/jx/PackageHeaderEmitter.java | 2 +-
.../mxml/flexjs/MXMLFlexJSPublisher.java | 71 ++++++++++++++
.../internal/projects/FlexJSProject.java | 5 +
compiler.tests/.classpath | 1 +
11 files changed, 270 insertions(+), 29 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/flex-falcon/blob/6c6584da/compiler.jx.tests/src/org/apache/flex/compiler/internal/codegen/js/flexjs/TestFlexJSGlobalClasses.java
----------------------------------------------------------------------
diff --git a/compiler.jx.tests/src/org/apache/flex/compiler/internal/codegen/js/flexjs/TestFlexJSGlobalClasses.java b/compiler.jx.tests/src/org/apache/flex/compiler/internal/codegen/js/flexjs/TestFlexJSGlobalClasses.java
index df663af..32f28f5 100644
--- a/compiler.jx.tests/src/org/apache/flex/compiler/internal/codegen/js/flexjs/TestFlexJSGlobalClasses.java
+++ b/compiler.jx.tests/src/org/apache/flex/compiler/internal/codegen/js/flexjs/TestFlexJSGlobalClasses.java
@@ -27,6 +27,7 @@ import org.apache.flex.compiler.internal.projects.FlexJSProject;
import org.apache.flex.compiler.internal.tree.as.VariableNode;
import org.apache.flex.compiler.tree.as.IASNode;
import org.apache.flex.compiler.tree.as.IBinaryOperatorNode;
+import org.apache.flex.compiler.tree.as.IFileNode;
import org.apache.flex.compiler.tree.as.IForLoopNode;
import org.apache.flex.compiler.tree.as.IFunctionCallNode;
import org.apache.flex.compiler.tree.as.IFunctionNode;
http://git-wip-us.apache.org/repos/asf/flex-falcon/blob/6c6584da/compiler.jx.tests/src/org/apache/flex/compiler/internal/codegen/js/flexjs/TestFlexJSProject.java
----------------------------------------------------------------------
diff --git a/compiler.jx.tests/src/org/apache/flex/compiler/internal/codegen/js/flexjs/TestFlexJSProject.java b/compiler.jx.tests/src/org/apache/flex/compiler/internal/codegen/js/flexjs/TestFlexJSProject.java
index fec0d2f..c057f92 100644
--- a/compiler.jx.tests/src/org/apache/flex/compiler/internal/codegen/js/flexjs/TestFlexJSProject.java
+++ b/compiler.jx.tests/src/org/apache/flex/compiler/internal/codegen/js/flexjs/TestFlexJSProject.java
@@ -131,6 +131,21 @@ public class TestFlexJSProject extends TestGoogProject
}
@Test
+ public void test_XMLRequires()
+ {
+ String testDirPath = projectDirPath + "/xml_requires";
+
+ String fileName = "XMLRequire";
+
+ sourcePath = new File(TestAdapterFactory.getTestAdapter().getUnitTestBaseDir(),
+ projectDirPath + "/xml_requires").getPath();
+
+ List<String> compiledFileNames = compileProject(fileName, testDirPath);
+
+ assertProjectOut(compiledFileNames, testDirPath);
+ }
+
+ @Test
public void test_Overrides()
{
String testDirPath = projectDirPath + "/overrides";
http://git-wip-us.apache.org/repos/asf/flex-falcon/blob/6c6584da/compiler.jx.tests/src/org/apache/flex/compiler/internal/test/TestBase.java
----------------------------------------------------------------------
diff --git a/compiler.jx.tests/src/org/apache/flex/compiler/internal/test/TestBase.java b/compiler.jx.tests/src/org/apache/flex/compiler/internal/test/TestBase.java
index 186f690..d8d6e36 100644
--- a/compiler.jx.tests/src/org/apache/flex/compiler/internal/test/TestBase.java
+++ b/compiler.jx.tests/src/org/apache/flex/compiler/internal/test/TestBase.java
@@ -40,6 +40,7 @@ import java.util.List;
import org.apache.flex.compiler.codegen.as.IASEmitter;
import org.apache.flex.compiler.codegen.mxml.IMXMLEmitter;
import org.apache.flex.compiler.config.Configurator;
+import org.apache.flex.compiler.constants.IASLanguageConstants;
import org.apache.flex.compiler.driver.IBackend;
import org.apache.flex.compiler.internal.codegen.as.ASEmitterTokens;
import org.apache.flex.compiler.internal.codegen.as.ASFilterWriter;
@@ -350,7 +351,7 @@ public class TestBase implements ITestBase
qname = mainCU.getQualifiedNames().get(0);
final File outputClassFile = getOutputClassFile(qname
+ "_output", outputRootDir);
- appendLanguage(outputClassFile.getAbsolutePath(), qname);
+ appendLanguageAndXML(outputClassFile.getAbsolutePath(), qname);
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
@@ -374,34 +375,75 @@ public class TestBase implements ITestBase
fw.close();
}
- private void appendLanguage(String path, String projectName)
- throws IOException
- {
- StringBuilder appendString = new StringBuilder();
- appendString.append(JSGoogEmitterTokens.GOOG_REQUIRE.getToken());
- appendString.append(ASEmitterTokens.PAREN_OPEN.getToken());
- appendString.append(ASEmitterTokens.SINGLE_QUOTE.getToken());
- appendString.append(JSFlexJSEmitterTokens.LANGUAGE_QNAME.getToken());
- appendString.append(ASEmitterTokens.SINGLE_QUOTE.getToken());
- appendString.append(ASEmitterTokens.PAREN_CLOSE.getToken());
- appendString.append(ASEmitterTokens.SEMICOLON.getToken());
-
- String fileData = readCode(new File(path));
- int reqidx = fileData.indexOf(appendString.toString());
-
+ private void appendLanguageAndXML(String path, String projectName) throws IOException
+ {
+ StringBuilder appendString = new StringBuilder();
+ appendString.append(JSGoogEmitterTokens.GOOG_REQUIRE.getToken());
+ appendString.append(ASEmitterTokens.PAREN_OPEN.getToken());
+ appendString.append(ASEmitterTokens.SINGLE_QUOTE.getToken());
+ appendString.append(JSFlexJSEmitterTokens.LANGUAGE_QNAME.getToken());
+ appendString.append(ASEmitterTokens.SINGLE_QUOTE.getToken());
+ appendString.append(ASEmitterTokens.PAREN_CLOSE.getToken());
+ appendString.append(ASEmitterTokens.SEMICOLON.getToken());
+ appendString.append("\n");
+
+ String fileData = readCode(new File(path));
+ int reqidx = fileData.indexOf(appendString.toString());
if (reqidx == -1 && project instanceof FlexJSProject && ((FlexJSProject)project).needLanguage)
- {
- reqidx = fileData.lastIndexOf(JSGoogEmitterTokens.GOOG_REQUIRE.getToken());
- if (reqidx == -1)
- reqidx = fileData.lastIndexOf(JSGoogEmitterTokens.GOOG_PROVIDE.getToken());
- reqidx = fileData.indexOf(";", reqidx);
- String after = fileData.substring(reqidx + 1);
- String before = fileData.substring(0, reqidx + 1);
- String s = before + "\n" + appendString.toString() + after;
- writeFile(path, s, false);
- }
- }
-
+ {
+ boolean afterProvide = false;
+ reqidx = fileData.lastIndexOf(JSGoogEmitterTokens.GOOG_REQUIRE.getToken());
+ if (reqidx == -1)
+ {
+ afterProvide = true;
+ reqidx = fileData.lastIndexOf(JSGoogEmitterTokens.GOOG_PROVIDE.getToken());
+ }
+ reqidx = fileData.indexOf(";", reqidx);
+ String after = fileData.substring(reqidx + 1);
+ String before = fileData.substring(0, reqidx + 1);
+ if (afterProvide)
+ before += "\n";
+ String s = before + "\n" + appendString.toString() + after;
+ writeFile(path, s, false);
+ }
+
+ StringBuilder appendStringXML = new StringBuilder();
+ appendStringXML.append(JSGoogEmitterTokens.GOOG_REQUIRE.getToken());
+ appendStringXML.append(ASEmitterTokens.PAREN_OPEN.getToken());
+ appendStringXML.append(ASEmitterTokens.SINGLE_QUOTE.getToken());
+ appendStringXML.append(IASLanguageConstants.XML);
+ appendStringXML.append(ASEmitterTokens.SINGLE_QUOTE.getToken());
+ appendStringXML.append(ASEmitterTokens.PAREN_CLOSE.getToken());
+ appendStringXML.append(ASEmitterTokens.SEMICOLON.getToken());
+ appendStringXML.append("\n");
+
+ if (project instanceof FlexJSProject && ((FlexJSProject)project).needXML)
+ {
+ fileData = readCode(new File(path));
+ reqidx = fileData.indexOf(appendStringXML.toString());
+ if (reqidx == -1)
+ {
+ boolean afterProvide = false;
+ reqidx = fileData.lastIndexOf(JSGoogEmitterTokens.GOOG_REQUIRE.getToken());
+ if (reqidx == -1)
+ {
+ afterProvide = true;
+ reqidx = fileData.lastIndexOf(JSGoogEmitterTokens.GOOG_PROVIDE.getToken());
+ }
+ reqidx = fileData.lastIndexOf(JSGoogEmitterTokens.GOOG_REQUIRE.getToken());
+ if (reqidx == -1)
+ reqidx = fileData.lastIndexOf(JSGoogEmitterTokens.GOOG_PROVIDE.getToken());
+ reqidx = fileData.indexOf(";", reqidx);
+ String after = fileData.substring(reqidx + 1);
+ String before = fileData.substring(0, reqidx + 1);
+ if (afterProvide)
+ before += "\n";
+ String s = before + "\n" + appendStringXML.toString() + after;
+ writeFile(path, s, false);
+ }
+ }
+ }
+
protected String readCode(File file)
{
String code = "";
http://git-wip-us.apache.org/repos/asf/flex-falcon/blob/6c6584da/compiler.jx.tests/test-files/flexjs/projects/interfaces/Test_result.js
----------------------------------------------------------------------
diff --git a/compiler.jx.tests/test-files/flexjs/projects/interfaces/Test_result.js b/compiler.jx.tests/test-files/flexjs/projects/interfaces/Test_result.js
index 42ab0f4..92bb29f 100644
--- a/compiler.jx.tests/test-files/flexjs/projects/interfaces/Test_result.js
+++ b/compiler.jx.tests/test-files/flexjs/projects/interfaces/Test_result.js
@@ -29,6 +29,7 @@ goog.require('org.apache.flex.utils.Language');
+
/**
* @constructor
* @extends {classes.A}
http://git-wip-us.apache.org/repos/asf/flex-falcon/blob/6c6584da/compiler.jx.tests/test-files/flexjs/projects/super/Base_result.js
----------------------------------------------------------------------
diff --git a/compiler.jx.tests/test-files/flexjs/projects/super/Base_result.js b/compiler.jx.tests/test-files/flexjs/projects/super/Base_result.js
index 1306674..db3ade9 100644
--- a/compiler.jx.tests/test-files/flexjs/projects/super/Base_result.js
+++ b/compiler.jx.tests/test-files/flexjs/projects/super/Base_result.js
@@ -26,6 +26,7 @@ goog.require('org.apache.flex.utils.Language');
+
/**
* @constructor
* @extends {Super}
http://git-wip-us.apache.org/repos/asf/flex-falcon/blob/6c6584da/compiler.jx.tests/test-files/flexjs/projects/xml_requires/XMLRequire.as
----------------------------------------------------------------------
diff --git a/compiler.jx.tests/test-files/flexjs/projects/xml_requires/XMLRequire.as b/compiler.jx.tests/test-files/flexjs/projects/xml_requires/XMLRequire.as
new file mode 100644
index 0000000..4a997c9
--- /dev/null
+++ b/compiler.jx.tests/test-files/flexjs/projects/xml_requires/XMLRequire.as
@@ -0,0 +1,30 @@
+////////////////////////////////////////////////////////////////////////////////
+//
+// Licensed to the Apache Software Foundation (ASF) under one or more
+// contributor license agreements. See the NOTICE file distributed with
+// this work for additional information regarding copyright ownership.
+// The ASF licenses this file to You under the Apache License, Version 2.0
+// (the "License"); you may not use this file except in compliance with
+// the License. You may obtain a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+//
+////////////////////////////////////////////////////////////////////////////////
+package
+{
+
+ public class XMLRequire
+ {
+ public function XMLRequire()
+ {
+ var myXML:XML = <node />;
+ }
+ }
+
+}
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/flex-falcon/blob/6c6584da/compiler.jx.tests/test-files/flexjs/projects/xml_requires/XMLRequire_result.js
----------------------------------------------------------------------
diff --git a/compiler.jx.tests/test-files/flexjs/projects/xml_requires/XMLRequire_result.js b/compiler.jx.tests/test-files/flexjs/projects/xml_requires/XMLRequire_result.js
new file mode 100644
index 0000000..d6affbe
--- /dev/null
+++ b/compiler.jx.tests/test-files/flexjs/projects/xml_requires/XMLRequire_result.js
@@ -0,0 +1,74 @@
+/**
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+/**
+ * XMLRequire
+ *
+ * @fileoverview
+ *
+ * @suppress {checkTypes|accessControls}
+ */
+
+goog.provide('XMLRequire');
+
+goog.require('XML');
+
+
+
+
+
+/**
+ * @constructor
+ */
+XMLRequire = function() {
+ var /** @type {XML} */ myXML = new XML( '<node />') ;
+};
+
+
+/**
+ * Metadata
+ *
+ * @type {Object.<string, Array.<Object>>}
+ */
+XMLRequire.prototype.FLEXJS_CLASS_INFO = { names: [{ name: 'XMLRequire', qName: 'XMLRequire'}] };
+
+
+/**
+ * Prevent renaming of class. Needed for reflection.
+ */
+goog.exportSymbol('XMLRequire', XMLRequire);
+
+
+
+/**
+ * Reflection
+ *
+ * @return {Object.<string, Function>}
+ */
+XMLRequire.prototype.FLEXJS_REFLECTION_INFO = function () {
+ return {
+ variables: function () {
+ return {
+ };
+ },
+ accessors: function () {
+ return {
+ };
+ },
+ methods: function () {
+ return {
+ 'XMLRequire': { type: '', declaredBy: 'XMLRequire'}
+ };
+ }
+ };
+};
http://git-wip-us.apache.org/repos/asf/flex-falcon/blob/6c6584da/compiler.jx/src/org/apache/flex/compiler/internal/codegen/js/jx/PackageHeaderEmitter.java
----------------------------------------------------------------------
diff --git a/compiler.jx/src/org/apache/flex/compiler/internal/codegen/js/jx/PackageHeaderEmitter.java b/compiler.jx/src/org/apache/flex/compiler/internal/codegen/js/jx/PackageHeaderEmitter.java
index 48acf5b..d47c6dc 100644
--- a/compiler.jx/src/org/apache/flex/compiler/internal/codegen/js/jx/PackageHeaderEmitter.java
+++ b/compiler.jx/src/org/apache/flex/compiler/internal/codegen/js/jx/PackageHeaderEmitter.java
@@ -208,7 +208,7 @@ public class PackageHeaderEmitter extends JSSubEmitter implements
if (NativeUtils.isNative(imp))
{
- if (!(imp.equals("QName") || imp.equals("Namespace")))
+ if (!(imp.equals("QName") || imp.equals("Namespace") || imp.equals("XML") || imp.equals("XMLList")))
continue;
}
http://git-wip-us.apache.org/repos/asf/flex-falcon/blob/6c6584da/compiler.jx/src/org/apache/flex/compiler/internal/codegen/mxml/flexjs/MXMLFlexJSPublisher.java
----------------------------------------------------------------------
diff --git a/compiler.jx/src/org/apache/flex/compiler/internal/codegen/mxml/flexjs/MXMLFlexJSPublisher.java b/compiler.jx/src/org/apache/flex/compiler/internal/codegen/mxml/flexjs/MXMLFlexJSPublisher.java
index 347e01c..4dcc1be 100644
--- a/compiler.jx/src/org/apache/flex/compiler/internal/codegen/mxml/flexjs/MXMLFlexJSPublisher.java
+++ b/compiler.jx/src/org/apache/flex/compiler/internal/codegen/mxml/flexjs/MXMLFlexJSPublisher.java
@@ -42,6 +42,7 @@ import org.apache.commons.io.filefilter.RegexFileFilter;
import org.apache.flex.compiler.clients.problems.ProblemQuery;
import org.apache.flex.compiler.codegen.js.IJSPublisher;
import org.apache.flex.compiler.config.Configuration;
+import org.apache.flex.compiler.constants.IASLanguageConstants;
import org.apache.flex.compiler.css.ICSSPropertyValue;
import org.apache.flex.compiler.internal.codegen.as.ASEmitterTokens;
import org.apache.flex.compiler.internal.codegen.js.JSSharedData;
@@ -278,6 +279,7 @@ public class MXMLFlexJSPublisher extends JSGoogPublisher implements IJSPublisher
appendExportSymbol(projectIntermediateJSFilePath, projectName);
appendEncodedCSS(projectIntermediateJSFilePath, projectName);
+ appendLanguageAndXML(projectIntermediateJSFilePath, projectName);
// if (!subsetGoog)
// {
@@ -525,6 +527,75 @@ public class MXMLFlexJSPublisher extends JSGoogPublisher implements IJSPublisher
}
}
+ private void appendLanguageAndXML(String path, String projectName) throws IOException
+ {
+ StringBuilder appendString = new StringBuilder();
+ appendString.append(JSGoogEmitterTokens.GOOG_REQUIRE.getToken());
+ appendString.append(ASEmitterTokens.PAREN_OPEN.getToken());
+ appendString.append(ASEmitterTokens.SINGLE_QUOTE.getToken());
+ appendString.append(JSFlexJSEmitterTokens.LANGUAGE_QNAME.getToken());
+ appendString.append(ASEmitterTokens.SINGLE_QUOTE.getToken());
+ appendString.append(ASEmitterTokens.PAREN_CLOSE.getToken());
+ appendString.append(ASEmitterTokens.SEMICOLON.getToken());
+ appendString.append("\n");
+
+ String fileData = readCode(new File(path));
+ int reqidx = fileData.indexOf(appendString.toString());
+ if (reqidx == -1 && project.needLanguage)
+ {
+ boolean afterProvide = false;
+ reqidx = fileData.lastIndexOf(JSGoogEmitterTokens.GOOG_REQUIRE.getToken());
+ if (reqidx == -1)
+ {
+ afterProvide = true;
+ reqidx = fileData.lastIndexOf(JSGoogEmitterTokens.GOOG_PROVIDE.getToken());
+ }
+ reqidx = fileData.indexOf(";", reqidx);
+ String after = fileData.substring(reqidx + 1);
+ String before = fileData.substring(0, reqidx + 1);
+ if (afterProvide)
+ before += "\n";
+ String s = before + "\n" + appendString.toString() + after;
+ writeFile(path, s, false);
+ }
+
+ StringBuilder appendStringXML = new StringBuilder();
+ appendStringXML.append(JSGoogEmitterTokens.GOOG_REQUIRE.getToken());
+ appendStringXML.append(ASEmitterTokens.PAREN_OPEN.getToken());
+ appendStringXML.append(ASEmitterTokens.SINGLE_QUOTE.getToken());
+ appendStringXML.append(IASLanguageConstants.XML);
+ appendStringXML.append(ASEmitterTokens.SINGLE_QUOTE.getToken());
+ appendStringXML.append(ASEmitterTokens.PAREN_CLOSE.getToken());
+ appendStringXML.append(ASEmitterTokens.SEMICOLON.getToken());
+ appendStringXML.append("\n");
+
+ if (project.needXML)
+ {
+ fileData = readCode(new File(path));
+ reqidx = fileData.indexOf(appendStringXML.toString());
+ if (reqidx == -1)
+ {
+ boolean afterProvide = false;
+ reqidx = fileData.lastIndexOf(JSGoogEmitterTokens.GOOG_REQUIRE.getToken());
+ if (reqidx == -1)
+ {
+ afterProvide = true;
+ reqidx = fileData.lastIndexOf(JSGoogEmitterTokens.GOOG_PROVIDE.getToken());
+ }
+ reqidx = fileData.lastIndexOf(JSGoogEmitterTokens.GOOG_REQUIRE.getToken());
+ if (reqidx == -1)
+ reqidx = fileData.lastIndexOf(JSGoogEmitterTokens.GOOG_PROVIDE.getToken());
+ reqidx = fileData.indexOf(";", reqidx);
+ String after = fileData.substring(reqidx + 1);
+ String before = fileData.substring(0, reqidx + 1);
+ if (afterProvide)
+ before += "\n";
+ String s = before + "\n" + appendStringXML.toString() + after;
+ writeFile(path, s, false);
+ }
+ }
+ }
+
protected String readCode(File file)
{
String code = "";
http://git-wip-us.apache.org/repos/asf/flex-falcon/blob/6c6584da/compiler.jx/src/org/apache/flex/compiler/internal/projects/FlexJSProject.java
----------------------------------------------------------------------
diff --git a/compiler.jx/src/org/apache/flex/compiler/internal/projects/FlexJSProject.java b/compiler.jx/src/org/apache/flex/compiler/internal/projects/FlexJSProject.java
index a1098a7..67869ab 100644
--- a/compiler.jx/src/org/apache/flex/compiler/internal/projects/FlexJSProject.java
+++ b/compiler.jx/src/org/apache/flex/compiler/internal/projects/FlexJSProject.java
@@ -101,7 +101,11 @@ public class FlexJSProject extends FlexProject
}
}
else if (!isExternalLinkage(to) || qname.equals("Namespace"))
+ {
+ if (qname.equals("XML"))
+ needXML = true;
reqs.put(qname, dt);
+ }
}
}
else
@@ -134,6 +138,7 @@ public class FlexJSProject extends FlexProject
public boolean needLanguage;
public boolean needCSS;
+ public boolean needXML;
private LinkageChecker linkageChecker;
private ITargetSettings ts;
http://git-wip-us.apache.org/repos/asf/flex-falcon/blob/6c6584da/compiler.tests/.classpath
----------------------------------------------------------------------
diff --git a/compiler.tests/.classpath b/compiler.tests/.classpath
index c8aaecc..7508ebe 100644
--- a/compiler.tests/.classpath
+++ b/compiler.tests/.classpath
@@ -9,5 +9,6 @@
<classpathentry kind="lib" path="/compiler/lib/commons-io.jar"/>
<classpathentry kind="src" path="/compiler"/>
<classpathentry kind="lib" path="/compiler/lib/guava.jar"/>
+ <classpathentry kind="lib" path="/compiler.tests/lib/commons-compress-1.10.jar"/>
<classpathentry kind="output" path="classes"/>
</classpath>