You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@isis.apache.org by ah...@apache.org on 2021/12/09 15:46:16 UTC

[isis] branch master updated: ISIS-2911: [REST] simplified renderer fixes

This is an automated email from the ASF dual-hosted git repository.

ahuber pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/isis.git


The following commit(s) were added to refs/heads/master by this push:
     new 54b9091  ISIS-2911: [REST] simplified renderer fixes
54b9091 is described below

commit 54b9091c2787b366a412bf9b4297d2fcc80459d0
Author: Andi Huber <ah...@apache.org>
AuthorDate: Thu Dec 9 16:45:23 2021 +0100

    ISIS-2911: [REST] simplified renderer fixes
    
    - also a regression since introducing new PackedManagedObject
---
 .../restfulobjects/rendering/domainobjects/ListReprRenderer.java    | 5 ++++-
 .../rendering/domainobjects/ObjectAndActionInvocation.java          | 4 +++-
 .../rendering/domainobjects/ObjectCollectionReprRenderer.java       | 6 ++----
 3 files changed, 9 insertions(+), 6 deletions(-)

diff --git a/viewers/restfulobjects/rendering/src/main/java/org/apache/isis/viewer/restfulobjects/rendering/domainobjects/ListReprRenderer.java b/viewers/restfulobjects/rendering/src/main/java/org/apache/isis/viewer/restfulobjects/rendering/domainobjects/ListReprRenderer.java
index 3e57342..db8cf2c5 100644
--- a/viewers/restfulobjects/rendering/src/main/java/org/apache/isis/viewer/restfulobjects/rendering/domainobjects/ListReprRenderer.java
+++ b/viewers/restfulobjects/rendering/src/main/java/org/apache/isis/viewer/restfulobjects/rendering/domainobjects/ListReprRenderer.java
@@ -40,7 +40,10 @@ extends ReprRendererAbstract<Stream<ManagedObject>> {
     private ObjectSpecification returnType;
     private Rel elementRel;
 
-    public ListReprRenderer(final IResourceContext resourceContext, final LinkFollowSpecs linkFollower, final JsonRepresentation representation) {
+    public ListReprRenderer(
+            final IResourceContext resourceContext,
+            final LinkFollowSpecs linkFollower,
+            final JsonRepresentation representation) {
         super(resourceContext, linkFollower, RepresentationType.LIST, representation);
         usingLinkToBuilder(new DomainObjectLinkTo());
     }
diff --git a/viewers/restfulobjects/rendering/src/main/java/org/apache/isis/viewer/restfulobjects/rendering/domainobjects/ObjectAndActionInvocation.java b/viewers/restfulobjects/rendering/src/main/java/org/apache/isis/viewer/restfulobjects/rendering/domainobjects/ObjectAndActionInvocation.java
index 897bcf8..d428d44 100644
--- a/viewers/restfulobjects/rendering/src/main/java/org/apache/isis/viewer/restfulobjects/rendering/domainobjects/ObjectAndActionInvocation.java
+++ b/viewers/restfulobjects/rendering/src/main/java/org/apache/isis/viewer/restfulobjects/rendering/domainobjects/ObjectAndActionInvocation.java
@@ -27,6 +27,7 @@ import org.apache.isis.core.metamodel.facets.object.encodeable.EncodableFacet;
 import org.apache.isis.core.metamodel.interactions.managed.ActionInteraction;
 import org.apache.isis.core.metamodel.spec.ManagedObject;
 import org.apache.isis.core.metamodel.spec.ObjectSpecification;
+import org.apache.isis.core.metamodel.spec.PackedManagedObject;
 import org.apache.isis.core.metamodel.spec.feature.ObjectAction;
 import org.apache.isis.viewer.restfulobjects.applib.JsonRepresentation;
 import org.apache.isis.viewer.restfulobjects.applib.domainobjects.ActionResultRepresentation;
@@ -77,7 +78,8 @@ public class ObjectAndActionInvocation {
         // which is introspected eagerly on application start and should be the binding contract
         val actualReturnTypeSpec = returnedAdapter.getSpecification();
 
-        if (isVector(actualReturnTypeSpec)) {
+        if (returnedAdapter instanceof PackedManagedObject
+                || isVector(actualReturnTypeSpec)) {
 
             // though not strictly required, try to be consistent:  empty list vs populated list
             if(elementAdapters.get().isEmpty()) {
diff --git a/viewers/restfulobjects/rendering/src/main/java/org/apache/isis/viewer/restfulobjects/rendering/domainobjects/ObjectCollectionReprRenderer.java b/viewers/restfulobjects/rendering/src/main/java/org/apache/isis/viewer/restfulobjects/rendering/domainobjects/ObjectCollectionReprRenderer.java
index 770ab8f..286028b 100644
--- a/viewers/restfulobjects/rendering/src/main/java/org/apache/isis/viewer/restfulobjects/rendering/domainobjects/ObjectCollectionReprRenderer.java
+++ b/viewers/restfulobjects/rendering/src/main/java/org/apache/isis/viewer/restfulobjects/rendering/domainobjects/ObjectCollectionReprRenderer.java
@@ -20,7 +20,6 @@ package org.apache.isis.viewer.restfulobjects.rendering.domainobjects;
 
 import java.util.List;
 import java.util.Objects;
-import java.util.stream.Stream;
 
 import org.apache.isis.applib.annotation.Where;
 import org.apache.isis.commons.internal.collections._Lists;
@@ -103,11 +102,10 @@ extends AbstractObjectMemberReprRenderer<OneToManyAssociation> {
                 && renderEagerly(valueAdapter)
                 || !followHref.isTerminated();
 
-        final Stream<ManagedObject> elementAdapters = CollectionFacet.streamAdapters(valueAdapter);
-
         final List<JsonRepresentation> list = _Lists.newArrayList();
 
-        elementAdapters.forEach(elementAdapter->{
+        CollectionFacet.streamAdapters(valueAdapter)
+        .forEach(elementAdapter->{
             final LinkBuilder valueLinkBuilder = DomainObjectReprRenderer
                     .newLinkToBuilder(resourceContext, Rel.VALUE, elementAdapter);
             if(eagerlyRender) {