Fix EmptyInputFormat failure outside of Core Plugins

Description

Plugins that extend from AbstractFileSource (link) which are outside of the Core Plugins module will not correctly export the EmptyInputFormat that is required when we need to handle the case where the source input is empty.

The EmptyInputFormat is under the io.cdap.plugin.format.input package, which I see getting exported only in the core-plugins https://github.com/cdapio/hydrator-plugins/blob/48c675e8ee5b86255da17a36e93e632eb8edff5e/core-plugins/pom.xml#L292 . Other plugins (Such as the S3 Plugins) do not and should not export this package.

A potential solution is to require all plugins that extend from AbstractFileSource to expose their own Empty Input Format implementation (replacing this line of code with the method to get the concrete implementation class). This way, classloading issues accross multiple plugins are mitigated.

It’s not necessary to duplicate the code from EmptyInputFormat. An abstract class may be provided that plugins can extend and expose under their own implementation package.

Release Notes

None

Activity

Show:

Ankit Jain August 30, 2024 at 10:07 AM

Similar issue need to be fixed for GCS Source, currently it is hardcoded which is bad:

Unresolved
Pinned fields
Click on the next to a field label to start pinning.

Details

Assignee

Reporter

Reviewer

Components

Fix versions

Priority

More fields

Created January 31, 2024 at 5:52 PM
Updated December 3, 2024 at 4:01 PM