Release Notes: Solace PubSub+ Messaging API for Java, Version 1.5.0
Release History for Solace PubSub+ Messaging API for Java, Version 1.5.0
March 2024

New Features Introduced in Release 1.5.0 and Earlier Releases

This section lists the new features introduced in the Solace PubSub+ Messaging API for Java between releases 1.5.0 and 1.0.0.
NameDescriptionIntroduced in Version
Java - Update API License Agreement
We have simplified the API license text and clarified that distributing works containing the Solace APIs is allowed.
1.5.0
Support for HTTP And SOCKS5 Proxy
The API now supports connecting to a Solace broker via an HTTP or SOCKS5 proxy.
1.5.0
Java API - Provide Ability to NACK a Specific AD Message and Force Re-delivery
The Messaging API for Java now supports message NACK.
1.4.0
Java API - Support for Partitioned Queue
This enhancement adds support for Partitioned Queues to the API. Partitioned Queues expand PubSub+ to provide deterministic, ordered, and non-exclusive message delivery for customers to scale the number of consumers when publishing ordered datasets. The ordered datasets are keyed to ensure all events in the dataset are sent to the same consumer without mis-ordering events.
1.3.0
Support Queue Browsing for Java API
This enhancement provides a browser interface that allows applications to look at Guaranteed Messages spooled for a queue in the order of oldest to newest without consuming them.
1.2.0
Direct Messaging Request/Reply
The API now supports synchronous request/reply with helper classes to await response from a replier.
1.1.0
OAuth/OIDC Support in Java API
OAuth / OpenID Connect has been added as a method of authenticating and authorizing clients connecting to the PubSub+ Event Broker using the SMF protocol. Clients using Solace APIs will be able to present a token as a credential during client login. This enables clients to integrate with modern identity and access management systems.
1.1.0
API Server Certificate Validation Using Subject Alternate Name
This feature compares the DNS name that the API is trying to connect to with the DNS name stored in the subject alternate name of the server certificate, following the current security best practice for TLS connections.
1.1.0
New, Modern Java Client API
This is the initial release of the PubSub+ Messaging API for Java. Solace created this API to modernize our JCSMP API. This is a separate standalone API which provides modern interfaces, patterns, and usability in a native Java environment.
This version contains a feature set that allows for common messaging patterns like publish/subscribe using Direct Messaging and Guaranteed Messaging. This API provides support for all deployments of PubSub+ across software, appliance, and cloud.
Future versions of the Java API will introduce more features as Solace builds out the roadmap for this API.
The Java API 1.0.0 supports:
* Connection management to PubSub+ event brokers
* Addition and removal of topic subscriptions
* Sending and receiving Direct and Guaranteed Messages
* Message compression
* Use of Selectors
* Kerberos authentication
* Message Replay
* Structured data types that allow interoperability between various architectures and programming languages
The Java API 1.0.0 does not support the following features:
* Request/Reply message exchange pattern
* PubSub+ Cache Client API support
* Session Transactions
* XA Transactions
* Queue browsing
1.0.0
New Java API - Replay From Message ID
Applications can now replay messages following the message-ID of the last message which they successfully-processed.
The feature uses "replication group message ID", which uniquely identifies messages within an HA group and Replication/DR group of brokers. The broker includes this ID in all guaranteed messages it delivers to the consumer. Consuming applications can extract and save this ID along with the message payload, and then use it later to initiate a replay.
This is a more "fine-grained" way to start a replay than from date-and-time, and is ideal in cases where the last message-ID successfully processed is known by the application (e.g. recovery from a database crash).
1.0.0

Issues Resolved in Release 1.5.0 and Earlier Releases

This section lists the history of resolved issues in the Solace PubSub+ Messaging API for Java between releases 1.5.0 and 1.0.0.
Reference NumberDescriptionResolved in Version
SOL-99361
PersistentMessagePublisherBuilder fails to inherit the ServiceProperties.GENERATE_SEND_TIMESTAMPS and ServiceProperties.PUBLISHER_PERSISTENT_ACK_WINDOW_SIZE session properties.
Workaround:
Manually set the properties on the PersistentMessagePublisherBuilder using PersistentMessagePublisherBuilder.fromProperties().
1.4.0
SOL-56499
The default client name does not follow the pattern set out in other Solace APIs of <host>/<PID>/<sessionID>.
1.2.0
SOL-54746
The stat PERSISTENT_ACKNOWLEDGE_SENT is not accurate when using multiple receivers in a single service.
1.1.0

Changed Functionality in Release 1.5.0 and Earlier Releases

This section lists the history of changed functionality in the Solace PubSub+ Messaging API for Java between releases 1.5.0 and 1.0.0.
Reference NumberDescriptionIntroduced in Version
SOL-110719
A latest version of JDK 8 is required to avoid a 'NullPointerException' issue during SSL handshake caused by HostnameChecker (see [[JDK-8211339] NPE during SSL handshake caused by HostnameChecker - Java Bug System (openjdk.org)|https://bugs.openjdk.org/browse/JDK-8211339] for details).
1.5.0
SOL-56498
The method withClassOfService() has been deprecated and replaced with solace.messaging.message.class-of-service.
1.1.0
SOL-56772
It is no longer an error to add a subscription that already exists on the consumer. The duplicate is now silently ignored. Similarly, it is not an error to remove a subscription that does not exist.
1.1.0

Vulnerabilities Addressed in Release 1.5.0 and Earlier Releases

The following vulnerabilities have been resolved in the Solace PubSub+ Messaging API for Java between releases 1.5.0 and 1.0.0.

None

Known Issues in Release 1.5.0 and Earlier Releases

This section describes known issues in the Solace PubSub+ Messaging API for Java between releases 1.5.0 and 1.0.0.
Reference NumberDescription
SOL-53216
The JCSMP, JMS, Jakarta Messaging, and Java API may lock up if an application thread continuously interrupts JCSMPXMLMessageProducer.send() and triggers a session reconnect.
For more details, refer to the Release Notes page for the individual Solace Messaging APIs.

Supported Environments