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 2016/09/27 15:23:14 UTC

[1/4] isis git commit: ISIS-1495: adds RESTART as a further value for SessionLoggingService#CausedBy

Repository: isis
Updated Branches:
  refs/heads/master 527448592 -> d743fe719


ISIS-1495: adds RESTART as a further value for SessionLoggingService#CausedBy


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

Branch: refs/heads/master
Commit: b4bdc978f685c5ec4896979eaaf80d80529a4c2f
Parents: 5274485
Author: Dan Haywood <da...@haywood-associates.co.uk>
Authored: Tue Sep 27 14:38:54 2016 +0100
Committer: Dan Haywood <da...@haywood-associates.co.uk>
Committed: Tue Sep 27 14:38:54 2016 +0100

----------------------------------------------------------------------
 .../isis/applib/services/session/SessionLoggingService.java   | 7 ++++---
 1 file changed, 4 insertions(+), 3 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/isis/blob/b4bdc978/core/applib/src/main/java/org/apache/isis/applib/services/session/SessionLoggingService.java
----------------------------------------------------------------------
diff --git a/core/applib/src/main/java/org/apache/isis/applib/services/session/SessionLoggingService.java b/core/applib/src/main/java/org/apache/isis/applib/services/session/SessionLoggingService.java
index 4e67b90..84d137a 100644
--- a/core/applib/src/main/java/org/apache/isis/applib/services/session/SessionLoggingService.java
+++ b/core/applib/src/main/java/org/apache/isis/applib/services/session/SessionLoggingService.java
@@ -18,10 +18,10 @@
  */
 package org.apache.isis.applib.services.session;
 
-import java.util.Date;
-
 import org.apache.isis.applib.annotation.Programmatic;
 
+import java.util.Date;
+
 /**
  * Similar to the {@link org.apache.isis.applib.services.audit.AuditingService3}, this defines an API to track
  * the status of the current sessions (&quot;users logged on&quot;) on the system.
@@ -35,7 +35,8 @@ public interface SessionLoggingService {
 
     public enum CausedBy {
         USER,
-        SESSION_EXPIRATION
+        SESSION_EXPIRATION,
+        RESTART
     }
 
     @Programmatic


[4/4] isis git commit: ISIS-1465: further improvements to interim-release.sh

Posted by da...@apache.org.
ISIS-1465: further improvements to interim-release.sh


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

Branch: refs/heads/master
Commit: d743fe719bb5139902d8d4f0de9532c6008fe696
Parents: 8534051
Author: Dan Haywood <da...@haywood-associates.co.uk>
Authored: Tue Sep 27 16:17:58 2016 +0100
Committer: Dan Haywood <da...@haywood-associates.co.uk>
Committed: Tue Sep 27 16:22:17 2016 +0100

----------------------------------------------------------------------
 interim-release.sh | 20 ++++++--------------
 1 file changed, 6 insertions(+), 14 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/isis/blob/d743fe71/interim-release.sh
----------------------------------------------------------------------
diff --git a/interim-release.sh b/interim-release.sh
index 34dacb8..337d7e7 100644
--- a/interim-release.sh
+++ b/interim-release.sh
@@ -12,13 +12,9 @@ DATE=`date +'%Y%m%d-%H%M'`
 
 VERSION="$VERSION_BASE.$DATE"
 BRANCH="interim/$VERSION"
-TAG="isis-$VERSION"
+TAG="interim/isis-$VERSION"
 
-echo "removing any earlier (local) 'interim' branches"
-for a in `git branch --list | grep interim`
-do
-    git branch -D $a
-done
+CURR_BRANCH=`git rev-parse --abbrev-ref HEAD`
 
 echo "checking out new branch $BRANCH"
 git checkout -b "$BRANCH"
@@ -34,15 +30,11 @@ git commit -am "bumping to $VERSION"
 echo "tagging"
 git tag $TAG
 
-echo "removing any earlier remote branches"
-for a in `git ls-remote --heads $REMOTE  | sed 's?.*refs/heads/??' | grep interim`
-do
-    git push $REMOTE --delete $a
-done
-
 echo "pushing tag"
 git push $REMOTE $TAG
 
-echo "pushing branch"
-git push $REMOTE $BRANCH
+echo "switching back to original branch"
+git checkout $CURR_BRANCH
 
+echo "and deleting interim branch"
+git branch -D $BRANCH


[2/4] isis git commit: ISIS-1497: Fixes unmarshalling of arguments out of DTO within AbstractIsisSessionTemplate (and leverage this in BackgroundCommandExecution).

Posted by da...@apache.org.
ISIS-1497: Fixes unmarshalling of arguments out of DTO within AbstractIsisSessionTemplate (and leverage this in BackgroundCommandExecution).


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

Branch: refs/heads/master
Commit: f75f0dd1c42afa2e6d628b319d67e77dbe359863
Parents: b4bdc97
Author: Dan Haywood <da...@haywood-associates.co.uk>
Authored: Tue Sep 27 15:01:45 2016 +0100
Committer: Dan Haywood <da...@haywood-associates.co.uk>
Committed: Tue Sep 27 15:01:45 2016 +0100

----------------------------------------------------------------------
 .../background/BackgroundCommandExecution.java  | 44 ++++++++++++++------
 .../AbstractIsisSessionTemplate.java            | 22 +++++++++-
 2 files changed, 52 insertions(+), 14 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/isis/blob/f75f0dd1/core/runtime/src/main/java/org/apache/isis/core/runtime/services/background/BackgroundCommandExecution.java
----------------------------------------------------------------------
diff --git a/core/runtime/src/main/java/org/apache/isis/core/runtime/services/background/BackgroundCommandExecution.java b/core/runtime/src/main/java/org/apache/isis/core/runtime/services/background/BackgroundCommandExecution.java
index 6362647..9343c11 100644
--- a/core/runtime/src/main/java/org/apache/isis/core/runtime/services/background/BackgroundCommandExecution.java
+++ b/core/runtime/src/main/java/org/apache/isis/core/runtime/services/background/BackgroundCommandExecution.java
@@ -35,7 +35,6 @@ import org.apache.isis.applib.services.iactn.Interaction;
 import org.apache.isis.applib.services.iactn.InteractionContext;
 import org.apache.isis.applib.services.jaxb.JaxbService;
 import org.apache.isis.core.metamodel.adapter.ObjectAdapter;
-import org.apache.isis.core.metamodel.adapter.oid.RootOid;
 import org.apache.isis.core.metamodel.consent.InteractionInitiatedBy;
 import org.apache.isis.core.metamodel.facets.actions.action.invocation.CommandUtil;
 import org.apache.isis.core.metamodel.spec.ObjectSpecification;
@@ -175,11 +174,7 @@ public abstract class BackgroundCommandExecution extends AbstractIsisSessionTemp
 
                             for (OidDto targetOidDto : targetOidDtos) {
 
-                                final Bookmark bookmark = Bookmark.from(targetOidDto);
-                                final Object targetObject = bookmarkService.lookup(bookmark);
-
-                                final ObjectAdapter targetAdapter = adapterFor(targetObject);
-
+                                final ObjectAdapter targetAdapter = targetAdapterFor(targetOidDto);
                                 final ObjectAction objectAction = findObjectAction(targetAdapter, memberId);
 
                                 // we pass 'null' for the mixedInAdapter; if this action _is_ a mixin then
@@ -314,18 +309,41 @@ public abstract class BackgroundCommandExecution extends AbstractIsisSessionTemp
             if(arg == null) {
                 return null;
             }
-            if(Bookmark.class != argType) {
-                return adapterFor(arg);
-            } else {
-                final Bookmark argBookmark = (Bookmark)arg;
-                final RootOid rootOid = RootOid.create(argBookmark);
-                return adapterFor(rootOid);
-            }
+            return argAdapterFor(argType, arg);
+
         } catch (ClassNotFoundException e) {
             throw new RuntimeException(e);
         }
     }
 
+    protected ObjectAdapter targetAdapterFor(final OidDto targetOidDto) {
+
+//        // this is the original code, but it can be simplified ...
+//        // (moved out to separate method so that, if proven wrong, can override as a patch)
+
+//      final Bookmark bookmark = Bookmark.from(targetOidDto);
+//      final Object targetObject = bookmarkService.lookup(bookmark);
+//      final ObjectAdapter targetAdapter = adapterFor(targetObject);
+
+        return adapterFor(targetOidDto);
+    }
+
+    protected ObjectAdapter argAdapterFor(final Class<?> argType, final Object arg) {
+
+//        // this is the original code, but it can be simplified ...
+//        // (moved out to separate method so that, if proven wrong, can override as a patch)
+
+//        if(Bookmark.class != argType) {
+//            return adapterFor(arg);
+//        } else {
+//            final Bookmark argBookmark = (Bookmark)arg;
+//            final RootOid rootOid = RootOid.create(argBookmark);
+//            return adapterFor(rootOid);
+//        }
+
+        return adapterFor(arg);
+    }
+
     private ObjectAdapter[] argAdaptersFor(final ActionDto actionDto) {
         final List<ParamDto> params = paramDtosFrom(actionDto);
         final List<ObjectAdapter> args = Lists.newArrayList(

http://git-wip-us.apache.org/repos/asf/isis/blob/f75f0dd1/core/runtime/src/main/java/org/apache/isis/core/runtime/sessiontemplate/AbstractIsisSessionTemplate.java
----------------------------------------------------------------------
diff --git a/core/runtime/src/main/java/org/apache/isis/core/runtime/sessiontemplate/AbstractIsisSessionTemplate.java b/core/runtime/src/main/java/org/apache/isis/core/runtime/sessiontemplate/AbstractIsisSessionTemplate.java
index df2aa76..1bec4ed 100644
--- a/core/runtime/src/main/java/org/apache/isis/core/runtime/sessiontemplate/AbstractIsisSessionTemplate.java
+++ b/core/runtime/src/main/java/org/apache/isis/core/runtime/sessiontemplate/AbstractIsisSessionTemplate.java
@@ -16,9 +16,9 @@
  */
 package org.apache.isis.core.runtime.sessiontemplate;
 
+import org.apache.isis.applib.services.bookmark.Bookmark;
 import org.apache.isis.core.commons.authentication.AuthenticationSession;
 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;
 import org.apache.isis.core.metamodel.specloader.SpecificationLoader;
 import org.apache.isis.core.runtime.system.context.IsisContext;
@@ -27,6 +27,7 @@ import org.apache.isis.core.runtime.system.session.IsisSession;
 import org.apache.isis.core.runtime.system.session.IsisSessionFactory;
 import org.apache.isis.core.runtime.system.transaction.IsisTransactionManager;
 import org.apache.isis.core.runtime.system.transaction.TransactionalClosure;
+import org.apache.isis.schema.common.v1.OidDto;
 
 public abstract class AbstractIsisSessionTemplate {
 
@@ -82,8 +83,27 @@ public abstract class AbstractIsisSessionTemplate {
     // //////////////////////////////////////
 
     protected ObjectAdapter adapterFor(final Object targetObject) {
+        if(targetObject instanceof OidDto) {
+            final OidDto oidDto = (OidDto) targetObject;
+            return adapterFor(oidDto);
+        }
+        if(targetObject instanceof Bookmark) {
+            final Bookmark bookmark = (Bookmark) targetObject;
+            return adapterFor(bookmark);
+        }
         return getPersistenceSession().adapterFor(targetObject);
     }
+
+    protected ObjectAdapter adapterFor(final OidDto oidDto) {
+        final Bookmark bookmark = Bookmark.from(oidDto);
+        return adapterFor(bookmark);
+    }
+
+    protected ObjectAdapter adapterFor(final Bookmark bookmark) {
+        final RootOid rootOid = RootOid.create(bookmark);
+        return adapterFor(rootOid);
+    }
+
     protected ObjectAdapter adapterFor(final RootOid rootOid) {
         return getPersistenceSession().adapterFor(rootOid);
     }


[3/4] isis git commit: ISIS-1498: introduces new clearAbortCauseAndContinue() internal API for IsisTransaction, and leverage within BackgroundCommandExecution for the case where an action throws an exception (want to capture that, mark on the background

Posted by da...@apache.org.
ISIS-1498: introduces new clearAbortCauseAndContinue() internal API for IsisTransaction, and leverage within BackgroundCommandExecution for the case where an action throws an exception (want to capture that, mark on the background Command, and persist).


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

Branch: refs/heads/master
Commit: 853405172c57ebbe6f4cbef98ab1e5c3e02a9aca
Parents: f75f0dd
Author: Dan Haywood <da...@haywood-associates.co.uk>
Authored: Tue Sep 27 15:03:19 2016 +0100
Committer: Dan Haywood <da...@haywood-associates.co.uk>
Committed: Tue Sep 27 15:03:19 2016 +0100

----------------------------------------------------------------------
 .../background/BackgroundCommandExecution.java   | 19 +++++++++++--------
 .../system/transaction/IsisTransaction.java      | 15 +++++++++++++--
 2 files changed, 24 insertions(+), 10 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/isis/blob/85340517/core/runtime/src/main/java/org/apache/isis/core/runtime/services/background/BackgroundCommandExecution.java
----------------------------------------------------------------------
diff --git a/core/runtime/src/main/java/org/apache/isis/core/runtime/services/background/BackgroundCommandExecution.java b/core/runtime/src/main/java/org/apache/isis/core/runtime/services/background/BackgroundCommandExecution.java
index 9343c11..ba6d03d 100644
--- a/core/runtime/src/main/java/org/apache/isis/core/runtime/services/background/BackgroundCommandExecution.java
+++ b/core/runtime/src/main/java/org/apache/isis/core/runtime/services/background/BackgroundCommandExecution.java
@@ -217,18 +217,21 @@ public abstract class BackgroundCommandExecution extends AbstractIsisSessionTemp
                     }
 
                 } catch (RuntimeException e) {
-                    // this doesn't really make sense if >1 action
-                    // in any case, the capturing of the action interaction should be the
-                    // responsibility of auditing/profiling
+                    // hmmm, this doesn't really make sense if >1 action
+                    //
+                    // in any case, the capturing of the result of the action invocation should be the
+                    // responsibility of the interaction...
                     backgroundCommand.setException(Throwables.getStackTraceAsString(e));
 
-                    // alternatively, could have used ...
-                    Exception unused = backgroundInteraction.getPriorExecution().getThrew();
-
-                    backgroundInteraction.getCurrentExecution().setThrew(e);
+                    // lower down the stack the IsisTransactionManager will have set the transaction to abort
+                    // however, we don't want that to occur (because any changes made to the backgroundCommand itself
+                    // would also be rolled back, and it would keep getting picked up again by a scheduler for
+                    // processing); instead we clear the abort cause and ensure we can continue.
+                    transactionManager.getCurrentTransaction().clearAbortCauseAndContinue();
                 }
 
-                backgroundCommand.setCompletedAt(backgroundInteraction.getPriorExecution().getCompletedAt());
+                final Interaction.Execution priorExecution = backgroundInteraction.getPriorExecution();
+                backgroundCommand.setCompletedAt(priorExecution.getCompletedAt());
             }
 
             private ObjectAction findObjectAction(

http://git-wip-us.apache.org/repos/asf/isis/blob/85340517/core/runtime/src/main/java/org/apache/isis/core/runtime/system/transaction/IsisTransaction.java
----------------------------------------------------------------------
diff --git a/core/runtime/src/main/java/org/apache/isis/core/runtime/system/transaction/IsisTransaction.java b/core/runtime/src/main/java/org/apache/isis/core/runtime/system/transaction/IsisTransaction.java
index ace6b3c..f7eaf60 100644
--- a/core/runtime/src/main/java/org/apache/isis/core/runtime/system/transaction/IsisTransaction.java
+++ b/core/runtime/src/main/java/org/apache/isis/core/runtime/system/transaction/IsisTransaction.java
@@ -472,8 +472,12 @@ public class IsisTransaction implements TransactionScopedComponent, Transaction
      * 
      * <p>
      * If the cause is subsequently rendered by code higher up the stack, then the
-     * cause can be {@link #clearAbortCause() cleared}.  However, it is not possible
-     * to change the state from {@link State#MUST_ABORT}.
+     * cause can be {@link #clearAbortCause() cleared}.  Note that this keeps the transaction in a state of
+     * {@link State#MUST_ABORT}.
+     *
+     * <p>
+     * If the cause is to be discarded completely (eg background command execution), then
+     * {@link #clearAbortCauseAndContinue()} can be used.
      */
     public void setAbortCause(IsisException abortCause) {
         setState(State.MUST_ABORT);
@@ -489,6 +493,13 @@ public class IsisTransaction implements TransactionScopedComponent, Transaction
         abortCause = null;
     }
 
+    public void clearAbortCauseAndContinue() {
+        setState(State.IN_PROGRESS);
+        clearAbortCause();
+    }
+
+
+
 
     //endregion