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 2021/02/01 10:41:18 UTC

[isis] 01/02: ISIS-2515: convert remaining tests to JUnit5

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

commit ac030546dd95a94b7f8e5413c9842500ffaa348f
Author: Andi Huber <ah...@apache.org>
AuthorDate: Mon Feb 1 11:00:15 2021 +0100

    ISIS-2515: convert remaining tests to JUnit5
    
    also move the configuration tests to the dn module
---
 .../datanucleus}/test/ConfigurationExample.java    |  29 +++-
 .../jdo/datanucleus/test/ConfigurationTest.java    |  51 ++++++
 .../jdo/datanucleus/test/JdoSettingsBean.java}     |  47 +++--
 persistence/jdo/spring/pom.xml                     |  33 ++--
 .../jdo/spring/test/ConfigurationTest.java         |  33 ----
 .../integration/JdoTransactionManagerTests.java    | 192 ++++++++++-----------
 6 files changed, 223 insertions(+), 162 deletions(-)

diff --git a/persistence/jdo/spring/src/test/java/org/apache/isis/persistence/jdo/spring/test/ConfigurationExample.java b/persistence/jdo/datanucleus/src/test/java/org/apache/isis/persistence/jdo/datanucleus/test/ConfigurationExample.java
similarity index 55%
copy from persistence/jdo/spring/src/test/java/org/apache/isis/persistence/jdo/spring/test/ConfigurationExample.java
copy to persistence/jdo/datanucleus/src/test/java/org/apache/isis/persistence/jdo/datanucleus/test/ConfigurationExample.java
index 8fa02b3..a7ac9ab 100644
--- a/persistence/jdo/spring/src/test/java/org/apache/isis/persistence/jdo/spring/test/ConfigurationExample.java
+++ b/persistence/jdo/datanucleus/src/test/java/org/apache/isis/persistence/jdo/datanucleus/test/ConfigurationExample.java
@@ -16,24 +16,47 @@
  *  specific language governing permissions and limitations
  *  under the License.
  */
-package org.apache.isis.persistence.jdo.spring.test;
+package org.apache.isis.persistence.jdo.datanucleus.test;
+
+import java.util.HashMap;
+import java.util.Map;
 
 import org.springframework.context.annotation.Bean;
 import org.springframework.context.annotation.Configuration;
+import org.springframework.context.annotation.Import;
 
+import org.apache.isis.commons.internal.debug._Probe;
 import org.apache.isis.persistence.jdo.spring.integration.LocalPersistenceManagerFactoryBean;
 
 import lombok.val;
 
 /**
- *  Corresponds to the documents of this module.
+ *  Corresponds to the documents of the 'spring-jdo' module.
  */
 @Configuration
+@Import({
+    JdoSettingsBean.class
+})
 public class ConfigurationExample {
     
+    // DatanNucleus config properties
+    //@ConfigurationProperties(prefix = "isis.persistence.jdo-datanucleus.impl")
+    @Bean("jdo-settings")
+    public Map<String, String> getJdoSettings() {
+        val settings = new HashMap<String, String>();
+        settings.put(
+                "javax.jdo.PersistenceManagerFactoryClass", 
+                "org.datanucleus.api.jdo.JDOPersistenceManagerFactory");
+        return settings;
+    }
+    
     @Bean
-    public LocalPersistenceManagerFactoryBean myPmf() {
+    public LocalPersistenceManagerFactoryBean myPmf(final JdoSettingsBean jdoSettings) {
+        
+        _Probe.errOut("jdoSettings %s", jdoSettings.getAsProperties());
+        
         val myPmf = new LocalPersistenceManagerFactoryBean();
+        myPmf.setJdoPropertyMap(jdoSettings.getAsProperties());
         return myPmf;
     }
 
diff --git a/persistence/jdo/datanucleus/src/test/java/org/apache/isis/persistence/jdo/datanucleus/test/ConfigurationTest.java b/persistence/jdo/datanucleus/src/test/java/org/apache/isis/persistence/jdo/datanucleus/test/ConfigurationTest.java
new file mode 100644
index 0000000..c17d0a7
--- /dev/null
+++ b/persistence/jdo/datanucleus/src/test/java/org/apache/isis/persistence/jdo/datanucleus/test/ConfigurationTest.java
@@ -0,0 +1,51 @@
+/*
+ *  Licensed to the Apache Software Foundation (ASF) under one
+ *  or more contributor license agreements.  See the NOTICE file
+ *  distributed with this work for additional information
+ *  regarding copyright ownership.  The ASF licenses this file
+ *  to you under the Apache License, Version 2.0 (the
+ *  "License"); you may not use this file except in compliance
+ *  with the License.  You may obtain a copy of the License at
+ *
+ *        http://www.apache.org/licenses/LICENSE-2.0
+ *
+ *  Unless required by applicable law or agreed to in writing,
+ *  software distributed under the License is distributed on an
+ *  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ *  KIND, either express or implied.  See the License for the
+ *  specific language governing permissions and limitations
+ *  under the License.
+ */
+package org.apache.isis.persistence.jdo.datanucleus.test;
+
+import org.junit.jupiter.api.Test;
+import org.springframework.boot.test.context.SpringBootTest;
+
+@SpringBootTest(
+        classes = {
+                ConfigurationExample.class
+        },
+        properties = {
+                "isis.persistence.jdo-datanucleus.impl.datanucleus.cache.level2.mode=ENABLE_SELECTIVE",
+                "isis.persistence.jdo-datanucleus.impl.datanucleus.cache.level2.type=none",
+                "isis.persistence.jdo-datanucleus.impl.datanucleus.identifier.case=MixedCase",
+                "isis.persistence.jdo-datanucleus.impl.datanucleus.persistenceByReachabilityAtCommit=false",
+                "isis.persistence.jdo-datanucleus.impl.datanucleus.schema.autoCreateAll=true",
+                "isis.persistence.jdo-datanucleus.impl.datanucleus.schema.validateAll=false",
+                "isis.persistence.jdo-datanucleus.impl.datanucleus.schema.validateConstraints=true",
+                "isis.persistence.jdo-datanucleus.impl.datanucleus.schema.validateTables=true",
+                
+                "isis.persistence.jdo-datanucleus.impl.javax.jdo.PersistenceManagerFactoryClass=org.datanucleus.api.jdo.JDOPersistenceManagerFactory",
+                "isis.persistence.jdo-datanucleus.impl.javax.jdo.option.ConnectionDriverName=org.h2.Driver",
+                "isis.persistence.jdo-datanucleus.impl.javax.jdo.option.ConnectionPassword=",
+                "isis.persistence.jdo-datanucleus.impl.javax.jdo.option.ConnectionURL=jdbc:h2:mem:test",
+                "isis.persistence.jdo-datanucleus.impl.javax.jdo.option.ConnectionUserName=sa",
+       }
+)
+class ConfigurationTest {
+
+    @Test 
+    void contextLoads() {
+    }
+    
+}
diff --git a/persistence/jdo/spring/src/test/java/org/apache/isis/persistence/jdo/spring/test/ConfigurationExample.java b/persistence/jdo/datanucleus/src/test/java/org/apache/isis/persistence/jdo/datanucleus/test/JdoSettingsBean.java
similarity index 51%
rename from persistence/jdo/spring/src/test/java/org/apache/isis/persistence/jdo/spring/test/ConfigurationExample.java
rename to persistence/jdo/datanucleus/src/test/java/org/apache/isis/persistence/jdo/datanucleus/test/JdoSettingsBean.java
index 8fa02b3..a9df354 100644
--- a/persistence/jdo/spring/src/test/java/org/apache/isis/persistence/jdo/spring/test/ConfigurationExample.java
+++ b/persistence/jdo/datanucleus/src/test/java/org/apache/isis/persistence/jdo/datanucleus/test/JdoSettingsBean.java
@@ -16,25 +16,44 @@
  *  specific language governing permissions and limitations
  *  under the License.
  */
-package org.apache.isis.persistence.jdo.spring.test;
+package org.apache.isis.persistence.jdo.datanucleus.test;
 
-import org.springframework.context.annotation.Bean;
-import org.springframework.context.annotation.Configuration;
+import java.util.HashMap;
+import java.util.Map;
 
-import org.apache.isis.persistence.jdo.spring.integration.LocalPersistenceManagerFactoryBean;
+import javax.inject.Inject;
+import javax.inject.Named;
 
-import lombok.val;
+import org.springframework.context.annotation.Configuration;
+
+import org.apache.isis.commons.internal.collections._Maps;
 
-/**
- *  Corresponds to the documents of this module.
- */
 @Configuration
-public class ConfigurationExample {
+public class JdoSettingsBean {
+
+    @Inject @Named("jdo-settings") 
+    private Map<String, String> jdoSettings;
+    
+    private final Object lock = new Object();
+    private boolean amended = false;
+    
+    public Map<String, String> getAsMap() {
+        synchronized(lock) {
+            if(!amended) {
+                amendProperties();
+                amended = true;
+            }
+        }
+        return jdoSettings;
+    }
+
+    public Map<String, Object> getAsProperties() {
+        return _Maps.mapValues(getAsMap(), HashMap::new, Object.class::cast);
+    }
+    
     
-    @Bean
-    public LocalPersistenceManagerFactoryBean myPmf() {
-        val myPmf = new LocalPersistenceManagerFactoryBean();
-        return myPmf;
+    private void amendProperties() {
+        // add optional defaults if needed
     }
 
-}
+}
\ No newline at end of file
diff --git a/persistence/jdo/spring/pom.xml b/persistence/jdo/spring/pom.xml
index f063bc9..aad235b 100644
--- a/persistence/jdo/spring/pom.xml
+++ b/persistence/jdo/spring/pom.xml
@@ -9,7 +9,8 @@
 	License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS 
 	OF ANY KIND, either express or implied. See the License for the specific 
 	language governing permissions and limitations under the License. -->
-<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+<project xmlns="http://maven.apache.org/POM/4.0.0"
+	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
 	xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
 	<modelVersion>4.0.0</modelVersion>
 
@@ -65,31 +66,31 @@
 		</dependency>
 
 		<!-- SPRING -->
-		
+
 		<dependency>
-		    <groupId>org.springframework</groupId>
-		    <artifactId>spring-jdbc</artifactId>
-<!-- 		    <scope>provided</scope> -->
+			<groupId>org.springframework</groupId>
+			<artifactId>spring-jdbc</artifactId>
+			<!-- <scope>provided</scope> -->
 		</dependency>
-		
+
 		<dependency>
-		    <groupId>org.springframework</groupId>
-		    <artifactId>spring-web</artifactId>
-		    <scope>provided</scope>
+			<groupId>org.springframework</groupId>
+			<artifactId>spring-web</artifactId>
+			<scope>provided</scope>
 		</dependency>
-		
+
 		<!-- TESTING -->
 
-        <dependency>
-            <groupId>org.apache.isis.core</groupId>
-            <artifactId>isis-core-internaltestsupport</artifactId>
-            <scope>test</scope>
-        </dependency>
+		<dependency>
+			<groupId>org.apache.isis.core</groupId>
+			<artifactId>isis-core-internaltestsupport</artifactId>
+			<scope>test</scope>
+		</dependency>
 
 		<dependency>
 			<groupId>javax.servlet</groupId>
 			<artifactId>javax.servlet-api</artifactId>
-            <scope>test</scope>
+			<scope>test</scope>
 		</dependency>
 
 	</dependencies>
diff --git a/persistence/jdo/spring/src/test/java/org/apache/isis/persistence/jdo/spring/test/ConfigurationTest.java b/persistence/jdo/spring/src/test/java/org/apache/isis/persistence/jdo/spring/test/ConfigurationTest.java
deleted file mode 100644
index 04ff7a2..0000000
--- a/persistence/jdo/spring/src/test/java/org/apache/isis/persistence/jdo/spring/test/ConfigurationTest.java
+++ /dev/null
@@ -1,33 +0,0 @@
-/*
- *  Licensed to the Apache Software Foundation (ASF) under one
- *  or more contributor license agreements.  See the NOTICE file
- *  distributed with this work for additional information
- *  regarding copyright ownership.  The ASF licenses this file
- *  to you under the Apache License, Version 2.0 (the
- *  "License"); you may not use this file except in compliance
- *  with the License.  You may obtain a copy of the License at
- *
- *        http://www.apache.org/licenses/LICENSE-2.0
- *
- *  Unless required by applicable law or agreed to in writing,
- *  software distributed under the License is distributed on an
- *  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- *  KIND, either express or implied.  See the License for the
- *  specific language governing permissions and limitations
- *  under the License.
- */
-package org.apache.isis.persistence.jdo.spring.test;
-
-import org.junit.jupiter.api.Test;
-import org.springframework.boot.test.context.SpringBootTest;
-
-@SpringBootTest(classes = {
-        ConfigurationExample.class
-})
-class ConfigurationTest {
-
-    //@Test //TODO context needs config to successfully bootstrap 
-    void contextLoads() {
-    }
-    
-}
diff --git a/persistence/jdo/spring/src/test/java/org/apache/isis/persistence/jdo/spring/test/integration/JdoTransactionManagerTests.java b/persistence/jdo/spring/src/test/java/org/apache/isis/persistence/jdo/spring/test/integration/JdoTransactionManagerTests.java
index 17f8565..8956d6d 100644
--- a/persistence/jdo/spring/src/test/java/org/apache/isis/persistence/jdo/spring/test/integration/JdoTransactionManagerTests.java
+++ b/persistence/jdo/spring/src/test/java/org/apache/isis/persistence/jdo/spring/test/integration/JdoTransactionManagerTests.java
@@ -34,9 +34,9 @@ import javax.transaction.Status;
 import javax.transaction.TransactionManager;
 import javax.transaction.UserTransaction;
 
-import org.junit.After;
-import org.junit.Before;
-import org.junit.Test;
+import org.junit.jupiter.api.AfterEach;
+import org.junit.jupiter.api.BeforeEach;
+import org.junit.jupiter.api.Test;
 import org.springframework.jdbc.datasource.ConnectionHandle;
 import org.springframework.jdbc.datasource.ConnectionHolder;
 import org.springframework.jdbc.datasource.SimpleConnectionHandle;
@@ -49,11 +49,11 @@ import org.springframework.transaction.support.TransactionCallbackWithoutResult;
 import org.springframework.transaction.support.TransactionSynchronizationManager;
 import org.springframework.transaction.support.TransactionTemplate;
 
-import static org.junit.Assert.assertEquals;
-import static org.junit.Assert.assertFalse;
-import static org.junit.Assert.assertSame;
-import static org.junit.Assert.assertTrue;
-import static org.junit.Assert.fail;
+import static org.junit.jupiter.api.Assertions.assertEquals;
+import static org.junit.jupiter.api.Assertions.assertFalse;
+import static org.junit.jupiter.api.Assertions.assertSame;
+import static org.junit.jupiter.api.Assertions.assertTrue;
+import static org.junit.jupiter.api.Assertions.fail;
 import static org.mockito.BDDMockito.given;
 import static org.mockito.BDDMockito.willThrow;
 import static org.mockito.Mockito.mock;
@@ -71,7 +71,7 @@ import org.apache.isis.persistence.jdo.spring.support.StandardPersistenceManager
 
 import lombok.val;
 
-public class JdoTransactionManagerTests {
+class JdoTransactionManagerTests {
 
 	private PersistenceManagerFactory pmf;
 
@@ -80,15 +80,15 @@ public class JdoTransactionManagerTests {
 	private Transaction tx;
 
 
-	@Before
-	public void setUp() {
+	@BeforeEach
+	void setUp() {
 		pmf = mock(PersistenceManagerFactory.class);
 		pm = mock(PersistenceManager.class);
 		tx = mock(Transaction.class);
 	}
 
-	@After
-	public void tearDown() {
+	@AfterEach
+	void tearDown() {
 		assertTrue(TransactionSynchronizationManager.getResourceMap().isEmpty());
 		assertFalse(TransactionSynchronizationManager.isSynchronizationActive());
 		assertFalse(TransactionSynchronizationManager.isCurrentTransactionReadOnly());
@@ -96,7 +96,7 @@ public class JdoTransactionManagerTests {
 	}
 
 	@Test
-	public void testTransactionCommit() {
+	void testTransactionCommit() {
 		given(pmf.getPersistenceManager()).willReturn(pm);
 		given(pmf.getPersistenceManagerProxy()).willReturn(pm);
 		given(pm.currentTransaction()).willReturn(tx);
@@ -105,13 +105,13 @@ public class JdoTransactionManagerTests {
 		TransactionTemplate tt = new TransactionTemplate(tm);
 		val l = new ArrayList<Object>();
 		l.add("test");
-		assertTrue("Hasn't thread pm", !TransactionSynchronizationManager.hasResource(pmf));
-		assertTrue("JTA synchronizations not active", !TransactionSynchronizationManager.isSynchronizationActive());
+		assertTrue(!TransactionSynchronizationManager.hasResource(pmf), "Hasn't thread pm");
+		assertTrue(!TransactionSynchronizationManager.isSynchronizationActive(), "JTA synchronizations not active");
 
 		Object result = tt.execute(new TransactionCallback<Object>() {
 			@Override
 			public Object doInTransaction(TransactionStatus status) {
-				assertTrue("Has thread pm", TransactionSynchronizationManager.hasResource(pmf));
+				assertTrue(TransactionSynchronizationManager.hasResource(pmf), "Has thread pm");
 
 				TransactionAwarePersistenceManagerFactoryProxy proxyFactory =
 						new TransactionAwarePersistenceManagerFactoryProxy();
@@ -138,10 +138,10 @@ public class JdoTransactionManagerTests {
 				return l;
 			}
 		});
-		assertTrue("Correct result list", result == l);
+		assertTrue(result == l, "Correct result list");
 
-		assertTrue("Hasn't thread pm", !TransactionSynchronizationManager.hasResource(pmf));
-		assertTrue("JTA synchronizations not active", !TransactionSynchronizationManager.isSynchronizationActive());
+		assertTrue(!TransactionSynchronizationManager.hasResource(pmf), "Hasn't thread pm");
+		assertTrue(!TransactionSynchronizationManager.isSynchronizationActive(), "JTA synchronizations not active");
 
 		verify(pm, times(4)).flush();
 		verify(pm).close();
@@ -157,14 +157,14 @@ public class JdoTransactionManagerTests {
 
 		PlatformTransactionManager tm = new JdoTransactionManager(pmf);
 		TransactionTemplate tt = new TransactionTemplate(tm);
-		assertTrue("Hasn't thread pm", !TransactionSynchronizationManager.hasResource(pmf));
-		assertTrue("JTA synchronizations not active", !TransactionSynchronizationManager.isSynchronizationActive());
+		assertTrue(!TransactionSynchronizationManager.hasResource(pmf), "Hasn't thread pm");
+		assertTrue(!TransactionSynchronizationManager.isSynchronizationActive(), "JTA synchronizations not active");
 
 		try {
 			tt.execute(new TransactionCallback<Object>() {
 				@Override
 				public Object doInTransaction(TransactionStatus status) {
-					assertTrue("Has thread pm", TransactionSynchronizationManager.hasResource(pmf));
+					assertTrue(TransactionSynchronizationManager.hasResource(pmf), "Has thread pm");
 					PersistenceManagerFactoryUtils.getPersistenceManager(pmf, true);
 					throw new RuntimeException("application exception");
 				}
@@ -175,8 +175,8 @@ public class JdoTransactionManagerTests {
 			// expected
 		}
 
-		assertTrue("Hasn't thread pm", !TransactionSynchronizationManager.hasResource(pmf));
-		assertTrue("JTA synchronizations not active", !TransactionSynchronizationManager.isSynchronizationActive());
+		assertTrue(!TransactionSynchronizationManager.hasResource(pmf), "Hasn't thread pm");
+		assertTrue(!TransactionSynchronizationManager.isSynchronizationActive(), "JTA synchronizations not active");
 
 		verify(pm).close();
 		verify(tx).begin();
@@ -190,14 +190,14 @@ public class JdoTransactionManagerTests {
 
 		PlatformTransactionManager tm = new JdoTransactionManager(pmf);
 		TransactionTemplate tt = new TransactionTemplate(tm);
-		assertTrue("Hasn't thread pm", !TransactionSynchronizationManager.hasResource(pmf));
-		assertTrue("JTA synchronizations not active", !TransactionSynchronizationManager.isSynchronizationActive());
+		assertTrue(!TransactionSynchronizationManager.hasResource(pmf), "Hasn't thread pm");
+		assertTrue(!TransactionSynchronizationManager.isSynchronizationActive(), "JTA synchronizations not active");
 
 		try {
 			tt.execute(new TransactionCallback<Object>() {
 				@Override
 				public Object doInTransaction(TransactionStatus status) {
-					assertTrue("Has thread pm", TransactionSynchronizationManager.hasResource(pmf));
+					assertTrue(TransactionSynchronizationManager.hasResource(pmf), "Has thread pm");
 					PersistenceManagerFactoryUtils.getPersistenceManager(pmf, true);
 					throw new RuntimeException("application exception");
 				}
@@ -208,8 +208,8 @@ public class JdoTransactionManagerTests {
 			// expected
 		}
 
-		assertTrue("Hasn't thread pm", !TransactionSynchronizationManager.hasResource(pmf));
-		assertTrue("JTA synchronizations not active", !TransactionSynchronizationManager.isSynchronizationActive());
+		assertTrue(!TransactionSynchronizationManager.hasResource(pmf), "Hasn't thread pm");
+		assertTrue(!TransactionSynchronizationManager.isSynchronizationActive(), "JTA synchronizations not active");
 
 		verify(pm).close();
 		verify(tx).begin();
@@ -223,19 +223,19 @@ public class JdoTransactionManagerTests {
 
 		PlatformTransactionManager tm = new JdoTransactionManager(pmf);
 		TransactionTemplate tt = new TransactionTemplate(tm);
-		assertTrue("Hasn't thread pm", !TransactionSynchronizationManager.hasResource(pmf));
+		assertTrue(!TransactionSynchronizationManager.hasResource(pmf), "Hasn't thread pm");
 
 		tt.execute(new TransactionCallback<Object>() {
 			@Override
 			public Object doInTransaction(TransactionStatus status) {
-				assertTrue("Has thread pm", TransactionSynchronizationManager.hasResource(pmf));
+				assertTrue(TransactionSynchronizationManager.hasResource(pmf), "Has thread pm");
 				PersistenceManagerFactoryUtils.getPersistenceManager(pmf, true).flush();
 				status.setRollbackOnly();
 				return null;
 			}
 		});
 
-		assertTrue("Hasn't thread pm", !TransactionSynchronizationManager.hasResource(pmf));
+		assertTrue(!TransactionSynchronizationManager.hasResource(pmf), "Hasn't thread pm");
 
 		verify(pm).flush();
 		verify(pm).close();
@@ -267,7 +267,7 @@ public class JdoTransactionManagerTests {
 				});
 			}
 		});
-		assertTrue("Correct result list", result == l);
+		assertTrue(result == l, "Correct result list");
 
 		verify(pm).flush();
 		verify(pm).close();
@@ -368,7 +368,7 @@ public class JdoTransactionManagerTests {
 				});
 			}
 		});
-		assertTrue("Correct result list", result == l);
+		assertTrue(result == l, "Correct result list");
 		verify(tx, times(2)).begin();
 		verify(tx, times(2)).commit();
 		verify(pm).flush();
@@ -386,9 +386,9 @@ public class JdoTransactionManagerTests {
 		tt.setPropagationBehavior(TransactionDefinition.PROPAGATION_REQUIRES_NEW);
 		val l = new ArrayList<Object>();
 		l.add("test");
-		assertTrue("JTA synchronizations not active", !TransactionSynchronizationManager.isSynchronizationActive());
+		assertTrue(!TransactionSynchronizationManager.isSynchronizationActive(), "JTA synchronizations not active");
 		TransactionSynchronizationManager.bindResource(pmf, new PersistenceManagerHolder(pm));
-		assertTrue("Has thread pm", TransactionSynchronizationManager.hasResource(pmf));
+		assertTrue(TransactionSynchronizationManager.hasResource(pmf), "Has thread pm");
 
 		Object result = tt.execute(new TransactionCallback<Object>() {
 			@Override
@@ -404,11 +404,11 @@ public class JdoTransactionManagerTests {
 				});
 			}
 		});
-		assertTrue("Correct result list", result == l);
+		assertTrue(result == l, "Correct result list");
 
-		assertTrue("Has thread pm", TransactionSynchronizationManager.hasResource(pmf));
+		assertTrue(TransactionSynchronizationManager.hasResource(pmf), "Has thread pm");
 		TransactionSynchronizationManager.unbindResource(pmf);
-		assertTrue("JTA synchronizations not active", !TransactionSynchronizationManager.isSynchronizationActive());
+		assertTrue(!TransactionSynchronizationManager.isSynchronizationActive(), "JTA synchronizations not active");
 
 		verify(tx, times(2)).begin();
 		verify(tx, times(2)).commit();
@@ -426,25 +426,25 @@ public class JdoTransactionManagerTests {
 		TransactionTemplate tt = new TransactionTemplate(ptm);
 		val l = new ArrayList<Object>();
 		l.add("test");
-		assertTrue("Hasn't thread pm", !TransactionSynchronizationManager.hasResource(pmf));
-		assertTrue("JTA synchronizations not active", !TransactionSynchronizationManager.isSynchronizationActive());
+		assertTrue(!TransactionSynchronizationManager.hasResource(pmf), "Hasn't thread pm");
+		assertTrue(!TransactionSynchronizationManager.isSynchronizationActive(), "JTA synchronizations not active");
 
 		Object result = tt.execute(new TransactionCallback<Object>() {
 			@Override
 			public Object doInTransaction(TransactionStatus status) {
-				assertTrue("JTA synchronizations active", TransactionSynchronizationManager.isSynchronizationActive());
-				assertTrue("Hasn't thread pm", !TransactionSynchronizationManager.hasResource(pmf));
+				assertTrue(TransactionSynchronizationManager.isSynchronizationActive(), "JTA synchronizations active");
+				assertTrue(!TransactionSynchronizationManager.hasResource(pmf), "Hasn't thread pm");
 				PersistenceManagerFactoryUtils.getPersistenceManager(pmf, true).flush();
 				PersistenceManagerFactoryUtils.getPersistenceManager(pmf, true).flush();
-				assertTrue("Has thread pm", TransactionSynchronizationManager.hasResource(pmf));
+				assertTrue(TransactionSynchronizationManager.hasResource(pmf), "Has thread pm");
 				return l;
 			}
 		});
-		assertTrue("Hasn't thread pm", !TransactionSynchronizationManager.hasResource(pmf));
-		assertTrue("Correct result list", result == l);
+		assertTrue(!TransactionSynchronizationManager.hasResource(pmf), "Hasn't thread pm");
+		assertTrue(result == l, "Correct result list");
 
-		assertTrue("Hasn't thread pm", !TransactionSynchronizationManager.hasResource(pmf));
-		assertTrue("JTA synchronizations not active", !TransactionSynchronizationManager.isSynchronizationActive());
+		assertTrue(!TransactionSynchronizationManager.hasResource(pmf), "Hasn't thread pm");
+		assertTrue(!TransactionSynchronizationManager.isSynchronizationActive(), "JTA synchronizations not active");
 
 		verify(ut).begin();
 		verify(ut).commit();
@@ -467,9 +467,9 @@ public class JdoTransactionManagerTests {
 		tt.setPropagationBehavior(TransactionDefinition.PROPAGATION_REQUIRES_NEW);
 		val l = new ArrayList<Object>();
 		l.add("test");
-		assertTrue("JTA synchronizations not active", !TransactionSynchronizationManager.isSynchronizationActive());
+		assertTrue(!TransactionSynchronizationManager.isSynchronizationActive(), "JTA synchronizations not active");
 		TransactionSynchronizationManager.bindResource(pmf, new PersistenceManagerHolder(pm));
-		assertTrue("Has thread pm", TransactionSynchronizationManager.hasResource(pmf));
+		assertTrue(TransactionSynchronizationManager.hasResource(pmf), "Has thread pm");
 
 		Object result = tt.execute(new TransactionCallback<Object>() {
 			@Override
@@ -492,11 +492,11 @@ public class JdoTransactionManagerTests {
 				});
 			}
 		});
-		assertTrue("Correct result list", result == l);
+		assertTrue(result == l, "Correct result list");
 
-		assertTrue("Has thread pm", TransactionSynchronizationManager.hasResource(pmf));
+		assertTrue(TransactionSynchronizationManager.hasResource(pmf), "Has thread pm");
 		TransactionSynchronizationManager.unbindResource(pmf);
-		assertTrue("JTA synchronizations not active", !TransactionSynchronizationManager.isSynchronizationActive());
+		assertTrue(!TransactionSynchronizationManager.isSynchronizationActive(), "JTA synchronizations not active");
 
 		verify(ut, times(2)).begin();
 		verify(pm).flush();
@@ -512,20 +512,20 @@ public class JdoTransactionManagerTests {
 		tt.setPropagationBehavior(TransactionDefinition.PROPAGATION_SUPPORTS);
 		val l = new ArrayList<Object>();
 		l.add("test");
-		assertTrue("Hasn't thread pm", !TransactionSynchronizationManager.hasResource(pmf));
+		assertTrue(!TransactionSynchronizationManager.hasResource(pmf), "Hasn't thread pm");
 
 		Object result = tt.execute(new TransactionCallback<Object>() {
 			@Override
 			public Object doInTransaction(TransactionStatus status) {
-				assertTrue("Hasn't thread pm", !TransactionSynchronizationManager.hasResource(pmf));
-				assertTrue("Is not new transaction", !status.isNewTransaction());
+				assertTrue(!TransactionSynchronizationManager.hasResource(pmf), "Hasn't thread pm");
+				assertTrue(!status.isNewTransaction(), "Is not new transaction");
 				PersistenceManagerFactoryUtils.getPersistenceManager(pmf, true);
 				return l;
 			}
 		});
-		assertTrue("Correct result list", result == l);
+		assertTrue(result == l, "Correct result list");
 
-		assertTrue("Hasn't thread pm", !TransactionSynchronizationManager.hasResource(pmf));
+		assertTrue(!TransactionSynchronizationManager.hasResource(pmf), "Hasn't thread pm");
 
 		verify(pm, times(2)).close();
 	}
@@ -555,23 +555,23 @@ public class JdoTransactionManagerTests {
 		TransactionTemplate tt = new TransactionTemplate(tm);
 		val l = new ArrayList<Object>();
 		l.add("test");
-		assertTrue("JTA synchronizations not active", !TransactionSynchronizationManager.isSynchronizationActive());
+		assertTrue(!TransactionSynchronizationManager.isSynchronizationActive(), "JTA synchronizations not active");
 		TransactionSynchronizationManager.bindResource(pmf, new PersistenceManagerHolder(pm));
-		assertTrue("Has thread pm", TransactionSynchronizationManager.hasResource(pmf));
+		assertTrue(TransactionSynchronizationManager.hasResource(pmf), "Has thread pm");
 
 		Object result = tt.execute(new TransactionCallback<Object>() {
 			@Override
 			public Object doInTransaction(TransactionStatus status) {
-				assertTrue("Has thread pm", TransactionSynchronizationManager.hasResource(pmf));
+				assertTrue(TransactionSynchronizationManager.hasResource(pmf), "Has thread pm");
 				PersistenceManagerFactoryUtils.getPersistenceManager(pmf, true);
 				return l;
 			}
 		});
-		assertTrue("Correct result list", result == l);
+		assertTrue(result == l, "Correct result list");
 
-		assertTrue("Has thread pm", TransactionSynchronizationManager.hasResource(pmf));
+		assertTrue(TransactionSynchronizationManager.hasResource(pmf), "Has thread pm");
 		TransactionSynchronizationManager.unbindResource(pmf);
-		assertTrue("JTA synchronizations not active", !TransactionSynchronizationManager.isSynchronizationActive());
+		assertTrue(!TransactionSynchronizationManager.isSynchronizationActive(), "JTA synchronizations not active");
 
 		verify(tx).begin();
 		verify(tx).commit();
@@ -596,21 +596,21 @@ public class JdoTransactionManagerTests {
 		tt.setTransactionManager(tm);
 		val l = new ArrayList<Object>();
 		l.add("test");
-		assertTrue("Hasn't thread pm", !TransactionSynchronizationManager.hasResource(pmf));
+		assertTrue(!TransactionSynchronizationManager.hasResource(pmf), "Hasn't thread pm");
 
 		Object result = tt.execute(new TransactionCallback<Object>() {
 			@Override
 			public Object doInTransaction(TransactionStatus status) {
-				assertTrue("Has thread pm", TransactionSynchronizationManager.hasResource(pmf));
-				assertTrue("Has thread con", TransactionSynchronizationManager.hasResource(ds));
+				assertTrue(TransactionSynchronizationManager.hasResource(pmf), "Has thread pm");
+				assertTrue(TransactionSynchronizationManager.hasResource(ds), "Has thread con");
 				PersistenceManagerFactoryUtils.getPersistenceManager(pmf, true);
 				return l;
 			}
 		});
-		assertTrue("Correct result list", result == l);
+		assertTrue(result == l, "Correct result list");
 
-		assertTrue("Hasn't thread pm", !TransactionSynchronizationManager.hasResource(pmf));
-		assertTrue("Hasn't thread con", !TransactionSynchronizationManager.hasResource(ds));
+		assertTrue(!TransactionSynchronizationManager.hasResource(pmf), "Hasn't thread pm");
+		assertTrue(!TransactionSynchronizationManager.hasResource(ds), "Hasn't thread con");
 
 		verify(pm).close();
 		verify(dialect).beginTransaction(tx, tt);
@@ -639,21 +639,21 @@ public class JdoTransactionManagerTests {
 		tt.setTransactionManager(tm);
 		val l = new ArrayList<Object>();
 		l.add("test");
-		assertTrue("Hasn't thread pm", !TransactionSynchronizationManager.hasResource(pmf));
+		assertTrue(!TransactionSynchronizationManager.hasResource(pmf), "Hasn't thread pm");
 
 		Object result = tt.execute(new TransactionCallback<Object>() {
 			@Override
 			public Object doInTransaction(TransactionStatus status) {
-				assertTrue("Has thread pm", TransactionSynchronizationManager.hasResource(pmf));
-				assertTrue("Has thread con", TransactionSynchronizationManager.hasResource(ds));
+				assertTrue(TransactionSynchronizationManager.hasResource(pmf), "Has thread pm");
+				assertTrue(TransactionSynchronizationManager.hasResource(ds), "Has thread con");
 				PersistenceManagerFactoryUtils.getPersistenceManager(pmf, true);
 				return l;
 			}
 		});
-		assertTrue("Correct result list", result == l);
+		assertTrue(result == l, "Correct result list");
 
-		assertTrue("Hasn't thread pm", !TransactionSynchronizationManager.hasResource(pmf));
-		assertTrue("Hasn't thread con", !TransactionSynchronizationManager.hasResource(ds));
+		assertTrue(!TransactionSynchronizationManager.hasResource(pmf), "Hasn't thread pm");
+		assertTrue(!TransactionSynchronizationManager.hasResource(ds), "Hasn't thread con");
 
 		verify(pm).close();
 		verify(dialect).beginTransaction(tx, tt);
@@ -680,21 +680,21 @@ public class JdoTransactionManagerTests {
 		tt.setTransactionManager(tm);
 		val l = new ArrayList<Object>();
 		l.add("test");
-		assertTrue("Hasn't thread pm", !TransactionSynchronizationManager.hasResource(pmf));
+		assertTrue(!TransactionSynchronizationManager.hasResource(pmf), "Hasn't thread pm");
 
 		Object result = tt.execute(new TransactionCallback<Object>() {
 			@Override
 			public Object doInTransaction(TransactionStatus status) {
-				assertTrue("Has thread pm", TransactionSynchronizationManager.hasResource(pmf));
-				assertTrue("Hasn't thread con", !TransactionSynchronizationManager.hasResource(ds));
+				assertTrue(TransactionSynchronizationManager.hasResource(pmf), "Has thread pm");
+				assertTrue(!TransactionSynchronizationManager.hasResource(ds), "Hasn't thread con");
 				PersistenceManagerFactoryUtils.getPersistenceManager(pmf, true).flush();
 				return l;
 			}
 		});
-		assertTrue("Correct result list", result == l);
+		assertTrue(result == l, "Correct result list");
 
-		assertTrue("Hasn't thread pm", !TransactionSynchronizationManager.hasResource(pmf));
-		assertTrue("Hasn't thread con", !TransactionSynchronizationManager.hasResource(ds));
+		assertTrue(!TransactionSynchronizationManager.hasResource(pmf), "Hasn't thread pm");
+		assertTrue(!TransactionSynchronizationManager.hasResource(ds), "Hasn't thread con");
 
 		verify(pm).flush();
 		verify(pm).close();
@@ -741,13 +741,13 @@ public class JdoTransactionManagerTests {
 		tt.setTransactionManager(tm);
 		val l = new ArrayList<Object>();
 		l.add("test");
-		assertTrue("Hasn't thread pm", !TransactionSynchronizationManager.hasResource(pmf));
+		assertTrue(!TransactionSynchronizationManager.hasResource(pmf), "Hasn't thread pm");
 
 		Object result = tt.execute(new TransactionCallback<Object>() {
 			@Override
 			public Object doInTransaction(TransactionStatus status) {
-				assertTrue("Has thread pm", TransactionSynchronizationManager.hasResource(pmf));
-				assertTrue("Has thread con", TransactionSynchronizationManager.hasResource(ds));
+				assertTrue(TransactionSynchronizationManager.hasResource(pmf), "Has thread pm");
+				assertTrue(TransactionSynchronizationManager.hasResource(ds), "Has thread con");
 				if (manualSavepoint) {
 					Object savepoint = status.createSavepoint();
 					status.rollbackToSavepoint(savepoint);
@@ -756,8 +756,8 @@ public class JdoTransactionManagerTests {
 					tt.execute(new TransactionCallbackWithoutResult() {
 						@Override
 						protected void doInTransactionWithoutResult(TransactionStatus status) {
-							assertTrue("Has thread session", TransactionSynchronizationManager.hasResource(pmf));
-							assertTrue("Has thread connection", TransactionSynchronizationManager.hasResource(ds));
+							assertTrue(TransactionSynchronizationManager.hasResource(pmf), "Has thread session");
+							assertTrue(TransactionSynchronizationManager.hasResource(ds), "Has thread connection");
 							status.setRollbackOnly();
 						}
 					});
@@ -766,10 +766,10 @@ public class JdoTransactionManagerTests {
 				return l;
 			}
 		});
-		assertTrue("Correct result list", result == l);
+		assertTrue(result == l, "Correct result list");
 
-		assertTrue("Hasn't thread pm", !TransactionSynchronizationManager.hasResource(pmf));
-		assertTrue("Hasn't thread con", !TransactionSynchronizationManager.hasResource(ds));
+		assertTrue(!TransactionSynchronizationManager.hasResource(pmf), "Hasn't thread pm");
+		assertTrue(!TransactionSynchronizationManager.hasResource(ds), "Hasn't thread con");
 		verify(pm).flush();
 		verify(pm).close();
 		verify(con).setSavepoint(ConnectionHolder.SAVEPOINT_NAME_PREFIX + 1);
@@ -787,19 +787,19 @@ public class JdoTransactionManagerTests {
 
 		PlatformTransactionManager tm = new JdoTransactionManager(pmf);
 		TransactionTemplate tt = new TransactionTemplate(tm);
-		assertTrue("Hasn't thread pm", !TransactionSynchronizationManager.hasResource(pmf));
-		assertTrue("JTA synchronizations not active", !TransactionSynchronizationManager.isSynchronizationActive());
+		assertTrue(!TransactionSynchronizationManager.hasResource(pmf), "Hasn't thread pm");
+		assertTrue(!TransactionSynchronizationManager.isSynchronizationActive(), "JTA synchronizations not active");
 
 		tt.execute(new TransactionCallbackWithoutResult() {
 			@Override
 			public void doInTransactionWithoutResult(TransactionStatus status) {
-				assertTrue("Has thread pm", TransactionSynchronizationManager.hasResource(pmf));
+				assertTrue(TransactionSynchronizationManager.hasResource(pmf), "Has thread pm");
 				status.flush();
 			}
 		});
 
-		assertTrue("Hasn't thread pm", !TransactionSynchronizationManager.hasResource(pmf));
-		assertTrue("JTA synchronizations not active", !TransactionSynchronizationManager.isSynchronizationActive());
+		assertTrue(!TransactionSynchronizationManager.hasResource(pmf), "Hasn't thread pm");
+		assertTrue(!TransactionSynchronizationManager.isSynchronizationActive(), "JTA synchronizations not active");
 		verify(pm).flush();
 		verify(pm).close();
 		verify(tx).begin();