diff options
author | Greg Lewis <glewis@FreeBSD.org> | 2012-07-13 05:38:43 +0000 |
---|---|---|
committer | Greg Lewis <glewis@FreeBSD.org> | 2012-07-13 05:38:43 +0000 |
commit | c1e89281c2764debae22a1df1649d0ba97b0cd2a (patch) | |
tree | 71ed9d90b15bb0d90e17b62cab93eac6e08cc1e3 /java/javavmwrapper | |
parent | 1d02afc1ea919964da3a55ad0f42306fba5eba7b (diff) |
Notes
Diffstat (limited to 'java/javavmwrapper')
-rw-r--r-- | java/javavmwrapper/Makefile | 2 | ||||
-rw-r--r-- | java/javavmwrapper/src/javavm.1 | 10 | ||||
-rw-r--r-- | java/javavmwrapper/src/javavmwrapper.sh | 129 |
3 files changed, 64 insertions, 77 deletions
diff --git a/java/javavmwrapper/Makefile b/java/javavmwrapper/Makefile index 79c84b2f71de..d2a85c17f49a 100644 --- a/java/javavmwrapper/Makefile +++ b/java/javavmwrapper/Makefile @@ -8,7 +8,7 @@ # PORTNAME= javavmwrapper -PORTVERSION= 2.3.5 +PORTVERSION= 2.4 CATEGORIES= java MASTER_SITES= # none DISTFILES= # none diff --git a/java/javavmwrapper/src/javavm.1 b/java/javavmwrapper/src/javavm.1 index 76557c9eea43..01725a9d2649 100644 --- a/java/javavmwrapper/src/javavm.1 +++ b/java/javavmwrapper/src/javavm.1 @@ -126,6 +126,16 @@ Java VM as options. For more information on environment variables which can be used to set options see .Pa %%PREFIX%%/etc/javavm_opts.conf.dist . +.It Ev JAVAVM_FALLBACK_ONLY +If this variable is set then instead of selecting the Java VM based on +.Pa %%PORTSDIR%%/Mk/bsd.java.mk +only the internal selection process is used. +This may be useful to achieve consistent results for Java VM selection +across multiple hosts, where some have the ports collection installed +and others do not. +However, this option, when used with scripts installed by a port, may +result in Java VM selection inconsistent with that intended by the script +author. .It Ev JAVAVM_DRYRUN When this variable is set, no Java VM is invoked. Instead, the Java VM wrapper prints out the following information: diff --git a/java/javavmwrapper/src/javavmwrapper.sh b/java/javavmwrapper/src/javavmwrapper.sh index 38010e8e6f15..87313c2543d6 100644 --- a/java/javavmwrapper/src/javavmwrapper.sh +++ b/java/javavmwrapper/src/javavmwrapper.sh @@ -173,8 +173,12 @@ sortConfiguration () { _VM=`dirname "${_VM}"` _VM=`dirname "${_VM}"` _VM=`basename "${_VM}"` - VERSION=`echo ${VM} | sed -e 's|[^0-9]*||' 2>/dev/null` - _VERSION=`echo ${_VM} | sed -e 's|[^0-9]*||' 2>/dev/null` + # Consistent version numbering for various install directory names + # including 'openjdk6', 'jdk1.6.0', 'linux-sun-jdk1.6.0', etc. + VERSION=`echo ${VM} | sed -e 's|[^0-9]*||' -e 's|1\.||' \ + -e 's|\.[0-9]||' 2>/dev/null` + _VERSION=`echo ${_VM} | sed -e 's|[^0-9]*||' -e 's|1\.||' \ + -e 's|\.[0-9]||' 2>/dev/null` if [ "${VERSION}" \> "${_VERSION}" ]; then _JAVAVMS="${_JAVAVMS}:${JAVAVM}:${_JAVAVM}" JAVAVM= @@ -184,14 +188,14 @@ sortConfiguration () { continue else case "${VM}" in - diablo-jdk*) + openjdk*) _JAVAVMS="${_JAVAVMS}:${JAVAVM}:${_JAVAVM}" JAVAVM= continue ;; - diablo-jre*|openjdk*) + diablo-jdk*) case "${_VM}" in - diablo*) + open*) _JAVAVMS="${_JAVAVMS}:${_JAVAVM}" continue ;; @@ -202,9 +206,9 @@ sortConfiguration () { ;; esac ;; - jdk*) + diablo-jre*|jdk*) case "${_VM}" in - diablo*|open*) + open*|diablo*) _JAVAVMS="${_JAVAVMS}:${_JAVAVM}" continue ;; @@ -217,20 +221,7 @@ sortConfiguration () { ;; jre*|linux-sun-jdk*) case "${_VM}" in - diablo*|open*|j*) - _JAVAVMS="${_JAVAVMS}:${_JAVAVM}" - continue - ;; - *) - _JAVAVMS="${_JAVAVMS}:${JAVAVM}:${_JAVAVM}" - JAVAVM= - continue - ;; - esac - ;; - linux-sun-jre*|linux-blackdown-jdk*) - case "${_VM}" in - diablo*|open*|j*|linux-sun*) + open*|diablo*|j*) _JAVAVMS="${_JAVAVMS}:${_JAVAVM}" continue ;; @@ -241,9 +232,9 @@ sortConfiguration () { ;; esac ;; - linux-blackdown-jre*|linux-ibm-jdk*) + linux-sun-jre*) case "${_VM}" in - diablo*|open*|j*|linux-sun*|linux-blackdown*) + open*|diablo*|j*|linux-sun*) _JAVAVMS="${_JAVAVMS}:${_JAVAVM}" continue ;; @@ -466,11 +457,11 @@ manualpageVM () { MANPATH="${JAVA_HOME}/man:${MANPATH}" export MANPATH if [ "${LANG}" = "ja_JP.eucJP" -a -x "${_JAVAVM_PREFIX}/bin/jman" ]; then - setJavaOptions jman "`basename ${JAVA_HOME}`" - exec ${_JAVAVM_PREFIX}/bin/jman -S 1 ${_JAVAVM_OPTS} ${1} + setJavaOptions jman "`basename ${JAVA_HOME}`" + exec ${_JAVAVM_PREFIX}/bin/jman -S 1 ${_JAVAVM_OPTS} ${1} else - setJavaOptions man "`basename ${JAVA_HOME}`" - exec man -S 1 ${_JAVAVM_OPTS} ${1} + setJavaOptions man "`basename ${JAVA_HOME}`" + exec man -S 1 ${_JAVAVM_OPTS} ${1} fi } @@ -481,39 +472,43 @@ setJavaHome() { # Use JAVA_HOME if it's set, unless its set to %%PREFIX%% if [ -n "${JAVA_HOME}" ]; then if [ "`realpath "${JAVA_HOME}"`" != "`realpath "${_JAVAVM_PREFIX}"`" ]; then - if [ -f "${JAVA_HOME}/bin/${_JAVAVM_PROG}" ]; then - _JAVAVM_PROG_PATH="${JAVA_HOME}/bin" - return 0 - elif [ -f "${JAVA_HOME}/jre/bin/${_JAVAVM_PROG}" ]; then - _JAVAVM_PROG_PATH="${JAVA_HOME}/jre/bin" - return 0 - fi - fi + if [ -f "${JAVA_HOME}/bin/${_JAVAVM_PROG}" ]; then + _JAVAVM_PROG_PATH="${JAVA_HOME}/bin" + return 0 + elif [ -f "${JAVA_HOME}/jre/bin/${_JAVAVM_PROG}" ]; then + _JAVAVM_PROG_PATH="${JAVA_HOME}/jre/bin" + return 0 + fi + fi fi unset JAVA_HOME - # Determine location of bsd.port.mk if it exists - _JAVAVM_PORTSDIR= - if [ -r /usr/share/mk/bsd.port.mk ]; then - _JAVAVM_PORTSDIR=`"${_JAVAVM_MAKE}" -f /usr/share/mk/bsd.port.mk -V PORTSDIR 2>/dev/null` - fi + # Use bsd.java.mk to determine the VM to use if it exists unless + # JAVAVM_FALLBACK_ONLY is set + if [ -z "${JAVAVM_FALLBACK_ONLY}" ]; then + # Determine location of bsd.port.mk if it exists + _JAVAVM_PORTSDIR= + if [ -r /usr/share/mk/bsd.port.mk ]; then + _JAVAVM_PORTSDIR=`"${_JAVAVM_MAKE}" -f /usr/share/mk/bsd.port.mk -V PORTSDIR 2>/dev/null` + fi - _JAVAVM_BSD_PORT_MK= - if [ -n "${_JAVAVM_PORTSDIR}" -a -r "${_JAVAVM_PORTSDIR}/Mk/bsd.port.mk" ]; then - _JAVAVM_BSD_PORT_MK="${_JAVAVM_PORTSDIR}/Mk/bsd.port.mk" - fi + _JAVAVM_BSD_PORT_MK= + if [ -n "${_JAVAVM_PORTSDIR}" -a -r "${_JAVAVM_PORTSDIR}/Mk/bsd.port.mk" ]; then + _JAVAVM_BSD_PORT_MK="${_JAVAVM_PORTSDIR}/Mk/bsd.port.mk" + fi - # If bsd.port.mk was found, use that to determine the VM to use. - if [ -n "${_JAVAVM_BSD_PORT_MK}" ]; then - JAVA_HOME=`"${_JAVAVM_MAKE}" -f "${_JAVAVM_BSD_PORT_MK}" -V JAVA_HOME USE_JAVA=yes 2>/dev/null` - if [ -n "${JAVA_HOME}" -a -f "${JAVA_HOME}/bin/${_JAVAVM_PROG}" ]; then - _JAVAVM_PROG_PATH="${JAVA_HOME}/bin" - return 0 - elif [ -n "${JAVA_HOME}" -a \ - -f "${JAVA_HOME}/jre/bin/${_JAVAVM_PROG}" ]; then - _JAVAVM_PROG_PATH="${JAVA_HOME}/jre/bin" - return 0 + # If bsd.port.mk was found, use that to determine the VM to use. + if [ -n "${_JAVAVM_BSD_PORT_MK}" ]; then + JAVA_HOME=`"${_JAVAVM_MAKE}" -f "${_JAVAVM_BSD_PORT_MK}" -V JAVA_HOME USE_JAVA=yes 2>/dev/null` + if [ -n "${JAVA_HOME}" -a -f "${JAVA_HOME}/bin/${_JAVAVM_PROG}" ]; then + _JAVAVM_PROG_PATH="${JAVA_HOME}/bin" + return 0 + elif [ -n "${JAVA_HOME}" -a \ + -f "${JAVA_HOME}/jre/bin/${_JAVAVM_PROG}" ]; then + _JAVAVM_PROG_PATH="${JAVA_HOME}/jre/bin" + return 0 + fi fi fi @@ -531,25 +526,13 @@ setJavaHome() { _JAVAVM_VERSION= for version in ${JAVA_VERSION}; do case "${version}" in - 1.1+) - _JAVAVM_VERSION="${_JAVAVM_VERSION} 1.1 1.2 1.3 1.4 1.5 1.6 1.7" - ;; - 1.2+) - _JAVAVM_VERSION="${_JAVAVM_VERSION} 1.2 1.3 1.4 1.5 1.6 1.7" - ;; - 1.3+) - _JAVAVM_VERSION="${_JAVAVM_VERSION} 1.3 1.4 1.5 1.6 1.7" - ;; - 1.4+) - _JAVAVM_VERSION="${_JAVAVM_VERSION} 1.4 1.5 1.6 1.7" - ;; 1.5+) _JAVAVM_VERSION="${_JAVAVM_VERSION} 1.5 1.6 1.7" ;; 1.6+) _JAVAVM_VERSION="${_JAVAVM_VERSION} 1.6 1.7" ;; - 1.6+) + 1.7+) _JAVAVM_VERSION="${_JAVAVM_VERSION} 1.7" ;; *) @@ -569,7 +552,7 @@ setJavaHome() { if [ -n "${JAVA_VERSION}" ]; then _JAVAVM_VERSION=`echo ${_JAVAVM_VM} | \ sed -e 's|^[^0-9]*\([0-9]\)\.\([0-9]\)\.[0-9]$|\1.\2|' \ - -e 's|^[^0-9]*\([0-9]\)$|1.\1|'` + -e 's|^[^0-9]*\([0-9]\)$|1.\1|'` for _JAVAVM_REQUESTED_VERSION in ${JAVA_VERSION}; do if [ "${_JAVAVM_VERSION}" = "${_JAVAVM_REQUESTED_VERSION}" ]; then _JAVAVM_VERSION= @@ -584,7 +567,7 @@ setJavaHome() { if [ -n "${JAVA_OS}" ]; then _JAVAVM_OS= case "${_JAVAVM_VM}" in - diablo*|j*) + diablo*|j*|openjdk*) _JAVAVM_OS=native ;; linux*) @@ -605,22 +588,16 @@ setJavaHome() { if [ -n "${JAVA_VENDOR}" ]; then _JAVAVM_VENDOR= case "${_JAVAVM_VM}" in - linux-blackdown*) - _JAVAVM_VENDOR=blackdown - ;; diablo*) _JAVAVM_VENDOR=freebsd ;; j*) _JAVAVM_VENDOR=bsdjava ;; - linux-ibm*) - _JAVAVM_VENDOR=ibm - ;; openjdk*) _JAVAVM_VENDOR=openjdk ;; - linux-sun*) + linux*) _JAVAVM_VENDOR=sun ;; esac |