Improved the detection of the JRE/JDK version (supports 2 digits Java 7 updates)...
authorEmmanuel Bourg <ebourg@apache.org>
Mon, 6 Feb 2012 16:11:53 +0000 (17:11 +0100)
committerCédric Pineau <cedric.pineau@gmail.com>
Thu, 2 Aug 2012 16:21:20 +0000 (18:21 +0200)
Signed-off-by: Cédric Pineau <cedric.pineau@gmail.com>
lib/oracle-j2re.sh
lib/oracle-j2sdk-doc.sh
lib/oracle-j2sdk.sh

index 7ade629..3f837a7 100644 (file)
@@ -1,53 +1,44 @@
 # Detect product
 j2se_detect_oracle_j2re=oracle_j2re_detect
 oracle_j2re_detect() {
 # Detect product
 j2se_detect_oracle_j2re=oracle_j2re_detect
 oracle_j2re_detect() {
-  local found=
+
+  if [[ $archive_name =~ jre-([0-9]+)u([0-9]+)-linux-(i586|x64)\.(bin|tar\.gz) ]]
+  then
+    j2se_release=${BASH_REMATCH[1]}
+    j2se_update=${BASH_REMATCH[2]}
+    j2se_arch=${BASH_REMATCH[3]}
+    j2se_version=$j2se_release.$j2se_update
+    j2se_priority=$((310 + $j2se_release - 1))
+    j2se_expected_min_size=95 #Mb
+
+    # check if the architecture matches
+    let compatible=1
   
   
-  case "${DEB_BUILD_ARCH:-$DEB_BUILD_GNU_TYPE}" in
-    i386|i486-linux-gnu)
-      case "$archive_name" in
-       "jre-6u"[0-9][0-9]"-linux-i586.bin") # SUPPORTED
-           j2se_version=1.6.0+update${archive_name:6:2}${revision}
-           j2se_expected_min_size=16 #Mb
-           j2se_priority=314
-           found=true
-           ;;
-       "jre-7u"[0-9]"-linux-i586.tar.gz") # SUPPORTED
-           j2se_version=1.7.0+update${archive_name:6:1}${revision}
-           j2se_expected_min_size=94 #Mb
-           j2se_priority=316
-           found=true
-           ;;
-      esac
-      ;;
-    amd64|x86_64-linux-gnu)
-      case "$archive_name" in
-       "jre-6u"[0-9][0-9]"-linux-x64.bin") # SUPPORTED
-           j2se_version=1.6.0+update${archive_name:6:2}${revision}
-           j2se_expected_min_size=16 #Mb
-           j2se_priority=314
-           found=true
-           ;;
-       "jre-7u"[0-9]"-linux-x64.tar.gz") # SUPPORTED
-           j2se_version=1.7.0+update${archive_name:6:1}${revision}
-           j2se_expected_min_size=88 #Mb
-           j2se_priority=316
-           found=true
-           ;;
-      esac
-      ;;
-  esac
-  if [[ -n "$found" ]]; then
+    case "${DEB_BUILD_ARCH:-$DEB_BUILD_GNU_TYPE}" in
+      i386|i486-linux-gnu)
+        if [[ "$j2se_arch" != "i586" ]]; then compatible=0; fi
+        ;;
+      amd64|x86_64-linux-gnu)
+        if [[ "$j2se_arch" != "x64" ]]; then compatible=0; fi
+        ;;
+    esac
+
+    if [[ $compatible == 0 ]]
+    then
+      echo "The archive $archive_name is not supported on the ${DEB_BUILD_ARCH} architecture"
+      return
+    fi
+
+
        cat << EOF
 
 Detected product:
     Java(TM) Runtime Environment (JRE)
        cat << EOF
 
 Detected product:
     Java(TM) Runtime Environment (JRE)
-    Standard Edition, Version $j2se_version
+    Standard Edition, Version $j2se_release Update $j2se_update
     Oracle(TM)
 EOF
        if read_yn "Is this correct [Y/n]: "; then
            j2se_found=true
     Oracle(TM)
 EOF
        if read_yn "Is this correct [Y/n]: "; then
            j2se_found=true
-           j2se_release="${j2se_version:2:1}"
            j2se_required_space=$(( $j2se_expected_min_size * 2 + 20 ))
            j2se_vendor="oracle"
            j2se_title="Java(TM) JRE, Standard Edition, Oracle(TM)"
            j2se_required_space=$(( $j2se_expected_min_size * 2 + 20 ))
            j2se_vendor="oracle"
            j2se_title="Java(TM) JRE, Standard Edition, Oracle(TM)"
@@ -61,7 +52,7 @@ EOF
            oracle_jre_lib_hl="jexec"
            j2re_run
        fi
            oracle_jre_lib_hl="jexec"
            j2re_run
        fi
-    fi
+  fi
 }
 
 oracle_j2re_install() {
 }
 
 oracle_j2re_install() {
index 64ccb0f..33d27ab 100644 (file)
@@ -1,29 +1,30 @@
 # Detect product
 oracle_j2sdk_doc_detect() {
 # Detect product
 oracle_j2sdk_doc_detect() {
-  local found=
-      case "$archive_name" in
-       "jdk-6u"[0-9][0-9]"-apidocs.zip") # SUPPORTED
-           j2se_version=1.6.0+update${archive_name:6:2}${revision}
-           j2se_expected_min_size=44 #Mb
-           found=true
-           ;;
-       "jdk-7u"[0-9]"-apidocs.zip") # SUPPORTED
-           j2se_version=1.7.0+update${archive_name:6:1}${revision}
-           j2se_expected_min_size=290 #Mb
-           found=true
-           ;;
-      esac
-  if [[ -n "$found" ]]; then
+
+  if [[ $archive_name =~ jdk-([0-9]+)u([0-9]+)-apidocs\.zip ]]
+  then
+    j2se_release=${BASH_REMATCH[1]}
+    j2se_update=${BASH_REMATCH[2]}
+    j2se_version=$j2se_release.$j2se_update
+    
+    case "$j2se_release" in
+    6) # JDK 6
+         j2se_expected_min_size=44 #Mb
+         ;;
+       *) # JDK 7 and higher
+         j2se_expected_min_size=290 #Mb
+         ;;
+    esac
+
        cat << EOF
 
 Detected product:
     Java(TM) Development Kit (JDK) Documentation
        cat << EOF
 
 Detected product:
     Java(TM) Development Kit (JDK) Documentation
-    Standard Edition, Version $j2se_version
+    Standard Edition, Version $j2se_release Update $j2se_update
     Oracle(TM)
 EOF
        if read_yn "Is this correct [Y/n]: "; then
            j2se_found=true
     Oracle(TM)
 EOF
        if read_yn "Is this correct [Y/n]: "; then
            j2se_found=true
-           j2se_release="${j2se_version:2:1}"
            j2se_required_space=$(( $j2se_expected_min_size * 2 + 20 ))
            j2se_vendor="oracle"
            j2se_title="Java(TM) JDK, Standard Edition, Oracle(TM) Documentation"
            j2se_required_space=$(( $j2se_expected_min_size * 2 + 20 ))
            j2se_vendor="oracle"
            j2se_title="Java(TM) JDK, Standard Edition, Oracle(TM) Documentation"
index 34fe383..ab2405c 100644 (file)
@@ -1,68 +1,59 @@
 # Detect product
 j2se_detect_oracle_j2sdk=oracle_j2sdk_detect
 oracle_j2sdk_detect() {
 # Detect product
 j2se_detect_oracle_j2sdk=oracle_j2sdk_detect
 oracle_j2sdk_detect() {
-  local found=
+
+  if [[ $archive_name =~ jdk-([0-9]+)u([0-9]+)-linux-(i586|x64)\.(bin|tar\.gz) ]]
+  then
+    j2se_release=${BASH_REMATCH[1]}
+    j2se_update=${BASH_REMATCH[2]}
+    j2se_arch=${BASH_REMATCH[3]}
+    j2se_version=$j2se_release.$j2se_update
+    j2se_priority=$((310 + $j2se_release))
+    j2se_expected_min_size=130 #Mb
+
+    # check if the architecture matches
+    let compatible=1
   
   
-  case "${DEB_BUILD_ARCH:-$DEB_BUILD_GNU_TYPE}" in
-    i386|i486-linux-gnu)
-      case "$archive_name" in
-       "jdk-6u"[0-9][0-9]"-linux-i586.bin") # SUPPORTED
-           j2se_version=1.6.0+update${archive_name:6:2}${revision}
-           j2se_expected_min_size=130 #Mb
-           j2se_priority=315
-           found=true
-           ;;
-       "jdk-7u"[0-9]"-linux-i586.tar.gz") # SUPPORTED
-           j2se_version=1.7.0+update${archive_name:6:1}${revision}
-           j2se_expected_min_size=190 #Mb
-           j2se_priority=317
-           found=true
-           ;;
-      esac
-      ;;
-    amd64|x86_64-linux-gnu)
-      case "$archive_name" in
-       "jdk-6u"[0-9][0-9]"-linux-x64.bin") # SUPPORTED
-           j2se_version=1.6.0+update${archive_name:6:2}${revision}
-           j2se_expected_min_size=130 #Mb
-           j2se_priority=315
-           found=true
-           ;;
-       "jdk-7u"[0-9]"-linux-x64.tar.gz") # SUPPORTED
-           j2se_version=1.7.0+update${archive_name:6:1}${revision}
-           j2se_expected_min_size=180 #Mb
-           j2se_priority=317
-           found=true
-           ;;
-      esac
-      ;;
-  esac
-  if [[ -n "$found" ]]; then
-       cat << EOF
+    case "${DEB_BUILD_ARCH:-$DEB_BUILD_GNU_TYPE}" in
+      i386|i486-linux-gnu)
+        if [[ "$j2se_arch" != "i586" ]]; then compatible=0; fi
+        ;;
+      amd64|x86_64-linux-gnu)
+        if [[ "$j2se_arch" != "x64" ]]; then compatible=0; fi
+        ;;
+    esac
+
+    if [[ $compatible == 0 ]]
+    then
+      echo "The archive $archive_name is not supported on the ${DEB_BUILD_ARCH} architecture"
+      return
+    fi
+    
+    
+    cat << EOF
 
 Detected product:
     Java(TM) Development Kit (JDK)
 
 Detected product:
     Java(TM) Development Kit (JDK)
-    Standard Edition, Version $j2se_version
+    Standard Edition, Version $j2se_release Update $j2se_update
     Oracle(TM)
 EOF
        if read_yn "Is this correct [Y/n]: "; then
     Oracle(TM)
 EOF
        if read_yn "Is this correct [Y/n]: "; then
-           j2se_found=true
-           j2se_release="${j2se_version:2:1}"
-           j2se_required_space=$(( $j2se_expected_min_size * 2 + 20 ))
-           j2se_vendor="oracle"
-           j2se_title="Java(TM) JDK, Standard Edition, Oracle(TM)"
+               j2se_found=true
+               j2se_required_space=$(( $j2se_expected_min_size * 2 + 20 ))
+               j2se_vendor="oracle"
+               j2se_title="Java(TM) JDK, Standard Edition, Oracle(TM)"
 
 
-           j2se_install=oracle_j2sdk_install
-           j2se_remove=oracle_j2sdk_remove
-           j2se_jinfo=oracle_j2sdk_jinfo
-           oracle_jre_bin_hl="java javaws keytool orbd pack200 rmid rmiregistry servertool tnameserv unpack200 policytool"
-           oracle_jre_bin_jre="javaws policytool"
-           oracle_no_man_jre_bin_jre="ControlPanel"
-           oracle_jre_lib_hl="jexec"
-           oracle_bin_jdk="appletviewer extcheck idlj jar jarsigner javac javadoc javah javap jconsole jdb jinfo jmap jps jsadebugd jstack jstat jstatd native2ascii rmic serialver"
-           j2sdk_run
+               j2se_install=oracle_j2sdk_install
+               j2se_remove=oracle_j2sdk_remove
+               j2se_jinfo=oracle_j2sdk_jinfo
+               oracle_jre_bin_hl="java javaws keytool orbd pack200 rmid rmiregistry servertool tnameserv unpack200 policytool"
+               oracle_jre_bin_jre="javaws policytool"
+               oracle_no_man_jre_bin_jre="ControlPanel"
+               oracle_jre_lib_hl="jexec"
+               oracle_bin_jdk="appletviewer extcheck idlj jar jarsigner javac javadoc javah javap jconsole jdb jinfo jmap jps jsadebugd jstack jstat jstatd native2ascii rmic serial$
+               j2sdk_run
        fi
        fi
-    fi
+  fi
 }
 
 oracle_j2sdk_install() {
 }
 
 oracle_j2sdk_install() {