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 BAD6110A67 for ; Tue, 8 Dec 2015 12:39:45 +0000 (UTC) Received: (qmail 63376 invoked by uid 500); 8 Dec 2015 12:39:45 -0000 Delivered-To: apmail-cayenne-dev-archive@cayenne.apache.org Received: (qmail 63343 invoked by uid 500); 8 Dec 2015 12:39:45 -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 63328 invoked by uid 99); 8 Dec 2015 12:39:45 -0000 Received: from Unknown (HELO spamd4-us-west.apache.org) (209.188.14.142) by apache.org (qpsmtpd/0.29) with ESMTP; Tue, 08 Dec 2015 12:39:45 +0000 Received: from localhost (localhost [127.0.0.1]) by spamd4-us-west.apache.org (ASF Mail Server at spamd4-us-west.apache.org) with ESMTP id C4559C094F for ; Tue, 8 Dec 2015 12:39:44 +0000 (UTC) X-Virus-Scanned: Debian amavisd-new at spamd4-us-west.apache.org X-Spam-Flag: NO X-Spam-Score: 0.98 X-Spam-Level: X-Spam-Status: No, score=0.98 tagged_above=-999 required=6.31 tests=[KAM_LAZY_DOMAIN_SECURITY=1, RCVD_IN_MSPIKE_H3=-0.01, RCVD_IN_MSPIKE_WL=-0.01] autolearn=disabled Received: from mx1-us-east.apache.org ([10.40.0.8]) by localhost (spamd4-us-west.apache.org [10.40.0.11]) (amavisd-new, port 10024) with ESMTP id YGb1Tyj7JP4C for ; Tue, 8 Dec 2015 12:39:43 +0000 (UTC) Received: from mail16.tpgi.com.au (mail16.tpgi.com.au [203.12.160.231]) by mx1-us-east.apache.org (ASF Mail Server at mx1-us-east.apache.org) with ESMTPS id 65BB3439ED for ; Tue, 8 Dec 2015 12:39:41 +0000 (UTC) X-TPG-Junk-Status: Message not scanned X-TPG-Antivirus: Passed X-TPG-Abuse: host=[202.161.115.54]; ip=202.161.115.54; date=Tue, 8 Dec 2015 23:34:32 +1100 Received: from fish.ish.com.au (202-161-115-54.static.tpgi.com.au [202.161.115.54] (may be forged)) by mail16.tpgi.com.au (envelope-from ari@maniatis.org) (8.14.3/8.14.3) with ESMTP id tB8CYUY4000565 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=NO) for ; Tue, 8 Dec 2015 23:34:32 +1100 Received: from [10.242.2.26] (port=56089 helo=Aristedess-MacBook-Pro.local) by fish.ish.com.au with esmtpsa (TLSv1.2:DHE-RSA-AES128-SHA:128) (Exim 4.82_1-5b7a7c0-XX) (envelope-from ) id 1a6HTH-0003JL-2y for dev@cayenne.apache.org; Tue, 08 Dec 2015 23:34:20 +1100 X-CTCH-RefID: str=0001.0A150206.5666CE4C.0151,ss=1,re=0.000,recu=0.000,reip=0.000,cl=1,cld=1,fgs=0 Subject: Re: [jira] [Commented] (CAY-2038) Hessian serialization error when using JSR-310 Date types with ROP To: dev@cayenne.apache.org References: <5662EF24.1000902@maniatis.org> <3BAD61AC-67F2-4D3B-9E2E-F874C35FF435@objectstyle.org> <56655438.7040409@maniatis.org> <56655718.4080604@maniatis.org> <5311F74B-83A8-4C25-A034-8DB99B43F74F@objectstyle.org> From: Aristedes Maniatis X-Enigmail-Draft-Status: N1110 Message-ID: <5666CE4A.3010406@maniatis.org> Date: Tue, 8 Dec 2015 23:34:18 +1100 User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.11; rv:42.0) Gecko/20100101 Thunderbird/42.0 MIME-Version: 1.0 In-Reply-To: Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit On 8/12/2015 10:36pm, Michael Gentry wrote: > At the risk of muddying the thread, I think the biggest weakness/hole for > Cayenne as an ROP server is dealing with the evolving JavaScript UI > frameworks (AngularJS, KnockoutJS, etc). The real advantage of Cayenne's ROP implementation is that the client code looks a lot like code you'd write directly on the server. You manipulate the same ObjectContexts. You get to roll back, validate records, use parent contexts and all the same stuff you expect from Cayenne. Mostly you can be unaware of the magic that happens to get your queries and commits from the client to the server and back again. Once you leave ROP, then you start to plan around RESTful url routing paths, serialisation of objects into non-Java formats (often json into Javascript) and a completely different environment between the server and the client. Sometimes that's exactly what you need and the abstraction is useful... you might have different development teams working on each end. But ROP is also nice. You can (often) share code between client and server and (mostly) ignore what happens in between. In our testing environment we even glue together the client and server, bypassing the http connection, so the we can run unit tests on the client code without starting up a separate server. Ari -- --------------------------> Aristedes Maniatis GPG fingerprint CBFB 84B4 738D 4E87 5E5C 5EFA EF6A 7D2E 3E49 102A