Skip to content

Clean up the core API required for Iceberg extension#14614

Merged
kfaraz merged 3 commits intoapache:masterfrom
abhishekagarwal87:api_change
Jul 21, 2023
Merged

Clean up the core API required for Iceberg extension#14614
kfaraz merged 3 commits intoapache:masterfrom
abhishekagarwal87:api_change

Conversation

@abhishekagarwal87
Copy link
Copy Markdown
Contributor

It gets rid of the abstract class and now the iceberg extension instead relies on an interface. Some of the logic is moved from the abstract class to IcebergInputSource itself.

This PR has:

  • been self-reviewed.
  • added documentation for new or modified features or behaviors.
  • a release note entry in the PR description.
  • added Javadocs for most classes and all non-trivial methods. Linked related entities via Javadoc links.
  • added or updated version, license, or notice information in licenses.yaml
  • added comments explaining the "why" and the intent of the code wherever would not be obvious for an unfamiliar reader.
  • added unit tests or modified existing tests to cover new code paths, ensuring the threshold for code coverage is met.
  • added integration tests.
  • been tested in a test Druid cluster.

@abhishekagarwal87 abhishekagarwal87 added this to the 27.0 milestone Jul 19, 2023
@abhishekagarwal87 abhishekagarwal87 requested a review from a2l007 July 19, 2023 07:24
@abhishekagarwal87
Copy link
Copy Markdown
Contributor Author

@a2l007 - Please review. I would like to backport this change to 27 as well.

Copy link
Copy Markdown
Contributor

@kfaraz kfaraz left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM, thanks for the cleanup!


/**
* An interface to generate a {@link SplittableInputSource} objects on the fly.
* For composing input sources such as IcebergInputSource, the delegate input source instantiation might fail upon deserialization since the input file paths
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Re-reading this part of the comment, I think it is very implementation-specific and shouldn't really be included in the javadoc of this interface.

@kfaraz kfaraz merged commit efb3281 into apache:master Jul 21, 2023
sergioferragut pushed a commit to sergioferragut/druid that referenced this pull request Jul 21, 2023
Changes:
- Replace `AbstractInputSourceBuilder` with `InputSourceFactory`
- Move iceberg specific logic to `IcebergInputSource`
AmatyaAvadhanula pushed a commit to AmatyaAvadhanula/druid that referenced this pull request Aug 1, 2023
Changes:
- Replace `AbstractInputSourceBuilder` with `InputSourceFactory`
- Move iceberg specific logic to `IcebergInputSource`
AmatyaAvadhanula added a commit that referenced this pull request Aug 1, 2023
* Clean up the core API required for Iceberg extension (#14614)

Changes:
- Replace `AbstractInputSourceBuilder` with `InputSourceFactory`
- Move iceberg specific logic to `IcebergInputSource`

* Resolve conflict

* Use generic class in tests

---------

Co-authored-by: Abhishek Agarwal <1477457+abhishekagarwal87@users.noreply.github.com>
@a2l007
Copy link
Copy Markdown
Contributor

a2l007 commented Aug 1, 2023

Thanks for the cleanup @abhishekagarwal87

churromorales pushed a commit to churromorales/druid that referenced this pull request Sep 13, 2023
Changes:
- Replace `AbstractInputSourceBuilder` with `InputSourceFactory`
- Move iceberg specific logic to `IcebergInputSource`
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants