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 2020/06/23 10:17:22 UTC

[isis] branch master updated: ISIS-2340: adds permanent debug points for USER_INTERACTION

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 81d0048  ISIS-2340: adds permanent debug points for USER_INTERACTION
81d0048 is described below

commit 81d00483acd972004d3c5e15a596c8c1c45d8bcb
Author: Andi Huber <ah...@apache.org>
AuthorDate: Tue Jun 23 12:17:04 2020 +0200

    ISIS-2340: adds permanent debug points for USER_INTERACTION
---
 .../apache/isis/core/commons/internal/debug/_Probe.java | 17 +++++++++++++++++
 .../main/java/demoapp/webapp/vaadin/DemoAppVaadin.java  |  8 ++++----
 .../ui/components/scalars/ScalarPanelAbstract.java      | 10 ++++++++++
 .../components/scalars/string/MultiLineStringPanel.java |  2 ++
 .../ui/components/widgets/linkandlabel/ActionLink.java  |  5 +++++
 .../linkandlabel/LinkAndLabelFactoryAbstract.java       |  7 ++++---
 .../viewer/wicket/ui/panels/PromptFormAbstract.java     |  6 ++++++
 7 files changed, 48 insertions(+), 7 deletions(-)

diff --git a/core/commons/src/main/java/org/apache/isis/core/commons/internal/debug/_Probe.java b/core/commons/src/main/java/org/apache/isis/core/commons/internal/debug/_Probe.java
index 9633903..896de03 100644
--- a/core/commons/src/main/java/org/apache/isis/core/commons/internal/debug/_Probe.java
+++ b/core/commons/src/main/java/org/apache/isis/core/commons/internal/debug/_Probe.java
@@ -30,6 +30,7 @@ import org.apache.isis.core.commons.internal.collections._Maps;
 import org.apache.isis.core.commons.internal.exceptions._Exceptions;
 
 import lombok.val;
+import lombok.extern.log4j.Log4j2;
 
 /**
  * <h1>- internal use only -</h1>
@@ -49,6 +50,7 @@ import lombok.val;
  * </p>
  * @since 2.0
  */
+@Log4j2
 public class _Probe {
 
     public static enum MaxCallsReachedAction {
@@ -186,6 +188,19 @@ public class _Probe {
         println("total runtime %d ms", nanoCounter.longValue()/1000_000);
     }
 
+    // -- DEBUG ENTRY POINTS
+    
+    public static enum EntryPoint {
+        USER_INTERACTION
+    }
+    
+    /** idea is to keep these for reuse (so these are not just for temporary troubleshooting) */
+    public static void entryPoint(EntryPoint entryPoint, String description) {
+        if(log.isDebugEnabled()) {
+            log.debug("entering {}: {}", entryPoint.name(), description);
+        }
+    }
+    
     // -- CONVENIENT DEBUG TOOLS (STATIC)
     
     public static String currentThreadId() {
@@ -235,6 +250,8 @@ public class _Probe {
         out.println(String.format(emphasisFormat, message));
     }
 
+   
+
     
 
 
diff --git a/examples/demo/vaadin/src/main/java/demoapp/webapp/vaadin/DemoAppVaadin.java b/examples/demo/vaadin/src/main/java/demoapp/webapp/vaadin/DemoAppVaadin.java
index 25ca2bc..c4cb76a 100644
--- a/examples/demo/vaadin/src/main/java/demoapp/webapp/vaadin/DemoAppVaadin.java
+++ b/examples/demo/vaadin/src/main/java/demoapp/webapp/vaadin/DemoAppVaadin.java
@@ -23,11 +23,10 @@ import org.springframework.boot.autoconfigure.SpringBootApplication;
 import org.springframework.boot.web.servlet.support.SpringBootServletInitializer;
 import org.springframework.context.annotation.Import;
 
+import org.apache.isis.core.commons.internal.debug._Probe;
 import org.apache.isis.core.config.presets.IsisPresets;
 import org.apache.isis.core.runtimeservices.session.IsisInteractionFactoryDefault;
-import org.apache.isis.incubator.viewer.vaadin.ui.auth.VaadinAuthenticationHandler;
 import org.apache.isis.incubator.viewer.vaadin.viewer.IsisModuleIncViewerVaadinViewer;
-import org.apache.isis.incubator.viewer.vaadin.viewer.IsisServletForVaadin;
 import org.apache.isis.valuetypes.asciidoc.ui.vaa.IsisModuleValAsciidocUiVaa;
 import org.apache.isis.valuetypes.asciidoc.ui.wkt.IsisModuleValAsciidocUiWkt;
 import org.apache.isis.valuetypes.sse.ui.IsisModuleValSseUi;
@@ -64,8 +63,9 @@ public class DemoAppVaadin extends SpringBootServletInitializer {
     public static void main(String[] args) {
         
         IsisPresets.logging(IsisInteractionFactoryDefault.class, "debug");
-        IsisPresets.logging(VaadinAuthenticationHandler.class, "debug");
-        IsisPresets.logging(IsisServletForVaadin.class, "debug");
+//        IsisPresets.logging(VaadinAuthenticationHandler.class, "debug");
+//        IsisPresets.logging(IsisServletForVaadin.class, "debug");
+        IsisPresets.logging(_Probe.class, "debug"); // enable debug entry logging
         
         ThereCanBeOnlyOne.remoteShutdownOthersIfAny();
         
diff --git a/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/ScalarPanelAbstract.java b/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/ScalarPanelAbstract.java
index b45e4c4..c584fb6 100644
--- a/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/ScalarPanelAbstract.java
+++ b/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/ScalarPanelAbstract.java
@@ -44,6 +44,8 @@ import org.apache.isis.applib.services.metamodel.BeanSort;
 import org.apache.isis.applib.services.metamodel.MetaModelService;
 import org.apache.isis.core.commons.internal.base._Strings;
 import org.apache.isis.core.commons.internal.collections._Lists;
+import org.apache.isis.core.commons.internal.debug._Probe;
+import org.apache.isis.core.commons.internal.debug._Probe.EntryPoint;
 import org.apache.isis.core.metamodel.facets.all.named.NamedFacet;
 import org.apache.isis.core.metamodel.facets.members.cssclass.CssClassFacet;
 import org.apache.isis.core.metamodel.facets.objectvalue.labelat.LabelAtFacet;
@@ -506,6 +508,11 @@ implements ScalarModelSubscriber {
 
         @Override
         protected void onUpdate(AjaxRequestTarget target) {
+            
+            _Probe.entryPoint(EntryPoint.USER_INTERACTION, "Wicket Ajax Request, "
+                    + "originating from User either having changed a Property value during inline editing "
+                    + "or having changed a Parameter value within an open ActionPrompt.");
+            
             for (ScalarModelSubscriber subscriber : scalarPanel.subscribers) {
                 subscriber.onUpdate(target, scalarPanel);
             }
@@ -725,6 +732,9 @@ implements ScalarModelSubscriber {
 
             @Override
             protected void onEvent(final AjaxRequestTarget target) {
+                
+                _Probe.entryPoint(EntryPoint.USER_INTERACTION, "Wicket Ajax Request, "
+                        + "originating from User clicking on an editable Property to start inline editing.");
 
                 scalarModel.toEditMode();
 
diff --git a/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/string/MultiLineStringPanel.java b/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/string/MultiLineStringPanel.java
index 40f0a3c..02422d6 100644
--- a/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/string/MultiLineStringPanel.java
+++ b/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/string/MultiLineStringPanel.java
@@ -77,6 +77,8 @@ public class MultiLineStringPanel extends ScalarPanelTextFieldParseableAbstract
         final Fragment fragment = new Fragment(id, "textareaInlinePrompt", this);
         final TextArea<String> inlinePromptTextArea = new TextArea<String>("scalarValue", inlinePromptModel) {
 
+            private static final long serialVersionUID = 1L;
+
             @Override protected void onComponentTag(final ComponentTag tag) {
                 super.onComponentTag(tag);
                 tag.put("tabindex","-1");
diff --git a/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/widgets/linkandlabel/ActionLink.java b/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/widgets/linkandlabel/ActionLink.java
index 646328f..1aa762b 100644
--- a/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/widgets/linkandlabel/ActionLink.java
+++ b/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/widgets/linkandlabel/ActionLink.java
@@ -32,6 +32,8 @@ import org.apache.wicket.util.time.Duration;
 
 import org.apache.isis.applib.annotation.Programmatic;
 import org.apache.isis.applib.value.LocalResourcePath;
+import org.apache.isis.core.commons.internal.debug._Probe;
+import org.apache.isis.core.commons.internal.debug._Probe.EntryPoint;
 import org.apache.isis.core.metamodel.spec.ManagedObject;
 import org.apache.isis.core.metamodel.spec.feature.ObjectAction;
 import org.apache.isis.core.webapp.context.IsisWebAppCommonContext;
@@ -90,6 +92,9 @@ public abstract class ActionLink extends AjaxLink<ManagedObject> implements IAja
 
     @Override
     public void onClick(AjaxRequestTarget target) {
+        
+        _Probe.entryPoint(EntryPoint.USER_INTERACTION, "Wicket Ajax Request, "
+                + "originating from User clicking an Action Link.");
 
         if (ajaxDeferredBehaviourIfAny != null) {
             ajaxDeferredBehaviourIfAny.initiate(target);
diff --git a/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/widgets/linkandlabel/LinkAndLabelFactoryAbstract.java b/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/widgets/linkandlabel/LinkAndLabelFactoryAbstract.java
index 9e80831..6f9d1cb 100644
--- a/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/widgets/linkandlabel/LinkAndLabelFactoryAbstract.java
+++ b/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/widgets/linkandlabel/LinkAndLabelFactoryAbstract.java
@@ -170,8 +170,9 @@ implements Serializable {
             //
             if(actionModel.hasParameters()) {
 
-                final ActionParametersPanel actionParametersPanel =
-                        (ActionParametersPanel) getComponentFactoryRegistry().createComponent(
+                val actionParametersPanel = (ActionParametersPanel)
+                        getComponentFactoryRegistry()
+                        .createComponent(
                                 ComponentType.ACTION_PROMPT, prompt.getContentId(), actionModel);
 
                 actionParametersPanel.setShowHeader(false);
@@ -294,7 +295,7 @@ implements Serializable {
     private InlinePromptContext determineInlinePromptContext() {
         return scalarModelForAssociationIfAny != null
                 ? scalarModelForAssociationIfAny.getInlinePromptContext()
-                        : null;
+                : null;
     }
 
 
diff --git a/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/panels/PromptFormAbstract.java b/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/panels/PromptFormAbstract.java
index 930a6c7..dd69bc3 100644
--- a/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/panels/PromptFormAbstract.java
+++ b/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/panels/PromptFormAbstract.java
@@ -39,6 +39,8 @@ import org.apache.wicket.model.ResourceModel;
 import org.apache.wicket.util.string.AppendingStringBuffer;
 
 import org.apache.isis.core.commons.internal.collections._Lists;
+import org.apache.isis.core.commons.internal.debug._Probe;
+import org.apache.isis.core.commons.internal.debug._Probe.EntryPoint;
 import org.apache.isis.core.metamodel.spec.ManagedObject;
 import org.apache.isis.viewer.wicket.model.hints.UiHintContainer;
 import org.apache.isis.viewer.wicket.model.isis.WicketViewerSettings;
@@ -118,6 +120,10 @@ implements ScalarModelSubscriber {
 
             @Override
             public void onSubmit(AjaxRequestTarget target) {
+                
+                _Probe.entryPoint(EntryPoint.USER_INTERACTION, "Wicket Ajax Request, "
+                        + "originating from User clicking OK on an inline editing form.");
+                
                 onOkSubmittedOf(target, getForm(), this);
             }