Hi all, Hopefully we won't slip too much and be able to release 1.1 this summer. Hopefully you'll be able to migrate soon. Best regards, Jerome
_____ De : Rob Heittman [mailto:[EMAIL PROTECTED] Envoyé : jeudi 15 mai 2008 01:22 À : [email protected] Objet : Re: Re: Re: Calling a resource from another resource Given those constraints, I think you may have to go with just having one Resource invoke another directly. There are some internal routing patches to 1.0 referenced in the tickets that led to RIAP, but I would imagine if you are not allowed to use a 1.1 milestone, you also wouldn't be able to use a patched 1.0 build. On Wed, May 14, 2008 at 6:48 PM, Bao,Sam <[EMAIL PROTECTED]> wrote: I'm sorry, but I'm not able to get this to work with 1.0.9. I don't have a getServerDispatcher(), where is this? On the context, I have just getDispatcher(), but that doesn't seem to be able to find a resource. For now, I tried creating a client and calling the server, which works, but requires me to know the host and port, which locally I know, but when deployed, I will not know. How to dynamically determine the app's host and port? I think I'm going to try porting over to 1.1 and see if it'll work, but I have a feeling, my request will be rejected and we'll be using 1.0.9 till 1.1 is fully released. Sam Bao | Software Engineer | Cerner Corporation | 816.201.8242 | <mailto:[EMAIL PROTECTED]> [EMAIL PROTECTED] | <http://www.cerner.com/> www.cerner.com _____ From: Rob Heittman [mailto:[EMAIL PROTECTED] Sent: Wednesday, May 14, 2008 4:12 PM To: [email protected] Subject: Re: Re: Calling a resource from another resource Oops, RIAP may be introduced only in 1.1, I can't remember. Certainly I quoted the 1.1 wiki docs. Besides that, you'll need to substitute something like "riap://application/conditions" for just "riap://conditions" The host part of the riap: pseudoprotocol is used to say whether the reference should be resolved relative to the context's Component, Application, or (now in trunk) VirtualHost. Note that these are relative to the Context from which you get the dispatcher, so you may not be able to say //application if you are explicitly fetching the Component's context. getContext().getClientDispatcher() is the usual way. In the 1.0 tree, you'd need at least the ability to address the server dispatcher (getServerDispatcher()) to make an internal call of any sort. Most of this internal-call goodness came about as the 1.1 effort was starting up though, so I don't rightly remember what's actually exposed in 1.0.x. It is pretty straightforward to develop your solution with HTTP calls in 1.0 and know you can trivially change them to RIAP calls for efficiency when you update to 1.1. - Rob On Wed, May 14, 2008 at 4:58 PM, Bao,Sam <[EMAIL PROTECTED]> wrote: Do you have any sample code that demonstrates the proper usage of the riap? I'm running 1.0.9 so not all of the methods translate directly over to me, but this is what I'm doing inside of my Check Status Resource: // Create a new Component. Component component = new Component(); // Attach the results application. component.getDefaultHost().attach( "/conditions", ConditionsResource.class); component.getContext().getDispatcher().get( "riap://conditions"); I'm attach condition resource class to the "/conditions" path, and then calling a get on it right? Sam Bao | Software Engineer | Cerner Corporation | 816.201.8242 | <mailto:[EMAIL PROTECTED]> [EMAIL PROTECTED] | <http://www.cerner.com/> www.cerner.com _____ From: Rob Heittman [mailto:[EMAIL PROTECTED] Sent: Wednesday, May 14, 2008 3:07 PM To: [email protected] Subject: Re: Calling a resource from another resource You almost certainly want to use the Restlet Internal Application Protocol (RIAP) http://wiki.restlet.org/docs_1.1/g1/13-restlet/48-restlet/86-restlet/90-rest let/45-restlet.html This avoids either the overhead of an external HTTP call or the risk of error and tight bindings associated with directly calling between objects. RIAP gets heavy exercise by my company and Marc Portier's, even if nobody else really knows about it yet :-) - Rob _____ CONFIDENTIALITY NOTICE This message and any included attachments are from Cerner Corporation and are intended only for the addressee. The information contained in this message is confidential and may constitute inside or non-public information under international, federal, or state securities laws. Unauthorized forwarding, printing, copying, distribution, or use of such information is strictly prohibited and may be unlawful. If you are not the addressee, please promptly delete this message and notify the sender of the delivery error by e-mail or you may call Cerner's corporate offices in Kansas City, Missouri, U.S.A at (+1) (816)221-1024.

