Have you ever created a modularized app, accidentally introduced a dependency between one module and another, and then had to spend way too much time looking through the link report generated by mxmlc to find where the dependency got introduced?
I wrote an extremely short program to do this automatically. (If I reinvented the wheel, please let me know, but I couldn't find anything to do this) It builds a dependency graph using the mxmlc link-report file and then lets you easily find the path between two nodes in the graph using a simple depth-first search. It could easily be altered for other purposes, e.g. to make a picture of the dependency graph for more effective modularization. I temporarily posted the source here, if you want to grab it: http://8planes/MxmlcDep.tar.gz . Example usage to find the dependency path between my class ll.controller.textDialog.AddTextNoteController and mx.managers.CursorManager: DependencyGraph graph = new DependencyGraph(); graph.readLinkReport("/tmp/mainlinks.xml", new String[] { "flex_src" }); List<ScriptNode> path = graph.findPathBetween( "ll.controller.textDialog:AddTextNoteController", "mx.managers:CursorManager"); for (ScriptNode sNode : path) System.out.println(sNode.getName()); Output: ll.controller.textDialog:AddTextNoteController ll.controller:LanguageCheckingUtil ll.rpc:AsyncCallbackAdapter ll.view:ViewFactory ll.view:IViewFactory ll.view:SignupPopup ll.controller:SignupController ll.controller:MainCoordinator mx.controls:DataGrid mx.controls.listClasses:ListBaseContentHolder mx.controls.listClasses:ListBase mx.managers:DragManager mx.managers.dragClasses:DragProxy mx.managers:CursorManager Hope you find it useful!

