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/04/13 20:55:54 UTC

[02/51] [partial] git commit: [flex-falcon] [refs/heads/feature/maven-migration-test] - - Check-In of the migrated project to make error analysis easier

http://git-wip-us.apache.org/repos/asf/flex-falcon/blob/c3dce49f/compiler.js/src/org/apache/flex/compiler/internal/driver/JSCompilationUnit.java
----------------------------------------------------------------------
diff --git a/compiler.js/src/org/apache/flex/compiler/internal/driver/JSCompilationUnit.java b/compiler.js/src/org/apache/flex/compiler/internal/driver/JSCompilationUnit.java
deleted file mode 100644
index c00baa7..0000000
--- a/compiler.js/src/org/apache/flex/compiler/internal/driver/JSCompilationUnit.java
+++ /dev/null
@@ -1,239 +0,0 @@
-/*
- *
- *  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.
- *
- */
-
-package org.apache.flex.compiler.internal.driver;
-
-import java.io.IOException;
-import java.util.Collection;
-
-import org.apache.flex.compiler.common.DependencyType;
-import org.apache.flex.compiler.definitions.IDefinition;
-import org.apache.flex.compiler.internal.as.codegen.JSGeneratingReducer;
-import org.apache.flex.compiler.internal.as.codegen.JSGenerator;
-import org.apache.flex.compiler.internal.as.codegen.JSSharedData;
-import org.apache.flex.compiler.internal.projects.CompilerProject;
-import org.apache.flex.compiler.internal.projects.DefinitionPriority;
-import org.apache.flex.compiler.internal.scopes.ASProjectScope;
-import org.apache.flex.compiler.internal.units.ASCompilationUnit;
-import org.apache.flex.compiler.problems.ICompilerProblem;
-import org.apache.flex.compiler.targets.ITarget.TargetType;
-import org.apache.flex.compiler.tree.as.IASNode;
-import org.apache.flex.compiler.units.ICompilationUnit;
-import org.apache.flex.compiler.units.requests.IABCBytesRequestResult;
-import org.apache.flex.compiler.units.requests.IOutgoingDependenciesRequestResult;
-import org.apache.flex.compiler.units.requests.ISyntaxTreeRequestResult;
-
-/**
- * JSCompilationUnit is the CompilationUnit for compiling ActionScript source
- * files to JavasScript. JSCompilationUnit is derived from ASCompilationUnit and
- * overrides the parts that generate the code. JSCompilationUnit also supports
- * requests for two-pass compilation (see m_needsSecondPass).
- * JSSourceFileHandler provides JSCompilationUnit for *.as files. JSDriver
- * registers JSSourceFileHandler at FlexApplicationProject. This implementation
- * is part of FalconJS. For more details on FalconJS see
- * org.apache.flex.compiler.JSDriver
- */
-
-public class JSCompilationUnit extends ASCompilationUnit
-{
-    private IABCBytesRequestResult m_abcBytes = null;
-    private Boolean m_needsSecondPass = false;
-    private Boolean m_inCodeGen = false;
-
-    /**
-     * Create a compilation unit from an ABC file.
-     * 
-     * @param project compiler project
-     * @param path ABC file path
-     * @throws IOException error
-     */
-    public JSCompilationUnit(CompilerProject project, String path) throws IOException
-    {
-        this(project, path, DefinitionPriority.BasePriority.LIBRARY_PATH);
-    }
-
-    public JSCompilationUnit(CompilerProject project, String path, DefinitionPriority.BasePriority basePriority)
-    {
-        super(project, path, basePriority);
-    }
-
-    public JSCompilationUnit(CompilerProject project, String path, DefinitionPriority.BasePriority basePriority, String qname)
-    {
-        super(project, path, basePriority, 0, qname);
-    }
-
-    protected IABCBytesRequestResult _handleABCBytesRequest(Operation buildPhase) throws InterruptedException
-    {
-        // If JSEmitter.needsSecondPass() returns true, JSGenerator.generate() will return null during scanning, 
-        // which will result in JSCompilationUnit::handleSemanticProblemsRequest not caching any abcBytes for 
-        // handleABCBytesRequest. The net result is that JSGenerator.generate() will be called again in handleABCBytesRequest. 
-        // This mechanic will ensure selective two-pass compilation. 
-        if (m_abcBytes != null &&
-            !JSSharedData.instance.hasSymbols() && // Symbol support
-            !JSSharedData.instance.hasAnyClassInit()) // support for class inits 
-            return m_abcBytes;
-
-        JSGenerator jsGenerator = new JSGenerator();
-        jsGenerator.m_compilationUnit = this;
-        jsGenerator.setBuildPhase(buildPhase);
-
-        // Need to force the file scope request to happen first to get the ASFileScope
-        // for this compilation unit registered with the project.
-        // ** TODO this is a hack!
-        getFileScopeRequest().get();
-
-        // This is also a hack!  If there are embed directives, need to ensure
-        // semantic pass has finished, as that is what will generate the embed classes
-        // which are needed by codegen
-        if (buildPhase != Operation.GET_SEMANTIC_PROBLEMS)
-        {
-        	// AJH this was deadlocking as getOutgoingDependencies calls handleABCBytes
-        	if (buildPhase != Operation.GET_ABC_BYTES)
-        		getOutgoingDependenciesRequest().get();
-        }
-
-        final ISyntaxTreeRequestResult fsr = getSyntaxTreeRequest().get();
-        final IASNode rootNode = fsr.getAST();
-
-        startProfile(buildPhase);
-        IABCBytesRequestResult result = jsGenerator.generate(getFilenameNoPath(), rootNode, this.getProject());
-        stopProfile(buildPhase);
-
-        m_needsSecondPass = jsGenerator.needsSecondPass();
-
-        return result;
-    }
-
-    @Override
-    protected IABCBytesRequestResult handleABCBytesRequest() throws InterruptedException
-    {
-        final IABCBytesRequestResult result = _handleABCBytesRequest(Operation.GET_ABC_BYTES);
-
-        /*
-         * // explicitly reference all classes this class depends on if(
-         * result.getProblems() == null || result.getProblems().length == 0 ) {
-         * final String code = new String( result.getABCBytes() ); if(
-         * code.contains(JSSharedData.REQUIRED_TAG_MARKER) ) { final
-         * ICompilationUnit cu = this; final Set<ICompilationUnit> deps = new
-         * HashSet<ICompilationUnit>(); deps.addAll(
-         * getProject().getDependencies(cu) ); if( !deps.isEmpty() ) { String
-         * depNames = ""; Boolean separator = false; final List<IDefinition>
-         * defs = MXMLJSC.getClassDefinitions( cu ); for( IDefinition def: defs
-         * ) { if( def instanceof ClassDefinition ) { final String defName =
-         * JSGeneratingReducer.createFullNameFromDefinition(def); if( defName !=
-         * null && !defName.isEmpty() ) { if( separator ) depNames += ":"; else
-         * separator = true; depNames += defName; } } }
-         * code.replaceFirst(JSSharedData.REQUIRED_TAG_MARKER, depNames); return
-         * new ABCBytesRequestResult(code.getBytes(), result.getProblems()); } }
-         * }
-         */
-        return result;
-    }
-
-    @Override
-    protected IOutgoingDependenciesRequestResult handleOutgoingDependenciesRequest() throws InterruptedException
-    {
-        // Every CU is dependent on the class glue, which is implemented in browser.adobe.
-        // Add dependency from this JSCompilationUnit to browser.adobe's JSCompilationUnit.
-        addDependency(JSSharedData.JS_FRAMEWORK_NAME, DependencyType.INHERITANCE);
-        addDependency(JSSharedData.FRAMEWORK_CLASS, DependencyType.INHERITANCE);
-
-        IOutgoingDependenciesRequestResult result = super.handleOutgoingDependenciesRequest();
-
-        // SWFTarget::startBuildAndFindAllCompilationUnits() is called by SWFTarget::collectProblems(), which is called by SWFTarget::addToSWF() in JSDriver::main().
-        // This is our first pass. jsGenerator.generate() will return null if JSGeneratingReducer.getMember 
-        // If JSEmitter.needsSecondPass() returns true, JSGenerator.generate() will return null during scanning, 
-        // which will result in JSCompilationUnit::handleSemanticProblemsRequest not caching any abcBytes for 
-        // handleABCBytesRequest. The net result is that JSGenerator.generate() will be called again in handleABCBytesRequest. 
-        // This mechanic will ensure selective two-pass compilation. 
-        if (result.getProblems().length == 0)
-        {
-            m_needsSecondPass = false;
-            m_abcBytes = _handleABCBytesRequest(Operation.GET_SEMANTIC_PROBLEMS);
-            if (m_needsSecondPass)
-                m_abcBytes = null;
-        }
-
-        return result;
-    }
-
-    public Boolean addDependency(String className, DependencyType dt)
-    {
-        if (JSGeneratingReducer.isReservedDataType(className))
-            return false;
-
-        final ICompilationUnit fromCU = this;
-        final CompilerProject compilerProject = this.getProject();
-        final ASProjectScope projectScope = compilerProject.getScope();
-
-        final IDefinition classDef = projectScope.findDefinitionByName(className);
-        if (classDef == null)
-            return false;
-
-        final ICompilationUnit toCU = projectScope.getCompilationUnitForDefinition(classDef);
-        if (fromCU == toCU)
-            return false;
-
-        // sharedData.verboseMessage( "Adding dependency: " + className );
-        compilerProject.addDependency(fromCU, toCU, dt);
-
-        return true;
-    }
-
-    @Override
-    public void startBuildAsync(TargetType targetType)
-    {
-        // super.startBuildAsync(targetType);
-
-        getSyntaxTreeRequest();
-        getFileScopeRequest();
-        getOutgoingDependenciesRequest();
-
-        // scanning and code generating phases need to be separated
-        // in order to create two distinct passes for m_needSecondPass.
-        if (m_inCodeGen)
-        {
-            getABCBytesRequest();
-            getSWFTagsRequest();
-        }
-    }
-
-    @Override
-    public void waitForBuildFinish(final Collection<ICompilerProblem> problems, TargetType targetType) throws InterruptedException
-    {
-        m_inCodeGen = true;
-        super.waitForBuildFinish(problems, targetType);
-        m_inCodeGen = false;
-        /*
-         * assert problems != null :
-         * "Expected 'problems'. Do not ignore problems."; //$NON-NLS-1$
-         * Collections.addAll(problems,
-         * getSyntaxTreeRequest().get().getProblems());
-         * Collections.addAll(problems,
-         * getFileScopeRequest().get().getProblems());
-         * Collections.addAll(problems,
-         * getSemanticProblemsRequest().get().getProblems());
-         * Collections.addAll(problems,
-         * getABCBytesRequest().get().getProblems());
-         * Collections.addAll(problems,
-         * getSWFTagsRequest().get().getProblems());
-         */
-    }
-
-}

http://git-wip-us.apache.org/repos/asf/flex-falcon/blob/c3dce49f/compiler.js/src/org/apache/flex/compiler/internal/driver/JSSourceFileHandler.java
----------------------------------------------------------------------
diff --git a/compiler.js/src/org/apache/flex/compiler/internal/driver/JSSourceFileHandler.java b/compiler.js/src/org/apache/flex/compiler/internal/driver/JSSourceFileHandler.java
deleted file mode 100644
index ca06784..0000000
--- a/compiler.js/src/org/apache/flex/compiler/internal/driver/JSSourceFileHandler.java
+++ /dev/null
@@ -1,82 +0,0 @@
-/*
- *
- *  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.
- *
- */
-
-package org.apache.flex.compiler.internal.driver;
-
-import org.apache.flex.compiler.internal.projects.CompilerProject;
-import org.apache.flex.compiler.internal.projects.DefinitionPriority;
-import org.apache.flex.compiler.internal.projects.ISourceFileHandler;
-import org.apache.flex.compiler.units.ICompilationUnit;
-
-/**
- * Implementation of ISourceFileHandler that constructs
- * {@link ASCompilationUnit}'s. JSSourceFileHandler is the SourceFileHandler
- * that provides JSCompilationUnit for *.as files. JSDriver registers
- * JSSourceFileHandler at FlexApplicationProject. This implementation is part of
- * FalconJS. For more details on FalconJS see org.apache.flex.compiler.JSDriver
- */
-public final class JSSourceFileHandler implements ISourceFileHandler
-{
-
-    public static final String EXTENSION = "as"; //$NON-NLS-1$
-    public static final JSSourceFileHandler INSTANCE = new JSSourceFileHandler();
-
-    private JSSourceFileHandler()
-    {
-    }
-
-    /**
-     * {@inheritDoc}
-     */
-    public String[] getExtensions()
-    {
-        return new String[] {EXTENSION};
-    }
-
-    /**
-     * {@inheritDoc}
-     */
-    public ICompilationUnit createCompilationUnit(CompilerProject proj,
-                                                  String path,
-                                                  DefinitionPriority.BasePriority basePriority,
-                                                  int order,
-                                                  String qname,
-                                                  String locale)
-    {
-        return new JSCompilationUnit(proj, path, basePriority, qname);
-    }
-
-    /**
-     * {@inheritDoc}
-     */
-    @Override
-    public boolean needCompilationUnit(CompilerProject project, String path, String qname, String locale)
-    {
-        return true;
-    }
-
-    /**
-     * {@inheritDoc}
-     */
-    @Override
-    public boolean canCreateInvisibleCompilationUnit()
-    {
-        return false;
-    }
-}

http://git-wip-us.apache.org/repos/asf/flex-falcon/blob/c3dce49f/compiler.js/src/org/apache/flex/compiler/internal/driver/JSTarget.java
----------------------------------------------------------------------
diff --git a/compiler.js/src/org/apache/flex/compiler/internal/driver/JSTarget.java b/compiler.js/src/org/apache/flex/compiler/internal/driver/JSTarget.java
deleted file mode 100644
index 5636872..0000000
--- a/compiler.js/src/org/apache/flex/compiler/internal/driver/JSTarget.java
+++ /dev/null
@@ -1,322 +0,0 @@
-/*
- *
- *  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.
- *
- */
-
-package org.apache.flex.compiler.internal.driver;
-
-import java.util.ArrayList;
-import java.util.Collection;
-import java.util.Collections;
-import java.util.HashSet;
-import java.util.Iterator;
-import java.util.List;
-import java.util.Set;
-
-import org.apache.flex.abc.ABCLinker.ABCLinkerSettings;
-import org.apache.flex.compiler.clients.MXMLJSC;
-import org.apache.flex.compiler.definitions.IDefinition;
-import org.apache.flex.compiler.exceptions.BuildCanceledException;
-import org.apache.flex.compiler.internal.as.codegen.JSGeneratingReducer;
-import org.apache.flex.compiler.internal.as.codegen.JSSharedData;
-import org.apache.flex.compiler.internal.definitions.DefinitionBase;
-import org.apache.flex.compiler.internal.projects.CompilerProject;
-import org.apache.flex.compiler.internal.targets.AppSWFTarget;
-import org.apache.flex.compiler.internal.targets.Target;
-import org.apache.flex.compiler.internal.units.ResourceBundleCompilationUnit;
-import org.apache.flex.compiler.problems.ICompilerProblem;
-import org.apache.flex.compiler.problems.UnableToBuildSWFTagProblem;
-import org.apache.flex.compiler.targets.ITargetProgressMonitor;
-import org.apache.flex.compiler.targets.ITargetSettings;
-import org.apache.flex.compiler.units.ICompilationUnit;
-import org.apache.flex.swf.ISWF;
-import org.apache.flex.swf.SWFFrame;
-import org.apache.flex.swf.tags.DoABCTag;
-
-import com.google.common.collect.ImmutableSet;
-import com.google.common.collect.Iterables;
-
-/**
- * Concrete implementation of ITarget for building a collection of source files
- * into a SWF.
- */
-
-public class JSTarget extends AppSWFTarget
-{
-    private ICompilationUnit mainCU;
-    
-    /**
-     * Initialize a SWF target with the owner project and root compilation
-     * units.
-     * 
-     * @param project the owner project
-     */
-
-    public JSTarget(CompilerProject project, ITargetSettings targetSettings, ITargetProgressMonitor progressMonitor)
-    {
-        super(project, targetSettings, progressMonitor);
-    }
-
-    /*
-     * private void printDefinitionsFromCompilationUnit( ICompilationUnit cu )
-     * throws InterruptedException { final List<IDefinition> defs =
-     * MXMLJSC.getDefinitions(cu, true); String s = cu.toString() + ": " +
-     * cu.getShortNames(); JSSharedData.instance.verboseMessage(s); }
-     */
-
-    protected void buildAndCollectProblems(
-            final Set<ICompilationUnit> compilationUnits,
-            final Collection<ICompilerProblem> problems)
-            throws InterruptedException
-    {
-        final JSSharedData sharedData = JSSharedData.instance;
-        sharedData.beginCodeGen();
-
-        BuiltCompilationUnitSet builtCompilationUnits = getBuiltCompilationUnitSet();
-
-        if (JSSharedData.OUTPUT_ISOLATED)
-        {
-            final ICompilationUnit rootCU = getRootClassCompilationUnit();
-            compilationUnits.clear();
-            compilationUnits.add(rootCU);
-        }
-        else
-        {
-            final List<ICompilationUnit> allUnits = new ArrayList<ICompilationUnit>();
-            allUnits.addAll(project.getReachableCompilationUnitsInSWFOrder(builtCompilationUnits.compilationUnits));
-            final List<ICompilationUnit> cuList = sortCompilationUnits(allUnits);
-            compilationUnits.clear();
-            for (ICompilationUnit cu : cuList)
-                compilationUnits.add(cu);
-        }
-        sharedData.endCodeGen();
-    }
-
-    public ISWF build(ICompilationUnit mainCU, Collection<ICompilerProblem> problems)
-    {
-        this.mainCU = mainCU;
-        return build(problems);
-    }
-    
-    @Override
-    public ISWF build(Collection<ICompilerProblem> problems)
-    {
-        buildStarted();
-        try
-        {
-            Iterable<ICompilerProblem> fatalProblems = getFatalProblems();
-            if (!Iterables.isEmpty(fatalProblems))
-            {
-                Iterables.addAll(problems, fatalProblems);
-                return null;
-            }
-
-            Set<ICompilationUnit> compilationUnitSet = new HashSet<ICompilationUnit>();
-            Target.RootedCompilationUnits rootedCompilationUnits = getRootedCompilationUnits();
-            Iterables.addAll(problems, rootedCompilationUnits.getProblems());
-
-            compilationUnitSet.addAll(rootedCompilationUnits.getUnits());
-
-            buildAndCollectProblems(compilationUnitSet, problems);
-
-            List<ICompilationUnit> reachableCompilationUnits = project.getReachableCompilationUnitsInSWFOrder(rootedCompilationUnits.getUnits());
-            ISWF swf = initializeSWF(reachableCompilationUnits);
-
-            // make main frame for DoABC tags
-            final SWFFrame mainFrame = new SWFFrame();
-            swf.addFrame(mainFrame);
-
-            // Add definitions.
-            for (final ICompilationUnit cu : compilationUnitSet)
-            {
-                // ignore externals
-                if (isLinkageExternal(cu, targetSettings))
-                    continue;
-
-                // ignore any resource bundles
-                if (cu instanceof ResourceBundleCompilationUnit)
-                    continue;
-
-                // Create a DoABC tag per compilation unit.
-
-                // Please add this API to SWFTarget. Thx.
-                // protected Boolean addToFrame(ICompilationUnit cu, SWFFrame mainFrame) throws InterruptedException
-                // final boolean tagsAdded = cu.getSWFTagsRequest().get().addToFrame(mainFrame);
-                final boolean tagsAdded = addToFrame(cu, mainFrame);
-                if (!tagsAdded)
-                {
-                    ICompilerProblem problem = new UnableToBuildSWFTagProblem(cu.getAbsoluteFilename());
-                    problems.add(problem);
-                }
-            }
-
-            createLinkReport(problems);
-
-            return swf;
-        }
-        catch (BuildCanceledException bce)
-        {
-            return null;
-        }
-        catch (InterruptedException ie)
-        {
-            return null;
-        }
-        finally
-        {
-            buildFinished();
-        }
-    }
-
-    // Please add this API to SWFTarget. Thx.
-    protected Boolean addToFrame(ICompilationUnit cu, SWFFrame mainFrame) throws InterruptedException
-    {
-        // SWFTarget's implementation:
-        // return cu.getSWFTagsRequest().get().addToFrame(mainFrame);
-
-        final JSSharedData sharedData = JSSharedData.instance;
-
-        String code = "";
-        final List<IDefinition> defs = MXMLJSC.getDefinitions(cu, false);
-        for (IDefinition def : defs)
-        {
-            final String fullName = def.getQualifiedName();
-            if (sharedData.hasJavaScript(fullName))
-            {
-                final String jsCode = sharedData.getJavaScript(fullName);
-                code += jsCode;
-            }
-        }
-
-        if (!code.isEmpty())
-        {
-            final DoABCTag abcTag = new DoABCTag();
-            abcTag.setABCData(code.getBytes());
-            mainFrame.addTag(abcTag);
-        }
-        else
-        {
-            return cu.getSWFTagsRequest().get().addToFrame(mainFrame);
-        }
-        sharedData.registerSWFFrame(mainFrame, cu);
-        return true;
-    }
-
-    /**
-     * sortCompilationUnits() is a workaround for DependencyGraph bugs. There
-     * are three problem areas: 1. The order of the CUs is somewhat random
-     * depending on the thread that compiled a CU. 2. Dependencies through
-     * static initializers are not always correctly detected. 3. Dependencies to
-     * classes provided by SWCs are not correctly detected.
-     */
-    public static List<ICompilationUnit> sortCompilationUnits(List<ICompilationUnit> frameCompilationUnits) throws InterruptedException
-    {
-        ICompilationUnit frameWorkCU = null;
-        ICompilationUnit xmlCU = null;
-        ICompilationUnit xmlListCU = null;
-
-        // extract framework CU, AS3XML CU, and AS3XMLList CU from frameCompilationUnits
-        Iterator<ICompilationUnit> it = frameCompilationUnits.iterator();
-        while (it.hasNext())
-        {
-            // get class name for compilation unit.
-            ICompilationUnit cu = it.next();
-            final List<IDefinition> defs = MXMLJSC.getDefinitions(cu, false);
-            for (IDefinition def : defs)
-            {
-                final String fullName = JSGeneratingReducer.createFullNameFromDefinition(cu.getProject(), def);
-                if (frameWorkCU == null && fullName.equals(JSSharedData.JS_FRAMEWORK_NAME))
-                {
-                    frameWorkCU = cu;
-                    it.remove();
-                }
-                else if (xmlCU == null && fullName.equals(JSSharedData.AS3XML))
-                {
-                    xmlCU = cu;
-                    it.remove();
-                }
-                else if (xmlListCU == null && fullName.equals(JSSharedData.AS3XMLList))
-                {
-                    xmlListCU = cu;
-                    it.remove();
-                }
-
-                if (def instanceof DefinitionBase)
-                {
-                    JSSharedData.instance.registerReferencedDefinition(def.getQualifiedName());
-                }
-
-                JSSharedData.instance.registerPackage(def.getPackageName());
-            }
-        }
-
-        // insist on framework CU
-        if (frameWorkCU == null)
-            throw JSSharedData.backend.createException("JSTarget: cannot find " + JSSharedData.JS_FRAMEWORK_NAME + " compilation unit.");
-
-        // add the framework CU at pos 0
-        frameCompilationUnits.add(0, frameWorkCU);
-
-        // add AS3XML and AS3XMLList framework CUs if necessary
-        if (xmlCU != null)
-        {
-            // add the AS3XML CU at pos 1
-            frameCompilationUnits.add(1, xmlCU);
-
-            // insist on AS3XMLList CU
-            if (xmlListCU == null)
-                throw JSSharedData.backend.createException("JSTarget: cannot find " + JSSharedData.AS3XMLList + " compilation unit.");
-
-            // add the AS3XMLList CU at pos 2
-            frameCompilationUnits.add(2, xmlListCU);
-        }
-
-        return frameCompilationUnits;
-    }
-
-    @Override
-    public Target.RootedCompilationUnits computeRootedCompilationUnits() throws InterruptedException
-    {
-        if (mainCU != null)
-        {
-            return new Target.RootedCompilationUnits(ImmutableSet.of(mainCU), Collections.<ICompilerProblem> emptyList());
-        }
-        
-        assert false;
-        return new Target.RootedCompilationUnits(Collections.<ICompilationUnit> emptySet(), Collections.<ICompilerProblem> emptyList());
-    }
-
-    @Override
-    protected FramesInformation computeFramesInformation() throws InterruptedException
-    {
-        assert false;
-        return null;
-    }
-
-    @Override
-    protected void addLinkedABCToFrame(SWFFrame targetFrame, Iterable<DoABCTag> inputABCs, ABCLinkerSettings linkSettings) throws Exception
-    {
-        assert false;
-    }
-
-    @Override
-    protected void setKeepAS3MetadataLinkerSetting(ABCLinkerSettings linkSettings)
-    {
-        assert false;
-    }
-
-}

http://git-wip-us.apache.org/repos/asf/flex-falcon/blob/c3dce49f/compiler.js/src/org/apache/flex/compiler/internal/graph/GoogDepsWriter.java
----------------------------------------------------------------------
diff --git a/compiler.js/src/org/apache/flex/compiler/internal/graph/GoogDepsWriter.java b/compiler.js/src/org/apache/flex/compiler/internal/graph/GoogDepsWriter.java
deleted file mode 100644
index 6a601fc..0000000
--- a/compiler.js/src/org/apache/flex/compiler/internal/graph/GoogDepsWriter.java
+++ /dev/null
@@ -1,299 +0,0 @@
-package org.apache.flex.compiler.internal.graph;
-
-import java.io.BufferedInputStream;
-import java.io.BufferedOutputStream;
-import java.io.File;
-import java.io.FileInputStream;
-import java.io.FileNotFoundException;
-import java.io.FileOutputStream;
-import java.io.IOException;
-import java.io.InputStream;
-import java.io.OutputStream;
-import java.util.ArrayList;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
-import java.util.Scanner;
-import java.util.Set;
-
-import org.apache.commons.io.FileUtils;
-import org.apache.flex.compiler.internal.projects.DependencyGraph;
-import org.apache.flex.compiler.units.ICompilationUnit;
-
-public class GoogDepsWriter {
-
-	public GoogDepsWriter(ICompilationUnit mainCU, File outputFolder)
-	{
-		this.mainCU = mainCU;
-		this.outputFolderPath = outputFolder.getAbsolutePath();
-		this.sourceFolderPath = mainCU.getAbsoluteFilename();
-		File sourceFile = new File(sourceFolderPath);
-		sourceFile = sourceFile.getParentFile();
-		this.sourceFolderPath = sourceFile.getAbsolutePath();
-		String flexJSHome = System.getenv("FLEXJS_HOME");
-		if (flexJSHome == null || flexJSHome.length() == 0)
-			System.out.println("FLEXJS_HOME not defined.  Should point to root of FlexJS source.");
-		frameworkRoot = flexJSHome;
-	}
-	
-	private ICompilationUnit mainCU;
-	private String outputFolderPath;
-	private String sourceFolderPath;
-	
-	private HashMap<String,GoogDep> depMap = new HashMap<String,GoogDep>();
-	
-	public ArrayList<String> getListOfFiles() throws InterruptedException
-	{
-		buildDB();
-		String mainName = mainCU.getShortNames().get(0);
-		ArrayList<GoogDep> dps = sort(mainName);
-		ArrayList<String> files = new ArrayList<String>();
-		for (GoogDep gd : dps)
-		{
-			files.add(gd.filePath);
-		}
-		return files;
-	}
-	
-	public void writeToStream(OutputStream outputStream) throws InterruptedException, FileNotFoundException
-	{
-		buildDB();
-		String mainName = mainCU.getShortNames().get(0);
-		ArrayList<GoogDep> dps = sort(mainName);
-		String outString = "// generated by FalconJS" + "\n";
-		int n = dps.size();
-		for (int i = n - 1; i >= 0; i--)
-		{
-			GoogDep gd = dps.get(i);
-			String s = "goog.addDependency('";
-			s += relativePath(gd.filePath);
-			s += "', ['";
-			s += gd.className;
-			s += "'], [";
-			s += getDependencies(gd.deps);
-			s += "]);\n";
-			outString += s;
-		}
-		System.out.println("Assumptions:");
-		System.out.println("    1) Output folder has copy of goog folder from GoogleClosure/library/closure/goog");
-		System.out.println("    2) Output folder has copy of FlexJS source in FlexJS folder");
-		System.out.println("    3) Output Folder structure is:");
-		System.out.println("             OutputFolder/");
-		System.out.println("                  goog/");
-		System.out.println("                      base.js");
-		System.out.println("                      ...");
-		System.out.println("                  flash/  (from FlexJS/src)");
-		System.out.println("                      events/  (from FlexJS/src)");
-		System.out.println("                  org/   (from FlexJS/src)");
-		System.out.println("                      apache/   (from FlexJS/src)");
-		System.out.println("    4) Output folder has html file of the form:");
-		System.out.println("<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">");
-		System.out.println("<html xmlns=\"http://www.w3.org/1999/xhtml\">");
-		System.out.println("<head>");
-		System.out.println("<meta http-equiv=\"Content-Type\" content=\"text/html; charset=UTF-8\" />");
-		System.out.println("<script type=\"text/javascript\" src=\"goog/base.js\" ></script>");
-		System.out.println("<script type=\"text/javascript\" src=\"" + mainName + "Deps.js" + "\" ></script>");
-		System.out.println("<script type=\"text/javascript\">");
-		System.out.println("    goog.require('" + mainName + "')");
-		System.out.println("</script>");
-		System.out.println("<script type=\"text/javascript\">");
-		System.out.println("    var app = new " + mainName + "();");
-		System.out.println("</script>");
-		System.out.println("<title>" + mainName + "</title>");
-		System.out.println("</head>");
-		System.out.println("<body onload=\"app.start()\">");
-		System.out.println("</body>");
-		System.out.println("</html>");
-		File htmlFile = new File(outputFolderPath + File.separator + mainName + ".example.html");
-		BufferedOutputStream outputbuffer = new BufferedOutputStream(new FileOutputStream(htmlFile));
-		String html = "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n";
-		html += "<html xmlns=\"http://www.w3.org/1999/xhtml\">\n";
-		html += "<head>\n";
-		html += "<meta http-equiv=\"Content-Type\" content=\"text/html; charset=UTF-8\" />\n";
-		html += "<script type=\"text/javascript\" src=\"goog/base.js\" ></script>\n";
-		html += "<script type=\"text/javascript\" src=\"" + mainName + "Deps.js" + "\" ></script>\n";
-		html += "<script type=\"text/javascript\">\n";
-		html += "    goog.require('" + mainName + "')\n";
-		html += "</script>\n";
-		html += "<script type=\"text/javascript\">\n";
-		html += "    var app = new " + mainName + "();\n";
-		html += "</script>\n";
-		html += "<title>" + mainName + "</title>\n";
-		html += "</head>\n";
-		html += "<body onload=\"app.start()\">\n";
-		html += "</body>\n";
-		html += "</html>\n";
-		try
-		{
-			outputbuffer.write(html.getBytes());
-			outputbuffer.flush();
-			outputbuffer.close();
-			outputStream.write(outString.getBytes());
-		}
-		catch (IOException e)
-		{
-			
-		}
-	}
-	
-	private void buildDB()
-	{
-		try {
-			addDeps(mainCU.getShortNames().get(0));
-		} catch (InterruptedException e) {
-			// TODO Auto-generated catch block
-			e.printStackTrace();
-		}
-	}
-	
-	private HashMap<String, GoogDep> visited = new HashMap<String, GoogDep>();
-	
-	private ArrayList<GoogDep> sort(String rootClassName)
-	{
-		ArrayList<GoogDep> arr = new ArrayList<GoogDep>();
-		GoogDep current = depMap.get(rootClassName);
-		sortFunction(current, arr);
-		return arr;
-	}
-	
-	private void sortFunction(GoogDep current, ArrayList<GoogDep> arr)
-	{
-		visited.put(current.className, current);
-
-		ArrayList<String> deps = current.deps;
-		for (String className : deps)
-		{
-			if (!visited.containsKey(className))
-			{
-				GoogDep gd = depMap.get(className);
-				sortFunction(gd, arr);
-			}
-		}
-		arr.add(current);
-	}
-	
-	private void addDeps(String className)
-	{
-		if (depMap.containsKey(className))
-			return;
-		
-		// build goog dependency list
-		GoogDep gd = new GoogDep();
-		gd.className = className;
-		gd.filePath = getFilePath(className);
-		depMap.put(gd.className, gd);
-		ArrayList<String> deps = getDirectDependencies(gd.filePath);
-		gd.deps = new ArrayList<String>();
-		for (String dep : deps)
-		{
-			gd.deps.add(dep);
-			addDeps(dep);
-		}
-	}
-	
-	String frameworkRoot;
-	
-	String getFilePath(String className)
-	{
-		System.out.println("Finding file for class: " + className);
-		String classPath = className.replace(".", File.separator);
-		String fn = frameworkRoot + File.separator + classPath + ".js";
-		File f = new File(fn);
-		if (f.exists())
-			return fn;
-		fn = sourceFolderPath + File.separator + classPath + ".js";
-		f = new File(fn);
-		if (f.exists())
-		{
-			fn = outputFolderPath + File.separator + classPath + ".js";
-			File destFile = new File(fn);
-			// copy source to output
-			try {
-				FileUtils.copyFile(f, destFile);
-				System.out.println("Copying file for class: " + className);
-			} catch (IOException e) {
-				// TODO Auto-generated catch block
-				System.out.println("Error copying file for class: " + className);
-			}
-			return fn;
-		}
-		fn = outputFolderPath + File.separator + classPath + ".js";
-		f = new File(fn);
-		if (f.exists())
-			return fn;
-		if (className.indexOf('.') > -1)
-		{
-			classPath = className.substring(className.lastIndexOf('.') + 1);
-			fn = outputFolderPath + File.separator + classPath + ".js";
-			f = new File(fn);
-			if (f.exists())
-				return fn;
-		}
-		System.out.println("Could not find file for class: " + className);
-		return "";
-	}
-	
-	private ArrayList<String> getDirectDependencies(String fn)
-	{
-		ArrayList<String> deps = new ArrayList<String>();
-		
-		FileInputStream fis;
-		try {
-			fis = new FileInputStream(fn);
-			Scanner scanner = new Scanner(fis, "UTF-8");
-			while (scanner.hasNextLine())
-			{
-				String s = scanner.nextLine();
-				if (s.indexOf("goog.inherits") > -1)
-					break;
-				int c = s.indexOf("goog.require");
-				if (c > -1)
-				{
-					int c2 = s.indexOf(")");
-					s = s.substring(c + 14, c2 - 1);
-					deps.add(s);
-				}
-			}
-		} catch (FileNotFoundException e) {
-			// TODO Auto-generated catch block
-			e.printStackTrace();
-		}
-		return deps;
-	}
-	
-	private String getDependencies(ArrayList<String> deps)
-	{
-		String s = "";
-		for (String dep : deps)
-		{
-			if (s.length() > 0)
-			{
-				s += ", ";
-			}
-			s += "'" + dep + "'";			
-		}
-		return s;
-	}
-
-	String relativePath(String path)
-	{
-		if (path.indexOf(frameworkRoot) == 0)
-		{
-			path = path.replace(frameworkRoot, "");
-		}
-		else if (path.indexOf(outputFolderPath) == 0)
-		{
-			path = path.replace(outputFolderPath, "");
-		}
-		// paths are actually URIs and always have forward slashes
-		path = path.replace('\\', '/');
-		return ".." + path;
-	}
-	private class GoogDep
-	{
-		public String filePath;
-		public String className;
-		public ArrayList<String> deps;
-		
-	}
-}