aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--ChangeLog10
-rw-r--r--launcher/itweb-settings.in9
-rw-r--r--launcher/javaws.in13
-rw-r--r--plugin/icedteanp/IcedTeaNPPlugin.cc28
4 files changed, 50 insertions, 10 deletions
diff --git a/ChangeLog b/ChangeLog
index 07b9786..32cda58 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -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;
}