This is an automated email from the ASF dual-hosted git repository. srichter pushed a change to branch master in repository https://gitbox.apache.org/repos/asf/flink.git.
from 2c503c2 [FLINK-11884][table] Ported sort & limit validation on top of Expressions new 5aee179 [hotfix] Remove unused exception from FileSystem#initialize new 1a10fbe [FLINK-11952][1/3] Make ChildFirstClassLoader a top-level class in flink-core new 0c4953c [FLINK-11952][2/4] Introduce basic plugin mechanism for Flink new c7b141b [FLINK-11952][3/4] Integrate plugin mechanism with FileSystem new c6307b5 [FLINK-11952][4/4] Integrate plugin mechanism with FileSystem initialization in process entry points new 703dc8d [hotfix] Use TemporaryClassLoaderContext in other appropriate places in the codebase The 6 revisions listed above as "new" are entirely new to this repository and will be described in separate emails. The revisions listed as "add" were already present in the repository and have only been added to this reference. Summary of changes: .../org/apache/flink/client/cli/CliFrontend.java | 13 +- .../java/org/apache/flink/core/fs/FileSystem.java | 111 ++++++++++++----- .../apache/flink/core/fs/FileSystemFactory.java | 12 +- .../flink/core/fs/UnsupportedSchemeFactory.java | 6 - .../core/fs/local/LocalFileSystemFactory.java | 6 - .../core/plugin/DirectoryBasedPluginFinder.java | 103 ++++++++++++++++ .../Plugin.java} | 33 ++--- .../apache/flink/core/plugin/PluginDescriptor.java | 67 ++++++++++ .../org/apache/flink/core/plugin/PluginFinder.java | 37 ++++++ .../org/apache/flink/core/plugin/PluginLoader.java | 94 ++++++++++++++ .../apache/flink/core/plugin/PluginManager.java | 77 ++++++++++++ .../org/apache/flink/core/plugin/PluginUtils.java | 54 ++++++++ .../TemporaryClassLoaderContext.java} | 33 ++--- .../apache/flink/util/ChildFirstClassLoader.java | 123 ++++++++++++++++++ .../java/org/apache/flink/util/LambdaUtil.java | 19 +-- .../plugin/DirectoryBasedPluginFinderTest.java | 137 +++++++++++++++++++++ .../plugin/TemporaryClassLoaderContextTest.java | 46 +++++++ .../testutils/EntropyInjectingTestFileSystem.java | 5 - .../org/apache/flink/testutils/TestFileSystem.java | 10 +- .../flink/runtime/fs/maprfs/MapRFsFactory.java | 6 - .../mesos/entrypoint/MesosTaskExecutorRunner.java | 10 +- .../runtime/webmonitor/history/HistoryServer.java | 9 +- .../runtime/entrypoint/ClusterEntrypoint.java | 14 +-- .../librarycache/FlinkUserCodeClassLoaders.java | 103 +--------------- .../runtime/taskexecutor/TaskManagerRunner.java | 11 +- .../flink/runtime/taskmanager/TaskManager.scala | 0 .../client/gateway/local/ExecutionContext.java | 7 +- .../table/client/gateway/local/LocalExecutor.java | 10 +- flink-tests/pom.xml | 31 +++++ .../src/test/assembly/test-plugin-a-assembly.xml | 43 +++++++ .../src/test/assembly/test-plugin-b-assembly.xml | 43 +++++++ .../org/apache/flink/test/plugin/OtherTestSpi.java | 28 +++++ .../apache/flink/test/plugin/PluginLoaderTest.java | 71 +++++++++++ .../flink/test/plugin/PluginManagerTest.java | 105 ++++++++++++++++ .../apache/flink/test/plugin/PluginTestBase.java | 54 ++++++++ .../java/org/apache/flink/test/plugin/TestSpi.java | 28 +++++ .../test/plugin/jar/plugina/DynamicClassA.java | 31 ++--- .../test/plugin/jar/plugina/TestServiceA.java | 34 +++-- .../test/plugin/jar/pluginb/OtherTestServiceB.java | 30 ++--- .../test/plugin/jar/pluginb/TestServiceB.java | 30 ++--- .../plugin-a/org.apache.flink.test.plugin.TestSpi | 16 +++ .../org.apache.flink.test.plugin.OtherTestSpi | 16 +++ .../plugin-b/org.apache.flink.test.plugin.TestSpi | 16 +++ .../flink/yarn/AbstractYarnClusterDescriptor.java | 10 +- .../apache/flink/yarn/YarnTaskExecutorRunner.java | 6 +- 45 files changed, 1373 insertions(+), 375 deletions(-) create mode 100644 flink-core/src/main/java/org/apache/flink/core/plugin/DirectoryBasedPluginFinder.java copy flink-core/src/main/java/org/apache/flink/core/{fs/local/LocalFileSystemFactory.java => plugin/Plugin.java} (57%) create mode 100644 flink-core/src/main/java/org/apache/flink/core/plugin/PluginDescriptor.java create mode 100644 flink-core/src/main/java/org/apache/flink/core/plugin/PluginFinder.java create mode 100644 flink-core/src/main/java/org/apache/flink/core/plugin/PluginLoader.java create mode 100644 flink-core/src/main/java/org/apache/flink/core/plugin/PluginManager.java create mode 100644 flink-core/src/main/java/org/apache/flink/core/plugin/PluginUtils.java copy flink-core/src/main/java/org/apache/flink/core/{fs/local/LocalFileSystemFactory.java => plugin/TemporaryClassLoaderContext.java} (51%) create mode 100644 flink-core/src/main/java/org/apache/flink/util/ChildFirstClassLoader.java create mode 100644 flink-core/src/test/java/org/apache/flink/core/plugin/DirectoryBasedPluginFinderTest.java create mode 100644 flink-core/src/test/java/org/apache/flink/core/plugin/TemporaryClassLoaderContextTest.java copy flink-yarn/src/test/resources/krb5.keytab => flink-runtime/src/main/scala/org/apache/flink/runtime/taskmanager/TaskManager.scala (100%) create mode 100644 flink-tests/src/test/assembly/test-plugin-a-assembly.xml create mode 100644 flink-tests/src/test/assembly/test-plugin-b-assembly.xml create mode 100644 flink-tests/src/test/java/org/apache/flink/test/plugin/OtherTestSpi.java create mode 100644 flink-tests/src/test/java/org/apache/flink/test/plugin/PluginLoaderTest.java create mode 100644 flink-tests/src/test/java/org/apache/flink/test/plugin/PluginManagerTest.java create mode 100644 flink-tests/src/test/java/org/apache/flink/test/plugin/PluginTestBase.java create mode 100644 flink-tests/src/test/java/org/apache/flink/test/plugin/TestSpi.java copy flink-core/src/main/java/org/apache/flink/core/fs/local/LocalFileSystemFactory.java => flink-tests/src/test/java/org/apache/flink/test/plugin/jar/plugina/DynamicClassA.java (50%) copy flink-core/src/main/java/org/apache/flink/core/fs/local/LocalFileSystemFactory.java => flink-tests/src/test/java/org/apache/flink/test/plugin/jar/plugina/TestServiceA.java (51%) copy flink-core/src/main/java/org/apache/flink/core/fs/local/LocalFileSystemFactory.java => flink-tests/src/test/java/org/apache/flink/test/plugin/jar/pluginb/OtherTestServiceB.java (50%) copy flink-core/src/main/java/org/apache/flink/core/fs/local/LocalFileSystemFactory.java => flink-tests/src/test/java/org/apache/flink/test/plugin/jar/pluginb/TestServiceB.java (50%) create mode 100644 flink-tests/src/test/resources/plugin-test/plugin-a/org.apache.flink.test.plugin.TestSpi create mode 100644 flink-tests/src/test/resources/plugin-test/plugin-b/org.apache.flink.test.plugin.OtherTestSpi create mode 100644 flink-tests/src/test/resources/plugin-test/plugin-b/org.apache.flink.test.plugin.TestSpi