Skip to content

Commit 2ecfb39

Browse files
authored
Remove plugin classloader indirection (#113154)
Extensible plugins use a custom classloader for other plugin jars. When extensible plugins were first added, the transport client still existed, and elasticsearch plugins did not exist in the transport client (at least not the ones that create classloaders). Yet the transport client still created a PluginsService. An indirection was used to avoid creating separate classloaders when the transport client had created the PluginsService. The transport client was removed in 8.0, but the indirection still exists. This commit removes that indirection layer.
1 parent b977a33 commit 2ecfb39

File tree

9 files changed

+3
-68
lines changed

9 files changed

+3
-68
lines changed

build-tools-internal/src/main/java/org/elasticsearch/gradle/internal/InternalDistributionModuleCheckTaskProvider.java

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -59,7 +59,6 @@ public class InternalDistributionModuleCheckTaskProvider {
5959
"org.elasticsearch.nativeaccess",
6060
"org.elasticsearch.plugin",
6161
"org.elasticsearch.plugin.analysis",
62-
"org.elasticsearch.pluginclassloader",
6362
"org.elasticsearch.securesm",
6463
"org.elasticsearch.server",
6564
"org.elasticsearch.simdvec",

libs/plugin-classloader/build.gradle

Lines changed: 0 additions & 18 deletions
This file was deleted.

libs/plugin-classloader/src/main/java/module-info.java

Lines changed: 0 additions & 12 deletions
This file was deleted.

server/build.gradle

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -40,8 +40,6 @@ dependencies {
4040
api project(":libs:elasticsearch-tdigest")
4141
implementation project(":libs:elasticsearch-simdvec")
4242

43-
implementation project(':libs:elasticsearch-plugin-classloader')
44-
4543
// lucene
4644
api "org.apache.lucene:lucene-core:${versions.lucene}"
4745
api "org.apache.lucene:lucene-analysis-common:${versions.lucene}"

server/src/main/java/module-info.java

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,6 @@
2525
requires org.elasticsearch.nativeaccess;
2626
requires org.elasticsearch.geo;
2727
requires org.elasticsearch.lz4;
28-
requires org.elasticsearch.pluginclassloader;
2928
requires org.elasticsearch.securesm;
3029
requires org.elasticsearch.xcontent;
3130
requires org.elasticsearch.logging;
Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@
77
* License v3.0 only", or the "Server Side Public License, v 1".
88
*/
99

10-
package org.elasticsearch.plugins.loader;
10+
package org.elasticsearch.plugins;
1111

1212
import java.security.AccessController;
1313
import java.security.PrivilegedAction;
@@ -17,7 +17,7 @@
1717
/**
1818
* A classloader that is a union over the parent core classloader and classloaders of extended plugins.
1919
*/
20-
public class ExtendedPluginsClassLoader extends ClassLoader {
20+
class ExtendedPluginsClassLoader extends ClassLoader {
2121

2222
/** Loaders of plugins extended by a plugin. */
2323
private final List<ClassLoader> extendedLoaders;

server/src/main/java/org/elasticsearch/plugins/PluginLoaderIndirection.java

Lines changed: 0 additions & 26 deletions
This file was deleted.

server/src/main/java/org/elasticsearch/plugins/PluginsService.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -468,7 +468,7 @@ private void loadBundle(
468468
);
469469
}
470470

471-
final ClassLoader parentLoader = PluginLoaderIndirection.createLoader(
471+
final ClassLoader parentLoader = ExtendedPluginsClassLoader.create(
472472
getClass().getClassLoader(),
473473
extendedPlugins.stream().map(LoadedPlugin::loader).toList()
474474
);

server/src/main/resources/org/elasticsearch/bootstrap/security.policy

Lines changed: 0 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -53,11 +53,6 @@ grant codeBase "${codebase.lucene-misc}" {
5353
permission java.nio.file.LinkPermission "hard";
5454
};
5555

56-
grant codeBase "${codebase.elasticsearch-plugin-classloader}" {
57-
// needed to create the classloader which allows plugins to extend other plugins
58-
permission java.lang.RuntimePermission "createClassLoader";
59-
};
60-
6156
grant codeBase "${codebase.elasticsearch-core}" {
6257
permission java.lang.RuntimePermission "createClassLoader";
6358
permission java.lang.RuntimePermission "getClassLoader";

0 commit comments

Comments
 (0)