[[whats-new-part]]
= What's New?

[[spring-integration-intro-new]]
For those who are already familiar with Spring Integration, this chapter provides a brief overview of the new features of version 6.4.

If you are interested in the changes and features that were introduced in earlier versions, see the xref:history.adoc[Change History].

[[what-s-new-in-spring-integration-6-4]]
== What's New in Spring Integration 6.4?

If you are interested in more details, see the Issue Tracker tickets that were resolved as part of the 6.4 development process.

In general the project has been moved to the latest dependency versions.

[[x6.4-new-components]]
=== New Components

[[x6.4-general]]
=== General Changes

[[x6.4-remote-files-changes]]
=== Remote File Adapters Changes

The `AbstractRemoteFileStreamingMessageSource` has now a convenient `clearFetchedCache()` API to remove references from cache for not processed remote files.
The references stay in cache because polling configuration does not allow to process all the fetched in one cycle, and the target `SessionFactory` might be changed between polling cycles, e.g. via `RotatingServerAdvice`.

[[x6.4-jdbc-changes]]
=== JDBC Changes

The `LobHandler` (and respective API) has been deprecated for removal in Spring Framework `6.2`.
Respective option on `JdbcMessageStore` (and similar) have been deprecated as well.
The byte array handling for serialized message is fully deferred to JDBC driver.

The `LockRepository.delete()` method return the result of removing ownership of a distributed lock.
And the `JdbcLockRegistry.JdbcLock.unlock()` method throws `ConcurrentModificationException` if the ownership of the lock is expired.

[[x6.4-zeromq-changes]]
=== ZeroMQ Changes

The outbound component `ZeroMqMessageHandler` (and respective API) can now bind a TCP port instead of connecting to a given URL.

[[x6.4-redis-changes]]
=== Redis Changes

Instead of throwing `IllegalStateException`, the `RedisLockRegistry.RedisLock.unlock()` method throws `ConcurrentModificationException` if the ownership of the lock is expired.