Commit 000f528f6c7405f35cd00e11d5faaea391c2683f

Authored by perry.werneck@gmail.com
1 parent cabab1ef

Iniciando implementação do plugin java

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
... ... @@ -39,6 +39,7 @@
39 39 <Add option="-Wall" />
40 40 </Compiler>
41 41 <Unit filename="../../configure.ac" />
  42 + <Unit filename="../include/lib3270.h" />
42 43 <Unit filename="../include/pw3270/class.h" />
43 44 <Unit filename="Makefile.in" />
44 45 <Unit filename="actions.cc" />
... ...
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
... ...