diff options
author | Ivo Hinkelmann <ihi@openoffice.org> | 2009-04-02 16:25:40 +0000 |
---|---|---|
committer | Ivo Hinkelmann <ihi@openoffice.org> | 2009-04-02 16:25:40 +0000 |
commit | 93350f1c4e7940c400b145403e58070a7d873026 (patch) | |
tree | e092953367bd5d4e5c0680ec89865612f4be8ca8 /jvmfwk | |
parent | 423409561c4cb620eeddbc2c5a42154adbd1bb6f (diff) |
CWS-TOOLING: integrate CWS jl119_DEV300
2009-03-13 08:14:58 +0100 jl r269453 : CWS-TOOLING: rebase CWS jl119 to branches/OOO310@269350 (milestone: OOO310:m5)
2009-03-10 16:01:33 +0100 jl r269280 : #i98990# apply patch by jbu: fixing the python script provider
2009-03-10 13:25:02 +0100 jl r269268 : #i93939#
2009-03-10 11:44:07 +0100 jl r269261 : #i93939#
2009-03-09 17:14:58 +0100 jl r269205 : #i93939# choose a different JRE when the selected one was uninstalled
2009-03-09 16:34:34 +0100 jl r269201 : #i93939# choose a different JRE when the selected one was uninstalled
2009-03-05 16:40:16 +0100 jl r268924 : #99618# Do not migrate java settings
2009-02-25 14:29:53 +0100 jl r268439 : #i99618# do not invalidate existing javasettings by using a new date in the update element
Diffstat (limited to 'jvmfwk')
-rw-r--r-- | jvmfwk/distributions/OpenOfficeorg/javavendors_linux.xml | 2 | ||||
-rw-r--r-- | jvmfwk/distributions/OpenOfficeorg/javavendors_macosx.xml | 2 | ||||
-rw-r--r-- | jvmfwk/distributions/OpenOfficeorg/javavendors_os2.xml | 2 | ||||
-rwxr-xr-x | jvmfwk/distributions/OpenOfficeorg/javavendors_unx.xml | 4 | ||||
-rw-r--r-- | jvmfwk/distributions/OpenOfficeorg/javavendors_wnt.xml | 2 | ||||
-rw-r--r-- | jvmfwk/inc/jvmfwk/framework.h | 21 | ||||
-rwxr-xr-x | jvmfwk/plugins/sunmajor/javaenvsetup/javaldx.cxx | 36 | ||||
-rw-r--r-- | jvmfwk/source/framework.cxx | 30 | ||||
-rw-r--r-- | jvmfwk/source/framework.map | 5 |
9 files changed, 91 insertions, 13 deletions
diff --git a/jvmfwk/distributions/OpenOfficeorg/javavendors_linux.xml b/jvmfwk/distributions/OpenOfficeorg/javavendors_linux.xml index f3bf44addc25..ed329e5788d3 100644 --- a/jvmfwk/distributions/OpenOfficeorg/javavendors_linux.xml +++ b/jvmfwk/distributions/OpenOfficeorg/javavendors_linux.xml @@ -3,7 +3,7 @@ <javaSelection xmlns="http://openoffice.org/2004/java/framework/1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> - <updated>2008-01-16</updated> + <updated>2004-01-30</updated> <vendorInfos> <vendor name="Sun Microsystems Inc."> diff --git a/jvmfwk/distributions/OpenOfficeorg/javavendors_macosx.xml b/jvmfwk/distributions/OpenOfficeorg/javavendors_macosx.xml index 1d7894a11025..215d26c0ea2a 100644 --- a/jvmfwk/distributions/OpenOfficeorg/javavendors_macosx.xml +++ b/jvmfwk/distributions/OpenOfficeorg/javavendors_macosx.xml @@ -3,7 +3,7 @@ <javaSelection xmlns="http://openoffice.org/2004/java/framework/1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> - <updated>2008-01-16</updated> + <updated>2006-05-02</updated> <vendorInfos> <vendor name="Apple Computer, Inc."> diff --git a/jvmfwk/distributions/OpenOfficeorg/javavendors_os2.xml b/jvmfwk/distributions/OpenOfficeorg/javavendors_os2.xml index 5ba2eaf76251..372254d4ee71 100644 --- a/jvmfwk/distributions/OpenOfficeorg/javavendors_os2.xml +++ b/jvmfwk/distributions/OpenOfficeorg/javavendors_os2.xml @@ -3,7 +3,7 @@ <javaSelection xmlns="http://openoffice.org/2004/java/framework/1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> - <updated>2008-01-16</updated> + <updated>2004-01-30</updated> <vendorInfos> <vendor name="Sun Microsystems Inc."> diff --git a/jvmfwk/distributions/OpenOfficeorg/javavendors_unx.xml b/jvmfwk/distributions/OpenOfficeorg/javavendors_unx.xml index b9b8296edf8f..3b1f53fc4fce 100755 --- a/jvmfwk/distributions/OpenOfficeorg/javavendors_unx.xml +++ b/jvmfwk/distributions/OpenOfficeorg/javavendors_unx.xml @@ -3,7 +3,7 @@ <javaSelection xmlns="http://openoffice.org/2004/java/framework/1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> - <updated>2008-01-16</updated> + <updated>2004-01-30</updated> <vendorInfos> <vendor name="Sun Microsystems Inc."> @@ -14,4 +14,4 @@ <plugins> <library vendor="Sun Microsystems Inc.">vnd.sun.star.expand:$URE_INTERNAL_LIB_DIR/sunjavaplugin.so</library> </plugins> -</javaSelection>
\ No newline at end of file +</javaSelection> diff --git a/jvmfwk/distributions/OpenOfficeorg/javavendors_wnt.xml b/jvmfwk/distributions/OpenOfficeorg/javavendors_wnt.xml index 47a5800659ca..a72216d66646 100644 --- a/jvmfwk/distributions/OpenOfficeorg/javavendors_wnt.xml +++ b/jvmfwk/distributions/OpenOfficeorg/javavendors_wnt.xml @@ -3,7 +3,7 @@ <javaSelection xmlns="http://openoffice.org/2004/java/framework/1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> - <updated>2008-01-16</updated> + <updated>2004-01-30</updated> <vendorInfos> <vendor name="Sun Microsystems Inc."> diff --git a/jvmfwk/inc/jvmfwk/framework.h b/jvmfwk/inc/jvmfwk/framework.h index 49516f554e21..4082adba0a5f 100644 --- a/jvmfwk/inc/jvmfwk/framework.h +++ b/jvmfwk/inc/jvmfwk/framework.h @@ -815,6 +815,27 @@ javaFrameworkError SAL_CALL jfw_setJRELocations( javaFrameworkError SAL_CALL jfw_getJRELocations( rtl_uString *** parLocations, sal_Int32 * pSize); + +/** checks if the installation of the jre still exists. + + This function checks if the JRE described by pInfo still + exists. The check must be very quick because it is called by javaldx + (Linux, Solaris) at start up. + + @param pInfo + [in] the JavaInfo object with information about the JRE. + @param pp_exist + [out] the parameter is set to either sal_True or sal_False. The value is + only valid if the function returns JFW_E_NONE. + + @return + JFW_E_NONE the function ran successfully.</br> + JFW_E_ERROR an error occurred during execution.</br> + JFW_E_INVALID_ARG pInfo contains invalid data</br> + */ +javaFrameworkError SAL_CALL jfw_existJRE(const JavaInfo *pInfo, sal_Bool *exist); + + /** locks this API so that it cannot be used by other threads. <p>If a different thread called this function before then the diff --git a/jvmfwk/plugins/sunmajor/javaenvsetup/javaldx.cxx b/jvmfwk/plugins/sunmajor/javaenvsetup/javaldx.cxx index 762497b8d8bc..1a6f99f65ba4 100755 --- a/jvmfwk/plugins/sunmajor/javaenvsetup/javaldx.cxx +++ b/jvmfwk/plugins/sunmajor/javaenvsetup/javaldx.cxx @@ -46,6 +46,7 @@ using namespace rtl; static sal_Bool hasOption(char const * szOption, int argc, char** argv); static rtl::OString getLD_LIBRARY_PATH(const rtl::ByteSequence & vendorData); +static bool findAndSelect(JavaInfo**); //static sal_Bool printPaths(const OUString& sPathFile); #define HELP_TEXT \ @@ -95,15 +96,22 @@ SAL_IMPLEMENT_MAIN_WITH_ARGS(argc, argv) if (pInfo == NULL) { - errcode = jfw_findAndSelectJRE( & pInfo); - if (errcode == JFW_E_NO_JAVA_FOUND) + if (false == findAndSelect(&pInfo)) + return -1; + } + else + { + //check if the JRE was not uninstalled + sal_Bool bExist = sal_False; + errcode = jfw_existJRE(pInfo, &bExist); + if (errcode == JFW_E_NONE) { - fprintf(stderr,"javaldx: Could not find a Java Runtime Environment! \n"); - return 0; + if (false == findAndSelect(&pInfo)) + return -1; } - else if (errcode != JFW_E_NONE && errcode != JFW_E_DIRECT_MODE) + else { - fprintf(stderr,"javaldx failed!\n"); + fprintf(stderr, "javaldx: Could not determine if JRE still exist\n"); return -1; } } @@ -162,7 +170,21 @@ static sal_Bool hasOption(char const * szOption, int argc, char** argv) return retVal; } - +static bool findAndSelect(JavaInfo ** ppInfo) +{ + javaFrameworkError errcode = jfw_findAndSelectJRE(ppInfo); + if (errcode == JFW_E_NO_JAVA_FOUND) + { + fprintf(stderr,"javaldx: Could not find a Java Runtime Environment! \n"); + return false; + } + else if (errcode != JFW_E_NONE && errcode != JFW_E_DIRECT_MODE) + { + fprintf(stderr,"javaldx failed!\n"); + return false; + } + return true; +} diff --git a/jvmfwk/source/framework.cxx b/jvmfwk/source/framework.cxx index 75a20ac98ff3..933e5e10ea09 100644 --- a/jvmfwk/source/framework.cxx +++ b/jvmfwk/source/framework.cxx @@ -34,6 +34,7 @@ #include "rtl/ustring.hxx" #include "rtl/bootstrap.hxx" #include "osl/thread.hxx" +#include "osl/file.hxx" #include "osl/module.hxx" #include "jvmfwk/framework.h" #include "jvmfwk/vendorplugin.h" @@ -1113,6 +1114,35 @@ javaFrameworkError SAL_CALL jfw_getJRELocations( return errcode; } + +javaFrameworkError jfw_existJRE(const JavaInfo *pInfo, sal_Bool *exist) +{ + javaFrameworkError ret = JFW_E_NONE; + if (!pInfo || !exist) + return JFW_E_INVALID_ARG; + ::rtl::OUString sLocation(pInfo->sLocation); + + if (sLocation.getLength() == 0) + return JFW_E_INVALID_ARG; + + ::osl::DirectoryItem item; + ::osl::File::RC rc_item = ::osl::DirectoryItem::get(sLocation, item); + if (::osl::File::E_None == rc_item) + { + *exist = sal_True; + } + else if (::osl::File::E_NOENT == rc_item) + { + *exist = sal_False; + } + else + { + ret = JFW_E_ERROR; + } + + return ret; +} + void SAL_CALL jfw_lock() { jfw::FwkMutex::get().acquire(); diff --git a/jvmfwk/source/framework.map b/jvmfwk/source/framework.map index 2ce5d22b61dc..c95cc83aa826 100644 --- a/jvmfwk/source/framework.map +++ b/jvmfwk/source/framework.map @@ -24,3 +24,8 @@ UDK_3_0_0 { local: *; }; + +UDK_3.1 { # OOo 3.1.0 + global: + jfw_existJRE; +} UDK_3_0_0; |