> Do the Restlet docs really say this? If so, those docs are sending a deeply
> misleading message and should be fixed.

They definitely imply that. They take what appear to be standard (if 
simplistic) business methods, mark them up and it all works. But they is no 
mention anywhere (that I could find) of the restriction on the interfaces that 
you can enact.

IMO to make those restrictions visible at runtime a client or server side 
exception should be thrown if the target method does not meet the underlying 
requirements of the architecture. The at least developers would know right away 
that their understanding is at fault, rather than their implementation.

> Right, but Restlet supports the uniform HTTP interface, not a more general
> notion of Java interface. Sticking to a uniform interface is important for
> interoperability with non-Java clients/components.

Fine, and I admit I have been thinking about this solely in terms of Java 
actors at both client and server. But as I pointed about above there is no 
runtime mechanism to let you know that what you are doing does not conform with 
the Restlet's implementation assumptions .

> > Dynamic proxies have been used to marshall/unmarshall remote method calls
> > for the last 10 years and I think most developers have come to expect a
> > certain level of functionality from that.
> 
> Could it be that people are confusing Restlet with JAX-RS?

Possibly. Again see my points above. The examples and doco do nothing to make 
it clear the difference between the two. And in fact I would argue the Java 
examples do a lot to make them seem the same.


> What do you mean by "cheaper of the two options"? Restlet as it stands is
> pretty streamlined; it's hard to see how adding further magical behavior
> could be anything but more expensive.
> 
> It would be nontrivial to "modify the code to allow it to happen". It's not
> as if this functionality already exists and just needs to be enabled. 

Well the additional code for the marshalling in Java is trivial. I'd estimate 
it's probably cheaper than modifying all the examples and code to make it clear 
that you can't supply more than one param.

> There are a lot of questions to answer: 
> How would you map between generic Java
> interfaces and the uniform HTTP interface and still preserve the option of
> having non-Java clients and servers? 

:-) Well, I'd start by documenting the structure of the single object that 
needs to be transmitted across the wire.


> And if someone else prefers a
> different mapping mechanism, why should your mapping be enshrined in
> Restlet?

All I'm talking about is a (backwards compatible) transport mechanism that 
bundles multiple params into a single param as part of the marshalling. This is 
no different to the current mechanism in Restlet, just an expansion on it. So I 
don't understand your comment about having "my" mechanism enshrined in Restlet.


> Is JAX-RS closer to what you're looking for? Or why not simply write your
> own business layer on top of the Restlet layer? That way you can control
> how parameters are conveyed over HTTP (via URI template variable, HTTP
> header, or as part of an entity) without having to settle for someone
> else's notion of how to do it.

Perhaps JAX-RS is what I should be using. I just looked over Restlet, it seemed 
to have the right level of depth and detail and I guess I was mislead by the 
examples and doco over exactly what it does and doesn't do.

This isn't a problem for me and I'm not trying to start some flame war over a 
particular implementation. I'm trying to contribute back after blowing 2 weeks 
trying to decipher what I would have expected to have realised in 5 mins.

------------------------------------------------------
http://restlet.tigris.org/ds/viewMessage.do?dsForumId=4447&dsMessageId=3004344

Reply via email to