summaryrefslogtreecommitdiff
path: root/MPE/druid/bin/verify-java
diff options
context:
space:
mode:
Diffstat (limited to 'MPE/druid/bin/verify-java')
-rw-r--r--MPE/druid/bin/verify-java70
1 files changed, 70 insertions, 0 deletions
diff --git a/MPE/druid/bin/verify-java b/MPE/druid/bin/verify-java
new file mode 100644
index 0000000..ee97283
--- /dev/null
+++ b/MPE/druid/bin/verify-java
@@ -0,0 +1,70 @@
+#!/usr/bin/env perl
+
+# Licensed to the Apache Software Foundation (ASF) under one
+# or more contributor license agreements. See the NOTICE file
+# distributed with this work for additional information
+# regarding copyright ownership. The ASF licenses this file
+# to you under the Apache License, Version 2.0 (the
+# "License"); you may not use this file except in compliance
+# with the License. You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing,
+# software distributed under the License is distributed on an
+# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+# KIND, either express or implied. See the License for the
+# specific language governing permissions and limitations
+# under the License.
+
+use strict;
+use warnings;
+use File::Basename;
+
+sub fail_check {
+ my ($current_version) = @_;
+ my $current_version_text = $current_version
+ ? "Your current version is: $current_version."
+ : "Make sure that \"java\" is installed and on your PATH.";
+
+ print STDERR <<"EOT";
+Druid only officially supports Java 8. Any Java version later than 8 is still experimental. $current_version_text
+
+If you believe this check is in error or you still want to proceed with Java version other than 8,
+you can skip this check using an environment variable:
+
+ export DRUID_SKIP_JAVA_CHECK=1
+
+Otherwise, install Java 8 and try again.
+
+This script searches for Java 8 in 3 locations in the following
+order
+ * DRUID_JAVA_HOME
+ * JAVA_HOME
+ * java (installed on PATH)
+EOT
+ exit 1;
+}
+
+my $skip_var = $ENV{'DRUID_SKIP_JAVA_CHECK'};
+if ($skip_var && $skip_var ne "0" && $skip_var ne "false" && $skip_var ne "f") {
+ exit 0;
+}
+
+my $cwd = dirname(__FILE__);
+my $java_bin_dir = `. $cwd/java-util && get_java_bin_dir 2>&1`;
+
+# If we could not find java
+if ($java_bin_dir eq "") {
+ fail_check()
+}
+my $java_exec = "${java_bin_dir}/java";
+my $java_version = qx[$java_exec -version 2>&1];
+if ($?) {
+ fail_check();
+}
+
+# If we know it won't work, die. Otherwise hope for the best.
+if ($java_version =~ /version \"((\d+)\.(\d+).*?)\"/ && ($2 != 1 || $3 != 8)) {
+ fail_check($1);
+}