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/09 16:06:19 UTC
[isis] branch master updated: ISIS-2911: cleaning up debug code
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 642ca1d ISIS-2911: cleaning up debug code
642ca1d is described below
commit 642ca1d9c9f75697353daa082efddf3694d3d332
Author: Andi Huber <ah...@apache.org>
AuthorDate: Thu Dec 9 17:06:07 2021 +0100
ISIS-2911: cleaning up debug code
---
.../commons/internal/base/debug/XrayUiTest.java | 1 +
...ableObjectFacetForXmlRootElementAnnotation.java | 9 +-
.../managed/PropertyNegotiationModel.java | 5 +-
.../identify/ObjectBookmarker_builtinHandlers.java | 32 +++----
.../legacy/JavaUtilDateValueSemantics.java | 2 +-
.../command/SchemaValueMarshallerDefault.java | 7 --
.../viewers/jdo/wkt/InteractionTestJdoWkt.java | 4 +-
.../viewers/jpa/wkt/InteractionTestJpaWkt.java | 4 +-
.../models/interaction/BookmarkedObjectWkt.java | 5 --
.../model/models/interaction/_Experiments.java | 99 ----------------------
.../IsisWicketAjaxRequestListenerUtil.java | 5 +-
11 files changed, 29 insertions(+), 144 deletions(-)
diff --git a/commons/src/test/java/org/apache/isis/commons/internal/base/debug/XrayUiTest.java b/commons/src/test/java/org/apache/isis/commons/internal/base/debug/XrayUiTest.java
index 0f921ae..0a0644e 100644
--- a/commons/src/test/java/org/apache/isis/commons/internal/base/debug/XrayUiTest.java
+++ b/commons/src/test/java/org/apache/isis/commons/internal/base/debug/XrayUiTest.java
@@ -57,6 +57,7 @@ class XrayUiTest {
.forEach(this::log);
}
+ @SuppressWarnings("deprecation")
private void log(final String x) {
_Debug.log(x);
}
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/recreatable/RecreatableObjectFacetForXmlRootElementAnnotation.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/recreatable/RecreatableObjectFacetForXmlRootElementAnnotation.java
index 89384e3..39ea36d 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/recreatable/RecreatableObjectFacetForXmlRootElementAnnotation.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/recreatable/RecreatableObjectFacetForXmlRootElementAnnotation.java
@@ -19,7 +19,6 @@
package org.apache.isis.core.metamodel.facets.object.recreatable;
import java.util.Optional;
-import java.util.UUID;
import org.apache.isis.applib.services.bookmark.Bookmark;
import org.apache.isis.applib.services.jaxb.JaxbService;
@@ -43,7 +42,6 @@ extends RecreatableObjectFacetAbstract {
super(holder, RecreationMechanism.INSTANTIATES, postConstructMethodCache, Precedence.HIGH);
}
-
@Override
protected Object doInstantiate(final Class<?> viewModelClass, final @NonNull Optional<Bookmark> bookmark) {
final String xmlStr = getUrlEncodingService().decodeToString(bookmark.map(Bookmark::getIdentifier).orElse(null));
@@ -55,13 +53,8 @@ extends RecreatableObjectFacetAbstract {
protected String serialize(final ManagedObject managedObject) {
final String xml = getJaxbService().toXml(managedObject.getPojo());
final String encoded = getUrlEncodingService().encodeString(xml);
- //FIXME[ISIS-2903] gets called about 4 times per same object, why?
_Debug.onCondition(XrayUi.isXrayEnabled(), ()->{
- _Debug.log("%s => %s",
- super.getMetaModelContext().getInteractionProvider().getInteractionId()
- .map(UUID::toString)
- .orElse("no-interaction"),
- encoded);
+ _Debug.log("[JAXB] serializing viewmodel %s", managedObject.getSpecification().getLogicalTypeName());
});
return encoded;
}
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/interactions/managed/PropertyNegotiationModel.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/interactions/managed/PropertyNegotiationModel.java
index 3dbc93f..27daed1 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/interactions/managed/PropertyNegotiationModel.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/interactions/managed/PropertyNegotiationModel.java
@@ -27,6 +27,7 @@ import org.apache.isis.commons.internal.binding._Observables;
import org.apache.isis.commons.internal.binding._Observables.BooleanObservable;
import org.apache.isis.commons.internal.binding._Observables.LazyObservable;
import org.apache.isis.commons.internal.debug._Debug;
+import org.apache.isis.commons.internal.debug.xray.XrayUi;
import org.apache.isis.core.metamodel.consent.InteractionInitiatedBy;
import org.apache.isis.core.metamodel.spec.ManagedObject;
import org.apache.isis.core.metamodel.spec.ManagedObjects;
@@ -157,7 +158,9 @@ public class PropertyNegotiationModel implements ManagedValue {
public void submit() {
- _Debug.log("[PENDING MODEL] submit pending property value '%s' into owning object", getValue().getValue());
+ _Debug.onCondition(XrayUi.isXrayEnabled(), ()->{
+ _Debug.log("[PENDING MODEL] submit pending property value '%s' into owning object", getValue().getValue());
+ });
managedProperty.modifyProperty(getValue().getValue());
isCurrentValueAbsent.invalidate();
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/objectmanager/identify/ObjectBookmarker_builtinHandlers.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/objectmanager/identify/ObjectBookmarker_builtinHandlers.java
index e9e6257..4fddfc3 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/objectmanager/identify/ObjectBookmarker_builtinHandlers.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/objectmanager/identify/ObjectBookmarker_builtinHandlers.java
@@ -32,17 +32,14 @@ import org.apache.isis.commons.internal.debug._Debug;
import org.apache.isis.commons.internal.debug.xray.XrayUi;
import org.apache.isis.commons.internal.exceptions._Exceptions;
import org.apache.isis.core.metamodel.facets.object.entity.EntityFacet;
-import org.apache.isis.core.metamodel.facets.object.entity.PersistenceStandard;
import org.apache.isis.core.metamodel.facets.object.value.ValueFacet;
import org.apache.isis.core.metamodel.facets.object.viewmodel.ViewModelFacet;
import org.apache.isis.core.metamodel.objectmanager.identify.ObjectBookmarker.Handler;
-import org.apache.isis.core.metamodel.objectmanager.memento.ObjectMementoService;
import org.apache.isis.core.metamodel.spec.ManagedObject;
-import org.apache.isis.core.metamodel.spec.ManagedObjects.EntityUtil;
-import org.apache.isis.core.metamodel.spec.PackedManagedObject;
import lombok.SneakyThrows;
import lombok.val;
+import lombok.extern.log4j.Log4j2;
class ObjectBookmarker_builtinHandlers {
@@ -81,7 +78,7 @@ class ObjectBookmarker_builtinHandlers {
}
- //@Log4j2
+ @Log4j2
static class BookmarkForEntities implements Handler {
@Override
@@ -103,33 +100,28 @@ class ObjectBookmarker_builtinHandlers {
throw _Exceptions.unrecoverable(msg);
}
- // special code path (on JDO), when detached entity with its OID not previously memoized
+ // fail early when detached entities are detected
+ // should have been re-fetched at start of this request-cycle
if(!managedObject.isBookmarkMemoized()
- && EntityUtil.getPersistenceStandard(managedObject)
- .map(PersistenceStandard::isJdo)
- .orElse(false)
+// && EntityUtil.getPersistenceStandard(managedObject)
+// .map(PersistenceStandard::isJdo)
+// .orElse(false)
&& !entityFacet.getEntityState(entityPojo).isAttached()) {
_Debug.onCondition(XrayUi.isXrayEnabled(), ()->{
_Debug.log("detached entity detected %s", entityPojo);
});
- throw _Exceptions.illegalArgument(
+ val msg = String.format(
"The persistence layer does not recognize given object of type %s, "
+ "meaning the object has no identifier that associates it with the persistence layer. "
+ "(most likely, because the object is detached, eg. was not persisted after being new-ed up)",
entityPojo.getClass().getName());
-// // fail early, if re-fetch failed
-// _Assert.assertTrue(
-// entityFacet.getEntityState(entityPojo).isAttached(),
-// ()->{
-// val msg = String.format("failed to re-attach (persist) JDO entity %s, "
-// + "while creating a Bookmark",
-// spec.getLogicalTypeName());
-// log.error(msg); // in case exception gets swallowed
-// return msg;
-// });
+ // in case of the exception getting swallowed, also write a log
+ log.error(msg);
+
+ throw _Exceptions.illegalArgument(msg);
}
val identifier = entityFacet.identifierFor(spec, entityPojo);
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/valuesemantics/temporal/legacy/JavaUtilDateValueSemantics.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/valuesemantics/temporal/legacy/JavaUtilDateValueSemantics.java
index f32c240..8d9ccc0 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/valuesemantics/temporal/legacy/JavaUtilDateValueSemantics.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/valuesemantics/temporal/legacy/JavaUtilDateValueSemantics.java
@@ -41,7 +41,7 @@ import org.apache.isis.core.metamodel.valuetypes.TemporalSemanticsAdapter;
@Component
@Named("isis.val.JavaUtilDateValueSemantics")
public class JavaUtilDateValueSemantics
-extends TemporalSemanticsAdapter<Date, LocalDateTime> {
+extends TemporalSemanticsAdapter<java.util.Date, LocalDateTime> {
@Inject LocalDateTimeValueSemantics localDateTimeValueSemantics;
diff --git a/core/runtimeservices/src/main/java/org/apache/isis/core/runtimeservices/command/SchemaValueMarshallerDefault.java b/core/runtimeservices/src/main/java/org/apache/isis/core/runtimeservices/command/SchemaValueMarshallerDefault.java
index c3e03c4..5a2dab3 100644
--- a/core/runtimeservices/src/main/java/org/apache/isis/core/runtimeservices/command/SchemaValueMarshallerDefault.java
+++ b/core/runtimeservices/src/main/java/org/apache/isis/core/runtimeservices/command/SchemaValueMarshallerDefault.java
@@ -35,8 +35,6 @@ import org.apache.isis.commons.internal.base._Casts;
import org.apache.isis.commons.internal.base._NullSafe;
import org.apache.isis.commons.internal.base._Strings;
import org.apache.isis.commons.internal.context._Context;
-import org.apache.isis.commons.internal.debug._Debug;
-import org.apache.isis.commons.internal.debug.xray.XrayUi;
import org.apache.isis.commons.internal.exceptions._Exceptions;
import org.apache.isis.core.metamodel.facetapi.FeatureType;
import org.apache.isis.core.metamodel.facets.actions.action.invocation.IdentifierUtil;
@@ -418,11 +416,6 @@ implements SchemaValueMarshaller {
return valueDto;
}
case REFERENCE: {
-
- _Debug.onCondition(XrayUi.isXrayEnabled(), ()->{
- _Debug.log("NULL reference detected %s", pojo);
- });
-
// at this point, we know the value has no bookmark
// so leave the DTO empty (representing a null reference)
return valueDto;
diff --git a/regressiontests/stable-viewers-jdo/src/test/java/org/apache/isis/testdomain/viewers/jdo/wkt/InteractionTestJdoWkt.java b/regressiontests/stable-viewers-jdo/src/test/java/org/apache/isis/testdomain/viewers/jdo/wkt/InteractionTestJdoWkt.java
index a3a7dbf..4baec2b 100644
--- a/regressiontests/stable-viewers-jdo/src/test/java/org/apache/isis/testdomain/viewers/jdo/wkt/InteractionTestJdoWkt.java
+++ b/regressiontests/stable-viewers-jdo/src/test/java/org/apache/isis/testdomain/viewers/jdo/wkt/InteractionTestJdoWkt.java
@@ -162,7 +162,9 @@ class InteractionTestJdoWkt extends RegressionTestAbstract {
wktTester.executeAjaxEvent(INLINE_PROMPT_FORM_OK, "click");
});
- _Debug.log("[TEST] form submitted");
+ _Debug.onCondition(XrayUi.isXrayEnabled(), ()->{
+ _Debug.log("[TEST] form submitted");
+ });
// ... should yield a new Title containing 'Bookstore2'
run(()->{
diff --git a/regressiontests/stable-viewers-jpa/src/test/java/org/apache/isis/testdomain/viewers/jpa/wkt/InteractionTestJpaWkt.java b/regressiontests/stable-viewers-jpa/src/test/java/org/apache/isis/testdomain/viewers/jpa/wkt/InteractionTestJpaWkt.java
index 220fda5..dbc2aea 100644
--- a/regressiontests/stable-viewers-jpa/src/test/java/org/apache/isis/testdomain/viewers/jpa/wkt/InteractionTestJpaWkt.java
+++ b/regressiontests/stable-viewers-jpa/src/test/java/org/apache/isis/testdomain/viewers/jpa/wkt/InteractionTestJpaWkt.java
@@ -162,7 +162,9 @@ class InteractionTestJpaWkt extends RegressionTestAbstract {
wktTester.executeAjaxEvent(INLINE_PROMPT_FORM_OK, "click");
});
- _Debug.log("[TEST] form submitted");
+ _Debug.onCondition(XrayUi.isXrayEnabled(), ()->{
+ _Debug.log("[TEST] form submitted");
+ });
// ... should yield a new Title containing 'Bookstore2'
run(()->{
diff --git a/viewers/wicket/model/src/main/java/org/apache/isis/viewer/wicket/model/models/interaction/BookmarkedObjectWkt.java b/viewers/wicket/model/src/main/java/org/apache/isis/viewer/wicket/model/models/interaction/BookmarkedObjectWkt.java
index c996e03..c2b334c 100644
--- a/viewers/wicket/model/src/main/java/org/apache/isis/viewer/wicket/model/models/interaction/BookmarkedObjectWkt.java
+++ b/viewers/wicket/model/src/main/java/org/apache/isis/viewer/wicket/model/models/interaction/BookmarkedObjectWkt.java
@@ -145,11 +145,6 @@ extends ModelAbstract<ManagedObject> {
public final ManagedObject getObjectAndRefetch() {
//EntityUtil.assertAttachedWhenEntity()//guard
val entityOrViewmodel = super.getObject();
-
- if(_Experiments.appliesTo(entityOrViewmodel)) {
- return _Experiments.refetch(entityOrViewmodel, this::reload);
- }
-
return EntityUtil.computeIfDetached(entityOrViewmodel, this::reload);
}
diff --git a/viewers/wicket/model/src/main/java/org/apache/isis/viewer/wicket/model/models/interaction/_Experiments.java b/viewers/wicket/model/src/main/java/org/apache/isis/viewer/wicket/model/models/interaction/_Experiments.java
deleted file mode 100644
index 44c8fdb..0000000
--- a/viewers/wicket/model/src/main/java/org/apache/isis/viewer/wicket/model/models/interaction/_Experiments.java
+++ /dev/null
@@ -1,99 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-package org.apache.isis.viewer.wicket.model.models.interaction;
-
-import java.util.UUID;
-import java.util.function.UnaryOperator;
-
-import org.apache.isis.commons.internal.debug._Debug;
-import org.apache.isis.core.metamodel.spec.ManagedObject;
-
-import lombok.val;
-import lombok.experimental.UtilityClass;
-
-@Deprecated
-@UtilityClass
-final class _Experiments {
-
- public static boolean appliesTo(final ManagedObject entityOrViewmodel) {
- val spec = entityOrViewmodel.getSpecification();
- //FIXME actually we are interested in whether the viewmodel contains entities or not
- if(!spec.getCorrespondingClass()
- .getSimpleName().contains("InventoryJaxb")) {
- return false;
- }
- return false;
- }
-
- public static ManagedObject refetch(
- final ManagedObject viewmodel,
- final UnaryOperator<ManagedObject> onDetachedEntity) {
-
- val spec = viewmodel.getSpecification();
-
- val currentInteractionId = spec.getMetaModelContext().getInteractionProvider().getInteractionId().get();
-
- // check whether we have done this already for this request-cycle, and if so skip
- if(canSkip(currentInteractionId)){
- return viewmodel;
- }
-
- _Debug.log("JAXB reload from bookmark (ia: %s)", currentInteractionId.toString());
-
-// spec.streamAssociations(MixedIn.EXCLUDED)
-// .forEach(assoc->{
-// if(assoc.isOneToOneAssociation()) {
-// val prop = assoc.get(viewmodel);
-// EntityUtil.reattach(prop);
-// System.err.printf("reattached (prop) %s->%s%n", assoc.getId(), prop);
-// } else {
-// val coll = assoc.get(viewmodel);
-// EntityUtil.reattach(coll);
-// System.err.printf("reattached (coll) %s->%s%n", assoc.getId(), coll);
-// }
-// });
-
- return onDetachedEntity.apply(viewmodel);
- }
-
- // -- HELPER
-
- /**
- * keeps track of the latest interactionId, for which re-attaching was executed;
- * such that we do that only once per interaction;
- * @implNote future work might use the current interaction and set a custom flag active
- */
- private static final ThreadLocal<UUID> THREAD_LOCAL =
- InheritableThreadLocal.withInitial(()->null);
-
- /**
- * Returns whether we have done this already for this request-cycle.
- */
- private static boolean canSkip(final UUID currentInteractionId) {
- val previousInteractionId = THREAD_LOCAL.get();
- if(previousInteractionId!=null
- && previousInteractionId.equals(currentInteractionId)) {
- // skip
- return true;
- }
- THREAD_LOCAL.set(currentInteractionId);
- return false;
- }
-
-}
diff --git a/viewers/wicket/viewer/src/main/java/org/apache/isis/viewer/wicket/viewer/wicketapp/IsisWicketAjaxRequestListenerUtil.java b/viewers/wicket/viewer/src/main/java/org/apache/isis/viewer/wicket/viewer/wicketapp/IsisWicketAjaxRequestListenerUtil.java
index 4343808..f079967 100644
--- a/viewers/wicket/viewer/src/main/java/org/apache/isis/viewer/wicket/viewer/wicketapp/IsisWicketAjaxRequestListenerUtil.java
+++ b/viewers/wicket/viewer/src/main/java/org/apache/isis/viewer/wicket/viewer/wicketapp/IsisWicketAjaxRequestListenerUtil.java
@@ -28,6 +28,7 @@ import org.apache.wicket.request.Request;
import org.apache.wicket.request.http.WebRequest;
import org.apache.isis.commons.internal.debug._Debug;
+import org.apache.isis.commons.internal.debug.xray.XrayUi;
import org.apache.isis.core.metamodel.facets.object.viewmodel.ViewModelFacet;
import org.apache.isis.core.runtime.context.IsisAppCommonContext;
import org.apache.isis.viewer.wicket.model.models.EntityModel;
@@ -88,7 +89,9 @@ public final class IsisWicketAjaxRequestListenerUtil {
return lirqh;
}
- _Debug.log("[IRequestHandler] recreate model %s", spec.getCorrespondingClass().getSimpleName());
+ _Debug.onCondition(XrayUi.isXrayEnabled(), ()->{
+ _Debug.log("[IRequestHandler] recreate model %s", spec.getCorrespondingClass().getSimpleName());
+ });
val viewmodel = entityModel.getBookmarkedOwner();
if(viewmodel.isBookmarkMemoized()) {