Return-Path: X-Original-To: apmail-cayenne-dev-archive@www.apache.org Delivered-To: apmail-cayenne-dev-archive@www.apache.org Received: from mail.apache.org (hermes.apache.org [140.211.11.3]) by minotaur.apache.org (Postfix) with SMTP id 04A4C183FF for ; Thu, 17 Dec 2015 07:05:34 +0000 (UTC) Received: (qmail 69492 invoked by uid 500); 17 Dec 2015 07:05:33 -0000 Delivered-To: apmail-cayenne-dev-archive@cayenne.apache.org Received: (qmail 69466 invoked by uid 500); 17 Dec 2015 07:05:33 -0000 Mailing-List: contact dev-help@cayenne.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: dev@cayenne.apache.org Delivered-To: mailing list dev@cayenne.apache.org Received: (qmail 69446 invoked by uid 99); 17 Dec 2015 07:05:33 -0000 Received: from Unknown (HELO spamd2-us-west.apache.org) (209.188.14.142) by apache.org (qpsmtpd/0.29) with ESMTP; Thu, 17 Dec 2015 07:05:33 +0000 Received: from localhost (localhost [127.0.0.1]) by spamd2-us-west.apache.org (ASF Mail Server at spamd2-us-west.apache.org) with ESMTP id 96E611A113C for ; Thu, 17 Dec 2015 07:05:32 +0000 (UTC) X-Virus-Scanned: Debian amavisd-new at spamd2-us-west.apache.org X-Spam-Flag: NO X-Spam-Score: -0.101 X-Spam-Level: X-Spam-Status: No, score=-0.101 tagged_above=-999 required=6.31 tests=[DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, SPF_PASS=-0.001] autolearn=disabled Authentication-Results: spamd2-us-west.apache.org (amavisd-new); dkim=pass (1024-bit key) header.d=objectstyle.org header.b=gKKeaE37; dkim=pass (1024-bit key) header.d=messagingengine.com header.b=aZrFcbl7 Received: from mx1-eu-west.apache.org ([10.40.0.8]) by localhost (spamd2-us-west.apache.org [10.40.0.9]) (amavisd-new, port 10024) with ESMTP id pbC6W1HW3eDM for ; Thu, 17 Dec 2015 07:05:27 +0000 (UTC) Received: from new1-smtp.messagingengine.com (new1-smtp.messagingengine.com [66.111.4.221]) by mx1-eu-west.apache.org (ASF Mail Server at mx1-eu-west.apache.org) with ESMTPS id 8209C2050F for ; Thu, 17 Dec 2015 07:05:27 +0000 (UTC) Received: from compute2.internal (compute2.nyi.internal [10.202.2.42]) by mailnew.nyi.internal (Postfix) with ESMTP id E61E4C0 for ; Thu, 17 Dec 2015 02:05:19 -0500 (EST) Received: from frontend1 ([10.202.2.160]) by compute2.internal (MEProxy); Thu, 17 Dec 2015 02:05:19 -0500 DKIM-Signature: v=1; a=rsa-sha1; c=relaxed/relaxed; d=objectstyle.org; h=content-transfer-encoding:content-type:date:from:in-reply-to :message-id:mime-version:references:subject:to:x-sasl-enc :x-sasl-enc; s=mesmtp; bh=x0xfL8ksf8PF1x7xzoxCeKytp3I=; b=gKKeaE 37Khr3BWG8/RhtyPJChon/2wQHEwdtX/uHS0vqe97XQDWyZyO+DXCDZMzecyVmYg 5ewqZuYqFiT6wYVC4rVkd3GgT44NPCyloM//c091mLzm52ElDh5GJ37dbJnzOwDI /tScZutnFSPvMdXx6GH6aGlRXT5jgQmEJtfE4= DKIM-Signature: v=1; a=rsa-sha1; c=relaxed/relaxed; d= messagingengine.com; h=content-transfer-encoding:content-type :date:from:in-reply-to:message-id:mime-version:references :subject:to:x-sasl-enc:x-sasl-enc; s=smtpout; bh=x0xfL8ksf8PF1x7 xzoxCeKytp3I=; b=aZrFcbl7cB0ZRmsBe5X7NHCNBz5vTOUNZa1TnR1b9OSXJtd O4TdZxBW/JqzEGf7ooMQfi8K2M9Hw7LD+nHciYZ5BVzn2CLrMPrrFZFVRHu/XSpa nE3iJ4B+GDcbvTRNs678VyFb9e0zhP/Gj4vDg/NIxjUOFzu0loMHhb8pl/qw= X-Sasl-enc: bSdJxaj0puFvzOGpyzzSPXBWFrc5KIoR2NiMY9jIhjZZ 1450335919 Received: from [192.168.1.62] (unknown [212.98.191.4]) by mail.messagingengine.com (Postfix) with ESMTPA id 3DC56C016C4 for ; Thu, 17 Dec 2015 02:05:19 -0500 (EST) Content-Type: text/plain; charset=windows-1252 Mime-Version: 1.0 (Mac OS X Mail 9.2 \(3112\)) Subject: Re: work on ROP From: Andrus Adamchik In-Reply-To: <5671BF35.5060809@gmail.com> Date: Thu, 17 Dec 2015 10:05:15 +0300 Content-Transfer-Encoding: quoted-printable Message-Id: <12DCC748-C737-4B55-896F-0CE0C4B09037@objectstyle.org> References: <56713B2C.40601@ish.com.au> <24A23A99-B53D-497A-8BEA-B5F40070620C@objectstyle.org> <5671BF35.5060809@gmail.com> To: dev@cayenne.apache.org X-Mailer: Apple Mail (2.3112) > On Dec 16, 2015, at 10:44 PM, Dzmitry Kazimirchyk = wrote: >=20 > 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. Great! > 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? Yeah, the current abstraction (ClientConnection) is pretty high-level, = covering 2 concepts: wire protocol and data format. So some pluggability = within a connection may be needed.=20 So how about implementing HttpClientConnection with JAX-RS? It will take = care of HTTP(S) as the wire protocol and will provide very clean = pluggability layer (MessageBodyReader/MessageBodyWriter). I very much = like JAX-RS API, which works on both client and server. And certainly = wouldn't want to reimplement all this from scratch. I think this should = be compatible with protobuf (and maybe with Hessian), as well as JSON or = anything else.=20 One thing I am not sure about is whether we can wrap HTTP/2 support = around this? Andrus=