You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@isis.apache.org by ah...@apache.org on 2021/03/31 08:36:35 UTC
[isis] branch master updated: ISIS-2573: move XrayUtil to
'security' so can reuse with both 'interaction' and 'transaction'
This is an automated email from the ASF dual-hosted git repository.
ahuber pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/isis.git
The following commit(s) were added to refs/heads/master by this push:
new 7ad2f41 ISIS-2573: move XrayUtil to 'security' so can reuse with both 'interaction' and 'transaction'
7ad2f41 is described below
commit 7ad2f41b9b3d0ad955374a7cc274be133a58dd4f
Author: Andi Huber <ah...@apache.org>
AuthorDate: Wed Mar 31 10:36:22 2021 +0200
ISIS-2573: move XrayUtil to 'security' so can reuse with both
'interaction' and 'transaction'
---
.../interaction/session/InteractionTracker.java | 3 ---
.../org/apache/isis/core/runtime/events/_Xray.java | 2 +-
.../isis/core/runtimeservices/executor/_Xray.java | 4 ++--
.../isis/core/runtimeservices/publish/_Xray.java | 4 ++--
.../isis/core/runtimeservices/session/_Xray.java | 2 +-
.../authentication/AuthenticationContext.java | 3 +++
.../authentication/AuthenticationRequest.java | 2 --
.../apache/isis/core/security}/util/XrayUtil.java | 21 ++++++++++++---------
.../applayer/ApplicationLayerTestFactory.java | 2 +-
9 files changed, 22 insertions(+), 21 deletions(-)
diff --git a/core/interaction/src/main/java/org/apache/isis/core/interaction/session/InteractionTracker.java b/core/interaction/src/main/java/org/apache/isis/core/interaction/session/InteractionTracker.java
index 5660ec6..a2e5480 100644
--- a/core/interaction/src/main/java/org/apache/isis/core/interaction/session/InteractionTracker.java
+++ b/core/interaction/src/main/java/org/apache/isis/core/interaction/session/InteractionTracker.java
@@ -52,9 +52,6 @@ extends InteractionContext, AuthenticationContext {
default Optional<ExecutionContext> currentExecutionContext() {
return currentAuthenticationLayer().map(AuthenticationLayer::getExecutionContext);
}
-
- /** @return authentication-layer-stack size */
- int getAuthenticationLayerCount();
// -- AUTHENTICATION CONTEXT
diff --git a/core/runtime/src/main/java/org/apache/isis/core/runtime/events/_Xray.java b/core/runtime/src/main/java/org/apache/isis/core/runtime/events/_Xray.java
index b411521..e2a802c 100644
--- a/core/runtime/src/main/java/org/apache/isis/core/runtime/events/_Xray.java
+++ b/core/runtime/src/main/java/org/apache/isis/core/runtime/events/_Xray.java
@@ -22,7 +22,7 @@ import org.apache.isis.applib.services.confview.ConfigurationViewService;
import org.apache.isis.commons.internal.debug.xray.XrayDataModel;
import org.apache.isis.commons.internal.debug.xray.XrayUi;
import org.apache.isis.core.interaction.session.InteractionTracker;
-import org.apache.isis.core.runtime.util.XrayUtil;
+import org.apache.isis.core.security.util.XrayUtil;
import lombok.val;
diff --git a/core/runtimeservices/src/main/java/org/apache/isis/core/runtimeservices/executor/_Xray.java b/core/runtimeservices/src/main/java/org/apache/isis/core/runtimeservices/executor/_Xray.java
index dee5be8..ea1b763 100644
--- a/core/runtimeservices/src/main/java/org/apache/isis/core/runtimeservices/executor/_Xray.java
+++ b/core/runtimeservices/src/main/java/org/apache/isis/core/runtimeservices/executor/_Xray.java
@@ -31,8 +31,8 @@ import org.apache.isis.core.metamodel.spec.ManagedObject;
import org.apache.isis.core.metamodel.spec.ManagedObjects;
import org.apache.isis.core.metamodel.spec.feature.ObjectAction;
import org.apache.isis.core.metamodel.spec.feature.OneToOneAssociation;
-import org.apache.isis.core.runtime.util.XrayUtil;
-import org.apache.isis.core.runtime.util.XrayUtil.SequenceHandle;
+import org.apache.isis.core.security.util.XrayUtil;
+import org.apache.isis.core.security.util.XrayUtil.SequenceHandle;
import lombok.NonNull;
import lombok.val;
diff --git a/core/runtimeservices/src/main/java/org/apache/isis/core/runtimeservices/publish/_Xray.java b/core/runtimeservices/src/main/java/org/apache/isis/core/runtimeservices/publish/_Xray.java
index a2c1d2f..0e7962f 100644
--- a/core/runtimeservices/src/main/java/org/apache/isis/core/runtimeservices/publish/_Xray.java
+++ b/core/runtimeservices/src/main/java/org/apache/isis/core/runtimeservices/publish/_Xray.java
@@ -37,8 +37,8 @@ import org.apache.isis.commons.collections.Can;
import org.apache.isis.commons.internal.base._Text;
import org.apache.isis.commons.internal.debug.xray.XrayUi;
import org.apache.isis.core.interaction.session.InteractionTracker;
-import org.apache.isis.core.runtime.util.XrayUtil;
-import org.apache.isis.core.runtime.util.XrayUtil.SequenceHandle;
+import org.apache.isis.core.security.util.XrayUtil;
+import org.apache.isis.core.security.util.XrayUtil.SequenceHandle;
import lombok.NonNull;
import lombok.val;
diff --git a/core/runtimeservices/src/main/java/org/apache/isis/core/runtimeservices/session/_Xray.java b/core/runtimeservices/src/main/java/org/apache/isis/core/runtimeservices/session/_Xray.java
index 8e150a1..3c5804b 100644
--- a/core/runtimeservices/src/main/java/org/apache/isis/core/runtimeservices/session/_Xray.java
+++ b/core/runtimeservices/src/main/java/org/apache/isis/core/runtimeservices/session/_Xray.java
@@ -23,7 +23,7 @@ import java.util.Stack;
import org.apache.isis.commons.internal.debug.xray.XrayDataModel;
import org.apache.isis.commons.internal.debug.xray.XrayUi;
import org.apache.isis.core.interaction.session.AuthenticationLayer;
-import org.apache.isis.core.runtime.util.XrayUtil;
+import org.apache.isis.core.security.util.XrayUtil;
import lombok.val;
diff --git a/core/security/src/main/java/org/apache/isis/core/security/authentication/AuthenticationContext.java b/core/security/src/main/java/org/apache/isis/core/security/authentication/AuthenticationContext.java
index 3fbd90f..4f3b7b4 100644
--- a/core/security/src/main/java/org/apache/isis/core/security/authentication/AuthenticationContext.java
+++ b/core/security/src/main/java/org/apache/isis/core/security/authentication/AuthenticationContext.java
@@ -48,4 +48,7 @@ public interface AuthenticationContext {
_Probe.currentThreadId()));
}
+ /** authentication-layer-stack size */
+ int getAuthenticationLayerCount();
+
}
diff --git a/core/security/src/main/java/org/apache/isis/core/security/authentication/AuthenticationRequest.java b/core/security/src/main/java/org/apache/isis/core/security/authentication/AuthenticationRequest.java
index 5057992..bddafc7 100644
--- a/core/security/src/main/java/org/apache/isis/core/security/authentication/AuthenticationRequest.java
+++ b/core/security/src/main/java/org/apache/isis/core/security/authentication/AuthenticationRequest.java
@@ -23,8 +23,6 @@ import java.util.stream.Stream;
import javax.annotation.Nullable;
-import static org.apache.isis.commons.internal.base._NullSafe.stream;
-
/**
* Represents a request to authenticate the user identified by
* {@link AuthenticationRequest#getName()}.
diff --git a/core/runtime/src/main/java/org/apache/isis/core/runtime/util/XrayUtil.java b/core/security/src/main/java/org/apache/isis/core/security/util/XrayUtil.java
similarity index 81%
rename from core/runtime/src/main/java/org/apache/isis/core/runtime/util/XrayUtil.java
rename to core/security/src/main/java/org/apache/isis/core/security/util/XrayUtil.java
index e47e425..7052c96 100644
--- a/core/runtime/src/main/java/org/apache/isis/core/runtime/util/XrayUtil.java
+++ b/core/security/src/main/java/org/apache/isis/core/security/util/XrayUtil.java
@@ -16,18 +16,19 @@
* specific language governing permissions and limitations
* under the License.
*/
-package org.apache.isis.core.runtime.util;
+package org.apache.isis.core.security.util;
import java.util.Optional;
import java.util.UUID;
import java.util.function.Consumer;
+import org.apache.isis.applib.services.iactn.InteractionContext;
import org.apache.isis.commons.collections.Can;
import org.apache.isis.commons.internal.debug.xray.XrayModel.ThreadMemento;
import org.apache.isis.commons.internal.debug.xray.XrayUi;
import org.apache.isis.commons.internal.debug.xray.sequence.SequenceDiagram;
import org.apache.isis.commons.internal.exceptions._Exceptions;
-import org.apache.isis.core.interaction.session.InteractionTracker;
+import org.apache.isis.core.security.authentication.AuthenticationContext;
import lombok.Builder;
import lombok.NonNull;
@@ -38,10 +39,10 @@ public final class XrayUtil {
/**
* Returns the sequence diagram data model's id, that is bound to the current thread and interaction.
- * @param iaTracker
+ * @param iaContext
*/
- public static Optional<String> currentSequenceId(final @NonNull InteractionTracker iaTracker) {
- return iaTracker.getInteractionId()
+ public static Optional<String> currentSequenceId(final @NonNull InteractionContext iaContext) {
+ return iaContext.getInteractionId()
.map(XrayUtil::sequenceId);
}
@@ -63,8 +64,10 @@ public final class XrayUtil {
// -- SEQUENCE HANDLE
- public static Optional<SequenceHandle> createSequenceHandle(
- final @NonNull InteractionTracker iaTracker,
+ // Using parameter that implements multiple interfaces, because we have no access to InteractionTracker
+ public static <T extends InteractionContext & AuthenticationContext>
+ Optional<SequenceHandle> createSequenceHandle(
+ final @NonNull T iaTracker,
final String ... callees) {
if(!iaTracker.isInInteraction()) {
@@ -72,10 +75,10 @@ public final class XrayUtil {
}
final int authStackSize = iaTracker.getAuthenticationLayerCount();
- val conversationId = iaTracker.getInteractionId().orElseThrow(_Exceptions::unexpectedCodeReach);
+ val interactionId = iaTracker.getInteractionId().orElseThrow(_Exceptions::unexpectedCodeReach);
val handle = SequenceHandle.builder()
- .sequenceId(XrayUtil.sequenceId(conversationId))
+ .sequenceId(XrayUtil.sequenceId(interactionId))
.caller(authStackSize>0
? XrayUtil.nestedInteractionId(authStackSize)
: "thread")
diff --git a/regressiontests/stable/src/main/java/org/apache/isis/testdomain/applayer/ApplicationLayerTestFactory.java b/regressiontests/stable/src/main/java/org/apache/isis/testdomain/applayer/ApplicationLayerTestFactory.java
index 563c995..e4728a5 100644
--- a/regressiontests/stable/src/main/java/org/apache/isis/testdomain/applayer/ApplicationLayerTestFactory.java
+++ b/regressiontests/stable/src/main/java/org/apache/isis/testdomain/applayer/ApplicationLayerTestFactory.java
@@ -63,7 +63,7 @@ import org.apache.isis.core.interaction.session.InteractionTracker;
import org.apache.isis.core.metamodel.interactions.managed.PropertyInteraction;
import org.apache.isis.core.metamodel.objectmanager.ObjectManager;
import org.apache.isis.core.metamodel.spec.ManagedObject;
-import org.apache.isis.core.runtime.util.XrayUtil;
+import org.apache.isis.core.security.util.XrayUtil;
import org.apache.isis.core.transaction.events.TransactionBeforeCompletionEvent;
import org.apache.isis.testdomain.jdo.JdoTestDomainPersona;
import org.apache.isis.testdomain.jdo.entities.JdoBook;