IMO, unless the discussion is going to cover proprietary aspects of IntelliJ, it might be more like the "Apache Way" to share the code in a git branch and continue to discuss on the list.
On 4/29/14 8:03 AM, "Alexander Doroshko" <alexander.doros...@jetbrains.com> wrote: >Yes, I'd gladly try it. We can switch to personal emails in order not to >spam the list. > >On 29.04.2014 18:34, Frédéric THOMAS wrote: >> Hi Alexander, >> >> I downloaded the files you indicated me + some missing files (UI, >>ShineMP3, metallica.wav), created an IntelliJ project, build and run >>successfully the application with Apache Flex SDK 4.12 / AIR 4.0 + my >>version of FDB and was unable to reproduce both of the issues, it worked >>as expected, so, that's a good news. >> >> Also, not on this test app but on another one [1], I've been able to >>set a BP on the worker using IntelliJ once the worker has been loaded >>but the variables was not readable and futur stops to the BP didn't >>work, IJ shows up the SystemManager class instead. >> >> If you are interested to test my version, just tell me and I will send >>it to you. >> >> Unfortunately, I haven't been able to work on it yesterday but will >>continue tonight. >> >> Frédéric THOMAS >> >> [1] https://github.com/doublefx/downloadFileWorker >> >> >>> Date: Tue, 29 Apr 2014 15:25:23 +0400 >>> From: alexander.doros...@jetbrains.com >>> To: dev@flex.apache.org >>> Subject: Re: [FDB] Integration >>> >>> Hi Frédéric, >>> that's great that you are ready to put the effort into fdb with workers >>> support! >>> >>> I have to say that IntelliJ IDEA still doesn't support debugging apps >>> with workers. I spent some time on it but faced some bugs in fdb that >>> were not that easy to workaround. That's not an excuse for me and I >>>hope >>> to finally support workers debug in the next version. Luckily fdb is >>>not >>> a black box for me any more. >>> >>> Below are some of the bugs that I faced. I played with this project: >>> http://gotoandlearn.com/play.php?id=169. 'Download files' link contains >>> already compiled MP3Worker.swf which is the main app. >>> >>> 1. When the worker is loaded it is impossible to switch to main thread >>> using 'worker 0' command. Fdb says that active worker has changed but >>> asking 'info workers' again says that actually it hasn't. See listing >>>[1]. >>> >>> 2. More important bug for the IDE integration is inability to set >>> breakpoint without knowing file id. Files that belong to different >>> workers may have the same id. When I ask to set a breakpoint in a file >>> with given name but current active worker doesn't have file with this >>> name then fdb sets the breakpoint inside completely different file that >>> does belong to the current worker and has the same id as the file where >>> I asked to set breakpoint. See listing [2]. >>> >>> Alexander >>> >>> [1] >>> >>> C:\flex\air_sdk_13.0_asc_2.0\bin>fdb >>> C:\flex\air_sdk_13.0_asc_2.0\bin>java -Dsun.io.useCanonCaches=false >>>-Xms32m -Xmx512m >>>-Dapplication.home="C:\flex\air_sdk_13.0_asc_2.0\bin\.." -jar >>>"C:\flex\air_sdk_13.0_asc_2.0\bin\../lib/legacy/fdb.jar" >>> Adobe fdb (Flash Player Debugger) [build development] >>> Copyright (c) 2004-2007 Adobe, Inc. All rights reserved. >>> (fdb) run >>> Waiting for Player to connect >>> Player connected; session starting. >>> Set breakpoints and then type 'continue' to resume the session. >>> [SWF] C:\work\flex_projects\MP3Worker\bin-debug\MP3Worker.swf - >>>175?169 bytes after decompression >>> (fdb) c >>> [WorkerCreate] 1 >>> Additional ActionScript code has been loaded from a SWF or a frame. >>> To see all currently loaded files, type 'info files'. >>> Active worker has changed to worker 1 >>> Set additional breakpoints as desired, and then type 'continue'. >>> (fdb) info workers >>> Main Thread 0 - Running >>> Worker 1 - Suspended (Active) >>> [SWF] C:\work\flex_projects\MP3Worker\bin-debug\MP3Worker.swf - >>>493?264 bytes after decompression >>> Set additional breakpoints as desired, and then type 'continue'. >>> (fdb) worker 0 >>> *Active worker has changed to worker Main Thread* >>> Set additional breakpoints as desired, and then type 'continue'. >>> (fdb) info workers >>> *Main Thread 0 - Running* >>> *Worker 1 - Suspended (Active)** >>> *Set additional breakpoints as desired, and then type 'continue'. >>> (fdb) >>> >>> [2] >>> >>> ... >>> (fdb) info workers >>> Main Thread 0 - Suspended (Active) >>> Worker 1 - Suspended >>> (fdb) show files >>> 1 /Users/leebrimelow/Documents/Adobe Flash Builder >>>4.6/MP3Worker/src/MP3Worker.as, MP3Worker.as (Main Thread) >>> 2 /Users/leebrimelow/Documents/Adobe Flash Builder >>>4.6/MP3Worker/src/Workers.as, Workers.as (Main Thread) >>> 1 /Users/leebrimelow/Documents/Adobe Flash Builder >>>4.6/MP3Worker/src/BackWorker.as, BackWorker.as (Worker 1) >>> 2 >>>/Users/kikko/work/tests/shineMP3_alchemy/src/fr/kikko/lab/ShineMP3Encode >>>r.as, ShineMP3Encoder.as (Worker 1) >>> *(fdb) break BackWorker.as:26** >>> **Breakpoint 2: file MP3Worker.as, line 26** >>> *(fdb) >>> >>> >>> On 27.04.2014 4:01, Frédéric THOMAS wrote: >>>> Hi, >>>> >>>> To resume a bit what I did and discover today: >>>> >>>> 1- I merged the donated code to the the current FDB, keeping the >>>>existing fixes and the current ExpressionEvaluator (I guess It is >>>>possible to use the new Falcon based implementation modifying the ANT >>>>script which builds it, in order to link the Falcon sources). >>>> >>>> 2- The new commands are "worker <workerID>" used to select a >>>>parlicular worker by its ID and "info workers", this is an example of >>>>what gives a break inside a worker and what displays the 2 commands : >>>> >>>> (fdb) info workers >>>> !mainThread! 0 - !workerRunning! >>>> !inWorker! {worker=1} - !workerSuspended! !workerSelected! >>>> >>>> (fdb) worker 0 >>>> !workerChanged! !mainThread! >>>> >>>> (fdb) info workers >>>> !mainThread! 0 - !workerRunning! !workerSelected! >>>> !inWorker! {worker=1} - !workerSuspended! >>>> >>>> (fdb) worker 1 >>>> !workerChanged! 1 >>>> >>>> (fdb) info workers >>>> !mainThread! 0 - !workerRunning! >>>> !inWorker! {worker=1} - !workerSuspended! !workerSelected! >>>> >>>> Note for IDE integration: >>>> >>>> 1- At the moment, watch, displays and breakpoints are set for 1 >>>>particular worker, it means, they need to be defined again when a >>>>worker starts. >>>> 2- "info breakpoints" does well display the breakpoints for the same >>>>line and on different worker of the same class but without the >>>>relative worker ID (I guess it could be easily fixed) >>>> >>>> I'll be back on it on Monday. >>>> >>>> Frédéric THOMAS >> >