Skip to content

Java-Core to Gax Mapping Tracking Ticket #13297

@lqiu96

Description

@lqiu96

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)?

Metadata

Metadata

Assignees

No one assigned

    Labels

    priority: p2Moderately-important priority. Fix may not be included in next release.type: feature request‘Nice-to-have’ improvement, new feature or different behavior or design.

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions