Commit Graph

181 Commits

Author SHA1 Message Date
Juergen Hoeller
6aaf7fefde removed Hibernate EntityManager 4.0 dependency since it is not needed for compilation and not for standard runs of the test suite either 2011-10-11 01:22:20 +00:00
Juergen Hoeller
4c49cc73b2 avoid NPE in case of no "hibernateProperties" specified 2011-10-11 01:10:07 +00:00
Juergen Hoeller
e1a6bb2d2e committed initial Hibernate 4.0 support 2011-10-11 01:08:41 +00:00
Juergen Hoeller
339c57e41a polishing 2011-10-11 01:00:31 +00:00
Juergen Hoeller
37c601c8dd HibernateJpaDialect exposes underlying Session for underlying SessionFactory 2011-10-11 00:58:47 +00:00
Juergen Hoeller
0ff83606df committed initial Hibernate 4.0 support 2011-10-11 00:53:01 +00:00
Chris Beams
3bb01ee68b Revert "Introduce (Annotation)SessionFactoryBuilder types"
This commit and the several before it back out the
SessionFactoryBuilder and AnnotationSessionFactoryBuilder types
recently introduced in 3.1 M2. This is in light of the impending
release of Hibernate 4.0 GA and our own support for it the new
org.springframework.orm.hibernate4 package (not yet committed).

This new package will have a similar, but far simpler, arrangement of
a single LocalSessionFactoryBuilder and LocalSessionFactoryBean pair.
Hibernate 3.x support will remain largely as-is, however the
HibernateTransactionManager introduced with SPR-8076 will remain.

This reverts commit 9e8259198f07e495fd32359c0e0c197bb79a2ca0.

Issue: SPR-8066, SPR-7936, SPR-8076, SPR-8098, SPR-8096, SPR-7387
2011-10-09 07:55:52 +00:00
Chris Beams
25796448f6 Revert "removed double javadoc"
This reverts commit 2d26c4992e6c7689f67a8e8410ca7d65909b8d01.
2011-10-09 07:55:38 +00:00
Chris Beams
0d43023571 Revert "All SFBuilder setters return 'this' & use varargs"
This reverts commit 0e2ce565c9ef64d97299836a3b979b2cf85de759.
2011-10-09 07:55:33 +00:00
Chris Beams
1a8531b401 Revert "Automatically close SessionFactory objects"
This reverts commit bb4f48dcb3123cfde7b2203aa07517077c3c4261.

Issue: SPR-8114
2011-10-09 07:55:28 +00:00
Chris Beams
b82d5ae8da Revert "Implement SessionFactoryImplementor in SF proxies"
This reverts commit 08ccd19c76a71be3edf98f1a7f62cdd73ae98c9b.

Issue: SPR-8469
2011-10-09 07:55:21 +00:00
Chris Beams
363e08df22 Revert "Auto-unwrap SessionFactoryBuilder-created proxies"
This reverts commit 7903d6489f9c98532826324b0ba79cafbc618d78.

Issue: SPR-8492
2011-10-09 07:55:14 +00:00
Chris Beams
8759b20e46 Include javax.jdo 3.x in spring-orm template.mf
Prior to this change, spring-orm/template.mf was exclusive of javax.jdo
3.0.0. Now, after local testing against the newly-released jdo-api 3.0
jar, the template has been updated to allow for use in OSGi containers.
Note that actually updating build dependency descriptors to JDO 3.0 such
that the framework is continually tested against this version is covered
by a separate issue (SPR-8668).

Issue: SPR-8667, SPR-8655
2011-09-04 01:06:35 +00:00
Sam Brannen
1de71c6e37 [SPR-8222] Upgraded to JUnit 4.9. 2011-08-30 13:16:12 +00:00
Juergen Hoeller
ef04ccca17 allow for Hibernate 4.0 2011-08-18 23:14:42 +00:00
Sam Brannen
87dad65ff0 [SPR-8622] Upgraded to JUnit 4.8.2 2011-08-18 16:06:31 +00:00
Juergen Hoeller
49e61d2680 overridden @PersistenceContext annotations on subclass methods are being processed correctly (SPR-8594) 2011-08-12 13:54:17 +00:00
Chris Beams
9f4a46e24c Auto-unwrap SessionFactoryBuilder-created proxies
SessionFactory proxies created by (Annotation)SessionFactoryBuilder now
implement InfrastructureProxy to ensure they are automatically unwrapped
for transaction resource management purposes.

Issue: SPR-8492
2011-07-30 18:05:34 +00:00
Juergen Hoeller
8bae96bdd7 fixed HibernateMultiEntityManagerFactoryIntegrationTests failure 2011-07-26 00:59:41 +00:00
Juergen Hoeller
d8f29cb746 polishing 2011-07-26 00:46:39 +00:00
Juergen Hoeller
83df082930 moved OpenSessionInViewTests back to orm module 2011-07-26 00:46:07 +00:00
Juergen Hoeller
6ad8a4a79a fixed OpenEntityManagerInViewTests through the addition of a local copy of our Servlet API mocks; restoredOpenPersistenceManagerInViewTests 2011-07-26 00:38:05 +00:00
Juergen Hoeller
c31b17fef2 JpaTransactionManager etc can find EntityManagerFactory by "persistenceUnitName" property now, falling back to retrieval of a unique EntityManagerFactory bean by type (analogous to @PersistenceUnit / @PersistenceContext) 2011-07-25 12:28:16 +00:00
Juergen Hoeller
637ce0f01c removed double javadoc 2011-07-25 12:27:30 +00:00
Juergen Hoeller
aeacf9278f JpaTransactionManager etc can find EntityManagerFactory by "persistenceUnitName" property now, falling back to retrieval of a unique EntityManagerFactory bean by type (analogous to @PersistenceUnit / @PersistenceContext) 2011-07-25 12:26:27 +00:00
Juergen Hoeller
676ab5f0b1 restored OpenEntityManagerInViewTests 2011-07-25 12:15:33 +00:00
Juergen Hoeller
1b26b4744f fixed ignored test 2011-07-21 10:34:32 +00:00
Chris Beams
4f89459c3d Polish whitespace on JpaTransactionManager 2011-07-18 21:23:43 +00:00
Juergen Hoeller
65ad44dadc polishing 2011-07-18 20:50:35 +00:00
Juergen Hoeller
81a27ce484 an EntityManagerFactoryBean is only deserializable through a SerializedEntityManagerFactoryBeanReference 2011-07-11 13:50:34 +00:00
Chris Beams
5aa24af126 Implement SessionFactoryImplementor in SF proxies
SessionFactoryBuilderSupport implementations create DisposableBean
proxies for SessionFactory objects created using #buildSessionFactory.

Prior to this change, these proxies create problems when working agaist
SessionFactoryUtils.getDataSource(SessionFactory), because this method
expects the given SessionFactory to implement Hibernate's
SessionFactoryImplementor interface (which the stock SessionFactoryImpl
does).

With this change, the DisposableBean proxies created by SFBuilders
now also implement SessionFactoryImplementor to satisfy this and
probably other such cases.

Issue: SPR-8469
2011-07-07 19:42:07 +00:00
Juergen Hoeller
889f8886f6 support for Hibernate 4.0 as a JPA provider 2011-06-14 22:45:29 +00:00
Juergen Hoeller
695f1613b2 refined EntityManagerFactory proxy exception (SPR-4383) 2011-06-14 15:02:40 +00:00
Juergen Hoeller
c60511bf04 shortened build properties "org.junit.version" to "junit.version" and "org.testng.version" to "testng.version"; reverted SLF4J version back to 1.5.3 (for Hibernate 3.3.1 compatibility) 2011-06-09 09:58:15 +00:00
Juergen Hoeller
9f3026a4e6 prefer use of varargs over arrays in bean property setters (for programmatic consumption) 2011-06-09 09:15:11 +00:00
Juergen Hoeller
fc11102e34 updated dependencies 2011-06-08 22:51:21 +00:00
Juergen Hoeller
df460f4486 added "packagesToScan" feature to LocalContainerEntityManagerFactoryBean (avoiding persistence.xml) 2011-06-07 16:56:47 +00:00
Juergen Hoeller
a966cba97f fixed JPA 2.0 timeout hints to correctly specify milliseconds (SPR-8086) 2011-05-29 20:52:03 +00:00
Chris Beams
f30b7e3125 Fix generics and serialization warnings 2011-05-06 19:00:14 +00:00
Chris Beams
5c27a04210 Automatically close SessionFactory objects
SessionFactory objects created by
SessionFactoryBuilderSupport#buildSessionFactory are now DisposableBean
proxies that call SessionFactory#close and release any threadlocal
DataSource object.

This is the same behavior that has always occurred during LSFBean and
ASFBean destruction lifecycles (and still does). This destruction logic
has now been factored out into
SessionFactoryBuilderSupport#closeHibernateSessionFactory such that all
SFB types can reuse it easily.

Note that LSFBean and ASFBean are subclasses, respectively, of SFBuilder
and ASFBuilder and they each must disable the DisposableBean proxying in
order to avoid duplicate attempts at closing the SessionFactory. See
the implementations of wrapSessionFactoryIfNeccesary() for details.

Issue: SPR-8114
2011-04-26 10:15:30 +00:00
Chris Beams
fadfc76443 All SFBuilder setters return 'this' & use varargs
Touch up a few setter methods across the SessionFactoryBuilder
hierarchy that were still returning void.

Use varargs... syntax wherever possible.
2011-03-31 14:28:30 +00:00
Chris Beams
f5768fe00b Introduce (Annotation)SessionFactoryBuilder types
Large refactoring of existing *SessionFactoryBean hierarchy designed to
support configuration of Hibernate SessionFactory objects within
@Configuration class @Bean methods without forcing use of a
FactoryBean type, which is generally discouraged due to awkwardness
of programming model and lifecycle issues.  Refactored and new types
include:

    * Removal of AbstractSessionFactoryBean, replacing it with
      SessionFactoryBeanSupport abstract base class

    * Introduction of SessionFactoryBuilder and
      AnnotationSessionFactoryBuilder types, both direct subclasses of
      SessionFactoryBuilderSupport. These types are intended for direct
      use within @Bean methods. They expose method-chainable set*
      methods allowing for concise and convenient use. See JavaDoc
      on both types for usage examples.

    * LocalSessionFactoryBean and AnnotationSessionFactoryBean types are
      now subclasses, respectively, of the *Builder types above.

LSFB and ASFB backward-compatibility has been maintained almost
entirely. The one exception is that there is no longer a protected
convertHibernateAccessException() method available in the hierarchy.
This method was not likely often used anyway and has been replaced
by the new (and public) setPersistenceExceptionTranslator() which
accepts instances of type HibernateExceptionTranslator as introduced in
SPR-8076.

LSFB and ASFB setter method signatures have changed. They no longer
return void in standard JavaBeans style but rather, and due to extending
the *Builder types above, return the 'this' reference. This posed a
problem because the Spring container has to date been unable to detect
and provide dependency injection against non-void returning setter
methods. This limitation was due to the way that the default JavaBeans
Introspector class and its getBeanInfo() method works, and prompted the
introduction and intergration of ExtendedBeanInfo, already completed in
SPR-8079. So have no concern if you notice this signature change - it
all works.

Certain deprecations have been made:

    * All LSFB/ASFB methods related to Hibernate's CacheProvider SPI,
      reflecting its deprecation in Hibernate 3.3 in favor of the new
      RegionFactory SPI. Note these methods have been preserved only
      on the FactoryBean types. The new *SessionFactoryBuilder
      supertypes do not expose CacheProvider services at all.

    * All protected LSFB/ASFB methods that accept a Hibernate
      Configuration parameter, such as newSessionFactory(Configuration),
      postProcessMappings(Configuration) and
      postProcessConfiguration(Configuation), in favor of no-arg methods
      with the same names. Due to the nature of the hierarchy
      refactoring mentioned above, the Configuration instance is always
      available when these methods are called, thus no need to pass it
      in as a parameter.

In the process, our approach to automatic detection of Hibernate dialect
has been improved (it was in fact broken before). Thanks to James
Roper for his suggestion in SPR-7936 as to how to fix this.

See HibernateSessionFactoryConfigurationTests as a starting point for
understanding the new builder-style approach to SessionFactory creation.
Note especially use of the SessionFactoryBuilder#doWithConfiguration
method which allows for direct programmatic configuration of the Native
Hibernate (Annotation)Configuration API.

As a final note, AnnotationConfiguration has been deprecated in
Hibernate 3.6, and great pains have been taken to ensure that users
of any supported Hibernate version (3.2 -> 3.6) will never need to
(a) cast from Configuration to AnnotationConfiguration or (b)
experience deprecation warnings due to being forced to use the
AnnotationConfiguration API. Explore the JavaDoc around the
doWithConfiguration() method and HibernateConfigurationCallback type
for complete details.

Issue: SPR-8066, SPR-7936, SPR-8076, SPR-8098
2011-03-31 12:29:12 +00:00
Chris Beams
b0b1116f4b Propagate wrapped exception in SessionFactoryUtils
Improve stack traces in certain Hibernate failure cases by properly
chaining the cause exception.

Issue: SPR-7933
2011-03-31 12:07:30 +00:00
Chris Beams
6809b234b1 Introduce HibernateExceptionTranslator
Designed to allow persistence exception translation of
HibernateException types without being forced to use
LocalSessionFactoryBean types.

Committed now in support of the forthcoming introduction of
*SessionFactoryBuilder types.

Issue: SPR-8076
2011-03-31 12:06:58 +00:00
Sam Brannen
daa074734f [SPR-8092] cleaning up ignored and broken ORM tests; suppressing warnings; fixed Eclipse classpath for tests. 2011-03-28 18:16:45 +00:00
Sam Brannen
726564c84d Polishing and fixed broken support for @IfProfileValue in AbstractJpaTests (even though it's deprecated). 2011-03-28 17:23:48 +00:00
Chris Beams
2f7c2230f0 Include license.txt and notice.txt in module JARs 2011-02-09 06:56:40 +00:00
Sam Brannen
b130a36af7 [SPR-7850][SPR-7851] Upgraded to JUnit 4.8.1 and TestNG 5.12.1; added changelog entries for 3.1.0.M1. 2010-12-30 08:00:58 +00:00
Chris Beams
f480333d31 Merge 3.1.0 development branch into trunk
Branch in question is 'env' branch from git://git.springsource.org/sandbox/cbeams.git; merged into
git-svn repository with:

    git merge -s recursive -Xtheirs --no-commit env

No merge conflicts, but did need to

    git rm spring-build

prior to committing.

With this change, Spring 3.1.0 development is now happening on SVN
trunk. Further commits to the 3.0.x line will happen in an as-yet
uncreated SVN branch.  3.1.0 snapshots will be available
per the usual nightly CI build from trunk.
2010-10-25 19:48:20 +00:00
Juergen Hoeller
4c154d3cab AnnotationSessionFactoryBean's "postProcessConfiguration" is non-final now (because of Hibernate 3.6; SPR-7581) 2010-09-29 13:22:24 +00:00