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 2022/08/04 16:22:10 UTC

[isis] 11/15: ISIS-3110: removes circular dependency

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

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

commit 59a3986bee3ef10bf19bee305f533c19929e9bd6
Author: Dan Haywood <da...@haywood-associates.co.uk>
AuthorDate: Thu Aug 4 10:23:02 2022 +0100

    ISIS-3110: removes circular dependency
---
 .../datanucleus/IsisModulePersistenceJdoDatanucleus.java   | 14 +++-----------
 .../datanucleus/changetracking/JdoLifecycleListener.java   |  7 -------
 .../isis/testdomain/persistence/jpa/JpaJaxbTest.java       |  2 ++
 3 files changed, 5 insertions(+), 18 deletions(-)

diff --git a/persistence/jdo/datanucleus/src/main/java/org/apache/isis/persistence/jdo/datanucleus/IsisModulePersistenceJdoDatanucleus.java b/persistence/jdo/datanucleus/src/main/java/org/apache/isis/persistence/jdo/datanucleus/IsisModulePersistenceJdoDatanucleus.java
index d9ad45994c..81460561d2 100644
--- a/persistence/jdo/datanucleus/src/main/java/org/apache/isis/persistence/jdo/datanucleus/IsisModulePersistenceJdoDatanucleus.java
+++ b/persistence/jdo/datanucleus/src/main/java/org/apache/isis/persistence/jdo/datanucleus/IsisModulePersistenceJdoDatanucleus.java
@@ -18,7 +18,6 @@
  */
 package org.apache.isis.persistence.jdo.datanucleus;
 
-import java.util.ArrayList;
 import java.util.Collections;
 import java.util.LinkedHashSet;
 import java.util.List;
@@ -41,7 +40,6 @@ import org.springframework.context.annotation.Primary;
 import org.springframework.dao.support.PersistenceExceptionTranslator;
 import org.springframework.transaction.interceptor.TransactionInterceptor;
 
-import org.apache.isis.applib.services.eventbus.EventBusService;
 import org.apache.isis.applib.services.iactnlayer.InteractionService;
 import org.apache.isis.commons.internal.assertions._Assert;
 import org.apache.isis.commons.internal.base._NullSafe;
@@ -158,16 +156,12 @@ public class IsisModulePersistenceJdoDatanucleus {
             final IsisConfiguration isisConfiguration,
             final DataSource dataSource,
             final MetaModelContext metaModelContext,
-            final InteractionService interactionService,
             final ObjectLifecyclePublisher objectLifecyclePublisher,
-            final Provider<EntityChangeTracker> entityChangeTrackerProvider,
             final IsisBeanTypeRegistry beanTypeRegistry,
             final DatanucleusSettings dnSettings) {
 
         _Assert.assertNotNull(dataSource, "a datasource is required");
 
-        final Set<String> classNamesNotEnhanced = new LinkedHashSet<>();
-
         autoCreateSchemas(dataSource, isisConfiguration);
 
         val lpmfBean = new LocalPersistenceManagerFactoryBean() {
@@ -176,14 +170,14 @@ public class IsisModulePersistenceJdoDatanucleus {
                 val pu = createDefaultPersistenceUnit(beanTypeRegistry);
                 val pmf = new JDOPersistenceManagerFactory(pu, props);
                 pmf.setConnectionFactory(dataSource);
-                integrateWithApplicationLayer(metaModelContext, entityChangeTrackerProvider, objectLifecyclePublisher, interactionService, pmf);
+                integrateWithApplicationLayer(metaModelContext, objectLifecyclePublisher, pmf);
                 return pmf;
             }
             @Override
             protected PersistenceManagerFactory newPersistenceManagerFactory(final String name) {
                 val pmf = super.newPersistenceManagerFactory(name);
                 pmf.setConnectionFactory(dataSource); //might be too late, anyway, not sure if this is ever called
-                integrateWithApplicationLayer(metaModelContext, entityChangeTrackerProvider, objectLifecyclePublisher, interactionService, pmf);
+                integrateWithApplicationLayer(metaModelContext, objectLifecyclePublisher, pmf);
                 return pmf;
             }
         };
@@ -333,15 +327,13 @@ public class IsisModulePersistenceJdoDatanucleus {
 
     private static void integrateWithApplicationLayer(
             final MetaModelContext metaModelContext,
-            final Provider<EntityChangeTracker> entityChangeTrackerProvider,
             final ObjectLifecyclePublisher objectLifecyclePublisher,
-            final InteractionService interactionService,
             final PersistenceManagerFactory pmf) {
 
         // install JDO specific entity change listeners ...
 
         val jdoLifecycleListener =
-                new JdoLifecycleListener(metaModelContext, entityChangeTrackerProvider, objectLifecyclePublisher, interactionService);
+                new JdoLifecycleListener(metaModelContext, objectLifecyclePublisher);
         pmf.addInstanceLifecycleListener(jdoLifecycleListener, (Class[]) null);
 
     }
diff --git a/persistence/jdo/datanucleus/src/main/java/org/apache/isis/persistence/jdo/datanucleus/changetracking/JdoLifecycleListener.java b/persistence/jdo/datanucleus/src/main/java/org/apache/isis/persistence/jdo/datanucleus/changetracking/JdoLifecycleListener.java
index 5eafecd564..43f1c480e1 100644
--- a/persistence/jdo/datanucleus/src/main/java/org/apache/isis/persistence/jdo/datanucleus/changetracking/JdoLifecycleListener.java
+++ b/persistence/jdo/datanucleus/src/main/java/org/apache/isis/persistence/jdo/datanucleus/changetracking/JdoLifecycleListener.java
@@ -65,9 +65,7 @@ implements AttachLifecycleListener, ClearLifecycleListener, CreateLifecycleListe
 DetachLifecycleListener, DirtyLifecycleListener, LoadLifecycleListener, StoreLifecycleListener {
 
     private final @NonNull MetaModelContext metaModelContext;
-    private final @NonNull Provider<EntityChangeTracker> entityChangeTrackerProvider;
     private final @NonNull ObjectLifecyclePublisher objectLifecyclePublisher;
-    private final @NonNull InteractionService interactionService;
 
     // -- CALLBACKS
 
@@ -207,10 +205,5 @@ DetachLifecycleListener, DirtyLifecycleListener, LoadLifecycleListener, StoreLif
         return _Utils.adaptEntityAndInjectServices(metaModelContext, pojo, bookmarking);
     }
 
-    // -- DEPENDENCIES
-
-    private EntityChangeTracker entityChangeTracker() {
-        return interactionService.isInInteraction() ? entityChangeTrackerProvider.get() : EntityChangeTracker.NOOP;
-    }
 
 }
diff --git a/regressiontests/stable-persistence-jpa/src/test/java/org/apache/isis/testdomain/persistence/jpa/JpaJaxbTest.java b/regressiontests/stable-persistence-jpa/src/test/java/org/apache/isis/testdomain/persistence/jpa/JpaJaxbTest.java
index 206f59c44a..d96060b8e2 100644
--- a/regressiontests/stable-persistence-jpa/src/test/java/org/apache/isis/testdomain/persistence/jpa/JpaJaxbTest.java
+++ b/regressiontests/stable-persistence-jpa/src/test/java/org/apache/isis/testdomain/persistence/jpa/JpaJaxbTest.java
@@ -24,6 +24,8 @@ import org.junit.jupiter.api.Test;
 import org.springframework.boot.test.context.SpringBootTest;
 import org.springframework.test.context.TestPropertySource;
 
+import org.apache.isis.applib.annotation.InteractionScope;
+import org.apache.isis.applib.services.iactnlayer.InteractionService;
 import org.apache.isis.applib.services.jaxb.JaxbService;
 import org.apache.isis.core.config.presets.IsisPresets;
 import org.apache.isis.testdomain.RegressionTestAbstract;