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 872adf79dabba0ac51b5c0048ca5f467cab33976 Author: Dan Haywood <[email protected]> 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;
