Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
18 changes: 18 additions & 0 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -40,6 +40,9 @@ jobs:
build:
timeout-minutes: 15
name: build
permissions:
contents: read
id-token: write
runs-on: ${{ github.repository == 'stainless-sdks/increase-java' && 'depot-ubuntu-24.04' || 'ubuntu-latest' }}
if: github.event_name == 'push' || github.event.pull_request.head.repo.fork

Expand All @@ -61,6 +64,21 @@ jobs:
- name: Build SDK
run: ./scripts/build

- name: Get GitHub OIDC Token
if: github.repository == 'stainless-sdks/increase-java'
id: github-oidc
uses: actions/github-script@v6
with:
script: core.setOutput('github_token', await core.getIDToken());

- name: Build and upload Maven artifacts
if: github.repository == 'stainless-sdks/increase-java'
env:
URL: https://pkg.stainless.com/s
AUTH: ${{ steps.github-oidc.outputs.github_token }}
SHA: ${{ github.sha }}
PROJECT: increase-java
run: ./scripts/upload-artifacts
test:
timeout-minutes: 15
name: test
Expand Down
2 changes: 1 addition & 1 deletion .release-please-manifest.json
Original file line number Diff line number Diff line change
@@ -1,3 +1,3 @@
{
".": "0.395.0"
".": "0.396.0"
}
4 changes: 2 additions & 2 deletions .stats.yml
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
configured_endpoints: 232
openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/increase%2Fincrease-7a47821c7d33caac95ba05890682dde6da257dbe86033e4f119aa626c11ae387.yml
openapi_spec_hash: 0ccabc90834936bc2fcdeeee01e77a64
openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/increase%2Fincrease-a559a6a1a1f3781fad8db5bcb96c40b69a78b952d659395840accce782098e0c.yml
openapi_spec_hash: 2ae62041468e5cf6fe653d65b1b7a58a
config_hash: 8a9bb9e2d5dd0ccc3e78ad59f924fd3c
14 changes: 14 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,19 @@
# Changelog

## 0.396.0 (2026-01-14)

Full Changelog: [v0.395.0...v0.396.0](https://github.com/Increase/increase-java/compare/v0.395.0...v0.396.0)

### Features

* **api:** api update ([7a3f167](https://github.com/Increase/increase-java/commit/7a3f1676006a0ebdabcb9557b432b0068b9fc19b))
* **client:** allow configuring dispatcher executor service ([cb9ec15](https://github.com/Increase/increase-java/commit/cb9ec1516cfc976ef1f7ac5256804193c569033a))


### Chores

* **internal:** support uploading Maven repo artifacts to stainless package server ([86f6e2f](https://github.com/Increase/increase-java/commit/86f6e2f373c8117a7ff2c84cb76c177b9945fb28))

## 0.395.0 (2026-01-08)

Full Changelog: [v0.394.0...v0.395.0](https://github.com/Increase/increase-java/compare/v0.394.0...v0.395.0)
Expand Down
10 changes: 5 additions & 5 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,8 +2,8 @@

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

[![Maven Central](https://img.shields.io/maven-central/v/com.increase.api/increase-java)](https://central.sonatype.com/artifact/com.increase.api/increase-java/0.395.0)
[![javadoc](https://javadoc.io/badge2/com.increase.api/increase-java/0.395.0/javadoc.svg)](https://javadoc.io/doc/com.increase.api/increase-java/0.395.0)
[![Maven Central](https://img.shields.io/maven-central/v/com.increase.api/increase-java)](https://central.sonatype.com/artifact/com.increase.api/increase-java/0.396.0)
[![javadoc](https://javadoc.io/badge2/com.increase.api/increase-java/0.396.0/javadoc.svg)](https://javadoc.io/doc/com.increase.api/increase-java/0.396.0)

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

Expand All @@ -13,7 +13,7 @@ The Increase Java SDK is similar to the Increase Kotlin SDK but with minor diffe

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

The REST API documentation can be found on [increase.com](https://increase.com/documentation). Javadocs are available on [javadoc.io](https://javadoc.io/doc/com.increase.api/increase-java/0.395.0).
The REST API documentation can be found on [increase.com](https://increase.com/documentation). Javadocs are available on [javadoc.io](https://javadoc.io/doc/com.increase.api/increase-java/0.396.0).

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

Expand All @@ -24,7 +24,7 @@ The REST API documentation can be found on [increase.com](https://increase.com/d
### Gradle

```kotlin
implementation("com.increase.api:increase-java:0.395.0")
implementation("com.increase.api:increase-java:0.396.0")
```

### Maven
Expand All @@ -33,7 +33,7 @@ implementation("com.increase.api:increase-java:0.395.0")
<dependency>
<groupId>com.increase.api</groupId>
<artifactId>increase-java</artifactId>
<version>0.395.0</version>
<version>0.396.0</version>
</dependency>
```

Expand Down
2 changes: 1 addition & 1 deletion build.gradle.kts
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ repositories {

allprojects {
group = "com.increase.api"
version = "0.395.0" // x-release-please-version
version = "0.396.0" // x-release-please-version
}

subprojects {
Expand Down
17 changes: 15 additions & 2 deletions buildSrc/src/main/kotlin/increase.publish.gradle.kts
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,17 @@ plugins {
id("com.vanniktech.maven.publish")
}

publishing {
repositories {
if (project.hasProperty("publishLocal")) {
maven {
name = "LocalFileSystem"
url = uri("${rootProject.layout.buildDirectory.get()}/local-maven-repo")
}
}
}
}

repositories {
gradlePluginPortal()
mavenCentral()
Expand All @@ -17,8 +28,10 @@ extra["signingInMemoryKeyId"] = System.getenv("GPG_SIGNING_KEY_ID")
extra["signingInMemoryKeyPassword"] = System.getenv("GPG_SIGNING_PASSWORD")

configure<MavenPublishBaseExtension> {
signAllPublications()
publishToMavenCentral(SonatypeHost.CENTRAL_PORTAL)
if (!project.hasProperty("publishLocal")) {
signAllPublications()
publishToMavenCentral(SonatypeHost.CENTRAL_PORTAL)
}

coordinates(project.group.toString(), project.name, project.version.toString())
configure(
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,7 @@ import java.time.Clock
import java.time.Duration
import java.util.Optional
import java.util.concurrent.Executor
import java.util.concurrent.ExecutorService
import javax.net.ssl.HostnameVerifier
import javax.net.ssl.SSLSocketFactory
import javax.net.ssl.X509TrustManager
Expand Down Expand Up @@ -46,11 +47,31 @@ class IncreaseOkHttpClient private constructor() {
class Builder internal constructor() {

private var clientOptions: ClientOptions.Builder = ClientOptions.builder()
private var dispatcherExecutorService: ExecutorService? = null
private var proxy: Proxy? = null
private var sslSocketFactory: SSLSocketFactory? = null
private var trustManager: X509TrustManager? = null
private var hostnameVerifier: HostnameVerifier? = null

/**
* The executor service to use for running HTTP requests.
*
* Defaults to OkHttp's
* [default executor service](https://github.com/square/okhttp/blob/ace792f443b2ffb17974f5c0d1cecdf589309f26/okhttp/src/commonJvmAndroid/kotlin/okhttp3/Dispatcher.kt#L98-L104).
*
* This class takes ownership of the executor service and shuts it down when closed.
*/
fun dispatcherExecutorService(dispatcherExecutorService: ExecutorService?) = apply {
this.dispatcherExecutorService = dispatcherExecutorService
}

/**
* Alias for calling [Builder.dispatcherExecutorService] with
* `dispatcherExecutorService.orElse(null)`.
*/
fun dispatcherExecutorService(dispatcherExecutorService: Optional<ExecutorService>) =
dispatcherExecutorService(dispatcherExecutorService.getOrNull())

fun proxy(proxy: Proxy?) = apply { this.proxy = proxy }

/** Alias for calling [Builder.proxy] with `proxy.orElse(null)`. */
Expand Down Expand Up @@ -323,6 +344,7 @@ class IncreaseOkHttpClient private constructor() {
OkHttpClient.builder()
.timeout(clientOptions.timeout())
.proxy(proxy)
.dispatcherExecutorService(dispatcherExecutorService)
.sslSocketFactory(sslSocketFactory)
.trustManager(trustManager)
.hostnameVerifier(hostnameVerifier)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,7 @@ import java.time.Clock
import java.time.Duration
import java.util.Optional
import java.util.concurrent.Executor
import java.util.concurrent.ExecutorService
import javax.net.ssl.HostnameVerifier
import javax.net.ssl.SSLSocketFactory
import javax.net.ssl.X509TrustManager
Expand Down Expand Up @@ -46,11 +47,31 @@ class IncreaseOkHttpClientAsync private constructor() {
class Builder internal constructor() {

private var clientOptions: ClientOptions.Builder = ClientOptions.builder()
private var dispatcherExecutorService: ExecutorService? = null
private var proxy: Proxy? = null
private var sslSocketFactory: SSLSocketFactory? = null
private var trustManager: X509TrustManager? = null
private var hostnameVerifier: HostnameVerifier? = null

/**
* The executor service to use for running HTTP requests.
*
* Defaults to OkHttp's
* [default executor service](https://github.com/square/okhttp/blob/ace792f443b2ffb17974f5c0d1cecdf589309f26/okhttp/src/commonJvmAndroid/kotlin/okhttp3/Dispatcher.kt#L98-L104).
*
* This class takes ownership of the executor service and shuts it down when closed.
*/
fun dispatcherExecutorService(dispatcherExecutorService: ExecutorService?) = apply {
this.dispatcherExecutorService = dispatcherExecutorService
}

/**
* Alias for calling [Builder.dispatcherExecutorService] with
* `dispatcherExecutorService.orElse(null)`.
*/
fun dispatcherExecutorService(dispatcherExecutorService: Optional<ExecutorService>) =
dispatcherExecutorService(dispatcherExecutorService.getOrNull())

fun proxy(proxy: Proxy?) = apply { this.proxy = proxy }

/** Alias for calling [Builder.proxy] with `proxy.orElse(null)`. */
Expand Down Expand Up @@ -323,6 +344,7 @@ class IncreaseOkHttpClientAsync private constructor() {
OkHttpClient.builder()
.timeout(clientOptions.timeout())
.proxy(proxy)
.dispatcherExecutorService(dispatcherExecutorService)
.sslSocketFactory(sslSocketFactory)
.trustManager(trustManager)
.hostnameVerifier(hostnameVerifier)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -15,11 +15,13 @@ import java.net.Proxy
import java.time.Duration
import java.util.concurrent.CancellationException
import java.util.concurrent.CompletableFuture
import java.util.concurrent.ExecutorService
import javax.net.ssl.HostnameVerifier
import javax.net.ssl.SSLSocketFactory
import javax.net.ssl.X509TrustManager
import okhttp3.Call
import okhttp3.Callback
import okhttp3.Dispatcher
import okhttp3.HttpUrl.Companion.toHttpUrl
import okhttp3.MediaType
import okhttp3.MediaType.Companion.toMediaType
Expand Down Expand Up @@ -198,6 +200,7 @@ private constructor(@JvmSynthetic internal val okHttpClient: okhttp3.OkHttpClien

private var timeout: Timeout = Timeout.default()
private var proxy: Proxy? = null
private var dispatcherExecutorService: ExecutorService? = null
private var sslSocketFactory: SSLSocketFactory? = null
private var trustManager: X509TrustManager? = null
private var hostnameVerifier: HostnameVerifier? = null
Expand All @@ -208,6 +211,10 @@ private constructor(@JvmSynthetic internal val okHttpClient: okhttp3.OkHttpClien

fun proxy(proxy: Proxy?) = apply { this.proxy = proxy }

fun dispatcherExecutorService(dispatcherExecutorService: ExecutorService?) = apply {
this.dispatcherExecutorService = dispatcherExecutorService
}

fun sslSocketFactory(sslSocketFactory: SSLSocketFactory?) = apply {
this.sslSocketFactory = sslSocketFactory
}
Expand All @@ -229,6 +236,8 @@ private constructor(@JvmSynthetic internal val okHttpClient: okhttp3.OkHttpClien
.callTimeout(timeout.request())
.proxy(proxy)
.apply {
dispatcherExecutorService?.let { dispatcher(Dispatcher(it)) }

val sslSocketFactory = sslSocketFactory
val trustManager = trustManager
if (sslSocketFactory != null && trustManager != null) {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -754,6 +754,9 @@ private constructor(
/** The results of an Export you requested via the dashboard or API. */
@JvmField val EXPORT = of("export")

/** A fee statement. */
@JvmField val FEE_STATEMENT = of("fee_statement")

/** An attachment to an Unusual Activity Report. */
@JvmField
val UNUSUAL_ACTIVITY_REPORT_ATTACHMENT = of("unusual_activity_report_attachment")
Expand Down Expand Up @@ -859,6 +862,8 @@ private constructor(
ENTITY_SUPPLEMENTAL_DOCUMENT,
/** The results of an Export you requested via the dashboard or API. */
EXPORT,
/** A fee statement. */
FEE_STATEMENT,
/** An attachment to an Unusual Activity Report. */
UNUSUAL_ACTIVITY_REPORT_ATTACHMENT,
/** A document granting another entity access to the funds into your account. */
Expand Down Expand Up @@ -961,6 +966,8 @@ private constructor(
ENTITY_SUPPLEMENTAL_DOCUMENT,
/** The results of an Export you requested via the dashboard or API. */
EXPORT,
/** A fee statement. */
FEE_STATEMENT,
/** An attachment to an Unusual Activity Report. */
UNUSUAL_ACTIVITY_REPORT_ATTACHMENT,
/** A document granting another entity access to the funds into your account. */
Expand Down Expand Up @@ -1015,6 +1022,7 @@ private constructor(
DOCUMENT_REQUEST -> Value.DOCUMENT_REQUEST
ENTITY_SUPPLEMENTAL_DOCUMENT -> Value.ENTITY_SUPPLEMENTAL_DOCUMENT
EXPORT -> Value.EXPORT
FEE_STATEMENT -> Value.FEE_STATEMENT
UNUSUAL_ACTIVITY_REPORT_ATTACHMENT -> Value.UNUSUAL_ACTIVITY_REPORT_ATTACHMENT
DEPOSIT_ACCOUNT_CONTROL_AGREEMENT -> Value.DEPOSIT_ACCOUNT_CONTROL_AGREEMENT
PROOF_OF_AUTHORIZATION_REQUEST_SUBMISSION ->
Expand Down Expand Up @@ -1062,6 +1070,7 @@ private constructor(
DOCUMENT_REQUEST -> Known.DOCUMENT_REQUEST
ENTITY_SUPPLEMENTAL_DOCUMENT -> Known.ENTITY_SUPPLEMENTAL_DOCUMENT
EXPORT -> Known.EXPORT
FEE_STATEMENT -> Known.FEE_STATEMENT
UNUSUAL_ACTIVITY_REPORT_ATTACHMENT -> Known.UNUSUAL_ACTIVITY_REPORT_ATTACHMENT
DEPOSIT_ACCOUNT_CONTROL_AGREEMENT -> Known.DEPOSIT_ACCOUNT_CONTROL_AGREEMENT
PROOF_OF_AUTHORIZATION_REQUEST_SUBMISSION ->
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -687,6 +687,9 @@ private constructor(
/** The results of an Export you requested via the dashboard or API. */
@JvmField val EXPORT = of("export")

/** A fee statement. */
@JvmField val FEE_STATEMENT = of("fee_statement")

/** An attachment to an Unusual Activity Report. */
@JvmField
val UNUSUAL_ACTIVITY_REPORT_ATTACHMENT = of("unusual_activity_report_attachment")
Expand Down Expand Up @@ -792,6 +795,8 @@ private constructor(
ENTITY_SUPPLEMENTAL_DOCUMENT,
/** The results of an Export you requested via the dashboard or API. */
EXPORT,
/** A fee statement. */
FEE_STATEMENT,
/** An attachment to an Unusual Activity Report. */
UNUSUAL_ACTIVITY_REPORT_ATTACHMENT,
/** A document granting another entity access to the funds into your account. */
Expand Down Expand Up @@ -894,6 +899,8 @@ private constructor(
ENTITY_SUPPLEMENTAL_DOCUMENT,
/** The results of an Export you requested via the dashboard or API. */
EXPORT,
/** A fee statement. */
FEE_STATEMENT,
/** An attachment to an Unusual Activity Report. */
UNUSUAL_ACTIVITY_REPORT_ATTACHMENT,
/** A document granting another entity access to the funds into your account. */
Expand Down Expand Up @@ -948,6 +955,7 @@ private constructor(
DOCUMENT_REQUEST -> Value.DOCUMENT_REQUEST
ENTITY_SUPPLEMENTAL_DOCUMENT -> Value.ENTITY_SUPPLEMENTAL_DOCUMENT
EXPORT -> Value.EXPORT
FEE_STATEMENT -> Value.FEE_STATEMENT
UNUSUAL_ACTIVITY_REPORT_ATTACHMENT -> Value.UNUSUAL_ACTIVITY_REPORT_ATTACHMENT
DEPOSIT_ACCOUNT_CONTROL_AGREEMENT -> Value.DEPOSIT_ACCOUNT_CONTROL_AGREEMENT
PROOF_OF_AUTHORIZATION_REQUEST_SUBMISSION ->
Expand Down Expand Up @@ -995,6 +1003,7 @@ private constructor(
DOCUMENT_REQUEST -> Known.DOCUMENT_REQUEST
ENTITY_SUPPLEMENTAL_DOCUMENT -> Known.ENTITY_SUPPLEMENTAL_DOCUMENT
EXPORT -> Known.EXPORT
FEE_STATEMENT -> Known.FEE_STATEMENT
UNUSUAL_ACTIVITY_REPORT_ATTACHMENT -> Known.UNUSUAL_ACTIVITY_REPORT_ATTACHMENT
DEPOSIT_ACCOUNT_CONTROL_AGREEMENT -> Known.DEPOSIT_ACCOUNT_CONTROL_AGREEMENT
PROOF_OF_AUTHORIZATION_REQUEST_SUBMISSION ->
Expand Down
Loading
Loading