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,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