Commit 000f528f6c7405f35cd00e11d5faaea391c2683f
1 parent
cabab1ef
Exists in
master
and in
5 other branches
Iniciando implementação do plugin java
Showing
5 changed files
with
35 additions
and
21 deletions
Show diff stats
src/include/lib3270.h
| ... | ... | @@ -284,20 +284,20 @@ |
| 284 | 284 | |
| 285 | 285 | #if defined( ANDROID ) |
| 286 | 286 | |
| 287 | - #define LIB3270_EXPORT __attribute__((visibility("hidden"))) extern | |
| 287 | + #define LIB3270_EXPORT extern __attribute__((visibility("hidden"))) | |
| 288 | 288 | |
| 289 | 289 | #elif defined(_WIN32) |
| 290 | 290 | |
| 291 | 291 | #include <windows.h> |
| 292 | - #define LIB3270_EXPORT __declspec (dllexport) | |
| 292 | + #define LIB3270_EXPORT extern __declspec (dllexport) | |
| 293 | 293 | |
| 294 | 294 | #elif defined(__SUNPRO_C) && (__SUNPRO_C >= 0x550) |
| 295 | 295 | |
| 296 | - #define LIB3270_EXPORT | |
| 296 | + #define LIB3270_EXPORT extern | |
| 297 | 297 | |
| 298 | 298 | #elif defined (HAVE_GNUC_VISIBILITY) |
| 299 | 299 | |
| 300 | - #define LIB3270_EXPORT __attribute__((visibility("default"))) extern | |
| 300 | + #define LIB3270_EXPORT extern __attribute__((visibility("default"))) | |
| 301 | 301 | |
| 302 | 302 | #else |
| 303 | 303 | ... | ... |
src/java/Makefile.in
| ... | ... | @@ -57,14 +57,15 @@ JRE_HOME=@JRE_HOME@ |
| 57 | 57 | |
| 58 | 58 | #---[ Paths ]------------------------------------------------------------------ |
| 59 | 59 | |
| 60 | -OBJDIR = .obj | |
| 61 | -BINDIR = .bin | |
| 60 | +ROOTDIR ?= . | |
| 61 | +OBJDIR ?= $(ROOTDIR)/.obj | |
| 62 | +BINDIR ?= $(ROOTDIR)/.bin | |
| 62 | 63 | |
| 63 | -OBJDBG = $(OBJDIR)/Debug | |
| 64 | -BINDBG = $(BINDIR)/Debug | |
| 64 | +BINDBG ?= $(BINDIR)/Debug | |
| 65 | +BINRLS ?= $(BINDIR)/Release | |
| 65 | 66 | |
| 66 | -OBJRLS = $(OBJDIR)/Release | |
| 67 | -BINRLS = $(BINDIR)/Release | |
| 67 | +OBJDBG ?= $(OBJDIR)/Debug | |
| 68 | +OBJRLS ?= $(OBJDIR)/Release | |
| 68 | 69 | |
| 69 | 70 | #---[ lib3270 common class ]--------------------------------------------------- |
| 70 | 71 | |
| ... | ... | @@ -111,22 +112,22 @@ $(BINRLS)/$(PACKAGE_NAME).jar: $(BINDIR)/java/$(PACKAGE_NAME)/terminal.class |
| 111 | 112 | |
| 112 | 113 | #---[ Release targets ]-------------------------------------------------------- |
| 113 | 114 | |
| 114 | -all: $(BINRLS)/@DLLPREFIX@jni3270@DLLEXT@ | |
| 115 | +all: $(BINRLS)@DLLDIR@/@DLLPREFIX@jni3270@DLLEXT@ | |
| 115 | 116 | |
| 116 | -Release: $(BINRLS)/@DLLPREFIX@jni3270@DLLEXT@ | |
| 117 | +Release: $(BINRLS)@DLLDIR@/@DLLPREFIX@jni3270@DLLEXT@ | |
| 117 | 118 | |
| 118 | 119 | zip: jni3270.zip |
| 119 | 120 | |
| 120 | -jni3270.zip: $(BINRLS)/@DLLPREFIX@jni3270@DLLEXT@ $(BINRLS)/$(PACKAGE_NAME).jar testprogram.java doc | |
| 121 | +jni3270.zip: $(BINRLS)@DLLDIR@/@DLLPREFIX@jni3270@DLLEXT@ $(BINRLS)/$(PACKAGE_NAME).jar testprogram.java doc | |
| 121 | 122 | @rm -fr .tmp.zip |
| 122 | 123 | @rm -f $@ |
| 123 | - @zip -9 -j $@ $(BINRLS)/@DLLPREFIX@jni3270@DLLEXT@ $(BINRLS)/$(PACKAGE_NAME).jar testprogram.java | |
| 124 | + @zip -9 -j $@ $(BINRLS)@DLLDIR@/@DLLPREFIX@jni3270@DLLEXT@ $(BINRLS)/$(PACKAGE_NAME).jar testprogram.java | |
| 124 | 125 | @zip -9 -r $@ doc |
| 125 | 126 | |
| 126 | 127 | doc: terminal.java |
| 127 | 128 | @$(JAVADOC) -encoding utf-8 -d doc $^ |
| 128 | 129 | |
| 129 | -$(BINRLS)/@DLLPREFIX@jni3270@DLLEXT@: \ | |
| 130 | +$(BINRLS)@DLLDIR@/@DLLPREFIX@jni3270@DLLEXT@: \ | |
| 130 | 131 | $(foreach SRC, $(basename $(SOURCES)), $(OBJRLS)/$(SRC)@OBJEXT@) \ |
| 131 | 132 | $(CLASS_RELEASE_OBJECTS) |
| 132 | 133 | |
| ... | ... | @@ -137,24 +138,24 @@ $(BINRLS)/@DLLPREFIX@jni3270@DLLEXT@: \ |
| 137 | 138 | |
| 138 | 139 | #---[ Debug targets ]---------------------------------------------------------- |
| 139 | 140 | |
| 140 | -Debug: $(BINDBG)/@DLLPREFIX@jni3270@DLLEXT@ $(BINDIR)/java/testprogram.class | |
| 141 | +Debug: $(BINDBG)@DLLDIR@/@DLLPREFIX@jni3270@DLLEXT@ $(BINDIR)/java/testprogram.class | |
| 141 | 142 | |
| 142 | -$(BINDBG)/@DLLPREFIX@jni3270@DLLEXT@: $(foreach SRC, $(basename $(SOURCES)), $(OBJDBG)/$(SRC)@OBJEXT@) \ | |
| 143 | +$(BINDBG)@DLLDIR@/@DLLPREFIX@jni3270@DLLEXT@: $(foreach SRC, $(basename $(SOURCES)), $(OBJDBG)/$(SRC)@OBJEXT@) \ | |
| 143 | 144 | $(CLASS_DEBUG_OBJECTS) |
| 144 | 145 | @echo " LD `basename $@`" |
| 145 | 146 | @$(MKDIR) `dirname $@` |
| 146 | 147 | @$(CXX) @SYSDLL_FLAGS@ $(LDFLAGS) $(OO_LDFLAGS) -o $@ $^ $(CLASS_LIBS) |
| 147 | 148 | |
| 148 | 149 | |
| 149 | -run: $(BINDBG)/@DLLPREFIX@jni3270@DLLEXT@ $(BINDIR)/java/testprogram.class | |
| 150 | - @LD_LIBRARY_PATH=../../.bin/Debug/lib/ java -Djava.library.path=$(BINDBG) -cp .bin/java/ testprogram | |
| 150 | +run: $(BINDBG)@DLLDIR@/@DLLPREFIX@jni3270@DLLEXT@ $(BINDIR)/java/testprogram.class | |
| 151 | + @LD_LIBRARY_PATH=../../.bin/Debug/lib/ java -Djava.library.path=$(BINDBG)@DLLDIR@ -cp .bin/java/ testprogram | |
| 151 | 152 | |
| 152 | 153 | #---[ Misc targets ]----------------------------------------------------------- |
| 153 | 154 | |
| 154 | -install: $(BINRLS)/@DLLPREFIX@jni3270@DLLEXT@ $(BINRLS)/$(PACKAGE_NAME).jar doc | |
| 155 | +install: $(BINRLS)@DLLDIR@/@DLLPREFIX@jni3270@DLLEXT@ $(BINRLS)/$(PACKAGE_NAME).jar doc | |
| 155 | 156 | |
| 156 | 157 | @$(MKDIR) $(DESTDIR)/$(jnidir) |
| 157 | - @$(INSTALL_PROGRAM) $(BINRLS)/@DLLPREFIX@jni3270@DLLEXT@ $(DESTDIR)/$(jnidir) | |
| 158 | + @$(INSTALL_PROGRAM) $(BINRLS)@DLLDIR@/@DLLPREFIX@jni3270@DLLEXT@ $(DESTDIR)/$(jnidir) | |
| 158 | 159 | |
| 159 | 160 | @mkdir -p $(DESTDIR)/$(jvmjardir) |
| 160 | 161 | @$(INSTALL_DATA) $(BINRLS)/$(PACKAGE_NAME).jar $(DESTDIR)/$(jvmjardir) | ... | ... |
src/java/jni3270.cbp
src/java/main.cc
| ... | ... | @@ -31,6 +31,10 @@ |
| 31 | 31 | |
| 32 | 32 | /*---[ Implement ]----------------------------------------------------------------------------------*/ |
| 33 | 33 | |
| 34 | +void set_java_session_factory(PW3270_NAMESPACE::session * (*factory)(const char *name)) { | |
| 35 | + session::set_plugin(factory); | |
| 36 | +} | |
| 37 | + | |
| 34 | 38 | static jfieldID getHandleField(JNIEnv *env, jobject obj) { |
| 35 | 39 | jclass c = env->GetObjectClass(obj); |
| 36 | 40 | // J is the type signature for long: | ... | ... |
src/java/private.h
| ... | ... | @@ -41,4 +41,12 @@ |
| 41 | 41 | |
| 42 | 42 | PW3270_NAMESPACE::session * getHandle(JNIEnv *env, jobject obj); |
| 43 | 43 | |
| 44 | + extern "C" { | |
| 45 | + | |
| 46 | + LIB3270_EXPORT void set_java_session_factory(PW3270_NAMESPACE::session * (*factory)(const char *name)); | |
| 47 | + | |
| 48 | + } | |
| 49 | + | |
| 50 | + | |
| 51 | + | |
| 44 | 52 | #endif // PRIVATE_H_INCLUDED | ... | ... |