Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

2.5.0 Release #215

Merged
merged 48 commits into from
Apr 24, 2023
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
48 commits
Select commit Hold shift + click to select a range
777e5b4
Bump sol-jcsmp from 10.16.0 to 10.18.0
dependabot[bot] Feb 1, 2023
c88d5bb
Bump solace-spring-boot-bom from 1.2.2 to 1.3.0
dependabot[bot] Feb 16, 2023
9329fc8
Bump log4j-bom from 2.19.0 to 2.20.0
dependabot[bot] Feb 21, 2023
36d6c91
Empty commit
carolmorneau Mar 10, 2023
0afabb4
Merge pull request #39 from SolaceDev/spring-upgrades
carolmorneau Mar 10, 2023
3b7b970
Prep with new SNAPSHOT versions
carolmorneau Mar 11, 2023
818ff4a
Merge pull request #40 from SolaceDev/SetSNAPSHOTVersions
carolmorneau Mar 11, 2023
80fa495
SOL-90113: Fixing missing metrics when connecting to multiple systems
carolmorneau Mar 14, 2023
023f224
Renaming MultiBinderTests to MultiBinderIT
carolmorneau Mar 14, 2023
3f1d89d
Merge pull request #41 from SolaceDev/SOL-90113-missingMetrics
carolmorneau Mar 15, 2023
d2895f3
Update the 'Publish Unit Test Results' GH Action
carolmorneau Mar 15, 2023
3b2dc65
Merge pull request #42 from SolaceDev/upgradeGHAction
carolmorneau Mar 15, 2023
b8faa5c
Merge pull request #201 from SolaceDev/stage-2.5.0
carolmorneau Mar 15, 2023
da40002
Merge pull request #192 from SolaceProducts/dependabot/maven/com.sola…
carolmorneau Mar 15, 2023
3be8f80
Merge pull request #193 from SolaceProducts/dependabot/maven/com.sola…
carolmorneau Mar 15, 2023
d04e03f
Merge pull request #194 from SolaceProducts/dependabot/maven/org.apac…
carolmorneau Mar 15, 2023
e02c98c
Avoid using testcontainers lang math as it is removed in recent versions
carolmorneau Mar 15, 2023
7f00756
Increase test timeouts to account for tests running against a remote …
carolmorneau Mar 16, 2023
07ef1cd
Merge pull request #43 from SolaceDev/testRemoteBroker
carolmorneau Mar 16, 2023
77d30ba
end InboundXMLMessageListener on StaleSessionException
Nephery Oct 21, 2022
8fef15b
Unit testing listener stopping on StaleSessionException
carolmorneau Mar 24, 2023
8ea09cd
Upgrading to spring-boot 2.7.10
carolmorneau Mar 24, 2023
d8cb415
Merge pull request #48 from SolaceDev/SOL-79061-staleSessionLogging
carolmorneau Mar 24, 2023
a730edf
Merge pull request #208 from SolaceDev/stage-2.5.0
carolmorneau Mar 24, 2023
ce40204
Increasing retryAssert timeout
carolmorneau Mar 27, 2023
7c10c0a
Publish to queue support - Part 1
carolmorneau Mar 28, 2023
393ea31
SolaceBinderHeaderMeta: Adding note saying writable/readable are only…
carolmorneau Mar 28, 2023
69f92e5
Document publish to queue feature
carolmorneau Mar 30, 2023
fee2c74
Update compatibility matrix
carolmorneau Mar 30, 2023
754a477
Test publish to queue as well as dynamic destinations
carolmorneau Mar 30, 2023
9952add
Update 'Dynamic Producer Destinations' docs
carolmorneau Mar 30, 2023
c4150de
Prevent producer requiredGroups from being set when destinationType=q…
carolmorneau Mar 30, 2023
7eea93f
Integration tests for publish to queue feature
carolmorneau Mar 31, 2023
1636e34
Adding a debug log showing where a message is published
carolmorneau Apr 1, 2023
1ede08b
Merge pull request #51 from SolaceDev/SOL-85318-publishToQueue
carolmorneau Apr 1, 2023
d85211e
Merge pull request #212 from SolaceDev/stage-2.5.0
carolmorneau Apr 1, 2023
d601350
Preparing for 2.5.0 release
carolmorneau Apr 12, 2023
5dfc976
Upgrade to sol-jms:10.18.0
carolmorneau Apr 13, 2023
e2a24e7
Disabling parallel test execution as the option to toggle it -Djunit.…
carolmorneau Apr 13, 2023
e9d4952
Upgrade to sol-jcsmp:10.19.0 and sol-jms:10.19.0
carolmorneau Apr 13, 2023
73a8764
Merge pull request #52 from SolaceDev/upg-sol-jms
carolmorneau Apr 13, 2023
fdb2688
Merge pull request #213 from SolaceDev/stage-2.5.0
carolmorneau Apr 13, 2023
4894af3
Merge branch 'master' into stage-2.5.0
carolmorneau Apr 18, 2023
bc2f8be
Merge branch 'SolaceProducts:stage-2.5.0' into stage-2.5.0
carolmorneau Apr 18, 2023
e88252d
Merge pull request #216 from SolaceDev/stage-2.5.0
carolmorneau Apr 18, 2023
4f783a6
Upgrading to spring-boot:2.7.11
carolmorneau Apr 20, 2023
843113f
Addressing documentation comment
carolmorneau Apr 20, 2023
0806148
Merge pull request #217 from SolaceDev/upgSpringBoot
carolmorneau Apr 20, 2023
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
9 changes: 3 additions & 6 deletions .github/workflows/build-test.yml
Original file line number Diff line number Diff line change
Expand Up @@ -52,15 +52,12 @@ jobs:
**/target/failsafe-reports/*.xml
**/target/surefire-reports/*.xml
- name: Publish Unit Test Results
if: (success() || failure()) && (github.actor != 'dependabot[bot]' || (github.event_name == 'push' && !contains(github.ref, 'dependabot')))
uses: EnricoMi/publish-unit-test-result-action@v1
if: ${{ !cancelled() && (github.actor != 'dependabot[bot]' || (github.event_name == 'push' && !contains(github.ref, 'dependabot'))) }}
uses: EnricoMi/publish-unit-test-result-action@v2
continue-on-error: true
with:
check_name: Unit Test Results
comment_mode: create new
fail_on: nothing
hide_comments: orphaned commits
files: |
junit_files: |
**/target/failsafe-reports/*.xml
!**/target/failsafe-reports/failsafe-summary.xml
**/target/surefire-reports/*.xml
2 changes: 1 addition & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -95,7 +95,7 @@ TEST_SOLACE_MGMT_PASSWORD=admin

#### Parallel Test Execution

Parallel test execution is enabled by default. Add the `-Djunit.jupiter.execution.parallel.enabled=false` option to your command to disable parallel test execution.
Parallel test execution is disabled by default. Add the `-Djunit.jupiter.execution.parallel.enabled=true` option to your command to enable parallel test execution.

## Release Process

Expand Down
16 changes: 8 additions & 8 deletions pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -5,12 +5,12 @@
<parent>
<groupId>com.solace.spring.boot</groupId>
<artifactId>solace-spring-boot-bom</artifactId>
<version>1.2.2</version>
<version>1.3.0</version>
</parent>

<groupId>com.solace.spring.cloud</groupId>
<artifactId>solace-spring-cloud-build</artifactId>
<version>2.4.3-SNAPSHOT</version>
<version>2.5.0-SNAPSHOT</version>
<packaging>pom</packaging>

<name>Solace Spring Cloud Build</name>
Expand All @@ -21,22 +21,22 @@
<repoName>SolaceProducts</repoName>

<!-- This is the version of Spring Cloud we have targeted for this build -->
<spring.cloud.version>2021.0.4</spring.cloud.version>
<spring.cloud.version>2021.0.6</spring.cloud.version>

<!-- Legacy Support for the Spring Cloud Connectors project -->
<spring.cloud.connectors.version>2.2.13.RELEASE</spring.cloud.connectors.version>

<!-- This is the version of Solace Spring Boot we have targeted for this build -->
<!-- This also dictates the expected version of Spring Boot -->
<!-- Must match ${project.parent.version} -->
<solace.spring.boot.bom.version>1.2.2</solace.spring.boot.bom.version>
<solace.spring.boot.bom.version>1.3.0</solace.spring.boot.bom.version>

<!-- Override spring-boot version from solace-spring-boot to latest patch version -->
<!-- Remove this if the next version of solace-spring-boot works fine -->
<spring.boot.version>2.7.3</spring.boot.version>
<spring.boot.version>2.7.11</spring.boot.version>

<solace.spring.cloud.connector.version>4.3.12-SNAPSHOT</solace.spring.cloud.connector.version>
<solace.spring.cloud.stream-starter.version>3.4.3-SNAPSHOT</solace.spring.cloud.stream-starter.version>
<solace.spring.cloud.connector.version>4.3.10-SNAPSHOT</solace.spring.cloud.connector.version>
<solace.spring.cloud.stream-starter.version>3.5.0-SNAPSHOT</solace.spring.cloud.stream-starter.version>

<solace.integration.test.support.version>0.9.1</solace.integration.test.support.version>
<solace.integration.test.support.fetch_checkout.skip>false</solace.integration.test.support.fetch_checkout.skip>
Expand Down Expand Up @@ -376,4 +376,4 @@
</plugin>
</plugins>
</build>
</project>
</project>
7 changes: 4 additions & 3 deletions solace-spring-cloud-bom/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -23,6 +23,7 @@ Consult the table below to determine which version of the BOM you need to use:
| 2020.0.1 | 2.0.0, 2.1.0, 2.2.0, 2.2.1 | 2.4.x |
| 2021.0.1 | 2.3.0, 2.3.1, 2.3.2 | 2.6.x |
| 2021.0.4 | 2.4.0 | 2.7.x |
| 2021.0.6 | 2.5.0 | 2.7.x |

## Including the BOM

Expand All @@ -35,7 +36,7 @@ In addition to showing how to include the BOM, the following snippets also shows
<dependency>
<groupId>com.solace.spring.cloud</groupId>
<artifactId>solace-spring-cloud-bom</artifactId>
<version>2.4.0</version>
<version>2.5.0</version>
<type>pom</type>
<scope>import</scope>
</dependency>
Expand Down Expand Up @@ -63,7 +64,7 @@ apply plugin: 'io.spring.dependency-management'

dependencyManagement {
imports {
mavenBom "com.solace.spring.cloud:solace-spring-cloud-bom:2.4.0"
mavenBom "com.solace.spring.cloud:solace-spring-cloud-bom:2.5.0"
}
}

Expand All @@ -75,7 +76,7 @@ dependencies {
### Using it with Gradle 5
```groovy
dependencies {
implementation(platform("com.solace.spring.cloud:solace-spring-cloud-bom:2.4.0"))
implementation(platform("com.solace.spring.cloud:solace-spring-cloud-bom:2.5.0"))
implementation("com.solace.spring.cloud:spring-cloud-starter-stream-solace")
}
```
6 changes: 3 additions & 3 deletions solace-spring-cloud-bom/pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -5,13 +5,13 @@
<parent>
<groupId>com.solace.spring.cloud</groupId>
<artifactId>solace-spring-cloud-build</artifactId>
<version>2.4.3-SNAPSHOT</version>
<version>2.5.0-SNAPSHOT</version>
<relativePath>../pom.xml</relativePath>
</parent>

<artifactId>solace-spring-cloud-bom</artifactId>
<packaging>pom</packaging>
<version>2.4.3-SNAPSHOT</version>
<version>2.5.0-SNAPSHOT</version>

<name>Solace Spring Cloud BOM</name>
<description>BOM for Solace Spring Cloud</description>
Expand Down Expand Up @@ -53,4 +53,4 @@
</plugin>
</plugins>
</build>
</project>
</project>
4 changes: 2 additions & 2 deletions solace-spring-cloud-connector/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -76,7 +76,7 @@ Include version 4.0.0 or later to use Spring Boot release 2.x

```
// Solace Cloud
compile("com.solace.cloud.cloudfoundry:solace-spring-cloud-connector:4.3.9")
compile("com.solace.cloud.cloudfoundry:solace-spring-cloud-connector:4.3.10")
```

### Using it with Maven
Expand All @@ -86,7 +86,7 @@ compile("com.solace.cloud.cloudfoundry:solace-spring-cloud-connector:4.3.9")
<dependency>
<groupId>com.solace.cloud.cloudfoundry</groupId>
<artifactId>solace-spring-cloud-connector</artifactId>
<version>4.3.9</version>
<version>4.3.10</version>
</dependency>
```

Expand Down
4 changes: 2 additions & 2 deletions solace-spring-cloud-connector/pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -21,15 +21,15 @@
<parent>
<groupId>com.solace.spring.cloud</groupId>
<artifactId>solace-spring-cloud-parent</artifactId>
<version>2.4.3-SNAPSHOT</version>
<version>2.5.0-SNAPSHOT</version>
<relativePath>../solace-spring-cloud-parent/pom.xml</relativePath>
</parent>

<modelVersion>4.0.0</modelVersion>
<groupId>com.solace.cloud.cloudfoundry</groupId>
<artifactId>solace-spring-cloud-connector</artifactId>
<packaging>jar</packaging>
<version>4.3.12-SNAPSHOT</version>
<version>4.3.10-SNAPSHOT</version>
<name>Spring Cloud Connectors for Solace PubSub+ on Cloud Foundry</name>
<description>Spring Cloud Connectors for Solace PubSub+ on Cloud Foundry.</description>
<url>https://github.com/${repoName}/solace-spring-cloud/tree/${project.scm.tag}/solace-spring-cloud-connector</url>
Expand Down
14 changes: 7 additions & 7 deletions solace-spring-cloud-parent/pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@
<parent>
<groupId>com.solace.spring.cloud</groupId>
<artifactId>solace-spring-cloud-build</artifactId>
<version>2.4.3-SNAPSHOT</version>
<version>2.5.0-SNAPSHOT</version>
<relativePath>../pom.xml</relativePath>
</parent>

Expand All @@ -23,8 +23,8 @@
<maven.compiler.target>1.8</maven.compiler.target>
<maven.compiler.source>1.8</maven.compiler.source>

<solace.jcsmp.version>10.16.0</solace.jcsmp.version>
<solace.jms.version>10.16.0</solace.jms.version>
<solace.jcsmp.version>10.19.0</solace.jcsmp.version>
<solace.jms.version>10.19.0</solace.jms.version>
</properties>

<dependencyManagement>
Expand All @@ -36,7 +36,7 @@
<dependency>
<groupId>org.apache.logging.log4j</groupId>
<artifactId>log4j-bom</artifactId>
<version>2.19.0</version>
<version>2.20.0</version>
<type>pom</type>
<scope>import</scope>
</dependency>
Expand Down Expand Up @@ -96,7 +96,7 @@
<configuration>
<properties>
<configurationParameters>
junit.jupiter.execution.parallel.enabled=true
junit.jupiter.execution.parallel.enabled=false
</configurationParameters>
</properties>
</configuration>
Expand All @@ -116,7 +116,7 @@
<configuration>
<properties>
<configurationParameters>
junit.jupiter.execution.parallel.enabled=true
junit.jupiter.execution.parallel.enabled=false
</configurationParameters>
</properties>
</configuration>
Expand All @@ -126,4 +126,4 @@
</plugins>
</pluginManagement>
</build>
</project>
</project>
Original file line number Diff line number Diff line change
@@ -1,9 +1,9 @@
= Spring Cloud Stream Binder for Solace PubSub+
:revnumber: 3.4.0
:revnumber: 3.5.0
:toc: preamble
:toclevels: 3
:icons: font
:scst-version: 3.2.5
:scst-version: 3.2.7

// Github-Specific Settings
ifdef::env-github[]
Expand Down Expand Up @@ -413,6 +413,15 @@ The following properties are available for Solace producers only and must be pre

See link:../../solace-spring-cloud-stream-binder/solace-spring-cloud-stream-binder-core/src/main/java/com/solace/spring/cloud/stream/binder/properties/SolaceCommonProperties.java[SolaceCommonProperties] and link:../../solace-spring-cloud-stream-binder/solace-spring-cloud-stream-binder-core/src/main/java/com/solace/spring/cloud/stream/binder/properties/SolaceProducerProperties.java[SolaceProducerProperties] for the most updated list.

destinationType::
Specifies whether the configured `destination` is a `topic` or a `queue`.
+
When set to `topic`, the `destination` name is a topic subscription added on a queue.
+
When set to `queue`, the producer binds to a queue matching the `destination` name. The queue can be auto-provisioned with `provisionDurableQueue=true` however, all naming prefix and queue name generation options do not apply. A queue will be provisioned using the `destination` name explicitly.
+
Default: `topic`

headerExclusions::
The list of headers to exclude from the published message. Excluding Solace message headers is not supported.
+
Expand All @@ -426,7 +435,7 @@ Default: `false`
IMPORTANT: Non-serializable headers should have a meaningful `toString()` implementation. Otherwise enabling this feature may result in potential data loss.

provisionDurableQueue::
Whether to provision durable queues for non-anonymous consumer groups. This should only be set to `false` if you have externally pre-provisioned the required queue on the message broker.
Whether to provision durable queues for non-anonymous consumer groups or queue destinations. This should only be set to `false` if you have externally pre-provisioned the required queue on the message broker.
+
Default: `true` +
See: <<Generated Queue Name Syntax>>
Expand All @@ -435,6 +444,8 @@ addDestinationAsSubscriptionToQueue::
Whether to add the Destination as a subscription to queue during provisioning.
+
Default: `true`
+
NOTE: Does not apply when `destinationType=queue`.

provisionSubscriptionsToDurableQueue::
Whether to add topic subscriptions to durable queues for non-anonymous consumer groups. This should only be set to `false` if you have externally pre-added the required topic subscriptions (the destination topic should be added at minimum) on the consumer group's queue on the message broker. This property also applies to topics added by the `queueAdditionalSubscriptions` property.
Expand Down Expand Up @@ -490,39 +501,39 @@ See: <<Generated Queue Name Syntax>>
WARNING: **Deprecated:** Since version 3.3.0, this property is deprecated in favor of `queueNameExpression` and `queueNameExpressionsForRequiredGroups`. The destination encoding can be removed from queue names by removing it directly from these SpEL expressions.

queueAccessType::
Access type for the required consumer group queue.
Access type for binder provisioned queues.
+
Default: `0` (ACCESSTYPE_NONEXCLUSIVE) +
See: https://docs.solace.com/API-Developer-Online-Ref-Documentation/java/constant-values.html#com.solacesystems.jcsmp.EndpointProperties.ACCESSTYPE_EXCLUSIVE[The `ACCESSTYPE_` prefixed constants for other possible values]

queuePermission::
Permissions for the required consumer group queue.
Permissions for binder provisioned queues.
+
Default: `2` (PERMISSION_CONSUME) +
See: https://docs.solace.com/API-Developer-Online-Ref-Documentation/java/constant-values.html#com.solacesystems.jcsmp.EndpointProperties.ACCESSTYPE_EXCLUSIVE[The `PERMISSION_` prefixed constants for other possible values]
See: https://docs.solace.com/API-Developer-Online-Ref-Documentation/java/constant-values.html#com.solacesystems.jcsmp.EndpointProperties.PERMISSION_CONSUME[The `PERMISSION_` prefixed constants for other possible values]

queueDiscardBehaviour::
If specified, whether to notify sender if a message fails to be enqueued to the required consumer group queue.
Queue discard behaviour for binder provisioned queues. Whether to notify sender if a message fails to be enqueued to the endpoint. A null value means use the appliance default.
+
Default: `null`

queueMaxMsgRedelivery::
Sets the maximum message redelivery count on the required consumer group queue. (Zero means retry forever).
Sets the maximum message redelivery count for binder provisioned queues. (Zero means retry forever).
+
Default: `null`

queueMaxMsgSize::
Maximum message size for the required consumer group queue.
Maximum message size for binder provisioned queues.
+
Default: `null`

queueQuota::
Message spool quota for the required consumer group queue.
Message spool quota for binder provisioned queues.
+
Default: `null`

queueRespectsMsgTtl::
Whether the required consumer group queue respects Message TTL.
Whether the binder provisioned queues respect Message TTL.
+
Default: `null`

Expand All @@ -532,6 +543,8 @@ These subscriptions may also contain wildcards.
+
Default: Empty `Map&lt;String,String[]&gt;` +
See: <<Overview>> for more info on how this binder uses topic-to-queue mapping to implement Spring Cloud Streams consumer groups.
+
NOTE: Does not apply when `destinationType=queue`.

=== Solace Message Headers

Expand Down Expand Up @@ -733,6 +746,22 @@ The consolidated list of message headers for a batch of messages where the heade
| Internal Binder Use Only
| "base64"
| The encoding algorithm used to encode the headers indicated by `solace_scst_serializedHeaders`.

| solace_scst_targetDestinationType
| String
| Write
|
| Only applicable when `scst_targetDestination` is set.

*topic*

Specifies that the dynamic destination is a topic

*queue*

Specifies that the dynamic destination is a queue

When absent, the binding’s configured destination-type is used.
|===

== Native Payload Types
Expand Down Expand Up @@ -972,21 +1001,25 @@ This property can be configured for dynamically created queues by using https://

Spring Cloud Stream has a reserved message header called `scst_targetDestination` (retrievable via `BinderHeaders.TARGET_DESTINATION`), which allows for messages to be redirected from their bindings' configured destination to the target destination specified by this header.

For this binder's implementation of this header, the target destination defines the _exact_ Solace topic to which a message will be sent. i.e. No post-processing is done for this header.
For this binder's implementation of this header, the target destination defines the _exact_ Solace topic or queue to which a message will be sent. i.e. No post-processing is done.

This binder also adds a reserved message header called `solace_scst_targetDestinationType` (retrievable via `SolaceBinderHeaders.TARGET_DESTINATION_TYPE`), which allows to override the configured producer `destination-type`.

[source,java]
----
public class MyMessageBuilder {
public Message<String> buildMeAMessage() {
return MessageBuilder.withPayload("payload")
.setHeader(BinderHeaders.TARGET_DESTINATION, "some-dynamic-destination") // <1>
.setHeader(SolaceBinderHeaders.TARGET_DESTINATION_TYPE, "topic") // <2>
.build();
}
}
----
<1> This message will be sent to the `some-dynamic-destination` topic, ignoring the producer's configured destination
<1> This message will be sent to the `some-dynamic-destination` topic, ignoring the producer's configured destination.
<2> Optionally, the configured producer `destination-type` can be overridden.

NOTE: This header is cleared by the message's producer before it is sent off to the message broker. So you should attach the target destination to your message payload if you want to get that information on the consumer-side.
NOTE: Those 2 headers are cleared from the message before it is sent off to the message broker. So you should attach that information to your message payload if you want to get that information on the consumer-side.

== Failed Consumer Message Error Handling

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -5,12 +5,12 @@
<parent>
<groupId>com.solace.spring.cloud</groupId>
<artifactId>solace-spring-cloud-parent</artifactId>
<version>2.4.3-SNAPSHOT</version>
<version>2.5.0-SNAPSHOT</version>
<relativePath>../../solace-spring-cloud-parent/pom.xml</relativePath>
</parent>

<artifactId>spring-cloud-starter-stream-solace</artifactId>
<version>3.4.3-SNAPSHOT</version>
<version>3.5.0-SNAPSHOT</version>
<packaging>jar</packaging>


Expand Down
Loading