use IModule to detect Module compilation
Project: http://git-wip-us.apache.org/repos/asf/flex-falcon/repo Commit: http://git-wip-us.apache.org/repos/asf/flex-falcon/commit/9539c83f Tree: http://git-wip-us.apache.org/repos/asf/flex-falcon/tree/9539c83f Diff: http://git-wip-us.apache.org/repos/asf/flex-falcon/diff/9539c83f Branch: refs/heads/feature/amf Commit: 9539c83f6d024eb04a4f7bbbc725518752691180 Parents: 9cf18a0 Author: Alex Harui <aha...@apache.org> Authored: Fri Aug 18 08:46:22 2017 -0700 Committer: Alex Harui <aha...@apache.org> Committed: Fri Aug 18 08:46:22 2017 -0700 ---------------------------------------------------------------------- .../mxml/flexjs/MXMLFlexJSPublisher.java | 31 +------------------- .../internal/projects/FlexJSProject.java | 20 +++++++++++++ 2 files changed, 21 insertions(+), 30 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/flex-falcon/blob/9539c83f/compiler-jx/src/main/java/org/apache/flex/compiler/internal/codegen/mxml/flexjs/MXMLFlexJSPublisher.java ---------------------------------------------------------------------- diff --git a/compiler-jx/src/main/java/org/apache/flex/compiler/internal/codegen/mxml/flexjs/MXMLFlexJSPublisher.java b/compiler-jx/src/main/java/org/apache/flex/compiler/internal/codegen/mxml/flexjs/MXMLFlexJSPublisher.java index 0683573..69167e4 100644 --- a/compiler-jx/src/main/java/org/apache/flex/compiler/internal/codegen/mxml/flexjs/MXMLFlexJSPublisher.java +++ b/compiler-jx/src/main/java/org/apache/flex/compiler/internal/codegen/mxml/flexjs/MXMLFlexJSPublisher.java @@ -323,7 +323,7 @@ public class MXMLFlexJSPublisher extends JSGoogPublisher implements IJSPublisher // is generated here so it can be used for outputting the html templates. String depsFileData = gdw.generateDeps(project, problems); - if (depsFileData.contains("UIModule.js")) + if (project.isModule(projectName)) { // need better test someday depsFileData += "\ngoog.require('" + projectName + "');\n"; @@ -796,11 +796,6 @@ public class MXMLFlexJSPublisher extends JSGoogPublisher implements IJSPublisher return true; } - private String[] reservedFunctions = { - "org['apache']['flex']['core']['UIBase'] = function(){};", - "org['apache']['flex']['html']['Label'] = function(){};", - }; - private void writeExportedNames(JSClosureCompilerWrapper compilerWrapper) { if (!googConfiguration.getExportPublicSymbols()) @@ -834,30 +829,6 @@ public class MXMLFlexJSPublisher extends JSGoogPublisher implements IJSPublisher compilerWrapper.addJSExternsFile(exportsFile.getAbsolutePath()); } } - else - { - StringBuilder sb = new StringBuilder(); - sb.append("/**\n"); - sb.append(" * generated by Apache FlexJS compiler\n"); - sb.append(" * @externs\n"); - sb.append(" */\n"); - for (String name : reservedFunctions) - { - sb.append("\n\n"); - sb.append("/**\n"); - sb.append(" */\n"); - sb.append(name + "\n"); - } - File exportsFile = new File(outputFolder, "dontrename.js"); - try { - writeFile(exportsFile, sb.toString(), false); - } catch (IOException e) { - // TODO Auto-generated catch block - e.printStackTrace(); - } - //compilerWrapper.addJSExternsFile(exportsFile.getAbsolutePath()); - - } } } http://git-wip-us.apache.org/repos/asf/flex-falcon/blob/9539c83f/compiler-jx/src/main/java/org/apache/flex/compiler/internal/projects/FlexJSProject.java ---------------------------------------------------------------------- diff --git a/compiler-jx/src/main/java/org/apache/flex/compiler/internal/projects/FlexJSProject.java b/compiler-jx/src/main/java/org/apache/flex/compiler/internal/projects/FlexJSProject.java index 8c2b232..4d905bf 100644 --- a/compiler-jx/src/main/java/org/apache/flex/compiler/internal/projects/FlexJSProject.java +++ b/compiler-jx/src/main/java/org/apache/flex/compiler/internal/projects/FlexJSProject.java @@ -35,8 +35,11 @@ import org.apache.flex.compiler.config.Configurator; import org.apache.flex.compiler.css.ICSSMediaQueryCondition; import org.apache.flex.compiler.css.ICSSRule; import org.apache.flex.compiler.definitions.IDefinition; +import org.apache.flex.compiler.definitions.ITypeDefinition; import org.apache.flex.compiler.definitions.metadata.IMetaTag; import org.apache.flex.compiler.definitions.metadata.IMetaTagAttribute; +import org.apache.flex.compiler.definitions.references.IResolvedQualifiersReference; +import org.apache.flex.compiler.definitions.references.ReferenceFactory; import org.apache.flex.compiler.driver.IBackend; import org.apache.flex.compiler.internal.codegen.mxml.flexjs.MXMLFlexJSEmitterTokens; import org.apache.flex.compiler.internal.css.codegen.CSSCompilationSession; @@ -51,6 +54,7 @@ import org.apache.flex.compiler.internal.tree.mxml.MXMLDocumentNode; import org.apache.flex.compiler.internal.tree.mxml.MXMLFileNode; import org.apache.flex.compiler.internal.units.SWCCompilationUnit; import org.apache.flex.compiler.internal.workspaces.Workspace; +import org.apache.flex.compiler.mxml.IMXMLTypeConstants; import org.apache.flex.compiler.targets.ITargetSettings; import org.apache.flex.compiler.tree.as.IASNode; import org.apache.flex.compiler.tree.as.IDefinitionNode; @@ -443,4 +447,20 @@ public class FlexJSProject extends FlexProject { return exportedNames; } + + public boolean isModule(String mainClass) + { + IResolvedQualifiersReference iModuleRef = ReferenceFactory.packageQualifiedReference( + getWorkspace(), "org.apache.flex.core.IModule"); + ITypeDefinition moddef = (ITypeDefinition)iModuleRef.resolve(this); + IResolvedQualifiersReference mainRef = ReferenceFactory.packageQualifiedReference( + getWorkspace(), mainClass); + IDefinition maindef = mainRef.resolve(this); + if (maindef instanceof ITypeDefinition) + { + ITypeDefinition type = (ITypeDefinition)maindef; + return type.isInstanceOf(moddef, this); + } + return false; + } }