Sorry, no, it's in 1.11.0-SNAPSHOT. You'll have to build from source [1] The release notes describe what's in each release [2]
HTH Dan [1] http://isis.apache.org/guides/cg.html#_building_all_of_apache_isis [2] http://isis.apache.org/release-notes.html On 20 November 2015 at 00:17, Cesar Lugo <[email protected]> wrote: > 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 > ) just 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=value.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(JsonRepresentation.java:957)", > > "org.apache.isis.viewer.restfulobjects.applib.util.Parser.valueOf(Parser.java:64)", > > "org.apache.isis.viewer.restfulobjects.applib.client.RestfulRequest$RequestParameter.valueOf(RestfulRequest.java:93)", > > "org.apache.isis.viewer.restfulobjects.server.ResourceContext.getArg(ResourceContext.java:240)", > > "org.apache.isis.viewer.restfulobjects.server.ResourceContext.init(ResourceContext.java:135)", > > "org.apache.isis.viewer.restfulobjects.server.ResourceContext.<init>(ResourceContext.java:125)", > > "org.apache.isis.viewer.restfulobjects.server.resources.ResourceAbstract.init(ResourceAbstract.java:120)", > > "org.apache.isis.viewer.restfulobjects.server.resources.ResourceAbstract.init(ResourceAbstract.java:87)", > > "org.apache.isis.viewer.restfulobjects.server.resources.DomainObjectResourceServerside.accessCollection(DomainObjectResourceServerside.java:286)", > "sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)", > > "sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)", > > "sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.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(ResourceMethodInvoker.java:296)", > > "org.jboss.resteasy.core.ResourceMethodInvoker.invoke(ResourceMethodInvoker.java:250)", > > "org.jboss.resteasy.core.ResourceMethodInvoker.invoke(ResourceMethodInvoker.java:237)", > > "org.jboss.resteasy.core.SynchronousDispatcher.invoke(SynchronousDispatcher.java:356)", > > "org.jboss.resteasy.core.SynchronousDispatcher.invoke(SynchronousDispatcher.java:179)", > > "org.jboss.resteasy.plugins.server.servlet.ServletContainerDispatcher.service(ServletContainerDispatcher.java:220)", > > "org.jboss.resteasy.plugins.server.servlet.HttpServletDispatcher.service(HttpServletDispatcher.java:56)", > > "org.jboss.resteasy.plugins.server.servlet.HttpServletDispatcher.service(HttpServletDispatcher.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(ServletHandler.java:1684)", > > "org.apache.isis.viewer.restfulobjects.server.webapp.IsisTransactionFilterForRestfulObjects.doFilter(IsisTransactionFilterForRestfulObjects.java:41)", > > "org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1667)", > > "org.apache.isis.core.webapp.IsisSessionFilter.doFilter(IsisSessionFilter.java:307)", > > "org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1667)", > > "org.apache.isis.core.webapp.diagnostics.IsisLogOnExceptionFilter.doFilter(IsisLogOnExceptionFilter.java:52)", > > "org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1667)", > > "org.apache.shiro.web.servlet.AbstractShiroFilter.executeChain(AbstractShiroFilter.java:449)", > > "org.apache.shiro.web.servlet.AbstractShiroFilter$1.call(AbstractShiroFilter.java:365)", > > "org.apache.shiro.subject.support.SubjectCallable.doCall(SubjectCallable.java:90)", > > "org.apache.shiro.subject.support.SubjectCallable.call(SubjectCallable.java:83)", > > "org.apache.shiro.subject.support.DelegatingSubject.execute(DelegatingSubject.java:383)", > > "org.apache.shiro.web.servlet.AbstractShiroFilter.doFilterInternal(AbstractShiroFilter.java:362)", > > "org.apache.shiro.web.servlet.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:125)", > > "org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1667)", > > "org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:581)", > > "org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:143)", > > "org.eclipse.jetty.security.SecurityHandler.handle(SecurityHandler.java:548)", > > "org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:226)", > > "org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1114)", > > "org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:511)", > > "org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:185)", > > "org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1048)", > > "org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:141)", > > "org.eclipse.jetty.server.handler.ContextHandlerCollection.handle(ContextHandlerCollection.java:213)", > > "org.eclipse.jetty.server.handler.HandlerCollection.handle(HandlerCollection.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(AbstractConnection.java:245)", > "org.eclipse.jetty.io.FillInterest.fillable(FillInterest.java:95)", > > "org.eclipse.jetty.io.SelectChannelEndPoint$2.run(SelectChannelEndPoint.java:75)", > > "org.eclipse.jetty.util.thread.strategy.ExecuteProduceConsume.produceAndRun(ExecuteProduceConsume.java:213)", > > "org.eclipse.jetty.util.thread.strategy.ExecuteProduceConsume.run(ExecuteProduceConsume.java:147)", > > "org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java: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:[email protected]] > Sent: Wednesday, November 11, 2015 8:45 AM > To: users > Subject: Re: Restful objects list action result with domain object > representation instead of links > > It would. I'll look into it. > > Thx > Dan > > > On 11 November 2015 at 14:43, Willie Loyd Tandingan < > [email protected] > > wrote: > > > Hey Dan, > > > > I just tried it and works great for domain object, properties, > collections! > > > > 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 > > <[email protected] > > > > > 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 > raised. > > > > > > Thx > > > Dan > > > > > > > > > > > > On 4 November 2015 at 16:57, Willie Loyd Tandingan < > > > [email protected]> > > > 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 < > > > [email protected]> > > > > wrote: > > > > > > > > > I've raised ISIS-1232, ISIS-1233, ISIS-1234 and ISIS-1235 for > these. > > > > 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 < > > [email protected] > > > > > > > > > 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 < > > > > > > [email protected]> 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 > >
