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<>();
/**