Skip to content

Commit 4d61ed1

Browse files
Merge pull request #91 from OneBusAway/release-please--branches--main--changes--next
release: 0.1.0-alpha.35
2 parents 5da830b + 38d9116 commit 4d61ed1

5 files changed

Lines changed: 38 additions & 7 deletions

File tree

.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.1.0-alpha.34"
2+
".": "0.1.0-alpha.35"
33
}

CHANGELOG.md

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

3+
## 0.1.0-alpha.35 (2025-08-05)
4+
5+
Full Changelog: [v0.1.0-alpha.34...v0.1.0-alpha.35](https://github.com/OneBusAway/java-sdk/compare/v0.1.0-alpha.34...v0.1.0-alpha.35)
6+
7+
### Chores
8+
9+
* **internal:** add async lock helper ([63451dd](https://github.com/OneBusAway/java-sdk/commit/63451dd73826cddeb322fe779cf797b06c4b490a))
10+
311
## 0.1.0-alpha.34 (2025-08-01)
412

513
Full Changelog: [v0.1.0-alpha.33...v0.1.0-alpha.34](https://github.com/OneBusAway/java-sdk/compare/v0.1.0-alpha.33...v0.1.0-alpha.34)

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/org.onebusaway/onebusaway-sdk-java)](https://central.sonatype.com/artifact/org.onebusaway/onebusaway-sdk-java/0.1.0-alpha.34)
6-
[![javadoc](https://javadoc.io/badge2/org.onebusaway/onebusaway-sdk-java/0.1.0-alpha.34/javadoc.svg)](https://javadoc.io/doc/org.onebusaway/onebusaway-sdk-java/0.1.0-alpha.34)
5+
[![Maven Central](https://img.shields.io/maven-central/v/org.onebusaway/onebusaway-sdk-java)](https://central.sonatype.com/artifact/org.onebusaway/onebusaway-sdk-java/0.1.0-alpha.35)
6+
[![javadoc](https://javadoc.io/badge2/org.onebusaway/onebusaway-sdk-java/0.1.0-alpha.35/javadoc.svg)](https://javadoc.io/doc/org.onebusaway/onebusaway-sdk-java/0.1.0-alpha.35)
77

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

@@ -15,7 +15,7 @@ It is generated with [Stainless](https://www.stainless.com/).
1515

1616
<!-- x-release-please-start-version -->
1717

18-
The REST API documentation can be found on [developer.onebusaway.org](https://developer.onebusaway.org). Javadocs are available on [javadoc.io](https://javadoc.io/doc/org.onebusaway/onebusaway-sdk-java/0.1.0-alpha.34).
18+
The REST API documentation can be found on [developer.onebusaway.org](https://developer.onebusaway.org). Javadocs are available on [javadoc.io](https://javadoc.io/doc/org.onebusaway/onebusaway-sdk-java/0.1.0-alpha.35).
1919

2020
<!-- x-release-please-end -->
2121

@@ -26,7 +26,7 @@ The REST API documentation can be found on [developer.onebusaway.org](https://de
2626
### Gradle
2727

2828
```kotlin
29-
implementation("org.onebusaway:onebusaway-sdk-java:0.1.0-alpha.34")
29+
implementation("org.onebusaway:onebusaway-sdk-java:0.1.0-alpha.35")
3030
```
3131

3232
### Maven
@@ -35,7 +35,7 @@ implementation("org.onebusaway:onebusaway-sdk-java:0.1.0-alpha.34")
3535
<dependency>
3636
<groupId>org.onebusaway</groupId>
3737
<artifactId>onebusaway-sdk-java</artifactId>
38-
<version>0.1.0-alpha.34</version>
38+
<version>0.1.0-alpha.35</version>
3939
</dependency>
4040
```
4141

build.gradle.kts

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

99
allprojects {
1010
group = "org.onebusaway"
11-
version = "0.1.0-alpha.34" // x-release-please-version
11+
version = "0.1.0-alpha.35" // x-release-please-version
1212
}
1313

1414
subprojects {

onebusaway-sdk-java-core/src/main/kotlin/org/onebusaway/core/Utils.kt

Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,8 @@ package org.onebusaway.core
44

55
import java.util.Collections
66
import java.util.SortedMap
7+
import java.util.concurrent.CompletableFuture
8+
import java.util.concurrent.locks.Lock
79
import org.onebusaway.errors.OnebusawaySdkInvalidDataException
810

911
@JvmSynthetic
@@ -90,3 +92,24 @@ internal fun Any?.contentToString(): String {
9092
}
9193

9294
internal interface Enum
95+
96+
/**
97+
* Executes the given [action] while holding the lock, returning a [CompletableFuture] with the
98+
* result.
99+
*
100+
* @param action The asynchronous action to execute while holding the lock
101+
* @return A [CompletableFuture] that completes with the result of the action
102+
*/
103+
@JvmSynthetic
104+
internal fun <T> Lock.withLockAsync(action: () -> CompletableFuture<T>): CompletableFuture<T> {
105+
lock()
106+
val future =
107+
try {
108+
action()
109+
} catch (e: Throwable) {
110+
unlock()
111+
throw e
112+
}
113+
future.whenComplete { _, _ -> unlock() }
114+
return future
115+
}

0 commit comments

Comments
 (0)