[ 
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)

Reply via email to