You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@isis.apache.org by ah...@apache.org on 2022/04/09 16:16:39 UTC

[isis] branch master updated: ISIS-2445: try surefire fork mode again (2)

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

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


The following commit(s) were added to refs/heads/master by this push:
     new 6f65cfa5de ISIS-2445: try surefire fork mode again (2)
6f65cfa5de is described below

commit 6f65cfa5de64646a2005ae43565160001287ad18
Author: Andi Huber <ah...@apache.org>
AuthorDate: Sat Apr 9 18:16:33 2022 +0200

    ISIS-2445: try surefire fork mode again (2)
---
 .../testdomain/persistence/jpa/JpaQueryTest.java   |  4 +-
 .../JpaGeneratedLongIdEntityLifecycleTest.java     | 49 ++++++++++-----------
 ...JpaNonGeneratedStringIdEntityLifecycleTest.java | 50 +++++++++++-----------
 .../src/main/java/include.txt                      |  1 +
 .../stable-rest/src/main/java/include.txt          |  1 +
 5 files changed, 52 insertions(+), 53 deletions(-)

diff --git a/regressiontests/stable-persistence-jpa/src/test/java/org/apache/isis/testdomain/persistence/jpa/JpaQueryTest.java b/regressiontests/stable-persistence-jpa/src/test/java/org/apache/isis/testdomain/persistence/jpa/JpaQueryTest.java
index 0d72d04d5a..3d9b04ad67 100644
--- a/regressiontests/stable-persistence-jpa/src/test/java/org/apache/isis/testdomain/persistence/jpa/JpaQueryTest.java
+++ b/regressiontests/stable-persistence-jpa/src/test/java/org/apache/isis/testdomain/persistence/jpa/JpaQueryTest.java
@@ -58,7 +58,6 @@ import lombok.val;
 @TestPropertySource(IsisPresets.UseLog4j2Test)
 @TestMethodOrder(MethodOrderer.OrderAnnotation.class)
 @Transactional
-@Disabled("fails to run in surefire fork mode")
 class JpaQueryTest extends IsisIntegrationTestAbstract {
 
     @Inject private JpaTestFixtures testFixtures;
@@ -71,8 +70,7 @@ class JpaQueryTest extends IsisIntegrationTestAbstract {
         // Util_H2Console.main(null);
     }
 
-    @Inject
-    ConfigurableBeanFactory configurableBeanFactory;
+    @Inject ConfigurableBeanFactory configurableBeanFactory;
 
     @Test @Order(1)
     void sampleInventory_shouldBeSetUpWith3Books() {
diff --git a/regressiontests/stable-persistence-jpa/src/test/java/org/apache/isis/testdomain/persistence/jpa/entitylifecycle/JpaGeneratedLongIdEntityLifecycleTest.java b/regressiontests/stable-persistence-jpa/src/test/java/org/apache/isis/testdomain/persistence/jpa/entitylifecycle/JpaGeneratedLongIdEntityLifecycleTest.java
index 7440522919..70c12ce3fc 100644
--- a/regressiontests/stable-persistence-jpa/src/test/java/org/apache/isis/testdomain/persistence/jpa/entitylifecycle/JpaGeneratedLongIdEntityLifecycleTest.java
+++ b/regressiontests/stable-persistence-jpa/src/test/java/org/apache/isis/testdomain/persistence/jpa/entitylifecycle/JpaGeneratedLongIdEntityLifecycleTest.java
@@ -19,19 +19,15 @@
 package org.apache.isis.testdomain.persistence.jpa.entitylifecycle;
 
 import java.util.Objects;
-import java.util.concurrent.atomic.AtomicReference;
 
 import javax.inject.Inject;
 
-import org.junit.jupiter.api.AfterAll;
-import org.junit.jupiter.api.BeforeAll;
 import org.junit.jupiter.api.MethodOrderer;
 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.Commit;
-import org.springframework.test.annotation.DirtiesContext;
 import org.springframework.test.context.TestPropertySource;
 import org.springframework.transaction.annotation.Transactional;
 
@@ -47,6 +43,7 @@ import org.apache.isis.core.metamodel.spec.ManagedObject;
 import org.apache.isis.core.metamodel.spec.ManagedObjects;
 import org.apache.isis.testdomain.conf.Configuration_usingJpa;
 import org.apache.isis.testdomain.jpa.entities.JpaEntityGeneratedLongId;
+import org.apache.isis.testdomain.util.kv.KVStoreForTesting;
 
 import lombok.val;
 
@@ -59,23 +56,12 @@ import lombok.val;
 @Transactional
 @TestPropertySource(IsisPresets.UseLog4j2Test)
 @TestMethodOrder(MethodOrderer.OrderAnnotation.class)
-@DirtiesContext
+//@DirtiesContext
 class JpaGeneratedLongIdEntityLifecycleTest {
 
     @Inject private RepositoryService repository;
     @Inject private ObjectManager objectManager;
-
-    private static AtomicReference<ManagedObject> entityRef;
-
-    @BeforeAll
-    static void beforeAll() {
-        entityRef = new AtomicReference<>();
-    }
-
-    @AfterAll
-    static void afterAll() {
-        entityRef = null;
-    }
+    @Inject private KVStoreForTesting kvStore;
 
     @Test @Order(0) @Commit
     void cleanup_justInCase() {
@@ -94,13 +80,14 @@ class JpaGeneratedLongIdEntityLifecycleTest {
                 EntityState.PERSISTABLE_DETACHED,
                 ManagedObjects.EntityUtil.getEntityState(entity));
 
-        entityRef.set(entity);
+        setEntityRef(entity);
+
     }
 
     @Test @Order(2) @Commit
     void attached_shouldBeProperlyDetected() {
 
-        val entity = entityRef.get();
+        val entity = getEntityRef();
 
         repository.persist(entity.getPojo());
 
@@ -117,9 +104,9 @@ class JpaGeneratedLongIdEntityLifecycleTest {
         // expected post-condition (after persist, and having entered a new transaction)
         assertEquals(
                 EntityState.PERSISTABLE_DETACHED,
-                ManagedObjects.EntityUtil.getEntityState(entityRef.get()));
+                ManagedObjects.EntityUtil.getEntityState(getEntityRef()));
 
-        val id = ((JpaEntityGeneratedLongId)entityRef.get().getPojo()).getId();
+        val id = ((JpaEntityGeneratedLongId)getEntityRef().getPojo()).getId();
 
         val entity = objectManager.adapt(
                 repository.firstMatch(
@@ -137,22 +124,36 @@ class JpaGeneratedLongIdEntityLifecycleTest {
         // expected post-condition (after removal)
         assertDetachedOrDeleted(entity);
 
-        entityRef.set(entity);
+        setEntityRef(entity);
     }
 
     @Test @Order(4) @Commit
     void postCondition_shouldBe_anEmptyRepository() {
 
-        val entity = entityRef.get();
+        val entity = getEntityRef();
 
         assertDetachedOrDeleted(entity);
         assertEquals(0, repository.allInstances(JpaEntityGeneratedLongId.class).size());
 
     }
 
+    @Test @Order(5)
+    void cleanup() {
+        kvStore.clear(this);
+    }
+
     // -- HELPER
 
-    public static void assertDetachedOrDeleted(final ManagedObject entity) {
+    void setEntityRef(final ManagedObject entity) {
+        kvStore.put(this, "entity", entity);
+    }
+
+    ManagedObject getEntityRef() {
+        val entity = (ManagedObject) kvStore.get(this, "entity").get();
+        return entity;
+    }
+
+    static void assertDetachedOrDeleted(final ManagedObject entity) {
         assertEquals(
                 EntityState.PERSISTABLE_DETACHED, // if undecidable we currently return PERSISTABLE_DETACHED;
                 ManagedObjects.EntityUtil.getEntityState(entity));
diff --git a/regressiontests/stable-persistence-jpa/src/test/java/org/apache/isis/testdomain/persistence/jpa/entitylifecycle/JpaNonGeneratedStringIdEntityLifecycleTest.java b/regressiontests/stable-persistence-jpa/src/test/java/org/apache/isis/testdomain/persistence/jpa/entitylifecycle/JpaNonGeneratedStringIdEntityLifecycleTest.java
index 16c56d7003..48474068ff 100644
--- a/regressiontests/stable-persistence-jpa/src/test/java/org/apache/isis/testdomain/persistence/jpa/entitylifecycle/JpaNonGeneratedStringIdEntityLifecycleTest.java
+++ b/regressiontests/stable-persistence-jpa/src/test/java/org/apache/isis/testdomain/persistence/jpa/entitylifecycle/JpaNonGeneratedStringIdEntityLifecycleTest.java
@@ -19,20 +19,15 @@
 package org.apache.isis.testdomain.persistence.jpa.entitylifecycle;
 
 import java.util.Objects;
-import java.util.concurrent.atomic.AtomicReference;
 
 import javax.inject.Inject;
 
-import org.junit.jupiter.api.AfterAll;
-import org.junit.jupiter.api.BeforeAll;
-import org.junit.jupiter.api.Disabled;
 import org.junit.jupiter.api.MethodOrderer;
 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.Commit;
-import org.springframework.test.annotation.DirtiesContext;
 import org.springframework.test.context.TestPropertySource;
 import org.springframework.transaction.annotation.Transactional;
 
@@ -48,6 +43,7 @@ import org.apache.isis.core.metamodel.spec.ManagedObject;
 import org.apache.isis.core.metamodel.spec.ManagedObjects;
 import org.apache.isis.testdomain.conf.Configuration_usingJpa;
 import org.apache.isis.testdomain.jpa.entities.JpaEntityNonGeneratedStringId;
+import org.apache.isis.testdomain.util.kv.KVStoreForTesting;
 
 import lombok.val;
 
@@ -60,24 +56,12 @@ import lombok.val;
 @Transactional
 @TestPropertySource(IsisPresets.UseLog4j2Test)
 @TestMethodOrder(MethodOrderer.OrderAnnotation.class)
-@DirtiesContext
-@Disabled("fails to run in surefire fork mode")
+//@DirtiesContext
 class JpaNonGeneratedStringIdEntityLifecycleTest {
 
     @Inject private RepositoryService repository;
     @Inject private ObjectManager objectManager;
-
-    private static AtomicReference<ManagedObject> entityRef;
-
-    @BeforeAll
-    static void beforeAll() {
-        entityRef = new AtomicReference<>();
-    }
-
-    @AfterAll
-    static void afterAll() {
-        entityRef = null;
-    }
+    @Inject private KVStoreForTesting kvStore;
 
     @Test @Order(0) @Commit
     void cleanup_justInCase() {
@@ -96,13 +80,13 @@ class JpaNonGeneratedStringIdEntityLifecycleTest {
                 EntityState.PERSISTABLE_DETACHED,
                 ManagedObjects.EntityUtil.getEntityState(entity));
 
-        entityRef.set(entity);
+        setEntityRef(entity);
     }
 
     @Test @Order(2) @Commit
     void attached_shouldBeProperlyDetected() {
 
-        val entity = entityRef.get();
+        val entity = getEntityRef();
 
         repository.persist(entity.getPojo());
 
@@ -119,9 +103,9 @@ class JpaNonGeneratedStringIdEntityLifecycleTest {
         // expected post-condition (after persist, and having entered a new transaction)
         assertEquals(
                 EntityState.PERSISTABLE_DETACHED,
-                ManagedObjects.EntityUtil.getEntityState(entityRef.get()));
+                ManagedObjects.EntityUtil.getEntityState(getEntityRef()));
 
-        val id = ((JpaEntityNonGeneratedStringId)entityRef.get().getPojo()).getName();
+        val id = ((JpaEntityNonGeneratedStringId)getEntityRef().getPojo()).getName();
 
         val entity = objectManager.adapt(
                 repository.firstMatch(
@@ -139,22 +123,36 @@ class JpaNonGeneratedStringIdEntityLifecycleTest {
         // expected post-condition (after removal)
         assertDetachedOrDeleted(entity);
 
-        entityRef.set(entity);
+        setEntityRef(entity);
     }
 
     @Test @Order(4) @Commit
     void postCondition_shouldBe_anEmptyRepository() {
 
-        val entity = entityRef.get();
+        val entity = getEntityRef();
 
         assertDetachedOrDeleted(entity);
         assertEquals(0, repository.allInstances(JpaEntityNonGeneratedStringId.class).size());
 
     }
 
+    @Test @Order(5)
+    void cleanup() {
+        kvStore.clear(this);
+    }
+
     // -- HELPER
 
-    public static void assertDetachedOrDeleted(final ManagedObject entity) {
+    void setEntityRef(final ManagedObject entity) {
+        kvStore.put(this, "entity", entity);
+    }
+
+    ManagedObject getEntityRef() {
+        val entity = (ManagedObject) kvStore.get(this, "entity").get();
+        return entity;
+    }
+
+    static void assertDetachedOrDeleted(final ManagedObject entity) {
         assertEquals(
                 EntityState.PERSISTABLE_DETACHED, // if undecidable we currently return PERSISTABLE_DETACHED;
                 ManagedObjects.EntityUtil.getEntityState(entity));
diff --git a/regressiontests/stable-publishing-jpa/src/main/java/include.txt b/regressiontests/stable-publishing-jpa/src/main/java/include.txt
new file mode 100644
index 0000000000..4f9c4e05b9
--- /dev/null
+++ b/regressiontests/stable-publishing-jpa/src/main/java/include.txt
@@ -0,0 +1 @@
+existence of the src/main/java folder, even if empty, suppresses build [WARNING] JAR will be empty - no content was marked for inclusion
\ No newline at end of file
diff --git a/regressiontests/stable-rest/src/main/java/include.txt b/regressiontests/stable-rest/src/main/java/include.txt
new file mode 100644
index 0000000000..4f9c4e05b9
--- /dev/null
+++ b/regressiontests/stable-rest/src/main/java/include.txt
@@ -0,0 +1 @@
+existence of the src/main/java folder, even if empty, suppresses build [WARNING] JAR will be empty - no content was marked for inclusion
\ No newline at end of file