Skip to content

Commit 7c6873a

Browse files
jderegclaude
andcommitted
Update README version references and changelog date for 4.99.0 release
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
1 parent 8305cd2 commit 7c6873a

2 files changed

Lines changed: 5 additions & 5 deletions

File tree

README.md

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -117,15 +117,15 @@ To include in your project:
117117

118118
**Gradle**
119119
```groovy
120-
implementation 'com.cedarsoftware:json-io:4.98.0'
120+
implementation 'com.cedarsoftware:json-io:4.99.0'
121121
```
122122

123123
**Maven**
124124
```xml
125125
<dependency>
126126
<groupId>com.cedarsoftware</groupId>
127127
<artifactId>json-io</artifactId>
128-
<version>4.98.0</version>
128+
<version>4.99.0</version>
129129
</dependency>
130130
```
131131

@@ -141,7 +141,7 @@ json-io provides a Spring Boot starter for seamless integration with Spring MVC
141141
<dependency>
142142
<groupId>com.cedarsoftware</groupId>
143143
<artifactId>json-io-spring-boot-starter</artifactId>
144-
<version>4.98.0</version>
144+
<version>4.99.0</version>
145145
</dependency>
146146
```
147147

@@ -167,7 +167,7 @@ json-io provides a Spring AI module that reduces LLM token usage by ~40-50% usin
167167
<dependency>
168168
<groupId>com.cedarsoftware</groupId>
169169
<artifactId>json-io-spring-ai-toon</artifactId>
170-
<version>4.98.0</version>
170+
<version>4.99.0</version>
171171
</dependency>
172172
```
173173

changelog.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
### Revision History
22

3-
#### 4.99.0
3+
#### 4.99.0 - 2026-03-28
44
* **PERFORMANCE**: `ToonWriter.needsQuoting()` — replaced multi-method dispatch chain (`isReservedScalarLiteral()` + `isSimpleUnquotedAsciiToken()` + `computeNeedsQuoting()`) with a single-pass `scanNeedsQuoting()` method. Uses a pre-built `boolean[128]` lookup table per delimiter, reducing the inner character scan from 8 branch comparisons to 1 array access per character. Reserved-literal check merged inline with `switch(first)` + length gate. `looksLikeNumber()` now guarded by first-char check — only called for strings starting with `0-9`, `+`, or `.` (~90% of calls eliminated). `Character.isWhitespace()` replaced with `<= ' '`. JFR shows `needsQuoting` dropped from 383 samples (#1 hotspot) to 25 samples — a **93.5% reduction**.
55
* **PERFORMANCE**: `ToonReader.readLineRaw()` — now uses `FastReader.readLine()` instead of `readUntil()` + separate `read()` + pushback for line-ending handling. Eliminates per-line method call overhead and the `\r\n` pushback round-trip. JFR shows TOON line-reading improved 28%, and `FastReader.read()` calls halved.
66
* **PERFORMANCE**: `JsonWriter.writePrimitive()` — added small-integer String cache (-128 to 16384) matching ToonWriter's range. Avoids `Integer.toString()` allocation for common integer values during JSON serialization. JFR shows 898 allocation samples eliminated from `Integer.toString ← writePrimitive` path.

0 commit comments

Comments
 (0)