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/12/03 17:18:37 UTC
[isis] branch master updated: ISIS-2903: Xray/Debug: minor rendering improvement
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 1936e91 ISIS-2903: Xray/Debug: minor rendering improvement
1936e91 is described below
commit 1936e91c1316bc0e69e1ff31c4bbf2318aee4e2a
Author: Andi Huber <ah...@apache.org>
AuthorDate: Fri Dec 3 18:17:33 2021 +0100
ISIS-2903: Xray/Debug: minor rendering improvement
---
.../apache/isis/commons/internal/debug/_Debug.java | 34 +++-------------------
.../internal/debug/xray/_CallStackMerger.java | 8 +++--
.../commons/internal/exceptions/_Exceptions.java | 33 +++++++++++++++++++++
3 files changed, 42 insertions(+), 33 deletions(-)
diff --git a/commons/src/main/java/org/apache/isis/commons/internal/debug/_Debug.java b/commons/src/main/java/org/apache/isis/commons/internal/debug/_Debug.java
index 225c7cf..6b3269b 100644
--- a/commons/src/main/java/org/apache/isis/commons/internal/debug/_Debug.java
+++ b/commons/src/main/java/org/apache/isis/commons/internal/debug/_Debug.java
@@ -18,14 +18,13 @@
*/
package org.apache.isis.commons.internal.debug;
-import java.util.Map;
import java.util.stream.Collectors;
import org.apache.isis.commons.collections.Can;
import org.apache.isis.commons.handler.ChainOfResponsibility;
import org.apache.isis.commons.internal.base._NullSafe;
-import org.apache.isis.commons.internal.base._Refs;
import org.apache.isis.commons.internal.base._Strings;
+import org.apache.isis.commons.internal.debug.xray.XrayUi;
import org.apache.isis.commons.internal.exceptions._Exceptions;
import lombok.val;
@@ -35,7 +34,7 @@ import lombok.experimental.UtilityClass;
* <h1>- internal use only -</h1>
* <p>
* Utility for adding temporary debug code,
- * that needs to be removed later.
+ * that needs to be removed later. Also integrates with {@link XrayUi}, if enabled.
* </p>
* <p>
* <b>WARNING</b>: Do <b>NOT</b> use any of the classes provided by this package! <br/>
@@ -123,37 +122,12 @@ public class _Debug {
return se.getLineNumber()>1
&& !se.getClassName().equals(_Debug.class.getName())
&& !se.getClassName().startsWith(ChainOfResponsibility.class.getName())
+ && !se.getClassName().startsWith("java.util.stream") // suppress Stream processing details
;
}
- private final static Map<String, String> packageReplacements = Map.of(
- //"org.apache.isis", "", // unfortunately no IDE support for this (click on StackTraceElement links)
- "org.apache.wicket", "{wkt}",
- "org.springframework", "{spring}",
- "org.apache.tomcat", "{tomcat}",
- "org.apache.catalina", "{catalina}"
- );
-
private String stringify(final StackTraceElement se) {
- val str = se.toString();
-
- return packageReplacements.entrySet().stream()
- .filter(entry->str.startsWith(entry.getKey()))
- .map(entry->{
- val replacement = entry.getValue();
- var s = str;
- s = s.replace(entry.getKey() + ".", replacement.isEmpty() ? "{" : replacement + ".");
- val ref = _Refs.stringRef(s);
- val left = ref.cutAtIndexOfAndDrop(".");
- val right = ref.getValue();
- s = replacement.isEmpty()
- ? left + "}." + right
- : left + "." + right;
- return s;
- })
- .findFirst()
- .orElse(str);
+ return _Exceptions.abbreviate(se.toString());
}
-
}
diff --git a/commons/src/main/java/org/apache/isis/commons/internal/debug/xray/_CallStackMerger.java b/commons/src/main/java/org/apache/isis/commons/internal/debug/xray/_CallStackMerger.java
index 2d90585..b0fb9e4 100644
--- a/commons/src/main/java/org/apache/isis/commons/internal/debug/xray/_CallStackMerger.java
+++ b/commons/src/main/java/org/apache/isis/commons/internal/debug/xray/_CallStackMerger.java
@@ -33,6 +33,7 @@ import org.apache.isis.commons.internal.collections._Maps;
import org.apache.isis.commons.internal.collections._Sets;
import org.apache.isis.commons.internal.debug.xray.XrayDataModel.LogEntry;
import org.apache.isis.commons.internal.debug.xray.graphics.CallStackDiagram;
+import org.apache.isis.commons.internal.exceptions._Exceptions;
import lombok.RequiredArgsConstructor;
import lombok.val;
@@ -106,9 +107,9 @@ final class _CallStackMerger {
for (Iterator<IntTreeNode> it = children.iterator(); it.hasNext();) {
IntTreeNode next = it.next();
if (it.hasNext()) {
- next.print(valueMapper, buffer, childrenPrefix + "├── ", childrenPrefix + "│ ");
+ next.print(valueMapper, buffer, childrenPrefix + "├─ ", childrenPrefix + "│ ");
} else {
- next.print(valueMapper, buffer, childrenPrefix + "└── ", childrenPrefix + " ");
+ next.print(valueMapper, buffer, childrenPrefix + "└─ ", childrenPrefix + " ");
}
}
}
@@ -148,7 +149,8 @@ final class _CallStackMerger {
val root = merge(executionLanes);
callStackDiagram = new CallStackDiagram(root.print(id->{
- return executionNodeMap.getOrDefault(id, "root");
+ return _Exceptions.abbreviate(
+ executionNodeMap.getOrDefault(id, "root"));
}).toString());
}
diff --git a/commons/src/main/java/org/apache/isis/commons/internal/exceptions/_Exceptions.java b/commons/src/main/java/org/apache/isis/commons/internal/exceptions/_Exceptions.java
index 1305fef..11f13d6 100644
--- a/commons/src/main/java/org/apache/isis/commons/internal/exceptions/_Exceptions.java
+++ b/commons/src/main/java/org/apache/isis/commons/internal/exceptions/_Exceptions.java
@@ -21,6 +21,7 @@ package org.apache.isis.commons.internal.exceptions;
import java.io.PrintStream;
import java.util.Collections;
import java.util.List;
+import java.util.Map;
import java.util.NoSuchElementException;
import java.util.Optional;
import java.util.function.Predicate;
@@ -31,6 +32,7 @@ import org.springframework.lang.Nullable;
import org.apache.isis.commons.collections.Can;
import org.apache.isis.commons.internal.base._NullSafe;
+import org.apache.isis.commons.internal.base._Refs;
import org.apache.isis.commons.internal.base._Strings;
import org.apache.isis.commons.internal.collections._Lists;
@@ -385,6 +387,35 @@ public final class _Exceptions {
return false;
}
+ // -- STACKTRACE FORMATTING UTILITY
+
+ private final static Map<String, String> packageReplacements = Map.of(
+ //"org.apache.isis", "", // unfortunately no IDE support for this (click on StackTraceElement links)
+ "org.apache.wicket", "{wkt}",
+ "org.springframework", "{spring}",
+ "org.apache.tomcat", "{tomcat}",
+ "org.apache.catalina", "{catalina}"
+ );
+
+ public static String abbreviate(final String className) {
+ val str = className;
+ return packageReplacements.entrySet().stream()
+ .filter(entry->str.startsWith(entry.getKey()))
+ .map(entry->{
+ val replacement = entry.getValue();
+ var s = str;
+ s = s.replace(entry.getKey() + ".", replacement.isEmpty() ? "{" : replacement + ".");
+ val ref = _Refs.stringRef(s);
+ val left = ref.cutAtIndexOfAndDrop(".");
+ val right = ref.getValue();
+ s = replacement.isEmpty()
+ ? left + "}." + right
+ : left + "." + right;
+ return s;
+ })
+ .findFirst()
+ .orElse(str);
+ }
// -- FLUENT EXCEPTION
@@ -446,4 +477,6 @@ public final class _Exceptions {
}
+
+
}