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 2020/02/21 14:52:33 UTC

[isis] 04/04: ISIS-2296: adds some logging to demonstrate the problem

This is an automated email from the ASF dual-hosted git repository.

danhaywood pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/isis.git

commit 81c423d84610d676753e4e04f777d805192c1d65
Author: danhaywood <da...@haywood-associates.co.uk>
AuthorDate: Fri Feb 21 14:49:23 2020 +0000

    ISIS-2296: adds some logging to demonstrate the problem
---
 .../applib/services/command/CommandContext.java     | 21 +++++++++++++++++++++
 .../applib/services/iactn/InteractionContext.java   | 20 ++++++++++++++++++++
 .../isis/applib/services/scratchpad/Scratchpad.java | 21 +++++++++++++++++++++
 .../transaction/ChangedObjectsService.java          | 20 ++++++++++++++++++++
 .../publish/PublisherDispatchServiceDefault.java    | 20 ++++++++++++++++++++
 .../queryresultscache/QueryResultsCacheDefault.java | 18 ++++++++++++++++++
 .../datanucleus5/metrics/MetricsServiceDefault.java | 21 +++++++++++++++++++++
 .../acceptheader/AcceptHeaderServiceForRest.java    | 21 +++++++++++++++++++++
 8 files changed, 162 insertions(+)

diff --git a/api/applib/src/main/java/org/apache/isis/applib/services/command/CommandContext.java b/api/applib/src/main/java/org/apache/isis/applib/services/command/CommandContext.java
index e3a24fc..9e1242b 100644
--- a/api/applib/src/main/java/org/apache/isis/applib/services/command/CommandContext.java
+++ b/api/applib/src/main/java/org/apache/isis/applib/services/command/CommandContext.java
@@ -20,6 +20,8 @@ package org.apache.isis.applib.services.command;
 
 import java.util.Optional;
 
+import javax.annotation.PostConstruct;
+import javax.annotation.PreDestroy;
 import javax.enterprise.context.RequestScoped;
 import javax.inject.Named;
 
@@ -32,6 +34,7 @@ import org.apache.isis.applib.annotation.OrderPrecedence;
 import org.apache.isis.applib.services.command.Command.Executor;
 
 import lombok.Getter;
+import lombok.extern.log4j.Log4j2;
 
 /**
  * This service (API and implementation) provides access to context information about any {@link Command}.
@@ -47,8 +50,26 @@ import lombok.Getter;
 @Order(OrderPrecedence.MIDPOINT)
 @Primary
 @Qualifier("Default")
+@Log4j2
 public class CommandContext {
 
+// end::refguide[]
+    public CommandContext() {
+        log.debug("init");
+    }
+
+    @PostConstruct
+    public void postConstruct() {
+        log.debug("postConstruct");
+    }
+
+    @PreDestroy
+    public void preDestroy() {
+        log.debug("preDestroy");
+    }
+
+// tag::refguide[]
+
     @Getter
     private Command command;
 
diff --git a/api/applib/src/main/java/org/apache/isis/applib/services/iactn/InteractionContext.java b/api/applib/src/main/java/org/apache/isis/applib/services/iactn/InteractionContext.java
index c4e61af..a3899aa 100644
--- a/api/applib/src/main/java/org/apache/isis/applib/services/iactn/InteractionContext.java
+++ b/api/applib/src/main/java/org/apache/isis/applib/services/iactn/InteractionContext.java
@@ -18,6 +18,8 @@
  */
 package org.apache.isis.applib.services.iactn;
 
+import javax.annotation.PostConstruct;
+import javax.annotation.PreDestroy;
 import javax.enterprise.context.RequestScoped;
 import javax.inject.Named;
 
@@ -30,6 +32,7 @@ import org.apache.isis.applib.annotation.DomainService;
 import org.apache.isis.applib.annotation.OrderPrecedence;
 
 import lombok.Getter;
+import lombok.extern.log4j.Log4j2;
 
 /**
  * This service (API and implementation) provides access to context information about any {@link Interaction}.
@@ -45,8 +48,25 @@ import lombok.Getter;
 @Primary
 @Qualifier("Default")
 @RequestScoped
+@Log4j2
 public class InteractionContext {
 
+// end::refguide[]
+    public InteractionContext() {
+        log.debug("init");
+    }
+
+    @PostConstruct
+    public void postConstruct() {
+        log.debug("postConstruct");
+    }
+
+    @PreDestroy
+    public void preDestroy() {
+        log.debug("preDestroy");
+    }
+
+// tag::refguide[]
     /**
      * The currently active {@link Interaction} for this thread.
      */
diff --git a/api/applib/src/main/java/org/apache/isis/applib/services/scratchpad/Scratchpad.java b/api/applib/src/main/java/org/apache/isis/applib/services/scratchpad/Scratchpad.java
index 8213abe..02afebe 100644
--- a/api/applib/src/main/java/org/apache/isis/applib/services/scratchpad/Scratchpad.java
+++ b/api/applib/src/main/java/org/apache/isis/applib/services/scratchpad/Scratchpad.java
@@ -20,6 +20,8 @@ package org.apache.isis.applib.services.scratchpad;
 
 import java.util.Map;
 
+import javax.annotation.PostConstruct;
+import javax.annotation.PreDestroy;
 import javax.enterprise.context.RequestScoped;
 import javax.inject.Named;
 
@@ -31,6 +33,8 @@ import org.springframework.stereotype.Service;
 import org.apache.isis.applib.annotation.OrderPrecedence;
 import org.apache.isis.core.commons.internal.collections._Maps;
 
+import lombok.extern.log4j.Log4j2;
+
 /**
  * This service (API and implementation) provides a mechanism to interchange information between multiple objects invoked in the same
  * interaction.  Most commonly this will be as the result of invoking a {@link org.apache.isis.applib.annotation.Bulk}
@@ -48,8 +52,25 @@ import org.apache.isis.core.commons.internal.collections._Maps;
 @Primary
 @Named("isisApplib.Scratchpad")
 @Qualifier("Default")
+@Log4j2
 public class Scratchpad {
 
+// end::refguide[]
+    public Scratchpad(){
+        log.debug("init");
+    }
+
+    @PostConstruct
+    public void postConstruct() {
+        log.debug("postConstruct");
+    }
+
+    @PreDestroy
+    public void preDestroy() {
+        log.debug("preDestroy");
+    }
+
+// tag::refguide[]
     /**
      * Provides a mechanism for each object being acted upon to pass
      * data to the next object.
diff --git a/core/runtime/src/main/java/org/apache/isis/core/runtime/persistence/transaction/ChangedObjectsService.java b/core/runtime/src/main/java/org/apache/isis/core/runtime/persistence/transaction/ChangedObjectsService.java
index d174429..8535c05 100644
--- a/core/runtime/src/main/java/org/apache/isis/core/runtime/persistence/transaction/ChangedObjectsService.java
+++ b/core/runtime/src/main/java/org/apache/isis/core/runtime/persistence/transaction/ChangedObjectsService.java
@@ -23,6 +23,8 @@ import java.util.Set;
 import java.util.function.Function;
 import java.util.stream.Stream;
 
+import javax.annotation.PostConstruct;
+import javax.annotation.PreDestroy;
 import javax.enterprise.context.RequestScoped;
 import javax.inject.Named;
 
@@ -43,6 +45,7 @@ import org.apache.isis.core.metamodel.spec.feature.Contributed;
 import org.apache.isis.core.metamodel.spec.feature.ObjectAssociation;
 
 import lombok.val;
+import lombok.extern.log4j.Log4j2;
 
 @Service
 @Named("isisRuntime.ChangedObjectsService")
@@ -50,8 +53,25 @@ import lombok.val;
 @Primary
 @Qualifier("Default")
 @RequestScoped
+@Log4j2
 public class ChangedObjectsService implements WithTransactionScope {
 
+// end::refguide[]
+    public ChangedObjectsService() {
+        log.debug("init");
+    }
+
+    @PostConstruct
+    public void postConstruct() {
+        log.debug("postConstruct");
+    }
+
+    @PreDestroy
+    public void preDestroy() {
+        log.debug("preDestroy");
+    }
+
+// tag::refguide[]
     /**
      * Used for auditing: this contains the pre- values of every property of every object enlisted.
      *
diff --git a/core/runtimeservices/src/main/java/org/apache/isis/core/runtimeservices/publish/PublisherDispatchServiceDefault.java b/core/runtimeservices/src/main/java/org/apache/isis/core/runtimeservices/publish/PublisherDispatchServiceDefault.java
index 81031a1..f3111f1 100644
--- a/core/runtimeservices/src/main/java/org/apache/isis/core/runtimeservices/publish/PublisherDispatchServiceDefault.java
+++ b/core/runtimeservices/src/main/java/org/apache/isis/core/runtimeservices/publish/PublisherDispatchServiceDefault.java
@@ -26,6 +26,8 @@ import java.util.Map;
 import java.util.UUID;
 import java.util.concurrent.atomic.LongAdder;
 
+import javax.annotation.PostConstruct;
+import javax.annotation.PreDestroy;
 import javax.enterprise.context.RequestScoped;
 import javax.inject.Inject;
 import javax.inject.Named;
@@ -53,6 +55,7 @@ import org.apache.isis.core.metamodel.spec.ManagedObject;
 import org.apache.isis.core.runtime.persistence.transaction.ChangedObjectsService;
 
 import lombok.val;
+import lombok.extern.log4j.Log4j2;
 
 /**
  * Wrapper around {@link PublisherService}.  Is a no-op if there is no injected service.
@@ -63,8 +66,25 @@ import lombok.val;
 @Primary
 @RequestScoped
 @Qualifier("Default")
+@Log4j2
 public class PublisherDispatchServiceDefault implements PublisherDispatchService {
 
+// end::refguide[]
+    public PublisherDispatchServiceDefault() {
+        log.debug("init");
+    }
+
+    @PostConstruct
+    public void postConstruct() {
+        log.debug("postConstruct");
+    }
+
+    @PreDestroy
+    public void preDestroy() {
+        log.debug("preDestroy");
+    }
+
+// tag::refguide[]
     @Inject private List<PublisherService> publisherServices;
     @Inject private ChangedObjectsService changedObjectsService;
     @Inject private CommandContext commandContext;
diff --git a/core/runtimeservices/src/main/java/org/apache/isis/core/runtimeservices/queryresultscache/QueryResultsCacheDefault.java b/core/runtimeservices/src/main/java/org/apache/isis/core/runtimeservices/queryresultscache/QueryResultsCacheDefault.java
index 5005fdb..a68d915 100644
--- a/core/runtimeservices/src/main/java/org/apache/isis/core/runtimeservices/queryresultscache/QueryResultsCacheDefault.java
+++ b/core/runtimeservices/src/main/java/org/apache/isis/core/runtimeservices/queryresultscache/QueryResultsCacheDefault.java
@@ -21,6 +21,8 @@ import java.util.List;
 import java.util.Map;
 import java.util.concurrent.Callable;
 
+import javax.annotation.PostConstruct;
+import javax.annotation.PreDestroy;
 import javax.enterprise.context.RequestScoped;
 import javax.inject.Named;
 
@@ -65,6 +67,22 @@ import lombok.extern.log4j.Log4j2;
 @Log4j2
 public class QueryResultsCacheDefault implements QueryResultsCache, WithTransactionScope {
 
+// end::refguide[]
+    public QueryResultsCacheDefault() {
+        log.debug("init");
+    }
+
+    @PostConstruct
+    public void postConstruct() {
+        log.debug("postConstruct");
+    }
+
+    @PreDestroy
+    public void preDestroy() {
+        log.debug("preDestroy");
+    }
+
+// tag::refguide[]
     private final Map<Key, Value<?>> cache = _Maps.newHashMap();
     
     @Override
diff --git a/persistence/jdo/datanucleus-5/src/main/java/org/apache/isis/persistence/jdo/datanucleus5/metrics/MetricsServiceDefault.java b/persistence/jdo/datanucleus-5/src/main/java/org/apache/isis/persistence/jdo/datanucleus5/metrics/MetricsServiceDefault.java
index fe801a4..36c382e 100644
--- a/persistence/jdo/datanucleus-5/src/main/java/org/apache/isis/persistence/jdo/datanucleus5/metrics/MetricsServiceDefault.java
+++ b/persistence/jdo/datanucleus-5/src/main/java/org/apache/isis/persistence/jdo/datanucleus5/metrics/MetricsServiceDefault.java
@@ -20,6 +20,8 @@ package org.apache.isis.persistence.jdo.datanucleus5.metrics;
 
 import java.util.concurrent.atomic.LongAdder;
 
+import javax.annotation.PostConstruct;
+import javax.annotation.PreDestroy;
 import javax.enterprise.context.RequestScoped;
 import javax.inject.Inject;
 import javax.inject.Named;
@@ -37,15 +39,34 @@ import org.apache.isis.applib.services.WithTransactionScope;
 import org.apache.isis.applib.services.metrics.MetricsService;
 import org.apache.isis.core.runtime.persistence.transaction.ChangedObjectsService;
 
+import lombok.extern.log4j.Log4j2;
+
 @Service
 @Named("isisJdoDn5.MetricsServiceDefault")
 @Order(OrderPrecedence.MIDPOINT)
 @Primary
 @Qualifier("Default")
 @RequestScoped
+@Log4j2
 public class MetricsServiceDefault 
 implements MetricsService, InstanceLifecycleListener, LoadLifecycleListener, WithTransactionScope {
 
+// end::refguide[]
+    public MetricsServiceDefault() {
+        log.debug("init");
+    }
+
+    @PostConstruct
+    public void postConstruct() {
+        log.debug("postConstruct");
+    }
+
+    @PreDestroy
+    public void preDestroy() {
+        log.debug("preDestroy");
+    }
+
+// tag::refguide[]
     @Inject private ChangedObjectsService changedObjectsServiceInternal;
     
     private LongAdder numberLoaded = new LongAdder();
diff --git a/viewers/restfulobjects/rendering/src/main/java/org/apache/isis/viewer/restfulobjects/rendering/service/acceptheader/AcceptHeaderServiceForRest.java b/viewers/restfulobjects/rendering/src/main/java/org/apache/isis/viewer/restfulobjects/rendering/service/acceptheader/AcceptHeaderServiceForRest.java
index 07de639..12e5976 100644
--- a/viewers/restfulobjects/rendering/src/main/java/org/apache/isis/viewer/restfulobjects/rendering/service/acceptheader/AcceptHeaderServiceForRest.java
+++ b/viewers/restfulobjects/rendering/src/main/java/org/apache/isis/viewer/restfulobjects/rendering/service/acceptheader/AcceptHeaderServiceForRest.java
@@ -22,6 +22,8 @@ import java.io.IOException;
 import java.util.List;
 import java.util.stream.Collectors;
 
+import javax.annotation.PostConstruct;
+import javax.annotation.PreDestroy;
 import javax.enterprise.context.RequestScoped;
 import javax.inject.Named;
 import javax.ws.rs.container.ContainerRequestContext;
@@ -43,14 +45,33 @@ import org.apache.isis.core.commons.internal.base._NullSafe;
 
 import static org.apache.isis.core.commons.internal.base._NullSafe.stream;
 
+import lombok.extern.log4j.Log4j2;
+
 @Service
 @Named("isisRoRendering.AcceptHeaderServiceForRest")
 @Order(OrderPrecedence.MIDPOINT)
 @Primary
 @Qualifier("ForRest")
 @RequestScoped
+@Log4j2
 public class AcceptHeaderServiceForRest implements AcceptHeaderService {
 
+// end::refguide[]
+    public AcceptHeaderServiceForRest() {
+        log.debug("init");
+    }
+
+    @PostConstruct
+    public void postConstruct() {
+        log.debug("postConstruct");
+    }
+
+    @PreDestroy
+    public void preDestroy() {
+        log.debug("preDestroy");
+    }
+
+// tag::refguide[]
     private static ThreadLocal<List<MediaType>> mediaTypesByThread = new ThreadLocal<>();
 
     /**