iabgpp-java version 4.0.0 has been released!
Release Notes
Maven: https://repo1.maven.org/maven2/com/iabgpp/iabgpp-core/4.0.0/
Requires: Java 11
This release adds support for four new US state privacy sections, improves TcfCaV1 encoding and backward compatibility, fixes bitfield encoding, and increases the supported vendor ID range. This is the final release of the 4.0.0-RC2 line.
What's New !
-
US State Privacy Sections
StateSection IDAccessorMaryland24getUsMdSection()Indiana25getUsInSection()Kentucky26getUsKySection()Rhode Island27getUsRiSection()
Each section includes its header, core fields, and supported optional segments, determined by the subsection header. -
Vendor IDs up to 16,384
The maximum supported vendor ID has increased from 8,192 to 16,384. This fixes encoding and decoding for vendor IDs above 8,192, including IDs such as 10,000. -
TcfCaV1 Encoding
Updated TcfCaV1 (Canada) to use Fibonacci integer range encoding for:
Vendor Express Consent
Vendor Implied Consent
Disclosed Vendors
Publisher Restrictions -
Backward Compatibility
Existing TcfCaV1 strings generated using the previous fixed-range encoding remain decodable. New strings use Fibonacci integer range encoding, while previously generated strings remain readable. -
Bitfield Encoding
Fixed an off-by-one error in bitfield encoding. Bitfields are 1-based, but the encoder previously wrote values one position earlier than intended. Encoding now writes each value to the correct bit position. -
TCF EU v2.3 Segments
Optional segments are now written whenever they contain data. isServiceSpecific no longer controls this behavior, allowing vendorsDisclosed to be encoded when isServiceSpecific is true. -
Legacy Decode Logging
While decoding legacy TcfCaV1 strings, the library attempts Fibonacci decoding before falling back to fixed-range decoding. Previously, this probe could log Exceeding IntegerSet.MAX_COLLECTION_SIZE for an ID that was subsequently discarded.
These non-actionable probe warnings are now suppressed. Vendor IDs that actually exceed 16,384 still generate a warning.
FibonacciIntegerRangeEncoder.decode(BitString) remains available and delegates to decode(reader, true).
Included Changes
PR #106 — Updated TcfCaV1 encoding to use Fibonacci integer ranges.
PR #107 — Added backward compatibility for legacy TcfCaV1 strings.
PR #108 — Fixed the bitfield off-by-one encoding issue.
PR #109 — Added Maryland, Indiana, Kentucky, and Rhode Island sections, along with TCF EU v2.3 optional segment updates.
Vendor ID fix — Increased the supported vendor ID range from 8,192 to 16,384.
PR #111 — Suppressed non-actionable size warnings during the legacy TcfCaV1 Fibonacci probe.
What's Changed
- CPU and Memory Optimizations by @yuzawa-san in #56
- 4.x perf optimizations by @yuzawa-san in #84
- 4.x conflict resolution by @yuzawa-san in #95
- 4.X: Set baseline to Java 11 by @yuzawa-san in #98
- Fix TcfCaV1 (Canada) OptimizedRange encoding to use Fibonacci by @chuff in #106
- Decode legacy fixed-range TcfCaV1 (Canada) strings (backwards compatibility) by @chuff in #107
- 4.X: US States with Subsections - MD, KY, RI, IN by @yuzawa-san in #109
- fix: remove warnings on optimized range heuristic by @yuzawa-san in #111
- Merge 4.X into master for Iabgpp-java release v4.0.0 by @Tejasshack in #110
New Contributors
- @Tejasshack made their first contribution in #110
Full Changelog: 3.2.5...4.0.0