Date: Monday, September 1, 2014 @ 13:37:18
  Author: guillaume
Revision: 220857

FS#41639 add link pointing at current jre

Modified:
  java-common/trunk/PKGBUILD
  java-common/trunk/bin_archlinux-java
  java-common/trunk/bin_java-common-wrapper
  java-common/trunk/install_java-common.sh
  java-common/trunk/profile_jre.csh
  java-common/trunk/profile_jre.sh
  java-common/trunk/test_archlinux-java

-------------------------+
 PKGBUILD                |   10 +++++-----
 bin_archlinux-java      |   16 ++++++++++++++--
 bin_java-common-wrapper |    2 +-
 install_java-common.sh  |   38 +++++++++++++++++++++++++++++++++++++-
 profile_jre.csh         |    2 +-
 profile_jre.sh          |    2 +-
 test_archlinux-java     |    9 +++++++++
 7 files changed, 68 insertions(+), 11 deletions(-)

Modified: PKGBUILD
===================================================================
--- PKGBUILD    2014-09-01 10:43:17 UTC (rev 220856)
+++ PKGBUILD    2014-09-01 11:37:18 UTC (rev 220857)
@@ -19,11 +19,11 @@
         bin_java-common-wrapper
         https://shunit2.googlecode.com/files/shunit2-2.1.6.tgz)
 
-sha256sums=('073ebe73e05346c03c29d02c73cca38f6a4fccc9f3ab2026760f1cd29791fabb'
-            '458eced6d2846805fbc18ca2ba717bf5f0556cc93a442b485c81fe12a4f6e5b6'
-            'd8753baf34ac2454edd7ba4d4f3ecf52aba02615a8ebc0f35ddf59ea83c11cd2'
-            'edf0f8eeb17720276026777b5b2ecb8629593e9f0a3af6def66cc9a77e31810a'
-            '622927af9ec374140a878993936f7fdd4206fe069dddfcefc6d4e15fa6d67f39'
+sha256sums=('72fa8a6d2d38f37ab51d36f383fa94bf424d494f0d3712b3af73daaf30046b2b'
+            'ffef7d042be3f20e3225780def56bcbadd75a74a3ceecc57c0af23d78e39cb54'
+            '00af7fe1894e0edc7663bfbdd626c68171cad7bc7d499f343f2eee9637d4b4c7'
+            'c28ffd3acc702e8cb02b3ec18516c0c4287614dd1f5803f9357a7a4c7c798f35'
+            '16a4fde19bd34210ff2d06480085f681b4e41e85ec89853e3cafaa8377bcedfb'
             '65a313a76fd5cc1c58c9e19fbc80fc0e418a4cbfbd46d54b35ed5b6e0025d4ee')
 
 check() {

Modified: bin_archlinux-java
===================================================================
--- bin_archlinux-java  2014-09-01 10:43:17 UTC (rev 220856)
+++ bin_archlinux-java  2014-09-01 11:37:18 UTC (rev 220857)
@@ -6,12 +6,15 @@
 # Author: Guillaume ALAUX <guilla...@archlinux.org>
 
 JVM_DIR=/usr/lib/jvm
-DEFAULT_NAME=java-default-runtime
+DEFAULT_NAME=default
 DEFAULT_PATH=${JVM_DIR}/${DEFAULT_NAME}
+DEFAULT_NAME_JRE=default-runtime
+DEFAULT_PATH_JRE=${JVM_DIR}/${DEFAULT_NAME_JRE}
 BIN_PATH=/usr/bin
 WRAPPER_PATH=/usr/lib/java-common-wrapper
 
 
+
 # Utility functions
 
 check_root() {
@@ -73,12 +76,21 @@
 
 # $1: Java environment name to set as default
 set_default_link_to() {
+  new_default=$1
   unlink ${DEFAULT_PATH} 2>/dev/null
-  ln -sf $1 ${DEFAULT_PATH}
+  ln -sf ${new_default} ${DEFAULT_PATH}
+
+  unlink ${DEFAULT_PATH_JRE} 2>/dev/null
+  if [[ ${new_default} == */jre ]]; then
+    ln -sf ${new_default} ${DEFAULT_PATH_JRE}
+  else
+    ln -sf ${new_default}/jre ${DEFAULT_PATH_JRE}
+  fi
 }
 
 unset_default_link() {
   unlink ${DEFAULT_PATH} 2>/dev/null
+  unlink ${DEFAULT_PATH_JRE} 2>/dev/null
 }
 
 # First level functions

Modified: bin_java-common-wrapper
===================================================================
--- bin_java-common-wrapper     2014-09-01 10:43:17 UTC (rev 220856)
+++ bin_java-common-wrapper     2014-09-01 11:37:18 UTC (rev 220857)
@@ -1,2 +1,2 @@
 #!/bin/bash
-exec "${JAVA_HOME:-/usr/lib/jvm/java-default-runtime}/bin/${0##*/}" "$@"
+exec "${JAVA_HOME:-/usr/lib/jvm/default}/bin/${0##*/}" "$@"

Modified: install_java-common.sh
===================================================================
--- install_java-common.sh      2014-09-01 10:43:17 UTC (rev 220856)
+++ install_java-common.sh      2014-09-01 11:37:18 UTC (rev 220857)
@@ -1,8 +1,44 @@
+JVM_DIR=/usr/lib/jvm
+OLD_DEFAULT_NAME=java-default-runtime
+OLD_DEFAULT_PATH=${JVM_DIR}/${OLD_DEFAULT_NAME}
+DEFAULT_NAME=default
+DEFAULT_PATH=${JVM_DIR}/${DEFAULT_NAME}
+DEFAULT_NAME_JRE=default-runtime
+DEFAULT_PATH_JRE=${JVM_DIR}/${DEFAULT_NAME_JRE}
+
+# $1: Java environment name to set as default
+set_default_link_to() {
+  new_default=$1
+  unlink ${DEFAULT_PATH} 2>/dev/null
+  ln -sf ${new_default} ${DEFAULT_PATH}
+
+  unlink ${DEFAULT_PATH_JRE} 2>/dev/null
+  if [[ ${new_default} == */jre ]]; then
+    ln -sf ${new_default} ${DEFAULT_PATH_JRE}
+  else
+    ln -sf ${new_default}/jre ${DEFAULT_PATH_JRE}
+  fi
+}
+
+pre_install() {
+  _curr_def=$(readlink ${OLD_DEFAULT_PATH} && true)
+  if [ -n ${_curr_def} ]; then
+    unlink ${OLD_DEFAULT_PATH} > /dev/null 2>&1
+    ln -sf ${DEFAULT_NAME} ${OLD_DEFAULT_PATH}
+
+    set_default_link_to ${_curr_def}
+  fi
+}
+
+pre_upgrade() {
+  pre_install "$@"
+}
+
 post_install() {
   echo 'Installing multiple non-conflicting Java environments is now supported'
   echo 'Check the following wiki section for more info:'
   echo '  https://wiki.archlinux.org/index.php/Java'
-  echo 'Please make sure JAVA_HOME is set to /usr/lib/jvm/java-default-runtime'
+  echo 'Please make sure JAVA_HOME is set to /usr/lib/jvm/default'
   echo 'If not, you may have to logout and login again to set it according to 
/etc/profile.d/jre.sh'
 }
 

Modified: profile_jre.csh
===================================================================
--- profile_jre.csh     2014-09-01 10:43:17 UTC (rev 220856)
+++ profile_jre.csh     2014-09-01 11:37:18 UTC (rev 220857)
@@ -1,6 +1,6 @@
 # Do not change this unless you want to completely by-pass Arch Linux' way
 # of handling Java versions and vendors. Instead, please use script 
`archlinux-java`
-setenv JAVA_HOME "/usr/lib/jvm/java-default-runtime"
+setenv JAVA_HOME "/usr/lib/jvm/default"
 
 # Enable this for non-reparenting window managers
 #setenv _JAVA_AWT_WM_NONREPARENTING 1

Modified: profile_jre.sh
===================================================================
--- profile_jre.sh      2014-09-01 10:43:17 UTC (rev 220856)
+++ profile_jre.sh      2014-09-01 11:37:18 UTC (rev 220857)
@@ -1,6 +1,6 @@
 # Do not change this unless you want to completely by-pass Arch Linux' way
 # of handling Java versions and vendors. Instead, please use script 
`archlinux-java`
-export JAVA_HOME=/usr/lib/jvm/java-default-runtime
+export JAVA_HOME=/usr/lib/jvm/default
 
 # Enable this for non-reparenting window managers
 #export _JAVA_AWT_WM_NONREPARENTING=1

Modified: test_archlinux-java
===================================================================
--- test_archlinux-java 2014-09-01 10:43:17 UTC (rev 220856)
+++ test_archlinux-java 2014-09-01 11:37:18 UTC (rev 220857)
@@ -11,6 +11,7 @@
 
 INIT_JVM_DIR=${JVM_DIR}
 INIT_DEFAULT_PATH=${DEFAULT_PATH}
+INIT_DEFAULT_PATH_JRE=${DEFAULT_PATH_JRE}
 INIT_BIN_PATH=${BIN_PATH}
 INIT_WRAPPER_PATH=${WRAPPER_PATH}
 
@@ -28,6 +29,7 @@
   test_dir=$(mktemp -d)
   JVM_DIR=${test_dir}${INIT_JVM_DIR}
   DEFAULT_PATH=${test_dir}${INIT_DEFAULT_PATH}
+  DEFAULT_PATH_JRE=${test_dir}${INIT_DEFAULT_PATH_JRE}
   JAVA_NAME=$(get_rand_str)
   BIN_PATH=${test_dir}${INIT_BIN_PATH}
   mkdir -p ${BIN_PATH}
@@ -69,11 +71,15 @@
     for binary in javac javah jhat; do
       ln -s ${WRAPPER_PATH} ${BIN_PATH}/${binary}
     done
+    ln -s $1/jre ${DEFAULT_PATH_JRE}
+  else
+    ln -s $1 ${DEFAULT_PATH_JRE}
   fi
 }
 
 assertDefaultNotSet() {
   assertNull 'Default is set' "$(readlink ${DEFAULT_PATH})"
+  assertNull 'Default runtime is set' "$(readlink ${DEFAULT_PATH_JRE})"
   assertNull "PATH has a java binary" "$(readlink ${BIN_PATH}/java)"
   assertNull "PATH has a javac binary" "$(readlink ${BIN_PATH}/javac)"
 }
@@ -81,6 +87,9 @@
 assertDefaultSetTo() {
   new_java=$1
   assertEquals "Default points at wrong Java env" "${new_java}" "$(readlink 
${DEFAULT_PATH})"
+  if [ ${new_java} == */jre ]; then
+    assertEquals "Default runtime points at wrong Java env" "${new_java}/jre" 
"$(readlink ${DEFAULT_PATH_JRE})"
+  fi
   # For all links in /usr/bin that point at the wrapper
   for lpath in $(find -L ${BIN_PATH} -samefile ${WRAPPER_PATH}); do
     # There is a binary in the JVM bin dir

Reply via email to