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 2016/12/25 16:16:55 UTC

[1/3] git commit: [flex-falcon] [refs/heads/develop] - FLEX-35228 - [FlexJS] Usage of statics in JSSharedData causes problems - Moved the static properties into the FlexJSProject class - Refactored the compiler to utilize FlexJSProject instead of IASProj

Repository: flex-falcon
Updated Branches:
  refs/heads/develop 20a1b31cf -> 319cb536e


http://git-wip-us.apache.org/repos/asf/flex-falcon/blob/22ea48e6/compiler-jx/src/main/java/org/apache/flex/compiler/internal/targets/JSTarget.java
----------------------------------------------------------------------
diff --git a/compiler-jx/src/main/java/org/apache/flex/compiler/internal/targets/JSTarget.java b/compiler-jx/src/main/java/org/apache/flex/compiler/internal/targets/JSTarget.java
index adba905..2fcb878 100644
--- a/compiler-jx/src/main/java/org/apache/flex/compiler/internal/targets/JSTarget.java
+++ b/compiler-jx/src/main/java/org/apache/flex/compiler/internal/targets/JSTarget.java
@@ -27,9 +27,9 @@ import java.util.Set;
 
 import org.apache.flex.compiler.driver.js.IJSApplication;
 import org.apache.flex.compiler.exceptions.BuildCanceledException;
-import org.apache.flex.compiler.internal.codegen.js.JSSharedData;
 import org.apache.flex.compiler.internal.driver.js.JSApplication;
 import org.apache.flex.compiler.internal.projects.CompilerProject;
+import org.apache.flex.compiler.internal.projects.FlexJSProject;
 import org.apache.flex.compiler.problems.ICompilerProblem;
 import org.apache.flex.compiler.projects.IASProject;
 import org.apache.flex.compiler.targets.IJSTarget;
@@ -51,10 +51,10 @@ public class JSTarget extends Target implements IJSTarget
      * 
      * @param project the owner project
      */
-    public JSTarget(IASProject project, ITargetSettings targetSettings,
-            ITargetProgressMonitor progressMonitor)
+    public JSTarget(FlexJSProject project, ITargetSettings targetSettings,
+                    ITargetProgressMonitor progressMonitor)
     {
-        super((CompilerProject) project, targetSettings, progressMonitor);
+        super(project, targetSettings, progressMonitor);
     }
 
     @Override
@@ -182,8 +182,8 @@ public class JSTarget extends Target implements IJSTarget
             final Collection<ICompilerProblem> problems)
             throws InterruptedException
     {
-        final JSSharedData sharedData = JSSharedData.instance;
-        sharedData.beginCodeGen();
+/*        final JSSharedData sharedData = JSSharedData.instance;
+        sharedData.beginCodeGen();*/
 
         BuiltCompilationUnitSet builtCompilationUnits = getBuiltCompilationUnitSet();
 
@@ -206,7 +206,7 @@ public class JSTarget extends Target implements IJSTarget
         //            for (ICompilationUnit cu : cuList)
         //                compilationUnits.add(cu);
         //        }
-        sharedData.endCodeGen();
+//        sharedData.endCodeGen();
     }
 
     private ICompilationUnit getRootClassCompilationUnit()

http://git-wip-us.apache.org/repos/asf/flex-falcon/blob/22ea48e6/compiler-jx/src/test/java/org/apache/flex/compiler/internal/codegen/externals/TestExternalsJSCompile.java
----------------------------------------------------------------------
diff --git a/compiler-jx/src/test/java/org/apache/flex/compiler/internal/codegen/externals/TestExternalsJSCompile.java b/compiler-jx/src/test/java/org/apache/flex/compiler/internal/codegen/externals/TestExternalsJSCompile.java
index 8aec761..ed2104b 100644
--- a/compiler-jx/src/test/java/org/apache/flex/compiler/internal/codegen/externals/TestExternalsJSCompile.java
+++ b/compiler-jx/src/test/java/org/apache/flex/compiler/internal/codegen/externals/TestExternalsJSCompile.java
@@ -97,11 +97,11 @@ public class TestExternalsJSCompile
 
         client = new EXTERNC(config);
 
+        backend = new FlexJSBackend();
         if (project == null)
-            project = new FlexJSProject(workspace);
+            project = new FlexJSProject(workspace, backend);
         FlexProjectConfigurator.configure(project);
 
-        backend = new FlexJSBackend();
         //writer = backend.createWriterBuffer(project);
         //emitter = backend.createEmitter(writer);
         //walker = backend.createWalker(project, errors, emitter);

http://git-wip-us.apache.org/repos/asf/flex-falcon/blob/22ea48e6/compiler-jx/src/test/java/org/apache/flex/compiler/internal/codegen/js/flexjs/TestFlexJSClass.java
----------------------------------------------------------------------
diff --git a/compiler-jx/src/test/java/org/apache/flex/compiler/internal/codegen/js/flexjs/TestFlexJSClass.java b/compiler-jx/src/test/java/org/apache/flex/compiler/internal/codegen/js/flexjs/TestFlexJSClass.java
index 50e7d6e..c828aa7 100644
--- a/compiler-jx/src/test/java/org/apache/flex/compiler/internal/codegen/js/flexjs/TestFlexJSClass.java
+++ b/compiler-jx/src/test/java/org/apache/flex/compiler/internal/codegen/js/flexjs/TestFlexJSClass.java
@@ -35,7 +35,7 @@ public class TestFlexJSClass extends TestGoogClass
     @Override
     public void setUp()
     {
-    	project = new FlexJSProject(workspace);
+    	project = new FlexJSProject(workspace, backend);
         super.setUp();
     }
     

http://git-wip-us.apache.org/repos/asf/flex-falcon/blob/22ea48e6/compiler-jx/src/test/java/org/apache/flex/compiler/internal/codegen/js/flexjs/TestFlexJSEmitter.java
----------------------------------------------------------------------
diff --git a/compiler-jx/src/test/java/org/apache/flex/compiler/internal/codegen/js/flexjs/TestFlexJSEmitter.java b/compiler-jx/src/test/java/org/apache/flex/compiler/internal/codegen/js/flexjs/TestFlexJSEmitter.java
index 549fd97..6efd5b4 100644
--- a/compiler-jx/src/test/java/org/apache/flex/compiler/internal/codegen/js/flexjs/TestFlexJSEmitter.java
+++ b/compiler-jx/src/test/java/org/apache/flex/compiler/internal/codegen/js/flexjs/TestFlexJSEmitter.java
@@ -37,7 +37,7 @@ public class TestFlexJSEmitter extends TestGoogEmitter
     @Override
     public void setUp()
     {
-        project = new FlexJSProject(workspace);
+        project = new FlexJSProject(workspace, backend);
 
         super.setUp();
     }

http://git-wip-us.apache.org/repos/asf/flex-falcon/blob/22ea48e6/compiler-jx/src/test/java/org/apache/flex/compiler/internal/codegen/js/flexjs/TestFlexJSExpressions.java
----------------------------------------------------------------------
diff --git a/compiler-jx/src/test/java/org/apache/flex/compiler/internal/codegen/js/flexjs/TestFlexJSExpressions.java b/compiler-jx/src/test/java/org/apache/flex/compiler/internal/codegen/js/flexjs/TestFlexJSExpressions.java
index f683349..3a58690 100644
--- a/compiler-jx/src/test/java/org/apache/flex/compiler/internal/codegen/js/flexjs/TestFlexJSExpressions.java
+++ b/compiler-jx/src/test/java/org/apache/flex/compiler/internal/codegen/js/flexjs/TestFlexJSExpressions.java
@@ -49,7 +49,7 @@ public class TestFlexJSExpressions extends TestGoogExpressions
     @Override
     public void setUp()
     {
-    	project = new FlexJSProject(workspace);
+    	project = new FlexJSProject(workspace, backend);
         workspace.setASDocDelegate(new FlexJSASDocDelegate());
     	JSGoogConfiguration config = new JSGoogConfiguration();
     	try {

http://git-wip-us.apache.org/repos/asf/flex-falcon/blob/22ea48e6/compiler-jx/src/test/java/org/apache/flex/compiler/internal/codegen/js/flexjs/TestFlexJSGlobalClasses.java
----------------------------------------------------------------------
diff --git a/compiler-jx/src/test/java/org/apache/flex/compiler/internal/codegen/js/flexjs/TestFlexJSGlobalClasses.java b/compiler-jx/src/test/java/org/apache/flex/compiler/internal/codegen/js/flexjs/TestFlexJSGlobalClasses.java
index acfd22e..b3afc50 100644
--- a/compiler-jx/src/test/java/org/apache/flex/compiler/internal/codegen/js/flexjs/TestFlexJSGlobalClasses.java
+++ b/compiler-jx/src/test/java/org/apache/flex/compiler/internal/codegen/js/flexjs/TestFlexJSGlobalClasses.java
@@ -44,8 +44,8 @@ public class TestFlexJSGlobalClasses extends TestGoogGlobalClasses
     @Override
     public void setUp()
     {
-    	project = new FlexJSProject(workspace);
-    	((FlexJSProject)project).config = new JSGoogConfiguration();
+    	project = new FlexJSProject(workspace, backend);
+    	project.config = new JSGoogConfiguration();
     	project.setProxyBaseClass("flash.utils.Proxy");
         super.setUp();
     }

http://git-wip-us.apache.org/repos/asf/flex-falcon/blob/22ea48e6/compiler-jx/src/test/java/org/apache/flex/compiler/internal/codegen/js/flexjs/TestFlexJSGlobalFunctions.java
----------------------------------------------------------------------
diff --git a/compiler-jx/src/test/java/org/apache/flex/compiler/internal/codegen/js/flexjs/TestFlexJSGlobalFunctions.java b/compiler-jx/src/test/java/org/apache/flex/compiler/internal/codegen/js/flexjs/TestFlexJSGlobalFunctions.java
index 3f40dc7..c1f2738 100644
--- a/compiler-jx/src/test/java/org/apache/flex/compiler/internal/codegen/js/flexjs/TestFlexJSGlobalFunctions.java
+++ b/compiler-jx/src/test/java/org/apache/flex/compiler/internal/codegen/js/flexjs/TestFlexJSGlobalFunctions.java
@@ -38,8 +38,8 @@ public class TestFlexJSGlobalFunctions extends TestGoogGlobalFunctions
     @Override
     public void setUp()
     {
-    	project = new FlexJSProject(workspace);
-    	((FlexJSProject)project).config = new JSGoogConfiguration();
+    	project = new FlexJSProject(workspace, backend);
+        project.config = new JSGoogConfiguration();
     	project.setProxyBaseClass("flash.utils.Proxy");
         super.setUp();
     }

http://git-wip-us.apache.org/repos/asf/flex-falcon/blob/22ea48e6/compiler-jx/src/test/java/org/apache/flex/compiler/internal/codegen/js/flexjs/TestFlexJSPackage.java
----------------------------------------------------------------------
diff --git a/compiler-jx/src/test/java/org/apache/flex/compiler/internal/codegen/js/flexjs/TestFlexJSPackage.java b/compiler-jx/src/test/java/org/apache/flex/compiler/internal/codegen/js/flexjs/TestFlexJSPackage.java
index 8565b94..5b2500e 100644
--- a/compiler-jx/src/test/java/org/apache/flex/compiler/internal/codegen/js/flexjs/TestFlexJSPackage.java
+++ b/compiler-jx/src/test/java/org/apache/flex/compiler/internal/codegen/js/flexjs/TestFlexJSPackage.java
@@ -37,7 +37,7 @@ public class TestFlexJSPackage extends TestGoogPackage
     @Override
     public void setUp()
     {
-    	project = new FlexJSProject(workspace);
+    	project = new FlexJSProject(workspace, backend);
     	JSGoogConfiguration config = new JSGoogConfiguration();
     	ArrayList<String> values = new ArrayList<String>();
     	values.add("Event");

http://git-wip-us.apache.org/repos/asf/flex-falcon/blob/22ea48e6/compiler-jx/src/test/java/org/apache/flex/compiler/internal/codegen/js/flexjs/TestFlexJSProject.java
----------------------------------------------------------------------
diff --git a/compiler-jx/src/test/java/org/apache/flex/compiler/internal/codegen/js/flexjs/TestFlexJSProject.java b/compiler-jx/src/test/java/org/apache/flex/compiler/internal/codegen/js/flexjs/TestFlexJSProject.java
index 66b5429..4114429 100644
--- a/compiler-jx/src/test/java/org/apache/flex/compiler/internal/codegen/js/flexjs/TestFlexJSProject.java
+++ b/compiler-jx/src/test/java/org/apache/flex/compiler/internal/codegen/js/flexjs/TestFlexJSProject.java
@@ -58,8 +58,8 @@ public class TestFlexJSProject extends TestGoogProject
     @Override
     public void setUp()
     {
-        project = new FlexJSProject(workspace);
-        ((FlexJSProject)project).config = new JSGoogConfiguration();
+        project = new FlexJSProject(workspace, backend);
+        project.config = new JSGoogConfiguration();
         super.setUp();
     }
     

http://git-wip-us.apache.org/repos/asf/flex-falcon/blob/22ea48e6/compiler-jx/src/test/java/org/apache/flex/compiler/internal/codegen/js/flexjs/TestFlexJSStatements.java
----------------------------------------------------------------------
diff --git a/compiler-jx/src/test/java/org/apache/flex/compiler/internal/codegen/js/flexjs/TestFlexJSStatements.java b/compiler-jx/src/test/java/org/apache/flex/compiler/internal/codegen/js/flexjs/TestFlexJSStatements.java
index 604d0f1..02c9452 100644
--- a/compiler-jx/src/test/java/org/apache/flex/compiler/internal/codegen/js/flexjs/TestFlexJSStatements.java
+++ b/compiler-jx/src/test/java/org/apache/flex/compiler/internal/codegen/js/flexjs/TestFlexJSStatements.java
@@ -44,7 +44,7 @@ public class TestFlexJSStatements extends TestGoogStatements
     @Override
     public void setUp()
     {
-    	project = new FlexJSProject(workspace);
+    	project = new FlexJSProject(workspace, backend);
         super.setUp();
     }
     

http://git-wip-us.apache.org/repos/asf/flex-falcon/blob/22ea48e6/compiler-jx/src/test/java/org/apache/flex/compiler/internal/test/FlexJSTestBase.java
----------------------------------------------------------------------
diff --git a/compiler-jx/src/test/java/org/apache/flex/compiler/internal/test/FlexJSTestBase.java b/compiler-jx/src/test/java/org/apache/flex/compiler/internal/test/FlexJSTestBase.java
index 203d16a..8a1116a 100644
--- a/compiler-jx/src/test/java/org/apache/flex/compiler/internal/test/FlexJSTestBase.java
+++ b/compiler-jx/src/test/java/org/apache/flex/compiler/internal/test/FlexJSTestBase.java
@@ -41,7 +41,7 @@ public class FlexJSTestBase extends TestBase
     @Override
     public void setUp()
     {
-    	project = new FlexJSProject(workspace);
+    	project = new FlexJSProject(workspace, backend);
         super.setUp();
 
         asEmitter = backend.createEmitter(writer);

http://git-wip-us.apache.org/repos/asf/flex-falcon/blob/22ea48e6/compiler-jx/src/test/java/org/apache/flex/compiler/internal/test/TestBase.java
----------------------------------------------------------------------
diff --git a/compiler-jx/src/test/java/org/apache/flex/compiler/internal/test/TestBase.java b/compiler-jx/src/test/java/org/apache/flex/compiler/internal/test/TestBase.java
index 916d7ce..4bc9cbd 100644
--- a/compiler-jx/src/test/java/org/apache/flex/compiler/internal/test/TestBase.java
+++ b/compiler-jx/src/test/java/org/apache/flex/compiler/internal/test/TestBase.java
@@ -85,7 +85,7 @@ public class TestBase implements ITestBase
     protected static EnvProperties env = EnvProperties.initiate();
 
     protected static Workspace workspace = new Workspace();
-    protected FlexProject project;
+    protected FlexJSProject project;
 
     protected IBackend backend;
     protected ASFilterWriter writer;
@@ -117,13 +117,13 @@ public class TestBase implements ITestBase
 
         if (project == null)
         {
-        	project = new FlexProject(workspace);
+            backend = createBackend();
+        	project = new FlexJSProject(workspace, backend);
         	project.setProxyBaseClass("flash.utils.Proxy");
         }
         project.setProblems(errors);
         FlexProjectConfigurator.configure(project);
 
-        backend = createBackend();
         writer = backend.createWriterBuffer(project);
 
         try
@@ -301,10 +301,8 @@ public class TestBase implements ITestBase
         ICompilationUnit mainCU = Iterables
                 .getOnlyElement(workspace.getCompilationUnits(
                         FilenameNormalization.normalize(mainFileName), project));
-        
-        if (project instanceof FlexJSProject)
-            ((FlexJSProject) project).mainCU = mainCU;
-        
+
+        project.mainCU = mainCU;
         Configurator projectConfigurator = backend.createConfigurator();
 
         JSTarget target = (JSTarget) backend.createTarget(project,


[3/3] git commit: [flex-falcon] [refs/heads/develop] - FLEX-35229 - [FlexJS] extend the flexjs-maven-plugin to be able to generate static asdoc html - Implemented a first version that outputs DITA xml for a SWF and a JS compilation using the DITA xml bac

Posted by cd...@apache.org.
FLEX-35229 - [FlexJS] extend the flexjs-maven-plugin to be able to generate static asdoc html
- Implemented a first version that outputs DITA xml for a SWF and a JS compilation using the DITA xml backend
- Still not finished ...


Project: http://git-wip-us.apache.org/repos/asf/flex-falcon/repo
Commit: http://git-wip-us.apache.org/repos/asf/flex-falcon/commit/319cb536
Tree: http://git-wip-us.apache.org/repos/asf/flex-falcon/tree/319cb536
Diff: http://git-wip-us.apache.org/repos/asf/flex-falcon/diff/319cb536

Branch: refs/heads/develop
Commit: 319cb536ece52bcbfa3b48e6cc98eb6a35ac2089
Parents: 22ea48e
Author: Christofer Dutz <ch...@codecentric.de>
Authored: Sun Dec 25 16:57:41 2016 +0100
Committer: Christofer Dutz <ch...@codecentric.de>
Committed: Sun Dec 25 16:57:41 2016 +0100

----------------------------------------------------------------------
 .../org/apache/flex/maven/flexjs/BaseMojo.java  |   8 +-
 .../flex/maven/flexjs/CompileASDocMojo.java     | 156 +++++++++++++++++++
 .../apache/flex/maven/flexjs/CompileASMojo.java |   6 +-
 .../flex/maven/flexjs/CompileAppMojo.java       |   6 +-
 .../apache/flex/maven/flexjs/CompileJSMojo.java |   6 +-
 .../flex/maven/flexjs/CompileTypedefsMojo.java  |   6 +-
 .../flex/maven/flexjs/GenerateExterncMojo.java  |   6 +-
 .../config/compile-asdoc-js-config.xml          | 112 +++++++++++++
 .../config/compile-asdoc-swf-config.xml         | 127 +++++++++++++++
 9 files changed, 414 insertions(+), 19 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/flex-falcon/blob/319cb536/flexjs-maven-plugin/src/main/java/org/apache/flex/maven/flexjs/BaseMojo.java
----------------------------------------------------------------------
diff --git a/flexjs-maven-plugin/src/main/java/org/apache/flex/maven/flexjs/BaseMojo.java b/flexjs-maven-plugin/src/main/java/org/apache/flex/maven/flexjs/BaseMojo.java
index 7c56482..f294d2f 100644
--- a/flexjs-maven-plugin/src/main/java/org/apache/flex/maven/flexjs/BaseMojo.java
+++ b/flexjs-maven-plugin/src/main/java/org/apache/flex/maven/flexjs/BaseMojo.java
@@ -104,9 +104,9 @@ public abstract class BaseMojo
         return false;
     }
 
-    protected abstract String getConfigFileName();
+    protected abstract String getConfigFileName() throws MojoExecutionException;
 
-    protected abstract File getOutput();
+    protected abstract File getOutput() throws MojoExecutionException;
 
     protected VelocityContext getVelocityContext() throws MojoExecutionException {
         VelocityContext context = new VelocityContext();
@@ -278,7 +278,7 @@ public abstract class BaseMojo
     protected void handleExitCode(int exitCode) throws MojoExecutionException {
         // Allow normal execution and execution with warnings.
         if(!((exitCode == 0) || (!failOnCompilerWarnings && (exitCode == 2)))) {
-            throw new MojoExecutionException("There were errors during the build.");
+            throw new MojoExecutionException("There were errors during the build. Got return code " + exitCode);
         }
     }
 
@@ -345,7 +345,7 @@ public abstract class BaseMojo
         return libraries;
     }
 
-    protected List<Define> getDefines() {
+    protected List<Define> getDefines() throws MojoExecutionException {
         List<Define> defines = new LinkedList<Define>();
         if(this.defines != null) {
             for(Define define : this.defines) {

http://git-wip-us.apache.org/repos/asf/flex-falcon/blob/319cb536/flexjs-maven-plugin/src/main/java/org/apache/flex/maven/flexjs/CompileASDocMojo.java
----------------------------------------------------------------------
diff --git a/flexjs-maven-plugin/src/main/java/org/apache/flex/maven/flexjs/CompileASDocMojo.java b/flexjs-maven-plugin/src/main/java/org/apache/flex/maven/flexjs/CompileASDocMojo.java
new file mode 100644
index 0000000..e8fd8ac
--- /dev/null
+++ b/flexjs-maven-plugin/src/main/java/org/apache/flex/maven/flexjs/CompileASDocMojo.java
@@ -0,0 +1,156 @@
+/*
+ * Licensed 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.maven.flexjs;
+
+import org.apache.flex.tools.FlexTool;
+import org.apache.maven.plugin.MojoExecutionException;
+import org.apache.maven.plugins.annotations.LifecyclePhase;
+import org.apache.maven.plugins.annotations.Mojo;
+import org.apache.maven.plugins.annotations.Parameter;
+
+import java.io.File;
+import java.util.List;
+
+/**
+ * goal which compiles the asdoc documentation for the project.
+ */
+@Mojo(name="compile-asdoc",defaultPhase = LifecyclePhase.SITE)
+public class CompileASDocMojo
+    extends BaseMojo
+{
+
+    @Parameter(defaultValue = "asdoc")
+    private String asdocDirectoryName;
+
+    @Parameter(defaultValue = "false")
+    private boolean skipASDoc;
+
+    private ThreadLocal<Type> type = new ThreadLocal<Type>();
+
+    @Override
+    protected String getToolGroupName() {
+        return "FlexJS";
+    }
+
+    @Override
+    protected String getFlexTool() {
+        return FlexTool.FLEX_TOOL_ASDOC;
+    }
+
+    @Override
+    protected String getConfigFileName() throws MojoExecutionException {
+        if(type.get() == null) {
+            throw new MojoExecutionException("type not set");
+        }
+        switch (type.get()) {
+            case SWF:
+                return "compile-asdoc-swf-config.xml";
+            case JS:
+                return "compile-asdoc-js-config.xml";
+        }
+        return null;
+    }
+
+    @Override
+    protected File getOutput() throws MojoExecutionException {
+        if(type.get() == null) {
+            throw new MojoExecutionException("type not set");
+        }
+        switch (type.get()) {
+            case SWF:
+                return new File(new File(outputDirectory, asdocDirectoryName), "swf");
+            case JS:
+                return new File(new File(outputDirectory, asdocDirectoryName), "js");
+        }
+        return null;
+    }
+
+    @Override
+    protected boolean skip() {
+        return skipASDoc;
+    }
+
+    @Override
+    public void execute() throws MojoExecutionException {
+        // We are using a ThreadLocal in this case in order to control the
+        // mode the two methods getOutput and getDefines are in in a threadsafe
+        // manner. Currently it wouldn't be necessary, but we never know how the
+        // compiler will be instantiated in the future. This method is safe in
+        // any way it could be used (Multiple executions in parallel with Maven).
+        try {
+            // Execute the ASDoc generation for SWF
+            getLog().info("Generating SWF apidocs");
+            type.set(Type.SWF);
+            File outputDirectory = getOutput();
+            if (!outputDirectory.exists()) {
+                if (!outputDirectory.mkdirs()) {
+                    throw new MojoExecutionException("Could not create output directory for apidocs " + outputDirectory.getPath());
+                }
+            }
+            super.execute();
+            getLog().info("Finished");
+
+            // Execute the ASDoc generation for JavaScript
+            getLog().info("Generating JS apidocs");
+            type.set(Type.JS);
+            outputDirectory = getOutput();
+            if (!outputDirectory.exists()) {
+                if (!outputDirectory.mkdirs()) {
+                    throw new MojoExecutionException("Could not create output directory for apidocs " + outputDirectory.getPath());
+                }
+            }
+            super.execute();
+            getLog().info("Finished");
+        } finally {
+            type.remove();
+        }
+
+        // TODO: Merge both outputs in order to create one XML per class containing which elements are available for SWF and which ones for JS in one file
+        // TODO: Send each merged XML through an XSLT that produces XHTML
+
+    }
+
+    @Override
+    protected List<String> getCompilerArgs(File configFile) throws MojoExecutionException {
+        List<String> args = super.getCompilerArgs(configFile);
+        args.add("-js-output-type=flexjs_dita");
+        return args;
+    }
+
+    @Override
+    protected List<Define> getDefines() throws MojoExecutionException {
+        List<Define> defines = super.getDefines();
+        if(type.get() == null) {
+            throw new MojoExecutionException("type not set");
+        }
+        switch (type.get()) {
+            case SWF:
+                defines.add(new Define("COMPILE::JS", "false"));
+                defines.add(new Define("COMPILE::SWF", "true"));
+                break;
+            case JS:
+                defines.add(new Define("COMPILE::JS", "true"));
+                defines.add(new Define("COMPILE::SWF", "false"));
+                break;
+        }
+        return defines;
+    }
+
+    private enum Type {
+        SWF,
+        JS
+    }
+
+}

http://git-wip-us.apache.org/repos/asf/flex-falcon/blob/319cb536/flexjs-maven-plugin/src/main/java/org/apache/flex/maven/flexjs/CompileASMojo.java
----------------------------------------------------------------------
diff --git a/flexjs-maven-plugin/src/main/java/org/apache/flex/maven/flexjs/CompileASMojo.java b/flexjs-maven-plugin/src/main/java/org/apache/flex/maven/flexjs/CompileASMojo.java
index f705cb6..a32200b 100644
--- a/flexjs-maven-plugin/src/main/java/org/apache/flex/maven/flexjs/CompileASMojo.java
+++ b/flexjs-maven-plugin/src/main/java/org/apache/flex/maven/flexjs/CompileASMojo.java
@@ -53,12 +53,12 @@ public class CompileASMojo
     }
 
     @Override
-    protected String getConfigFileName() {
+    protected String getConfigFileName() throws MojoExecutionException {
         return "compile-as-config.xml";
     }
 
     @Override
-    protected File getOutput() {
+    protected File getOutput() throws MojoExecutionException {
         return new File(outputDirectory, outputFileName);
     }
 
@@ -89,7 +89,7 @@ public class CompileASMojo
     }
 
     @Override
-    protected List<Define> getDefines() {
+    protected List<Define> getDefines() throws MojoExecutionException {
         List<Define> defines = super.getDefines();
         defines.add(new Define("COMPILE::JS", "false"));
         defines.add(new Define("COMPILE::SWF", "true"));

http://git-wip-us.apache.org/repos/asf/flex-falcon/blob/319cb536/flexjs-maven-plugin/src/main/java/org/apache/flex/maven/flexjs/CompileAppMojo.java
----------------------------------------------------------------------
diff --git a/flexjs-maven-plugin/src/main/java/org/apache/flex/maven/flexjs/CompileAppMojo.java b/flexjs-maven-plugin/src/main/java/org/apache/flex/maven/flexjs/CompileAppMojo.java
index 8a4da76..c7e9dbe 100644
--- a/flexjs-maven-plugin/src/main/java/org/apache/flex/maven/flexjs/CompileAppMojo.java
+++ b/flexjs-maven-plugin/src/main/java/org/apache/flex/maven/flexjs/CompileAppMojo.java
@@ -77,7 +77,7 @@ public class CompileAppMojo
     }
 
     @Override
-    protected String getConfigFileName() {
+    protected String getConfigFileName() throws MojoExecutionException {
         if(outputJavaScript) {
             return "compile-app-javascript-config.xml";
         }
@@ -93,7 +93,7 @@ public class CompileAppMojo
     }
 
     @Override
-    protected File getOutput() {
+    protected File getOutput() throws MojoExecutionException {
         if(outputJavaScript) {
             return new File(outputDirectory, "javascript");
         }
@@ -175,7 +175,7 @@ public class CompileAppMojo
     }*/
 
     @Override
-    protected List<Define> getDefines() {
+    protected List<Define> getDefines() throws MojoExecutionException {
         List<Define> defines = super.getDefines();
         defines.add(new Define("COMPILE::JS", "false"));
         defines.add(new Define("COMPILE::SWF", "true"));

http://git-wip-us.apache.org/repos/asf/flex-falcon/blob/319cb536/flexjs-maven-plugin/src/main/java/org/apache/flex/maven/flexjs/CompileJSMojo.java
----------------------------------------------------------------------
diff --git a/flexjs-maven-plugin/src/main/java/org/apache/flex/maven/flexjs/CompileJSMojo.java b/flexjs-maven-plugin/src/main/java/org/apache/flex/maven/flexjs/CompileJSMojo.java
index 0878bea..03a0f63 100644
--- a/flexjs-maven-plugin/src/main/java/org/apache/flex/maven/flexjs/CompileJSMojo.java
+++ b/flexjs-maven-plugin/src/main/java/org/apache/flex/maven/flexjs/CompileJSMojo.java
@@ -53,12 +53,12 @@ public class CompileJSMojo
     }
 
     @Override
-    protected String getConfigFileName() {
+    protected String getConfigFileName() throws MojoExecutionException {
         return "compile-js-config.xml";
     }
 
     @Override
-    protected File getOutput() {
+    protected File getOutput() throws MojoExecutionException {
         return new File(outputDirectory, outputFileName);
     }
 
@@ -105,7 +105,7 @@ public class CompileJSMojo
     }
 
     @Override
-    protected List<Define> getDefines() {
+    protected List<Define> getDefines() throws MojoExecutionException {
         List<Define> defines = super.getDefines();
         defines.add(new Define("COMPILE::JS", "true"));
         defines.add(new Define("COMPILE::SWF", "false"));

http://git-wip-us.apache.org/repos/asf/flex-falcon/blob/319cb536/flexjs-maven-plugin/src/main/java/org/apache/flex/maven/flexjs/CompileTypedefsMojo.java
----------------------------------------------------------------------
diff --git a/flexjs-maven-plugin/src/main/java/org/apache/flex/maven/flexjs/CompileTypedefsMojo.java b/flexjs-maven-plugin/src/main/java/org/apache/flex/maven/flexjs/CompileTypedefsMojo.java
index 013c778..b1c4686 100644
--- a/flexjs-maven-plugin/src/main/java/org/apache/flex/maven/flexjs/CompileTypedefsMojo.java
+++ b/flexjs-maven-plugin/src/main/java/org/apache/flex/maven/flexjs/CompileTypedefsMojo.java
@@ -55,11 +55,11 @@ public class CompileTypedefsMojo
     }
 
     @Override
-    protected String getConfigFileName() {
+    protected String getConfigFileName() throws MojoExecutionException {
         return "compile-extern-config.xml";
     }
 
-    protected File getOutput() {
+    protected File getOutput() throws MojoExecutionException {
         return new File(outputDirectory, outputFileName);
     }
 
@@ -91,7 +91,7 @@ public class CompileTypedefsMojo
     }
 
     @Override
-    protected List<Define> getDefines() {
+    protected List<Define> getDefines() throws MojoExecutionException {
         List<Define> defines = super.getDefines();
         defines.add(new Define("COMPILE::JS", "true"));
         defines.add(new Define("COMPILE::SWF", "false"));

http://git-wip-us.apache.org/repos/asf/flex-falcon/blob/319cb536/flexjs-maven-plugin/src/main/java/org/apache/flex/maven/flexjs/GenerateExterncMojo.java
----------------------------------------------------------------------
diff --git a/flexjs-maven-plugin/src/main/java/org/apache/flex/maven/flexjs/GenerateExterncMojo.java b/flexjs-maven-plugin/src/main/java/org/apache/flex/maven/flexjs/GenerateExterncMojo.java
index b893d4b..9a94856 100644
--- a/flexjs-maven-plugin/src/main/java/org/apache/flex/maven/flexjs/GenerateExterncMojo.java
+++ b/flexjs-maven-plugin/src/main/java/org/apache/flex/maven/flexjs/GenerateExterncMojo.java
@@ -56,7 +56,7 @@ public class GenerateExterncMojo
     }
 
     @Override
-    protected String getConfigFileName() {
+    protected String getConfigFileName() throws MojoExecutionException {
         return "generate-externc-config.xml";
     }
 
@@ -66,7 +66,7 @@ public class GenerateExterncMojo
     }
 
     @Override
-    protected File getOutput() {
+    protected File getOutput() throws MojoExecutionException {
         return new File(outputDirectory, outputDirectoryName);
     }
 
@@ -117,7 +117,7 @@ public class GenerateExterncMojo
     }
 
     @Override
-    protected List<Define> getDefines() {
+    protected List<Define> getDefines() throws MojoExecutionException {
         List<Define> defines = super.getDefines();
         defines.add(new Define("COMPILE::JS", "true"));
         defines.add(new Define("COMPILE::SWF", "false"));

http://git-wip-us.apache.org/repos/asf/flex-falcon/blob/319cb536/flexjs-maven-plugin/src/main/resources/config/compile-asdoc-js-config.xml
----------------------------------------------------------------------
diff --git a/flexjs-maven-plugin/src/main/resources/config/compile-asdoc-js-config.xml b/flexjs-maven-plugin/src/main/resources/config/compile-asdoc-js-config.xml
new file mode 100644
index 0000000..034246b
--- /dev/null
+++ b/flexjs-maven-plugin/src/main/resources/config/compile-asdoc-js-config.xml
@@ -0,0 +1,112 @@
+<!--
+
+  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.
+
+-->
+<flex-config>
+
+  <compiler>
+
+    <accessible>false</accessible>
+    <debug>$debug</debug>
+
+    <library-path>
+      #foreach($artifact in $libraries)           <path-element>$artifact.file</path-element>
+      #end
+    </library-path>
+
+    <external-library-path>
+      #foreach($artifact in $externalLibraries)           <path-element>$artifact.file</path-element>
+      #end
+    </external-library-path>
+
+    <source-path>
+      #foreach($sourcePath in $sourcePaths)           <path-element>$sourcePath</path-element>
+      #end
+    </source-path>
+
+    <namespaces>
+      #foreach($namespace in $namespaces)            <namespace>
+      <uri>$namespace.uri</uri>
+      <manifest>$namespace.manifest</manifest>
+    </namespace>
+      #end
+    </namespaces>
+
+    <warn-no-constructor>false</warn-no-constructor>
+
+    <keep-as3-metadata>
+      #foreach($metadata in $keepAs3Metadata)            <name>$metadata</name>
+      #end
+    </keep-as3-metadata>
+
+    <allow-subclass-overrides>$allowSubclassOverrides</allow-subclass-overrides>
+
+    <mxml>
+      <children-as-data>true</children-as-data>
+    </mxml>
+
+    <binding-value-change-event>org.apache.flex.events.ValueChangeEvent</binding-value-change-event>
+    <binding-value-change-event-kind>org.apache.flex.events.ValueChangeEvent</binding-value-change-event-kind>
+    <binding-value-change-event-type>valueChange</binding-value-change-event-type>
+
+    <show-deprecation-warnings>false</show-deprecation-warnings>
+
+    #foreach($define in $defines)        <define>
+    <name>$define.name</name>
+    <value>$define.value</value>
+  </define>
+    #end
+  </compiler>
+
+  #if($includeSources)
+  <include-sources>
+    #foreach($sourcePath in $sourcePaths)        <path-element>$sourcePath</path-element>
+    #end
+  </include-sources>
+  #end
+
+  #if($includeClasses)
+  <include-classes>
+    #foreach($includeClass in $includeClasses)        <class>$includeClass</class>
+    #end
+  </include-classes>
+  #end
+
+  #if($namespaceUris)
+  <include-namespaces>
+    #foreach($namespaceUri in $namespaceUris)        <uri>$namespaceUri</uri>
+    #end
+  </include-namespaces>
+  #end
+
+  <js-output-type>FLEXJS</js-output-type>
+
+  <keep-asdoc>true</keep-asdoc>
+
+  <output>${output}</output>
+
+  <doc-namespaces>
+#foreach($namespace in $namespaces)    <uri>$namespace.uri</uri>
+#end
+  </doc-namespaces>
+
+  <doc-sources>
+#foreach($sourcePath in $sourcePaths)    <path-element>$sourcePath</path-element>
+#end
+  </doc-sources>
+
+</flex-config>

http://git-wip-us.apache.org/repos/asf/flex-falcon/blob/319cb536/flexjs-maven-plugin/src/main/resources/config/compile-asdoc-swf-config.xml
----------------------------------------------------------------------
diff --git a/flexjs-maven-plugin/src/main/resources/config/compile-asdoc-swf-config.xml b/flexjs-maven-plugin/src/main/resources/config/compile-asdoc-swf-config.xml
new file mode 100644
index 0000000..eb3b84d
--- /dev/null
+++ b/flexjs-maven-plugin/src/main/resources/config/compile-asdoc-swf-config.xml
@@ -0,0 +1,127 @@
+<!--
+
+  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.
+
+-->
+<flex-config>
+
+    <compiler>
+
+        <accessible>true</accessible>
+        <debug>$debug</debug>
+
+        <library-path>
+#foreach($artifact in $libraries)            <path-element>$artifact.file</path-element>
+#end
+        </library-path>
+
+        <external-library-path>
+#foreach($artifact in $externalLibraries)            <path-element>$artifact.file</path-element>
+#end
+        </external-library-path>
+
+        <theme>
+#foreach($artifact in $themeLibraries)           <filename>$artifact.file</filename>
+#end
+        </theme>
+
+        <source-path>
+#foreach($sourcePath in $sourcePaths)           <path-element>$sourcePath</path-element>
+#end
+        </source-path>
+
+        <namespaces>
+#foreach($namespace in $namespaces)            <namespace>
+                <uri>$namespace.uri</uri>
+                <manifest>$namespace.manifest</manifest>
+            </namespace>
+#end
+        </namespaces>
+
+        <keep-as3-metadata>
+#foreach($metadata in $keepAs3Metadata)            <name>$metadata</name>
+#end
+        </keep-as3-metadata>
+
+        <allow-subclass-overrides>$allowSubclassOverrides</allow-subclass-overrides>
+        
+        <mxml>
+            <children-as-data>true</children-as-data>
+        </mxml>
+
+        <binding-value-change-event>org.apache.flex.events.ValueChangeEvent</binding-value-change-event>
+        <binding-value-change-event-kind>org.apache.flex.events.ValueChangeEvent</binding-value-change-event-kind>
+        <binding-value-change-event-type>valueChange</binding-value-change-event-type>
+
+        <locale>
+        </locale>
+
+        <warn-no-constructor>false</warn-no-constructor>
+        <show-deprecation-warnings>false</show-deprecation-warnings>
+
+#foreach($define in $defines)        <define>
+            <name>$define.name</name>
+            <value>$define.value</value>
+        </define>
+#end
+    </compiler>
+
+#if($includeSources)
+    <include-sources>
+#foreach($sourcePath in $sourcePaths)        <path-element>$sourcePath</path-element>
+#end
+    </include-sources>
+#end
+
+#if($includeClasses)
+    <include-classes>
+#foreach($includeClass in $includeClasses)        <class>$includeClass</class>
+#end
+    </include-classes>
+#end
+
+#if($namespaceUris)
+    <include-namespaces>
+#foreach($namespaceUri in $namespaceUris)        <uri>$namespaceUri</uri>
+#end
+    </include-namespaces>
+#end
+
+#foreach($includeFile in $includeFiles)    <include-file>
+        <name>$includeFile.name</name>
+        <path>$includeFile.path</path>
+    </include-file>
+#end
+
+#if($includeLookupOnly)
+    <include-lookup-only>$includeLookupOnly</include-lookup-only>
+#end
+
+    <target-player>${targetPlayer}</target-player>
+
+    <output>${output}</output>
+
+  <doc-namespaces>
+#foreach($namespace in $namespaces)    <uri>$namespace.uri</uri>
+#end
+  </doc-namespaces>
+
+  <doc-sources>
+#foreach($sourcePath in $sourcePaths)    <path-element>$sourcePath</path-element>
+#end
+  </doc-sources>
+
+</flex-config>


[2/3] git commit: [flex-falcon] [refs/heads/develop] - FLEX-35228 - [FlexJS] Usage of statics in JSSharedData causes problems - Moved the static properties into the FlexJSProject class - Refactored the compiler to utilize FlexJSProject instead of IASProj

Posted by cd...@apache.org.
FLEX-35228 - [FlexJS] Usage of statics in JSSharedData causes problems
- Moved the static properties into the FlexJSProject class
- Refactored the compiler to utilize FlexJSProject instead of IASProject (Was cast to FlexJSProject in a lot of places anyway)


Project: http://git-wip-us.apache.org/repos/asf/flex-falcon/repo
Commit: http://git-wip-us.apache.org/repos/asf/flex-falcon/commit/22ea48e6
Tree: http://git-wip-us.apache.org/repos/asf/flex-falcon/tree/22ea48e6
Diff: http://git-wip-us.apache.org/repos/asf/flex-falcon/diff/22ea48e6

Branch: refs/heads/develop
Commit: 22ea48e6d2c644ddee5c50f4fc9eec31029b3065
Parents: 20a1b31
Author: Christofer Dutz <ch...@codecentric.de>
Authored: Sun Dec 25 16:55:15 2016 +0100
Committer: Christofer Dutz <ch...@codecentric.de>
Committed: Sun Dec 25 16:55:15 2016 +0100

----------------------------------------------------------------------
 .../apache/flex/compiler/clients/ASDOCJSC.java  | 17 ++++----
 .../apache/flex/compiler/clients/COMPJSC.java   | 17 ++++----
 .../flex/compiler/clients/FlexJSToolGroup.java  |  2 +
 .../apache/flex/compiler/clients/MXMLJSC.java   | 44 +++++++++-----------
 .../apache/flex/compiler/driver/IBackend.java   | 25 ++++++-----
 .../compiler/internal/codegen/as/ASWriter.java  | 17 ++++----
 .../internal/codegen/js/JSPublisher.java        |  7 +++-
 .../internal/codegen/js/JSSharedData.java       | 36 ++++++----------
 .../compiler/internal/codegen/js/JSWriter.java  | 12 +++---
 .../codegen/js/goog/JSGoogDocEmitter.java       | 22 +++++++++-
 .../codegen/js/goog/JSGoogPublisher.java        |  8 ++--
 .../internal/codegen/js/jsc/JSCPublisher.java   |  4 +-
 .../internal/codegen/js/node/NodePublisher.java |  2 +-
 .../internal/codegen/mxml/MXMLWriter.java       |  9 ++--
 .../mxml/flexjs/MXMLFlexJSPublisher.java        |  7 ++--
 .../compiler/internal/driver/as/ASBackend.java  | 18 ++++----
 .../compiler/internal/driver/js/JSBackend.java  | 20 ++++-----
 .../driver/js/flexjs/FlexJSBackend.java         |  6 +--
 .../internal/driver/js/goog/GoogBackend.java    |  6 +--
 .../internal/driver/js/jsc/JSCBackend.java      |  5 +--
 .../internal/driver/js/node/NodeBackend.java    |  5 +--
 .../driver/mxml/ASDocASSourceFileHandler.java   |  4 +-
 .../internal/driver/mxml/MXMLBackend.java       |  4 +-
 .../mxml/flexjs/MXMLFlexJSASDocBackend.java     |  8 ++--
 .../mxml/flexjs/MXMLFlexJSASDocDITABackend.java |  9 ++--
 .../driver/mxml/flexjs/MXMLFlexJSBackend.java   | 11 +++--
 .../mxml/flexjs/MXMLFlexJSSWCBackend.java       |  8 ++--
 .../driver/mxml/jsc/MXMLJSCJSBackend.java       |  8 ++--
 .../driver/mxml/jsc/MXMLJSCJSSWCBackend.java    |  8 ++--
 .../internal/projects/FlexJSASDocProject.java   |  6 ++-
 .../internal/projects/FlexJSProject.java        | 11 ++++-
 .../internal/targets/FlexJSSWCTarget.java       |  2 +-
 .../compiler/internal/targets/FlexJSTarget.java |  5 +--
 .../compiler/internal/targets/JSTarget.java     | 14 +++----
 .../externals/TestExternalsJSCompile.java       |  4 +-
 .../codegen/js/flexjs/TestFlexJSClass.java      |  2 +-
 .../codegen/js/flexjs/TestFlexJSEmitter.java    |  2 +-
 .../js/flexjs/TestFlexJSExpressions.java        |  2 +-
 .../js/flexjs/TestFlexJSGlobalClasses.java      |  4 +-
 .../js/flexjs/TestFlexJSGlobalFunctions.java    |  4 +-
 .../codegen/js/flexjs/TestFlexJSPackage.java    |  2 +-
 .../codegen/js/flexjs/TestFlexJSProject.java    |  4 +-
 .../codegen/js/flexjs/TestFlexJSStatements.java |  2 +-
 .../compiler/internal/test/FlexJSTestBase.java  |  2 +-
 .../flex/compiler/internal/test/TestBase.java   | 12 +++---
 45 files changed, 216 insertions(+), 211 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/flex-falcon/blob/22ea48e6/compiler-jx/src/main/java/org/apache/flex/compiler/clients/ASDOCJSC.java
----------------------------------------------------------------------
diff --git a/compiler-jx/src/main/java/org/apache/flex/compiler/clients/ASDOCJSC.java b/compiler-jx/src/main/java/org/apache/flex/compiler/clients/ASDOCJSC.java
index cafd5c6..a74c7d8 100644
--- a/compiler-jx/src/main/java/org/apache/flex/compiler/clients/ASDOCJSC.java
+++ b/compiler-jx/src/main/java/org/apache/flex/compiler/clients/ASDOCJSC.java
@@ -36,7 +36,6 @@ import org.apache.flex.compiler.driver.js.IJSApplication;
 import org.apache.flex.compiler.exceptions.ConfigurationException;
 import org.apache.flex.compiler.exceptions.ConfigurationException.IOError;
 import org.apache.flex.compiler.exceptions.ConfigurationException.MustSpecifyTarget;
-import org.apache.flex.compiler.internal.codegen.js.JSSharedData;
 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.ASDocConfiguration;
@@ -154,7 +153,7 @@ public class ASDOCJSC extends MXMLJSC
         final int exitCode = mxmlc.mainNoExit(args, problems, true);
 
         long endTime = System.nanoTime();
-        JSSharedData.instance.stdout((endTime - startTime) / 1e9 + " seconds");
+        System.out.println((endTime - startTime) / 1e9 + " seconds");
 
         return exitCode;
     }
@@ -162,7 +161,7 @@ public class ASDOCJSC extends MXMLJSC
     public ASDOCJSC(IBackend backend)
     {
         super(backend);
-        project = new FlexJSASDocProject(workspace);
+        project = new FlexJSASDocProject(workspace, backend);
     }
 
     /**
@@ -231,13 +230,13 @@ public class ASDOCJSC extends MXMLJSC
                         IASWriter writer;
                         if (cuType == ICompilationUnit.UnitType.AS_UNIT)
                         {
-                            writer = JSSharedData.backend.createWriter(project,
+                            writer = project.getBackend().createWriter(project,
                                     (List<ICompilerProblem>) errors, unit,
                                     false);
                         }
                         else
                         {
-                            writer = JSSharedData.backend.createMXMLWriter(
+                            writer = project.getBackend().createMXMLWriter(
                                     project, (List<ICompilerProblem>) errors,
                                     unit, false);
                         }
@@ -251,7 +250,7 @@ public class ASDOCJSC extends MXMLJSC
                     }
                 }
                 compilationSuccess = true;
-                IJSFlexJSASDocEmitter emitter = (IJSFlexJSASDocEmitter)JSSharedData.backend.createEmitter(null);
+                IJSFlexJSASDocEmitter emitter = (IJSFlexJSASDocEmitter) project.getBackend().createEmitter(null);
                 emitter.outputIndex(outputFolder, (FlexJSASDocProject)project);
                 emitter.outputClasses(outputFolder, (FlexJSASDocProject)project);
                 emitter.outputTags(outputFolder, (FlexJSASDocProject)project);
@@ -333,7 +332,7 @@ public class ASDOCJSC extends MXMLJSC
     {
         if (config.getOutput() == null)
         {
-            final String extension = "." + JSSharedData.OUTPUT_EXTENSION;
+            final String extension = "." + project.getBackend().getOutputExtension();
             return FilenameUtils.removeExtension(config.getTargetFile()).concat(
                     extension);
         }
@@ -372,7 +371,7 @@ public class ASDOCJSC extends MXMLJSC
             qname = cname[cname.length - 1];
         }
 
-        return new File(sdirPath + qname + "." + JSSharedData.OUTPUT_EXTENSION);
+        return new File(sdirPath + qname + "." + project.getBackend().getOutputExtension());
     }
 
     /**
@@ -393,7 +392,7 @@ public class ASDOCJSC extends MXMLJSC
         else
             return false;
 
-        target = JSSharedData.backend.createTarget(project,
+        target = project.getBackend().createTarget(project,
                 getTargetSettings(), null);
 
         return true;

http://git-wip-us.apache.org/repos/asf/flex-falcon/blob/22ea48e6/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 ac89544..0d97e06 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
@@ -43,7 +43,6 @@ import org.apache.flex.compiler.driver.js.IJSApplication;
 import org.apache.flex.compiler.exceptions.ConfigurationException;
 import org.apache.flex.compiler.exceptions.ConfigurationException.IOError;
 import org.apache.flex.compiler.exceptions.ConfigurationException.MustSpecifyTarget;
-import org.apache.flex.compiler.internal.codegen.js.JSSharedData;
 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;
@@ -156,7 +155,7 @@ public class COMPJSC extends MXMLJSC
         final int exitCode = mxmlc.mainNoExit(args, problems, true);
 
         long endTime = System.nanoTime();
-        JSSharedData.instance.stdout((endTime - startTime) / 1e9 + " seconds");
+        System.out.println((endTime - startTime) / 1e9 + " seconds");
 
         return exitCode;
     }
@@ -289,13 +288,13 @@ public class COMPJSC extends MXMLJSC
 	                        IASWriter writer;
 	                        if (cuType == ICompilationUnit.UnitType.AS_UNIT)
 	                        {
-	                            writer = JSSharedData.backend.createWriter(project,
+	                            writer = project.getBackend().createWriter(project,
 	                                    (List<ICompilerProblem>) errors, unit,
 	                                    false);
 	                        }
 	                        else
 	                        {
-	                            writer = JSSharedData.backend.createMXMLWriter(
+	                            writer = project.getBackend().createMXMLWriter(
 	                                    project, (List<ICompilerProblem>) errors,
 	                                    unit, false);
 	                        }
@@ -318,13 +317,13 @@ public class COMPJSC extends MXMLJSC
 	                        IASWriter writer;
 	                        if (cuType == ICompilationUnit.UnitType.AS_UNIT)
 	                        {
-	                            writer = JSSharedData.backend.createWriter(project,
+	                            writer = project.getBackend().createWriter(project,
 	                                    (List<ICompilerProblem>) errors, unit,
 	                                    false);
 	                        }
 	                        else
 	                        {
-	                            writer = JSSharedData.backend.createMXMLWriter(
+	                            writer = project.getBackend().createMXMLWriter(
 	                                    project, (List<ICompilerProblem>) errors,
 	                                    unit, false);
 	                        }
@@ -435,7 +434,7 @@ public class COMPJSC extends MXMLJSC
     {
         if (config.getOutput() == null)
         {
-            final String extension = "." + JSSharedData.OUTPUT_EXTENSION;
+            final String extension = "." + project.getBackend().getOutputExtension();
             return FilenameUtils.removeExtension(config.getTargetFile()).concat(
                     extension);
         }
@@ -474,7 +473,7 @@ public class COMPJSC extends MXMLJSC
             qname = cname[cname.length - 1];
         }
 
-        return new File(sdirPath + qname + "." + JSSharedData.OUTPUT_EXTENSION);
+        return new File(sdirPath + qname + "." + project.getBackend().getOutputExtension());
     }
 
     /**
@@ -495,7 +494,7 @@ public class COMPJSC extends MXMLJSC
         else
             return false;
 
-        target = JSSharedData.backend.createTarget(project,
+        target = project.getBackend().createTarget(project,
                 getTargetSettings(), null);
 
         return true;

http://git-wip-us.apache.org/repos/asf/flex-falcon/blob/22ea48e6/compiler-jx/src/main/java/org/apache/flex/compiler/clients/FlexJSToolGroup.java
----------------------------------------------------------------------
diff --git a/compiler-jx/src/main/java/org/apache/flex/compiler/clients/FlexJSToolGroup.java b/compiler-jx/src/main/java/org/apache/flex/compiler/clients/FlexJSToolGroup.java
index 5d5118b..dd9bc14 100644
--- a/compiler-jx/src/main/java/org/apache/flex/compiler/clients/FlexJSToolGroup.java
+++ b/compiler-jx/src/main/java/org/apache/flex/compiler/clients/FlexJSToolGroup.java
@@ -19,6 +19,7 @@
 
 package org.apache.flex.compiler.clients;
 
+import org.apache.flex.compiler.internal.driver.mxml.flexjs.MXMLFlexJSASDocDITABackend;
 import org.apache.flex.compiler.internal.driver.mxml.flexjs.MXMLFlexJSBackend;
 import org.apache.flex.compiler.internal.driver.mxml.flexjs.MXMLFlexJSSWCBackend;
 import org.apache.flex.tools.AbstractFlexToolGroup;
@@ -32,6 +33,7 @@ public class FlexJSToolGroup extends AbstractFlexToolGroup {
         super("FlexJS");
         addFlexTool(new COMPJSC(new MXMLFlexJSSWCBackend()));
         addFlexTool(new MXMLJSC(new MXMLFlexJSBackend()));
+        addFlexTool(new ASDOCJSC(new MXMLFlexJSASDocDITABackend()));
         addFlexTool(new EXTERNC());
     }
 

http://git-wip-us.apache.org/repos/asf/flex-falcon/blob/22ea48e6/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 ac40089..54b1bad 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
@@ -48,7 +48,6 @@ import org.apache.flex.compiler.exceptions.ConfigurationException;
 import org.apache.flex.compiler.exceptions.ConfigurationException.IOError;
 import org.apache.flex.compiler.exceptions.ConfigurationException.MustSpecifyTarget;
 import org.apache.flex.compiler.exceptions.ConfigurationException.OnlyOneSource;
-import org.apache.flex.compiler.internal.codegen.js.JSSharedData;
 import org.apache.flex.compiler.internal.config.FlashBuilderConfigurator;
 import org.apache.flex.compiler.internal.driver.as.ASBackend;
 import org.apache.flex.compiler.internal.driver.js.amd.AMDBackend;
@@ -234,7 +233,7 @@ public class MXMLJSC implements JSCompilerEntryPoint, ProblemQueryProvider,
         final int exitCode = mxmlc.mainNoExit(args, problems, true);
 
         long endTime = System.nanoTime();
-        JSSharedData.instance.stdout((endTime - startTime) / 1e9 + " seconds");
+        System.out.println((endTime - startTime) / 1e9 + " seconds");
 
         return exitCode;
     }
@@ -255,13 +254,10 @@ public class MXMLJSC implements JSCompilerEntryPoint, ProblemQueryProvider,
     
     public MXMLJSC(IBackend backend)
     {
-        JSSharedData.backend = backend;
         workspace = new Workspace();
         workspace.setASDocDelegate(new FlexJSASDocDelegate());
-        project = new FlexJSProject(workspace);
+        project = new FlexJSProject(workspace, backend);
         problems = new ProblemQuery(); // this gets replaced in configure().  Do we need it here?
-        JSSharedData.OUTPUT_EXTENSION = backend.getOutputExtension();
-        JSSharedData.workspace = workspace;
         asFileHandler = backend.getSourceFileHandlerInstance();
     }
 
@@ -276,7 +272,7 @@ public class MXMLJSC implements JSCompilerEntryPoint, ProblemQueryProvider,
         }
         catch (Exception e)
         {
-            JSSharedData.instance.stderr(e.toString());
+            System.err.println(e.toString());
         }
         finally
         {
@@ -310,10 +306,10 @@ public class MXMLJSC implements JSCompilerEntryPoint, ProblemQueryProvider,
             final boolean continueCompilation = configure(args);
 
             // ToDo (erikdebruin): use JSSharedData for globals ...
-            keepASDoc = ((JSGoogConfiguration) config).getKeepASDoc();
+//            keepASDoc = ((JSGoogConfiguration) config).getKeepASDoc();
 
-            if (outProblems != null && !config.isVerbose())
-                JSSharedData.STDOUT = JSSharedData.STDERR = null;
+/*            if (outProblems != null && !config.isVerbose())
+                JSSharedData.STDOUT = JSSharedData.STDERR = null;*/
 
             if (continueCompilation)
             {
@@ -338,9 +334,9 @@ public class MXMLJSC implements JSCompilerEntryPoint, ProblemQueryProvider,
         }
         catch (Exception e)
         {
-            if (outProblems == null)
-                JSSharedData.instance.stderr(e.getMessage());
-            else
+            if (outProblems == null) {
+                System.err.println(e.getMessage());
+            } else
             {
                 final ICompilerProblem unexpectedExceptionProblem = new UnexpectedExceptionProblem(
                         e);
@@ -400,7 +396,7 @@ public class MXMLJSC implements JSCompilerEntryPoint, ProblemQueryProvider,
                         return false;
                 }
 
-                jsPublisher = (IJSPublisher) JSSharedData.backend.createPublisher(
+                jsPublisher = (IJSPublisher) project.getBackend().createPublisher(
                         project, errors, config);
 
                 File outputFolder = jsPublisher.getOutputFolder();
@@ -431,12 +427,12 @@ public class MXMLJSC implements JSCompilerEntryPoint, ProblemQueryProvider,
 	                        IJSWriter writer;
 	                        if (cuType == ICompilationUnit.UnitType.AS_UNIT)
 	                        {
-	                            writer = (IJSWriter) JSSharedData.backend.createWriter(project,
+	                            writer = (IJSWriter) project.getBackend().createWriter(project,
 	                                    errors, unit, false);
 	                        }
 	                        else
 	                        {
-	                            writer = (IJSWriter) JSSharedData.backend.createMXMLWriter(
+	                            writer = (IJSWriter) project.getBackend().createMXMLWriter(
 	                                    project, errors, unit, false);
 	                        }
 	
@@ -544,7 +540,7 @@ public class MXMLJSC implements JSCompilerEntryPoint, ProblemQueryProvider,
     {
         if (config.getOutput() == null)
         {
-            final String extension = "." + JSSharedData.OUTPUT_EXTENSION;
+            final String extension = "." + project.getBackend().getOutputExtension();
             return FilenameUtils.removeExtension(config.getTargetFile()).concat(
                     extension);
         }
@@ -581,7 +577,7 @@ public class MXMLJSC implements JSCompilerEntryPoint, ProblemQueryProvider,
             qname = cname[cname.length - 1];
         }
 
-        return new File(sdirPath + qname + "." + JSSharedData.OUTPUT_EXTENSION);
+        return new File(sdirPath + qname + "." + project.getBackend().getOutputExtension());
     }
 
     /**
@@ -607,7 +603,7 @@ public class MXMLJSC implements JSCompilerEntryPoint, ProblemQueryProvider,
             qname = cname[cname.length - 1];
         }
 
-        return new File(sdirPath + qname + "." + JSSharedData.OUTPUT_EXTENSION + ".map");
+        return new File(sdirPath + qname + "." + project.getBackend().getOutputExtension() + ".map");
     }
 
     /**
@@ -669,7 +665,7 @@ public class MXMLJSC implements JSCompilerEntryPoint, ProblemQueryProvider,
         if (settings != null)
             project.setTargetSettings(settings);
 
-        target = JSSharedData.backend.createTarget(project,
+        target = project.getBackend().createTarget(project,
                 getTargetSettings(), null);
 
         return true;
@@ -691,7 +687,7 @@ public class MXMLJSC implements JSCompilerEntryPoint, ProblemQueryProvider,
      */
     protected Configurator createConfigurator()
     {
-        return JSSharedData.backend.createConfigurator();
+        return project.getBackend().createConfigurator();
     }
 
     /**
@@ -721,12 +717,12 @@ public class MXMLJSC implements JSCompilerEntryPoint, ProblemQueryProvider,
             }
 
             projectConfigurator.applyToProject(project);
-            problems = new ProblemQuery(
-                    projectConfigurator.getCompilerProblemSettings());
+            project.config = (JSGoogConfiguration) projectConfigurator.getConfiguration();
 
-            project.config = (JSGoogConfiguration)projectConfigurator.getConfiguration();
             config = projectConfigurator.getConfiguration();
             configBuffer = projectConfigurator.getConfigurationBuffer();
+
+            problems = new ProblemQuery(projectConfigurator.getCompilerProblemSettings());
             problems.addAll(projectConfigurator.getConfigurationProblems());
 
             if (configBuffer.getVar("version") != null) //$NON-NLS-1$

http://git-wip-us.apache.org/repos/asf/flex-falcon/blob/22ea48e6/compiler-jx/src/main/java/org/apache/flex/compiler/driver/IBackend.java
----------------------------------------------------------------------
diff --git a/compiler-jx/src/main/java/org/apache/flex/compiler/driver/IBackend.java b/compiler-jx/src/main/java/org/apache/flex/compiler/driver/IBackend.java
index 4ec1fa7..b0470c6 100644
--- a/compiler-jx/src/main/java/org/apache/flex/compiler/driver/IBackend.java
+++ b/compiler-jx/src/main/java/org/apache/flex/compiler/driver/IBackend.java
@@ -31,11 +31,10 @@ import org.apache.flex.compiler.codegen.mxml.IMXMLEmitter;
 import org.apache.flex.compiler.config.Configuration;
 import org.apache.flex.compiler.config.Configurator;
 import org.apache.flex.compiler.internal.codegen.as.ASFilterWriter;
+import org.apache.flex.compiler.internal.projects.FlexJSProject;
 import org.apache.flex.compiler.internal.projects.ISourceFileHandler;
 import org.apache.flex.compiler.internal.targets.JSTarget;
 import org.apache.flex.compiler.problems.ICompilerProblem;
-import org.apache.flex.compiler.projects.IASProject;
-import org.apache.flex.compiler.projects.ICompilerProject;
 import org.apache.flex.compiler.targets.ITarget;
 import org.apache.flex.compiler.targets.ITargetProgressMonitor;
 import org.apache.flex.compiler.targets.ITargetSettings;
@@ -74,13 +73,13 @@ public interface IBackend
      * Creates a javascript target that will be used to build the compiled
      * javascript source file.
      * 
-     * @param project The current {@link ICompilerProject}.
+     * @param project The current {@link FlexJSProject}.
      * @param settings The target's custom settings.
      * @param monitor The compilation monitor used during asynchronous parsing
      *        of {@link ICompilationUnit}s.
      * @return A new {@link JSTarget} used during compilation.
      */
-    ITarget createTarget(IASProject project, ITargetSettings settings,
+    ITarget createTarget(FlexJSProject project, ITargetSettings settings,
             ITargetProgressMonitor monitor);
 
     IDocEmitter createDocEmitter(IASEmitter emitter);
@@ -89,35 +88,35 @@ public interface IBackend
 
     IMXMLEmitter createMXMLEmitter(FilterWriter writer);
 
-    ASFilterWriter createWriterBuffer(IASProject project);
+    ASFilterWriter createWriterBuffer(FlexJSProject project);
 
-    IASWriter createWriter(IASProject project, List<ICompilerProblem> errors,
-            ICompilationUnit compilationUnit, boolean enableDebug);
+    IASWriter createWriter(FlexJSProject project, List<ICompilerProblem> errors,
+                           ICompilationUnit compilationUnit, boolean enableDebug);
 
-    IASWriter createMXMLWriter(IASProject project,
+    IASWriter createMXMLWriter(FlexJSProject project,
             List<ICompilerProblem> errors, ICompilationUnit compilationUnit,
             boolean enableDebug);
 
-    IASBlockWalker createWalker(IASProject project,
+    IASBlockWalker createWalker(FlexJSProject project,
             List<ICompilerProblem> errors, IASEmitter emitter);
 
-    IPublisher createPublisher(IASProject project,
+    IPublisher createPublisher(FlexJSProject project,
             List<ICompilerProblem> errors, Configuration config);
 
     /**
      * Creates an AST walker capable of traversing MXML AST and calling back to
      * the {@link IASBlockWalker} for ActionScript source code production.
      * <p>
-     * Use the {@link #createWalker(IASProject, List, ASFilterWriter)} method
+     * Use the {@link #createWalker(FlexJSProject, List, ASFilterWriter)} method
      * first and pass that instance into this method's <code>walker</code>
      * parameter.
      * 
-     * @param project The current {@link IASProject}.
+     * @param project The current {@link FlexJSProject}.
      * @param errors The current {@link ICompilerProblem} list.
      * @param emitter The current {@link IASEmitter} that is used for it's
      *        emitter and is available for callbacks to it's visit methods.
      */
-    IMXMLBlockWalker createMXMLWalker(IASProject project,
+    IMXMLBlockWalker createMXMLWalker(FlexJSProject project,
             List<ICompilerProblem> errors, IMXMLEmitter mxmlEmitter,
             IASEmitter asEmitter, IBlockWalker asBlockWalker);
 

http://git-wip-us.apache.org/repos/asf/flex-falcon/blob/22ea48e6/compiler-jx/src/main/java/org/apache/flex/compiler/internal/codegen/as/ASWriter.java
----------------------------------------------------------------------
diff --git a/compiler-jx/src/main/java/org/apache/flex/compiler/internal/codegen/as/ASWriter.java b/compiler-jx/src/main/java/org/apache/flex/compiler/internal/codegen/as/ASWriter.java
index 87634b7..ee65de6 100644
--- a/compiler-jx/src/main/java/org/apache/flex/compiler/internal/codegen/as/ASWriter.java
+++ b/compiler-jx/src/main/java/org/apache/flex/compiler/internal/codegen/as/ASWriter.java
@@ -27,15 +27,14 @@ import java.util.List;
 
 import org.apache.flex.compiler.codegen.as.IASEmitter;
 import org.apache.flex.compiler.codegen.as.IASWriter;
-import org.apache.flex.compiler.internal.codegen.js.JSSharedData;
+import org.apache.flex.compiler.internal.projects.FlexJSProject;
 import org.apache.flex.compiler.problems.ICompilerProblem;
-import org.apache.flex.compiler.projects.IASProject;
 import org.apache.flex.compiler.units.ICompilationUnit;
 import org.apache.flex.compiler.visitor.as.IASBlockWalker;
 
 public class ASWriter implements IASWriter
 {
-    private IASProject project;
+    private FlexJSProject project;
 
     private List<ICompilerProblem> problems;
 
@@ -50,8 +49,8 @@ public class ASWriter implements IASWriter
      * @param application the JSApplication model to be encoded
      * @param useCompression use ZLIB compression if true
      */
-    public ASWriter(IASProject project, List<ICompilerProblem> problems,
-            ICompilationUnit compilationUnit, boolean enableDebug)
+    public ASWriter(FlexJSProject project, List<ICompilerProblem> problems,
+                    ICompilationUnit compilationUnit, boolean enableDebug)
     {
         this.project = project;
         this.problems = problems;
@@ -68,11 +67,9 @@ public class ASWriter implements IASWriter
     @Override
     public void writeTo(OutputStream out)
     {
-        ASFilterWriter writer = JSSharedData.backend
-                .createWriterBuffer(project);
-        IASEmitter emitter = JSSharedData.backend.createEmitter(writer);
-        IASBlockWalker walker = JSSharedData.backend.createWalker(project,
-                problems, emitter);
+        ASFilterWriter writer = project.getBackend().createWriterBuffer(project);
+        IASEmitter emitter = project.getBackend().createEmitter(writer);
+        IASBlockWalker walker = project.getBackend().createWalker(project, problems, emitter);
 
         walker.visitCompilationUnit(compilationUnit);
 

http://git-wip-us.apache.org/repos/asf/flex-falcon/blob/22ea48e6/compiler-jx/src/main/java/org/apache/flex/compiler/internal/codegen/js/JSPublisher.java
----------------------------------------------------------------------
diff --git a/compiler-jx/src/main/java/org/apache/flex/compiler/internal/codegen/js/JSPublisher.java b/compiler-jx/src/main/java/org/apache/flex/compiler/internal/codegen/js/JSPublisher.java
index 65b7cb6..a3b11c6 100644
--- a/compiler-jx/src/main/java/org/apache/flex/compiler/internal/codegen/js/JSPublisher.java
+++ b/compiler-jx/src/main/java/org/apache/flex/compiler/internal/codegen/js/JSPublisher.java
@@ -26,15 +26,18 @@ import org.apache.commons.io.FilenameUtils;
 import org.apache.flex.compiler.clients.problems.ProblemQuery;
 import org.apache.flex.compiler.codegen.js.IJSPublisher;
 import org.apache.flex.compiler.config.Configuration;
+import org.apache.flex.compiler.internal.projects.FlexJSProject;
 
 public class JSPublisher implements IJSPublisher
 {
 
-    public JSPublisher(Configuration config)
+    public JSPublisher(FlexJSProject project, Configuration config)
     {
+        this.project = project;
         this.configuration = config;
     }
 
+    protected FlexJSProject project;
     protected File outputFolder;
     protected File outputParentFolder;
 
@@ -66,7 +69,7 @@ public class JSPublisher implements IJSPublisher
     {
         if (configuration.getOutput() == null)
         {
-            final String extension = "." + JSSharedData.OUTPUT_EXTENSION;
+            final String extension = "." + project.getBackend().getOutputExtension();
             return FilenameUtils.removeExtension(configuration.getTargetFile())
                     .concat(extension);
         }

http://git-wip-us.apache.org/repos/asf/flex-falcon/blob/22ea48e6/compiler-jx/src/main/java/org/apache/flex/compiler/internal/codegen/js/JSSharedData.java
----------------------------------------------------------------------
diff --git a/compiler-jx/src/main/java/org/apache/flex/compiler/internal/codegen/js/JSSharedData.java b/compiler-jx/src/main/java/org/apache/flex/compiler/internal/codegen/js/JSSharedData.java
index e430a03..39b84c1 100644
--- a/compiler-jx/src/main/java/org/apache/flex/compiler/internal/codegen/js/JSSharedData.java
+++ b/compiler-jx/src/main/java/org/apache/flex/compiler/internal/codegen/js/JSSharedData.java
@@ -37,32 +37,29 @@ public class JSSharedData
     public static final boolean OUTPUT_TIMESTAMPS = true;
     public static final String COMPILER_VERSION = "329449.1";
 
-    public final static JSSharedData instance = new JSSharedData();
+/*    public final static JSSharedData instance = new JSSharedData();
 
-    public static IBackend backend;
-    public static String OUTPUT_EXTENSION;
     public static Workspace workspace;
+*/
+/*    public static PrintStream STDOUT = System.out;
+    public static PrintStream STDERR = System.err;*/
 
-    public static PrintStream STDOUT = System.out;
-    public static PrintStream STDERR = System.err;
-
-    @SuppressWarnings("unused")
-    private Boolean m_verbose = false;
+/*    private Boolean m_verbose = false;
     private final ReadWriteLock m_verboseLock = new ReentrantReadWriteLock();
 
     private Object m_codeGenMonitor = new Object();
     private long m_codeGenCounter = 0;
     private final ReadWriteLock m_codeGenCounterLock = new ReentrantReadWriteLock();
-
-    public static String now()
+*/
+/*    public static String now()
     {
         final String DATE_FORMAT_NOW = "yyyy-MM-dd HH:mm:ss";
         Calendar cal = Calendar.getInstance();
         SimpleDateFormat sdf = new SimpleDateFormat(DATE_FORMAT_NOW);
         return sdf.format(cal.getTime());
     }
-
-    public void stdout(String s)
+*/
+/*    public void stdout(String s)
     {
         if (STDOUT != null)
         {
@@ -80,9 +77,9 @@ public class JSSharedData
             STDERR.println(s);
             m_verboseLock.writeLock().unlock();
         }
-    }
+    }*/
 
-    public void beginCodeGen()
+/*    public void beginCodeGen()
     {
         m_codeGenCounterLock.writeLock().lock();
         m_codeGenCounter++;
@@ -102,15 +99,6 @@ public class JSSharedData
                 m_codeGenMonitor.notifyAll();
             }
         }
-    }
+    }*/
 
-    public static String getTimeStampString()
-    {
-        if (JSSharedData.OUTPUT_TIMESTAMPS)
-            return "CROSS-COMPILED BY " + JSSharedData.COMPILER_NAME + " ("
-                    + JSSharedData.COMPILER_VERSION + ") ON "
-                    + JSSharedData.now() + "\n";
-        else
-            return "CROSS-COMPILED BY " + JSSharedData.COMPILER_NAME + "\n";
-    }
 }

http://git-wip-us.apache.org/repos/asf/flex-falcon/blob/22ea48e6/compiler-jx/src/main/java/org/apache/flex/compiler/internal/codegen/js/JSWriter.java
----------------------------------------------------------------------
diff --git a/compiler-jx/src/main/java/org/apache/flex/compiler/internal/codegen/js/JSWriter.java b/compiler-jx/src/main/java/org/apache/flex/compiler/internal/codegen/js/JSWriter.java
index e984eda..44c5f94 100644
--- a/compiler-jx/src/main/java/org/apache/flex/compiler/internal/codegen/js/JSWriter.java
+++ b/compiler-jx/src/main/java/org/apache/flex/compiler/internal/codegen/js/JSWriter.java
@@ -32,6 +32,7 @@ import org.apache.flex.compiler.codegen.ISourceMapEmitter;
 import org.apache.flex.compiler.codegen.js.IJSEmitter;
 import org.apache.flex.compiler.codegen.js.IJSWriter;
 import org.apache.flex.compiler.driver.js.IJSBackend;
+import org.apache.flex.compiler.internal.projects.FlexJSProject;
 import org.apache.flex.compiler.problems.ICompilerProblem;
 import org.apache.flex.compiler.projects.IASProject;
 import org.apache.flex.compiler.units.ICompilationUnit;
@@ -39,7 +40,7 @@ import org.apache.flex.compiler.visitor.as.IASBlockWalker;
 
 public class JSWriter implements IJSWriter
 {
-    protected IASProject project;
+    protected FlexJSProject project;
 
     protected List<ICompilerProblem> problems;
 
@@ -54,7 +55,7 @@ public class JSWriter implements IJSWriter
      * @param application the JSApplication model to be encoded
      * @param useCompression use ZLIB compression if true
      */
-    public JSWriter(IASProject project, List<ICompilerProblem> problems,
+    public JSWriter(FlexJSProject project, List<ICompilerProblem> problems,
             ICompilationUnit compilationUnit, boolean enableDebug)
     {
         this.project = project;
@@ -76,18 +77,17 @@ public class JSWriter implements IJSWriter
     }
 
     @Override
-    public int writeTo(File out) throws FileNotFoundException, IOException
+    public int writeTo(File out) throws IOException
     {
         return 0;
     }
 
     public void writeTo(OutputStream jsOut, File sourceMapOut)
     {
-        IJSBackend backend = (IJSBackend) JSSharedData.backend;
+        IJSBackend backend = (IJSBackend) project.getBackend();
         JSFilterWriter writer = (JSFilterWriter) backend.createWriterBuffer(project);
         IJSEmitter emitter = (IJSEmitter) backend.createEmitter(writer);
-        IASBlockWalker walker = backend.createWalker(project,
-                problems, emitter);
+        IASBlockWalker walker = backend.createWalker(project, problems, emitter);
 
         walker.visitCompilationUnit(compilationUnit);
 

http://git-wip-us.apache.org/repos/asf/flex-falcon/blob/22ea48e6/compiler-jx/src/main/java/org/apache/flex/compiler/internal/codegen/js/goog/JSGoogDocEmitter.java
----------------------------------------------------------------------
diff --git a/compiler-jx/src/main/java/org/apache/flex/compiler/internal/codegen/js/goog/JSGoogDocEmitter.java b/compiler-jx/src/main/java/org/apache/flex/compiler/internal/codegen/js/goog/JSGoogDocEmitter.java
index 0fa8bad..cd57e7a 100644
--- a/compiler-jx/src/main/java/org/apache/flex/compiler/internal/codegen/js/goog/JSGoogDocEmitter.java
+++ b/compiler-jx/src/main/java/org/apache/flex/compiler/internal/codegen/js/goog/JSGoogDocEmitter.java
@@ -52,6 +52,9 @@ import org.apache.flex.compiler.tree.as.IScopedNode;
 import org.apache.flex.compiler.tree.as.IVariableNode;
 import org.apache.flex.compiler.tree.mxml.IMXMLDocumentNode;
 
+import java.text.SimpleDateFormat;
+import java.util.Calendar;
+
 public class JSGoogDocEmitter extends JSDocEmitter implements IJSGoogDocEmitter
 {
 
@@ -392,7 +395,7 @@ public class JSGoogDocEmitter extends JSDocEmitter implements IJSGoogDocEmitter
         begin();
         write(ASEmitterTokens.SPACE);
         writeToken(JSGoogDocEmitterTokens.STAR);
-        write(JSSharedData.getTimeStampString());
+        write(getTimeStampString());
         end();
     }
 
@@ -527,4 +530,21 @@ public class JSGoogDocEmitter extends JSDocEmitter implements IJSGoogDocEmitter
         return name;
     }
 
+    public static String now() {
+        final String DATE_FORMAT_NOW = "yyyy-MM-dd HH:mm:ss";
+        Calendar cal = Calendar.getInstance();
+        SimpleDateFormat sdf = new SimpleDateFormat(DATE_FORMAT_NOW);
+        return sdf.format(cal.getTime());
+    }
+
+    public static String getTimeStampString() {
+        if (JSSharedData.OUTPUT_TIMESTAMPS) {
+            return "CROSS-COMPILED BY " + JSSharedData.COMPILER_NAME + " ("
+                    + JSSharedData.COMPILER_VERSION + ") ON "
+                    + now() + "\n";
+        } else {
+            return "CROSS-COMPILED BY " + JSSharedData.COMPILER_NAME + "\n";
+        }
+    }
+
 }

http://git-wip-us.apache.org/repos/asf/flex-falcon/blob/22ea48e6/compiler-jx/src/main/java/org/apache/flex/compiler/internal/codegen/js/goog/JSGoogPublisher.java
----------------------------------------------------------------------
diff --git a/compiler-jx/src/main/java/org/apache/flex/compiler/internal/codegen/js/goog/JSGoogPublisher.java b/compiler-jx/src/main/java/org/apache/flex/compiler/internal/codegen/js/goog/JSGoogPublisher.java
index 33f2262..23c5fa1 100644
--- a/compiler-jx/src/main/java/org/apache/flex/compiler/internal/codegen/js/goog/JSGoogPublisher.java
+++ b/compiler-jx/src/main/java/org/apache/flex/compiler/internal/codegen/js/goog/JSGoogPublisher.java
@@ -37,8 +37,8 @@ import org.apache.flex.compiler.clients.problems.ProblemQuery;
 import org.apache.flex.compiler.codegen.js.IJSPublisher;
 import org.apache.flex.compiler.config.Configuration;
 import org.apache.flex.compiler.internal.codegen.js.JSPublisher;
-import org.apache.flex.compiler.internal.codegen.js.JSSharedData;
 import org.apache.flex.compiler.internal.driver.js.goog.JSGoogConfiguration;
+import org.apache.flex.compiler.internal.projects.FlexJSProject;
 import org.apache.flex.compiler.utils.JSClosureCompilerUtil;
 
 import com.google.javascript.jscomp.CheckLevel;
@@ -58,9 +58,9 @@ public class JSGoogPublisher extends JSPublisher implements IJSPublisher
 
     protected JSGoogConfiguration googConfiguration;
 
-    public JSGoogPublisher(Configuration config)
+    public JSGoogPublisher(FlexJSProject project, Configuration config)
     {
-        super(config);
+        super(project, config);
         googConfiguration = (JSGoogConfiguration) config;
     }
 
@@ -81,7 +81,7 @@ public class JSGoogPublisher extends JSPublisher implements IJSPublisher
         final String intermediateDirPath = getOutputFolder().getPath();
 
         final String projectName = FilenameUtils.getBaseName(configuration.getTargetFile());
-        final String outputFileName = projectName + "." + JSSharedData.OUTPUT_EXTENSION;
+        final String outputFileName = projectName + "." + project.getBackend().getOutputExtension();
 
         File releaseDir = new File(
                 new File(intermediateDirPath).getParentFile(),

http://git-wip-us.apache.org/repos/asf/flex-falcon/blob/22ea48e6/compiler-jx/src/main/java/org/apache/flex/compiler/internal/codegen/js/jsc/JSCPublisher.java
----------------------------------------------------------------------
diff --git a/compiler-jx/src/main/java/org/apache/flex/compiler/internal/codegen/js/jsc/JSCPublisher.java b/compiler-jx/src/main/java/org/apache/flex/compiler/internal/codegen/js/jsc/JSCPublisher.java
index 3399269..71ba5ac 100644
--- a/compiler-jx/src/main/java/org/apache/flex/compiler/internal/codegen/js/jsc/JSCPublisher.java
+++ b/compiler-jx/src/main/java/org/apache/flex/compiler/internal/codegen/js/jsc/JSCPublisher.java
@@ -32,9 +32,9 @@ import org.apache.flex.compiler.tree.mxml.IMXMLDocumentNode;
 
 public class JSCPublisher extends MXMLFlexJSPublisher
 {
-    public JSCPublisher(Configuration config, FlexJSProject project)
+    public JSCPublisher(FlexJSProject project, Configuration config)
     {
-        super(config, project);
+        super(project, config);
         this.project = project;
     }
 

http://git-wip-us.apache.org/repos/asf/flex-falcon/blob/22ea48e6/compiler-jx/src/main/java/org/apache/flex/compiler/internal/codegen/js/node/NodePublisher.java
----------------------------------------------------------------------
diff --git a/compiler-jx/src/main/java/org/apache/flex/compiler/internal/codegen/js/node/NodePublisher.java b/compiler-jx/src/main/java/org/apache/flex/compiler/internal/codegen/js/node/NodePublisher.java
index d4b26a8..4d0747c 100644
--- a/compiler-jx/src/main/java/org/apache/flex/compiler/internal/codegen/js/node/NodePublisher.java
+++ b/compiler-jx/src/main/java/org/apache/flex/compiler/internal/codegen/js/node/NodePublisher.java
@@ -31,7 +31,7 @@ public class NodePublisher extends JSCPublisher
 {
     public NodePublisher(Configuration config, FlexJSProject project)
     {
-        super(config, project);
+        super(project, config);
     }
 
     @Override

http://git-wip-us.apache.org/repos/asf/flex-falcon/blob/22ea48e6/compiler-jx/src/main/java/org/apache/flex/compiler/internal/codegen/mxml/MXMLWriter.java
----------------------------------------------------------------------
diff --git a/compiler-jx/src/main/java/org/apache/flex/compiler/internal/codegen/mxml/MXMLWriter.java b/compiler-jx/src/main/java/org/apache/flex/compiler/internal/codegen/mxml/MXMLWriter.java
index 454904d..84d9421 100644
--- a/compiler-jx/src/main/java/org/apache/flex/compiler/internal/codegen/mxml/MXMLWriter.java
+++ b/compiler-jx/src/main/java/org/apache/flex/compiler/internal/codegen/mxml/MXMLWriter.java
@@ -28,10 +28,9 @@ import org.apache.flex.compiler.codegen.js.IJSEmitter;
 import org.apache.flex.compiler.codegen.mxml.IMXMLEmitter;
 import org.apache.flex.compiler.driver.js.IJSBackend;
 import org.apache.flex.compiler.internal.codegen.js.JSFilterWriter;
-import org.apache.flex.compiler.internal.codegen.js.JSSharedData;
 import org.apache.flex.compiler.internal.codegen.js.JSWriter;
+import org.apache.flex.compiler.internal.projects.FlexJSProject;
 import org.apache.flex.compiler.problems.ICompilerProblem;
-import org.apache.flex.compiler.projects.IASProject;
 import org.apache.flex.compiler.units.ICompilationUnit;
 import org.apache.flex.compiler.visitor.as.IASBlockWalker;
 import org.apache.flex.compiler.visitor.mxml.IMXMLBlockWalker;
@@ -44,8 +43,8 @@ public class MXMLWriter extends JSWriter
      * @param application the JSApplication model to be encoded
      * @param useCompression use ZLIB compression if true
      */
-    public MXMLWriter(IASProject project, List<ICompilerProblem> problems,
-            ICompilationUnit compilationUnit, boolean enableDebug)
+    public MXMLWriter(FlexJSProject project, List<ICompilerProblem> problems,
+                      ICompilationUnit compilationUnit, boolean enableDebug)
     {
         super(project, problems, compilationUnit, enableDebug);
     }
@@ -53,7 +52,7 @@ public class MXMLWriter extends JSWriter
     @Override
     public void writeTo(OutputStream out, File sourceMapOut)
     {
-        IJSBackend backend = (IJSBackend) JSSharedData.backend;
+        IJSBackend backend = (IJSBackend) project.getBackend();
         JSFilterWriter writer = (JSFilterWriter) backend.createWriterBuffer(project);
 
         IJSEmitter asEmitter = (IJSEmitter) backend.createEmitter(writer);

http://git-wip-us.apache.org/repos/asf/flex-falcon/blob/22ea48e6/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 6656c1e..29943d9 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
@@ -30,7 +30,6 @@ import org.apache.flex.compiler.clients.problems.ProblemQuery;
 import org.apache.flex.compiler.codegen.js.IJSPublisher;
 import org.apache.flex.compiler.config.Configuration;
 import org.apache.flex.compiler.css.ICSSPropertyValue;
-import org.apache.flex.compiler.internal.codegen.js.JSSharedData;
 import org.apache.flex.compiler.internal.codegen.js.goog.JSGoogEmitterTokens;
 import org.apache.flex.compiler.internal.codegen.js.goog.JSGoogPublisher;
 import org.apache.flex.compiler.internal.codegen.js.goog.JarSourceFile;
@@ -77,9 +76,9 @@ public class MXMLFlexJSPublisher extends JSGoogPublisher implements IJSPublisher
         }
     }
 
-    public MXMLFlexJSPublisher(Configuration config, FlexJSProject project)
+    public MXMLFlexJSPublisher(FlexJSProject project, Configuration config)
     {
-        super(config);
+        super(project, config);
         this.isMarmotinniRun = googConfiguration.getMarmotinni() != null;
         this.outputPathParameter = configuration.getOutput();
         this.useStrictPublishing = googConfiguration.getStrictPublish();
@@ -148,7 +147,7 @@ public class MXMLFlexJSPublisher extends JSGoogPublisher implements IJSPublisher
         final File intermediateDir = outputFolder;
 
         final String projectName = FilenameUtils.getBaseName(configuration.getTargetFile());
-        final String outputFileName = projectName + "." + JSSharedData.OUTPUT_EXTENSION;
+        final String outputFileName = projectName + "." + project.getBackend().getOutputExtension();
 
         // The "release" is the "js-release" directory.
         File releaseDir = new File(outputParentFolder, FLEXJS_RELEASE_DIR_NAME);

http://git-wip-us.apache.org/repos/asf/flex-falcon/blob/22ea48e6/compiler-jx/src/main/java/org/apache/flex/compiler/internal/driver/as/ASBackend.java
----------------------------------------------------------------------
diff --git a/compiler-jx/src/main/java/org/apache/flex/compiler/internal/driver/as/ASBackend.java b/compiler-jx/src/main/java/org/apache/flex/compiler/internal/driver/as/ASBackend.java
index 647efa5..cfc1bb4 100644
--- a/compiler-jx/src/main/java/org/apache/flex/compiler/internal/driver/as/ASBackend.java
+++ b/compiler-jx/src/main/java/org/apache/flex/compiler/internal/driver/as/ASBackend.java
@@ -38,11 +38,11 @@ import org.apache.flex.compiler.internal.codegen.as.ASEmitter;
 import org.apache.flex.compiler.internal.codegen.as.ASFilterWriter;
 import org.apache.flex.compiler.internal.codegen.as.ASWriter;
 import org.apache.flex.compiler.internal.codegen.mxml.MXMLEmitter;
+import org.apache.flex.compiler.internal.projects.FlexJSProject;
 import org.apache.flex.compiler.internal.projects.ISourceFileHandler;
 import org.apache.flex.compiler.internal.visitor.as.ASNodeSwitch;
 import org.apache.flex.compiler.internal.visitor.as.BeforeAfterStrategy;
 import org.apache.flex.compiler.problems.ICompilerProblem;
-import org.apache.flex.compiler.projects.IASProject;
 import org.apache.flex.compiler.targets.ITarget;
 import org.apache.flex.compiler.targets.ITargetProgressMonitor;
 import org.apache.flex.compiler.targets.ITargetSettings;
@@ -79,14 +79,14 @@ public class ASBackend implements IBackend
     }
 
     @Override
-    public ITarget createTarget(IASProject project, ITargetSettings settings,
-            ITargetProgressMonitor monitor)
+    public ITarget createTarget(FlexJSProject project, ITargetSettings settings,
+                                ITargetProgressMonitor monitor)
     {
         throw new UnsupportedOperationException();
     }
 
     @Override
-    public IASBlockWalker createWalker(IASProject project,
+    public IASBlockWalker createWalker(FlexJSProject project,
             List<ICompilerProblem> errors, IASEmitter emitter)
     {
         ASBlockWalker walker = new ASBlockWalker(errors, project, emitter);
@@ -101,7 +101,7 @@ public class ASBackend implements IBackend
     }
 
     @Override
-    public IMXMLBlockWalker createMXMLWalker(IASProject project,
+    public IMXMLBlockWalker createMXMLWalker(FlexJSProject project,
             List<ICompilerProblem> errors, IMXMLEmitter mxmlEmitter,
             IASEmitter asEmitter, IBlockWalker asBlockWalker)
     {
@@ -109,7 +109,7 @@ public class ASBackend implements IBackend
     }
 
     @Override
-    public ASFilterWriter createWriterBuffer(IASProject project)
+    public ASFilterWriter createWriterBuffer(FlexJSProject project)
     {
         StringWriter out = new StringWriter();
         ASFilterWriter writer = new ASFilterWriter(out);
@@ -129,7 +129,7 @@ public class ASBackend implements IBackend
     }
 
     @Override
-    public IASWriter createWriter(IASProject project,
+    public IASWriter createWriter(FlexJSProject project,
             List<ICompilerProblem> problems, ICompilationUnit compilationUnit,
             boolean enableDebug)
     {
@@ -137,7 +137,7 @@ public class ASBackend implements IBackend
     }
 
     @Override
-    public IASWriter createMXMLWriter(IASProject project,
+    public IASWriter createMXMLWriter(FlexJSProject project,
             List<ICompilerProblem> problems, ICompilationUnit compilationUnit,
             boolean enableDebug)
     {
@@ -151,7 +151,7 @@ public class ASBackend implements IBackend
     }
 
     @Override
-    public IPublisher createPublisher(IASProject project,
+    public IPublisher createPublisher(FlexJSProject project,
             List<ICompilerProblem> errors, Configuration config)
     {
         return null;

http://git-wip-us.apache.org/repos/asf/flex-falcon/blob/22ea48e6/compiler-jx/src/main/java/org/apache/flex/compiler/internal/driver/js/JSBackend.java
----------------------------------------------------------------------
diff --git a/compiler-jx/src/main/java/org/apache/flex/compiler/internal/driver/js/JSBackend.java b/compiler-jx/src/main/java/org/apache/flex/compiler/internal/driver/js/JSBackend.java
index a8b7737..9d6eb66 100644
--- a/compiler-jx/src/main/java/org/apache/flex/compiler/internal/driver/js/JSBackend.java
+++ b/compiler-jx/src/main/java/org/apache/flex/compiler/internal/driver/js/JSBackend.java
@@ -44,12 +44,12 @@ import org.apache.flex.compiler.internal.codegen.js.JSFilterWriter;
 import org.apache.flex.compiler.internal.codegen.js.JSPublisher;
 import org.apache.flex.compiler.internal.codegen.js.JSSourceMapEmitter;
 import org.apache.flex.compiler.internal.codegen.js.JSWriter;
+import org.apache.flex.compiler.internal.projects.FlexJSProject;
 import org.apache.flex.compiler.internal.projects.ISourceFileHandler;
 import org.apache.flex.compiler.internal.targets.JSTarget;
 import org.apache.flex.compiler.internal.visitor.as.ASNodeSwitch;
 import org.apache.flex.compiler.internal.visitor.as.BeforeAfterStrategy;
 import org.apache.flex.compiler.problems.ICompilerProblem;
-import org.apache.flex.compiler.projects.IASProject;
 import org.apache.flex.compiler.targets.ITargetProgressMonitor;
 import org.apache.flex.compiler.targets.ITargetSettings;
 import org.apache.flex.compiler.tree.as.IFileNode;
@@ -85,14 +85,14 @@ public class JSBackend implements IJSBackend
     }
 
     @Override
-    public JSTarget createTarget(IASProject project, ITargetSettings settings,
-            ITargetProgressMonitor monitor)
+    public JSTarget createTarget(FlexJSProject project, ITargetSettings settings,
+                                 ITargetProgressMonitor monitor)
     {
         return new JSTarget(project, settings, monitor);
     }
 
     @Override
-    public IASBlockWalker createWalker(IASProject project,
+    public IASBlockWalker createWalker(FlexJSProject project,
             List<ICompilerProblem> errors, IASEmitter emitter)
     {
         ASBlockWalker walker = new ASBlockWalker(errors, project, emitter);
@@ -107,7 +107,7 @@ public class JSBackend implements IJSBackend
     }
 
     @Override
-    public IMXMLBlockWalker createMXMLWalker(IASProject project,
+    public IMXMLBlockWalker createMXMLWalker(FlexJSProject project,
             List<ICompilerProblem> errors, IMXMLEmitter mxmlEmitter,
             IASEmitter asEmitter, IBlockWalker asBlockWalker)
     {
@@ -115,7 +115,7 @@ public class JSBackend implements IJSBackend
     }
 
     @Override
-    public JSFilterWriter createWriterBuffer(IASProject project)
+    public JSFilterWriter createWriterBuffer(FlexJSProject project)
     {
         StringWriter out = new StringWriter();
         JSFilterWriter writer = new JSFilterWriter(out);
@@ -123,7 +123,7 @@ public class JSBackend implements IJSBackend
     }
 
     @Override
-    public IJSWriter createWriter(IASProject project,
+    public IJSWriter createWriter(FlexJSProject project,
             List<ICompilerProblem> problems, ICompilationUnit compilationUnit,
             boolean enableDebug)
     {
@@ -131,7 +131,7 @@ public class JSBackend implements IJSBackend
     }
 
     @Override
-    public IJSWriter createMXMLWriter(IASProject project,
+    public IJSWriter createMXMLWriter(FlexJSProject project,
             List<ICompilerProblem> problems, ICompilationUnit compilationUnit,
             boolean enableDebug)
     {
@@ -163,9 +163,9 @@ public class JSBackend implements IJSBackend
     }
 
     @Override
-    public IPublisher createPublisher(IASProject project,
+    public IPublisher createPublisher(FlexJSProject project,
             List<ICompilerProblem> errors, Configuration config)
     {
-        return new JSPublisher(config);
+        return new JSPublisher(project, config);
     }
 }

http://git-wip-us.apache.org/repos/asf/flex-falcon/blob/22ea48e6/compiler-jx/src/main/java/org/apache/flex/compiler/internal/driver/js/flexjs/FlexJSBackend.java
----------------------------------------------------------------------
diff --git a/compiler-jx/src/main/java/org/apache/flex/compiler/internal/driver/js/flexjs/FlexJSBackend.java b/compiler-jx/src/main/java/org/apache/flex/compiler/internal/driver/js/flexjs/FlexJSBackend.java
index cccbe71..68a1895 100644
--- a/compiler-jx/src/main/java/org/apache/flex/compiler/internal/driver/js/flexjs/FlexJSBackend.java
+++ b/compiler-jx/src/main/java/org/apache/flex/compiler/internal/driver/js/flexjs/FlexJSBackend.java
@@ -24,9 +24,9 @@ import java.io.FilterWriter;
 import org.apache.flex.compiler.codegen.js.IJSEmitter;
 import org.apache.flex.compiler.internal.codegen.js.flexjs.JSFlexJSEmitter;
 import org.apache.flex.compiler.internal.driver.js.goog.GoogBackend;
+import org.apache.flex.compiler.internal.projects.FlexJSProject;
 import org.apache.flex.compiler.internal.targets.FlexJSTarget;
 import org.apache.flex.compiler.internal.targets.JSTarget;
-import org.apache.flex.compiler.projects.IASProject;
 import org.apache.flex.compiler.targets.ITargetProgressMonitor;
 import org.apache.flex.compiler.targets.ITargetSettings;
 
@@ -45,8 +45,8 @@ public class FlexJSBackend extends GoogBackend
     }
 
     @Override
-    public JSTarget createTarget(IASProject project, ITargetSettings settings,
-            ITargetProgressMonitor monitor)
+    public JSTarget createTarget(FlexJSProject project, ITargetSettings settings,
+                                 ITargetProgressMonitor monitor)
     {
         return new FlexJSTarget(project, settings, monitor);
     }

http://git-wip-us.apache.org/repos/asf/flex-falcon/blob/22ea48e6/compiler-jx/src/main/java/org/apache/flex/compiler/internal/driver/js/goog/GoogBackend.java
----------------------------------------------------------------------
diff --git a/compiler-jx/src/main/java/org/apache/flex/compiler/internal/driver/js/goog/GoogBackend.java b/compiler-jx/src/main/java/org/apache/flex/compiler/internal/driver/js/goog/GoogBackend.java
index af8129a..cd41ee5 100644
--- a/compiler-jx/src/main/java/org/apache/flex/compiler/internal/driver/js/goog/GoogBackend.java
+++ b/compiler-jx/src/main/java/org/apache/flex/compiler/internal/driver/js/goog/GoogBackend.java
@@ -32,8 +32,8 @@ import org.apache.flex.compiler.internal.codegen.js.goog.JSGoogDocEmitter;
 import org.apache.flex.compiler.internal.codegen.js.goog.JSGoogEmitter;
 import org.apache.flex.compiler.internal.codegen.js.goog.JSGoogPublisher;
 import org.apache.flex.compiler.internal.driver.js.JSBackend;
+import org.apache.flex.compiler.internal.projects.FlexJSProject;
 import org.apache.flex.compiler.problems.ICompilerProblem;
-import org.apache.flex.compiler.projects.IASProject;
 
 /**
  * A concrete implementation of the {@link IBackend} API for the 'goog' code
@@ -65,9 +65,9 @@ public class GoogBackend extends JSBackend
     }
 
     @Override
-    public JSGoogPublisher createPublisher(IASProject project,
+    public JSGoogPublisher createPublisher(FlexJSProject project,
             List<ICompilerProblem> errors, Configuration config)
     {
-        return new JSGoogPublisher(config);
+        return new JSGoogPublisher(project, config);
     }
 }

http://git-wip-us.apache.org/repos/asf/flex-falcon/blob/22ea48e6/compiler-jx/src/main/java/org/apache/flex/compiler/internal/driver/js/jsc/JSCBackend.java
----------------------------------------------------------------------
diff --git a/compiler-jx/src/main/java/org/apache/flex/compiler/internal/driver/js/jsc/JSCBackend.java b/compiler-jx/src/main/java/org/apache/flex/compiler/internal/driver/js/jsc/JSCBackend.java
index 10d049f..fa60ef3 100644
--- a/compiler-jx/src/main/java/org/apache/flex/compiler/internal/driver/js/jsc/JSCBackend.java
+++ b/compiler-jx/src/main/java/org/apache/flex/compiler/internal/driver/js/jsc/JSCBackend.java
@@ -28,7 +28,6 @@ import org.apache.flex.compiler.internal.codegen.mxml.flexjs.MXMLFlexJSPublisher
 import org.apache.flex.compiler.internal.driver.mxml.jsc.MXMLJSCJSBackend;
 import org.apache.flex.compiler.internal.projects.FlexJSProject;
 import org.apache.flex.compiler.problems.ICompilerProblem;
-import org.apache.flex.compiler.projects.IASProject;
 
 /**
  * A concrete implementation of the {@link IBackend} API for the 'jsc' code
@@ -39,9 +38,9 @@ import org.apache.flex.compiler.projects.IASProject;
 public class JSCBackend extends MXMLJSCJSBackend
 {
     @Override
-    public MXMLFlexJSPublisher createPublisher(IASProject project,
+    public MXMLFlexJSPublisher createPublisher(FlexJSProject project,
             List<ICompilerProblem> errors, Configuration config)
     {
-        return new JSCPublisher(config, (FlexJSProject) project);
+        return new JSCPublisher(project, config);
     }
 }

http://git-wip-us.apache.org/repos/asf/flex-falcon/blob/22ea48e6/compiler-jx/src/main/java/org/apache/flex/compiler/internal/driver/js/node/NodeBackend.java
----------------------------------------------------------------------
diff --git a/compiler-jx/src/main/java/org/apache/flex/compiler/internal/driver/js/node/NodeBackend.java b/compiler-jx/src/main/java/org/apache/flex/compiler/internal/driver/js/node/NodeBackend.java
index e4d0503..1ba3f3e 100644
--- a/compiler-jx/src/main/java/org/apache/flex/compiler/internal/driver/js/node/NodeBackend.java
+++ b/compiler-jx/src/main/java/org/apache/flex/compiler/internal/driver/js/node/NodeBackend.java
@@ -28,7 +28,6 @@ import org.apache.flex.compiler.internal.codegen.mxml.flexjs.MXMLFlexJSPublisher
 import org.apache.flex.compiler.internal.driver.js.jsc.JSCBackend;
 import org.apache.flex.compiler.internal.projects.FlexJSProject;
 import org.apache.flex.compiler.problems.ICompilerProblem;
-import org.apache.flex.compiler.projects.IASProject;
 
 /**
  * A concrete implementation of the {@link IBackend} API for the 'node' code
@@ -39,9 +38,9 @@ import org.apache.flex.compiler.projects.IASProject;
 public class NodeBackend extends JSCBackend
 {
     @Override
-    public MXMLFlexJSPublisher createPublisher(IASProject project,
+    public MXMLFlexJSPublisher createPublisher(FlexJSProject project,
                                                List<ICompilerProblem> errors, Configuration config)
     {
-        return new NodePublisher(config, (FlexJSProject) project);
+        return new NodePublisher(config, project);
     }
 }

http://git-wip-us.apache.org/repos/asf/flex-falcon/blob/22ea48e6/compiler-jx/src/main/java/org/apache/flex/compiler/internal/driver/mxml/ASDocASSourceFileHandler.java
----------------------------------------------------------------------
diff --git a/compiler-jx/src/main/java/org/apache/flex/compiler/internal/driver/mxml/ASDocASSourceFileHandler.java b/compiler-jx/src/main/java/org/apache/flex/compiler/internal/driver/mxml/ASDocASSourceFileHandler.java
index 8b1aa7c..c90eccf 100644
--- a/compiler-jx/src/main/java/org/apache/flex/compiler/internal/driver/mxml/ASDocASSourceFileHandler.java
+++ b/compiler-jx/src/main/java/org/apache/flex/compiler/internal/driver/mxml/ASDocASSourceFileHandler.java
@@ -72,8 +72,8 @@ public final class ASDocASSourceFileHandler implements ISourceFileHandler
     public boolean needCompilationUnit(CompilerProject project, String path,
             String qname, String locale)
     {
-    	FlexJSProject fproject = (FlexJSProject)project;
-    	ASDocConfiguration config = (ASDocConfiguration)(fproject.configurator.getConfiguration());
+    	FlexJSProject fproject = (FlexJSProject) project;
+    	ASDocConfiguration config = (ASDocConfiguration) fproject.configurator.getConfiguration();
         path = path.replace("\\", "/");
     	return !(config.getExcludeSources().contains(path));
     }

http://git-wip-us.apache.org/repos/asf/flex-falcon/blob/22ea48e6/compiler-jx/src/main/java/org/apache/flex/compiler/internal/driver/mxml/MXMLBackend.java
----------------------------------------------------------------------
diff --git a/compiler-jx/src/main/java/org/apache/flex/compiler/internal/driver/mxml/MXMLBackend.java b/compiler-jx/src/main/java/org/apache/flex/compiler/internal/driver/mxml/MXMLBackend.java
index a569be1..493aa7b 100644
--- a/compiler-jx/src/main/java/org/apache/flex/compiler/internal/driver/mxml/MXMLBackend.java
+++ b/compiler-jx/src/main/java/org/apache/flex/compiler/internal/driver/mxml/MXMLBackend.java
@@ -28,11 +28,11 @@ import org.apache.flex.compiler.driver.IBackend;
 import org.apache.flex.compiler.internal.codegen.mxml.MXMLBlockWalker;
 import org.apache.flex.compiler.internal.codegen.mxml.MXMLEmitter;
 import org.apache.flex.compiler.internal.driver.js.JSBackend;
+import org.apache.flex.compiler.internal.projects.FlexJSProject;
 import org.apache.flex.compiler.internal.projects.ISourceFileHandler;
 import org.apache.flex.compiler.internal.visitor.as.ASNodeSwitch;
 import org.apache.flex.compiler.internal.visitor.mxml.MXMLNodeSwitch;
 import org.apache.flex.compiler.problems.ICompilerProblem;
-import org.apache.flex.compiler.projects.IASProject;
 import org.apache.flex.compiler.tree.mxml.IMXMLFileNode;
 import org.apache.flex.compiler.visitor.IBlockVisitor;
 import org.apache.flex.compiler.visitor.IBlockWalker;
@@ -60,7 +60,7 @@ public class MXMLBackend extends JSBackend
     }
 
     @Override
-    public IMXMLBlockWalker createMXMLWalker(IASProject project,
+    public IMXMLBlockWalker createMXMLWalker(FlexJSProject project,
             List<ICompilerProblem> errors, IMXMLEmitter mxmlEmitter,
             IASEmitter asEmitter, IBlockWalker asBlockWalker)
     {

http://git-wip-us.apache.org/repos/asf/flex-falcon/blob/22ea48e6/compiler-jx/src/main/java/org/apache/flex/compiler/internal/driver/mxml/flexjs/MXMLFlexJSASDocBackend.java
----------------------------------------------------------------------
diff --git a/compiler-jx/src/main/java/org/apache/flex/compiler/internal/driver/mxml/flexjs/MXMLFlexJSASDocBackend.java b/compiler-jx/src/main/java/org/apache/flex/compiler/internal/driver/mxml/flexjs/MXMLFlexJSASDocBackend.java
index 388972f..87049fc 100644
--- a/compiler-jx/src/main/java/org/apache/flex/compiler/internal/driver/mxml/flexjs/MXMLFlexJSASDocBackend.java
+++ b/compiler-jx/src/main/java/org/apache/flex/compiler/internal/driver/mxml/flexjs/MXMLFlexJSASDocBackend.java
@@ -37,13 +37,13 @@ import org.apache.flex.compiler.internal.codegen.mxml.flexjs.MXMLFlexJSASDocEmit
 import org.apache.flex.compiler.internal.codegen.mxml.flexjs.MXMLFlexJSBlockWalker;
 import org.apache.flex.compiler.internal.driver.js.goog.ASDocConfiguration;
 import org.apache.flex.compiler.internal.driver.mxml.ASDocASSourceFileHandler;
+import org.apache.flex.compiler.internal.projects.FlexJSProject;
 import org.apache.flex.compiler.internal.projects.ISourceFileHandler;
 import org.apache.flex.compiler.internal.targets.FlexJSSWCTarget;
 import org.apache.flex.compiler.internal.targets.JSTarget;
 import org.apache.flex.compiler.internal.visitor.as.ASNodeSwitch;
 import org.apache.flex.compiler.internal.visitor.mxml.MXMLNodeSwitch;
 import org.apache.flex.compiler.problems.ICompilerProblem;
-import org.apache.flex.compiler.projects.IASProject;
 import org.apache.flex.compiler.targets.ITargetProgressMonitor;
 import org.apache.flex.compiler.targets.ITargetSettings;
 import org.apache.flex.compiler.tree.mxml.IMXMLFileNode;
@@ -74,7 +74,7 @@ public class MXMLFlexJSASDocBackend extends MXMLFlexJSSWCBackend
     }
 
     @Override
-    public IMXMLBlockWalker createMXMLWalker(IASProject project,
+    public IMXMLBlockWalker createMXMLWalker(FlexJSProject project,
             List<ICompilerProblem> errors, IMXMLEmitter mxmlEmitter,
             IASEmitter asEmitter, IBlockWalker asBlockWalker)
     {
@@ -106,7 +106,7 @@ public class MXMLFlexJSASDocBackend extends MXMLFlexJSSWCBackend
     }
     
     @Override
-    public IJSWriter createMXMLWriter(IASProject project,
+    public IJSWriter createMXMLWriter(FlexJSProject project,
             List<ICompilerProblem> problems, ICompilationUnit compilationUnit,
             boolean enableDebug)
     {
@@ -114,7 +114,7 @@ public class MXMLFlexJSASDocBackend extends MXMLFlexJSSWCBackend
     }
 
     @Override
-    public JSTarget createTarget(IASProject project, ITargetSettings settings,
+    public JSTarget createTarget(FlexJSProject project, ITargetSettings settings,
             ITargetProgressMonitor monitor)
     {
         return new FlexJSSWCTarget(project, settings, monitor);

http://git-wip-us.apache.org/repos/asf/flex-falcon/blob/22ea48e6/compiler-jx/src/main/java/org/apache/flex/compiler/internal/driver/mxml/flexjs/MXMLFlexJSASDocDITABackend.java
----------------------------------------------------------------------
diff --git a/compiler-jx/src/main/java/org/apache/flex/compiler/internal/driver/mxml/flexjs/MXMLFlexJSASDocDITABackend.java b/compiler-jx/src/main/java/org/apache/flex/compiler/internal/driver/mxml/flexjs/MXMLFlexJSASDocDITABackend.java
index 84ae221..52ef0db 100644
--- a/compiler-jx/src/main/java/org/apache/flex/compiler/internal/driver/mxml/flexjs/MXMLFlexJSASDocDITABackend.java
+++ b/compiler-jx/src/main/java/org/apache/flex/compiler/internal/driver/mxml/flexjs/MXMLFlexJSASDocDITABackend.java
@@ -30,7 +30,6 @@ import org.apache.flex.compiler.codegen.mxml.IMXMLEmitter;
 import org.apache.flex.compiler.config.Configurator;
 import org.apache.flex.compiler.driver.IBackend;
 import org.apache.flex.compiler.internal.codegen.js.flexjs.JSFlexJSASDocDITAEmitter;
-import org.apache.flex.compiler.internal.codegen.js.flexjs.JSFlexJSASDocEmitter;
 import org.apache.flex.compiler.internal.codegen.js.goog.JSGoogDocEmitter;
 import org.apache.flex.compiler.internal.codegen.mxml.MXMLBlockWalker;
 import org.apache.flex.compiler.internal.codegen.mxml.MXMLWriter;
@@ -38,13 +37,13 @@ import org.apache.flex.compiler.internal.codegen.mxml.flexjs.MXMLFlexJSASDocEmit
 import org.apache.flex.compiler.internal.codegen.mxml.flexjs.MXMLFlexJSBlockWalker;
 import org.apache.flex.compiler.internal.driver.js.goog.ASDocConfiguration;
 import org.apache.flex.compiler.internal.driver.mxml.ASDocASSourceFileHandler;
+import org.apache.flex.compiler.internal.projects.FlexJSProject;
 import org.apache.flex.compiler.internal.projects.ISourceFileHandler;
 import org.apache.flex.compiler.internal.targets.FlexJSSWCTarget;
 import org.apache.flex.compiler.internal.targets.JSTarget;
 import org.apache.flex.compiler.internal.visitor.as.ASNodeSwitch;
 import org.apache.flex.compiler.internal.visitor.mxml.MXMLNodeSwitch;
 import org.apache.flex.compiler.problems.ICompilerProblem;
-import org.apache.flex.compiler.projects.IASProject;
 import org.apache.flex.compiler.targets.ITargetProgressMonitor;
 import org.apache.flex.compiler.targets.ITargetSettings;
 import org.apache.flex.compiler.tree.mxml.IMXMLFileNode;
@@ -75,7 +74,7 @@ public class MXMLFlexJSASDocDITABackend extends MXMLFlexJSSWCBackend
     }
 
     @Override
-    public IMXMLBlockWalker createMXMLWalker(IASProject project,
+    public IMXMLBlockWalker createMXMLWalker(FlexJSProject project,
             List<ICompilerProblem> errors, IMXMLEmitter mxmlEmitter,
             IASEmitter asEmitter, IBlockWalker asBlockWalker)
     {
@@ -107,7 +106,7 @@ public class MXMLFlexJSASDocDITABackend extends MXMLFlexJSSWCBackend
     }
     
     @Override
-    public IJSWriter createMXMLWriter(IASProject project,
+    public IJSWriter createMXMLWriter(FlexJSProject project,
             List<ICompilerProblem> problems, ICompilationUnit compilationUnit,
             boolean enableDebug)
     {
@@ -115,7 +114,7 @@ public class MXMLFlexJSASDocDITABackend extends MXMLFlexJSSWCBackend
     }
 
     @Override
-    public JSTarget createTarget(IASProject project, ITargetSettings settings,
+    public JSTarget createTarget(FlexJSProject project, ITargetSettings settings,
             ITargetProgressMonitor monitor)
     {
         return new FlexJSSWCTarget(project, settings, monitor);

http://git-wip-us.apache.org/repos/asf/flex-falcon/blob/22ea48e6/compiler-jx/src/main/java/org/apache/flex/compiler/internal/driver/mxml/flexjs/MXMLFlexJSBackend.java
----------------------------------------------------------------------
diff --git a/compiler-jx/src/main/java/org/apache/flex/compiler/internal/driver/mxml/flexjs/MXMLFlexJSBackend.java b/compiler-jx/src/main/java/org/apache/flex/compiler/internal/driver/mxml/flexjs/MXMLFlexJSBackend.java
index 612b089..7cdbd41 100644
--- a/compiler-jx/src/main/java/org/apache/flex/compiler/internal/driver/mxml/flexjs/MXMLFlexJSBackend.java
+++ b/compiler-jx/src/main/java/org/apache/flex/compiler/internal/driver/mxml/flexjs/MXMLFlexJSBackend.java
@@ -45,7 +45,6 @@ import org.apache.flex.compiler.internal.targets.JSTarget;
 import org.apache.flex.compiler.internal.visitor.as.ASNodeSwitch;
 import org.apache.flex.compiler.internal.visitor.mxml.MXMLNodeSwitch;
 import org.apache.flex.compiler.problems.ICompilerProblem;
-import org.apache.flex.compiler.projects.IASProject;
 import org.apache.flex.compiler.targets.ITargetProgressMonitor;
 import org.apache.flex.compiler.targets.ITargetSettings;
 import org.apache.flex.compiler.tree.mxml.IMXMLFileNode;
@@ -76,7 +75,7 @@ public class MXMLFlexJSBackend extends MXMLBackend
     }
 
     @Override
-    public IMXMLBlockWalker createMXMLWalker(IASProject project,
+    public IMXMLBlockWalker createMXMLWalker(FlexJSProject project,
             List<ICompilerProblem> errors, IMXMLEmitter mxmlEmitter,
             IASEmitter asEmitter, IBlockWalker asBlockWalker)
     {
@@ -108,7 +107,7 @@ public class MXMLFlexJSBackend extends MXMLBackend
     }
 
     @Override
-    public IJSWriter createMXMLWriter(IASProject project,
+    public IJSWriter createMXMLWriter(FlexJSProject project,
             List<ICompilerProblem> problems, ICompilationUnit compilationUnit,
             boolean enableDebug)
     {
@@ -116,16 +115,16 @@ public class MXMLFlexJSBackend extends MXMLBackend
     }
 
     @Override
-    public JSTarget createTarget(IASProject project, ITargetSettings settings,
+    public JSTarget createTarget(FlexJSProject project, ITargetSettings settings,
             ITargetProgressMonitor monitor)
     {
         return new FlexJSTarget(project, settings, monitor);
     }
 
     @Override
-    public MXMLFlexJSPublisher createPublisher(IASProject project,
+    public MXMLFlexJSPublisher createPublisher(FlexJSProject project,
             List<ICompilerProblem> errors, Configuration config)
     {
-        return new MXMLFlexJSPublisher(config, (FlexJSProject) project);
+        return new MXMLFlexJSPublisher(project, config);
     }
 }

http://git-wip-us.apache.org/repos/asf/flex-falcon/blob/22ea48e6/compiler-jx/src/main/java/org/apache/flex/compiler/internal/driver/mxml/flexjs/MXMLFlexJSSWCBackend.java
----------------------------------------------------------------------
diff --git a/compiler-jx/src/main/java/org/apache/flex/compiler/internal/driver/mxml/flexjs/MXMLFlexJSSWCBackend.java b/compiler-jx/src/main/java/org/apache/flex/compiler/internal/driver/mxml/flexjs/MXMLFlexJSSWCBackend.java
index 45bc336..236feba 100644
--- a/compiler-jx/src/main/java/org/apache/flex/compiler/internal/driver/mxml/flexjs/MXMLFlexJSSWCBackend.java
+++ b/compiler-jx/src/main/java/org/apache/flex/compiler/internal/driver/mxml/flexjs/MXMLFlexJSSWCBackend.java
@@ -37,12 +37,12 @@ import org.apache.flex.compiler.internal.codegen.mxml.flexjs.MXMLFlexJSBlockWalk
 import org.apache.flex.compiler.internal.codegen.mxml.flexjs.MXMLFlexJSEmitter;
 import org.apache.flex.compiler.internal.driver.js.goog.JSGoogConfiguration;
 import org.apache.flex.compiler.internal.driver.mxml.MXMLBackend;
+import org.apache.flex.compiler.internal.projects.FlexJSProject;
 import org.apache.flex.compiler.internal.targets.FlexJSSWCTarget;
 import org.apache.flex.compiler.internal.targets.JSTarget;
 import org.apache.flex.compiler.internal.visitor.as.ASNodeSwitch;
 import org.apache.flex.compiler.internal.visitor.mxml.MXMLNodeSwitch;
 import org.apache.flex.compiler.problems.ICompilerProblem;
-import org.apache.flex.compiler.projects.IASProject;
 import org.apache.flex.compiler.targets.ITargetProgressMonitor;
 import org.apache.flex.compiler.targets.ITargetSettings;
 import org.apache.flex.compiler.tree.mxml.IMXMLFileNode;
@@ -73,7 +73,7 @@ public class MXMLFlexJSSWCBackend extends MXMLBackend
     }
 
     @Override
-    public IMXMLBlockWalker createMXMLWalker(IASProject project,
+    public IMXMLBlockWalker createMXMLWalker(FlexJSProject project,
             List<ICompilerProblem> errors, IMXMLEmitter mxmlEmitter,
             IASEmitter asEmitter, IBlockWalker asBlockWalker)
     {
@@ -105,7 +105,7 @@ public class MXMLFlexJSSWCBackend extends MXMLBackend
     }
     
     @Override
-    public IJSWriter createMXMLWriter(IASProject project,
+    public IJSWriter createMXMLWriter(FlexJSProject project,
             List<ICompilerProblem> problems, ICompilationUnit compilationUnit,
             boolean enableDebug)
     {
@@ -113,7 +113,7 @@ public class MXMLFlexJSSWCBackend extends MXMLBackend
     }
 
     @Override
-    public JSTarget createTarget(IASProject project, ITargetSettings settings,
+    public JSTarget createTarget(FlexJSProject project, ITargetSettings settings,
             ITargetProgressMonitor monitor)
     {
         return new FlexJSSWCTarget(project, settings, monitor);

http://git-wip-us.apache.org/repos/asf/flex-falcon/blob/22ea48e6/compiler-jx/src/main/java/org/apache/flex/compiler/internal/driver/mxml/jsc/MXMLJSCJSBackend.java
----------------------------------------------------------------------
diff --git a/compiler-jx/src/main/java/org/apache/flex/compiler/internal/driver/mxml/jsc/MXMLJSCJSBackend.java b/compiler-jx/src/main/java/org/apache/flex/compiler/internal/driver/mxml/jsc/MXMLJSCJSBackend.java
index 18a0388..b4fdc70 100644
--- a/compiler-jx/src/main/java/org/apache/flex/compiler/internal/driver/mxml/jsc/MXMLJSCJSBackend.java
+++ b/compiler-jx/src/main/java/org/apache/flex/compiler/internal/driver/mxml/jsc/MXMLJSCJSBackend.java
@@ -37,12 +37,12 @@ import org.apache.flex.compiler.internal.codegen.mxml.flexjs.MXMLFlexJSBlockWalk
 import org.apache.flex.compiler.internal.codegen.mxml.jsc.MXMLJSCJSEmitter;
 import org.apache.flex.compiler.internal.driver.js.goog.JSGoogConfiguration;
 import org.apache.flex.compiler.internal.driver.mxml.flexjs.MXMLFlexJSBackend;
+import org.apache.flex.compiler.internal.projects.FlexJSProject;
 import org.apache.flex.compiler.internal.targets.FlexJSTarget;
 import org.apache.flex.compiler.internal.targets.JSTarget;
 import org.apache.flex.compiler.internal.visitor.as.ASNodeSwitch;
 import org.apache.flex.compiler.internal.visitor.mxml.MXMLNodeSwitch;
 import org.apache.flex.compiler.problems.ICompilerProblem;
-import org.apache.flex.compiler.projects.IASProject;
 import org.apache.flex.compiler.targets.ITargetProgressMonitor;
 import org.apache.flex.compiler.targets.ITargetSettings;
 import org.apache.flex.compiler.tree.mxml.IMXMLFileNode;
@@ -73,7 +73,7 @@ public class MXMLJSCJSBackend extends MXMLFlexJSBackend
     }
 
     @Override
-    public IMXMLBlockWalker createMXMLWalker(IASProject project,
+    public IMXMLBlockWalker createMXMLWalker(FlexJSProject project,
             List<ICompilerProblem> errors, IMXMLEmitter mxmlEmitter,
             IASEmitter asEmitter, IBlockWalker asBlockWalker)
     {
@@ -105,7 +105,7 @@ public class MXMLJSCJSBackend extends MXMLFlexJSBackend
     }
 
     @Override
-    public IJSWriter createMXMLWriter(IASProject project,
+    public IJSWriter createMXMLWriter(FlexJSProject project,
             List<ICompilerProblem> problems, ICompilationUnit compilationUnit,
             boolean enableDebug)
     {
@@ -113,7 +113,7 @@ public class MXMLJSCJSBackend extends MXMLFlexJSBackend
     }
 
     @Override
-    public JSTarget createTarget(IASProject project, ITargetSettings settings,
+    public JSTarget createTarget(FlexJSProject project, ITargetSettings settings,
             ITargetProgressMonitor monitor)
     {
         return new FlexJSTarget(project, settings, monitor);

http://git-wip-us.apache.org/repos/asf/flex-falcon/blob/22ea48e6/compiler-jx/src/main/java/org/apache/flex/compiler/internal/driver/mxml/jsc/MXMLJSCJSSWCBackend.java
----------------------------------------------------------------------
diff --git a/compiler-jx/src/main/java/org/apache/flex/compiler/internal/driver/mxml/jsc/MXMLJSCJSSWCBackend.java b/compiler-jx/src/main/java/org/apache/flex/compiler/internal/driver/mxml/jsc/MXMLJSCJSSWCBackend.java
index 3657c7e..69b6be6 100644
--- a/compiler-jx/src/main/java/org/apache/flex/compiler/internal/driver/mxml/jsc/MXMLJSCJSSWCBackend.java
+++ b/compiler-jx/src/main/java/org/apache/flex/compiler/internal/driver/mxml/jsc/MXMLJSCJSSWCBackend.java
@@ -37,12 +37,12 @@ import org.apache.flex.compiler.internal.codegen.mxml.flexjs.MXMLFlexJSBlockWalk
 import org.apache.flex.compiler.internal.codegen.mxml.jsc.MXMLJSCJSEmitter;
 import org.apache.flex.compiler.internal.driver.js.goog.JSGoogConfiguration;
 import org.apache.flex.compiler.internal.driver.mxml.MXMLBackend;
+import org.apache.flex.compiler.internal.projects.FlexJSProject;
 import org.apache.flex.compiler.internal.targets.FlexJSSWCTarget;
 import org.apache.flex.compiler.internal.targets.JSTarget;
 import org.apache.flex.compiler.internal.visitor.as.ASNodeSwitch;
 import org.apache.flex.compiler.internal.visitor.mxml.MXMLNodeSwitch;
 import org.apache.flex.compiler.problems.ICompilerProblem;
-import org.apache.flex.compiler.projects.IASProject;
 import org.apache.flex.compiler.targets.ITargetProgressMonitor;
 import org.apache.flex.compiler.targets.ITargetSettings;
 import org.apache.flex.compiler.tree.mxml.IMXMLFileNode;
@@ -73,7 +73,7 @@ public class MXMLJSCJSSWCBackend extends MXMLBackend
     }
 
     @Override
-    public IMXMLBlockWalker createMXMLWalker(IASProject project,
+    public IMXMLBlockWalker createMXMLWalker(FlexJSProject project,
             List<ICompilerProblem> errors, IMXMLEmitter mxmlEmitter,
             IASEmitter asEmitter, IBlockWalker asBlockWalker)
     {
@@ -105,7 +105,7 @@ public class MXMLJSCJSSWCBackend extends MXMLBackend
     }
     
     @Override
-    public IJSWriter createMXMLWriter(IASProject project,
+    public IJSWriter createMXMLWriter(FlexJSProject project,
             List<ICompilerProblem> problems, ICompilationUnit compilationUnit,
             boolean enableDebug)
     {
@@ -113,7 +113,7 @@ public class MXMLJSCJSSWCBackend extends MXMLBackend
     }
 
     @Override
-    public JSTarget createTarget(IASProject project, ITargetSettings settings,
+    public JSTarget createTarget(FlexJSProject project, ITargetSettings settings,
             ITargetProgressMonitor monitor)
     {
         return new FlexJSSWCTarget(project, settings, monitor);

http://git-wip-us.apache.org/repos/asf/flex-falcon/blob/22ea48e6/compiler-jx/src/main/java/org/apache/flex/compiler/internal/projects/FlexJSASDocProject.java
----------------------------------------------------------------------
diff --git a/compiler-jx/src/main/java/org/apache/flex/compiler/internal/projects/FlexJSASDocProject.java b/compiler-jx/src/main/java/org/apache/flex/compiler/internal/projects/FlexJSASDocProject.java
index 1b619c1..ad8b722 100644
--- a/compiler-jx/src/main/java/org/apache/flex/compiler/internal/projects/FlexJSASDocProject.java
+++ b/compiler-jx/src/main/java/org/apache/flex/compiler/internal/projects/FlexJSASDocProject.java
@@ -23,6 +23,8 @@ import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
 import org.apache.flex.compiler.definitions.IDefinition;
+import org.apache.flex.compiler.driver.IBackend;
+import org.apache.flex.compiler.internal.driver.as.ASBackend;
 import org.apache.flex.compiler.internal.workspaces.Workspace;
 
 /**
@@ -37,9 +39,9 @@ public class FlexJSASDocProject extends FlexJSProject
      *
      * @param workspace The {@code Workspace} containing this project.
      */
-    public FlexJSASDocProject(Workspace workspace)
+    public FlexJSASDocProject(Workspace workspace, IBackend backend)
     {
-        super(workspace);
+        super(workspace, backend);
     }
     
     public class ASDocRecord

http://git-wip-us.apache.org/repos/asf/flex-falcon/blob/22ea48e6/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 4a275eb..e34d6ef 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
@@ -31,6 +31,7 @@ import org.apache.flex.compiler.config.Configurator;
 import org.apache.flex.compiler.definitions.IDefinition;
 import org.apache.flex.compiler.definitions.metadata.IMetaTag;
 import org.apache.flex.compiler.definitions.metadata.IMetaTagAttribute;
+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;
 import org.apache.flex.compiler.internal.definitions.InterfaceDefinition;
@@ -60,9 +61,10 @@ public class FlexJSProject extends FlexProject
      *
      * @param workspace The {@code Workspace} containing this project.
      */
-    public FlexJSProject(Workspace workspace)
+    public FlexJSProject(Workspace workspace, IBackend backend)
     {
         super(workspace);
+        this.backend = backend;
     }
 
     private HashMap<ICompilationUnit, HashMap<String, String>> interfaces = new HashMap<ICompilationUnit, HashMap<String, String>>();
@@ -73,6 +75,8 @@ public class FlexJSProject extends FlexProject
     public JSGoogConfiguration config;
     public Configurator configurator;
 
+    private IBackend backend;
+
     public ICompilationUnit mainCU;
 
     @Override
@@ -354,4 +358,9 @@ public class FlexJSProject extends FlexProject
 		}
     	return null;
     }
+
+    public IBackend getBackend() {
+        return backend;
+    }
+
 }

http://git-wip-us.apache.org/repos/asf/flex-falcon/blob/22ea48e6/compiler-jx/src/main/java/org/apache/flex/compiler/internal/targets/FlexJSSWCTarget.java
----------------------------------------------------------------------
diff --git a/compiler-jx/src/main/java/org/apache/flex/compiler/internal/targets/FlexJSSWCTarget.java b/compiler-jx/src/main/java/org/apache/flex/compiler/internal/targets/FlexJSSWCTarget.java
index 339e3a8..5e52367 100644
--- a/compiler-jx/src/main/java/org/apache/flex/compiler/internal/targets/FlexJSSWCTarget.java
+++ b/compiler-jx/src/main/java/org/apache/flex/compiler/internal/targets/FlexJSSWCTarget.java
@@ -59,7 +59,7 @@ public class FlexJSSWCTarget extends JSTarget implements IJSTarget
      * 
      * @param project the owner project
      */
-    public FlexJSSWCTarget(IASProject project, ITargetSettings targetSettings,
+    public FlexJSSWCTarget(FlexJSProject project, ITargetSettings targetSettings,
             ITargetProgressMonitor progressMonitor)
     {
         super(project, targetSettings, progressMonitor);

http://git-wip-us.apache.org/repos/asf/flex-falcon/blob/22ea48e6/compiler-jx/src/main/java/org/apache/flex/compiler/internal/targets/FlexJSTarget.java
----------------------------------------------------------------------
diff --git a/compiler-jx/src/main/java/org/apache/flex/compiler/internal/targets/FlexJSTarget.java b/compiler-jx/src/main/java/org/apache/flex/compiler/internal/targets/FlexJSTarget.java
index 01c24f1..b3c5bd2 100644
--- a/compiler-jx/src/main/java/org/apache/flex/compiler/internal/targets/FlexJSTarget.java
+++ b/compiler-jx/src/main/java/org/apache/flex/compiler/internal/targets/FlexJSTarget.java
@@ -37,7 +37,6 @@ import org.apache.flex.compiler.internal.projects.FlexJSProject;
 import org.apache.flex.compiler.internal.units.SWCCompilationUnit;
 import org.apache.flex.compiler.problems.FileNotFoundProblem;
 import org.apache.flex.compiler.problems.ICompilerProblem;
-import org.apache.flex.compiler.projects.IASProject;
 import org.apache.flex.compiler.targets.IJSTarget;
 import org.apache.flex.compiler.targets.ITargetProgressMonitor;
 import org.apache.flex.compiler.targets.ITargetSettings;
@@ -53,11 +52,11 @@ public class FlexJSTarget extends JSTarget implements IJSTarget
      * 
      * @param project the owner project
      */
-    public FlexJSTarget(IASProject project, ITargetSettings targetSettings,
+    public FlexJSTarget(FlexJSProject project, ITargetSettings targetSettings,
             ITargetProgressMonitor progressMonitor)
     {
         super(project, targetSettings, progressMonitor);
-        flexProject = (FlexJSProject)project;
+        flexProject = project;
     }
     
     private final FlexJSProject flexProject;