restored preference for covariant return type if applicable
Upgrade Hibernate from 4.0.0.CR7=>4.1.0.Final

spring-orm now successfully builds against Hibernate 4.1.0.Final

Issue: SPR-9082
Use request contentType/encoding in ServletServetHttpRequest/Response

ServletServerHttpRequest now falls back on the contentType and the
the characterEncoding of the ServletRequest, if the headers of the
incoming request don't specify one. Similary ServletServerHttpResponse
sets the contentType and the characterEncoding of the ServletResponse
if not already set.

This allows using the CharacterEncodingFilter to set a character
encoding where the request doesn't specify one and have it be used
in HttpMessageConverter's.

SPR-9096
Polish ExtendedBeanInfoTests

Clean up ignored test, consolidate and document tests cornering
covariant return type edge cases.

Issue: SPR-8079, SPR-8806
Detect overridden boolean getters in ExtendedBeanInfo

Prior to this commit, and due to idiosyncracies of
java.beans.Introspector, overridden boolean getter methods were not
detected by Spring's ExtendedBeanInfo, which relied on too-strict
Method equality checks when selecting read and write methods.

Now ExtendedBeanInfo uses Spring's ClassUtils#getMostSpecificMethod
against the methods returned from java.beans.Introspector in order
to ensure that subsequent equality checks are reasonable to make.

Issue: SPR-8949
Minor polish in WebMvcConfigurationSupport
SPR-7680 Adding QueryTimeoutException to the DataAccessException hierarchy
Improvements for registering custom SQL exception translators in app contexts.

Adding a static CustomSQLExceptionTranslatorRegistry and a CustomSQLExceptionTranslatorRegistrar that can be used to register custom SQLExceptionTranslator implementations for specific databases from any application context.

This can be used in application contexts like this:

  <bean class="org.springframework.jdbc.support.CustomSQLExceptionTranslatorRegistrar">
    <property name="sqlExceptionTranslators">
      <map>
        <entry key="H2">
          <bean class="com.yourcompany.data.CustomSqlExceptionTranslator"/>
        </entry>
      </map>
    </property>
  </bean>

Issue: SPR-7675
Adding null check for username being null.

The username is usually not null, but it  could be for some embedded databases.

Always setting generatedKeysColumnNameArraySupported to false when getGeneratedKeysSupported is false, since it can't be supported without having generated keys supported. This change only affects logging messages.

Issue: SPR-9006
Consider security in ClassUtils#getMostSpecificMethod

Recent changes in ExtendedBeanInfo involve invoking
ClassUtils#getMostSpecificMethod when determining JavaBeans get/set
pairs; if Java security settings control disallow reflective access,
this results in an AccessControlException.

This change defends against this (comparatively rare) scenario by
catching the exception and falling back to returning the method
originally supplied by the user.

This change was a result of noticing CallbacksSecurityTests failing
following the ExtendedBeanInfo modifications mentioned above

Issue: SPR-8949
Replace spaces with tabs
substituteNamedParameters detects and unwraps SqlParameterValue objects (SPR-9052)
clarified Resource's "getFilename" method to consistently return null if resource type does not have a filename (SPR-9043)
polishing
@ActiveProfiles mechanism works with @ImportResource as well (SPR-8992)
"setBasenames" uses varargs now (for programmatic setup; SPR-9106)
TypeDescriptor equals implementation accepts annotations in any order (SPR-9084)
Hibernate 4.1 etc
Merge pull request #25 from trisberg/fixes-for-SimpleJdbcInsert

Fixes for SimpleJdbcInsert [SPR-9006]
Merge pull request #33 from trisberg/SQLException-translation-enhancements

SQL exception translation enhancements