[NO ISSUE] Check java version

- user model changes: no
- storage format changes: no
- interface changes: no

Change-Id: Ica62fd0f9948c77f8e7065f52930c0a566875984
Reviewed-on: https://asterix-gerrit.ics.uci.edu/2123
Sonar-Qube: Jenkins <jenkins@fulliautomatix.ics.uci.edu>
Integration-Tests: Jenkins <jenkins@fulliautomatix.ics.uci.edu>
Tested-by: Jenkins <jenkins@fulliautomatix.ics.uci.edu>
Contrib: Jenkins <jenkins@fulliautomatix.ics.uci.edu>
Reviewed-by: Michael Blow <mblow@apache.org>
diff --git a/hyracks-fullstack/hyracks/hyracks-control/hyracks-control-common/src/main/java/org/apache/hyracks/control/common/config/ConfigManager.java b/hyracks-fullstack/hyracks/hyracks-control/hyracks-control-common/src/main/java/org/apache/hyracks/control/common/config/ConfigManager.java
index 67738ba..147e5e8 100644
--- a/hyracks-fullstack/hyracks/hyracks-control/hyracks-control-common/src/main/java/org/apache/hyracks/control/common/config/ConfigManager.java
+++ b/hyracks-fullstack/hyracks/hyracks-control/hyracks-control-common/src/main/java/org/apache/hyracks/control/common/config/ConfigManager.java
@@ -91,6 +91,7 @@
 
     public ConfigManager(String[] args) {
         this.args = args;
+        checkJavaVersion();
         for (Section section : Section.values()) {
             allSections.add(section.sectionName());
         }
@@ -100,6 +101,14 @@
         addConfigurator(ConfiguratorMetric.APPLY_DEFAULTS, this::applyDefaults);
     }
 
+    static void checkJavaVersion() {
+        final String javaVersion = System.getProperty("java.version");
+        LOGGER.info("Found JRE version " + javaVersion);
+        if (!javaVersion.startsWith("1.8")) {
+            throw new IllegalStateException("JRE version 1.8 is required");
+        }
+    }
+
     @Override
     public void addConfigurator(int metric, IConfigurator configurator) {
         configurators.computeIfAbsent(metric, metric1 -> new ArrayList<>()).add(configurator);