---------- Forwarded message ---------- From: Rupert Smith <[EMAIL PROTECTED]> Date: 20-Aug-2007 14:48 Subject: Re: [Java] Message API design notes To: [EMAIL PROTECTED]
Yes, I was not sure which way round to put the names either. In the end I decided to do it by what you are calling, rather than what you are. So the broker implements ProtocolBroker as a delegate, the client calls the broker, so invokes ProtocolBroker. It could be the other way around. I guess I could have used the name ProtocolServerChassis, but I just didn't like the sound of it. Both ProtocolBroker and ProtocolClient have a messageTransfer method with identical signatures. AbstractProtocolHandler implements both interfaces (it is the root of delegate and invoker). You can have multiple inheritance of interfaces in Java, so this is fine (and I hope its fine with other languages too?). On 20/08/07, Arnaud Simon <[EMAIL PROTECTED]> wrote: > > On Mon, 2007-08-20 at 13:19 +0100, Rupert Smith wrote: > > On 20/08/07, Arnaud Simon <[EMAIL PROTECTED]> wrote: > > I like what Rupert is proposing but it may be too low level. > > Rupert you > > are saying that the current API does not expose the AMQP ping > > mechanism. > > Is that all? Can you provide an exhaustive list of the AMQP > > features > > that are not exposed? > > > > As a typing exercise yes, but not one I am inclined to do. I shall > > instead furnish you with a procedure for creating this list. Look at > > the protocol XML, compare every method marked as <chassis > > name="server" ...>, and look at the API to see if it is there or not. > > Look for every method marked as <chassis name="client ...> and ask > > where is its 'delegate' interface. > > > > On the client side, really only 'messageTransfer' is there. > > > > The comm layer does provide everything, as it is generated from this > > XML. > > Tell me if I am wrong but I thought that "<Chassis name="server" ..." > are the methods that the server handles so those methods should be > exposed as part of a client API. "<Chassis name="client" ..." are the > methods that the client supports and should not be exposed as part of > the client API. > Note that "messageTransfer" should be implemented by server and client > and this is the reason why it must be exposed as part of the client > API. > As I said I may be wrong, how do you interpret the meaning of "Chassis"? > > > Arnaud > >
