maintain classpath in more elementary manner: turn ISABELLE_CLASSPATH into -classpath option, so that all jars are covered by sun.misc.Launcher.AppClassLoader (e.g. relevant for loading add-on resources);
authorwenzelm
Thu, 12 Sep 2013 13:23:54 +0200
changeset 53576 793a429c63e7
parent 53575 df79aa33bb74
child 53577 d033bc00b762
maintain classpath in more elementary manner: turn ISABELLE_CLASSPATH into -classpath option, so that all jars are covered by sun.misc.Launcher.AppClassLoader (e.g. relevant for loading add-on resources); ignore $ISABELLE_JAVA_EXT -- do not change java.ext.dirs;
Admin/components/components.sha1
Admin/components/main
etc/settings
lib/Tools/java
lib/Tools/scala
lib/Tools/scalac
lib/scripts/getsettings
src/Doc/System/Scala.thy
src/Pure/build-jars
src/Tools/Graphview/lib/Tools/graphview
src/Tools/jEdit/lib/Tools/jedit
--- a/Admin/components/components.sha1	Wed Sep 11 23:32:47 2013 +0200
+++ b/Admin/components/components.sha1	Thu Sep 12 13:23:54 2013 +0200
@@ -34,6 +34,7 @@
 c85c0829b8170f25aa65ec6852f505ce2a50639b  jedit_build-20130628.tar.gz
 5de3e399be2507f684b49dfd13da45228214bbe4  jedit_build-20130905.tar.gz
 87136818fd5528d97288f5b06bd30c787229eb0d  jedit_build-20130910.tar.gz
+0bd2bc2d9a491ba5fc8dd99df27c04f11a72e8fa  jfreechart-1.0.14-1.tar.gz
 8122526f1fc362ddae1a328bdbc2152853186fee  jfreechart-1.0.14.tar.gz
 6c737137cc597fc920943783382e928ea79e3feb  kodkodi-1.2.16.tar.gz
 5f95c96bb99927f3a026050f85bd056f37a9189e  kodkodi-1.5.2.tar.gz
@@ -59,6 +60,7 @@
 e6a43b7b3b21295853bd2a63b27ea20bd6102f5f  windows_app-20130906.tar.gz
 8fe004aead867d4c82425afac481142bd3f01fb0  windows_app-20130908.tar.gz
 d273abdc7387462f77a127fa43095eed78332b5c  windows_app-20130909.tar.gz
+1c36a840320dfa9bac8af25fc289a4df5ea3eccb  xz-java-1.2-1.tar.gz
 2ae13aa17d0dc95ce254a52f1dba10929763a10d  xz-java-1.2.tar.gz
 4530a1aa6f4498ee3d78d6000fa71a3f63bd077f  yices-1.0.28.tar.gz
 12ae71acde43bd7bed1e005c43034b208c0cba4c  z3-3.2.tar.gz
--- a/Admin/components/main	Wed Sep 11 23:32:47 2013 +0200
+++ b/Admin/components/main	Thu Sep 12 13:23:54 2013 +0200
@@ -5,10 +5,10 @@
 Haskabelle-2013
 jdk-7u25
 jedit_build-20130910
-jfreechart-1.0.14
+jfreechart-1.0.14-1
 kodkodi-1.5.2
 polyml-5.5.0-3
 scala-2.10.2
 spass-3.8ds
 z3-3.2
-xz-java-1.2
+xz-java-1.2-1
--- a/etc/settings	Wed Sep 11 23:32:47 2013 +0200
+++ b/etc/settings	Thu Sep 12 13:23:54 2013 +0200
@@ -15,6 +15,13 @@
 
 ISABELLE_JAVA_SYSTEM_OPTIONS="-Dfile.encoding=UTF-8 -server"
 
+classpath "$ISABELLE_HOME/lib/classes/ext/Pure.jar"
+classpath "$ISABELLE_HOME/lib/classes/ext/scala-library.jar"
+classpath "$ISABELLE_HOME/lib/classes/ext/scala-swing.jar"
+classpath "$ISABELLE_HOME/lib/classes/ext/scala-actors.jar"
+classpath "$ISABELLE_HOME/lib/classes/ext/scala-compiler.jar"
+classpath "$ISABELLE_HOME/lib/classes/ext/scala-reflect.jar"
+
 
 ###
 ### Interactive sessions (cf. isabelle tty)
--- a/lib/Tools/java	Wed Sep 11 23:32:47 2013 +0200
+++ b/lib/Tools/java	Thu Sep 12 13:23:54 2013 +0200
@@ -4,9 +4,8 @@
 #
 # DESCRIPTION: invoke Java within the Isabelle environment
 
-CLASSPATH="$(jvmpath "$CLASSPATH")"
+declare -a JAVA_ARGS; eval "JAVA_ARGS=($ISABELLE_JAVA_SYSTEM_OPTIONS)"
 
-declare -a JAVA_ARGS; eval "JAVA_ARGS=($ISABELLE_JAVA_SYSTEM_OPTIONS)"
 isabelle_jdk java "${JAVA_ARGS[@]}" \
-  "-Djava.ext.dirs=$(jvmpath "$ISABELLE_JAVA_EXT:$ISABELLE_HOME/lib/classes/ext")" "$@"
+  -classpath "$(jvmpath "$ISABELLE_CLASSPATH")" "$@"
 
--- a/lib/Tools/scala	Wed Sep 11 23:32:47 2013 +0200
+++ b/lib/Tools/scala	Thu Sep 12 13:23:54 2013 +0200
@@ -6,6 +6,6 @@
 
 isabelle_admin_build jars || exit $?
 
-CLASSPATH="$(jvmpath "$CLASSPATH")"
 isabelle_scala scala -Dfile.encoding=UTF-8 \
-  "-Djava.ext.dirs=$(jvmpath "$ISABELLE_JAVA_EXT:$ISABELLE_HOME/lib/classes/ext")" "$@"
+  -classpath "$(jvmpath "$ISABELLE_CLASSPATH")" "$@"
+
--- a/lib/Tools/scalac	Wed Sep 11 23:32:47 2013 +0200
+++ b/lib/Tools/scalac	Thu Sep 12 13:23:54 2013 +0200
@@ -6,7 +6,6 @@
 
 isabelle_admin_build jars || exit $?
 
-CLASSPATH="$(jvmpath "$CLASSPATH")"
 isabelle_scala scalac -Dfile.encoding=UTF-8 \
-  "-Djava.ext.dirs=$(jvmpath "$ISABELLE_JAVA_EXT:$ISABELLE_HOME/lib/classes/ext")" "$@"
+  -classpath "$(jvmpath "$ISABELLE_CLASSPATH")" "$@"
 
--- a/lib/scripts/getsettings	Wed Sep 11 23:32:47 2013 +0200
+++ b/lib/scripts/getsettings	Thu Sep 12 13:23:54 2013 +0200
@@ -21,16 +21,20 @@
   ISABELLE_HOME_WINDOWS="$(cygpath -w "$(dirname "$ISABELLE_HOME")")\\$(basename "$ISABELLE_HOME")"
   ISABELLE_HOME="$(cygpath -u "$ISABELLE_HOME_WINDOWS")"
 
-  CLASSPATH="$(cygpath -i -u -p "$CLASSPATH")"
   function jvmpath() { cygpath -i -C UTF8 -w -p "$@"; }
   CYGWIN_ROOT="$(jvmpath "/")"
+
+  ISABELLE_CLASSPATH="$(cygpath -i -u -p "$CLASSPATH")"
+  unset CLASSPATH
 else
   if [ -z "$USER_HOME" ]; then
     USER_HOME="$HOME"
   fi
 
   function jvmpath() { echo "$@"; }
-  CLASSPATH="$CLASSPATH"
+
+  ISABELLE_CLASSPATH="$CLASSPATH"
+  unset CLASSPATH
 fi
 
 export ISABELLE_HOME
@@ -122,18 +126,18 @@
   function isabelle_admin_build () { return 0; }
 fi
 
-#CLASSPATH convenience
+#classpath
 function classpath ()
 {
   for X in "$@"
   do
-    if [ -z "$CLASSPATH" ]; then
-      CLASSPATH="$X"
+    if [ -z "$ISABELLE_CLASSPATH" ]; then
+      ISABELLE_CLASSPATH="$X"
     else
-      CLASSPATH="$X:$CLASSPATH"
+      ISABELLE_CLASSPATH="$X:$ISABELLE_CLASSPATH"
     fi
   done
-  export CLASSPATH
+  export ISABELLE_CLASSPATH
 }
 
 #arrays
--- a/src/Doc/System/Scala.thy	Wed Sep 11 23:32:47 2013 +0200
+++ b/src/Doc/System/Scala.thy	Thu Sep 12 13:23:54 2013 +0200
@@ -61,10 +61,10 @@
 
   This allows to compile further Scala modules, depending on existing
   Isabelle/Scala functionality.  The resulting class or jar files can
-  be added to the @{setting CLASSPATH} via the @{verbatim classpath}
-  Bash function that is provided by the Isabelle process environment.
-  Thus add-on components can register themselves in a modular manner,
-  see also \secref{sec:components}.
+  be added to the Java classpath the @{verbatim classpath} Bash
+  function that is provided by the Isabelle process environment.  Thus
+  add-on components can register themselves in a modular manner, see
+  also \secref{sec:components}.
 
   Note that jEdit (\secref{sec:tool-jedit}) has its own mechanisms for
   adding plugin components, which needs special attention since
--- a/src/Pure/build-jars	Wed Sep 11 23:32:47 2013 +0200
+++ b/src/Pure/build-jars	Thu Sep 12 13:23:54 2013 +0200
@@ -140,15 +140,6 @@
 [ "$#" -ne 0 ] && usage
 
 
-## dependencies
-
-declare -a JFREECHART_JARS=()
-for NAME in $JFREECHART_JAR_NAMES
-do
-  JFREECHART_JARS["${#JFREECHART_JARS[@]}"]="$JFREECHART_HOME/lib/$NAME"
-done
-
-
 ## build
 
 TARGET_DIR="$ISABELLE_HOME/lib/classes"
@@ -203,14 +194,10 @@
 
   SCALAC_OPTIONS="$ISABELLE_SCALA_BUILD_OPTIONS -d classes"
 
-  JFXRT="$ISABELLE_JDK_HOME/jre/lib/jfxrt.jar"
-
   (
-    for X in "$JFXRT" "${JFREECHART_JARS[@]}" "$XZ_JAVA_HOME/lib/xz.jar" classes
-    do
-      CLASSPATH="$CLASSPATH:$X"
-    done
-    CLASSPATH="$(jvmpath "$CLASSPATH")"
+    classpath "$ISABELLE_JDK_HOME/jre/lib/jfxrt.jar"
+    classpath classes
+    export CLASSPATH="$(jvmpath "$ISABELLE_CLASSPATH")"
 
     if [ "$TEST_PIDE" = true ]; then
       isabelle_scala scalac $SCALAC_OPTIONS "${PIDE_SOURCES[@]}" || \
--- a/src/Tools/Graphview/lib/Tools/graphview	Wed Sep 11 23:32:47 2013 +0200
+++ b/src/Tools/Graphview/lib/Tools/graphview	Thu Sep 12 13:23:54 2013 +0200
@@ -143,8 +143,8 @@
     function stty() { :; }
     export -f stty
 
-    CLASSPATH="$CLASSPATH:$PURE_JAR"
-    CLASSPATH="$(jvmpath "$CLASSPATH")"
+    classpath "$PURE_JAR"
+    export CLASSPATH="$(jvmpath "$ISABELLE_CLASSPATH")"
     exec "$SCALA_HOME/bin/scalac" $ISABELLE_SCALA_BUILD_OPTIONS -d classes "${SOURCES[@]}"
   ) || fail "Failed to compile sources"
 
--- a/src/Tools/jEdit/lib/Tools/jedit	Wed Sep 11 23:32:47 2013 +0200
+++ b/src/Tools/jEdit/lib/Tools/jedit	Thu Sep 12 13:23:54 2013 +0200
@@ -216,12 +216,6 @@
   "$ISABELLE_JEDIT_BUILD_HOME/contrib/jsr305-2.0.0.jar"
 )
 
-declare -a JFREECHART_JARS=()
-for NAME in $JFREECHART_JAR_NAMES
-do
-  JFREECHART_JARS["${#JFREECHART_JARS[@]}"]="$JFREECHART_HOME/lib/$NAME"
-done
-
 
 # target
 
@@ -238,8 +232,8 @@
   else
     if [ -n "$ISABELLE_JEDIT_BUILD_HOME" ]; then
       declare -a DEPS=(
-        "$JEDIT_JAR" "${JEDIT_JARS[@]}" "${JFREECHART_JARS[@]}" "$XZ_JAVA_HOME/lib/xz.jar"
-        "$PURE_JAR" "$GRAPHVIEW_JAR" "${SOURCES[@]}" "${RESOURCES[@]}"
+        "$JEDIT_JAR" "${JEDIT_JARS[@]}" "$PURE_JAR" "$GRAPHVIEW_JAR"
+        "${SOURCES[@]}" "${RESOURCES[@]}"
       )
     elif [ -e "$ISABELLE_HOME/Admin/build" ]; then
       declare -a DEPS=("$PURE_JAR" "$GRAPHVIEW_JAR" "${SOURCES[@]}" "${RESOURCES[@]}")
@@ -297,12 +291,11 @@
     function stty() { :; }
     export -f stty
 
-    for JAR in "$JEDIT_JAR" "${JEDIT_JARS[@]}" "${JFREECHART_JARS[@]}" \
-      "$XZ_JAVA_HOME/lib/xz.jar" "$PURE_JAR" "$GRAPHVIEW_JAR" "$SCALA_HOME/lib/scala-compiler.jar"
+    for JAR in "$JEDIT_JAR" "${JEDIT_JARS[@]}" "$PURE_JAR" "$GRAPHVIEW_JAR"
     do
-      CLASSPATH="$CLASSPATH:$JAR"
+      classpath "$JAR"
     done
-    CLASSPATH="$(jvmpath "$CLASSPATH")"
+    export CLASSPATH="$(jvmpath "$ISABELLE_CLASSPATH")"
     exec "$SCALA_HOME/bin/scalac" $ISABELLE_SCALA_BUILD_OPTIONS -d dist/classes "${SOURCES[@]}"
   ) || fail "Failed to compile sources"
 
@@ -317,9 +310,9 @@
 
 ## main
 
-if [ "$BUILD_ONLY" = false ]; then
+if [ "$BUILD_ONLY" = false ]
+then
   export JEDIT_SESSION_DIRS JEDIT_LOGIC JEDIT_PRINT_MODE JEDIT_BUILD_MODE
-
-  exec "$ISABELLE_TOOL" java "${JAVA_ARGS[@]}" \
-    -classpath "$(jvmpath "$JEDIT_HOME/dist/jedit.jar")" isabelle.Main "${ARGS[@]}"
+  classpath "$JEDIT_HOME/dist/jedit.jar"
+  exec "$ISABELLE_TOOL" java "${JAVA_ARGS[@]}" isabelle.Main "${ARGS[@]}"
 fi