Hi David, the class to be used on the Service class should be:
mx.rpc.remoting.RemoteObject; while the class used when you add in bean provider mxml file is mx.rpc.remoting.mxml.RemoteObject; although is transparent to you since you use <mx:RemoteObject/> without the need of any import. HTH Carlos El jue, 25 feb 2021 a las 18:08, David Slotemaker de Bruine (< [email protected]>) escribió: > Hi All, > > So after talking with Piotr I found my problem was I hadn't added the new > Controller Component to the Beans.mxml. That is the key so that Crux knows > where to assign the events the app dispatches. > > One issue we did run into was that the definition of the RemoteObjects > weren't detected when they where defined in a seperate ServicesConfig.mxml > within the config directory. Even though this file was referenced in > <crux:beanProviders>. > > Adding the remote object definitions directly to Beans.mxl was the key. > > Also when Injecting the RemoteObject into the new XXXService.as file it > is of type: > > mx.rpc.remoting.mxml.RemoteObject; > > I now have issues getting the correct response from the server, but that > will be another post :) > > > > > On Thu, 25 Feb 2021 at 08:42, David Slotemaker de Bruine < > [email protected]> wrote: > >> Hi Piotr, I will send you a link with the code, cheers! I will then post >> the solution back here when we find it! >> >> David >> >> On Wed, 24 Feb 2021 at 17:23, Piotr Zarzycki <[email protected]> >> wrote: >> >>> David, >>> >>> You can send me code of your project and I will take a look at it. I >>> don't see any connection to Moonshine here. We need more data to help you. >>> The best would be if you could provide source code by uploading on some >>> server - if you can of course. >>> >>> Thanks, >>> Piotr >>> >>> śr., 24 lut 2021 o 17:13 Carlos Rovira <[email protected]> >>> napisał(a): >>> >>>> Hi David, >>>> >>>> the two lines refers to 2 injects in UserController. Since I don't know >>>> the code I guess you have 2 injections there. >>>> You talk then about a "usuarioController", but I don't know what is. Is >>>> not UserController? is other controller? then you need to add as well to >>>> your beanprovider. >>>> >>>> About Moonshine, maybe @Piotr Zarzycki <[email protected]> can >>>> help you I don't have many experience, sorry >>>> >>>> >>>> El mar, 23 feb 2021 a las 15:18, David Slotemaker de Bruine (< >>>> [email protected]>) escribió: >>>> >>>>> Hi Carlos, >>>>> >>>>> OK, >>>>> >>>>> I created everything you said, a new: >>>>> >>>>> ServicesConfig.mxml in the config folder and pointed to it >>>>> in <crux:beanProviders> >>>>> >>>>> Then I created: >>>>> UsuarioController >>>>> UsuarioEvent >>>>> UsusarioService >>>>> >>>>> for my "usuario" needs. >>>>> >>>>> The thing is, It does seem that the new controller is being referenced >>>>> during compile time. I Get the following: >>>>> >>>>> Activating JSStageEvents >>>>> : InjectProcessor set up [Inject] on Bean{ source: [object Object], >>>>> name: userController } >>>>> : InjectProcessor set up [Inject] on Bean{ source: [object Object], >>>>> name: userController } >>>>> : [PostConstruct] executing createDefaultUser in UserController >>>>> : [JS] application setUp stub >>>>> >>>>> 2 for userController but none for usuarioController. >>>>> >>>>> When I call the UsuarioEvent, it dispatchers but doesn't get sent to >>>>> the UsuarioController. The userEvent dispatch correctly and is sent to the >>>>> UserContoller without a problem. >>>>> >>>>> 2 additional points of information. >>>>> >>>>> 1. Breakpoints (In Moonshine) are not working in the project, but they >>>>> are in others. >>>>> 2. There is a blue squiggle at the start of some of the files stating >>>>> that the files are not within the source directory, but they are. >>>>> >>>>> Any ideas? >>>>> >>>>> >>>>> >>>>> >>>>> >>>>> On Thu, 18 Feb 2021 at 17:42, David Slotemaker de Bruine < >>>>> [email protected]> wrote: >>>>> >>>>>> Great! Thank you! >>>>>> >>>>>> I will give it a shot! >>>>>> >>>>>> On Thu, 18 Feb 2021 at 17:07, Carlos Rovira <[email protected]> >>>>>> wrote: >>>>>> >>>>>>> Hi, >>>>>>> >>>>>>> ok, let's go: >>>>>>> >>>>>>> 1.- REMOTEOBJECTS: You will have a mxml file that extends from Crux >>>>>>> BeanProvider. Let's call it ServicesConfig.mxml. There you have all you >>>>>>> mx:RemoteObject objects. So this object will provide all remote objects >>>>>>> to >>>>>>> the rest of your app: >>>>>>> >>>>>>> <mx:RemoteObject id="loginService" >>>>>>> destination="loginService" >>>>>>> channelSet="{loginChannel}" >>>>>>> showBusyCursor="true"/> >>>>>>> >>>>>>> 2.- SERVICE: Then you have a "delegate" like in Cairngorm where you >>>>>>> inject the remote object: >>>>>>> >>>>>>> [Inject(source="loginService", required="true")] >>>>>>> public var service :RemoteObject = null; >>>>>>> >>>>>>> So the remoteobject with name "loginService" will be injected in the >>>>>>> public var service. In this delegate you can do things like this: >>>>>>> >>>>>>> public function recoverPassword(username :String, password :String) >>>>>>> :AsyncToken { >>>>>>> return service.recoverPassword(username, password); >>>>>>> } >>>>>>> >>>>>>> 3.- CONTROLLER: Here you have controller methods that will be called >>>>>>> with events and this will in the end call service methods in the >>>>>>> delegate >>>>>>> layer: >>>>>>> >>>>>>> [EventHandler(event="LoginEvent.RECOVER_PASSWORD", properties= >>>>>>> "password")] >>>>>>> public function passwordRecovery(password :String) :void { >>>>>>> executeServiceCall(loginDelegate.recoverPassword(model.recoverUsername, >>>>>>> password), passwordRecoveryHandler); >>>>>>> } >>>>>>> >>>>>>> executeServiceCall is a Crux function that allow you to call a >>>>>>> service method and attach a result and fault handlers that will be on >>>>>>> this >>>>>>> controller. So in a controller you have that method plus two handlers >>>>>>> (result and fault, but probably just the first since the second use to >>>>>>> be >>>>>>> the same reusable for all) >>>>>>> >>>>>>> 4.- EVENT: You extend from CruxEvent and have things like this: >>>>>>> >>>>>>> public static const RECOVER_PASSWORD:String = >>>>>>> "login.recoverPassword"; >>>>>>> >>>>>>> that match with the one in the controller. >>>>>>> >>>>>>> 5.- VIEW: Here you send the event: >>>>>>> >>>>>>> var event :LoginEvent = new LoginEvent(LoginEvent.RECOVER_PASSWORD); >>>>>>> event.password = newpassword.text; >>>>>>> dispatchEvent(event); >>>>>>> >>>>>>> And that's all >>>>>>> >>>>>>> I think this is a very simple but powerful arquitecture that allows >>>>>>> to organize code in a very good way, while using plain objects without >>>>>>> the >>>>>>> need of extensions and more, since objects are injected. >>>>>>> >>>>>>> HTH >>>>>>> >>>>>>> Carlos >>>>>>> >>>>>>> El jue, 18 feb 2021 a las 16:51, Carlos Rovira (< >>>>>>> [email protected]>) escribió: >>>>>>> >>>>>>>> Hi David, >>>>>>>> >>>>>>>> we have it here [1], but anyway I'll try to give a bit more info. >>>>>>>> >>>>>>>> [1] >>>>>>>> https://apache.github.io/royale-docs/libraries/crux/service-layer >>>>>>>> >>>>>>>> El jue, 18 feb 2021 a las 16:49, Carlos Rovira (< >>>>>>>> [email protected]>) escribió: >>>>>>>> >>>>>>>>> Hi David, >>>>>>>>> >>>>>>>>> I'll try to write this on a wiki, since I don't think we have a >>>>>>>>> working example. Hope to come back to you soon. >>>>>>>>> >>>>>>>>> El jue, 18 feb 2021 a las 15:54, David Slotemaker de Bruine (< >>>>>>>>> [email protected]>) escribió: >>>>>>>>> >>>>>>>>>> Hi All, >>>>>>>>>> >>>>>>>>>> I come from a Flex Cairngorm background and I am trying to get my >>>>>>>>>> head around Crux and the Crux example. >>>>>>>>>> >>>>>>>>>> I have gone through the tutorial and read the documentation. But >>>>>>>>>> I am stuck on where to place my RemoteObject tags and how to >>>>>>>>>> reference/call >>>>>>>>>> them. >>>>>>>>>> >>>>>>>>>> The first code snippet from: >>>>>>>>>> >>>>>>>>>> https://apache.github.io/royale-docs/libraries/crux/service-layer >>>>>>>>>> >>>>>>>>>> Shows the injection of a "userService" RemoteObject and a >>>>>>>>>> "ServiceHelper". Where should these code if I am using the >>>>>>>>>> CruxQuickStart >>>>>>>>>> as a base? In UserService.as? Where should the <mx:RemoteObject> be >>>>>>>>>> defined >>>>>>>>>> so it can be injected? >>>>>>>>>> >>>>>>>>>> Any help would be great! >>>>>>>>>> >>>>>>>>>> David >>>>>>>>>> >>>>>>>>> >>>>>>>>> >>>>>>>>> -- >>>>>>>>> Carlos Rovira >>>>>>>>> Apache Member & Apache Royale PMC >>>>>>>>> *Apache Software Foundation* >>>>>>>>> http://about.me/carlosrovira >>>>>>>>> >>>>>>>>> >>>>>>>> >>>>>>>> -- >>>>>>>> Carlos Rovira >>>>>>>> Apache Member & Apache Royale PMC >>>>>>>> *Apache Software Foundation* >>>>>>>> http://about.me/carlosrovira >>>>>>>> >>>>>>>> >>>>>>> >>>>>>> -- >>>>>>> Carlos Rovira >>>>>>> Apache Member & Apache Royale PMC >>>>>>> *Apache Software Foundation* >>>>>>> http://about.me/carlosrovira >>>>>>> >>>>>>> >>>>>> >>>>>> -- >>>>>> >>>>>> *David Slotemaker de Bruïne* >>>>>> *Head of Educational Robotics* >>>>>> >>>>>> >>>>>> >>>>>> Av. Sarriá, 130 - 08017 Barcelona >>>>>> <https://maps.google.com/?q=Av.+Sarri%C3%A1,+130+-+08017+Barcelona&entry=gmail&source=g> >>>>>> >>>>>> >>>>>> T. +34 932 523 729 ext. 135 >>>>>> >>>>>> [email protected] >>>>>> >>>>> >>>>> >>>>> -- >>>>> >>>>> *David Slotemaker de Bruïne* >>>>> *Head of Educational Robotics* >>>>> >>>>> >>>>> >>>>> Av. Sarriá, 130 - 08017 Barcelona >>>>> <https://maps.google.com/?q=Av.+Sarri%C3%A1,+130+-+08017+Barcelona&entry=gmail&source=g> >>>>> >>>>> >>>>> T. +34 932 523 729 ext. 135 >>>>> >>>>> [email protected] >>>>> >>>> >>>> >>>> -- >>>> Carlos Rovira >>>> Apache Member & Apache Royale PMC >>>> *Apache Software Foundation* >>>> http://about.me/carlosrovira >>>> >>>> >>> >>> -- >>> >>> Piotr Zarzycki >>> >> >> >> -- >> >> *David Slotemaker de Bruïne* >> *Head of Educational Robotics* >> >> >> >> Av. Sarriá, 130 - 08017 Barcelona >> <https://maps.google.com/?q=Av.+Sarri%C3%A1,+130+-+08017+Barcelona&entry=gmail&source=g> >> >> >> T. +34 932 523 729 ext. 135 >> >> [email protected] >> > > > -- > > *David Slotemaker de Bruïne* > *Head of Educational Robotics* > > > > Av. Sarriá, 130 - 08017 Barcelona > <https://maps.google.com/?q=Av.+Sarri%C3%A1,+130+-+08017+Barcelona&entry=gmail&source=g> > > > T. +34 932 523 729 ext. 135 > > [email protected] > -- Carlos Rovira Apache Member & Apache Royale PMC *Apache Software Foundation* http://about.me/carlosrovira
