Uploaded image for project: 'Causeway'
  1. Causeway
  2. CAUSEWAY-2234

[Performance] During the render phase, don't populate the execution call graphs with results of mixins being invoked.

    XMLWordPrintableJSON

Details

    • Improvement
    • Status: Open
    • Minor
    • Resolution: Unresolved
    • None
    • 2.2.0
    • Viewer Wicket

    Description

      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:

      @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)
          );
      }
       

      which prevents the action invocation in the render phase from publishing anything.  

      However, inspection of the internal data structures does currently show that the Interaction executionGraph (push, pop) gets populated, there is no corresponding hack... see attached screenshot, that shows a number of executions for all of the contributed properties of a SimpleObject.  This isn't harmful per se, but it is odd that we spend all this effort to create the execution graph for it to be consumed by no-one at all.

      The bottom line is that actions don't know which phase they are being executed in, and so they do all this extra work.

      Perhaps the solution might be to include the phase in the InteractionContext, so we can therefore avoid this unnecessary work populating the executionGraph.

      Attachments

        1. screenshot-1.png
          875 kB
          Daniel Keir Haywood

        Activity

          People

            hobrom Andi Huber
            danhaywood Daniel Keir Haywood
            Votes:
            0 Vote for this issue
            Watchers:
            1 Start watching this issue

            Dates

              Created:
              Updated: