AbstractJpaTests (Spring Framework 3.2.1.RELEASE API)
Date: 2013-01-24

org.springframework.test.jpa

## Class AbstractJpaTests

- java.lang.Object
- - junit.framework.Assert
  - - junit.framework.TestCase
    - - org.springframework.test.ConditionalTestCase
      - - org.springframework.test.AbstractSpringContextTests
        - - org.springframework.test.AbstractSingleSpringContextTests
          - - org.springframework.test.AbstractDependencyInjectionSpringContextTests
            - - org.springframework.test.AbstractTransactionalSpringContextTests
              - - org.springframework.test.AbstractTransactionalDataSourceSpringContextTests
                - - org.springframework.test.annotation.AbstractAnnotationAwareTransactionalTests
                  - - org.springframework.test.jpa.AbstractJpaTests

- All Implemented Interfaces:
    junit.framework.Test
  Direct Known Subclasses:
    AbstractAspectjJpaTests

  Deprecated.
  as of Spring 3.0, in favor of using the listener-based test context framework (`AbstractJUnit38SpringContextTests`)

      @Deprecated
      public abstract class AbstractJpaTests
      extends AbstractAnnotationAwareTransactionalTests

  Convenient support class for JPA-related tests. Offers the same contract as AbstractTransactionalDataSourceSpringContextTests and equally good performance, even when performing the instrumentation required by the JPA specification.

  Exposes an EntityManagerFactory and a shared EntityManager. Requires an EntityManagerFactory to be injected, plus the DataSource and JpaTransactionManager through the superclass.

  When using Xerces, make sure a post 2.0.2 version is available on the classpath to avoid a critical bug that leads to StackOverflow. Maven users are likely to encounter this problem since 2.0.2 is used by default.

  A workaround is to explicitly specify the Xerces version inside the Maven POM:

       <dependency>
         <groupId>xerces</groupId>
           <artifactId>xercesImpl</artifactId>
         <version>2.8.1</version>
       </dependency>

  Since:
    2.0
  Author:
    Rod Johnson, Rob Harrop, Juergen Hoeller

- - ### Field Summary

    Fields
    Modifier and Type | Field and Description
    --- | ---
    `protected EntityManagerFactory` | `entityManagerFactory` Deprecated.
    `protected EntityManager` | `sharedEntityManager` Deprecated. Subclasses can use this in test cases.

    - ### Fields inherited from class org.springframework.test.annotation.AbstractAnnotationAwareTransactionalTests

      `profileValueSource, simpleJdbcTemplate`

    - ### Fields inherited from class org.springframework.test.AbstractTransactionalDataSourceSpringContextTests

      `jdbcTemplate`

    - ### Fields inherited from class org.springframework.test.AbstractTransactionalSpringContextTests

      `transactionDefinition, transactionManager, transactionStatus`

    - ### Fields inherited from class org.springframework.test.AbstractDependencyInjectionSpringContextTests

      `AUTOWIRE_BY_NAME, AUTOWIRE_BY_TYPE, AUTOWIRE_NO`

    - ### Fields inherited from class org.springframework.test.AbstractSingleSpringContextTests

      `applicationContext`

    - ### Fields inherited from class org.springframework.test.ConditionalTestCase

      `logger`

  - ### Constructor Summary

    Constructors
    Constructor and Description
    `AbstractJpaTests()` Deprecated.

  - ### Method Summary

    Methods
    Modifier and Type | Method and Description
    --- | ---
    `protected String` | `cacheKeys()` Deprecated.
    `protected EntityManager` | `createContainerManagedEntityManager()` Deprecated. Create an EntityManager that will always automatically enlist itself in current transactions, in contrast to an EntityManager returned by `EntityManagerFactory.createEntityManager()` (which requires an explicit `joinTransaction()` call).
    `protected ClassLoader` | `createShadowingClassLoader(ClassLoader classLoader)` Deprecated. NB: This method must not have a return type of ShadowingClassLoader as that would cause that class to be loaded eagerly when this test case loads, creating verify errors at runtime.
    `protected void` | `customizeResourceOverridingShadowingClassLoader(ClassLoader shadowingClassLoader)` Deprecated. Customize the shadowing class loader.
    `protected String` | `getActualOrmXmlLocation()` Deprecated. Subclasses can override this to return the real location path for orm.xml or null if they do not wish to find any orm.xml
    `void` | `runBare()` Deprecated. Overridden to populate transaction definition from annotations.
    `void` | `setDirty()` Deprecated. Called to say that the "applicationContext" instance variable is dirty and should be reloaded.
    `void` | `setEntityManagerFactory(EntityManagerFactory entityManagerFactory)` Deprecated.
    `protected boolean` | `shouldUseShadowLoader()` Deprecated. Subclasses should override this method if they wish to disable shadow class loading.

    - ### Methods inherited from class org.springframework.test.annotation.AbstractAnnotationAwareTransactionalTests

      `findUniqueProfileValueSourceFromContext, getTestMethod, isDisabledInThisEnvironment, isRollback, setDataSource`

    - ### Methods inherited from class org.springframework.test.AbstractTransactionalDataSourceSpringContextTests

      `countRowsInTable, deleteFromTables, executeSqlScript, getJdbcTemplate, setComplete, setSqlScriptEncoding`

    - ### Methods inherited from class org.springframework.test.AbstractTransactionalSpringContextTests

      `endTransaction, isDefaultRollback, onSetUp, onSetUpBeforeTransaction, onSetUpInTransaction, onTearDown, onTearDownAfterTransaction, onTearDownInTransaction, preventTransaction, setDefaultRollback, setTransactionDefinition, setTransactionManager, startNewTransaction`

    - ### Methods inherited from class org.springframework.test.AbstractDependencyInjectionSpringContextTests

      `getAutowireMode, injectDependencies, isDependencyCheck, isPopulateProtectedVariables, prepareTestInstance, setAutowireMode, setDependencyCheck, setPopulateProtectedVariables`

    - ### Methods inherited from class org.springframework.test.AbstractSingleSpringContextTests

      `contextKey, createApplicationContext, createBeanDefinitionReader, customizeBeanFactory, getApplicationContext, getConfigLocations, getConfigPath, getConfigPaths, getLoadCount, loadContext, loadContextLocations, prepareApplicationContext, setUp, tearDown`

    - ### Methods inherited from class org.springframework.test.AbstractSpringContextTests

      `addContext, contextKeyString, getContext, hasCachedContext, isContextKeyEmpty, setDirty`

    - ### Methods inherited from class org.springframework.test.ConditionalTestCase

      `getDisabledTestCount, isDisabledInThisEnvironment, recordDisabled`

    - ### Methods inherited from class junit.framework.TestCase

      `countTestCases, createResult, getName, run, run, runTest, setName, toString`

    - ### Methods inherited from class junit.framework.Assert

      `assertEquals, assertEquals, assertEquals, assertEquals, assertEquals, assertEquals, assertEquals, assertEquals, assertEquals, assertEquals, assertEquals, assertEquals, assertEquals, assertEquals, assertEquals, assertEquals, assertEquals, assertEquals, assertEquals, assertEquals, assertFalse, assertFalse, assertNotNull, assertNotNull, assertNotSame, assertNotSame, assertNull, assertNull, assertSame, assertSame, assertTrue, assertTrue, fail, fail, failNotEquals, failNotSame, failSame, format`

    - ### Methods inherited from class java.lang.Object

      `clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait`

- - ### Field Detail

    - #### entityManagerFactory

          protected EntityManagerFactory entityManagerFactory

      Deprecated.

    - #### sharedEntityManager

          protected EntityManager sharedEntityManager

      Deprecated.
      Subclasses can use this in test cases. It will participate in any current transaction.

  - ### Constructor Detail

    - #### AbstractJpaTests

          public AbstractJpaTests()

      Deprecated.

  - ### Method Detail

    - #### setEntityManagerFactory

          public void setEntityManagerFactory(EntityManagerFactory entityManagerFactory)

      Deprecated.

    - #### createContainerManagedEntityManager

          protected EntityManager createContainerManagedEntityManager()

      Deprecated.
      Create an EntityManager that will always automatically enlist itself in current transactions, in contrast to an EntityManager returned by `EntityManagerFactory.createEntityManager()` (which requires an explicit `joinTransaction()` call).

    - #### shouldUseShadowLoader

          protected boolean shouldUseShadowLoader()

      Deprecated.
      Subclasses should override this method if they wish to disable shadow class loading.

      The default implementation deactivates shadow class loading if Spring's InstrumentationSavingAgent has been configured on VM startup.

    - #### setDirty

          public void setDirty()

      Deprecated.
      Description copied from class: `AbstractSingleSpringContextTests`
      Called to say that the "applicationContext" instance variable is dirty and should be reloaded. We need to do this if a test has modified the context (for example, by replacing a bean definition).
      Overrides:
        `setDirty` in class `AbstractSingleSpringContextTests`

    - #### runBare

          public void runBare()
                       throws Throwable

      Deprecated.
      Description copied from class: `AbstractAnnotationAwareTransactionalTests`
      Overridden to populate transaction definition from annotations.
      Overrides:
        `runBare` in class `AbstractAnnotationAwareTransactionalTests`
      Throws:
        `Throwable`

    - #### cacheKeys

          protected String cacheKeys()

      Deprecated.

    - #### createShadowingClassLoader

          protected ClassLoader createShadowingClassLoader(ClassLoader classLoader)

      Deprecated.
      NB: This method must not have a return type of ShadowingClassLoader as that would cause that class to be loaded eagerly when this test case loads, creating verify errors at runtime.

    - #### customizeResourceOverridingShadowingClassLoader

          protected void customizeResourceOverridingShadowingClassLoader(ClassLoader shadowingClassLoader)

      Deprecated.
      Customize the shadowing class loader.
      Parameters:
        `shadowingClassLoader` - this parameter is actually of type ResourceOverridingShadowingClassLoader, and can safely to be cast to that type. However, the signature must not be of that type as that would cause the present class loader to load that type.

    - #### getActualOrmXmlLocation

          protected String getActualOrmXmlLocation()

      Deprecated.
      Subclasses can override this to return the real location path for orm.xml or null if they do not wish to find any orm.xml
      Returns:
        orm.xml path or null to hide any such file