[Dataflow Streaming] Move timer tag logic to WindmillStateTagUtil
This is a preparation to introduce a new version of WindmillStateTagUtil. No logic changes, just moving code around.
R: @scwhittle
Summary of Changes
Hello @arunpandianp, I'm Gemini Code Assist[^1]! I'm currently reviewing this pull request and will post my feedback shortly. In the meantime, here's a summary to help you and other reviewers quickly get up to speed!
This pull request undertakes a significant internal refactoring within the Dataflow Streaming worker, specifically concerning the management of timer tags. It systematically migrates timer-related utility functions and associated constants from the WindmillTimerInternals class to the WindmillStateTagUtil class. This reorganization is a preparatory step for future development, aiming to consolidate related logic and improve code maintainability without introducing any changes to the existing runtime behavior or functionality of the system.
Highlights
- Refactoring Timer Logic: Key timer-related utility methods, including
timerTag,windmillTimerToTimerData, andbuildWindmillTimerFromTimerData, have been moved fromWindmillTimerInternalstoWindmillStateTagUtil. - No Functional Changes: This pull request is a pure refactoring, ensuring that no functional changes or behavioral modifications are introduced to the Dataflow Streaming worker.
- Consolidation of Utilities: Constants and helper methods previously scattered across
WindmillTimerInternalsare now centralized withinWindmillStateTagUtilfor better organization and maintainability. - Test Suite Relocation: The unit tests for the moved timer logic have been relocated from the removed
WindmillTimerInternalsTest.javatoWindmillStateTagUtilTest.java, ensuring continued test coverage for the refactored code.
Using Gemini Code Assist
The full guide for Gemini Code Assist can be found on our documentation page, here are some quick tips.
Invoking Gemini
You can request assistance from Gemini at any point by creating a comment using either /gemini <command> or @gemini-code-assist <command>. Below is a summary of the supported commands on the current page.
| Feature | Command | Description |
|---|---|---|
| Code Review | /gemini review |
Performs a code review for the current pull request in its current state. |
| Pull Request Summary | /gemini summary |
Provides a summary of the current pull request in its current state. |
| Comment | @gemini-code-assist | Responds in comments when explicitly tagged, both in pull request comments and review comments. |
| Help | /gemini help |
Displays a list of available commands. |
Customization
To customize Gemini Code Assist for GitHub experience, repository maintainers can create a configuration file and/or provide a custom code review style guide (such as PEP-8 for Python) by creating and adding files to a .gemini/ folder in the base of the repository. Detailed instructions can be found here.
Limitations & Feedback
Gemini Code Assist may make mistakes. Please leave feedback on any instances where its feedback is incorrect or counter productive. You can react with :thumbsup: and :thumbsdown: on @gemini-code-assist comments. If you're interested in giving your feedback about your experience with Gemini Code Assist for Github and other Google products, sign up here.
You can also get AI-powered code generation, chat, as well as code reviews directly in the IDE at no cost with the Gemini Code Assist IDE Extension.
[^1]: Review the Privacy Notices, Generative AI Prohibited Use Policy, Terms of Service, and learn how to configure Gemini Code Assist in GitHub here. Gemini can make mistakes, so double check it and use code with caution.
Stopping reviewer notifications for this pull request: review requested by someone other than the bot, ceding control. If you'd like to restart, comment assign set of reviewers
@scwhittle can this be merged?
Sorry! I was waiting for tests to complete originally but I lost track of it