The easiest thing I see that we can do now is to preserve Hessian's RPC/serialization layer, i.e. HessianProxy/HessianProxyFactory, but instead of routing the call through the default Hessian's HTTP connectivity mechanism re-route it to our own pluggable networking interface instead.

Pluggable RPC/serialization is significantly harder since we need both ends (client and server) to agree on the protocol. I am still thinking on this, but perhaps having our own library independent RPC layer implementation instead of relying on HessianProxy (client) + HessianServlet (server) could make a task of making pluggable serialization layer easier?

Dima


On 12/16/2015 09:19 PM, Andrus Adamchik wrote:
* unwrap anything HTTP from the code and throw it away
* that includes cookie handling, user, password, etc
* ideally make Hessian pluggable/replaceable, but that's a secondary goal and 
may be left till later


I am certainly +1 on this.

Though all the connectivity is delegated to HessianProxyFactory (with some 
Cayenne flavor on top). Hope you've already figured out how to swap that out.

Andrus


On Dec 16, 2015, at 1:21 PM, Aristedes Maniatis <a...@ish.com.au> wrote:

Just a heads up that Dima and I have been chatting offline about dramatically 
reworking the ROP connection code at the client end. I think our goals right 
now are simple:

* unwrap anything HTTP from the code and throw it away
* that includes cookie handling, user, password, etc
* ideally make Hessian pluggable/replaceable, but that's a secondary goal and 
may be left till later

I suspect much of the work needed is to figure how ClientChannel needs to 
interact with the connection and perhaps develop a very simple interface for 
that connection inside Cayenne.

The idea is to let the user supply their own connection. Whether that be http 
client libraries from Java, httpClient from apache commons, or the jetty http2 
client library. Then it becomes easy to:

* wrap the connection in SSL
* add different types of authentication
* manage session cookies
* add session timeouts
* compress the http stream
* use keep-alive


Dima, have I roughly summarised the goals here? Do you have anything to add?


Ari



--
-------------------------->
Aristedes Maniatis
ish
http://www.ish.com.au
Level 1, 30 Wilson Street Newtown 2042 Australia
phone +61 2 9550 5001   fax +61 2 9550 4001
GPG fingerprint CBFB 84B4 738D 4E87 5E5C  5EFA EF6A 7D2E 3E49 102A


Reply via email to