Return-Path: X-Original-To: apmail-isis-users-archive@www.apache.org Delivered-To: apmail-isis-users-archive@www.apache.org Received: from mail.apache.org (hermes.apache.org [140.211.11.3]) by minotaur.apache.org (Postfix) with SMTP id 43DA41847D for ; Fri, 20 Nov 2015 00:17:40 +0000 (UTC) Received: (qmail 17938 invoked by uid 500); 20 Nov 2015 00:17:35 -0000 Delivered-To: apmail-isis-users-archive@isis.apache.org Received: (qmail 17905 invoked by uid 500); 20 Nov 2015 00:17:35 -0000 Mailing-List: contact users-help@isis.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: users@isis.apache.org Delivered-To: mailing list users@isis.apache.org Received: (qmail 17893 invoked by uid 99); 20 Nov 2015 00:17:34 -0000 Received: from Unknown (HELO spamd1-us-west.apache.org) (209.188.14.142) by apache.org (qpsmtpd/0.29) with ESMTP; Fri, 20 Nov 2015 00:17:34 +0000 Received: from localhost (localhost [127.0.0.1]) by spamd1-us-west.apache.org (ASF Mail Server at spamd1-us-west.apache.org) with ESMTP id 652EDC76B4 for ; Fri, 20 Nov 2015 00:17:34 +0000 (UTC) X-Virus-Scanned: Debian amavisd-new at spamd1-us-west.apache.org X-Spam-Flag: NO X-Spam-Score: 1 X-Spam-Level: * X-Spam-Status: No, score=1 tagged_above=-999 required=6.31 tests=[MSGID_MULTIPLE_AT=1, SPF_PASS=-0.001, URIBL_BLOCKED=0.001] autolearn=disabled Received: from mx1-eu-west.apache.org ([10.40.0.8]) by localhost (spamd1-us-west.apache.org [10.40.0.7]) (amavisd-new, port 10024) with ESMTP id eIDC8vd3EfN7 for ; Fri, 20 Nov 2015 00:17:22 +0000 (UTC) Received: from na01-bn1-obe.outbound.protection.outlook.com (mail-bn1on0139.outbound.protection.outlook.com [157.56.110.139]) by mx1-eu-west.apache.org (ASF Mail Server at mx1-eu-west.apache.org) with ESMTPS id F24BA23047 for ; Fri, 20 Nov 2015 00:17:20 +0000 (UTC) Authentication-Results: spf=none (sender IP is ) smtp.mailfrom=cesar.lugo@sisorg.com.mx; Received: from PCCELU06 (189.243.238.67) by BY1PR0301MB0840.namprd03.prod.outlook.com (10.160.193.146) with Microsoft SMTP Server (TLS) id 15.1.331.20; Fri, 20 Nov 2015 00:17:16 +0000 From: Cesar Lugo To: References: In-Reply-To: Subject: RE: Restful objects list action result with domain object representation instead of links Date: Thu, 19 Nov 2015 18:17:12 -0600 Message-ID: <005e01d12328$d02191e0$7064b5a0$@lugo@sisorg.com.mx> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable X-Mailer: Microsoft Office Outlook 12.0 Thread-Index: AdEcj6OIUzBxcvffQuezo02Fc8blQgGl9iNA Content-Language: en-us X-Antivirus: avast! (VPS 151119-1, 11/19/2015), Outbound message X-Antivirus-Status: Clean X-Originating-IP: [189.243.238.67] X-ClientProxiedBy: BY1PR17CA0005.namprd17.prod.outlook.com (25.162.18.143) To BY1PR0301MB0840.namprd03.prod.outlook.com (25.160.193.146) X-Microsoft-Exchange-Diagnostics: 1;BY1PR0301MB0840;2:gHIJd7FUPMEXQs7N8/PZ+hIlXymGU2XiGLKdfiaJLVfwROgi5+QduPqZfsglszZtTN4Xv8zgEoFPUmPlMGTg6diNX7MKd2w5Eekferq8DuoIAmpizN3LB1h+sa1U/6LXWzKUOhBg3H1sK9Oqv79Hxw==;3:SLPVbAV8Di/LgEwntv+lcs3kF1l3gfXP+lQo0lPGnMVlP40SQjNA2F/7koKHcjIZguFybW7ENfIouD+vU6Fb0lWYzLoE+M/acqvMhkuA0w14V3Z2ugYgCGjuLAyeU5/W;25:u6sOkvh/SBXi3puBXhota0Jar3XZvxE7oZrcxCemEVvWxDT8F7hXAyriWXOlcDxDwLq/PKpj3d6cXf2kb6EpI64GxSlVd3fRl1OL3dh07npjW6ySwU1pQ6AlLzQy4srtCXgPHV2tvpApH6hgXo+Ir0hQ37DLMzfuHlJ1HSfl9/gs7HMIJyqTOjLK9O2YY37w2nHqb1hGCsXbTZDZigQgUQHoLF2SfhhQWI1JDALyKV6kt/p8cE35atQfeTa0Alu7yFGcKFRUk6aSEpQF3MdAwA==;4:/DHFEc2Er3+UTxJcezm6kGQqyxksz52ro1vhuogxyZ1MV2PCV4KhuwQ7oK9vc6YzZjGq0WPkod+L+Xa0lBgqQ4dPKEhbGT/lt3AX8rXCAxtFfai4br5t9RyJqVeMAMJf0a09sYhW9HFfQWBjh8MEH7qrTPkovzUGkdJydrtYdrLP7rfIUdJZfyZbrpDEeSESphD9kfEmI/G2sQbqe1rD4S/cHpsfHRjLPzL+63tck1iK2kkgDwjmfeNol/1BFCCghUtNWbIprXhfiAkHG2lpKbFqkpZp1gFyK56yVAvVfbQcm/f+E3o2Klqm8lRGazR+Q7O6UGbXJU/CYHyTdCEtI1Ssr6T0E20EHwAY7hoZCYzCFgRYQTxDJGQ44NCSxTn9 X-Microsoft-Antispam: UriScan:;BCL:0;PCL:0;RULEID:;SRVR:BY1PR0301MB0840; X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:; X-Exchange-Antispam-Report-CFA-Test: BCL:0;PCL:0;RULEID:(601004)(2401047)(8121501046)(520078)(5005006)(10201501046)(3002001);SRVR:BY1PR0301MB0840;BCL:0;PCL:0;RULEID:;SRVR:BY1PR0301MB0840; X-Forefront-PRVS: 07665BE9D1 X-Forefront-Antispam-Report: SFV:NSPM;SFS:(10019020)(6009001)(13464003)(51694002)(189002)(199003)(377454003)(52044002)(24454002)(66654002)(5001960100002)(2950100001)(2351001)(42186005)(93886004)(77096005)(3846002)(33646002)(586003)(15975445007)(50226001)(61296003)(122386002)(6116002)(84116002)(23676002)(92566002)(86362001)(102836003)(36756003)(5008740100001)(40100003)(74482002)(19580405001)(19580395003)(5004730100002)(5007970100001)(14726001)(107886002)(81156007)(110136002)(66066001)(189998001)(5001920100001)(101416001)(450100001)(47776003)(97736004)(96836002)(76176999)(105586002)(106356001)(50466002)(50986999)(87976001)(11686003);DIR:OUT;SFP:1102;SCL:1;SRVR:BY1PR0301MB0840;H:PCCELU06;FPR:;SPF:None;PTR:InfoNoRecords;MX:1;A:1;LANG:en; Received-SPF: None (protection.outlook.com: sisorg.com.mx does not designate permitted sender hosts) X-Microsoft-Exchange-Diagnostics: =?utf-8?B?MTtCWTFQUjAzMDFNQjA4NDA7MjM6N0lYUXhPYURxUW45bU1MUDIvMHErSmR5?= =?utf-8?B?U0ZaYmZqd096c01ubnU2cnVSSW9CbklGdkhDQzZlanZJQ2VDei9ubXpGSGI1?= =?utf-8?B?M1EwOVU3TzBtVVJ0dWFwZk5iM1FqWm5nZ2NHZnV6Tmo5cUlOZ0lDc0pldzcw?= =?utf-8?B?bDdRQWtpMWM4cithZ05tWmJ0TzVIb0dSQzdXWUFxN0pwS0RKWExNbEZoR3ky?= =?utf-8?B?c1cvR0l3MTk3V2w1WEpKaW1UdXNVWkh3WVFJVEx4SU1ycXZGT05zY0p4d2F0?= =?utf-8?B?bFI5VFA2b05NVkJKdHk0M29qMVdZc2p4VlJVMExwQVRoVmdPd2haYTNJRDRO?= =?utf-8?B?M2kvQk4xSjQwVnNrL1dnd29QSU9WdEVSc0NVL0hPRkdHRHVCM21TRDVwbm5C?= =?utf-8?B?bE9QUHFDZTNIQ2NDUXVPb05OM01JSTMwc3NBa0VSd3hDZUtYOTE1M294NDJm?= =?utf-8?B?VXFFd2tYN2ZxbkQvU3lWTlVxdHFzV0JsSEVMZmlZUzVDN2RpaW5vR1l5QWVp?= =?utf-8?B?WThZeWRBemo2UUVQOHVvcExPb2hUZkNnLzVnRmF0N3VRTlZ4RmNpMThONjU4?= =?utf-8?B?Tmc4dDdxdWZsS3J2QkErbU9jQXMwOElVbi8wZUxhRVFYQkswdEswSHprSDJ5?= =?utf-8?B?RlMyMGZ2bzVDSU0xQ3NOcVlRV1FzVlYyRjVtcnh6SENHVGFuL2dLeXY2WlRv?= =?utf-8?B?MkZhSUFKVHE5bmg2OU5jYVUwMFNxOWh2czRwNFBiOU14NE1ablVrbUFyajE0?= =?utf-8?B?aXJ5UktMc3hLMzdiZUtzQ29RelhiUGpHM1ZQWXNoN0tRT1ZKR1VzVWlWU0lv?= =?utf-8?B?Y3dLY3ZHSVBsMlhjVkZva0JiZlJHYVBUSzU4WUgrajhjSGYycjQyWGphTTFZ?= =?utf-8?B?d2dvYkhMSmNYbmorWTJOZlZvaDQ4Qi8rRkljVzUzSzQ4L21DNnkzUzZNM2w5?= =?utf-8?B?VFRPZTUrdlNORnpOcUduZXFNUG5DRmkrRXMrMzUxRmhjLysyaFYyU3ErVFNn?= =?utf-8?B?U1paYzBmenNDMWlRTjFPZmF3Qyt6TjRNSVpoYkhuNHZyaEJEczlkZ2tZbk5W?= =?utf-8?B?amRUNkdPVVJVazRzNnVBRkVsWFZoK08wTG9qZno5K1JxS0lGcTZ0WnQ2RCtJ?= =?utf-8?B?MEZra3ZzalN5ZkRaU1RTTm9ReU1hc3l4bjdYdWs1amNCaWZMdHE1VlZoekdH?= =?utf-8?B?Y3BMN0lpbUZYQjNQTWd5WlJIU2FaUHBSUlhuRnJGNE1RWHc5Z0hYblVHd1NO?= =?utf-8?B?Wi96T0hPS2prVmJQVHYwNFFDTXVVVElXemVFeEVDWWRLc1gvSDJqOFRuZGx2?= =?utf-8?B?SWhZNUdTZkxHdm5KTGVZNVJDalQ5djdxVjdRbnZjUHl0a0kwaThmWHNaY2tD?= =?utf-8?B?NHhqN0I2NnowRll4dEJQY1FrK0ZaK1NVblhjdVp3dFl4Z3dibFAyT2RRL1hT?= =?utf-8?B?clo2VCs2OTB3SkE2cEtvZ2dWd2tpdHZnOUx4WWFQWG5KbU9ETFgxV1d2Rm5V?= =?utf-8?B?RzEyNFhFUHVxTlQrS013eWhiWnRDK0luY0RaMzhuNUZ6UUhqbjRTQ0JMMzlN?= =?utf-8?B?eFc4OEY0dS9yWU1zek1BNFA2bkVQYXc1L3R3T1B0RjBDUzU2VEg3ck0wRGpE?= =?utf-8?B?QjNDZDQzQlJHT1Z6TW90NGd0cXNsL1EwbzM2K1NzY1hWTnBtSWdMdFlYS1RH?= =?utf-8?B?QU1leHQvM3RNcEp2ZU1IeGN3clFqeTNlZGlhSVNhcGltZlNWZE1UREN4QXhi?= =?utf-8?B?OFhvQXpwRk52L2ZrSkttL2NZaGpEYUJmWVk1aStPZ0ZhdG94bUVKWWVyd2Zz?= =?utf-8?B?RWgwY2dOMmVKeWtxWXRTS1drSFFqa2NlUnNkamp4UlB1eXVlbXg1VmhFOCt3?= =?utf-8?Q?JzYQQ+x0c2Z83V2WILKIq6VLu8qaMkIw7q?= X-Microsoft-Exchange-Diagnostics: 1;BY1PR0301MB0840;5:RyH0J9/JmQAh+XiiX5bTIO4mMMgIzhwWuUKB592EIxjuIjaylPcTrm9PRBkSLD7L1/6JqdhvRiJ68SwezEArH3eziODoH150CepiVupCBmHUDza6lM8QECPnQv4ALd3RNV3FXgtXgRJcPVlUXYVOeQ==;24:9u/sFOFwTebBv0sukUyyY0kJ+mnQAlKKfzwLIKBwCwXlNEVSIgzaDOJV1a0nlBpHyQWsMZ7cJW1vHjTO255yBV1u7/neJF3jTnU/Osp+ZuU= SpamDiagnosticOutput: 1:23 SpamDiagnosticMetadata: NSPM X-OriginatorOrg: sisorg.com.mx X-MS-Exchange-CrossTenant-OriginalArrivalTime: 20 Nov 2015 00:17:16.8041 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-Transport-CrossTenantHeadersStamped: BY1PR0301MB0840 Hello, Just wondering, is this feature available in apache Isis 1.10.0? I tried to= follow a link, but it issues an error "not a string". It would help a lot = with my client application if I can eagerly load links (parent - child ) ju= st like in the video. This link works ok and shows value.href values with its link: http://localhost:8080/restful/objects/simple.BusinessLocation/1/collections= /itemBusinessLocations The this one: http://localhost:8080/restful/objects/simple.BusinessLocation/1/collections= /itemBusinessLocations?x-ro-follow-links=3Dvalue.href issues: { className: "java.lang.IllegalArgumentException", message: "is not a string", stackTrace: [ "org.apache.isis.viewer.restfulobjects.applib.JsonRepresentation.checkValue= (JsonRepresentation.java:1712)", "org.apache.isis.viewer.restfulobjects.applib.JsonRepresentation.getString(= JsonRepresentation.java:964)", "org.apache.isis.viewer.restfulobjects.applib.JsonRepresentation.asString(J= sonRepresentation.java:957)", "org.apache.isis.viewer.restfulobjects.applib.util.Parser.valueOf(Parser.ja= va:64)", "org.apache.isis.viewer.restfulobjects.applib.client.RestfulRequest$Request= Parameter.valueOf(RestfulRequest.java:93)", "org.apache.isis.viewer.restfulobjects.server.ResourceContext.getArg(Resour= ceContext.java:240)", "org.apache.isis.viewer.restfulobjects.server.ResourceContext.init(Resource= Context.java:135)", "org.apache.isis.viewer.restfulobjects.server.ResourceContext.(Resour= ceContext.java:125)", "org.apache.isis.viewer.restfulobjects.server.resources.ResourceAbstract.in= it(ResourceAbstract.java:120)", "org.apache.isis.viewer.restfulobjects.server.resources.ResourceAbstract.in= it(ResourceAbstract.java:87)", "org.apache.isis.viewer.restfulobjects.server.resources.DomainObjectResourc= eServerside.accessCollection(DomainObjectResourceServerside.java:286)", "sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)", "sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:= 62)", "sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorIm= pl.java:43)", "java.lang.reflect.Method.invoke(Method.java:497)", "org.jboss.resteasy.core.MethodInjectorImpl.invoke(MethodInjectorImpl.java:= 137)", "org.jboss.resteasy.core.ResourceMethodInvoker.invokeOnTarget(ResourceMetho= dInvoker.java:296)", "org.jboss.resteasy.core.ResourceMethodInvoker.invoke(ResourceMethodInvoker= =2Ejava:250)", "org.jboss.resteasy.core.ResourceMethodInvoker.invoke(ResourceMethodInvoker= =2Ejava:237)", "org.jboss.resteasy.core.SynchronousDispatcher.invoke(SynchronousDispatcher= =2Ejava:356)", "org.jboss.resteasy.core.SynchronousDispatcher.invoke(SynchronousDispatcher= =2Ejava:179)", "org.jboss.resteasy.plugins.server.servlet.ServletContainerDispatcher.servi= ce(ServletContainerDispatcher.java:220)", "org.jboss.resteasy.plugins.server.servlet.HttpServletDispatcher.service(Ht= tpServletDispatcher.java:56)", "org.jboss.resteasy.plugins.server.servlet.HttpServletDispatcher.service(Ht= tpServletDispatcher.java:51)", "javax.servlet.http.HttpServlet.service(HttpServlet.java:790)", "org.eclipse.jetty.servlet.ServletHolder.handle(ServletHolder.java:816)", "org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandl= er.java:1684)", "org.apache.isis.viewer.restfulobjects.server.webapp.IsisTransactionFilterF= orRestfulObjects.doFilter(IsisTransactionFilterForRestfulObjects.java:41)",= "org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandl= er.java:1667)", "org.apache.isis.core.webapp.IsisSessionFilter.doFilter(IsisSessionFilter.j= ava:307)", "org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandl= er.java:1667)", "org.apache.isis.core.webapp.diagnostics.IsisLogOnExceptionFilter.doFilter(= IsisLogOnExceptionFilter.java:52)", "org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandl= er.java:1667)", "org.apache.shiro.web.servlet.AbstractShiroFilter.executeChain(AbstractShir= oFilter.java:449)", "org.apache.shiro.web.servlet.AbstractShiroFilter$1.call(AbstractShiroFilte= r.java:365)", "org.apache.shiro.subject.support.SubjectCallable.doCall(SubjectCallable.ja= va:90)", "org.apache.shiro.subject.support.SubjectCallable.call(SubjectCallable.java= :83)", "org.apache.shiro.subject.support.DelegatingSubject.execute(DelegatingSubje= ct.java:383)", "org.apache.shiro.web.servlet.AbstractShiroFilter.doFilterInternal(Abstract= ShiroFilter.java:362)", "org.apache.shiro.web.servlet.OncePerRequestFilter.doFilter(OncePerRequestF= ilter.java:125)", "org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandl= er.java:1667)", "org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:581)= ", "org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:1= 43)", "org.eclipse.jetty.security.SecurityHandler.handle(SecurityHandler.java:548= )", "org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.ja= va:226)", "org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.ja= va:1114)", "org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:511)"= , "org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.jav= a:185)", "org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.jav= a:1048)", "org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:1= 41)", "org.eclipse.jetty.server.handler.ContextHandlerCollection.handle(ContextHa= ndlerCollection.java:213)", "org.eclipse.jetty.server.handler.HandlerCollection.handle(HandlerCollectio= n.java:109)", "org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java= :119)", "org.eclipse.jetty.server.Server.handle(Server.java:517)", "org.eclipse.jetty.server.HttpChannel.handle(HttpChannel.java:302)", "org.eclipse.jetty.server.HttpConnection.onFillable(HttpConnection.java:242= )", "org.eclipse.jetty.io.AbstractConnection$ReadCallback.succeeded(AbstractCon= nection.java:245)", "org.eclipse.jetty.io.FillInterest.fillable(FillInterest.java:95)", "org.eclipse.jetty.io.SelectChannelEndPoint$2.run(SelectChannelEndPoint.jav= a:75)", "org.eclipse.jetty.util.thread.strategy.ExecuteProduceConsume.produceAndRun= (ExecuteProduceConsume.java:213)", "org.eclipse.jetty.util.thread.strategy.ExecuteProduceConsume.run(ExecutePr= oduceConsume.java:147)", "org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.jav= a:654)", "org.eclipse.jetty.util.thread.QueuedThreadPool$3.run(QueuedThreadPool.java= :572)", "java.lang.Thread.run(Thread.java:745)" ], causedBy: null } Cesar. -----Original Message----- From: Dan Haywood [mailto:dan@haywood-associates.co.uk] Sent: Wednesday, November 11, 2015 8:45 AM To: users Subject: Re: Restful objects list action result with domain object represen= tation instead of links It would. I'll look into it. Thx Dan On 11 November 2015 at 14:43, Willie Loyd Tandingan wrote: > Hey Dan, > > I just tried it and works great for domain object, properties, collection= s! > > Is it possible to extend it also for action results? Our use case > involves search actions (with keywords, or all) returning lists that > need to be displayed in a grid. > > > Many thanks, > Willie > > On Tue, Nov 10, 2015 at 2:26 AM, Dan Haywood > > > wrote: > > > Hi Willie, > > > > Edit:this was in my drafts, forgot to send! Don't think it says > > anything you didn't work out already... > > > > just following up, I've got the x-ro-follow-links stuff working to > support > > the eager loading of either collections, or of parent references; ie > > ISIS-1232 and ISIS-1233. My original plan for x-ro-follow-links was > > to make it fully generic, but that's a lot of testing without > > necessarily > any > > real use case. So I think I'm going to descope it just to support > > your > use > > cases. > > > > To explain how to use this feature I've recorded a screencast [1] > > which uses the kitchensink app [2] > > > > If you want to try this out, you'll need to checkout the ISIS-1232 > > branch and build locally. > > > > Feedback welcome! > > > > Thx > > Dan > > > > [1] https://youtu.be/hSKnqqBQ7Zo > > [2] https://github.com/isisaddons/isis-app-kitchensink > > Hi Willie, > > > > I admit I haven't thought about any of this too much over and above > what's > > in the spec (that I wrote a *long* time ago). I just wanted to > > commit myself mentally to doing this stuff soon. > > > > I know that some of this stuff has been implemented on Naked > > Objects.NET, so I will check with those guys (Richard and Stef) to > > see how they did > it. > > > > But if you have ideas, please feel free to comment on the tickets raise= d. > > > > Thx > > Dan > > > > > > > > On 4 November 2015 at 16:57, Willie Loyd Tandingan < > > tandingan.wlb@gmail.com> > > wrote: > > > > > That's great to hear! > > > > > > I'm pretty curious on how x-ro-sort-by, x-ro-page, and > > > x-ro-page-size > > will > > > be implemented. Will these parameters be acquired from a request > > > scoped service or something like an action invocation context? How > > > about the properties for the paged collection e.g. total number of > > > records, page number, size, etc.? > > > > > > On Tue, Nov 3, 2015 at 8:31 AM, Dan Haywood < > > dan@haywood-associates.co.uk> > > > wrote: > > > > > > > I've raised ISIS-1232, ISIS-1233, ISIS-1234 and ISIS-1235 for these= =2E > > > I'll > > > > aim to implement the first two (x-ro-follow-links, table grids) > > > > in > > > 1.11.0. > > > > > > > > Thx > > > > Dan > > > > > > > > https://issues.apache.org/jira/browse/ISIS-1232 > > > > https://issues.apache.org/jira/browse/ISIS-1233 > > > > https://issues.apache.org/jira/browse/ISIS-1234 > > > > https://issues.apache.org/jira/browse/ISIS-1235 > > > > > > > > > > > > On 15 October 2015 at 22:26, Dan Haywood < > dan@haywood-associates.co.uk > > > > > > > wrote: > > > > > > > > > OK, I can focus on those sections, as and when I get the chance. > > > > > > > > > > IIRC, I did implement some of the x-ro-follow-links stuff, but > > > > > it > > must > > > > > have been over 2 years ago, so I forget the details as to how > > > > > to > make > > > it > > > > > work exactly. Some slightly odd xpath-like syntax, I think. > > > > > > > > > > Thx > > > > > Dan > > > > > > > > > > On 14 October 2015 at 19:29, Willie Loyd Tandingan < > > > > > tandingan.wlb@gmail.com> wrote: > > > > > > > > > >> Hello Dan, > > > > >> > > > > >> The short answer is no. I'm not averse to enhancing this > > > > >> with > > > > extensions > > > > >> > as they make sense. > > > > >> > > > > > >> > But the longer answer is that there a couple of SPI > > > > >> > services > that > > > > allow > > > > >> you > > > > >> > to customize the representations, [1], [2]. The default RO > > > > >> representations > > > > >> > are performed by an implementation of [1]. > > > > >> > > > > > >> > Eventually I'm thinking that Isis might provide > > > > >> > out-of-the-box implementations for HAL, Collection+JSON, > > > > >> > Siren etc... but you > > might > > > > >> find > > > > >> > that your client-side (Javascript?) widget UI libraries > > > > >> > work > best > > > with > > > > >> some > > > > >> > other more "adhoc" representations. > > > > >> > > > > > >> > What these SPI services *don't* allow is for the resources > defined > > > by > > > > RO > > > > >> > (or their input JSON) to change. I don't see any > > > > >> > particular > need > > to > > > > >> > customize this, though. > > > > >> > > > > > >> > > > > >> I think I saw ContentMappingService being used in ToDoApp. > > > > >> Using > > those > > > > >> SPIs > > > > >> would work, however while going through the Spiro framework > > > > >> as > > > discussed > > > > >> in > > > > >> the other thread, I saw interesting additional sections in > > > > >> the RO > > spec > > > > >> v1.1.0 about: > > > > >> > > > > >> 34.4 Minimizing Round-trips (x-ro-follow-links) > > > > >> 34.9 Minimizing Round-trips by supporting table grids > > > > >> > > > > >> I had skimmed through RO v1.0.0 before and afaik, those > > > > >> weren't > > there > > > > yet. > > > > >> Those sections, especially 34.9, addresses our need. > > > > >> > > > > >> 34.2 Sorting (x-ro-sort-by) and 34.3 Pagination (x-ro-page, > > > > >> x-ro-page-size) > > > > >> are also nice to haves. > > > > >> > > > > > > > > > > > > > > > > > > > > --- This email has been checked for viruses by Avast antivirus software. https://www.avast.com/antivirus