diff --git a/examples/streaming-example/build.gradle.kts b/examples/streaming-example/build.gradle.kts
index 02fbc35cd..cd8b0aa61 100644
--- a/examples/streaming-example/build.gradle.kts
+++ b/examples/streaming-example/build.gradle.kts
@@ -13,7 +13,7 @@ repositories {
}
dependencies {
- implementation("io.getunleash:unleash-client-java:11.1.0")
- implementation("com.launchdarkly:okhttp-eventsource:4.1.1")
+ implementation("io.getunleash:unleash-client-java:12.2.1-SNAPSHOT")
+ implementation("com.launchdarkly:okhttp-eventsource:4.2.0")
implementation("ch.qos.logback:logback-classic:1.5.18")
-}
\ No newline at end of file
+}
diff --git a/examples/streaming-example/gradle/wrapper/gradle-wrapper.properties b/examples/streaming-example/gradle/wrapper/gradle-wrapper.properties
index d6e308a63..221c4f982 100644
--- a/examples/streaming-example/gradle/wrapper/gradle-wrapper.properties
+++ b/examples/streaming-example/gradle/wrapper/gradle-wrapper.properties
@@ -1,5 +1,5 @@
distributionBase=GRADLE_USER_HOME
distributionPath=wrapper/dists
-distributionUrl=https\://services.gradle.org/distributions/gradle-8.12-bin.zip
+distributionUrl=https\://services.gradle.org/distributions/gradle-9.4.1-bin.zip
zipStoreBase=GRADLE_USER_HOME
zipStorePath=wrapper/dists
diff --git a/examples/streaming-example/src/main/java/io/getunleash/example/StreamingExample.java b/examples/streaming-example/src/main/java/io/getunleash/example/StreamingExample.java
index ad6f9e072..b2f70fd60 100644
--- a/examples/streaming-example/src/main/java/io/getunleash/example/StreamingExample.java
+++ b/examples/streaming-example/src/main/java/io/getunleash/example/StreamingExample.java
@@ -12,40 +12,57 @@ public class StreamingExample {
private static Unleash unleash;
private static class StreamingEventSubscriber implements UnleashSubscriber {
+
@Override
public void togglesFetched(ClientFeaturesResponse toggleResponse) {
System.out.println("[STREAMING EVENT] Features updated");
if (unleash != null) {
boolean isEnabled = unleash.isEnabled("streaming_flag");
- System.out.println(" streaming_flag: " + (isEnabled ? "ENABLED" : "DISABLED"));
+ System.out.println(
+ " streaming_flag: " + (isEnabled ? "ENABLED" : "DISABLED")
+ );
+ System.out.println(
+ " test devices flag: " + unleash.isEnabled("devices")
+ );
}
}
@Override
public void onError(UnleashException unleashException) {
- System.err.println("[STREAMING ERROR] " + unleashException.getMessage());
+ System.err.println(
+ "[STREAMING ERROR] " + unleashException.getMessage()
+ );
}
}
public static void main(String[] args) {
StreamingEventSubscriber subscriber = new StreamingEventSubscriber();
- UnleashConfig config =
- UnleashConfig.builder()
- .appName("streaming-example")
- .instanceId("streaming-example-instance")
- .unleashAPI(getOrElse("UNLEASH_API_URL", "https://app.unleash-hosted.com/demo/api"))
- .customHttpHeader(
- "Authorization",
- getOrElse("UNLEASH_API_TOKEN",
- "*:development.25a06b75248528f8ca93ce179dcdd141aedfb632231e0d21fd8ff349"))
- .experimentalStreamingMode()
- .subscriber(subscriber)
- .build();
+ UnleashConfig config = UnleashConfig.builder()
+ .appName("streaming-example")
+ .instanceId("streaming-example-instance")
+ .unleashAPI(
+ getOrElse(
+ "UNLEASH_API_URL",
+ "https://app.unleash-hosted.com/demo/api"
+ )
+ )
+ .customHttpHeader(
+ "Authorization",
+ getOrElse(
+ "UNLEASH_API_TOKEN",
+ "*:development.25a06b75248528f8ca93ce179dcdd141aedfb632231e0d21fd8ff349"
+ )
+ )
+ .experimentalStreamingMode()
+ .subscriber(subscriber)
+ .build();
unleash = new DefaultUnleash(config);
- System.out.println("Streaming client started. Waiting for events... (Press Ctrl+C to exit)");
+ System.out.println(
+ "Streaming client started. Waiting for events... (Press Ctrl+C to exit)"
+ );
try {
Thread.currentThread().join();
@@ -62,4 +79,4 @@ public static String getOrElse(String key, String defaultValue) {
}
return value;
}
-}
\ No newline at end of file
+}
diff --git a/pom.xml b/pom.xml
index f4afca2db..bfc30601d 100644
--- a/pom.xml
+++ b/pom.xml
@@ -7,7 +7,7 @@
UTF-8
- 5.2.2
+ 6.1.0
3.27.7
2.13.2
@@ -15,9 +15,9 @@
5.14.0
1.5.25
5.20.0
- 4.12.0
+ 5.3.2
2.0.17
- 3.9.2
+ 3.13.2
io.getunleash:unleash-client-java
@@ -61,7 +61,7 @@
io.getunleash
yggdrasil-engine
- 0.5.1
+ 1.0.1
com.google.code.gson
@@ -70,14 +70,14 @@
com.squareup.okhttp3
- okhttp
+ okhttp-jvm
${version.okhttp}
true
com.launchdarkly
okhttp-eventsource
- 4.1.1
+ 4.2.0
diff --git a/src/main/java/io/getunleash/DefaultUnleash.java b/src/main/java/io/getunleash/DefaultUnleash.java
index 9ea99fa8d..be8522ef0 100644
--- a/src/main/java/io/getunleash/DefaultUnleash.java
+++ b/src/main/java/io/getunleash/DefaultUnleash.java
@@ -228,7 +228,8 @@ public List evaluateAllToggles(UnleashContext context) {
UnleashContext enhancedContext = context.applyStaticFields(config);
FlatResponse response =
featureRepository.getVariant(toggleName, enhancedContext);
- Optional variantDef = Optional.of(response.value);
+ Optional variantDef =
+ Optional.ofNullable(response).map(r -> r.value);
Variant variant =
YggdrasilAdapters.adapt(variantDef, DISABLED_VARIANT);
return new EvaluatedToggle(
diff --git a/src/main/java/io/getunleash/metric/OkHttpMetricsSender.java b/src/main/java/io/getunleash/metric/OkHttpMetricsSender.java
index 36015f11b..ff888f3bf 100644
--- a/src/main/java/io/getunleash/metric/OkHttpMetricsSender.java
+++ b/src/main/java/io/getunleash/metric/OkHttpMetricsSender.java
@@ -15,12 +15,7 @@
import java.time.LocalDateTime;
import java.util.Objects;
import java.util.concurrent.atomic.AtomicLong;
-import okhttp3.HttpUrl;
-import okhttp3.MediaType;
-import okhttp3.OkHttpClient;
-import okhttp3.Request;
-import okhttp3.RequestBody;
-import okhttp3.Response;
+import okhttp3.*;
public class OkHttpMetricsSender implements MetricSender {
private final UnleashConfig config;
diff --git a/src/main/java/io/getunleash/repository/FeatureRepositoryImpl.java b/src/main/java/io/getunleash/repository/FeatureRepositoryImpl.java
index 35de8b0ad..8c5aea8be 100644
--- a/src/main/java/io/getunleash/repository/FeatureRepositoryImpl.java
+++ b/src/main/java/io/getunleash/repository/FeatureRepositoryImpl.java
@@ -60,7 +60,7 @@ public FeatureRepositoryImpl(UnleashConfig unleashConfig, UnleashEngine engine)
private void initCollections(UnleashScheduledExecutor executor) {
Optional features = this.featureBackupHandler.read();
- if (!features.isPresent() && this.bootstrapper != null) {
+ if (features.isEmpty() && this.bootstrapper != null) {
features = this.bootstrapper.read();
}
if (features.isPresent()) {