3131
3232public class EntitlementBootstrap {
3333
34- public record BootstrapArgs (Map <String , Policy > pluginPolicies , Function <Class <?>, String > pluginResolver ) {
34+ public record BootstrapArgs (
35+ Map <String , Policy > pluginPolicies ,
36+ Function <Class <?>, String > pluginResolver ,
37+ Path [] dataDirs ,
38+ Path configDir ,
39+ Path tempDir
40+ ) {
3541 public BootstrapArgs {
3642 requireNonNull (pluginPolicies );
3743 requireNonNull (pluginResolver );
44+ requireNonNull (dataDirs );
45+ if (dataDirs .length == 0 ) {
46+ throw new IllegalArgumentException ("must provide at least one data directory" );
47+ }
48+ requireNonNull (configDir );
49+ requireNonNull (tempDir );
3850 }
3951 }
4052
@@ -50,13 +62,22 @@ public static BootstrapArgs bootstrapArgs() {
5062 *
5163 * @param pluginPolicies a map holding policies for plugins (and modules), by plugin (or module) name.
5264 * @param pluginResolver a functor to map a Java Class to the plugin it belongs to (the plugin name).
65+ * @param dataDirs data directories for Elasticsearch
66+ * @param configDir the config directory for Elasticsearch
67+ * @param tempDir the temp directory for Elasticsearch
5368 */
54- public static void bootstrap (Map <String , Policy > pluginPolicies , Function <Class <?>, String > pluginResolver ) {
69+ public static void bootstrap (
70+ Map <String , Policy > pluginPolicies ,
71+ Function <Class <?>, String > pluginResolver ,
72+ Path [] dataDirs ,
73+ Path configDir ,
74+ Path tempDir
75+ ) {
5576 logger .debug ("Loading entitlement agent" );
5677 if (EntitlementBootstrap .bootstrapArgs != null ) {
5778 throw new IllegalStateException ("plugin data is already set" );
5879 }
59- EntitlementBootstrap .bootstrapArgs = new BootstrapArgs (pluginPolicies , pluginResolver );
80+ EntitlementBootstrap .bootstrapArgs = new BootstrapArgs (pluginPolicies , pluginResolver , dataDirs , configDir , tempDir );
6081 exportInitializationToAgent ();
6182 loadAgent (findAgentJar ());
6283 selfTest ();
0 commit comments