This is an automated email from the ASF dual-hosted git repository.

chrisdutz pushed a commit to branch develop
in repository https://gitbox.apache.org/repos/asf/plc4x.git


The following commit(s) were added to refs/heads/develop by this push:
     new 511844a715 doc: Updated the RELEASE_NOTES in preparation for an 
upcoming release.
511844a715 is described below

commit 511844a715db7b96a8bdddba9754cb528a7b3622
Author: Christofer Dutz <[email protected]>
AuthorDate: Mon Jul 27 11:55:42 2026 +0200

    doc: Updated the RELEASE_NOTES in preparation for an upcoming release.
---
 RELEASE_NOTES | 123 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++-
 1 file changed, 121 insertions(+), 2 deletions(-)

diff --git a/RELEASE_NOTES b/RELEASE_NOTES
index 39d608913c..0837ba9b3d 100644
--- a/RELEASE_NOTES
+++ b/RELEASE_NOTES
@@ -13,8 +13,8 @@ New Features
 - Added a new PlcCertificateAuthentication to the API module.
 - Initial version of a new Java UMAS driver.
 - Initial version of a new Java SLMP (Mitsubishi MELSEC) driver:
-  read-only access to word devices (D/W/R) using binary 3E frames
-  over TCP.
+  read and write access to word devices (D/W/R) using binary 3E
+  frames over TCP (including Batch Write).
 - The 'plc4x' proxy driver now supports TLS as a transport and
   requires mandatory username/password authentication
   (configured via the new "username" and "password" connection
@@ -45,12 +45,66 @@ New Features
   function code (late responses from timed-out requests are discarded
   instead of completing the wrong caller), and the request timeout now
   covers the full time from submission, including queueing.
+- Drivers that don't natively support subscriptions (Modbus,
+  EtherNet/IP, AB-ETH, SLMP, UMAS) now provide subscriptions
+  through a polling-based emulation layer, supporting CYCLIC and
+  CHANGE_OF_STATE subscriptions.
+- Added a new remote-data-fetching component (event-pump)
+  replacing the old scraper.
+- Re-implemented the connection-cache with more reliable resource
+  handling and transparent re-subscription after a connection was
+  lost and re-established.
+- New TCP transport implementation using per-connection
+  virtual-thread blocking I/O (replacing the NIO selector),
+  scaling better on Java 21.
+- OPC-UA: Added reading and writing of structured values
+  (PlcStruct) and corrected array handling.
+- OPC-UA: Tag data types are now derived from the server's type
+  model instead of being guessed from the input data.
+- OPC-UA: Added browse support, resolving server-side types and
+  access rights.
+- Simulated driver: Added STRING support.
+- CANopen: Added NMT command support.
+- Go: Added a production-grade BACnet/IP driver (segmentation,
+  write priority, directed/multi-target WhoIs, routed addressing,
+  array/bit-string property decoding).
+- Go: The connection-cache now supports a configurable max idle
+  time, and connections carrying subscriptions are exempt from the
+  idle TTL.
+- The Object-PLC-Mapping (OPM) module was ported to SPI3.
+- PlcBrowseItem now reports which subscription types each item
+  supports via a new getSupportedSubscriptionTypes() method, so
+  browse results carry subscription capability information.
+- OPC-UA: Improved Siemens S7-1500 support, including reading and
+  writing of (almost) all variant types.
+- Updated the bundled KNX manufacturer data and the BACnet/KNX
+  vendor IDs for broader device recognition.
+- Go: Connections can now be invalidated (Invalidate()) to mark
+  themselves irrecoverably failed for lease management, and
+  transport errors are now classified and propagated through
+  codecs/transports (TransportErrorKind).
+- Performance: Sped up byte-aligned integer read/write in the Java
+  byte-based SPI buffers.
 
 Incompatible changes
 --------------------
 
+- All drivers were migrated to a new shared SPI ("SPI3"):
+  dependency-free Read/Write buffers, an updated code-generation
+  framework, a pluggable-transport system and a layered
+  protocol-driver model.
+- Drivers now reject connection strings using an unsupported
+  transport with an exception. The check can be force-disabled
+  via a configuration parameter.
+- Several Maven artifactIds changed (tools, transports, scraper);
+  see the "Changed Maven Coordinates" section below for the full
+  mapping. Consumers must update their coordinates.
+- The PlcBrowseItem interface gained a
+  getSupportedSubscriptionTypes() method that custom
+  implementations must now provide.
 - Dropped support for Java 11, new baseline Java version is
   Java 21.
+- Migrated the build to Apache Maven 4.
 - The Go serial transport's default baud-rate changed from 115200
   to 9600 (aligning with common serial defaults and the Java
   transport). Specify baud-rate explicitly if you relied on the
@@ -91,12 +145,77 @@ Incompatible changes
   state change options beyond a simple connected and disconnected
   event.
 
+Changed Maven Coordinates
+-------------------------
+
+The Maven groupId of all modules is unchanged ("org.apache.plc4x").
+The following artifactIds changed; consumers must update their
+dependency coordinates accordingly:
+
+- The "tools" modules were renamed to the "plc4j-tools-*" pattern:
+    plc4j-capture-replay    -> plc4j-tools-capture-replay
+    plc4j-connection-cache  -> plc4j-tools-connection-cache
+    plc4j-opm               -> plc4j-tools-opm
+- The transport modules were renamed from the singular
+  "plc4j-transport-*" to the plural "plc4j-transports-*":
+    plc4j-transport-can         -> plc4j-transports-can
+    plc4j-transport-pcap-replay -> plc4j-transports-pcap-replay
+    plc4j-transport-raw-socket  -> plc4j-transports-raw-socket
+    plc4j-transport-serial      -> plc4j-transports-serial
+    plc4j-transport-tcp         -> plc4j-transports-tcp
+    plc4j-transport-test        -> plc4j-transports-test
+    plc4j-transport-udp         -> plc4j-transports-udp
+    plc4j-transport-socketcan   -> plc4j-transports-can-socketcan
+    plc4j-transport-virtualcan  -> plc4j-transports-can-virtualcan
+- The scraper was replaced by the new event-pump component:
+    plc4j-scraper               -> plc4j-tools-event-pump
+- Removed modules (no direct replacement):
+    plc4j-scraper-ng            (experimental, dropped)
+    plc4j-transport-pcap-shared (obsolete)
+
+Note: this release also adds a number of new SPI3 modules (e.g.
+the "plc4j-spi-*" buffers/config/drivers/values split, the new
+"plc4j-transports-api"/"-cotp"/"-tls" transports, the
+"plc4j-utils-audit-log*" and "plc4j-utils-subscription-emulation"
+utilities). These are new artifacts, not renames.
+
 Bug Fixes
 ---------
 
 - Fixed serialization in the 'plc4x' proxy driver's message
   codec, which did not configure the buffer integer/string
   encodings under SPI3 and failed to serialize any message.
+- OPC-UA: Fixed several issues: a hang during discovery /
+  encrypted-policy negotiation, a divide-by-zero when the server
+  provided no certificate, and hardened parsing of corrupt or
+  malicious responses that could previously cause an
+  OutOfMemoryError.
+- ADS: The connect handshake now honors the configured AMS ports
+  instead of hardcoding RUNTIME_SYSTEM_01/851.
+- ADS: Fixed an invalid size calculation in AdsDataTypeArrayInfo.
+- ADS: Fixed serialization of STRING/WSTRING values.
+- S7: Fixed duplicate TSAP information at the COTP and S7 level.
+- Connection-cache: Fixed a deadlock when obtaining a connection,
+  plus a race condition and idle-timer/cleanup issues.
+- The base driver now redacts password information from console
+  logs.
+- TCP transport: Close the SocketChannel on a failed bind /
+  socket-option setup.
+- Request objects were made more null-safe (#2280).
+- OPC-UA: All consumers registered on a shared subscription now
+  receive notifications (previously only one consumer was
+  registered).
+- AB-ETH: Fixed reading a tag after the SPI3 refactoring.
+- The socket is now disconnected when the handshake fails instead
+  of being left hanging (#2290).
+- Go Modbus: Hardened frame parsing against truncated/extended
+  frames, trailing CRCs from misbehaving gateways and TCP
+  keep-alive padding, with stream resynchronization on desync.
+- Go: Numerous stability and resource-leak fixes (connection cache
+  no longer hands out dead connections, goroutine and codec-worker
+  leaks on Modbus reconnect, robust Modbus receive with
+  desync/resync, TCP/UDP transport deadline and reset races, codec
+  disconnect deadlock).
 
 ==============================================================
 Apache PLC4X 0.13.1

Reply via email to