diff options
-rw-r--r-- | ChangeLog | 10 | ||||
-rw-r--r-- | launcher/itweb-settings.in | 9 | ||||
-rw-r--r-- | launcher/javaws.in | 13 | ||||
-rw-r--r-- | plugin/icedteanp/IcedTeaNPPlugin.cc | 28 |
4 files changed, 50 insertions, 10 deletions
@@ -1,3 +1,13 @@ +2013-04-04 Jiri Vanek <[email protected]> + + Plugin is now honoring the custom jre + * launcher/itweb-settings.in : + * launcher/javaws.in: + In case that custom jre do not exists, complains, and use default rather + * plugin/icedteanp/IcedTeaNPPlugin.cc: (get_plugin_executable) and + (get_plugin_rt_jar) now tries to return custom values before returning the + default one. + 2013-04-03 Jana Fabrikova <[email protected]> * /test/reproducers/simple/JavascriptFuncParam/testcases/JavascriptFuncParamTest.java: diff --git a/launcher/itweb-settings.in b/launcher/itweb-settings.in index 0b4e555..b719ec3 100644 --- a/launcher/itweb-settings.in +++ b/launcher/itweb-settings.in @@ -7,13 +7,18 @@ CLASSNAME=net.sourceforge.jnlp.controlpanel.CommandLine BINARY_LOCATION=@ITWEB_SETTINGS_BIN_LOCATION@ PROGRAM_NAME=itweb-settings -CUSTOM_JRE_REGEX="^deployment.jre.dir *= *" +PROPERTY_NAME=deployment.jre.dir +CUSTOM_JRE_REGEX="^$PROPERTY_NAME *= *" CUSTOM_JRE=`grep "$CUSTOM_JRE_REGEX" ~/.icedtea/deployment.properties 2>/dev/null | sed "s/$CUSTOM_JRE_REGEX//g"` if [ "x$CUSTOM_JRE" = "x" ] ; then CUSTOM_JRE=`grep "$CUSTOM_JRE_REGEX" /etc/.java/.deploy/deployment.properties 2>/dev/null | sed "s/$CUSTOM_JRE_REGEX//g"` fi; if [ "x$CUSTOM_JRE" != "x" ] ; then - JAVA=$CUSTOM_JRE/bin/java + if [ -d "$CUSTOM_JRE" -a -f "$CUSTOM_JRE/bin/java" ] ; then + JAVA=$CUSTOM_JRE/bin/java + else + echo "Your custom JRE $CUSTOM_JRE read from deployment.properties under key $PROPERTY_NAME as $CUSTOM_JRE is not valid. Using default ($JAVA) in attempt to start. Please fix this." + fi fi; ${JAVA} ${LAUNCHER_BOOTCLASSPATH} ${LAUNCHER_FLAGS} \ diff --git a/launcher/javaws.in b/launcher/javaws.in index 300672c..b7352c8 100644 --- a/launcher/javaws.in +++ b/launcher/javaws.in @@ -1,4 +1,4 @@ -#!/bin/bash +#!/bin/sh JAVA=@JAVA@ LAUNCHER_BOOTCLASSPATH=@LAUNCHER_BOOTCLASSPATH@ @@ -9,14 +9,19 @@ SPLASH_LOCATION=@JAVAWS_SPLASH_LOCATION@ PROGRAM_NAME=javaws CP=@JRE@/lib/rt.jar -CUSTOM_JRE_REGEX="^deployment.jre.dir *= *" +PROPERTY_NAME=deployment.jre.dir +CUSTOM_JRE_REGEX="^$PROPERTY_NAME *= *" CUSTOM_JRE=`grep "$CUSTOM_JRE_REGEX" ~/.icedtea/deployment.properties 2>/dev/null | sed "s/$CUSTOM_JRE_REGEX//g"` if [ "x$CUSTOM_JRE" = "x" ] ; then CUSTOM_JRE=`grep "$CUSTOM_JRE_REGEX" /etc/.java/.deploy/deployment.properties 2>/dev/null | sed "s/$CUSTOM_JRE_REGEX//g"` fi; if [ "x$CUSTOM_JRE" != "x" ] ; then - JAVA=$CUSTOM_JRE/bin/java - CP=$CUSTOM_JRE/lib/rt.jar + if [ -d "$CUSTOM_JRE" -a -f "$CUSTOM_JRE/bin/java" -a -f "$CUSTOM_JRE/lib/rt.jar" ] ; then + JAVA=$CUSTOM_JRE/bin/java + CP=$CUSTOM_JRE/lib/rt.jar + else + echo "Your custom JRE $CUSTOM_JRE read from deployment.properties under key $PROPERTY_NAME as $CUSTOM_JRE is not valid. Using default ($JAVA, $CP) in attempt to start. Please fix this." + fi fi; JAVA_ARGS=( ) diff --git a/plugin/icedteanp/IcedTeaNPPlugin.cc b/plugin/icedteanp/IcedTeaNPPlugin.cc index 22765c3..bf37b4e 100644 --- a/plugin/icedteanp/IcedTeaNPPlugin.cc +++ b/plugin/icedteanp/IcedTeaNPPlugin.cc @@ -48,6 +48,9 @@ exception statement from your version. */ #include <sys/types.h> #include <unistd.h> +//IcedTea-plugin includes +#include "IcedTeaPluginUtils.h" +#include "IcedTeaParseProperties.h" // Liveconnect extension #include "IcedTeaScriptablePluginObject.h" #include "IcedTeaNPPlugin.h" @@ -74,6 +77,7 @@ exception statement from your version. */ #include <nsServiceManagerUtils.h> #endif + // Error reporting macros. #define PLUGIN_ERROR(message) \ g_printerr ("%s:%d: thread %p: Error: %s\n", __FILE__, __LINE__, \ @@ -287,13 +291,29 @@ g_strcmp0(char *str1, char *str2) #endif static std::string get_plugin_executable(){ - return std::string (appletviewer_default_executable); - + std::string custom_jre; + bool custom_jre_defined = find_custom_jre(custom_jre); + if (custom_jre_defined) { + if (IcedTeaPluginUtilities::file_exists(custom_jre+"/bin/java")){ + return custom_jre+"/bin/java"; + } else { + fprintf(stderr, "Your custom jre (/bin/java check) %s is not valid. Please fix %s in your %s. In attempt to run using default one. \n", custom_jre.c_str(), custom_jre_key.c_str(), default_file_ITW_deploy_props_name.c_str()); + } + } + return appletviewer_default_executable; } static std::string get_plugin_rt_jar(){ - return std::string (appletviewer_default_rtjar); - + std::string custom_jre; + bool custom_jre_defined = find_custom_jre(custom_jre); + if (custom_jre_defined) { + if (IcedTeaPluginUtilities::file_exists(custom_jre+"/lib/rt.jar")){ + return custom_jre+"/lib/rt.jar"; + } else { + fprintf(stderr, "Your custom jre (/lib/rt.jar check) %s is not valid. Please fix %s in your %s. In attempt to run using default one. \n", custom_jre.c_str(), custom_jre_key.c_str(), default_file_ITW_deploy_props_name.c_str()); + } + } + return appletviewer_default_rtjar; } |