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 2014/11/23 13:26:38 UTC
[1/6] git commit: [flex-falcon] [refs/heads/develop] - - Made Falcon
implement the flex-tool-api
Repository: flex-falcon
Updated Branches:
refs/heads/develop 461873b1f -> 18b403c9c
- Made Falcon implement the flex-tool-api
Project: http://git-wip-us.apache.org/repos/asf/flex-falcon/repo
Commit: http://git-wip-us.apache.org/repos/asf/flex-falcon/commit/7923ce9d
Tree: http://git-wip-us.apache.org/repos/asf/flex-falcon/tree/7923ce9d
Diff: http://git-wip-us.apache.org/repos/asf/flex-falcon/diff/7923ce9d
Branch: refs/heads/develop
Commit: 7923ce9d7aa590380f0606ed4e1df15592db0543
Parents: 3011d63
Author: Christofer Dutz <ch...@codecentric.de>
Authored: Mon Nov 10 10:25:28 2014 +0100
Committer: Christofer Dutz <ch...@codecentric.de>
Committed: Mon Nov 10 10:25:28 2014 +0100
----------------------------------------------------------------------
compiler/downloads.xml | 14 +++++++
.../org.apache.flex.tools.FlexToolGroup | 1 +
.../org/apache/flex/compiler/clients/COMPC.java | 15 +++++++-
.../flex/compiler/clients/FalconToolGroup.java | 39 ++++++++++++++++++++
.../org/apache/flex/compiler/clients/MXMLC.java | 16 +++++++-
.../apache/flex/compiler/clients/Optimizer.java | 12 +++++-
6 files changed, 92 insertions(+), 5 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/flex-falcon/blob/7923ce9d/compiler/downloads.xml
----------------------------------------------------------------------
diff --git a/compiler/downloads.xml b/compiler/downloads.xml
index 28f1fd9..60b7f07 100644
--- a/compiler/downloads.xml
+++ b/compiler/downloads.xml
@@ -216,6 +216,20 @@
<param name="dest.filename" value="${lzma.name}-sdk.jar"/>
<param name="license.use.url" value="http://www.7-zip.org/sdk.html"/>
</antcall>
+
+ <!-- flex-tool-api -->
+ <property name="flexToolApi.name" value="flex-tool-api"/>
+ <property name="flexToolApi.version" value="1.0.0-SNAPSHOT"/>
+ <antcall target="download-dependency">
+ <param name="name" value="${flexToolApi.name}"/>
+ <param name="src.server" value="http://repository.apache.org/content/groups/snapshots"/>
+ <param name="src.folder" value="org/apache/flex/flex-tool-api/${flexToolApi.version}"/>
+ <param name="src.filename" value="flex-tool-api-1.0.0-20141105.140704-1.jar"/>
+ <param name="src.checksum" value="b37c99011d06e1ff794d8ee9153ab2c4"/>
+ <param name="dest.folder" value=""/>
+ <param name="dest.filename" value="${flexToolApi.name}.jar"/>
+ <param name="license.use.apache" value="true"/>
+ </antcall>
</target>
<target name="maven-related" description="Downloads and copies all dependencies to the lib directory.">
http://git-wip-us.apache.org/repos/asf/flex-falcon/blob/7923ce9d/compiler/src/META-INF/services/org.apache.flex.tools.FlexToolGroup
----------------------------------------------------------------------
diff --git a/compiler/src/META-INF/services/org.apache.flex.tools.FlexToolGroup b/compiler/src/META-INF/services/org.apache.flex.tools.FlexToolGroup
new file mode 100644
index 0000000..1a8af6d
--- /dev/null
+++ b/compiler/src/META-INF/services/org.apache.flex.tools.FlexToolGroup
@@ -0,0 +1 @@
+org.apache.flex.compiler.clients.FalconToolGroup
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/flex-falcon/blob/7923ce9d/compiler/src/org/apache/flex/compiler/clients/COMPC.java
----------------------------------------------------------------------
diff --git a/compiler/src/org/apache/flex/compiler/clients/COMPC.java b/compiler/src/org/apache/flex/compiler/clients/COMPC.java
index 6216855..af55eac 100644
--- a/compiler/src/org/apache/flex/compiler/clients/COMPC.java
+++ b/compiler/src/org/apache/flex/compiler/clients/COMPC.java
@@ -43,6 +43,7 @@ import org.apache.flex.swc.io.ISWCWriter;
import org.apache.flex.swc.io.SWCDirectoryWriter;
import org.apache.flex.swc.io.SWCWriter;
import org.apache.flex.swf.io.SizeReportWritingSWFWriter;
+import org.apache.flex.tools.FlexTool;
import org.apache.flex.utils.FilenameNormalization;
/**
@@ -51,7 +52,7 @@ import org.apache.flex.utils.FilenameNormalization;
* This class is a quick start of component compiler. It depends on most of the
* functionalities developed for mxmlc.
*/
-public class COMPC extends MXMLC
+public class COMPC extends MXMLC implements FlexTool
{
/**
* Entry point for <code>compc</code> tool.
@@ -75,7 +76,17 @@ public class COMPC extends MXMLC
final COMPC compc = new COMPC();
return compc.mainNoExit(args);
}
-
+
+ @Override
+ public String getName() {
+ return "COMPC";
+ }
+
+ @Override
+ public int execute(String[] args) {
+ return mainNoExit(args);
+ }
+
/**
* Console message describing the size and location of the created
* SWC file.
http://git-wip-us.apache.org/repos/asf/flex-falcon/blob/7923ce9d/compiler/src/org/apache/flex/compiler/clients/FalconToolGroup.java
----------------------------------------------------------------------
diff --git a/compiler/src/org/apache/flex/compiler/clients/FalconToolGroup.java b/compiler/src/org/apache/flex/compiler/clients/FalconToolGroup.java
new file mode 100644
index 0000000..3185155
--- /dev/null
+++ b/compiler/src/org/apache/flex/compiler/clients/FalconToolGroup.java
@@ -0,0 +1,39 @@
+package org.apache.flex.compiler.clients;
+
+import org.apache.flex.tools.FlexTool;
+import org.apache.flex.tools.FlexToolGroup;
+
+import java.util.Collection;
+import java.util.HashMap;
+import java.util.Map;
+
+/**
+ * FlexToolGroup exposing the implementations of the Falcon compilers tools.
+ */
+public class FalconToolGroup implements FlexToolGroup {
+
+ Map<String, FlexTool> tools;
+
+ public FalconToolGroup() {
+ tools = new HashMap<String, FlexTool>();
+ tools.put("COMPC", new COMPC());
+ tools.put("MXMLC", new MXMLC());
+ tools.put("OPTIMIZER", new Optimizer());
+ }
+
+ @Override
+ public String getName() {
+ return "Falcon";
+ }
+
+ @Override
+ public Collection<String> getFlexToolNames() {
+ return tools.keySet();
+ }
+
+ @Override
+ public FlexTool getFlexTool(String toolName) {
+ return tools.get(toolName);
+ }
+
+}
http://git-wip-us.apache.org/repos/asf/flex-falcon/blob/7923ce9d/compiler/src/org/apache/flex/compiler/clients/MXMLC.java
----------------------------------------------------------------------
diff --git a/compiler/src/org/apache/flex/compiler/clients/MXMLC.java b/compiler/src/org/apache/flex/compiler/clients/MXMLC.java
index c10d826..2b7e97b 100644
--- a/compiler/src/org/apache/flex/compiler/clients/MXMLC.java
+++ b/compiler/src/org/apache/flex/compiler/clients/MXMLC.java
@@ -89,6 +89,7 @@ import org.apache.flex.swf.Header;
import org.apache.flex.swf.ISWF;
import org.apache.flex.swf.io.ISWFWriter;
import org.apache.flex.swf.io.SizeReportWritingSWFWriter;
+import org.apache.flex.tools.FlexTool;
import org.apache.flex.utils.FilenameNormalization;
import com.google.common.base.Function;
@@ -101,7 +102,7 @@ import com.google.common.collect.Lists;
/**
* The entry-point class for mxmlc.
*/
-public class MXMLC
+public class MXMLC implements FlexTool
{
static final String NEWLINE = System.getProperty("line.separator");
private static final String SWF_EXT = ".swf";
@@ -173,7 +174,18 @@ public class MXMLC
code == ExitCode.FAILED_WITH_EXCEPTIONS.getCode() ||
code == ExitCode.FAILED_WITH_CONFIG_ERRORS.getCode();
}
-
+
+ @Override
+ public String getName() {
+ return "MXMLC";
+ }
+
+ @Override
+ public int execute(String[] args) {
+ return mainNoExit(args);
+ }
+
+
/**
* Entry point for when you already have an MXMLC instance.
* This is for unit testing.
http://git-wip-us.apache.org/repos/asf/flex-falcon/blob/7923ce9d/compiler/src/org/apache/flex/compiler/clients/Optimizer.java
----------------------------------------------------------------------
diff --git a/compiler/src/org/apache/flex/compiler/clients/Optimizer.java b/compiler/src/org/apache/flex/compiler/clients/Optimizer.java
index 9fadf6d..1566cf5 100644
--- a/compiler/src/org/apache/flex/compiler/clients/Optimizer.java
+++ b/compiler/src/org/apache/flex/compiler/clients/Optimizer.java
@@ -69,12 +69,13 @@ import java.util.Map;
import java.util.Set;
import org.apache.commons.io.IOUtils;
+import org.apache.flex.tools.FlexTool;
/**
* Command line optimizer - can read in a swf, apply the optimizations usually done during swf linking,
* and write out the swf again.
*/
-public class Optimizer
+public class Optimizer implements FlexTool
{
static final String NEWLINE = System.getProperty("line.separator");
private static final String DEFAULT_VAR = "input";
@@ -98,6 +99,15 @@ public class Optimizer
return optimizer.mainNoExit(args);
}
+ @Override
+ public String getName() {
+ return "OPTIMIZER";
+ }
+
+ @Override
+ public int execute(String[] args) {
+ return mainNoExit(args);
+ }
public int mainNoExit(final String[] args)
{
[5/6] git commit: [flex-falcon] [refs/heads/develop] - - Adjusted the
build to use the released version of the flex-tool-api - Had to disable
support for VF2JS as both compilers use the same base classes and overwrite
each others static state variables.
Posted by cd...@apache.org.
- Adjusted the build to use the released version of the flex-tool-api
- Had to disable support for VF2JS as both compilers use the same base classes and overwrite each others static state variables.
- Added code to dump the content of a jar to a given directory (Needed in order to dump closure-library artifact)
- Made MXMLFlexJSPublisher and MXMLVF2JSPublisher dump the content of the closure-library if the library-path is not set and closure resources are available on the classpath.
Project: http://git-wip-us.apache.org/repos/asf/flex-falcon/repo
Commit: http://git-wip-us.apache.org/repos/asf/flex-falcon/commit/e92a0e9c
Tree: http://git-wip-us.apache.org/repos/asf/flex-falcon/tree/e92a0e9c
Diff: http://git-wip-us.apache.org/repos/asf/flex-falcon/diff/e92a0e9c
Branch: refs/heads/develop
Commit: e92a0e9c11fea71ff3d96395b80a9fe8a0aa37bd
Parents: 8dec674
Author: Christofer Dutz <ch...@codecentric.de>
Authored: Sun Nov 23 12:37:51 2014 +0100
Committer: Christofer Dutz <ch...@codecentric.de>
Committed: Sun Nov 23 12:37:51 2014 +0100
----------------------------------------------------------------------
compiler.jx/downloads.xml | 26 ++--
.../apache/flex/compiler/clients/COMPJSC.java | 2 +-
.../flex/compiler/clients/FlexJSToolGroup.java | 2 +-
.../apache/flex/compiler/clients/MXMLJSC.java | 103 +++++----------
.../flex/compiler/clients/VF2JSToolGroup.java | 6 +-
.../codegen/js/goog/JSGoogPublisher.java | 36 +++++-
.../mxml/flexjs/MXMLFlexJSPublisher.java | 125 +++++++++++++++----
.../codegen/mxml/vf2js/MXMLVF2JSPublisher.java | 83 ++++++++----
.../driver/js/goog/JSGoogConfiguration.java | 6 +-
.../compiler/internal/graph/GoogDepsWriter.java | 58 ++++-----
compiler/downloads.xml | 24 ++--
.../org/apache/flex/compiler/clients/COMPC.java | 2 +-
.../org/apache/flex/compiler/clients/MXMLC.java | 2 +-
.../apache/flex/compiler/clients/Optimizer.java | 2 +-
maven/falcon-jx-compiler.pom | 5 +
15 files changed, 293 insertions(+), 189 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/flex-falcon/blob/e92a0e9c/compiler.jx/downloads.xml
----------------------------------------------------------------------
diff --git a/compiler.jx/downloads.xml b/compiler.jx/downloads.xml
index dd64945..a14de7a 100644
--- a/compiler.jx/downloads.xml
+++ b/compiler.jx/downloads.xml
@@ -151,19 +151,19 @@
<param name="dest.filename" value="${org.json.name}.jar"/>
</antcall>
- <!-- flex-tool-api -->
- <property name="flexToolApi.name" value="flex-tool-api"/>
- <property name="flexToolApi.version" value="1.0.0-SNAPSHOT"/>
- <antcall target="download-dependency">
- <param name="name" value="${flexToolApi.name}"/>
- <param name="src.server" value="http://repository.apache.org/content/groups/snapshots"/>
- <param name="src.folder" value="org/apache/flex/flex-tool-api/${flexToolApi.version}"/>
- <param name="src.filename" value="flex-tool-api-1.0.0-20141105.140704-1.jar"/>
- <param name="src.checksum" value="b37c99011d06e1ff794d8ee9153ab2c4"/>
- <param name="dest.folder" value=""/>
- <param name="dest.filename" value="${flexToolApi.name}.jar"/>
- <param name="license.use.apache" value="true"/>
- </antcall>
+ <!-- flex-tool-api -->
+ <property name="flexToolApi.name" value="flex-tool-api"/>
+ <property name="flexToolApi.version" value="1.0.0"/>
+ <antcall target="download-dependency">
+ <param name="name" value="${flexToolApi.name}"/>
+ <param name="src.server" value="${maven.search.url}"/>
+ <param name="src.folder" value="org/apache/flex/${flexToolApi.name}/${flexToolApi.version}"/>
+ <param name="src.filename" value="${flexToolApi.name}-${flexToolApi.version}.jar"/>
+ <param name="src.checksum" value="b8f76174b2c4d3b83e5c9fa78703c52b"/>
+ <param name="dest.folder" value=""/>
+ <param name="dest.filename" value="${flexToolApi.name}.jar"/>
+ <param name="license.use.apache" value="true"/>
+ </antcall>
</target>
http://git-wip-us.apache.org/repos/asf/flex-falcon/blob/e92a0e9c/compiler.jx/src/org/apache/flex/compiler/clients/COMPJSC.java
----------------------------------------------------------------------
diff --git a/compiler.jx/src/org/apache/flex/compiler/clients/COMPJSC.java b/compiler.jx/src/org/apache/flex/compiler/clients/COMPJSC.java
index 068b2f3..5a953f8 100644
--- a/compiler.jx/src/org/apache/flex/compiler/clients/COMPJSC.java
+++ b/compiler.jx/src/org/apache/flex/compiler/clients/COMPJSC.java
@@ -84,7 +84,7 @@ public class COMPJSC extends MXMLJSC implements FlexTool
@Override
public String getName() {
- return "COMPC";
+ return FLEX_TOOL_COMPC;
}
@Override
http://git-wip-us.apache.org/repos/asf/flex-falcon/blob/e92a0e9c/compiler.jx/src/org/apache/flex/compiler/clients/FlexJSToolGroup.java
----------------------------------------------------------------------
diff --git a/compiler.jx/src/org/apache/flex/compiler/clients/FlexJSToolGroup.java b/compiler.jx/src/org/apache/flex/compiler/clients/FlexJSToolGroup.java
index 1f10aa7..f7c48be 100644
--- a/compiler.jx/src/org/apache/flex/compiler/clients/FlexJSToolGroup.java
+++ b/compiler.jx/src/org/apache/flex/compiler/clients/FlexJSToolGroup.java
@@ -30,7 +30,7 @@ public class FlexJSToolGroup extends AbstractFlexToolGroup {
public FlexJSToolGroup() {
super("FlexJS");
addFlexTool(new COMPJSC(new MXMLFlexJSBackend()));
- addFlexTool(new COMPJSC(new MXMLFlexJSBackend()));
+ addFlexTool(new MXMLJSC(new MXMLFlexJSBackend()));
}
}
http://git-wip-us.apache.org/repos/asf/flex-falcon/blob/e92a0e9c/compiler.jx/src/org/apache/flex/compiler/clients/MXMLJSC.java
----------------------------------------------------------------------
diff --git a/compiler.jx/src/org/apache/flex/compiler/clients/MXMLJSC.java b/compiler.jx/src/org/apache/flex/compiler/clients/MXMLJSC.java
index 2716aea..c968086 100644
--- a/compiler.jx/src/org/apache/flex/compiler/clients/MXMLJSC.java
+++ b/compiler.jx/src/org/apache/flex/compiler/clients/MXMLJSC.java
@@ -146,7 +146,7 @@ public class MXMLJSC implements FlexTool
@Override
public String getName() {
- return "MXMLC";
+ return FLEX_TOOL_MXMLC;
}
@Override
@@ -288,29 +288,29 @@ public class MXMLJSC implements FlexTool
{
String[] adjustedArgs = args;
- switch (jsOutputType)
- {
- case VF2JS:
- boolean isFlashBuilderProject = useFlashBuilderProjectFiles(args);
+ if(jsOutputType != null) {
+ switch (jsOutputType) {
+ case VF2JS:
+ boolean isFlashBuilderProject = useFlashBuilderProjectFiles(args);
- if (isFlashBuilderProject)
- {
- adjustedArgs = FlashBuilderConfigurator
- .computeFlashBuilderArgs(adjustedArgs,
- getTargetType().getExtension());
- }
+ if (isFlashBuilderProject) {
+ adjustedArgs = FlashBuilderConfigurator
+ .computeFlashBuilderArgs(adjustedArgs,
+ getTargetType().getExtension());
+ }
+
+ //String projectFilePath = adjustedArgs[adjustedArgs.length - 1];
+ //
+ //String newProjectFilePath = VF2JSProjectUtils
+ // .createTempProject(projectFilePath,
+ // isFlashBuilderProject);
+ //
+ //adjustedArgs[adjustedArgs.length - 1] = newProjectFilePath;
- //String projectFilePath = adjustedArgs[adjustedArgs.length - 1];
- //
- //String newProjectFilePath = VF2JSProjectUtils
- // .createTempProject(projectFilePath,
- // isFlashBuilderProject);
- //
- //adjustedArgs[adjustedArgs.length - 1] = newProjectFilePath;
-
- break;
- default:
- break;
+ break;
+ default:
+ break;
+ }
}
final boolean continueCompilation = configure(adjustedArgs);
@@ -401,32 +401,17 @@ public class MXMLJSC implements FlexTool
return false;
}
- switch (jsOutputType)
- {
- case FLEXJS: {
+ if(JSSharedData.backend instanceof MXMLFlexJSBackend) {
jsPublisher = new MXMLFlexJSPublisher(config, project);
-
- break;
- }
-
- case GOOG: {
- jsPublisher = new JSGoogPublisher(config);
-
- break;
}
-
- case VF2JS: {
+ else if(JSSharedData.backend instanceof MXMLVF2JSBackend) {
jsPublisher = new MXMLVF2JSPublisher(config, project);
-
- break;
}
-
- case AMD:
- default: {
- jsPublisher = new JSPublisher(config);
-
- break;
+ else if(JSSharedData.backend instanceof GoogBackend) {
+ jsPublisher = new JSGoogPublisher(config);
}
+ else {
+ jsPublisher = new JSPublisher(config);
}
File outputFolder = jsPublisher.getOutputFolder();
@@ -473,37 +458,11 @@ public class MXMLJSC implements FlexTool
}
}
- switch (jsOutputType)
- {
- case AMD: {
- //
-
- break;
- }
-
- case FLEXJS: {
- //
-
- break;
- }
-
- case GOOG: {
- //
-
- break;
- }
-
- case VF2JS: {
- //
-
- break;
- }
- }
-
- if (jsPublisher != null)
+ if (jsPublisher != null) {
compilationSuccess = jsPublisher.publish(problems);
- else
+ } else {
compilationSuccess = true;
+ }
}
}
catch (Exception e)
http://git-wip-us.apache.org/repos/asf/flex-falcon/blob/e92a0e9c/compiler.jx/src/org/apache/flex/compiler/clients/VF2JSToolGroup.java
----------------------------------------------------------------------
diff --git a/compiler.jx/src/org/apache/flex/compiler/clients/VF2JSToolGroup.java b/compiler.jx/src/org/apache/flex/compiler/clients/VF2JSToolGroup.java
index 12500da..3c72962 100644
--- a/compiler.jx/src/org/apache/flex/compiler/clients/VF2JSToolGroup.java
+++ b/compiler.jx/src/org/apache/flex/compiler/clients/VF2JSToolGroup.java
@@ -19,7 +19,7 @@
package org.apache.flex.compiler.clients;
-import org.apache.flex.compiler.internal.driver.js.vf2js.VF2JSBackend;
+import org.apache.flex.compiler.internal.driver.mxml.vf2js.MXMLVF2JSBackend;
import org.apache.flex.tools.AbstractFlexToolGroup;
/**
@@ -29,8 +29,8 @@ public class VF2JSToolGroup extends AbstractFlexToolGroup {
public VF2JSToolGroup() {
super("VF2JS");
- addFlexTool(new COMPJSC(new VF2JSBackend()));
- addFlexTool(new COMPJSC(new VF2JSBackend()));
+// addFlexTool(new COMPJSC(new MXMLVF2JSBackend()));
+// addFlexTool(new MXMLJSC(new MXMLVF2JSBackend()));
}
}
http://git-wip-us.apache.org/repos/asf/flex-falcon/blob/e92a0e9c/compiler.jx/src/org/apache/flex/compiler/internal/codegen/js/goog/JSGoogPublisher.java
----------------------------------------------------------------------
diff --git a/compiler.jx/src/org/apache/flex/compiler/internal/codegen/js/goog/JSGoogPublisher.java b/compiler.jx/src/org/apache/flex/compiler/internal/codegen/js/goog/JSGoogPublisher.java
index 24e2f01..a37974e 100644
--- a/compiler.jx/src/org/apache/flex/compiler/internal/codegen/js/goog/JSGoogPublisher.java
+++ b/compiler.jx/src/org/apache/flex/compiler/internal/codegen/js/goog/JSGoogPublisher.java
@@ -18,12 +18,13 @@
*/
package org.apache.flex.compiler.internal.codegen.js.goog;
-import java.io.File;
-import java.io.FileWriter;
-import java.io.IOException;
+import java.io.*;
import java.util.ArrayList;
import java.util.Collection;
+import java.util.Enumeration;
import java.util.List;
+import java.util.jar.JarEntry;
+import java.util.jar.JarFile;
import org.apache.commons.io.FilenameUtils;
import org.apache.commons.io.filefilter.DirectoryFileFilter;
@@ -264,6 +265,35 @@ public class JSGoogPublisher extends JSPublisher implements IJSPublisher
fw.close();
}
+
+ protected void dumpJar(File jarFile, File outputDir) throws IOException {
+ JarFile jar = new JarFile(jarFile);
+
+ for (Enumeration<JarEntry> jarEntries = jar.entries(); jarEntries.hasMoreElements();) {
+ JarEntry jarEntry = jarEntries.nextElement();
+ if (!jarEntry.getName().endsWith("/")) {
+ File file = new File(outputDir, jarEntry.getName());
+
+ // Check if the parent directory exists. If not -> create it.
+ File dir = file.getParentFile();
+ if(!dir.exists()) {
+ if (!dir.mkdirs()) {
+ throw new IOException("Unable to create directory " + dir.getAbsolutePath());
+ }
+ }
+
+ // Dump the file.
+ InputStream is = jar.getInputStream(jarEntry);
+ FileOutputStream fos = new FileOutputStream(file);
+ while (is.available() > 0) {
+ fos.write(is.read());
+ }
+ fos.close();
+ is.close();
+ }
+ }
+ }
+
public class JSGoogErrorManager implements ErrorManager
{
@Override
http://git-wip-us.apache.org/repos/asf/flex-falcon/blob/e92a0e9c/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 dff5d23..9378b3d 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
@@ -23,6 +23,7 @@ import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStreamReader;
+import java.net.URL;
import java.util.ArrayList;
import java.util.Collection;
import java.util.Collections;
@@ -77,8 +78,7 @@ public class MXMLFlexJSPublisher extends JSGoogPublisher implements
this.isMarmotinniRun = ((JSGoogConfiguration) configuration)
.getMarmotinni() != null;
- this.outputPathParameter = ((JSGoogConfiguration) configuration)
- .getOutput();
+ this.outputPathParameter = configuration.getOutput();
this.useStrictPublishing = ((JSGoogConfiguration) configuration)
.getStrictPublish();
@@ -133,7 +133,7 @@ public class MXMLFlexJSPublisher extends JSGoogPublisher implements
@Override
public boolean publish(ProblemQuery problems) throws IOException
{
- boolean ok = true;
+ boolean ok;
boolean subsetGoog = true;
final String intermediateDirPath = outputFolder.getPath();
@@ -151,14 +151,94 @@ public class MXMLFlexJSPublisher extends JSGoogPublisher implements
if (!isMarmotinniRun)
{
- if (releaseDir.exists())
+ if (releaseDir.exists()) {
org.apache.commons.io.FileUtils.deleteQuietly(releaseDir);
+ }
+
+ if(!releaseDir.mkdirs()) {
+ throw new IOException(
+ "Unable to create release directory at " + releaseDir.getAbsolutePath());
+ }
+ }
+
+ // If the closure-lib parameter is empty we'll try to find the resources
+ // in the classpath, dump its content to the output directory and use this
+ // as closure-lib parameter.
+ final String closureLibDirPath;
+ if(((JSGoogConfiguration) configuration).isClosureLibSet()) {
+ closureLibDirPath = ((JSGoogConfiguration) configuration).getClosureLib();
+ } else {
+ // Check if the "goog/deps.js" is available in the classpath.
+ URL resource = Thread.currentThread().getContextClassLoader().getResource("goog/deps.js");
+ if(resource != null) {
+ File closureLibDir = new File(intermediateDir.getParent(), "closure");
+
+ // Only create and dump the content, if the directory does not exists.
+ if(!closureLibDir.exists()) {
+ if(!closureLibDir.mkdirs()) {
+ throw new IOException(
+ "Unable to create directory for closure-lib at " + closureLibDir.getAbsolutePath());
+ }
+
+ // Strip the url of the parts we don't need.
+ // Unless we are not using some insanely complex setup
+ // the resource will always be on the same machine.
+ String resourceJarPath = resource.getFile();
+ if(resourceJarPath.contains(":")) {
+ resourceJarPath = resourceJarPath.substring(resourceJarPath.lastIndexOf(":") + 1);
+ }
+ if(resourceJarPath.contains("!")) {
+ resourceJarPath = resourceJarPath.substring(0, resourceJarPath.indexOf("!"));
+ }
+ File resourceJar = new File(resourceJarPath);
- releaseDir.mkdirs();
+ // Dump the closure lib from classpath.
+ dumpJar(resourceJar, closureLibDir);
+ }
+ // The compiler automatically adds a "closure" to the lib dir path,
+ // so we omit this here.
+ closureLibDirPath = intermediateDir.getParentFile().getPath();
+ }
+ // Fallback to the default.
+ else {
+ closureLibDirPath = ((JSGoogConfiguration) configuration).getClosureLib();
+ }
+ }
+
+ // Dump FlexJS to the target directory.
+ String flexJsLibDirPath;
+ // Check if the "FlexJS/src/createjs_externals.js" is available in the classpath.
+ URL resource = Thread.currentThread().getContextClassLoader().getResource("FlexJS/src/createjs_externals.js");
+ if(resource != null) {
+ File flexJsLibDir = new File(intermediateDir.getParent(), "flexjs");
+
+ // Only create and dump the content, if the directory does not exists.
+ if(!flexJsLibDir.exists()) {
+ if(!flexJsLibDir.mkdirs()) {
+ throw new IOException(
+ "Unable to create directory for flexjs-lib at " + flexJsLibDir.getAbsolutePath());
+ }
+
+ // Strip the url of the parts we don't need.
+ // Unless we are not using some insanely complex setup
+ // the resource will always be on the same machine.
+ String resourceJarPath = resource.getFile();
+ if(resourceJarPath.contains(":")) {
+ resourceJarPath = resourceJarPath.substring(resourceJarPath.lastIndexOf(":") + 1);
+ }
+ if(resourceJarPath.contains("!")) {
+ resourceJarPath = resourceJarPath.substring(0, resourceJarPath.indexOf("!"));
+ }
+ File resourceJar = new File(resourceJarPath);
+
+ // Dump the closure lib from classpath.
+ dumpJar(resourceJar, flexJsLibDir);
+ }
+ // The compiler automatically adds a "closure" to the lib dir path,
+ // so we omit this here.
+ flexJsLibDirPath = intermediateDir.getParentFile().getPath();
}
- final String closureLibDirPath = ((JSGoogConfiguration) configuration)
- .getClosureLib();
final String closureGoogSrcLibDirPath = closureLibDirPath
+ "/closure/goog/";
final String closureGoogTgtLibDirPath = intermediateDirPath
@@ -258,7 +338,7 @@ public class MXMLFlexJSPublisher extends JSGoogPublisher implements
Collections.sort(subsetdeps, new DependencyLineComparator());
for (DependencyRecord subsetdeprec : subsetdeps)
{
- sb.append(subsetdeprec.line + "\n");
+ sb.append(subsetdeprec.line).append("\n");
}
writeFile(depsTgtFilePath, sb.toString() + depsFileData.toString(), false);
// copy the required files
@@ -341,8 +421,9 @@ public class MXMLFlexJSPublisher extends JSGoogPublisher implements
if (!isMarmotinniRun)
{
String allDeps = "";
- if (!subsetGoog)
+ if (!subsetGoog) {
allDeps += FileUtils.readFileToString(srcDeps);
+ }
allDeps += FileUtils.readFileToString(new File(depsTgtFilePath));
FileUtils.writeStringToFile(srcDeps, allDeps);
@@ -361,8 +442,9 @@ public class MXMLFlexJSPublisher extends JSGoogPublisher implements
private void addDeps(ArrayList<DependencyRecord> subsetdeps, HashMap<String, String> gotgoog,
HashMap<String, DependencyRecord> defmap, String deps)
{
- if (deps.length() == 0)
+ if (deps.length() == 0) {
return;
+ }
String[] deplist = deps.split(",");
for (String dep : deplist)
@@ -382,15 +464,8 @@ public class MXMLFlexJSPublisher extends JSGoogPublisher implements
private void appendExportSymbol(String path, String projectName)
throws IOException
{
- StringBuilder appendString = new StringBuilder();
- appendString
- .append("\n\n// Ensures the symbol will be visible after compiler renaming.\n");
- appendString.append("goog.exportSymbol('");
- appendString.append(projectName);
- appendString.append("', ");
- appendString.append(projectName);
- appendString.append(");\n");
- writeFile(path, appendString.toString(), true);
+ writeFile(path, "\n\n// Ensures the symbol will be visible after compiler renaming.\n" +
+ "goog.exportSymbol('" + projectName + "', " + projectName + ");\n", true);
}
private void appendEncodedCSS(String path, String projectName)
@@ -456,13 +531,12 @@ public class MXMLFlexJSPublisher extends JSGoogPublisher implements
htmlFile.append("<head>\n");
htmlFile.append("\t<meta http-equiv=\"X-UA-Compatible\" content=\"IE=edge,chrome=1\">\n");
htmlFile.append("\t<meta http-equiv=\"Content-Type\" content=\"text/html; charset=utf-8\">\n");
- htmlFile.append("\t<link rel=\"stylesheet\" type=\"text/css\" href=\""
- + projectName + ".css\">\n");
+ htmlFile.append("\t<link rel=\"stylesheet\" type=\"text/css\" href=\"").append(projectName).append(".css\">\n");
for (String s : additionalHTML)
- htmlFile.append(s + "\n");
+ htmlFile.append(s).append("\n");
- if (type == "intermediate")
+ if ("intermediate".equals(type))
{
htmlFile.append("\t<script type=\"text/javascript\" src=\"./library/closure/goog/base.js\"></script>\n");
htmlFile.append("\t<script type=\"text/javascript\">\n");
@@ -496,10 +570,7 @@ public class MXMLFlexJSPublisher extends JSGoogPublisher implements
private void writeCSS(String projectName, String dirPath)
throws IOException
{
- StringBuilder cssFile = new StringBuilder();
- cssFile.append(project.cssDocument);
-
writeFile(dirPath + File.separator + projectName + ".css",
- cssFile.toString(), false);
+ project.cssDocument, false);
}
}
http://git-wip-us.apache.org/repos/asf/flex-falcon/blob/e92a0e9c/compiler.jx/src/org/apache/flex/compiler/internal/codegen/mxml/vf2js/MXMLVF2JSPublisher.java
----------------------------------------------------------------------
diff --git a/compiler.jx/src/org/apache/flex/compiler/internal/codegen/mxml/vf2js/MXMLVF2JSPublisher.java b/compiler.jx/src/org/apache/flex/compiler/internal/codegen/mxml/vf2js/MXMLVF2JSPublisher.java
index 3c44bd0..7a01109 100644
--- a/compiler.jx/src/org/apache/flex/compiler/internal/codegen/mxml/vf2js/MXMLVF2JSPublisher.java
+++ b/compiler.jx/src/org/apache/flex/compiler/internal/codegen/mxml/vf2js/MXMLVF2JSPublisher.java
@@ -18,18 +18,9 @@
*/
package org.apache.flex.compiler.internal.codegen.mxml.vf2js;
-import java.io.BufferedReader;
-import java.io.File;
-import java.io.FileInputStream;
-import java.io.IOException;
-import java.io.InputStreamReader;
-import java.util.ArrayList;
-import java.util.Collection;
-import java.util.Collections;
-import java.util.Comparator;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Scanner;
+import java.io.*;
+import java.net.URL;
+import java.util.*;
import org.apache.commons.io.FileUtils;
import org.apache.commons.io.FilenameUtils;
@@ -77,8 +68,7 @@ public class MXMLVF2JSPublisher extends JSGoogPublisher implements
this.isMarmotinniRun = ((JSGoogConfiguration) configuration)
.getMarmotinni() != null;
- this.outputPathParameter = ((JSGoogConfiguration) configuration)
- .getOutput();
+ this.outputPathParameter = configuration.getOutput();
this.useStrictPublishing = ((JSGoogConfiguration) configuration)
.getStrictPublish();
@@ -133,7 +123,7 @@ public class MXMLVF2JSPublisher extends JSGoogPublisher implements
@Override
public boolean publish(ProblemQuery problems) throws IOException
{
- boolean ok = true;
+ boolean ok;
boolean subsetGoog = true;
final String intermediateDirPath = outputFolder.getPath();
@@ -157,8 +147,50 @@ public class MXMLVF2JSPublisher extends JSGoogPublisher implements
releaseDir.mkdirs();
}
- final String closureLibDirPath = ((JSGoogConfiguration) configuration)
- .getClosureLib();
+ // If the closure-lib parameter is empty we'll try to find the resources
+ // in the classpath, dump its content to the output directory and use this
+ // as closure-lib parameter.
+ final String closureLibDirPath;
+ if(((JSGoogConfiguration) configuration).isClosureLibSet()) {
+ closureLibDirPath = ((JSGoogConfiguration) configuration).getClosureLib();
+ } else {
+ // Check if the "goog/deps.js" is available in the classpath.
+ URL resource = Thread.currentThread().getContextClassLoader().getResource("goog/deps.js");
+ if(resource != null) {
+ File closureLibDir = new File(intermediateDir.getParent(), "closure");
+
+ // Only create and dump the content, if the directory does not exists.
+ if(!closureLibDir.exists()) {
+ if(!closureLibDir.mkdirs()) {
+ throw new IOException(
+ "Unable to create directory for closure-lib at " + closureLibDir.getAbsolutePath());
+ }
+
+ // Strip the url of the parts we don't need.
+ // Unless we are not using some insanely complex setup
+ // the resource will always be on the same machine.
+ String resourceJarPath = resource.getFile();
+ if(resourceJarPath.contains(":")) {
+ resourceJarPath = resourceJarPath.substring(resourceJarPath.lastIndexOf(":") + 1);
+ }
+ if(resourceJarPath.contains("!")) {
+ resourceJarPath = resourceJarPath.substring(0, resourceJarPath.indexOf("!"));
+ }
+ File resourceJar = new File(resourceJarPath);
+
+ // Dump the closure lib from classpath.
+ dumpJar(resourceJar, closureLibDir);
+ }
+ // The compiler automatically adds a "closure" to the lib dir path,
+ // so we omit this here.
+ closureLibDirPath = intermediateDir.getParentFile().getPath();
+ }
+ // Fallback to the default.
+ else {
+ closureLibDirPath = ((JSGoogConfiguration) configuration).getClosureLib();
+ }
+ }
+
final String closureGoogSrcLibDirPath = closureLibDirPath
+ "/closure/goog/";
final String closureGoogTgtLibDirPath = intermediateDirPath
@@ -177,11 +209,11 @@ public class MXMLVF2JSPublisher extends JSGoogPublisher implements
if (!subsetGoog)
{
// (erikdebruin) We need to leave the 'goog' files and dependencies well
- // enough alone. We copy the entire library over so the
+ // enough alone. We copy the entire library over so the
// 'goog' dependencies will resolve without our help.
FileUtils.copyDirectory(new File(closureGoogSrcLibDirPath), new File(closureGoogTgtLibDirPath));
}
-
+
JSClosureCompilerWrapper compilerWrapper = new JSClosureCompilerWrapper();
GoogDepsWriter gdw = new GoogDepsWriter(intermediateDir, projectName, (JSGoogConfiguration) configuration);
@@ -258,7 +290,7 @@ public class MXMLVF2JSPublisher extends JSGoogPublisher implements
Collections.sort(subsetdeps, new DependencyLineComparator());
for (DependencyRecord subsetdeprec : subsetdeps)
{
- sb.append(subsetdeprec.line + "\n");
+ sb.append(subsetdeprec.line).append("\n");
}
writeFile(depsTgtFilePath, sb.toString() + depsFileData.toString(), false);
// copy the required files
@@ -461,13 +493,14 @@ public class MXMLVF2JSPublisher extends JSGoogPublisher implements
htmlFile.append("<head>\n");
htmlFile.append("\t<meta http-equiv=\"X-UA-Compatible\" content=\"IE=edge,chrome=1\">\n");
htmlFile.append("\t<meta http-equiv=\"Content-Type\" content=\"text/html; charset=utf-8\">\n");
- htmlFile.append("\t<link rel=\"stylesheet\" type=\"text/css\" href=\""
- + projectName + ".css\">\n");
+ htmlFile.append("\t<link rel=\"stylesheet\" type=\"text/css\" href=\"");
+ htmlFile.append(projectName);
+ htmlFile.append(".css\">\n");
for (String s : additionalHTML)
- htmlFile.append(s + "\n");
+ htmlFile.append(s).append("\n");
- if (type == "intermediate")
+ if ("intermediate".equals(type))
{
htmlFile.append("\t<script type=\"text/javascript\" src=\"./library/closure/goog/base.js\"></script>\n");
htmlFile.append("\t<script type=\"text/javascript\" src=\"./sdk-deps.js\"></script>\n");
@@ -525,7 +558,7 @@ public class MXMLVF2JSPublisher extends JSGoogPublisher implements
htmlFile.append("\t\t\t infoObject[\"currentDomain\"] = new flash.system.ApplicationDomain();\n");
htmlFile.append("\t\t\t infoObject[\"fonts\"] = '';\n");
htmlFile.append("\t\t\t infoObject[\"frames\"] = '';\n");
- htmlFile.append("\t\t\t infoObject[\"mainClassName\"] = '" + projectName + "';\n");
+ htmlFile.append("\t\t\t infoObject[\"mainClassName\"] = '").append(projectName).append("';\n");
htmlFile.append("\t\t\t infoObject[\"mixins\"] = '';\n");
htmlFile.append("\t\t\t infoObject[\"preloader\"] = new mx.preloaders.DownloadProgressBar();\n");
htmlFile.append("\t\t\t infoObject[\"rsls\"] = '';\n");
http://git-wip-us.apache.org/repos/asf/flex-falcon/blob/e92a0e9c/compiler.jx/src/org/apache/flex/compiler/internal/driver/js/goog/JSGoogConfiguration.java
----------------------------------------------------------------------
diff --git a/compiler.jx/src/org/apache/flex/compiler/internal/driver/js/goog/JSGoogConfiguration.java b/compiler.jx/src/org/apache/flex/compiler/internal/driver/js/goog/JSGoogConfiguration.java
index d5608ea..1b7efe1 100644
--- a/compiler.jx/src/org/apache/flex/compiler/internal/driver/js/goog/JSGoogConfiguration.java
+++ b/compiler.jx/src/org/apache/flex/compiler/internal/driver/js/goog/JSGoogConfiguration.java
@@ -57,13 +57,17 @@ public class JSGoogConfiguration extends JSConfiguration
protected String closureLib = "";
+ public boolean isClosureLibSet() {
+ return !closureLib.isEmpty();
+ }
+
public String getClosureLib()
{
try
{
if (closureLib.equals(""))
{
- closureLib = getAbsolutePathFromPathRelativeToMXMLC(
+ return getAbsolutePathFromPathRelativeToMXMLC(
"../../js/lib/google/closure-library");
}
}
http://git-wip-us.apache.org/repos/asf/flex-falcon/blob/e92a0e9c/compiler.jx/src/org/apache/flex/compiler/internal/graph/GoogDepsWriter.java
----------------------------------------------------------------------
diff --git a/compiler.jx/src/org/apache/flex/compiler/internal/graph/GoogDepsWriter.java b/compiler.jx/src/org/apache/flex/compiler/internal/graph/GoogDepsWriter.java
index cde5681..e390c5f 100644
--- a/compiler.jx/src/org/apache/flex/compiler/internal/graph/GoogDepsWriter.java
+++ b/compiler.jx/src/org/apache/flex/compiler/internal/graph/GoogDepsWriter.java
@@ -44,6 +44,7 @@ public class GoogDepsWriter {
this.outputFolderPath = outputFolder.getAbsolutePath();
this.mainName = mainClassName;
otherPaths = config.getSDKJSLib();
+ otherPaths.add(new File(outputFolder.getParent(), "flexjs/FlexJS/src").getPath());
}
private ProblemQuery problems;
@@ -145,6 +146,9 @@ public class GoogDepsWriter {
GoogDep gd = new GoogDep();
gd.className = className;
gd.filePath = getFilePath(className);
+ if(gd.filePath.isEmpty()) {
+ throw new RuntimeException("Unable to find JavaScript filePath for class: " + className);
+ }
depMap.put(gd.className, gd);
ArrayList<String> deps = getDirectDependencies(gd.filePath);
@@ -261,7 +265,7 @@ public class GoogDepsWriter {
FileUtils.copyFile(f, destFile);
// (erikdebruin) copy class assets files
- if (className.indexOf("org.apache.flex") > -1)
+ if (className.contains("org.apache.flex"))
{
File assetsDir = new File(f.getParentFile(), "assets");
if (assetsDir.exists())
@@ -269,32 +273,30 @@ public class GoogDepsWriter {
String nameOfClass = className.substring(className.lastIndexOf('.') + 1);
File[] assetsList = assetsDir.listFiles();
- for (int i = 0; i < assetsList.length; i++)
- {
- File assetFile = assetsList[i];
- String assetFileName = assetFile.getName();
-
- if (assetFile.isFile() && assetFileName.indexOf(nameOfClass) == 0)
- {
- String pathOfClass = "";
- pathOfClass = className.substring(0, className.lastIndexOf('.'));
- pathOfClass = pathOfClass.replace(".", File.separator);
-
- destFile = new File(outputFolderPath +
- File.separator + pathOfClass +
- File.separator + "assets" +
- File.separator + assetFileName);
- FileUtils.copyFile(assetFile, destFile);
-
- destFile = new File(outputFolderPath.replace("js-debug", "js-release") +
- File.separator + pathOfClass +
- File.separator + "assets" +
- File.separator + assetFileName);
- FileUtils.copyFile(assetFile, destFile);
-
- System.out.println("Copied assets of the '" + nameOfClass + "' class");
- }
- }
+ assert assetsList != null;
+ for (File assetFile : assetsList) {
+ String assetFileName = assetFile.getName();
+
+ if (assetFile.isFile() && assetFileName.indexOf(nameOfClass) == 0) {
+ String pathOfClass;
+ pathOfClass = className.substring(0, className.lastIndexOf('.'));
+ pathOfClass = pathOfClass.replace(".", File.separator);
+
+ destFile = new File(outputFolderPath +
+ File.separator + pathOfClass +
+ File.separator + "assets" +
+ File.separator + assetFileName);
+ FileUtils.copyFile(assetFile, destFile);
+
+ destFile = new File(outputFolderPath.replace("js-debug", "js-release") +
+ File.separator + pathOfClass +
+ File.separator + "assets" +
+ File.separator + assetFileName);
+ FileUtils.copyFile(assetFile, destFile);
+
+ System.out.println("Copied assets of the '" + nameOfClass + "' class");
+ }
+ }
}
}
} catch (IOException e) {
@@ -322,7 +324,7 @@ public class GoogDepsWriter {
while (scanner.hasNextLine())
{
String s = scanner.nextLine();
- if (s.indexOf("goog.inherits") > -1)
+ if (s.contains("goog.inherits"))
break;
if (inInjectHTML)
{
http://git-wip-us.apache.org/repos/asf/flex-falcon/blob/e92a0e9c/compiler/downloads.xml
----------------------------------------------------------------------
diff --git a/compiler/downloads.xml b/compiler/downloads.xml
index d1b4d6a..d2c14f3 100644
--- a/compiler/downloads.xml
+++ b/compiler/downloads.xml
@@ -218,18 +218,18 @@
</antcall>
<!-- flex-tool-api -->
- <property name="flexToolApi.name" value="flex-tool-api"/>
- <property name="flexToolApi.version" value="1.0.0-SNAPSHOT"/>
- <antcall target="download-dependency">
- <param name="name" value="${flexToolApi.name}"/>
- <param name="src.server" value="http://repository.apache.org/content/groups/snapshots"/>
- <param name="src.folder" value="org/apache/flex/flex-tool-api/${flexToolApi.version}"/>
- <param name="src.filename" value="flex-tool-api-1.0.0-20141110.132854-7.jar"/>
- <param name="src.checksum" value="ea3468a0af7f7b5ef6a3bf91d768c78d"/>
- <param name="dest.folder" value=""/>
- <param name="dest.filename" value="${flexToolApi.name}.jar"/>
- <param name="license.use.apache" value="true"/>
- </antcall>
+ <property name="flexToolApi.name" value="flex-tool-api"/>
+ <property name="flexToolApi.version" value="1.0.0"/>
+ <antcall target="download-dependency">
+ <param name="name" value="${flexToolApi.name}"/>
+ <param name="src.server" value="${maven.search.url}"/>
+ <param name="src.folder" value="org/apache/flex/${flexToolApi.name}/${flexToolApi.version}"/>
+ <param name="src.filename" value="${flexToolApi.name}-${flexToolApi.version}.jar"/>
+ <param name="src.checksum" value="b8f76174b2c4d3b83e5c9fa78703c52b"/>
+ <param name="dest.folder" value=""/>
+ <param name="dest.filename" value="${flexToolApi.name}.jar"/>
+ <param name="license.use.apache" value="true"/>
+ </antcall>
</target>
<target name="maven-related" description="Downloads and copies all dependencies to the lib directory.">
http://git-wip-us.apache.org/repos/asf/flex-falcon/blob/e92a0e9c/compiler/src/org/apache/flex/compiler/clients/COMPC.java
----------------------------------------------------------------------
diff --git a/compiler/src/org/apache/flex/compiler/clients/COMPC.java b/compiler/src/org/apache/flex/compiler/clients/COMPC.java
index af55eac..547f40f 100644
--- a/compiler/src/org/apache/flex/compiler/clients/COMPC.java
+++ b/compiler/src/org/apache/flex/compiler/clients/COMPC.java
@@ -79,7 +79,7 @@ public class COMPC extends MXMLC implements FlexTool
@Override
public String getName() {
- return "COMPC";
+ return FLEX_TOOL_COMPC;
}
@Override
http://git-wip-us.apache.org/repos/asf/flex-falcon/blob/e92a0e9c/compiler/src/org/apache/flex/compiler/clients/MXMLC.java
----------------------------------------------------------------------
diff --git a/compiler/src/org/apache/flex/compiler/clients/MXMLC.java b/compiler/src/org/apache/flex/compiler/clients/MXMLC.java
index 2b7e97b..51830b1 100644
--- a/compiler/src/org/apache/flex/compiler/clients/MXMLC.java
+++ b/compiler/src/org/apache/flex/compiler/clients/MXMLC.java
@@ -177,7 +177,7 @@ public class MXMLC implements FlexTool
@Override
public String getName() {
- return "MXMLC";
+ return FLEX_TOOL_MXMLC;
}
@Override
http://git-wip-us.apache.org/repos/asf/flex-falcon/blob/e92a0e9c/compiler/src/org/apache/flex/compiler/clients/Optimizer.java
----------------------------------------------------------------------
diff --git a/compiler/src/org/apache/flex/compiler/clients/Optimizer.java b/compiler/src/org/apache/flex/compiler/clients/Optimizer.java
index 1566cf5..fa62e0a 100644
--- a/compiler/src/org/apache/flex/compiler/clients/Optimizer.java
+++ b/compiler/src/org/apache/flex/compiler/clients/Optimizer.java
@@ -101,7 +101,7 @@ public class Optimizer implements FlexTool
@Override
public String getName() {
- return "OPTIMIZER";
+ return FLEX_TOOL_OPTIMIZER;
}
@Override
http://git-wip-us.apache.org/repos/asf/flex-falcon/blob/e92a0e9c/maven/falcon-jx-compiler.pom
----------------------------------------------------------------------
diff --git a/maven/falcon-jx-compiler.pom b/maven/falcon-jx-compiler.pom
index 8753648..fb408d3 100644
--- a/maven/falcon-jx-compiler.pom
+++ b/maven/falcon-jx-compiler.pom
@@ -54,6 +54,11 @@
<artifactId>closure-compiler</artifactId>
<version>v20141023</version>
</dependency>
+ <dependency>
+ <groupId>org.clojure</groupId>
+ <artifactId>google-closure-library</artifactId>
+ <version>0.0-20140718-946a7d39</version>
+ </dependency>
</dependencies>
</project>
[3/6] git commit: [flex-falcon] [refs/heads/develop] - - Added an
implementation of the hasFlexTool method to the FlexToolGroup
implementations.
Posted by cd...@apache.org.
- Added an implementation of the hasFlexTool method to the FlexToolGroup implementations.
Project: http://git-wip-us.apache.org/repos/asf/flex-falcon/repo
Commit: http://git-wip-us.apache.org/repos/asf/flex-falcon/commit/3afa07b4
Tree: http://git-wip-us.apache.org/repos/asf/flex-falcon/tree/3afa07b4
Diff: http://git-wip-us.apache.org/repos/asf/flex-falcon/diff/3afa07b4
Branch: refs/heads/develop
Commit: 3afa07b4e6e2b3c4ff76c79240fb144922985f2c
Parents: 8c2f634
Author: Christofer Dutz <ch...@codecentric.de>
Authored: Mon Nov 10 13:57:20 2014 +0100
Committer: Christofer Dutz <ch...@codecentric.de>
Committed: Mon Nov 10 13:57:20 2014 +0100
----------------------------------------------------------------------
.../src/org/apache/flex/compiler/clients/FlexJSToolGroup.java | 5 +++++
.../src/org/apache/flex/compiler/clients/VF2JSToolGroup.java | 5 +++++
compiler/downloads.xml | 4 ++--
.../src/org/apache/flex/compiler/clients/FalconToolGroup.java | 5 +++++
4 files changed, 17 insertions(+), 2 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/flex-falcon/blob/3afa07b4/compiler.jx/src/org/apache/flex/compiler/clients/FlexJSToolGroup.java
----------------------------------------------------------------------
diff --git a/compiler.jx/src/org/apache/flex/compiler/clients/FlexJSToolGroup.java b/compiler.jx/src/org/apache/flex/compiler/clients/FlexJSToolGroup.java
index f33e346..e0becfc 100644
--- a/compiler.jx/src/org/apache/flex/compiler/clients/FlexJSToolGroup.java
+++ b/compiler.jx/src/org/apache/flex/compiler/clients/FlexJSToolGroup.java
@@ -32,6 +32,11 @@ public class FlexJSToolGroup implements FlexToolGroup {
}
@Override
+ public boolean hasFlexTool(String toolName) {
+ return tools.containsKey(toolName);
+ }
+
+ @Override
public FlexTool getFlexTool(String toolName) {
return tools.get(toolName);
}
http://git-wip-us.apache.org/repos/asf/flex-falcon/blob/3afa07b4/compiler.jx/src/org/apache/flex/compiler/clients/VF2JSToolGroup.java
----------------------------------------------------------------------
diff --git a/compiler.jx/src/org/apache/flex/compiler/clients/VF2JSToolGroup.java b/compiler.jx/src/org/apache/flex/compiler/clients/VF2JSToolGroup.java
index 2918e68..877ec9a 100644
--- a/compiler.jx/src/org/apache/flex/compiler/clients/VF2JSToolGroup.java
+++ b/compiler.jx/src/org/apache/flex/compiler/clients/VF2JSToolGroup.java
@@ -33,6 +33,11 @@ public class VF2JSToolGroup implements FlexToolGroup {
}
@Override
+ public boolean hasFlexTool(String toolName) {
+ return tools.containsKey(toolName);
+ }
+
+ @Override
public FlexTool getFlexTool(String toolName) {
return tools.get(toolName);
}
http://git-wip-us.apache.org/repos/asf/flex-falcon/blob/3afa07b4/compiler/downloads.xml
----------------------------------------------------------------------
diff --git a/compiler/downloads.xml b/compiler/downloads.xml
index 60b7f07..0d0f166 100644
--- a/compiler/downloads.xml
+++ b/compiler/downloads.xml
@@ -224,8 +224,8 @@
<param name="name" value="${flexToolApi.name}"/>
<param name="src.server" value="http://repository.apache.org/content/groups/snapshots"/>
<param name="src.folder" value="org/apache/flex/flex-tool-api/${flexToolApi.version}"/>
- <param name="src.filename" value="flex-tool-api-1.0.0-20141105.140704-1.jar"/>
- <param name="src.checksum" value="b37c99011d06e1ff794d8ee9153ab2c4"/>
+ <param name="src.filename" value="flex-tool-api-1.0.0-20141110.124753-2.jar"/>
+ <param name="src.checksum" value="7a5edb19de574319862623f28dcb8e33"/>
<param name="dest.folder" value=""/>
<param name="dest.filename" value="${flexToolApi.name}.jar"/>
<param name="license.use.apache" value="true"/>
http://git-wip-us.apache.org/repos/asf/flex-falcon/blob/3afa07b4/compiler/src/org/apache/flex/compiler/clients/FalconToolGroup.java
----------------------------------------------------------------------
diff --git a/compiler/src/org/apache/flex/compiler/clients/FalconToolGroup.java b/compiler/src/org/apache/flex/compiler/clients/FalconToolGroup.java
index 3185155..ce859e1 100644
--- a/compiler/src/org/apache/flex/compiler/clients/FalconToolGroup.java
+++ b/compiler/src/org/apache/flex/compiler/clients/FalconToolGroup.java
@@ -32,6 +32,11 @@ public class FalconToolGroup implements FlexToolGroup {
}
@Override
+ public boolean hasFlexTool(String toolName) {
+ return tools.containsKey(toolName);
+ }
+
+ @Override
public FlexTool getFlexTool(String toolName) {
return tools.get(toolName);
}
[4/6] git commit: [flex-falcon] [refs/heads/develop] - - Adjusted the
implementation to the updated flex-tool-api version (Contains an abstract
base FlexToolGroup). - Made the build include the ServiceLoader config files
into the final jars.
Posted by cd...@apache.org.
- Adjusted the implementation to the updated flex-tool-api version (Contains an abstract base FlexToolGroup).
- Made the build include the ServiceLoader config files into the final jars.
Project: http://git-wip-us.apache.org/repos/asf/flex-falcon/repo
Commit: http://git-wip-us.apache.org/repos/asf/flex-falcon/commit/8dec6744
Tree: http://git-wip-us.apache.org/repos/asf/flex-falcon/tree/8dec6744
Diff: http://git-wip-us.apache.org/repos/asf/flex-falcon/diff/8dec6744
Branch: refs/heads/develop
Commit: 8dec67448256e2185a9441b74d6bcc484d74a4ad
Parents: 3afa07b
Author: Christofer Dutz <ch...@codecentric.de>
Authored: Mon Nov 10 16:25:42 2014 +0100
Committer: Christofer Dutz <ch...@codecentric.de>
Committed: Mon Nov 10 16:25:42 2014 +0100
----------------------------------------------------------------------
compiler.jx/build.xml | 5 +-
.../org.apache.flex.tools.FlexToolGroup | 2 +
.../flex/compiler/clients/FlexJSToolGroup.java | 56 ++++++++-----------
.../flex/compiler/clients/VF2JSToolGroup.java | 57 ++++++++-----------
compiler/build.xml | 5 +-
compiler/downloads.xml | 4 +-
.../flex/compiler/clients/FalconToolGroup.java | 58 +++++++++-----------
7 files changed, 85 insertions(+), 102 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/flex-falcon/blob/8dec6744/compiler.jx/build.xml
----------------------------------------------------------------------
diff --git a/compiler.jx/build.xml b/compiler.jx/build.xml
index 9a37be9..1f6b4e1 100644
--- a/compiler.jx/build.xml
+++ b/compiler.jx/build.xml
@@ -63,6 +63,9 @@
<file name="compiler.jar" />
</filelist>
</copy>
+ <!-- Copy the config file for the flex-tool-api. -->
+ <copy todir="${classes.dir}/META-INF/services"
+ file="src/META-INF/services/org.apache.flex.tools.FlexToolGroup"/>
</target>
<target name="compile">
@@ -90,7 +93,7 @@
<echo message="Building ${jsc.jar}" />
<jar file="${jsc.jar}" basedir="${classes.dir}"
- includes="**/*.properties,org/apache/**/*"
+ includes="**/*.properties,org/apache/**/*,META-INF/**/*"
excludes="**/JSDriver*,**/IASNodeAdapter*,org/apache/flex/compiler/internal/parsing/abc/*" >
<manifest>
<attribute name="Class-Path" value="${jar.classpath}" />
http://git-wip-us.apache.org/repos/asf/flex-falcon/blob/8dec6744/compiler.jx/src/META-INF/services/org.apache.flex.tools.FlexToolGroup
----------------------------------------------------------------------
diff --git a/compiler.jx/src/META-INF/services/org.apache.flex.tools.FlexToolGroup b/compiler.jx/src/META-INF/services/org.apache.flex.tools.FlexToolGroup
new file mode 100644
index 0000000..b2ad16f
--- /dev/null
+++ b/compiler.jx/src/META-INF/services/org.apache.flex.tools.FlexToolGroup
@@ -0,0 +1,2 @@
+org.apache.flex.compiler.clients.FlexJSToolGroup
+org.apache.flex.compiler.clients.VF2JSToolGroup
http://git-wip-us.apache.org/repos/asf/flex-falcon/blob/8dec6744/compiler.jx/src/org/apache/flex/compiler/clients/FlexJSToolGroup.java
----------------------------------------------------------------------
diff --git a/compiler.jx/src/org/apache/flex/compiler/clients/FlexJSToolGroup.java b/compiler.jx/src/org/apache/flex/compiler/clients/FlexJSToolGroup.java
index e0becfc..1f10aa7 100644
--- a/compiler.jx/src/org/apache/flex/compiler/clients/FlexJSToolGroup.java
+++ b/compiler.jx/src/org/apache/flex/compiler/clients/FlexJSToolGroup.java
@@ -1,44 +1,36 @@
+/*
+ *
+ * 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 org.apache.flex.compiler.clients;
import org.apache.flex.compiler.internal.driver.mxml.flexjs.MXMLFlexJSBackend;
-import org.apache.flex.tools.FlexTool;
-import org.apache.flex.tools.FlexToolGroup;
-
-import java.util.Collection;
-import java.util.HashMap;
-import java.util.Map;
+import org.apache.flex.tools.AbstractFlexToolGroup;
/**
* Created by christoferdutz on 10.11.14.
*/
-public class FlexJSToolGroup implements FlexToolGroup {
-
- Map<String, FlexTool> tools;
+public class FlexJSToolGroup extends AbstractFlexToolGroup {
public FlexJSToolGroup() {
- tools = new HashMap<String, FlexTool>();
- tools.put("COMPC", new COMPJSC(new MXMLFlexJSBackend()));
- tools.put("MXMLC", new MXMLJSC(new MXMLFlexJSBackend()));
- }
-
- @Override
- public String getName() {
- return "FlexJS";
- }
-
- @Override
- public Collection<String> getFlexToolNames() {
- return tools.keySet();
- }
-
- @Override
- public boolean hasFlexTool(String toolName) {
- return tools.containsKey(toolName);
- }
-
- @Override
- public FlexTool getFlexTool(String toolName) {
- return tools.get(toolName);
+ super("FlexJS");
+ addFlexTool(new COMPJSC(new MXMLFlexJSBackend()));
+ addFlexTool(new COMPJSC(new MXMLFlexJSBackend()));
}
}
http://git-wip-us.apache.org/repos/asf/flex-falcon/blob/8dec6744/compiler.jx/src/org/apache/flex/compiler/clients/VF2JSToolGroup.java
----------------------------------------------------------------------
diff --git a/compiler.jx/src/org/apache/flex/compiler/clients/VF2JSToolGroup.java b/compiler.jx/src/org/apache/flex/compiler/clients/VF2JSToolGroup.java
index 877ec9a..12500da 100644
--- a/compiler.jx/src/org/apache/flex/compiler/clients/VF2JSToolGroup.java
+++ b/compiler.jx/src/org/apache/flex/compiler/clients/VF2JSToolGroup.java
@@ -1,45 +1,36 @@
+/*
+ *
+ * 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 org.apache.flex.compiler.clients;
import org.apache.flex.compiler.internal.driver.js.vf2js.VF2JSBackend;
-import org.apache.flex.compiler.internal.driver.mxml.flexjs.MXMLFlexJSBackend;
-import org.apache.flex.tools.FlexTool;
-import org.apache.flex.tools.FlexToolGroup;
-
-import java.util.Collection;
-import java.util.HashMap;
-import java.util.Map;
+import org.apache.flex.tools.AbstractFlexToolGroup;
/**
* Created by christoferdutz on 10.11.14.
*/
-public class VF2JSToolGroup implements FlexToolGroup {
-
- Map<String, FlexTool> tools;
+public class VF2JSToolGroup extends AbstractFlexToolGroup {
public VF2JSToolGroup() {
- tools = new HashMap<String, FlexTool>();
- tools.put("COMPC", new COMPJSC(new VF2JSBackend()));
- tools.put("MXMLC", new MXMLJSC(new VF2JSBackend()));
- }
-
- @Override
- public String getName() {
- return "VF2JS";
- }
-
- @Override
- public Collection<String> getFlexToolNames() {
- return tools.keySet();
- }
-
- @Override
- public boolean hasFlexTool(String toolName) {
- return tools.containsKey(toolName);
- }
-
- @Override
- public FlexTool getFlexTool(String toolName) {
- return tools.get(toolName);
+ super("VF2JS");
+ addFlexTool(new COMPJSC(new VF2JSBackend()));
+ addFlexTool(new COMPJSC(new VF2JSBackend()));
}
}
http://git-wip-us.apache.org/repos/asf/flex-falcon/blob/8dec6744/compiler/build.xml
----------------------------------------------------------------------
diff --git a/compiler/build.xml b/compiler/build.xml
index 7c0172e..30e0bbb 100644
--- a/compiler/build.xml
+++ b/compiler/build.xml
@@ -556,6 +556,9 @@
<copy todir="${compiler}/generated/classes">
<fileset dir="${compiler}/src" includes="**/*.properties"/>
</copy>
+ <!-- Copy the config file for the flex-tool-api. -->
+ <copy todir="${compiler}/generated/classes/META-INF/services"
+ file="src/META-INF/services/org.apache.flex.tools.FlexToolGroup"/>
</target>
<target name="set.messages.en.uptodate">
@@ -599,7 +602,7 @@
<target name="compiler.jar" depends="compile, localization, version-info, set.compiler.jar.uptodate" unless="compiler.jar.uptodate"
description="Builds compiler.jar">
<mkdir dir="${sdk}/lib"/>
- <jar file="${sdk}/lib/compiler.jar" basedir="${compiler}/generated/classes" includes="**/*.properties,org/apache/**/*" excludes="${compiler.ant.binaries},${compiler.font.binaries}">
+ <jar file="${sdk}/lib/compiler.jar" basedir="${compiler}/generated/classes" includes="**/*.properties,org/apache/**/*,META-INF/**/*" excludes="${compiler.ant.binaries},${compiler.font.binaries}">
<manifest>
<attribute name="Sealed" value="${manifest.sealed}"/>
<attribute name="Implementation-Title" value="${manifest.Implementation-Title}"/>
http://git-wip-us.apache.org/repos/asf/flex-falcon/blob/8dec6744/compiler/downloads.xml
----------------------------------------------------------------------
diff --git a/compiler/downloads.xml b/compiler/downloads.xml
index 0d0f166..d1b4d6a 100644
--- a/compiler/downloads.xml
+++ b/compiler/downloads.xml
@@ -224,8 +224,8 @@
<param name="name" value="${flexToolApi.name}"/>
<param name="src.server" value="http://repository.apache.org/content/groups/snapshots"/>
<param name="src.folder" value="org/apache/flex/flex-tool-api/${flexToolApi.version}"/>
- <param name="src.filename" value="flex-tool-api-1.0.0-20141110.124753-2.jar"/>
- <param name="src.checksum" value="7a5edb19de574319862623f28dcb8e33"/>
+ <param name="src.filename" value="flex-tool-api-1.0.0-20141110.132854-7.jar"/>
+ <param name="src.checksum" value="ea3468a0af7f7b5ef6a3bf91d768c78d"/>
<param name="dest.folder" value=""/>
<param name="dest.filename" value="${flexToolApi.name}.jar"/>
<param name="license.use.apache" value="true"/>
http://git-wip-us.apache.org/repos/asf/flex-falcon/blob/8dec6744/compiler/src/org/apache/flex/compiler/clients/FalconToolGroup.java
----------------------------------------------------------------------
diff --git a/compiler/src/org/apache/flex/compiler/clients/FalconToolGroup.java b/compiler/src/org/apache/flex/compiler/clients/FalconToolGroup.java
index ce859e1..3410bd0 100644
--- a/compiler/src/org/apache/flex/compiler/clients/FalconToolGroup.java
+++ b/compiler/src/org/apache/flex/compiler/clients/FalconToolGroup.java
@@ -1,44 +1,36 @@
-package org.apache.flex.compiler.clients;
+/*
+ *
+ * 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.
+ *
+ */
-import org.apache.flex.tools.FlexTool;
-import org.apache.flex.tools.FlexToolGroup;
+package org.apache.flex.compiler.clients;
-import java.util.Collection;
-import java.util.HashMap;
-import java.util.Map;
+import org.apache.flex.tools.AbstractFlexToolGroup;
/**
* FlexToolGroup exposing the implementations of the Falcon compilers tools.
*/
-public class FalconToolGroup implements FlexToolGroup {
-
- Map<String, FlexTool> tools;
+public class FalconToolGroup extends AbstractFlexToolGroup {
public FalconToolGroup() {
- tools = new HashMap<String, FlexTool>();
- tools.put("COMPC", new COMPC());
- tools.put("MXMLC", new MXMLC());
- tools.put("OPTIMIZER", new Optimizer());
- }
-
- @Override
- public String getName() {
- return "Falcon";
- }
-
- @Override
- public Collection<String> getFlexToolNames() {
- return tools.keySet();
- }
-
- @Override
- public boolean hasFlexTool(String toolName) {
- return tools.containsKey(toolName);
- }
-
- @Override
- public FlexTool getFlexTool(String toolName) {
- return tools.get(toolName);
+ super("Falcon");
+ addFlexTool(new COMPC());
+ addFlexTool(new MXMLC());
+ addFlexTool(new Optimizer());
}
}
[2/6] git commit: [flex-falcon] [refs/heads/develop] - Added
FlexToolGroup and FlexTool implementations for: - Falcon - FlexJS - VF2JS
Posted by cd...@apache.org.
Added FlexToolGroup and FlexTool implementations for:
- Falcon
- FlexJS
- VF2JS
Project: http://git-wip-us.apache.org/repos/asf/flex-falcon/repo
Commit: http://git-wip-us.apache.org/repos/asf/flex-falcon/commit/8c2f634d
Tree: http://git-wip-us.apache.org/repos/asf/flex-falcon/tree/8c2f634d
Diff: http://git-wip-us.apache.org/repos/asf/flex-falcon/diff/8c2f634d
Branch: refs/heads/develop
Commit: 8c2f634dbb4bd472e0ea8d8a2468d090def6cb34
Parents: 7923ce9
Author: Christofer Dutz <ch...@codecentric.de>
Authored: Mon Nov 10 11:44:33 2014 +0100
Committer: Christofer Dutz <ch...@codecentric.de>
Committed: Mon Nov 10 11:44:33 2014 +0100
----------------------------------------------------------------------
compiler.jx/build.xml | 4 +-
compiler.jx/downloads.xml | 14 +++++++
.../apache/flex/compiler/clients/COMPJSC.java | 13 ++++++-
.../flex/compiler/clients/FlexJSToolGroup.java | 39 +++++++++++++++++++
.../apache/flex/compiler/clients/MXMLJSC.java | 28 +++++++++++++-
.../flex/compiler/clients/VF2JSToolGroup.java | 40 ++++++++++++++++++++
compiler/build.xml | 2 +-
7 files changed, 135 insertions(+), 5 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/flex-falcon/blob/8c2f634d/compiler.jx/build.xml
----------------------------------------------------------------------
diff --git a/compiler.jx/build.xml b/compiler.jx/build.xml
index dc7d889..9a37be9 100644
--- a/compiler.jx/build.xml
+++ b/compiler.jx/build.xml
@@ -42,6 +42,7 @@
<file name="commons-io.jar" />
<file name="guava.jar" />
<file name="antlr.jar" />
+ <file name="flex-tool-api.jar" />
</filelist>
<filelist dir="${build.lib.dir}/google/closure-compiler">
<file name="compiler.jar" />
@@ -54,6 +55,7 @@
<file name="commons-io.jar" />
<file name="guava.jar" />
<file name="antlr.jar" />
+ <file name="flex-tool-api.jar"/>
</filelist>
</copy>
<copy todir="${build.lib.dir}/google/closure-compiler">
@@ -84,7 +86,7 @@
<target name="main" depends="prebuild,copyFiles,compile">
- <property name="jar.classpath" value="commons-io.jar ../../lib/external/guava.jar ../../lib/external/antlr.jar google/closure-compiler/compiler.jar ../../compiler/generated/dist/sdk/lib/compiler.jar ../../lib/compiler.jar" />
+ <property name="jar.classpath" value="commons-io.jar ../../lib/external/guava.jar ../../lib/external/antlr.jar ../../lib/external/flex-tool-api.jar google/closure-compiler/compiler.jar ../../compiler/generated/dist/sdk/lib/compiler.jar ../../lib/compiler.jar" />
<echo message="Building ${jsc.jar}" />
<jar file="${jsc.jar}" basedir="${classes.dir}"
http://git-wip-us.apache.org/repos/asf/flex-falcon/blob/8c2f634d/compiler.jx/downloads.xml
----------------------------------------------------------------------
diff --git a/compiler.jx/downloads.xml b/compiler.jx/downloads.xml
index cc998a7..dd64945 100644
--- a/compiler.jx/downloads.xml
+++ b/compiler.jx/downloads.xml
@@ -150,6 +150,20 @@
<param name="dest.folder" value=""/>
<param name="dest.filename" value="${org.json.name}.jar"/>
</antcall>
+
+ <!-- flex-tool-api -->
+ <property name="flexToolApi.name" value="flex-tool-api"/>
+ <property name="flexToolApi.version" value="1.0.0-SNAPSHOT"/>
+ <antcall target="download-dependency">
+ <param name="name" value="${flexToolApi.name}"/>
+ <param name="src.server" value="http://repository.apache.org/content/groups/snapshots"/>
+ <param name="src.folder" value="org/apache/flex/flex-tool-api/${flexToolApi.version}"/>
+ <param name="src.filename" value="flex-tool-api-1.0.0-20141105.140704-1.jar"/>
+ <param name="src.checksum" value="b37c99011d06e1ff794d8ee9153ab2c4"/>
+ <param name="dest.folder" value=""/>
+ <param name="dest.filename" value="${flexToolApi.name}.jar"/>
+ <param name="license.use.apache" value="true"/>
+ </antcall>
</target>
http://git-wip-us.apache.org/repos/asf/flex-falcon/blob/8c2f634d/compiler.jx/src/org/apache/flex/compiler/clients/COMPJSC.java
----------------------------------------------------------------------
diff --git a/compiler.jx/src/org/apache/flex/compiler/clients/COMPJSC.java b/compiler.jx/src/org/apache/flex/compiler/clients/COMPJSC.java
index 99140bb..068b2f3 100644
--- a/compiler.jx/src/org/apache/flex/compiler/clients/COMPJSC.java
+++ b/compiler.jx/src/org/apache/flex/compiler/clients/COMPJSC.java
@@ -51,6 +51,7 @@ import org.apache.flex.compiler.problems.UnableToBuildSWFProblem;
import org.apache.flex.compiler.targets.ITarget.TargetType;
import org.apache.flex.compiler.targets.ITargetSettings;
import org.apache.flex.compiler.units.ICompilationUnit;
+import org.apache.flex.tools.FlexTool;
import org.apache.flex.utils.FileUtils;
import sun.reflect.generics.reflectiveObjects.NotImplementedException;
@@ -60,7 +61,7 @@ import sun.reflect.generics.reflectiveObjects.NotImplementedException;
* @author Erik de Bruin
* @author Michael Schmalle
*/
-public class COMPJSC extends MXMLJSC
+public class COMPJSC extends MXMLJSC implements FlexTool
{
/*
* Exit code enumerations.
@@ -81,6 +82,16 @@ public class COMPJSC extends MXMLJSC
final int code;
}
+ @Override
+ public String getName() {
+ return "COMPC";
+ }
+
+ @Override
+ public int execute(String[] args) {
+ return staticMainNoExit(args);
+ }
+
/**
* Java program entry point.
*
http://git-wip-us.apache.org/repos/asf/flex-falcon/blob/8c2f634d/compiler.jx/src/org/apache/flex/compiler/clients/FlexJSToolGroup.java
----------------------------------------------------------------------
diff --git a/compiler.jx/src/org/apache/flex/compiler/clients/FlexJSToolGroup.java b/compiler.jx/src/org/apache/flex/compiler/clients/FlexJSToolGroup.java
new file mode 100644
index 0000000..f33e346
--- /dev/null
+++ b/compiler.jx/src/org/apache/flex/compiler/clients/FlexJSToolGroup.java
@@ -0,0 +1,39 @@
+package org.apache.flex.compiler.clients;
+
+import org.apache.flex.compiler.internal.driver.mxml.flexjs.MXMLFlexJSBackend;
+import org.apache.flex.tools.FlexTool;
+import org.apache.flex.tools.FlexToolGroup;
+
+import java.util.Collection;
+import java.util.HashMap;
+import java.util.Map;
+
+/**
+ * Created by christoferdutz on 10.11.14.
+ */
+public class FlexJSToolGroup implements FlexToolGroup {
+
+ Map<String, FlexTool> tools;
+
+ public FlexJSToolGroup() {
+ tools = new HashMap<String, FlexTool>();
+ tools.put("COMPC", new COMPJSC(new MXMLFlexJSBackend()));
+ tools.put("MXMLC", new MXMLJSC(new MXMLFlexJSBackend()));
+ }
+
+ @Override
+ public String getName() {
+ return "FlexJS";
+ }
+
+ @Override
+ public Collection<String> getFlexToolNames() {
+ return tools.keySet();
+ }
+
+ @Override
+ public FlexTool getFlexTool(String toolName) {
+ return tools.get(toolName);
+ }
+
+}
http://git-wip-us.apache.org/repos/asf/flex-falcon/blob/8c2f634d/compiler.jx/src/org/apache/flex/compiler/clients/MXMLJSC.java
----------------------------------------------------------------------
diff --git a/compiler.jx/src/org/apache/flex/compiler/clients/MXMLJSC.java b/compiler.jx/src/org/apache/flex/compiler/clients/MXMLJSC.java
index e08cd6c..2716aea 100644
--- a/compiler.jx/src/org/apache/flex/compiler/clients/MXMLJSC.java
+++ b/compiler.jx/src/org/apache/flex/compiler/clients/MXMLJSC.java
@@ -77,6 +77,7 @@ import org.apache.flex.compiler.targets.ITarget;
import org.apache.flex.compiler.targets.ITarget.TargetType;
import org.apache.flex.compiler.targets.ITargetSettings;
import org.apache.flex.compiler.units.ICompilationUnit;
+import org.apache.flex.tools.FlexTool;
import org.apache.flex.utils.FileUtils;
import org.apache.flex.utils.FilenameNormalization;
@@ -88,7 +89,7 @@ import com.google.common.collect.Iterables;
* @author Erik de Bruin
* @author Michael Schmalle
*/
-public class MXMLJSC
+public class MXMLJSC implements FlexTool
{
/*
* JS output type enumerations.
@@ -143,6 +144,17 @@ public class MXMLJSC
public static JSOutputType jsOutputType;
public static boolean keepASDoc;
+ @Override
+ public String getName() {
+ return "MXMLC";
+ }
+
+ @Override
+ public int execute(String[] args) {
+ final Set<ICompilerProblem> problems = new HashSet<ICompilerProblem>();
+ return mainNoExit(args, problems, true);
+ }
+
/**
* Java program entry point.
*
@@ -150,6 +162,18 @@ public class MXMLJSC
*/
public static void main(final String[] args)
{
+ int exitCode = staticMainNoExit(args);
+ System.exit(exitCode);
+ }
+
+ /**
+ * Entry point for the {@code <compc>} Ant task.
+ *
+ * @param args Command line arguments.
+ * @return An exit code.
+ */
+ public static int staticMainNoExit(final String[] args)
+ {
long startTime = System.nanoTime();
IBackend backend = new ASBackend();
@@ -193,7 +217,7 @@ public class MXMLJSC
long endTime = System.nanoTime();
JSSharedData.instance.stdout((endTime - startTime) / 1e9 + " seconds");
- System.exit(exitCode);
+ return exitCode;
}
protected Workspace workspace;
http://git-wip-us.apache.org/repos/asf/flex-falcon/blob/8c2f634d/compiler.jx/src/org/apache/flex/compiler/clients/VF2JSToolGroup.java
----------------------------------------------------------------------
diff --git a/compiler.jx/src/org/apache/flex/compiler/clients/VF2JSToolGroup.java b/compiler.jx/src/org/apache/flex/compiler/clients/VF2JSToolGroup.java
new file mode 100644
index 0000000..2918e68
--- /dev/null
+++ b/compiler.jx/src/org/apache/flex/compiler/clients/VF2JSToolGroup.java
@@ -0,0 +1,40 @@
+package org.apache.flex.compiler.clients;
+
+import org.apache.flex.compiler.internal.driver.js.vf2js.VF2JSBackend;
+import org.apache.flex.compiler.internal.driver.mxml.flexjs.MXMLFlexJSBackend;
+import org.apache.flex.tools.FlexTool;
+import org.apache.flex.tools.FlexToolGroup;
+
+import java.util.Collection;
+import java.util.HashMap;
+import java.util.Map;
+
+/**
+ * Created by christoferdutz on 10.11.14.
+ */
+public class VF2JSToolGroup implements FlexToolGroup {
+
+ Map<String, FlexTool> tools;
+
+ public VF2JSToolGroup() {
+ tools = new HashMap<String, FlexTool>();
+ tools.put("COMPC", new COMPJSC(new VF2JSBackend()));
+ tools.put("MXMLC", new MXMLJSC(new VF2JSBackend()));
+ }
+
+ @Override
+ public String getName() {
+ return "VF2JS";
+ }
+
+ @Override
+ public Collection<String> getFlexToolNames() {
+ return tools.keySet();
+ }
+
+ @Override
+ public FlexTool getFlexTool(String toolName) {
+ return tools.get(toolName);
+ }
+
+}
http://git-wip-us.apache.org/repos/asf/flex-falcon/blob/8c2f634d/compiler/build.xml
----------------------------------------------------------------------
diff --git a/compiler/build.xml b/compiler/build.xml
index 13d1ce8..7c0172e 100644
--- a/compiler/build.xml
+++ b/compiler/build.xml
@@ -605,7 +605,7 @@
<attribute name="Implementation-Title" value="${manifest.Implementation-Title}"/>
<attribute name="Implementation-Version" value="${manifest.Implementation-Version}.${build.number}"/>
<attribute name="Implementation-Vendor" value="${manifest.Implementation-Vendor}"/>
- <attribute name="Class-Path" value="external/antlr.jar external/commons-cli.jar external/commons-io.jar external/guava.jar external/lzma-sdk.jar .."/>
+ <attribute name="Class-Path" value="external/antlr.jar external/commons-cli.jar external/commons-io.jar external/guava.jar external/lzma-sdk.jar external/flex-tool-api.jar .."/>
<!-- The .. in the line above allows the compiler to load the env.properties file -->
</manifest>
</jar>
[6/6] git commit: [flex-falcon] [refs/heads/develop] - Merge branch
'feature/flex-tool-api' into develop
Posted by cd...@apache.org.
Merge branch 'feature/flex-tool-api' into develop
Conflicts:
compiler.jx/build.xml
compiler.jx/src/org/apache/flex/compiler/internal/codegen/mxml/vf2js/MXMLVF2JSPublisher.java
Project: http://git-wip-us.apache.org/repos/asf/flex-falcon/repo
Commit: http://git-wip-us.apache.org/repos/asf/flex-falcon/commit/18b403c9
Tree: http://git-wip-us.apache.org/repos/asf/flex-falcon/tree/18b403c9
Diff: http://git-wip-us.apache.org/repos/asf/flex-falcon/diff/18b403c9
Branch: refs/heads/develop
Commit: 18b403c9c20439faad4cbf6545edea3c863b738f
Parents: 461873b e92a0e9
Author: Christofer Dutz <ch...@codecentric.de>
Authored: Sun Nov 23 12:42:52 2014 +0100
Committer: Christofer Dutz <ch...@codecentric.de>
Committed: Sun Nov 23 12:42:52 2014 +0100
----------------------------------------------------------------------
compiler.jx/build.xml | 9 +-
compiler.jx/downloads.xml | 14 ++
.../org.apache.flex.tools.FlexToolGroup | 2 +
.../apache/flex/compiler/clients/COMPJSC.java | 13 +-
.../flex/compiler/clients/FlexJSToolGroup.java | 36 ++++++
.../apache/flex/compiler/clients/MXMLJSC.java | 129 ++++++++-----------
.../flex/compiler/clients/VF2JSToolGroup.java | 36 ++++++
.../codegen/js/goog/JSGoogPublisher.java | 36 +++++-
.../mxml/flexjs/MXMLFlexJSPublisher.java | 125 ++++++++++++++----
.../codegen/mxml/vf2js/MXMLVF2JSPublisher.java | 81 ++++++++----
.../driver/js/goog/JSGoogConfiguration.java | 6 +-
.../compiler/internal/graph/GoogDepsWriter.java | 58 +++++----
compiler/build.xml | 7 +-
compiler/downloads.xml | 14 ++
.../org.apache.flex.tools.FlexToolGroup | 1 +
.../org/apache/flex/compiler/clients/COMPC.java | 15 ++-
.../flex/compiler/clients/FalconToolGroup.java | 36 ++++++
.../org/apache/flex/compiler/clients/MXMLC.java | 16 ++-
.../apache/flex/compiler/clients/Optimizer.java | 12 +-
maven/falcon-jx-compiler.pom | 5 +
20 files changed, 485 insertions(+), 166 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/flex-falcon/blob/18b403c9/compiler.jx/build.xml
----------------------------------------------------------------------
diff --cc compiler.jx/build.xml
index cdaf24b,1f6b4e1..82ccde8
--- a/compiler.jx/build.xml
+++ b/compiler.jx/build.xml
@@@ -88,7 -93,7 +93,7 @@@
<echo message="Building ${jsc.jar}" />
<jar file="${jsc.jar}" basedir="${classes.dir}"
- includes="**/*.properties,org/apache/**/*,com/google/**/*"
- includes="**/*.properties,org/apache/**/*,META-INF/**/*"
++ includes="**/*.properties,org/apache/**/*,com/google/**/*,META-INF/**/*"
excludes="**/JSDriver*,**/IASNodeAdapter*,org/apache/flex/compiler/internal/parsing/abc/*" >
<manifest>
<attribute name="Class-Path" value="${jar.classpath}" />
http://git-wip-us.apache.org/repos/asf/flex-falcon/blob/18b403c9/compiler.jx/src/org/apache/flex/compiler/internal/codegen/mxml/flexjs/MXMLFlexJSPublisher.java
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/flex-falcon/blob/18b403c9/compiler.jx/src/org/apache/flex/compiler/internal/codegen/mxml/vf2js/MXMLVF2JSPublisher.java
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/flex-falcon/blob/18b403c9/compiler.jx/src/org/apache/flex/compiler/internal/graph/GoogDepsWriter.java
----------------------------------------------------------------------