Hi Andrew,

many thanks for the thoughts and links in your email. I think that could be
of great help.
Maybe I could prepare some example in our Royale repo (as part of the
current MX RemoteObject and Java examples) to help see the problem under
some real circumstances. I'll try it and report here as I get it so we all
can have it as a reference or showcase of the problem.

thanks

El mar., 20 nov. 2018 a las 12:48, Frost, Andrew (<andrew.fr...@harman.com>)
escribió:

> Hi guys
>
> I'm not 100% sure whether this will help, but if I'm right in thinking
> that what you're trying to do is to mimic the Flash object serialisation,
> then I think that this information is actually in the public domain
> already..
>
> Carlos, you wrote:
> "ArrayCollection uses IExternalizable and that part is our main problem
> since we don’t have references, just simple docs but no real
> implementation, guides or notes about it."
>
> The IExternalizable.as implementation is part of avmplus:
> https://github.com/adobe/avmplus/blob/master/core/IExternalizable.as
> ArrayCollection is of course part of Flex:
> https://github.com/apache/flex-sdk/blob/master/frameworks/projects/framework/src/mx/collections/ArrayCollection.as
> and you can then follow through what's happening.
>
> And, having just done that, I'm guessing you're looking at how
> "readObject" works. Presumably you're serialising into a ByteArray, which
> means ultimately you'll end up in the heart of the avmplus code:
> https://github.com/adobe/avmplus/blob/master/core/Toplevel.cpp#L1504
> and
> https://github.com/adobe/avmplus/blob/master/core/AvmSerializer.cpp
> which is quite complex...!
>
> Not sure if those help at all but it looks to me like it should be
> possible to have some JavaScript code to do all this. If this is the sort
> of area that you're looking at then let me know, I've got extensive
> experience with the avmplus code and have builds of it that I can
> tweak/play with to debug what happens in various scenarios! but I don't
> have any experience with using RemoteObject hence this may all be
> completely irrelevant..
>
> thanks
>
>    Andrew
>
>
> -----Original Message-----
> From: Greg Dove [mailto:greg.d...@gmail.com]
> Sent: 20 November 2018 09:47
> To: dev@royale.apache.org
> Subject: [EXTERNAL] Re: Problems sending MX ArrayCollections with MX
> RemoteObject
>
> Hi Alex,
>
> To follow on from what Carlos explained...  your initial implementation
> with AMFBinaryData was working quite well for smaller object graphs.
>
> And I was able to make some changes to get it to special-case
> ArrayCollection for now on the reading side (it's not a proper
> implementation, but it was to get things working for now).
>
> What I am missing is some good implementation notes ('conforming readers
> and writers must do this'). For example, I'm not sure what the object table
> (rememberObject/traitsByReference) rules are for Externalizables, and it's
> really hard to 'discover' through comparisons with things like ByteArray or
> BlazeDS responses partly because the undefined output order of the fields
> in a large graph which makes direct comparison of byte sequences from the 2
> sources not so easy.
>
> In the end I will be happy to keep working on getting AMFBinaryData fully
> featured in my own time to help with the general MX effort, but Carlos
> needs certain things working for his project, which are our current
> priorities.
>
> I do have some improvements that I can get in for AMFBinaryData in the
> next few days (I'm still refining things):
> I have some code that avoids inappropriate field data for serialization:
> only accessors with readwrite access (not getter only or setter only) no
> static accessors or variables excludes any field with 'Transient' metadata
>
>
> But I'm still actively trying to figure out how to get the AC writing
> correctly in a complex graph, and I really need to understand what the
> rules are supposed to be. In terms of 'Externalizable' AC seems quite
> simple, so I thought it would be easy... but I think I am messing up the
> object reference table when I do this... I was hoping there might be
> something documented for implentation notes that is 'public' but 'not well
> publicized' that you might be aware of, perhaps through some of your
> internal connections. if we can get this fully fledged as quickly as
> possible, even if it just focused on AC for now on the 'Externalizable'
> side then that will help Alina and others as well, I think. I've had my
> head in this for a bit now, so if I have the info, I will find the time.
>
> Hopefully you can provide some insight!
> -Greg
>
>
>
>
> On Tue, Nov 20, 2018 at 10:19 PM Carlos Rovira <carlosrov...@apache.org>
> wrote:
>
> > Hi Alex,
> >
> > Greg and I are working this days in sending MX ArrayCollection with MX
> > RemoteObject to BlazeDS. We found that part is not working.
> > This is huge problem since without solving this we can't progress in
> > our migration, so hope you could take care of this issue and help us
> > to find the solution.
> >
> > The main problem is that we don't have or find a good reference of the
> > way it should be implemented and the format makes it difficult to
> discover.
> > ArrayCollection uses IExternalizable and that part is our main problem
> > since we don’t have references, just simple docs but no real
> > implementation, guides or notes about it.
> >
> > Our better bet is that you could get some help at Adobe internally
> > since I don't think this info is in internet (at least we search
> > heavily to try to find).
> >
> > I think with out this problem fixed no application using MX
> > RemoteObject for communication could be migrated from Flex to Royale,
> > since as soon they want to send and complex graph that uses MX
> ArrayCollection it will fail.
> >
> > Greg can comment more about this problem since he was working hard on
> > the issue this days.
> >
> > Thanks in advance for your help
> >
> >
> > --
> > Carlos Rovira
> > https://clicktime.symantec.com/a/1/fECozPwEKwcw-Ikf3a3HC4wIeBurGWwaEzA
> > E2QRfLRk=?d=ezg34mnblPal5Fyvz8kFGVPZYWSwgwTIshTP4R6ZZBwOU_9DnOO0vulBQk
> > WMjrartx1QiEcmaQF0W-s21xYUmmwd8VZI2paWYczV2yv9_RGOX7HvcYTbT5-boGyLZsXs
> > i81oDbXjP_kE8HOHv-CO0RmzekCJ4IXZ1dfI4iczGVVKJlFs3Z9QfZKPIsqL8bfsOPw83b
> > 72ng2yLuRO4g252wF9TWPtu2CAYr-VXOzqqiXrKi2Zrk9wM3FFEc9hUJ9dpb5b4bflw_r8
> > nj8z30JVYIfUlmah923Rr-8mDPJO0JvmMDiSEWJojxBQAi_wWktydSWyDvGSDJidxjtFsq
> > UpjRFuCNjuBFxim5GH2bZCj-0Gra3yfagBCVNYiT95Zq5loJN_-kHI8W8-jEOaVK-3Hgd4
> > iAgxK7oB4xr5-PopRVTJDHsb3OeOqtd9_rjFDbCq0EtWEowCy2xcWbcBzo0IiQhRTv3Mrs
> > x48H3qjmo%3D&u=http%3A%2F%2Fabout.me%2Fcarlosrovira
> >
>


-- 
Carlos Rovira
http://about.me/carlosrovira

Reply via email to