[java-sig-commits] [javapackages] Add more logging info and fix several bugs

Mikolaj Izdebski mizdebsk at fedoraproject.org
Tue Sep 17 11:27:33 UTC 2013


commit 6df5c2b27e9cfbc919b09c596bec63f94476aaa2
Author: Mikolaj Izdebski <mizdebsk at redhat.com>
Date:   Tue Sep 17 11:08:26 2013 +0200

    Add more logging info and fix several bugs

 build                     |    2 +
 java-utils/java-functions |   53 ++++++++++++++++++++++++++------------------
 2 files changed, 33 insertions(+), 22 deletions(-)
---
diff --git a/build b/build
index f2f1ef3..2ab0743 100755
--- a/build
+++ b/build
@@ -58,6 +58,8 @@ expand()
         -e "s|%{javadir}|${javadir}|" \
         -e "s|%{jnidir}|${jnidir}|" \
         -e "s|%{jvmdir}|${jvmdir}|" \
+        -e "s|%{m2home}|${m2home}|" \
+        -e "s|%{prefix}|${prefix}|" \
         -e "s|%{sysconfdir}|${sysconfdir}|" \
         "${1}" >"${target}"
 }
diff --git a/java-utils/java-functions b/java-utils/java-functions
index 9b1162f..a43ed5b 100644
--- a/java-utils/java-functions
+++ b/java-utils/java-functions
@@ -26,10 +26,13 @@ _load_java_conf_file()
     local JVM_ROOT
 
     if [ -f "${1}" ]; then
+	_log "Loading config file: ${1}"
 	. "${1}"
 
-	_javadirs="${_javadirs}${_javadirs:=:}${JAVA_LIBDIR}:${JNI_LIBDIR}"
-	_jvmdirs="${_jvmdirs}${_jvmdirs:=:}${JVM_ROOT}"
+	_javadirs="${_javadirs}${_javadirs:+:}${JAVA_LIBDIR}:${JNI_LIBDIR}"
+	_jvmdirs="${_jvmdirs}${_jvmdirs:+:}${JVM_ROOT}"
+    else
+	_log "Skipping config file ${1}: file does not exist"
     fi
 }
 
@@ -40,12 +43,11 @@ _load_java_conf()
     local java_home_save="${JAVA_HOME}"
     local java_opts_save="${JAVACMD_OPTS}"
     local prefix
-    local reversed
 
     unset _javadirs
     unset _jvmdirs
 
-    set -- "${PREFIXES:-%{prefix}}"
+    set -- ${PREFIXES:-%{prefix}}
 
     _log "Prefixes are:"
     for prefix; do
@@ -53,11 +55,6 @@ _load_java_conf()
     done
 
     for prefix; do
-	reversed="${prefix}${reversed:+:}${reversed}"
-    done
-
-    set -- "${reversed}"
-    for prefix; do
 	_load_java_conf_file "${prefix}/etc/java/java.conf"
     done
 
@@ -84,7 +81,9 @@ _set_java_home()
     local subdirs
 
     if [ -n "${JAVA_HOME}" ]; then
-	_log "Using predefined JAVA_HOME: ${JAVA_HOME}"
+	if [ -z "${JVM_ROOT}" ]; then
+	    JVM_ROOT="${JAVA_HOME}"/..
+	fi
 	return
     fi
 
@@ -109,7 +108,7 @@ _set_java_home()
 	done
     done
 
-    unset JVM_HOME
+    unset JVM_ROOT
     unset JAVA_HOME
 }
 
@@ -166,7 +165,7 @@ set_classpath()
     LOCAL_CLASSPATH=$("%{bindir}/build-classpath" ${@})
 
     # append original classpath if defined
-    CLASSPATH=${LOCAL_CLASSPATH}${CLASSPATH:=:}${CLASSPATH}
+    CLASSPATH=${LOCAL_CLASSPATH}${CLASSPATH:+:}${CLASSPATH}
 }
 
 set_javacmd()
@@ -184,14 +183,16 @@ set_javacmd()
     for cmd in jre/sh/java bin/java; do
 	JAVACMD="${JAVA_HOME}/${cmd}"
 	if [ -x "${JAVACMD}" ]; then
-	    JAVACMD="${JAVACMD}${JAVACMD_OPTS:= }${JAVACMD_OPTS}"
+	    _log "Using configured JAVACMD: $JAVACMD"
+	    JAVACMD="${JAVACMD}${JAVACMD_OPTS:+ }${JAVACMD_OPTS}"
 	    return 0
 	fi
     done
 
     JAVACMD=$(which java 2>/dev/null || :)
     if [ -x "${JAVACMD}" ]; then
-	JAVACMD="${JAVACMD}${JAVACMD_OPTS:= }${JAVACMD_OPTS}"
+	_log "Using JAVACMD from PATH: $JAVACMD"
+	JAVACMD="${JAVACMD}${JAVACMD_OPTS:+ }${JAVACMD_OPTS}"
 	return 0
     fi
 
@@ -202,13 +203,13 @@ set_javacmd()
 # Set flags
 set_flags()
 {
-    FLAGS="${@}${ADDITIONAL_FLAGS:= }${ADDITIONAL_FLAGS}"
+    FLAGS="${@}${ADDITIONAL_FLAGS:+ }${ADDITIONAL_FLAGS}"
 }
 
 # Set options
 set_options()
 {
-    OPTIONS="${@}${ADDITIONAL_OPTIONS:= }${ADDITIONAL_OPTIONS}"
+    OPTIONS="${@}${ADDITIONAL_OPTIONS:+ }${ADDITIONAL_OPTIONS}"
 }
 
 # Run application
@@ -233,6 +234,7 @@ run()
 # Set JVM-related directories
 set_jvm_dirs()
 {
+    local IFS
     local re
     local option
     local version
@@ -249,14 +251,16 @@ set_jvm_dirs()
     #   java full version "J2RE 1.4.1 IBM build cxia321411-20030930"
     #   java full version "Blackdown-1.4.1-01"
     #   java version "1.5.0"
+
     re='\([[:digit:]]\{1,\}\.[[:digit:]]\{1,\}\(\.[[:digit:]]\{1,\}\)*\)'
     for option in -fullversion -version; do
         # Yuck, "grep -o" would be cleaner, but requires GNU grep >= 2.5.
         # This could be improved/simplified if sed had non-greedy matching.
-        version=$("${JAVACMD}" $option 2>&1 | sed -n \
+        version=$(${JAVACMD} $option 2>&1 | sed -n \
             -e '/\(openjdk\|java\) \(full \)*version "/s/'$re'/<<<\1>>>/' \
             -e '/\(openjdk\|java\) \(full \)*version "/s/.*<<<\([^>]\{1,\}\)>>>.*/\1/p')
         if [ -n "${version}" ]; then
+	    _log "Determined Java version to be ${version}"
             break
         fi
     done
@@ -267,10 +271,11 @@ set_jvm_dirs()
     fi
 
     # Jar repository for this Java standard
+    IFS=:
     _javaverdirs=
     for dir in ${_javadirs}; do
-	_javaverdirs="${dir}-${version}${_javaverdirs:=:}${_javaverdirs}"
-    done
+	_javaverdirs="${_javaverdirs}${_javaverdirs:+:}${dir}-${version}"
+   done
 
     return 0
 }
@@ -358,18 +363,20 @@ find_jar()
 {
     local IFS=:
     local artifact="${1}"
+    local m2home="${M2_HOME:-%{m2home}}"
 
     # If artifact contains semicolon then assume it specifies Maven
     # artifact coordinates.
     set -- ${artifact}
     if [ ${#} -gt 1 ]; then
-	if ! [ -x "${M2_HOME:-%{m2home}}/bin/xmvn-resolve" ]; then
+	_log "Using XMvn location: ${m2home}"
+	if ! [ -x "${m2home}/bin/xmvn-resolve" ]; then
             echo "${0}: Unable to execute xmvn-resolve." >&2
             echo "${0}: Make sure that XMvn is installed and M2_HOME is set correctly." >&2
             return 1
 	fi
 
-	"${M2_HOME:-%{m2home}}/bin/xmvn-resolve" -c "${artifact}"
+	"${m2home}/bin/xmvn-resolve" -c "${artifact}"
 	return ${?}
     fi
 
@@ -383,10 +390,12 @@ find_jar()
     for artifact in ${artifact%.jar} ${artifact%-*} ${artifact%/*}; do
 	for dir; do
 	    if [ -d "${dir}" ] ; then
+		_log "Trying file ${dir}/${artifact}.jar"
 		if [ -r "${dir}/${artifact}.jar" ] ; then
 		    echo "${dir}/${artifact}.jar"
 		    return 0
 		fi
+		_log "Trying directory ${dir}/${artifact}/"
 		if [ -d "${dir}/${artifact}" ] ; then
 		    echo "${dir}/${artifact}"
 		    return 0
@@ -395,7 +404,7 @@ find_jar()
 	done
     done
 
-    echo "$0: error: Could not find $1 Java extension for this JVM" >&2
+    echo "$0: error: Could not find ${artifact} Java extension for this JVM" >&2
     return 1
 }
 


More information about the java-sig-commits mailing list