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

danhaywood pushed a commit to branch ISIS-3110
in repository https://gitbox.apache.org/repos/asf/isis.git


The following commit(s) were added to refs/heads/ISIS-3110 by this push:
     new 6680a8c735 ISIS-3110: more polishing
6680a8c735 is described below

commit 6680a8c7356909e6330ef02eb559a69a3170af4c
Author: Dan Haywood <[email protected]>
AuthorDate: Thu Aug 4 20:38:54 2022 +0100

    ISIS-3110: more polishing
---
 .../applib/services/commanddto/HasCommandDto.java  |  4 +-
 .../applib/services/iactn/HasInteractionDto.java   |  4 +-
 .../applib/IsisModuleExtCommandLogApplib.java      |  6 ++
 .../HasInteractionId_commandLogEntry.java          |  5 ++
 .../contributions/Object_recentCommands.java       |  3 +-
 .../commandlog/applib/dom/CommandLogEntry.java     |  5 +-
 .../applib/IsisModuleExtExecutionLogApplib.java    |  4 ++
 .../executionlog/applib/app/ExecutionLogMenu.java  | 20 ++++++
 .../contributions/Object_recentExecutions.java     |  3 +-
 .../executionlog/applib/dom/ExecutionLogEntry.java |  3 -
 .../dom/ExecutionLogEntry.layout.fallback.xml      | 30 +++++---
 .../ExecutionLogEntry_siblingExecutions.java       |  4 +-
 .../applib/IsisModuleExtExecutionOutboxApplib.java |  3 +
 .../applib/app/ExecutionOutboxMenu.java}           | 35 +++++++---
 .../dom/ExecutionOutboxEntry.layout.fallback.xml   | 81 ++++++++++++----------
 .../applib/IsisModuleExtAuditTrailApplib.java      |  7 +-
 .../audittrail/applib/dom/AuditTrailEntry.java     |  3 -
 .../applib/dom/AuditTrailEntry.layout.fallback.xml | 60 ++++++++++------
 18 files changed, 184 insertions(+), 96 deletions(-)

diff --git 
a/api/applib/src/main/java/org/apache/isis/applib/services/commanddto/HasCommandDto.java
 
b/api/applib/src/main/java/org/apache/isis/applib/services/commanddto/HasCommandDto.java
index 1fb1617079..be5855aa4f 100644
--- 
a/api/applib/src/main/java/org/apache/isis/applib/services/commanddto/HasCommandDto.java
+++ 
b/api/applib/src/main/java/org/apache/isis/applib/services/commanddto/HasCommandDto.java
@@ -24,6 +24,7 @@ import java.lang.annotation.RetentionPolicy;
 import java.lang.annotation.Target;
 
 import org.apache.isis.applib.annotation.Editing;
+import org.apache.isis.applib.annotation.LabelPosition;
 import org.apache.isis.applib.annotation.Property;
 import org.apache.isis.applib.annotation.PropertyLayout;
 import org.apache.isis.applib.annotation.ValueSemantics;
@@ -39,7 +40,8 @@ public interface HasCommandDto {
             editing = Editing.DISABLED
     )
     @PropertyLayout(
-            multiLine = 9
+            multiLine = 15,
+            labelPosition = LabelPosition.NONE
     )
     @ValueSemantics(provider = "pretty-render")
     @Target({ ElementType.METHOD, ElementType.FIELD, ElementType.PARAMETER, 
ElementType.ANNOTATION_TYPE })
diff --git 
a/api/applib/src/main/java/org/apache/isis/applib/services/iactn/HasInteractionDto.java
 
b/api/applib/src/main/java/org/apache/isis/applib/services/iactn/HasInteractionDto.java
index 4d22248081..910e734c53 100644
--- 
a/api/applib/src/main/java/org/apache/isis/applib/services/iactn/HasInteractionDto.java
+++ 
b/api/applib/src/main/java/org/apache/isis/applib/services/iactn/HasInteractionDto.java
@@ -24,6 +24,7 @@ import java.lang.annotation.RetentionPolicy;
 import java.lang.annotation.Target;
 
 import org.apache.isis.applib.annotation.Editing;
+import org.apache.isis.applib.annotation.LabelPosition;
 import org.apache.isis.applib.annotation.Property;
 import org.apache.isis.applib.annotation.PropertyLayout;
 import org.apache.isis.applib.annotation.ValueSemantics;
@@ -34,7 +35,8 @@ public interface HasInteractionDto {
             editing = Editing.DISABLED
     )
     @PropertyLayout(
-            multiLine = 9
+            multiLine = 15,
+            labelPosition = LabelPosition.NONE
     )
     @ValueSemantics(provider = "pretty-render")
     @Target({ ElementType.METHOD, ElementType.FIELD, ElementType.PARAMETER, 
ElementType.ANNOTATION_TYPE })
diff --git 
a/extensions/core/commandlog/applib/src/main/java/org/apache/isis/extensions/commandlog/applib/IsisModuleExtCommandLogApplib.java
 
b/extensions/core/commandlog/applib/src/main/java/org/apache/isis/extensions/commandlog/applib/IsisModuleExtCommandLogApplib.java
index a0745cbe3a..90431a5a10 100644
--- 
a/extensions/core/commandlog/applib/src/main/java/org/apache/isis/extensions/commandlog/applib/IsisModuleExtCommandLogApplib.java
+++ 
b/extensions/core/commandlog/applib/src/main/java/org/apache/isis/extensions/commandlog/applib/IsisModuleExtCommandLogApplib.java
@@ -28,6 +28,9 @@ import 
org.apache.isis.extensions.commandlog.applib.contributions.HasInteraction
 import 
org.apache.isis.extensions.commandlog.applib.contributions.HasUsername_recentCommandsByUser;
 import 
org.apache.isis.extensions.commandlog.applib.contributions.Object_recentCommands;
 import org.apache.isis.extensions.commandlog.applib.dom.CommandLogEntry;
+import 
org.apache.isis.extensions.commandlog.applib.dom.mixins.CommandLogEntry_childCommands;
+import 
org.apache.isis.extensions.commandlog.applib.dom.mixins.CommandLogEntry_openResultObject;
+import 
org.apache.isis.extensions.commandlog.applib.dom.mixins.CommandLogEntry_siblingCommands;
 import 
org.apache.isis.extensions.commandlog.applib.subscriber.CommandSubscriberForCommandLog;
 import org.apache.isis.testing.fixtures.applib.modules.ModuleWithFixtures;
 
@@ -40,6 +43,9 @@ import 
org.apache.isis.testing.fixtures.applib.modules.ModuleWithFixtures;
         HasInteractionId_commandLogEntry.class,
         HasUsername_recentCommandsByUser.class,
         Object_recentCommands.class,
+        CommandLogEntry_childCommands.class,
+        CommandLogEntry_openResultObject.class,
+        CommandLogEntry_siblingCommands.class,
 
         // @Service's
         CommandSubscriberForCommandLog.class,
diff --git 
a/extensions/core/commandlog/applib/src/main/java/org/apache/isis/extensions/commandlog/applib/contributions/HasInteractionId_commandLogEntry.java
 
b/extensions/core/commandlog/applib/src/main/java/org/apache/isis/extensions/commandlog/applib/contributions/HasInteractionId_commandLogEntry.java
index 646a02e90c..7df0cdee83 100644
--- 
a/extensions/core/commandlog/applib/src/main/java/org/apache/isis/extensions/commandlog/applib/contributions/HasInteractionId_commandLogEntry.java
+++ 
b/extensions/core/commandlog/applib/src/main/java/org/apache/isis/extensions/commandlog/applib/contributions/HasInteractionId_commandLogEntry.java
@@ -25,6 +25,8 @@ import javax.inject.Provider;
 
 import org.apache.isis.applib.annotation.MemberSupport;
 import org.apache.isis.applib.annotation.Property;
+import org.apache.isis.applib.annotation.PropertyLayout;
+import org.apache.isis.applib.annotation.Where;
 import org.apache.isis.applib.mixins.system.HasInteractionId;
 import org.apache.isis.applib.services.command.Command;
 import org.apache.isis.applib.services.queryresultscache.QueryResultsCache;
@@ -40,6 +42,9 @@ import lombok.RequiredArgsConstructor;
 @Property(
         domainEvent = 
HasInteractionId_commandLogEntry.PropertyDomainEvent.class
 )
+@PropertyLayout(
+        hidden = Where.ALL_TABLES
+)
 @RequiredArgsConstructor
 public class HasInteractionId_commandLogEntry {
 
diff --git 
a/extensions/core/commandlog/applib/src/main/java/org/apache/isis/extensions/commandlog/applib/contributions/Object_recentCommands.java
 
b/extensions/core/commandlog/applib/src/main/java/org/apache/isis/extensions/commandlog/applib/contributions/Object_recentCommands.java
index ba1dea549d..a6353ae813 100644
--- 
a/extensions/core/commandlog/applib/src/main/java/org/apache/isis/extensions/commandlog/applib/contributions/Object_recentCommands.java
+++ 
b/extensions/core/commandlog/applib/src/main/java/org/apache/isis/extensions/commandlog/applib/contributions/Object_recentCommands.java
@@ -48,8 +48,7 @@ import lombok.RequiredArgsConstructor;
         domainEvent = Object_recentCommands.ActionDomainEvent.class,
         semantics = SemanticsOf.SAFE,
         commandPublishing = Publishing.DISABLED,
-        executionPublishing = Publishing.DISABLED,
-        restrictTo = RestrictTo.PROTOTYPING
+        executionPublishing = Publishing.DISABLED
 )
 @ActionLayout(
         cssClassFa = "fa-bolt",
diff --git 
a/extensions/core/commandlog/applib/src/main/java/org/apache/isis/extensions/commandlog/applib/dom/CommandLogEntry.java
 
b/extensions/core/commandlog/applib/src/main/java/org/apache/isis/extensions/commandlog/applib/dom/CommandLogEntry.java
index a52aaea8d2..bb3d61ef19 100644
--- 
a/extensions/core/commandlog/applib/src/main/java/org/apache/isis/extensions/commandlog/applib/dom/CommandLogEntry.java
+++ 
b/extensions/core/commandlog/applib/src/main/java/org/apache/isis/extensions/commandlog/applib/dom/CommandLogEntry.java
@@ -326,9 +326,6 @@ implements Comparable<CommandLogEntry>, DomainChangeRecord, 
HasCommandDto {
             domainEvent = LogicalMemberIdentifier.DomainEvent.class,
             editing = Editing.DISABLED
     )
-    @PropertyLayout(
-            hidden = Where.ALL_TABLES
-    )
     @DomainChangeRecord.LogicalMemberIdentifier
     @java.lang.annotation.Target({ ElementType.METHOD, ElementType.FIELD, 
ElementType.PARAMETER, ElementType.ANNOTATION_TYPE })
     @Retention(RetentionPolicy.RUNTIME)
@@ -481,7 +478,7 @@ implements Comparable<CommandLogEntry>, DomainChangeRecord, 
HasCommandDto {
     )
     @PropertyLayout(
             hidden = Where.ALL_TABLES,
-            multiLine = 5,
+            multiLine = 3,
             named = "Exception (if any)"
     )
     @java.lang.annotation.Target({ ElementType.METHOD, ElementType.FIELD, 
ElementType.PARAMETER, ElementType.ANNOTATION_TYPE })
diff --git 
a/extensions/core/executionlog/applib/src/main/java/org/apache/isis/extensions/executionlog/applib/IsisModuleExtExecutionLogApplib.java
 
b/extensions/core/executionlog/applib/src/main/java/org/apache/isis/extensions/executionlog/applib/IsisModuleExtExecutionLogApplib.java
index 19dc0473d3..726888a8ec 100644
--- 
a/extensions/core/executionlog/applib/src/main/java/org/apache/isis/extensions/executionlog/applib/IsisModuleExtExecutionLogApplib.java
+++ 
b/extensions/core/executionlog/applib/src/main/java/org/apache/isis/extensions/executionlog/applib/IsisModuleExtExecutionLogApplib.java
@@ -23,8 +23,10 @@ import org.springframework.context.annotation.Import;
 
 import org.apache.isis.extensions.executionlog.applib.app.ExecutionLogMenu;
 import 
org.apache.isis.extensions.executionlog.applib.contributions.HasInteractionId_executionLogEntries;
+import 
org.apache.isis.extensions.executionlog.applib.contributions.HasUsername_recentExecutionsByUser;
 import 
org.apache.isis.extensions.executionlog.applib.contributions.Object_recentExecutions;
 import org.apache.isis.extensions.executionlog.applib.dom.ExecutionLogEntry;
+import 
org.apache.isis.extensions.executionlog.applib.dom.mixins.ExecutionLogEntry_siblingExecutions;
 import 
org.apache.isis.extensions.executionlog.applib.spiimpl.ExecutionSubscriberForExecutionLog;
 import org.apache.isis.testing.fixtures.applib.modules.ModuleWithFixtures;
 
@@ -35,7 +37,9 @@ import 
org.apache.isis.testing.fixtures.applib.modules.ModuleWithFixtures;
 
         // mixins
         HasInteractionId_executionLogEntries.class,
+        HasUsername_recentExecutionsByUser.class,
         Object_recentExecutions.class,
+        ExecutionLogEntry_siblingExecutions.class,
 
         // @Service's
         ExecutionSubscriberForExecutionLog.class,
diff --git 
a/extensions/core/executionlog/applib/src/main/java/org/apache/isis/extensions/executionlog/applib/app/ExecutionLogMenu.java
 
b/extensions/core/executionlog/applib/src/main/java/org/apache/isis/extensions/executionlog/applib/app/ExecutionLogMenu.java
index 646ef37dc1..b96d40e5c7 100644
--- 
a/extensions/core/executionlog/applib/src/main/java/org/apache/isis/extensions/executionlog/applib/app/ExecutionLogMenu.java
+++ 
b/extensions/core/executionlog/applib/src/main/java/org/apache/isis/extensions/executionlog/applib/app/ExecutionLogMenu.java
@@ -20,14 +20,19 @@ package org.apache.isis.extensions.executionlog.applib.app;
 
 import java.time.LocalDate;
 import java.time.ZoneId;
+import java.util.List;
 
 import javax.inject.Inject;
 import javax.inject.Named;
 
+import org.apache.isis.applib.annotation.Action;
+import org.apache.isis.applib.annotation.ActionLayout;
 import org.apache.isis.applib.annotation.DomainService;
 import org.apache.isis.applib.annotation.DomainServiceLayout;
 import org.apache.isis.applib.annotation.NatureOfService;
 import org.apache.isis.applib.annotation.PriorityPrecedence;
+import org.apache.isis.applib.annotation.RestrictTo;
+import org.apache.isis.applib.annotation.SemanticsOf;
 import org.apache.isis.applib.services.clock.ClockService;
 import 
org.apache.isis.extensions.executionlog.applib.IsisModuleExtExecutionLogApplib;
 import org.apache.isis.extensions.executionlog.applib.dom.ExecutionLogEntry;
@@ -57,6 +62,21 @@ public class ExecutionLogMenu {
         extends 
IsisModuleExtExecutionLogApplib.ActionDomainEvent<ExecutionLogMenu> { }
 
 
+
+    @Action(semantics = SemanticsOf.SAFE)
+    @ActionLayout(describedAs = "Returns the most recent execution entries")
+    public List<? extends ExecutionLogEntry> findMostRecent() {
+        return executionLogEntryRepository.findMostRecent();
+    }
+
+
+    @Action(semantics = SemanticsOf.SAFE, restrictTo = RestrictTo.PROTOTYPING)
+    @ActionLayout(describedAs = "Returns all entries (still to be processed) 
in the outbox")
+    public List<? extends ExecutionLogEntry> findAll() {
+        return executionLogEntryRepository.findAll();
+    }
+
+
     final ExecutionLogEntryRepository<? extends ExecutionLogEntry> 
executionLogEntryRepository;
     final ClockService clockService;
 
diff --git 
a/extensions/core/executionlog/applib/src/main/java/org/apache/isis/extensions/executionlog/applib/contributions/Object_recentExecutions.java
 
b/extensions/core/executionlog/applib/src/main/java/org/apache/isis/extensions/executionlog/applib/contributions/Object_recentExecutions.java
index 00eada1788..e47e16c754 100644
--- 
a/extensions/core/executionlog/applib/src/main/java/org/apache/isis/extensions/executionlog/applib/contributions/Object_recentExecutions.java
+++ 
b/extensions/core/executionlog/applib/src/main/java/org/apache/isis/extensions/executionlog/applib/contributions/Object_recentExecutions.java
@@ -48,8 +48,7 @@ import lombok.RequiredArgsConstructor;
         domainEvent = Object_recentExecutions.ActionDomainEvent.class,
         semantics = SemanticsOf.SAFE,
         commandPublishing = Publishing.DISABLED,
-        executionPublishing = Publishing.DISABLED,
-        restrictTo = RestrictTo.PROTOTYPING
+        executionPublishing = Publishing.DISABLED
 )
 @ActionLayout(
         cssClassFa = "fa-bolt",
diff --git 
a/extensions/core/executionlog/applib/src/main/java/org/apache/isis/extensions/executionlog/applib/dom/ExecutionLogEntry.java
 
b/extensions/core/executionlog/applib/src/main/java/org/apache/isis/extensions/executionlog/applib/dom/ExecutionLogEntry.java
index 94e4abe8fc..346fbbd485 100644
--- 
a/extensions/core/executionlog/applib/src/main/java/org/apache/isis/extensions/executionlog/applib/dom/ExecutionLogEntry.java
+++ 
b/extensions/core/executionlog/applib/src/main/java/org/apache/isis/extensions/executionlog/applib/dom/ExecutionLogEntry.java
@@ -325,9 +325,6 @@ implements Comparable<ExecutionLogEntry>, 
DomainChangeRecord, HasInteractionIdAn
             domainEvent = LogicalMemberIdentifier.DomainEvent.class,
             editing = Editing.DISABLED
     )
-    @PropertyLayout(
-            hidden = Where.ALL_TABLES
-    )
     @java.lang.annotation.Target({ ElementType.METHOD, ElementType.FIELD, 
ElementType.PARAMETER, ElementType.ANNOTATION_TYPE })
     @Retention(RetentionPolicy.RUNTIME)
     public @interface LogicalMemberIdentifier {
diff --git 
a/extensions/core/executionlog/applib/src/main/java/org/apache/isis/extensions/executionlog/applib/dom/ExecutionLogEntry.layout.fallback.xml
 
b/extensions/core/executionlog/applib/src/main/java/org/apache/isis/extensions/executionlog/applib/dom/ExecutionLogEntry.layout.fallback.xml
index 50c5ff8819..901b6d356f 100644
--- 
a/extensions/core/executionlog/applib/src/main/java/org/apache/isis/extensions/executionlog/applib/dom/ExecutionLogEntry.layout.fallback.xml
+++ 
b/extensions/core/executionlog/applib/src/main/java/org/apache/isis/extensions/executionlog/applib/dom/ExecutionLogEntry.layout.fallback.xml
@@ -1,14 +1,24 @@
 <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
-<!-- Licensed to the Apache Software Foundation (ASF) under one or more 
contributor
-       license agreements. See the NOTICE file distributed with this work for 
additional
-       information regarding copyright ownership. The ASF licenses this file to
-       you under the Apache License, Version 2.0 (the "License"); you may not 
use
-       this file except in compliance with the License. You may obtain a copy 
of
-       the License at http://www.apache.org/licenses/LICENSE-2.0 Unless 
required
-       by applicable law or agreed to in writing, software distributed under 
the
-       License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR 
CONDITIONS
-       OF ANY KIND, either express or implied. See the License for the specific
-       language governing permissions and limitations under the License. -->
+<!--
+  ~ Licensed to the Apache Software Foundation (ASF) under one
+  ~ or more contributor license agreements.  See the NOTICE file
+  ~ distributed with this work for additional information
+  ~ regarding copyright ownership.  The ASF licenses this file
+  ~ to you under the Apache License, Version 2.0 (the
+  ~ "License"); you may not use this file except in compliance
+  ~ with the License.  You may obtain a copy of the License at
+  ~
+  ~        http://www.apache.org/licenses/LICENSE-2.0
+  ~
+  ~ Unless required by applicable law or agreed to in writing,
+  ~ software distributed under the License is distributed on an
+  ~ "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+  ~ KIND, either express or implied.  See the License for the
+  ~ specific language governing permissions and limitations
+  ~ under the License.
+  ~
+  -->
+
 <bs3:grid xsi:schemaLocation="http://isis.apache.org/applib/layout/component 
http://isis.apache.org/applib/layout/component/component.xsd 
http://isis.apache.org/applib/layout/links 
http://isis.apache.org/applib/layout/links/links.xsd 
http://isis.apache.org/applib/layout/grid/bootstrap3 
http://isis.apache.org/applib/layout/grid/bootstrap3/bootstrap3.xsd"; 
xmlns:bs3="http://isis.apache.org/applib/layout/grid/bootstrap3"; 
xmlns:cpt="http://isis.apache.org/applib/layout/component"; xmlns:lnk="h [...]
     <bs3:row>
         <bs3:col span="12" unreferencedActions="true">
diff --git 
a/extensions/core/executionlog/applib/src/main/java/org/apache/isis/extensions/executionlog/applib/dom/mixins/ExecutionLogEntry_siblingExecutions.java
 
b/extensions/core/executionlog/applib/src/main/java/org/apache/isis/extensions/executionlog/applib/dom/mixins/ExecutionLogEntry_siblingExecutions.java
index 6f56d7211b..ba6e671483 100644
--- 
a/extensions/core/executionlog/applib/src/main/java/org/apache/isis/extensions/executionlog/applib/dom/mixins/ExecutionLogEntry_siblingExecutions.java
+++ 
b/extensions/core/executionlog/applib/src/main/java/org/apache/isis/extensions/executionlog/applib/dom/mixins/ExecutionLogEntry_siblingExecutions.java
@@ -44,12 +44,12 @@ public class ExecutionLogEntry_siblingExecutions {
             extends 
IsisModuleExtExecutionLogApplib.CollectionDomainEvent<ExecutionLogEntry_siblingExecutions,
 ExecutionLogEntry> { }
 
 
-    @MemberSupport public List<ExecutionLogEntry> coll() {
+    @MemberSupport public List<? extends ExecutionLogEntry> coll() {
         val entries = 
executionLogEntryRepository.findByInteractionId(executionLogEntry.getInteractionId());
         entries.remove(executionLogEntry);
         return entries;
     }
 
-    @Inject ExecutionLogEntryRepository<ExecutionLogEntry> 
executionLogEntryRepository;
+    @Inject ExecutionLogEntryRepository<? extends ExecutionLogEntry> 
executionLogEntryRepository;
 
 }
diff --git 
a/extensions/core/executionoutbox/applib/src/main/java/org/apache/isis/extensions/executionoutbox/applib/IsisModuleExtExecutionOutboxApplib.java
 
b/extensions/core/executionoutbox/applib/src/main/java/org/apache/isis/extensions/executionoutbox/applib/IsisModuleExtExecutionOutboxApplib.java
index 0782aa63c0..17a66bf40c 100644
--- 
a/extensions/core/executionoutbox/applib/src/main/java/org/apache/isis/extensions/executionoutbox/applib/IsisModuleExtExecutionOutboxApplib.java
+++ 
b/extensions/core/executionoutbox/applib/src/main/java/org/apache/isis/extensions/executionoutbox/applib/IsisModuleExtExecutionOutboxApplib.java
@@ -21,6 +21,7 @@ package org.apache.isis.extensions.executionoutbox.applib;
 import org.springframework.context.annotation.Configuration;
 import org.springframework.context.annotation.Import;
 
+import 
org.apache.isis.extensions.executionoutbox.applib.app.ExecutionOutboxMenu;
 import 
org.apache.isis.extensions.executionoutbox.applib.dom.ExecutionOutboxEntry;
 import org.apache.isis.extensions.executionoutbox.applib.restapi.OutboxRestApi;
 import 
org.apache.isis.extensions.executionoutbox.applib.spiimpl.ContentMappingServiceForOutboxEvents;
@@ -33,6 +34,8 @@ import 
org.apache.isis.testing.fixtures.applib.modules.ModuleWithFixtures;
         OutboxRestApi.class,
 
         // @Service's
+        ExecutionOutboxMenu.class,
+
         ExecutionSubscriberForExecutionOutbox.class,
         ExecutionOutboxEntry.TableColumnOrderDefault.class,
         ContentMappingServiceForOutboxEvents.class
diff --git 
a/extensions/core/executionlog/applib/src/main/java/org/apache/isis/extensions/executionlog/applib/app/ExecutionLogMenu.java
 
b/extensions/core/executionoutbox/applib/src/main/java/org/apache/isis/extensions/executionoutbox/applib/app/ExecutionOutboxMenu.java
similarity index 54%
copy from 
extensions/core/executionlog/applib/src/main/java/org/apache/isis/extensions/executionlog/applib/app/ExecutionLogMenu.java
copy to 
extensions/core/executionoutbox/applib/src/main/java/org/apache/isis/extensions/executionoutbox/applib/app/ExecutionOutboxMenu.java
index 646ef37dc1..45ae807a7d 100644
--- 
a/extensions/core/executionlog/applib/src/main/java/org/apache/isis/extensions/executionlog/applib/app/ExecutionLogMenu.java
+++ 
b/extensions/core/executionoutbox/applib/src/main/java/org/apache/isis/extensions/executionoutbox/applib/app/ExecutionOutboxMenu.java
@@ -16,29 +16,34 @@
  *  specific language governing permissions and limitations
  *  under the License.
  */
-package org.apache.isis.extensions.executionlog.applib.app;
+package org.apache.isis.extensions.executionoutbox.applib.app;
 
 import java.time.LocalDate;
 import java.time.ZoneId;
+import java.util.List;
 
 import javax.inject.Inject;
 import javax.inject.Named;
 
+import org.apache.isis.applib.annotation.Action;
+import org.apache.isis.applib.annotation.ActionLayout;
 import org.apache.isis.applib.annotation.DomainService;
 import org.apache.isis.applib.annotation.DomainServiceLayout;
 import org.apache.isis.applib.annotation.NatureOfService;
 import org.apache.isis.applib.annotation.PriorityPrecedence;
+import org.apache.isis.applib.annotation.RestrictTo;
+import org.apache.isis.applib.annotation.SemanticsOf;
 import org.apache.isis.applib.services.clock.ClockService;
-import 
org.apache.isis.extensions.executionlog.applib.IsisModuleExtExecutionLogApplib;
-import org.apache.isis.extensions.executionlog.applib.dom.ExecutionLogEntry;
-import 
org.apache.isis.extensions.executionlog.applib.dom.ExecutionLogEntryRepository;
+import 
org.apache.isis.extensions.executionoutbox.applib.IsisModuleExtExecutionOutboxApplib;
+import 
org.apache.isis.extensions.executionoutbox.applib.dom.ExecutionOutboxEntry;
+import 
org.apache.isis.extensions.executionoutbox.applib.dom.ExecutionOutboxEntryRepository;
 
 import lombok.RequiredArgsConstructor;
 
 /**
  * @since 2.0 {@index}
  */
-@Named(ExecutionLogMenu.LOGICAL_TYPE_NAME)
+@Named(ExecutionOutboxMenu.LOGICAL_TYPE_NAME)
 @DomainService(
     nature = NatureOfService.VIEW
 )
@@ -48,16 +53,28 @@ import lombok.RequiredArgsConstructor;
 )
 @javax.annotation.Priority(PriorityPrecedence.EARLY)
 @RequiredArgsConstructor(onConstructor_ = { @Inject })
-public class ExecutionLogMenu {
+public class ExecutionOutboxMenu {
 
     public static final String LOGICAL_TYPE_NAME =
-            IsisModuleExtExecutionLogApplib.NAMESPACE + ".ExecutionLogMenu";
+            IsisModuleExtExecutionOutboxApplib.NAMESPACE + 
".ExecutionOutboxMenu";
 
     public static abstract class ActionDomainEvent
-        extends 
IsisModuleExtExecutionLogApplib.ActionDomainEvent<ExecutionLogMenu> { }
+        extends 
IsisModuleExtExecutionOutboxApplib.ActionDomainEvent<ExecutionOutboxMenu> { }
 
 
-    final ExecutionLogEntryRepository<? extends ExecutionLogEntry> 
executionLogEntryRepository;
+    @Action(semantics = SemanticsOf.SAFE)
+    @ActionLayout(describedAs = "Returns to oldest 100 entries (next to be 
processed) in the outbox")
+    public List<? extends ExecutionOutboxEntry> findOldest() {
+        return executionOutboxEntryRepository.findOldest();
+    }
+
+    @Action(semantics = SemanticsOf.SAFE, restrictTo = RestrictTo.PROTOTYPING)
+    @ActionLayout(describedAs = "Returns all entries (still to be processed) 
in the outbox")
+    public List<? extends ExecutionOutboxEntry> findAll() {
+        return executionOutboxEntryRepository.findAll();
+    }
+
+    final ExecutionOutboxEntryRepository<? extends ExecutionOutboxEntry> 
executionOutboxEntryRepository;
     final ClockService clockService;
 
 
diff --git 
a/extensions/core/executionoutbox/applib/src/main/java/org/apache/isis/extensions/executionoutbox/applib/dom/ExecutionOutboxEntry.layout.fallback.xml
 
b/extensions/core/executionoutbox/applib/src/main/java/org/apache/isis/extensions/executionoutbox/applib/dom/ExecutionOutboxEntry.layout.fallback.xml
index a78501e460..d1bd51dce0 100644
--- 
a/extensions/core/executionoutbox/applib/src/main/java/org/apache/isis/extensions/executionoutbox/applib/dom/ExecutionOutboxEntry.layout.fallback.xml
+++ 
b/extensions/core/executionoutbox/applib/src/main/java/org/apache/isis/extensions/executionoutbox/applib/dom/ExecutionOutboxEntry.layout.fallback.xml
@@ -26,48 +26,55 @@
         </bs3:col>
     </bs3:row>
     <bs3:row>
-        <bs3:col span="4">
-            <bs3:row>
-                <bs3:col span="12">
-                    <cpt:fieldSet name="Identifiers" id="identifiers" 
unreferencedProperties="true">
-                        <cpt:action id="clearHints" position="PANEL"/>
-                        <cpt:action id="rebuildMetamodel" 
position="PANEL_DROPDOWN"/>
-                        <cpt:action id="inspectMetamodel" 
position="PANEL_DROPDOWN"/>
-                        <cpt:action id="downloadMetamodelXml" 
position="PANEL_DROPDOWN"/>
-                        <cpt:action id="downloadLayoutXml" 
position="PANEL_DROPDOWN"/>
-                        <cpt:action id="downloadJdoMetadata" 
position="PANEL_DROPDOWN"/>
-                        <cpt:action id="recentCommands" 
position="PANEL_DROPDOWN"/>
-                        <cpt:action id="recentExecutions" 
position="PANEL_DROPDOWN"/>
-                        <cpt:action id="recentAuditTrailEntries" 
position="PANEL_DROPDOWN"/>
-                        <cpt:action id="openRestApi" 
position="PANEL_DROPDOWN"/>
-                        <cpt:property id="interactionId"/>
-                        <cpt:property id="sequence"/>
-                        <cpt:property id="type"/>
-                    </cpt:fieldSet>
-                    <cpt:fieldSet name="Target" id="target">
-                        <cpt:property id="target"/>
-                        <cpt:property id="targetLogicalTypeName"/>
-                        <cpt:property id="logicalMemberIdentifier"/>
-                        <cpt:property id="executionType"/>
-                    </cpt:fieldSet>
-                    <cpt:fieldSet name="Who and When">
-                        <cpt:property id="username"/>
-                        <cpt:property id="timestamp"/>
-                    </cpt:fieldSet>
-                    <cpt:fieldSet name="Timings" id="timings">
-                        <cpt:property id="startedAt"/>
-                        <cpt:property id="completedAt"/>
-                        <cpt:property id="duration"/>
-                    </cpt:fieldSet>
-                    <cpt:fieldSet name="Other" id="other" 
unreferencedProperties="true"/>
-                </bs3:col>
-            </bs3:row>
+        <bs3:col span="3">
+            <bs3:tabGroup>
+                <bs3:tab name="Identity">
+                    <bs3:row>
+                        <bs3:col span="12">
+                            <cpt:fieldSet name="Identity" id="identity">
+                                <cpt:property id="interactionId"/>
+                                <cpt:property id="sequence"/>
+                                <cpt:property id="type"/>
+                            </cpt:fieldSet>
+                        </bs3:col>
+                    </bs3:row>
+                </bs3:tab>
+                <bs3:tab name="Metadata">
+                    <bs3:row>
+                        <bs3:col span="12">
+                            <cpt:fieldSet name="Metadata" id="metadata"/>
+                        </bs3:col>
+                    </bs3:row>
+                </bs3:tab>
+            </bs3:tabGroup>
+            <cpt:fieldSet name="Target" id="target">
+                <cpt:property id="target"/>
+                <cpt:property id="targetLogicalTypeName">
+                    <cpt:named>Logical Type Name</cpt:named>
+                </cpt:property>
+                <cpt:property id="logicalMemberIdentifier">
+                    <cpt:named>member Identifier</cpt:named>
+                </cpt:property>
+                <cpt:property id="executionType"/>
+            </cpt:fieldSet>
+            <cpt:fieldSet name="Who and When">
+                <cpt:property id="username"/>
+                <cpt:property id="timestamp"/>
+            </cpt:fieldSet>
         </bs3:col>
-        <bs3:col span="8">
+        <bs3:col span="6">
             <cpt:fieldSet name="Interaction DTO" id="interactionDto">
                 <cpt:property id="interactionDto" multiLine="30" 
labelPosition="TOP"/>
             </cpt:fieldSet>
         </bs3:col>
+        <bs3:col span="3">
+            <cpt:fieldSet name="Timings" id="timings">
+                <cpt:property id="startedAt"/>
+                <cpt:property id="completedAt"/>
+                <cpt:property id="duration"/>
+            </cpt:fieldSet>
+            <cpt:fieldSet name="Other" id="other" 
unreferencedProperties="true"/>
+        </bs3:col>
     </bs3:row>
     <bs3:row>
         <bs3:col span="12">
diff --git 
a/extensions/security/audittrail/applib/src/main/java/org/apache/isis/extensions/audittrail/applib/IsisModuleExtAuditTrailApplib.java
 
b/extensions/security/audittrail/applib/src/main/java/org/apache/isis/extensions/audittrail/applib/IsisModuleExtAuditTrailApplib.java
index 81ab68a2fa..a516561e70 100644
--- 
a/extensions/security/audittrail/applib/src/main/java/org/apache/isis/extensions/audittrail/applib/IsisModuleExtAuditTrailApplib.java
+++ 
b/extensions/security/audittrail/applib/src/main/java/org/apache/isis/extensions/audittrail/applib/IsisModuleExtAuditTrailApplib.java
@@ -24,12 +24,17 @@ import org.springframework.context.annotation.Configuration;
 import org.springframework.context.annotation.Import;
 
 import org.apache.isis.extensions.audittrail.applib.app.AuditTrailMenu;
+import 
org.apache.isis.extensions.audittrail.applib.contributions.HasInteractionId_auditTrailEntries;
+import 
org.apache.isis.extensions.audittrail.applib.contributions.Object_recentAuditTrailEntries;
 import 
org.apache.isis.extensions.audittrail.applib.spiimpl.EntityPropertyChangeSubscriberForAuditTrail;
 
 @Configuration
 @Import({
         AuditTrailMenu.class,
-        EntityPropertyChangeSubscriberForAuditTrail.class
+        EntityPropertyChangeSubscriberForAuditTrail.class,
+
+        HasInteractionId_auditTrailEntries.class,
+        Object_recentAuditTrailEntries.class
 })
 public class IsisModuleExtAuditTrailApplib {
 
diff --git 
a/extensions/security/audittrail/applib/src/main/java/org/apache/isis/extensions/audittrail/applib/dom/AuditTrailEntry.java
 
b/extensions/security/audittrail/applib/src/main/java/org/apache/isis/extensions/audittrail/applib/dom/AuditTrailEntry.java
index 87c9404fe7..8c8fdbc9e6 100644
--- 
a/extensions/security/audittrail/applib/src/main/java/org/apache/isis/extensions/audittrail/applib/dom/AuditTrailEntry.java
+++ 
b/extensions/security/audittrail/applib/src/main/java/org/apache/isis/extensions/audittrail/applib/dom/AuditTrailEntry.java
@@ -250,9 +250,6 @@ public abstract class AuditTrailEntry implements 
DomainChangeRecord, Comparable<
             domainEvent = PropertyId.DomainEvent.class,
             optionality = Optionality.MANDATORY
     )
-    @PropertyLayout(
-            hidden = Where.ALL_TABLES
-    )
     @DomainChangeRecord.PropertyId
     @java.lang.annotation.Target({ ElementType.METHOD, ElementType.FIELD, 
ElementType.PARAMETER, ElementType.ANNOTATION_TYPE })
     @Retention(RetentionPolicy.RUNTIME)
diff --git 
a/extensions/security/audittrail/applib/src/main/java/org/apache/isis/extensions/audittrail/applib/dom/AuditTrailEntry.layout.fallback.xml
 
b/extensions/security/audittrail/applib/src/main/java/org/apache/isis/extensions/audittrail/applib/dom/AuditTrailEntry.layout.fallback.xml
index eb74adc3e2..68f0f20818 100644
--- 
a/extensions/security/audittrail/applib/src/main/java/org/apache/isis/extensions/audittrail/applib/dom/AuditTrailEntry.layout.fallback.xml
+++ 
b/extensions/security/audittrail/applib/src/main/java/org/apache/isis/extensions/audittrail/applib/dom/AuditTrailEntry.layout.fallback.xml
@@ -27,31 +27,40 @@
     </bs3:row>
     <bs3:row>
         <bs3:col span="4">
-            <cpt:fieldSet name="Identifiers" id="identifiers">
-                <cpt:action id="clearHints" position="PANEL"/>
-                <cpt:action id="rebuildMetamodel" position="PANEL_DROPDOWN"/>
-                <cpt:action id="inspectMetamodel" position="PANEL_DROPDOWN"/>
-                <cpt:action id="downloadMetamodelXml" 
position="PANEL_DROPDOWN"/>
-                <cpt:action id="downloadLayoutXml" position="PANEL_DROPDOWN"/>
-                <cpt:action id="downloadJdoMetadata" 
position="PANEL_DROPDOWN"/>
-                <cpt:action id="recentCommands" position="PANEL_DROPDOWN"/>
-                <cpt:action id="recentExecutions" position="PANEL_DROPDOWN"/>
-                <cpt:action id="recentAuditTrailEntries" 
position="PANEL_DROPDOWN"/>
-                <cpt:property id="interactionId"/>
-                <cpt:property id="sequence"/>
-                <cpt:property id="type"/>
-            </cpt:fieldSet>
+            <bs3:tabGroup>
+                <bs3:tab name="Identity">
+                    <bs3:row>
+                        <bs3:col span="12">
+                            <cpt:fieldSet name="Identity" id="identity">
+                                <cpt:property id="interactionId"/>
+                                <cpt:property id="sequence"/>
+                                <cpt:property id="type"/>
+                            </cpt:fieldSet>
+                        </bs3:col>
+                    </bs3:row>
+                </bs3:tab>
+                <bs3:tab name="Metadata">
+                    <bs3:row>
+                        <bs3:col span="12">
+                            <cpt:fieldSet name="Metadata" id="metadata"/>
+                        </bs3:col>
+                    </bs3:row>
+                </bs3:tab>
+            </bs3:tabGroup>
             <cpt:fieldSet name="Target" id="target">
                 <cpt:property id="target"/>
-                <cpt:property id="targetLogicalTypeName"/>
-                <cpt:property id="logicalMemberIdentifier"/>
+                <cpt:property id="targetLogicalTypeName">
+                    <cpt:named>Logical Type Name</cpt:named>
+                </cpt:property>
+                <cpt:property id="logicalMemberIdentifier">
+                    <cpt:named>member Identifier</cpt:named>
+                </cpt:property>
                 <cpt:property id="propertyId"/>
             </cpt:fieldSet>
             <cpt:fieldSet name="Who and When">
                 <cpt:property id="username"/>
                 <cpt:property id="timestamp"/>
             </cpt:fieldSet>
-            <cpt:fieldSet name="Other" id="other" 
unreferencedProperties="true"/>
         </bs3:col>
         <bs3:col span="4">
             <cpt:fieldSet name="Change" id="change">
@@ -60,10 +69,19 @@
             </cpt:fieldSet>
         </bs3:col>
         <bs3:col span="4">
-            <!-- we provide this collection twice, for convenience -->
-            <cpt:collection id="auditTrailEntries">
-                <cpt:named>All changes</cpt:named>
-            </cpt:collection>
+            <bs3:row>
+                <bs3:col span="12">
+                    <!-- we provide this collection twice, for convenience -->
+                    <cpt:collection id="auditTrailEntries">
+                        <cpt:named>All changes</cpt:named>
+                    </cpt:collection>
+                </bs3:col>
+            </bs3:row>
+            <bs3:row>
+                <bs3:col span="12">
+                    <cpt:fieldSet name="Other" id="other" 
unreferencedProperties="true"/>
+                </bs3:col>
+            </bs3:row>
         </bs3:col>
     </bs3:row>
     <bs3:row>

Reply via email to