Releases: SolaceProducts/solace-spring-cloud
Releases · SolaceProducts/solace-spring-cloud
v2.5.0
Solace Projects
Name |
Version |
Note |
Solace Spring Cloud BOM |
2.5.0 |
|
Solace Spring Cloud Stream Starter |
3.5.0 |
|
Solace Spring Cloud Connector |
4.3.10 |
No changes from 4.3.9 |
Global Changes
- Spring Boot upgraded to
2.7.11
- Spring Cloud upgraded to
2021.0.6
- Solace PubSub+ Messaging API for Java (JCSMP) upgraded to
10.19.0
- Solace PubSub+ Messaging API for JMS upgraded to
10.19.0
Specific Project Changes
Solace Spring Cloud Stream Binder
- Added support to publish to a queue
- Fixed an issue of excessive logging when reconnection attempts are exhausted. (#174, #179)
v2.4.0
Solace Projects
Name |
Version |
Note |
Solace Spring Cloud BOM |
2.4.0 |
|
Solace Spring Cloud Stream Starter |
3.4.0 |
|
Solace Spring Cloud Connector |
4.3.9 |
No changes from 4.3.8 |
Global Changes
- Spring Boot upgraded to
2.7.3
- Spring Cloud upgraded to
2021.0.4
- Solace PubSub+ Messaging API for Java (JCSMP) upgraded to
10.16.0
- Solace PubSub+ Messaging API for JMS upgraded to
10.16.0
Specific Project Changes
Solace Spring Cloud Stream Binder
- Added
solace.message.size.total
meter
- Added
solace.message.size.payload
meter
- Added exponential back-off for consecutive flow rebinds (triggered via message rejections)
v2.3.2
Solace Projects
Name |
Version |
Note |
Solace Spring Cloud BOM |
2.3.2 |
|
Solace Spring Cloud Stream Starter |
3.3.2 |
|
Solace Spring Cloud Connector |
4.3.8 |
No changes from 4.3.7 |
Specific Project Changes
Solace Spring Cloud Stream Binder
- Fixed flow connection test to be skipped when binding
auto-startup
is false
.
v2.3.1
Solace Projects
Name |
Version |
Note |
Solace Spring Cloud BOM |
2.3.1 |
|
Solace Spring Cloud Stream Starter |
3.3.1 |
|
Solace Spring Cloud Connector |
4.3.7 |
No change from 4.3.6 |
Global Changes
- Spring Boot upgraded to
2.6.6
- Solace Spring Boot upgraded to
1.2.2
v2.3.0
Solace Projects
Name |
Version |
Note |
Solace Spring Cloud BOM |
2.3.0 |
|
Solace Spring Cloud Stream Starter |
3.3.0 |
|
Solace Spring Cloud Connector |
4.3.6 |
|
Global Changes
- Spring Boot upgraded to
2.6.4
- Spring Cloud upgraded to
2021.0.1
- Solace Spring Boot upgraded to
1.2.1
- Solace PubSub+ Messaging API for Java (JCSMP) upgraded to
10.13.1
- Solace PubSub+ Messaging API for JMS upgraded to
10.13.1
Specific Project Changes
Solace Spring Cloud Stream Binder
- Added config options to change the generated queue name format using SpEL expressions: (#88)
- Added
queueNameExpression
and errorQueueNameExpression
consumer config options
- Added
queueNameExpression
and queueNameExpressionsForRequiredGroups
producer config options
- Deprecated
queueNamePrefix
, useGroupNameInQueueName
, useFamiliarityInQueueName
, useDestinationEncodingInQueueName
, errorQueueNameOverride
, and useGroupNameInErrorQueueName
binding config options
- Added support for Spring health indicator (#55)
- Added new
RECONNECTING
Spring health indicator status
- Added support for consumer pause/resume (#57)
- Added support for batch consumers (#22)
- Added
batchMaxSize
and batchTimeout
consumer config options
- Added
solace_scst_batchedHeaders
message header
- When consuming null payloads, Spring message payloads are set to the empty equivalent payloads and the
solace_scst_nullPayload
message header is added to the message and set to true
- Added
solace_scst_nullPayload
message header
- Added
solace_isReply
message header
- Added
solace_deliveryCount
message header
- This is a Controlled Availability feature
- Please contact Solace to find out if this feature is supported for your use case
- Added configuration metadata for IDE auto-completion (#30)
- Added
addDestinationAsSubscriptionToQueue
binding config option (#48)
- Deprecated
isProvisionSubscriptionsToDurableQueue
in favor of addDestinationAsSubscriptionToQueue
- Fixed Cloud Foundry deployment and removed dependency on
spring-boot-starter-cloud-connectors
(#15)
- Fixed duplicate WARN logs when
maxAttempts
and concurrency
are both greater than 1
(#77)
- Verified that Output Enrichment can be used to override or set default values for outbound Solace message headers (#93)
- This is a framework level feature, no code changes were necessary to support this feature in the binder
Solace Spring Cloud Connector
- Solace Services Info upgraded to
0.4.4
v2.2.1
Solace Projects
Name |
Version |
Note |
Solace Spring Cloud BOM |
2.2.1 |
|
Solace Spring Cloud Stream Starter |
3.2.1 |
|
Solace Spring Cloud Connector |
4.3.5 |
|
Global Changes
- Solace Spring Boot upgraded to
1.1.1
- Upgrade transitive log4j dependencies to
2.16.0
Specific Project Changes
Solace Spring Cloud Connector
- Solace Services Info upgraded to
0.4.3
v2.2.0
Solace Projects
Name |
Version |
Note |
Solace Spring Cloud BOM |
2.2.0 |
|
Solace Spring Cloud Stream Starter |
3.2.0 |
|
Solace Spring Cloud Connector |
4.3.4 |
No change from 4.3.3 |
Global Changes
- Solace JCSMP & JMS upgraded to
10.12.0
Specific Project Changes
Solace Spring Cloud Stream Starter
- Add
solace_replicationGroupMessageId
message header
v2.1.0
Solace Projects
Name |
Version |
Note |
Solace Spring Cloud BOM |
2.1.0 |
|
Solace Spring Cloud Stream Starter |
3.1.0 |
|
Solace Spring Cloud Connector |
4.3.3 |
No change from 4.3.2 |
Specific Project Changes
Solace Spring Cloud Stream Starter
- Add
solace_scst_confirmCorrelation
message header to handle asynchronous publisher confirmations (#61)
v2.0.0
Solace Projects
Name |
Version |
Note |
Solace Spring Cloud BOM |
2.0.0 |
[MAJOR] |
Solace Spring Cloud Stream Starter |
3.0.0 |
[MAJOR] |
Solace Spring Cloud Connector |
4.3.2 |
|
Global Changes
- Spring Cloud upgraded to
2020.0.1
- Spring Boot upgraded to
2.4.3
- Solace JCSMP & JMS upgraded to
10.10.0
- Fix Java 11 build (#38)
- Migrate CI from Travis to Github Actions (#52)
- Use Maven Failsafe plugin to run integration tests
Specific Project Changes
Solace Spring Cloud Stream Starter
- Add Solace Spring Message Headers,
SolaceHeaders
, to set/get Solace message properties (#50)
- Add Solace Binder Spring Message Headers,
SolaceBinderHeaders
, to get/set Solace binder metadata and perform directive actions when publishing/consuming messages (#50)
- Renamed "Binder DMQ" to "Error Queue"
- Fix requeuing logic so that the messages are properly redelivered instead of republished (#13)
- Add support for manual acknowledgments (#14)
- Removed the message discard error handling strategy from defined consumer groups. The new default for these will be requeuing.
- Add support for wildcard destinations by converting
*
& >
to _
for the generated queue name (#3)
- add consumer config options to omit group name from the consumer group queue or error queue names (#28)
- add
errorQueueNameOverride
consumer config option to override the generated error queue name with a custom config-provided one. (#28)
- Add
headerExclusions
producer config option to exclude headers from published messages
- Add
nonserializableHeaderConvertToString
producer config option to convert non-serializable headers to strings
- Override the default DMQ eligibility when publishing to be
true
(#9)
- Fix JMS interoperability by ensuring that all binder-defined properties have JMS-valid names and values.
- Fix
null
payload error handling (#54)
- Fix error handling failures (#36)
- When an error handler throws an exception,
REJECT
the message
- When an error handler throws a
RequeueCurrentMessageException
, REQUEUE
the message
- Retry to publish to the error queue up to 3 times (configurable with
errorQueueMaxDeliveryAttempts
) then fallback to REQUEUE
- When
REQUEUE
fails, asynchronously re-attempt until successful.
- Fix asynchronous publishing exceptions to be sent to error channels (#34)
- Add
errorMsgDmqEligibility
consumer config option to override failed input messages' DMQ eligibility property when republishing to error queues
- Refactor default generated queue names to be more similar to Solace's shared subscriptions feature
- Properly construct the
ErrorMessage
for publisher failures
- Fix polled consumer shutdown errors
- Configure client info provider to display Solace SCSt Binder release details
- Reduce warning levels from WARN to INFO when provisioning is disabled or when subscriptions already exist on queues
- Document ACL Profile tips when using error queues (#60)
Backwards Breaking Changes
Messages produced by older versions of the binder cannot be consumed by applications using this binder version and beyond
Because of some of these backwards-breaking changes (particularly those regarding the message headers), messages produced by older versions binder are no longer compatible with this version of binder.
Reserved Message Header Prefix
Spring message headers which begin with solace_
are now reserved for Solace. User-defined solace_
-prefixed headers are not supported.
New Generated Queue Name Syntax
Queue Type |
Old |
New |
Consumer Group |
<prefix><destination>.<group> |
<prefix>/<familiarity>/<group>/<destination-encoding>/<encoded-destination> |
Error Queue |
<prefix><destination>.<group>.error |
<prefix>/error/<familiarity>/<group>/<destination-encoding>/<encoded-destination> |
Refer to the Generated Queue Name Syntax for more info.
Serialized Headers are now Encoded
Serializable headers used to only be serialized to byte[]
s when published, but they are now also encoded to base64 strings (and will set the SolaceBinderHeaders.SERIALIZED_HEADERS_ENCODING
to base64
). When consuming, the binder will use the SolaceBinderHeaders.SERIALIZED_HEADERS_ENCODING
property for decode serialized headers before deserializing them.
Failed Message Handling Strategy Changes
- Binder DMQ was renamed to Error Queue to prevent confusion with the message broker's DMQ.
- Requeuing is no longer supported for anonymous consumer groups (i.e. temporary queues) since these cannot be rebound.
- Removed the message discard error handling strategy for well-known consumer groups. The new default for these will be requeuing.
DMQ Eligibility default
Published messages will now be DMQ eligible by default.
Refactored Message Headers
Old Name |
New Name |
Value Changes |
Note |
solaceSpringCloudStreamBinderVersion |
solace_scst_messageVersion |
|
Used to define the minimum version of the publishing Solace SCSt-binder since the Spring-Solace mapper was last changed. Is now a static number set by the publisher to indicate the Spring Cloud Stream Solace message version. |
isJavaSerializedObject |
solace_scst_serializedPayload |
|
Rename. |
_isJavaSerializedObject-<headerName> |
solace_scst_serializedHeaders |
SDTStream -> String |
Is now a JSON String array of header names where each entry indicates that that header’s value was serialized by a Solace Spring Cloud Stream binder before publishing it to a broker. |
solace_raw_message |
sourceData |
|
Rename. DO NOT use this in your application. It only exists for debugging purposes. Usage of it is not supported and modifications or actions done on this object could break the binder's message processing. |
Removed Config Options
Name |
Note |
msgInternalDmqEligible |
Use the SolaceHeaders.DMQ_ELIGIBILE Spring message header instead |
msgTtl |
Use the SolaceHeaders.TIME_TO_LIVE Spring message header instead |
requeueRejected |
Message discarding was removed in favor of requeuing as the new default error handling strategy. i.e. requeueRejected will always be true . There’s no reason to have this config option anymore. |
anonymousGroupPostfix |
Invalid with the introduction of the familiarity modifier. |
Refactored Config Options
Old Name |
New Name |
Note |
prefix |
queueNamePrefix |
Rename. Default value changed to scst . Now only applies to just the queue name instead of both the queue name and topic subscriptions. |
autoBindDmq |
autoBindErrorQueue |
Rename. |
provisionDmq |
provisionErrorQueue |
Rename. |
dmqAccessType |
errorQueueAccessType |
Rename. |
dmqPermission |
errorQueuePermission |
Rename. |
dmqDiscardBehaviour |
errorQueueDiscardBehaviour |
Rename. |
dmqMaxMsgRedelivery |
errorQueueMaxMsgRedelivery |
Rename. |
dmqMaxMsgSize |
errorQueueMaxMsgSize |
Rename. |
dmqQuota |
errorQueueQuota |
Rename. |
dmqRespectsMsgTtl |
errorQueueRespectsMsgTtl |
Rename. |
republishedMsgTtl |
errorMsgTtl |
Rename. |
Solace Spring Cloud Connector
- Spring Cloud Connectors upgraded to
2.2.13.RELEASE
v1.1.1
Solace Projects
Name |
Version |
Solace Spring Cloud BOM |
1.1.1 |
Solace Spring Cloud Stream Starter |
2.1.1 |
Solace Spring Cloud Connector |
4.3.1 |
Specific Project Changes
Solace Spring Cloud Stream Starter
- Fix high CPU usage by doing a JCSMP blocking poll instead of a non-blocking one in the consumers' worker threads. (#20)
- Fix JCSMP errors during shutdown