[
https://issues.apache.org/jira/browse/ISIS-899?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14153004#comment-14153004
]
Vladimir Nisevic edited comment on ISIS-899 at 9/30/14 9:21 AM:
----------------------------------------------------------------
Hi Jeroen, Dan. I've just tested my two ViewModel classes with latest master
version - I've put my code into "todoapp-dom" project and recompiled.
Domain Service:
{code}
@Named("Address Search API")
@DomainService(menuOrder = "1.3")
public class AsePublicService {
@Render(Type.EAGERLY)
public Address getAddress(@Named("Source System") final String
sourceSystem, @Named("User") final String user, @Named("Agent") final String
agent, @Named("LKMS-ID") final String lkmsId, @Named("Valid Location") final
boolean validLocation) {
final Address address = new Address();
address.setHousenumber("12");
Street street = new Street();
street.setStreetname("5th Avenue");
address.setStreet(street);
return address;
}
{code}
Address Model:
{code}
package a1.ase.viewmodel;
import org.apache.isis.applib.annotation.MemberOrder;
import org.apache.isis.applib.annotation.ViewModel;
@ViewModel
public class Address {
public String title() {
return "Address lkmsId:" + lkmsId;
}
// {{ LkmsId (property)
private String lkmsId;
@MemberOrder(sequence = "1")
public String getLkmsId() {
return lkmsId;
}
public void setLkmsId(final String lkmsId) {
this.lkmsId = lkmsId;
}
// }}
// {{ Street (property)
private Street street;
@MemberOrder(sequence = "3")
public Street getStreet() {
return street;
}
public void setStreet(final Street street) {
this.street = street;
}
// }}
// {{ Housenumber (property)
private String housenumber;
@MemberOrder(sequence = "2")
public String getHousenumber() {
return housenumber;
}
public void setHousenumber(final String housenumber) {
this.housenumber = housenumber;
}
// }}
}
}
{code}
Street Model:
{code}
package a1.ase.viewmodel;
import org.apache.isis.applib.annotation.MemberOrder;
import org.apache.isis.applib.annotation.ViewModel;
@ViewModel
public class Street {
public String title() {
return "Street lkmsId:" + lkmsId;
}
// {{ LkmsId (property)
private String lkmsId;
@MemberOrder(sequence = "1")
public String getLkmsId() {
return lkmsId;
}
public void setLkmsId(final String lkmsId) {
this.lkmsId = lkmsId;
}
// }}
// {{ Streetname (property)
private String streetname;
@MemberOrder(sequence = "2")
public String getStreetname() {
return streetname;
}
public void setStreetname(final String aName) {
this.streetname = aName;
}
// }}
}
{code}
Here my feedback
1.) using wicket viewer and calling the method getAddress, I get next exception
{code}
Stack trace:
org.apache.isis.core.runtime.persistence.PojoRecreationException
Could not recreate pojo for oid oid
*a1.ase.viewmodel.Address:PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KPG1lbWVudG8-PGhvdXNlbnVtYmVyPjEyPC9ob3VzZW51bWJlcj48c3RyZWV0LmJvb2ttYXJrPmExLmFzZS52aWV3bW9kZWwuU3RyZWV0OlBEOTRiV3dnZG1WeWMybHZiajBpTVM0d0lpQmxibU52WkdsdVp6MGlWVlJHTFRnaVB6NEtQRzFsYldWdWRHOC1QSE4wY21WbGRHNWhiV1UtTlhSb0lFRjJaVzUxWlR3dmMzUnlaV1YwYm1GdFpUNDhMMjFsYldWdWRHOC08L3N0cmVldC5ib29rbWFyaz48L21lbWVudG8-
org.apache.isis.core.runtime.persistence.adaptermanager.AdapterManagerDefault#adapterFor(AdapterManagerDefault.java:311)
org.apache.isis.viewer.wicket.model.mementos.ObjectAdapterMemento$Type$2#recreateAdapter(ObjectAdapterMemento.java:112)
org.apache.isis.viewer.wicket.model.mementos.ObjectAdapterMemento$Type#getAdapter(ObjectAdapterMemento.java:183)
org.apache.isis.viewer.wicket.model.m
{code}
2.) using restul viewer and calling
http://localhost:8080/restful/services/toDoItems/actions/newToDo/invoke with
parameters
{code}
{
"sourceSystem": {"value": "CRM"},
"user": {"value": "user1"},
"agent": {"value": "agent1"},
"lKMS-ID": {"value": "123"},
"validLocation": {"value": "true"}
}
{code}
I get this result
{code}
STATUS 200 OK
TIME 118 ms
Pretty Raw Preview Copy
{code}
was (Author: niv):
Hi Jeroen, Dan. I've just tested my two ViewModel classes with latest master
version - I've put my code into "todoapp-dom" project and recompiled.
Domain Service:
{code}
@Named("Address Search API")
@DomainService(menuOrder = "1.3")
public class AsePublicService {
@Render(Type.EAGERLY)
public Address getAddress(@Named("Source System") final String
sourceSystem, @Named("User") final String user, @Named("Agent") final String
agent, @Named("LKMS-ID") final String lkmsId, @Named("Valid Location") final
boolean validLocation) {
final Address address = new Address();
address.setHousenumber("12");
Street street = new Street();
street.setStreetname("5th Avenue");
address.setStreet(street);
return address;
}
{code}
package a1.ase.viewmodel;
import org.apache.isis.applib.annotation.MemberOrder;
import org.apache.isis.applib.annotation.ViewModel;
@ViewModel
public class Address {
public String title() {
return "Address lkmsId:" + lkmsId;
}
// {{ LkmsId (property)
private String lkmsId;
@MemberOrder(sequence = "1")
public String getLkmsId() {
return lkmsId;
}
public void setLkmsId(final String lkmsId) {
this.lkmsId = lkmsId;
}
// }}
// {{ Street (property)
private Street street;
@MemberOrder(sequence = "3")
public Street getStreet() {
return street;
}
public void setStreet(final Street street) {
this.street = street;
}
// }}
// {{ Housenumber (property)
private String housenumber;
@MemberOrder(sequence = "2")
public String getHousenumber() {
return housenumber;
}
public void setHousenumber(final String housenumber) {
this.housenumber = housenumber;
}
// }}
}
}
{code}
Street Model:
{code}
package a1.ase.viewmodel;
import org.apache.isis.applib.annotation.MemberOrder;
import org.apache.isis.applib.annotation.ViewModel;
@ViewModel
public class Street {
public String title() {
return "Street lkmsId:" + lkmsId;
}
// {{ LkmsId (property)
private String lkmsId;
@MemberOrder(sequence = "1")
public String getLkmsId() {
return lkmsId;
}
public void setLkmsId(final String lkmsId) {
this.lkmsId = lkmsId;
}
// }}
// {{ Streetname (property)
private String streetname;
@MemberOrder(sequence = "2")
public String getStreetname() {
return streetname;
}
public void setStreetname(final String aName) {
this.streetname = aName;
}
// }}
}
{code}
Here my feedback
1.) using wicket viewer and calling the method getAddress, I get next exception
{code}
Stack trace:
org.apache.isis.core.runtime.persistence.PojoRecreationException
Could not recreate pojo for oid oid
*a1.ase.viewmodel.Address:PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KPG1lbWVudG8-PGhvdXNlbnVtYmVyPjEyPC9ob3VzZW51bWJlcj48c3RyZWV0LmJvb2ttYXJrPmExLmFzZS52aWV3bW9kZWwuU3RyZWV0OlBEOTRiV3dnZG1WeWMybHZiajBpTVM0d0lpQmxibU52WkdsdVp6MGlWVlJHTFRnaVB6NEtQRzFsYldWdWRHOC1QSE4wY21WbGRHNWhiV1UtTlhSb0lFRjJaVzUxWlR3dmMzUnlaV1YwYm1GdFpUNDhMMjFsYldWdWRHOC08L3N0cmVldC5ib29rbWFyaz48L21lbWVudG8-
org.apache.isis.core.runtime.persistence.adaptermanager.AdapterManagerDefault#adapterFor(AdapterManagerDefault.java:311)
org.apache.isis.viewer.wicket.model.mementos.ObjectAdapterMemento$Type$2#recreateAdapter(ObjectAdapterMemento.java:112)
org.apache.isis.viewer.wicket.model.mementos.ObjectAdapterMemento$Type#getAdapter(ObjectAdapterMemento.java:183)
org.apache.isis.viewer.wicket.model.m
{code}
2.) using restul viewer and calling
http://localhost:8080/restful/services/toDoItems/actions/newToDo/invoke with
parameters
{code}
{
"sourceSystem": {"value": "CRM"},
"user": {"value": "user1"},
"agent": {"value": "agent1"},
"lKMS-ID": {"value": "123"},
"validLocation": {"value": "true"}
}
{code}
I get this result
{code}
STATUS 200 OK
TIME 118 ms
Pretty Raw Preview Copy
{code}
> Can't return a view model in Isis 1.6.0 over RO viewer.
> -------------------------------------------------------
>
> Key: ISIS-899
> URL: https://issues.apache.org/jira/browse/ISIS-899
> Project: Isis
> Issue Type: Bug
> Components: Core: Viewer: RestfulObjects
> Affects Versions: core-1.6.0
> Reporter: Dan Haywood
> Assignee: Dan Haywood
> Fix For: core-1.7.0
>
> Attachments: Address.java, AsePublicService.java, Street.java,
> Wicket.png
>
>
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)