You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@isis.apache.org by da...@apache.org on 2017/02/12 23:04:06 UTC

[2/2] isis git commit: ISIS-1577: when populating the command DTO (XML), use the transactionId of the existing CommandContext if available.

ISIS-1577: when populating the command DTO (XML), use the transactionId of the existing CommandContext if available.


Project: http://git-wip-us.apache.org/repos/asf/isis/repo
Commit: http://git-wip-us.apache.org/repos/asf/isis/commit/b2b41a97
Tree: http://git-wip-us.apache.org/repos/asf/isis/tree/b2b41a97
Diff: http://git-wip-us.apache.org/repos/asf/isis/diff/b2b41a97

Branch: refs/heads/maint-1.14.0
Commit: b2b41a971c30b9a5bbc10a03382ee6638a6aed53
Parents: f04fc05
Author: Dan Haywood <da...@haywood-associates.co.uk>
Authored: Sun Feb 12 23:02:43 2017 +0000
Committer: Dan Haywood <da...@haywood-associates.co.uk>
Committed: Sun Feb 12 23:02:43 2017 +0000

----------------------------------------------------------------------
 .../command/CommandDtoServiceInternalDefault.java  | 17 ++++++++++++++++-
 1 file changed, 16 insertions(+), 1 deletion(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/isis/blob/b2b41a97/core/runtime/src/main/java/org/apache/isis/core/runtime/services/command/CommandDtoServiceInternalDefault.java
----------------------------------------------------------------------
diff --git a/core/runtime/src/main/java/org/apache/isis/core/runtime/services/command/CommandDtoServiceInternalDefault.java b/core/runtime/src/main/java/org/apache/isis/core/runtime/services/command/CommandDtoServiceInternalDefault.java
index d36b22e..bcab3e3 100644
--- a/core/runtime/src/main/java/org/apache/isis/core/runtime/services/command/CommandDtoServiceInternalDefault.java
+++ b/core/runtime/src/main/java/org/apache/isis/core/runtime/services/command/CommandDtoServiceInternalDefault.java
@@ -31,6 +31,8 @@ import org.apache.isis.applib.annotation.Programmatic;
 import org.apache.isis.applib.services.background.ActionInvocationMemento;
 import org.apache.isis.applib.services.bookmark.Bookmark;
 import org.apache.isis.applib.services.bookmark.BookmarkService;
+import org.apache.isis.applib.services.command.Command;
+import org.apache.isis.applib.services.command.CommandContext;
 import org.apache.isis.core.metamodel.adapter.ObjectAdapter;
 import org.apache.isis.core.metamodel.adapter.mgr.AdapterManager;
 import org.apache.isis.core.metamodel.adapter.oid.RootOid;
@@ -180,7 +182,8 @@ public class CommandDtoServiceInternalDefault implements CommandDtoServiceIntern
         dto.setMajorVersion("1");
         dto.setMinorVersion("0");
 
-        dto.setTransactionId(UUID.randomUUID().toString());
+        String transactionId = determineTransactionId().toString();
+        dto.setTransactionId(transactionId);
 
         for (ObjectAdapter targetAdapter : targetAdapters) {
             final RootOid rootOid = (RootOid) targetAdapter.getOid();
@@ -191,6 +194,15 @@ public class CommandDtoServiceInternalDefault implements CommandDtoServiceIntern
         return dto;
     }
 
+    protected UUID determineTransactionId() {
+        Command command = commandContext.getCommand();
+        if (command != null && command.getTransactionId() != null) {
+            return command.getTransactionId();
+        } else {
+            return UUID.randomUUID();
+        }
+    }
+
     @Override
     public void addActionArgs(
             final ObjectAction objectAction,
@@ -236,6 +248,9 @@ public class CommandDtoServiceInternalDefault implements CommandDtoServiceIntern
 
     //region > injected services
     @javax.inject.Inject
+    CommandContext commandContext;
+
+    @javax.inject.Inject
     private BookmarkService bookmarkService;
 
     @javax.inject.Inject