You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@isis.apache.org by "Daniel Keir Haywood (Jira)" <ji...@apache.org> on 2020/01/01 13:58:00 UTC

[jira] [Updated] (ISIS-2234) During the render phase, don't populate the execution call graphs with results of mixins being invoked.

     [ https://issues.apache.org/jira/browse/ISIS-2234?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Daniel Keir Haywood updated ISIS-2234:
--------------------------------------
    Attachment: screenshot-1.png

> During the render phase, don't populate the execution call graphs with results of mixins being invoked.
> -------------------------------------------------------------------------------------------------------
>
>                 Key: ISIS-2234
>                 URL: https://issues.apache.org/jira/browse/ISIS-2234
>             Project: Isis
>          Issue Type: Improvement
>            Reporter: Daniel Keir Haywood
>            Priority: Minor
>             Fix For: 2.3.0
>
>         Attachments: screenshot-1.png
>
>
> This is somewhat similar to ISIS-1656, which is to flush audit/publishing etc at the end of the ACTION phase, rather than the RENDER phase.
> More broadly stated: RENDERing shouldn't have any side-effects.
> ~~~
> Looking at the code today, we can see that in OneToOneAssociationMixedIn there's a hack:
> {code:java}
> @Override
> public ManagedObject get(
>         final ManagedObject mixedInAdapter,
>         final InteractionInitiatedBy interactionInitiatedBy) {
>     val mixinAdapter = mixinAdapterFor(mixinType, mixedInAdapter);
>     return getPublishingServiceInternal().withPublishingSuppressed(
>             () -> mixinAction.executeInternal(
>                     mixinAdapter, mixedInAdapter, Can.empty(), interactionInitiatedBy)
>     );
> }
>  {code}
> which prevents the action invocation in the render phase from doing anything.  However, inspection of the internal data structures does currently show that the Interaction executionGraph (push, pop) gets populated.
> ... the bottom line is that actions don't know which phase they are being executed in.
> Perhaps the solution might be to include that info in the InteractionContext ???



--
This message was sent by Atlassian Jira
(v8.3.4#803005)