You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@causeway.apache.org by da...@apache.org on 2026/05/22 10:22:10 UTC

(causeway) 02/02: CAUSEWAY-3998: refinements

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

danhaywood pushed a commit to branch 3998-v2
in repository https://gitbox.apache.org/repos/asf/causeway.git

commit d110b0b6d1574a02750707756309aefc7ab46baa
Author: Dan Haywood <da...@haywood-associates.co.uk>
AuthorDate: Fri May 22 11:21:54 2026 +0100

    CAUSEWAY-3998: refinements
    
    import commands when open CommandReplayManager
    add openTarget and openTargetTR
    no longer restricts replayOrRetry
---
 .../applib/CausewayModuleExtCommandLogApplib.java        |  2 ++
 .../applib/dom/replay/ReplayableCommand_openTarget.java  |  4 +++-
 ...enTarget.java => ReplayableCommand_openTargetTR.java} | 16 +++++++++-------
 .../dom/replay/ReplayableCommand_replayOrRetry.java      |  6 +++++-
 4 files changed, 19 insertions(+), 9 deletions(-)

diff --git a/extensions/core/commandlog/applib/src/main/java/org/apache/causeway/extensions/commandlog/applib/CausewayModuleExtCommandLogApplib.java b/extensions/core/commandlog/applib/src/main/java/org/apache/causeway/extensions/commandlog/applib/CausewayModuleExtCommandLogApplib.java
index 81cfb51715b..026d19f6833 100644
--- a/extensions/core/commandlog/applib/src/main/java/org/apache/causeway/extensions/commandlog/applib/CausewayModuleExtCommandLogApplib.java
+++ b/extensions/core/commandlog/applib/src/main/java/org/apache/causeway/extensions/commandlog/applib/CausewayModuleExtCommandLogApplib.java
@@ -42,6 +42,7 @@
 import org.apache.causeway.extensions.commandlog.applib.dom.replay.ReplayableCommand_makeExportable;
 import org.apache.causeway.extensions.commandlog.applib.dom.replay.ReplayableCommand_openCommandLogEntry;
 import org.apache.causeway.extensions.commandlog.applib.dom.replay.ReplayableCommand_openTarget;
+import org.apache.causeway.extensions.commandlog.applib.dom.replay.ReplayableCommand_openTargetTR;
 import org.apache.causeway.extensions.commandlog.applib.dom.replay.ReplayableCommand_replayOrRetry;
 import org.apache.causeway.extensions.commandlog.applib.fakescheduler.FakeScheduler;
 import org.apache.causeway.extensions.commandlog.applib.job.BackgroundCommandsJobControl;
@@ -71,6 +72,7 @@
         ReplayableCommand_makeExportable.class,
         ReplayableCommand_openCommandLogEntry.class,
         ReplayableCommand_openTarget.class,
+        ReplayableCommand_openTargetTR.class,
         ReplayableCommand_replayOrRetry.class,
         ReplayableCommand_excludeFromReplay.class,
         ReplayableCommand_delete.class,
diff --git a/extensions/core/commandlog/applib/src/main/java/org/apache/causeway/extensions/commandlog/applib/dom/replay/ReplayableCommand_openTarget.java b/extensions/core/commandlog/applib/src/main/java/org/apache/causeway/extensions/commandlog/applib/dom/replay/ReplayableCommand_openTarget.java
index c538a8cbaf4..5f0758f3473 100644
--- a/extensions/core/commandlog/applib/src/main/java/org/apache/causeway/extensions/commandlog/applib/dom/replay/ReplayableCommand_openTarget.java
+++ b/extensions/core/commandlog/applib/src/main/java/org/apache/causeway/extensions/commandlog/applib/dom/replay/ReplayableCommand_openTarget.java
@@ -20,6 +20,8 @@
 
 import lombok.RequiredArgsConstructor;
 
+import javax.inject.Inject;
+
 import org.apache.causeway.applib.annotation.*;
 import org.apache.causeway.applib.services.bookmark.Bookmark;
 import org.apache.causeway.applib.services.bookmark.BookmarkService;
@@ -56,5 +58,5 @@ public String disableAct() {
         return replayableCommand.commandLogEntry().isEmpty() ? "No corresponding CommandLogEntry" : null;
     }
 
-    private BookmarkService bookmarkService;
+    @Inject private BookmarkService bookmarkService;
 }
diff --git a/extensions/core/commandlog/applib/src/main/java/org/apache/causeway/extensions/commandlog/applib/dom/replay/ReplayableCommand_openTarget.java b/extensions/core/commandlog/applib/src/main/java/org/apache/causeway/extensions/commandlog/applib/dom/replay/ReplayableCommand_openTargetTR.java
similarity index 82%
copy from extensions/core/commandlog/applib/src/main/java/org/apache/causeway/extensions/commandlog/applib/dom/replay/ReplayableCommand_openTarget.java
copy to extensions/core/commandlog/applib/src/main/java/org/apache/causeway/extensions/commandlog/applib/dom/replay/ReplayableCommand_openTargetTR.java
index c538a8cbaf4..ae9fad85db4 100644
--- a/extensions/core/commandlog/applib/src/main/java/org/apache/causeway/extensions/commandlog/applib/dom/replay/ReplayableCommand_openTarget.java
+++ b/extensions/core/commandlog/applib/src/main/java/org/apache/causeway/extensions/commandlog/applib/dom/replay/ReplayableCommand_openTargetTR.java
@@ -20,25 +20,27 @@
 
 import lombok.RequiredArgsConstructor;
 
+import javax.inject.Inject;
+
 import org.apache.causeway.applib.annotation.*;
-import org.apache.causeway.applib.services.bookmark.Bookmark;
 import org.apache.causeway.applib.services.bookmark.BookmarkService;
 import org.apache.causeway.extensions.commandlog.applib.dom.CommandLogEntry;
 
 @Action(
         semantics = SemanticsOf.SAFE,
         commandPublishing = Publishing.DISABLED,
-        domainEvent = ReplayableCommand_openTarget.DomainEvent.class,
+        domainEvent = ReplayableCommand_openTargetTR.DomainEvent.class,
         executionPublishing = Publishing.DISABLED
 )
 @ActionLayout(
-        sequence = "0.3", associateWith = "target",
-        describedAs = "Opens the underlying Target"
+        named = "Open Target",
+        describedAs = "Opens the underlying Target",
+        hidden = Where.OBJECT_FORMS // table row action.
 )
 @RequiredArgsConstructor
-public class ReplayableCommand_openTarget {
+public class ReplayableCommand_openTargetTR {
 
-    public static class DomainEvent extends ReplayableCommand.ActionDomainEvent<ReplayableCommand_openTarget> {
+    public static class DomainEvent extends ReplayableCommand.ActionDomainEvent<ReplayableCommand_openTargetTR> {
     }
 
     private final ReplayableCommand replayableCommand;
@@ -56,5 +58,5 @@ public String disableAct() {
         return replayableCommand.commandLogEntry().isEmpty() ? "No corresponding CommandLogEntry" : null;
     }
 
-    private BookmarkService bookmarkService;
+    @Inject private BookmarkService bookmarkService;
 }
diff --git a/extensions/core/commandlog/applib/src/main/java/org/apache/causeway/extensions/commandlog/applib/dom/replay/ReplayableCommand_replayOrRetry.java b/extensions/core/commandlog/applib/src/main/java/org/apache/causeway/extensions/commandlog/applib/dom/replay/ReplayableCommand_replayOrRetry.java
index e2847773951..b3196bdc5a9 100644
--- a/extensions/core/commandlog/applib/src/main/java/org/apache/causeway/extensions/commandlog/applib/dom/replay/ReplayableCommand_replayOrRetry.java
+++ b/extensions/core/commandlog/applib/src/main/java/org/apache/causeway/extensions/commandlog/applib/dom/replay/ReplayableCommand_replayOrRetry.java
@@ -52,6 +52,10 @@ public ReplayableCommand act() {
 
     @MemberSupport
     public String disableAct() {
-        return replayableCommand.disableReplayOrRetry();
+        // previously we restricted this, but there are cases where a
+        // retry of a command that succeeded may be warranted
+        // return replayableCommand.disableReplayOrRetry();
+
+        return null;
     }
 }