Check openjdk $VERSION before setting $JAVA_HOME
[releng/global-jjb.git] / shell / update-java-alternatives.sh
1 #!/bin/bash
2 # SPDX-License-Identifier: EPL-1.0
3 ##############################################################################
4 # Copyright (c) 2018 The Linux Foundation and others.
5 #
6 # All rights reserved. This program and the accompanying materials
7 # are made available under the terms of the Eclipse Public License v1.0
8 # which accompanies this distribution, and is available at
9 # http://www.eclipse.org/legal/epl-v10.html
10 ##############################################################################
11
12 # This script takes the java-version variable to set the proper alternative
13 # for java, javac and java_sdk_openjdk for ubuntu or centos/fedora/redhat distros
14
15 JAVA_ENV_FILE="/tmp/java.env"
16
17 update-java-redhat() {
18     if [[ "${SET_JDK_VERSION: -2}" = "11" ]]; then
19         export JAVA_HOME="/opt/jdk-11"
20     elif [[ "${SET_JDK_VERSION: -2}" = "10" ]]; then
21         export JAVA_HOME="/opt/jdk-10.0.2"
22     else
23         export JAVA_HOME="/usr/lib/jvm/java-1.${SET_JDK_VERSION: -1}.0-openjdk"
24     fi
25     sudo /usr/sbin/alternatives --install /usr/bin/java java "${JAVA_HOME}/bin/java" 1
26     sudo /usr/sbin/alternatives --install /usr/bin/javac javac "${JAVA_HOME}/bin/javac" 1
27     sudo /usr/sbin/alternatives --install /usr/lib/jvm/java-openjdk java_sdk_openjdk "${JAVA_HOME}" 1
28     sudo /usr/sbin/alternatives --set java "${JAVA_HOME}/bin/java"
29     sudo /usr/sbin/alternatives --set javac "${JAVA_HOME}/bin/javac"
30     sudo /usr/sbin/alternatives --set java_sdk_openjdk "${JAVA_HOME}"
31     echo JAVA_HOME="$JAVA_HOME" > "$JAVA_ENV_FILE"
32 }
33
34 update-java-ubuntu() {
35     export JAVA_HOME="/usr/lib/jvm/java-${SET_JDK_VERSION: -1}-openjdk-amd64"
36     sudo /usr/bin/update-alternatives --install /usr/bin/java java "${JAVA_HOME}/bin/java" 1
37     sudo /usr/bin/update-alternatives --install /usr/bin/javac javac "${JAVA_HOME}/bin/javac" 1
38     sudo /usr/bin/update-alternatives --install /usr/lib/jvm/java-openjdk java_sdk_openjdk "${JAVA_HOME}" 1
39     sudo /usr/bin/update-alternatives --set java "${JAVA_HOME}/bin/java"
40     sudo /usr/bin/update-alternatives --set javac "${JAVA_HOME}/bin/javac"
41     sudo /usr/bin/update-alternatives --set java_sdk_openjdk "${JAVA_HOME}"
42     echo JAVA_HOME="$JAVA_HOME" > "$JAVA_ENV_FILE"
43 }
44
45 echo "---> Updating Java version"
46 OS=$(facter operatingsystem | tr '[:upper:]' '[:lower:]')
47
48 case "${OS}" in
49     fedora|centos|redhat)
50         echo "---> RedHat type system detected"
51         update-java-redhat
52     ;;
53     ubuntu)
54         echo "---> Ubuntu system detected"
55         update-java-ubuntu
56     ;;
57 esac
58 java -version
59 echo JAVA_HOME="${JAVA_HOME}"