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 |