Skip to content

Releases: masesgroup/KNet

V3.2.3: Updates to JNet 2.6.9 with extensive JVM resource management improvements

16 Jun 03:09
a38eb17

Choose a tag to compare

Caution

KNet introduces breaking changes:

  • KeyValueSupport custom bridge type removed — consumers now use Org.Apache.Kafka.Streams.KeyValue directly
  • CastDirectAndDetach renamed to CastDirectAndDispose
  • Connect record constructors updated to avoid params — align existing code to the new typed constructor pattern

This release mainly changes:

  • KNet:
    • Updates to JNet 2.6.9 and Kafka 4.2.1
    • Fixes type of RetentionBytes and RetentionMs configuration properties from int to long to match the actual JVM type; reviews and aligns types of other configuration parameters to their correct JVM counterparts; adds nullability on developed constructors; updates SecurityProtocol enum values
    • Enables generation of deprecated Java members via configuration — classes regenerated accordingly, removing the need for manual development of deprecated constructors and methods
    • Introduces IKNetInnerReference interface on almost all classes with a JVM backing type, exposing the underlying JVM object for direct use when needed (#1741)
    • Introduces CastDirectAndDispose replacing CastDirectAndDetach for cast operations that release the source object immediately
    • Removes custom KeyValueSupport bridge type — KeyValue, WindowedKeyValue, and TimestampedKeyValue consumers now wrap Org.Apache.Kafka.Streams.KeyValue natively via JVMBridgeBase.WrapsDirect
    • Extensive IDisposable pattern review across almost all classes: explicit Dispose chains, updates Dispose on development classes to null out inner fields releasing JVM references promptly, DisposeIfDisposable for returned objects, and disposal of serialized/deserialized/local resources
    • Fixes consumer stuck condition on Wait/Pulse when no producer is pushing records
    • Ensures JCOBridge thread detachment in consumer threads
    • Adds AddVoid on headers to avoid direct use of DisposeIfDisposable in that context
    • Adds Java.Lang.String overloads for Serialize/Deserialize to avoid CLR string conversion when topic is already a JVM string
    • Uses CreatePoolableInstance across KNet classes aligned to JNet 2.6.9 patterns
    • Adds docfx API filter to exclude inherited JCOBridge members from documentation, removing DynamicObject and members from Java/Javax namespaces, Exception, and Object base classes
    • Multiple code quality fixes
    • Generated classes fully regenerated using latest JNetReflector
  • KNet.Serialization.Avro: no changes
  • KNet.Serialization.Json: no changes
  • KNet.Serialization.MessagePack: updates MessagePack to 3.1.7
  • KNet.Serialization.Protobuf: updates Google.Protobuf to 3.35.1
  • KNetCLI: no changes
  • KNetConnect: no changes
  • KNet Templates: no changes
  • KNet for PowerShell (aka KNetPS): no changes
  • Docker image: no changes
  • Documentation: aligns to latest changes in the code
  • Tests: improves benchmark workflow with failure condition handling and accurate final report generation

References and Release Notes

Official Container images

Note

knetconnect image collapsed to knet

Official NuGet packages (*)

(*) packages are also available on GitHub packages.

Official PowerShell packages

What's Changed

  • Bump actions/configure-pages from 5 to 6 by @dependabot[bot] in #1493
  • Bump nuget/setup-nuget from 2.0.2 to 3.0.0 by @dependabot[bot] in #1494
  • Bump actions/deploy-pages from 4 to 5 by @dependabot[bot] in #1495
  • Bump org.apache.groovy:groovy from 5.0.4 to 5.0.5 in /src/jvm/knet by @dependabot[bot] in #1497
  • Bump MASES.JNetPSCore from 2.6.6 to 2.6.7 by @dependabot[bot] in #1511
  • Bump MASES.JNetCLICore from 2.6.6 to 2.6.7 by @dependabot[bot] in #1509
  • Bump MASES.JNet from 2.6.6 to 2.6.7 by @dependabot[bot] in #1507
  • Removes from configuration the avoided classes since it is available in latest JNet by @masesdevelopers in #1512
  • Update JNet version to 2.6.7 (Fix #1507) by @masesdevelopers in #1514
  • Revert "Removes from configuration the avoided classes since it is available in latest JNet" by @masesdevelopers in #1516
  • Update generated classes using last public version of JNetReflector after commit 0f28166 by @github-actions[bot] in #1515
  • Revert "Revert "Removes from configuration the avoided classes since it is available in latest JNet"" by @masesdevelopers in #1525
  • Bump MASES.JNetCLICore from 2.6.7 to 2.6.8 by @dependabot[bot] in #1520
  • Bump MASES.JNetPSCore from 2.6.7 to 2.6.8 by @dependabot[bot] in #1521
  • Bump MASES.JNet from 2.6.7 to 2.6.8 by @dependabot[bot] in #1518
  • Update generated classes using last public version of JNetReflector after commit 6fe3b38 by @github-actions[bot] in #1527
  • Revert modification applied with SuppressFinalize/ReRegisterForFinalize and use the most convenient approach based on JVMBridgeCoreDisposable (#1528) by @masesdevelopers in #1529
  • Update SecurityProtocol and other stuff by @masesdevelopers in #1492
  • Refactor Maven build steps in generateclasses.yaml by @masesdevelopers in #1533
  • Update generated classes using last unpublished version of JNetReflector after commit f4fc4d6 by @github-actions[bot] in #1534
  • Refine version update workflow and pre-release tags by @masesdevelopers in #1538
  • Update to JNet 2.6.9-rc by @masesdevelopers in #1540
  • Update generated classes using last public version of JNetReflector after commit 6851ea9 by @github-actions[bot] in #1541
  • Update almost all classes to support IDisposable pattern by @masesdevelopers in #1537
  • Update files to replace tab with spaces by @masesdevelopers in #1545
  • Update version from 3.2.2 to 3.2.3-rc by @github-actions[bot] in #1546
  • Bump Microsoft.SourceLink.GitHub from 10.0.201 to 10.0.202 by @dependabot[bot] in #1552
  • Bump actions/upload-pages-artifact from 4 to 5 by @dependabot[bot] in #1548
  • Bump nuget/setup-nuget from 3.0.0 to 3.1.0 by @dependabot[bot] in #1547
  • Review Dispose chain on many other classes by @masesdevelopers in #1555
  • Updates generation of benchmarks using specific workflow by @masesdevelopers in #1558
  • Update PR #1555 by @masesdevelopers in #1562
  • Updates after first test by @masesdevelopers in #1559
  • Bump MASES.JNetPSCore from 2.6.9-rc to 2.6.9-rc1 by @dependabot[bot] in #1572
  • Bump MASES.JNetCLICore from 2.6.9-rc to 2.6.9-rc1 by @dependabot[bot] in #1571
  • Bump MASES.JNet from 2.6.9-rc to 2.6.9-rc1 by @dependabot[bot] in #1570
  • Bump Microsoft.SourceLink.GitHub from 10.0.202 to 10.0.203 by @dependabot[bot] in #1573
  • Bump MASES.JNetCLICore from 2.6.9-rc1 to 2.6.9-rc2 by @dependabot[bot] in #1581
  • Bump MASES.JNetPSCore from 2.6.9-rc1 to 2.6.9-rc2 by @dependabot[bot] in #1582
  • Bump MASES.JNet from 2.6.9-rc1 to 2.6.9-rc2 by @dependabot[bot] in #1579
  • Update version from 3.2.3-rc to 3.2.3-rc1 by @github-actions[bot] in #1587
  • Update generated classes using last public version of JNetReflector after commit 77a301a by @github-actions[bot] in #1588
  • Bump MASES.JNetPSCore from 2.6.9-rc2 to 2.6.9-rc3 by @dependabot[bot] in #1594
  • Bump MASES.JNetCLICore from 2.6.9-rc2 to 2.6.9-rc3 by @Depe...
Read more

V2.9.12: Updates to JNet 2.6.9 with extensive JVM resource management improvements

16 Jun 03:01
dc95056

Choose a tag to compare

Caution

KNet introduces breaking changes:

  • KeyValueSupport custom bridge type removed — consumers now use Org.Apache.Kafka.Streams.KeyValue directly
  • CastDirectAndDetach renamed to CastDirectAndDispose
  • Connect record constructors updated to avoid params — align existing code to the new typed constructor pattern

This release mainly changes:

  • KNet:
    • Updates to JNet 2.6.9; Kafka version remains at 3.9.2
    • Fixes type of RetentionBytes and RetentionMs configuration properties from int to long to match the actual JVM type; reviews and aligns types of other configuration parameters to their correct JVM counterparts; adds nullability on developed constructors; updates SecurityProtocol enum values
    • Enables generation of deprecated Java members via configuration — classes regenerated accordingly, removing the need for manual development of deprecated constructors and methods
    • Introduces IKNetInnerReference interface on almost all classes with a JVM backing type, exposing the underlying JVM object for direct use when needed (#1741)
    • Introduces CastDirectAndDispose replacing CastDirectAndDetach for cast operations that release the source object immediately
    • Removes custom KeyValueSupport bridge type — KeyValue, WindowedKeyValue, and TimestampedKeyValue consumers now wrap Org.Apache.Kafka.Streams.KeyValue natively via JVMBridgeBase.WrapsDirect
    • Extensive IDisposable pattern review across almost all classes: explicit Dispose chains, updates Dispose on development classes to null out inner fields releasing JVM references promptly, DisposeIfDisposable for returned objects, and disposal of serialized/deserialized/local resources
    • Fixes consumer stuck condition on Wait/Pulse when no producer is pushing records
    • Ensures JCOBridge thread detachment in consumer threads
    • Adds AddVoid on headers to avoid direct use of DisposeIfDisposable in that context
    • Adds Java.Lang.String overloads for Serialize/Deserialize to avoid CLR string conversion when topic is already a JVM string
    • Uses CreatePoolableInstance across KNet classes aligned to JNet 2.6.9 patterns
    • Adds docfx API filter to exclude inherited JCOBridge members from documentation, removing DynamicObject and members from Java/Javax namespaces, Exception, and Object base classes
    • Multiple code quality fixes
    • Generated classes fully regenerated using latest JNetReflector
  • KNet.Serialization.Avro: no changes
  • KNet.Serialization.Json: no changes
  • KNet.Serialization.MessagePack: updates MessagePack to 3.1.7
  • KNet.Serialization.Protobuf: updates Google.Protobuf to 3.35.1
  • KNetCLI: no changes
  • KNetConnect: no changes
  • KNet Templates: no changes
  • KNet for PowerShell (aka KNetPS): no changes
  • Docker image: no changes
  • Documentation: aligns to latest changes in the code
  • Tests: improves benchmark workflow with failure condition handling and accurate final report generation

References and Release Notes

Official Container images

Note

knetconnect image collapsed to knet

Official NuGet packages (*)

(*) packages are also available on GitHub packages.

Official PowerShell packages

What's Changed

Read more

V3.2.3-rc991: temporary release

10 Jun 17:37
d3872f3

Choose a tag to compare

Pre-release

What's Changed

  • Adds other Dispose and Disposable patterns by @masesdevelopers in #1869
  • Update version from 3.2.3-rc99 to 3.2.3-rc991 by @github-actions[bot] in #1872

Full Changelog: V3.2.3.0-rc99...V3.2.3.0-rc991

V2.9.12-rc1: temporary release

10 Jun 20:11
d3bf86e

Choose a tag to compare

Pre-release

What's Changed

Read more

V3.2.3-rc99: temporary release

09 Jun 15:30
e0d6aba

Choose a tag to compare

Pre-release

What's Changed

  • Bump org.codehaus.gmavenplus:gmavenplus-plugin from 4.3.1 to 5.0.0 in /src/jvm/knet by @dependabot[bot] in #1857
  • Update CastDirectAndDetach with CastDirectAndDispose by @masesdevelopers in #1859
  • Bump MASES.JNetCLICore from 2.6.9-rc995 to 2.6.9-rc996 by @dependabot[bot] in #1863
  • Bump MASES.JNetPSCore from 2.6.9-rc995 to 2.6.9-rc996 by @dependabot[bot] in #1865
  • Revert "Bump org.codehaus.gmavenplus:gmavenplus-plugin from 4.3.1 to 5.0.0 in /src/jvm/knet" by @masesdevelopers in #1867
  • Bump MASES.JNet from 2.6.9-rc995 to 2.6.9-rc996 by @dependabot[bot] in #1861
  • Update version from 3.2.3-rc98 to 3.2.3-rc99 by @github-actions[bot] in #1868

Full Changelog: V3.2.3.0-rc98...V3.2.3.0-rc99

V3.2.3-rc98: temporary release

08 Jun 01:50
f76affb

Choose a tag to compare

Pre-release

What's Changed

  • Update to Kafka version 4.2.1 by @masesdevelopers in #1826
  • Update generated classes using last public version of JNetReflector after commit 1549504 by @github-actions[bot] in #1843
  • Return null in case the iterator returns null by @masesdevelopers in #1845
  • Bump MASES.JNetPSCore from 2.6.9-rc994 to 2.6.9-rc995 by @dependabot[bot] in #1856
  • Bump MASES.JNetCLICore from 2.6.9-rc994 to 2.6.9-rc995 by @dependabot[bot] in #1855
  • Replace KeyValueSupport with Kafka KeyValue by @masesdevelopers in #1848
  • Bump MASES.JNet from 2.6.9-rc994 to 2.6.9-rc995 by @dependabot[bot] in #1852
  • Update version from 3.2.3-rc97 to 3.2.3-rc98 by @github-actions[bot] in #1850

Full Changelog: V3.2.3.0-rc97...V3.2.3.0-rc98

V3.2.3-rc97: temporary release

05 Jun 14:20
f6193eb

Choose a tag to compare

Pre-release

What's Changed

  • Update generated classes using last unpublished version of JNetReflector after commit b10a96c by @github-actions[bot] in #1825
  • Fix class constructor definition by @masesdevelopers in #1821
  • Update generated classes using last unpublished version of JNetReflector after commit 65daf1d by @github-actions[bot] in #1829
  • Bump MASES.JNetCLICore from 2.6.9-rc993 to 2.6.9-rc994 by @dependabot[bot] in #1835
  • Bump MASES.JNetPSCore from 2.6.9-rc993 to 2.6.9-rc994 by @dependabot[bot] in #1837
  • Bump MASES.JNet from 2.6.9-rc993 to 2.6.9-rc994 by @dependabot[bot] in #1833
  • Update usage of JVMBridgeBase.New by @masesdevelopers in #1831
  • Use DisposeIfDisposable for returned objects by @masesdevelopers in #1838
  • Update version from 3.2.3-rc96 to 3.2.3-rc97 by @github-actions[bot] in #1839

Full Changelog: V3.2.3.0-rc96...V3.2.3.0-rc97

V3.2.3-rc96: temporary release

04 Jun 15:15
b10a96c

Choose a tag to compare

Pre-release

What's Changed

  • Bump bojieyang/indexnow-action from 2 to 3 by @dependabot[bot] in #1801
  • Bump org.apache.maven.plugins:maven-dependency-plugin from 3.10.0 to 3.11.0 in /src/jvm/knet by @dependabot[bot] in #1802
  • Bump MASES.JNetCLICore from 2.6.9-rc992 to 2.6.9-rc993 by @dependabot[bot] in #1814
  • Bump MASES.JNetPSCore from 2.6.9-rc992 to 2.6.9-rc993 by @dependabot[bot] in #1815
  • Bump MASES.JNet from 2.6.9-rc992 to 2.6.9-rc993 by @dependabot[bot] in #1811
  • Introduce CastDirectAndDetach and migrate casts by @masesdevelopers in #1808
  • Use AddVoid, JVMBridge.New and dispose patterns by @masesdevelopers in #1816
  • Update version from 3.2.3-rc95 to 3.2.3-rc96 by @github-actions[bot] in #1819

Full Changelog: V3.2.3.0-rc95...V3.2.3.0-rc96

V3.2.3-rc95: temporary release

29 May 23:34
e1af3f1

Choose a tag to compare

Pre-release

What's Changed

  • Bump MASES.JNetPSCore from 2.6.9-rc991 to 2.6.9-rc992 by @dependabot[bot] in #1794
  • Bump MASES.JNetCLICore from 2.6.9-rc991 to 2.6.9-rc992 by @dependabot[bot] in #1792
  • Bump MASES.JNet from 2.6.9-rc991 to 2.6.9-rc992 by @dependabot[bot] in #1790
  • Update generated classes using last public version of JNetReflector after commit 56fc99e by @github-actions[bot] in #1796
  • Null out inner fields in Dispose to free resources by @masesdevelopers in #1798
  • Update version from 3.2.3-rc94 to 3.2.3-rc95 by @github-actions[bot] in #1800

Full Changelog: V3.2.3.0-rc94...V3.2.3.0-rc95

V3.2.3-rc94: temporary release

26 May 01:27
9dd808e

Choose a tag to compare

Pre-release

What's Changed

  • Adds deprecated constructor in ConsumerGroupMetadata by @masesdevelopers in #1767
  • Add topic Java.Lang.String overloads for Serialize/Deserialize by @masesdevelopers in #1768
  • perf: update benchmark results [run #41] by @github-actions[bot] in #1772
  • Bump MASES.JNetPSCore from 2.6.9-rc99 to 2.6.9-rc991 by @dependabot[bot] in #1781
  • Bump MASES.JNetCLICore from 2.6.9-rc99 to 2.6.9-rc991 by @dependabot[bot] in #1780
  • Bump MASES.JNet from 2.6.9-rc99 to 2.6.9-rc991 by @dependabot[bot] in #1777
  • Update generated classes using last public version of JNetReflector after commit 5975a16 by @github-actions[bot] in #1782
  • Review Connect record constructor using latest constructor pattern which avoids params constructor by @masesdevelopers in #1785
  • Update version from 3.2.3-rc93 to 3.2.3-rc94 by @github-actions[bot] in #1788

Full Changelog: V3.2.3.0-rc93...V3.2.3.0-rc94