From cdca7de15f53597ceb4a9e9cedb47c6f047fcf10 Mon Sep 17 00:00:00 2001 From: Damian Minkov Date: Thu, 7 Nov 2013 10:07:58 +0200 Subject: [PATCH] Adds searching for available jvms installed on client machine respecting JVMVersion set and fallback to original launcher if nothing found. --- resources/install/build.xml | 5 + resources/install/macosx/JavaApplicationStub | Bin 64532 -> 47180 bytes .../install/macosx/JavaApplicationStub_Old | Bin 0 -> 64532 bytes src/native/macosx/launcher/launcher.m | 186 +++++++++++++----- 4 files changed, 144 insertions(+), 47 deletions(-) create mode 100755 resources/install/macosx/JavaApplicationStub_Old diff --git a/resources/install/build.xml b/resources/install/build.xml index a197388a4..61c307fd1 100644 --- a/resources/install/build.xml +++ b/resources/install/build.xml @@ -1244,6 +1244,11 @@ + + + diff --git a/resources/install/macosx/JavaApplicationStub b/resources/install/macosx/JavaApplicationStub index a744bf93d1bb968f48e59dcbe4505777faaa138d..dd4686fafc13846b175eececd25a4d3aa648bf55 100755 GIT binary patch literal 47180 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 GTcP3r literal 64532 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 diff --git a/resources/install/macosx/JavaApplicationStub_Old b/resources/install/macosx/JavaApplicationStub_Old new file mode 100755 index 0000000000000000000000000000000000000000..a744bf93d1bb968f48e59dcbe4505777faaa138d GIT binary patch literal 64532 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 literal 0 HcmV?d00001 diff --git a/src/native/macosx/launcher/launcher.m b/src/native/macosx/launcher/launcher.m index b0d106bef..baf756c31 100644 --- a/src/native/macosx/launcher/launcher.m +++ b/src/native/macosx/launcher/launcher.m @@ -11,7 +11,6 @@ #define JVM_JAVA_KEY "Java" #define JVM_WORKING_DIR_KEY "WorkingDirectory" -#define JVM_RUNTIME_KEY "JVMRuntime" #define JVM_MAIN_CLASS_NAME_KEY "MainClass" #define JVM_CLASSPATH_KEY "ClassPath" #define JVM_OPTIONS_KEY "VMOptions" @@ -22,8 +21,6 @@ #define APP_PACKAGE_PREFIX "$APP_PACKAGE" #define JAVA_ROOT_PREFIX "$JAVAROOT" -#define LIBJLI_DYLIB "/Library/Internet Plug-Ins/JavaAppletPlugin.plugin/Contents/Home/lib/jli/libjli.dylib" - typedef int (JNICALL *JLI_Launch_t)(int argc, char ** argv, int jargc, const char** jargv, int appclassc, const char** appclassv, @@ -71,6 +68,124 @@ int main(int argc, char *argv[]) } } +JLI_Launch_t getJLILaunch(NSString *parentPath) +{ + void *libJLI = NULL; + for (NSString *path + in @[@"Contents/Libraries/libjli.jnilib", + @"Contents/Home/jre/lib/jli/libjli.dylib", + @"Contents/Home/lib/jli/libjli.dylib"]) + { + const char *libjliPath = + [[parentPath stringByAppendingPathComponent:path] + fileSystemRepresentation]; + + libJLI = dlopen(libjliPath, RTLD_LAZY); + + if(libJLI != NULL) + break; + } + // if jre folder is deleted + if(libJLI == NULL) + return NULL; + + JLI_Launch_t jli_LaunchFxnPtr = NULL; + if (libJLI != NULL) + { + jli_LaunchFxnPtr = dlsym(libJLI, "JLI_Launch"); + } + + return jli_LaunchFxnPtr; +} + +BOOL satisfies(NSString *vmVersion, NSString *requiredVersion) +{ + if ([requiredVersion hasSuffix:@"+"]) + { + requiredVersion = + [requiredVersion substringToIndex:[requiredVersion length] - 1]; + return [requiredVersion compare:vmVersion options:NSNumericSearch] <= 0; + } + + if ([requiredVersion hasSuffix:@"*"]) + { + requiredVersion = + [requiredVersion substringToIndex:[requiredVersion length] - 1]; + } + + return [vmVersion hasPrefix:requiredVersion]; +} + +JLI_Launch_t getLauncher(NSDictionary *javaDictionary) +{ + // lets find all jre/jdk we can discover and use the preferred one + // will search for environment variable JITSI_JRE + NSString *required = + [javaDictionary valueForKey:@"JVMVersion"]; + if(required == NULL) + required = @"1.7*"; + + NSString *overridenJVM = + [[[NSProcessInfo processInfo] environment] objectForKey:@"JITSI_JRE"]; + + if (overridenJVM != NULL) + { + JLI_Launch_t jli_LaunchFxnPtr = getJLILaunch(overridenJVM); + + if(jli_LaunchFxnPtr != NULL) + return jli_LaunchFxnPtr; + } + + for (NSString *jvmPath + in @[[[NSBundle mainBundle] builtInPlugInsPath], + @"Library/Java/JavaVirtualMachines", + @"/Library/Java/JavaVirtualMachines", + @"/System/Library/Java/JavaVirtualMachines", + @"/Library/Internet Plug-Ins/JavaAppletPlugin.plugin"]) + { + NSError *error = nil; + NSArray *vms = + [[NSFileManager defaultManager] + contentsOfDirectoryAtPath:jvmPath error:&error]; + + if (vms != nil) + { + for (NSString *vmFolderName in vms) + { + NSString *bundlePath = + [jvmPath stringByAppendingPathComponent:vmFolderName]; + + if ([vmFolderName hasSuffix:@".jdk"] + || [vmFolderName hasSuffix:@".jre"]) + { + NSBundle *bundle = [NSBundle bundleWithPath:bundlePath]; + + NSDictionary *jdict = + [bundle.infoDictionary valueForKey:@"JavaVM"]; + + if(jdict == NULL) + continue; + + NSString *jvmVersion = [jdict valueForKey:@"JVMVersion"]; + + if (jvmVersion == NULL + || !satisfies(jvmVersion, required)) + continue; + } + + JLI_Launch_t jli_LaunchFxnPtr = getJLILaunch(bundlePath); + + if(jli_LaunchFxnPtr != NULL) + { + return jli_LaunchFxnPtr; + } + } + } + } + + return NULL; +} + void launchJitsi(int argMainCount, char *argMainValues[]) { NSBundle *mainBundle = [NSBundle mainBundle]; @@ -85,72 +200,50 @@ void launchJitsi(int argMainCount, char *argMainValues[]) [[javaDictionary objectForKey:@JVM_WORKING_DIR_KEY] stringByReplacingOccurrencesOfString:@APP_PACKAGE_PREFIX withString:[mainBundle bundlePath]]; - if (workingDirectory == nil) + if (workingDirectory == NULL) { [[NSException exceptionWithName:@LAUNCH_ERROR reason:@"Working directory not set" - userInfo:nil] raise]; + userInfo:NULL] raise]; } else { chdir([workingDirectory UTF8String]); } - // Locate the JLI_Launch() function - NSString *runtime = [javaDictionary objectForKey:@JVM_RUNTIME_KEY]; + JLI_Launch_t jli_LaunchFxnPtr = getLauncher(javaDictionary); - const char *libjliPath = NULL; - if (runtime != nil) - { - NSString *runtimePath = - [[[NSBundle mainBundle] builtInPlugInsPath] - stringByAppendingPathComponent:runtime]; - libjliPath = - [[runtimePath stringByAppendingPathComponent:@"Contents/Home/jre/lib/jli/libjli.dylib"] - fileSystemRepresentation]; - } else { - libjliPath = LIBJLI_DYLIB; - } - - void *libJLI = dlopen(libjliPath, RTLD_LAZY); + NSString *pname = [infoDictionary objectForKey:@"CFBundleName"]; - // if jre folder is deleted - if(libJLI == NULL) + if(jli_LaunchFxnPtr == NULL) { - libJLI = dlopen(LIBJLI_DYLIB, RTLD_LAZY); - } + NSString *oldLauncher = + [NSMutableString stringWithFormat:@"%@/Contents/MacOS/%@_Launcher", + [mainBundle bundlePath], pname]; - JLI_Launch_t jli_LaunchFxnPtr = NULL; - if (libJLI != NULL) - { - jli_LaunchFxnPtr = dlsym(libJLI, "JLI_Launch"); - } + execv([oldLauncher fileSystemRepresentation], argMainValues); - if (jli_LaunchFxnPtr == NULL) - { - [[NSException exceptionWithName:@LAUNCH_ERROR - reason:@"JRE load error" - userInfo:nil] raise]; + exit(-1); } NSString *mainClassName = [javaDictionary objectForKey:@JVM_MAIN_CLASS_NAME_KEY]; - if (mainClassName == nil) + if (mainClassName == NULL) { [[NSException exceptionWithName:@LAUNCH_ERROR reason:@"Missing main class name" - userInfo:nil] raise]; + userInfo:NULL] raise]; } - NSMutableString *classPath = - [NSMutableString stringWithFormat:@"-Djava.class.path=%@", workingDirectory]; + NSMutableString *classPath = [NSMutableString + stringWithFormat:@"-Djava.class.path=%@", workingDirectory]; NSArray *jvmcp = [javaDictionary objectForKey:@JVM_CLASSPATH_KEY]; - if (jvmcp == nil) + if (jvmcp == NULL) { [[NSException exceptionWithName:@LAUNCH_ERROR reason:@"Missing class path entry" - userInfo:nil] raise]; + userInfo:NULL] raise]; } else { @@ -177,7 +270,7 @@ void launchJitsi(int argMainCount, char *argMainValues[]) // Initialize the arguments to JLI_Launch() int argc = 2 + [sprops count] + 1 + appArgc; - if(options != nil) + if(options != NULL) argc++; char *argv[argc + appArgc]; @@ -186,7 +279,7 @@ void launchJitsi(int argMainCount, char *argMainValues[]) argv[i++] = argMainValues[0]; argv[i++] = strdup([classPath UTF8String]); - if(options != nil) + if(options != NULL) { NSString *op = [options stringByReplacingOccurrencesOfString:@JAVA_ROOT_PREFIX @@ -203,8 +296,9 @@ void launchJitsi(int argMainCount, char *argMainValues[]) [NSCharacterSet whitespaceAndNewlineCharacterSet]]; argv[i++] = strdup( [[NSMutableString stringWithFormat:@"-D%@=%@", sPropKey, - [sPropValue stringByReplacingOccurrencesOfString:@JAVA_ROOT_PREFIX - withString:workingDirectory]] + [sPropValue + stringByReplacingOccurrencesOfString:@JAVA_ROOT_PREFIX + withString:workingDirectory]] UTF8String]); } @@ -218,8 +312,6 @@ void launchJitsi(int argMainCount, char *argMainValues[]) } argsSupplied++; - NSString *pname = [infoDictionary objectForKey:@"CFBundleName"]; - // Invoke JLI_Launch() jli_LaunchFxnPtr(argc, argv, 0, NULL,