[arch-commits] Commit in java-common/trunk (3 files)

Guillaume Alaux guillaume at archlinux.org
Sun Aug 3 19:46:52 UTC 2014


    Date: Sunday, August 3, 2014 @ 21:46:52
  Author: guillaume
Revision: 219263

Fix check of JAVA_HOME

Modified:
  java-common/trunk/PKGBUILD
  java-common/trunk/bin_archlinux-java
  java-common/trunk/test_archlinux-java

---------------------+
 PKGBUILD            |    4 ++--
 bin_archlinux-java  |   35 ++++++++++++++++++-----------------
 test_archlinux-java |   20 ++++++++++++++++++++
 3 files changed, 40 insertions(+), 19 deletions(-)

Modified: PKGBUILD
===================================================================
--- PKGBUILD	2014-08-03 18:46:57 UTC (rev 219262)
+++ PKGBUILD	2014-08-03 19:46:52 UTC (rev 219263)
@@ -21,8 +21,8 @@
 
 sha256sums=('d5d583325751bf5cb43cca448f0d5c0a868958d19baf2db3694c9948b9d8974e'
             '523c88cfe78667960a7c04ef1a0983371690f42153c54174711281337b556378'
-            '8ca7eea69eeaa62a5603d66c10a4f25ce57911b89220b46876355f604701c047'
-            '0dd93c9779c617af061b25f5e3d23cacb741d8d757f533312c3af976661e8cbc'
+            'a6779034d99b84f5954764bb4f86c89f3dcd172dc343265291d6b0929b350932'
+            'f2a4ef37600c4ee12090881c881b085c3b209bb97ce0df10920d8df3e0b1e700'
             '622927af9ec374140a878993936f7fdd4206fe069dddfcefc6d4e15fa6d67f39'
             '65a313a76fd5cc1c58c9e19fbc80fc0e418a4cbfbd46d54b35ed5b6e0025d4ee')
 

Modified: bin_archlinux-java
===================================================================
--- bin_archlinux-java	2014-08-03 18:46:57 UTC (rev 219262)
+++ bin_archlinux-java	2014-08-03 19:46:52 UTC (rev 219263)
@@ -21,17 +21,6 @@
   fi
 }
 
-check_java_home() {
-  if [ "x${JAVA_HOME}" != "x${DEFAULT_PATH}" ]; then
-    echo "JAVA_HOME is not set to '${DEFAULT_PATH}',"
-    echo 'which means this script may not provide the expected result.'
-    echo 'To fix this, please ensure '/etc/profile.d/jre.sh' sets JAVA_HOME'
-    echo 'accordingly and that no other profile script interfer.'
-    echo 'You may also need to relogin in order for this variable to be set.'
-    exit 1
-  fi
-}
-
 # $1: parameter count given to this script for this option
 # $2: expected parameter count for this option
 check_param_count() {
@@ -94,6 +83,17 @@
 
 # First level functions
 
+check_java_home() {
+  if [ "x${JAVA_HOME}" != "x${DEFAULT_PATH}" ]; then
+    echo -e "\nJAVA_HOME is not set to '${DEFAULT_PATH}',"
+    echo 'which means Java environments may not provide the expected result.'
+    echo "To fix this, please ensure '/etc/profile.d/jre.sh' sets JAVA_HOME"
+    echo 'accordingly and that no other profile script interferes.'
+    echo 'You may also need to relogin in order for this variable to be set.'
+    exit 1
+  fi
+}
+
 do_status() {
   installed_java=($(get_installed_javas))
   if [ ${#installed_java[@]} -eq 0 ]; then
@@ -111,6 +111,7 @@
     if [ -z ${default_java} ]; then
       echo "No Java environment set as default"
     fi
+    check_java_home
   fi
 }
 
@@ -134,7 +135,7 @@
 
   #parent_dir=$(dirname $1)
   #if is_java_valid ${parent_dir}; then
-  #  echo "Warning: '${parent_dir}' looks like a valid JDK whereas you only set '$1' as default"
+  #  echo "Warning: '${parent_dir}' looks like a valid JDK whereas '$1' is set as default"
   #  echo "Fix this with 'archlinux-java set ${parent_dir}'"
   #fi
 }
@@ -185,11 +186,11 @@
 
 ## Main
 case $1 in
-  'status') check_java_home; do_status;;
-  'get')    check_java_home; do_get;;
-  'set')    check_java_home; check_root; check_param_count $# 2; do_set $2;;
-  'unset')  check_java_home; check_root; do_unset;;
-  'fix')    check_java_home; check_root; do_fix;;
+  'status') do_status;;
+  'get')    do_get;;
+  'set')    check_root; check_param_count $# 2; do_set $2;;
+  'unset')  check_root; do_unset;;
+  'fix')    check_root; do_fix;;
   'help' | '--help' | '-h' | '') usage;;
   *)           echo "$(basename $0): unknown option '$@'"; exit 1;;
 esac

Modified: test_archlinux-java
===================================================================
--- test_archlinux-java	2014-08-03 18:46:57 UTC (rev 219262)
+++ test_archlinux-java	2014-08-03 19:46:52 UTC (rev 219263)
@@ -28,6 +28,7 @@
   test_dir=$(mktemp -d)
   JVM_DIR=${test_dir}${INIT_JVM_DIR}
   DEFAULT_PATH=${test_dir}${INIT_DEFAULT_PATH}
+  JAVA_HOME=${DEFAULT_PATH}
   JAVA_NAME=$(get_rand_str)
   BIN_PATH=${test_dir}${INIT_BIN_PATH}
   mkdir -p ${BIN_PATH}
@@ -106,6 +107,25 @@
   assertEquals 'Wrong status output' "${expected}" "$(do_status)"
 }
 
+test_do_status_no_javahome() {
+  JAVA_NAME_1="a$(get_rand_str)"
+  JAVA_NAME_2="b$(get_rand_str)"
+  create_valid_jre_env "${JAVA_NAME_1}/jre"
+  set_default_for_test "${JAVA_NAME_1}/jre"
+  create_valid_jdk_env "${JAVA_NAME_2}"
+  unset JAVA_HOME
+  mess+="Available Java environments:\n"
+  mess+="  ${JAVA_NAME_1}/jre (default)\n"
+  mess+="  ${JAVA_NAME_2}\n"
+  mess+="\nJAVA_HOME is not set to '${DEFAULT_PATH}',\n"
+  mess+="which means Java environments may not provide the expected result.\n"
+  mess+="To fix this, please ensure '/etc/profile.d/jre.sh' sets JAVA_HOME\n"
+  mess+="accordingly and that no other profile script interferes.\n"
+  mess+="You may also need to relogin in order for this variable to be set."
+  expected=$(echo -e "${mess}")
+  assertEquals 'Wrong status output' "${expected}" "$(do_status)"
+}
+
 test_do_status_no_default() {
   JAVA_NAME_1="a$(get_rand_str)"
   JAVA_NAME_2="b$(get_rand_str)"




More information about the arch-commits mailing list