Skip to content

25.7

Latest

Choose a tag to compare

@iohao iohao released this 20 Jul 08:14
· 2 commits to main since this release

Ionet 25.7 focuses on publisher reliability and backpressure, external networking and client fixes, core framework behavior.

  1. Publisher reliability and backpressure:
  • Updated SBE message codecs with extended payload limits and imports.
  • Increase maximum payload length from 61440 to 8384512 bytes for multiple SBE message encoders and decoders.
  • Replaced wildcard imports of 'org.agrona.*' with explicit imports of 'DirectBuffer' and 'MutableDirectBuffer'.
  • Added import adjustments to all relevant generated SBE codec classes for clarity and correctness.
  • Enhanced CoreGlobalConfig with detailed documentation and configuration parameters for Aeron fragment assembler and buffer sizes.
  • Implemented robust error handling in PublisherMessageKit for message encoding overflows and publication size limits.
  • Added tests in DefaultPublisherTest and ParallelPublisherTest for handling oversized messages and verifying processing continuity.
  • Updated dependencies in pom.xml to newer versions for Aeron, Netty, JUnit, Protobuf, Lombok, Spring, and others.
  • Extend RecordingPublication test utility to support configurable maximum message length settings.
  • Added OversizedTestMessage for testing codec and publisher behavior with larger-than-default payloads.
  1. External networking and client fixes:
  • Implemented Netty-based WebSocket client connector and shared event loop.
  • Added Netty event loop management in ClientConnects for TCP and WebSocket clients.
  • Migrate TcpClientStartup to use shared event loop group from ClientConnects.
  • Implemented WebSocketClientStartup with Netty bootstrap and pipeline configuration.
  • Support secure WebSocket connections with SslHandler and hostname verification.
  • Added ClientWebSocketExternalCodec for WebSocket frame <-> ExternalMessage conversion.
  • Provide WebSocketHandshakeHandler for handshake completion handling and client channel setup.
  • Removed deprecated Java-WebSocket dependency and related code.
  • Added unit tests for WebSocket client codec and startup with lifecycle and error handling.
  • Enabled graceful shutdown and recreation of shared Netty event loop group.
  • Configure Maven to skip tests conditionally through maven.test.skip property.
  1. Core framework behavior:
  • Enabled fragment assembler by default.
  1. Documentation, source parsing, and build updates:
  • Support multi-line comments in proto generation.
  • Added ProtoJava.toProtoComment() to format multi-line comments with proper // prefix.
  • Updated message comment rendering to use toProtoComment() with indentation.
  • Change field comment rendering to prepend formatted comment lines before field definition.
  • Removed inline comment placeholder usage to avoid multi-line comment issues.
  • Added unit tests in ProtoCommentTest for single and multi-line comment formatting.
  • Enhanced Cat class comments for testing multi-line comment output.
  • Improved comment rendering and string escaping.
  • Added MultiLineComment function to render multi-line doc comments with configurable prefixes.
  • Added OneLineComment function to collapse multi-line comments into single line for inline use.
  • Added StringLiteral function to escape string literals for generated code in various languages.
  • Updated codegen templates to use mlComment for multi-line comments in C#, TypeScript, and GDScript.
  • Replaced direct comment insertions with stringLiteral to escape string values correctly.
  • Refactor example code comments to use oneLine function for concise single-line descriptions.
  • Include new functions registration in DocumentGenerateAbout.java for template usage.
  • Added DocumentGenerateAboutTest to verify correct rendering and escaping behavior in templates.
  • Added comprehensive engineering and architecture documentation.
  • Create engineering quickstart guide for building and testing ionet.
  • Added detailed runtime architecture overview explaining layered design and components.
  • Introduced domain concepts documenting core runtime terms and models.
  • Provide integrations and extensions guide covering external transports and SPI points.
  • Added operations runbook describing build, test, transport capacity, and release workflow.
  • Include workflow documentation detailing runtime flow sequences and protocol generation.
  • Updated .gitignore to improve ignore rules for build output, IDE, OS, logs, and package files.
  • Added .last-update.json capturing metadata of this initial documentation import.

Dependency upgrades:

  • Aeron:1.49.3 --> 1.52.2
  • Beetl:3.20.1.RELEASE --> 3.21.2.RELEASE
  • Commons IO:2.21.0 --> 2.22.0
  • JUnit Jupiter:6.0.3 --> 6.1.2
  • Logback:1.5.32 --> 1.5.38
  • Lombok:1.18.44 --> 1.18.46
  • Netty:4.1.132.Final --> 4.1.136.Final
  • Protobuf Java:4.33.5 --> 4.35.1
  • Spring Context:7.0.3 --> 7.0.8

Full Changelog: 25.6...25.7