[rfc][icedtea-web] integrated setupable JVM to plugin
Adam Domurad
adomurad at redhat.com
Wed Apr 3 06:16:48 PDT 2013
On 04/02/2013 07:20 AM, Jiri Vanek wrote:
> This is last part of setup-able jvm. Now integrated to plugin by
> usage of IcedTeaParseProperties.
> Also adding fallback (same as is now in plugin) to launchers. To use
> defualt JRE if custom one is invalid.
>
>
> J.
> diff -r 39e2d8f2ba60 launcher/itweb-settings.in
> --- a/launcher/itweb-settings.in Tue Apr 02 09:45:25 2013 +0200
> +++ b/launcher/itweb-settings.in Tue Apr 02 12:52:22 2013 +0200
> @@ -7,13 +7,18 @@
> 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"
[nit] I'd start with a capital & end with a period
> + fi
> fi;
>
> ${JAVA} ${LAUNCHER_BOOTCLASSPATH} ${LAUNCHER_FLAGS} \
> diff -r 39e2d8f2ba60 launcher/javaws.in
> --- a/launcher/javaws.in Tue Apr 02 09:45:25 2013 +0200
> +++ b/launcher/javaws.in Tue Apr 02 12:52:22 2013 +0200
> @@ -1,4 +1,4 @@
> -#!/bin/bash
> +#!/bin/sh
>
> JAVA=@JAVA@
> LAUNCHER_BOOTCLASSPATH=@LAUNCHER_BOOTCLASSPATH@
> @@ -9,14 +9,19 @@
> 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"
[nit] I'd start with a capital & end with a period
> + fi
> fi;
>
> JAVA_ARGS=( )
> diff -r 39e2d8f2ba60 plugin/icedteanp/IcedTeaNPPlugin.cc
> --- a/plugin/icedteanp/IcedTeaNPPlugin.cc Tue Apr 02 09:45:25 2013
> +0200
> +++ b/plugin/icedteanp/IcedTeaNPPlugin.cc Tue Apr 02 12:52:22 2013
> +0200
> @@ -48,6 +48,9 @@
> #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 @@
> #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 @@
> #endif
>
> static std::string get_plugin_executable(){
> - return std::string (appletviewer_default_executable);
> -
> + std::string custom_jre = "";
[nit] = "" is redundant and may cause string allocation
> + 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 {
> + PLUGIN_DEBUG("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());
I strongly think this should be logged even if they aren't debugging the
plugin.
> + }
> + }
> + return std::string (appletviewer_default_executable);
[nit] you can drop the std::string call here.
> }
>
> static std::string get_plugin_rt_jar(){
> - return std::string (appletviewer_default_rtjar);
> -
> + std::string custom_jre = "";
[nit] = "" is redundant and may cause string allocation
> + 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 {
> + PLUGIN_DEBUG("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());
I strongly think this should be logged even if they aren't debugging the
plugin.
> + }
> + }
> + return std::string (appletviewer_default_rtjar);
[nit] you can drop the std::string call here.
>
> }
>
>
Otherwise looks fine to me.
Thanks so much for doing this!
-Adam
More information about the distro-pkg-dev
mailing list