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/../../com
>>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/bas
>>e/Function;)Ljava/util/concurrent/ConcurrentMap;
>>from class org.apache.flex.compiler.internal.projects.CompilerProject
>>at
>>org.apache.flex.compiler.internal.projects.CompilerProject.<init>(Compiler
>>Project.java:114)
>>at
>>org.apache.flex.compiler.internal.projects.ASProject.<init>(ASProject.java
>>:71)
>>at
>>org.apache.flex.compiler.internal.projects.FlexProject.<init>(FlexProject.
>>java:109)
>>at
>>org.apache.flex.compiler.internal.projects.FlexProject.<init>(FlexProject.
>>java:129)
>>at
>>org.apache.flex.compiler.internal.projects.FlexJSProject.<init>(FlexJSProj
>>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+Ado
>>>>>>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/dependencie
>>>>>>>>>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/frame
>>>>>>>>>wor
>>>>>>>>>ks
>>>>>>>>>/a
>>>>>>>>>s/libs/FlexJSUI.swc
>>>>>>>>>-js-output-type=FLEXJS
>>>>>>>>>-closure-lib=/Users/erik/Documents/ApacheFlex/dependencies/GoogleCl
>>>>>>>>>osu
>>>>>>>>>re
>>>>>>>>>/l
>>>>>>>>>ibrary
>>>>>>>>>-sdk-js-lib=/Users/erik/Documents/ApacheFlex/git/flex-asjs/framewor
>>>>>>>>>ks/
>>>>>>>>>js
>>>>>>>>>/F
>>>>>>>>>lexJS/src
>>>>>>>>>/Users/erik/Documents/ApacheFlex/git/flex-asjs/examples/FlexJSTest_
>>>>>>>>>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+AS3+
>>>>>>>>>>>>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

Reply via email to