Hi Kambiz, OK, belatedly I got around to investigating this.
It turns out that there was a problem with the RO applib classes.. these use Jackson to serialize the returned JSON into the o.a.isis.viewer.restfulobjects.applib.HomePageRepresentation (and similar), and it would seem that somewhere along the line (probably in 1.8.0) an upgrade to Jackson has caused this code to break. I've fixed it in ISIS-1177 [1] Also, this flags up a larger issue, in that these TCK tests are not being run, and are also substantially incomplete. This is partly because they are too fragile, partly because they use the old in-memory object that (per ISIS-1150 [2]) I want to fully retire, also because they predate the "kitchensink" app [3] which would make a much better place for such tests to live. So I've raised another ticket ISIS-1178 [4], to mothball these tests. I've also updated the kitchensink so that it runs at least a couple of the TCK tests. This can be added to bit-by-bit, as requirements/time allows. Hope that makes sense Cheers Dan [1] https://issues.apache.org/jira/browse/ISIS-1177 [2] https://issues.apache.org/jira/browse/ISIS-1150 [3] https://github.com/isisaddons/isis-app-kitchensink [4] https://issues.apache.org/jira/browse/ISIS-1178 On 20 July 2015 at 12:16, Dan Haywood <[email protected]> wrote: > Hi Kambiz, > > I'll try to take a look this evening if I get a chance and give some > pointers. > > Thx > Dan > > > > On 20 July 2015 at 09:21, Kambiz Darabi <[email protected]> wrote: > >> Hi, >> >> I'm not sure whether it was a good idea to post the below message to the >> dev mailing list. >> >> Sorry for cross-posting but maybe someone on this list can help me. >> >> Thank you for your help. >> >> >> Kambiz >> >> -------------------- Start of forwarded message -------------------- >> From: Kambiz Darabi <[email protected]> >> To: Isis Dev <[email protected]> >> Subject: Running tests in tck-viewer-restful-objects >> Date: Fri, 17 Jul 2015 12:44:37 +0200 >> >> Hello, >> >> I would like to run some of the tests in tck-viewer-restful-objects, but >> when I start one of the tests from inside eclipse (Luna, 4.4.1, with >> DataNucleus plugin), I receive a JsonMappingException (cf. below). >> >> I searched the Wiki but didn't find any special instructions as how to >> run them or whether they need some specific prerequisites. >> >> Any hint is appreciated. >> >> >> Thanks in advance >> >> >> Kambiz >> >> >> >> >> org.apache.isis.viewer.restfulobjects.tck.homepage.root.Get_thenRepresentation_ok >> >> >> com.fasterxml.jackson.databind.JsonMappingException: No suitable >> constructor found for type [simple type, class >> org.apache.isis.viewer.restfulobjects.applib.homepage.HomePageRepresentation]: >> can not instantiate from JSON object (missing default constructor or >> creator, or perhaps need to add/enable type information?) >> at [Source: { >> "links" : [ { >> "rel" : "self", >> "href" : "http://localhost:39393/", >> "method" : "GET", >> "type" : >> "application/json;profile=\"urn:org.restfulobjects:repr-types/homepage\"" >> }, { >> "rel" : "urn:org.restfulobjects:rels/user", >> "href" : "http://localhost:39393/user", >> "method" : "GET", >> "type" : >> "application/json;profile=\"urn:org.restfulobjects:repr-types/user\"" >> }, { >> "rel" : "urn:org.restfulobjects:rels/services", >> "href" : "http://localhost:39393/services", >> "method" : "GET", >> "type" : >> "application/json;profile=\"urn:org.restfulobjects:repr-types/list\"" >> }, { >> "rel" : "urn:org.restfulobjects:rels/version", >> "href" : "http://localhost:39393/version", >> "method" : "GET", >> "type" : >> "application/json;profile=\"urn:org.restfulobjects:repr-types/version\"" >> }, { >> "rel" : "urn:org.restfulobjects:rels/domain-types", >> "href" : "http://localhost:39393/domain-types", >> >> "method" : "GET", >> "type" : >> "application/json;profile=\"urn:org.restfulobjects:repr-types/type-list\"" >> } ], >> "extensions" : { } >> }; line: 2, column: 3] >> at >> com.fasterxml.jackson.databind.JsonMappingException.from(JsonMappingException.java:148) >> at >> com.fasterxml.jackson.databind.deser.BeanDeserializerBase.deserializeFromObjectUsingNonDefault(BeanDeserializerBase.java:1071) >> at >> com.fasterxml.jackson.databind.deser.BeanDeserializer.deserializeFromObject(BeanDeserializer.java:295) >> at >> com.fasterxml.jackson.databind.deser.BeanDeserializer.deserialize(BeanDeserializer.java:142) >> at >> com.fasterxml.jackson.databind.ObjectMapper._readMapAndClose(ObjectMapper.java:3560) >> at >> com.fasterxml.jackson.databind.ObjectMapper.readValue(ObjectMapper.java:2576) >> at >> org.apache.isis.viewer.restfulobjects.applib.util.JsonMapper.read(JsonMapper.java:114) >> at >> org.apache.isis.viewer.restfulobjects.applib.util.JsonMapper.read(JsonMapper.java:123) >> at >> org.apache.isis.viewer.restfulobjects.applib.client.RestfulResponse.getEntity(RestfulResponse.java:324) >> at >> org.apache.isis.viewer.restfulobjects.tck.homepage.root.Get_thenRepresentation_ok.representation(Get_thenRepresentation_ok.java:74) >> at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) >> at >> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) >> at >> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) >> at java.lang.reflect.Method.invoke(Method.java:497) >> at >> org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:50) >> at >> org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:12) >> at >> org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:47) >> at >> org.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.java:17) >> at >> org.junit.internal.runners.statements.RunBefores.evaluate(RunBefores.java:26) >> at org.junit.runners.ParentRunner.runLeaf(ParentRunner.java:325) >> at >> org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:78) >> at >> org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:57) >> at org.junit.runners.ParentRunner$3.run(ParentRunner.java:290) >> at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:71) >> at >> org.junit.runners.ParentRunner.runChildren(ParentRunner.java:288) >> at org.junit.runners.ParentRunner.access$000(ParentRunner.java:58) >> at >> org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:268) >> at org.junit.runners.ParentRunner.run(ParentRunner.java:363) >> at >> org.eclipse.jdt.internal.junit4.runner.JUnit4TestReference.run(JUnit4TestReference.java:50) >> at >> org.eclipse.jdt.internal.junit.runner.TestExecution.run(TestExecution.java:38) >> at >> org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:459) >> at >> org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:675) >> at >> org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run(RemoteTestRunner.java:382) >> at >> org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(RemoteTestRunner.java:192) >> >> -------------------- End of forwarded message -------------------- >> > >
