Skip to content

Commit a99dff1

Browse files
Merge pull request #12 from CASParser/release-please--branches--main--changes--next
release: 0.5.3
2 parents 607cd1a + c6b77b1 commit a99dff1

9 files changed

Lines changed: 248 additions & 50 deletions

File tree

.github/workflows/ci.yml

Lines changed: 8 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,14 @@
11
name: CI
22
on:
33
push:
4-
branches-ignore:
5-
- 'generated'
6-
- 'codegen/**'
7-
- 'integrated/**'
8-
- 'stl-preview-head/**'
9-
- 'stl-preview-base/**'
4+
branches:
5+
- '**'
6+
- '!integrated/**'
7+
- '!stl-preview-head/**'
8+
- '!stl-preview-base/**'
9+
- '!generated'
10+
- '!codegen/**'
11+
- 'codegen/stl/**'
1012
pull_request:
1113
branches-ignore:
1214
- 'stl-preview-head/**'

.release-please-manifest.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,3 @@
11
{
2-
".": "0.5.2"
2+
".": "0.5.3"
33
}

CHANGELOG.md

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,20 @@
11
# Changelog
22

3+
## 0.5.3 (2026-03-18)
4+
5+
Full Changelog: [v0.5.2...v0.5.3](https://github.com/CASParser/cas-parser-java/compare/v0.5.2...v0.5.3)
6+
7+
### Bug Fixes
8+
9+
* **client:** allow updating header/query affecting fields in `toBuilder()` ([e6f26f9](https://github.com/CASParser/cas-parser-java/commit/e6f26f994a9b14274463495b1d3b4b17f43769a4))
10+
* **client:** incorrect `Retry-After` parsing ([60bb6b1](https://github.com/CASParser/cas-parser-java/commit/60bb6b16e2d13932c0abd7ea7be8f51baea69199))
11+
12+
13+
### Chores
14+
15+
* **internal:** tweak CI branches ([c68ca4f](https://github.com/CASParser/cas-parser-java/commit/c68ca4fe51694cb795190a751941e5daf681dbed))
16+
* **internal:** update retry delay tests ([f3f3cda](https://github.com/CASParser/cas-parser-java/commit/f3f3cda6e61740d7eb1ebd37a91c27df34449c8c))
17+
318
## 0.5.2 (2026-03-07)
419

520
Full Changelog: [v0.5.1...v0.5.2](https://github.com/CASParser/cas-parser-java/compare/v0.5.1...v0.5.2)

README.md

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -2,8 +2,8 @@
22

33
<!-- x-release-please-start-version -->
44

5-
[![Maven Central](https://img.shields.io/maven-central/v/com.cas_parser.api/cas-parser-java)](https://central.sonatype.com/artifact/com.cas_parser.api/cas-parser-java/0.5.2)
6-
[![javadoc](https://javadoc.io/badge2/com.cas_parser.api/cas-parser-java/0.5.2/javadoc.svg)](https://javadoc.io/doc/com.cas_parser.api/cas-parser-java/0.5.2)
5+
[![Maven Central](https://img.shields.io/maven-central/v/com.cas_parser.api/cas-parser-java)](https://central.sonatype.com/artifact/com.cas_parser.api/cas-parser-java/0.5.3)
6+
[![javadoc](https://javadoc.io/badge2/com.cas_parser.api/cas-parser-java/0.5.3/javadoc.svg)](https://javadoc.io/doc/com.cas_parser.api/cas-parser-java/0.5.3)
77

88
<!-- x-release-please-end -->
99

@@ -22,7 +22,7 @@ Use the Cas Parser MCP Server to enable AI assistants to interact with this API,
2222
2323
<!-- x-release-please-start-version -->
2424

25-
The REST API documentation can be found on [casparser.in](https://casparser.in/docs). Javadocs are available on [javadoc.io](https://javadoc.io/doc/com.cas_parser.api/cas-parser-java/0.5.2).
25+
The REST API documentation can be found on [casparser.in](https://casparser.in/docs). Javadocs are available on [javadoc.io](https://javadoc.io/doc/com.cas_parser.api/cas-parser-java/0.5.3).
2626

2727
<!-- x-release-please-end -->
2828

@@ -33,7 +33,7 @@ The REST API documentation can be found on [casparser.in](https://casparser.in/d
3333
### Gradle
3434

3535
```kotlin
36-
implementation("com.cas_parser.api:cas-parser-java:0.5.2")
36+
implementation("com.cas_parser.api:cas-parser-java:0.5.3")
3737
```
3838

3939
### Maven
@@ -42,7 +42,7 @@ implementation("com.cas_parser.api:cas-parser-java:0.5.2")
4242
<dependency>
4343
<groupId>com.cas_parser.api</groupId>
4444
<artifactId>cas-parser-java</artifactId>
45-
<version>0.5.2</version>
45+
<version>0.5.3</version>
4646
</dependency>
4747
```
4848

build.gradle.kts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@ repositories {
99

1010
allprojects {
1111
group = "com.cas_parser.api"
12-
version = "0.5.2" // x-release-please-version
12+
version = "0.5.3" // x-release-please-version
1313
}
1414

1515
subprojects {

cas-parser-java-core/src/main/kotlin/com/cas_parser/api/core/ClientOptions.kt

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -405,13 +405,14 @@ private constructor(
405405
headers.put("X-Stainless-Runtime", "JRE")
406406
headers.put("X-Stainless-Runtime-Version", getJavaVersion())
407407
headers.put("X-Stainless-Kotlin-Version", KotlinVersion.CURRENT.toString())
408+
// We replace after all the default headers to allow end-users to overwrite them.
409+
headers.replaceAll(this.headers.build())
410+
queryParams.replaceAll(this.queryParams.build())
408411
apiKey.let {
409412
if (!it.isEmpty()) {
410-
headers.put("x-api-key", it)
413+
headers.replace("x-api-key", it)
411414
}
412415
}
413-
headers.replaceAll(this.headers.build())
414-
queryParams.replaceAll(this.queryParams.build())
415416

416417
return ClientOptions(
417418
httpClient,

cas-parser-java-core/src/main/kotlin/com/cas_parser/api/core/http/RetryingHttpClient.kt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -201,7 +201,7 @@ private constructor(
201201
?: headers.values("Retry-After").getOrNull(0)?.let { retryAfter ->
202202
retryAfter.toFloatOrNull()?.times(TimeUnit.SECONDS.toNanos(1))
203203
?: try {
204-
ChronoUnit.MILLIS.between(
204+
ChronoUnit.NANOS.between(
205205
OffsetDateTime.now(clock),
206206
OffsetDateTime.parse(
207207
retryAfter,

cas-parser-java-core/src/test/kotlin/com/cas_parser/api/core/ClientOptionsTest.kt

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,28 @@ internal class ClientOptionsTest {
1616

1717
private val httpClient = mock<HttpClient>()
1818

19+
@Test
20+
fun putHeader_canOverwriteDefaultHeader() {
21+
val clientOptions =
22+
ClientOptions.builder()
23+
.httpClient(httpClient)
24+
.putHeader("User-Agent", "My User Agent")
25+
.apiKey("My API Key")
26+
.build()
27+
28+
assertThat(clientOptions.headers.values("User-Agent")).containsExactly("My User Agent")
29+
}
30+
31+
@Test
32+
fun toBuilder_apiKeyAuthCanBeUpdated() {
33+
var clientOptions =
34+
ClientOptions.builder().httpClient(httpClient).apiKey("My API Key").build()
35+
36+
clientOptions = clientOptions.toBuilder().apiKey("another My API Key").build()
37+
38+
assertThat(clientOptions.headers.values("x-api-key")).containsExactly("another My API Key")
39+
}
40+
1941
@Test
2042
fun toBuilder_whenOriginalClientOptionsGarbageCollected_doesNotCloseOriginalClient() {
2143
var clientOptions =

0 commit comments

Comments
 (0)