diff --git a/.github/workflows/pr.yaml b/.github/workflows/pr.yaml index 64e5462..8c406d0 100644 --- a/.github/workflows/pr.yaml +++ b/.github/workflows/pr.yaml @@ -9,11 +9,11 @@ jobs: uses: actions/checkout@v4 - name: Validate Gradle Wrapper uses: gradle/wrapper-validation-action@v3 - - name: Setup Java + - name: Set up JDK 21 uses: actions/setup-java@v4 with: - distribution: temurin - java-version: 21 + distribution: 'graalvm' + java-version: '21' - name: Setup Gradle uses: gradle/gradle-build-action@v2 - name: Build diff --git a/.github/workflows/release.yaml b/.github/workflows/release.yaml index 8694fc5..0be4533 100644 --- a/.github/workflows/release.yaml +++ b/.github/workflows/release.yaml @@ -16,10 +16,10 @@ jobs: steps: - uses: actions/checkout@v4 - name: Set up JDK 21 - uses: actions/setup-java@v2 + uses: actions/setup-java@v4 with: + distribution: 'graalvm' java-version: '21' - distribution: 'temurin' - name: Setup Gradle uses: gradle/gradle-build-action@v2 - name: Publish to Sonatype diff --git a/build.gradle.kts b/build.gradle.kts index 05bb9cb..f4ddc41 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -30,6 +30,7 @@ java { toolchain { languageVersion = JavaLanguageVersion.of(21) + vendor.set(JvmVendorSpec.GRAAL_VM) nativeImageCapable = true } } diff --git a/settings.gradle.kts b/settings.gradle.kts index 1a2bc6a..a1a10d3 100644 --- a/settings.gradle.kts +++ b/settings.gradle.kts @@ -1,2 +1,5 @@ rootProject.name = "posthog-java" +plugins { + id("org.gradle.toolchains.foojay-resolver-convention") version "0.8.0" +} diff --git a/src/main/java/net/hollowcube/posthog/PostHogClientImpl.java b/src/main/java/net/hollowcube/posthog/PostHogClientImpl.java index 4ddd1f1..736e61a 100644 --- a/src/main/java/net/hollowcube/posthog/PostHogClientImpl.java +++ b/src/main/java/net/hollowcube/posthog/PostHogClientImpl.java @@ -86,17 +86,18 @@ public final class PostHogClientImpl implements PostHogClient { this.setPropertyIfAbsent(this.defaultEventProperties, LIB_VERSION, DEFAULT_LIBRARY_VERSION); this.eventBatchTimeout = eventBatchTimeout; + this.allowRemoteFeatureFlagEvaluation = allowRemoteFeatureFlagEvaluation; + this.sendFeatureFlagEvents = sendFeatureFlagEvents; + this.featureFlagsRequestTimeout = featureFlagsRequestTimeout; + + this.exceptionMiddleware = exceptionMiddleware; + // Always enable local evaluation with personal api key. if (this.personalApiKey != null) { this.featureFlagFetchTimer = new Timer(this::loadRemoteFeatureFlags, featureFlagsPollingInterval); } else if (!allowRemoteFeatureFlagEvaluation) { throw new IllegalArgumentException("Personal API key is required when remote feature flag evaluation is disabled"); } else this.featureFlagFetchTimer = null; - this.allowRemoteFeatureFlagEvaluation = allowRemoteFeatureFlagEvaluation; - this.sendFeatureFlagEvents = sendFeatureFlagEvents; - this.featureFlagsRequestTimeout = featureFlagsRequestTimeout; - - this.exceptionMiddleware = exceptionMiddleware; } @Override