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,20 +284,20 @@ | ||
| 284 | 284 | ||
| 285 | #if defined( ANDROID ) | 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 | #elif defined(_WIN32) | 289 | #elif defined(_WIN32) |
| 290 | 290 | ||
| 291 | #include <windows.h> | 291 | #include <windows.h> |
| 292 | - #define LIB3270_EXPORT __declspec (dllexport) | 292 | + #define LIB3270_EXPORT extern __declspec (dllexport) |
| 293 | 293 | ||
| 294 | #elif defined(__SUNPRO_C) && (__SUNPRO_C >= 0x550) | 294 | #elif defined(__SUNPRO_C) && (__SUNPRO_C >= 0x550) |
| 295 | 295 | ||
| 296 | - #define LIB3270_EXPORT | 296 | + #define LIB3270_EXPORT extern |
| 297 | 297 | ||
| 298 | #elif defined (HAVE_GNUC_VISIBILITY) | 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 | #else | 302 | #else |
| 303 | 303 |
src/java/Makefile.in
| @@ -57,14 +57,15 @@ JRE_HOME=@JRE_HOME@ | @@ -57,14 +57,15 @@ JRE_HOME=@JRE_HOME@ | ||
| 57 | 57 | ||
| 58 | #---[ Paths ]------------------------------------------------------------------ | 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 | #---[ lib3270 common class ]--------------------------------------------------- | 70 | #---[ lib3270 common class ]--------------------------------------------------- |
| 70 | 71 | ||
| @@ -111,22 +112,22 @@ $(BINRLS)/$(PACKAGE_NAME).jar: $(BINDIR)/java/$(PACKAGE_NAME)/terminal.class | @@ -111,22 +112,22 @@ $(BINRLS)/$(PACKAGE_NAME).jar: $(BINDIR)/java/$(PACKAGE_NAME)/terminal.class | ||
| 111 | 112 | ||
| 112 | #---[ Release targets ]-------------------------------------------------------- | 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 | zip: jni3270.zip | 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 | @rm -fr .tmp.zip | 122 | @rm -fr .tmp.zip |
| 122 | @rm -f $@ | 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 | @zip -9 -r $@ doc | 125 | @zip -9 -r $@ doc |
| 125 | 126 | ||
| 126 | doc: terminal.java | 127 | doc: terminal.java |
| 127 | @$(JAVADOC) -encoding utf-8 -d doc $^ | 128 | @$(JAVADOC) -encoding utf-8 -d doc $^ |
| 128 | 129 | ||
| 129 | -$(BINRLS)/@DLLPREFIX@jni3270@DLLEXT@: \ | 130 | +$(BINRLS)@DLLDIR@/@DLLPREFIX@jni3270@DLLEXT@: \ |
| 130 | $(foreach SRC, $(basename $(SOURCES)), $(OBJRLS)/$(SRC)@OBJEXT@) \ | 131 | $(foreach SRC, $(basename $(SOURCES)), $(OBJRLS)/$(SRC)@OBJEXT@) \ |
| 131 | $(CLASS_RELEASE_OBJECTS) | 132 | $(CLASS_RELEASE_OBJECTS) |
| 132 | 133 | ||
| @@ -137,24 +138,24 @@ $(BINRLS)/@DLLPREFIX@jni3270@DLLEXT@: \ | @@ -137,24 +138,24 @@ $(BINRLS)/@DLLPREFIX@jni3270@DLLEXT@: \ | ||
| 137 | 138 | ||
| 138 | #---[ Debug targets ]---------------------------------------------------------- | 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 | $(CLASS_DEBUG_OBJECTS) | 144 | $(CLASS_DEBUG_OBJECTS) |
| 144 | @echo " LD `basename $@`" | 145 | @echo " LD `basename $@`" |
| 145 | @$(MKDIR) `dirname $@` | 146 | @$(MKDIR) `dirname $@` |
| 146 | @$(CXX) @SYSDLL_FLAGS@ $(LDFLAGS) $(OO_LDFLAGS) -o $@ $^ $(CLASS_LIBS) | 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 | #---[ Misc targets ]----------------------------------------------------------- | 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 | @$(MKDIR) $(DESTDIR)/$(jnidir) | 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 | @mkdir -p $(DESTDIR)/$(jvmjardir) | 160 | @mkdir -p $(DESTDIR)/$(jvmjardir) |
| 160 | @$(INSTALL_DATA) $(BINRLS)/$(PACKAGE_NAME).jar $(DESTDIR)/$(jvmjardir) | 161 | @$(INSTALL_DATA) $(BINRLS)/$(PACKAGE_NAME).jar $(DESTDIR)/$(jvmjardir) |
src/java/jni3270.cbp
| @@ -39,6 +39,7 @@ | @@ -39,6 +39,7 @@ | ||
| 39 | <Add option="-Wall" /> | 39 | <Add option="-Wall" /> |
| 40 | </Compiler> | 40 | </Compiler> |
| 41 | <Unit filename="../../configure.ac" /> | 41 | <Unit filename="../../configure.ac" /> |
| 42 | + <Unit filename="../include/lib3270.h" /> | ||
| 42 | <Unit filename="../include/pw3270/class.h" /> | 43 | <Unit filename="../include/pw3270/class.h" /> |
| 43 | <Unit filename="Makefile.in" /> | 44 | <Unit filename="Makefile.in" /> |
| 44 | <Unit filename="actions.cc" /> | 45 | <Unit filename="actions.cc" /> |
src/java/main.cc
| @@ -31,6 +31,10 @@ | @@ -31,6 +31,10 @@ | ||
| 31 | 31 | ||
| 32 | /*---[ Implement ]----------------------------------------------------------------------------------*/ | 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 | static jfieldID getHandleField(JNIEnv *env, jobject obj) { | 38 | static jfieldID getHandleField(JNIEnv *env, jobject obj) { |
| 35 | jclass c = env->GetObjectClass(obj); | 39 | jclass c = env->GetObjectClass(obj); |
| 36 | // J is the type signature for long: | 40 | // J is the type signature for long: |
src/java/private.h
| @@ -41,4 +41,12 @@ | @@ -41,4 +41,12 @@ | ||
| 41 | 41 | ||
| 42 | PW3270_NAMESPACE::session * getHandle(JNIEnv *env, jobject obj); | 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 | #endif // PRIVATE_H_INCLUDED | 52 | #endif // PRIVATE_H_INCLUDED |