Skip to content

Releases: SolaceProducts/solace-spring-cloud

v2.3.2

12 Aug 14:11
Compare
Choose a tag to compare

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

01 Apr 22:55
Compare
Choose a tag to compare

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

12 Mar 00:33
Compare
Choose a tag to compare

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

17 Dec 22:53
Compare
Choose a tag to compare

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

02 Nov 19:36
Compare
Choose a tag to compare

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

18 Mar 22:42
Compare
Choose a tag to compare

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

26 Feb 18:40
Compare
Choose a tag to compare

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

28 Jul 13:13
Compare
Choose a tag to compare

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

v1.1.0

17 Jul 16:41
Compare
Choose a tag to compare

Solace Projects

Name Version
Solace Spring Cloud BOM 1.1.0
Solace Spring Cloud Stream Starter 2.1.0
Solace Spring Cloud Connector 4.3.0

Global Changes

  • Spring Cloud upgraded to Hoxton.SR6
  • Solace Spring Boot BOM upgraded to 1.1.0

Specific Project Changes

Solace Spring Cloud Stream Starter

  • Add support for consumer concurrency binding-config (#7)
  • Add support for scst_targetDestination message-header to re-route messages to different destinations on a message-by-message basis
  • Remove workaround introduced in 1.0.1 to prevent JVM shutdown. This is now naturally handled by the fix for #7

Solace Spring Cloud Connector

  • Spring Cloud Connectors upgraded to 2.2.8

v1.0.1

03 Jun 19:04
Compare
Choose a tag to compare

Solace Spring Cloud Projects

Name Version
Solace Spring Cloud BOM 1.0.1
Solace Spring Cloud Stream Starter 2.0.1
Solace Spring Cloud Connector 4.2.1

Specific Project Changes

Solace Spring Cloud Stream Starter

Fix JVM shutdown at startup when consumers are running. Dynamically create and delete a thread when there is more than one consumer configured for a particular Solace binder.