aboutsummaryrefslogtreecommitdiff
path: root/java/javavmwrapper
diff options
context:
space:
mode:
authorGreg Lewis <glewis@FreeBSD.org>2012-07-13 05:38:43 +0000
committerGreg Lewis <glewis@FreeBSD.org>2012-07-13 05:38:43 +0000
commitc1e89281c2764debae22a1df1649d0ba97b0cd2a (patch)
tree71ed9d90b15bb0d90e17b62cab93eac6e08cc1e3 /java/javavmwrapper
parent1d02afc1ea919964da3a55ad0f42306fba5eba7b (diff)
downloadports-c1e89281c2764debae22a1df1649d0ba97b0cd2a.tar.gz
ports-c1e89281c2764debae22a1df1649d0ba97b0cd2a.zip
. Make the version numbers consistent so they can be compared correctly.
E.g. for jdk1.6.0 and openjdk6 will use '6' as the version. . Modify the preference order for Java VMs used by the internal fallback logic to reflect that openjdk is now the default Java VM rather than diablo. . Remove code for Java vendors that are no longer in the ports tree (e.g. blackdown, ibm). . Remove code for handling version numbers that are no longer present in the tree (e.g. only 1.5 and up is supported). . Note that openjdk is a native Java VM. . If the environment variable JAVAVM_FALLBACK_ONLY is set then only use the internal logic to select a Java VM, don't use the ports logic even if the ports collection is installed. [1] . Update the manual page for JAVAVM_FALLBACK_ONLY. . Bump version to 2.4. PR: 167799 [1]
Notes
Notes: svn path=/head/; revision=300819
Diffstat (limited to 'java/javavmwrapper')
-rw-r--r--java/javavmwrapper/Makefile2
-rw-r--r--java/javavmwrapper/src/javavm.110
-rw-r--r--java/javavmwrapper/src/javavmwrapper.sh129
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