You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@flex.apache.org by ah...@apache.org on 2016/04/13 21:08:02 UTC
[2/2] git commit: [flex-falcon] [refs/heads/develop] - FalconJX now
checks debug flag to determine whether to generate the release build via
Google Closure Compiler. Also added -skip-transpile option so when
debug==false, you can skip the debug-mode tra
FalconJX now checks debug flag to determine whether to generate the release build via Google Closure Compiler. Also added -skip-transpile option so when debug==false, you can skip the debug-mode transpilation. By default, when debug==false, the compiler wil first transpile into the js-debug folder then call GCC on that folder. If you set -skip-transpile, the copiler will not transpile into the js-debug folder and just hand the js-debug folder to GCC. This can come in handy if the compiler isn't generating the right code and you want to hand-edit it before sending it to GCC for optimization
Project: http://git-wip-us.apache.org/repos/asf/flex-falcon/repo
Commit: http://git-wip-us.apache.org/repos/asf/flex-falcon/commit/3357a102
Tree: http://git-wip-us.apache.org/repos/asf/flex-falcon/tree/3357a102
Diff: http://git-wip-us.apache.org/repos/asf/flex-falcon/diff/3357a102
Branch: refs/heads/develop
Commit: 3357a10216f66f0ef93630a8861c43f975f509da
Parents: fd87205
Author: Alex Harui <ah...@apache.org>
Authored: Wed Apr 13 12:07:52 2016 -0700
Committer: Alex Harui <ah...@apache.org>
Committed: Wed Apr 13 12:07:52 2016 -0700
----------------------------------------------------------------------
.../apache/flex/compiler/clients/MXMLJSC.java | 109 ++++++++-------
.../mxml/flexjs/MXMLFlexJSPublisher.java | 140 ++++++++++---------
.../driver/js/goog/JSGoogConfiguration.java | 20 +++
3 files changed, 154 insertions(+), 115 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/flex-falcon/blob/3357a102/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 d324c9f..c6d9508 100644
--- a/compiler.jx/src/org/apache/flex/compiler/clients/MXMLJSC.java
+++ b/compiler.jx/src/org/apache/flex/compiler/clients/MXMLJSC.java
@@ -349,7 +349,7 @@ public class MXMLJSC implements JSCompilerEntryPoint, ProblemQueryProvider,
if (continueCompilation)
{
project.setProblems(problems.getProblems());
- compile();
+ compile();
if (problems.hasFilteredProblems())
{
if (problems.hasErrors())
@@ -410,12 +410,14 @@ public class MXMLJSC implements JSCompilerEntryPoint, ProblemQueryProvider,
{
project.getSourceCompilationUnitFactory().addHandler(asFileHandler);
- if (!setupTargetFile())
- return false;
-
- buildArtifact();
+ if (!((JSGoogConfiguration) config).getSkipTranspile())
+ {
+ if (!setupTargetFile())
+ return false;
- if (jsTarget != null)
+ buildArtifact();
+ }
+ if (jsTarget != null || ((JSGoogConfiguration) config).getSkipTranspile())
{
List<ICompilerProblem> errors = new ArrayList<ICompilerProblem>();
List<ICompilerProblem> warnings = new ArrayList<ICompilerProblem>();
@@ -432,54 +434,57 @@ public class MXMLJSC implements JSCompilerEntryPoint, ProblemQueryProvider,
File outputFolder = jsPublisher.getOutputFolder();
- ArrayList<ICompilationUnit> roots = new ArrayList<ICompilationUnit>();
- roots.add(mainCU);
- Set<ICompilationUnit> incs = target.getIncludesCompilationUnits();
- roots.addAll(incs);
- List<ICompilationUnit> reachableCompilationUnits = project.getReachableCompilationUnitsInSWFOrder(roots);
- for (final ICompilationUnit cu : reachableCompilationUnits)
+ if (!((JSGoogConfiguration) config).getSkipTranspile())
{
- ICompilationUnit.UnitType cuType = cu.getCompilationUnitType();
-
- if (cuType == ICompilationUnit.UnitType.AS_UNIT
- || cuType == ICompilationUnit.UnitType.MXML_UNIT)
- {
- final File outputClassFile = getOutputClassFile(
- cu.getQualifiedNames().get(0), outputFolder);
-
- System.out.println("Compiling file: " + outputClassFile);
-
- ICompilationUnit unit = cu;
-
- IJSWriter writer;
- if (cuType == ICompilationUnit.UnitType.AS_UNIT)
- {
- writer = (IJSWriter) JSSharedData.backend.createWriter(project,
- errors, unit, false);
- }
- else
- {
- writer = (IJSWriter) JSSharedData.backend.createMXMLWriter(
- project, errors, unit, false);
- }
-
- BufferedOutputStream out = new BufferedOutputStream(
- new FileOutputStream(outputClassFile));
-
- File outputSourceMapFile = null;
- if (project.config.getSourceMap())
- {
- outputSourceMapFile = getOutputSourceMapFile(
- cu.getQualifiedNames().get(0), outputFolder);
- }
-
- writer.writeTo(out, outputSourceMapFile);
- out.flush();
- out.close();
- writer.close();
- }
+ ArrayList<ICompilationUnit> roots = new ArrayList<ICompilationUnit>();
+ roots.add(mainCU);
+ Set<ICompilationUnit> incs = target.getIncludesCompilationUnits();
+ roots.addAll(incs);
+ List<ICompilationUnit> reachableCompilationUnits = project.getReachableCompilationUnitsInSWFOrder(roots);
+ for (final ICompilationUnit cu : reachableCompilationUnits)
+ {
+ ICompilationUnit.UnitType cuType = cu.getCompilationUnitType();
+
+ if (cuType == ICompilationUnit.UnitType.AS_UNIT
+ || cuType == ICompilationUnit.UnitType.MXML_UNIT)
+ {
+ final File outputClassFile = getOutputClassFile(
+ cu.getQualifiedNames().get(0), outputFolder);
+
+ System.out.println("Compiling file: " + outputClassFile);
+
+ ICompilationUnit unit = cu;
+
+ IJSWriter writer;
+ if (cuType == ICompilationUnit.UnitType.AS_UNIT)
+ {
+ writer = (IJSWriter) JSSharedData.backend.createWriter(project,
+ errors, unit, false);
+ }
+ else
+ {
+ writer = (IJSWriter) JSSharedData.backend.createMXMLWriter(
+ project, errors, unit, false);
+ }
+
+ BufferedOutputStream out = new BufferedOutputStream(
+ new FileOutputStream(outputClassFile));
+
+ File outputSourceMapFile = null;
+ if (project.config.getSourceMap())
+ {
+ outputSourceMapFile = getOutputSourceMapFile(
+ cu.getQualifiedNames().get(0), outputFolder);
+ }
+
+ writer.writeTo(out, outputSourceMapFile);
+ out.flush();
+ out.close();
+ writer.close();
+ }
+ }
}
-
+
if (jsPublisher != null)
{
compilationSuccess = jsPublisher.publish(problems);
http://git-wip-us.apache.org/repos/asf/flex-falcon/blob/3357a102/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 5f5387c..170a24b 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
@@ -130,7 +130,7 @@ public class MXMLFlexJSPublisher extends JSGoogPublisher implements IJSPublisher
// (erikdebruin) Marmotinni handles file management, so we
// bypass the setup.
- if (!isMarmotinniRun)
+ if (!isMarmotinniRun && !((JSGoogConfiguration)configuration).getSkipTranspile())
setupOutputFolder();
return outputFolder;
@@ -162,12 +162,15 @@ public class MXMLFlexJSPublisher extends JSGoogPublisher implements IJSPublisher
org.apache.commons.io.FileUtils.deleteQuietly(releaseDir);
}
- if (!releaseDir.mkdirs())
- {
- throw new IOException("Unable to create release directory at " + releaseDir.getAbsolutePath());
- }
+ if (!configuration.debug())
+ {
+ 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
@@ -222,7 +225,7 @@ public class MXMLFlexJSPublisher extends JSGoogPublisher implements IJSPublisher
closureLibDirPath = ((JSGoogConfiguration) configuration).getClosureLib();
}
}
-
+
// Dump FlexJS to the target directory.
@SuppressWarnings("unused")
String flexJsLibDirPath;
@@ -273,18 +276,21 @@ public class MXMLFlexJSPublisher extends JSGoogPublisher implements IJSPublisher
final String depsTgtFilePath = intermediateDirPath + "/deps.js";
final String projectIntermediateJSFilePath = intermediateDirPath + File.separator + outputFileName;
final String projectReleaseJSFilePath = releaseDirPath + File.separator + outputFileName;
-
- appendExportSymbol(projectIntermediateJSFilePath, projectName);
- appendEncodedCSS(projectIntermediateJSFilePath, projectName);
-
- // if (!subsetGoog)
- // {
- // (erikdebruin) We need to leave the 'goog' files and dependencies well
- // 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));
- // }
-
+
+ if (!((JSGoogConfiguration)configuration).getSkipTranspile())
+ {
+ appendExportSymbol(projectIntermediateJSFilePath, projectName);
+ appendEncodedCSS(projectIntermediateJSFilePath, projectName);
+
+ // if (!subsetGoog)
+ // {
+ // (erikdebruin) We need to leave the 'goog' files and dependencies well
+ // 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(((JSGoogConfiguration) configuration).getJSCompilerOptions());
List<ISWC> swcs = project.getLibraries();
@@ -407,56 +413,64 @@ public class MXMLFlexJSPublisher extends JSGoogPublisher implements IJSPublisher
IOFileFilter subdirs = FileFilterUtils.or(DirectoryFileFilter.DIRECTORY, assetFiles);
FileUtils.copyDirectory(srcDir, intermediateDir, subdirs);
- FileUtils.copyDirectory(srcDir, releaseDir, subdirs);
+ if (!configuration.debug())
+ FileUtils.copyDirectory(srcDir, releaseDir, subdirs);
- // File srcDeps = new File(depsSrcFilePath);
+ // File srcDeps = new File(depsSrcFilePath);
- writeHTML("intermediate", projectName, intermediateDirPath, depsFileData.toString(), gdw.additionalHTML);
- writeHTML("release", projectName, releaseDirPath, null, gdw.additionalHTML);
- if (project.needCSS)
+ if (!((JSGoogConfiguration)configuration).getSkipTranspile())
+ writeHTML("intermediate", projectName, intermediateDirPath, depsFileData.toString(), gdw.additionalHTML);
+ if (!configuration.debug())
+ writeHTML("release", projectName, releaseDirPath, null, gdw.additionalHTML);
+ if (project.needCSS || ((JSGoogConfiguration)configuration).getSkipTranspile())
{
- writeCSS(projectName, intermediateDirPath);
- writeCSS(projectName, releaseDirPath);
+ if (!((JSGoogConfiguration)configuration).getSkipTranspile())
+ writeCSS(projectName, intermediateDirPath);
+ if (!configuration.debug())
+ FileUtils.copyFile(new File(intermediateDirPath + File.separator + projectName + ".css"),
+ new File(releaseDirPath + File.separator + projectName + ".css"));
}
-
- /*
- * if (!subsetGoog) { // (erikdebruin) add 'goog' files Collection<File>
- * files = org.apache.commons.io.FileUtils.listFiles(new File(
- * closureGoogTgtLibDirPath), new RegexFileFilter("^.*(\\.js)"),
- * DirectoryFileFilter.DIRECTORY); for (File file : files) {
- * compilerWrapper.addJSSourceFile(file.getCanonicalPath()); } }
- */
- Collection<File> files = org.apache.commons.io.FileUtils.listFiles(new File(closureGoogSrcLibDirPath),
- new RegexFileFilter("^.*(\\.js)"), DirectoryFileFilter.DIRECTORY);
- for (File file : files)
+
+ if (!configuration.debug())
{
- compilerWrapper.addJSSourceFile(file.getCanonicalPath());
+ /*
+ * if (!subsetGoog) { // (erikdebruin) add 'goog' files Collection<File>
+ * files = org.apache.commons.io.FileUtils.listFiles(new File(
+ * closureGoogTgtLibDirPath), new RegexFileFilter("^.*(\\.js)"),
+ * DirectoryFileFilter.DIRECTORY); for (File file : files) {
+ * compilerWrapper.addJSSourceFile(file.getCanonicalPath()); } }
+ */
+ Collection<File> files = org.apache.commons.io.FileUtils.listFiles(new File(closureGoogSrcLibDirPath),
+ new RegexFileFilter("^.*(\\.js)"), DirectoryFileFilter.DIRECTORY);
+ for (File file : files)
+ {
+ compilerWrapper.addJSSourceFile(file.getCanonicalPath());
+ }
+
+ /*
+ * // (erikdebruin) add project files for (String filePath :
+ * gdw.filePathsInOrder) { compilerWrapper.addJSSourceFile( new
+ * File(filePath).getCanonicalPath()); }
+ */
+
+ compilerWrapper.setOptions(projectReleaseJSFilePath, useStrictPublishing, projectName);
+
+ /*
+ * // (erikdebruin) Include the 'goog' deps to allow the compiler to
+ * resolve // dependencies. compilerWrapper.addJSSourceFile(
+ * closureGoogSrcLibDirPath + File.separator + "deps.js");
+ */
+ List<String> externs = ((JSGoogConfiguration) configuration).getExternalJSLib();
+ for (String extern : externs)
+ {
+ compilerWrapper.addJSExternsFile(extern);
+ }
+
+ compilerWrapper.targetFilePath = projectReleaseJSFilePath;
+ compilerWrapper.compile();
+
+ appendSourceMapLocation(projectReleaseJSFilePath, projectName);
}
-
- /*
- * // (erikdebruin) add project files for (String filePath :
- * gdw.filePathsInOrder) { compilerWrapper.addJSSourceFile( new
- * File(filePath).getCanonicalPath()); }
- */
-
- compilerWrapper.setOptions(projectReleaseJSFilePath, useStrictPublishing, projectName);
-
- /*
- * // (erikdebruin) Include the 'goog' deps to allow the compiler to
- * resolve // dependencies. compilerWrapper.addJSSourceFile(
- * closureGoogSrcLibDirPath + File.separator + "deps.js");
- */
- List<String> externs = ((JSGoogConfiguration) configuration).getExternalJSLib();
- for (String extern : externs)
- {
- compilerWrapper.addJSExternsFile(extern);
- }
-
- compilerWrapper.targetFilePath = projectReleaseJSFilePath;
- compilerWrapper.compile();
-
- appendSourceMapLocation(projectReleaseJSFilePath, projectName);
-
/*
* if (!isMarmotinniRun) { String allDeps = ""; if (!subsetGoog) {
* allDeps += FileUtils.readFileToString(srcDeps); } allDeps +=
http://git-wip-us.apache.org/repos/asf/flex-falcon/blob/3357a102/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 0f03323..6eb1037 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
@@ -256,6 +256,26 @@ public class JSGoogConfiguration extends JSConfiguration
}
+ //
+ // 'skip-transpile'
+ //
+
+ private boolean skipTranspile = false;
+
+ public boolean getSkipTranspile()
+ {
+ return skipTranspile;
+ }
+
+ @Config
+ @Mapping("skip-transpile")
+ public void setSkipTranspile(ConfigurationValue cv, boolean value)
+ throws ConfigurationException
+ {
+ skipTranspile = value;
+ }
+
+
protected String getAbsolutePathFromPathRelativeToMXMLC(String relativePath)
throws IOException
Re: [2/2] git commit: [flex-falcon] [refs/heads/develop] - FalconJX
now checks debug flag to determine whether to generate the release build via
Google Closure Compiler. Also added -skip-transpile option so when
debug==false, you can skip the debug-mod...
Posted by OmPrakash Muppirala <bi...@gmail.com>.
On Wed, Apr 13, 2016 at 1:34 PM, Alex Harui <ah...@adobe.com> wrote:
>
>
> On 4/13/16, 1:08 PM, "Harbs" <ha...@gmail.com> wrote:
>
> >I’m confused about the options here.
> >
> >If I’m reading this right, there’s 3 scenarios:
> >1. Generate js-debug and js-release
>
> -debug=false
>
> >2. Only generate js-debug
>
> -debug=true
>
> >3. Only generate js-release from an existing js-debug.
>
> -debug=false -skip-transpile=true
>
> And after I get the wrinkles out of the flex-asjs builds to only use the
> 26 files from Google Closure Library we currently actually need (out of
> 2446 files), I can build debug versions of some examples in 6 seconds (vs
> 30 seconds).
>
Wow! This is significant.
>
> -Alex
>
>
Re: [2/2] git commit: [flex-falcon] [refs/heads/develop] - FalconJX now checks debug flag to determine whether to generate the release build via Google Closure Compiler. Also added -skip-transpile option so when debug==false, you can skip the debug-mod...
Posted by Harbs <ha...@gmail.com>.
Thanks.
On Apr 13, 2016, at 11:34 PM, Alex Harui <ah...@adobe.com> wrote:
>
>
> On 4/13/16, 1:08 PM, "Harbs" <ha...@gmail.com> wrote:
>
>> I’m confused about the options here.
>>
>> If I’m reading this right, there’s 3 scenarios:
>> 1. Generate js-debug and js-release
>
> -debug=false
>
>> 2. Only generate js-debug
>
> -debug=true
>
>> 3. Only generate js-release from an existing js-debug.
>
> -debug=false -skip-transpile=true
>
> And after I get the wrinkles out of the flex-asjs builds to only use the
> 26 files from Google Closure Library we currently actually need (out of
> 2446 files), I can build debug versions of some examples in 6 seconds (vs
> 30 seconds).
>
> -Alex
>
Re: [2/2] git commit: [flex-falcon] [refs/heads/develop] - FalconJX
now checks debug flag to determine whether to generate the release build via
Google Closure Compiler. Also added -skip-transpile option so when
debug==false, you can skip the debug-mod...
Posted by Alex Harui <ah...@adobe.com>.
On 4/13/16, 1:08 PM, "Harbs" <ha...@gmail.com> wrote:
>I’m confused about the options here.
>
>If I’m reading this right, there’s 3 scenarios:
>1. Generate js-debug and js-release
-debug=false
>2. Only generate js-debug
-debug=true
>3. Only generate js-release from an existing js-debug.
-debug=false -skip-transpile=true
And after I get the wrinkles out of the flex-asjs builds to only use the
26 files from Google Closure Library we currently actually need (out of
2446 files), I can build debug versions of some examples in 6 seconds (vs
30 seconds).
-Alex
Re: [2/2] git commit: [flex-falcon] [refs/heads/develop] - FalconJX now checks debug flag to determine whether to generate the release build via Google Closure Compiler. Also added -skip-transpile option so when debug==false, you can skip the debug-mode tra
Posted by Harbs <ha...@gmail.com>.
I’m confused about the options here.
If I’m reading this right, there’s 3 scenarios:
1. Generate js-debug and js-release
2. Only generate js-debug
3. Only generate js-release from an existing js-debug.
Did I get that right?
If so, what are the compile arguments for each case?
On Apr 13, 2016, at 10:08 PM, aharui@apache.org wrote:
> FalconJX now checks debug flag to determine whether to generate the release build via Google Closure Compiler. Also added -skip-transpile option so when debug==false, you can skip the debug-mode transpilation. By default, when debug==false, the compiler wil first transpile into the js-debug folder then call GCC on that folder. If you set -skip-transpile, the copiler will not transpile into the js-debug folder and just hand the js-debug folder to GCC. This can come in handy if the compiler isn't generating the right code and you want to hand-edit it before sending it to GCC for optimization
>
>
> Project: http://git-wip-us.apache.org/repos/asf/flex-falcon/repo
> Commit: http://git-wip-us.apache.org/repos/asf/flex-falcon/commit/3357a102
> Tree: http://git-wip-us.apache.org/repos/asf/flex-falcon/tree/3357a102
> Diff: http://git-wip-us.apache.org/repos/asf/flex-falcon/diff/3357a102
>
> Branch: refs/heads/develop
> Commit: 3357a10216f66f0ef93630a8861c43f975f509da
> Parents: fd87205
> Author: Alex Harui <ah...@apache.org>
> Authored: Wed Apr 13 12:07:52 2016 -0700
> Committer: Alex Harui <ah...@apache.org>
> Committed: Wed Apr 13 12:07:52 2016 -0700
>
> ----------------------------------------------------------------------
> .../apache/flex/compiler/clients/MXMLJSC.java | 109 ++++++++-------
> .../mxml/flexjs/MXMLFlexJSPublisher.java | 140 ++++++++++---------
> .../driver/js/goog/JSGoogConfiguration.java | 20 +++
> 3 files changed, 154 insertions(+), 115 deletions(-)
> ----------------------------------------------------------------------
>
>
> http://git-wip-us.apache.org/repos/asf/flex-falcon/blob/3357a102/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 d324c9f..c6d9508 100644
> --- a/compiler.jx/src/org/apache/flex/compiler/clients/MXMLJSC.java
> +++ b/compiler.jx/src/org/apache/flex/compiler/clients/MXMLJSC.java
> @@ -349,7 +349,7 @@ public class MXMLJSC implements JSCompilerEntryPoint, ProblemQueryProvider,
> if (continueCompilation)
> {
> project.setProblems(problems.getProblems());
> - compile();
> + compile();
> if (problems.hasFilteredProblems())
> {
> if (problems.hasErrors())
> @@ -410,12 +410,14 @@ public class MXMLJSC implements JSCompilerEntryPoint, ProblemQueryProvider,
> {
> project.getSourceCompilationUnitFactory().addHandler(asFileHandler);
>
> - if (!setupTargetFile())
> - return false;
> -
> - buildArtifact();
> + if (!((JSGoogConfiguration) config).getSkipTranspile())
> + {
> + if (!setupTargetFile())
> + return false;
>
> - if (jsTarget != null)
> + buildArtifact();
> + }
> + if (jsTarget != null || ((JSGoogConfiguration) config).getSkipTranspile())
> {
> List<ICompilerProblem> errors = new ArrayList<ICompilerProblem>();
> List<ICompilerProblem> warnings = new ArrayList<ICompilerProblem>();
> @@ -432,54 +434,57 @@ public class MXMLJSC implements JSCompilerEntryPoint, ProblemQueryProvider,
>
> File outputFolder = jsPublisher.getOutputFolder();
>
> - ArrayList<ICompilationUnit> roots = new ArrayList<ICompilationUnit>();
> - roots.add(mainCU);
> - Set<ICompilationUnit> incs = target.getIncludesCompilationUnits();
> - roots.addAll(incs);
> - List<ICompilationUnit> reachableCompilationUnits = project.getReachableCompilationUnitsInSWFOrder(roots);
> - for (final ICompilationUnit cu : reachableCompilationUnits)
> + if (!((JSGoogConfiguration) config).getSkipTranspile())
> {
> - ICompilationUnit.UnitType cuType = cu.getCompilationUnitType();
> -
> - if (cuType == ICompilationUnit.UnitType.AS_UNIT
> - || cuType == ICompilationUnit.UnitType.MXML_UNIT)
> - {
> - final File outputClassFile = getOutputClassFile(
> - cu.getQualifiedNames().get(0), outputFolder);
> -
> - System.out.println("Compiling file: " + outputClassFile);
> -
> - ICompilationUnit unit = cu;
> -
> - IJSWriter writer;
> - if (cuType == ICompilationUnit.UnitType.AS_UNIT)
> - {
> - writer = (IJSWriter) JSSharedData.backend.createWriter(project,
> - errors, unit, false);
> - }
> - else
> - {
> - writer = (IJSWriter) JSSharedData.backend.createMXMLWriter(
> - project, errors, unit, false);
> - }
> -
> - BufferedOutputStream out = new BufferedOutputStream(
> - new FileOutputStream(outputClassFile));
> -
> - File outputSourceMapFile = null;
> - if (project.config.getSourceMap())
> - {
> - outputSourceMapFile = getOutputSourceMapFile(
> - cu.getQualifiedNames().get(0), outputFolder);
> - }
> -
> - writer.writeTo(out, outputSourceMapFile);
> - out.flush();
> - out.close();
> - writer.close();
> - }
> + ArrayList<ICompilationUnit> roots = new ArrayList<ICompilationUnit>();
> + roots.add(mainCU);
> + Set<ICompilationUnit> incs = target.getIncludesCompilationUnits();
> + roots.addAll(incs);
> + List<ICompilationUnit> reachableCompilationUnits = project.getReachableCompilationUnitsInSWFOrder(roots);
> + for (final ICompilationUnit cu : reachableCompilationUnits)
> + {
> + ICompilationUnit.UnitType cuType = cu.getCompilationUnitType();
> +
> + if (cuType == ICompilationUnit.UnitType.AS_UNIT
> + || cuType == ICompilationUnit.UnitType.MXML_UNIT)
> + {
> + final File outputClassFile = getOutputClassFile(
> + cu.getQualifiedNames().get(0), outputFolder);
> +
> + System.out.println("Compiling file: " + outputClassFile);
> +
> + ICompilationUnit unit = cu;
> +
> + IJSWriter writer;
> + if (cuType == ICompilationUnit.UnitType.AS_UNIT)
> + {
> + writer = (IJSWriter) JSSharedData.backend.createWriter(project,
> + errors, unit, false);
> + }
> + else
> + {
> + writer = (IJSWriter) JSSharedData.backend.createMXMLWriter(
> + project, errors, unit, false);
> + }
> +
> + BufferedOutputStream out = new BufferedOutputStream(
> + new FileOutputStream(outputClassFile));
> +
> + File outputSourceMapFile = null;
> + if (project.config.getSourceMap())
> + {
> + outputSourceMapFile = getOutputSourceMapFile(
> + cu.getQualifiedNames().get(0), outputFolder);
> + }
> +
> + writer.writeTo(out, outputSourceMapFile);
> + out.flush();
> + out.close();
> + writer.close();
> + }
> + }
> }
> -
> +
> if (jsPublisher != null)
> {
> compilationSuccess = jsPublisher.publish(problems);
>
> http://git-wip-us.apache.org/repos/asf/flex-falcon/blob/3357a102/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 5f5387c..170a24b 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
> @@ -130,7 +130,7 @@ public class MXMLFlexJSPublisher extends JSGoogPublisher implements IJSPublisher
>
> // (erikdebruin) Marmotinni handles file management, so we
> // bypass the setup.
> - if (!isMarmotinniRun)
> + if (!isMarmotinniRun && !((JSGoogConfiguration)configuration).getSkipTranspile())
> setupOutputFolder();
>
> return outputFolder;
> @@ -162,12 +162,15 @@ public class MXMLFlexJSPublisher extends JSGoogPublisher implements IJSPublisher
> org.apache.commons.io.FileUtils.deleteQuietly(releaseDir);
> }
>
> - if (!releaseDir.mkdirs())
> - {
> - throw new IOException("Unable to create release directory at " + releaseDir.getAbsolutePath());
> - }
> + if (!configuration.debug())
> + {
> + 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
> @@ -222,7 +225,7 @@ public class MXMLFlexJSPublisher extends JSGoogPublisher implements IJSPublisher
> closureLibDirPath = ((JSGoogConfiguration) configuration).getClosureLib();
> }
> }
> -
> +
> // Dump FlexJS to the target directory.
> @SuppressWarnings("unused")
> String flexJsLibDirPath;
> @@ -273,18 +276,21 @@ public class MXMLFlexJSPublisher extends JSGoogPublisher implements IJSPublisher
> final String depsTgtFilePath = intermediateDirPath + "/deps.js";
> final String projectIntermediateJSFilePath = intermediateDirPath + File.separator + outputFileName;
> final String projectReleaseJSFilePath = releaseDirPath + File.separator + outputFileName;
> -
> - appendExportSymbol(projectIntermediateJSFilePath, projectName);
> - appendEncodedCSS(projectIntermediateJSFilePath, projectName);
> -
> - // if (!subsetGoog)
> - // {
> - // (erikdebruin) We need to leave the 'goog' files and dependencies well
> - // 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));
> - // }
> -
> +
> + if (!((JSGoogConfiguration)configuration).getSkipTranspile())
> + {
> + appendExportSymbol(projectIntermediateJSFilePath, projectName);
> + appendEncodedCSS(projectIntermediateJSFilePath, projectName);
> +
> + // if (!subsetGoog)
> + // {
> + // (erikdebruin) We need to leave the 'goog' files and dependencies well
> + // 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(((JSGoogConfiguration) configuration).getJSCompilerOptions());
>
> List<ISWC> swcs = project.getLibraries();
> @@ -407,56 +413,64 @@ public class MXMLFlexJSPublisher extends JSGoogPublisher implements IJSPublisher
> IOFileFilter subdirs = FileFilterUtils.or(DirectoryFileFilter.DIRECTORY, assetFiles);
>
> FileUtils.copyDirectory(srcDir, intermediateDir, subdirs);
> - FileUtils.copyDirectory(srcDir, releaseDir, subdirs);
> + if (!configuration.debug())
> + FileUtils.copyDirectory(srcDir, releaseDir, subdirs);
>
> - // File srcDeps = new File(depsSrcFilePath);
> + // File srcDeps = new File(depsSrcFilePath);
>
> - writeHTML("intermediate", projectName, intermediateDirPath, depsFileData.toString(), gdw.additionalHTML);
> - writeHTML("release", projectName, releaseDirPath, null, gdw.additionalHTML);
> - if (project.needCSS)
> + if (!((JSGoogConfiguration)configuration).getSkipTranspile())
> + writeHTML("intermediate", projectName, intermediateDirPath, depsFileData.toString(), gdw.additionalHTML);
> + if (!configuration.debug())
> + writeHTML("release", projectName, releaseDirPath, null, gdw.additionalHTML);
> + if (project.needCSS || ((JSGoogConfiguration)configuration).getSkipTranspile())
> {
> - writeCSS(projectName, intermediateDirPath);
> - writeCSS(projectName, releaseDirPath);
> + if (!((JSGoogConfiguration)configuration).getSkipTranspile())
> + writeCSS(projectName, intermediateDirPath);
> + if (!configuration.debug())
> + FileUtils.copyFile(new File(intermediateDirPath + File.separator + projectName + ".css"),
> + new File(releaseDirPath + File.separator + projectName + ".css"));
> }
> -
> - /*
> - * if (!subsetGoog) { // (erikdebruin) add 'goog' files Collection<File>
> - * files = org.apache.commons.io.FileUtils.listFiles(new File(
> - * closureGoogTgtLibDirPath), new RegexFileFilter("^.*(\\.js)"),
> - * DirectoryFileFilter.DIRECTORY); for (File file : files) {
> - * compilerWrapper.addJSSourceFile(file.getCanonicalPath()); } }
> - */
> - Collection<File> files = org.apache.commons.io.FileUtils.listFiles(new File(closureGoogSrcLibDirPath),
> - new RegexFileFilter("^.*(\\.js)"), DirectoryFileFilter.DIRECTORY);
> - for (File file : files)
> +
> + if (!configuration.debug())
> {
> - compilerWrapper.addJSSourceFile(file.getCanonicalPath());
> + /*
> + * if (!subsetGoog) { // (erikdebruin) add 'goog' files Collection<File>
> + * files = org.apache.commons.io.FileUtils.listFiles(new File(
> + * closureGoogTgtLibDirPath), new RegexFileFilter("^.*(\\.js)"),
> + * DirectoryFileFilter.DIRECTORY); for (File file : files) {
> + * compilerWrapper.addJSSourceFile(file.getCanonicalPath()); } }
> + */
> + Collection<File> files = org.apache.commons.io.FileUtils.listFiles(new File(closureGoogSrcLibDirPath),
> + new RegexFileFilter("^.*(\\.js)"), DirectoryFileFilter.DIRECTORY);
> + for (File file : files)
> + {
> + compilerWrapper.addJSSourceFile(file.getCanonicalPath());
> + }
> +
> + /*
> + * // (erikdebruin) add project files for (String filePath :
> + * gdw.filePathsInOrder) { compilerWrapper.addJSSourceFile( new
> + * File(filePath).getCanonicalPath()); }
> + */
> +
> + compilerWrapper.setOptions(projectReleaseJSFilePath, useStrictPublishing, projectName);
> +
> + /*
> + * // (erikdebruin) Include the 'goog' deps to allow the compiler to
> + * resolve // dependencies. compilerWrapper.addJSSourceFile(
> + * closureGoogSrcLibDirPath + File.separator + "deps.js");
> + */
> + List<String> externs = ((JSGoogConfiguration) configuration).getExternalJSLib();
> + for (String extern : externs)
> + {
> + compilerWrapper.addJSExternsFile(extern);
> + }
> +
> + compilerWrapper.targetFilePath = projectReleaseJSFilePath;
> + compilerWrapper.compile();
> +
> + appendSourceMapLocation(projectReleaseJSFilePath, projectName);
> }
> -
> - /*
> - * // (erikdebruin) add project files for (String filePath :
> - * gdw.filePathsInOrder) { compilerWrapper.addJSSourceFile( new
> - * File(filePath).getCanonicalPath()); }
> - */
> -
> - compilerWrapper.setOptions(projectReleaseJSFilePath, useStrictPublishing, projectName);
> -
> - /*
> - * // (erikdebruin) Include the 'goog' deps to allow the compiler to
> - * resolve // dependencies. compilerWrapper.addJSSourceFile(
> - * closureGoogSrcLibDirPath + File.separator + "deps.js");
> - */
> - List<String> externs = ((JSGoogConfiguration) configuration).getExternalJSLib();
> - for (String extern : externs)
> - {
> - compilerWrapper.addJSExternsFile(extern);
> - }
> -
> - compilerWrapper.targetFilePath = projectReleaseJSFilePath;
> - compilerWrapper.compile();
> -
> - appendSourceMapLocation(projectReleaseJSFilePath, projectName);
> -
> /*
> * if (!isMarmotinniRun) { String allDeps = ""; if (!subsetGoog) {
> * allDeps += FileUtils.readFileToString(srcDeps); } allDeps +=
>
> http://git-wip-us.apache.org/repos/asf/flex-falcon/blob/3357a102/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 0f03323..6eb1037 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
> @@ -256,6 +256,26 @@ public class JSGoogConfiguration extends JSConfiguration
> }
>
>
> + //
> + // 'skip-transpile'
> + //
> +
> + private boolean skipTranspile = false;
> +
> + public boolean getSkipTranspile()
> + {
> + return skipTranspile;
> + }
> +
> + @Config
> + @Mapping("skip-transpile")
> + public void setSkipTranspile(ConfigurationValue cv, boolean value)
> + throws ConfigurationException
> + {
> + skipTranspile = value;
> + }
> +
> +
>
> protected String getAbsolutePathFromPathRelativeToMXMLC(String relativePath)
> throws IOException
>