You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@flex.apache.org by pi...@apache.org on 2017/08/19 12:42:26 UTC

[5/9] git commit: [flex-falcon] [refs/heads/feature/amf] - use IModule to detect Module compilation

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 <ah...@apache.org>
Authored: Fri Aug 18 08:46:22 2017 -0700
Committer: Alex Harui <ah...@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;
+	}
 }