Hi Alex, I tried to use MX RO but doesn't work. Here's what the info of this test:
Code: to make a quick test I put this code to run at "initComplete" event: private function prepareChannelSet(event:Event):void { var amfEndpoint:String = "http://localhost:8080/webapp/messagebroker/my-amf"; var channelSet:ChannelSet = new ChannelSet(); var channel:AMFChannel = new AMFChannel("my-amf", amfEndpoint); channelSet.addChannel(channel); service.channelSet = channelSet; } I add the MX RO as a bead <j:beads> <mx:RemoteObject id="service" result="onResult(event)" fault="onFault(event)" destination = "myDestination"/> </j:beads> After compilation (successful) I get the following trace that should be fixed: */Users/carlosrovira/Dev/Codeoscopic/Source/sgc/webapp/src/main/webapp/javascript/bin/js-debug/App.js* *end of list of source files* *oct 11, 2018 1:33:04 PM com.google.javascript.jscomp.LoggerErrorManager println* *ADVERTENCIA: /Users/carlosrovira/Dev/Codeoscopic/Source/sgc/webapp/src/main/webapp/javascript/bin/js-debug/mx/rpc/remoting/Operation.js:103: WARNING - Bad type annotation. extra @override/@inheritDoc tag. See https://github.com/google/closure-compiler/wiki/Bad-Type-Annotation <https://github.com/google/closure-compiler/wiki/Bad-Type-Annotation> for more information.* * * @override* * ^* *oct 11, 2018 1:33:04 PM com.google.javascript.jscomp.LoggerErrorManager println* *ADVERTENCIA: /Users/carlosrovira/Dev/Codeoscopic/Source/sgc/webapp/src/main/webapp/javascript/bin/js-debug/mx/rpc/remoting/Operation.js:150: WARNING - Bad type annotation. extra @override/@inheritDoc tag. See https://github.com/google/closure-compiler/wiki/Bad-Type-Annotation <https://github.com/google/closure-compiler/wiki/Bad-Type-Annotation> for more information.* * * @override* * ^* *oct 11, 2018 1:33:04 PM com.google.javascript.jscomp.LoggerErrorManager println* *GRAVE: /Users/carlosrovira/Dev/Codeoscopic/Source/sgc/webapp/src/main/webapp/javascript/bin/js-debug/mx/messaging/config/ServerConfig.js:333: ERROR - Parse error. invalid assignment target* * mx.messaging.config.ServerConfig["xml"].child("default-channels") = newServices.child("default-channels");* * ^* *oct 11, 2018 1:33:04 PM com.google.javascript.jscomp.LoggerErrorManager printSummary* *ADVERTENCIA: 1 error(s), 2 warning(s)* *The project 'App' has been successfully compiled and optimized.* Then the problems at Runtime. Trying to call a method in the service like this: *service.someMethod(someParam);* I get in browser console this error: *TypeError: this.service.someMethod is not a function. (In 'this.service.someMethod(someParam)', 'this.service.someMethod' is undefined)* Congratulations, I you are mostly at 99% to get official MX RemoteObject working :) Carlos El jue., 11 oct. 2018 a las 12:41, Carlos Rovira (<carlosrov...@apache.org>) escribió: > Hi Alex, > > strangely, now build is passing locally...can't figure why yesterday it > was failing...maybe part of the build was in the change of day at > 00:00...just speculating.. > > I'll try to put mx RO to work and see I see and report :) > > > El jue., 11 oct. 2018 a las 12:18, Carlos Rovira (<carlosrov...@apache.org>) > escribió: > >> Hi Alex, >> >> yes, I always compile first compiler, then typedefs and last asjs. >> I'll try again. Maybe the maven-prepare-release could be doing making >> some problem with the change of version 0.9.4 to 0.9.5? >> >> El jue., 11 oct. 2018 a las 9:30, Alex Harui (<aha...@adobe.com.invalid>) >> escribió: >> >>> I can't reproduce the failure. It worked on builds.a.o as well. Did >>> you run mvn on the compiler first? >>> >>> -Alex >>> >>> On 10/10/18, 4:38 PM, "Carlos Rovira" <carlosrov...@apache.org> wrote: >>> >>> I must close for today, tomorrow will try to change net RO for mx RO >>> if you >>> finally get this build error fixed. >>> >>> Thanks >>> >>> Carlos >>> >>> >>> El mié., 10 oct. 2018 a las 23:34, Carlos Rovira (< >>> carlosrov...@apache.org>) >>> escribió: >>> >>> > That's great Alex! :) >>> > >>> > I want to try it but I found the following error building with >>> maven: >>> > >>> > >>> > [*INFO*] *----------------< *org.apache.royale.framework:MXRoyale* >>> > >----------------* >>> > >>> > [*INFO*] *Building Apache Royale: Framework: Libs: MXRoyale >>> > 0.9.4-SNAPSHOT [32/118]* >>> > >>> > [*INFO*] *--------------------------------[ swc >>> > ]---------------------------------* >>> > >>> > [*INFO*] >>> > >>> > [*INFO*] *--- *maven-clean-plugin:3.0.0:clean *(default-clean)* @ >>> MXRoyale* >>> > ---* >>> > >>> > [*INFO*] >>> > >>> > [*INFO*] *--- *royale-maven-plugin:0.9.4-SNAPSHOT:generate-extern >>> > *(default-generate-extern)* @ MXRoyale* ---* >>> > >>> > [*INFO*] >>> > >>> > [*INFO*] *--- *maven-remote-resources-plugin:1.5:process >>> > *(process-resource-bundles)* @ MXRoyale* ---* >>> > >>> > [*INFO*] >>> > >>> > [*INFO*] *--- *maven-resources-plugin:2.7:resources >>> *(default-resources)* >>> > @ MXRoyale* ---* >>> > >>> > [*INFO*] Using 'UTF-8' encoding to copy filtered resources. >>> > >>> > [*INFO*] Copying 3 resources >>> > >>> > [*INFO*] Copying 3 resources >>> > >>> > [*INFO*] >>> > >>> > [*INFO*] *--- *royale-maven-plugin:0.9.4-SNAPSHOT:compile-as >>> > *(default-compile-as)* @ MXRoyale* ---* >>> > >>> > [*INFO*] Executing COMPC in tool group Royale with args: >>> > >>> [-load-config=/Users/carlosrovira/Dev/Royale/Source/royale-asjs/frameworks/projects/MXRoyale/target/compile-swf-config.xml, >>> > -js-compiler-define=COMPILE::JS,true, >>> > -js-compiler-define=COMPILE::SWF,false, >>> > -js-compiler-define=GOOG::DEBUG,goog.DEBUG, >>> > -js-compiler-define=ROYALE::DISPLAYOBJECT,IUIComponent, >>> > -compiler.targets=SWF,JSRoyale, -compiler.strict-xml=true] >>> > >>> > args: >>> > >>> > >>> > >>> -load-config=/Users/carlosrovira/Dev/Royale/Source/royale-asjs/frameworks/projects/MXRoyale/target/compile-swf-config.xml >>> > >>> > -js-compiler-define=COMPILE::JS,true >>> > >>> > -js-compiler-define=COMPILE::SWF,false >>> > >>> > -js-compiler-define=GOOG::DEBUG,goog.DEBUG >>> > >>> > -js-compiler-define=ROYALE::DISPLAYOBJECT,IUIComponent >>> > >>> > -compiler.targets=SWF,JSRoyale >>> > >>> > -compiler.strict-xml=true >>> > >>> > target:SWF >>> > >>> > target:JSRoyale >>> > >>> > COMPC >>> > >>> > Loading configuration: >>> > >>> /Users/carlosrovira/Dev/Royale/Source/royale-asjs/frameworks/projects/MXRoyale/target/compile-swf-config.xml >>> > >>> > >>> > Error: Unexpected exception 'java.lang.NullPointerException'. >>> > >>> > >>> > >>> > Unexpected exception 'java.lang.NullPointerException'. >>> > >>> > >>> > ... >>> > >>> > [*INFO*] Apache Royale: Framework: Libs: RoyaleSite ......... >>> *SUCCESS* >>> > [ 0.771 s] >>> > >>> > [*INFO*] Apache Royale: Framework: Libs: MXRoyale ........... >>> *FAILURE* >>> > [ 1.529 s] >>> > >>> > [*INFO*] Apache Royale: Framework: Libs: Icons .............. >>> *SKIPPED* >>> > >>> > [*INFO*] Apache Royale: Framework: Libs: SparkRoyale ........ >>> *SKIPPED* >>> > >>> > I'm trying to build with the 2 commits of the latest failed release >>> > reverted to build 0.9.4. (I think we should revert those since, I >>> suppose >>> > are not valid now). >>> > >>> > Thanks >>> > >>> > >>> > >>> > El mié., 10 oct. 2018 a las 21:41, Alex Harui >>> (<aha...@adobe.com.invalid>) >>> > escribió: >>> > >>> >> We especially want the RemoteObject in Network.swc to be PAYG. MX >>> >> RemoteObject was never PAYG. >>> >> >>> >> Having looked at the code more, I see what you are saying about >>> Operation >>> >> not having its own fault and result handlers. It looks like >>> there already >>> >> is a SimpleOperation, so Operation could introduce its own fault >>> and result >>> >> handlers. >>> >> >>> >> FWIW, I just pushed the changes to the compiler and emulation >>> code that >>> >> got MX RemoteObject to work. So that could be an option for >>> you. I'm sure >>> >> there might be bugs remaining to be fixed, but there is quite a >>> bit of old >>> >> Flex code that is now running pretty much unchanged. >>> >> >>> >> -Alex >>> >> >>> >> On 10/10/18, 2:33 AM, "Carlos Rovira" <carlosrov...@apache.org> >>> wrote: >>> >> >>> >> Hi Alex >>> >> >>> >> El mar., 9 oct. 2018 a las 18:14, Alex Harui >>> >> (<aha...@adobe.com.invalid>) >>> >> escribió: >>> >> >>> >> > As long as Responders are PAYG and not baked into the basic >>> RO >>> >> > implementation, it is fine for others to try to replicate >>> subsets >>> >> of MX >>> >> > RemoteObject, but it still seems like duplication of effort. >>> >> > >>> >> >>> >> well, I'm talking not about MX RO, bur the current one we >>> have in >>> >> Network.swc that is working. >>> >> >>> >> That means is not a duplicate effort, take into account that >>> I'm >>> >> right now >>> >> coding a real world Apache Royale application, and need to >>> get the >>> >> work >>> >> done. I expect this could be a win for this project since is >>> an >>> >> important >>> >> project and an important client that are betting for Apache >>> Royale :). >>> >> >>> >> >>> >> > >>> >> > That said, I have not used RO or Responders in any real >>> world >>> >> application >>> >> > myself. I'm not sure I understand the need for them vs >>> just adding >>> >> more >>> >> > listeners to the result and fault event. >>> >> > >>> >> >>> >> Each RO use to have several Operations (aka methods that we >>> want to >>> >> call in >>> >> the backend). In real world scenarios, we want each RO >>> callback logic >>> >> will >>> >> be unique. If I call a service for a user list, I want to >>> fill the >>> >> list in >>> >> royale, but if I want to ask for a concrete user data, I want >>> to fill >>> >> a >>> >> form with that data. >>> >> >>> >> Now, all Operations will be throw a result event and therefor >>> all >>> >> listeners >>> >> will fire, executing all methods. With listeners, we can use >>> >> if-then-else >>> >> to and some logic to execute parts of the listener, but a >>> Responder >>> >> implementation, should make the appropriate responder be >>> executed. >>> >> >>> >> In order to structure and organizar a real world application >>> that is >>> >> a bit >>> >> complex this is needed to separate all this logic across >>> files. >>> >> (In a tiny application, you can use the if-then-else approach >>> since >>> >> is more >>> >> like a example). >>> >> >>> >> >>> >> >>> >> > >>> >> > My 2 cents, >>> >> > -Alex >>> >> > >>> >> > On 10/9/18, 3:46 AM, "Carlos Rovira" < >>> carlosrov...@apache.org> >>> >> wrote: >>> >> > >>> >> > Hi Piotr, >>> >> > >>> >> > I think if I get some improvement over the current RO >>> with >>> >> Responders >>> >> > that >>> >> > could go to develop. Other thing is I tried to make it >>> work in >>> >> mx RO. >>> >> > People using Royale RO will benefit from it. If some >>> day mx RO >>> >> is >>> >> > ready, I >>> >> > think we'll shift to mx RO, although royale RO could be >>> >> continue to be >>> >> > valid (since is a small implementation that works), or >>> we could >>> >> decide >>> >> > deprecate it. Anyway, I'm not talking to make >>> improvements over >>> >> > something >>> >> > that others will evolve separately, I want to improve >>> something >>> >> that >>> >> > otherwise will remain as is. >>> >> > >>> >> > >>> >> > >>> >> > El mar., 9 oct. 2018 a las 12:39, Piotr Zarzycki (< >>> >> > piotrzarzyck...@gmail.com>) >>> >> > escribió: >>> >> > >>> >> > > Carlos, >>> >> > > >>> >> > > You can always use branch, make your changes and wait >>> for the >>> >> proper >>> >> > one >>> >> > > using branch. Some time ago Harbs did it the same as >>> far as I >>> >> > remember. >>> >> > > There is no need to wait if you need something ASAP. >>> >> > > >>> >> > > Thanks, >>> >> > > Piotr >>> >> > > >>> >> > > wt., 9 paź 2018 o 12:36 Carlos Rovira < >>> >> carlosrov...@apache.org> >>> >> > > napisał(a): >>> >> > > >>> >> > > > Hi Alex, >>> >> > > > >>> >> > > > since there's no planned ETA for anyone here (that >>> I know), >>> >> I >>> >> > could try >>> >> > > at >>> >> > > > some point to have a minimal Responder >>> functionality in the >>> >> current >>> >> > > working >>> >> > > > RO. Does not have sense to duplicate all the code >>> but I >>> >> think has >>> >> > sense >>> >> > > to >>> >> > > > see if some little changes can provide the minimal >>> needs. >>> >> > > > >>> >> > > > thanks >>> >> > > > >>> >> > > > >>> >> > > > >>> >> > > > El mar., 9 oct. 2018 a las 0:25, Alex Harui >>> >> > (<aha...@adobe.com.invalid>) >>> >> > > > escribió: >>> >> > > > >>> >> > > > > I think you'll have to wait until someone gets >>> all of the >>> >> old >>> >> > Flex RO >>> >> > > > code >>> >> > > > > to compile and run. I'm currently still >>> debugging the >>> >> compiler, >>> >> > so no >>> >> > > > way >>> >> > > > > it will be ready tomorrow. >>> >> > > > > >>> >> > > > > It doesn't make sense to try to duplicate all of >>> this >>> >> code and >>> >> > get it >>> >> > > to >>> >> > > > > work some other way. >>> >> > > > > >>> >> > > > > -Alex >>> >> > > > > >>> >> > > > > On 10/8/18, 3:21 PM, "Carlos Rovira" < >>> >> carlosrov...@apache.org> >>> >> > wrote: >>> >> > > > > >>> >> > > > > Hi Alex, >>> >> > > > > >>> >> > > > > I'm closing for today, but tomorrow I'll need >>> to >>> >> handle more >>> >> > than >>> >> > > one >>> >> > > > > Responder for RemoteObject calls, so each >>> >> operation/method >>> >> > can have >>> >> > > > > it's >>> >> > > > > own responder and create methods for each one >>> in my >>> >> > controllers. >>> >> > > with >>> >> > > > > the >>> >> > > > > current RemoteObject implementation could you >>> share >>> >> what >>> >> > could be >>> >> > > the >>> >> > > > > most >>> >> > > > > quick and easy way to get this while the full >>> RO >>> >> > implementation is >>> >> > > on >>> >> > > > > the >>> >> > > > > works? Now that I'm starting to grow the app >>> code >>> >> base I can >>> >> > rely >>> >> > > on >>> >> > > > a >>> >> > > > > result handler full of if-then-else >>> >> > > > > >>> >> > > > > Thanks for any help on this >>> >> > > > > >>> >> > > > > Carlos >>> >> > > > > >>> >> > > > > >>> >> > > > > >>> >> > > > > >>> >> > > > > El lun., 8 oct. 2018 a las 18:52, Carlos >>> Rovira (< >>> >> > > > > carlosrov...@apache.org>) >>> >> > > > > escribió: >>> >> > > > > >>> >> > > > > > Ok Alex, thanks, didn't know that you have >>> this >>> >> task to >>> >> > make it >>> >> > > > work >>> >> > > > > RO. I >>> >> > > > > > though you only try to compile it. >>> >> > > > > > That's good to know. I'm trying right now >>> to make a >>> >> real >>> >> > world >>> >> > > app >>> >> > > > > and >>> >> > > > > > since I don't have a micro structural IOC >>> framework >>> >> like >>> >> > Swiz, >>> >> > > that >>> >> > > > > was >>> >> > > > > > that I use in Flex, I'm trying to structure >>> and >>> >> organize >>> >> > screens, >>> >> > > > > > controllers, delegates, and so on, and I'm >>> trying >>> >> to put >>> >> > things >>> >> > > as >>> >> > > > > easy as >>> >> > > > > > possible so I can refactor more later to >>> something >>> >> more >>> >> > suited >>> >> > > for >>> >> > > > > this >>> >> > > > > > task, since I don't have time now to build a >>> >> framework for >>> >> > this >>> >> > > due >>> >> > > > > to >>> >> > > > > > reduced time lines. >>> >> > > > > > >>> >> > > > > > If you get this RO proxy way to call backend >>> >> methods and >>> >> > > > AsyncToken, >>> >> > > > > > that's what I need to connect with MX >>> RemoteObject >>> >> in the >>> >> > same >>> >> > > way >>> >> > > > > we use >>> >> > > > > > to do. >>> >> > > > > > >>> >> > > > > > I'll be waiting for your. progress there >>> >> > > > > > >>> >> > > > > > thanks >>> >> > > > > > >>> >> > > > > > Carlos >>> >> > > > > > >>> >> > > > > > >>> >> > > > > > >>> >> > > > > > >>> >> > > > > > >>> >> > > > > > >>> >> > > > > > El lun., 8 oct. 2018 a las 17:28, Alex Harui >>> >> > > > > (<aha...@adobe.com.invalid>) >>> >> > > > > > escribió: >>> >> > > > > > >>> >> > > > > >> I believe I already said I am working on >>> >> RemoteObject. >>> >> > > > > >> >>> >> > > > > >> The Flex compiler generates custom code for >>> >> > mx:RemoteObject. >>> >> > > The >>> >> > > > > Royale >>> >> > > > > >> Compiler currently does not. I am working >>> on it. >>> >> > > > > >> >>> >> > > > > >> Thanks, >>> >> > > > > >> -Alex >>> >> > > > > >> >>> >> > > > > >> On 10/8/18, 3:13 AM, "Carlos Rovira" < >>> >> > carlosrov...@apache.org> >>> >> > > > > wrote: >>> >> > > > > >> >>> >> > > > > >> Hi, >>> >> > > > > >> >>> >> > > > > >> I was experimenting trying to get >>> RemoteObject >>> >> to >>> >> > proxy >>> >> > > method >>> >> > > > > calls. >>> >> > > > > >> >>> >> > > > > >> so instead of doing >>> >> > > > > >> >>> >> > > > > >> service.send("echo", [name_txt.text]); >>> >> > > > > >> >>> >> > > > > >> be able to do: >>> >> > > > > >> >>> >> > > > > >> service.echo(name_txt.text); >>> >> > > > > >> >>> >> > > > > >> I tried with Proxy class >>> >> > > > > >> >>> >> > > > > >> (org.apache.royale.utils.Proxy) >>> >> > > > > >> >>> >> > > > > >> and implementing IEventDispatcher, but >>> >> compiler throws >>> >> > > error: >>> >> > > > > >> >>> >> > > > > >> Call to a possibly undefined method >>> echo >>> >> through a >>> >> > reference >>> >> > > > > with >>> >> > > > > >> static >>> >> > > > > >> type RemoteObject. >>> >> > > > > >> >>> >> > > > > >> It's possible to do something like >>> this? what >>> >> I'm >>> >> > missing? >>> >> > > > > >> >>> >> > > > > >> This seems a little enhancement, but >>> it would >>> >> be cool >>> >> > if we >>> >> > > > get >>> >> > > > > it in >>> >> > > > > >> order >>> >> > > > > >> to be more near of the normal syntax >>> we all >>> >> have in >>> >> > our code >>> >> > > > > bases. >>> >> > > > > >> >>> >> > > > > >> thanks >>> >> > > > > >> >>> >> > > > > >> -- >>> >> > > > > >> Carlos Rovira >>> >> > > > > >> >>> >> > > > > >> >>> >> > > > > >>> >> > > > >>> >> > > >>> >> > >>> >> >>> https://na01.safelinks.protection.outlook.com/?url=http%3A%2F%2Fabout.me%2Fcarlosrovira&data=02%7C01%7Caharui%40adobe.com%7Ca103dd7253104f55b80908d62f09867d%7Cfa7b1b5a7b34438794aed2c178decee1%7C0%7C0%7C636748115311722500&sdata=CfpsY0guxPri3iOWaEhfU6nHhuGQFxHtc%2B6Soj%2BzpqQ%3D&reserved=0 >>> >> > > > > >> >>> >> > > > > >> >>> >> > > > > >> >>> >> > > > > > >>> >> > > > > > -- >>> >> > > > > > Carlos Rovira >>> >> > > > > > >>> >> > > > > >>> >> > > > >>> >> > > >>> >> > >>> >> >>> https://na01.safelinks.protection.outlook.com/?url=http%3A%2F%2Fabout.me%2Fcarlosrovira&data=02%7C01%7Caharui%40adobe.com%7Ca103dd7253104f55b80908d62f09867d%7Cfa7b1b5a7b34438794aed2c178decee1%7C0%7C0%7C636748115311722500&sdata=CfpsY0guxPri3iOWaEhfU6nHhuGQFxHtc%2B6Soj%2BzpqQ%3D&reserved=0 >>> >> > > > > > >>> >> > > > > > >>> >> > > > > >>> >> > > > > -- >>> >> > > > > Carlos Rovira >>> >> > > > > >>> >> > > > > >>> >> > > > >>> >> > > >>> >> > >>> >> >>> https://na01.safelinks.protection.outlook.com/?url=http%3A%2F%2Fabout.me%2Fcarlosrovira&data=02%7C01%7Caharui%40adobe.com%7Ca103dd7253104f55b80908d62f09867d%7Cfa7b1b5a7b34438794aed2c178decee1%7C0%7C0%7C636748115311722500&sdata=CfpsY0guxPri3iOWaEhfU6nHhuGQFxHtc%2B6Soj%2BzpqQ%3D&reserved=0 >>> >> > > > > >>> >> > > > > >>> >> > > > > >>> >> > > > >>> >> > > > -- >>> >> > > > Carlos Rovira >>> >> > > > >>> >> > >>> >> >>> https://na01.safelinks.protection.outlook.com/?url=http%3A%2F%2Fabout.me%2Fcarlosrovira&data=02%7C01%7Caharui%40adobe.com%7Ca103dd7253104f55b80908d62f09867d%7Cfa7b1b5a7b34438794aed2c178decee1%7C0%7C0%7C636748115311722500&sdata=CfpsY0guxPri3iOWaEhfU6nHhuGQFxHtc%2B6Soj%2BzpqQ%3D&reserved=0 >>> >> > > > >>> >> > > >>> >> > > >>> >> > > -- >>> >> > > >>> >> > > Piotr Zarzycki >>> >> > > >>> >> > > Patreon: * >>> >> > >>> >> >>> https://na01.safelinks.protection.outlook.com/?url=https%3A%2F%2Fwww.patreon.com%2Fpiotrzarzycki&data=02%7C01%7Caharui%40adobe.com%7Ca103dd7253104f55b80908d62f09867d%7Cfa7b1b5a7b34438794aed2c178decee1%7C0%7C0%7C636748115311722500&sdata=K6vSJw%2Blkl13yO%2BiFsO7N%2FZsBvoadpPcHUTwmSxK7AM%3D&reserved=0 >>> >> > > < >>> >> > >>> >> >>> https://na01.safelinks.protection.outlook.com/?url=https%3A%2F%2Fwww.patreon.com%2Fpiotrzarzycki&data=02%7C01%7Caharui%40adobe.com%7Ca103dd7253104f55b80908d62f09867d%7Cfa7b1b5a7b34438794aed2c178decee1%7C0%7C0%7C636748115311732505&sdata=UAfPn4xSsprYPhMJCYyKHn%2F85PW6n09XFU5uuC5SHHY%3D&reserved=0 >>> >> > >* >>> >> > > >>> >> > >>> >> > >>> >> > -- >>> >> > Carlos Rovira >>> >> > >>> >> > >>> >> >>> https://na01.safelinks.protection.outlook.com/?url=http%3A%2F%2Fabout.me%2Fcarlosrovira&data=02%7C01%7Caharui%40adobe.com%7Ca103dd7253104f55b80908d62f09867d%7Cfa7b1b5a7b34438794aed2c178decee1%7C0%7C0%7C636748115311732505&sdata=y%2Bctvc4%2F0YE4QdVgDBdK%2BQ7zj4xvUHoe8mWv9Zq%2BmOA%3D&reserved=0 >>> >> > >>> >> > >>> >> > >>> >> >>> >> -- >>> >> Carlos Rovira >>> >> >>> >> >>> https://na01.safelinks.protection.outlook.com/?url=http%3A%2F%2Fabout.me%2Fcarlosrovira&data=02%7C01%7Caharui%40adobe.com%7Ca103dd7253104f55b80908d62f09867d%7Cfa7b1b5a7b34438794aed2c178decee1%7C0%7C0%7C636748115311732505&sdata=y%2Bctvc4%2F0YE4QdVgDBdK%2BQ7zj4xvUHoe8mWv9Zq%2BmOA%3D&reserved=0 >>> >> >>> >> >>> >> >>> > >>> > -- >>> > Carlos Rovira >>> > >>> https://na01.safelinks.protection.outlook.com/?url=http%3A%2F%2Fabout.me%2Fcarlosrovira&data=02%7C01%7Caharui%40adobe.com%7Ca103dd7253104f55b80908d62f09867d%7Cfa7b1b5a7b34438794aed2c178decee1%7C0%7C0%7C636748115311732505&sdata=y%2Bctvc4%2F0YE4QdVgDBdK%2BQ7zj4xvUHoe8mWv9Zq%2BmOA%3D&reserved=0 >>> > >>> > >>> >>> -- >>> Carlos Rovira >>> >>> https://na01.safelinks.protection.outlook.com/?url=http%3A%2F%2Fabout.me%2Fcarlosrovira&data=02%7C01%7Caharui%40adobe.com%7Ca103dd7253104f55b80908d62f09867d%7Cfa7b1b5a7b34438794aed2c178decee1%7C0%7C0%7C636748115311732505&sdata=y%2Bctvc4%2F0YE4QdVgDBdK%2BQ7zj4xvUHoe8mWv9Zq%2BmOA%3D&reserved=0 >>> >>> >>> >> >> -- >> Carlos Rovira >> http://about.me/carlosrovira >> >> > > -- > Carlos Rovira > http://about.me/carlosrovira > > -- Carlos Rovira http://about.me/carlosrovira