зеркало из https://github.com/mozilla/gecko-dev.git
Родитель
ac5e8e044c
Коммит
53dda829f1
|
@ -59,6 +59,11 @@ EXPORTS = \
|
|||
|
||||
CXXFLAGS += -I../public -I../src
|
||||
|
||||
DSO_LDOPTS += \
|
||||
$(XPCOM_LIBS) \
|
||||
$(NULL)
|
||||
|
||||
|
||||
include $(topsrcdir)/config/rules.mk
|
||||
|
||||
|
||||
|
|
|
@ -27,6 +27,6 @@ srcdir = @srcdir@
|
|||
|
||||
include $(DEPTH)/config/autoconf.mk
|
||||
|
||||
DIRS= xpidl src loader import classes components test
|
||||
DIRS= xpidl src jni loader import classes components test
|
||||
|
||||
include $(topsrcdir)/config/rules.mk
|
||||
|
|
|
@ -23,18 +23,24 @@
|
|||
package org.mozilla.xpcom;
|
||||
|
||||
public class Components {
|
||||
public static nsIComponentManager getComponentManager() {
|
||||
return componentMgr;
|
||||
}
|
||||
public static void setComponentManager(nsIComponentManager mgr) {
|
||||
componentMgr = mgr;
|
||||
}
|
||||
public static nsIXPIDLServiceManager getServiceManager() {
|
||||
return serviceMgr;
|
||||
}
|
||||
public static void setServiceManager(nsIXPIDLServiceManager mgr) {
|
||||
serviceMgr = mgr;
|
||||
}
|
||||
private static nsIComponentManager componentMgr = null;
|
||||
private static nsIXPIDLServiceManager serviceMgr = null;
|
||||
public static nsIComponentManager getComponentManager() {
|
||||
return componentMgr;
|
||||
}
|
||||
public static void setComponentManager(nsIComponentManager mgr) {
|
||||
componentMgr = mgr;
|
||||
}
|
||||
public static nsIXPIDLServiceManager getServiceManager() {
|
||||
return serviceMgr;
|
||||
}
|
||||
public static void setServiceManager(nsIXPIDLServiceManager mgr) {
|
||||
serviceMgr = mgr;
|
||||
}
|
||||
public static native void initXPCOM();
|
||||
private static nsIComponentManager componentMgr = null;
|
||||
private static nsIXPIDLServiceManager serviceMgr = null;
|
||||
static {
|
||||
System.loadLibrary("blackconnectjni");
|
||||
}
|
||||
|
||||
};
|
||||
|
||||
|
|
|
@ -81,12 +81,3 @@ public class Utilities {
|
|||
System.loadLibrary("bcjavastubs");
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
|
|
@ -42,6 +42,10 @@ include ../config/rules.mk
|
|||
COMPONENT=bcBlackConnectInit
|
||||
CLASSES=bcIBlackConnectInit.class bcBlackConnectInit.class
|
||||
|
||||
DSO_LDOPTS += \
|
||||
$(XPCOM_LIBS) \
|
||||
$(NULL)
|
||||
|
||||
$(COMPONENT).jar.comp: manifest $(CLASSES)
|
||||
$(JDKHOME)/bin/jar cvfm $(COMPONENT).jar.comp manifest *.class
|
||||
.java.class:
|
||||
|
|
|
@ -0,0 +1,53 @@
|
|||
#!gmake
|
||||
#
|
||||
# The contents of this file are subject to the Netscape 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/NPL/
|
||||
#
|
||||
# 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 mozilla.org code.
|
||||
#
|
||||
# The Initial Developer of the Original Code is Netscape
|
||||
# Communications Corporation. Portions created by Netscape are
|
||||
# Copyright (C) 1998 Netscape Communications Corporation. All
|
||||
# Rights Reserved.
|
||||
#
|
||||
# Contributor(s):
|
||||
# Igor Kushnirskiy <idk@eng.sun.com>
|
||||
#
|
||||
|
||||
|
||||
DEPTH =../../../..
|
||||
topsrcdir = @top_srcdir@
|
||||
srcdir = @srcdir@
|
||||
VPATH = @srcdir@
|
||||
|
||||
include $(DEPTH)/config/autoconf.mk
|
||||
include $(topsrcdir)/config/config.mk
|
||||
|
||||
LIBRARY_NAME = blackconnectjni
|
||||
|
||||
CPPSRCS = \
|
||||
org_mozilla_xpcom_Components.cpp \
|
||||
$(NULL)
|
||||
|
||||
DSO_LDOPTS += \
|
||||
$(XPCOM_LIBS) \
|
||||
$(NULL)
|
||||
|
||||
JDKINCLUDE= -I$(JDKHOME)/include
|
||||
ifeq ($(OS_ARCH), Linux)
|
||||
JDKINCLUDE += -I$(JDKHOME)/include/linux
|
||||
endif
|
||||
ifeq ($(OS_ARCH), SunOS)
|
||||
JDKINCLUDE += -I$(JDKHOME)/include/solaris
|
||||
endif
|
||||
|
||||
CXXFLAGS := $(JDKINCLUDE) $(CXXFLAGS)
|
||||
include $(topsrcdir)/config/rules.mk
|
||||
CCC += $(CXXFLAGS) # I want to have $(JDKHOME)/include before $(DIST) include
|
|
@ -0,0 +1,62 @@
|
|||
/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*-
|
||||
* 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 mozilla.org code.
|
||||
*
|
||||
* The Initial Developer of the Original Code is Sun Microsystems,
|
||||
* Inc. Portions created by Sun are
|
||||
* Copyright (C) 1999 Sun Microsystems, Inc. All
|
||||
* Rights Reserved.
|
||||
*
|
||||
* Contributor(s):
|
||||
* Igor Kushnirskiy <idk@eng.sun.com>
|
||||
*/
|
||||
|
||||
#include "org_mozilla_xpcom_Components.h"
|
||||
#include "nsIServiceManager.h"
|
||||
#include "nsIComponentManager.h"
|
||||
|
||||
/*
|
||||
* Class: org_mozilla_xpcom_Components
|
||||
* Method: initXPCOM
|
||||
* Signature: ()V
|
||||
*/
|
||||
JNIEXPORT void JNICALL Java_org_mozilla_xpcom_Components_initXPCOM
|
||||
(JNIEnv *, jclass) {
|
||||
static int initCounter = 0;
|
||||
/*
|
||||
mozilla/embedding/base/nsEmbedAPI.cpp NS_InitEmbedding was used as
|
||||
prototype
|
||||
*/
|
||||
initCounter++;
|
||||
if (initCounter > 1) {
|
||||
return;
|
||||
}
|
||||
nsresult rv;
|
||||
nsIServiceManager* servMgr;
|
||||
rv = NS_InitXPCOM(&servMgr, NULL);
|
||||
if (NS_FAILED(rv)) {
|
||||
printf("--Components::initXPCOM failed \n");
|
||||
return;
|
||||
}
|
||||
rv = nsComponentManager::AutoRegister(nsIComponentManager::NS_Startup,
|
||||
NULL /* default */);
|
||||
if (NS_FAILED(rv)) {
|
||||
printf("--Components::initXPCOM failed \n");
|
||||
return;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
|
@ -0,0 +1,23 @@
|
|||
/* DO NOT EDIT THIS FILE - it is machine generated */
|
||||
#include <jni.h>
|
||||
/* Header for class org_mozilla_xpcom_Components */
|
||||
|
||||
#ifndef _Included_org_mozilla_xpcom_Components
|
||||
#define _Included_org_mozilla_xpcom_Components
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
/* Inaccessible static: componentMgr */
|
||||
/* Inaccessible static: serviceMgr */
|
||||
/*
|
||||
* Class: org_mozilla_xpcom_Components
|
||||
* Method: initXPCOM
|
||||
* Signature: ()V
|
||||
*/
|
||||
JNIEXPORT void JNICALL Java_org_mozilla_xpcom_Components_initXPCOM
|
||||
(JNIEnv *, jclass);
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
#endif
|
|
@ -39,6 +39,10 @@ CPPSRCS = \
|
|||
bcJavaComponentFactory.cpp \
|
||||
$(NULL)
|
||||
|
||||
DSO_LDOPTS += \
|
||||
$(XPCOM_LIBS) \
|
||||
$(NULL)
|
||||
|
||||
CXXFLAGS += -I$(JDKHOME)/include -I$(JDKHOME)/include/linux $(MOZ_TOOLKIT_REGISTRY_CFLAGS) -D_REENTRANT -DOJI_DISABLE -I$(CONNECT_SRC)/public
|
||||
|
||||
include $(topsrcdir)/config/rules.mk
|
||||
|
|
|
@ -66,9 +66,13 @@ DSO_LDOPTS += \
|
|||
-L$(JDKHOME)/jre/lib/$(HOSTTYPE)/ \
|
||||
-L$(JDKHOME)/jre/lib/$(HOSTTYPE)/classic \
|
||||
-L$(JDKHOME)/jre/lib/$(HOSTTYPE)/native_threads \
|
||||
-ljvm -lhpi -ljava -lawt\
|
||||
-ljvm -lhpi -ljava -lawt \
|
||||
$(NULL)
|
||||
|
||||
DSO_LDOPTS += \
|
||||
$(XPCOM_LIBS) \
|
||||
$(NULL)
|
||||
|
||||
#DSO_LDOPTS += \
|
||||
# -L$(JDKHOME)/jre/bin \
|
||||
# -L$(JDKHOME)/jre/bin/classic \
|
||||
|
@ -80,9 +84,8 @@ DSO_LDOPTS += \
|
|||
-lthread -lXm -lX11 -lXt -lm
|
||||
endif
|
||||
|
||||
EXTRA_DSO_LDOPTS += \
|
||||
-L$(DIST)/bin/components/ \
|
||||
$(NULL)
|
||||
|
||||
include $(topsrcdir)/config/rules.mk
|
||||
CCC += $(CXXFLAGS) # I want to have $(JDKHOME)/include before $(DIST) include
|
||||
|
||||
|
||||
|
|
|
@ -38,6 +38,10 @@ CPPSRCS = bcJavaSample.cpp
|
|||
include $(topsrcdir)/config/rules.mk
|
||||
include ../config/rules.mk
|
||||
|
||||
DSO_LDOPTS += \
|
||||
$(XPCOM_LIBS) \
|
||||
$(NULL)
|
||||
|
||||
bcJavaSample.jar.comp: manifest bcIJavaSample.class bcJavaSample.class
|
||||
$(JDKHOME)/bin/jar cvfm bcJavaSample.jar.comp manifest *.class
|
||||
.java.class:
|
||||
|
|
|
@ -128,13 +128,14 @@ void test() {
|
|||
}
|
||||
//sigsend(P_PID, getpid(),SIGINT);
|
||||
//test->Test1(2000);
|
||||
|
||||
test->Test1(1000);
|
||||
bcIJavaSample *test1;
|
||||
if (NS_FAILED(r)) {
|
||||
printf("failed to get component. try to restart test\n");
|
||||
} else {
|
||||
test->Test2(a);
|
||||
}
|
||||
}
|
||||
test->QueryInterface(NS_GET_IID(bcIJavaSample),(void**)&test1);
|
||||
int intArray[] = {1,2,3};
|
||||
test->Test3(3, intArray);
|
||||
|
@ -192,10 +193,10 @@ extern "C" NS_EXPORT nsresult NSGetModule(nsIComponentManager *compMgr,
|
|||
nsIModule** result) //I am using it for runnig test *only*
|
||||
{
|
||||
if (counter == 0) {
|
||||
counter ++;
|
||||
printf("--bcJavaSample before test\n");
|
||||
test();
|
||||
printf("--bcJavaSample after test\n");
|
||||
counter ++;
|
||||
printf("--bcJavaSample before test\n");
|
||||
test();
|
||||
printf("--bcJavaSample after test\n");
|
||||
}
|
||||
return NS_ERROR_FAILURE;
|
||||
}
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*-
|
||||
/* -*- Mode: java; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*-
|
||||
* 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
|
||||
|
@ -23,6 +23,7 @@ import org.mozilla.xpcom.*;
|
|||
import java.lang.reflect.*;
|
||||
|
||||
public class bcJavaSample implements bcIJavaSample {
|
||||
bcIJavaSample object;
|
||||
public bcJavaSample() {
|
||||
System.out.println("--[java]bcJavaSample constructor");
|
||||
}
|
||||
|
@ -41,11 +42,14 @@ public class bcJavaSample implements bcIJavaSample {
|
|||
public void test0() {
|
||||
System.out.println("--[java]bcJavaSample.test0");
|
||||
nsIXPIDLServiceManager sm = Components.getServiceManager();
|
||||
nsISupports service = sm.getService(new CID("f0032af2-1dd1-11b2-bb75-c242dcb4f47a"), new IID("1f29f516-1dd2-11b2-9751-f129d72134d0"));
|
||||
|
||||
nsISupports service = sm.getService(new CID("f0032af2-1dd1-11b2-bb75-c242dcb4f47a"), new IID("1f29f516-1dd2-11b2-9751-f129d72134d0"));
|
||||
System.out.println("--[java]bcJavaSample.test0 current thread "+Thread.currentThread()+"\n");
|
||||
Thread.dumpStack();
|
||||
}
|
||||
public void test1(int l) {
|
||||
System.out.println("--[java]bcJavaSample.test1 "+l+"\n");
|
||||
|
||||
|
||||
}
|
||||
public void test2(bcIJavaSample o) {
|
||||
System.out.println("--[java]bcJavaSample.test2");
|
||||
|
@ -61,9 +65,23 @@ public class bcJavaSample implements bcIJavaSample {
|
|||
String[] strings = {"4","3","2","1"};
|
||||
o.test6(4, strings);
|
||||
}
|
||||
System.out.println("--[java]bcJavaSample.test2 doing threads test\n");
|
||||
|
||||
System.out.println("--[java]bcJavaSample.test2 current thread "+Thread.currentThread()+"\n");
|
||||
Thread.dumpStack();
|
||||
o.test2(this);
|
||||
object = o;
|
||||
new Thread( new Runnable() {
|
||||
public void run() {
|
||||
System.out.println("--[java]bcJavaSample.test2 current thread "+Thread.currentThread()+"\n");
|
||||
object.test2(bcJavaSample.this);
|
||||
}
|
||||
}).start();
|
||||
|
||||
} else {
|
||||
System.out.println("--[java]bcJavaSample.test2 o = null");
|
||||
}
|
||||
|
||||
}
|
||||
public void test3(int count, int[] valueArray) {
|
||||
System.out.println("--[java]bcJavaSample.test3");
|
||||
|
|
|
@ -26,6 +26,10 @@ topsrcdir = @top_srcdir@
|
|||
srcdir = @srcdir@
|
||||
VPATH = @srcdir@
|
||||
|
||||
|
||||
include $(DEPTH)/config/autoconf.mk
|
||||
include $(topsrcdir)/config/config.mk
|
||||
|
||||
LIBRARY_NAME = bcXPCOMWrappers
|
||||
MODULE = bcXPCOMWrappers
|
||||
|
||||
|
@ -44,8 +48,10 @@ CPPSRCS = \
|
|||
nsXPIDLServiceManager.cpp \
|
||||
$(NULL)
|
||||
|
||||
include $(DEPTH)/config/autoconf.mk
|
||||
include $(topsrcdir)/config/config.mk
|
||||
DSO_LDOPTS += \
|
||||
$(XPCOM_LIBS) \
|
||||
$(NULL)
|
||||
|
||||
|
||||
|
||||
include $(topsrcdir)/config/rules.mk
|
||||
|
|
|
@ -41,20 +41,15 @@ CPPSRCS = \
|
|||
bcXPCOMStubsAndProxies.cpp \
|
||||
bcXPCOMLog.cpp \
|
||||
$(NULL)
|
||||
|
||||
EXPORTS = \
|
||||
bcIXPCOMStubsAndProxies.h \
|
||||
bcXPCOMStubsAndProxiesCID.h \
|
||||
$(NULL)
|
||||
LIBS = \
|
||||
-lxpcom \
|
||||
-lxptinfo \
|
||||
$(NSPR_LIBS) \
|
||||
$(NULL)
|
||||
|
||||
EXTRA_DSO_LDOPTS += \
|
||||
-L$(DIST)/bin/components/ \
|
||||
$(NULL)
|
||||
|
||||
DSO_LDOPTS += \
|
||||
$(XPCOM_LIBS) \
|
||||
$(NULL)
|
||||
|
||||
include $(topsrcdir)/config/rules.mk
|
||||
|
||||
|
|
Загрузка…
Ссылка в новой задаче