There is a css clash between Jewel and MXRoyale, and there might be more
issues at the child element level with different required base classes etc,
but I am not sure because I did not try that. Alex will undoubtedly explain
better than me.
I am pretty sure you cannot use MXRoyale visual components combined with
Jewel in the same project. But you do need the service related classes from
MXRoyale for Cairngorm.
I am testing Cairngorm using 'Express', but if you want to use Jewel (e.g.
always <j:Button or <j:SomethingElse and never <mx:Something), the
following should work so that you can still use the service classes from MX
(which Cairngorm has hard dependencies for).
Below is what I am doing... you need to add the third option of the
following in maven:
<additionalCompilerOptions>
-js-default-initializers=true;
-source-map=true;
-compiler.exclude-defaults-css-files=MXRoyale-0.9.7-SNAPSHOT-js.swc:defaults.css;
</additionalCompilerOptions>
The first 2 above are options I use during development - you may or may not
want those.
I will try to make the full source of what I have available for Cairngorm
port in about 24 hours time from this email. I need to check all the
licence stuff. I have a test app working but no view-related Cairngorm
stuff yet.
On Sun, Feb 9, 2020 at 12:33 PM De Carli Gustavo <[email protected]>
wrote:
> Hi .
>
> *Alex* : 0.9.7-snapshot royale-compiler - you're right, this was correct,
> the error does not reproduce anymore (null0).
> *Greg*. I tried the library and it worked correctly, I would like to know
> the implementation of the ServiceLocator.as how it is done, I made my own
> and although it worked, I have problems when I add a jewel tag in the
> project, for example a <j: Button>
>
> Is it possible or correct to have tag mx and jewel in the same project?
>
> *thanks to you .*
>
>
> El vie., 7 feb. 2020 a las 14:14, Alex Harui (<[email protected]>)
> escribió:
>
>> Make sure your app is using the updated compiler. I assume you are using
>> Maven to compile the app? Check the pom.xml to make sure it is referencing
>> the 0.9.7-SNAPSHOT and not just 0.9.7 or some other version. One trick is
>> to add some System.out.println to the file that was changed and see if it
>> shows up in the output.
>>
>>
>>
>> Regarding the tests, in the pom.xml for some of the projects like
>> compiler-jx, the maven-surefire-plugin and maven-failsafe-plugin dictate
>> which tests/files are run.
>>
>>
>>
>> HTH,
>>
>> -Alex
>>
>>
>>
>> *From: *De Carli Gustavo <[email protected]>
>> *Reply-To: *"[email protected]" <[email protected]>
>> *Date: *Friday, February 7, 2020 at 3:15 AM
>> *To: *"[email protected]" <[email protected]>
>> *Subject: *Re: Cairngorm problem add remote object MXML.
>>
>>
>>
>>
>> Hi, yesterday I tried with the change of Alex, from the royale-compiler
>> without success, the "null0" continues. I don't know if I missed a step.
>>
>> I rebuilt with the royale-compiler project "mvn clean install" and tried
>> again the compilation of my project.
>>
>> On the other hand I am seeing to create a Test in the project, but I see
>> that they are not running the tests of the package "royale-compiler \
>> compiler-jx \ src \ test \ java \ org \ apache \ royale \ compiler \
>> internal \ codegen \ mxml \ ...", do you know why?
>>
>>
>>
>> Thanks.
>>
>> Gustavo.
>>
>>
>>
>> El vie., 7 feb. 2020 a las 4:21, Greg Dove (<[email protected]>)
>> escribió:
>>
>>
>> I'll try to get an minimal example working over my weekend sometime to
>> test what I have. I made a quick start on that, just to get something that
>> compiles. Once I see that it seems to be working I will release to git repo
>> for the port.
>>
>> If you do want to try a different swc from what you already have, you
>> could try one now from builds here I think:
>>
>>
>>
>> https://www.dropbox.com/sh/xk8aui9ghy30mid/AAAAx0LUpfjXEQWC221zAjTza?dl=0
>> <https://nam04.safelinks.protection.outlook.com/?url=https%3A%2F%2Fwww.dropbox.com%2Fsh%2Fxk8aui9ghy30mid%2FAAAAx0LUpfjXEQWC221zAjTza%3Fdl%3D0&data=02%7C01%7Caharui%40adobe.com%7C707a97326caa408ce15e08d7abbf0ebb%7Cfa7b1b5a7b34438794aed2c178decee1%7C0%7C0%7C637166709390899554&sdata=6YfYnU896lHruaduCxUnrCkndhecXz7JELyQBoJd%2FFU%3D&reserved=0>
>>
>>
>>
>> (I will remove that link in some days once the port is more thoroughly
>> tested and available to all)
>>
>>
>>
>> I was able to inspect and verify that the js build had a ServicesLocator
>> (as defined in that swc) mxml subclass which was populating correctly with
>> the recent compiler changes from Alex, but I am not yet able to test more
>> thoroughly. The view support probably won't work yet because there are no
>> 'added' and 'removed' events, but we will figure something out.
>>
>>
>>
>>
>>
>>
>>
>>
>>
>> On Fri, Feb 7, 2020 at 6:23 PM Greg Dove <[email protected]> wrote:
>>
>>
>> Alex, I tested this change today. There is more to it than that, it
>> seems. I will discuss details in dev list.
>>
>>
>>
>>
>>
>> On Fri, Feb 7, 2020 at 8:40 AM Alex Harui <[email protected]> wrote:
>>
>> royale-compiler
>>
>>
>>
>> *From: *De Carli Gustavo <[email protected]>
>> *Reply-To: *"[email protected]" <[email protected]>
>> *Date: *Thursday, February 6, 2020 at 11:39 AM
>> *To: *"[email protected]" <[email protected]>
>> *Subject: *Re: Cairngorm problem add remote object MXML.
>>
>>
>>
>> Sorry Alex, what repository is that of the push ?
>>
>>
>>
>> El jue., 6 feb. 2020 a las 16:13, Alex Harui (<[email protected]>)
>> escribió:
>>
>> I just pushed a change to the compiler. It should now have valid output
>> for ServiceLocator.
>>
>>
>>
>> The compiler change was interesting in that I changed an else clause that
>> was put in to handle instances specified as children of top tags but was
>> doing the wrong thing. All of the compiler tests passed, but never hit
>> that code so none of our tests actually used that code, even though the
>> commit log implied it was for one of the tests. Either I made the earlier
>> change to propagate the fix for plain properties to instances or there is
>> some other scenario for instances as children (without a default property)
>> that I am not thinking of.
>>
>>
>>
>> -Alex
>>
>>
>>
>> *From: *De Carli Gustavo <[email protected]>
>> *Reply-To: *"[email protected]" <[email protected]>
>> *Date: *Thursday, February 6, 2020 at 6:03 AM
>> *To: *"[email protected]" <[email protected]>
>> *Subject: *Re: Cairngorm problem add remote object MXML.
>>
>>
>>
>>
>> Exactly, cairmgorm, as Carlos says, is not the best option, but we save a
>> lot of time in migrations where they use it and leave more time for other
>> questions.
>>
>> i will continue to test how to fill that array today.
>>
>> Thank you very much for everyone in this collaboration.
>>
>>
>>
>> Gustavo.
>>
>>
>>
>> El jue., 6 feb. 2020 a las 8:39, Carlos Rovira (<[email protected]>)
>> escribió:
>>
>> Thanks Greg, for the sponsor credits, and thanks Takeshita for the words
>> :)
>>
>>
>>
>> I know Cairngorm could be good for people wanting to migrate with the
>> less effort possible. Anyway, I recommend, if possible to try to switch to
>> Crux. We already did that several years ago in Flex, since all DI, IOC
>> stuff, make us be more efficient and increase options. For people creating
>> new apps, for me there's no doubt, for people migrating, should contemplate
>> the Crux option if they continue evolving the app with new features...
>>
>>
>>
>> just my 2 :)
>>
>>
>>
>> Carlos
>>
>>
>>
>>
>>
>>
>>
>> El jue., 6 feb. 2020 a las 5:28, Takeshita Shoichiro (<[email protected]>)
>> escribió:
>>
>> Greg, thanks for your clarification. Anyway, it is a great work.
>> Carlos, thanks all the times.^_^
>>
>>
>>
>> 2020年2月6日(木) 13:22 Greg Dove <[email protected]>:
>>
>>
>>
>> Hi Takeshita,
>>
>>
>>
>> Yes I think a few people have asked for Cairngorm or expressed interest
>> in it. Given the choice, I personally think Crux will be a more
>> modern/better option, but like I said, more people are asking for Cairngorm
>> now, so probably it makes sense to port that too.
>>
>>
>>
>> I'm also pleased to hear that you are using Crux, I hope it's working
>> well for you. Please report any issues if you see them.
>>
>>
>>
>> One small thing: I definitely understand that you were referring to the
>> work I did on porting it to Royale, but just for the sake of anyone else
>> who reads this: it's definitely not 'my Crux framework'. The code is ported
>> from Swiz, and credit for the awesome features it has rests with the
>> original authors of Swiz (I was in contact with the original developer
>> during my efforts to port it to Royale).
>>
>> Also, just so people are aware, Carlos sponsored the majority of my work
>> on porting that, so you really have Carlos to thank for that.
>>
>>
>>
>> cheers,
>>
>> Greg
>>
>>
>>
>> On Thu, Feb 6, 2020 at 5:04 PM Takeshita Shoichiro <[email protected]>
>> wrote:
>>
>> Greg,
>>
>>
>>
>> Thanks for your work. We already have your Crux framework replacing
>> Cairngorm, it is great if Cairngorm works with Royale. It will save a
>> plenty of time of emulation work.
>>
>>
>>
>> 2020年2月6日(木) 12:33 Greg Dove <[email protected]>:
>>
>>
>> There does not appear to be a default property, like an array to put the
>> 'children' in. I think it just creates the children as instances and makes
>> sure they have id properties on the mxml-generated subclass that the
>> instances are assigned to.
>>
>>
>>
>> The services are then identified and categorised by iterating the
>> accessors of the ServiceLocator subclass via reflection and checking their
>> types and then registering them.
>>
>> Although it is and mxml instance of ServiceLocator, it is also an
>> enforced singleton which is accessed elsewhere from code. At least that is
>> how it appears to be set up to me.
>>
>>
>>
>> I already took a look at the code and have made (not many) local changes
>> and have the Cairngorm swc compiling via maven for both js and swf. I have
>> not tested it. Things like weak event listeners are gone.
>>
>> The main issue I think will be the Event.ADDED and Event.REMOVED for
>> ViewHelper automated register/unregister. Maybe we can have a
>> CaingormViewBase class with support for these, or perhaps we can use the
>> ADDED/REMOVED_FROM_STAGE emulation support that Crux uses, and that might
>> be all that is needed, but it may not always work the same.
>>
>>
>>
>> I'll try to tidy it up and share it tomorrow. The licence is BSD and is
>> permissive (
>> https://sourceforge.net/adobe/cairngorm/code/HEAD/tree/cairngorm/trunk/frameworks/cairngorm/License.txt
>> <https://nam04.safelinks.protection.outlook.com/?url=https%3A%2F%2Fsourceforge.net%2Fadobe%2Fcairngorm%2Fcode%2FHEAD%2Ftree%2Fcairngorm%2Ftrunk%2Fframeworks%2Fcairngorm%2FLicense.txt&data=02%7C01%7Caharui%40adobe.com%7C707a97326caa408ce15e08d7abbf0ebb%7Cfa7b1b5a7b34438794aed2c178decee1%7C0%7C0%7C637166709390899554&sdata=bgcBkFJNdbJ3J%2BqiPmrcNDOPSDrM%2Bl45ekrJY%2BG%2Blm4%3D&reserved=0>)
>> -
>> It seems to be to be similar to others like MIT etc, but I don't know
>> specifically what the rules are for Apache with that licence (in terms of
>> possibility to include in Royale itself).
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>> On Thu, Feb 6, 2020 at 3:40 PM De Carli Gustavo <[email protected]>
>> wrote:
>>
>> Alex :
>>
>>
>> In flex use the swc. I am seeing the same thing that you are commenting,
>> I do not understand where it assigns the remote objects to the
>> ServiceLocator. This would have to be added to the "services" attribute of
>> the RemoteObjects class. I will try to assign by code without using the
>> mxml to see if it does not generate the error "null0".
>>
>>
>>
>> El mié., 5 feb. 2020 a las 23:15, Alex Harui (<[email protected]>)
>> escribió:
>>
>> I grabbed ServiceLocator.as and was able to produce the null0 problem,
>> but the cause is that ServiceLocator does not have a default property. Did
>> your MXML work in Flex? What ServiceLocator property would be assigned the
>> mx:RemoteObject?
>>
>>
>>
>> -Alex
>>
>>
>>
>> *From: *De Carli Gustavo <[email protected]>
>> *Reply-To: *"[email protected]" <[email protected]>
>> *Date: *Wednesday, February 5, 2020 at 12:00 PM
>> *To: *"[email protected]" <[email protected]>
>> *Subject: *Re: Cairngorm problem add remote object MXML.
>>
>>
>>
>>
>>
>> I download https://sourceforge.net/adobe/cairngorm/code/
>> <https://nam04.safelinks.protection.outlook.com/?url=https%3A%2F%2Fsourceforge.net%2Fadobe%2Fcairngorm%2Fcode%2F&data=02%7C01%7Caharui%40adobe.com%7C707a97326caa408ce15e08d7abbf0ebb%7Cfa7b1b5a7b34438794aed2c178decee1%7C0%7C0%7C637166709390909515&sdata=Gc4%2FtARZq7gGGanmKlHKBRfGGAoA7BCvlhQYI5CcnMs%3D&reserved=0>,
>> and change.
>>
>>
>>
>> import flash.utils.describeType;
>>
>> --> import org.apache.royale.reflection.describeType;
>>
>> import flash.utils.Dictionary;
>>
>> --> import org.apache.royale.utils.ObjectMap;
>>
>>
>>
>> And this method
>>
>>
>>
>>
>>
>> /**
>>
>>
>>
>> * Return all the accessors on this object.
>>
>>
>>
>> * @param serviceLocator the IServiceLocator instance.
>>
>>
>>
>> * @return this object's accessors.
>>
>>
>>
>> */
>>
>>
>>
>> protected
>>
>> function getAccessors(
>>
>> serviceLocator : IServiceLocator ) :
>>
>> XMLList
>>
>>
>>
>> {
>>
>>
>>
>> /*
>>
>>
>>
>> var description : XML = describeType( serviceLocator );
>>
>>
>>
>> var accessors : XMLList = description.accessor.( @access == "readwrite"
>> ).@name;
>>
>>
>>
>>
>>
>> return accessors;
>>
>>
>>
>> */
>>
>>
>>
>>
>>
>> return describeType( serviceLocator).accessors(@access ==
>>
>> "readwrite" ).@name;
>>
>>
>>
>> }
>>
>>
>>
>>
>>
>>
>>
>>
>>
>> El mié., 5 feb. 2020 a las 16:04, Alex Harui (<[email protected]>)
>> escribió:
>>
>> Carlos, What Flash APIs is Cairngorm dependent on?
>>
>>
>>
>> -Alex
>>
>>
>>
>> *From: *Carlos Rovira <[email protected]>
>> *Reply-To: *"[email protected]" <[email protected]>
>> *Date: *Wednesday, February 5, 2020 at 10:05 AM
>> *To: *"[email protected]" <[email protected]>
>> *Subject: *Re: Cairngorm problem add remote object MXML.
>>
>>
>>
>> Hi,
>>
>>
>>
>> Cairngorm depends on Flash APIs, so make a Royale migration could be not
>> easy, or requires some expertise.
>>
>> You can use Crux instead that has support for Cairngorm style Commands.
>> Crux is the same as Swiz Framework for Flex but rewritten to work in
>> Royale, and supports much more like dependency injection, Inversion of
>> control, event handling, ...
>>
>> You have 3 examples in the examples/crux folder you can check.
>>
>> I recommend you Crux over Cairngorm since Swiz was born to substitute
>> Cairngorm
>>
>>
>>
>>
>>
>> El mié., 5 feb. 2020 a las 18:24, De Carli Gustavo (<
>> [email protected]>) escribió:
>>
>> Alex
>>
>>
>>
>> <version>0.9.7-SNAPSHOT</version>
>>
>>
>>
>> Thank
>>
>>
>>
>> El mié., 5 feb. 2020 a las 14:02, Alex Harui (<[email protected]>)
>> escribió:
>>
>> What version of the compiler are you using?
>>
>>
>>
>> What does the ServiceLocator source look like? It might be an issue with
>> defaultProperties for non-DOM objects.
>>
>>
>>
>> -Alex
>>
>>
>>
>> *From: *De Carli Gustavo <[email protected]>
>> *Reply-To: *"[email protected]" <[email protected]>
>> *Date: *Wednesday, February 5, 2020 at 7:35 AM
>> *To: *"[email protected]" <[email protected]>
>> *Subject: *Cairngorm problem add remote object MXML.
>>
>>
>>
>>
>>
>>
>> I am trying to transcribe gairngorm, at runtime it gives me an error in
>> the construction of the ServiceLocator, I understand that it is an error of
>> the MXMLDataInterpreter. Anyone have any idea of the problem.
>>
>> Thank
>>
>> Gustavo.
>>
>>
>>
>> *1. CODE *
>>
>>
>>
>>
>>
>> <?xml version="1.0" encoding="utf-8"?>
>>
>>
>>
>> <cairngorm:ServiceLocator
>>
>> xmlns:fx="http://ns.adobe.com/mxml/2009
>> <https://nam04.safelinks.protection.outlook.com/?url=http%3A%2F%2Fns.adobe.com%2Fmxml%2F2009&data=02%7C01%7Caharui%40adobe.com%7C707a97326caa408ce15e08d7abbf0ebb%7Cfa7b1b5a7b34438794aed2c178decee1%7C0%7C0%7C637166709390909515&sdata=Tk8Pj%2F2DIb2xkXZ0mVPc5n4ZB6k%2FzSR2QERtGHMtnRQ%3D&reserved=0>
>> "
>>
>>
>>
>> xmlns:mx="library://ns.apache.org/royale/mx
>> <https://nam04.safelinks.protection.outlook.com/?url=http%3A%2F%2Fns.apache.org%2Froyale%2Fmx&data=02%7C01%7Caharui%40adobe.com%7C707a97326caa408ce15e08d7abbf0ebb%7Cfa7b1b5a7b34438794aed2c178decee1%7C0%7C0%7C637166709390919472&sdata=b28A5VvEoq7nU%2F4YvSXE6Lk2PTjKIDEehzOoNPSmj%2Fk%3D&reserved=0>
>> "
>>
>>
>>
>> xmlns:cairngorm="com.adobe.cairngorm.business.*">
>>
>>
>>
>>
>>
>> <mx:RemoteObject
>>
>> id="srvSeguridades"
>>
>>
>>
>> destination="seguridades"
>>
>>
>>
>> result="event.token.resultHandler(event)"
>>
>>
>>
>> fault="event.token.faultHandler(event)"
>>
>>
>>
>> endpoint="http://localhost:8080/messagebroker/amf"/>
>>
>>
>>
>>
>>
>> </cairngorm:ServiceLocator>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>> *2. LINE OF ERROR (RED)*
>>
>> /
>>
>>
>>
>> **
>> * @constructor
>> * @extends {com.adobe.cairngorm.business.ServiceLocator}
>> */
>> services.Servicio = function() {
>> services.Servicio.base(this, 'constructor');
>>
>> /**
>> * @private
>> * @type {mx.rpc.remoting.mxml.RemoteObject}
>> */
>> this.srvSeguridades_;
>>
>> /**
>> * @private
>> * @type {Array}
>> */
>> this.mxmldd;
>>
>> /**
>> * @private
>> * @type {Array}
>> */
>> this.mxmldp;
>>
>> this.generateMXMLAttributes
>> ([1,
>> mx.rpc.remoting.mxml.RemoteObject,
>> 3,
>> 'id',
>> true,
>> 'srvSeguridades',
>> 'destination',
>> true,
>> 'seguridades',
>> 'endpoint',
>> true,
>> 'http://localhost:8080/messagebroker/amf',
>> 0,
>> 2,
>> 'result',
>> this.$EH0,
>> 'fault',
>> this.$EH1,
>> null0, <- ERROR
>> 0
>> ]);
>>
>> };
>>
>>
>>
>>
>>
>> 3. Trace console log
>>
>>
>>
>> Servicio.js:61 Uncaught ReferenceError: null0 is not defined
>> at new services.Servicio (Servicio.js:61)
>> at
>> Function.org.apache.royale.utils.MXMLDataInterpreter.generateMXMLArray
>> (MXMLDataInterpreter.js:126)
>> at
>> Function.org.apache.royale.utils.MXMLDataInterpreter.generateMXMLInstances
>> (MXMLDataInterpreter.js:271)
>> at main.Main.mx.core.UIComponent.createChildren (UIComponent.js:923)
>> at main.Main.mx.core.Container.createChildren (Container.js:136)
>> at main.Main.mx.core.Application.createChildren (Application.js:122)
>> at main.Main.mx.core.UIComponent.initialize (UIComponent.js:871)
>> at main.Main.mx.core.UIComponent.addedToParent (UIComponent.js:417)
>> at main.Main.mx.core.Container.addedToParent (Container.js:123)
>> at
>> Main_mx_managers_SystemManager.org.apache.royale.core.UIBase.addElement
>> (UIBase.js:402)
>>
>>
>>
>>
>> --
>>
>> Carlos Rovira
>>
>> http://about.me/carlosrovira
>> <https://nam04.safelinks.protection.outlook.com/?url=http%3A%2F%2Fabout.me%2Fcarlosrovira&data=02%7C01%7Caharui%40adobe.com%7C707a97326caa408ce15e08d7abbf0ebb%7Cfa7b1b5a7b34438794aed2c178decee1%7C0%7C0%7C637166709390919472&sdata=fJXMZ6bipo5Lb9NGlxNZ5kCL89t5xVomfwABNLngzMs%3D&reserved=0>
>>
>>
>>
>> --
>>
>> Shoichiro Takeshita
>> 武下 祥一郎
>>
>> --
>>
>> Shoichiro Takeshita
>> 武下 祥一郎
>>
>>
>>
>>
>> --
>>
>> Carlos Rovira
>>
>> http://about.me/carlosrovira
>> <https://nam04.safelinks.protection.outlook.com/?url=http%3A%2F%2Fabout.me%2Fcarlosrovira&data=02%7C01%7Caharui%40adobe.com%7C707a97326caa408ce15e08d7abbf0ebb%7Cfa7b1b5a7b34438794aed2c178decee1%7C0%7C0%7C637166709390929426&sdata=uj3muDWmQFOheOtB05JV2M%2FG3l5NuevazrXlP38S%2B1w%3D&reserved=0>
>>
>>
>>
>>