Java-Core to Gax Mapping Tracking Ticket

Open
#13,297 0 comments 0 reactions 0 assignees View on GitHub

Maintainers usually reply within 1 day

Nobody has claimed this yet.

Assessment

Difficulty
5/5
Estimated time
Over a week
Newbie friendliness
25/100
Issue type
Refactor
Clarity
Needs clarification
Activity status
Quiet
Tech stack
java

Research direction

Begin by comparing the listed Java-Core and Gax areas: ServiceOptions with ClientSettings, Resolve Host with EndpointContext, and DirectExector with ScheduledExectuor. The issue does not name files or tests; completion would require defining and implementing a complete mapping without breaking existing handwritten client libraries.

Written by the indexing model from the issue text.

Description

priority: p2 type: feature request

Problem

The Java SDK has a split in some runtime functionality between Java-Core and Gax for some client libraries. Historically Java-Core was maintained by older handwritten teams and contains mostly the same functionality that exists inside Gax. Gax is modern and actively maintained by the Cloud Java team and to ensure that features have complete coverage in the Java SDK, the features must be added to both Java-Core and Gax. We cannot get rid of Java-Core without potential breaking changes and migrating all use cases to Gax may not also be possible.

Solution(s)?

  1. Java-Core's functionality serves as a wrapper around Gax that is used for older, existing handwritten libraries. Java-Core should delegate the actual logic to Gax so that there is a single source of truth. Changes required from new features should only be made to Gax and can be applied to all the client libraries in the SDK.

Areas to consider creating a mapping

  1. Settings/ Options (ServiceOptions -> ClientSettings)
  2. URL Resolution (Resolve Host -> EndpointContext)
  3. Executor logic (Deprecation of DirectExector and replace with ScheduledExectuor)?
Dominant language
Java
Stars
2.1k
Forks
1.2k
Avg merge
2d 14h
Merged PRs (30d)
192

Getting set up

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

More from googleapis/google-cloud-java

All issues in googleapis/google-cloud-java

Similar issues

More Java issues

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.