Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Stitching Upload Components to support multiple Upload Strategies #2286

Merged
merged 9 commits into from
Dec 15, 2023

Conversation

anchita-g
Copy link
Collaborator

@anchita-g anchita-g commented Oct 23, 2023

IMPORTANT: All PRs must be linked to an issue (except for extremely trivial and straightforward changes).

One of the PRs to fix #760

Description
We connect the four components: LocalChangeFetcher, PatchGenerator , RequestGenerator and ResourceConsolidator for upload sync to work according to any type of UploadStrategy provided.

Since we have not implemented al the types of the components, with the implementations we have so far, we can only use a few UploadStrategy.
The connection of the components is mainly established by maintaining a mapping of the LocalChanges to the respective outputs in each stage. For example, PatchGenerator is expected to output Patch as well as the respective list of LocalChange from which each Patch was generated.

For RequestGenerator, using the mapped Patch for LocalChanges, the request generator should output the UploadRequest generated as well as the LocalChanges of the Patches from which this request was generated.
For BundleRequestGenerator, the mapping to the LocalChanges is at the level of each entry in the BundleRequest.

This would help in the ResourceConsolidator where in each BundleEntry is like an independent request being executed with its own corresponding response, hence, we would need to know the LocalChanges which result in that particular BundleEntry request.

Alternative(s) considered
NA

Type
Choose one: Feature
Screenshots (if applicable)

Checklist

  • I have read and acknowledged the Code of conduct.
  • I have read the Contributing page.
  • I have signed the Google Individual CLA, or I am covered by my company's Corporate CLA.
  • I have discussed my proposed solution with code owners in the linked issue(s) and we have agreed upon the general approach.
  • I have run ./gradlew spotlessApply and ./gradlew spotlessCheck to check my code follows the style guide of this project.
  • I have run ./gradlew check and ./gradlew connectedCheck to test my changes locally.
  • I have built and run the demo app(s) to verify my change fixes the issue and/or does not break the demo app(s).

@anchita-g anchita-g requested review from santosh-pingle and a team as code owners October 23, 2023 05:10
@anchita-g anchita-g requested a review from williamito October 23, 2023 05:10
@omarismail94 omarismail94 enabled auto-merge (squash) December 15, 2023 12:04
@omarismail94 omarismail94 merged commit b5f8cba into google:master Dec 15, 2023
2 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
Status: Complete
Development

Successfully merging this pull request may close these issues.

Create new resources on the server using POST
3 participants