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 2020/04/17 13:20:25 UTC

[isis] branch master updated: ISIS-2340: serialization fixes (part 2)

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 acd98e6  ISIS-2340: serialization fixes (part 2)
acd98e6 is described below

commit acd98e642a5c66e7f6ac13bd8492bf23ab2b5ac0
Author: Andi Huber <ah...@apache.org>
AuthorDate: Fri Apr 17 15:20:14 2020 +0200

    ISIS-2340: serialization fixes (part 2)
---
 .../apache/isis/viewer/wicket/model/links/LinkAndLabel.java    |  9 +++++----
 .../actionmenu/entityactions/EntityActionLinkFactory.java      |  8 ++------
 .../actionmenu/serviceactions/MenuActionLinkFactory.java       | 10 +++++-----
 .../actionmenu/serviceactions/ServiceActionUtil.java           |  2 +-
 4 files changed, 13 insertions(+), 16 deletions(-)

diff --git a/viewers/wicket/model/src/main/java/org/apache/isis/viewer/wicket/model/links/LinkAndLabel.java b/viewers/wicket/model/src/main/java/org/apache/isis/viewer/wicket/model/links/LinkAndLabel.java
index 98dfa71..a9e4533 100644
--- a/viewers/wicket/model/src/main/java/org/apache/isis/viewer/wicket/model/links/LinkAndLabel.java
+++ b/viewers/wicket/model/src/main/java/org/apache/isis/viewer/wicket/model/links/LinkAndLabel.java
@@ -41,11 +41,11 @@ import org.apache.isis.viewer.wicket.model.models.EntityModel;
 import lombok.NonNull;
 import lombok.val;
 
-public class LinkAndLabel extends ActionUiModel<AbstractLink> implements Serializable  {
+public final class LinkAndLabel extends ActionUiModel<AbstractLink> implements Serializable  {
 
     private static final long serialVersionUID = 1L;
     
-    public static LinkAndLabel newLinkAndLabel(
+    public static LinkAndLabel of(
             final ActionLinkUiComponentFactoryWkt uiComponentFactory,
             final String named,
             final EntityModel actionHolderModel,
@@ -53,7 +53,7 @@ public class LinkAndLabel extends ActionUiModel<AbstractLink> implements Seriali
         return new LinkAndLabel(uiComponentFactory, named, actionHolderModel, objectAction);
     }
     
-    protected LinkAndLabel(
+    private LinkAndLabel(
             final ActionLinkUiComponentFactoryWkt uiComponentFactory,
             final String named,
             final EntityModel actionHolderModel,
@@ -91,7 +91,8 @@ public class LinkAndLabel extends ActionUiModel<AbstractLink> implements Seriali
             this.uiComponentFactory = (ActionLinkUiComponentFactoryWkt)target.uiComponentFactory;
             this.named = target.getNamed();
             this.actionHolder = (EntityModel) target.getActionHolder();
-            this.actionHolderSpecId = actionHolder.getManagedObject().getSpecification().getSpecId(); 
+            // make sure we do this without side-effects
+            this.actionHolderSpecId = actionHolder.getTypeOfSpecification().getSpecId(); 
             this.objectActionId = target.getObjectAction().getId();
         }
 
diff --git a/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/actionmenu/entityactions/EntityActionLinkFactory.java b/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/actionmenu/entityactions/EntityActionLinkFactory.java
index b464d22..ad00d04 100644
--- a/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/actionmenu/entityactions/EntityActionLinkFactory.java
+++ b/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/actionmenu/entityactions/EntityActionLinkFactory.java
@@ -19,8 +19,6 @@
 
 package org.apache.isis.viewer.wicket.ui.components.actionmenu.entityactions;
 
-import org.apache.wicket.markup.html.link.AbstractLink;
-
 import org.apache.isis.core.metamodel.spec.ManagedObject;
 import org.apache.isis.core.metamodel.spec.feature.ObjectAction;
 import org.apache.isis.viewer.wicket.model.links.LinkAndLabel;
@@ -60,10 +58,8 @@ public final class EntityActionLinkFactory extends LinkAndLabelFactoryAbstract {
         // previously we computed visibility and usability here, but
         // this is now done at the point of rendering
 
-        final AbstractLink link = super.newLinkComponent(objectAction, toggledMementosProviderIfAny);
-
-        return LinkAndLabel.newLinkAndLabel(
-                model->link,
+        return LinkAndLabel.of(
+                model->super.newLinkComponent(model.getObjectAction(), toggledMementosProviderIfAny),
                 named, 
                 this.targetEntityModel, 
                 objectAction);
diff --git a/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/actionmenu/serviceactions/MenuActionLinkFactory.java b/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/actionmenu/serviceactions/MenuActionLinkFactory.java
index a4c7a3a..7970dc6 100644
--- a/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/actionmenu/serviceactions/MenuActionLinkFactory.java
+++ b/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/actionmenu/serviceactions/MenuActionLinkFactory.java
@@ -19,8 +19,6 @@
 
 package org.apache.isis.viewer.wicket.ui.components.actionmenu.serviceactions;
 
-import org.apache.wicket.markup.html.link.AbstractLink;
-
 import org.apache.isis.core.metamodel.spec.feature.ObjectAction;
 import org.apache.isis.viewer.wicket.model.links.LinkAndLabel;
 import org.apache.isis.viewer.wicket.model.models.EntityModel;
@@ -41,9 +39,11 @@ class MenuActionLinkFactory extends LinkAndLabelFactoryAbstract {
             final ObjectAction objectAction, 
             final String named) {
 
-        final AbstractLink link = super.newLinkComponent(objectAction, toggledMementosProviderIfAny);
-        
-        return LinkAndLabel.newLinkAndLabel(model->link, named, this.targetEntityModel, objectAction);
+        return LinkAndLabel.of(
+                model->super.newLinkComponent(model.getObjectAction(), toggledMementosProviderIfAny), 
+                named, 
+                this.targetEntityModel, 
+                objectAction);
     }
 
 
diff --git a/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/actionmenu/serviceactions/ServiceActionUtil.java b/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/actionmenu/serviceactions/ServiceActionUtil.java
index 891c20a..7a2ab96 100644
--- a/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/actionmenu/serviceactions/ServiceActionUtil.java
+++ b/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/actionmenu/serviceactions/ServiceActionUtil.java
@@ -122,7 +122,7 @@ public final class ServiceActionUtil {
                     PageAbstract.ID_MENU_LINK, 
                     serviceModel);
             
-            return LinkAndLabel.newLinkAndLabel(
+            return LinkAndLabel.of(
                     model->actionLinkFactory.newActionLink(model.getObjectAction(), named).getUiComponent(),
                     named,
                     serviceModel,