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 2012/09/01 17:52:56 UTC

Re: Best way to interact with the JSON viewer

On 1 September 2012 10:29, Minto van der sluis <mi...@xup.nl> wrote:

>
> Should stick with the current release
> 0.2.0 or move ahead. How stable is the current trunk version?
>

It's pretty stable; starting to move towards getting a release out in the
next month or two.

And, what's new in trunk is the JDO object store, which may (perhaps)
replace the SQL objectstore, at least in the short-term.

Also, the v0.2.0 release holds an incomplete cut of the RO viewer (whatever
was implemented back in Feb).

~~~
If you do decide to track trunk, you might find it easiest to fork my
github copy of Isis [1]



>
> I will have a closer look at the latest/trunk ro-applib. I guess
> RestfulRestfulClient is entry point to start from.


Yes, org.apache.isis.viewer.restfulobjects.applib.RestfulClient.

This lets you use either a HATEOAS or a templated URL approach.




> But to be able to use
> it I probably have to switch to using the trunk version.
>

Not sure; I think you'll find that 0.2.0 does have something.  Even so, I
do recommend that you switch to trunk

 >

> > Speaking slightly selfishly, I'd love you to have a go with using the RO
> > applib; it'll help us determine where the gaps and annoyances are for
> > "real-life" use.
>
> I could give it a try If I knew were to start. Is the 0.2.0 json viewer
> documentation still a good starting point? Since I am lazy ;-) I wonder
> if their exists some sample application already. This could give me a
> headstart.
>

The tests aren't a bad place to look; you'll find these in
restfulobjects-tck.

Admittedly, these have been knocked-about a bit and so quite a few are
currently are @Ignore'd.  However,
the org.apache.isis.viewer.restfulobjects.tck.resources.home.HomePageResourceTest_accept
runs and passes.  (It also uses the isisWebServerRule which bootstraps the
web.xml within an integration test).

Hope that helps some

Dan

[1] https://github.com/danhaywood/apache-isis

Re: Oh oh, NullPointerException after switching to isis trunk

Posted by mi...@xup.nl.
Hi Dan,

Also have a look at ISIS-265 that I just created. It also contains a patch.

Regards,

Minto


Quoting Dan Haywood <da...@haywood-associates.co.uk>:

> Thanks for taking the time to document this; I'll look at it hopefully
> later today.
>
>
> On 5 September 2012 09:54, <mi...@xup.nl> wrote:
>
>> Hi folks,
>>
>> The examples in trunk show this exact same behavior.
>>
>> It seems the examples have been neglected a little bit, since I first had
>> to upgrade them from 0.3.0 --> 0.3.1. The attached patch shows the changes
>> I made.
>>
>> Scenario to get to the NPE:
>> 1) apply patch
>> 2) mvn clean install  - compiles claims example till html-viewer (json
>> viewer fails)
>> 3) cd html-viewer
>> 4) mvn jetty:run
>> 5) open browser in  
>> http://localhost:8080/claims-**viewer-html<http://localhost:8080/claims-viewer-html>
>> 6) login
>> 7) click Employees
>> 8) click New Employee
>> 9) Enter a name
>> 10) click save ----> NPE
>>
>> Regards,
>>
>> Minto
>>
>>
>> Quoting minto@xup.nl:
>>
>>  Hi Folks,
>>>
>>> After switching from 0.2.0 to isis trunk (0.3.1 snapshot) I run into an
>>> NPE (See stacktrace below). I probably did something wrong or forgot
>>> something, but I have no clue what. HELP! :-(
>>>
>>> Everything seems to work until I hit the "Ok" button when trying to
>>> create a new object.
>>>
>>> BTW. I switched back to in-memory persistor (from sql). What is required
>>> to get the JDO persistor running or to get the sql persistor back?
>>>
>>> Regards,
>>>
>>> Minto
>>>
>>> java.lang.NullPointerException
>>>         at org.apache.isis.core.**metamodel.adapter.version.**
>>> ConcurrencyException.**buildMessage(**ConcurrencyException.java:36)
>>>         at org.apache.isis.core.**metamodel.adapter.version.**
>>> ConcurrencyException.(**ConcurrencyException.java:50)
>>>         at org.apache.isis.runtimes.dflt.**runtime.persistence.adapter.**
>>> PojoAdapter.checkLock(**PojoAdapter.java:337)
>>>         at org.apache.isis.viewer.html.**context.**
>>> PersistentRootAdapterMapping.**checkVersion(**
>>> PersistentRootAdapterMapping.**java:56)
>>>         at org.apache.isis.viewer.html.**context.Context.**
>>> getMappedObject(Context.java:**284)
>>>         at org.apache.isis.viewer.html.**action.view.**
>>> ObjectViewAbstract.execute(**ObjectViewAbstract.java:39)
>>>         at org.apache.isis.viewer.html.**servlet.internal.**
>>> WebController.runAction(**WebController.java:383)
>>>         at org.apache.isis.viewer.html.**servlet.internal.**
>>> WebController.generatePage(**WebController.java:286)
>>>         at org.apache.isis.viewer.html.**servlet.ControllerServlet.**
>>> processRequest(**ControllerServlet.java:129)
>>>         at org.apache.isis.viewer.html.**servlet.ControllerServlet.**
>>> processRequest(**ControllerServlet.java:104)
>>>         at org.apache.isis.viewer.html.**servlet.ControllerServlet.**
>>> doPost(ControllerServlet.java:**82)
>>>         at javax.servlet.http.**HttpServlet.service(**
>>> HttpServlet.java:641)
>>>         at javax.servlet.http.**HttpServlet.service(**
>>> HttpServlet.java:722)
>>>         at org.apache.catalina.core.**ApplicationFilterChain.**
>>> internalDoFilter(**ApplicationFilterChain.java:**305)
>>>         at org.apache.catalina.core.**ApplicationFilterChain.**doFilter(*
>>> *ApplicationFilterChain.java:**210)
>>>         at org.apache.isis.runtimes.dflt.**webapp.IsisSessionFilter$**
>>> SessionState.handle(**IsisSessionFilter.java:383)
>>>         at org.apache.isis.runtimes.dflt.**webapp.IsisSessionFilter.**
>>> doFilter(IsisSessionFilter.**java:404)
>>>         at org.apache.catalina.core.**ApplicationFilterChain.**
>>> internalDoFilter(**ApplicationFilterChain.java:**243)
>>>         at org.apache.catalina.core.**ApplicationFilterChain.**doFilter(*
>>> *ApplicationFilterChain.java:**210)
>>>         at org.apache.isis.runtimes.dflt.**webapp.IsisSessionFilter$**
>>> SessionState$1.handle(**IsisSessionFilter.java:315)
>>>         at org.apache.isis.runtimes.dflt.**webapp.IsisSessionFilter.**
>>> doFilter(IsisSessionFilter.**java:404)
>>>         at org.apache.catalina.core.**ApplicationFilterChain.**
>>> internalDoFilter(**ApplicationFilterChain.java:**243)
>>>         at org.apache.catalina.core.**ApplicationFilterChain.**doFilter(*
>>> *ApplicationFilterChain.java:**210)
>>>         at org.apache.catalina.core.**StandardWrapperValve.invoke(**
>>> StandardWrapperValve.java:225)
>>>         at org.apache.catalina.core.**StandardContextValve.invoke(**
>>> StandardContextValve.java:123)
>>>         at org.apache.catalina.**authenticator.**
>>> AuthenticatorBase.invoke(**AuthenticatorBase.java:472)
>>>         at org.apache.catalina.core.**StandardHostValve.invoke(**
>>> StandardHostValve.java:168)
>>>         at org.apache.catalina.valves.**ErrorReportValve.invoke(**
>>> ErrorReportValve.java:98)
>>>         at org.apache.catalina.valves.**AccessLogValve.invoke(**
>>> AccessLogValve.java:927)
>>>         at org.apache.catalina.core.**StandardEngineValve.invoke(**
>>> StandardEngineValve.java:118)
>>>         at org.apache.catalina.connector.**CoyoteAdapter.service(**
>>> CoyoteAdapter.java:407)
>>>         at org.apache.coyote.http11.**AbstractHttp11Processor.**process(*
>>> *AbstractHttp11Processor.java:**1001)
>>>         at org.apache.coyote.**AbstractProtocol$**
>>> AbstractConnectionHandler.**process(AbstractProtocol.java:**585)
>>>         at org.apache.tomcat.util.net.**JIoEndpoint$SocketProcessor.**
>>> run(JIoEndpoint.java:312)
>>>         at java.util.concurrent.**ThreadPoolExecutor.runWorker(**
>>> ThreadPoolExecutor.java:1110)
>>>         at java.util.concurrent.**ThreadPoolExecutor$Worker.run(**
>>> ThreadPoolExecutor.java:603)
>>>         at java.lang.Thread.run(Thread.**java:722)
>>>
>>>
>>
>



Re: Oh oh, NullPointerException after switching to isis trunk

Posted by Dan Haywood <da...@haywood-associates.co.uk>.
Thanks for taking the time to document this; I'll look at it hopefully
later today.


On 5 September 2012 09:54, <mi...@xup.nl> wrote:

> Hi folks,
>
> The examples in trunk show this exact same behavior.
>
> It seems the examples have been neglected a little bit, since I first had
> to upgrade them from 0.3.0 --> 0.3.1. The attached patch shows the changes
> I made.
>
> Scenario to get to the NPE:
> 1) apply patch
> 2) mvn clean install  - compiles claims example till html-viewer (json
> viewer fails)
> 3) cd html-viewer
> 4) mvn jetty:run
> 5) open browser in http://localhost:8080/claims-**viewer-html<http://localhost:8080/claims-viewer-html>
> 6) login
> 7) click Employees
> 8) click New Employee
> 9) Enter a name
> 10) click save ----> NPE
>
> Regards,
>
> Minto
>
>
> Quoting minto@xup.nl:
>
>  Hi Folks,
>>
>> After switching from 0.2.0 to isis trunk (0.3.1 snapshot) I run into an
>> NPE (See stacktrace below). I probably did something wrong or forgot
>> something, but I have no clue what. HELP! :-(
>>
>> Everything seems to work until I hit the "Ok" button when trying to
>> create a new object.
>>
>> BTW. I switched back to in-memory persistor (from sql). What is required
>> to get the JDO persistor running or to get the sql persistor back?
>>
>> Regards,
>>
>> Minto
>>
>> java.lang.NullPointerException
>>         at org.apache.isis.core.**metamodel.adapter.version.**
>> ConcurrencyException.**buildMessage(**ConcurrencyException.java:36)
>>         at org.apache.isis.core.**metamodel.adapter.version.**
>> ConcurrencyException.(**ConcurrencyException.java:50)
>>         at org.apache.isis.runtimes.dflt.**runtime.persistence.adapter.**
>> PojoAdapter.checkLock(**PojoAdapter.java:337)
>>         at org.apache.isis.viewer.html.**context.**
>> PersistentRootAdapterMapping.**checkVersion(**
>> PersistentRootAdapterMapping.**java:56)
>>         at org.apache.isis.viewer.html.**context.Context.**
>> getMappedObject(Context.java:**284)
>>         at org.apache.isis.viewer.html.**action.view.**
>> ObjectViewAbstract.execute(**ObjectViewAbstract.java:39)
>>         at org.apache.isis.viewer.html.**servlet.internal.**
>> WebController.runAction(**WebController.java:383)
>>         at org.apache.isis.viewer.html.**servlet.internal.**
>> WebController.generatePage(**WebController.java:286)
>>         at org.apache.isis.viewer.html.**servlet.ControllerServlet.**
>> processRequest(**ControllerServlet.java:129)
>>         at org.apache.isis.viewer.html.**servlet.ControllerServlet.**
>> processRequest(**ControllerServlet.java:104)
>>         at org.apache.isis.viewer.html.**servlet.ControllerServlet.**
>> doPost(ControllerServlet.java:**82)
>>         at javax.servlet.http.**HttpServlet.service(**
>> HttpServlet.java:641)
>>         at javax.servlet.http.**HttpServlet.service(**
>> HttpServlet.java:722)
>>         at org.apache.catalina.core.**ApplicationFilterChain.**
>> internalDoFilter(**ApplicationFilterChain.java:**305)
>>         at org.apache.catalina.core.**ApplicationFilterChain.**doFilter(*
>> *ApplicationFilterChain.java:**210)
>>         at org.apache.isis.runtimes.dflt.**webapp.IsisSessionFilter$**
>> SessionState.handle(**IsisSessionFilter.java:383)
>>         at org.apache.isis.runtimes.dflt.**webapp.IsisSessionFilter.**
>> doFilter(IsisSessionFilter.**java:404)
>>         at org.apache.catalina.core.**ApplicationFilterChain.**
>> internalDoFilter(**ApplicationFilterChain.java:**243)
>>         at org.apache.catalina.core.**ApplicationFilterChain.**doFilter(*
>> *ApplicationFilterChain.java:**210)
>>         at org.apache.isis.runtimes.dflt.**webapp.IsisSessionFilter$**
>> SessionState$1.handle(**IsisSessionFilter.java:315)
>>         at org.apache.isis.runtimes.dflt.**webapp.IsisSessionFilter.**
>> doFilter(IsisSessionFilter.**java:404)
>>         at org.apache.catalina.core.**ApplicationFilterChain.**
>> internalDoFilter(**ApplicationFilterChain.java:**243)
>>         at org.apache.catalina.core.**ApplicationFilterChain.**doFilter(*
>> *ApplicationFilterChain.java:**210)
>>         at org.apache.catalina.core.**StandardWrapperValve.invoke(**
>> StandardWrapperValve.java:225)
>>         at org.apache.catalina.core.**StandardContextValve.invoke(**
>> StandardContextValve.java:123)
>>         at org.apache.catalina.**authenticator.**
>> AuthenticatorBase.invoke(**AuthenticatorBase.java:472)
>>         at org.apache.catalina.core.**StandardHostValve.invoke(**
>> StandardHostValve.java:168)
>>         at org.apache.catalina.valves.**ErrorReportValve.invoke(**
>> ErrorReportValve.java:98)
>>         at org.apache.catalina.valves.**AccessLogValve.invoke(**
>> AccessLogValve.java:927)
>>         at org.apache.catalina.core.**StandardEngineValve.invoke(**
>> StandardEngineValve.java:118)
>>         at org.apache.catalina.connector.**CoyoteAdapter.service(**
>> CoyoteAdapter.java:407)
>>         at org.apache.coyote.http11.**AbstractHttp11Processor.**process(*
>> *AbstractHttp11Processor.java:**1001)
>>         at org.apache.coyote.**AbstractProtocol$**
>> AbstractConnectionHandler.**process(AbstractProtocol.java:**585)
>>         at org.apache.tomcat.util.net.**JIoEndpoint$SocketProcessor.**
>> run(JIoEndpoint.java:312)
>>         at java.util.concurrent.**ThreadPoolExecutor.runWorker(**
>> ThreadPoolExecutor.java:1110)
>>         at java.util.concurrent.**ThreadPoolExecutor$Worker.run(**
>> ThreadPoolExecutor.java:603)
>>         at java.lang.Thread.run(Thread.**java:722)
>>
>>
>

Re: Oh oh, NullPointerException after switching to isis trunk

Posted by mi...@xup.nl.
Hi folks,

The examples in trunk show this exact same behavior.

It seems the examples have been neglected a little bit, since I first  
had to upgrade them from 0.3.0 --> 0.3.1. The attached patch shows the  
changes I made.

Scenario to get to the NPE:
1) apply patch
2) mvn clean install  - compiles claims example till html-viewer (json  
viewer fails)
3) cd html-viewer
4) mvn jetty:run
5) open browser in http://localhost:8080/claims-viewer-html
6) login
7) click Employees
8) click New Employee
9) Enter a name
10) click save ----> NPE

Regards,

Minto

Quoting minto@xup.nl:

> Hi Folks,
>
> After switching from 0.2.0 to isis trunk (0.3.1 snapshot) I run into  
> an NPE (See stacktrace below). I probably did something wrong or  
> forgot something, but I have no clue what. HELP! :-(
>
> Everything seems to work until I hit the "Ok" button when trying to  
> create a new object.
>
> BTW. I switched back to in-memory persistor (from sql). What is  
> required to get the JDO persistor running or to get the sql  
> persistor back?
>
> Regards,
>
> Minto
>
> java.lang.NullPointerException
> 	at  
> org.apache.isis.core.metamodel.adapter.version.ConcurrencyException.buildMessage(ConcurrencyException.java:36)
> 	at  
> org.apache.isis.core.metamodel.adapter.version.ConcurrencyException.(ConcurrencyException.java:50)
> 	at  
> org.apache.isis.runtimes.dflt.runtime.persistence.adapter.PojoAdapter.checkLock(PojoAdapter.java:337)
> 	at  
> org.apache.isis.viewer.html.context.PersistentRootAdapterMapping.checkVersion(PersistentRootAdapterMapping.java:56)
> 	at  
> org.apache.isis.viewer.html.context.Context.getMappedObject(Context.java:284)
> 	at  
> org.apache.isis.viewer.html.action.view.ObjectViewAbstract.execute(ObjectViewAbstract.java:39)
> 	at  
> org.apache.isis.viewer.html.servlet.internal.WebController.runAction(WebController.java:383)
> 	at  
> org.apache.isis.viewer.html.servlet.internal.WebController.generatePage(WebController.java:286)
> 	at  
> org.apache.isis.viewer.html.servlet.ControllerServlet.processRequest(ControllerServlet.java:129)
> 	at  
> org.apache.isis.viewer.html.servlet.ControllerServlet.processRequest(ControllerServlet.java:104)
> 	at  
> org.apache.isis.viewer.html.servlet.ControllerServlet.doPost(ControllerServlet.java:82)
> 	at javax.servlet.http.HttpServlet.service(HttpServlet.java:641)
> 	at javax.servlet.http.HttpServlet.service(HttpServlet.java:722)
> 	at  
> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:305)
> 	at  
> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
> 	at  
> org.apache.isis.runtimes.dflt.webapp.IsisSessionFilter$SessionState.handle(IsisSessionFilter.java:383)
> 	at  
> org.apache.isis.runtimes.dflt.webapp.IsisSessionFilter.doFilter(IsisSessionFilter.java:404)
> 	at  
> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243)
> 	at  
> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
> 	at  
> org.apache.isis.runtimes.dflt.webapp.IsisSessionFilter$SessionState$1.handle(IsisSessionFilter.java:315)
> 	at  
> org.apache.isis.runtimes.dflt.webapp.IsisSessionFilter.doFilter(IsisSessionFilter.java:404)
> 	at  
> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243)
> 	at  
> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
> 	at  
> org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:225)
> 	at  
> org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:123)
> 	at  
> org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:472)
> 	at  
> org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:168)
> 	at  
> org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:98)
> 	at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:927)
> 	at  
> org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:118)
> 	at  
> org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:407)
> 	at  
> org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1001)
> 	at  
> org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:585)
> 	at  
> org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:312)
> 	at  
> java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1110)
> 	at  
> java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:603)
> 	at java.lang.Thread.run(Thread.java:722)
>


Oh oh, NullPointerException after switching to isis trunk

Posted by mi...@xup.nl.
Hi Folks,

After switching from 0.2.0 to isis trunk (0.3.1 snapshot) I run into  
an NPE (See stacktrace below). I probably did something wrong or  
forgot something, but I have no clue what. HELP! :-(

Everything seems to work until I hit the "Ok" button when trying to  
create a new object.

BTW. I switched back to in-memory persistor (from sql). What is  
required to get the JDO persistor running or to get the sql persistor  
back?

Regards,

Minto

java.lang.NullPointerException
	at  
org.apache.isis.core.metamodel.adapter.version.ConcurrencyException.buildMessage(ConcurrencyException.java:36)
	at  
org.apache.isis.core.metamodel.adapter.version.ConcurrencyException.(ConcurrencyException.java:50)
	at  
org.apache.isis.runtimes.dflt.runtime.persistence.adapter.PojoAdapter.checkLock(PojoAdapter.java:337)
	at  
org.apache.isis.viewer.html.context.PersistentRootAdapterMapping.checkVersion(PersistentRootAdapterMapping.java:56)
	at  
org.apache.isis.viewer.html.context.Context.getMappedObject(Context.java:284)
	at  
org.apache.isis.viewer.html.action.view.ObjectViewAbstract.execute(ObjectViewAbstract.java:39)
	at  
org.apache.isis.viewer.html.servlet.internal.WebController.runAction(WebController.java:383)
	at  
org.apache.isis.viewer.html.servlet.internal.WebController.generatePage(WebController.java:286)
	at  
org.apache.isis.viewer.html.servlet.ControllerServlet.processRequest(ControllerServlet.java:129)
	at  
org.apache.isis.viewer.html.servlet.ControllerServlet.processRequest(ControllerServlet.java:104)
	at  
org.apache.isis.viewer.html.servlet.ControllerServlet.doPost(ControllerServlet.java:82)
	at javax.servlet.http.HttpServlet.service(HttpServlet.java:641)
	at javax.servlet.http.HttpServlet.service(HttpServlet.java:722)
	at  
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:305)
	at  
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
	at  
org.apache.isis.runtimes.dflt.webapp.IsisSessionFilter$SessionState.handle(IsisSessionFilter.java:383)
	at  
org.apache.isis.runtimes.dflt.webapp.IsisSessionFilter.doFilter(IsisSessionFilter.java:404)
	at  
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243)
	at  
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
	at  
org.apache.isis.runtimes.dflt.webapp.IsisSessionFilter$SessionState$1.handle(IsisSessionFilter.java:315)
	at  
org.apache.isis.runtimes.dflt.webapp.IsisSessionFilter.doFilter(IsisSessionFilter.java:404)
	at  
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243)
	at  
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
	at  
org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:225)
	at  
org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:123)
	at  
org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:472)
	at  
org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:168)
	at  
org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:98)
	at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:927)
	at  
org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:118)
	at  
org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:407)
	at  
org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1001)
	at  
org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:585)
	at  
org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:312)
	at  
java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1110)
	at  
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:603)
	at java.lang.Thread.run(Thread.java:722)

Re: Best way to interact with the JSON viewer

Posted by Jeroen van der Wal <je...@stromboli.it>.
I encountered the same issue but using the format "20120906T134034874"
worked for me when using the Restful API.

-Jeroen

On Thu, Sep 6, 2012 at 1:47 PM, <mi...@xup.nl> wrote:

> Additionally ISO8601 date are not supported
>
> When sending:
>
>    "timestamp":"2012-09-06T13:40:**34.874+02:00"
>
> I get an "Unparseable date" exception. The following code was used to
> serialize the date:
>
>     DateTime dateTime = new DateTime( new Date() );
>     DateTimeFormatter dateTimeFormatter = ISODateTimeFormat.dateTime();
>     String dateTimeAsString = dateTimeFormatter.print( dateTime );
>
> What string based date format should be used?
>
> Regards,
>
> Minto
>
>
>
> Quoting minto@xup.nl:
>
>  Result of my debug session:
>>
>> 1) Missing output details
>>
>> Currently the on the client side debug log shows the following server
>> error:
>>
>>     "HTTP/1.1 500 Internal Server Error[\r][\n]"
>>     "HTTP/1.1 500 Internal Server Error[\r][\n]"
>>     "Content-Type:  application/json;profile=urn:**
>> org.restfulobjects/error[\r][\**n]"
>>     "Content-Length: 8824[\r][\n]"
>>     "Server: Jetty(6.1.26)[\r][\n]"
>>
>> Details are missing here. Server side I have an exception saying
>>  'Unparseable date: "2012-09-05 09:30"'. The exception message is
>>  swallowed since it does not appear in either client or server logging.
>>
>> The same happened with other messages
>>
>> 2) Long values < maxint not detected as longs
>>
>> In my domain model a field is defined as long. When entering this field
>> as:
>>
>>     arguments.mapPut("**melderVolgnummer", 1);
>>
>> It is detected server side as Integer instead of Long. Forcefully  adding
>> 1L or JsonRepresentation( new LongNode(1)) makes no difference.  Server
>> side it appeared Jackson sees this field as IntNode. As a  result isLong()
>> (on both JsonRepresentation and IntNode) returns  false. This results in
>> the following exception.
>>
>>    IllegalArgumentException(**formatExMsg(path, "is not a long"))
>>
>> Attached patch solves this issue.
>>
>> Regards,
>>
>> Minto
>>
>>
>> Quoting minto@xup.nl:
>>
>>  Hi Folks,
>>>
>>> I managed to get something (using RO-applib) partly working. My  current
>>> implementation is based on test code from the TCK.
>>>
>>> Retrieving some information works fine:
>>>
>>>  1) "GET /services/ HTTP/1.1[\r][\n]" (works OK)
>>>  2) "GET /services/servicename? ...." (works OK)
>>>  3) "POST /services/servicename/...." (Fails :( )
>>>
>>> In step 3 I wanted to create a new domain object. Unfortunately the
>>>  server responded with a 500 Internal Server Error. Initially I  thought
>>> this was due to ISIS-265. But after applying the patch the  htmlviewer
>>> works fine but the RO-viewer still gives the same response.
>>>
>>> Looking in the server log I can't find any information about why  POST
>>> request actually failed. Next step for me is to start debug the  RO-viewer.
>>>
>>> If anyone has a clue what is going on here, I am all ears.
>>>
>>> Regards,
>>>
>>> Minto
>>>
>>>
>>> Quoting minto@xup.nl:
>>>
>>>  Oh boy, this look complex.
>>>>
>>>> The code in RO-tck looks like some sort of meta programming. I am
>>>>  looking for a piece of code to create a new domain object using
>>>>  RO-applib. But I have a hard time digesting what's there.
>>>>
>>>> Can someone give me some more hints (hopefully a snippet)
>>>>
>>>> Regards,
>>>>
>>>> Minto
>>>>
>>>>
>>>> Quoting Dan Haywood <da...@haywood-associates.co.uk>**:
>>>>
>>>>  On 1 September 2012 10:29, Minto van der sluis <mi...@xup.nl> wrote:
>>>>>
>>>>>
>>>>>> Should stick with the current release
>>>>>> 0.2.0 or move ahead. How stable is the current trunk version?
>>>>>>
>>>>>>
>>>>> It's pretty stable; starting to move towards getting a release out in
>>>>> the
>>>>> next month or two.
>>>>>
>>>>> And, what's new in trunk is the JDO object store, which may (perhaps)
>>>>> replace the SQL objectstore, at least in the short-term.
>>>>>
>>>>> Also, the v0.2.0 release holds an incomplete cut of the RO viewer
>>>>> (whatever
>>>>> was implemented back in Feb).
>>>>>
>>>>> ~~~
>>>>> If you do decide to track trunk, you might find it easiest to fork my
>>>>> github copy of Isis [1]
>>>>>
>>>>>
>>>>>
>>>>>
>>>>>> I will have a closer look at the latest/trunk ro-applib. I guess
>>>>>> RestfulRestfulClient is entry point to start from.
>>>>>>
>>>>>
>>>>>
>>>>> Yes, org.apache.isis.viewer.**restfulobjects.applib.**RestfulClient.
>>>>>
>>>>> This lets you use either a HATEOAS or a templated URL approach.
>>>>>
>>>>>
>>>>>
>>>>>
>>>>>  But to be able to use
>>>>>> it I probably have to switch to using the trunk version.
>>>>>>
>>>>>>
>>>>> Not sure; I think you'll find that 0.2.0 does have something.  Even
>>>>> so, I
>>>>> do recommend that you switch to trunk
>>>>>
>>>>>
>>>>>>
>>>>>  Speaking slightly selfishly, I'd love you to have a go with using the
>>>>>>> RO
>>>>>>> applib; it'll help us determine where the gaps and annoyances are for
>>>>>>> "real-life" use.
>>>>>>>
>>>>>>
>>>>>> I could give it a try If I knew were to start. Is the 0.2.0 json
>>>>>> viewer
>>>>>> documentation still a good starting point? Since I am lazy ;-) I
>>>>>> wonder
>>>>>> if their exists some sample application already. This could give me a
>>>>>> headstart.
>>>>>>
>>>>>>
>>>>> The tests aren't a bad place to look; you'll find these in
>>>>> restfulobjects-tck.
>>>>>
>>>>> Admittedly, these have been knocked-about a bit and so quite a few are
>>>>> currently are @Ignore'd.  However,
>>>>> the  org.apache.isis.viewer.**restfulobjects.tck.resources.**
>>>>> home.HomePageResourceTest_**accept
>>>>> runs and passes.  (It also uses the isisWebServerRule which bootstraps
>>>>> the
>>>>> web.xml within an integration test).
>>>>>
>>>>> Hope that helps some
>>>>>
>>>>> Dan
>>>>>
>>>>> [1] https://github.com/danhaywood/**apache-isis<https://github.com/danhaywood/apache-isis>
>>>>>
>>>>>
>>>>
>>>>
>>>>
>>>
>>>
>>
>>
>

Re: Best way to interact with the JSON viewer

Posted by Adam Howard <ho...@gmail.com>.
Minto,

When we get the restfulobjects-viewer up to 1.0.0 spec we will be using
ISO8601 formats. As it stands now I know the date part of the format is
yymmdd. Not sure about the time part. I don't remember off the top of my
head where the parsing lives.

--
Adam Howard

On Thu, Sep 6, 2012 at 6:47 AM, <mi...@xup.nl> wrote:

> Additionally ISO8601 date are not supported
>
> When sending:
>
>    "timestamp":"2012-09-06T13:40:**34.874+02:00"
>
> I get an "Unparseable date" exception. The following code was used to
> serialize the date:
>
>     DateTime dateTime = new DateTime( new Date() );
>     DateTimeFormatter dateTimeFormatter = ISODateTimeFormat.dateTime();
>     String dateTimeAsString = dateTimeFormatter.print( dateTime );
>
> What string based date format should be used?
>
> Regards,
>
> Minto
>
>
>
> Quoting minto@xup.nl:
>
>  Result of my debug session:
>>
>> 1) Missing output details
>>
>> Currently the on the client side debug log shows the following server
>> error:
>>
>>     "HTTP/1.1 500 Internal Server Error[\r][\n]"
>>     "HTTP/1.1 500 Internal Server Error[\r][\n]"
>>     "Content-Type:  application/json;profile=urn:**
>> org.restfulobjects/error[\r][\**n]"
>>     "Content-Length: 8824[\r][\n]"
>>     "Server: Jetty(6.1.26)[\r][\n]"
>>
>> Details are missing here. Server side I have an exception saying
>>  'Unparseable date: "2012-09-05 09:30"'. The exception message is
>>  swallowed since it does not appear in either client or server logging.
>>
>> The same happened with other messages
>>
>> 2) Long values < maxint not detected as longs
>>
>> In my domain model a field is defined as long. When entering this field
>> as:
>>
>>     arguments.mapPut("**melderVolgnummer", 1);
>>
>> It is detected server side as Integer instead of Long. Forcefully  adding
>> 1L or JsonRepresentation( new LongNode(1)) makes no difference.  Server
>> side it appeared Jackson sees this field as IntNode. As a  result isLong()
>> (on both JsonRepresentation and IntNode) returns  false. This results in
>> the following exception.
>>
>>    IllegalArgumentException(**formatExMsg(path, "is not a long"))
>>
>> Attached patch solves this issue.
>>
>> Regards,
>>
>> Minto
>>
>>
>> Quoting minto@xup.nl:
>>
>>  Hi Folks,
>>>
>>> I managed to get something (using RO-applib) partly working. My  current
>>> implementation is based on test code from the TCK.
>>>
>>> Retrieving some information works fine:
>>>
>>>  1) "GET /services/ HTTP/1.1[\r][\n]" (works OK)
>>>  2) "GET /services/servicename? ...." (works OK)
>>>  3) "POST /services/servicename/...." (Fails :( )
>>>
>>> In step 3 I wanted to create a new domain object. Unfortunately the
>>>  server responded with a 500 Internal Server Error. Initially I  thought
>>> this was due to ISIS-265. But after applying the patch the  htmlviewer
>>> works fine but the RO-viewer still gives the same response.
>>>
>>> Looking in the server log I can't find any information about why  POST
>>> request actually failed. Next step for me is to start debug the  RO-viewer.
>>>
>>> If anyone has a clue what is going on here, I am all ears.
>>>
>>> Regards,
>>>
>>> Minto
>>>
>>>
>>> Quoting minto@xup.nl:
>>>
>>>  Oh boy, this look complex.
>>>>
>>>> The code in RO-tck looks like some sort of meta programming. I am
>>>>  looking for a piece of code to create a new domain object using
>>>>  RO-applib. But I have a hard time digesting what's there.
>>>>
>>>> Can someone give me some more hints (hopefully a snippet)
>>>>
>>>> Regards,
>>>>
>>>> Minto
>>>>
>>>>
>>>> Quoting Dan Haywood <da...@haywood-associates.co.uk>**:
>>>>
>>>>  On 1 September 2012 10:29, Minto van der sluis <mi...@xup.nl> wrote:
>>>>>
>>>>>
>>>>>> Should stick with the current release
>>>>>> 0.2.0 or move ahead. How stable is the current trunk version?
>>>>>>
>>>>>>
>>>>> It's pretty stable; starting to move towards getting a release out in
>>>>> the
>>>>> next month or two.
>>>>>
>>>>> And, what's new in trunk is the JDO object store, which may (perhaps)
>>>>> replace the SQL objectstore, at least in the short-term.
>>>>>
>>>>> Also, the v0.2.0 release holds an incomplete cut of the RO viewer
>>>>> (whatever
>>>>> was implemented back in Feb).
>>>>>
>>>>> ~~~
>>>>> If you do decide to track trunk, you might find it easiest to fork my
>>>>> github copy of Isis [1]
>>>>>
>>>>>
>>>>>
>>>>>
>>>>>> I will have a closer look at the latest/trunk ro-applib. I guess
>>>>>> RestfulRestfulClient is entry point to start from.
>>>>>>
>>>>>
>>>>>
>>>>> Yes, org.apache.isis.viewer.**restfulobjects.applib.**RestfulClient.
>>>>>
>>>>> This lets you use either a HATEOAS or a templated URL approach.
>>>>>
>>>>>
>>>>>
>>>>>
>>>>>  But to be able to use
>>>>>> it I probably have to switch to using the trunk version.
>>>>>>
>>>>>>
>>>>> Not sure; I think you'll find that 0.2.0 does have something.  Even
>>>>> so, I
>>>>> do recommend that you switch to trunk
>>>>>
>>>>>
>>>>>>
>>>>>  Speaking slightly selfishly, I'd love you to have a go with using the
>>>>>>> RO
>>>>>>> applib; it'll help us determine where the gaps and annoyances are for
>>>>>>> "real-life" use.
>>>>>>>
>>>>>>
>>>>>> I could give it a try If I knew were to start. Is the 0.2.0 json
>>>>>> viewer
>>>>>> documentation still a good starting point? Since I am lazy ;-) I
>>>>>> wonder
>>>>>> if their exists some sample application already. This could give me a
>>>>>> headstart.
>>>>>>
>>>>>>
>>>>> The tests aren't a bad place to look; you'll find these in
>>>>> restfulobjects-tck.
>>>>>
>>>>> Admittedly, these have been knocked-about a bit and so quite a few are
>>>>> currently are @Ignore'd.  However,
>>>>> the  org.apache.isis.viewer.**restfulobjects.tck.resources.**
>>>>> home.HomePageResourceTest_**accept
>>>>> runs and passes.  (It also uses the isisWebServerRule which bootstraps
>>>>> the
>>>>> web.xml within an integration test).
>>>>>
>>>>> Hope that helps some
>>>>>
>>>>> Dan
>>>>>
>>>>> [1] https://github.com/danhaywood/**apache-isis<https://github.com/danhaywood/apache-isis>
>>>>>
>>>>>
>>>>
>>>>
>>>>
>>>
>>>
>>
>>
>

Re: Best way to interact with the JSON viewer

Posted by mi...@xup.nl.
Additionally ISO8601 date are not supported

When sending:

    "timestamp":"2012-09-06T13:40:34.874+02:00"

I get an "Unparseable date" exception. The following code was used to  
serialize the date:

     DateTime dateTime = new DateTime( new Date() );
     DateTimeFormatter dateTimeFormatter = ISODateTimeFormat.dateTime();
     String dateTimeAsString = dateTimeFormatter.print( dateTime );

What string based date format should be used?

Regards,

Minto


Quoting minto@xup.nl:

> Result of my debug session:
>
> 1) Missing output details
>
> Currently the on the client side debug log shows the following server error:
>
>     "HTTP/1.1 500 Internal Server Error[\r][\n]"
>     "HTTP/1.1 500 Internal Server Error[\r][\n]"
>     "Content-Type:   
> application/json;profile=urn:org.restfulobjects/error[\r][\n]"
>     "Content-Length: 8824[\r][\n]"
>     "Server: Jetty(6.1.26)[\r][\n]"
>
> Details are missing here. Server side I have an exception saying   
> 'Unparseable date: "2012-09-05 09:30"'. The exception message is   
> swallowed since it does not appear in either client or server logging.
>
> The same happened with other messages
>
> 2) Long values < maxint not detected as longs
>
> In my domain model a field is defined as long. When entering this field as:
>
>     arguments.mapPut("melderVolgnummer", 1);
>
> It is detected server side as Integer instead of Long. Forcefully   
> adding 1L or JsonRepresentation( new LongNode(1)) makes no  
> difference.  Server side it appeared Jackson sees this field as  
> IntNode. As a  result isLong() (on both JsonRepresentation and  
> IntNode) returns  false. This results in the following exception.
>
>    IllegalArgumentException(formatExMsg(path, "is not a long"))
>
> Attached patch solves this issue.
>
> Regards,
>
> Minto
>
>
> Quoting minto@xup.nl:
>
>> Hi Folks,
>>
>> I managed to get something (using RO-applib) partly working. My   
>> current implementation is based on test code from the TCK.
>>
>> Retrieving some information works fine:
>>
>>  1) "GET /services/ HTTP/1.1[\r][\n]" (works OK)
>>  2) "GET /services/servicename? ...." (works OK)
>>  3) "POST /services/servicename/...." (Fails :( )
>>
>> In step 3 I wanted to create a new domain object. Unfortunately the  
>>  server responded with a 500 Internal Server Error. Initially I   
>> thought this was due to ISIS-265. But after applying the patch the   
>> htmlviewer works fine but the RO-viewer still gives the same  
>> response.
>>
>> Looking in the server log I can't find any information about why   
>> POST request actually failed. Next step for me is to start debug  
>> the  RO-viewer.
>>
>> If anyone has a clue what is going on here, I am all ears.
>>
>> Regards,
>>
>> Minto
>>
>>
>> Quoting minto@xup.nl:
>>
>>> Oh boy, this look complex.
>>>
>>> The code in RO-tck looks like some sort of meta programming. I am   
>>> looking for a piece of code to create a new domain object using   
>>> RO-applib. But I have a hard time digesting what's there.
>>>
>>> Can someone give me some more hints (hopefully a snippet)
>>>
>>> Regards,
>>>
>>> Minto
>>>
>>>
>>> Quoting Dan Haywood <da...@haywood-associates.co.uk>:
>>>
>>>> On 1 September 2012 10:29, Minto van der sluis <mi...@xup.nl> wrote:
>>>>
>>>>>
>>>>> Should stick with the current release
>>>>> 0.2.0 or move ahead. How stable is the current trunk version?
>>>>>
>>>>
>>>> It's pretty stable; starting to move towards getting a release out in the
>>>> next month or two.
>>>>
>>>> And, what's new in trunk is the JDO object store, which may (perhaps)
>>>> replace the SQL objectstore, at least in the short-term.
>>>>
>>>> Also, the v0.2.0 release holds an incomplete cut of the RO viewer  
>>>> (whatever
>>>> was implemented back in Feb).
>>>>
>>>> ~~~
>>>> If you do decide to track trunk, you might find it easiest to fork my
>>>> github copy of Isis [1]
>>>>
>>>>
>>>>
>>>>>
>>>>> I will have a closer look at the latest/trunk ro-applib. I guess
>>>>> RestfulRestfulClient is entry point to start from.
>>>>
>>>>
>>>> Yes, org.apache.isis.viewer.restfulobjects.applib.RestfulClient.
>>>>
>>>> This lets you use either a HATEOAS or a templated URL approach.
>>>>
>>>>
>>>>
>>>>
>>>>> But to be able to use
>>>>> it I probably have to switch to using the trunk version.
>>>>>
>>>>
>>>> Not sure; I think you'll find that 0.2.0 does have something.  Even so, I
>>>> do recommend that you switch to trunk
>>>>
>>>>>
>>>>
>>>>>> Speaking slightly selfishly, I'd love you to have a go with using the RO
>>>>>> applib; it'll help us determine where the gaps and annoyances are for
>>>>>> "real-life" use.
>>>>>
>>>>> I could give it a try If I knew were to start. Is the 0.2.0 json viewer
>>>>> documentation still a good starting point? Since I am lazy ;-) I wonder
>>>>> if their exists some sample application already. This could give me a
>>>>> headstart.
>>>>>
>>>>
>>>> The tests aren't a bad place to look; you'll find these in
>>>> restfulobjects-tck.
>>>>
>>>> Admittedly, these have been knocked-about a bit and so quite a few are
>>>> currently are @Ignore'd.  However,
>>>> the   
>>>> org.apache.isis.viewer.restfulobjects.tck.resources.home.HomePageResourceTest_accept
>>>> runs and passes.  (It also uses the isisWebServerRule which bootstraps the
>>>> web.xml within an integration test).
>>>>
>>>> Hope that helps some
>>>>
>>>> Dan
>>>>
>>>> [1] https://github.com/danhaywood/apache-isis
>>>>
>>>
>>>
>>>
>>
>>
>
>


Re: Best way to interact with the JSON viewer

Posted by mi...@xup.nl.
Result of my debug session:

1) Missing output details

Currently the on the client side debug log shows the following server error:

     "HTTP/1.1 500 Internal Server Error[\r][\n]"
     "HTTP/1.1 500 Internal Server Error[\r][\n]"
     "Content-Type:  
application/json;profile=urn:org.restfulobjects/error[\r][\n]"
     "Content-Length: 8824[\r][\n]"
     "Server: Jetty(6.1.26)[\r][\n]"

Details are missing here. Server side I have an exception saying  
'Unparseable date: "2012-09-05 09:30"'. The exception message is  
swallowed since it does not appear in either client or server logging.

The same happened with other messages

2) Long values < maxint not detected as longs

In my domain model a field is defined as long. When entering this field as:

     arguments.mapPut("melderVolgnummer", 1);

It is detected server side as Integer instead of Long. Forcefully  
adding 1L or JsonRepresentation( new LongNode(1)) makes no difference.  
Server side it appeared Jackson sees this field as IntNode. As a  
result isLong() (on both JsonRepresentation and IntNode) returns  
false. This results in the following exception.

    IllegalArgumentException(formatExMsg(path, "is not a long"))

Attached patch solves this issue.

Regards,

Minto


Quoting minto@xup.nl:

> Hi Folks,
>
> I managed to get something (using RO-applib) partly working. My  
> current implementation is based on test code from the TCK.
>
> Retrieving some information works fine:
>
>   1) "GET /services/ HTTP/1.1[\r][\n]" (works OK)
>   2) "GET /services/servicename? ...." (works OK)
>   3) "POST /services/servicename/...." (Fails :( )
>
> In step 3 I wanted to create a new domain object. Unfortunately the  
> server responded with a 500 Internal Server Error. Initially I  
> thought this was due to ISIS-265. But after applying the patch the  
> htmlviewer works fine but the RO-viewer still gives the same response.
>
> Looking in the server log I can't find any information about why  
> POST request actually failed. Next step for me is to start debug the  
> RO-viewer.
>
> If anyone has a clue what is going on here, I am all ears.
>
> Regards,
>
> Minto
>
>
> Quoting minto@xup.nl:
>
>> Oh boy, this look complex.
>>
>> The code in RO-tck looks like some sort of meta programming. I am  
>> looking for a piece of code to create a new domain object using  
>> RO-applib. But I have a hard time digesting what's there.
>>
>> Can someone give me some more hints (hopefully a snippet)
>>
>> Regards,
>>
>> Minto
>>
>>
>> Quoting Dan Haywood <da...@haywood-associates.co.uk>:
>>
>>> On 1 September 2012 10:29, Minto van der sluis <mi...@xup.nl> wrote:
>>>
>>>>
>>>> Should stick with the current release
>>>> 0.2.0 or move ahead. How stable is the current trunk version?
>>>>
>>>
>>> It's pretty stable; starting to move towards getting a release out in the
>>> next month or two.
>>>
>>> And, what's new in trunk is the JDO object store, which may (perhaps)
>>> replace the SQL objectstore, at least in the short-term.
>>>
>>> Also, the v0.2.0 release holds an incomplete cut of the RO viewer (whatever
>>> was implemented back in Feb).
>>>
>>> ~~~
>>> If you do decide to track trunk, you might find it easiest to fork my
>>> github copy of Isis [1]
>>>
>>>
>>>
>>>>
>>>> I will have a closer look at the latest/trunk ro-applib. I guess
>>>> RestfulRestfulClient is entry point to start from.
>>>
>>>
>>> Yes, org.apache.isis.viewer.restfulobjects.applib.RestfulClient.
>>>
>>> This lets you use either a HATEOAS or a templated URL approach.
>>>
>>>
>>>
>>>
>>>> But to be able to use
>>>> it I probably have to switch to using the trunk version.
>>>>
>>>
>>> Not sure; I think you'll find that 0.2.0 does have something.  Even so, I
>>> do recommend that you switch to trunk
>>>
>>>>
>>>
>>>>> Speaking slightly selfishly, I'd love you to have a go with using the RO
>>>>> applib; it'll help us determine where the gaps and annoyances are for
>>>>> "real-life" use.
>>>>
>>>> I could give it a try If I knew were to start. Is the 0.2.0 json viewer
>>>> documentation still a good starting point? Since I am lazy ;-) I wonder
>>>> if their exists some sample application already. This could give me a
>>>> headstart.
>>>>
>>>
>>> The tests aren't a bad place to look; you'll find these in
>>> restfulobjects-tck.
>>>
>>> Admittedly, these have been knocked-about a bit and so quite a few are
>>> currently are @Ignore'd.  However,
>>> the  
>>> org.apache.isis.viewer.restfulobjects.tck.resources.home.HomePageResourceTest_accept
>>> runs and passes.  (It also uses the isisWebServerRule which bootstraps the
>>> web.xml within an integration test).
>>>
>>> Hope that helps some
>>>
>>> Dan
>>>
>>> [1] https://github.com/danhaywood/apache-isis
>>>
>>
>>
>>
>
>


Re: Best way to interact with the JSON viewer

Posted by mi...@xup.nl.
Hi Folks,

I managed to get something (using RO-applib) partly working. My  
current implementation is based on test code from the TCK.

Retrieving some information works fine:

   1) "GET /services/ HTTP/1.1[\r][\n]" (works OK)
   2) "GET /services/servicename? ...." (works OK)
   3) "POST /services/servicename/...." (Fails :( )

In step 3 I wanted to create a new domain object. Unfortunately the  
server responded with a 500 Internal Server Error. Initially I thought  
this was due to ISIS-265. But after applying the patch the htmlviewer  
works fine but the RO-viewer still gives the same response.

Looking in the server log I can't find any information about why POST  
request actually failed. Next step for me is to start debug the  
RO-viewer.

If anyone has a clue what is going on here, I am all ears.

Regards,

Minto


Quoting minto@xup.nl:

> Oh boy, this look complex.
>
> The code in RO-tck looks like some sort of meta programming. I am  
> looking for a piece of code to create a new domain object using  
> RO-applib. But I have a hard time digesting what's there.
>
> Can someone give me some more hints (hopefully a snippet)
>
> Regards,
>
> Minto
>
>
> Quoting Dan Haywood <da...@haywood-associates.co.uk>:
>
>> On 1 September 2012 10:29, Minto van der sluis <mi...@xup.nl> wrote:
>>
>>>
>>> Should stick with the current release
>>> 0.2.0 or move ahead. How stable is the current trunk version?
>>>
>>
>> It's pretty stable; starting to move towards getting a release out in the
>> next month or two.
>>
>> And, what's new in trunk is the JDO object store, which may (perhaps)
>> replace the SQL objectstore, at least in the short-term.
>>
>> Also, the v0.2.0 release holds an incomplete cut of the RO viewer (whatever
>> was implemented back in Feb).
>>
>> ~~~
>> If you do decide to track trunk, you might find it easiest to fork my
>> github copy of Isis [1]
>>
>>
>>
>>>
>>> I will have a closer look at the latest/trunk ro-applib. I guess
>>> RestfulRestfulClient is entry point to start from.
>>
>>
>> Yes, org.apache.isis.viewer.restfulobjects.applib.RestfulClient.
>>
>> This lets you use either a HATEOAS or a templated URL approach.
>>
>>
>>
>>
>>> But to be able to use
>>> it I probably have to switch to using the trunk version.
>>>
>>
>> Not sure; I think you'll find that 0.2.0 does have something.  Even so, I
>> do recommend that you switch to trunk
>>
>> >
>>
>>>> Speaking slightly selfishly, I'd love you to have a go with using the RO
>>>> applib; it'll help us determine where the gaps and annoyances are for
>>>> "real-life" use.
>>>
>>> I could give it a try If I knew were to start. Is the 0.2.0 json viewer
>>> documentation still a good starting point? Since I am lazy ;-) I wonder
>>> if their exists some sample application already. This could give me a
>>> headstart.
>>>
>>
>> The tests aren't a bad place to look; you'll find these in
>> restfulobjects-tck.
>>
>> Admittedly, these have been knocked-about a bit and so quite a few are
>> currently are @Ignore'd.  However,
>> the  
>> org.apache.isis.viewer.restfulobjects.tck.resources.home.HomePageResourceTest_accept
>> runs and passes.  (It also uses the isisWebServerRule which bootstraps the
>> web.xml within an integration test).
>>
>> Hope that helps some
>>
>> Dan
>>
>> [1] https://github.com/danhaywood/apache-isis
>>
>
>
>


Re: Best way to interact with the JSON viewer

Posted by mi...@xup.nl.
Oh boy, this look complex.

The code in RO-tck looks like some sort of meta programming. I am  
looking for a piece of code to create a new domain object using  
RO-applib. But I have a hard time digesting what's there.

Can someone give me some more hints (hopefully a snippet)

Regards,

Minto


Quoting Dan Haywood <da...@haywood-associates.co.uk>:

> On 1 September 2012 10:29, Minto van der sluis <mi...@xup.nl> wrote:
>
>>
>> Should stick with the current release
>> 0.2.0 or move ahead. How stable is the current trunk version?
>>
>
> It's pretty stable; starting to move towards getting a release out in the
> next month or two.
>
> And, what's new in trunk is the JDO object store, which may (perhaps)
> replace the SQL objectstore, at least in the short-term.
>
> Also, the v0.2.0 release holds an incomplete cut of the RO viewer (whatever
> was implemented back in Feb).
>
> ~~~
> If you do decide to track trunk, you might find it easiest to fork my
> github copy of Isis [1]
>
>
>
>>
>> I will have a closer look at the latest/trunk ro-applib. I guess
>> RestfulRestfulClient is entry point to start from.
>
>
> Yes, org.apache.isis.viewer.restfulobjects.applib.RestfulClient.
>
> This lets you use either a HATEOAS or a templated URL approach.
>
>
>
>
>> But to be able to use
>> it I probably have to switch to using the trunk version.
>>
>
> Not sure; I think you'll find that 0.2.0 does have something.  Even so, I
> do recommend that you switch to trunk
>
>  >
>
>> > Speaking slightly selfishly, I'd love you to have a go with using the RO
>> > applib; it'll help us determine where the gaps and annoyances are for
>> > "real-life" use.
>>
>> I could give it a try If I knew were to start. Is the 0.2.0 json viewer
>> documentation still a good starting point? Since I am lazy ;-) I wonder
>> if their exists some sample application already. This could give me a
>> headstart.
>>
>
> The tests aren't a bad place to look; you'll find these in
> restfulobjects-tck.
>
> Admittedly, these have been knocked-about a bit and so quite a few are
> currently are @Ignore'd.  However,
> the  
> org.apache.isis.viewer.restfulobjects.tck.resources.home.HomePageResourceTest_accept
> runs and passes.  (It also uses the isisWebServerRule which bootstraps the
> web.xml within an integration test).
>
> Hope that helps some
>
> Dan
>
> [1] https://github.com/danhaywood/apache-isis
>