Skip to content

Commit

Permalink
Merge pull request #215 from SolaceProducts/stage-2.5.0
Browse files Browse the repository at this point in the history
2.5.0 Release, thank you @carolmorneau
  • Loading branch information
PhilippeKhalife authored Apr 24, 2023
2 parents 71f624c + 0806148 commit 77a9bfa
Show file tree
Hide file tree
Showing 32 changed files with 713 additions and 93 deletions.
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

0 comments on commit 77a9bfa

Please sign in to comment.