Skip to content

Commit 573c2e9

Browse files
authored
Support ES_JAVA_HOME when version > 7.12.0 (#35)
* Support ES_JAVA_HOME when version > 7.12.0 * Ignore JAVA_HOME deprecation warning
1 parent fb0d994 commit 573c2e9

File tree

5 files changed

+23
-21
lines changed

5 files changed

+23
-21
lines changed

src/Elastic.Elasticsearch.Ephemeral/Tasks/IClusterComposeTask.cs

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -178,16 +178,16 @@ private static void ExecuteBinaryInternal(EphemeralClusterConfiguration config,
178178

179179
if (result.ExitCode != 0)
180180
throw new Exception(
181-
$"Expected exit code 0 but recieved ({result.ExitCode}) while executing {description}: {command}");
181+
$"Expected exit code 0 but received ({result.ExitCode}) while executing {description}: {command}");
182182

183183
var errorOut = result.ConsoleOut.Where(c => c.Error).ToList();
184184
// this manifested when calling certgen on versions smaller then 5.2.0
185185
if (errorOut.Any() && config.Version < "5.2.0")
186186
errorOut = errorOut.Where(e => !e.Line.Contains("No log4j2 configuration file found")).ToList();
187187

188-
if (errorOut.Any(e => !string.IsNullOrWhiteSpace(e.Line)) && (!binary.Contains("plugin") && !binary.Contains("cert")))
188+
if (errorOut.Any(e => !string.IsNullOrWhiteSpace(e.Line) && !e.Line.Contains("usage of JAVA_HOME is deprecated")) && !binary.Contains("plugin") && !binary.Contains("cert"))
189189
throw new Exception(
190-
$"Recieved error out with exitCode ({result.ExitCode}) while executing {description}: {command}");
190+
$"Received error out with exitCode ({result.ExitCode}) while executing {description}: {command}");
191191

192192
writer?.WriteDiagnostic(
193193
$"{{{nameof(ExecuteBinary)}}} finished process [{description}] {{{result.ExitCode}}}");

src/Elastic.Elasticsearch.Ephemeral/Tasks/InstallationTasks/EnsureJavaHomeEnvironmentVariableIsSet.cs

Lines changed: 11 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -13,8 +13,6 @@ public class EnsureJavaHomeEnvironmentVariableIsSet : ClusterComposeTask
1313
public override void Run(IEphemeralCluster<EphemeralClusterConfiguration> cluster)
1414
{
1515
var fs = cluster.FileSystem;
16-
var v = cluster.ClusterConfiguration.Version;
17-
var a = cluster.ClusterConfiguration.Artifact;
1816

1917
var java8Home = Environment.GetEnvironmentVariable("JAVA8_HOME");
2018
if (cluster.ClusterConfiguration.Version < "6.0.0" && !string.IsNullOrWhiteSpace(java8Home))
@@ -23,30 +21,32 @@ public override void Run(IEphemeralCluster<EphemeralClusterConfiguration> cluste
2321
Environment.SetEnvironmentVariable("JAVA_HOME", java8Home);
2422
cluster.Writer?.WriteDiagnostic($"{{{nameof(EnsureJavaHomeEnvironmentVariableIsSet)}}} Forcing [JAVA8_HOME] as [JAVA_HOME] since we are on Elasticsearch <6.0.0");
2523
}
26-
var javaHome = Environment.GetEnvironmentVariable("JAVA_HOME");
24+
25+
var envVarName = cluster.ClusterConfiguration.JavaHomeEnvironmentVariable;
26+
var javaHome = Environment.GetEnvironmentVariable(envVarName);
27+
2728
//7.0.0 ships with its own JDK
2829
if (cluster.ClusterConfiguration.Version < "7.0.0" && string.IsNullOrWhiteSpace(javaHome))
2930
{
30-
cluster.Writer?.WriteDiagnostic($"{{{nameof(EnsureJavaHomeEnvironmentVariableIsSet)}}} [JAVA_HOME] is not SET exiting..");
31-
throw new Exception("The elasticsearch bat files are resillient to JAVA_HOME not being set, however the shield tooling is not");
31+
cluster.Writer?.WriteDiagnostic($"{{{nameof(EnsureJavaHomeEnvironmentVariableIsSet)}}} [{envVarName}] is not SET exiting..");
32+
throw new Exception("The elasticsearch bat files are resilient to JAVA_HOME not being set, however the shield tooling is not");
3233
}
34+
3335
var cachedEsHomeFolder = Path.Combine(fs.LocalFolder, cluster.GetCacheFolderName());
3436
var jdkFolder = Path.Combine(cachedEsHomeFolder, "jdk");
3537
if (Directory.Exists(jdkFolder))
3638
{
3739
//prefer bundled jdk
38-
cluster.Writer?.WriteDiagnostic($"{{{nameof(EnsureJavaHomeEnvironmentVariableIsSet)}}} [JAVA_HOME] is set to bundled jdk: {{{jdkFolder}}} ");
40+
cluster.Writer?.WriteDiagnostic($"{{{nameof(EnsureJavaHomeEnvironmentVariableIsSet)}}} [{envVarName}] is set to bundled jdk: {{{jdkFolder}}} ");
3941
Environment.SetEnvironmentVariable("JAVA_HOME", jdkFolder);
4042

4143
}
4244
else if (cluster.ClusterConfiguration.Version >= "7.0.0" && !string.IsNullOrWhiteSpace(javaHome))
4345
{
44-
cluster.Writer?.WriteDiagnostic($"{{{nameof(EnsureJavaHomeEnvironmentVariableIsSet)}}} [JAVA_HOME] is set, unsetting for process to prefer bundled jdk..");
45-
Environment.SetEnvironmentVariable("JAVA_HOME", null);
46+
cluster.Writer?.WriteDiagnostic($"{{{nameof(EnsureJavaHomeEnvironmentVariableIsSet)}}} [{envVarName}] is set; clearing value for process to prefer bundled jdk...");
47+
Environment.SetEnvironmentVariable(envVarName, null);
4648
}
47-
48-
else cluster.Writer?.WriteDiagnostic($"{{{nameof(EnsureJavaHomeEnvironmentVariableIsSet)}}} JAVA_HOME is set proceeding or using default JDK");
49-
49+
else cluster.Writer?.WriteDiagnostic($"{{{nameof(EnsureJavaHomeEnvironmentVariableIsSet)}}} {envVarName} is not set proceeding or using default JDK");
5050
}
5151
}
5252
}

src/Elastic.Elasticsearch.Ephemeral/Tasks/InstallationTasks/SetElasticsearchBundledJdkJavaHome.cs

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -12,16 +12,16 @@ public class SetElasticsearchBundledJdkJavaHome : ClusterComposeTask
1212
{
1313
public override void Run(IEphemeralCluster<EphemeralClusterConfiguration> cluster)
1414
{
15-
1615
var fs = cluster.FileSystem;
1716
var jdkFolder = Path.Combine(fs.ElasticsearchHome, "jdk");
1817
if (Directory.Exists(jdkFolder))
1918
{
20-
cluster.Writer?.WriteDiagnostic($"{{{nameof(SetElasticsearchBundledJdkJavaHome)}}} [JAVA_HOME] is set to bundled jdk: {{{jdkFolder}}} ");
21-
Environment.SetEnvironmentVariable("JAVA_HOME", jdkFolder);
19+
var envVarName = cluster.ClusterConfiguration.JavaHomeEnvironmentVariable;
20+
cluster.Writer?.WriteDiagnostic($"{{{nameof(SetElasticsearchBundledJdkJavaHome)}}} [{envVarName}] is set to bundled jdk: {{{jdkFolder}}} ");
21+
Environment.SetEnvironmentVariable(envVarName, jdkFolder);
2222
}
2323
else
2424
cluster.Writer?.WriteDiagnostic($"{{{nameof(SetElasticsearchBundledJdkJavaHome)}}} [No bundled jdk found] looked in: {{{jdkFolder}}} ");
2525
}
2626
}
27-
}
27+
}

src/Elastic.Elasticsearch.Managed/Configuration/ClusterConfiguration.cs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -82,6 +82,7 @@ public ClusterConfiguration(ElasticVersion version, Func<ElasticVersion, string,
8282
public int StartingPortNumber { get; set; } = 9200;
8383
public bool NoCleanupAfterNodeStopped { get; set; }
8484

85+
public string JavaHomeEnvironmentVariable => Version.InRange("<7.12.0") ? "JAVA_HOME" : "ES_JAVA_HOME";
8586

8687
/// <summary> Will print the contents of all the yaml files when starting the cluster up, great for debugging purposes</summary>
8788
public bool PrintYamlFilesInConfigFolder { get; set; }

src/Elastic.Elasticsearch.Managed/ElasticsearchNode.cs

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -107,9 +107,10 @@ public IDisposable SubscribeLines(IConsoleLineHandler writer, Action<LineOut> on
107107
writer?.WriteDiagnostic($"Elasticsearch location: [{Binary}]", node);
108108
writer?.WriteDiagnostic($"Settings: {{{string.Join(" ", NodeConfiguration.CommandLineArguments)}}}", node);
109109

110-
var javaHome = Environment.GetEnvironmentVariable("JAVA_HOME");
111-
writer?.WriteDiagnostic($"JAVA_HOME: {{{javaHome}}}", node);
112-
Process.StartInfo.Environment["JAVA_HOME"] = javaHome;
110+
var envVarName = NodeConfiguration.Version.InRange("<7.12.0") ? "JAVA_HOME" : "ES_JAVA_HOME";
111+
var javaHome = Environment.GetEnvironmentVariable(envVarName);
112+
writer?.WriteDiagnostic($"{envVarName}: {{{javaHome}}}", node);
113+
Process.StartInfo.Environment[envVarName] = javaHome;
113114

114115
return SubscribeLines(
115116
l => {

0 commit comments

Comments
 (0)