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
The following commit(s) were added to refs/heads/ISIS-3110 by this push:
new dfc8df1719 ISIS-3110: fixes up integ test issues
dfc8df1719 is described below
commit dfc8df17193e3928f3ce06b0b4a34668bb15a879
Author: Dan Haywood <[email protected]>
AuthorDate: Thu Aug 4 08:08:22 2022 +0100
ISIS-3110: fixes up integ test issues
---
.../changetracking/EntityChangeTrackerDefault.java | 14 ++++++++++++--
.../testdomain/persistence/jpa/JpaBootstrappingTest.java | 3 ++-
.../JpaExceptionTranslationTest_usingTransactional.java | 1 +
3 files changed, 15 insertions(+), 3 deletions(-)
diff --git
a/persistence/commons/src/main/java/org/apache/isis/persistence/jpa/integration/changetracking/EntityChangeTrackerDefault.java
b/persistence/commons/src/main/java/org/apache/isis/persistence/jpa/integration/changetracking/EntityChangeTrackerDefault.java
index 8c9450a0c8..620f5c96ec 100644
---
a/persistence/commons/src/main/java/org/apache/isis/persistence/jpa/integration/changetracking/EntityChangeTrackerDefault.java
+++
b/persistence/commons/src/main/java/org/apache/isis/persistence/jpa/integration/changetracking/EntityChangeTrackerDefault.java
@@ -37,11 +37,11 @@ import org.springframework.core.annotation.Order;
import org.springframework.lang.Nullable;
import org.springframework.stereotype.Service;
+import org.apache.isis.applib.annotation.DomainObject;
import org.apache.isis.applib.annotation.EntityChangeKind;
import org.apache.isis.applib.annotation.InteractionScope;
import org.apache.isis.applib.annotation.PriorityPrecedence;
import org.apache.isis.applib.services.bookmark.Bookmark;
-import org.apache.isis.applib.services.eventbus.EventBusService;
import org.apache.isis.applib.services.iactn.Interaction;
import org.apache.isis.applib.services.iactn.InteractionProvider;
import org.apache.isis.applib.services.metrics.MetricsService;
@@ -75,13 +75,23 @@ import lombok.val;
import lombok.extern.log4j.Log4j2;
/**
+ * This service keeps track of all of the changes within a transactoin, for
entities for which entity property change
+ * publishing is enabled (typically using the
+ * {@link DomainObject#entityChangePublishing()
@DomainObject(entityChangePublishing=)} annotation attribute.
+ *
+ * <p>
+ * The service is {@link InteractionScope}d. In theory this could happen
multiple times per interaction, so the
+ * data structures are cleared on each commit for potential reuse within the
same interaction. (Of course, because the
+ * service <i>is</i> interaction-scoped, a new instance of the service is
created for each interaction, and so the
+ * data held in this service is private to each user's interaction.
+ * </p>
* @since 2.0 {@index}
*/
@Service
@Named("isis.persistence.commons.EntityChangeTrackerDefault")
@Priority(PriorityPrecedence.EARLY)
@Qualifier("default")
-@InteractionScope
+@InteractionScope // see note above regarding this
@RequiredArgsConstructor(onConstructor_ = {@Inject})
@Log4j2
public class EntityChangeTrackerDefault
diff --git
a/regressiontests/stable-persistence-jpa/src/test/java/org/apache/isis/testdomain/persistence/jpa/JpaBootstrappingTest.java
b/regressiontests/stable-persistence-jpa/src/test/java/org/apache/isis/testdomain/persistence/jpa/JpaBootstrappingTest.java
index 26ff00f9da..aea9fc23cc 100644
---
a/regressiontests/stable-persistence-jpa/src/test/java/org/apache/isis/testdomain/persistence/jpa/JpaBootstrappingTest.java
+++
b/regressiontests/stable-persistence-jpa/src/test/java/org/apache/isis/testdomain/persistence/jpa/JpaBootstrappingTest.java
@@ -29,6 +29,7 @@ import org.junit.jupiter.api.Order;
import org.junit.jupiter.api.Test;
import org.junit.jupiter.api.TestMethodOrder;
import org.springframework.boot.test.context.SpringBootTest;
+import org.springframework.test.annotation.DirtiesContext;
import org.springframework.test.annotation.Rollback;
import org.springframework.test.context.TestPropertySource;
import org.springframework.transaction.PlatformTransactionManager;
@@ -59,7 +60,7 @@ import lombok.val;
})
@TestPropertySource(IsisPresets.UseLog4j2Test)
@Transactional @TestMethodOrder(MethodOrderer.OrderAnnotation.class)
-//@DirtiesContext
+ @DirtiesContext // doesn't seem to tidy up correctly ... I see
InteractionService still injected into entities in the _next_ tests run
(JpaExceptionTranslationTest_usingTransactional)
class JpaBootstrappingTest extends IsisIntegrationTestAbstract {
@Inject private Optional<PlatformTransactionManager>
platformTransactionManager;
diff --git
a/regressiontests/stable-persistence-jpa/src/test/java/org/apache/isis/testdomain/persistence/jpa/JpaExceptionTranslationTest_usingTransactional.java
b/regressiontests/stable-persistence-jpa/src/test/java/org/apache/isis/testdomain/persistence/jpa/JpaExceptionTranslationTest_usingTransactional.java
index 371bc9cd0a..9ac3e2f1ce 100644
---
a/regressiontests/stable-persistence-jpa/src/test/java/org/apache/isis/testdomain/persistence/jpa/JpaExceptionTranslationTest_usingTransactional.java
+++
b/regressiontests/stable-persistence-jpa/src/test/java/org/apache/isis/testdomain/persistence/jpa/JpaExceptionTranslationTest_usingTransactional.java
@@ -30,6 +30,7 @@ import org.junit.jupiter.api.Test;
import org.junit.jupiter.api.TestMethodOrder;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.dao.DataIntegrityViolationException;
+import org.springframework.test.annotation.DirtiesContext;
import org.springframework.test.annotation.Rollback;
import org.springframework.test.context.TestPropertySource;
import org.springframework.test.context.TestPropertySources;