generified operations interfaces; update to JDO 2.1; preparation for JPA 2.0

This commit is contained in:
Juergen Hoeller
2009-01-25 23:20:41 +00:00
parent 612ed8c660
commit e7465dcb99
34 changed files with 708 additions and 383 deletions

View File

@@ -1,5 +1,5 @@
/*
* Copyright 2002-2008 the original author or authors.
* Copyright 2002-2009 the original author or authors.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -22,7 +22,6 @@ import java.util.HashMap;
import java.util.HashSet;
import java.util.List;
import java.util.Map;
import javax.jdo.JDODataStoreException;
import javax.jdo.JDOException;
import javax.jdo.JDOFatalDataStoreException;
@@ -125,17 +124,12 @@ public class JdoTemplateTests extends TestCase {
}
public void testTemplateExecuteWithThreadBoundAndFlushEager() {
MockControl dialectControl = MockControl.createControl(JdoDialect.class);
JdoDialect dialect = (JdoDialect) dialectControl.getMock();
dialect.flush(pm);
dialectControl.setVoidCallable(1);
pm.flush();
pmControl.setVoidCallable(1);
pmfControl.replay();
pmControl.replay();
dialectControl.replay();
JdoTemplate jt = new JdoTemplate(pmf);
jt.setJdoDialect(dialect);
jt.setFlushEager(true);
jt.setAllowCreate(false);
TransactionSynchronizationManager.bindResource(pmf, new PersistenceManagerHolder(pm));
@@ -148,7 +142,6 @@ public class JdoTemplateTests extends TestCase {
});
assertTrue("Correct result list", result == l);
TransactionSynchronizationManager.unbindResource(pmf);
dialectControl.verify();
}
public void testGetObjectById() {
@@ -373,23 +366,17 @@ public class JdoTemplateTests extends TestCase {
}
public void testFlushWithDialect() {
MockControl dialectControl = MockControl.createControl(JdoDialect.class);
JdoDialect dialect = (JdoDialect) dialectControl.getMock();
pmf.getPersistenceManager();
pmfControl.setReturnValue(pm);
dialect.flush(pm);
dialectControl.setVoidCallable(1);
pm.flush();
pmControl.setVoidCallable(1);
pm.close();
pmControl.setVoidCallable(1);
pmfControl.replay();
pmControl.replay();
dialectControl.replay();
JdoTemplate jt = new JdoTemplate(pmf);
jt.setJdoDialect(dialect);
jt.flush();
dialectControl.verify();
}
public void testFind() {

View File

@@ -23,7 +23,6 @@ import java.sql.SQLException;
import java.sql.Savepoint;
import java.util.ArrayList;
import java.util.List;
import javax.jdo.JDOFatalDataStoreException;
import javax.jdo.PersistenceManager;
import javax.jdo.PersistenceManagerFactory;
@@ -41,6 +40,8 @@ import org.springframework.beans.TestBean;
import org.springframework.jdbc.datasource.ConnectionHandle;
import org.springframework.jdbc.datasource.ConnectionHolder;
import org.springframework.jdbc.datasource.SimpleConnectionHandle;
import org.springframework.orm.jdo.support.SpringPersistenceManagerProxyBean;
import org.springframework.orm.jdo.support.StandardPersistenceManagerProxyBean;
import org.springframework.transaction.InvalidIsolationLevelException;
import org.springframework.transaction.MockJtaTransaction;
import org.springframework.transaction.PlatformTransactionManager;
@@ -93,13 +94,15 @@ public class JdoTransactionManagerTests extends TestCase {
public void testTransactionCommit() {
pmf.getConnectionFactory();
pmfControl.setReturnValue(null, 2);
pmfControl.setReturnValue(null, 3);
pmf.getPersistenceManager();
pmfControl.setReturnValue(pm, 1);
pmf.getPersistenceManagerProxy();
pmfControl.setReturnValue(pm, 1);
pm.currentTransaction();
pmControl.setReturnValue(tx, 3);
pm.flush();
pmControl.setVoidCallable(2);
pmControl.setVoidCallable(4);
pm.close();
pmControl.setVoidCallable(1);
tx.begin();
@@ -126,10 +129,23 @@ public class JdoTransactionManagerTests extends TestCase {
TransactionAwarePersistenceManagerFactoryProxy proxyFactory =
new TransactionAwarePersistenceManagerFactoryProxy();
proxyFactory.setTargetPersistenceManagerFactory(pmf);
PersistenceManagerFactory proxy = (PersistenceManagerFactory) proxyFactory.getObject();
assertEquals(pm.toString(), proxy.getPersistenceManager().toString());
proxy.getPersistenceManager().flush();
proxy.getPersistenceManager().close();
PersistenceManagerFactory pmfProxy = proxyFactory.getObject();
assertEquals(pm.toString(), pmfProxy.getPersistenceManager().toString());
pmfProxy.getPersistenceManager().flush();
pmfProxy.getPersistenceManager().close();
SpringPersistenceManagerProxyBean proxyBean = new SpringPersistenceManagerProxyBean();
proxyBean.setPersistenceManagerFactory(pmf);
proxyBean.afterPropertiesSet();
PersistenceManager pmProxy = proxyBean.getObject();
assertSame(pmf, pmProxy.getPersistenceManagerFactory());
pmProxy.flush();
pmProxy.close();
StandardPersistenceManagerProxyBean stdProxyBean = new StandardPersistenceManagerProxyBean();
stdProxyBean.setPersistenceManagerFactory(pmf);
PersistenceManager stdPmProxy = stdProxyBean.getObject();
stdPmProxy.flush();
JdoTemplate jt = new JdoTemplate(pmf);
return jt.execute(new JdoCallback() {