elasticsearch插件和elasticsearch模块有什么区别?

jer*_*jtu 4 java plugins elasticsearch

由于elasticsearch的modules子项目和plugins子项目中的类都是Plugin的子类,所以我想知道elasticsearch插件和elasticsearch模块之间的区别。

例如 lang-painless 模块

public final class PainlessPlugin extends Plugin implements ScriptPlugin
Run Code Online (Sandbox Code Playgroud)

lang-python 插件

public class PythonPlugin extends Plugin implements ScriptPlugin
Run Code Online (Sandbox Code Playgroud)

也许他们的实现没有区别,elastic公司的人将必要的类放在模块子项目中,将不必要的类放在插件子产品中。希望elasticsearch的开发者之一能够解释一下。

jer*_*jtu 5

我从类InstallPluginCommand的源代码中得到了答案:

    /** The builtin modules, which are plugins, but cannot be installed or removed. */
    static final Set<String> MODULES;
Run Code Online (Sandbox Code Playgroud)