diff --git a/mozilla/java/dom/README b/mozilla/java/dom/README index 6be53bccdf3..cadda90f560 100644 --- a/mozilla/java/dom/README +++ b/mozilla/java/dom/README @@ -5,7 +5,7 @@ A Java component obtains a org.w3c.dom.Document by registering for Document load notifications. The Document is passed in along with the notifications. The preferred way for a Java component to register for Document load notifications is to register via the DOMAccessor -class. However until OJI is used to obtain JNIEnv one has to apply +class. However if OJI is not use to obtain JNIEnv one has to apply two patches webshell/src/nsWebShell.cpp.patch @@ -18,6 +18,10 @@ Note: stand for TestDocLoadListener. See the section on Building for instructions on how to apply the patches. +To enable OJI usage on win nt add -DJAVA_DOM_OJI_ENABLE to the +DEFINES variable in makefile.win and also set an environment +variable JAVA_DOM_OJI_ENABLE=true + Makefiles --------- diff --git a/mozilla/java/dom/makefile.win b/mozilla/java/dom/makefile.win index be71cd2ae67..ef56417678e 100755 --- a/mozilla/java/dom/makefile.win +++ b/mozilla/java/dom/makefile.win @@ -22,15 +22,13 @@ DEPTH=..\.. IGNORE_MANIFEST=1 -#DEFINES=-D_IMPL_NS_WEB -DWIN32_LEAN_AND_MEAN -DEFINES=-D_IMPL_NS_WEB -DWIN32_LEAN_AND_MEAN -DJAVA_DOM_OJI_DISABLE -JAVA_DOM_OJI_DISABLE=true +DEFINES=-D_IMPL_NS_WEB -DWIN32_LEAN_AND_MEAN MODULE=javadom IS_COMPONENT=1 LIBRARY_NAME=libjavadom CPPSRCS= \ -!ifndef JAVA_DOM_OJI_DISABLE +!ifdef JAVA_DOM_OJI_ENABLE JavaDOMSecurityContext.cpp \ !endif nsJavaDOMImpl.cpp \ @@ -38,7 +36,7 @@ CPPSRCS= \ $(NULL) CPP_OBJS= \ -!ifndef JAVA_DOM_OJI_DISABLE +!ifdef JAVA_DOM_OJI_ENABLE .\$(OBJDIR)\JavaDOMSecurityContext.obj \ !endif .\$(OBJDIR)\nsJavaDOMImpl.obj \ @@ -48,7 +46,7 @@ CPP_OBJS= \ EXPORTS = \ nsIJavaDOM.h -!ifdef JAVA_DOM_OJI_DISABLE +!ifndef JAVA_DOM_OJI_ENABLE LINCS= \ -I$(JAVAHOME)\include \ -I$(JAVAHOME)\include\win32 @@ -64,7 +62,7 @@ LCFLAGS = \ $(NULL) LLIBS= \ -!ifndef JAVA_DOM_OJI_DISABLE +!ifdef JAVA_DOM_OJI_ENABLE $(DIST)\lib\oji.lib \ !else $(JAVAHOME)\lib\jvm.lib \ diff --git a/mozilla/java/dom/nsJavaDOMImpl.cpp b/mozilla/java/dom/nsJavaDOMImpl.cpp index e73f16c460b..ada3985591b 100755 --- a/mozilla/java/dom/nsJavaDOMImpl.cpp +++ b/mozilla/java/dom/nsJavaDOMImpl.cpp @@ -30,7 +30,7 @@ #include "nsIWebShell.h" #include "nsJavaDOMImpl.h" -#ifndef JAVA_DOM_OJI_DISABLE +#ifdef JAVA_DOM_OJI_ENABLE #include "ProxyJNI.h" #include "nsIServiceManager.h" #endif @@ -48,7 +48,7 @@ static char* strip_whitespace(const PRUnichar* input, int length); static const char* describe_type(int type); #endif -#ifndef JAVA_DOM_OJI_DISABLE +#ifdef JAVA_DOM_OJI_ENABLE static NS_DEFINE_CID(kJVMManagerCID,NS_JVMMANAGER_CID); #endif static NS_DEFINE_IID(kIWebShellIID, NS_IWEB_SHELL_IID); @@ -87,7 +87,7 @@ NS_IMETHODIMP nsJavaDOMImpl::QueryInterface(REFNSIID aIID, void** aInstance) return NS_NOINTERFACE; } -#ifndef JAVA_DOM_OJI_DISABLE +#ifdef JAVA_DOM_OJI_ENABLE nsJVMManager* nsJavaDOMImpl::jvmManager = NULL; JavaDOMSecurityContext* nsJavaDOMImpl::securityContext = NULL; #else @@ -470,7 +470,7 @@ NS_IMETHODIMP nsJavaDOMImpl::HandleUnknownContentType(nsIDocumentLoader* loader, JNIEnv* nsJavaDOMImpl::GetJNIEnv() { JNIEnv* env; -#ifndef JAVA_DOM_OJI_DISABLE +#ifdef JAVA_DOM_OJI_ENABLE nsresult result; if (!jvmManager) { NS_WITH_SERVICE(nsIJVMManager, _jvmManager, kJVMManagerCID, &result); @@ -487,20 +487,21 @@ JNIEnv* nsJavaDOMImpl::GetJNIEnv() { // } // SetSecurityContext(env,securityContext); SetSecurityContext(env, new JavaDOMSecurityContext()); -#else /* JAVA_DOM_OJI_DISABLE */ +#else /* JAVA_DOM_OJI_ENABLE */ if (!jvm) { StartJVM(); } #ifdef XP_PC - jvm->AttachCurrentThread((void**)&env,NULL); + jvm->AttachCurrentThread(&env,NULL); + // jvm->AttachCurrentThread((void**)&env,NULL); #else jvm->AttachCurrentThread(&env,NULL); #endif -#endif /* JAVA_DOM_OJI_DISABLE */ +#endif /* JAVA_DOM_OJI_ENABLE */ return env; } -#ifdef JAVA_DOM_OJI_DISABLE +#ifndef JAVA_DOM_OJI_ENABLE void nsJavaDOMImpl::StartJVM(void) { JNIEnv *env = NULL; JDK1_1InitArgs vm_args; @@ -527,7 +528,8 @@ void nsJavaDOMImpl::StartJVM(void) { printf("classpath is \"%s\"\n", vm_args.classpath); #endif // DEBUG #ifdef XP_PC - jint rv = JNI_CreateJavaVM(&jvm, (void**)&env, &vm_args); + jint rv = JNI_CreateJavaVM(&jvm, &env, &vm_args); + // jint rv = JNI_CreateJavaVM(&jvm, (void**)&env, &vm_args); #else jint rv = JNI_CreateJavaVM(&jvm, &env, &vm_args); #endif @@ -538,7 +540,7 @@ void nsJavaDOMImpl::StartJVM(void) { } delete[] p; } -#endif /* JAVA_DOM_OJI_DISABLE */ +#endif /* JAVA_DOM_OJI_ENABLE */ #if defined(DEBUG) diff --git a/mozilla/java/dom/nsJavaDOMImpl.h b/mozilla/java/dom/nsJavaDOMImpl.h index 8c56fcdb76c..be49f1d42cf 100644 --- a/mozilla/java/dom/nsJavaDOMImpl.h +++ b/mozilla/java/dom/nsJavaDOMImpl.h @@ -3,10 +3,10 @@ #include "jni.h" #include "nsIJavaDOM.h" -#ifndef JAVA_DOM_OJI_DISABLE +#ifdef JAVA_DOM_OJI_ENABLE #include "nsJVMManager.h" #include "JavaDOMSecurityContext.h" -#endif /* JAVA_DOM_OJI_DISABLE */ +#endif class nsIURI; class nsIDOMDocument; @@ -50,7 +50,7 @@ class nsJavaDOMImpl : public nsIJavaDOM { const char *aCommand); private: -#ifndef JAVA_DOM_OJI_DISABLE +#ifdef JAVA_DOM_OJI_ENABLE static nsJVMManager* jvmManager; static JavaDOMSecurityContext* securityContext; #else