Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

Comprehensive consideration of the above, based on FLINK-15635, in this FLIP, the overall code design is as follows:

  1. Proposing a child-first user class loader called MutableURLClassLoader which contains a parent classloader, child-first owner classloader and URL list registered by user. This classloader supports add and remove jar url, so can modify the urls in it dynamically.

  2. Proposing an internal interface UserResourceManager, this entity performs bookkeeping of used/loaded resources. This entity should also provide a MutableURLClassLoader which parent classloader  originated from the class loader given via EnvironmentSettings. UserResourceManager is responsible for manager all used resources.
  3. The table environment directly refers UserResourceManager instead of ClassLoader object, to manager all jar resources get from related resource SQL syntax and add or remove the specific jar url to MutableURLClassLoader.
  4. FunctionCatalog also needs to refer UserResourceManager which is used to manager jar get from CREATE FUNCTION ... USING JAR  syntax.

...