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 14:25:45 UTC

[isis] branch master updated: ISIS-2515: translates fourth example to Java

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 2dffe9f  ISIS-2515: translates fourth example to Java
2dffe9f is described below

commit 2dffe9fbb293575ccdc26b73e7ecced89af3ca60
Author: Andi Huber <ah...@apache.org>
AuthorDate: Mon Feb 1 15:25:32 2021 +0100

    ISIS-2515: translates fourth example to Java
---
 .../datanucleus/test/ConfigurationExample3.java    |  1 +
 persistence/jdo/spring/README.adoc                 | 44 +++++++++++++++++++++-
 2 files changed, 44 insertions(+), 1 deletion(-)

diff --git a/persistence/jdo/datanucleus/src/test/java/org/apache/isis/persistence/jdo/datanucleus/test/ConfigurationExample3.java b/persistence/jdo/datanucleus/src/test/java/org/apache/isis/persistence/jdo/datanucleus/test/ConfigurationExample3.java
index e1ce9c0..3c202a0 100644
--- a/persistence/jdo/datanucleus/src/test/java/org/apache/isis/persistence/jdo/datanucleus/test/ConfigurationExample3.java
+++ b/persistence/jdo/datanucleus/src/test/java/org/apache/isis/persistence/jdo/datanucleus/test/ConfigurationExample3.java
@@ -66,6 +66,7 @@ public class ConfigurationExample3 {
     public TransactionAwarePersistenceManagerFactoryProxy myPmfProxy(final PersistenceManagerFactory myPmf) {
         val myPmfProxy = new TransactionAwarePersistenceManagerFactoryProxy();
         myPmfProxy.setTargetPersistenceManagerFactory(myPmf);
+        myPmfProxy.setAllowCreate(false); // enforce active transactions
         return myPmfProxy;
     }
     
diff --git a/persistence/jdo/spring/README.adoc b/persistence/jdo/spring/README.adoc
index 03ae0cb..370ecc8 100644
--- a/persistence/jdo/spring/README.adoc
+++ b/persistence/jdo/spring/README.adoc
@@ -352,8 +352,50 @@ transactions through turning off `TransactionAwarePersistenceManagerFactoryProxy
 ====
 [source,java]
 ----
-//TODO
+@Configuration
+@Import({
+})
+public class ConfigurationExample3 {
+    
+    @Bean(destroyMethod = "close")
+    public DataSource getDataSource() {
+        val dataSourceBuilder = DataSourceBuilder.create().type(BasicDataSource.class);
+        dataSourceBuilder.driverClassName("org.h2.Driver");
+        dataSourceBuilder.url("jdbc:h2:mem:test");
+        dataSourceBuilder.username("sa");
+        dataSourceBuilder.password("");
+        return dataSourceBuilder.build();
+    }
+  
+    @Bean(destroyMethod = "close") @Named("myPmf")
+    public PersistenceManagerFactory myPmf(final DataSource dataSource) {
+        val myPmf = new JDOPersistenceManagerFactory();
+        myPmf.setConnectionFactory(dataSource);
+        myPmf.setNontransactionalRead(true);
+        return myPmf;
+    }
+    
+    @Bean @Named("myPmfProxy")
+    public TransactionAwarePersistenceManagerFactoryProxy myPmfProxy(final PersistenceManagerFactory myPmf) {
+        val myPmfProxy = new TransactionAwarePersistenceManagerFactoryProxy();
+        myPmfProxy.setTargetPersistenceManagerFactory(myPmf);
+        myPmfProxy.setAllowCreate(false); // <.>
+        return myPmfProxy;
+    }
+    
+    @Component
+    public static class ExampleDao {
+
+        @Inject
+        @Named("myPmfProxy")
+        @Getter 
+        private PersistenceManagerFactory persistenceManagerFactory;
+        
+    }
+
+}
 ----
+<.> enforce active transactions
 ====
 
 The main advantage of this DAO style is that it depends on JDO API only; no import of any _Spring_ class