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