You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@isis.apache.org by Dan Haywood <da...@haywood-associates.co.uk> on 2013/07/24 09:44:12 UTC

Re: Help with updating properties [14.2 in ROSpec]

Hi Bhargav,
sorry not to get back to you sooner.

couple of things:
1. the PUT resource on the object (RO spec 14.2) is for updating ALL
properties, not just a single one.
2. the "complete" property is ALWAYS disabled (you can see that from the
code [1], and from the arguments map in the representation[2]
3. notwithstanding, I think there's a bug in the RO viewer.  I tried
several different formats for the body [3], [4], [5], but got the same
error in each case [6]

So, if you want to raise a ticket for this, then either go ahead and fix
it, or wait for me to do so...

In the meantime, you could workaround by doing a PUT to each of the
individual property resources (per 16.2 of the spec); I believe this is
working fine.

Thx
Dan



[1]
https://github.com/apache/isis/blob/f38fdb92941172eabb12e0943509f239e6d5925f/example/application/quickstart_wicket_restful_jdo/dom/src/main/java/dom/todo/ToDoItem.java#L219
[2]

http://localhost:8080/restful/objects/TODO/L_11
, {

   - members:
   {
      - ownedBy:
      {
         - memberType: "property",
         - value: "sven",
         - format: "decimal",
         - x-isis-format: "bigdecimal"
         },
      - dueBy:
      {
         - memberType: "property",
         - value: "2013-07-24",
         - format: "date",
         - x-isis-format: "jodalocaldate"
         },
      - cost:
      {
         - memberType: "property",
         - value: 1.75,
         - format: "decimal",
         - x-isis-format: "bigdecimal"
         },
      - notes:
      {
         - memberType: "property",
         - value: null,
         - format: "decimal",
         - x-isis-format: "bigdecimal"
         },
      - attachment:
      {
         - memberType: "property",
         - value: null,
         - format: "decimal",
         - x-isis-format: "bigdecimal"
         },
      - description:
      {
         - memberType: "property",
         - value: "Buy bread",
         - format: "decimal",
         - x-isis-format: "bigdecimal"
         },
      - category:
      {
         - memberType: "property",
         - value: "Domestic",
         - format: "decimal",
         - x-isis-format: "bigdecimal"
         },
      - complete:
      {
         - memberType: "property",
         - value: false,
         - x-isis-format: "boolean",
         - disabledReason: "Always disabled"
         },
      - versionSequence:
      {
         - memberType: "property",
         - value: 1,
         - format: "int",
         - x-isis-format: "long",
         - disabledReason: "Always disabled"
         }
      }



[3] this - which is valid according to the spec, I think - didn't work:
{
    "cost" : {
      "value" : 2.75
    },
    "description" : {
      "value" : "An updated description"
    },
    "category" : {
      "value" : "Professional"
    }
}

[4] nor did this:
{
  "members:" {
    "cost" : {
      "memberType": "property",
      "value" : 2.75
    },
    "description" : {
      "memberType": "property",
      "value" : "An updated description"
    },
    "category" : {
      "memberType": "property",
      "value" : "Professional"
    }
  }
}


[5] nor did this:
{
    "cost" : {
      "memberType": "property",
      "value" : 2.75
    },
    "description" : {
      "memberType": "property",
      "value" : "An updated description"
    },
    "category" : {
      "memberType": "property",
      "value" : "Professional"
    }
}


[6]

   1. Status Code: 400
   2. Server: Jetty(6.1.26)
   3. Content-Length: 0
   4. Warning: 199 RestfulObjects Could not find properties list (no members
   [memberType=property]); got {"cost":{"memberType":"property","value":2.75
   },"description":{"memberType":"property","value":"An updated description"
   },"category":{"memberType":"property","value":"Professional"}}
   5. Content-Type: application/json




On 23 July 2013 18:05, Bhargav Golla <bh...@gmail.com> wrote:

> Hi Dan
>
> I am trying to edit the properties of an object and am following 14.2 in
> ROSpec to do the same. I tried to make a PUT request to the URL by chagning
> few properties and putting them into JSON. My request is as follows:
> PUT /myapp-webapp/restful/objects/TODO/L_0 HTTP/1.1
> Host: localhost:8080
> Accept: application/json
> Authorization: Basic c3ZlbjpwYXNz
> Cache-Control: no-cache
>
> { "complete": { "value": "true" } }
>
> But it is giving me a 400 error. Do you have any help here?
>
> Regards
>
> Bhargav Golla
> Developer. Freelancer.
> B.E (Hons.) Computer Science
> BITS-Pilani
> Github <http://www.github.com/bhargavgolla> | LinkedIN<http://www.linkedin.com/in/bhargavgolla>
>  | Website <http://www.bhargavgolla.com/>
>

Re: Help with updating properties [14.2 in ROSpec]

Posted by Dan Haywood <da...@haywood-associates.co.uk>.
Odd.  Ping me when we're both online and we'll do a screenshare.

Dan


On 30 July 2013 04:59, Bhargav Golla <bh...@gmail.com> wrote:

> Hi Dan,
>
> I updated my local clone of Apache Isis Github repo and tried mvn clean
> install in that directory. It is failing with Error: Failed to execute goal
> org.apache.maven.plugins:maven-compiler-plugin:2.3.1:compile
> (default-compile) on project isis-viewer-wicket-impl: Compilation failure.
> Am I missing something here?
>
> Bhargav Golla
> On Jul 30, 2013 12:41 AM, "Dan Haywood" <da...@haywood-associates.co.uk>
> wrote:
>
>> Indeed, it does mean that.
>>
>> You need to pull down the latest version of Isis (using "git pull") and
>> rebuild that instead ("mvn clean install").
>>
>> You then need to make sure your myapp is running against the latest Isis
>> snapshot (x.y.0-SNAPSHOT), rather than the released (x.x.0) version.  You
>> can do that by editing the pom.xml; check out the
>> examples/application/quickstart_wicket_restful_jdo/pom.xml  (this is what
>> your myapp was originally generated from).  Note that the versions
>>
>> One other thing while I remember... if you are running with your own
>> myapp, then the WEB-INF/web.xml has changed slightly... there is now a new
>> filter, IsisTransactionFilterForRestfulObjects.  Again, look at
>> examples/application/quickstart_wicket_restful_jdo/webapp/src/main/webapp/WEB-INF/web.xml.
>>
>> Let me know if you get stuck
>>
>> Dan
>>
>>
>>
>>
>> On 29 July 2013 20:05, Bhargav Golla <bh...@gmail.com> wrote:
>>
>>> Tried mvn clean install -DskipTests and then mvn jetty:run from
>>> myapp/webapp. Then tried updating description of a ToDo. Still same error.
>>> Does this mean that I haven't rebuilt the code properly?
>>>
>>> Bhargav Golla
>>> Developer. Freelancer.
>>> B.E (Hons.) Computer Science
>>> BITS-Pilani
>>> Github <http://www.github.com/bhargavgolla> | LinkedIN<http://www.linkedin.com/in/bhargavgolla>
>>>  | Website <http://www.bhargavgolla.com/>
>>>
>>>
>>> On Tue, Jul 30, 2013 at 12:26 AM, Bhargav Golla <bhargav.golla@gmail.com
>>> > wrote:
>>>
>>>> By rebuild, I hope you are asking me to do a "mvn clean package" in the
>>>> myapp directory.
>>>> Tried that and it is failing tests with an error " Failed to execute
>>>> goal org.apache.maven.plugins:maven-surefire-plugin:2.5:test (default-test)
>>>> on project myapp-integtests: There are test failures." Any help?
>>>>
>>>> Bhargav Golla
>>>> Developer. Freelancer.
>>>>  B.E (Hons.) Computer Science
>>>> BITS-Pilani
>>>> Github <http://www.github.com/bhargavgolla> | LinkedIN<http://www.linkedin.com/in/bhargavgolla>
>>>>  | Website <http://www.bhargavgolla.com/>
>>>>
>>>>
>>>> On Mon, Jul 29, 2013 at 6:38 PM, Dan Haywood <
>>>> dan@haywood-associates.co.uk> wrote:
>>>>
>>>>> Hi Bhargav,
>>>>> OK, committed some fixes this morning, along with tests
>>>>>
>>>>> Please do a rebuild and let me know how you get on.
>>>>>
>>>>> Cheers
>>>>> Dan
>>>>>
>>>>>
>>>>>
>>>>>
>>>>> On 28 July 2013 20:30, Bhargav Golla <bh...@gmail.com> wrote:
>>>>>
>>>>>> Hi Dimuthu,
>>>>>>
>>>>>> It isn't working too. Tried updating the description also. Not
>>>>>> working either.
>>>>>>
>>>>>> Bhargav Golla
>>>>>> Developer. Freelancer.
>>>>>> B.E (Hons.) Computer Science
>>>>>> BITS-Pilani
>>>>>> Github <http://www.github.com/bhargavgolla> | LinkedIN<http://www.linkedin.com/in/bhargavgolla>
>>>>>>  | Website <http://www.bhargavgolla.com/>
>>>>>>
>>>>>>
>>>>>> On Sat, Jul 27, 2013 at 1:39 PM, DImuthu Upeksha <
>>>>>> dimuthu.upeksha2@gmail.com> wrote:
>>>>>>
>>>>>>> Hi Bhargav,
>>>>>>>
>>>>>>> In your issue of { "value": "10/22/2013" }, hope you want to pass a
>>>>>>> date. Try { "value": "20131022" }. ({ "value": "YYYYMMDD" }) It
>>>>>>> worked for me.
>>>>>>>
>>>>>>> Thnx
>>>>>>> Dimuthu
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>> On Fri, Jul 26, 2013 at 10:35 AM, Bhargav Golla <
>>>>>>> bhargav.golla@gmail.com> wrote:
>>>>>>>
>>>>>>>> Hi Dan/Maurizio
>>>>>>>>
>>>>>>>> Any help with the error I shared?
>>>>>>>>
>>>>>>>> Thanks
>>>>>>>>
>>>>>>>> Bhargav Golla
>>>>>>>> Developer. Freelancer.
>>>>>>>> B.E (Hons.) Computer Science
>>>>>>>> BITS-Pilani
>>>>>>>> Github <http://www.github.com/bhargavgolla> |
>>>>>>>> LinkedIN<http://www.linkedin.com/in/bhargavgolla>
>>>>>>>>  | Website <http://www.bhargavgolla.com/>
>>>>>>>>
>>>>>>>>
>>>>>>>> On Wed, Jul 24, 2013 at 10:31 PM, Bhargav Golla <
>>>>>>>> bhargav.golla@gmail.com>wrote:
>>>>>>>>
>>>>>>>> >
>>>>>>>> >
>>>>>>>> > On Wed, Jul 24, 2013 at 1:14 PM, Dan Haywood <
>>>>>>>> dan@haywood-associates.co.uk
>>>>>>>> > > wrote:
>>>>>>>> >
>>>>>>>> >> Hi Bhargav,
>>>>>>>> >> sorry not to get back to you sooner.
>>>>>>>> >>
>>>>>>>> >> couple of things:
>>>>>>>> >> 1. the PUT resource on the object (RO spec 14.2) is for updating
>>>>>>>> ALL
>>>>>>>> >> properties, not just a single one.
>>>>>>>> >> 2. the "complete" property is ALWAYS disabled (you can see that
>>>>>>>> from the
>>>>>>>> >> code [1], and from the arguments map in the representation[2]
>>>>>>>> >> 3. notwithstanding, I think there's a bug in the RO viewer.  I
>>>>>>>> tried
>>>>>>>> >> several different formats for the body [3], [4], [5], but got
>>>>>>>> the same
>>>>>>>> >> error in each case [6]
>>>>>>>> >>
>>>>>>>> >> So, if you want to raise a ticket for this, then either go ahead
>>>>>>>> and fix
>>>>>>>> >> it, or wait for me to do so...
>>>>>>>> >>
>>>>>>>> > Created an issue [1]. Will try to fix it.
>>>>>>>> >
>>>>>>>> >>
>>>>>>>> >> In the meantime, you could workaround by doing a PUT to each of
>>>>>>>> the
>>>>>>>> >> individual property resources (per 16.2 of the spec); I believe
>>>>>>>> this is
>>>>>>>> >> working fine.
>>>>>>>> >>
>>>>>>>> > I am getting a 500 now that says that "does not represent map"
>>>>>>>> when a make
>>>>>>>> > a request like [2]. Any help?
>>>>>>>> >
>>>>>>>> > Regards
>>>>>>>> > Bhargav
>>>>>>>> >
>>>>>>>> > [1] https://issues.apache.org/jira/browse/ISIS-479
>>>>>>>> > [2] PUT /myapp-webapp/restful/objects/TODO/L_0/properties/notes
>>>>>>>> HTTP/1.1
>>>>>>>> >  Host: localhost:8080
>>>>>>>> > Accept: application/json
>>>>>>>> > Authorization: Basic c3ZlbjpwYXNz
>>>>>>>> > Cache-Control: no-cache
>>>>>>>> >
>>>>>>>> > { "value": "10/22/2013" }
>>>>>>>> >
>>>>>>>> > Result:
>>>>>>>> > {
>>>>>>>> >     "message": "does not represent map",
>>>>>>>> >     "stackTrace": [
>>>>>>>> >
>>>>>>>> >
>>>>>>>> "org.apache.isis.viewer.restfulobjects.applib.JsonRepresentation.mapHas(JsonRepresentation.java:1126)",
>>>>>>>> >
>>>>>>>> >
>>>>>>>> "org.apache.isis.viewer.restfulobjects.rendering.domainobjects.JsonValueEncoder.asAdapter(JsonValueEncoder.java:359)",
>>>>>>>> >
>>>>>>>> >
>>>>>>>> "org.apache.isis.viewer.restfulobjects.server.resources.DomainResourceHelper.objectAdapterFor(DomainResourceHelper.java:313)",
>>>>>>>> >
>>>>>>>> >
>>>>>>>> "org.apache.isis.viewer.restfulobjects.server.resources.DomainResourceHelper.parseAsMapWithSingleValue(DomainResourceHelper.java:463)",
>>>>>>>> >
>>>>>>>> >
>>>>>>>> "org.apache.isis.viewer.restfulobjects.server.resources.DomainResourceHelper.parseAsMapWithSingleValue(DomainResourceHelper.java:454)",
>>>>>>>> >
>>>>>>>> >
>>>>>>>> "org.apache.isis.viewer.restfulobjects.server.resources.DomainObjectResourceServerside.modifyProperty(DomainObjectResourceServerside.java:197)",
>>>>>>>> >         "sun.reflect.NativeMethodAccessorImpl.invoke0(Native
>>>>>>>> Method)",
>>>>>>>> >
>>>>>>>> >
>>>>>>>> "sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)",
>>>>>>>> >
>>>>>>>> >
>>>>>>>> "sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)",
>>>>>>>> >         "java.lang.reflect.Method.invoke(Method.java:601)",
>>>>>>>> >
>>>>>>>> >
>>>>>>>> "org.jboss.resteasy.core.MethodInjectorImpl.invoke(MethodInjectorImpl.java:167)",
>>>>>>>> >
>>>>>>>> >
>>>>>>>> "org.jboss.resteasy.core.ResourceMethod.invokeOnTarget(ResourceMethod.java:269)",
>>>>>>>> >
>>>>>>>> >
>>>>>>>> "org.jboss.resteasy.core.ResourceMethod.invoke(ResourceMethod.java:227)",
>>>>>>>> >
>>>>>>>> >
>>>>>>>> "org.jboss.resteasy.core.ResourceMethod.invoke(ResourceMethod.java:216)",
>>>>>>>> >
>>>>>>>> >
>>>>>>>> "org.jboss.resteasy.core.SynchronousDispatcher.getResponse(SynchronousDispatcher.java:542)",
>>>>>>>> >
>>>>>>>> >
>>>>>>>> "org.jboss.resteasy.core.SynchronousDispatcher.invoke(SynchronousDispatcher.java:524)",
>>>>>>>> >
>>>>>>>> >
>>>>>>>> "org.jboss.resteasy.core.SynchronousDispatcher.invoke(SynchronousDispatcher.java:126)",
>>>>>>>> >
>>>>>>>> >
>>>>>>>> "org.jboss.resteasy.plugins.server.servlet.ServletContainerDispatcher.service(ServletContainerDispatcher.java:208)",
>>>>>>>> >
>>>>>>>> >
>>>>>>>> "org.jboss.resteasy.plugins.server.servlet.HttpServletDispatcher.service(HttpServletDispatcher.java:55)",
>>>>>>>> >
>>>>>>>> >
>>>>>>>> "org.jboss.resteasy.plugins.server.servlet.HttpServletDispatcher.service(HttpServletDispatcher.java:50)",
>>>>>>>> >
>>>>>>>> "javax.servlet.http.HttpServlet.service(HttpServlet.java:820)",
>>>>>>>> >
>>>>>>>> >
>>>>>>>> "org.mortbay.jetty.servlet.ServletHolder.handle(ServletHolder.java:511)",
>>>>>>>> >
>>>>>>>> >
>>>>>>>> "org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1166)",
>>>>>>>> >
>>>>>>>> >
>>>>>>>> "org.apache.isis.core.webapp.IsisSessionFilter$SessionState$1.handle(IsisSessionFilter.java:315)",
>>>>>>>> >
>>>>>>>> >
>>>>>>>> "org.apache.isis.core.webapp.IsisSessionFilter.doFilter(IsisSessionFilter.java:404)",
>>>>>>>> >
>>>>>>>> >
>>>>>>>> "org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1157)",
>>>>>>>> >
>>>>>>>> >
>>>>>>>> "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.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1157)",
>>>>>>>> >
>>>>>>>> >
>>>>>>>> "org.mortbay.jetty.servlet.ServletHandler.handle(ServletHandler.java:388)",
>>>>>>>> >
>>>>>>>> >
>>>>>>>> "org.mortbay.jetty.security.SecurityHandler.handle(SecurityHandler.java:216)",
>>>>>>>> >
>>>>>>>> >
>>>>>>>> "org.mortbay.jetty.servlet.SessionHandler.handle(SessionHandler.java:182)",
>>>>>>>> >
>>>>>>>> >
>>>>>>>> "org.mortbay.jetty.handler.ContextHandler.handle(ContextHandler.java:765)",
>>>>>>>> >
>>>>>>>> >
>>>>>>>> "org.mortbay.jetty.webapp.WebAppContext.handle(WebAppContext.java:440)",
>>>>>>>> >
>>>>>>>> >
>>>>>>>> "org.mortbay.jetty.handler.ContextHandlerCollection.handle(ContextHandlerCollection.java:230)",
>>>>>>>> >
>>>>>>>> >
>>>>>>>> "org.mortbay.jetty.handler.HandlerCollection.handle(HandlerCollection.java:114)",
>>>>>>>> >
>>>>>>>> >
>>>>>>>> "org.mortbay.jetty.handler.HandlerWrapper.handle(HandlerWrapper.java:152)",
>>>>>>>> >         "org.mortbay.jetty.Server.handle(Server.java:326)",
>>>>>>>> >
>>>>>>>> >
>>>>>>>> "org.mortbay.jetty.HttpConnection.handleRequest(HttpConnection.java:542)",
>>>>>>>> >
>>>>>>>> >
>>>>>>>> "org.mortbay.jetty.HttpConnection$RequestHandler.content(HttpConnection.java:943)",
>>>>>>>> >
>>>>>>>> "org.mortbay.jetty.HttpParser.parseNext(HttpParser.java:756)",
>>>>>>>> >
>>>>>>>> "org.mortbay.jetty.HttpParser.parseAvailable(HttpParser.java:218)",
>>>>>>>> >
>>>>>>>> "org.mortbay.jetty.HttpConnection.handle(HttpConnection.java:404)",
>>>>>>>> >
>>>>>>>> >
>>>>>>>> "org.mortbay.io.nio.SelectChannelEndPoint.run(SelectChannelEndPoint.java:410)",
>>>>>>>> >
>>>>>>>> >
>>>>>>>> "org.mortbay.thread.QueuedThreadPool$PoolThread.run(QueuedThreadPool.java:582)"
>>>>>>>> >     ],
>>>>>>>> >     "causedBy": null
>>>>>>>> > }
>>>>>>>> >
>>>>>>>> >>
>>>>>>>> >> Thx
>>>>>>>> >> Dan
>>>>>>>> >>
>>>>>>>> >>
>>>>>>>> >>
>>>>>>>> >> [1]
>>>>>>>> >>
>>>>>>>> https://github.com/apache/isis/blob/f38fdb92941172eabb12e0943509f239e6d5925f/example/application/quickstart_wicket_restful_jdo/dom/src/main/java/dom/todo/ToDoItem.java#L219
>>>>>>>> >> [2]
>>>>>>>> >>
>>>>>>>> >> http://localhost:8080/restful/objects/TODO/L_11
>>>>>>>> >> , {
>>>>>>>> >>
>>>>>>>> >>    - members:
>>>>>>>> >>    {
>>>>>>>> >>       - ownedBy:
>>>>>>>> >>       {
>>>>>>>> >>          - memberType: "property",
>>>>>>>> >>          - value: "sven",
>>>>>>>> >>          - format: "decimal",
>>>>>>>> >>          - x-isis-format: "bigdecimal"
>>>>>>>> >>          },
>>>>>>>> >>       - dueBy:
>>>>>>>> >>       {
>>>>>>>> >>          - memberType: "property",
>>>>>>>> >>          - value: "2013-07-24",
>>>>>>>> >>          - format: "date",
>>>>>>>> >>          - x-isis-format: "jodalocaldate"
>>>>>>>> >>          },
>>>>>>>> >>       - cost:
>>>>>>>> >>       {
>>>>>>>> >>          - memberType: "property",
>>>>>>>> >>          - value: 1.75,
>>>>>>>> >>          - format: "decimal",
>>>>>>>> >>          - x-isis-format: "bigdecimal"
>>>>>>>> >>          },
>>>>>>>> >>       - notes:
>>>>>>>> >>       {
>>>>>>>> >>          - memberType: "property",
>>>>>>>> >>          - value: null,
>>>>>>>> >>          - format: "decimal",
>>>>>>>> >>          - x-isis-format: "bigdecimal"
>>>>>>>> >>          },
>>>>>>>> >>       - attachment:
>>>>>>>> >>       {
>>>>>>>> >>          - memberType: "property",
>>>>>>>> >>          - value: null,
>>>>>>>> >>          - format: "decimal",
>>>>>>>> >>          - x-isis-format: "bigdecimal"
>>>>>>>> >>          },
>>>>>>>> >>       - description:
>>>>>>>> >>       {
>>>>>>>> >>          - memberType: "property",
>>>>>>>> >>          - value: "Buy bread",
>>>>>>>> >>          - format: "decimal",
>>>>>>>> >>          - x-isis-format: "bigdecimal"
>>>>>>>> >>          },
>>>>>>>> >>       - category:
>>>>>>>> >>       {
>>>>>>>> >>          - memberType: "property",
>>>>>>>> >>          - value: "Domestic",
>>>>>>>> >>          - format: "decimal",
>>>>>>>> >>          - x-isis-format: "bigdecimal"
>>>>>>>> >>          },
>>>>>>>> >>       - complete:
>>>>>>>> >>       {
>>>>>>>> >>          - memberType: "property",
>>>>>>>> >>          - value: false,
>>>>>>>> >>          - x-isis-format: "boolean",
>>>>>>>> >>          - disabledReason: "Always disabled"
>>>>>>>> >>          },
>>>>>>>> >>       - versionSequence:
>>>>>>>> >>       {
>>>>>>>> >>          - memberType: "property",
>>>>>>>> >>          - value: 1,
>>>>>>>> >>          - format: "int",
>>>>>>>> >>          - x-isis-format: "long",
>>>>>>>> >>          - disabledReason: "Always disabled"
>>>>>>>>
>>>>>>>> >>          }
>>>>>>>> >>       }
>>>>>>>> >>
>>>>>>>> >>
>>>>>>>> >>
>>>>>>>> >> [3] this - which is valid according to the spec, I think -
>>>>>>>> didn't work:
>>>>>>>> >> {
>>>>>>>> >>     "cost" : {
>>>>>>>> >>       "value" : 2.75
>>>>>>>> >>     },
>>>>>>>> >>     "description" : {
>>>>>>>> >>       "value" : "An updated description"
>>>>>>>> >>     },
>>>>>>>> >>     "category" : {
>>>>>>>> >>       "value" : "Professional"
>>>>>>>> >>     }
>>>>>>>> >> }
>>>>>>>> >>
>>>>>>>> >> [4] nor did this:
>>>>>>>> >> {
>>>>>>>> >>   "members:" {
>>>>>>>> >>     "cost" : {
>>>>>>>> >>       "memberType": "property",
>>>>>>>> >>       "value" : 2.75
>>>>>>>> >>     },
>>>>>>>> >>     "description" : {
>>>>>>>> >>       "memberType": "property",
>>>>>>>> >>       "value" : "An updated description"
>>>>>>>> >>     },
>>>>>>>> >>     "category" : {
>>>>>>>> >>       "memberType": "property",
>>>>>>>> >>       "value" : "Professional"
>>>>>>>> >>     }
>>>>>>>> >>   }
>>>>>>>> >> }
>>>>>>>> >>
>>>>>>>> >>
>>>>>>>> >> [5] nor did this:
>>>>>>>> >> {
>>>>>>>> >>     "cost" : {
>>>>>>>> >>       "memberType": "property",
>>>>>>>> >>       "value" : 2.75
>>>>>>>> >>     },
>>>>>>>> >>     "description" : {
>>>>>>>> >>       "memberType": "property",
>>>>>>>> >>       "value" : "An updated description"
>>>>>>>> >>     },
>>>>>>>> >>     "category" : {
>>>>>>>> >>       "memberType": "property",
>>>>>>>> >>       "value" : "Professional"
>>>>>>>> >>     }
>>>>>>>> >> }
>>>>>>>> >>
>>>>>>>> >>
>>>>>>>> >> [6]
>>>>>>>> >>
>>>>>>>> >>    1. Status Code: 400
>>>>>>>> >>    2. Server: Jetty(6.1.26)
>>>>>>>> >>    3. Content-Length: 0
>>>>>>>> >>    4. Warning: 199 RestfulObjects Could not find properties list
>>>>>>>> (nomembers
>>>>>>>>
>>>>>>>> >>    [memberType=property]); got
>>>>>>>> {"cost":{"memberType":"property","value":
>>>>>>>> >>    2.75},"description":{"memberType":"property","value":"An
>>>>>>>> updated
>>>>>>>> >>    description"},"category":{"memberType":"property","value":
>>>>>>>> >>    "Professional"}}
>>>>>>>> >>    5. Content-Type: application/json
>>>>>>>>
>>>>>>>> >>
>>>>>>>> >>
>>>>>>>> >>
>>>>>>>> >>
>>>>>>>> >> On 23 July 2013 18:05, Bhargav Golla <bh...@gmail.com>
>>>>>>>> wrote:
>>>>>>>> >>
>>>>>>>> >>> Hi Dan
>>>>>>>> >>>
>>>>>>>> >>> I am trying to edit the properties of an object and am
>>>>>>>> following 14.2 in
>>>>>>>> >>> ROSpec to do the same. I tried to make a PUT request to the URL
>>>>>>>> by chagning
>>>>>>>> >>> few properties and putting them into JSON. My request is as
>>>>>>>> follows:
>>>>>>>> >>> PUT /myapp-webapp/restful/objects/TODO/L_0 HTTP/1.1
>>>>>>>> >>> Host: localhost:8080
>>>>>>>> >>> Accept: application/json
>>>>>>>> >>> Authorization: Basic c3ZlbjpwYXNz
>>>>>>>> >>> Cache-Control: no-cache
>>>>>>>> >>>
>>>>>>>> >>> { "complete": { "value": "true" } }
>>>>>>>> >>>
>>>>>>>> >>> But it is giving me a 400 error. Do you have any help here?
>>>>>>>> >>>
>>>>>>>> >>> Regards
>>>>>>>> >>>
>>>>>>>> >>> Bhargav Golla
>>>>>>>> >>> Developer. Freelancer.
>>>>>>>> >>> B.E (Hons.) Computer Science
>>>>>>>> >>> BITS-Pilani
>>>>>>>> >>> Github <http://www.github.com/bhargavgolla> | LinkedIN<
>>>>>>>> http://www.linkedin.com/in/bhargavgolla>
>>>>>>>> >>>  | Website <http://www.bhargavgolla.com/>
>>>>>>>> >>>
>>>>>>>> >>
>>>>>>>> >>
>>>>>>>> >
>>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>> --
>>>>>>> Regards
>>>>>>>
>>>>>>> W.Dimuthu Upeksha
>>>>>>> Undergraduate
>>>>>>> Department of Computer Science And Engineering
>>>>>>>
>>>>>>> University of Moratuwa, Sri Lanka
>>>>>>>
>>>>>>
>>>>>>
>>>>>
>>>>
>>>
>>

Re: Help with updating properties [14.2 in ROSpec]

Posted by Bhargav Golla <bh...@gmail.com>.
Hi Dan,

I updated my local clone of Apache Isis Github repo and tried mvn clean
install in that directory. It is failing with Error: Failed to execute goal
org.apache.maven.plugins:maven-compiler-plugin:2.3.1:compile
(default-compile) on project isis-viewer-wicket-impl: Compilation failure.
Am I missing something here?

Bhargav Golla
On Jul 30, 2013 12:41 AM, "Dan Haywood" <da...@haywood-associates.co.uk>
wrote:

> Indeed, it does mean that.
>
> You need to pull down the latest version of Isis (using "git pull") and
> rebuild that instead ("mvn clean install").
>
> You then need to make sure your myapp is running against the latest Isis
> snapshot (x.y.0-SNAPSHOT), rather than the released (x.x.0) version.  You
> can do that by editing the pom.xml; check out the
> examples/application/quickstart_wicket_restful_jdo/pom.xml  (this is what
> your myapp was originally generated from).  Note that the versions
>
> One other thing while I remember... if you are running with your own
> myapp, then the WEB-INF/web.xml has changed slightly... there is now a new
> filter, IsisTransactionFilterForRestfulObjects.  Again, look at
> examples/application/quickstart_wicket_restful_jdo/webapp/src/main/webapp/WEB-INF/web.xml.
>
> Let me know if you get stuck
>
> Dan
>
>
>
>
> On 29 July 2013 20:05, Bhargav Golla <bh...@gmail.com> wrote:
>
>> Tried mvn clean install -DskipTests and then mvn jetty:run from
>> myapp/webapp. Then tried updating description of a ToDo. Still same error.
>> Does this mean that I haven't rebuilt the code properly?
>>
>> Bhargav Golla
>> Developer. Freelancer.
>> B.E (Hons.) Computer Science
>> BITS-Pilani
>> Github <http://www.github.com/bhargavgolla> | LinkedIN<http://www.linkedin.com/in/bhargavgolla>
>>  | Website <http://www.bhargavgolla.com/>
>>
>>
>> On Tue, Jul 30, 2013 at 12:26 AM, Bhargav Golla <bh...@gmail.com>wrote:
>>
>>> By rebuild, I hope you are asking me to do a "mvn clean package" in the
>>> myapp directory.
>>> Tried that and it is failing tests with an error " Failed to execute
>>> goal org.apache.maven.plugins:maven-surefire-plugin:2.5:test (default-test)
>>> on project myapp-integtests: There are test failures." Any help?
>>>
>>> Bhargav Golla
>>> Developer. Freelancer.
>>>  B.E (Hons.) Computer Science
>>> BITS-Pilani
>>> Github <http://www.github.com/bhargavgolla> | LinkedIN<http://www.linkedin.com/in/bhargavgolla>
>>>  | Website <http://www.bhargavgolla.com/>
>>>
>>>
>>> On Mon, Jul 29, 2013 at 6:38 PM, Dan Haywood <
>>> dan@haywood-associates.co.uk> wrote:
>>>
>>>> Hi Bhargav,
>>>> OK, committed some fixes this morning, along with tests
>>>>
>>>> Please do a rebuild and let me know how you get on.
>>>>
>>>> Cheers
>>>> Dan
>>>>
>>>>
>>>>
>>>>
>>>> On 28 July 2013 20:30, Bhargav Golla <bh...@gmail.com> wrote:
>>>>
>>>>> Hi Dimuthu,
>>>>>
>>>>> It isn't working too. Tried updating the description also. Not working
>>>>> either.
>>>>>
>>>>> Bhargav Golla
>>>>> Developer. Freelancer.
>>>>> B.E (Hons.) Computer Science
>>>>> BITS-Pilani
>>>>> Github <http://www.github.com/bhargavgolla> | LinkedIN<http://www.linkedin.com/in/bhargavgolla>
>>>>>  | Website <http://www.bhargavgolla.com/>
>>>>>
>>>>>
>>>>> On Sat, Jul 27, 2013 at 1:39 PM, DImuthu Upeksha <
>>>>> dimuthu.upeksha2@gmail.com> wrote:
>>>>>
>>>>>> Hi Bhargav,
>>>>>>
>>>>>> In your issue of { "value": "10/22/2013" }, hope you want to pass a
>>>>>> date. Try { "value": "20131022" }. ({ "value": "YYYYMMDD" }) It
>>>>>> worked for me.
>>>>>>
>>>>>> Thnx
>>>>>> Dimuthu
>>>>>>
>>>>>>
>>>>>>
>>>>>> On Fri, Jul 26, 2013 at 10:35 AM, Bhargav Golla <
>>>>>> bhargav.golla@gmail.com> wrote:
>>>>>>
>>>>>>> Hi Dan/Maurizio
>>>>>>>
>>>>>>> Any help with the error I shared?
>>>>>>>
>>>>>>> Thanks
>>>>>>>
>>>>>>> Bhargav Golla
>>>>>>> Developer. Freelancer.
>>>>>>> B.E (Hons.) Computer Science
>>>>>>> BITS-Pilani
>>>>>>> Github <http://www.github.com/bhargavgolla> |
>>>>>>> LinkedIN<http://www.linkedin.com/in/bhargavgolla>
>>>>>>>  | Website <http://www.bhargavgolla.com/>
>>>>>>>
>>>>>>>
>>>>>>> On Wed, Jul 24, 2013 at 10:31 PM, Bhargav Golla <
>>>>>>> bhargav.golla@gmail.com>wrote:
>>>>>>>
>>>>>>> >
>>>>>>> >
>>>>>>> > On Wed, Jul 24, 2013 at 1:14 PM, Dan Haywood <
>>>>>>> dan@haywood-associates.co.uk
>>>>>>> > > wrote:
>>>>>>> >
>>>>>>> >> Hi Bhargav,
>>>>>>> >> sorry not to get back to you sooner.
>>>>>>> >>
>>>>>>> >> couple of things:
>>>>>>> >> 1. the PUT resource on the object (RO spec 14.2) is for updating
>>>>>>> ALL
>>>>>>> >> properties, not just a single one.
>>>>>>> >> 2. the "complete" property is ALWAYS disabled (you can see that
>>>>>>> from the
>>>>>>> >> code [1], and from the arguments map in the representation[2]
>>>>>>> >> 3. notwithstanding, I think there's a bug in the RO viewer.  I
>>>>>>> tried
>>>>>>> >> several different formats for the body [3], [4], [5], but got the
>>>>>>> same
>>>>>>> >> error in each case [6]
>>>>>>> >>
>>>>>>> >> So, if you want to raise a ticket for this, then either go ahead
>>>>>>> and fix
>>>>>>> >> it, or wait for me to do so...
>>>>>>> >>
>>>>>>> > Created an issue [1]. Will try to fix it.
>>>>>>> >
>>>>>>> >>
>>>>>>> >> In the meantime, you could workaround by doing a PUT to each of
>>>>>>> the
>>>>>>> >> individual property resources (per 16.2 of the spec); I believe
>>>>>>> this is
>>>>>>> >> working fine.
>>>>>>> >>
>>>>>>> > I am getting a 500 now that says that "does not represent map"
>>>>>>> when a make
>>>>>>> > a request like [2]. Any help?
>>>>>>> >
>>>>>>> > Regards
>>>>>>> > Bhargav
>>>>>>> >
>>>>>>> > [1] https://issues.apache.org/jira/browse/ISIS-479
>>>>>>> > [2] PUT /myapp-webapp/restful/objects/TODO/L_0/properties/notes
>>>>>>> HTTP/1.1
>>>>>>> >  Host: localhost:8080
>>>>>>> > Accept: application/json
>>>>>>> > Authorization: Basic c3ZlbjpwYXNz
>>>>>>> > Cache-Control: no-cache
>>>>>>> >
>>>>>>> > { "value": "10/22/2013" }
>>>>>>> >
>>>>>>> > Result:
>>>>>>> > {
>>>>>>> >     "message": "does not represent map",
>>>>>>> >     "stackTrace": [
>>>>>>> >
>>>>>>> >
>>>>>>> "org.apache.isis.viewer.restfulobjects.applib.JsonRepresentation.mapHas(JsonRepresentation.java:1126)",
>>>>>>> >
>>>>>>> >
>>>>>>> "org.apache.isis.viewer.restfulobjects.rendering.domainobjects.JsonValueEncoder.asAdapter(JsonValueEncoder.java:359)",
>>>>>>> >
>>>>>>> >
>>>>>>> "org.apache.isis.viewer.restfulobjects.server.resources.DomainResourceHelper.objectAdapterFor(DomainResourceHelper.java:313)",
>>>>>>> >
>>>>>>> >
>>>>>>> "org.apache.isis.viewer.restfulobjects.server.resources.DomainResourceHelper.parseAsMapWithSingleValue(DomainResourceHelper.java:463)",
>>>>>>> >
>>>>>>> >
>>>>>>> "org.apache.isis.viewer.restfulobjects.server.resources.DomainResourceHelper.parseAsMapWithSingleValue(DomainResourceHelper.java:454)",
>>>>>>> >
>>>>>>> >
>>>>>>> "org.apache.isis.viewer.restfulobjects.server.resources.DomainObjectResourceServerside.modifyProperty(DomainObjectResourceServerside.java:197)",
>>>>>>> >         "sun.reflect.NativeMethodAccessorImpl.invoke0(Native
>>>>>>> Method)",
>>>>>>> >
>>>>>>> >
>>>>>>> "sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)",
>>>>>>> >
>>>>>>> >
>>>>>>> "sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)",
>>>>>>> >         "java.lang.reflect.Method.invoke(Method.java:601)",
>>>>>>> >
>>>>>>> >
>>>>>>> "org.jboss.resteasy.core.MethodInjectorImpl.invoke(MethodInjectorImpl.java:167)",
>>>>>>> >
>>>>>>> >
>>>>>>> "org.jboss.resteasy.core.ResourceMethod.invokeOnTarget(ResourceMethod.java:269)",
>>>>>>> >
>>>>>>> >
>>>>>>> "org.jboss.resteasy.core.ResourceMethod.invoke(ResourceMethod.java:227)",
>>>>>>> >
>>>>>>> >
>>>>>>> "org.jboss.resteasy.core.ResourceMethod.invoke(ResourceMethod.java:216)",
>>>>>>> >
>>>>>>> >
>>>>>>> "org.jboss.resteasy.core.SynchronousDispatcher.getResponse(SynchronousDispatcher.java:542)",
>>>>>>> >
>>>>>>> >
>>>>>>> "org.jboss.resteasy.core.SynchronousDispatcher.invoke(SynchronousDispatcher.java:524)",
>>>>>>> >
>>>>>>> >
>>>>>>> "org.jboss.resteasy.core.SynchronousDispatcher.invoke(SynchronousDispatcher.java:126)",
>>>>>>> >
>>>>>>> >
>>>>>>> "org.jboss.resteasy.plugins.server.servlet.ServletContainerDispatcher.service(ServletContainerDispatcher.java:208)",
>>>>>>> >
>>>>>>> >
>>>>>>> "org.jboss.resteasy.plugins.server.servlet.HttpServletDispatcher.service(HttpServletDispatcher.java:55)",
>>>>>>> >
>>>>>>> >
>>>>>>> "org.jboss.resteasy.plugins.server.servlet.HttpServletDispatcher.service(HttpServletDispatcher.java:50)",
>>>>>>> >
>>>>>>> "javax.servlet.http.HttpServlet.service(HttpServlet.java:820)",
>>>>>>> >
>>>>>>> >
>>>>>>> "org.mortbay.jetty.servlet.ServletHolder.handle(ServletHolder.java:511)",
>>>>>>> >
>>>>>>> >
>>>>>>> "org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1166)",
>>>>>>> >
>>>>>>> >
>>>>>>> "org.apache.isis.core.webapp.IsisSessionFilter$SessionState$1.handle(IsisSessionFilter.java:315)",
>>>>>>> >
>>>>>>> >
>>>>>>> "org.apache.isis.core.webapp.IsisSessionFilter.doFilter(IsisSessionFilter.java:404)",
>>>>>>> >
>>>>>>> >
>>>>>>> "org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1157)",
>>>>>>> >
>>>>>>> >
>>>>>>> "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.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1157)",
>>>>>>> >
>>>>>>> >
>>>>>>> "org.mortbay.jetty.servlet.ServletHandler.handle(ServletHandler.java:388)",
>>>>>>> >
>>>>>>> >
>>>>>>> "org.mortbay.jetty.security.SecurityHandler.handle(SecurityHandler.java:216)",
>>>>>>> >
>>>>>>> >
>>>>>>> "org.mortbay.jetty.servlet.SessionHandler.handle(SessionHandler.java:182)",
>>>>>>> >
>>>>>>> >
>>>>>>> "org.mortbay.jetty.handler.ContextHandler.handle(ContextHandler.java:765)",
>>>>>>> >
>>>>>>> >
>>>>>>> "org.mortbay.jetty.webapp.WebAppContext.handle(WebAppContext.java:440)",
>>>>>>> >
>>>>>>> >
>>>>>>> "org.mortbay.jetty.handler.ContextHandlerCollection.handle(ContextHandlerCollection.java:230)",
>>>>>>> >
>>>>>>> >
>>>>>>> "org.mortbay.jetty.handler.HandlerCollection.handle(HandlerCollection.java:114)",
>>>>>>> >
>>>>>>> >
>>>>>>> "org.mortbay.jetty.handler.HandlerWrapper.handle(HandlerWrapper.java:152)",
>>>>>>> >         "org.mortbay.jetty.Server.handle(Server.java:326)",
>>>>>>> >
>>>>>>> >
>>>>>>> "org.mortbay.jetty.HttpConnection.handleRequest(HttpConnection.java:542)",
>>>>>>> >
>>>>>>> >
>>>>>>> "org.mortbay.jetty.HttpConnection$RequestHandler.content(HttpConnection.java:943)",
>>>>>>> >
>>>>>>> "org.mortbay.jetty.HttpParser.parseNext(HttpParser.java:756)",
>>>>>>> >
>>>>>>> "org.mortbay.jetty.HttpParser.parseAvailable(HttpParser.java:218)",
>>>>>>> >
>>>>>>> "org.mortbay.jetty.HttpConnection.handle(HttpConnection.java:404)",
>>>>>>> >
>>>>>>> >
>>>>>>> "org.mortbay.io.nio.SelectChannelEndPoint.run(SelectChannelEndPoint.java:410)",
>>>>>>> >
>>>>>>> >
>>>>>>> "org.mortbay.thread.QueuedThreadPool$PoolThread.run(QueuedThreadPool.java:582)"
>>>>>>> >     ],
>>>>>>> >     "causedBy": null
>>>>>>> > }
>>>>>>> >
>>>>>>> >>
>>>>>>> >> Thx
>>>>>>> >> Dan
>>>>>>> >>
>>>>>>> >>
>>>>>>> >>
>>>>>>> >> [1]
>>>>>>> >>
>>>>>>> https://github.com/apache/isis/blob/f38fdb92941172eabb12e0943509f239e6d5925f/example/application/quickstart_wicket_restful_jdo/dom/src/main/java/dom/todo/ToDoItem.java#L219
>>>>>>> >> [2]
>>>>>>> >>
>>>>>>> >> http://localhost:8080/restful/objects/TODO/L_11
>>>>>>> >> , {
>>>>>>> >>
>>>>>>> >>    - members:
>>>>>>> >>    {
>>>>>>> >>       - ownedBy:
>>>>>>> >>       {
>>>>>>> >>          - memberType: "property",
>>>>>>> >>          - value: "sven",
>>>>>>> >>          - format: "decimal",
>>>>>>> >>          - x-isis-format: "bigdecimal"
>>>>>>> >>          },
>>>>>>> >>       - dueBy:
>>>>>>> >>       {
>>>>>>> >>          - memberType: "property",
>>>>>>> >>          - value: "2013-07-24",
>>>>>>> >>          - format: "date",
>>>>>>> >>          - x-isis-format: "jodalocaldate"
>>>>>>> >>          },
>>>>>>> >>       - cost:
>>>>>>> >>       {
>>>>>>> >>          - memberType: "property",
>>>>>>> >>          - value: 1.75,
>>>>>>> >>          - format: "decimal",
>>>>>>> >>          - x-isis-format: "bigdecimal"
>>>>>>> >>          },
>>>>>>> >>       - notes:
>>>>>>> >>       {
>>>>>>> >>          - memberType: "property",
>>>>>>> >>          - value: null,
>>>>>>> >>          - format: "decimal",
>>>>>>> >>          - x-isis-format: "bigdecimal"
>>>>>>> >>          },
>>>>>>> >>       - attachment:
>>>>>>> >>       {
>>>>>>> >>          - memberType: "property",
>>>>>>> >>          - value: null,
>>>>>>> >>          - format: "decimal",
>>>>>>> >>          - x-isis-format: "bigdecimal"
>>>>>>> >>          },
>>>>>>> >>       - description:
>>>>>>> >>       {
>>>>>>> >>          - memberType: "property",
>>>>>>> >>          - value: "Buy bread",
>>>>>>> >>          - format: "decimal",
>>>>>>> >>          - x-isis-format: "bigdecimal"
>>>>>>> >>          },
>>>>>>> >>       - category:
>>>>>>> >>       {
>>>>>>> >>          - memberType: "property",
>>>>>>> >>          - value: "Domestic",
>>>>>>> >>          - format: "decimal",
>>>>>>> >>          - x-isis-format: "bigdecimal"
>>>>>>> >>          },
>>>>>>> >>       - complete:
>>>>>>> >>       {
>>>>>>> >>          - memberType: "property",
>>>>>>> >>          - value: false,
>>>>>>> >>          - x-isis-format: "boolean",
>>>>>>> >>          - disabledReason: "Always disabled"
>>>>>>> >>          },
>>>>>>> >>       - versionSequence:
>>>>>>> >>       {
>>>>>>> >>          - memberType: "property",
>>>>>>> >>          - value: 1,
>>>>>>> >>          - format: "int",
>>>>>>> >>          - x-isis-format: "long",
>>>>>>> >>          - disabledReason: "Always disabled"
>>>>>>>
>>>>>>> >>          }
>>>>>>> >>       }
>>>>>>> >>
>>>>>>> >>
>>>>>>> >>
>>>>>>> >> [3] this - which is valid according to the spec, I think - didn't
>>>>>>> work:
>>>>>>> >> {
>>>>>>> >>     "cost" : {
>>>>>>> >>       "value" : 2.75
>>>>>>> >>     },
>>>>>>> >>     "description" : {
>>>>>>> >>       "value" : "An updated description"
>>>>>>> >>     },
>>>>>>> >>     "category" : {
>>>>>>> >>       "value" : "Professional"
>>>>>>> >>     }
>>>>>>> >> }
>>>>>>> >>
>>>>>>> >> [4] nor did this:
>>>>>>> >> {
>>>>>>> >>   "members:" {
>>>>>>> >>     "cost" : {
>>>>>>> >>       "memberType": "property",
>>>>>>> >>       "value" : 2.75
>>>>>>> >>     },
>>>>>>> >>     "description" : {
>>>>>>> >>       "memberType": "property",
>>>>>>> >>       "value" : "An updated description"
>>>>>>> >>     },
>>>>>>> >>     "category" : {
>>>>>>> >>       "memberType": "property",
>>>>>>> >>       "value" : "Professional"
>>>>>>> >>     }
>>>>>>> >>   }
>>>>>>> >> }
>>>>>>> >>
>>>>>>> >>
>>>>>>> >> [5] nor did this:
>>>>>>> >> {
>>>>>>> >>     "cost" : {
>>>>>>> >>       "memberType": "property",
>>>>>>> >>       "value" : 2.75
>>>>>>> >>     },
>>>>>>> >>     "description" : {
>>>>>>> >>       "memberType": "property",
>>>>>>> >>       "value" : "An updated description"
>>>>>>> >>     },
>>>>>>> >>     "category" : {
>>>>>>> >>       "memberType": "property",
>>>>>>> >>       "value" : "Professional"
>>>>>>> >>     }
>>>>>>> >> }
>>>>>>> >>
>>>>>>> >>
>>>>>>> >> [6]
>>>>>>> >>
>>>>>>> >>    1. Status Code: 400
>>>>>>> >>    2. Server: Jetty(6.1.26)
>>>>>>> >>    3. Content-Length: 0
>>>>>>> >>    4. Warning: 199 RestfulObjects Could not find properties list
>>>>>>> (nomembers
>>>>>>>
>>>>>>> >>    [memberType=property]); got
>>>>>>> {"cost":{"memberType":"property","value":
>>>>>>> >>    2.75},"description":{"memberType":"property","value":"An
>>>>>>> updated
>>>>>>> >>    description"},"category":{"memberType":"property","value":
>>>>>>> >>    "Professional"}}
>>>>>>> >>    5. Content-Type: application/json
>>>>>>>
>>>>>>> >>
>>>>>>> >>
>>>>>>> >>
>>>>>>> >>
>>>>>>> >> On 23 July 2013 18:05, Bhargav Golla <bh...@gmail.com>
>>>>>>> wrote:
>>>>>>> >>
>>>>>>> >>> Hi Dan
>>>>>>> >>>
>>>>>>> >>> I am trying to edit the properties of an object and am following
>>>>>>> 14.2 in
>>>>>>> >>> ROSpec to do the same. I tried to make a PUT request to the URL
>>>>>>> by chagning
>>>>>>> >>> few properties and putting them into JSON. My request is as
>>>>>>> follows:
>>>>>>> >>> PUT /myapp-webapp/restful/objects/TODO/L_0 HTTP/1.1
>>>>>>> >>> Host: localhost:8080
>>>>>>> >>> Accept: application/json
>>>>>>> >>> Authorization: Basic c3ZlbjpwYXNz
>>>>>>> >>> Cache-Control: no-cache
>>>>>>> >>>
>>>>>>> >>> { "complete": { "value": "true" } }
>>>>>>> >>>
>>>>>>> >>> But it is giving me a 400 error. Do you have any help here?
>>>>>>> >>>
>>>>>>> >>> Regards
>>>>>>> >>>
>>>>>>> >>> Bhargav Golla
>>>>>>> >>> Developer. Freelancer.
>>>>>>> >>> B.E (Hons.) Computer Science
>>>>>>> >>> BITS-Pilani
>>>>>>> >>> Github <http://www.github.com/bhargavgolla> | LinkedIN<
>>>>>>> http://www.linkedin.com/in/bhargavgolla>
>>>>>>> >>>  | Website <http://www.bhargavgolla.com/>
>>>>>>> >>>
>>>>>>> >>
>>>>>>> >>
>>>>>>> >
>>>>>>>
>>>>>>
>>>>>>
>>>>>>
>>>>>> --
>>>>>> Regards
>>>>>>
>>>>>> W.Dimuthu Upeksha
>>>>>> Undergraduate
>>>>>> Department of Computer Science And Engineering
>>>>>>
>>>>>> University of Moratuwa, Sri Lanka
>>>>>>
>>>>>
>>>>>
>>>>
>>>
>>
>

Re: Help with updating properties [14.2 in ROSpec]

Posted by Dan Haywood <da...@haywood-associates.co.uk>.
Indeed, it does mean that.

You need to pull down the latest version of Isis (using "git pull") and
rebuild that instead ("mvn clean install").

You then need to make sure your myapp is running against the latest Isis
snapshot (x.y.0-SNAPSHOT), rather than the released (x.x.0) version.  You
can do that by editing the pom.xml; check out the
examples/application/quickstart_wicket_restful_jdo/pom.xml  (this is what
your myapp was originally generated from).  Note that the versions

One other thing while I remember... if you are running with your own myapp,
then the WEB-INF/web.xml has changed slightly... there is now a new filter,
IsisTransactionFilterForRestfulObjects.  Again, look at
examples/application/quickstart_wicket_restful_jdo/webapp/src/main/webapp/WEB-INF/web.xml.

Let me know if you get stuck

Dan




On 29 July 2013 20:05, Bhargav Golla <bh...@gmail.com> wrote:

> Tried mvn clean install -DskipTests and then mvn jetty:run from
> myapp/webapp. Then tried updating description of a ToDo. Still same error.
> Does this mean that I haven't rebuilt the code properly?
>
> Bhargav Golla
> Developer. Freelancer.
> B.E (Hons.) Computer Science
> BITS-Pilani
> Github <http://www.github.com/bhargavgolla> | LinkedIN<http://www.linkedin.com/in/bhargavgolla>
>  | Website <http://www.bhargavgolla.com/>
>
>
> On Tue, Jul 30, 2013 at 12:26 AM, Bhargav Golla <bh...@gmail.com>wrote:
>
>> By rebuild, I hope you are asking me to do a "mvn clean package" in the
>> myapp directory.
>> Tried that and it is failing tests with an error " Failed to execute goal
>> org.apache.maven.plugins:maven-surefire-plugin:2.5:test (default-test) on
>> project myapp-integtests: There are test failures." Any help?
>>
>> Bhargav Golla
>> Developer. Freelancer.
>>  B.E (Hons.) Computer Science
>> BITS-Pilani
>> Github <http://www.github.com/bhargavgolla> | LinkedIN<http://www.linkedin.com/in/bhargavgolla>
>>  | Website <http://www.bhargavgolla.com/>
>>
>>
>> On Mon, Jul 29, 2013 at 6:38 PM, Dan Haywood <
>> dan@haywood-associates.co.uk> wrote:
>>
>>> Hi Bhargav,
>>> OK, committed some fixes this morning, along with tests
>>>
>>> Please do a rebuild and let me know how you get on.
>>>
>>> Cheers
>>> Dan
>>>
>>>
>>>
>>>
>>> On 28 July 2013 20:30, Bhargav Golla <bh...@gmail.com> wrote:
>>>
>>>> Hi Dimuthu,
>>>>
>>>> It isn't working too. Tried updating the description also. Not working
>>>> either.
>>>>
>>>> Bhargav Golla
>>>> Developer. Freelancer.
>>>> B.E (Hons.) Computer Science
>>>> BITS-Pilani
>>>> Github <http://www.github.com/bhargavgolla> | LinkedIN<http://www.linkedin.com/in/bhargavgolla>
>>>>  | Website <http://www.bhargavgolla.com/>
>>>>
>>>>
>>>> On Sat, Jul 27, 2013 at 1:39 PM, DImuthu Upeksha <
>>>> dimuthu.upeksha2@gmail.com> wrote:
>>>>
>>>>> Hi Bhargav,
>>>>>
>>>>> In your issue of { "value": "10/22/2013" }, hope you want to pass a
>>>>> date. Try { "value": "20131022" }. ({ "value": "YYYYMMDD" }) It
>>>>> worked for me.
>>>>>
>>>>> Thnx
>>>>> Dimuthu
>>>>>
>>>>>
>>>>>
>>>>> On Fri, Jul 26, 2013 at 10:35 AM, Bhargav Golla <
>>>>> bhargav.golla@gmail.com> wrote:
>>>>>
>>>>>> Hi Dan/Maurizio
>>>>>>
>>>>>> Any help with the error I shared?
>>>>>>
>>>>>> Thanks
>>>>>>
>>>>>> Bhargav Golla
>>>>>> Developer. Freelancer.
>>>>>> B.E (Hons.) Computer Science
>>>>>> BITS-Pilani
>>>>>> Github <http://www.github.com/bhargavgolla> |
>>>>>> LinkedIN<http://www.linkedin.com/in/bhargavgolla>
>>>>>>  | Website <http://www.bhargavgolla.com/>
>>>>>>
>>>>>>
>>>>>> On Wed, Jul 24, 2013 at 10:31 PM, Bhargav Golla <
>>>>>> bhargav.golla@gmail.com>wrote:
>>>>>>
>>>>>> >
>>>>>> >
>>>>>> > On Wed, Jul 24, 2013 at 1:14 PM, Dan Haywood <
>>>>>> dan@haywood-associates.co.uk
>>>>>> > > wrote:
>>>>>> >
>>>>>> >> Hi Bhargav,
>>>>>> >> sorry not to get back to you sooner.
>>>>>> >>
>>>>>> >> couple of things:
>>>>>> >> 1. the PUT resource on the object (RO spec 14.2) is for updating
>>>>>> ALL
>>>>>> >> properties, not just a single one.
>>>>>> >> 2. the "complete" property is ALWAYS disabled (you can see that
>>>>>> from the
>>>>>> >> code [1], and from the arguments map in the representation[2]
>>>>>> >> 3. notwithstanding, I think there's a bug in the RO viewer.  I
>>>>>> tried
>>>>>> >> several different formats for the body [3], [4], [5], but got the
>>>>>> same
>>>>>> >> error in each case [6]
>>>>>> >>
>>>>>> >> So, if you want to raise a ticket for this, then either go ahead
>>>>>> and fix
>>>>>> >> it, or wait for me to do so...
>>>>>> >>
>>>>>> > Created an issue [1]. Will try to fix it.
>>>>>> >
>>>>>> >>
>>>>>> >> In the meantime, you could workaround by doing a PUT to each of the
>>>>>> >> individual property resources (per 16.2 of the spec); I believe
>>>>>> this is
>>>>>> >> working fine.
>>>>>> >>
>>>>>> > I am getting a 500 now that says that "does not represent map" when
>>>>>> a make
>>>>>> > a request like [2]. Any help?
>>>>>> >
>>>>>> > Regards
>>>>>> > Bhargav
>>>>>> >
>>>>>> > [1] https://issues.apache.org/jira/browse/ISIS-479
>>>>>> > [2] PUT /myapp-webapp/restful/objects/TODO/L_0/properties/notes
>>>>>> HTTP/1.1
>>>>>> >  Host: localhost:8080
>>>>>> > Accept: application/json
>>>>>> > Authorization: Basic c3ZlbjpwYXNz
>>>>>> > Cache-Control: no-cache
>>>>>> >
>>>>>> > { "value": "10/22/2013" }
>>>>>> >
>>>>>> > Result:
>>>>>> > {
>>>>>> >     "message": "does not represent map",
>>>>>> >     "stackTrace": [
>>>>>> >
>>>>>> >
>>>>>> "org.apache.isis.viewer.restfulobjects.applib.JsonRepresentation.mapHas(JsonRepresentation.java:1126)",
>>>>>> >
>>>>>> >
>>>>>> "org.apache.isis.viewer.restfulobjects.rendering.domainobjects.JsonValueEncoder.asAdapter(JsonValueEncoder.java:359)",
>>>>>> >
>>>>>> >
>>>>>> "org.apache.isis.viewer.restfulobjects.server.resources.DomainResourceHelper.objectAdapterFor(DomainResourceHelper.java:313)",
>>>>>> >
>>>>>> >
>>>>>> "org.apache.isis.viewer.restfulobjects.server.resources.DomainResourceHelper.parseAsMapWithSingleValue(DomainResourceHelper.java:463)",
>>>>>> >
>>>>>> >
>>>>>> "org.apache.isis.viewer.restfulobjects.server.resources.DomainResourceHelper.parseAsMapWithSingleValue(DomainResourceHelper.java:454)",
>>>>>> >
>>>>>> >
>>>>>> "org.apache.isis.viewer.restfulobjects.server.resources.DomainObjectResourceServerside.modifyProperty(DomainObjectResourceServerside.java:197)",
>>>>>> >         "sun.reflect.NativeMethodAccessorImpl.invoke0(Native
>>>>>> Method)",
>>>>>> >
>>>>>> >
>>>>>> "sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)",
>>>>>> >
>>>>>> >
>>>>>> "sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)",
>>>>>> >         "java.lang.reflect.Method.invoke(Method.java:601)",
>>>>>> >
>>>>>> >
>>>>>> "org.jboss.resteasy.core.MethodInjectorImpl.invoke(MethodInjectorImpl.java:167)",
>>>>>> >
>>>>>> >
>>>>>> "org.jboss.resteasy.core.ResourceMethod.invokeOnTarget(ResourceMethod.java:269)",
>>>>>> >
>>>>>> >
>>>>>> "org.jboss.resteasy.core.ResourceMethod.invoke(ResourceMethod.java:227)",
>>>>>> >
>>>>>> >
>>>>>> "org.jboss.resteasy.core.ResourceMethod.invoke(ResourceMethod.java:216)",
>>>>>> >
>>>>>> >
>>>>>> "org.jboss.resteasy.core.SynchronousDispatcher.getResponse(SynchronousDispatcher.java:542)",
>>>>>> >
>>>>>> >
>>>>>> "org.jboss.resteasy.core.SynchronousDispatcher.invoke(SynchronousDispatcher.java:524)",
>>>>>> >
>>>>>> >
>>>>>> "org.jboss.resteasy.core.SynchronousDispatcher.invoke(SynchronousDispatcher.java:126)",
>>>>>> >
>>>>>> >
>>>>>> "org.jboss.resteasy.plugins.server.servlet.ServletContainerDispatcher.service(ServletContainerDispatcher.java:208)",
>>>>>> >
>>>>>> >
>>>>>> "org.jboss.resteasy.plugins.server.servlet.HttpServletDispatcher.service(HttpServletDispatcher.java:55)",
>>>>>> >
>>>>>> >
>>>>>> "org.jboss.resteasy.plugins.server.servlet.HttpServletDispatcher.service(HttpServletDispatcher.java:50)",
>>>>>> >
>>>>>> "javax.servlet.http.HttpServlet.service(HttpServlet.java:820)",
>>>>>> >
>>>>>> >
>>>>>> "org.mortbay.jetty.servlet.ServletHolder.handle(ServletHolder.java:511)",
>>>>>> >
>>>>>> >
>>>>>> "org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1166)",
>>>>>> >
>>>>>> >
>>>>>> "org.apache.isis.core.webapp.IsisSessionFilter$SessionState$1.handle(IsisSessionFilter.java:315)",
>>>>>> >
>>>>>> >
>>>>>> "org.apache.isis.core.webapp.IsisSessionFilter.doFilter(IsisSessionFilter.java:404)",
>>>>>> >
>>>>>> >
>>>>>> "org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1157)",
>>>>>> >
>>>>>> >
>>>>>> "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.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1157)",
>>>>>> >
>>>>>> >
>>>>>> "org.mortbay.jetty.servlet.ServletHandler.handle(ServletHandler.java:388)",
>>>>>> >
>>>>>> >
>>>>>> "org.mortbay.jetty.security.SecurityHandler.handle(SecurityHandler.java:216)",
>>>>>> >
>>>>>> >
>>>>>> "org.mortbay.jetty.servlet.SessionHandler.handle(SessionHandler.java:182)",
>>>>>> >
>>>>>> >
>>>>>> "org.mortbay.jetty.handler.ContextHandler.handle(ContextHandler.java:765)",
>>>>>> >
>>>>>> >
>>>>>> "org.mortbay.jetty.webapp.WebAppContext.handle(WebAppContext.java:440)",
>>>>>> >
>>>>>> >
>>>>>> "org.mortbay.jetty.handler.ContextHandlerCollection.handle(ContextHandlerCollection.java:230)",
>>>>>> >
>>>>>> >
>>>>>> "org.mortbay.jetty.handler.HandlerCollection.handle(HandlerCollection.java:114)",
>>>>>> >
>>>>>> >
>>>>>> "org.mortbay.jetty.handler.HandlerWrapper.handle(HandlerWrapper.java:152)",
>>>>>> >         "org.mortbay.jetty.Server.handle(Server.java:326)",
>>>>>> >
>>>>>> >
>>>>>> "org.mortbay.jetty.HttpConnection.handleRequest(HttpConnection.java:542)",
>>>>>> >
>>>>>> >
>>>>>> "org.mortbay.jetty.HttpConnection$RequestHandler.content(HttpConnection.java:943)",
>>>>>> >
>>>>>> "org.mortbay.jetty.HttpParser.parseNext(HttpParser.java:756)",
>>>>>> >
>>>>>> "org.mortbay.jetty.HttpParser.parseAvailable(HttpParser.java:218)",
>>>>>> >
>>>>>> "org.mortbay.jetty.HttpConnection.handle(HttpConnection.java:404)",
>>>>>> >
>>>>>> >
>>>>>> "org.mortbay.io.nio.SelectChannelEndPoint.run(SelectChannelEndPoint.java:410)",
>>>>>> >
>>>>>> >
>>>>>> "org.mortbay.thread.QueuedThreadPool$PoolThread.run(QueuedThreadPool.java:582)"
>>>>>> >     ],
>>>>>> >     "causedBy": null
>>>>>> > }
>>>>>> >
>>>>>> >>
>>>>>> >> Thx
>>>>>> >> Dan
>>>>>> >>
>>>>>> >>
>>>>>> >>
>>>>>> >> [1]
>>>>>> >>
>>>>>> https://github.com/apache/isis/blob/f38fdb92941172eabb12e0943509f239e6d5925f/example/application/quickstart_wicket_restful_jdo/dom/src/main/java/dom/todo/ToDoItem.java#L219
>>>>>> >> [2]
>>>>>> >>
>>>>>> >> http://localhost:8080/restful/objects/TODO/L_11
>>>>>> >> , {
>>>>>> >>
>>>>>> >>    - members:
>>>>>> >>    {
>>>>>> >>       - ownedBy:
>>>>>> >>       {
>>>>>> >>          - memberType: "property",
>>>>>> >>          - value: "sven",
>>>>>> >>          - format: "decimal",
>>>>>> >>          - x-isis-format: "bigdecimal"
>>>>>> >>          },
>>>>>> >>       - dueBy:
>>>>>> >>       {
>>>>>> >>          - memberType: "property",
>>>>>> >>          - value: "2013-07-24",
>>>>>> >>          - format: "date",
>>>>>> >>          - x-isis-format: "jodalocaldate"
>>>>>> >>          },
>>>>>> >>       - cost:
>>>>>> >>       {
>>>>>> >>          - memberType: "property",
>>>>>> >>          - value: 1.75,
>>>>>> >>          - format: "decimal",
>>>>>> >>          - x-isis-format: "bigdecimal"
>>>>>> >>          },
>>>>>> >>       - notes:
>>>>>> >>       {
>>>>>> >>          - memberType: "property",
>>>>>> >>          - value: null,
>>>>>> >>          - format: "decimal",
>>>>>> >>          - x-isis-format: "bigdecimal"
>>>>>> >>          },
>>>>>> >>       - attachment:
>>>>>> >>       {
>>>>>> >>          - memberType: "property",
>>>>>> >>          - value: null,
>>>>>> >>          - format: "decimal",
>>>>>> >>          - x-isis-format: "bigdecimal"
>>>>>> >>          },
>>>>>> >>       - description:
>>>>>> >>       {
>>>>>> >>          - memberType: "property",
>>>>>> >>          - value: "Buy bread",
>>>>>> >>          - format: "decimal",
>>>>>> >>          - x-isis-format: "bigdecimal"
>>>>>> >>          },
>>>>>> >>       - category:
>>>>>> >>       {
>>>>>> >>          - memberType: "property",
>>>>>> >>          - value: "Domestic",
>>>>>> >>          - format: "decimal",
>>>>>> >>          - x-isis-format: "bigdecimal"
>>>>>> >>          },
>>>>>> >>       - complete:
>>>>>> >>       {
>>>>>> >>          - memberType: "property",
>>>>>> >>          - value: false,
>>>>>> >>          - x-isis-format: "boolean",
>>>>>> >>          - disabledReason: "Always disabled"
>>>>>> >>          },
>>>>>> >>       - versionSequence:
>>>>>> >>       {
>>>>>> >>          - memberType: "property",
>>>>>> >>          - value: 1,
>>>>>> >>          - format: "int",
>>>>>> >>          - x-isis-format: "long",
>>>>>> >>          - disabledReason: "Always disabled"
>>>>>>
>>>>>> >>          }
>>>>>> >>       }
>>>>>> >>
>>>>>> >>
>>>>>> >>
>>>>>> >> [3] this - which is valid according to the spec, I think - didn't
>>>>>> work:
>>>>>> >> {
>>>>>> >>     "cost" : {
>>>>>> >>       "value" : 2.75
>>>>>> >>     },
>>>>>> >>     "description" : {
>>>>>> >>       "value" : "An updated description"
>>>>>> >>     },
>>>>>> >>     "category" : {
>>>>>> >>       "value" : "Professional"
>>>>>> >>     }
>>>>>> >> }
>>>>>> >>
>>>>>> >> [4] nor did this:
>>>>>> >> {
>>>>>> >>   "members:" {
>>>>>> >>     "cost" : {
>>>>>> >>       "memberType": "property",
>>>>>> >>       "value" : 2.75
>>>>>> >>     },
>>>>>> >>     "description" : {
>>>>>> >>       "memberType": "property",
>>>>>> >>       "value" : "An updated description"
>>>>>> >>     },
>>>>>> >>     "category" : {
>>>>>> >>       "memberType": "property",
>>>>>> >>       "value" : "Professional"
>>>>>> >>     }
>>>>>> >>   }
>>>>>> >> }
>>>>>> >>
>>>>>> >>
>>>>>> >> [5] nor did this:
>>>>>> >> {
>>>>>> >>     "cost" : {
>>>>>> >>       "memberType": "property",
>>>>>> >>       "value" : 2.75
>>>>>> >>     },
>>>>>> >>     "description" : {
>>>>>> >>       "memberType": "property",
>>>>>> >>       "value" : "An updated description"
>>>>>> >>     },
>>>>>> >>     "category" : {
>>>>>> >>       "memberType": "property",
>>>>>> >>       "value" : "Professional"
>>>>>> >>     }
>>>>>> >> }
>>>>>> >>
>>>>>> >>
>>>>>> >> [6]
>>>>>> >>
>>>>>> >>    1. Status Code: 400
>>>>>> >>    2. Server: Jetty(6.1.26)
>>>>>> >>    3. Content-Length: 0
>>>>>> >>    4. Warning: 199 RestfulObjects Could not find properties list
>>>>>> (nomembers
>>>>>>
>>>>>> >>    [memberType=property]); got
>>>>>> {"cost":{"memberType":"property","value":
>>>>>> >>    2.75},"description":{"memberType":"property","value":"An updated
>>>>>> >>    description"},"category":{"memberType":"property","value":
>>>>>> >>    "Professional"}}
>>>>>> >>    5. Content-Type: application/json
>>>>>>
>>>>>> >>
>>>>>> >>
>>>>>> >>
>>>>>> >>
>>>>>> >> On 23 July 2013 18:05, Bhargav Golla <bh...@gmail.com>
>>>>>> wrote:
>>>>>> >>
>>>>>> >>> Hi Dan
>>>>>> >>>
>>>>>> >>> I am trying to edit the properties of an object and am following
>>>>>> 14.2 in
>>>>>> >>> ROSpec to do the same. I tried to make a PUT request to the URL
>>>>>> by chagning
>>>>>> >>> few properties and putting them into JSON. My request is as
>>>>>> follows:
>>>>>> >>> PUT /myapp-webapp/restful/objects/TODO/L_0 HTTP/1.1
>>>>>> >>> Host: localhost:8080
>>>>>> >>> Accept: application/json
>>>>>> >>> Authorization: Basic c3ZlbjpwYXNz
>>>>>> >>> Cache-Control: no-cache
>>>>>> >>>
>>>>>> >>> { "complete": { "value": "true" } }
>>>>>> >>>
>>>>>> >>> But it is giving me a 400 error. Do you have any help here?
>>>>>> >>>
>>>>>> >>> Regards
>>>>>> >>>
>>>>>> >>> Bhargav Golla
>>>>>> >>> Developer. Freelancer.
>>>>>> >>> B.E (Hons.) Computer Science
>>>>>> >>> BITS-Pilani
>>>>>> >>> Github <http://www.github.com/bhargavgolla> | LinkedIN<
>>>>>> http://www.linkedin.com/in/bhargavgolla>
>>>>>> >>>  | Website <http://www.bhargavgolla.com/>
>>>>>> >>>
>>>>>> >>
>>>>>> >>
>>>>>> >
>>>>>>
>>>>>
>>>>>
>>>>>
>>>>> --
>>>>> Regards
>>>>>
>>>>> W.Dimuthu Upeksha
>>>>> Undergraduate
>>>>> Department of Computer Science And Engineering
>>>>>
>>>>> University of Moratuwa, Sri Lanka
>>>>>
>>>>
>>>>
>>>
>>
>

Re: Help with updating properties [14.2 in ROSpec]

Posted by Bhargav Golla <bh...@gmail.com>.
Tried mvn clean install -DskipTests and then mvn jetty:run from
myapp/webapp. Then tried updating description of a ToDo. Still same error.
Does this mean that I haven't rebuilt the code properly?

Bhargav Golla
Developer. Freelancer.
B.E (Hons.) Computer Science
BITS-Pilani
Github <http://www.github.com/bhargavgolla> |
LinkedIN<http://www.linkedin.com/in/bhargavgolla>
 | Website <http://www.bhargavgolla.com/>


On Tue, Jul 30, 2013 at 12:26 AM, Bhargav Golla <bh...@gmail.com>wrote:

> By rebuild, I hope you are asking me to do a "mvn clean package" in the
> myapp directory.
> Tried that and it is failing tests with an error " Failed to execute goal
> org.apache.maven.plugins:maven-surefire-plugin:2.5:test (default-test) on
> project myapp-integtests: There are test failures." Any help?
>
> Bhargav Golla
> Developer. Freelancer.
>  B.E (Hons.) Computer Science
> BITS-Pilani
> Github <http://www.github.com/bhargavgolla> | LinkedIN<http://www.linkedin.com/in/bhargavgolla>
>  | Website <http://www.bhargavgolla.com/>
>
>
> On Mon, Jul 29, 2013 at 6:38 PM, Dan Haywood <dan@haywood-associates.co.uk
> > wrote:
>
>> Hi Bhargav,
>> OK, committed some fixes this morning, along with tests
>>
>> Please do a rebuild and let me know how you get on.
>>
>> Cheers
>> Dan
>>
>>
>>
>>
>> On 28 July 2013 20:30, Bhargav Golla <bh...@gmail.com> wrote:
>>
>>> Hi Dimuthu,
>>>
>>> It isn't working too. Tried updating the description also. Not working
>>> either.
>>>
>>> Bhargav Golla
>>> Developer. Freelancer.
>>> B.E (Hons.) Computer Science
>>> BITS-Pilani
>>> Github <http://www.github.com/bhargavgolla> | LinkedIN<http://www.linkedin.com/in/bhargavgolla>
>>>  | Website <http://www.bhargavgolla.com/>
>>>
>>>
>>> On Sat, Jul 27, 2013 at 1:39 PM, DImuthu Upeksha <
>>> dimuthu.upeksha2@gmail.com> wrote:
>>>
>>>> Hi Bhargav,
>>>>
>>>> In your issue of { "value": "10/22/2013" }, hope you want to pass a
>>>> date. Try { "value": "20131022" }. ({ "value": "YYYYMMDD" }) It worked
>>>> for me.
>>>>
>>>> Thnx
>>>> Dimuthu
>>>>
>>>>
>>>>
>>>> On Fri, Jul 26, 2013 at 10:35 AM, Bhargav Golla <
>>>> bhargav.golla@gmail.com> wrote:
>>>>
>>>>> Hi Dan/Maurizio
>>>>>
>>>>> Any help with the error I shared?
>>>>>
>>>>> Thanks
>>>>>
>>>>> Bhargav Golla
>>>>> Developer. Freelancer.
>>>>> B.E (Hons.) Computer Science
>>>>> BITS-Pilani
>>>>> Github <http://www.github.com/bhargavgolla> |
>>>>> LinkedIN<http://www.linkedin.com/in/bhargavgolla>
>>>>>  | Website <http://www.bhargavgolla.com/>
>>>>>
>>>>>
>>>>> On Wed, Jul 24, 2013 at 10:31 PM, Bhargav Golla <
>>>>> bhargav.golla@gmail.com>wrote:
>>>>>
>>>>> >
>>>>> >
>>>>> > On Wed, Jul 24, 2013 at 1:14 PM, Dan Haywood <
>>>>> dan@haywood-associates.co.uk
>>>>> > > wrote:
>>>>> >
>>>>> >> Hi Bhargav,
>>>>> >> sorry not to get back to you sooner.
>>>>> >>
>>>>> >> couple of things:
>>>>> >> 1. the PUT resource on the object (RO spec 14.2) is for updating ALL
>>>>> >> properties, not just a single one.
>>>>> >> 2. the "complete" property is ALWAYS disabled (you can see that
>>>>> from the
>>>>> >> code [1], and from the arguments map in the representation[2]
>>>>> >> 3. notwithstanding, I think there's a bug in the RO viewer.  I tried
>>>>> >> several different formats for the body [3], [4], [5], but got the
>>>>> same
>>>>> >> error in each case [6]
>>>>> >>
>>>>> >> So, if you want to raise a ticket for this, then either go ahead
>>>>> and fix
>>>>> >> it, or wait for me to do so...
>>>>> >>
>>>>> > Created an issue [1]. Will try to fix it.
>>>>> >
>>>>> >>
>>>>> >> In the meantime, you could workaround by doing a PUT to each of the
>>>>> >> individual property resources (per 16.2 of the spec); I believe
>>>>> this is
>>>>> >> working fine.
>>>>> >>
>>>>> > I am getting a 500 now that says that "does not represent map" when
>>>>> a make
>>>>> > a request like [2]. Any help?
>>>>> >
>>>>> > Regards
>>>>> > Bhargav
>>>>> >
>>>>> > [1] https://issues.apache.org/jira/browse/ISIS-479
>>>>> > [2] PUT /myapp-webapp/restful/objects/TODO/L_0/properties/notes
>>>>> HTTP/1.1
>>>>> >  Host: localhost:8080
>>>>> > Accept: application/json
>>>>> > Authorization: Basic c3ZlbjpwYXNz
>>>>> > Cache-Control: no-cache
>>>>> >
>>>>> > { "value": "10/22/2013" }
>>>>> >
>>>>> > Result:
>>>>> > {
>>>>> >     "message": "does not represent map",
>>>>> >     "stackTrace": [
>>>>> >
>>>>> >
>>>>> "org.apache.isis.viewer.restfulobjects.applib.JsonRepresentation.mapHas(JsonRepresentation.java:1126)",
>>>>> >
>>>>> >
>>>>> "org.apache.isis.viewer.restfulobjects.rendering.domainobjects.JsonValueEncoder.asAdapter(JsonValueEncoder.java:359)",
>>>>> >
>>>>> >
>>>>> "org.apache.isis.viewer.restfulobjects.server.resources.DomainResourceHelper.objectAdapterFor(DomainResourceHelper.java:313)",
>>>>> >
>>>>> >
>>>>> "org.apache.isis.viewer.restfulobjects.server.resources.DomainResourceHelper.parseAsMapWithSingleValue(DomainResourceHelper.java:463)",
>>>>> >
>>>>> >
>>>>> "org.apache.isis.viewer.restfulobjects.server.resources.DomainResourceHelper.parseAsMapWithSingleValue(DomainResourceHelper.java:454)",
>>>>> >
>>>>> >
>>>>> "org.apache.isis.viewer.restfulobjects.server.resources.DomainObjectResourceServerside.modifyProperty(DomainObjectResourceServerside.java:197)",
>>>>> >         "sun.reflect.NativeMethodAccessorImpl.invoke0(Native
>>>>> Method)",
>>>>> >
>>>>> >
>>>>> "sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)",
>>>>> >
>>>>> >
>>>>> "sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)",
>>>>> >         "java.lang.reflect.Method.invoke(Method.java:601)",
>>>>> >
>>>>> >
>>>>> "org.jboss.resteasy.core.MethodInjectorImpl.invoke(MethodInjectorImpl.java:167)",
>>>>> >
>>>>> >
>>>>> "org.jboss.resteasy.core.ResourceMethod.invokeOnTarget(ResourceMethod.java:269)",
>>>>> >
>>>>> >
>>>>> "org.jboss.resteasy.core.ResourceMethod.invoke(ResourceMethod.java:227)",
>>>>> >
>>>>> >
>>>>> "org.jboss.resteasy.core.ResourceMethod.invoke(ResourceMethod.java:216)",
>>>>> >
>>>>> >
>>>>> "org.jboss.resteasy.core.SynchronousDispatcher.getResponse(SynchronousDispatcher.java:542)",
>>>>> >
>>>>> >
>>>>> "org.jboss.resteasy.core.SynchronousDispatcher.invoke(SynchronousDispatcher.java:524)",
>>>>> >
>>>>> >
>>>>> "org.jboss.resteasy.core.SynchronousDispatcher.invoke(SynchronousDispatcher.java:126)",
>>>>> >
>>>>> >
>>>>> "org.jboss.resteasy.plugins.server.servlet.ServletContainerDispatcher.service(ServletContainerDispatcher.java:208)",
>>>>> >
>>>>> >
>>>>> "org.jboss.resteasy.plugins.server.servlet.HttpServletDispatcher.service(HttpServletDispatcher.java:55)",
>>>>> >
>>>>> >
>>>>> "org.jboss.resteasy.plugins.server.servlet.HttpServletDispatcher.service(HttpServletDispatcher.java:50)",
>>>>> >
>>>>> "javax.servlet.http.HttpServlet.service(HttpServlet.java:820)",
>>>>> >
>>>>> >
>>>>> "org.mortbay.jetty.servlet.ServletHolder.handle(ServletHolder.java:511)",
>>>>> >
>>>>> >
>>>>> "org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1166)",
>>>>> >
>>>>> >
>>>>> "org.apache.isis.core.webapp.IsisSessionFilter$SessionState$1.handle(IsisSessionFilter.java:315)",
>>>>> >
>>>>> >
>>>>> "org.apache.isis.core.webapp.IsisSessionFilter.doFilter(IsisSessionFilter.java:404)",
>>>>> >
>>>>> >
>>>>> "org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1157)",
>>>>> >
>>>>> >
>>>>> "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.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1157)",
>>>>> >
>>>>> >
>>>>> "org.mortbay.jetty.servlet.ServletHandler.handle(ServletHandler.java:388)",
>>>>> >
>>>>> >
>>>>> "org.mortbay.jetty.security.SecurityHandler.handle(SecurityHandler.java:216)",
>>>>> >
>>>>> >
>>>>> "org.mortbay.jetty.servlet.SessionHandler.handle(SessionHandler.java:182)",
>>>>> >
>>>>> >
>>>>> "org.mortbay.jetty.handler.ContextHandler.handle(ContextHandler.java:765)",
>>>>> >
>>>>> >
>>>>> "org.mortbay.jetty.webapp.WebAppContext.handle(WebAppContext.java:440)",
>>>>> >
>>>>> >
>>>>> "org.mortbay.jetty.handler.ContextHandlerCollection.handle(ContextHandlerCollection.java:230)",
>>>>> >
>>>>> >
>>>>> "org.mortbay.jetty.handler.HandlerCollection.handle(HandlerCollection.java:114)",
>>>>> >
>>>>> >
>>>>> "org.mortbay.jetty.handler.HandlerWrapper.handle(HandlerWrapper.java:152)",
>>>>> >         "org.mortbay.jetty.Server.handle(Server.java:326)",
>>>>> >
>>>>> >
>>>>> "org.mortbay.jetty.HttpConnection.handleRequest(HttpConnection.java:542)",
>>>>> >
>>>>> >
>>>>> "org.mortbay.jetty.HttpConnection$RequestHandler.content(HttpConnection.java:943)",
>>>>> >
>>>>> "org.mortbay.jetty.HttpParser.parseNext(HttpParser.java:756)",
>>>>> >
>>>>> "org.mortbay.jetty.HttpParser.parseAvailable(HttpParser.java:218)",
>>>>> >
>>>>> "org.mortbay.jetty.HttpConnection.handle(HttpConnection.java:404)",
>>>>> >
>>>>> >
>>>>> "org.mortbay.io.nio.SelectChannelEndPoint.run(SelectChannelEndPoint.java:410)",
>>>>> >
>>>>> >
>>>>> "org.mortbay.thread.QueuedThreadPool$PoolThread.run(QueuedThreadPool.java:582)"
>>>>> >     ],
>>>>> >     "causedBy": null
>>>>> > }
>>>>> >
>>>>> >>
>>>>> >> Thx
>>>>> >> Dan
>>>>> >>
>>>>> >>
>>>>> >>
>>>>> >> [1]
>>>>> >>
>>>>> https://github.com/apache/isis/blob/f38fdb92941172eabb12e0943509f239e6d5925f/example/application/quickstart_wicket_restful_jdo/dom/src/main/java/dom/todo/ToDoItem.java#L219
>>>>> >> [2]
>>>>> >>
>>>>> >> http://localhost:8080/restful/objects/TODO/L_11
>>>>> >> , {
>>>>> >>
>>>>> >>    - members:
>>>>> >>    {
>>>>> >>       - ownedBy:
>>>>> >>       {
>>>>> >>          - memberType: "property",
>>>>> >>          - value: "sven",
>>>>> >>          - format: "decimal",
>>>>> >>          - x-isis-format: "bigdecimal"
>>>>> >>          },
>>>>> >>       - dueBy:
>>>>> >>       {
>>>>> >>          - memberType: "property",
>>>>> >>          - value: "2013-07-24",
>>>>> >>          - format: "date",
>>>>> >>          - x-isis-format: "jodalocaldate"
>>>>> >>          },
>>>>> >>       - cost:
>>>>> >>       {
>>>>> >>          - memberType: "property",
>>>>> >>          - value: 1.75,
>>>>> >>          - format: "decimal",
>>>>> >>          - x-isis-format: "bigdecimal"
>>>>> >>          },
>>>>> >>       - notes:
>>>>> >>       {
>>>>> >>          - memberType: "property",
>>>>> >>          - value: null,
>>>>> >>          - format: "decimal",
>>>>> >>          - x-isis-format: "bigdecimal"
>>>>> >>          },
>>>>> >>       - attachment:
>>>>> >>       {
>>>>> >>          - memberType: "property",
>>>>> >>          - value: null,
>>>>> >>          - format: "decimal",
>>>>> >>          - x-isis-format: "bigdecimal"
>>>>> >>          },
>>>>> >>       - description:
>>>>> >>       {
>>>>> >>          - memberType: "property",
>>>>> >>          - value: "Buy bread",
>>>>> >>          - format: "decimal",
>>>>> >>          - x-isis-format: "bigdecimal"
>>>>> >>          },
>>>>> >>       - category:
>>>>> >>       {
>>>>> >>          - memberType: "property",
>>>>> >>          - value: "Domestic",
>>>>> >>          - format: "decimal",
>>>>> >>          - x-isis-format: "bigdecimal"
>>>>> >>          },
>>>>> >>       - complete:
>>>>> >>       {
>>>>> >>          - memberType: "property",
>>>>> >>          - value: false,
>>>>> >>          - x-isis-format: "boolean",
>>>>> >>          - disabledReason: "Always disabled"
>>>>> >>          },
>>>>> >>       - versionSequence:
>>>>> >>       {
>>>>> >>          - memberType: "property",
>>>>> >>          - value: 1,
>>>>> >>          - format: "int",
>>>>> >>          - x-isis-format: "long",
>>>>> >>          - disabledReason: "Always disabled"
>>>>>
>>>>> >>          }
>>>>> >>       }
>>>>> >>
>>>>> >>
>>>>> >>
>>>>> >> [3] this - which is valid according to the spec, I think - didn't
>>>>> work:
>>>>> >> {
>>>>> >>     "cost" : {
>>>>> >>       "value" : 2.75
>>>>> >>     },
>>>>> >>     "description" : {
>>>>> >>       "value" : "An updated description"
>>>>> >>     },
>>>>> >>     "category" : {
>>>>> >>       "value" : "Professional"
>>>>> >>     }
>>>>> >> }
>>>>> >>
>>>>> >> [4] nor did this:
>>>>> >> {
>>>>> >>   "members:" {
>>>>> >>     "cost" : {
>>>>> >>       "memberType": "property",
>>>>> >>       "value" : 2.75
>>>>> >>     },
>>>>> >>     "description" : {
>>>>> >>       "memberType": "property",
>>>>> >>       "value" : "An updated description"
>>>>> >>     },
>>>>> >>     "category" : {
>>>>> >>       "memberType": "property",
>>>>> >>       "value" : "Professional"
>>>>> >>     }
>>>>> >>   }
>>>>> >> }
>>>>> >>
>>>>> >>
>>>>> >> [5] nor did this:
>>>>> >> {
>>>>> >>     "cost" : {
>>>>> >>       "memberType": "property",
>>>>> >>       "value" : 2.75
>>>>> >>     },
>>>>> >>     "description" : {
>>>>> >>       "memberType": "property",
>>>>> >>       "value" : "An updated description"
>>>>> >>     },
>>>>> >>     "category" : {
>>>>> >>       "memberType": "property",
>>>>> >>       "value" : "Professional"
>>>>> >>     }
>>>>> >> }
>>>>> >>
>>>>> >>
>>>>> >> [6]
>>>>> >>
>>>>> >>    1. Status Code: 400
>>>>> >>    2. Server: Jetty(6.1.26)
>>>>> >>    3. Content-Length: 0
>>>>> >>    4. Warning: 199 RestfulObjects Could not find properties list
>>>>> (nomembers
>>>>>
>>>>> >>    [memberType=property]); got
>>>>> {"cost":{"memberType":"property","value":
>>>>> >>    2.75},"description":{"memberType":"property","value":"An updated
>>>>> >>    description"},"category":{"memberType":"property","value":
>>>>> >>    "Professional"}}
>>>>> >>    5. Content-Type: application/json
>>>>>
>>>>> >>
>>>>> >>
>>>>> >>
>>>>> >>
>>>>> >> On 23 July 2013 18:05, Bhargav Golla <bh...@gmail.com>
>>>>> wrote:
>>>>> >>
>>>>> >>> Hi Dan
>>>>> >>>
>>>>> >>> I am trying to edit the properties of an object and am following
>>>>> 14.2 in
>>>>> >>> ROSpec to do the same. I tried to make a PUT request to the URL by
>>>>> chagning
>>>>> >>> few properties and putting them into JSON. My request is as
>>>>> follows:
>>>>> >>> PUT /myapp-webapp/restful/objects/TODO/L_0 HTTP/1.1
>>>>> >>> Host: localhost:8080
>>>>> >>> Accept: application/json
>>>>> >>> Authorization: Basic c3ZlbjpwYXNz
>>>>> >>> Cache-Control: no-cache
>>>>> >>>
>>>>> >>> { "complete": { "value": "true" } }
>>>>> >>>
>>>>> >>> But it is giving me a 400 error. Do you have any help here?
>>>>> >>>
>>>>> >>> Regards
>>>>> >>>
>>>>> >>> Bhargav Golla
>>>>> >>> Developer. Freelancer.
>>>>> >>> B.E (Hons.) Computer Science
>>>>> >>> BITS-Pilani
>>>>> >>> Github <http://www.github.com/bhargavgolla> | LinkedIN<
>>>>> http://www.linkedin.com/in/bhargavgolla>
>>>>> >>>  | Website <http://www.bhargavgolla.com/>
>>>>> >>>
>>>>> >>
>>>>> >>
>>>>> >
>>>>>
>>>>
>>>>
>>>>
>>>> --
>>>> Regards
>>>>
>>>> W.Dimuthu Upeksha
>>>> Undergraduate
>>>> Department of Computer Science And Engineering
>>>>
>>>> University of Moratuwa, Sri Lanka
>>>>
>>>
>>>
>>
>

Re: Help with updating properties [14.2 in ROSpec]

Posted by Bhargav Golla <bh...@gmail.com>.
By rebuild, I hope you are asking me to do a "mvn clean package" in the
myapp directory.
Tried that and it is failing tests with an error " Failed to execute goal
org.apache.maven.plugins:maven-surefire-plugin:2.5:test (default-test) on
project myapp-integtests: There are test failures." Any help?

Bhargav Golla
Developer. Freelancer.
B.E (Hons.) Computer Science
BITS-Pilani
Github <http://www.github.com/bhargavgolla> |
LinkedIN<http://www.linkedin.com/in/bhargavgolla>
 | Website <http://www.bhargavgolla.com/>


On Mon, Jul 29, 2013 at 6:38 PM, Dan Haywood
<da...@haywood-associates.co.uk>wrote:

> Hi Bhargav,
> OK, committed some fixes this morning, along with tests
>
> Please do a rebuild and let me know how you get on.
>
> Cheers
> Dan
>
>
>
>
> On 28 July 2013 20:30, Bhargav Golla <bh...@gmail.com> wrote:
>
>> Hi Dimuthu,
>>
>> It isn't working too. Tried updating the description also. Not working
>> either.
>>
>> Bhargav Golla
>> Developer. Freelancer.
>> B.E (Hons.) Computer Science
>> BITS-Pilani
>> Github <http://www.github.com/bhargavgolla> | LinkedIN<http://www.linkedin.com/in/bhargavgolla>
>>  | Website <http://www.bhargavgolla.com/>
>>
>>
>> On Sat, Jul 27, 2013 at 1:39 PM, DImuthu Upeksha <
>> dimuthu.upeksha2@gmail.com> wrote:
>>
>>> Hi Bhargav,
>>>
>>> In your issue of { "value": "10/22/2013" }, hope you want to pass a
>>> date. Try { "value": "20131022" }. ({ "value": "YYYYMMDD" }) It worked
>>> for me.
>>>
>>> Thnx
>>> Dimuthu
>>>
>>>
>>>
>>> On Fri, Jul 26, 2013 at 10:35 AM, Bhargav Golla <bhargav.golla@gmail.com
>>> > wrote:
>>>
>>>> Hi Dan/Maurizio
>>>>
>>>> Any help with the error I shared?
>>>>
>>>> Thanks
>>>>
>>>> Bhargav Golla
>>>> Developer. Freelancer.
>>>> B.E (Hons.) Computer Science
>>>> BITS-Pilani
>>>> Github <http://www.github.com/bhargavgolla> |
>>>> LinkedIN<http://www.linkedin.com/in/bhargavgolla>
>>>>  | Website <http://www.bhargavgolla.com/>
>>>>
>>>>
>>>> On Wed, Jul 24, 2013 at 10:31 PM, Bhargav Golla <
>>>> bhargav.golla@gmail.com>wrote:
>>>>
>>>> >
>>>> >
>>>> > On Wed, Jul 24, 2013 at 1:14 PM, Dan Haywood <
>>>> dan@haywood-associates.co.uk
>>>> > > wrote:
>>>> >
>>>> >> Hi Bhargav,
>>>> >> sorry not to get back to you sooner.
>>>> >>
>>>> >> couple of things:
>>>> >> 1. the PUT resource on the object (RO spec 14.2) is for updating ALL
>>>> >> properties, not just a single one.
>>>> >> 2. the "complete" property is ALWAYS disabled (you can see that from
>>>> the
>>>> >> code [1], and from the arguments map in the representation[2]
>>>> >> 3. notwithstanding, I think there's a bug in the RO viewer.  I tried
>>>> >> several different formats for the body [3], [4], [5], but got the
>>>> same
>>>> >> error in each case [6]
>>>> >>
>>>> >> So, if you want to raise a ticket for this, then either go ahead and
>>>> fix
>>>> >> it, or wait for me to do so...
>>>> >>
>>>> > Created an issue [1]. Will try to fix it.
>>>> >
>>>> >>
>>>> >> In the meantime, you could workaround by doing a PUT to each of the
>>>> >> individual property resources (per 16.2 of the spec); I believe this
>>>> is
>>>> >> working fine.
>>>> >>
>>>> > I am getting a 500 now that says that "does not represent map" when a
>>>> make
>>>> > a request like [2]. Any help?
>>>> >
>>>> > Regards
>>>> > Bhargav
>>>> >
>>>> > [1] https://issues.apache.org/jira/browse/ISIS-479
>>>> > [2] PUT /myapp-webapp/restful/objects/TODO/L_0/properties/notes
>>>> HTTP/1.1
>>>> >  Host: localhost:8080
>>>> > Accept: application/json
>>>> > Authorization: Basic c3ZlbjpwYXNz
>>>> > Cache-Control: no-cache
>>>> >
>>>> > { "value": "10/22/2013" }
>>>> >
>>>> > Result:
>>>> > {
>>>> >     "message": "does not represent map",
>>>> >     "stackTrace": [
>>>> >
>>>> >
>>>> "org.apache.isis.viewer.restfulobjects.applib.JsonRepresentation.mapHas(JsonRepresentation.java:1126)",
>>>> >
>>>> >
>>>> "org.apache.isis.viewer.restfulobjects.rendering.domainobjects.JsonValueEncoder.asAdapter(JsonValueEncoder.java:359)",
>>>> >
>>>> >
>>>> "org.apache.isis.viewer.restfulobjects.server.resources.DomainResourceHelper.objectAdapterFor(DomainResourceHelper.java:313)",
>>>> >
>>>> >
>>>> "org.apache.isis.viewer.restfulobjects.server.resources.DomainResourceHelper.parseAsMapWithSingleValue(DomainResourceHelper.java:463)",
>>>> >
>>>> >
>>>> "org.apache.isis.viewer.restfulobjects.server.resources.DomainResourceHelper.parseAsMapWithSingleValue(DomainResourceHelper.java:454)",
>>>> >
>>>> >
>>>> "org.apache.isis.viewer.restfulobjects.server.resources.DomainObjectResourceServerside.modifyProperty(DomainObjectResourceServerside.java:197)",
>>>> >         "sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)",
>>>> >
>>>> >
>>>> "sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)",
>>>> >
>>>> >
>>>> "sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)",
>>>> >         "java.lang.reflect.Method.invoke(Method.java:601)",
>>>> >
>>>> >
>>>> "org.jboss.resteasy.core.MethodInjectorImpl.invoke(MethodInjectorImpl.java:167)",
>>>> >
>>>> >
>>>> "org.jboss.resteasy.core.ResourceMethod.invokeOnTarget(ResourceMethod.java:269)",
>>>> >
>>>> >
>>>> "org.jboss.resteasy.core.ResourceMethod.invoke(ResourceMethod.java:227)",
>>>> >
>>>> >
>>>> "org.jboss.resteasy.core.ResourceMethod.invoke(ResourceMethod.java:216)",
>>>> >
>>>> >
>>>> "org.jboss.resteasy.core.SynchronousDispatcher.getResponse(SynchronousDispatcher.java:542)",
>>>> >
>>>> >
>>>> "org.jboss.resteasy.core.SynchronousDispatcher.invoke(SynchronousDispatcher.java:524)",
>>>> >
>>>> >
>>>> "org.jboss.resteasy.core.SynchronousDispatcher.invoke(SynchronousDispatcher.java:126)",
>>>> >
>>>> >
>>>> "org.jboss.resteasy.plugins.server.servlet.ServletContainerDispatcher.service(ServletContainerDispatcher.java:208)",
>>>> >
>>>> >
>>>> "org.jboss.resteasy.plugins.server.servlet.HttpServletDispatcher.service(HttpServletDispatcher.java:55)",
>>>> >
>>>> >
>>>> "org.jboss.resteasy.plugins.server.servlet.HttpServletDispatcher.service(HttpServletDispatcher.java:50)",
>>>> >
>>>> "javax.servlet.http.HttpServlet.service(HttpServlet.java:820)",
>>>> >
>>>> >
>>>> "org.mortbay.jetty.servlet.ServletHolder.handle(ServletHolder.java:511)",
>>>> >
>>>> >
>>>> "org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1166)",
>>>> >
>>>> >
>>>> "org.apache.isis.core.webapp.IsisSessionFilter$SessionState$1.handle(IsisSessionFilter.java:315)",
>>>> >
>>>> >
>>>> "org.apache.isis.core.webapp.IsisSessionFilter.doFilter(IsisSessionFilter.java:404)",
>>>> >
>>>> >
>>>> "org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1157)",
>>>> >
>>>> >
>>>> "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.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1157)",
>>>> >
>>>> >
>>>> "org.mortbay.jetty.servlet.ServletHandler.handle(ServletHandler.java:388)",
>>>> >
>>>> >
>>>> "org.mortbay.jetty.security.SecurityHandler.handle(SecurityHandler.java:216)",
>>>> >
>>>> >
>>>> "org.mortbay.jetty.servlet.SessionHandler.handle(SessionHandler.java:182)",
>>>> >
>>>> >
>>>> "org.mortbay.jetty.handler.ContextHandler.handle(ContextHandler.java:765)",
>>>> >
>>>> >
>>>> "org.mortbay.jetty.webapp.WebAppContext.handle(WebAppContext.java:440)",
>>>> >
>>>> >
>>>> "org.mortbay.jetty.handler.ContextHandlerCollection.handle(ContextHandlerCollection.java:230)",
>>>> >
>>>> >
>>>> "org.mortbay.jetty.handler.HandlerCollection.handle(HandlerCollection.java:114)",
>>>> >
>>>> >
>>>> "org.mortbay.jetty.handler.HandlerWrapper.handle(HandlerWrapper.java:152)",
>>>> >         "org.mortbay.jetty.Server.handle(Server.java:326)",
>>>> >
>>>> >
>>>> "org.mortbay.jetty.HttpConnection.handleRequest(HttpConnection.java:542)",
>>>> >
>>>> >
>>>> "org.mortbay.jetty.HttpConnection$RequestHandler.content(HttpConnection.java:943)",
>>>> >         "org.mortbay.jetty.HttpParser.parseNext(HttpParser.java:756)",
>>>> >
>>>> "org.mortbay.jetty.HttpParser.parseAvailable(HttpParser.java:218)",
>>>> >
>>>> "org.mortbay.jetty.HttpConnection.handle(HttpConnection.java:404)",
>>>> >
>>>> >
>>>> "org.mortbay.io.nio.SelectChannelEndPoint.run(SelectChannelEndPoint.java:410)",
>>>> >
>>>> >
>>>> "org.mortbay.thread.QueuedThreadPool$PoolThread.run(QueuedThreadPool.java:582)"
>>>> >     ],
>>>> >     "causedBy": null
>>>> > }
>>>> >
>>>> >>
>>>> >> Thx
>>>> >> Dan
>>>> >>
>>>> >>
>>>> >>
>>>> >> [1]
>>>> >>
>>>> https://github.com/apache/isis/blob/f38fdb92941172eabb12e0943509f239e6d5925f/example/application/quickstart_wicket_restful_jdo/dom/src/main/java/dom/todo/ToDoItem.java#L219
>>>> >> [2]
>>>> >>
>>>> >> http://localhost:8080/restful/objects/TODO/L_11
>>>> >> , {
>>>> >>
>>>> >>    - members:
>>>> >>    {
>>>> >>       - ownedBy:
>>>> >>       {
>>>> >>          - memberType: "property",
>>>> >>          - value: "sven",
>>>> >>          - format: "decimal",
>>>> >>          - x-isis-format: "bigdecimal"
>>>> >>          },
>>>> >>       - dueBy:
>>>> >>       {
>>>> >>          - memberType: "property",
>>>> >>          - value: "2013-07-24",
>>>> >>          - format: "date",
>>>> >>          - x-isis-format: "jodalocaldate"
>>>> >>          },
>>>> >>       - cost:
>>>> >>       {
>>>> >>          - memberType: "property",
>>>> >>          - value: 1.75,
>>>> >>          - format: "decimal",
>>>> >>          - x-isis-format: "bigdecimal"
>>>> >>          },
>>>> >>       - notes:
>>>> >>       {
>>>> >>          - memberType: "property",
>>>> >>          - value: null,
>>>> >>          - format: "decimal",
>>>> >>          - x-isis-format: "bigdecimal"
>>>> >>          },
>>>> >>       - attachment:
>>>> >>       {
>>>> >>          - memberType: "property",
>>>> >>          - value: null,
>>>> >>          - format: "decimal",
>>>> >>          - x-isis-format: "bigdecimal"
>>>> >>          },
>>>> >>       - description:
>>>> >>       {
>>>> >>          - memberType: "property",
>>>> >>          - value: "Buy bread",
>>>> >>          - format: "decimal",
>>>> >>          - x-isis-format: "bigdecimal"
>>>> >>          },
>>>> >>       - category:
>>>> >>       {
>>>> >>          - memberType: "property",
>>>> >>          - value: "Domestic",
>>>> >>          - format: "decimal",
>>>> >>          - x-isis-format: "bigdecimal"
>>>> >>          },
>>>> >>       - complete:
>>>> >>       {
>>>> >>          - memberType: "property",
>>>> >>          - value: false,
>>>> >>          - x-isis-format: "boolean",
>>>> >>          - disabledReason: "Always disabled"
>>>> >>          },
>>>> >>       - versionSequence:
>>>> >>       {
>>>> >>          - memberType: "property",
>>>> >>          - value: 1,
>>>> >>          - format: "int",
>>>> >>          - x-isis-format: "long",
>>>> >>          - disabledReason: "Always disabled"
>>>>
>>>> >>          }
>>>> >>       }
>>>> >>
>>>> >>
>>>> >>
>>>> >> [3] this - which is valid according to the spec, I think - didn't
>>>> work:
>>>> >> {
>>>> >>     "cost" : {
>>>> >>       "value" : 2.75
>>>> >>     },
>>>> >>     "description" : {
>>>> >>       "value" : "An updated description"
>>>> >>     },
>>>> >>     "category" : {
>>>> >>       "value" : "Professional"
>>>> >>     }
>>>> >> }
>>>> >>
>>>> >> [4] nor did this:
>>>> >> {
>>>> >>   "members:" {
>>>> >>     "cost" : {
>>>> >>       "memberType": "property",
>>>> >>       "value" : 2.75
>>>> >>     },
>>>> >>     "description" : {
>>>> >>       "memberType": "property",
>>>> >>       "value" : "An updated description"
>>>> >>     },
>>>> >>     "category" : {
>>>> >>       "memberType": "property",
>>>> >>       "value" : "Professional"
>>>> >>     }
>>>> >>   }
>>>> >> }
>>>> >>
>>>> >>
>>>> >> [5] nor did this:
>>>> >> {
>>>> >>     "cost" : {
>>>> >>       "memberType": "property",
>>>> >>       "value" : 2.75
>>>> >>     },
>>>> >>     "description" : {
>>>> >>       "memberType": "property",
>>>> >>       "value" : "An updated description"
>>>> >>     },
>>>> >>     "category" : {
>>>> >>       "memberType": "property",
>>>> >>       "value" : "Professional"
>>>> >>     }
>>>> >> }
>>>> >>
>>>> >>
>>>> >> [6]
>>>> >>
>>>> >>    1. Status Code: 400
>>>> >>    2. Server: Jetty(6.1.26)
>>>> >>    3. Content-Length: 0
>>>> >>    4. Warning: 199 RestfulObjects Could not find properties list
>>>> (nomembers
>>>>
>>>> >>    [memberType=property]); got
>>>> {"cost":{"memberType":"property","value":
>>>> >>    2.75},"description":{"memberType":"property","value":"An updated
>>>> >>    description"},"category":{"memberType":"property","value":
>>>> >>    "Professional"}}
>>>> >>    5. Content-Type: application/json
>>>>
>>>> >>
>>>> >>
>>>> >>
>>>> >>
>>>> >> On 23 July 2013 18:05, Bhargav Golla <bh...@gmail.com>
>>>> wrote:
>>>> >>
>>>> >>> Hi Dan
>>>> >>>
>>>> >>> I am trying to edit the properties of an object and am following
>>>> 14.2 in
>>>> >>> ROSpec to do the same. I tried to make a PUT request to the URL by
>>>> chagning
>>>> >>> few properties and putting them into JSON. My request is as follows:
>>>> >>> PUT /myapp-webapp/restful/objects/TODO/L_0 HTTP/1.1
>>>> >>> Host: localhost:8080
>>>> >>> Accept: application/json
>>>> >>> Authorization: Basic c3ZlbjpwYXNz
>>>> >>> Cache-Control: no-cache
>>>> >>>
>>>> >>> { "complete": { "value": "true" } }
>>>> >>>
>>>> >>> But it is giving me a 400 error. Do you have any help here?
>>>> >>>
>>>> >>> Regards
>>>> >>>
>>>> >>> Bhargav Golla
>>>> >>> Developer. Freelancer.
>>>> >>> B.E (Hons.) Computer Science
>>>> >>> BITS-Pilani
>>>> >>> Github <http://www.github.com/bhargavgolla> | LinkedIN<
>>>> http://www.linkedin.com/in/bhargavgolla>
>>>> >>>  | Website <http://www.bhargavgolla.com/>
>>>> >>>
>>>> >>
>>>> >>
>>>> >
>>>>
>>>
>>>
>>>
>>> --
>>> Regards
>>>
>>> W.Dimuthu Upeksha
>>> Undergraduate
>>> Department of Computer Science And Engineering
>>>
>>> University of Moratuwa, Sri Lanka
>>>
>>
>>
>

Re: Help with updating properties [14.2 in ROSpec]

Posted by Dan Haywood <da...@haywood-associates.co.uk>.
Hi Bhargav,
OK, committed some fixes this morning, along with tests

Please do a rebuild and let me know how you get on.

Cheers
Dan




On 28 July 2013 20:30, Bhargav Golla <bh...@gmail.com> wrote:

> Hi Dimuthu,
>
> It isn't working too. Tried updating the description also. Not working
> either.
>
> Bhargav Golla
> Developer. Freelancer.
> B.E (Hons.) Computer Science
> BITS-Pilani
> Github <http://www.github.com/bhargavgolla> | LinkedIN<http://www.linkedin.com/in/bhargavgolla>
>  | Website <http://www.bhargavgolla.com/>
>
>
> On Sat, Jul 27, 2013 at 1:39 PM, DImuthu Upeksha <
> dimuthu.upeksha2@gmail.com> wrote:
>
>> Hi Bhargav,
>>
>> In your issue of { "value": "10/22/2013" }, hope you want to pass a
>> date. Try { "value": "20131022" }. ({ "value": "YYYYMMDD" }) It worked
>> for me.
>>
>> Thnx
>> Dimuthu
>>
>>
>>
>> On Fri, Jul 26, 2013 at 10:35 AM, Bhargav Golla <bh...@gmail.com>wrote:
>>
>>> Hi Dan/Maurizio
>>>
>>> Any help with the error I shared?
>>>
>>> Thanks
>>>
>>> Bhargav Golla
>>> Developer. Freelancer.
>>> B.E (Hons.) Computer Science
>>> BITS-Pilani
>>> Github <http://www.github.com/bhargavgolla> |
>>> LinkedIN<http://www.linkedin.com/in/bhargavgolla>
>>>  | Website <http://www.bhargavgolla.com/>
>>>
>>>
>>> On Wed, Jul 24, 2013 at 10:31 PM, Bhargav Golla <bhargav.golla@gmail.com
>>> >wrote:
>>>
>>> >
>>> >
>>> > On Wed, Jul 24, 2013 at 1:14 PM, Dan Haywood <
>>> dan@haywood-associates.co.uk
>>> > > wrote:
>>> >
>>> >> Hi Bhargav,
>>> >> sorry not to get back to you sooner.
>>> >>
>>> >> couple of things:
>>> >> 1. the PUT resource on the object (RO spec 14.2) is for updating ALL
>>> >> properties, not just a single one.
>>> >> 2. the "complete" property is ALWAYS disabled (you can see that from
>>> the
>>> >> code [1], and from the arguments map in the representation[2]
>>> >> 3. notwithstanding, I think there's a bug in the RO viewer.  I tried
>>> >> several different formats for the body [3], [4], [5], but got the same
>>> >> error in each case [6]
>>> >>
>>> >> So, if you want to raise a ticket for this, then either go ahead and
>>> fix
>>> >> it, or wait for me to do so...
>>> >>
>>> > Created an issue [1]. Will try to fix it.
>>> >
>>> >>
>>> >> In the meantime, you could workaround by doing a PUT to each of the
>>> >> individual property resources (per 16.2 of the spec); I believe this
>>> is
>>> >> working fine.
>>> >>
>>> > I am getting a 500 now that says that "does not represent map" when a
>>> make
>>> > a request like [2]. Any help?
>>> >
>>> > Regards
>>> > Bhargav
>>> >
>>> > [1] https://issues.apache.org/jira/browse/ISIS-479
>>> > [2] PUT /myapp-webapp/restful/objects/TODO/L_0/properties/notes
>>> HTTP/1.1
>>> >  Host: localhost:8080
>>> > Accept: application/json
>>> > Authorization: Basic c3ZlbjpwYXNz
>>> > Cache-Control: no-cache
>>> >
>>> > { "value": "10/22/2013" }
>>> >
>>> > Result:
>>> > {
>>> >     "message": "does not represent map",
>>> >     "stackTrace": [
>>> >
>>> >
>>> "org.apache.isis.viewer.restfulobjects.applib.JsonRepresentation.mapHas(JsonRepresentation.java:1126)",
>>> >
>>> >
>>> "org.apache.isis.viewer.restfulobjects.rendering.domainobjects.JsonValueEncoder.asAdapter(JsonValueEncoder.java:359)",
>>> >
>>> >
>>> "org.apache.isis.viewer.restfulobjects.server.resources.DomainResourceHelper.objectAdapterFor(DomainResourceHelper.java:313)",
>>> >
>>> >
>>> "org.apache.isis.viewer.restfulobjects.server.resources.DomainResourceHelper.parseAsMapWithSingleValue(DomainResourceHelper.java:463)",
>>> >
>>> >
>>> "org.apache.isis.viewer.restfulobjects.server.resources.DomainResourceHelper.parseAsMapWithSingleValue(DomainResourceHelper.java:454)",
>>> >
>>> >
>>> "org.apache.isis.viewer.restfulobjects.server.resources.DomainObjectResourceServerside.modifyProperty(DomainObjectResourceServerside.java:197)",
>>> >         "sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)",
>>> >
>>> >
>>> "sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)",
>>> >
>>> >
>>> "sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)",
>>> >         "java.lang.reflect.Method.invoke(Method.java:601)",
>>> >
>>> >
>>> "org.jboss.resteasy.core.MethodInjectorImpl.invoke(MethodInjectorImpl.java:167)",
>>> >
>>> >
>>> "org.jboss.resteasy.core.ResourceMethod.invokeOnTarget(ResourceMethod.java:269)",
>>> >
>>> >
>>> "org.jboss.resteasy.core.ResourceMethod.invoke(ResourceMethod.java:227)",
>>> >
>>> >
>>> "org.jboss.resteasy.core.ResourceMethod.invoke(ResourceMethod.java:216)",
>>> >
>>> >
>>> "org.jboss.resteasy.core.SynchronousDispatcher.getResponse(SynchronousDispatcher.java:542)",
>>> >
>>> >
>>> "org.jboss.resteasy.core.SynchronousDispatcher.invoke(SynchronousDispatcher.java:524)",
>>> >
>>> >
>>> "org.jboss.resteasy.core.SynchronousDispatcher.invoke(SynchronousDispatcher.java:126)",
>>> >
>>> >
>>> "org.jboss.resteasy.plugins.server.servlet.ServletContainerDispatcher.service(ServletContainerDispatcher.java:208)",
>>> >
>>> >
>>> "org.jboss.resteasy.plugins.server.servlet.HttpServletDispatcher.service(HttpServletDispatcher.java:55)",
>>> >
>>> >
>>> "org.jboss.resteasy.plugins.server.servlet.HttpServletDispatcher.service(HttpServletDispatcher.java:50)",
>>> >         "javax.servlet.http.HttpServlet.service(HttpServlet.java:820)",
>>> >
>>> >
>>> "org.mortbay.jetty.servlet.ServletHolder.handle(ServletHolder.java:511)",
>>> >
>>> >
>>> "org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1166)",
>>> >
>>> >
>>> "org.apache.isis.core.webapp.IsisSessionFilter$SessionState$1.handle(IsisSessionFilter.java:315)",
>>> >
>>> >
>>> "org.apache.isis.core.webapp.IsisSessionFilter.doFilter(IsisSessionFilter.java:404)",
>>> >
>>> >
>>> "org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1157)",
>>> >
>>> >
>>> "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.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1157)",
>>> >
>>> >
>>> "org.mortbay.jetty.servlet.ServletHandler.handle(ServletHandler.java:388)",
>>> >
>>> >
>>> "org.mortbay.jetty.security.SecurityHandler.handle(SecurityHandler.java:216)",
>>> >
>>> >
>>> "org.mortbay.jetty.servlet.SessionHandler.handle(SessionHandler.java:182)",
>>> >
>>> >
>>> "org.mortbay.jetty.handler.ContextHandler.handle(ContextHandler.java:765)",
>>> >
>>> >
>>> "org.mortbay.jetty.webapp.WebAppContext.handle(WebAppContext.java:440)",
>>> >
>>> >
>>> "org.mortbay.jetty.handler.ContextHandlerCollection.handle(ContextHandlerCollection.java:230)",
>>> >
>>> >
>>> "org.mortbay.jetty.handler.HandlerCollection.handle(HandlerCollection.java:114)",
>>> >
>>> >
>>> "org.mortbay.jetty.handler.HandlerWrapper.handle(HandlerWrapper.java:152)",
>>> >         "org.mortbay.jetty.Server.handle(Server.java:326)",
>>> >
>>> >
>>> "org.mortbay.jetty.HttpConnection.handleRequest(HttpConnection.java:542)",
>>> >
>>> >
>>> "org.mortbay.jetty.HttpConnection$RequestHandler.content(HttpConnection.java:943)",
>>> >         "org.mortbay.jetty.HttpParser.parseNext(HttpParser.java:756)",
>>> >
>>> "org.mortbay.jetty.HttpParser.parseAvailable(HttpParser.java:218)",
>>> >
>>> "org.mortbay.jetty.HttpConnection.handle(HttpConnection.java:404)",
>>> >
>>> >
>>> "org.mortbay.io.nio.SelectChannelEndPoint.run(SelectChannelEndPoint.java:410)",
>>> >
>>> >
>>> "org.mortbay.thread.QueuedThreadPool$PoolThread.run(QueuedThreadPool.java:582)"
>>> >     ],
>>> >     "causedBy": null
>>> > }
>>> >
>>> >>
>>> >> Thx
>>> >> Dan
>>> >>
>>> >>
>>> >>
>>> >> [1]
>>> >>
>>> https://github.com/apache/isis/blob/f38fdb92941172eabb12e0943509f239e6d5925f/example/application/quickstart_wicket_restful_jdo/dom/src/main/java/dom/todo/ToDoItem.java#L219
>>> >> [2]
>>> >>
>>> >> http://localhost:8080/restful/objects/TODO/L_11
>>> >> , {
>>> >>
>>> >>    - members:
>>> >>    {
>>> >>       - ownedBy:
>>> >>       {
>>> >>          - memberType: "property",
>>> >>          - value: "sven",
>>> >>          - format: "decimal",
>>> >>          - x-isis-format: "bigdecimal"
>>> >>          },
>>> >>       - dueBy:
>>> >>       {
>>> >>          - memberType: "property",
>>> >>          - value: "2013-07-24",
>>> >>          - format: "date",
>>> >>          - x-isis-format: "jodalocaldate"
>>> >>          },
>>> >>       - cost:
>>> >>       {
>>> >>          - memberType: "property",
>>> >>          - value: 1.75,
>>> >>          - format: "decimal",
>>> >>          - x-isis-format: "bigdecimal"
>>> >>          },
>>> >>       - notes:
>>> >>       {
>>> >>          - memberType: "property",
>>> >>          - value: null,
>>> >>          - format: "decimal",
>>> >>          - x-isis-format: "bigdecimal"
>>> >>          },
>>> >>       - attachment:
>>> >>       {
>>> >>          - memberType: "property",
>>> >>          - value: null,
>>> >>          - format: "decimal",
>>> >>          - x-isis-format: "bigdecimal"
>>> >>          },
>>> >>       - description:
>>> >>       {
>>> >>          - memberType: "property",
>>> >>          - value: "Buy bread",
>>> >>          - format: "decimal",
>>> >>          - x-isis-format: "bigdecimal"
>>> >>          },
>>> >>       - category:
>>> >>       {
>>> >>          - memberType: "property",
>>> >>          - value: "Domestic",
>>> >>          - format: "decimal",
>>> >>          - x-isis-format: "bigdecimal"
>>> >>          },
>>> >>       - complete:
>>> >>       {
>>> >>          - memberType: "property",
>>> >>          - value: false,
>>> >>          - x-isis-format: "boolean",
>>> >>          - disabledReason: "Always disabled"
>>> >>          },
>>> >>       - versionSequence:
>>> >>       {
>>> >>          - memberType: "property",
>>> >>          - value: 1,
>>> >>          - format: "int",
>>> >>          - x-isis-format: "long",
>>> >>          - disabledReason: "Always disabled"
>>>
>>> >>          }
>>> >>       }
>>> >>
>>> >>
>>> >>
>>> >> [3] this - which is valid according to the spec, I think - didn't
>>> work:
>>> >> {
>>> >>     "cost" : {
>>> >>       "value" : 2.75
>>> >>     },
>>> >>     "description" : {
>>> >>       "value" : "An updated description"
>>> >>     },
>>> >>     "category" : {
>>> >>       "value" : "Professional"
>>> >>     }
>>> >> }
>>> >>
>>> >> [4] nor did this:
>>> >> {
>>> >>   "members:" {
>>> >>     "cost" : {
>>> >>       "memberType": "property",
>>> >>       "value" : 2.75
>>> >>     },
>>> >>     "description" : {
>>> >>       "memberType": "property",
>>> >>       "value" : "An updated description"
>>> >>     },
>>> >>     "category" : {
>>> >>       "memberType": "property",
>>> >>       "value" : "Professional"
>>> >>     }
>>> >>   }
>>> >> }
>>> >>
>>> >>
>>> >> [5] nor did this:
>>> >> {
>>> >>     "cost" : {
>>> >>       "memberType": "property",
>>> >>       "value" : 2.75
>>> >>     },
>>> >>     "description" : {
>>> >>       "memberType": "property",
>>> >>       "value" : "An updated description"
>>> >>     },
>>> >>     "category" : {
>>> >>       "memberType": "property",
>>> >>       "value" : "Professional"
>>> >>     }
>>> >> }
>>> >>
>>> >>
>>> >> [6]
>>> >>
>>> >>    1. Status Code: 400
>>> >>    2. Server: Jetty(6.1.26)
>>> >>    3. Content-Length: 0
>>> >>    4. Warning: 199 RestfulObjects Could not find properties list
>>> (nomembers
>>>
>>> >>    [memberType=property]); got
>>> {"cost":{"memberType":"property","value":
>>> >>    2.75},"description":{"memberType":"property","value":"An updated
>>> >>    description"},"category":{"memberType":"property","value":
>>> >>    "Professional"}}
>>> >>    5. Content-Type: application/json
>>>
>>> >>
>>> >>
>>> >>
>>> >>
>>> >> On 23 July 2013 18:05, Bhargav Golla <bh...@gmail.com> wrote:
>>> >>
>>> >>> Hi Dan
>>> >>>
>>> >>> I am trying to edit the properties of an object and am following
>>> 14.2 in
>>> >>> ROSpec to do the same. I tried to make a PUT request to the URL by
>>> chagning
>>> >>> few properties and putting them into JSON. My request is as follows:
>>> >>> PUT /myapp-webapp/restful/objects/TODO/L_0 HTTP/1.1
>>> >>> Host: localhost:8080
>>> >>> Accept: application/json
>>> >>> Authorization: Basic c3ZlbjpwYXNz
>>> >>> Cache-Control: no-cache
>>> >>>
>>> >>> { "complete": { "value": "true" } }
>>> >>>
>>> >>> But it is giving me a 400 error. Do you have any help here?
>>> >>>
>>> >>> Regards
>>> >>>
>>> >>> Bhargav Golla
>>> >>> Developer. Freelancer.
>>> >>> B.E (Hons.) Computer Science
>>> >>> BITS-Pilani
>>> >>> Github <http://www.github.com/bhargavgolla> | LinkedIN<
>>> http://www.linkedin.com/in/bhargavgolla>
>>> >>>  | Website <http://www.bhargavgolla.com/>
>>> >>>
>>> >>
>>> >>
>>> >
>>>
>>
>>
>>
>> --
>> Regards
>>
>> W.Dimuthu Upeksha
>> Undergraduate
>> Department of Computer Science And Engineering
>>
>> University of Moratuwa, Sri Lanka
>>
>
>

Re: Help with updating properties [14.2 in ROSpec]

Posted by Bhargav Golla <bh...@gmail.com>.
Hi Dimuthu,

It isn't working too. Tried updating the description also. Not working
either.

Bhargav Golla
Developer. Freelancer.
B.E (Hons.) Computer Science
BITS-Pilani
Github <http://www.github.com/bhargavgolla> |
LinkedIN<http://www.linkedin.com/in/bhargavgolla>
 | Website <http://www.bhargavgolla.com/>


On Sat, Jul 27, 2013 at 1:39 PM, DImuthu Upeksha <dimuthu.upeksha2@gmail.com
> wrote:

> Hi Bhargav,
>
> In your issue of { "value": "10/22/2013" }, hope you want to pass a date.
> Try { "value": "20131022" }. ({ "value": "YYYYMMDD" }) It worked for me.
>
> Thnx
> Dimuthu
>
>
>
> On Fri, Jul 26, 2013 at 10:35 AM, Bhargav Golla <bh...@gmail.com>wrote:
>
>> Hi Dan/Maurizio
>>
>> Any help with the error I shared?
>>
>> Thanks
>>
>> Bhargav Golla
>> Developer. Freelancer.
>> B.E (Hons.) Computer Science
>> BITS-Pilani
>> Github <http://www.github.com/bhargavgolla> |
>> LinkedIN<http://www.linkedin.com/in/bhargavgolla>
>>  | Website <http://www.bhargavgolla.com/>
>>
>>
>> On Wed, Jul 24, 2013 at 10:31 PM, Bhargav Golla <bhargav.golla@gmail.com
>> >wrote:
>>
>> >
>> >
>> > On Wed, Jul 24, 2013 at 1:14 PM, Dan Haywood <
>> dan@haywood-associates.co.uk
>> > > wrote:
>> >
>> >> Hi Bhargav,
>> >> sorry not to get back to you sooner.
>> >>
>> >> couple of things:
>> >> 1. the PUT resource on the object (RO spec 14.2) is for updating ALL
>> >> properties, not just a single one.
>> >> 2. the "complete" property is ALWAYS disabled (you can see that from
>> the
>> >> code [1], and from the arguments map in the representation[2]
>> >> 3. notwithstanding, I think there's a bug in the RO viewer.  I tried
>> >> several different formats for the body [3], [4], [5], but got the same
>> >> error in each case [6]
>> >>
>> >> So, if you want to raise a ticket for this, then either go ahead and
>> fix
>> >> it, or wait for me to do so...
>> >>
>> > Created an issue [1]. Will try to fix it.
>> >
>> >>
>> >> In the meantime, you could workaround by doing a PUT to each of the
>> >> individual property resources (per 16.2 of the spec); I believe this is
>> >> working fine.
>> >>
>> > I am getting a 500 now that says that "does not represent map" when a
>> make
>> > a request like [2]. Any help?
>> >
>> > Regards
>> > Bhargav
>> >
>> > [1] https://issues.apache.org/jira/browse/ISIS-479
>> > [2] PUT /myapp-webapp/restful/objects/TODO/L_0/properties/notes HTTP/1.1
>> >  Host: localhost:8080
>> > Accept: application/json
>> > Authorization: Basic c3ZlbjpwYXNz
>> > Cache-Control: no-cache
>> >
>> > { "value": "10/22/2013" }
>> >
>> > Result:
>> > {
>> >     "message": "does not represent map",
>> >     "stackTrace": [
>> >
>> >
>> "org.apache.isis.viewer.restfulobjects.applib.JsonRepresentation.mapHas(JsonRepresentation.java:1126)",
>> >
>> >
>> "org.apache.isis.viewer.restfulobjects.rendering.domainobjects.JsonValueEncoder.asAdapter(JsonValueEncoder.java:359)",
>> >
>> >
>> "org.apache.isis.viewer.restfulobjects.server.resources.DomainResourceHelper.objectAdapterFor(DomainResourceHelper.java:313)",
>> >
>> >
>> "org.apache.isis.viewer.restfulobjects.server.resources.DomainResourceHelper.parseAsMapWithSingleValue(DomainResourceHelper.java:463)",
>> >
>> >
>> "org.apache.isis.viewer.restfulobjects.server.resources.DomainResourceHelper.parseAsMapWithSingleValue(DomainResourceHelper.java:454)",
>> >
>> >
>> "org.apache.isis.viewer.restfulobjects.server.resources.DomainObjectResourceServerside.modifyProperty(DomainObjectResourceServerside.java:197)",
>> >         "sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)",
>> >
>> >
>> "sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)",
>> >
>> >
>> "sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)",
>> >         "java.lang.reflect.Method.invoke(Method.java:601)",
>> >
>> >
>> "org.jboss.resteasy.core.MethodInjectorImpl.invoke(MethodInjectorImpl.java:167)",
>> >
>> >
>> "org.jboss.resteasy.core.ResourceMethod.invokeOnTarget(ResourceMethod.java:269)",
>> >
>> >
>> "org.jboss.resteasy.core.ResourceMethod.invoke(ResourceMethod.java:227)",
>> >
>> >
>> "org.jboss.resteasy.core.ResourceMethod.invoke(ResourceMethod.java:216)",
>> >
>> >
>> "org.jboss.resteasy.core.SynchronousDispatcher.getResponse(SynchronousDispatcher.java:542)",
>> >
>> >
>> "org.jboss.resteasy.core.SynchronousDispatcher.invoke(SynchronousDispatcher.java:524)",
>> >
>> >
>> "org.jboss.resteasy.core.SynchronousDispatcher.invoke(SynchronousDispatcher.java:126)",
>> >
>> >
>> "org.jboss.resteasy.plugins.server.servlet.ServletContainerDispatcher.service(ServletContainerDispatcher.java:208)",
>> >
>> >
>> "org.jboss.resteasy.plugins.server.servlet.HttpServletDispatcher.service(HttpServletDispatcher.java:55)",
>> >
>> >
>> "org.jboss.resteasy.plugins.server.servlet.HttpServletDispatcher.service(HttpServletDispatcher.java:50)",
>> >         "javax.servlet.http.HttpServlet.service(HttpServlet.java:820)",
>> >
>> >
>> "org.mortbay.jetty.servlet.ServletHolder.handle(ServletHolder.java:511)",
>> >
>> >
>> "org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1166)",
>> >
>> >
>> "org.apache.isis.core.webapp.IsisSessionFilter$SessionState$1.handle(IsisSessionFilter.java:315)",
>> >
>> >
>> "org.apache.isis.core.webapp.IsisSessionFilter.doFilter(IsisSessionFilter.java:404)",
>> >
>> >
>> "org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1157)",
>> >
>> >
>> "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.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1157)",
>> >
>> >
>> "org.mortbay.jetty.servlet.ServletHandler.handle(ServletHandler.java:388)",
>> >
>> >
>> "org.mortbay.jetty.security.SecurityHandler.handle(SecurityHandler.java:216)",
>> >
>> >
>> "org.mortbay.jetty.servlet.SessionHandler.handle(SessionHandler.java:182)",
>> >
>> >
>> "org.mortbay.jetty.handler.ContextHandler.handle(ContextHandler.java:765)",
>> >
>> > "org.mortbay.jetty.webapp.WebAppContext.handle(WebAppContext.java:440)",
>> >
>> >
>> "org.mortbay.jetty.handler.ContextHandlerCollection.handle(ContextHandlerCollection.java:230)",
>> >
>> >
>> "org.mortbay.jetty.handler.HandlerCollection.handle(HandlerCollection.java:114)",
>> >
>> >
>> "org.mortbay.jetty.handler.HandlerWrapper.handle(HandlerWrapper.java:152)",
>> >         "org.mortbay.jetty.Server.handle(Server.java:326)",
>> >
>> >
>> "org.mortbay.jetty.HttpConnection.handleRequest(HttpConnection.java:542)",
>> >
>> >
>> "org.mortbay.jetty.HttpConnection$RequestHandler.content(HttpConnection.java:943)",
>> >         "org.mortbay.jetty.HttpParser.parseNext(HttpParser.java:756)",
>> >
>> "org.mortbay.jetty.HttpParser.parseAvailable(HttpParser.java:218)",
>> >
>> "org.mortbay.jetty.HttpConnection.handle(HttpConnection.java:404)",
>> >
>> >
>> "org.mortbay.io.nio.SelectChannelEndPoint.run(SelectChannelEndPoint.java:410)",
>> >
>> >
>> "org.mortbay.thread.QueuedThreadPool$PoolThread.run(QueuedThreadPool.java:582)"
>> >     ],
>> >     "causedBy": null
>> > }
>> >
>> >>
>> >> Thx
>> >> Dan
>> >>
>> >>
>> >>
>> >> [1]
>> >>
>> https://github.com/apache/isis/blob/f38fdb92941172eabb12e0943509f239e6d5925f/example/application/quickstart_wicket_restful_jdo/dom/src/main/java/dom/todo/ToDoItem.java#L219
>> >> [2]
>> >>
>> >> http://localhost:8080/restful/objects/TODO/L_11
>> >> , {
>> >>
>> >>    - members:
>> >>    {
>> >>       - ownedBy:
>> >>       {
>> >>          - memberType: "property",
>> >>          - value: "sven",
>> >>          - format: "decimal",
>> >>          - x-isis-format: "bigdecimal"
>> >>          },
>> >>       - dueBy:
>> >>       {
>> >>          - memberType: "property",
>> >>          - value: "2013-07-24",
>> >>          - format: "date",
>> >>          - x-isis-format: "jodalocaldate"
>> >>          },
>> >>       - cost:
>> >>       {
>> >>          - memberType: "property",
>> >>          - value: 1.75,
>> >>          - format: "decimal",
>> >>          - x-isis-format: "bigdecimal"
>> >>          },
>> >>       - notes:
>> >>       {
>> >>          - memberType: "property",
>> >>          - value: null,
>> >>          - format: "decimal",
>> >>          - x-isis-format: "bigdecimal"
>> >>          },
>> >>       - attachment:
>> >>       {
>> >>          - memberType: "property",
>> >>          - value: null,
>> >>          - format: "decimal",
>> >>          - x-isis-format: "bigdecimal"
>> >>          },
>> >>       - description:
>> >>       {
>> >>          - memberType: "property",
>> >>          - value: "Buy bread",
>> >>          - format: "decimal",
>> >>          - x-isis-format: "bigdecimal"
>> >>          },
>> >>       - category:
>> >>       {
>> >>          - memberType: "property",
>> >>          - value: "Domestic",
>> >>          - format: "decimal",
>> >>          - x-isis-format: "bigdecimal"
>> >>          },
>> >>       - complete:
>> >>       {
>> >>          - memberType: "property",
>> >>          - value: false,
>> >>          - x-isis-format: "boolean",
>> >>          - disabledReason: "Always disabled"
>> >>          },
>> >>       - versionSequence:
>> >>       {
>> >>          - memberType: "property",
>> >>          - value: 1,
>> >>          - format: "int",
>> >>          - x-isis-format: "long",
>> >>          - disabledReason: "Always disabled"
>>
>> >>          }
>> >>       }
>> >>
>> >>
>> >>
>> >> [3] this - which is valid according to the spec, I think - didn't work:
>> >> {
>> >>     "cost" : {
>> >>       "value" : 2.75
>> >>     },
>> >>     "description" : {
>> >>       "value" : "An updated description"
>> >>     },
>> >>     "category" : {
>> >>       "value" : "Professional"
>> >>     }
>> >> }
>> >>
>> >> [4] nor did this:
>> >> {
>> >>   "members:" {
>> >>     "cost" : {
>> >>       "memberType": "property",
>> >>       "value" : 2.75
>> >>     },
>> >>     "description" : {
>> >>       "memberType": "property",
>> >>       "value" : "An updated description"
>> >>     },
>> >>     "category" : {
>> >>       "memberType": "property",
>> >>       "value" : "Professional"
>> >>     }
>> >>   }
>> >> }
>> >>
>> >>
>> >> [5] nor did this:
>> >> {
>> >>     "cost" : {
>> >>       "memberType": "property",
>> >>       "value" : 2.75
>> >>     },
>> >>     "description" : {
>> >>       "memberType": "property",
>> >>       "value" : "An updated description"
>> >>     },
>> >>     "category" : {
>> >>       "memberType": "property",
>> >>       "value" : "Professional"
>> >>     }
>> >> }
>> >>
>> >>
>> >> [6]
>> >>
>> >>    1. Status Code: 400
>> >>    2. Server: Jetty(6.1.26)
>> >>    3. Content-Length: 0
>> >>    4. Warning: 199 RestfulObjects Could not find properties list
>> (nomembers
>>
>> >>    [memberType=property]); got
>> {"cost":{"memberType":"property","value":
>> >>    2.75},"description":{"memberType":"property","value":"An updated
>> >>    description"},"category":{"memberType":"property","value":
>> >>    "Professional"}}
>> >>    5. Content-Type: application/json
>>
>> >>
>> >>
>> >>
>> >>
>> >> On 23 July 2013 18:05, Bhargav Golla <bh...@gmail.com> wrote:
>> >>
>> >>> Hi Dan
>> >>>
>> >>> I am trying to edit the properties of an object and am following 14.2
>> in
>> >>> ROSpec to do the same. I tried to make a PUT request to the URL by
>> chagning
>> >>> few properties and putting them into JSON. My request is as follows:
>> >>> PUT /myapp-webapp/restful/objects/TODO/L_0 HTTP/1.1
>> >>> Host: localhost:8080
>> >>> Accept: application/json
>> >>> Authorization: Basic c3ZlbjpwYXNz
>> >>> Cache-Control: no-cache
>> >>>
>> >>> { "complete": { "value": "true" } }
>> >>>
>> >>> But it is giving me a 400 error. Do you have any help here?
>> >>>
>> >>> Regards
>> >>>
>> >>> Bhargav Golla
>> >>> Developer. Freelancer.
>> >>> B.E (Hons.) Computer Science
>> >>> BITS-Pilani
>> >>> Github <http://www.github.com/bhargavgolla> | LinkedIN<
>> http://www.linkedin.com/in/bhargavgolla>
>> >>>  | Website <http://www.bhargavgolla.com/>
>> >>>
>> >>
>> >>
>> >
>>
>
>
>
> --
> Regards
>
> W.Dimuthu Upeksha
> Undergraduate
> Department of Computer Science And Engineering
>
> University of Moratuwa, Sri Lanka
>

Re: Help with updating properties [14.2 in ROSpec]

Posted by DImuthu Upeksha <di...@gmail.com>.
Hi Bhargav,

In your issue of { "value": "10/22/2013" }, hope you want to pass a date.
Try { "value": "20131022" }. ({ "value": "YYYYMMDD" }) It worked for me.

Thnx
Dimuthu



On Fri, Jul 26, 2013 at 10:35 AM, Bhargav Golla <bh...@gmail.com>wrote:

> Hi Dan/Maurizio
>
> Any help with the error I shared?
>
> Thanks
>
> Bhargav Golla
> Developer. Freelancer.
> B.E (Hons.) Computer Science
> BITS-Pilani
> Github <http://www.github.com/bhargavgolla> |
> LinkedIN<http://www.linkedin.com/in/bhargavgolla>
>  | Website <http://www.bhargavgolla.com/>
>
>
> On Wed, Jul 24, 2013 at 10:31 PM, Bhargav Golla <bhargav.golla@gmail.com
> >wrote:
>
> >
> >
> > On Wed, Jul 24, 2013 at 1:14 PM, Dan Haywood <
> dan@haywood-associates.co.uk
> > > wrote:
> >
> >> Hi Bhargav,
> >> sorry not to get back to you sooner.
> >>
> >> couple of things:
> >> 1. the PUT resource on the object (RO spec 14.2) is for updating ALL
> >> properties, not just a single one.
> >> 2. the "complete" property is ALWAYS disabled (you can see that from the
> >> code [1], and from the arguments map in the representation[2]
> >> 3. notwithstanding, I think there's a bug in the RO viewer.  I tried
> >> several different formats for the body [3], [4], [5], but got the same
> >> error in each case [6]
> >>
> >> So, if you want to raise a ticket for this, then either go ahead and fix
> >> it, or wait for me to do so...
> >>
> > Created an issue [1]. Will try to fix it.
> >
> >>
> >> In the meantime, you could workaround by doing a PUT to each of the
> >> individual property resources (per 16.2 of the spec); I believe this is
> >> working fine.
> >>
> > I am getting a 500 now that says that "does not represent map" when a
> make
> > a request like [2]. Any help?
> >
> > Regards
> > Bhargav
> >
> > [1] https://issues.apache.org/jira/browse/ISIS-479
> > [2] PUT /myapp-webapp/restful/objects/TODO/L_0/properties/notes HTTP/1.1
> >  Host: localhost:8080
> > Accept: application/json
> > Authorization: Basic c3ZlbjpwYXNz
> > Cache-Control: no-cache
> >
> > { "value": "10/22/2013" }
> >
> > Result:
> > {
> >     "message": "does not represent map",
> >     "stackTrace": [
> >
> >
> "org.apache.isis.viewer.restfulobjects.applib.JsonRepresentation.mapHas(JsonRepresentation.java:1126)",
> >
> >
> "org.apache.isis.viewer.restfulobjects.rendering.domainobjects.JsonValueEncoder.asAdapter(JsonValueEncoder.java:359)",
> >
> >
> "org.apache.isis.viewer.restfulobjects.server.resources.DomainResourceHelper.objectAdapterFor(DomainResourceHelper.java:313)",
> >
> >
> "org.apache.isis.viewer.restfulobjects.server.resources.DomainResourceHelper.parseAsMapWithSingleValue(DomainResourceHelper.java:463)",
> >
> >
> "org.apache.isis.viewer.restfulobjects.server.resources.DomainResourceHelper.parseAsMapWithSingleValue(DomainResourceHelper.java:454)",
> >
> >
> "org.apache.isis.viewer.restfulobjects.server.resources.DomainObjectResourceServerside.modifyProperty(DomainObjectResourceServerside.java:197)",
> >         "sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)",
> >
> >
> "sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)",
> >
> >
> "sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)",
> >         "java.lang.reflect.Method.invoke(Method.java:601)",
> >
> >
> "org.jboss.resteasy.core.MethodInjectorImpl.invoke(MethodInjectorImpl.java:167)",
> >
> >
> "org.jboss.resteasy.core.ResourceMethod.invokeOnTarget(ResourceMethod.java:269)",
> >
> > "org.jboss.resteasy.core.ResourceMethod.invoke(ResourceMethod.java:227)",
> >
> > "org.jboss.resteasy.core.ResourceMethod.invoke(ResourceMethod.java:216)",
> >
> >
> "org.jboss.resteasy.core.SynchronousDispatcher.getResponse(SynchronousDispatcher.java:542)",
> >
> >
> "org.jboss.resteasy.core.SynchronousDispatcher.invoke(SynchronousDispatcher.java:524)",
> >
> >
> "org.jboss.resteasy.core.SynchronousDispatcher.invoke(SynchronousDispatcher.java:126)",
> >
> >
> "org.jboss.resteasy.plugins.server.servlet.ServletContainerDispatcher.service(ServletContainerDispatcher.java:208)",
> >
> >
> "org.jboss.resteasy.plugins.server.servlet.HttpServletDispatcher.service(HttpServletDispatcher.java:55)",
> >
> >
> "org.jboss.resteasy.plugins.server.servlet.HttpServletDispatcher.service(HttpServletDispatcher.java:50)",
> >         "javax.servlet.http.HttpServlet.service(HttpServlet.java:820)",
> >
> > "org.mortbay.jetty.servlet.ServletHolder.handle(ServletHolder.java:511)",
> >
> >
> "org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1166)",
> >
> >
> "org.apache.isis.core.webapp.IsisSessionFilter$SessionState$1.handle(IsisSessionFilter.java:315)",
> >
> >
> "org.apache.isis.core.webapp.IsisSessionFilter.doFilter(IsisSessionFilter.java:404)",
> >
> >
> "org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1157)",
> >
> >
> "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.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1157)",
> >
> >
> "org.mortbay.jetty.servlet.ServletHandler.handle(ServletHandler.java:388)",
> >
> >
> "org.mortbay.jetty.security.SecurityHandler.handle(SecurityHandler.java:216)",
> >
> >
> "org.mortbay.jetty.servlet.SessionHandler.handle(SessionHandler.java:182)",
> >
> >
> "org.mortbay.jetty.handler.ContextHandler.handle(ContextHandler.java:765)",
> >
> > "org.mortbay.jetty.webapp.WebAppContext.handle(WebAppContext.java:440)",
> >
> >
> "org.mortbay.jetty.handler.ContextHandlerCollection.handle(ContextHandlerCollection.java:230)",
> >
> >
> "org.mortbay.jetty.handler.HandlerCollection.handle(HandlerCollection.java:114)",
> >
> >
> "org.mortbay.jetty.handler.HandlerWrapper.handle(HandlerWrapper.java:152)",
> >         "org.mortbay.jetty.Server.handle(Server.java:326)",
> >
> >
> "org.mortbay.jetty.HttpConnection.handleRequest(HttpConnection.java:542)",
> >
> >
> "org.mortbay.jetty.HttpConnection$RequestHandler.content(HttpConnection.java:943)",
> >         "org.mortbay.jetty.HttpParser.parseNext(HttpParser.java:756)",
> >
> "org.mortbay.jetty.HttpParser.parseAvailable(HttpParser.java:218)",
> >
> "org.mortbay.jetty.HttpConnection.handle(HttpConnection.java:404)",
> >
> >
> "org.mortbay.io.nio.SelectChannelEndPoint.run(SelectChannelEndPoint.java:410)",
> >
> >
> "org.mortbay.thread.QueuedThreadPool$PoolThread.run(QueuedThreadPool.java:582)"
> >     ],
> >     "causedBy": null
> > }
> >
> >>
> >> Thx
> >> Dan
> >>
> >>
> >>
> >> [1]
> >>
> https://github.com/apache/isis/blob/f38fdb92941172eabb12e0943509f239e6d5925f/example/application/quickstart_wicket_restful_jdo/dom/src/main/java/dom/todo/ToDoItem.java#L219
> >> [2]
> >>
> >> http://localhost:8080/restful/objects/TODO/L_11
> >> , {
> >>
> >>    - members:
> >>    {
> >>       - ownedBy:
> >>       {
> >>          - memberType: "property",
> >>          - value: "sven",
> >>          - format: "decimal",
> >>          - x-isis-format: "bigdecimal"
> >>          },
> >>       - dueBy:
> >>       {
> >>          - memberType: "property",
> >>          - value: "2013-07-24",
> >>          - format: "date",
> >>          - x-isis-format: "jodalocaldate"
> >>          },
> >>       - cost:
> >>       {
> >>          - memberType: "property",
> >>          - value: 1.75,
> >>          - format: "decimal",
> >>          - x-isis-format: "bigdecimal"
> >>          },
> >>       - notes:
> >>       {
> >>          - memberType: "property",
> >>          - value: null,
> >>          - format: "decimal",
> >>          - x-isis-format: "bigdecimal"
> >>          },
> >>       - attachment:
> >>       {
> >>          - memberType: "property",
> >>          - value: null,
> >>          - format: "decimal",
> >>          - x-isis-format: "bigdecimal"
> >>          },
> >>       - description:
> >>       {
> >>          - memberType: "property",
> >>          - value: "Buy bread",
> >>          - format: "decimal",
> >>          - x-isis-format: "bigdecimal"
> >>          },
> >>       - category:
> >>       {
> >>          - memberType: "property",
> >>          - value: "Domestic",
> >>          - format: "decimal",
> >>          - x-isis-format: "bigdecimal"
> >>          },
> >>       - complete:
> >>       {
> >>          - memberType: "property",
> >>          - value: false,
> >>          - x-isis-format: "boolean",
> >>          - disabledReason: "Always disabled"
> >>          },
> >>       - versionSequence:
> >>       {
> >>          - memberType: "property",
> >>          - value: 1,
> >>          - format: "int",
> >>          - x-isis-format: "long",
> >>          - disabledReason: "Always disabled"
> >>          }
> >>       }
> >>
> >>
> >>
> >> [3] this - which is valid according to the spec, I think - didn't work:
> >> {
> >>     "cost" : {
> >>       "value" : 2.75
> >>     },
> >>     "description" : {
> >>       "value" : "An updated description"
> >>     },
> >>     "category" : {
> >>       "value" : "Professional"
> >>     }
> >> }
> >>
> >> [4] nor did this:
> >> {
> >>   "members:" {
> >>     "cost" : {
> >>       "memberType": "property",
> >>       "value" : 2.75
> >>     },
> >>     "description" : {
> >>       "memberType": "property",
> >>       "value" : "An updated description"
> >>     },
> >>     "category" : {
> >>       "memberType": "property",
> >>       "value" : "Professional"
> >>     }
> >>   }
> >> }
> >>
> >>
> >> [5] nor did this:
> >> {
> >>     "cost" : {
> >>       "memberType": "property",
> >>       "value" : 2.75
> >>     },
> >>     "description" : {
> >>       "memberType": "property",
> >>       "value" : "An updated description"
> >>     },
> >>     "category" : {
> >>       "memberType": "property",
> >>       "value" : "Professional"
> >>     }
> >> }
> >>
> >>
> >> [6]
> >>
> >>    1. Status Code: 400
> >>    2. Server: Jetty(6.1.26)
> >>    3. Content-Length: 0
> >>    4. Warning: 199 RestfulObjects Could not find properties list
> (nomembers
> >>    [memberType=property]); got {"cost":{"memberType":"property","value":
> >>    2.75},"description":{"memberType":"property","value":"An updated
> >>    description"},"category":{"memberType":"property","value":
> >>    "Professional"}}
> >>    5. Content-Type: application/json
> >>
> >>
> >>
> >>
> >> On 23 July 2013 18:05, Bhargav Golla <bh...@gmail.com> wrote:
> >>
> >>> Hi Dan
> >>>
> >>> I am trying to edit the properties of an object and am following 14.2
> in
> >>> ROSpec to do the same. I tried to make a PUT request to the URL by
> chagning
> >>> few properties and putting them into JSON. My request is as follows:
> >>> PUT /myapp-webapp/restful/objects/TODO/L_0 HTTP/1.1
> >>> Host: localhost:8080
> >>> Accept: application/json
> >>> Authorization: Basic c3ZlbjpwYXNz
> >>> Cache-Control: no-cache
> >>>
> >>> { "complete": { "value": "true" } }
> >>>
> >>> But it is giving me a 400 error. Do you have any help here?
> >>>
> >>> Regards
> >>>
> >>> Bhargav Golla
> >>> Developer. Freelancer.
> >>> B.E (Hons.) Computer Science
> >>> BITS-Pilani
> >>> Github <http://www.github.com/bhargavgolla> | LinkedIN<
> http://www.linkedin.com/in/bhargavgolla>
> >>>  | Website <http://www.bhargavgolla.com/>
> >>>
> >>
> >>
> >
>



-- 
Regards

W.Dimuthu Upeksha
Undergraduate
Department of Computer Science And Engineering

University of Moratuwa, Sri Lanka

Re: Help with updating properties [14.2 in ROSpec]

Posted by Bhargav Golla <bh...@gmail.com>.
Hi Dan/Maurizio

Any help with the error I shared?

Thanks

Bhargav Golla
Developer. Freelancer.
B.E (Hons.) Computer Science
BITS-Pilani
Github <http://www.github.com/bhargavgolla> |
LinkedIN<http://www.linkedin.com/in/bhargavgolla>
 | Website <http://www.bhargavgolla.com/>


On Wed, Jul 24, 2013 at 10:31 PM, Bhargav Golla <bh...@gmail.com>wrote:

>
>
> On Wed, Jul 24, 2013 at 1:14 PM, Dan Haywood <dan@haywood-associates.co.uk
> > wrote:
>
>> Hi Bhargav,
>> sorry not to get back to you sooner.
>>
>> couple of things:
>> 1. the PUT resource on the object (RO spec 14.2) is for updating ALL
>> properties, not just a single one.
>> 2. the "complete" property is ALWAYS disabled (you can see that from the
>> code [1], and from the arguments map in the representation[2]
>> 3. notwithstanding, I think there's a bug in the RO viewer.  I tried
>> several different formats for the body [3], [4], [5], but got the same
>> error in each case [6]
>>
>> So, if you want to raise a ticket for this, then either go ahead and fix
>> it, or wait for me to do so...
>>
> Created an issue [1]. Will try to fix it.
>
>>
>> In the meantime, you could workaround by doing a PUT to each of the
>> individual property resources (per 16.2 of the spec); I believe this is
>> working fine.
>>
> I am getting a 500 now that says that "does not represent map" when a make
> a request like [2]. Any help?
>
> Regards
> Bhargav
>
> [1] https://issues.apache.org/jira/browse/ISIS-479
> [2] PUT /myapp-webapp/restful/objects/TODO/L_0/properties/notes HTTP/1.1
>  Host: localhost:8080
> Accept: application/json
> Authorization: Basic c3ZlbjpwYXNz
> Cache-Control: no-cache
>
> { "value": "10/22/2013" }
>
> Result:
> {
>     "message": "does not represent map",
>     "stackTrace": [
>
> "org.apache.isis.viewer.restfulobjects.applib.JsonRepresentation.mapHas(JsonRepresentation.java:1126)",
>
> "org.apache.isis.viewer.restfulobjects.rendering.domainobjects.JsonValueEncoder.asAdapter(JsonValueEncoder.java:359)",
>
> "org.apache.isis.viewer.restfulobjects.server.resources.DomainResourceHelper.objectAdapterFor(DomainResourceHelper.java:313)",
>
> "org.apache.isis.viewer.restfulobjects.server.resources.DomainResourceHelper.parseAsMapWithSingleValue(DomainResourceHelper.java:463)",
>
> "org.apache.isis.viewer.restfulobjects.server.resources.DomainResourceHelper.parseAsMapWithSingleValue(DomainResourceHelper.java:454)",
>
> "org.apache.isis.viewer.restfulobjects.server.resources.DomainObjectResourceServerside.modifyProperty(DomainObjectResourceServerside.java:197)",
>         "sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)",
>
> "sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)",
>
> "sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)",
>         "java.lang.reflect.Method.invoke(Method.java:601)",
>
> "org.jboss.resteasy.core.MethodInjectorImpl.invoke(MethodInjectorImpl.java:167)",
>
> "org.jboss.resteasy.core.ResourceMethod.invokeOnTarget(ResourceMethod.java:269)",
>
> "org.jboss.resteasy.core.ResourceMethod.invoke(ResourceMethod.java:227)",
>
> "org.jboss.resteasy.core.ResourceMethod.invoke(ResourceMethod.java:216)",
>
> "org.jboss.resteasy.core.SynchronousDispatcher.getResponse(SynchronousDispatcher.java:542)",
>
> "org.jboss.resteasy.core.SynchronousDispatcher.invoke(SynchronousDispatcher.java:524)",
>
> "org.jboss.resteasy.core.SynchronousDispatcher.invoke(SynchronousDispatcher.java:126)",
>
> "org.jboss.resteasy.plugins.server.servlet.ServletContainerDispatcher.service(ServletContainerDispatcher.java:208)",
>
> "org.jboss.resteasy.plugins.server.servlet.HttpServletDispatcher.service(HttpServletDispatcher.java:55)",
>
> "org.jboss.resteasy.plugins.server.servlet.HttpServletDispatcher.service(HttpServletDispatcher.java:50)",
>         "javax.servlet.http.HttpServlet.service(HttpServlet.java:820)",
>
> "org.mortbay.jetty.servlet.ServletHolder.handle(ServletHolder.java:511)",
>
> "org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1166)",
>
> "org.apache.isis.core.webapp.IsisSessionFilter$SessionState$1.handle(IsisSessionFilter.java:315)",
>
> "org.apache.isis.core.webapp.IsisSessionFilter.doFilter(IsisSessionFilter.java:404)",
>
> "org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1157)",
>
> "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.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1157)",
>
> "org.mortbay.jetty.servlet.ServletHandler.handle(ServletHandler.java:388)",
>
> "org.mortbay.jetty.security.SecurityHandler.handle(SecurityHandler.java:216)",
>
> "org.mortbay.jetty.servlet.SessionHandler.handle(SessionHandler.java:182)",
>
> "org.mortbay.jetty.handler.ContextHandler.handle(ContextHandler.java:765)",
>
> "org.mortbay.jetty.webapp.WebAppContext.handle(WebAppContext.java:440)",
>
> "org.mortbay.jetty.handler.ContextHandlerCollection.handle(ContextHandlerCollection.java:230)",
>
> "org.mortbay.jetty.handler.HandlerCollection.handle(HandlerCollection.java:114)",
>
> "org.mortbay.jetty.handler.HandlerWrapper.handle(HandlerWrapper.java:152)",
>         "org.mortbay.jetty.Server.handle(Server.java:326)",
>
> "org.mortbay.jetty.HttpConnection.handleRequest(HttpConnection.java:542)",
>
> "org.mortbay.jetty.HttpConnection$RequestHandler.content(HttpConnection.java:943)",
>         "org.mortbay.jetty.HttpParser.parseNext(HttpParser.java:756)",
>         "org.mortbay.jetty.HttpParser.parseAvailable(HttpParser.java:218)",
>         "org.mortbay.jetty.HttpConnection.handle(HttpConnection.java:404)",
>
> "org.mortbay.io.nio.SelectChannelEndPoint.run(SelectChannelEndPoint.java:410)",
>
> "org.mortbay.thread.QueuedThreadPool$PoolThread.run(QueuedThreadPool.java:582)"
>     ],
>     "causedBy": null
> }
>
>>
>> Thx
>> Dan
>>
>>
>>
>> [1]
>> https://github.com/apache/isis/blob/f38fdb92941172eabb12e0943509f239e6d5925f/example/application/quickstart_wicket_restful_jdo/dom/src/main/java/dom/todo/ToDoItem.java#L219
>> [2]
>>
>> http://localhost:8080/restful/objects/TODO/L_11
>> , {
>>
>>    - members:
>>    {
>>       - ownedBy:
>>       {
>>          - memberType: "property",
>>          - value: "sven",
>>          - format: "decimal",
>>          - x-isis-format: "bigdecimal"
>>          },
>>       - dueBy:
>>       {
>>          - memberType: "property",
>>          - value: "2013-07-24",
>>          - format: "date",
>>          - x-isis-format: "jodalocaldate"
>>          },
>>       - cost:
>>       {
>>          - memberType: "property",
>>          - value: 1.75,
>>          - format: "decimal",
>>          - x-isis-format: "bigdecimal"
>>          },
>>       - notes:
>>       {
>>          - memberType: "property",
>>          - value: null,
>>          - format: "decimal",
>>          - x-isis-format: "bigdecimal"
>>          },
>>       - attachment:
>>       {
>>          - memberType: "property",
>>          - value: null,
>>          - format: "decimal",
>>          - x-isis-format: "bigdecimal"
>>          },
>>       - description:
>>       {
>>          - memberType: "property",
>>          - value: "Buy bread",
>>          - format: "decimal",
>>          - x-isis-format: "bigdecimal"
>>          },
>>       - category:
>>       {
>>          - memberType: "property",
>>          - value: "Domestic",
>>          - format: "decimal",
>>          - x-isis-format: "bigdecimal"
>>          },
>>       - complete:
>>       {
>>          - memberType: "property",
>>          - value: false,
>>          - x-isis-format: "boolean",
>>          - disabledReason: "Always disabled"
>>          },
>>       - versionSequence:
>>       {
>>          - memberType: "property",
>>          - value: 1,
>>          - format: "int",
>>          - x-isis-format: "long",
>>          - disabledReason: "Always disabled"
>>          }
>>       }
>>
>>
>>
>> [3] this - which is valid according to the spec, I think - didn't work:
>> {
>>     "cost" : {
>>       "value" : 2.75
>>     },
>>     "description" : {
>>       "value" : "An updated description"
>>     },
>>     "category" : {
>>       "value" : "Professional"
>>     }
>> }
>>
>> [4] nor did this:
>> {
>>   "members:" {
>>     "cost" : {
>>       "memberType": "property",
>>       "value" : 2.75
>>     },
>>     "description" : {
>>       "memberType": "property",
>>       "value" : "An updated description"
>>     },
>>     "category" : {
>>       "memberType": "property",
>>       "value" : "Professional"
>>     }
>>   }
>> }
>>
>>
>> [5] nor did this:
>> {
>>     "cost" : {
>>       "memberType": "property",
>>       "value" : 2.75
>>     },
>>     "description" : {
>>       "memberType": "property",
>>       "value" : "An updated description"
>>     },
>>     "category" : {
>>       "memberType": "property",
>>       "value" : "Professional"
>>     }
>> }
>>
>>
>> [6]
>>
>>    1. Status Code: 400
>>    2. Server: Jetty(6.1.26)
>>    3. Content-Length: 0
>>    4. Warning: 199 RestfulObjects Could not find properties list (nomembers
>>    [memberType=property]); got {"cost":{"memberType":"property","value":
>>    2.75},"description":{"memberType":"property","value":"An updated
>>    description"},"category":{"memberType":"property","value":
>>    "Professional"}}
>>    5. Content-Type: application/json
>>
>>
>>
>>
>> On 23 July 2013 18:05, Bhargav Golla <bh...@gmail.com> wrote:
>>
>>> Hi Dan
>>>
>>> I am trying to edit the properties of an object and am following 14.2 in
>>> ROSpec to do the same. I tried to make a PUT request to the URL by chagning
>>> few properties and putting them into JSON. My request is as follows:
>>> PUT /myapp-webapp/restful/objects/TODO/L_0 HTTP/1.1
>>> Host: localhost:8080
>>> Accept: application/json
>>> Authorization: Basic c3ZlbjpwYXNz
>>> Cache-Control: no-cache
>>>
>>> { "complete": { "value": "true" } }
>>>
>>> But it is giving me a 400 error. Do you have any help here?
>>>
>>> Regards
>>>
>>> Bhargav Golla
>>> Developer. Freelancer.
>>> B.E (Hons.) Computer Science
>>> BITS-Pilani
>>> Github <http://www.github.com/bhargavgolla> | LinkedIN<http://www.linkedin.com/in/bhargavgolla>
>>>  | Website <http://www.bhargavgolla.com/>
>>>
>>
>>
>

Re: Help with updating properties [14.2 in ROSpec]

Posted by Bhargav Golla <bh...@gmail.com>.
On Wed, Jul 24, 2013 at 1:14 PM, Dan Haywood
<da...@haywood-associates.co.uk>wrote:

> Hi Bhargav,
> sorry not to get back to you sooner.
>
> couple of things:
> 1. the PUT resource on the object (RO spec 14.2) is for updating ALL
> properties, not just a single one.
> 2. the "complete" property is ALWAYS disabled (you can see that from the
> code [1], and from the arguments map in the representation[2]
> 3. notwithstanding, I think there's a bug in the RO viewer.  I tried
> several different formats for the body [3], [4], [5], but got the same
> error in each case [6]
>
> So, if you want to raise a ticket for this, then either go ahead and fix
> it, or wait for me to do so...
>
Created an issue [1]. Will try to fix it.

>
> In the meantime, you could workaround by doing a PUT to each of the
> individual property resources (per 16.2 of the spec); I believe this is
> working fine.
>
I am getting a 500 now that says that "does not represent map" when a make
a request like [2]. Any help?

Regards
Bhargav

[1] https://issues.apache.org/jira/browse/ISIS-479
[2] PUT /myapp-webapp/restful/objects/TODO/L_0/properties/notes HTTP/1.1
Host: localhost:8080
Accept: application/json
Authorization: Basic c3ZlbjpwYXNz
Cache-Control: no-cache

{ "value": "10/22/2013" }

Result:
{
    "message": "does not represent map",
    "stackTrace": [

"org.apache.isis.viewer.restfulobjects.applib.JsonRepresentation.mapHas(JsonRepresentation.java:1126)",

"org.apache.isis.viewer.restfulobjects.rendering.domainobjects.JsonValueEncoder.asAdapter(JsonValueEncoder.java:359)",

"org.apache.isis.viewer.restfulobjects.server.resources.DomainResourceHelper.objectAdapterFor(DomainResourceHelper.java:313)",

"org.apache.isis.viewer.restfulobjects.server.resources.DomainResourceHelper.parseAsMapWithSingleValue(DomainResourceHelper.java:463)",

"org.apache.isis.viewer.restfulobjects.server.resources.DomainResourceHelper.parseAsMapWithSingleValue(DomainResourceHelper.java:454)",

"org.apache.isis.viewer.restfulobjects.server.resources.DomainObjectResourceServerside.modifyProperty(DomainObjectResourceServerside.java:197)",
        "sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)",

"sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)",

"sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)",
        "java.lang.reflect.Method.invoke(Method.java:601)",

"org.jboss.resteasy.core.MethodInjectorImpl.invoke(MethodInjectorImpl.java:167)",

"org.jboss.resteasy.core.ResourceMethod.invokeOnTarget(ResourceMethod.java:269)",

"org.jboss.resteasy.core.ResourceMethod.invoke(ResourceMethod.java:227)",

"org.jboss.resteasy.core.ResourceMethod.invoke(ResourceMethod.java:216)",

"org.jboss.resteasy.core.SynchronousDispatcher.getResponse(SynchronousDispatcher.java:542)",

"org.jboss.resteasy.core.SynchronousDispatcher.invoke(SynchronousDispatcher.java:524)",

"org.jboss.resteasy.core.SynchronousDispatcher.invoke(SynchronousDispatcher.java:126)",

"org.jboss.resteasy.plugins.server.servlet.ServletContainerDispatcher.service(ServletContainerDispatcher.java:208)",

"org.jboss.resteasy.plugins.server.servlet.HttpServletDispatcher.service(HttpServletDispatcher.java:55)",

"org.jboss.resteasy.plugins.server.servlet.HttpServletDispatcher.service(HttpServletDispatcher.java:50)",
        "javax.servlet.http.HttpServlet.service(HttpServlet.java:820)",

"org.mortbay.jetty.servlet.ServletHolder.handle(ServletHolder.java:511)",

"org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1166)",

"org.apache.isis.core.webapp.IsisSessionFilter$SessionState$1.handle(IsisSessionFilter.java:315)",

"org.apache.isis.core.webapp.IsisSessionFilter.doFilter(IsisSessionFilter.java:404)",

"org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1157)",

"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.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1157)",

"org.mortbay.jetty.servlet.ServletHandler.handle(ServletHandler.java:388)",

"org.mortbay.jetty.security.SecurityHandler.handle(SecurityHandler.java:216)",

"org.mortbay.jetty.servlet.SessionHandler.handle(SessionHandler.java:182)",

"org.mortbay.jetty.handler.ContextHandler.handle(ContextHandler.java:765)",

"org.mortbay.jetty.webapp.WebAppContext.handle(WebAppContext.java:440)",

"org.mortbay.jetty.handler.ContextHandlerCollection.handle(ContextHandlerCollection.java:230)",

"org.mortbay.jetty.handler.HandlerCollection.handle(HandlerCollection.java:114)",

"org.mortbay.jetty.handler.HandlerWrapper.handle(HandlerWrapper.java:152)",
        "org.mortbay.jetty.Server.handle(Server.java:326)",

"org.mortbay.jetty.HttpConnection.handleRequest(HttpConnection.java:542)",

"org.mortbay.jetty.HttpConnection$RequestHandler.content(HttpConnection.java:943)",
        "org.mortbay.jetty.HttpParser.parseNext(HttpParser.java:756)",
        "org.mortbay.jetty.HttpParser.parseAvailable(HttpParser.java:218)",
        "org.mortbay.jetty.HttpConnection.handle(HttpConnection.java:404)",

"org.mortbay.io.nio.SelectChannelEndPoint.run(SelectChannelEndPoint.java:410)",

"org.mortbay.thread.QueuedThreadPool$PoolThread.run(QueuedThreadPool.java:582)"
    ],
    "causedBy": null
}

>
> Thx
> Dan
>
>
>
> [1]
> https://github.com/apache/isis/blob/f38fdb92941172eabb12e0943509f239e6d5925f/example/application/quickstart_wicket_restful_jdo/dom/src/main/java/dom/todo/ToDoItem.java#L219
> [2]
>
> http://localhost:8080/restful/objects/TODO/L_11
> , {
>
>    - members:
>    {
>       - ownedBy:
>       {
>          - memberType: "property",
>          - value: "sven",
>          - format: "decimal",
>          - x-isis-format: "bigdecimal"
>          },
>       - dueBy:
>       {
>          - memberType: "property",
>          - value: "2013-07-24",
>          - format: "date",
>          - x-isis-format: "jodalocaldate"
>          },
>       - cost:
>       {
>          - memberType: "property",
>          - value: 1.75,
>          - format: "decimal",
>          - x-isis-format: "bigdecimal"
>          },
>       - notes:
>       {
>          - memberType: "property",
>          - value: null,
>          - format: "decimal",
>          - x-isis-format: "bigdecimal"
>          },
>       - attachment:
>       {
>          - memberType: "property",
>          - value: null,
>          - format: "decimal",
>          - x-isis-format: "bigdecimal"
>          },
>       - description:
>       {
>          - memberType: "property",
>          - value: "Buy bread",
>          - format: "decimal",
>          - x-isis-format: "bigdecimal"
>          },
>       - category:
>       {
>          - memberType: "property",
>          - value: "Domestic",
>          - format: "decimal",
>          - x-isis-format: "bigdecimal"
>          },
>       - complete:
>       {
>          - memberType: "property",
>          - value: false,
>          - x-isis-format: "boolean",
>          - disabledReason: "Always disabled"
>          },
>       - versionSequence:
>       {
>          - memberType: "property",
>          - value: 1,
>          - format: "int",
>          - x-isis-format: "long",
>          - disabledReason: "Always disabled"
>          }
>       }
>
>
>
> [3] this - which is valid according to the spec, I think - didn't work:
> {
>     "cost" : {
>       "value" : 2.75
>     },
>     "description" : {
>       "value" : "An updated description"
>     },
>     "category" : {
>       "value" : "Professional"
>     }
> }
>
> [4] nor did this:
> {
>   "members:" {
>     "cost" : {
>       "memberType": "property",
>       "value" : 2.75
>     },
>     "description" : {
>       "memberType": "property",
>       "value" : "An updated description"
>     },
>     "category" : {
>       "memberType": "property",
>       "value" : "Professional"
>     }
>   }
> }
>
>
> [5] nor did this:
> {
>     "cost" : {
>       "memberType": "property",
>       "value" : 2.75
>     },
>     "description" : {
>       "memberType": "property",
>       "value" : "An updated description"
>     },
>     "category" : {
>       "memberType": "property",
>       "value" : "Professional"
>     }
> }
>
>
> [6]
>
>    1. Status Code: 400
>    2. Server: Jetty(6.1.26)
>    3. Content-Length: 0
>    4. Warning: 199 RestfulObjects Could not find properties list (nomembers
>    [memberType=property]); got {"cost":{"memberType":"property","value":
>    2.75},"description":{"memberType":"property","value":"An updated
>    description"},"category":{"memberType":"property","value":
>    "Professional"}}
>    5. Content-Type: application/json
>
>
>
>
> On 23 July 2013 18:05, Bhargav Golla <bh...@gmail.com> wrote:
>
>> Hi Dan
>>
>> I am trying to edit the properties of an object and am following 14.2 in
>> ROSpec to do the same. I tried to make a PUT request to the URL by chagning
>> few properties and putting them into JSON. My request is as follows:
>> PUT /myapp-webapp/restful/objects/TODO/L_0 HTTP/1.1
>> Host: localhost:8080
>> Accept: application/json
>> Authorization: Basic c3ZlbjpwYXNz
>> Cache-Control: no-cache
>>
>> { "complete": { "value": "true" } }
>>
>> But it is giving me a 400 error. Do you have any help here?
>>
>> Regards
>>
>> Bhargav Golla
>> Developer. Freelancer.
>> B.E (Hons.) Computer Science
>> BITS-Pilani
>> Github <http://www.github.com/bhargavgolla> | LinkedIN<http://www.linkedin.com/in/bhargavgolla>
>>  | Website <http://www.bhargavgolla.com/>
>>
>
>