Commit 81cb36b084bacbd496115c94902712847c8dc786

Authored by Josh Klontz
1 parent 7ba5974b

removed jni

openbr/plugins/cmake/jni.cmake deleted
1 -set(BR_WITH_JAVA OFF CACHE BOOL "Use Java Code")  
2 -  
3 -if (${BR_WITH_JAVA})  
4 - find_package(JNI REQUIRED)  
5 - find_package(JAVA REQUIRED)  
6 - set(BR_THIRDPARTY_LIBS ${BR_THIRDPARTY_LIBS} ${JNI_LIBRARIES})  
7 -  
8 - include_directories(${JAVA_INCLUDE_PATH})  
9 - include_directories(${JAVA_INCLUDE_PATH2})  
10 -else()  
11 - set(BR_EXCLUDED_PLUGINS ${BR_EXCLUDED_PLUGINS} plugins/core/jni.cpp)  
12 -endif()  
openbr/plugins/core/jni.cpp deleted
1 -//Need to include location of jvm.dll (jdk version) and its parent directory in the environment variables  
2 -  
3 -#include <limits>  
4 -#include <openbr/plugins/openbr_internal.h>  
5 -#include <openbr/core/resource.h>  
6 -#include <jni.h>  
7 -  
8 -namespace br  
9 -{  
10 -  
11 -/*!  
12 - * \ingroup initializers  
13 - * \brief Initialize JNI  
14 - * \author Jordan Cheney \cite jcheney  
15 - */  
16 -class JNIInitializer : public Initializer  
17 -{  
18 - Q_OBJECT  
19 - public:  
20 - static JavaVM* jvm;  
21 - static JavaVMInitArgs vm_args;  
22 -  
23 - void initialize() const  
24 - {  
25 - JNIEnv *env;  
26 - JavaVMOption options[1];  
27 -  
28 - //Location of Java files  
29 - QByteArray classpath = QString("-Djava.class.path=").append(Globals->sdkPath).append(QString("/share/openbr/Java/jniLibraries/")).toLocal8Bit();  
30 - char *charClasspath = classpath.data();  
31 -  
32 - options[0].optionString = charClasspath;  
33 - vm_args.version = JNI_VERSION_1_6;  
34 - vm_args.nOptions = 1;  
35 - vm_args.options = options;  
36 - vm_args.ignoreUnrecognized = JNI_FALSE;  
37 -  
38 - JNI_CreateJavaVM(&jvm, (void**)&env, &vm_args);  
39 -  
40 - Globals->abbreviations.insert("JNIHelloWorld","Open+JNI(HelloWorld)");  
41 - }  
42 -  
43 - void finalize() const  
44 - {  
45 - jvm->DestroyJavaVM();  
46 - }  
47 -};  
48 -  
49 -JavaVM *JNIInitializer::jvm;  
50 -JavaVMInitArgs JNIInitializer::vm_args;  
51 -  
52 -BR_REGISTER(Initializer, JNIInitializer)  
53 -  
54 -/*!  
55 - * \ingroup transforms  
56 - * \brief Execute Java code from OpenBR using the JNI  
57 - * \author Jordan Cheney \cite jcheney  
58 - */  
59 -class JNITransform : public UntrainableTransform  
60 -{  
61 - Q_OBJECT  
62 - Q_PROPERTY(QString className READ get_className WRITE set_className RESET reset_className STORED false)  
63 - BR_PROPERTY(QString, className, "")  
64 -  
65 - void project(const Template &src, Template &dst) const  
66 - {  
67 - (void)dst; //Eliminates a compiler warning.  
68 -  
69 - JNIEnv *env;  
70 -  
71 - //Attach current thread to the thread of the JavaVM and access env  
72 - JNIInitializer::jvm->AttachCurrentThreadAsDaemon((void**)&env, NULL);  
73 - if (JNIInitializer::jvm->GetEnv(reinterpret_cast<void**>(&env), JNI_VERSION_1_6) != JNI_OK) {  
74 - qFatal("Failed to initialize JNI environment");  
75 - }  
76 -  
77 - //Convert QString to const char*  
78 - QByteArray tmpClass = className.toLocal8Bit();  
79 - const char* charClassName = tmpClass.constData();  
80 -  
81 - //Call java method  
82 - jclass cls = env->FindClass(charClassName);  
83 - if (cls == NULL) { qFatal("Class not found"); }  
84 - jmethodID mid = env->GetStaticMethodID(cls, "project", "(Ljava/lang/String;)V");  
85 - if (mid == NULL) { qFatal("MethodID not found"); }  
86 -  
87 - QByteArray tmp = src.file.name.toLocal8Bit();  
88 - const char* fileName = tmp.constData();  
89 -  
90 - //Convert char* to java compatible string  
91 - jstring jfileName = env->NewStringUTF(fileName);  
92 -  
93 - env->CallStaticObjectMethod(cls, mid, jfileName);  
94 -  
95 - JNIInitializer::jvm->DetachCurrentThread();  
96 - }  
97 -};  
98 -  
99 -BR_REGISTER(Transform, JNITransform)  
100 -  
101 -} // namespace br  
102 -  
103 -#include "jni.moc"