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:17 UTC

[isis] branch master updated (9c864af -> 9585435)

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

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


    from 9c864af  ISIS-2444: fix typo
     new ac03054  ISIS-2515: convert remaining tests to JUnit5
     new 9585435  ISIS-2515: Spring ORM JDO: fixes external links

The 2 revisions listed above as "new" are entirely new to this
repository and will be described in separate emails.  The revisions
listed as "add" were already present in the repository and have only
been added to this reference.


Summary of changes:
 .../isis/commons/internal/collections/_Maps.java   |  15 ++
 persistence/jdo/datanucleus/pom.xml                |  38 ++--
 .../datanucleus}/test/ConfigurationExample.java    |  29 +++-
 .../jdo/datanucleus/test/ConfigurationTest.java    |  51 ++++++
 .../jdo/datanucleus/test/JdoSettingsBean.java      |  51 +++---
 persistence/jdo/spring/README.adoc                 |   9 +-
 persistence/jdo/spring/pom.xml                     |  33 ++--
 .../jdo/spring/test/ConfigurationTest.java         |  33 ----
 .../integration/JdoTransactionManagerTests.java    | 192 ++++++++++-----------
 9 files changed, 265 insertions(+), 186 deletions(-)
 rename persistence/jdo/{spring/src/test/java/org/apache/isis/persistence/jdo/spring => datanucleus/src/test/java/org/apache/isis/persistence/jdo/datanucleus}/test/ConfigurationExample.java (53%)
 create mode 100644 persistence/jdo/datanucleus/src/test/java/org/apache/isis/persistence/jdo/datanucleus/test/ConfigurationTest.java
 copy viewers/restfulobjects/rendering/src/main/java/org/apache/isis/viewer/restfulobjects/rendering/util/MapUtils.java => persistence/jdo/datanucleus/src/test/java/org/apache/isis/persistence/jdo/datanucleus/test/JdoSettingsBean.java (52%)
 delete mode 100644 persistence/jdo/spring/src/test/java/org/apache/isis/persistence/jdo/spring/test/ConfigurationTest.java


[isis] 02/02: ISIS-2515: Spring ORM JDO: fixes external links

Posted by ah...@apache.org.
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 9585435b0b072786a061cefbeaa41f752e145860
Author: Andi Huber <ah...@apache.org>
AuthorDate: Mon Feb 1 11:41:01 2021 +0100

    ISIS-2515: Spring ORM JDO: fixes external links
    
    also fixes initial configuration tests
---
 .../isis/commons/internal/collections/_Maps.java   | 15 +++++++++
 persistence/jdo/datanucleus/pom.xml                | 38 +++++++++++++---------
 .../jdo/datanucleus/test/ConfigurationExample.java | 16 ++++-----
 persistence/jdo/spring/README.adoc                 |  9 +++--
 4 files changed, 52 insertions(+), 26 deletions(-)

diff --git a/commons/src/main/java/org/apache/isis/commons/internal/collections/_Maps.java b/commons/src/main/java/org/apache/isis/commons/internal/collections/_Maps.java
index acf1dfe..d352685 100644
--- a/commons/src/main/java/org/apache/isis/commons/internal/collections/_Maps.java
+++ b/commons/src/main/java/org/apache/isis/commons/internal/collections/_Maps.java
@@ -32,6 +32,7 @@ import java.util.concurrent.ConcurrentHashMap;
 import java.util.function.Function;
 import java.util.function.Predicate;
 import java.util.function.Supplier;
+import java.util.stream.Collectors;
 import java.util.stream.Stream;
 
 import javax.annotation.Nullable;
@@ -143,6 +144,20 @@ public final class _Maps {
         return new AbstractMap.SimpleEntry<K, V>(k, v);
     }
 
+    // -- TO STRING
+    
+    public static String toString(
+            final @Nullable Map<?, ?> map, 
+            final @NonNull  CharSequence delimiter) {
+        
+        return map==null
+            ? ""
+            : map.entrySet()
+                .stream()
+                .map(Object::toString)
+                .collect(Collectors.joining(delimiter));
+        }
+    
     // -- MODIFICATIONS
 
     /**
diff --git a/persistence/jdo/datanucleus/pom.xml b/persistence/jdo/datanucleus/pom.xml
index 48c291a..56e8528 100644
--- a/persistence/jdo/datanucleus/pom.xml
+++ b/persistence/jdo/datanucleus/pom.xml
@@ -1,15 +1,16 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<!-- 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
+<!-- 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. -->
-<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>
 
@@ -76,11 +77,18 @@
 
 		<!-- 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>com.h2database</groupId>
+			<artifactId>h2</artifactId>
+			<scope>test</scope>
+		</dependency>
+
 
 	</dependencies>
 
diff --git a/persistence/jdo/datanucleus/src/test/java/org/apache/isis/persistence/jdo/datanucleus/test/ConfigurationExample.java b/persistence/jdo/datanucleus/src/test/java/org/apache/isis/persistence/jdo/datanucleus/test/ConfigurationExample.java
index a7ac9ab..014d998 100644
--- a/persistence/jdo/datanucleus/src/test/java/org/apache/isis/persistence/jdo/datanucleus/test/ConfigurationExample.java
+++ b/persistence/jdo/datanucleus/src/test/java/org/apache/isis/persistence/jdo/datanucleus/test/ConfigurationExample.java
@@ -21,10 +21,13 @@ package org.apache.isis.persistence.jdo.datanucleus.test;
 import java.util.HashMap;
 import java.util.Map;
 
+import org.springframework.boot.context.properties.ConfigurationProperties;
+import org.springframework.boot.context.properties.EnableConfigurationProperties;
 import org.springframework.context.annotation.Bean;
 import org.springframework.context.annotation.Configuration;
 import org.springframework.context.annotation.Import;
 
+import org.apache.isis.commons.internal.collections._Maps;
 import org.apache.isis.commons.internal.debug._Probe;
 import org.apache.isis.persistence.jdo.spring.integration.LocalPersistenceManagerFactoryBean;
 
@@ -37,23 +40,20 @@ import lombok.val;
 @Import({
     JdoSettingsBean.class
 })
+@EnableConfigurationProperties
 public class ConfigurationExample {
     
     // DatanNucleus config properties
-    //@ConfigurationProperties(prefix = "isis.persistence.jdo-datanucleus.impl")
+    @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;
+        return new HashMap<String, String>();
     }
     
     @Bean
     public LocalPersistenceManagerFactoryBean myPmf(final JdoSettingsBean jdoSettings) {
-        
-        _Probe.errOut("jdoSettings %s", jdoSettings.getAsProperties());
+
+        _Probe.errOut("jdoSettings %s", _Maps.toString(jdoSettings.getAsProperties(), "\n"));
         
         val myPmf = new LocalPersistenceManagerFactoryBean();
         myPmf.setJdoPropertyMap(jdoSettings.getAsProperties());
diff --git a/persistence/jdo/spring/README.adoc b/persistence/jdo/spring/README.adoc
index 1e338dd..9e3228a 100644
--- a/persistence/jdo/spring/README.adoc
+++ b/persistence/jdo/spring/README.adoc
@@ -47,7 +47,7 @@ Alternatively, you can set up a `PersistenceManagerFactory` through direct insta
 class follows the JavaBeans pattern, just like a JDBC `DataSource` implementation class, which is a
 natural fit for a configuration that uses _Spring_. This setup style usually supports a _Spring_-defined
 JDBC `DataSource`, passed into the connectionFactory property. For example, for the open source
-JDO implementation http://www.datanucleus.org/[DataNucleus],
+JDO implementation https://www.datanucleus.org/[DataNucleus],
 this is the XML configuration of the PersistenceManagerFactory implementation:
 
 .Beans Configuration (XML)
@@ -78,7 +78,9 @@ usually through the JCA connector provided by the particular JDO implementation.
 `JndiObjectFactoryBean / <jee:jndi-lookup>` can be used to retrieve and expose such a
 `PersistenceManagerFactory`.
 However, outside an EJB context, no real benefit exists in holding the `PersistenceManagerFactory` in
-JNDI: only choose such a setup for a good reason. See Section _13.3.6_,
+JNDI: only choose such a setup for a good reason. See 
+_Spring Transactions Section 13.3.6_, https://docs.spring.io/spring-framework/docs/3.0.x/spring-framework-reference/html/orm.html#orm-hibernate-resources[Comparing container-managed and locally defined resources]
+
 “Comparing container-managed and locally defined resources” for a discussion; the arguments there
 apply to JDO as well.
 
@@ -227,7 +229,8 @@ DAOs throw plain JDOException, and you would have to convert explicitly to _Spri
 
 [NOTE]
 ====
-You are strongly encouraged to read Section 10.5, “Declarative transaction management” if you have not
+You are strongly encouraged to read _Spring Transactions Section 10.5_, https://docs.spring.io/spring-framework/docs/3.0.x/spring-framework-reference/html/transaction.html#transaction-declarative[Declarative transaction management] 
+if you have not
 done so, to get a more detailed coverage of _Spring_'s declarative transaction support.
 ====
 


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

Posted by ah...@apache.org.
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();