The discuss will be open for at least 72 hours to collect dicisions.-- Best! Xuyang
At 2025-01-03 12:06:38, "Xuyang" <xyzhong...@163.com> wrote: >Hi, all. > >Feng Jing, Ron Liu and I are are currently working on removing deprecated >public APIs from the table module and have encountered an issue. > >Take CatalogFactory as an example, the CatalogFactory class implements both >the new api Factory and the deprecated api TableFactory. Within > >CatalogFactory, all methods of the new api Factory have default >implementations that currently return errors, providing compatibility with the >old > >api TableFactory. As we move forward with the removal of the deprecated api >TableFactory, we are uncertain about whether to remove the default > >methods from the new api Factory. > >There are two options: > >1. Leave it unchanged for now: The advantage of this approach is that we >adhere to the principle of not modifying public APIs at all. However, I >believe that having missed the release-2.0, we may not have another >opportunity to remove it in the near future. Additionally, this option is not >very user-friendly for custom connectors, as they would only discover the >absence of certain methods at runtime. > >2. Directly remove the default implementations where throw exceptions >directly: The benefit of this approach is that it informs users at compile >time that they must implement certain methods. The downside is that we are >"slightly" modifying the public API methods. Connectors that are very old and >only compatible with the old API stack without integrating the new API stack >would encounter compile-time errors (although in any case, they would >ultimately face runtime errors, wouldn’t they?). > >We would appreciate any insights or suggestions regarding this decision. Thank >you! > > > > >Please note that similar situations exist with ModuleFactory and others; we >won't discuss each one individually going forward. > > > > >-- > > Best! > Xuyang