mirror of
https://github.com/mozilla/gecko-dev.git
synced 2024-10-12 12:55:46 +00:00
Bug 329522 - Use RegisterNatives for associating Java native methods with their implementation. r=bsmedberg
This commit is contained in:
parent
65584d92c2
commit
dee2288e08
@ -13,9 +13,8 @@
|
||||
*
|
||||
* The Original Code is Java XPCOM Bindings.
|
||||
*
|
||||
* The Initial Developer of the Original Code is
|
||||
* IBM Corporation.
|
||||
* Portions created by the Initial Developer are Copyright (C) 2005
|
||||
* The Initial Developer of the Original Code is IBM Corporation.
|
||||
* Portions created by the Initial Developer are Copyright (C) 2006
|
||||
* IBM Corporation. All Rights Reserved.
|
||||
*
|
||||
* Contributor(s):
|
||||
@ -40,11 +39,6 @@
|
||||
#include "nsXPCOMGlue.h"
|
||||
#include <stdlib.h>
|
||||
|
||||
#define GRE_NATIVE(func) Java_org_mozilla_xpcom_internal_GREImpl_##func
|
||||
#define XPCOM_NATIVE(func) Java_org_mozilla_xpcom_internal_XPCOMImpl_##func
|
||||
#define JAVAPROXY_NATIVE(func) \
|
||||
Java_org_mozilla_xpcom_internal_XPCOMJavaProxy_##func
|
||||
|
||||
|
||||
/***********************
|
||||
* JNI Load & Unload
|
||||
@ -66,59 +60,25 @@ JNI_OnUnload(JavaVM* vm, void* reserved)
|
||||
* JavaXPCOM JNI interfaces
|
||||
********************************/
|
||||
|
||||
typedef void (*JX_InitEmbeddingFunc) (JNIEnv*, jobject, jobject, jobject,
|
||||
jobject);
|
||||
typedef void (*JX_TermEmbeddingFunc) (JNIEnv*, jobject);
|
||||
typedef jobject (*JX_InitXPCOMFunc) (JNIEnv*, jobject, jobject, jobject);
|
||||
typedef void (*JX_ShutdownXPCOMFunc) (JNIEnv*, jobject, jobject);
|
||||
typedef jobject (*JX_NewLocalFileFunc) (JNIEnv*, jobject, jstring, jboolean);
|
||||
typedef jobject (*JX_GetComponentManagerFunc) (JNIEnv*, jobject);
|
||||
typedef jobject (*JX_GetComponentRegistrarFunc) (JNIEnv*, jobject);
|
||||
typedef jobject (*JX_GetServiceManagerFunc) (JNIEnv*, jobject);
|
||||
typedef jobject (*JX_CallXPCOMMethodFunc) (JNIEnv*, jclass, jobject, jstring,
|
||||
jobjectArray);
|
||||
typedef void (*JX_FinalizeProxyFunc) (JNIEnv*, jclass, jobject);
|
||||
typedef jboolean (*JX_IsSameXPCOMObjectFunc) (JNIEnv*, jclass, jobject,
|
||||
jobject);
|
||||
#define JXM_NATIVE(func) Java_org_mozilla_xpcom_internal_JavaXPCOMMethods_##func
|
||||
|
||||
JX_InitEmbeddingFunc InitEmbedding;
|
||||
JX_TermEmbeddingFunc TermEmbedding;
|
||||
JX_InitXPCOMFunc InitXPCOM;
|
||||
JX_ShutdownXPCOMFunc ShutdownXPCOM;
|
||||
JX_NewLocalFileFunc NewLocalFile;
|
||||
JX_GetComponentManagerFunc GetComponentManager;
|
||||
JX_GetComponentRegistrarFunc GetComponentRegistrar;
|
||||
JX_GetServiceManagerFunc GetServiceManager;
|
||||
JX_CallXPCOMMethodFunc CallXPCOMMethod;
|
||||
JX_FinalizeProxyFunc FinalizeProxy;
|
||||
JX_IsSameXPCOMObjectFunc IsSameXPCOMObject;
|
||||
|
||||
static nsDynamicFunctionLoad funcs[] = {
|
||||
{ "Java_org_mozilla_xpcom_internal_GREImpl_initEmbedding",
|
||||
(NSFuncPtr*) &InitEmbedding },
|
||||
{ "Java_org_mozilla_xpcom_internal_GREImpl_termEmbedding",
|
||||
(NSFuncPtr*) &TermEmbedding },
|
||||
{ "Java_org_mozilla_xpcom_internal_XPCOMImpl_initXPCOM",
|
||||
(NSFuncPtr*) &InitXPCOM },
|
||||
{ "Java_org_mozilla_xpcom_internal_XPCOMImpl_shutdownXPCOM",
|
||||
(NSFuncPtr*) &ShutdownXPCOM },
|
||||
{ "Java_org_mozilla_xpcom_internal_XPCOMImpl_newLocalFile",
|
||||
(NSFuncPtr*) &NewLocalFile },
|
||||
{ "Java_org_mozilla_xpcom_internal_XPCOMImpl_getComponentManager",
|
||||
(NSFuncPtr*) &GetComponentManager },
|
||||
{ "Java_org_mozilla_xpcom_internal_XPCOMImpl_getComponentRegistrar",
|
||||
(NSFuncPtr*) &GetComponentRegistrar },
|
||||
{ "Java_org_mozilla_xpcom_internal_XPCOMImpl_getServiceManager",
|
||||
(NSFuncPtr*) &GetServiceManager },
|
||||
{ "Java_org_mozilla_xpcom_internal_XPCOMJavaProxy_callXPCOMMethod",
|
||||
(NSFuncPtr*) &CallXPCOMMethod },
|
||||
{ "Java_org_mozilla_xpcom_internal_XPCOMJavaProxy_finalizeProxy",
|
||||
(NSFuncPtr*) &FinalizeProxy },
|
||||
{ "Java_org_mozilla_xpcom_internal_XPCOMJavaProxy_isSameXPCOMObject",
|
||||
(NSFuncPtr*) &IsSameXPCOMObject },
|
||||
{ nsnull, nsnull }
|
||||
enum {
|
||||
kFunc_InitEmbedding,
|
||||
kFunc_TermEmbedding,
|
||||
kFunc_InitXPCOM,
|
||||
kFunc_ShutdownXPCOM,
|
||||
kFunc_GetComponentManager,
|
||||
kFunc_GetComponentRegistrar,
|
||||
kFunc_GetServiceManager,
|
||||
kFunc_NewLocalFile,
|
||||
kFunc_CallXPCOMMethod,
|
||||
kFunc_FinalizeProxy,
|
||||
kFunc_IsSameXPCOMObject
|
||||
};
|
||||
|
||||
#define JX_NUM_FUNCS 11
|
||||
|
||||
|
||||
// Get path string from java.io.File object.
|
||||
jstring
|
||||
GetJavaFilePath(JNIEnv* env, jobject aFile)
|
||||
@ -135,11 +95,10 @@ GetJavaFilePath(JNIEnv* env, jobject aFile)
|
||||
return nsnull;
|
||||
}
|
||||
|
||||
|
||||
// Calls XPCOMGlueStartup using the given java.io.File object, and loads
|
||||
// the JavaXPCOM methods from the XUL shared library.
|
||||
nsresult
|
||||
Initialize(JNIEnv* env, jobject aXPCOMPath)
|
||||
LoadXULMethods(JNIEnv* env, jobject aXPCOMPath, void** aFunctions)
|
||||
{
|
||||
jstring pathString = GetJavaFilePath(env, aXPCOMPath);
|
||||
if (!pathString)
|
||||
@ -160,6 +119,32 @@ Initialize(JNIEnv* env, jobject aXPCOMPath)
|
||||
if (NS_FAILED(rv))
|
||||
return rv;
|
||||
|
||||
nsDynamicFunctionLoad funcs[] = {
|
||||
{ "Java_org_mozilla_xpcom_internal_GREImpl_initEmbedding",
|
||||
(NSFuncPtr*) &aFunctions[kFunc_InitEmbedding] },
|
||||
{ "Java_org_mozilla_xpcom_internal_GREImpl_termEmbedding",
|
||||
(NSFuncPtr*) &aFunctions[kFunc_TermEmbedding] },
|
||||
{ "Java_org_mozilla_xpcom_internal_XPCOMImpl_initXPCOM",
|
||||
(NSFuncPtr*) &aFunctions[kFunc_InitXPCOM] },
|
||||
{ "Java_org_mozilla_xpcom_internal_XPCOMImpl_shutdownXPCOM",
|
||||
(NSFuncPtr*) &aFunctions[kFunc_ShutdownXPCOM] },
|
||||
{ "Java_org_mozilla_xpcom_internal_XPCOMImpl_getComponentManager",
|
||||
(NSFuncPtr*) &aFunctions[kFunc_GetComponentManager] },
|
||||
{ "Java_org_mozilla_xpcom_internal_XPCOMImpl_getComponentRegistrar",
|
||||
(NSFuncPtr*) &aFunctions[kFunc_GetComponentRegistrar] },
|
||||
{ "Java_org_mozilla_xpcom_internal_XPCOMImpl_getServiceManager",
|
||||
(NSFuncPtr*) &aFunctions[kFunc_GetServiceManager] },
|
||||
{ "Java_org_mozilla_xpcom_internal_XPCOMImpl_newLocalFile",
|
||||
(NSFuncPtr*) &aFunctions[kFunc_NewLocalFile] },
|
||||
{ "Java_org_mozilla_xpcom_internal_XPCOMJavaProxy_callXPCOMMethod",
|
||||
(NSFuncPtr*) &aFunctions[kFunc_CallXPCOMMethod] },
|
||||
{ "Java_org_mozilla_xpcom_internal_XPCOMJavaProxy_finalizeProxy",
|
||||
(NSFuncPtr*) &aFunctions[kFunc_FinalizeProxy] },
|
||||
{ "Java_org_mozilla_xpcom_internal_XPCOMJavaProxy_isSameXPCOMObject",
|
||||
(NSFuncPtr*) &aFunctions[kFunc_IsSameXPCOMObject] },
|
||||
{ nsnull, nsnull }
|
||||
};
|
||||
|
||||
rv = XPCOMGlueLoadXULFunctions(funcs);
|
||||
if (NS_FAILED(rv))
|
||||
return rv;
|
||||
@ -207,91 +192,88 @@ ThrowException(JNIEnv* env, const nsresult aErrorCode, const char* aMessage)
|
||||
}
|
||||
}
|
||||
|
||||
extern "C" JNIEXPORT void JNICALL
|
||||
GRE_NATIVE(initEmbeddingNative) (JNIEnv* env, jobject aObject,
|
||||
jobject aLibXULDirectory,
|
||||
jobject aAppDirectory, jobject aAppDirProvider)
|
||||
// Register the JavaXPCOM native methods. This associates a native Java
|
||||
// method with its C implementation.
|
||||
nsresult
|
||||
RegisterNativeMethods(JNIEnv* env, void** aFunctions)
|
||||
{
|
||||
nsresult rv = Initialize(env, aLibXULDirectory);
|
||||
if (NS_FAILED(rv)) {
|
||||
ThrowException(env, rv, "Initialization failed in initEmbeddingNative");
|
||||
return;
|
||||
JNINativeMethod gre_methods[] = {
|
||||
{ "initEmbeddingNative",
|
||||
"(Ljava/io/File;Ljava/io/File;Lorg/mozilla/xpcom/IAppFileLocProvider;)V",
|
||||
(void*) aFunctions[kFunc_InitEmbedding] },
|
||||
{ "termEmbedding", "()V",
|
||||
(void*) aFunctions[kFunc_TermEmbedding] },
|
||||
};
|
||||
|
||||
JNINativeMethod xpcom_methods[] = {
|
||||
{ "initXPCOMNative",
|
||||
"(Ljava/io/File;Lorg/mozilla/xpcom/IAppFileLocProvider;)Lorg/mozilla/xpcom/nsIServiceManager;",
|
||||
(void*) aFunctions[kFunc_InitXPCOM] },
|
||||
{ "shutdownXPCOM", "(Lorg/mozilla/xpcom/nsIServiceManager;)V",
|
||||
(void*) aFunctions[kFunc_ShutdownXPCOM] },
|
||||
{ "getComponentManager", "()Lorg/mozilla/xpcom/nsIComponentManager;",
|
||||
(void*) aFunctions[kFunc_GetComponentManager] },
|
||||
{ "getComponentRegistrar", "()Lorg/mozilla/xpcom/nsIComponentRegistrar;",
|
||||
(void*) aFunctions[kFunc_GetComponentRegistrar] },
|
||||
{ "getServiceManager", "()Lorg/mozilla/xpcom/nsIServiceManager;",
|
||||
(void*) aFunctions[kFunc_GetServiceManager] },
|
||||
{ "newLocalFile", "(Ljava/lang/String;Z)Lorg/mozilla/xpcom/nsILocalFile;",
|
||||
(void*) aFunctions[kFunc_NewLocalFile] }
|
||||
};
|
||||
|
||||
JNINativeMethod proxy_methods[] = {
|
||||
{ "callXPCOMMethod",
|
||||
"(Ljava/lang/Object;Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/Object;",
|
||||
(void*) aFunctions[kFunc_CallXPCOMMethod] },
|
||||
{ "finalizeProxyNative", "(Ljava/lang/Object;)V",
|
||||
(void*) aFunctions[kFunc_FinalizeProxy] },
|
||||
{ "isSameXPCOMObject", "(Ljava/lang/Object;Ljava/lang/Object;)Z",
|
||||
(void*) aFunctions[kFunc_IsSameXPCOMObject] }
|
||||
};
|
||||
|
||||
jint rc = -1;
|
||||
jclass clazz = env->FindClass("org/mozilla/xpcom/internal/GREImpl");
|
||||
if (clazz) {
|
||||
rc = env->RegisterNatives(clazz, gre_methods,
|
||||
sizeof(gre_methods) / sizeof(gre_methods[0]));
|
||||
}
|
||||
NS_ENSURE_TRUE(rc == 0, NS_ERROR_FAILURE);
|
||||
|
||||
rc = -1;
|
||||
clazz = env->FindClass("org/mozilla/xpcom/internal/XPCOMImpl");
|
||||
if (clazz) {
|
||||
rc = env->RegisterNatives(clazz, xpcom_methods,
|
||||
sizeof(xpcom_methods) / sizeof(xpcom_methods[0]));
|
||||
}
|
||||
NS_ENSURE_TRUE(rc == 0, NS_ERROR_FAILURE);
|
||||
|
||||
rc = -1;
|
||||
clazz = env->FindClass("org/mozilla/xpcom/internal/XPCOMJavaProxy");
|
||||
if (clazz) {
|
||||
rc = env->RegisterNatives(clazz, proxy_methods,
|
||||
sizeof(proxy_methods) / sizeof(proxy_methods[0]));
|
||||
}
|
||||
NS_ENSURE_TRUE(rc == 0, NS_ERROR_FAILURE);
|
||||
|
||||
return NS_OK;
|
||||
}
|
||||
|
||||
// Load the JavaXPCOM methods from the XUL shared library, and registers them
|
||||
// as Java native methods.
|
||||
extern "C" JNIEXPORT void JNICALL
|
||||
JXM_NATIVE(registerJavaXPCOMMethodsNative) (JNIEnv *env, jclass that,
|
||||
jobject aXPCOMPath)
|
||||
{
|
||||
void* functions[JX_NUM_FUNCS];
|
||||
memset(functions, 0, JX_NUM_FUNCS * sizeof(void*));
|
||||
|
||||
nsresult rv = LoadXULMethods(env, aXPCOMPath, functions);
|
||||
if (NS_SUCCEEDED(rv)) {
|
||||
rv = RegisterNativeMethods(env, functions);
|
||||
}
|
||||
|
||||
InitEmbedding(env, aObject, aLibXULDirectory, aAppDirectory, aAppDirProvider);
|
||||
}
|
||||
|
||||
extern "C" JNIEXPORT void JNICALL
|
||||
GRE_NATIVE(termEmbedding) (JNIEnv *env, jobject aObject)
|
||||
{
|
||||
TermEmbedding(env, aObject);
|
||||
XPCOMGlueShutdown();
|
||||
}
|
||||
|
||||
extern "C" JNIEXPORT jobject JNICALL
|
||||
XPCOM_NATIVE(initXPCOMNative) (JNIEnv* env, jobject aObject,
|
||||
jobject aMozBinDirectory,
|
||||
jobject aAppFileLocProvider)
|
||||
{
|
||||
nsresult rv = Initialize(env, aMozBinDirectory);
|
||||
if (NS_FAILED(rv)) {
|
||||
ThrowException(env, rv, "Initialization failed in initXPCOMNative");
|
||||
return nsnull;
|
||||
ThrowException(env, rv, "Failed to register JavaXPCOM methods");
|
||||
}
|
||||
|
||||
return InitXPCOM(env, aObject, aMozBinDirectory, aAppFileLocProvider);
|
||||
}
|
||||
|
||||
extern "C" JNIEXPORT void JNICALL
|
||||
XPCOM_NATIVE(shutdownXPCOM) (JNIEnv *env, jobject aObject, jobject aServMgr)
|
||||
{
|
||||
ShutdownXPCOM(env, aObject, aServMgr);
|
||||
XPCOMGlueShutdown();
|
||||
}
|
||||
|
||||
extern "C" JNIEXPORT jobject JNICALL
|
||||
XPCOM_NATIVE(newLocalFile) (JNIEnv *env, jobject aObject, jstring aPath,
|
||||
jboolean aFollowLinks)
|
||||
{
|
||||
return NewLocalFile(env, aObject, aPath, aFollowLinks);
|
||||
}
|
||||
|
||||
extern "C" JNIEXPORT jobject JNICALL
|
||||
XPCOM_NATIVE(getComponentManager) (JNIEnv *env, jobject aObject)
|
||||
{
|
||||
return GetComponentManager(env, aObject);
|
||||
}
|
||||
|
||||
extern "C" JNIEXPORT jobject JNICALL
|
||||
XPCOM_NATIVE(getComponentRegistrar) (JNIEnv *env, jobject aObject)
|
||||
{
|
||||
return GetComponentRegistrar(env, aObject);
|
||||
}
|
||||
|
||||
extern "C" JNIEXPORT jobject JNICALL
|
||||
XPCOM_NATIVE(getServiceManager) (JNIEnv *env, jobject aObject)
|
||||
{
|
||||
return GetServiceManager(env, aObject);
|
||||
}
|
||||
|
||||
extern "C" JNIEXPORT jobject JNICALL
|
||||
JAVAPROXY_NATIVE(callXPCOMMethod) (JNIEnv *env, jclass that, jobject aJavaProxy,
|
||||
jstring aMethodName, jobjectArray aParams)
|
||||
{
|
||||
return CallXPCOMMethod(env, that, aJavaProxy, aMethodName, aParams);
|
||||
}
|
||||
|
||||
extern "C" JNIEXPORT void JNICALL
|
||||
JAVAPROXY_NATIVE(finalizeProxyNative) (JNIEnv *env, jclass that,
|
||||
jobject aJavaProxy)
|
||||
{
|
||||
FinalizeProxy(env, that, aJavaProxy);
|
||||
}
|
||||
|
||||
extern "C" JNIEXPORT jboolean JNICALL
|
||||
JAVAPROXY_NATIVE(isSameXPCOMObject) (JNIEnv *env, jclass that, jobject aProxy1,
|
||||
jobject aProxy2)
|
||||
{
|
||||
return IsSameXPCOMObject(env, that, aProxy1, aProxy2);
|
||||
}
|
||||
|
||||
|
@ -13,9 +13,8 @@
|
||||
*
|
||||
* The Original Code is Java XPCOM Bindings.
|
||||
*
|
||||
* The Initial Developer of the Original Code is
|
||||
* IBM Corporation.
|
||||
* Portions created by the Initial Developer are Copyright (C) 2004
|
||||
* The Initial Developer of the Original Code is IBM Corporation.
|
||||
* Portions created by the Initial Developer are Copyright (C) 2006
|
||||
* IBM Corporation. All Rights Reserved.
|
||||
*
|
||||
* Contributor(s):
|
||||
@ -41,17 +40,11 @@ import java.io.*;
|
||||
import org.mozilla.xpcom.*;
|
||||
|
||||
|
||||
public class GREImpl implements IGRE {
|
||||
public class GREImpl extends JavaXPCOMMethods implements IGRE {
|
||||
|
||||
public void initEmbedding(File aLibXULDirectory, File aAppDirectory,
|
||||
IAppFileLocProvider aAppDirProvider) {
|
||||
// load JNI library
|
||||
String path = "";
|
||||
if (aLibXULDirectory != null) {
|
||||
path = aLibXULDirectory + File.separator;
|
||||
}
|
||||
System.load(path + System.mapLibraryName("javaxpcomglue"));
|
||||
|
||||
IAppFileLocProvider aAppDirProvider) {
|
||||
registerJavaXPCOMMethods(aLibXULDirectory);
|
||||
initEmbeddingNative(aLibXULDirectory, aAppDirectory, aAppDirProvider);
|
||||
}
|
||||
|
||||
|
58
extensions/java/xpcom/src/JavaXPCOMMethods.java
Normal file
58
extensions/java/xpcom/src/JavaXPCOMMethods.java
Normal file
@ -0,0 +1,58 @@
|
||||
/* ***** BEGIN LICENSE BLOCK *****
|
||||
* Version: MPL 1.1/GPL 2.0/LGPL 2.1
|
||||
*
|
||||
* The contents of this file are subject to the Mozilla Public License Version
|
||||
* 1.1 (the "License"); you may not use this file except in compliance with
|
||||
* the License. You may obtain a copy of the License at
|
||||
* http://www.mozilla.org/MPL/
|
||||
*
|
||||
* Software distributed under the License is distributed on an "AS IS" basis,
|
||||
* WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
|
||||
* for the specific language governing rights and limitations under the
|
||||
* License.
|
||||
*
|
||||
* The Original Code is Java XPCOM Bindings.
|
||||
*
|
||||
* The Initial Developer of the Original Code is IBM Corporation.
|
||||
* Portions created by the Initial Developer are Copyright (C) 2006
|
||||
* IBM Corporation. All Rights Reserved.
|
||||
*
|
||||
* Contributor(s):
|
||||
* Javier Pedemonte (jhpedemonte@gmail.com)
|
||||
*
|
||||
* Alternatively, the contents of this file may be used under the terms of
|
||||
* either the GNU General Public License Version 2 or later (the "GPL"), or
|
||||
* the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
|
||||
* in which case the provisions of the GPL or the LGPL are applicable instead
|
||||
* of those above. If you wish to allow use of your version of this file only
|
||||
* under the terms of either the GPL or the LGPL, and not to allow others to
|
||||
* use your version of this file under the terms of the MPL, indicate your
|
||||
* decision by deleting the provisions above and replace them with the notice
|
||||
* and other provisions required by the GPL or the LGPL. If you do not delete
|
||||
* the provisions above, a recipient may use your version of this file under
|
||||
* the terms of any one of the MPL, the GPL or the LGPL.
|
||||
*
|
||||
* ***** END LICENSE BLOCK ***** */
|
||||
|
||||
package org.mozilla.xpcom.internal;
|
||||
|
||||
import java.io.File;
|
||||
|
||||
|
||||
public class JavaXPCOMMethods {
|
||||
|
||||
public static void registerJavaXPCOMMethods(File aLibXULDirectory) {
|
||||
// load JNI library
|
||||
String path = "";
|
||||
if (aLibXULDirectory != null) {
|
||||
path = aLibXULDirectory + File.separator;
|
||||
}
|
||||
System.load(path + System.mapLibraryName("javaxpcomglue"));
|
||||
|
||||
registerJavaXPCOMMethodsNative(aLibXULDirectory);
|
||||
}
|
||||
|
||||
public static native void
|
||||
registerJavaXPCOMMethodsNative(File aLibXULDirectory);
|
||||
}
|
||||
|
@ -13,9 +13,8 @@
|
||||
#
|
||||
# The Original Code is Java XPCOM Bindings.
|
||||
#
|
||||
# The Initial Developer of the Original Code is
|
||||
# IBM Corporation.
|
||||
# Portions created by the Initial Developer are Copyright (C) 2005
|
||||
# The Initial Developer of the Original Code is IBM Corporation.
|
||||
# Portions created by the Initial Developer are Copyright (C) 2006
|
||||
# IBM Corporation. All Rights Reserved.
|
||||
#
|
||||
# Contributor(s):
|
||||
@ -73,6 +72,7 @@ JAVA_SRCS = \
|
||||
$(srcdir)/../XPCOMJavaProxyBase.java \
|
||||
$(srcdir)/GREImpl.java \
|
||||
$(srcdir)/XPCOMImpl.java \
|
||||
$(srcdir)/JavaXPCOMMethods.java \
|
||||
$(NULL)
|
||||
|
||||
LOCAL_INCLUDES = -I$(JAVA_INCLUDE_PATH)
|
||||
@ -127,6 +127,6 @@ $(JARFILE_SRC): $(JARFILE)
|
||||
|
||||
#libs:: $(JARFILE)
|
||||
# $(INSTALL) $(IFLAGS1) $^ $(DIST)/bin
|
||||
jarfile:: $(JARFILE)
|
||||
jarfile:: $(JARFILE) $(JARFILE_SRC)
|
||||
$(INSTALL) $(IFLAGS1) $^ $(DIST)/bin
|
||||
|
||||
|
@ -13,9 +13,8 @@
|
||||
*
|
||||
* The Original Code is Java XPCOM Bindings.
|
||||
*
|
||||
* The Initial Developer of the Original Code is
|
||||
* IBM Corporation.
|
||||
* Portions created by the Initial Developer are Copyright (C) 2004
|
||||
* The Initial Developer of the Original Code is IBM Corporation.
|
||||
* Portions created by the Initial Developer are Copyright (C) 2006
|
||||
* IBM Corporation. All Rights Reserved.
|
||||
*
|
||||
* Contributor(s):
|
||||
@ -41,17 +40,11 @@ import java.io.*;
|
||||
import org.mozilla.xpcom.*;
|
||||
|
||||
|
||||
public class XPCOMImpl implements IXPCOM {
|
||||
public class XPCOMImpl extends JavaXPCOMMethods implements IXPCOM {
|
||||
|
||||
public nsIServiceManager initXPCOM(File aMozBinDirectory,
|
||||
IAppFileLocProvider aAppFileLocProvider) {
|
||||
// load JNI library
|
||||
String path = "";
|
||||
if (aMozBinDirectory != null) {
|
||||
path = aMozBinDirectory + File.separator;
|
||||
}
|
||||
System.load(path + System.mapLibraryName("javaxpcomglue"));
|
||||
|
||||
registerJavaXPCOMMethods(aMozBinDirectory);
|
||||
return initXPCOMNative(aMozBinDirectory, aAppFileLocProvider);
|
||||
}
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user