Commit Graph

688 Commits

Author SHA1 Message Date
Juergen Hoeller 939c76c4a5 Revise documentation notes on getParameterType performance issues
See gh-25679
2020-09-05 13:00:06 +02:00
Juergen Hoeller 40bf83c9e5 Restore original 4.x behavior for initialization of function return name
Closes gh-25707
2020-09-05 12:59:34 +02:00
Juergen Hoeller 33195da64f Fix assertion for the revised SQLExceptionTranslator contract in 5.3
See gh-25681
2020-09-03 19:34:54 +02:00
Juergen Hoeller 3aae0fc91b Merge branch '5.2.x' 2020-09-03 19:21:44 +02:00
Juergen Hoeller 670b9fd60b Retry SQLErrorCodesFactory retrieval if DatabaseMetaData access failed
Includes deprecation of JdbcUtils.extractDatabaseMetaData(DataSource, String) in favor of the now generified version of extractDatabaseMetaData(DataSource, DatabaseMetaDataCallback).

Closes gh-25681
Closes gh-25686
2020-09-03 19:16:14 +02:00
Juergen Hoeller e20bff9c64 Consistent data class constructor resolution with clear error message
MVC data class processor constructs target instance even in case of binding failure, as long as the corresponding method parameter is not marked as optional.

Closes gh-24372
2020-09-01 19:10:32 +02:00
Сергей Цыпанов 1f3e52d932 gh-25650 Replace remaining usage of LinkedList with ArrayList in tests 2020-08-31 14:33:14 +02:00
Juergen Hoeller bb9e79daa7 Polishing 2020-08-28 19:58:56 +02:00
Juergen Hoeller d37eaa5941 Introduce DataClassRowMapper with record-style constructor binding support
Closes gh-24695
2020-08-28 18:52:35 +02:00
Juergen Hoeller 874574513c Replace remaining usage of LinkedList with ArrayList/ArrayDeque
Closes gh-25650
2020-08-26 18:32:08 +02:00
Juergen Hoeller d198c4426f Extract ConcurrentLruCache for reuse in NamedParameterJdbcTemplate
Closes gh-24197
2020-08-26 14:35:01 +02:00
Juergen Hoeller ff11467a0c Avoid resizing of fixed-size HashMap/LinkedHashMap variants
Closes gh-25349
2020-08-25 19:26:18 +02:00
Juergen Hoeller f4c0ceb1cc Merge branch '5.2.x'
# Conflicts:
#	build.gradle
#	spring-tx/src/main/java/org/springframework/dao/support/PersistenceExceptionTranslationInterceptor.java
#	spring-web/src/main/java/org/springframework/web/bind/support/WebRequestDataBinder.java
#	spring-webmvc/src/main/java/org/springframework/web/servlet/HandlerExecutionChain.java
#	spring-webmvc/src/main/java/org/springframework/web/servlet/handler/AbstractHandlerMapping.java
2020-08-07 13:15:36 +02:00
Juergen Hoeller 94eee6a32a Provide access to AbstractRoutingDataSource's resolved target DataSources
Closes gh-25544
2020-08-07 13:00:35 +02:00
Sébastien Deleuze 5c456db3cc Upgrade to Kotlin 1.4 RC
- The compiler is configured to retain compatibility with Kotlin 1.3.
- Explicit API mode is not yet enabled but could be in the future.
- Some exceptions thrown by Kotlin have changed to NullPointerException,
  see https://youtrack.jetbrains.com/issue/KT-22275 for more details.

Closes gh-24171
2020-07-30 10:18:33 +02:00
Juergen Hoeller e4e54b3c4a Merge branch '5.2.x' 2020-07-19 20:01:21 +02:00
Juergen Hoeller 43e315f10c Unwrap SqlParameterValue for disposable value detection in cleanupParameters
Closes gh-22972
2020-07-19 19:59:15 +02:00
Juergen Hoeller 4f2aaa49a9 Replace javadoc references to deprecated query methods
See gh-25272
2020-07-19 18:59:26 +02:00
Juergen Hoeller 198d64d539 Merge branch '5.2.x'
# Conflicts:
#	build.gradle
2020-07-17 17:52:08 +02:00
Juergen Hoeller 30bf870810 Check JDBC 4 getFunctions (for compatibility with PostgreSQL driver 42.2.11)
Closes gh-25399
2020-07-17 17:47:53 +02:00
Johnny Lim 364939b2a3
Remove redundant Character.toLowerCase() in BeanPropertyRowMapper
This commit removes a redundant Character.toLowerCase() invocation in
BeanPropertyRowMapper.underscoreName().

Closes gh-25361
2020-07-06 15:31:18 +02:00
Sébastien Deleuze 06b364fefe Leverage spring.ignore.xml flag to avoid SQLStateSQLExceptionTranslator
Closes gh-25335
2020-06-30 07:34:50 +02:00
Sam Brannen b33d2fe683 Clean up warnings in Gradle build, polishing, etc. 2020-06-24 15:02:24 +02:00
Sam Brannen 751739442b Polishing 2020-06-24 13:49:33 +02:00
Sam Brannen 0e83aaa756 Fix hanging test
Partially reverts 1edc08fb84
2020-06-23 18:08:24 +02:00
Sam Brannen 1edc08fb84 Polishing 2020-06-23 17:45:23 +02:00
Juergen Hoeller d0209e5f1f Nullability refinements and related polishing 2020-06-23 16:55:09 +02:00
Marten Deinum 8eedd9d5cc Use JDBC 4 API for connection validation
With this commit use the JDBC 4.0 isValid method to
validate the connection. This is favorable over a
validation query.
2020-06-23 16:50:57 +02:00
Marten Deinum 6316a353bb Reduce String creation in BeanPropertyRowMapper
Prior to this commit the BeanPropertyRowMapper used
String.substring and String.toLowerCase to parse the
field names. This would generate more String than needed.

Instead one could iterate over the internal char[] of the
String and use the Character methods instead. This reduces
the String creation.

Closes gh-25301
2020-06-23 08:53:41 +02:00
Sam Brannen 9d5881e0ad Suppress warnings, remove unused code, etc. 2020-06-20 17:15:35 +02:00
Juergen Hoeller 2d5f9723fa Deprecate superseded Object[] signatures in JdbcOperations/JdbcTemplate
Closes gh-25272
2020-06-18 17:47:27 +02:00
Sébastien Deleuze 6b355df903 Revert "Upgrade to Kotlin 1.4 M2"
This reverts commit 2a74eff10f.

Some regressions require to wait at least Kotlin 1.4 M3.
2020-06-18 14:06:39 +02:00
Sam Brannen 30263137c4 Suppress warnings in Gradle build 2020-06-18 10:55:44 +02:00
Juergen Hoeller 17cab9660c Deprecate TransactionSynchronizationAdapter
Closes gh-21725
2020-06-17 11:02:31 +02:00
Juergen Hoeller d36407d585 Deprecate rarely used bean definition variants
Closes gh-24875
2020-06-17 10:59:55 +02:00
Сергей Цыпанов 7949937655 Remove redundant assignment of default values to volatile fields 2020-06-17 10:50:51 +02:00
Sam Brannen 8099fc8178 Use try-with-resources language construct where feasible
Closes gh-2063

Co-authored-by: igor-suhorukov <igor.suhorukov@gmail.com>
2020-06-16 22:57:45 +02:00
Sam Brannen 456d2c46e3 Suppress warnings in Gradle build
See gh-24655
2020-06-16 17:43:40 +02:00
Sam Brannen 50391ad3d7 Add @author tags for JDBC KeyHolder support
See gh-24655
2020-06-16 17:37:11 +02:00
Sébastien Deleuze 2a74eff10f Upgrade to Kotlin 1.4 M2
- The compiler is configured to retain compatibility with Kotlin 1.3.
- Explicit API mode is not yet enabled but could be in the future.
- A workaround for Gradle build is required for now, see
  https://youtrack.jetbrains.com/issue/KT-39610 for more details.
- Some exceptions thrown by Kotlin have changed to NullPointerException,
  see https://youtrack.jetbrains.com/issue/KT-22275 for more details.

Closes gh-24171
2020-06-16 15:21:57 +02:00
Sam Brannen cc301011b2 Polish JDBC KeyHolder support
See gh-24655
2020-06-16 14:17:43 +02:00
eXsio b50cf9dad2 Support user-defined key type in JDBC KeyHolder
Prior to this commit, the JDBC KeyHolder API only supported keys of
type Number. However, a generated key can be a UUID or something else,
and developers shouldn't have to go manually through complex
collections to access it.

This commit adds a new getKeyAs(Class<T> keyType) method to the
KeyHolder API that allows the user to specify the key type.

Closes gh-24655
2020-06-16 12:04:09 +02:00
Juergen Hoeller e955e52f2f Refactor method name dispatching to switch statements
Closes gh-25163
2020-05-29 23:07:25 +02:00
Juergen Hoeller 42ff01b5aa Merge branch '5.2.x' 2020-05-29 15:57:32 +02:00
Juergen Hoeller 08474aa921 Clarify JDBC-defined negative values returned from batchUpdate
Closes gh-25138
2020-05-29 15:51:19 +02:00
Juergen Hoeller 929244215c Merge branch '5.2.x'
# Conflicts:
#	build.gradle
2020-05-26 23:37:53 +02:00
Juergen Hoeller 27d5fdc5aa Polishing 2020-05-26 23:35:38 +02:00
Juergen Hoeller 4018b462f1 JdbcOperations polishing (backported from master) 2020-05-22 16:35:34 +02:00
Juergen Hoeller d56ca04162 Introduce queryForStream on JdbcTemplate and NamedParameterJdbcTemplate
Closes gh-18474
2020-05-19 14:08:52 +02:00
Juergen Hoeller 26c205589b Merge branch '5.2.x'
# Conflicts:
#	build.gradle
#	spring-beans/src/main/java/org/springframework/beans/factory/support/AbstractBeanFactory.java
#	spring-context/src/main/java/org/springframework/validation/beanvalidation/MethodValidationInterceptor.java
2020-05-14 00:33:37 +02:00
Juergen Hoeller fe33822fa7 Polishing 2020-05-14 00:23:20 +02:00
Juergen Hoeller e9cded560d Introduce JdbcTransactionManager with SQLExceptionTranslator support
Closes gh-24064
2020-05-06 16:41:35 +02:00
Juergen Hoeller 251501587b Consistent nullability of arguments array in JdbcOperations/Template
Closes gh-24839
2020-04-03 21:15:00 +02:00
Juergen Hoeller 6177e38eb6 Close-suppressing Connection proxy exposes target isClosed() state
Closes gh-24853
2020-04-03 21:13:53 +02:00
Sam Brannen e26764d249 Remove duplicate words in documentation and polish Javadoc 2020-03-31 12:17:58 +02:00
Qimiao Chen 7c831d2ef4
Replace anonymous inner classes with lambdas in tests
Closes gh-24808
2020-03-30 12:02:23 +02:00
Juergen Hoeller 910d2788e9 Polishing 2020-03-23 18:02:55 +01:00
Sam Brannen 5e1e689739 Polishing 2020-03-17 15:06:10 +01:00
Qimiao Chen 5f2e298c08
Extract isDebugEnabled() checks to local variables
Closes gh-24683
2020-03-16 15:25:05 +01:00
Juergen Hoeller 6db20eb773 Avoid package import cycles 2020-02-25 14:55:53 +01:00
Sam Brannen c2367b3ad2 Polish contribution
See gh-24383
2020-02-04 14:48:13 +01:00
Hyunjin Choi 1acf5a7424
Use dedicated catch block for ScriptException
Closes gh-24383
2020-02-04 14:45:52 +01:00
Sam Brannen 7575616d26 Update copyright date
See gh-24385
2020-02-04 14:23:18 +01:00
Hyunjin Choi b4cf88499c
Use try-with-resource in ScriptUtils
Closes gh-24385
2020-02-04 14:21:59 +01:00
Juergen Hoeller d93403a257 Alphabetical order for database names
See gh-24443
2020-01-28 21:06:04 +01:00
wilrosco c86e164b03 Add Informix to the list of supported database products for procedure calls
Hi guys,

We're facing an issue in our application when we try to call a procedure in Informix database, 
our app uses standard JDBC (spring-jdbc and com.ibm.informix.jdbc.4.50.3) without Hibernate 
to connect to the database  

Issue:
When we trying to execute any procedure call in our Informix database there is no data returned.

Diagnostic:
It points to the Java class called CallMetaDataProviderFactory in spring-jdbc project.

Taking a look of this class there is no explicit support for Informix procedure calls, so I added "Informix Dynamic Server" to the 
list of supported databases and now I can execute procedures call without issues.

Basically I added the line "Informix Dynamic Server" to the list called "supportedDatabaseProductsForProcedures" 
of CallMetaDataProviderFactory class in my local environment and it worked as expected.


I really appreciate any feedback/suggestion for this approach due we would like to continue using the framework 
normally in our development without losing updates using a workaround in our end.

Many thanks in advance.
2020-01-28 20:57:52 +01:00
Juergen Hoeller 60c7af3625 Mention HikariCP next to DBCP and C3P0 in connection pool notes
Closes gh-24405
2020-01-24 14:54:02 +01:00
Sam Brannen 734db23f4e Fix Checkstyle violation
See gh-gh-24358
2020-01-15 14:09:11 +01:00
Sam Brannen f527ca7515 Update copyright date 2020-01-15 14:04:50 +01:00
hyeonisism 89b8449999 Simplify getParsedSql() method in NamedParameterJdbcTemplate
Closes gh-24358
2020-01-15 14:01:38 +01:00
Sam Brannen 798744838c Revise exception handling in AbstractEmbeddedDatabaseConfigurer
See gh-24337
2020-01-13 12:51:31 +01:00
Sam Brannen 7cd4ddf5fc Rename test fixture package in spring-beans
See gh-23550
2020-01-02 16:01:35 +01:00
Sam Brannen 4260c34b47 Rename test fixture package in spring-core
See gh-23550
2020-01-02 16:01:34 +01:00
Sam Brannen 61d4ee594d Use Gradle test fixture support for spring-beans and spring-context
See gh-23550
2020-01-02 16:01:34 +01:00
Sam Brannen 5718bf424b Use Gradle test fixture support for spring-core
See gh-23550
2020-01-02 16:01:34 +01:00
Juergen Hoeller 02b40223e5 Polishing 2019-12-12 16:43:00 +01:00
perceptron8 dafe57fc6e Add BeanPropertyRowMapper.newInstance(mappedClass, conversionService)
Similar to SingleColumnRowMapper.newInstance(requiredType,
conversionService) which was added in #1678.
2019-12-12 15:40:55 +01:00
Juergen Hoeller a5f2d8c222 Mark SqlRowSet accessor methods as nullable (for alignment with JDBC)
Closes gh-24042
2019-11-20 17:37:40 +01:00
Juergen Hoeller 990bfd8772 Support for new MySQL 8 error code 3572
Closes gh-23972
2019-11-11 15:55:26 +01:00
Juergen Hoeller 773b2f06a1 Avoid Connection.isReadOnly() call in resetConnectionAfterTransaction
Closes gh-23747
2019-10-30 00:25:17 +01:00
Juergen Hoeller 2861fc65bd Polishing 2019-09-27 10:17:56 +02:00
Kwon Young Jae 6063c00e4e Delete obsolete comment in RowMapperTests
Closes gh-23643
2019-09-16 14:10:33 +02:00
康智冬 0d742cf3d0 Fix typos related to indefinite articles for SQL acronym
Closes gh-23603
2019-09-07 16:04:47 +02:00
Phillip Webb deba2ed1b3 Add blank line between java and javax imports
See gh-23539
2019-09-04 22:05:46 -07:00
Brian Clozel d4089747b8 Use dependency management in Framework build
Prior to this commit, the Spring Framework build would partially use the
dependency management plugin to import and enforce BOMs.

This commit applies the dependency management plugin to all Java
projects and regroups all version management declaration in the root
`build.gradle` file (versions and exclusions).

Some versions are overridden in specific modules for
backwards-compatibility reasons or extended support.

This commit also adds the Gradle versions plugin that checks for
dependency upgrades in artifact repositories and produces a report; you
can use the following:

    ./gradlew dependencyUpdates
2019-09-02 18:01:09 +02:00
Sebastien Deleuze ca02cc1194 Migrate to AssertJ in Kotlin tests
Closes gh-23475
2019-09-02 15:59:26 +02:00
Sam Brannen ad6231ad29 Add missing @Override annotations 2019-08-23 13:50:58 +02:00
Brian Clozel e9523161f0 Revert "Revert "Refactor Gradle tasks in Spring Framework build""
This reverts commit fb0d618751.
2019-08-20 20:26:43 +02:00
Stephane Nicoll fb0d618751 Revert "Refactor Gradle tasks in Spring Framework build"
This reverts commit 1539ba8991.
2019-08-20 20:07:11 +02:00
Brian Clozel 1539ba8991 Refactor Gradle tasks in Spring Framework build
This commit reorganizes tasks and scripts in the build to only apply
them where they're needed. We're considering here 3 "types" of projects
in our build:
* the root project, handling documentation, publishing, etc
* framework modules (a project that's published as a spring artifact)
* internal modules, such as the BOM, our coroutines support and our
integration-tests

With this change, we're strealining the project configuration for all
spring modules and only applying plugins when needed (typically our
kotlin support).

See gh-23282
2019-08-20 18:17:02 +02:00
Sam Brannen 288461a541 Introduce @EnabledForTestGroups in Spring's test suite
Closes gh-23476
2019-08-17 14:47:24 +02:00
Sam Brannen 979508a7f3 Remove JUnit 4 dependency from all modules except spring-test
This commit removes the JUnit 4 dependency from all modules except
spring-test which provides explicit JUnit 4 support.

This commit also includes the following.

- migration from JUnit 4 assertions to JUnit Jupiter assertions in all
  Kotlin tests
- migration from JUnit 4 assumptions in Spring's TestGroup support to
  JUnit Jupiter assumptions, based on org.opentest4j.TestAbortedException
- introduction of a new TestGroups utility class than can be used from
  existing JUnit 4 tests in the spring-test module in order to perform
  assumptions using JUnit 4's Assume class

See gh-23451
2019-08-17 11:37:21 +02:00
Sam Brannen 3f3e41923f Migrate rest of test suite from JUnit 4 to JUnit Jupiter
This commit migrates the rest of Spring's test suite to JUnit Jupiter,
except spring-test which will be migrated in a separate commit.

See gh-23451
2019-08-17 11:36:58 +02:00
Sam Brannen 6c0e550b86 Polish contribution
See gh-23445
2019-08-10 14:07:15 +02:00
zhuzhuman978 849bbf00b5 Simplify if statements and replace try-finally with try-with-resources
Closes gh-23445
2019-08-10 14:03:18 +02:00
Juergen Hoeller 53d067399d Merge branch '5.1.x' 2019-08-02 01:46:26 +02:00
Juergen Hoeller 7c2e2d40af Polishing 2019-08-02 01:39:02 +02:00
Juergen Hoeller d8e624e97e Consistent suppression of get/clearWarnings without target connection
See gh-23346
2019-08-02 01:19:16 +02:00
Juergen Hoeller fd86f34057 Merge branch '5.1.x' 2019-08-01 15:27:06 +02:00
Juergen Hoeller 871bb57e02 TransactionAwareDataSourceProxy locally handles get/clearWarnings call
Closes gh-23346
2019-08-01 15:26:00 +02:00