diff --git a/spring-test/src/main/java/org/springframework/test/annotation/IfProfileValue.java b/spring-test/src/main/java/org/springframework/test/annotation/IfProfileValue.java
index c5c718468d6..04b8a1b8e00 100644
--- a/spring-test/src/main/java/org/springframework/test/annotation/IfProfileValue.java
+++ b/spring-test/src/main/java/org/springframework/test/annotation/IfProfileValue.java
@@ -1,5 +1,5 @@
/*
- * Copyright 2002-2012 the original author or authors.
+ * Copyright 2002-2013 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.
@@ -68,7 +68,6 @@ import java.lang.annotation.Target;
* @see ProfileValueSource
* @see ProfileValueSourceConfiguration
* @see ProfileValueUtils
- * @see org.springframework.test.context.junit38.AbstractJUnit38SpringContextTests
* @see org.springframework.test.context.junit4.AbstractJUnit4SpringContextTests
* @see org.springframework.test.context.junit4.SpringJUnit4ClassRunner
*/
diff --git a/spring-test/src/main/java/org/springframework/test/context/junit38/AbstractJUnit38SpringContextTests.java b/spring-test/src/main/java/org/springframework/test/context/junit38/AbstractJUnit38SpringContextTests.java
deleted file mode 100644
index 732c1e0bf5f..00000000000
--- a/spring-test/src/main/java/org/springframework/test/context/junit38/AbstractJUnit38SpringContextTests.java
+++ /dev/null
@@ -1,399 +0,0 @@
-/*
- * Copyright 2002-2012 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.test.context.junit38;
-
-import java.lang.reflect.Method;
-import java.lang.reflect.Modifier;
-
-import junit.framework.AssertionFailedError;
-import junit.framework.TestCase;
-
-import org.apache.commons.logging.Log;
-import org.apache.commons.logging.LogFactory;
-import org.springframework.context.ApplicationContext;
-import org.springframework.context.ApplicationContextAware;
-import org.springframework.test.annotation.ExpectedException;
-import org.springframework.test.annotation.IfProfileValue;
-import org.springframework.test.annotation.ProfileValueSource;
-import org.springframework.test.annotation.ProfileValueUtils;
-import org.springframework.test.annotation.Repeat;
-import org.springframework.test.annotation.Timed;
-import org.springframework.test.context.TestContextManager;
-import org.springframework.test.context.TestExecutionListeners;
-import org.springframework.test.context.support.DependencyInjectionTestExecutionListener;
-import org.springframework.test.context.support.DirtiesContextTestExecutionListener;
-
-/**
- *
- * Abstract base {@link TestCase} which integrates the Spring TestContext
- * Framework and explicit {@link ApplicationContext} testing support in a
- * JUnit 3.8 environment.
- *
- *
- * Concrete subclasses:
- *
- *
- *
Typically declare a class-level
- * {@link org.springframework.test.context.ContextConfiguration
- * @ContextConfiguration} annotation to configure the
- * {@link ApplicationContext application context}
- * {@link org.springframework.test.context.ContextConfiguration#locations()
- * resource locations}. If your test does not need to load an application
- * context, you may choose to omit the
- * {@link org.springframework.test.context.ContextConfiguration
- * @ContextConfiguration} declaration and configure the appropriate
- * {@link org.springframework.test.context.TestExecutionListener
- * TestExecutionListeners} manually.
- *
Must declare public constructors which match the signatures of
- * {@link #AbstractJUnit38SpringContextTests()
- * AbstractJUnit38SpringContextTests()} and
- * {@link #AbstractJUnit38SpringContextTests(String)
- * AbstractJUnit38SpringContextTests(String)} and delegate to
- * {@code super();} and {@code super(name);} respectively.
- *
- *
- * The following list constitutes all annotations currently supported directly
- * by {@code AbstractJUnit38SpringContextTests}. (Note that additional
- * annotations may be supported by various
- * {@link org.springframework.test.context.TestExecutionListener
- * TestExecutionListeners})
- *
- *
- *
{@link org.springframework.test.annotation.DirtiesContext
- * @DirtiesContext} (via the configured
- * {@link DirtiesContextTestExecutionListener}; only supported on methods for
- * JUnit 3.8)
- * JUnit 3.8 does not support before class or after class
- * lifecycle callbacks. The following
- * {@link org.springframework.test.context.TestExecutionListener
- * TestExecutionListener} methods are therefore unsupported in a JUnit 3.8
- * environment:
- *
- *
- * @author Sam Brannen
- * @author Juergen Hoeller
- * @since 2.5
- * @see org.springframework.test.context.TestContext
- * @see org.springframework.test.context.TestContextManager
- * @see org.springframework.test.context.TestExecutionListeners
- * @see AbstractTransactionalJUnit38SpringContextTests
- * @see org.springframework.test.context.junit4.AbstractJUnit4SpringContextTests
- * @see org.springframework.test.context.testng.AbstractTestNGSpringContextTests
- * @deprecated as of Spring 3.1, in favor of using
- * {@link org.springframework.test.context.junit4.AbstractJUnit4SpringContextTests AbstractJUnit4SpringContextTests}
- */
-@Deprecated
-@TestExecutionListeners( { DependencyInjectionTestExecutionListener.class, DirtiesContextTestExecutionListener.class })
-public abstract class AbstractJUnit38SpringContextTests extends TestCase implements ApplicationContextAware {
-
- private static int disabledTestCount = 0;
-
-
- /**
- * Return the number of tests disabled in this environment.
- */
- public static int getDisabledTestCount() {
- return disabledTestCount;
- }
-
-
- /**
- * Logger available to subclasses.
- */
- protected final Log logger = LogFactory.getLog(getClass());
-
- /**
- * The {@link ApplicationContext} that was injected into this test instance
- * via {@link #setApplicationContext(ApplicationContext)}.
- */
- protected ApplicationContext applicationContext;
-
- /**
- * {@link ProfileValueSource} available to subclasses but primarily intended
- * for internal use to provide support for {@link IfProfileValue
- * @IfProfileValue}.
- */
- protected final ProfileValueSource profileValueSource;
-
- private final TestContextManager testContextManager;
-
-
- /**
- * Constructs a new AbstractJUnit38SpringContextTests instance; initializes
- * the internal {@link TestContextManager} for the current test; and
- * retrieves the configured (or default) {@link ProfileValueSource}.
- */
- public AbstractJUnit38SpringContextTests() {
- super();
- this.testContextManager = new TestContextManager(getClass());
- this.profileValueSource = ProfileValueUtils.retrieveProfileValueSource(getClass());
- }
-
- /**
- * Constructs a new AbstractJUnit38SpringContextTests instance with the
- * supplied {@code name}; initializes the internal
- * {@link TestContextManager} for the current test; and retrieves the
- * configured (or default) {@link ProfileValueSource}.
- *
- * @param name the name of the current test to execute
- */
- public AbstractJUnit38SpringContextTests(String name) {
- super(name);
- this.testContextManager = new TestContextManager(getClass());
- this.profileValueSource = ProfileValueUtils.retrieveProfileValueSource(getClass());
- }
-
- /**
- * Sets the {@link ApplicationContext} to be used by this test instance,
- * provided via {@link ApplicationContextAware} semantics.
- */
- public final void setApplicationContext(final ApplicationContext applicationContext) {
- this.applicationContext = applicationContext;
- }
-
- /**
- * Runs the Spring TestContext Framework test sequence.
- *
- * In addition to standard {@link TestCase#runBare()} semantics, this
- * implementation performs the following:
- *
- *
Calls {@link TestContextManager#prepareTestInstance(Object)
- * prepareTestInstance()},
- * {@link TestContextManager#beforeTestMethod(Object,Method)
- * beforeTestMethod()}, and
- * {@link TestContextManager#afterTestMethod(Object,Method,Throwable)
- * afterTestMethod()} on this test's {@link TestContextManager} at the
- * appropriate test execution points.
- *
Provides support for {@link IfProfileValue @IfProfileValue}.
- *
Provides support for {@link Repeat @Repeat}.
- *
Provides support for {@link Timed @Timed}.
- *
Provides support for {@link ExpectedException
- * @ExpectedException}.
- *
- *
- * @see ProfileValueUtils#isTestEnabledInThisEnvironment
- */
- @Override
- public void runBare() throws Throwable {
- this.testContextManager.prepareTestInstance(this);
- final Method testMethod = getTestMethod();
-
- if (!ProfileValueUtils.isTestEnabledInThisEnvironment(this.profileValueSource, testMethod, getClass())) {
- recordDisabled(testMethod);
- return;
- }
-
- runTestTimed(new TestExecutionCallback() {
-
- public void run() throws Throwable {
- runManaged(testMethod);
- }
- }, testMethod);
- }
-
- /**
- * Get the current test method.
- */
- private Method getTestMethod() {
- assertNotNull("TestCase.getName() cannot be null", getName());
- Method testMethod = null;
- try {
- testMethod = getClass().getMethod(getName(), (Class[]) null);
- }
- catch (NoSuchMethodException ex) {
- fail("Method \"" + getName() + "\" not found");
- }
- if (!Modifier.isPublic(testMethod.getModifiers())) {
- fail("Method \"" + getName() + "\" should be public");
- }
- return testMethod;
- }
-
- /**
- * Runs a timed test via the supplied {@link TestExecutionCallback}
- * , providing support for the {@link Timed @Timed} annotation.
- *
- * @param tec the test execution callback to run
- * @param testMethod the actual test method: used to retrieve the
- * {@code timeout}
- * @throws Throwable if any exception is thrown
- * @see Timed
- * @see #runTest
- */
- private void runTestTimed(TestExecutionCallback tec, Method testMethod) throws Throwable {
- Timed timed = testMethod.getAnnotation(Timed.class);
- if (timed == null) {
- runTest(tec, testMethod);
- }
- else {
- long startTime = System.currentTimeMillis();
- try {
- runTest(tec, testMethod);
- }
- finally {
- long elapsed = System.currentTimeMillis() - startTime;
- if (elapsed > timed.millis()) {
- fail("Took " + elapsed + " ms; limit was " + timed.millis());
- }
- }
- }
- }
-
- /**
- * Runs a test via the supplied {@link TestExecutionCallback}, providing
- * support for the {@link ExpectedException @ExpectedException} and
- * {@link Repeat @Repeat} annotations.
- *
- * @param tec the test execution callback to run
- * @param testMethod the actual test method: used to retrieve the
- * {@link ExpectedException @ExpectedException} and {@link Repeat
- * @Repeat} annotations
- * @throws Throwable if any exception is thrown
- * @see ExpectedException
- * @see Repeat
- */
- private void runTest(TestExecutionCallback tec, Method testMethod) throws Throwable {
- ExpectedException expectedExceptionAnnotation = testMethod.getAnnotation(ExpectedException.class);
- boolean exceptionIsExpected = (expectedExceptionAnnotation != null && expectedExceptionAnnotation.value() != null);
- Class extends Throwable> expectedException = (exceptionIsExpected ? expectedExceptionAnnotation.value()
- : null);
-
- Repeat repeat = testMethod.getAnnotation(Repeat.class);
- int runs = ((repeat != null) && (repeat.value() > 1)) ? repeat.value() : 1;
-
- for (int i = 0; i < runs; i++) {
- try {
- if (runs > 1 && this.logger.isInfoEnabled()) {
- this.logger.info("Repetition " + (i + 1) + " of test " + testMethod.getName());
- }
- tec.run();
- if (exceptionIsExpected) {
- fail("Expected exception: " + expectedException.getName());
- }
- }
- catch (Throwable ex) {
- if (!exceptionIsExpected) {
- throw ex;
- }
- if (!expectedException.isAssignableFrom(ex.getClass())) {
- // Wrap the unexpected throwable with an explicit message.
- AssertionFailedError assertionError = new AssertionFailedError("Unexpected exception, expected <"
- + expectedException.getName() + "> but was <" + ex.getClass().getName() + ">");
- assertionError.initCause(ex);
- throw assertionError;
- }
- }
- }
- }
-
- /**
- * Calls {@link TestContextManager#beforeTestMethod(Object,Method)} and
- * {@link TestContextManager#afterTestMethod(Object,Method,Throwable)} at
- * the appropriate test execution points.
- *
- * @param testMethod the test method to run
- * @throws Throwable if any exception is thrown
- * @see #runBare()
- * @see TestCase#runTest()
- */
- private void runManaged(Method testMethod) throws Throwable {
- Throwable exception = null;
- boolean reachedTest = false;
-
- try {
- this.testContextManager.beforeTestMethod(this, testMethod);
- setUp();
- reachedTest = true;
- runTest();
- }
- catch (Throwable ex) {
- exception = ex;
- }
- finally {
- try {
- if (reachedTest) {
- tearDown();
- }
- }
- catch (Throwable ex) {
- if (exception == null) {
- exception = ex;
- }
- }
- finally {
- try {
- this.testContextManager.afterTestMethod(this, testMethod, exception);
- }
- catch (Throwable ex) {
- if (exception == null) {
- exception = ex;
- }
- }
- }
- }
-
- if (exception != null) {
- if (exception.getCause() instanceof AssertionError) {
- exception = exception.getCause();
- }
- throw exception;
- }
- }
-
- /**
- * Records the supplied test method as disabled in the current
- * environment by incrementing the total number of disabled tests and
- * logging a debug message.
- *
- * @param testMethod the test method that is disabled.
- * @see #getDisabledTestCount()
- */
- protected void recordDisabled(Method testMethod) {
- disabledTestCount++;
- if (this.logger.isInfoEnabled()) {
- this.logger.info("**** " + getClass().getName() + "." + getName() + "() is disabled in this environment. "
- + "Total disabled tests = " + getDisabledTestCount());
- }
- }
-
-
- /**
- * Private inner class that defines a callback analogous to {@link Runnable}
- * , just declaring Throwable.
- */
- private static interface TestExecutionCallback {
-
- void run() throws Throwable;
- }
-
-}
diff --git a/spring-test/src/main/java/org/springframework/test/context/junit38/AbstractTransactionalJUnit38SpringContextTests.java b/spring-test/src/main/java/org/springframework/test/context/junit38/AbstractTransactionalJUnit38SpringContextTests.java
deleted file mode 100644
index 9b7fd03ec70..00000000000
--- a/spring-test/src/main/java/org/springframework/test/context/junit38/AbstractTransactionalJUnit38SpringContextTests.java
+++ /dev/null
@@ -1,158 +0,0 @@
-/*
- * Copyright 2002-2012 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.test.context.junit38;
-
-import javax.sql.DataSource;
-
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.context.ApplicationContext;
-import org.springframework.core.io.Resource;
-import org.springframework.core.io.support.EncodedResource;
-import org.springframework.dao.DataAccessException;
-import org.springframework.jdbc.core.simple.SimpleJdbcTemplate;
-import org.springframework.test.context.TestExecutionListeners;
-import org.springframework.test.context.transaction.TransactionalTestExecutionListener;
-import org.springframework.test.jdbc.SimpleJdbcTestUtils;
-import org.springframework.transaction.PlatformTransactionManager;
-import org.springframework.transaction.annotation.Transactional;
-
-/**
- *
- * Abstract {@link Transactional transactional} extension of
- * {@link AbstractJUnit38SpringContextTests} which adds convenience
- * functionality for JDBC access. Expects a {@link javax.sql.DataSource} bean
- * and a {@link PlatformTransactionManager} bean to be defined in the Spring
- * {@link ApplicationContext application context}.
- *
- *
- * This class exposes a {@link SimpleJdbcTemplate} and provides an easy way to
- * {@link #countRowsInTable(String) count the number of rows in a table} ,
- * {@link #deleteFromTables(String...) delete from the database} , and
- * {@link #executeSqlScript(String, boolean) execute SQL scripts} within a
- * transaction.
- *
- *
- * Concrete subclasses must fulfill the same requirements outlined in
- * {@link AbstractJUnit38SpringContextTests}.
- *
- *
- * @author Sam Brannen
- * @author Juergen Hoeller
- * @since 2.5
- * @see AbstractJUnit38SpringContextTests
- * @see org.springframework.test.context.ContextConfiguration
- * @see org.springframework.test.context.TestExecutionListeners
- * @see org.springframework.test.context.transaction.TransactionalTestExecutionListener
- * @see org.springframework.test.context.transaction.TransactionConfiguration
- * @see org.springframework.transaction.annotation.Transactional
- * @see org.springframework.test.annotation.NotTransactional
- * @see org.springframework.test.annotation.Rollback
- * @see org.springframework.test.context.transaction.BeforeTransaction
- * @see org.springframework.test.context.transaction.AfterTransaction
- * @see org.springframework.test.jdbc.SimpleJdbcTestUtils
- * @see org.springframework.test.context.junit4.AbstractTransactionalJUnit4SpringContextTests
- * @see org.springframework.test.context.testng.AbstractTransactionalTestNGSpringContextTests
- * @deprecated as of Spring 3.1, in favor of using
- * {@link org.springframework.test.context.junit4.AbstractTransactionalJUnit4SpringContextTests AbstractTransactionalJUnit4SpringContextTests}
- */
-@Deprecated
-@TestExecutionListeners(TransactionalTestExecutionListener.class)
-@Transactional
-public abstract class AbstractTransactionalJUnit38SpringContextTests extends AbstractJUnit38SpringContextTests {
-
- /**
- * The SimpleJdbcTemplate that this base class manages, available to subclasses.
- */
- protected SimpleJdbcTemplate simpleJdbcTemplate;
-
- private String sqlScriptEncoding;
-
-
- /**
- * Constructs a new AbstractTransactionalJUnit38SpringContextTests instance.
- */
- public AbstractTransactionalJUnit38SpringContextTests() {
- super();
- }
-
- /**
- * Constructs a new AbstractTransactionalJUnit38SpringContextTests instance
- * with the supplied {@code name}.
- * @param name the name of the current test to execute
- */
- public AbstractTransactionalJUnit38SpringContextTests(String name) {
- super(name);
- }
-
-
- /**
- * Set the DataSource, typically provided via Dependency Injection.
- * @param dataSource The DataSource to inject
- */
- @Autowired
- public void setDataSource(DataSource dataSource) {
- this.simpleJdbcTemplate = new SimpleJdbcTemplate(dataSource);
- }
-
- /**
- * Specify the encoding for SQL scripts, if different from the platform encoding.
- * @see #executeSqlScript
- */
- public void setSqlScriptEncoding(String sqlScriptEncoding) {
- this.sqlScriptEncoding = sqlScriptEncoding;
- }
-
-
- /**
- * Count the rows in the given table.
- * @param tableName table name to count rows in
- * @return the number of rows in the table
- */
- protected int countRowsInTable(String tableName) {
- return SimpleJdbcTestUtils.countRowsInTable(this.simpleJdbcTemplate, tableName);
- }
-
- /**
- * Convenience method for deleting all rows from the specified tables.
- * Use with caution outside of a transaction!
- * @param names the names of the tables from which to delete
- * @return the total number of rows deleted from all specified tables
- */
- protected int deleteFromTables(String... names) {
- return SimpleJdbcTestUtils.deleteFromTables(this.simpleJdbcTemplate, names);
- }
-
- /**
- * Execute the given SQL script. Use with caution outside of a transaction!
- *
The script will normally be loaded by classpath. There should be one statement
- * per line. Any semicolons will be removed. Do not use this method to execute
- * DDL if you expect rollback.
- * @param sqlResourcePath the Spring resource path for the SQL script
- * @param continueOnError whether or not to continue without throwing an
- * exception in the event of an error
- * @throws DataAccessException if there is an error executing a statement
- * and continueOnError was {@code false}
- */
- protected void executeSqlScript(String sqlResourcePath, boolean continueOnError)
- throws DataAccessException {
-
- Resource resource = this.applicationContext.getResource(sqlResourcePath);
- SimpleJdbcTestUtils.executeSqlScript(
- this.simpleJdbcTemplate, new EncodedResource(resource, this.sqlScriptEncoding), continueOnError);
- }
-
-}
diff --git a/spring-test/src/main/java/org/springframework/test/context/junit38/package-info.java b/spring-test/src/main/java/org/springframework/test/context/junit38/package-info.java
deleted file mode 100644
index 22ead8d5134..00000000000
--- a/spring-test/src/main/java/org/springframework/test/context/junit38/package-info.java
+++ /dev/null
@@ -1,7 +0,0 @@
-/**
- *
Support classes for ApplicationContext-based and transactional
- * tests run with JUnit 3.8 and the Spring TestContext Framework.
- */
-
-package org.springframework.test.context.junit38;
-
diff --git a/spring-test/src/test/java/org/springframework/test/context/junit38/ConcreteTransactionalJUnit38SpringContextTests-context.xml b/spring-test/src/test/java/org/springframework/test/context/junit38/ConcreteTransactionalJUnit38SpringContextTests-context.xml
deleted file mode 100644
index 9f2fdef412d..00000000000
--- a/spring-test/src/test/java/org/springframework/test/context/junit38/ConcreteTransactionalJUnit38SpringContextTests-context.xml
+++ /dev/null
@@ -1,33 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/spring-test/src/test/java/org/springframework/test/context/junit38/ConcreteTransactionalJUnit38SpringContextTests.java b/spring-test/src/test/java/org/springframework/test/context/junit38/ConcreteTransactionalJUnit38SpringContextTests.java
deleted file mode 100644
index 735f96a01f6..00000000000
--- a/spring-test/src/test/java/org/springframework/test/context/junit38/ConcreteTransactionalJUnit38SpringContextTests.java
+++ /dev/null
@@ -1,231 +0,0 @@
-/*
- * Copyright 2002-2013 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.test.context.junit38;
-
-import java.util.ArrayList;
-
-import javax.annotation.Resource;
-import javax.sql.DataSource;
-
-import org.junit.internal.runners.JUnit38ClassRunner;
-import org.junit.runner.RunWith;
-import org.springframework.tests.sample.beans.Employee;
-import org.springframework.tests.sample.beans.Pet;
-import org.springframework.beans.factory.BeanNameAware;
-import org.springframework.beans.factory.InitializingBean;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.jdbc.BadSqlGrammarException;
-import org.springframework.jdbc.core.simple.SimpleJdbcTemplate;
-import org.springframework.test.annotation.ExpectedException;
-import org.springframework.test.annotation.NotTransactional;
-import org.springframework.test.annotation.Timed;
-import org.springframework.test.context.ContextConfiguration;
-import org.springframework.test.context.transaction.AfterTransaction;
-import org.springframework.test.context.transaction.BeforeTransaction;
-import org.springframework.test.jdbc.SimpleJdbcTestUtils;
-
-/**
- * Combined integration test for {@link AbstractJUnit38SpringContextTests} and
- * {@link AbstractTransactionalJUnit38SpringContextTests}.
- *
- * @author Sam Brannen
- * @since 2.5
- */
-@SuppressWarnings("deprecation")
-@RunWith(JUnit38ClassRunner.class)
-@ContextConfiguration
-public class ConcreteTransactionalJUnit38SpringContextTests extends AbstractTransactionalJUnit38SpringContextTests
- implements BeanNameAware, InitializingBean {
-
- protected static final String BOB = "bob";
- protected static final String JANE = "jane";
- protected static final String SUE = "sue";
- protected static final String YODA = "yoda";
-
- private boolean beanInitialized = false;
-
- private String beanName = "replace me with [" + getClass().getName() + "]";
-
- private Employee employee;
-
- @Autowired
- private Pet pet;
-
- @Autowired(required = false)
- protected Long nonrequiredLong;
-
- @Resource()
- protected String foo;
-
- protected String bar;
-
- private boolean inTransaction = false;
-
-
- public ConcreteTransactionalJUnit38SpringContextTests() throws Exception {
- this(null);
- }
-
- public ConcreteTransactionalJUnit38SpringContextTests(final String name) throws Exception {
- super(name);
- }
-
- protected static int clearPersonTable(final SimpleJdbcTemplate simpleJdbcTemplate) {
- return SimpleJdbcTestUtils.deleteFromTables(simpleJdbcTemplate, "person");
- }
-
- protected static void createPersonTable(final SimpleJdbcTemplate simpleJdbcTemplate) {
- try {
- simpleJdbcTemplate.update("CREATE TABLE person (name VARCHAR(20) NOT NULL, PRIMARY KEY(name))");
- }
- catch (final BadSqlGrammarException bsge) {
- /* ignore */
- }
- }
-
- protected static int countRowsInPersonTable(final SimpleJdbcTemplate simpleJdbcTemplate) {
- return SimpleJdbcTestUtils.countRowsInTable(simpleJdbcTemplate, "person");
- }
-
- protected static int addPerson(final SimpleJdbcTemplate simpleJdbcTemplate, final String name) {
- return simpleJdbcTemplate.update("INSERT INTO person VALUES(?)", name);
- }
-
- protected static int deletePerson(final SimpleJdbcTemplate simpleJdbcTemplate, final String name) {
- return simpleJdbcTemplate.update("DELETE FROM person WHERE name=?", name);
- }
-
- @Override
- public final void afterPropertiesSet() throws Exception {
- this.beanInitialized = true;
- }
-
- @Override
- public final void setBeanName(final String beanName) {
- this.beanName = beanName;
- }
-
- @Autowired
- protected final void setEmployee(final Employee employee) {
- this.employee = employee;
- }
-
- @Resource
- protected final void setBar(final String bar) {
- this.bar = bar;
- }
-
- @NotTransactional
- @Timed(millis = 10000)
- public void testNoOpShouldNotTimeOut() throws Exception {
- /* no-op */
- }
-
- @NotTransactional
- @ExpectedException(IndexOutOfBoundsException.class)
- public void testExpectedExceptionAnnotation() {
- new ArrayList