in native/src/jnilib.c [51:93]
JNIEXPORT jint JNICALL JNI_OnLoad(JavaVM *vm, void *reserved)
{
JNIEnv *env;
void *ppe;
apr_version_t apv;
int apvn;
UNREFERENCED(reserved);
if ((*vm)->GetEnv(vm, &ppe, JNI_VERSION_1_4)) {
return JNI_ERR;
}
tcn_global_vm = vm;
env = (JNIEnv *)ppe;
/* Before doing anything else check if we have a valid
* APR version. We need version 1.7.0 as minimum.
*/
apr_version(&apv);
apvn = apv.major * 1000 + apv.minor * 100 + apv.patch;
if (apvn < 1700) {
tcn_Throw(env, "Unsupported APR version %s: this tcnative requires at least 1.7.0",
apr_version_string());
return JNI_ERR;
}
/* Initialize global java.lang.String class */
TCN_LOAD_CLASS(env, jString_class, "java/lang/String", JNI_ERR);
TCN_GET_METHOD(env, jString_class, jString_init,
"<init>", "([B)V", JNI_ERR);
TCN_GET_METHOD(env, jString_class, jString_getBytes,
"getBytes", "()[B", JNI_ERR);
#ifdef WIN32
{
char *ppid = getenv(TCN_PARENT_IDE);
if (ppid)
tcn_parent_pid = atoi(ppid);
}
#else
tcn_parent_pid = getppid();
#endif
return JNI_VERSION_1_4;
}