Skip to content

Commit

Permalink
Merge pull request #164 from SolaceProducts/stage-2.4.0
Browse files Browse the repository at this point in the history
2.4.0 Release
  • Loading branch information
PhilippeKhalife authored Oct 20, 2022
2 parents 05b4abf + 84c94f9 commit 338ae3a
Show file tree
Hide file tree
Showing 43 changed files with 1,284 additions and 172 deletions.
8 changes: 4 additions & 4 deletions pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@

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

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

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

<!-- Legacy Support for the Spring Cloud Connectors project -->
<spring.cloud.connectors.version>2.2.13.RELEASE</spring.cloud.connectors.version>
Expand All @@ -33,10 +33,10 @@

<!-- 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.6.6</spring.boot.version>
<spring.boot.version>2.7.3</spring.boot.version>

<solace.spring.cloud.connector.version>4.3.9-SNAPSHOT</solace.spring.cloud.connector.version>
<solace.spring.cloud.stream-starter.version>3.3.3-SNAPSHOT</solace.spring.cloud.stream-starter.version>
<solace.spring.cloud.stream-starter.version>3.4.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
19 changes: 10 additions & 9 deletions solace-spring-cloud-bom/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -16,12 +16,13 @@ Note that since Spring Cloud depends on Spring Boot, the Solace Spring Boot BOM

Consult the table below to determine which version of the BOM you need to use:

| Spring Cloud | Solace Spring Cloud BOM |Spring Boot |
|----------------------|----------------------------|-------------------|
|Hoxton.SR1 | 1.0.0 | 2.2.x |
|Hoxton.SR6 | 1.1.0 | 2.3.x |
|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 |
| Spring Cloud | Solace Spring Cloud BOM | Spring Boot |
|--------------|----------------------------|-------------|
| Hoxton.SR1 | 1.0.0 | 2.2.x |
| Hoxton.SR6 | 1.1.0 | 2.3.x |
| 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 |

## Including the BOM

Expand All @@ -34,7 +35,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.3.2</version>
<version>2.4.0</version>
<type>pom</type>
<scope>import</scope>
</dependency>
Expand Down Expand Up @@ -62,7 +63,7 @@ apply plugin: 'io.spring.dependency-management'
dependencyManagement {
imports {
mavenBom "com.solace.spring.cloud:solace-spring-cloud-bom:2.3.2"
mavenBom "com.solace.spring.cloud:solace-spring-cloud-bom:2.4.0"
}
}
Expand All @@ -74,7 +75,7 @@ dependencies {
### Using it with Gradle 5
```groovy
dependencies {
implementation(platform("com.solace.spring.cloud:solace-spring-cloud-bom:2.3.2"))
implementation(platform("com.solace.spring.cloud:solace-spring-cloud-bom:2.4.0"))
implementation("com.solace.spring.cloud:spring-cloud-starter-stream-solace")
}
```
4 changes: 2 additions & 2 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.3.3-SNAPSHOT</version>
<version>2.4.0-SNAPSHOT</version>
<relativePath>../pom.xml</relativePath>
</parent>

<artifactId>solace-spring-cloud-bom</artifactId>
<packaging>pom</packaging>
<version>2.3.3-SNAPSHOT</version>
<version>2.4.0-SNAPSHOT</version>

<name>Solace Spring Cloud BOM</name>
<description>BOM for Solace Spring Cloud</description>
Expand Down
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.8")
compile("com.solace.cloud.cloudfoundry:solace-spring-cloud-connector:4.3.9")
```

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

Expand Down
2 changes: 1 addition & 1 deletion solace-spring-cloud-connector/pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,7 @@
<parent>
<groupId>com.solace.spring.cloud</groupId>
<artifactId>solace-spring-cloud-parent</artifactId>
<version>2.3.3-SNAPSHOT</version>
<version>2.4.0-SNAPSHOT</version>
<relativePath>../solace-spring-cloud-parent/pom.xml</relativePath>
</parent>

Expand Down
8 changes: 4 additions & 4 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.3.3-SNAPSHOT</version>
<version>2.4.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.13.1</solace.jcsmp.version>
<solace.jms.version>10.13.1</solace.jms.version>
<solace.jcsmp.version>10.16.0</solace.jcsmp.version>
<solace.jms.version>10.16.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.17.2</version>
<version>2.19.0</version>
<type>pom</type>
<scope>import</scope>
</dependency>
Expand Down
Original file line number Diff line number Diff line change
@@ -1,9 +1,9 @@
= Spring Cloud Stream Binder for Solace PubSub+
:revnumber: 3.3.2
:revnumber: 3.4.0
:toc: preamble
:toclevels: 3
:icons: font
:scst-version: 3.2.2
:scst-version: 3.2.5

// Github-Specific Settings
ifdef::env-github[]
Expand Down Expand Up @@ -235,12 +235,14 @@ WARNING: **Deprecated:** Since version 3.3.0, this property is deprecated in fav
queueAccessType::
Access type for the consumer group queue.
+
Default: `EndpointProperties.ACCESSTYPE_NONEXCLUSIVE`
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 consumer group queue.
+
Default: `EndpointProperties.PERMISSION_CONSUME`
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]

queueDiscardBehaviour::
If specified, whether to notify sender if a message fails to be enqueued to the consumer group queue.
Expand Down Expand Up @@ -285,6 +287,21 @@ The maximum time to wait for all unacknowledged messages to be acknowledged befo
+
Default: `10000`

flowRebindBackOffInitialInterval::
The initial interval (milliseconds) to back-off when rebinding a flow. +
+
Default: `1000`

flowRebindBackOffMaxInterval::
The maximum interval (milliseconds) to back-off when rebinding a flow. +
+
Default: `30000`

flowRebindBackOffMultiplier::
The multiplier to apply to the back-off interval between each rebind of a flow. +
+
Default: `1.5`

batchMaxSize::
The maximum number of messages per batch. +
Only applicable when `batchMode` is `true`.
Expand Down Expand Up @@ -346,12 +363,14 @@ Default: `3`
errorQueueAccessType::
Access type for the error queue.
+
Default: `EndpointProperties.ACCESSTYPE_NONEXCLUSIVE`
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]

errorQueuePermission::
Permissions for the error queue.
+
Default: `EndpointProperties.PERMISSION_CONSUME`
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]

errorQueueDiscardBehaviour::
If specified, whether to notify sender if a message fails to be enqueued to the error queue.
Expand Down Expand Up @@ -473,12 +492,14 @@ WARNING: **Deprecated:** Since version 3.3.0, this property is deprecated in fav
queueAccessType::
Access type for the required consumer group queue.
+
Default: `EndpointProperties.ACCESSTYPE_NONEXCLUSIVE`
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.
+
Default: `EndpointProperties.PERMISSION_CONSUME`
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]

queueDiscardBehaviour::
If specified, whether to notify sender if a message fails to be enqueued to the required consumer group queue.
Expand Down Expand Up @@ -1068,6 +1089,36 @@ This is a custom health status. It isn't included in the health severity order l
| Status indicating that the binder has suffered an unexpected failure. For instance, the binder may have exhausted all reconnection attempts. User intervention is likely required.
|===

== Solace Binder Metrics

Leveraging https://docs.spring.io/spring-boot/docs/current/reference/html/actuator.html#actuator.metrics[Spring Metrics], the Solace PubSub+ binder exposes the following metrics:

[cols="2m,1,2a,2", options="header"]
|===
| Name
| Type
| Tags
| Description

| solace.message.size.payload
| `DistributionSummary`

Base Units: `bytes`
|* `name: <bindingName>`
| Message payload size.

This is the payload size of the messages received (if `name` is a consumer binding) or published (if `name` is a producer binding) from/to a PubSub+ broker.

| solace.message.size.total
| `DistributionSummary`

Base Units: `bytes`
|* `name: <bindingName>`
| Total message size.

This is the total size of the messages received (if `name` is a consumer binding) or published (if `name` is a producer binding) from/to a PubSub+ broker.
|===

== Resources

For more information about Spring Cloud Streams try these resources:
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.3.3-SNAPSHOT</version>
<version>2.4.0-SNAPSHOT</version>
<relativePath>../../solace-spring-cloud-parent/pom.xml</relativePath>
</parent>

<artifactId>spring-cloud-starter-stream-solace</artifactId>
<version>3.3.3-SNAPSHOT</version>
<version>3.4.0-SNAPSHOT</version>
<packaging>jar</packaging>


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.3.3-SNAPSHOT</version>
<version>2.4.0-SNAPSHOT</version>
<relativePath>../../solace-spring-cloud-parent/pom.xml</relativePath>
</parent>

<artifactId>spring-cloud-stream-binder-solace-core</artifactId>
<version>3.3.3-SNAPSHOT</version>
<version>3.4.0-SNAPSHOT</version>
<packaging>jar</packaging>

<name>Solace Spring Cloud Stream Binder Core</name>
Expand Down Expand Up @@ -45,10 +45,22 @@
<optional>true</optional>
</dependency>

<dependency>
<groupId>io.micrometer</groupId>
<artifactId>micrometer-core</artifactId>
<optional>true</optional>
</dependency>

<dependency>
<groupId>org.assertj</groupId>
<artifactId>assertj-core</artifactId>
<scope>test</scope>
</dependency>

<dependency>
<groupId>org.junit-pioneer</groupId>
<artifactId>junit-pioneer</artifactId>
<version>1.5.0</version>
<version>1.7.1</version>
<scope>test</scope>
</dependency>

Expand Down
Original file line number Diff line number Diff line change
@@ -1,11 +1,13 @@
package com.solace.spring.cloud.stream.binder.inbound;

import com.solace.spring.cloud.stream.binder.inbound.acknowledge.JCSMPAcknowledgementCallbackFactory;
import com.solace.spring.cloud.stream.binder.meter.SolaceMeterAccessor;
import com.solace.spring.cloud.stream.binder.properties.SolaceConsumerProperties;
import com.solace.spring.cloud.stream.binder.util.FlowReceiverContainer;
import com.solace.spring.cloud.stream.binder.inbound.acknowledge.JCSMPAcknowledgementCallbackFactory;
import com.solace.spring.cloud.stream.binder.util.SolaceAcknowledgmentException;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.springframework.cloud.stream.binder.ExtendedConsumerProperties;
import org.springframework.cloud.stream.provisioning.ConsumerDestination;
import org.springframework.core.AttributeAccessor;
import org.springframework.integration.acks.AckUtils;
Expand All @@ -25,16 +27,26 @@ public class BasicInboundXMLMessageListener extends InboundXMLMessageListener {

BasicInboundXMLMessageListener(FlowReceiverContainer flowReceiverContainer,
ConsumerDestination consumerDestination,
SolaceConsumerProperties consumerProperties,
ExtendedConsumerProperties<SolaceConsumerProperties> consumerProperties,
@Nullable BatchCollector batchCollector,
Consumer<Message<?>> messageConsumer,
JCSMPAcknowledgementCallbackFactory ackCallbackFactory,
BiFunction<Message<?>, RuntimeException, Boolean> errorHandlerFunction,
@Nullable SolaceMeterAccessor solaceMeterAccessor,
@Nullable AtomicBoolean remoteStopFlag,
ThreadLocal<AttributeAccessor> attributesHolder,
boolean needHolderAndAttributes) {
super(flowReceiverContainer, consumerDestination, consumerProperties, batchCollector, messageConsumer,
ackCallbackFactory, remoteStopFlag, attributesHolder, needHolderAndAttributes, needHolderAndAttributes);
super(flowReceiverContainer,
consumerDestination,
consumerProperties,
batchCollector,
messageConsumer,
ackCallbackFactory,
solaceMeterAccessor,
remoteStopFlag,
attributesHolder,
needHolderAndAttributes,
needHolderAndAttributes);
this.errorHandlerFunction = errorHandlerFunction;
}

Expand Down
Loading

0 comments on commit 338ae3a

Please sign in to comment.