Repository: flex-falcon Updated Branches: refs/heads/dual 5c8ca85a0 -> 6ae2ed16a
allow SWF compilers to use a JS config so that they don't complain when sharing -config.xml files Project: http://git-wip-us.apache.org/repos/asf/flex-falcon/repo Commit: http://git-wip-us.apache.org/repos/asf/flex-falcon/commit/6ae2ed16 Tree: http://git-wip-us.apache.org/repos/asf/flex-falcon/tree/6ae2ed16 Diff: http://git-wip-us.apache.org/repos/asf/flex-falcon/diff/6ae2ed16 Branch: refs/heads/dual Commit: 6ae2ed16a949632541c3e64f69e6cf6ce4ae46a1 Parents: 5c8ca85 Author: Alex Harui <[email protected]> Authored: Tue Feb 14 10:13:28 2017 -0800 Committer: Alex Harui <[email protected]> Committed: Tue Feb 14 10:13:28 2017 -0800 ---------------------------------------------------------------------- .../apache/flex/compiler/clients/COMPJSC.java | 8 +++-- .../flex/compiler/clients/JSConfiguration.java | 18 +++++++++++ .../apache/flex/compiler/clients/MXMLJSC.java | 32 +++++++++++++++++--- .../org/apache/flex/compiler/clients/COMPC.java | 2 +- .../org/apache/flex/compiler/clients/MXMLC.java | 5 +-- 5 files changed, 55 insertions(+), 10 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/flex-falcon/blob/6ae2ed16/compiler-jx/src/main/java/org/apache/flex/compiler/clients/COMPJSC.java ---------------------------------------------------------------------- diff --git a/compiler-jx/src/main/java/org/apache/flex/compiler/clients/COMPJSC.java b/compiler-jx/src/main/java/org/apache/flex/compiler/clients/COMPJSC.java index 0eba441..467b333 100644 --- a/compiler-jx/src/main/java/org/apache/flex/compiler/clients/COMPJSC.java +++ b/compiler-jx/src/main/java/org/apache/flex/compiler/clients/COMPJSC.java @@ -52,6 +52,7 @@ import org.apache.flex.compiler.internal.codegen.js.JSWriter; import org.apache.flex.compiler.internal.driver.as.ASBackend; import org.apache.flex.compiler.internal.driver.js.amd.AMDBackend; import org.apache.flex.compiler.internal.driver.js.goog.GoogBackend; +import org.apache.flex.compiler.internal.driver.js.goog.JSGoogConfiguration; import org.apache.flex.compiler.internal.driver.mxml.flexjs.MXMLFlexJSSWCBackend; import org.apache.flex.compiler.internal.driver.mxml.jsc.MXMLJSCJSSWCBackend; import org.apache.flex.compiler.internal.projects.CompilerProject; @@ -194,7 +195,8 @@ public class COMPJSC extends MXMLJSC { case SWF: COMPC compc = new COMPC(); - result = compc.mainNoExit(args); + compc.configurationClass = JSGoogConfiguration.class; + result = compc.mainNoExit(removeJSArgs(args)); if (result != 0) { problems.addAll(compc.problems.getProblems()); @@ -203,7 +205,7 @@ public class COMPJSC extends MXMLJSC break; case JS_FLEX: COMPJSCFlex flex = new COMPJSCFlex(); - result = flex.mainNoExit(args, problems.getProblems(), false); + result = flex.mainNoExit(removeASArgs(args), problems.getProblems(), false); if (result != 0) { break targetloop; @@ -211,7 +213,7 @@ public class COMPJSC extends MXMLJSC break; case JS_NATIVE: COMPJSCNative jsc = new COMPJSCNative(); - result = jsc.mainNoExit(args, problems.getProblems(), false); + result = jsc.mainNoExit(removeASArgs(args), problems.getProblems(), false); if (result != 0) { break targetloop; http://git-wip-us.apache.org/repos/asf/flex-falcon/blob/6ae2ed16/compiler-jx/src/main/java/org/apache/flex/compiler/clients/JSConfiguration.java ---------------------------------------------------------------------- diff --git a/compiler-jx/src/main/java/org/apache/flex/compiler/clients/JSConfiguration.java b/compiler-jx/src/main/java/org/apache/flex/compiler/clients/JSConfiguration.java index 53a2f54..ae614bc 100644 --- a/compiler-jx/src/main/java/org/apache/flex/compiler/clients/JSConfiguration.java +++ b/compiler-jx/src/main/java/org/apache/flex/compiler/clients/JSConfiguration.java @@ -28,6 +28,7 @@ import java.util.Map; import org.apache.flex.compiler.clients.MXMLJSC.JSOutputType; import org.apache.flex.compiler.clients.MXMLJSC.JSTargetType; import org.apache.flex.compiler.config.Configuration; +import org.apache.flex.compiler.config.ConfigurationBuffer; import org.apache.flex.compiler.config.ConfigurationValue; import org.apache.flex.compiler.exceptions.ConfigurationException; import org.apache.flex.compiler.exceptions.ConfigurationException.CannotOpen; @@ -296,4 +297,21 @@ public class JSConfiguration extends Configuration return value; } + /** + * @return JS equivalent of -load-config + */ + public String getJsLoadConfig() + { + return null; + } + + /** + * Placeholder. MXMLJSC picks off these values and changes them to load-config for the JS compilers + */ + @Config(allowMultiple = true) + @Arguments("filename") + public void setJsLoadConfig(ConfigurationValue cv, String filename) throws ConfigurationException + { + + } } http://git-wip-us.apache.org/repos/asf/flex-falcon/blob/6ae2ed16/compiler-jx/src/main/java/org/apache/flex/compiler/clients/MXMLJSC.java ---------------------------------------------------------------------- diff --git a/compiler-jx/src/main/java/org/apache/flex/compiler/clients/MXMLJSC.java b/compiler-jx/src/main/java/org/apache/flex/compiler/clients/MXMLJSC.java index 8ce5f4c..e2c6486 100644 --- a/compiler-jx/src/main/java/org/apache/flex/compiler/clients/MXMLJSC.java +++ b/compiler-jx/src/main/java/org/apache/flex/compiler/clients/MXMLJSC.java @@ -328,7 +328,7 @@ public class MXMLJSC implements JSCompilerEntryPoint, ProblemQueryProvider, break; case JS_FLEX: MXMLJSCFlex flex = new MXMLJSCFlex(); - result = flex.mainNoExit(args, problems.getProblems(), false); + result = flex.mainNoExit(removeASArgs(args), problems.getProblems(), false); if (result != 0) { break targetloop; @@ -336,7 +336,7 @@ public class MXMLJSC implements JSCompilerEntryPoint, ProblemQueryProvider, break; case JS_NODE: MXMLJSCNode node = new MXMLJSCNode(); - result = node.mainNoExit(args, problems.getProblems(), false); + result = node.mainNoExit(removeASArgs(args), problems.getProblems(), false); if (result != 0) { break targetloop; @@ -344,7 +344,7 @@ public class MXMLJSC implements JSCompilerEntryPoint, ProblemQueryProvider, break; case JS_NATIVE: MXMLJSCNative jsc = new MXMLJSCNative(); - result = jsc.mainNoExit(args, problems.getProblems(), false); + result = jsc.mainNoExit(removeASArgs(args), problems.getProblems(), false); if (result != 0) { break targetloop; @@ -398,7 +398,7 @@ public class MXMLJSC implements JSCompilerEntryPoint, ProblemQueryProvider, return exitCode.code; } - private String[] removeJSArgs(String[] args) + protected String[] removeJSArgs(String[] args) { ArrayList<String> list = new ArrayList<String>(); for (String arg : args) @@ -410,12 +410,36 @@ public class MXMLJSC implements JSCompilerEntryPoint, ProblemQueryProvider, arg.startsWith("-compiler.js-library-path") || arg.startsWith("-compiler.js-define") || arg.startsWith("-js-output") || + arg.startsWith("-js-load-config") || arg.startsWith("-source-map"))) list.add(arg); } return list.toArray(new String[0]); } + protected String[] removeASArgs(String[] args) + { + ArrayList<String> list = new ArrayList<String>(); + boolean hasJSLoadConfig = false; + for (String arg : args) + { + if (arg.startsWith("-js-load-config")) + hasJSLoadConfig = true; + } + if (!hasJSLoadConfig) + return args; + for (String arg : args) + { + if (!arg.startsWith("-load-config")) + { + if (arg.startsWith("-js-load-config")) + arg = arg.substring(3); + list.add(arg); + } + } + return list.toArray(new String[0]); + } + /** * Main body of this program. This method is called from the public static * method's for this program. http://git-wip-us.apache.org/repos/asf/flex-falcon/blob/6ae2ed16/compiler/src/main/java/org/apache/flex/compiler/clients/COMPC.java ---------------------------------------------------------------------- diff --git a/compiler/src/main/java/org/apache/flex/compiler/clients/COMPC.java b/compiler/src/main/java/org/apache/flex/compiler/clients/COMPC.java index 547f40f..0c7ac71 100644 --- a/compiler/src/main/java/org/apache/flex/compiler/clients/COMPC.java +++ b/compiler/src/main/java/org/apache/flex/compiler/clients/COMPC.java @@ -108,7 +108,7 @@ public class COMPC extends MXMLC implements FlexTool @Override protected Configurator createConfigurator() { - return new Configurator(COMPCConfiguration.class); + return new Configurator(configurationClass); } @Override http://git-wip-us.apache.org/repos/asf/flex-falcon/blob/6ae2ed16/compiler/src/main/java/org/apache/flex/compiler/clients/MXMLC.java ---------------------------------------------------------------------- diff --git a/compiler/src/main/java/org/apache/flex/compiler/clients/MXMLC.java b/compiler/src/main/java/org/apache/flex/compiler/clients/MXMLC.java index 7a7bfdd..d77db73 100644 --- a/compiler/src/main/java/org/apache/flex/compiler/clients/MXMLC.java +++ b/compiler/src/main/java/org/apache/flex/compiler/clients/MXMLC.java @@ -399,6 +399,7 @@ public class MXMLC implements FlexTool public ProblemQuery problems; public ConfigurationBuffer configBuffer; + public Class<? extends Configuration> configurationClass = Configuration.class; protected Configurator projectConfigurator; protected ICompilationUnit mainCU; @@ -449,9 +450,9 @@ public class MXMLC implements FlexTool * @return a new instance or subclass of {@link Configurator}. * */ - protected Configurator createConfigurator() + protected Configurator createConfigurator() { - return new Configurator(); + return new Configurator(configurationClass); } /**
