Description: Simplify java alternatives testing.
 Test JDK versions in order of preference: JDK 8, 7, 9.
 When no (non-headless) OpenJDK package is installed, test for the Oracle JDK versions.
 Break out of testing loops when a suitable java command is found.
Author: Bas Couwenberg <sebastic@debian.org>

Index: linux/latest/usr/bin/josm-latest
===================================================================
--- linux/latest/usr/bin/josm-latest	(revision 8969)
+++ linux/latest/usr/bin/josm-latest	(working copy)
@@ -11,53 +11,37 @@
 
 # If OpenJDK is only available headless, do not try it
 if dpkg --get-selections 'openjdk-*-jre' | grep install$ > /dev/null ; then
-	JAVA9_CMDS="/usr/lib/jvm/java-9-openjdk/bin/java /usr/lib/jvm/java-9-openjdk-$ARCH/bin/java /usr/lib/jvm/java-9-oracle/bin/java"
-	JAVA8_CMDS="/usr/lib/jvm/java-8-openjdk/bin/java /usr/lib/jvm/java-8-openjdk-$ARCH/bin/java /usr/lib/jvm/java-8-oracle/bin/java"
-	JAVA7_CMDS="$JAVA_HOME/bin/java /usr/lib/jvm/java-7-openjdk/bin/java /usr/lib/jvm/java-7-openjdk-$ARCH/bin/java /usr/lib/jvm/java-7-oracle/bin/java"
+	JAVA_CMDS="$JAVA_HOME/bin/java"
+	JAVA_CMDS="${JAVA_CMDS} /usr/lib/jvm/java-8-openjdk/bin/java /usr/lib/jvm/java-8-openjdk-$ARCH/bin/java /usr/lib/jvm/java-8-oracle/bin/java"
+	JAVA_CMDS="${JAVA_CMDS} /usr/lib/jvm/java-7-openjdk/bin/java /usr/lib/jvm/java-7-openjdk-$ARCH/bin/java /usr/lib/jvm/java-7-oracle/bin/java"
+	JAVA_CMDS="${JAVA_CMDS} /usr/lib/jvm/java-9-openjdk/bin/java /usr/lib/jvm/java-9-openjdk-$ARCH/bin/java /usr/lib/jvm/java-9-oracle/bin/java"
 else
-	JAVA9_CMDS="/usr/lib/jvm/java-9-oracle/bin/java"
-	JAVA8_CMDS="/usr/lib/jvm/java-8-oracle/bin/java"
-	JAVA7_CMDS="$JAVA_HOME/bin/java /usr/lib/jvm/java-7-oracle/bin/java /usr/bin/java"
+	JAVA_CMDS="$JAVA_HOME/bin/java /usr/bin/java"
+	JAVA_CMDS="${JAVA_CMDS} /usr/lib/jvm/java-8-oracle/bin/java"
+	JAVA_CMDS="${JAVA_CMDS} /usr/lib/jvm/java-7-oracle/bin/java"
+	JAVA_CMDS="${JAVA_CMDS} /usr/lib/jvm/java-9-oracle/bin/java"
 fi
 
 JAVA_OPTS="-Djosm.restart=true -Djosm.home=$HOME/.josm-latest -Djava.net.useSystemProxies=true $JAVA_OPTS"
 
-for jcmd in $JAVA8_CMDS; do
-	if [ "z$ALTERNATIVE_JDK" = "z`readlink -n -f $jcmd`" ] && [ -z "${JAVACMD}" ]; then
-        JAVACMD="$jcmd"
-    fi
-done
+if [ -z "${JAVACMD}" ]; then
+    for jcmd in $JAVA_CMDS; do
+        if [ "z$ALTERNATIVE_JDK" = "z`readlink -n -f $jcmd`" ] && [ -z "${JAVACMD}" ]; then
+            JAVACMD="$jcmd"
+            break
+        fi
+    done
+fi
 
-for jcmd in $JAVA8_CMDS; do
-    if [ -x "$jcmd" -a -z "${JAVACMD}" ]; then
-        JAVACMD="$jcmd"
-    fi
-done
+if [ -z "${JAVACMD}" ]; then
+    for jcmd in $JAVA_CMDS; do
+        if [ -x "$jcmd" -a -z "${JAVACMD}" ]; then
+            JAVACMD="$jcmd"
+            break
+        fi
+    done
+fi
 
-for jcmd in $JAVA7_CMDS; do
-	if [ "z$ALTERNATIVE_JDK" = "z`readlink -n -f $jcmd`" ] && [ -z "${JAVACMD}" ]; then
-        JAVACMD="$jcmd"
-    fi
-done
-
-for jcmd in $JAVA7_CMDS; do
-    if [ -x "$jcmd" -a -z "${JAVACMD}" ]; then
-        JAVACMD="$jcmd"
-    fi
-done
-
-for jcmd in $JAVA9_CMDS; do
-	if [ "z$ALTERNATIVE_JDK" = "z`readlink -n -f $jcmd`" ] && [ -z "${JAVACMD}" ]; then
-        JAVACMD="$jcmd"
-    fi
-done
-
-for jcmd in $JAVA9_CMDS; do
-    if [ -x "$jcmd" -a -z "${JAVACMD}" ]; then
-        JAVACMD="$jcmd"
-    fi
-done
-
 if [ "$JAVACMD" ]; then
     echo "Using $JAVACMD to execute josm-latest." || true
     set +e
Index: linux/tested/usr/bin/josm
===================================================================
--- linux/tested/usr/bin/josm	(revision 8969)
+++ linux/tested/usr/bin/josm	(working copy)
@@ -11,53 +11,37 @@
 
 # If OpenJDK is only available headless, do not try it
 if dpkg --get-selections 'openjdk-*-jre' | grep install$ > /dev/null ; then
-	JAVA9_CMDS="/usr/lib/jvm/java-9-openjdk/bin/java /usr/lib/jvm/java-9-openjdk-$ARCH/bin/java /usr/lib/jvm/java-9-oracle/bin/java"
-	JAVA8_CMDS="/usr/lib/jvm/java-8-openjdk/bin/java /usr/lib/jvm/java-8-openjdk-$ARCH/bin/java /usr/lib/jvm/java-8-oracle/bin/java"
-	JAVA7_CMDS="$JAVA_HOME/bin/java /usr/lib/jvm/java-7-openjdk/bin/java /usr/lib/jvm/java-7-openjdk-$ARCH/bin/java /usr/lib/jvm/java-7-oracle/bin/java"
+	JAVA_CMDS="$JAVA_HOME/bin/java"
+	JAVA_CMDS="${JAVA_CMDS} /usr/lib/jvm/java-8-openjdk/bin/java /usr/lib/jvm/java-8-openjdk-$ARCH/bin/java /usr/lib/jvm/java-8-oracle/bin/java"
+	JAVA_CMDS="${JAVA_CMDS} /usr/lib/jvm/java-7-openjdk/bin/java /usr/lib/jvm/java-7-openjdk-$ARCH/bin/java /usr/lib/jvm/java-7-oracle/bin/java"
+	JAVA_CMDS="${JAVA_CMDS} /usr/lib/jvm/java-9-openjdk/bin/java /usr/lib/jvm/java-9-openjdk-$ARCH/bin/java /usr/lib/jvm/java-9-oracle/bin/java"
 else
-	JAVA9_CMDS="/usr/lib/jvm/java-9-oracle/bin/java"
-	JAVA8_CMDS="/usr/lib/jvm/java-8-oracle/bin/java"
-	JAVA7_CMDS="$JAVA_HOME/bin/java /usr/lib/jvm/java-7-oracle/bin/java /usr/bin/java"
+	JAVA_CMDS="$JAVA_HOME/bin/java /usr/bin/java"
+	JAVA_CMDS="${JAVA_CMDS} /usr/lib/jvm/java-8-oracle/bin/java"
+	JAVA_CMDS="${JAVA_CMDS} /usr/lib/jvm/java-7-oracle/bin/java"
+	JAVA_CMDS="${JAVA_CMDS} /usr/lib/jvm/java-9-oracle/bin/java"
 fi
 
 JAVA_OPTS="-Djosm.restart=true -Djava.net.useSystemProxies=true $JAVA_OPTS"
 
-for jcmd in $JAVA8_CMDS; do
-	if [ "z$ALTERNATIVE_JDK" = "z`readlink -n -f $jcmd`" ] && [ -z "${JAVACMD}" ]; then
-        JAVACMD="$jcmd"
-    fi
-done
+if [ -z "${JAVACMD}" ]; then
+    for jcmd in $JAVA_CMDS; do
+        if [ "z$ALTERNATIVE_JDK" = "z`readlink -n -f $jcmd`" ] && [ -z "${JAVACMD}" ]; then
+            JAVACMD="$jcmd"
+            break
+        fi
+    done
+fi
 
-for jcmd in $JAVA8_CMDS; do
-    if [ -x "$jcmd" -a -z "${JAVACMD}" ]; then
-        JAVACMD="$jcmd"
-    fi
-done
+if [ -z "${JAVACMD}" ]; then
+    for jcmd in $JAVA_CMDS; do
+        if [ -x "$jcmd" -a -z "${JAVACMD}" ]; then
+            JAVACMD="$jcmd"
+            break
+        fi
+    done
+fi
 
-for jcmd in $JAVA7_CMDS; do
-	if [ "z$ALTERNATIVE_JDK" = "z`readlink -n -f $jcmd`" ] && [ -z "${JAVACMD}" ]; then
-        JAVACMD="$jcmd"
-    fi
-done
-
-for jcmd in $JAVA7_CMDS; do
-    if [ -x "$jcmd" -a -z "${JAVACMD}" ]; then
-        JAVACMD="$jcmd"
-    fi
-done
-
-for jcmd in $JAVA9_CMDS; do
-	if [ "z$ALTERNATIVE_JDK" = "z`readlink -n -f $jcmd`" ] && [ -z "${JAVACMD}" ]; then
-        JAVACMD="$jcmd"
-    fi
-done
-
-for jcmd in $JAVA9_CMDS; do
-    if [ -x "$jcmd" -a -z "${JAVACMD}" ]; then
-        JAVACMD="$jcmd"
-    fi
-done
-
 if [ "$JAVACMD" ]; then
     echo "Using $JAVACMD to execute josm." || true
     set +e
