There are a few places where there is a main compilation unit. I think even a mainCU variable.
And you might be able to inject in the publishing phase. You know the main file by then as well. -Alex On 10/31/13 3:49 PM, "Erik de Bruin" <e...@ixsoftware.nl> wrote: >Ok, rounding off the 'is' and 'as' implementation. > >One quick question: how do I figure out - in FalconJx - if the >'current' class is the 'main' or 'toplevel' class? I need to inject a >special 'goog.require', which I rather don't do in all classes, >instead I'd like to only add it to the first class ('Application' or >similar)... > >Thoughts? > >EdB > > > >On Thu, Oct 31, 2013 at 6:05 PM, Alex Harui <aha...@adobe.com> wrote: >> It's been so long since I've seen that, that I don't completely >>remember. >> >> I believe it could be a Java class path issue. That the compiler is >> picking up an different version of MapMaker than expected. >> >> -Alex >> >> On 10/31/13 9:58 AM, "Erik de Bruin" <e...@ixsoftware.nl> wrote: >> >>>And I killed it again... Now I'm getting this (vaguely familiar) error: >>> >>>Using Falcon codebase: >>>/Users/erik/Documents/ApacheFlex/git/flex-falcon/compiler.jx/bin/../../c >>>om >>>piler >>>Using Flex SDK: /Users/erik/Desktop/OverlayedSDK >>>Exception in thread "main" java.lang.IllegalAccessError: tried to >>>access method >>>com.google.common.collect.MapMaker.makeComputingMap(Lcom/google/common/b >>>as >>>e/Function;)Ljava/util/concurrent/ConcurrentMap; >>>from class org.apache.flex.compiler.internal.projects.CompilerProject >>>at >>>org.apache.flex.compiler.internal.projects.CompilerProject.<init>(Compil >>>er >>>Project.java:114) >>>at >>>org.apache.flex.compiler.internal.projects.ASProject.<init>(ASProject.ja >>>va >>>:71) >>>at >>>org.apache.flex.compiler.internal.projects.FlexProject.<init>(FlexProjec >>>t. >>>java:109) >>>at >>>org.apache.flex.compiler.internal.projects.FlexProject.<init>(FlexProjec >>>t. >>>java:129) >>>at >>>org.apache.flex.compiler.internal.projects.FlexJSProject.<init>(FlexJSPr >>>oj >>>ect.java:48) >>>at org.apache.flex.compiler.clients.MXMLJSC.<init>(MXMLJSC.java:198) >>>at org.apache.flex.compiler.clients.MXMLJSC.main(MXMLJSC.java:171) >>> >>>Remind me, how do I fix this? >>> >>>EdB >>> >>> >>> >>>On Thu, Oct 31, 2013 at 3:09 PM, Erik de Bruin <e...@ixsoftware.nl> >>>wrote: >>>> Basically, I'm complaining it's getting too hard to develop for this, >>>> but I guess that's to be expected at this stage. >>>> >>>> It's up and running now. >>>> >>>> EdB >>>> >>>> >>>> >>>> On Thu, Oct 31, 2013 at 2:33 PM, Alex Harui <aha...@adobe.com> wrote: >>>>> Not sure what you're asking. There isn't any Adobe code in there. >>>>>The >>>>> zip contains binaries so it can't go in the repo. The sh/bat files >>>>>in >>>>>the >>>>> zip are not in the repo because I keep hoping they will go away >>>>>someday >>>>> and be replaced by an installer. >>>>> >>>>> -Alex >>>>> >>>>> On 10/31/13 6:30 AM, "Erik de Bruin" <e...@ixsoftware.nl> wrote: >>>>> >>>>>>Ok... is that proprietary code, or just not in the repo yet? >>>>>> >>>>>>EdB >>>>>> >>>>>> >>>>>> >>>>>>On Thu, Oct 31, 2013 at 2:26 PM, Alex Harui <aha...@adobe.com> wrote: >>>>>>> By using the FlexJSOverlay.zip on my people.a.o folder. >>>>>>>Instructions >>>>>>>are >>>>>>> available at >>>>>>> >>>>>>>https://cwiki.apache.org/confluence/display/FLEX/Using+FlexJS+with+A >>>>>>>do >>>>>>>be+ >>>>>>>Fl >>>>>>> ash+Builder >>>>>>> >>>>>>> -Alex >>>>>>> >>>>>>> On 10/31/13 6:20 AM, "Erik de Bruin" <e...@ixsoftware.nl> wrote: >>>>>>> >>>>>>>>And how does one 'overlay' an SDK? >>>>>>>> >>>>>>>>EdB >>>>>>>> >>>>>>>> >>>>>>>> >>>>>>>>On Thu, Oct 31, 2013 at 2:07 PM, Alex Harui <aha...@adobe.com> >>>>>>>>wrote: >>>>>>>>> I've been testing against DataBindingTest whose sources are up on >>>>>>>>>my >>>>>>>>> people.a.o folder, so maybe this doesn't build anymore, but the >>>>>>>>>console >>>>>>>>> output looks like you are referencing a full Apache Flex SDK >>>>>>>>>instead >>>>>>>>>of >>>>>>>>> one that is overlaid, which might cause the compiler to find CSS >>>>>>>>>files >>>>>>>>>in >>>>>>>>> a whole bunch of SWCs that we don't currently handle. >>>>>>>>> >>>>>>>>> IOW, you can't just add FlexJSUI.swc to an existing SDK, it has >>>>>>>>>to >>>>>>>>>be >>>>>>>>> "overlaid" which neuters some things in an Apache Flex SDK. >>>>>>>>> >>>>>>>>> -Alex >>>>>>>>> >>>>>>>>> On 10/31/13 5:29 AM, "Erik de Bruin" <e...@ixsoftware.nl> wrote: >>>>>>>>> >>>>>>>>>>Hi, >>>>>>>>>> >>>>>>>>>>I'm busy building support for the "is" and "as" operators into >>>>>>>>>>FlexJS. >>>>>>>>>>Now, first I thought I'd try to compile the FlexJSTest_again >>>>>>>>>>example. >>>>>>>>>>To my suprise, I get an error: >>>>>>>>>> >>>>>>>>>>CSS codegen problem. Reason: 'Unable to find compilation unit for >>>>>>>>>>Embed(source="Assets.swf",symbol="mx.skins.cursor.BusyCursor")' >>>>>>>>>> >>>>>>>>>>The error seems to originate from FalconJx, it is thrown in >>>>>>>>>>JSCSSCompilationSession.java... Now, my sources are fresh, I've >>>>>>>>>>rebuild the SDK (super-clean main), all compiler projects (wipe >>>>>>>>>>main) >>>>>>>>>>and the FlexUI.swc. Am I missing something (command line arg) or >>>>>>>>>>is >>>>>>>>>>there some source not yet committed or something more obvious I'm >>>>>>>>>>overlooking? >>>>>>>>>> >>>>>>>>>>These are my arguments: >>>>>>>>>> >>>>>>>>>>+env.PLAYERGLOBAL_HOME=/Users/erik/Documents/ApacheFlex/dependenc >>>>>>>>>>ie >>>>>>>>>>s/P >>>>>>>>>>la >>>>>>>>>>ye >>>>>>>>>>rGlobal/player >>>>>>>>>>+playerglobal.version=11.1 >>>>>>>>>>-load-config="/Applications/Adobe Flash Builder >>>>>>>>>>4.7/sdks/4.10.0/frameworks/flex-config.xml" >>>>>>>>>>-library-path+=/Users/erik/Documents/ApacheFlex/git/flex-asjs/fra >>>>>>>>>>me >>>>>>>>>>wor >>>>>>>>>>ks >>>>>>>>>>/a >>>>>>>>>>s/libs/FlexJSUI.swc >>>>>>>>>>-js-output-type=FLEXJS >>>>>>>>>>-closure-lib=/Users/erik/Documents/ApacheFlex/dependencies/Google >>>>>>>>>>Cl >>>>>>>>>>osu >>>>>>>>>>re >>>>>>>>>>/l >>>>>>>>>>ibrary >>>>>>>>>>-sdk-js-lib=/Users/erik/Documents/ApacheFlex/git/flex-asjs/framew >>>>>>>>>>or >>>>>>>>>>ks/ >>>>>>>>>>js >>>>>>>>>>/F >>>>>>>>>>lexJS/src >>>>>>>>>>/Users/erik/Documents/ApacheFlex/git/flex-asjs/examples/FlexJSTes >>>>>>>>>>t_ >>>>>>>>>>aga >>>>>>>>>>in >>>>>>>>>>/s >>>>>>>>>>rc/FlexJSTest_again.mxml >>>>>>>>>> >>>>>>>>>>EdB >>>>>>>>>> >>>>>>>>>> >>>>>>>>>>On Thu, Oct 31, 2013 at 6:37 AM, Erik de Bruin >>>>>>>>>><e...@ixsoftware.nl> >>>>>>>>>>wrote: >>>>>>>>>>> I'll have a look at it today. >>>>>>>>>>> >>>>>>>>>>> EdB >>>>>>>>>>> >>>>>>>>>>> >>>>>>>>>>> >>>>>>>>>>> On Wednesday, October 30, 2013, Peter Ent wrote: >>>>>>>>>>>> >>>>>>>>>>>> Thanks, Erik. Interesting read. FlexJS uses a lot of >>>>>>>>>>>>interfaces >>>>>>>>>>>>so >>>>>>>>>>>>we'll >>>>>>>>>>>> have to find a reasonable solution for this. We've managed to >>>>>>>>>>>>avoid >>>>>>>>>>>>the >>>>>>>>>>>> situation in JavaScript but it is coming up quickly. >>>>>>>>>>>> >>>>>>>>>>>> --peter >>>>>>>>>>>> >>>>>>>>>>>> On 10/30/13 3:10 PM, "Erik de Bruin" <e...@ixsoftware.nl> >>>>>>>>>>>>wrote: >>>>>>>>>>>> >>>>>>>>>>>> >Some guidance can be found here [1] and here [2]. >>>>>>>>>>>> > >>>>>>>>>>>> >EdB >>>>>>>>>>>> > >>>>>>>>>>>> >1: >>>>>>>>>>>> >>>>>>>>>>>> > >>>>>>>>>>>>>http://blogs.adobe.com/bparadie/2011/11/26/classes-inheritance >>>>>>>>>>>>>-i >>>>>>>>>>>>>nte >>>>>>>>>>>>>rf >>>>>>>>>>>>>ac >>>>>>>>>>>>>es- >>>>>>>>>>>> >packages-and-namespaces/ >>>>>>>>>>>> >2: >>>>>>>>>>>> >>>>>>>>>>>> > >>>>>>>>>>>>>https://cwiki.apache.org/confluence/display/FLEX/Simulating+AS >>>>>>>>>>>>>3+ >>>>>>>>>>>>>lan >>>>>>>>>>>>>gu >>>>>>>>>>>>>ag >>>>>>>>>>>>>e+f >>>>>>>>>>>> >eatures+in+JavaScript+using+AMD+and+ES5 >>>>>>>>>>>> > >>>>>>>>>>>> > >>>>>>>>>>>> > >>>>>>>>>>>> >On Wed, Oct 30, 2013 at 8:07 PM, Erik de Bruin >>>>>>>>>>>><e...@ixsoftware.nl> >>>>>>>>>>>> > wrote: >>>>>>>>>>>> >> "instanceof" doesn't check if an interface is implemented, >>>>>>>>>>>>neither >>>>>>>>>>>>in >>>>>>>>>>>> >> Flex nor using Closure inheritance in JavaScript. What we >>>>>>>>>>>>need >>>>>>>>>>>>for >>>>>>>>>>>> >> runtime checking of interface implementation is an global >>>>>>>>>>>>"is" >>>>>>>>>>>> >> function... I think I taught FalconJx to translate "ClassA >>>>>>>>>>>>is >>>>>>>>>>>>ClassB" >>>>>>>>>>>> >> as "is(ClassA, ClassB)". All we need to do now is to >>>>>>>>>>>>implement a >>>>>>>>>>>> >> global "is()" function and somehow teach the compiler to >>>>>>>>>>>>keep >>>>>>>>>>>>track >>>>>>>>>>>>of >>>>>>>>>>>> >> which classes implement which interfaces - all the way up >>>>>>>>>>>>the >>>>>>>>>>>>chain >>>>>>>>>>>> >> and sideways (interfaces can implement interfaces). >>>>>>>>>>>> >> >>>>>>>>>>>> >> EdB >>>>>>>>>>>> >> >>>>>>>>>>>> >> >>>>>>>>>>>> >> >>>>>>>>>>>> >> On Wed, Oct 30, 2013 at 6:34 PM, Alex Harui >>>>>>>>>>>><aha...@adobe.com> >>>>>>>>>>>>wrote: >>>>>>>>>>>> >>> Reviving this thread... >>>>>>>>>>>> >>> >>>>>>>>>>>> >>> Peter says he wants to test to see if an object implements >>>>>>>>>>>>an >>>>>>>>>>>> >>>interface at >>>>>>>>>>>> >>> runtime. What mechanism do we want to use? >>>>>>>>>>>> >>> >>>>>>>>>>>> >>> I don't think we need to make instanceof work, just have >>>>>>>>>>>>some >>>>>>>>>>>>test >>>>>>>>>>>>to >>>>>>>>>>>> >>>call. >>>>>>>>>>>> >>> >>>>>>>>>>>> >>> -Alex >>>>>>>>>>>> >>> >>>>>>>>>>>> >>> On 7/30/13 12:46 AM, "Erik de Bruin" <e...@ixsoftware.nl> >>>>>>>>>>>>wrote: >>>>>>>>>>>> >>> >>>>>>>>>>>> >>>>When using interfaces for type checking, there are two >>>>>>>>>>>>'kinds': >>>>>>>>>>>>at >>>>>>>>>>>> >>>>compilation and at runtime. >>>>>>>>>>>> >>>> >>>>>>>>>>>> >>>>The @interface and @implements annotations are for compile >>>>>>>>>>>>time >>>>>>>>>>>> >>>>checking. >>>>>>>>>>>> >>>> >>>>>>>>>>>> >>>>For runtime checking comes in two flavours: 'instanceof' >>>>>>>>>>>>and >>>>>>>>>>>>'is'. >>>>>>>>>>>> >>>> >>>>>>>>>>>> >>>>Our method of setting up inheritance (goog.inherits) >>>>>>>>>>>>maintains >>>>>>>>>>>>the >>>>>>>>>>>> >>>>inheritance chain, so 'instanceof' works out of the box. >>>>>>>>>>>> >>>> >>>>>>>>>>>> >>>>The work starts with 'is'. We want to story the 'extends' >>>>>>>>>>>>and >>>>>>>>>>>> >>>>'implements' metadata from AS in the JS classes and >>>>>>>>>>>>create a >>>>>>>>>>>>method to >>>>>>>>>>>> >>>>test against that metadata set. I have a pretty good idea >>>>>>>>>>>>on >>>>>>>>>>>>how >>>>>>>>>>>>to >>>>>>>>>>>> >>>>implement such a beast, but it will require some (ha!) >>>>>>>>>>>>tinkering >>>>>>>>>>>>with >>>>>>>>>>>> >>>>the FlexJS JS framework and FalconJx. That will take some >>>>>>>>>>>>time... >>>>>>>>>>>> >>>> >>>>>>>>>>>> >>>>EdB >>>>>>>>>>>> >>>> >>>>>>>>>>>> >>>> >>>>>>>>>>>> >>>> >>>>>>>>>>>> >>>>On Mon, Jul 29, 2013 at 9:17 PM, OmPrakash Muppirala >>>>>>>>>>>> >>>><bigosma...@gmail.com> wrote: >>>>>>>>>>>> >>>>> On Mon, Jul 29, 2013 at 11:20 AM, Alex Harui >>>>>>>>>>>><aha...@adobe.com> >>>>>>>>>>>> >>>>>wrote: >>>>>>>>>>>> >>>>> >>>>>>>>>>>> >>>>>> I think FalconJS was going to generate something like: >>>>>>>>>>>> >>>>>> >>>>>>>>>>>> >>>>>> if (child != undefined && >>>>>>>>>>>> >>>>>> child.$implements["org.apache.flex.core.IChrome"]) >>>>>>>>>>>> >>>>>> >>>>>>>>>>>> >>>>>> Not sure what it was going to do for classes, maybe >>>>>>>>>>>>chase >>>>>>>>>>>>the >>>>>>>>>>>> >>>>>>prototype >>>>>>>>>>>> >>>>>> chain? >>>>>>>>>>>> >>>>>> >>>>>>>>>>>> >>>>>> The other thing that occurred to me about $implements >>>>>>>>>>>>or >>>>>>>>>>>> >>>>>>child.is(IChrome) >>>>>>>>>>>> >>>>>> is that all objects must then have these properties or >>>>>>>>>>>>functions >>>>>>>>>>>> >>>>>>where >>>>>>>>>>>> >>>>>>the >>>>>>>>>>>> >>>>>> global function >>>>>>>>>>> >>>>>>>>>>> >>>>>>>>>>> >>>>>>>>>>> -- >>>>>>>>>>> Ix Multimedia Software >>>>>>>>>>> >>>>>>>>>>> Jan Luykenstraat 27 >>>>>>>>>>> 3521 VB Utrecht >>>>>>>>>>> >>>>>>>>>>> T. 06-51952295 >>>>>>>>>>> I. www.ixsoftware.nl >>>>>>>>>> >>>>>>>>>> >>>>>>>>>> >>>>>>>>>>-- >>>>>>>>>>Ix Multimedia Software >>>>>>>>>> >>>>>>>>>>Jan Luykenstraat 27 >>>>>>>>>>3521 VB Utrecht >>>>>>>>>> >>>>>>>>>>T. 06-51952295 >>>>>>>>>>I. www.ixsoftware.nl >>>>>>>>> >>>>>>>> >>>>>>>> >>>>>>>> >>>>>>>>-- >>>>>>>>Ix Multimedia Software >>>>>>>> >>>>>>>>Jan Luykenstraat 27 >>>>>>>>3521 VB Utrecht >>>>>>>> >>>>>>>>T. 06-51952295 >>>>>>>>I. www.ixsoftware.nl >>>>>>> >>>>>> >>>>>> >>>>>> >>>>>>-- >>>>>>Ix Multimedia Software >>>>>> >>>>>>Jan Luykenstraat 27 >>>>>>3521 VB Utrecht >>>>>> >>>>>>T. 06-51952295 >>>>>>I. www.ixsoftware.nl >>>>> >>>> >>>> >>>> >>>> -- >>>> Ix Multimedia Software >>>> >>>> Jan Luykenstraat 27 >>>> 3521 VB Utrecht >>>> >>>> T. 06-51952295 >>>> I. www.ixsoftware.nl >>> >>> >>> >>>-- >>>Ix Multimedia Software >>> >>>Jan Luykenstraat 27 >>>3521 VB Utrecht >>> >>>T. 06-51952295 >>>I. www.ixsoftware.nl >> > > > >-- >Ix Multimedia Software > >Jan Luykenstraat 27 >3521 VB Utrecht > >T. 06-51952295 >I. www.ixsoftware.nl