From f2558effd3da7c9a4cef17128487c0265e505529 Mon Sep 17 00:00:00 2001 From: Ryan Ernst Date: Mon, 24 Mar 2025 10:39:07 -0700 Subject: [PATCH] Add --with-plugins to run task (#125468) This commit adds a new command line option to the run task to include plugins. The option takes in a comma separated list of plugins from the plugins directory. For example: ``` ./gradlew run --with-plugins=analysis-icu,analysis-nori ``` --- .../gradle/testclusters/RunTask.java | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) diff --git a/build-tools/src/main/java/org/elasticsearch/gradle/testclusters/RunTask.java b/build-tools/src/main/java/org/elasticsearch/gradle/testclusters/RunTask.java index 9d2e6a7a2a024..07f88151a5154 100644 --- a/build-tools/src/main/java/org/elasticsearch/gradle/testclusters/RunTask.java +++ b/build-tools/src/main/java/org/elasticsearch/gradle/testclusters/RunTask.java @@ -24,6 +24,7 @@ import java.nio.file.Path; import java.nio.file.Paths; import java.util.ArrayList; +import java.util.Arrays; import java.util.HashSet; import java.util.List; import java.util.Map; @@ -45,6 +46,8 @@ public abstract class RunTask extends DefaultTestClustersTask { private Boolean apmServerEnabled = false; + private List plugins = List.of(); + private Boolean preserveData = false; private Path dataDir = null; @@ -101,6 +104,22 @@ public void setApmServerEnabled(Boolean apmServerEnabled) { this.apmServerEnabled = apmServerEnabled; } + @Option(option = "with-plugins", description = "Run distribution with plugins installed") + public void setPlugins(String plugins) { + this.plugins = Arrays.asList(plugins.split(",")); + for (var cluster : getClusters()) { + for (String plugin : this.plugins) { + cluster.plugin(":plugins:" + plugin); + } + dependsOn(cluster.getPluginAndModuleConfigurations()); + } + } + + @Input + public List getPlugins() { + return plugins; + } + @Option(option = "data-dir", description = "Override the base data directory used by the testcluster") public void setDataDir(String dataDirStr) { dataDir = Paths.get(dataDirStr).toAbsolutePath();