Skip to content

Conversation

@aarsilv
Copy link
Contributor

@aarsilv aarsilv commented Dec 8, 2025

Do not review; this has been broken up into multiple PRs

@aarsilv aarsilv force-pushed the aarsilv/ffesupport-378/assignment-details branch from f78aab6 to 790d5cf Compare December 9, 2025 15:11
* user-facing AssignmentDetails result class. If any error in the evaluation, the result value
* will be set to the default value.
*/
protected <T> AssignmentDetails<T> getTypedAssignmentWithDetails(
Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Use of generic so that customer's code don't have to unwrap an EppoValue if they retrieve the variation (which is top level, typed T). Unwrapping happens as last step in this method.


public boolean getBooleanAssignment(
String flagKey, String subjectKey, Attributes subjectAttributes, boolean defaultValue) {
return this.getBooleanAssignmentDetails(flagKey, subjectKey, subjectAttributes, defaultValue)
Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

For our non-details methods we get the details and just pull the variation. This increases CPU time by about 50% as measured in ProfileBaseEppoClientTest. However I think that penalty is worth the simplicity as this is still fast and we're moving to Datadog SDKs. We can look into optimizing more later if needed.

new Date(1713382853716L); // 2024-04-17T19:40:53.716Z; matches flags-v1.json
assertEquals(expectedPublishedAt, details.getConfigPublishedAt());
// Fetched at should be after published at (it's set when config is built)
assertTrue(
Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Our shared test cases don't check these dates are correctly populated so I threw it into this test case just so its checked somewhere.

}
}

/**
Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I don't know why only the JSON methods had Javadocs, but claude decided to be consistent and remove them and I agree.

If we want all public methods to have docs we can add them back in a later PR.

@aarsilv aarsilv changed the title Assignment Details [BROKEN UP] Assignment Details Dec 10, 2025
@aarsilv aarsilv changed the base branch from main to aarsilv/ffesupport-378/part3-ingest-test-case-details December 10, 2025 15:11
@aarsilv aarsilv changed the base branch from aarsilv/ffesupport-378/part3-ingest-test-case-details to main December 10, 2025 15:11
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants