diff --git a/src/main/java/com/launchdarkly/client/FeatureRequestEvent.java b/src/main/java/com/launchdarkly/client/FeatureRequestEvent.java index 4b1fa8ac2..ad4f293cb 100644 --- a/src/main/java/com/launchdarkly/client/FeatureRequestEvent.java +++ b/src/main/java/com/launchdarkly/client/FeatureRequestEvent.java @@ -1,10 +1,15 @@ package com.launchdarkly.client; +import com.google.gson.annotations.SerializedName; + class FeatureRequestEvent extends Event { E value; + @SerializedName("default") + E defaultVal; - FeatureRequestEvent(String key, LDUser user, E value) { + FeatureRequestEvent(String key, LDUser user, E value, E defaultVal) { super("feature", key, user); this.value = value; + this.defaultVal = defaultVal; } } diff --git a/src/main/java/com/launchdarkly/client/LDClient.java b/src/main/java/com/launchdarkly/client/LDClient.java index 6a5d037d4..140f9a56e 100644 --- a/src/main/java/com/launchdarkly/client/LDClient.java +++ b/src/main/java/com/launchdarkly/client/LDClient.java @@ -115,8 +115,8 @@ public void identify(LDUser user) { } } - private void sendFlagRequestEvent(String featureKey, LDUser user, boolean value) { - boolean processed = eventProcessor.sendEvent(new FeatureRequestEvent(featureKey, user, value)); + private void sendFlagRequestEvent(String featureKey, LDUser user, boolean value, boolean defaultValue) { + boolean processed = eventProcessor.sendEvent(new FeatureRequestEvent(featureKey, user, value, defaultValue)); if (!processed) { logger.warn("Exceeded event queue capacity. Increase capacity to avoid dropping events."); } @@ -165,22 +165,22 @@ public boolean toggle(String featureKey, LDUser user, boolean defaultValue) { } if (result == null) { logger.warn("Unknown feature flag " + featureKey + "; returning default value"); - sendFlagRequestEvent(featureKey, user, defaultValue); + sendFlagRequestEvent(featureKey, user, defaultValue, defaultValue); return defaultValue; } Boolean val = result.evaluate(user); if (val == null) { - sendFlagRequestEvent(featureKey, user, defaultValue); + sendFlagRequestEvent(featureKey, user, defaultValue, defaultValue); return defaultValue; } else { boolean value = val.booleanValue(); - sendFlagRequestEvent(featureKey, user, value); + sendFlagRequestEvent(featureKey, user, value, defaultValue); return value; } } catch (Exception e) { logger.error("Encountered exception in LaunchDarkly client", e); - sendFlagRequestEvent(featureKey, user, defaultValue); + sendFlagRequestEvent(featureKey, user, defaultValue, defaultValue); return defaultValue; } }