diff --git a/org.springframework.testsuite/src/test/java/org/springframework/orm/toplink/MockSessionFactory.java b/org.springframework.testsuite/src/test/java/org/springframework/orm/toplink/MockSessionFactory.java
deleted file mode 100644
index be22356139..0000000000
--- a/org.springframework.testsuite/src/test/java/org/springframework/orm/toplink/MockSessionFactory.java
+++ /dev/null
@@ -1,37 +0,0 @@
-
-package org.springframework.orm.toplink;
-
-import oracle.toplink.sessions.Session;
-
-/**
- * @author Juergen Hoeller
- * @since 28.04.2005
- */
-public class MockSessionFactory implements SessionFactory {
-
- private Session session;
-
- public MockSessionFactory(Session session) {
- this.session = session;
- }
-
- public void setSession(Session session) {
- this.session = session;
- }
-
- public Session createSession() {
- return this.session;
- }
-
- public Session createManagedClientSession() {
- return this.session;
- }
-
- public Session createTransactionAwareSession() {
- return this.session;
- }
-
- public void close() {
- }
-
-}
diff --git a/org.springframework.testsuite/src/test/java/org/springframework/orm/toplink/SessionBrokerFactoryTests.java b/org.springframework.testsuite/src/test/java/org/springframework/orm/toplink/SessionBrokerFactoryTests.java
deleted file mode 100644
index c8dbcd3899..0000000000
--- a/org.springframework.testsuite/src/test/java/org/springframework/orm/toplink/SessionBrokerFactoryTests.java
+++ /dev/null
@@ -1,102 +0,0 @@
-/*
- * Copyright 2002-2006 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.
- * 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.springframework.orm.toplink;
-
-import junit.framework.TestCase;
-import oracle.toplink.exceptions.ValidationException;
-import oracle.toplink.publicinterface.UnitOfWork;
-import oracle.toplink.sessionbroker.SessionBroker;
-import oracle.toplink.sessions.Session;
-
-/**
- * @author James Clark
- */
-public class SessionBrokerFactoryTests extends TestCase {
-
- /*
- * When acquiring ClientSessionBrokers, the SessionBroker can throw RuntimeExceptions indicating
- * that this SessionBroker is not capable of creating "client" Sessions. We need to handle
- * these differently depending on how the SessionFactory is being used. If we are creating a
- * plain Session than we can return the original SessionBroker.
- */
- public void testSessionBrokerThrowingValidationException() {
- SessionBroker broker = new MockSingleSessionBroker();
- SessionBrokerSessionFactory factory = new SessionBrokerSessionFactory(broker);
-
- assertEquals(factory.createSession(), broker);
- try {
- factory.createManagedClientSession();
- fail("Should have thrown ValidationException");
- }
- catch (ValidationException ex) {
- // expected
- }
- }
-
- /**
- * Insure that the managed TopLink Session proxy is behaving correctly
- * when it has been initialized with a SessionBroker.
- */
- public void testManagedSessionBroker() {
- SessionBroker client = new MockClientSessionBroker();
- SessionBroker broker = new MockServerSessionBroker(client);
- SessionBrokerSessionFactory factory = new SessionBrokerSessionFactory(broker);
-
- assertEquals(client, factory.createSession());
-
- Session session = factory.createManagedClientSession();
- assertEquals(client, session.getActiveSession());
- assertNotNull(session.getActiveUnitOfWork());
- assertEquals(session.getActiveUnitOfWork(), session.getActiveUnitOfWork());
- }
-
-
- private class MockSingleSessionBroker extends SessionBroker {
-
- public MockSingleSessionBroker() {
- }
-
- public SessionBroker acquireClientSessionBroker() {
- throw new ValidationException();
- }
- }
-
-
- private class MockServerSessionBroker extends SessionBroker {
-
- private SessionBroker client;
-
- public MockServerSessionBroker(SessionBroker client) {
- this.client = client;
- }
-
- public SessionBroker acquireClientSessionBroker() {
- return client;
- }
- }
-
-
- private class MockClientSessionBroker extends SessionBroker {
-
- public MockClientSessionBroker() {
- }
-
- public UnitOfWork acquireUnitOfWork() {
- return new UnitOfWork(this);
- }
- }
-}
diff --git a/org.springframework.testsuite/src/test/java/org/springframework/orm/toplink/SessionFactoryUtilsTests.java b/org.springframework.testsuite/src/test/java/org/springframework/orm/toplink/SessionFactoryUtilsTests.java
deleted file mode 100644
index 99dcc54994..0000000000
--- a/org.springframework.testsuite/src/test/java/org/springframework/orm/toplink/SessionFactoryUtilsTests.java
+++ /dev/null
@@ -1,106 +0,0 @@
-/*
- * Created on Mar 18, 2005
- *
- */
-
-package org.springframework.orm.toplink;
-
-import junit.framework.TestCase;
-import oracle.toplink.sessions.Session;
-import org.easymock.MockControl;
-
-import org.springframework.transaction.support.TransactionSynchronizationManager;
-
-/**
- * @author Juergen Hoeller
- * @author James Clark
- * @since 28.04.2005
- */
-public class SessionFactoryUtilsTests extends TestCase {
-
- /**
- * When no Session is bound and allowCreate is "false", we should throw an IllegalStateException.
- * When no Session is bound, and allowCreate is "true", we should get a Session but it should not
- * be bound to the Thread afterwards.
- */
- public void testNoSessionBound() {
- MockControl sessionControl = MockControl.createControl(Session.class);
- Session session = (Session) sessionControl.getMock();
-
- SessionFactory factory = new SingleSessionFactory(session);
-
- session.hasExternalTransactionController();
- sessionControl.setReturnValue(false, 1);
-
- sessionControl.replay();
- try {
- Session boundSession = SessionFactoryUtils.getSession(factory, false);
- fail();
- }
- catch (Throwable t) {
- assertTrue(t.getClass().equals(IllegalStateException.class));
- }
-
- Session boundSession = SessionFactoryUtils.getSession(factory, true);
- assertTrue(session == boundSession);
- assertFalse(TransactionSynchronizationManager.hasResource(factory));
- assertFalse(TransactionSynchronizationManager.isSynchronizationActive());
- }
-
- /**
- * When called with no previous Session bound, "allowCreate", and "allowSynchronization",
- * Session should be returned, it should be bound to the Thread, and a synchronization listener
- * should be in the list of thread synchronizations.
- */
- public void testNoSessionBoundAllowAndInit() {
- MockControl sessionControl = MockControl.createControl(Session.class);
- Session session = (Session) sessionControl.getMock();
-
- SessionFactory factory = new SingleSessionFactory(session);
-
- session.hasExternalTransactionController();
- sessionControl.setReturnValue(false, 1);
-
- sessionControl.replay();
-
- Session boundSession = SessionFactoryUtils.getSession(factory, true);
- assertTrue(session == boundSession);
-
- SessionHolder holder = (SessionHolder) TransactionSynchronizationManager.getResource(factory);
- assertTrue(holder == null);
-
- TransactionSynchronizationManager.initSynchronization();
-
- boundSession = SessionFactoryUtils.getSession(factory, true);
- assertTrue(session == boundSession);
- assertTrue(TransactionSynchronizationManager.getSynchronizations().size() == 1);
- assertTrue(TransactionSynchronizationManager.hasResource(factory));
- assertTrue(session == ((SessionHolder) TransactionSynchronizationManager.getResource(factory)).getSession());
-
- TransactionSynchronizationManager.clearSynchronization();
- TransactionSynchronizationManager.unbindResource(factory);
- }
-
- public void testNoSessionBoundAllowAndNoInit() {
- MockControl sessionControl = MockControl.createControl(Session.class);
- Session session = (Session) sessionControl.getMock();
-
- SessionFactory factory = new SingleSessionFactory(session);
-
- session.hasExternalTransactionController();
- sessionControl.setReturnValue(false, 2);
-
- sessionControl.replay();
-
- Session boundSession = SessionFactoryUtils.getSession(factory, true);
- assertTrue(session == boundSession);
-
- SessionHolder holder = (SessionHolder) TransactionSynchronizationManager.getResource(factory);
- assertTrue(holder == null);
-
- boundSession = SessionFactoryUtils.getSession(factory, true);
- assertTrue(session == boundSession);
- assertFalse(TransactionSynchronizationManager.hasResource(factory));
- }
-
-}
diff --git a/org.springframework.testsuite/src/test/java/org/springframework/orm/toplink/TopLinkInterceptorTests.java b/org.springframework.testsuite/src/test/java/org/springframework/orm/toplink/TopLinkInterceptorTests.java
deleted file mode 100644
index 819133c2dd..0000000000
--- a/org.springframework.testsuite/src/test/java/org/springframework/orm/toplink/TopLinkInterceptorTests.java
+++ /dev/null
@@ -1,98 +0,0 @@
-/*
- * Created on Mar 20, 2005
- *
- */
-
-package org.springframework.orm.toplink;
-
-import junit.framework.TestCase;
-import org.aopalliance.intercept.MethodInvocation;
-import org.easymock.MockControl;
-
-import org.springframework.transaction.support.TransactionSynchronizationManager;
-
-import oracle.toplink.sessions.Session;
-
-/**
- * @author Juergen Hoeller
- * @author James Clark
- * @since 28.04.2005
- */
-public class TopLinkInterceptorTests extends TestCase {
-
- public void testInterceptorWithNoSessionBoundAndNoSynchronizations() throws Throwable {
- MockControl sessionControl = MockControl.createControl(Session.class);
- Session session = (Session) sessionControl.getMock();
- MockControl methodInvocationControl = MockControl.createControl(MethodInvocation.class);
- MethodInvocation methodInvocation = (MethodInvocation) methodInvocationControl.getMock();
-
- SessionFactory factory = new SingleSessionFactory(session);
-
- TopLinkInterceptor interceptor = new TopLinkInterceptor();
- interceptor.setSessionFactory(factory);
-
- methodInvocation.proceed();
- methodInvocationControl.setReturnValue(null, 1);
- session.release();
- sessionControl.setVoidCallable(1);
-
- methodInvocationControl.replay();
- sessionControl.replay();
-
- try {
- interceptor.invoke(methodInvocation);
- }
- catch (Throwable t) {
- System.out.println(t);
- t.printStackTrace();
- fail();
- }
-
- assertFalse(TransactionSynchronizationManager.hasResource(factory));
-
- sessionControl.verify();
- methodInvocationControl.verify();
- sessionControl.verify();
- }
-
- public void testInterceptorWithNoSessionBoundAndSynchronizationsActive() {
- MockControl sessionControl = MockControl.createControl(Session.class);
- Session session = (Session) sessionControl.getMock();
- MockControl methodInvocationControl = MockControl.createControl(MethodInvocation.class);
- MethodInvocation methodInvocation = (MethodInvocation) methodInvocationControl.getMock();
-
- SessionFactory factory = new SingleSessionFactory(session);
-
- TopLinkInterceptor interceptor = new TopLinkInterceptor();
- interceptor.setSessionFactory(factory);
-
- try {
- methodInvocation.proceed();
- }
- catch (Throwable e) {
- fail();
- }
- methodInvocationControl.setReturnValue(null, 1);
-
- methodInvocationControl.replay();
- sessionControl.replay();
-
- TransactionSynchronizationManager.initSynchronization();
- try {
- interceptor.invoke(methodInvocation);
- }
- catch (Throwable t) {
- fail();
- }
-
- assertTrue(TransactionSynchronizationManager.hasResource(factory));
- assertTrue(TransactionSynchronizationManager.getSynchronizations().size() == 1);
-
- TransactionSynchronizationManager.clearSynchronization();
- TransactionSynchronizationManager.unbindResource(factory);
-
- sessionControl.verify();
- methodInvocationControl.verify();
- }
-
-}
diff --git a/org.springframework.testsuite/src/test/java/org/springframework/orm/toplink/TopLinkJtaTransactionTests.java b/org.springframework.testsuite/src/test/java/org/springframework/orm/toplink/TopLinkJtaTransactionTests.java
deleted file mode 100644
index 398a814749..0000000000
--- a/org.springframework.testsuite/src/test/java/org/springframework/orm/toplink/TopLinkJtaTransactionTests.java
+++ /dev/null
@@ -1,321 +0,0 @@
-/*
- * Copyright 2002-2007 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.
- * 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.springframework.orm.toplink;
-
-import java.util.ArrayList;
-import java.util.List;
-
-import javax.transaction.Status;
-import javax.transaction.TransactionManager;
-import javax.transaction.UserTransaction;
-
-import junit.framework.TestCase;
-import oracle.toplink.exceptions.TopLinkException;
-import oracle.toplink.sessions.Session;
-import org.easymock.MockControl;
-
-import org.springframework.transaction.MockJtaTransaction;
-import org.springframework.transaction.TransactionDefinition;
-import org.springframework.transaction.TransactionStatus;
-import org.springframework.transaction.jta.JtaTransactionManager;
-import org.springframework.transaction.support.TransactionCallback;
-import org.springframework.transaction.support.TransactionSynchronizationManager;
-import org.springframework.transaction.support.TransactionTemplate;
-
-/**
- * @author Juergen Hoeller
- * @author James Clark
- * @since 28.04.2005
- */
-public class TopLinkJtaTransactionTests extends TestCase {
-
- public void testParticipatingJtaTransactionWithWithRequiresNew() throws Exception {
- MockControl utControl = MockControl.createControl(UserTransaction.class);
- UserTransaction ut = (UserTransaction) utControl.getMock();
- MockControl tmControl = MockControl.createControl(TransactionManager.class);
- TransactionManager tm = (TransactionManager) tmControl.getMock();
- MockControl tx1Control = MockControl.createControl(javax.transaction.Transaction.class);
- javax.transaction.Transaction tx1 = (javax.transaction.Transaction) tx1Control.getMock();
-
- MockControl session1Control = MockControl.createControl(Session.class);
- Session session1 = (Session) session1Control.getMock();
- MockControl session2Control = MockControl.createControl(Session.class);
- final Session session2 = (Session) session2Control.getMock();
- final MockSessionFactory sf = new MockSessionFactory(session1);
-
- ut.getStatus();
- utControl.setReturnValue(Status.STATUS_NO_TRANSACTION, 1);
- ut.getStatus();
- utControl.setReturnValue(Status.STATUS_ACTIVE, 5);
- ut.begin();
- utControl.setVoidCallable(2);
- tm.suspend();
- tmControl.setReturnValue(tx1, 1);
- tm.resume(tx1);
- tmControl.setVoidCallable(1);
- ut.commit();
- utControl.setVoidCallable(2);
-
-// session1.hasExternalTransactionController();
-// session1Control.setReturnValue(true,1);
- session1.release();
- session1Control.setVoidCallable(1);
-// session2.hasExternalTransactionController();
-// session2Control.setReturnValue(true,1);
- session2.release();
- session2Control.setVoidCallable(1);
-
- utControl.replay();
- tmControl.replay();
- session1Control.replay();
- session2Control.replay();
-
- JtaTransactionManager ptm = new JtaTransactionManager();
- ptm.setUserTransaction(ut);
- ptm.setTransactionManager(tm);
- final TransactionTemplate tt = new TransactionTemplate(ptm);
- tt.setPropagationBehavior(TransactionDefinition.PROPAGATION_REQUIRES_NEW);
-
- assertTrue("Hasn't thread session", !TransactionSynchronizationManager.hasResource(sf));
- tt.execute(new TransactionCallback() {
- public Object doInTransaction(TransactionStatus status) {
- SessionFactoryUtils.getSession(sf, true);
- final SessionHolder holder = (SessionHolder) TransactionSynchronizationManager.getResource(sf);
- assertTrue("Has thread session", holder != null);
- sf.setSession(session2);
-
- tt.execute(new TransactionCallback() {
- public Object doInTransaction(TransactionStatus status) {
- TopLinkTemplate ht = new TopLinkTemplate(sf);
- return ht.executeFind(new TopLinkCallback() {
- public Object doInTopLink(Session session) {
- assertTrue("Not enclosing session", session != holder.getSession());
- return null;
- }
- });
- }
- });
- assertTrue("Same thread session as before",
- holder.getSession() == SessionFactoryUtils.getSession(sf, false));
- return null;
- }
- });
- assertTrue("Hasn't thread session", !TransactionSynchronizationManager.hasResource(sf));
-
- utControl.verify();
- tmControl.verify();
- session1Control.verify();
- session2Control.verify();
- }
-
- public void testJtaTransactionCommit() throws Exception {
- doTestJtaTransactionCommit(Status.STATUS_NO_TRANSACTION);
- }
-
- public void testJtaTransactionCommitWithExisting() throws Exception {
- doTestJtaTransactionCommit(Status.STATUS_ACTIVE);
- }
-
- private void doTestJtaTransactionCommit(int status) throws Exception {
- MockControl utControl = MockControl.createControl(UserTransaction.class);
- UserTransaction ut = (UserTransaction) utControl.getMock();
- ut.getStatus();
- utControl.setReturnValue(status, 1);
- if (status == Status.STATUS_NO_TRANSACTION) {
- ut.begin();
- utControl.setVoidCallable(1);
- ut.getStatus();
- utControl.setReturnValue(Status.STATUS_ACTIVE, 2);
- ut.commit();
- utControl.setVoidCallable(1);
- }
- else {
- ut.getStatus();
- utControl.setReturnValue(status, 1);
- }
- utControl.replay();
-
- final MockControl sessionControl = MockControl.createControl(Session.class);
- final Session session = (Session) sessionControl.getMock();
- final SessionFactory sf = new SingleSessionFactory(session);
-
- sessionControl.replay();
-
- JtaTransactionManager ptm = new JtaTransactionManager(ut);
- TransactionTemplate tt = new TransactionTemplate(ptm);
- final List l = new ArrayList();
- l.add("test");
- assertTrue("JTA synchronizations not active", !TransactionSynchronizationManager.isSynchronizationActive());
- assertTrue("Hasn't thread session", !TransactionSynchronizationManager.hasResource(sf));
-
- Object result = tt.execute(new TransactionCallback() {
- public Object doInTransaction(TransactionStatus status) {
- try {
- assertTrue("JTA synchronizations active", TransactionSynchronizationManager.isSynchronizationActive());
- assertTrue("Hasn't thread session", !TransactionSynchronizationManager.hasResource(sf));
- TopLinkTemplate ht = new TopLinkTemplate(sf);
- List htl = ht.executeFind(new TopLinkCallback() {
- public Object doInTopLink(Session sess) {
- assertTrue("Has thread session", TransactionSynchronizationManager.hasResource(sf));
- assertEquals(session, sess);
- return l;
- }
- });
-
- ht = new TopLinkTemplate(sf);
- htl = ht.executeFind(new TopLinkCallback() {
- public Object doInTopLink(Session sess) {
- assertTrue("Has thread session", TransactionSynchronizationManager.hasResource(sf));
- assertEquals(session, sess);
- return l;
- }
- });
- assertTrue("Has thread session", TransactionSynchronizationManager.hasResource(sf));
-
- sessionControl.verify();
- sessionControl.reset();
-
- try {
- session.release();
- sessionControl.setVoidCallable(1);
- }
- catch (TopLinkException e) {
- }
- sessionControl.replay();
- return htl;
- }
- catch (Error err) {
- err.printStackTrace();
- throw err;
- }
- }
- });
-
- assertTrue("Correct result list", result == l);
- assertTrue("Hasn't thread session", !TransactionSynchronizationManager.hasResource(sf));
- assertTrue("JTA synchronizations not active", !TransactionSynchronizationManager.isSynchronizationActive());
-
- utControl.verify();
- sessionControl.verify();
- }
-
- public void testJtaTransactionCommitWithJtaTm() throws Exception {
- doTestJtaTransactionCommitWithJtaTm(Status.STATUS_NO_TRANSACTION);
- }
-
- public void testJtaTransactionCommitWithJtaTmAndExisting() throws Exception {
- doTestJtaTransactionCommitWithJtaTm(Status.STATUS_ACTIVE);
- }
-
- private void doTestJtaTransactionCommitWithJtaTm(int status) throws Exception {
- MockControl utControl = MockControl.createControl(UserTransaction.class);
- UserTransaction ut = (UserTransaction) utControl.getMock();
- ut.getStatus();
- utControl.setReturnValue(status, 1);
- if (status == Status.STATUS_NO_TRANSACTION) {
- ut.begin();
- utControl.setVoidCallable(1);
- ut.getStatus();
- utControl.setReturnValue(Status.STATUS_ACTIVE, 2);
- ut.commit();
- utControl.setVoidCallable(1);
- }
- else {
- ut.getStatus();
- utControl.setReturnValue(status, 1);
- }
-
- MockControl tmControl = MockControl.createControl(TransactionManager.class);
- TransactionManager tm = (TransactionManager) tmControl.getMock();
- MockJtaTransaction transaction = new MockJtaTransaction();
- tm.getStatus();
- tmControl.setReturnValue(Status.STATUS_ACTIVE, 6);
- tm.getTransaction();
- tmControl.setReturnValue(transaction, 6);
-
- final MockControl sessionControl = MockControl.createControl(Session.class);
- final Session session = (Session) sessionControl.getMock();
- final SessionFactory sf = new SingleSessionFactory(session);
-
- utControl.replay();
- tmControl.replay();
- sessionControl.replay();
-
- JtaTransactionManager ptm = new JtaTransactionManager(ut);
- TransactionTemplate tt = new TransactionTemplate(ptm);
- final List l = new ArrayList();
- l.add("test");
- assertTrue("JTA synchronizations not active", !TransactionSynchronizationManager.isSynchronizationActive());
- assertTrue("Hasn't thread session", !TransactionSynchronizationManager.hasResource(sf));
-
- Object result = tt.execute(new TransactionCallback() {
- public Object doInTransaction(TransactionStatus status) {
- try {
- assertTrue("JTA synchronizations active", TransactionSynchronizationManager.isSynchronizationActive());
- assertTrue("Hasn't thread session", !TransactionSynchronizationManager.hasResource(sf));
-
- TopLinkTemplate ht = new TopLinkTemplate(sf);
- List htl = ht.executeFind(new TopLinkCallback() {
- public Object doInTopLink(Session sess) {
- assertTrue("Has thread session", TransactionSynchronizationManager.hasResource(sf));
- assertEquals(session, sess);
- return l;
- }
- });
-
- ht = new TopLinkTemplate(sf);
- htl = ht.executeFind(new TopLinkCallback() {
- public Object doInTopLink(Session sess) {
- assertTrue("Has thread session", TransactionSynchronizationManager.hasResource(sf));
- assertEquals(session, sess);
- return l;
- }
- });
-
- assertTrue("Has thread session", TransactionSynchronizationManager.hasResource(sf));
- sessionControl.verify();
- sessionControl.reset();
- try {
- session.release();
- sessionControl.setVoidCallable(1);
- }
- catch (TopLinkException e) {
- }
- sessionControl.replay();
- return htl;
- }
- catch (Error err) {
- err.printStackTrace();
- throw err;
- }
- }
- });
-
- assertTrue("Correct result list", result == l);
- assertTrue("Hasn't thread session", !TransactionSynchronizationManager.hasResource(sf));
- assertTrue("JTA synchronizations not active", !TransactionSynchronizationManager.isSynchronizationActive());
-
- utControl.verify();
- sessionControl.verify();
- }
-
- protected void tearDown() {
- assertTrue(TransactionSynchronizationManager.getResourceMap().isEmpty());
- assertFalse(TransactionSynchronizationManager.isSynchronizationActive());
- }
-
-}
diff --git a/org.springframework.testsuite/src/test/java/org/springframework/orm/toplink/TopLinkTemplateTests.java b/org.springframework.testsuite/src/test/java/org/springframework/orm/toplink/TopLinkTemplateTests.java
deleted file mode 100644
index 73adb96ea1..0000000000
--- a/org.springframework.testsuite/src/test/java/org/springframework/orm/toplink/TopLinkTemplateTests.java
+++ /dev/null
@@ -1,117 +0,0 @@
-/*
- * Created on Mar 20, 2005
- *
- */
-
-package org.springframework.orm.toplink;
-
-import junit.framework.TestCase;
-import oracle.toplink.exceptions.TopLinkException;
-import oracle.toplink.sessions.Session;
-import org.easymock.MockControl;
-
-import org.springframework.transaction.support.TransactionSynchronizationManager;
-
-/**
- * @author Juergen Hoeller
- * @author James Clark
- * @since 28.04.2005
- */
-public class TopLinkTemplateTests extends TestCase {
-
- public void testTemplateNotAllowingCreate() {
- MockControl sessionControl = MockControl.createControl(Session.class);
- Session session = (Session) sessionControl.getMock();
-
- SessionFactory factory = new SingleSessionFactory(session);
-
- TopLinkTemplate template = new TopLinkTemplate();
- template.setAllowCreate(false);
- template.setSessionFactory(factory);
- try {
- template.execute(new TopLinkCallback() {
- public Object doInTopLink(Session session) throws TopLinkException {
- return null;
- }
- });
- fail();
- }
- catch (Exception e) {
- }
- }
-
- public void testTemplateWithCreate() {
- MockControl sessionControl = MockControl.createControl(Session.class);
- Session session = (Session) sessionControl.getMock();
-
- SessionFactory factory = new SingleSessionFactory(session);
-
- session.release();
- sessionControl.setVoidCallable(1);
-
- sessionControl.replay();
-
- TopLinkTemplate template = new TopLinkTemplate();
- template.setAllowCreate(true);
- template.setSessionFactory(factory);
- template.execute(new TopLinkCallback() {
- public Object doInTopLink(Session session) throws TopLinkException {
- assertTrue(session != null);
- return null;
- }
- });
- assertFalse(TransactionSynchronizationManager.hasResource(factory));
-
- sessionControl.verify();
- }
-
- public void testTemplateWithExistingSessionAndNoCreate() {
- MockControl sessionControl = MockControl.createControl(Session.class);
- Session session = (Session) sessionControl.getMock();
-
- SessionFactory factory = new SingleSessionFactory(session);
-
- sessionControl.replay();
-
- SessionHolder sessionHolder = new SessionHolder(factory.createSession());
- TransactionSynchronizationManager.bindResource(factory, sessionHolder);
-
- TopLinkTemplate template = new TopLinkTemplate();
- template.setAllowCreate(false);
- template.setSessionFactory(factory);
- template.execute(new TopLinkCallback() {
- public Object doInTopLink(Session session) throws TopLinkException {
- assertTrue(session != null);
- return null;
- }
- });
- assertTrue(TransactionSynchronizationManager.hasResource(factory));
- sessionControl.verify();
- TransactionSynchronizationManager.unbindResource(factory);
- }
-
- public void testTemplateWithExistingSessionAndCreateAllowed() {
- MockControl sessionControl = MockControl.createControl(Session.class);
- Session session = (Session) sessionControl.getMock();
-
- SessionFactory factory = new SingleSessionFactory(session);
-
- sessionControl.replay();
-
- SessionHolder sessionHolder = new SessionHolder(factory.createSession());
- TransactionSynchronizationManager.bindResource(factory, sessionHolder);
-
- TopLinkTemplate template = new TopLinkTemplate();
- template.setAllowCreate(true);
- template.setSessionFactory(factory);
- template.execute(new TopLinkCallback() {
- public Object doInTopLink(Session session) throws TopLinkException {
- assertTrue(session != null);
- return null;
- }
- });
- assertTrue(TransactionSynchronizationManager.hasResource(factory));
- sessionControl.verify();
- TransactionSynchronizationManager.unbindResource(factory);
- }
-}
diff --git a/org.springframework.testsuite/src/test/java/org/springframework/orm/toplink/TopLinkTransactionManagerTests.java b/org.springframework.testsuite/src/test/java/org/springframework/orm/toplink/TopLinkTransactionManagerTests.java
deleted file mode 100644
index 0b97b6654b..0000000000
--- a/org.springframework.testsuite/src/test/java/org/springframework/orm/toplink/TopLinkTransactionManagerTests.java
+++ /dev/null
@@ -1,496 +0,0 @@
-/*
- * Created on Mar 20, 2005
- *
- */
-
-package org.springframework.orm.toplink;
-
-import java.util.ArrayList;
-import java.util.List;
-
-import junit.framework.TestCase;
-import oracle.toplink.sessions.Session;
-import oracle.toplink.sessions.UnitOfWork;
-import org.easymock.MockControl;
-
-import org.springframework.jdbc.support.SQLStateSQLExceptionTranslator;
-import org.springframework.transaction.PlatformTransactionManager;
-import org.springframework.transaction.TransactionDefinition;
-import org.springframework.transaction.TransactionStatus;
-import org.springframework.transaction.UnexpectedRollbackException;
-import org.springframework.transaction.support.TransactionCallback;
-import org.springframework.transaction.support.TransactionSynchronizationManager;
-import org.springframework.transaction.support.TransactionTemplate;
-
-/**
- * @author Juergen Hoeller
- * @author James Clark
- * @since 28.04.2005
- */
-public class TopLinkTransactionManagerTests extends TestCase {
-
- public void testTransactionCommit() {
- MockControl sessionControl = MockControl.createControl(Session.class);
- final Session session = (Session) sessionControl.getMock();
- MockControl uowControl = MockControl.createControl(UnitOfWork.class);
- UnitOfWork uow = (UnitOfWork) uowControl.getMock();
-
- final SessionFactory sf = new MockSessionFactory(session);
-
- // during commit, TM must get the active UnitOfWork
- session.getActiveUnitOfWork();
- sessionControl.setReturnValue(uow, 2);
- uow.beginEarlyTransaction();
- uowControl.setVoidCallable(1);
- uow.commit();
- uowControl.setVoidCallable();
- // session should be released when it was bound explicitly by the TM
- session.release();
- sessionControl.setVoidCallable();
-
- sessionControl.replay();
- uowControl.replay();
-
- TopLinkTransactionManager tm = new TopLinkTransactionManager();
- tm.setJdbcExceptionTranslator(new SQLStateSQLExceptionTranslator());
- tm.setSessionFactory(sf);
- TransactionTemplate tt = new TransactionTemplate(tm);
- tt.setIsolationLevel(TransactionDefinition.ISOLATION_SERIALIZABLE);
- tt.setTimeout(10);
- assertTrue("Hasn't thread session", !TransactionSynchronizationManager.hasResource(sf));
- assertTrue("JTA synchronizations not active", !TransactionSynchronizationManager.isSynchronizationActive());
-
- Object result = tt.execute(new TransactionCallback() {
- public Object doInTransaction(TransactionStatus status) {
- assertTrue("Has thread session", TransactionSynchronizationManager.hasResource(sf));
- TopLinkTemplate template = new TopLinkTemplate(sf);
- return template.execute(new TopLinkCallback() {
- public Object doInTopLink(Session session) {
- return null;
- }
- });
- }
- });
- assertTrue("Hasn't thread session", !TransactionSynchronizationManager.hasResource(sf));
- assertTrue("JTA synchronizations not active", !TransactionSynchronizationManager.isSynchronizationActive());
- sessionControl.verify();
- uowControl.verify();
- }
-
- public void testTransactionRollback() {
- MockControl sessionControl = MockControl.createControl(Session.class);
- final Session session = (Session) sessionControl.getMock();
- MockControl uowControl = MockControl.createControl(UnitOfWork.class);
- UnitOfWork uow = (UnitOfWork) uowControl.getMock();
-
- final SessionFactory sf = new MockSessionFactory(session);
-
- session.getActiveUnitOfWork();
- sessionControl.setReturnValue(uow, 1);
- uow.beginEarlyTransaction();
- uowControl.setVoidCallable(1);
- session.release();
- sessionControl.setVoidCallable(1);
-
- sessionControl.replay();
- uowControl.replay();
-
- TopLinkTransactionManager tm = new TopLinkTransactionManager();
- tm.setSessionFactory(sf);
- tm.setJdbcExceptionTranslator(new SQLStateSQLExceptionTranslator());
- TransactionTemplate tt = new TransactionTemplate(tm);
- tt.setIsolationLevel(TransactionDefinition.ISOLATION_SERIALIZABLE);
- tt.setTimeout(10);
- assertTrue("Hasn't thread session", !TransactionSynchronizationManager.hasResource(sf));
- assertTrue("JTA synchronizations not active", !TransactionSynchronizationManager.isSynchronizationActive());
-
- try {
- Object result = tt.execute(new TransactionCallback() {
- public Object doInTransaction(TransactionStatus status) {
- assertTrue("Has thread session", TransactionSynchronizationManager.hasResource(sf));
- TopLinkTemplate template = new TopLinkTemplate(sf);
- return template.execute(new TopLinkCallback() {
- public Object doInTopLink(Session session) {
- throw new RuntimeException("failure");
- }
- });
- }
- });
- fail("Should have propagated RuntimeException");
- }
- catch (RuntimeException ex) {
- assertTrue(ex.getMessage().equals("failure"));
- }
- assertTrue("Hasn't thread session", !TransactionSynchronizationManager.hasResource(sf));
- assertTrue("JTA synchronizations not active", !TransactionSynchronizationManager.isSynchronizationActive());
-
- sessionControl.verify();
- uowControl.verify();
- }
-
- public void testTransactionRollbackOnly() {
- MockControl sessionControl = MockControl.createControl(Session.class);
- final Session session = (Session) sessionControl.getMock();
-
- final SessionFactory sf = new MockSessionFactory(session);
- session.release();
- sessionControl.setVoidCallable();
- sessionControl.replay();
-
- TopLinkTransactionManager tm = new TopLinkTransactionManager();
- tm.setSessionFactory(sf);
- tm.setLazyDatabaseTransaction(true);
- tm.setJdbcExceptionTranslator(new SQLStateSQLExceptionTranslator());
- TransactionTemplate tt = new TransactionTemplate(tm);
- tt.setIsolationLevel(TransactionDefinition.ISOLATION_SERIALIZABLE);
- tt.setTimeout(10);
- assertTrue("Hasn't thread session", !TransactionSynchronizationManager.hasResource(sf));
- assertTrue("JTA synchronizations not active", !TransactionSynchronizationManager.isSynchronizationActive());
-
- Object result = tt.execute(new TransactionCallback() {
- public Object doInTransaction(TransactionStatus status) {
- assertTrue("Has thread session",
- TransactionSynchronizationManager.hasResource(sf));
- TopLinkTemplate template = new TopLinkTemplate(sf);
- template.execute(new TopLinkCallback() {
- public Object doInTopLink(Session session) {
- return null;
- }
- });
- status.setRollbackOnly();
- return null;
- }
- });
- assertTrue("Hasn't thread session", !TransactionSynchronizationManager.hasResource(sf));
- assertTrue("JTA synchronizations not active", !TransactionSynchronizationManager.isSynchronizationActive());
- sessionControl.verify();
- }
-
- public void testParticipatingTransactionWithCommit() {
- MockControl sessionControl = MockControl.createControl(Session.class);
- final Session session = (Session) sessionControl.getMock();
- MockControl uowControl = MockControl.createControl(UnitOfWork.class);
- UnitOfWork uow = (UnitOfWork) uowControl.getMock();
-
- final SessionFactory sf = new MockSessionFactory(session);
-
- session.getActiveUnitOfWork();
- sessionControl.setReturnValue(uow, 2);
- uow.beginEarlyTransaction();
- uowControl.setVoidCallable(1);
- uow.commit();
- uowControl.setVoidCallable();
- session.release();
- sessionControl.setVoidCallable();
-
- sessionControl.replay();
- uowControl.replay();
-
- PlatformTransactionManager tm = new TopLinkTransactionManager(sf);
- final TransactionTemplate tt = new TransactionTemplate(tm);
-
- Object result = tt.execute(new TransactionCallback() {
- public Object doInTransaction(TransactionStatus status) {
- return tt.execute(new TransactionCallback() {
- public Object doInTransaction(TransactionStatus status) {
- TopLinkTemplate ht = new TopLinkTemplate(sf);
- return ht.executeFind(new TopLinkCallback() {
- public Object doInTopLink(Session injectedSession) {
- assertTrue(session == injectedSession);
- return null;
- }
- });
- }
- });
- }
- });
-
- sessionControl.verify();
- uowControl.verify();
- }
-
- public void testParticipatingTransactionWithRollback() {
- MockControl sessionControl = MockControl.createControl(Session.class);
- final Session session = (Session) sessionControl.getMock();
-
- final SessionFactory sf = new MockSessionFactory(session);
-
- session.release();
- sessionControl.setVoidCallable();
-
- sessionControl.replay();
-
- TopLinkTransactionManager tm = new TopLinkTransactionManager(sf);
- tm.setLazyDatabaseTransaction(true);
- final TransactionTemplate tt = new TransactionTemplate(tm);
- try {
- tt.execute(new TransactionCallback() {
- public Object doInTransaction(TransactionStatus status) {
- return tt.execute(new TransactionCallback() {
- public Object doInTransaction(TransactionStatus status) {
- TopLinkTemplate ht = new TopLinkTemplate(sf);
- return ht.executeFind(new TopLinkCallback() {
- public Object doInTopLink(Session session) {
- throw new RuntimeException("application exception");
- }
- });
- }
- });
- }
- });
- fail("Should not thrown RuntimeException");
- }
- catch (RuntimeException ex) {
- assertTrue(ex.getMessage().equals("application exception"));
- }
- sessionControl.verify();
- }
-
- public void testParticipatingTransactionWithRollbackOnly() {
- MockControl sessionControl = MockControl.createControl(Session.class);
- final Session session = (Session) sessionControl.getMock();
- final SessionFactory sf = new MockSessionFactory(session);
-
- session.release();
- sessionControl.setVoidCallable();
-
- sessionControl.replay();
-
- TopLinkTransactionManager tm = new TopLinkTransactionManager(sf);
- tm.setLazyDatabaseTransaction(true);
- final TransactionTemplate tt = new TransactionTemplate(tm);
-
- try {
- tt.execute(new TransactionCallback() {
- public Object doInTransaction(TransactionStatus status) {
- tt.execute(new TransactionCallback() {
- public Object doInTransaction(TransactionStatus status) {
- TopLinkTemplate ht = new TopLinkTemplate(sf);
- ht.execute(new TopLinkCallback() {
- public Object doInTopLink(Session session) {
- return null;
- }
- });
- status.setRollbackOnly();
- return null;
- }
- });
- return null;
- }
- });
- fail("Should have thrown UnexpectedRollbackException");
- }
- catch (UnexpectedRollbackException ex) {
- // expected
- }
-
- sessionControl.verify();
- }
-
- public void testParticipatingTransactionWithWithRequiresNew() {
- MockControl session1Control = MockControl.createControl(Session.class);
- final Session session1 = (Session) session1Control.getMock();
- MockControl session2Control = MockControl.createControl(Session.class);
- final Session session2 = (Session) session2Control.getMock();
-
- MockControl uow1Control = MockControl.createControl(UnitOfWork.class);
- UnitOfWork uow1 = (UnitOfWork) uow1Control.getMock();
- MockControl uow2Control = MockControl.createControl(UnitOfWork.class);
- UnitOfWork uow2 = (UnitOfWork) uow2Control.getMock();
-
- final MockSessionFactory sf = new MockSessionFactory(session1);
-
- session2.getActiveUnitOfWork();
- session2Control.setReturnValue(uow2, 2);
- uow2.beginEarlyTransaction();
- uow2Control.setVoidCallable(1);
- uow2.commit();
- uow2Control.setVoidCallable();
- session2.release();
- session2Control.setVoidCallable();
-
- session1.getActiveUnitOfWork();
- session1Control.setReturnValue(uow1, 2);
- uow1.beginEarlyTransaction();
- uow1Control.setVoidCallable(1);
- uow1.commit();
- uow1Control.setVoidCallable();
- session1.release();
- session1Control.setVoidCallable();
-
- session1Control.replay();
- uow1Control.replay();
- session2Control.replay();
- uow2Control.replay();
-
- PlatformTransactionManager tm = new TopLinkTransactionManager(sf);
- final TransactionTemplate tt = new TransactionTemplate(tm);
- tt.setPropagationBehavior(TransactionDefinition.PROPAGATION_REQUIRES_NEW);
-
- assertTrue("Hasn't thread session", !TransactionSynchronizationManager.hasResource(sf));
- tt.execute(new TransactionCallback() {
- public Object doInTransaction(TransactionStatus status) {
- final SessionHolder holder = (SessionHolder) TransactionSynchronizationManager.getResource(sf);
- assertTrue("Has thread session", holder != null);
- sf.setSession(session2);
- tt.execute(new TransactionCallback() {
- public Object doInTransaction(TransactionStatus status) {
- TopLinkTemplate ht = new TopLinkTemplate(sf);
- return ht.execute(new TopLinkCallback() {
- public Object doInTopLink(Session session) {
- assertTrue("Not enclosing session", session != holder.getSession());
- return null;
- }
- });
- }
- });
- assertTrue("Same thread session as before",
- holder.getSession() == SessionFactoryUtils.getSession(sf, false));
- return null;
- }
- });
- assertTrue("Hasn't thread session", !TransactionSynchronizationManager.hasResource(sf));
-
- session1Control.verify();
- session2Control.verify();
- uow1Control.verify();
- uow2Control.verify();
- }
-
- public void testParticipatingTransactionWithWithNotSupported() {
- MockControl sessionControl = MockControl.createControl(Session.class);
- final Session session = (Session) sessionControl.getMock();
- MockControl uowControl = MockControl.createControl(UnitOfWork.class);
- UnitOfWork uow = (UnitOfWork) uowControl.getMock();
-
- final SessionFactory sf = new MockSessionFactory(session);
-
- session.getActiveUnitOfWork();
- sessionControl.setReturnValue(uow, 2);
- uow.beginEarlyTransaction();
- uowControl.setVoidCallable(1);
- uow.commit();
- uowControl.setVoidCallable();
- session.release();
- sessionControl.setVoidCallable(2);
-
- sessionControl.replay();
- uowControl.replay();
-
- TopLinkTransactionManager tm = new TopLinkTransactionManager(sf);
- final TransactionTemplate tt = new TransactionTemplate(tm);
- tt.setPropagationBehavior(TransactionDefinition.PROPAGATION_REQUIRES_NEW);
-
- assertTrue("Hasn't thread session", !TransactionSynchronizationManager.hasResource(sf));
- tt.execute(new TransactionCallback() {
- public Object doInTransaction(TransactionStatus status) {
- SessionHolder holder = (SessionHolder) TransactionSynchronizationManager.getResource(sf);
- assertTrue("Has thread session", holder != null);
- tt.setPropagationBehavior(TransactionDefinition.PROPAGATION_NOT_SUPPORTED);
- tt.execute(new TransactionCallback() {
- public Object doInTransaction(TransactionStatus status) {
- assertTrue("Hasn't thread session", !TransactionSynchronizationManager.hasResource(sf));
- TopLinkTemplate ht = new TopLinkTemplate(sf);
-
- return ht.execute(new TopLinkCallback() {
- public Object doInTopLink(Session session) {
- return null;
- }
- });
- }
- });
- assertTrue("Same thread session as before", holder.getSession() == SessionFactoryUtils.getSession(sf, false));
- return null;
- }
- });
- assertTrue("Hasn't thread session", !TransactionSynchronizationManager.hasResource(sf));
-
- sessionControl.verify();
- uowControl.verify();
- }
-
- public void testTransactionWithPropagationSupports() {
- MockControl sessionControl = MockControl.createControl(Session.class);
- final Session session = (Session) sessionControl.getMock();
-
- final SessionFactory sf = new MockSessionFactory(session);
-
- // not a new transaction, won't start a new one
- session.release();
- sessionControl.setVoidCallable();
-
- sessionControl.replay();
-
- PlatformTransactionManager tm = new TopLinkTransactionManager(sf);
- TransactionTemplate tt = new TransactionTemplate(tm);
- tt.setPropagationBehavior(TransactionDefinition.PROPAGATION_SUPPORTS);
- assertTrue("Hasn't thread session", !TransactionSynchronizationManager.hasResource(sf));
-
- tt.execute(new TransactionCallback() {
- public Object doInTransaction(TransactionStatus status) {
- assertTrue("Hasn't thread session", !TransactionSynchronizationManager.hasResource(sf));
- assertTrue("Is not new transaction", !status.isNewTransaction());
- TopLinkTemplate ht = new TopLinkTemplate(sf);
- ht.execute(new TopLinkCallback() {
- public Object doInTopLink(Session session) {
- return null;
- }
- });
- assertTrue("Has thread session", TransactionSynchronizationManager.hasResource(sf));
- return null;
- }
- });
-
- assertTrue("Hasn't thread session", !TransactionSynchronizationManager.hasResource(sf));
- sessionControl.verify();
- }
-
- public void testTransactionCommitWithReadOnly() {
- MockControl sessionControl = MockControl.createControl(Session.class);
- final Session session = (Session) sessionControl.getMock();
- MockControl uowControl = MockControl.createControl(UnitOfWork.class);
- UnitOfWork uow = (UnitOfWork) uowControl.getMock();
-
- final SessionFactory sf = new MockSessionFactory(session);
-
- session.release();
- sessionControl.setVoidCallable();
-
- sessionControl.replay();
- uowControl.replay();
-
- TopLinkTransactionManager tm = new TopLinkTransactionManager(sf);
- TransactionTemplate tt = new TransactionTemplate(tm);
- tt.setReadOnly(true);
- final List l = new ArrayList();
- l.add("test");
- assertTrue("Hasn't thread session", !TransactionSynchronizationManager.hasResource(sf));
- assertTrue("JTA synchronizations not active", !TransactionSynchronizationManager.isSynchronizationActive());
-
- Object result = tt.execute(new TransactionCallback() {
- public Object doInTransaction(TransactionStatus status) {
- assertTrue("Has thread session", TransactionSynchronizationManager.hasResource(sf));
- TopLinkTemplate ht = new TopLinkTemplate(sf);
- return ht.executeFind(new TopLinkCallback() {
- public Object doInTopLink(Session session) {
- return l;
- }
- });
- }
- });
- assertTrue("Correct result list", result == l);
-
- assertTrue("Hasn't thread session", !TransactionSynchronizationManager.hasResource(sf));
- assertTrue("JTA synchronizations not active", !TransactionSynchronizationManager.isSynchronizationActive());
- sessionControl.verify();
- uowControl.verify();
- }
-
- protected void tearDown() {
- assertTrue(TransactionSynchronizationManager.getResourceMap().isEmpty());
- assertFalse(TransactionSynchronizationManager.isSynchronizationActive());
- assertFalse(TransactionSynchronizationManager.isCurrentTransactionReadOnly());
- assertFalse(TransactionSynchronizationManager.isActualTransactionActive());
- }
-
-}