-
Notifications
You must be signed in to change notification settings - Fork 191
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
Invert abstractness of generated vs "handwritten" client classes #1170
Merged
Xtansia
merged 2 commits into
opensearch-project:main
from
Xtansia:fix/invert-generated-client-base-relationship
Aug 30, 2024
Merged
Invert abstractness of generated vs "handwritten" client classes #1170
Xtansia
merged 2 commits into
opensearch-project:main
from
Xtansia:fix/invert-generated-client-base-relationship
Aug 30, 2024
Conversation
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Signed-off-by: Thomas Farr <tsfarr@amazon.com>
Xtansia
requested review from
reta,
Bukhtawar,
dblock,
szczepanczykd,
madhusudhankonda,
saratvemulapalli and
VachaShah
as code owners
August 29, 2024 12:01
dblock
previously approved these changes
Aug 29, 2024
reta
reviewed
Aug 29, 2024
java-codegen/src/main/java/org/opensearch/client/codegen/model/Type.java
Outdated
Show resolved
Hide resolved
reta
reviewed
Aug 29, 2024
java-codegen/src/main/java/org/opensearch/client/codegen/model/Type.java
Outdated
Show resolved
Hide resolved
reta
reviewed
Aug 29, 2024
java-codegen/src/main/java/org/opensearch/client/codegen/model/Type.java
Outdated
Show resolved
Hide resolved
reta
reviewed
Aug 29, 2024
java-codegen/src/main/java/org/opensearch/client/codegen/model/TypeParameterDefinition.java
Outdated
Show resolved
Hide resolved
Signed-off-by: Thomas Farr <tsfarr@amazon.com>
reta
approved these changes
Aug 29, 2024
Xtansia
added a commit
to Xtansia/opensearch-java
that referenced
this pull request
Aug 30, 2024
…nsearch-project#1170) * Invert abstractness of generated vs "handwritten" client classes Signed-off-by: Thomas Farr <tsfarr@amazon.com> * Address review comments Signed-off-by: Thomas Farr <tsfarr@amazon.com> --------- Signed-off-by: Thomas Farr <tsfarr@amazon.com> (cherry picked from commit 42e2928)
dblock
pushed a commit
that referenced
this pull request
Aug 30, 2024
* Generate client code from OpenAPI specification (#366) * OpenAPI generator from scratch Signed-off-by: Thomas Farr <tsfarr@amazon.com> * Write to files and generate object shapes Signed-off-by: Thomas Farr <tsfarr@amazon.com> * Output response shapes and enum shapes Signed-off-by: Thomas Farr <tsfarr@amazon.com> * Fix builder setters for enums Signed-off-by: Thomas Farr <tsfarr@amazon.com> * Better handling of required fields Signed-off-by: Thomas Farr <tsfarr@amazon.com> * Unify templates for ObjectShape/OperationRequest Signed-off-by: Thomas Farr <tsfarr@amazon.com> * Simple http path expression Signed-off-by: Thomas Farr <tsfarr@amazon.com> * Generate client class Signed-off-by: Thomas Farr <tsfarr@amazon.com> * Cleanup Signed-off-by: Thomas Farr <tsfarr@amazon.com> * Generate namespaces remote store client Signed-off-by: Thomas Farr <tsfarr@amazon.com> * Add license header, improve http path builder, fix remote store spec Signed-off-by: Thomas Farr <tsfarr@amazon.com> * Suppress checkstyle unused imports lint for generated code Signed-off-by: Thomas Farr <tsfarr@amazon.com> * Centralize some naming Signed-off-by: Thomas Farr <tsfarr@amazon.com> * Allow renaming operations Signed-off-by: Thomas Farr <tsfarr@amazon.com> * Add generated warning header Signed-off-by: Thomas Farr <tsfarr@amazon.com> * Refactor Signed-off-by: Thomas Farr <tsfarr@amazon.com> * Less code more templates Signed-off-by: Thomas Farr <tsfarr@amazon.com> * Simplify http path part Signed-off-by: Thomas Farr <tsfarr@amazon.com> * Fixes Signed-off-by: Thomas Farr <tsfarr@amazon.com> * Swap to swagger-parser Signed-off-by: Thomas Farr <tsfarr@amazon.com> * Handle x-data-type & array response bodies Signed-off-by: Thomas Farr <tsfarr@amazon.com> * Handle multiple http paths for same operation Signed-off-by: Thomas Farr <tsfarr@amazon.com> * Improve type handling Signed-off-by: Thomas Farr <tsfarr@amazon.com> * Tweak package name determination Signed-off-by: Thomas Farr <tsfarr@amazon.com> * Handle additionalProperties on ErrorCause Signed-off-by: Thomas Farr <tsfarr@amazon.com> * Simplify enum shape Signed-off-by: Thomas Farr <tsfarr@amazon.com> * Change default number type Signed-off-by: Thomas Farr <tsfarr@amazon.com> * Generate parameter-less operation method when no required fields Signed-off-by: Thomas Farr <tsfarr@amazon.com> * Refactor to parse multi-file spec Signed-off-by: Thomas Farr <tsfarr@amazon.com> * spotlessApply Signed-off-by: Thomas Farr <tsfarr@amazon.com> * Use spotless to format code Signed-off-by: Thomas Farr <tsfarr@amazon.com> * Maintain spec location information Signed-off-by: Thomas Farr <tsfarr@amazon.com> * Refactor model transformation and type mapper Signed-off-by: Thomas Farr <tsfarr@amazon.com> * Match existing naming scheme Signed-off-by: Thomas Farr <tsfarr@amazon.com> * Change OperationGroup matching logic to determine which to generate Signed-off-by: Thomas Farr <tsfarr@amazon.com> * Better handle errors thrown by formatter Signed-off-by: Thomas Farr <tsfarr@amazon.com> * Add typedef comment Signed-off-by: Thomas Farr <tsfarr@amazon.com> * Support tagged union Signed-off-by: Thomas Farr <tsfarr@amazon.com> * Add additional reserved keywords Signed-off-by: Thomas Farr <tsfarr@amazon.com> * Improve parsing logic Signed-off-by: Thomas Farr <tsfarr@amazon.com> * Add basic tests and implement proper argument parsing Signed-off-by: Thomas Farr <tsfarr@amazon.com> * Improve tagged union generation and filter global query params Signed-off-by: Thomas Farr <tsfarr@amazon.com> * Change enum naming style Signed-off-by: Thomas Farr <tsfarr@amazon.com> * Handle Time type Signed-off-by: Thomas Farr <tsfarr@amazon.com> * Handle deprecation Signed-off-by: Thomas Farr <tsfarr@amazon.com> * Clear operations to generate Signed-off-by: Thomas Farr <tsfarr@amazon.com> * Change usages of `<stream>.toList()` to `<stream>.collect(Collectors.toList())` Signed-off-by: Thomas Farr <tsfarr@amazon.com> * Remove publishing from build.gradle Signed-off-by: Thomas Farr <tsfarr@amazon.com> * Cleaning up Signed-off-by: Thomas Farr <tsfarr@amazon.com> * spotless Signed-off-by: Thomas Farr <tsfarr@amazon.com> --------- Signed-off-by: Thomas Farr <tsfarr@amazon.com> (cherry picked from commit bb995ec) * Bump commons-codec:commons-codec from 1.11.0 to 1.17.0 in java-codegen (#1023) Signed-off-by: Thomas Farr <tsfarr@amazon.com> (cherry picked from commit 13982b1) * Regenerate request/response for the `info` operation (#1026) * Tweak formatting rules used by codegen to allow reformatting javadoc Signed-off-by: Thomas Farr <tsfarr@amazon.com> * Support codegen for request shapes that may be singleton Signed-off-by: Thomas Farr <tsfarr@amazon.com> * Generate info operation shapes Signed-off-by: Thomas Farr <tsfarr@amazon.com> --------- Signed-off-by: Thomas Farr <tsfarr@amazon.com> (cherry picked from commit dea7e72) * Enforce & fix license headers (#1027) * Enforce license headers Signed-off-by: Thomas Farr <tsfarr@amazon.com> * spotlessApply Signed-off-by: Thomas Farr <tsfarr@amazon.com> --------- Signed-off-by: Thomas Farr <tsfarr@amazon.com> (cherry picked from commit 5d5c6b5) * Add `@Generated` annotation to generated classes (#1029) Signed-off-by: Thomas Farr <tsfarr@amazon.com> (cherry picked from commit 767c313) * Begin generating client implementations (#1052) * Tweak client generation to extend from existing classes Signed-off-by: Thomas Farr <tsfarr@amazon.com> * Modify existing client classes to be abstract base classes Signed-off-by: Thomas Farr <tsfarr@amazon.com> * Re-run generator Signed-off-by: Thomas Farr <tsfarr@amazon.com> * ./gradlew spotlessApply Signed-off-by: Thomas Farr <tsfarr@amazon.com> --------- Signed-off-by: Thomas Farr <tsfarr@amazon.com> (cherry picked from commit dbde609) * Bump org.junit:junit-bom from 5.10.2 to 5.10.3 (#1062) * Bump org.junit:junit-bom from 5.10.2 to 5.10.3 Bumps [org.junit:junit-bom](https://github.com/junit-team/junit5) from 5.10.2 to 5.10.3. - [Release notes](https://github.com/junit-team/junit5/releases) - [Commits](junit-team/junit5@r5.10.2...r5.10.3) Signed-off-by: Thomas Farr <tsfarr@amazon.com> --- updated-dependencies: - dependency-name: org.junit:junit-bom dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] <support@github.com> * Update changelog Signed-off-by: dependabot[bot] <support@github.com> --------- Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: dependabot[bot] <dependabot[bot]@users.noreply.github.com> (cherry picked from commit af769c8) * Bump org.owasp.dependencycheck from 9.2.0 to 10.0.2 (#1069) * Bump org.owasp.dependencycheck from 9.2.0 to 10.0.2 Bumps org.owasp.dependencycheck from 9.2.0 to 10.0.2. Signed-off-by: Thomas Farr <tsfarr@amazon.com> --- updated-dependencies: - dependency-name: org.owasp.dependencycheck dependency-type: direct:production update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] <support@github.com> * Update changelog Signed-off-by: dependabot[bot] <support@github.com> --------- Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: dependabot[bot] <dependabot[bot]@users.noreply.github.com> (cherry picked from commit 848be31) * Add workflow to auto-update codegen (#1065) Signed-off-by: Thomas Farr <tsfarr@amazon.com> (cherry picked from commit 0cf11db) * Fix handling of OpenAPI schemas with multiple types (#1102) Signed-off-by: Thomas Farr <tsfarr@amazon.com> (cherry picked from commit eff1ae1) * Regenerate dangling_indices namespace (#1124) * Rename genericArgs to typeParams Signed-off-by: Thomas Farr <tsfarr@amazon.com> * Fix required path param handling Signed-off-by: Thomas Farr <tsfarr@amazon.com> * Correctly generate AcknowledgedResponseBase Signed-off-by: Thomas Farr <tsfarr@amazon.com> * Generate DeleteDanglingIndexRequest Signed-off-by: Thomas Farr <tsfarr@amazon.com> * Correctly generate DeleteDanglingIndexResponse Signed-off-by: Thomas Farr <tsfarr@amazon.com> * Generate import_dangling_index Signed-off-by: Thomas Farr <tsfarr@amazon.com> * Generate ListDanglingIndicesRequest Signed-off-by: Thomas Farr <tsfarr@amazon.com> * Generate ErrorCause Signed-off-by: Thomas Farr <tsfarr@amazon.com> * Generate NodeStatistics Signed-off-by: Thomas Farr <tsfarr@amazon.com> * Generate DanglingIndex Signed-off-by: Thomas Farr <tsfarr@amazon.com> * Generate ListDanglingIndicesResponse Signed-off-by: Thomas Farr <tsfarr@amazon.com> * Generate DanglingIndicesClient Signed-off-by: Thomas Farr <tsfarr@amazon.com> * Fixes Signed-off-by: Thomas Farr <tsfarr@amazon.com> * Changelog and Upgrading Signed-off-by: Thomas Farr <tsfarr@amazon.com> * Fix javadoc Signed-off-by: Thomas Farr <tsfarr@amazon.com> * Fix tests Signed-off-by: Thomas Farr <tsfarr@amazon.com> --------- Signed-off-by: Thomas Farr <tsfarr@amazon.com> (cherry picked from commit 324f90a) * Bump com.github.jk1.dependency-license-report from 2.8 to 2.9 (#1144) Bumps com.github.jk1.dependency-license-report from 2.8 to 2.9. Signed-off-by: Thomas Farr <tsfarr@amazon.com> --- updated-dependencies: - dependency-name: com.github.jk1.dependency-license-report dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> (cherry picked from commit 08e7e65) * Tweak codegen logic for formatting, documentation and handling of anyOf (#1152) * Re-generate code Signed-off-by: Thomas Farr <tsfarr@amazon.com> * Improve builder doc comments Signed-off-by: Thomas Farr <tsfarr@amazon.com> * Fix list/map isDefined serialize logic Signed-off-by: Thomas Farr <tsfarr@amazon.com> * Add support for deprecated enums Signed-off-by: Thomas Farr <tsfarr@amazon.com> * Improve isDefined logic Signed-off-by: Thomas Farr <tsfarr@amazon.com> * Allow overriding request/response naming Signed-off-by: Thomas Farr <tsfarr@amazon.com> * Support anyOf Signed-off-by: Thomas Farr <tsfarr@amazon.com> * Update spec Signed-off-by: Thomas Farr <tsfarr@amazon.com> * spotlessApply Signed-off-by: Thomas Farr <tsfarr@amazon.com> --------- Signed-off-by: Thomas Farr <tsfarr@amazon.com> (cherry picked from commit 7b954af) * Generate the ml namespace (#1158) * Generate ml.register_model_group Signed-off-by: Thomas Farr <tsfarr@amazon.com> * Start neural search sample Signed-off-by: Thomas Farr <tsfarr@amazon.com> * Re-generate ShardStatistics Signed-off-by: Thomas Farr <tsfarr@amazon.com> * Re-generate ShardFailure Signed-off-by: Thomas Farr <tsfarr@amazon.com> * Re-generate Result Signed-off-by: Thomas Farr <tsfarr@amazon.com> * Re-generate WriteResponseBase Signed-off-by: Thomas Farr <tsfarr@amazon.com> * Generate ml.delete_model_group Signed-off-by: Thomas Farr <tsfarr@amazon.com> * Generate ml.register_model Signed-off-by: Thomas Farr <tsfarr@amazon.com> * Exclude legacy license from ml namespace Signed-off-by: Thomas Farr <tsfarr@amazon.com> * Generate ml.get_task Signed-off-by: Thomas Farr <tsfarr@amazon.com> * Generate ml.delete_task Signed-off-by: Thomas Farr <tsfarr@amazon.com> * Generate ml.delete_model Signed-off-by: Thomas Farr <tsfarr@amazon.com> * Generate ml.deploy_model Signed-off-by: Thomas Farr <tsfarr@amazon.com> * Generate ml.undeploy_model Signed-off-by: Thomas Farr <tsfarr@amazon.com> * Complete neural search sample Signed-off-by: Thomas Farr <tsfarr@amazon.com> * Generate ml.get_model Signed-off-by: Thomas Farr <tsfarr@amazon.com> * Add changelog entry Signed-off-by: Thomas Farr <tsfarr@amazon.com> * note Signed-off-by: Thomas Farr <tsfarr@amazon.com> * Fix tests Signed-off-by: Thomas Farr <tsfarr@amazon.com> --------- Signed-off-by: Thomas Farr <tsfarr@amazon.com> (cherry picked from commit c6e61e1) * Invert abstractness of generated vs "handwritten" client classes (#1170) * Invert abstractness of generated vs "handwritten" client classes Signed-off-by: Thomas Farr <tsfarr@amazon.com> * Address review comments Signed-off-by: Thomas Farr <tsfarr@amazon.com> --------- Signed-off-by: Thomas Farr <tsfarr@amazon.com> (cherry picked from commit 42e2928) * Temporarily disable code gen up-to-date check Signed-off-by: Thomas Farr <tsfarr@amazon.com> --------- Signed-off-by: Thomas Farr <tsfarr@amazon.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Description
Invert abstractness of generated vs "handwritten" client classes. For the client classes that are "split" between generated and not, makes the generated part the abstract/"Base" class. Moving definitions from the sub-class to the base class will be API compatible. This will make it feasible to backport the codegen to 2.x.
By submitting this pull request, I confirm that my contribution is made under the terms of the Apache 2.0 license.
For more information on following Developer Certificate of Origin and signing off your commits, please check here.