Commit 44331a7f331c2d2e3c6b750add60f5fd8a29a7f7
1 parent
4fb74d6c
Exists in
master
and in
5 other branches
Implementando interface jni
Showing
7 changed files
with
137 additions
and
44 deletions
Show diff stats
configure.ac
... | ... | @@ -146,6 +146,7 @@ case "$host" in |
146 | 146 | PLUGINS="hllapi" |
147 | 147 | APP_GUI_SRC="resources.rc" |
148 | 148 | DLLPREFIX="" |
149 | + JNI_CPPFLAGS="-I\$(JDK_HOME)/include -I\$(JDK_HOME)/include/win32" | |
149 | 150 | ;; |
150 | 151 | |
151 | 152 | *-apple-*) |
... | ... | @@ -169,6 +170,7 @@ case "$host" in |
169 | 170 | LDAPPFLAGS="" |
170 | 171 | DBGRPATH="-Wl,--rpath,.bin/Debug/lib" |
171 | 172 | DBGCMDPREFIX="LD_LIBRARY_PATH=\$(BINDIR)/Debug/lib" |
173 | + JNI_CPPFLAGS="-I\$(JDK_HOME)/include -I\$(JDK_HOME)/include/linux" | |
172 | 174 | |
173 | 175 | esac |
174 | 176 | |
... | ... | @@ -339,6 +341,7 @@ AC_SUBST(JAVAH) |
339 | 341 | AC_SUBST(JAR) |
340 | 342 | AC_SUBST(JDK_HOME) |
341 | 343 | AC_SUBST(JRE_HOME) |
344 | +AC_SUBST(JNI_CPPFLAGS) | |
342 | 345 | |
343 | 346 | #--[ Headers ]------------------------------------------------------------------------------------------------------------------------------------------------ |
344 | 347 | ... | ... |
src/java/Makefile.in
... | ... | @@ -25,7 +25,7 @@ |
25 | 25 | # |
26 | 26 | |
27 | 27 | PACKAGE_NAME=@PACKAGE_NAME@ |
28 | -SOURCES= | |
28 | +SOURCES=main.cc info.cc | |
29 | 29 | |
30 | 30 | #---[ Paths ]------------------------------------------------------------------ |
31 | 31 | |
... | ... | @@ -70,24 +70,24 @@ include $(CLASSLIBDIR)/class.mak |
70 | 70 | |
71 | 71 | #---[ Build options ]---------------------------------------------------------- |
72 | 72 | |
73 | -CXXFLAGS=@CXXFLAGS@ @DLL_CFLAGS@ | |
73 | +CXXFLAGS=@CXXFLAGS@ @DLL_CFLAGS@ @JNI_CPPFLAGS@ -I../include | |
74 | 74 | |
75 | 75 | #---[ Rules ]------------------------------------------------------------------ |
76 | 76 | |
77 | 77 | $(OBJDBG)/%.o: %.cc Makefile jni3270.h |
78 | 78 | @echo " CC `basename $@`" |
79 | 79 | @mkdir -p `dirname $@` |
80 | - @$(CXX) -DDEBUG=1 $(CXXFLAGS) -o $@ -c $< | |
80 | + $(CXX) -DDEBUG=1 $(CXXFLAGS) -o $@ -c $< | |
81 | 81 | |
82 | 82 | $(OBJRLS)/%.o: %.cc Makefile jni3270.h |
83 | 83 | @echo " CC `basename $@`" |
84 | 84 | @mkdir -p `dirname $@` |
85 | 85 | @$(CXX) -DNDEBUG=1 $(CXXFLAGS) -o $@ -c $< |
86 | 86 | |
87 | -$(BINDIR)/java/$(PACKAGE)/%.class: %.java | |
87 | +$(BINDIR)/java/$(PACKAGE_NAME)/%.class: %.java | |
88 | 88 | @echo $< ... |
89 | 89 | @mkdir -p `dirname $@` |
90 | - $(JAVAC) -encoding utf-8 -cp $(BINDIR)/java -sourcepath $(PWD) -d $(BINDIR)/java $^ | |
90 | + $(JAVAC) -encoding utf-8 -d $(BINDIR)/java $^ | |
91 | 91 | |
92 | 92 | #---[ Release targets ]-------------------------------------------------------- |
93 | 93 | |
... | ... | @@ -117,10 +117,10 @@ run: $(BINDBG)/jni3270@DLLEXT@ |
117 | 117 | |
118 | 118 | #---[ Misc targets ]----------------------------------------------------------- |
119 | 119 | |
120 | -jni3270.h: $(BINDIR)/java/$(PACKAGE)/terminal.class | |
120 | +jni3270.h: $(BINDIR)/java/$(PACKAGE_NAME)/terminal.class | |
121 | 121 | @echo $< ... |
122 | 122 | @mkdir -p `dirname $@` |
123 | - @$(JAVAH) -o $@ -classpath $(BINDIR)/java $(PACKAGE).terminal | |
123 | + $(JAVAH) -o $@ -classpath $(BINDIR)/java $(PACKAGE_NAME).terminal | |
124 | 124 | |
125 | 125 | |
126 | 126 | install: $(BINRLS)/jni3270@DLLEXT@ | ... | ... |
... | ... | @@ -0,0 +1,41 @@ |
1 | +/* | |
2 | + * "Software pw3270, desenvolvido com base nos códigos fontes do WC3270 e X3270 | |
3 | + * (Paul Mattes Paul.Mattes@usa.net), de emulação de terminal 3270 para acesso a | |
4 | + * aplicativos mainframe. Registro no INPI sob o nome G3270. | |
5 | + * | |
6 | + * Copyright (C) <2008> <Banco do Brasil S.A.> | |
7 | + * | |
8 | + * Este programa é software livre. Você pode redistribuí-lo e/ou modificá-lo sob | |
9 | + * os termos da GPL v.2 - Licença Pública Geral GNU, conforme publicado pela | |
10 | + * Free Software Foundation. | |
11 | + * | |
12 | + * Este programa é distribuído na expectativa de ser útil, mas SEM QUALQUER | |
13 | + * GARANTIA; sem mesmo a garantia implícita de COMERCIALIZAÇÃO ou de ADEQUAÇÃO | |
14 | + * A QUALQUER PROPÓSITO EM PARTICULAR. Consulte a Licença Pública Geral GNU para | |
15 | + * obter mais detalhes. | |
16 | + * | |
17 | + * Você deve ter recebido uma cópia da Licença Pública Geral GNU junto com este | |
18 | + * programa; se não, escreva para a Free Software Foundation, Inc., 59 Temple | |
19 | + * Place, Suite 330, Boston, MA, 02111-1307, USA | |
20 | + * | |
21 | + * Este programa está nomeado como info.cc e possui - linhas de código. | |
22 | + * | |
23 | + * Contatos: | |
24 | + * | |
25 | + * perry.werneck@gmail.com (Alexandre Perry de Souza Werneck) | |
26 | + * erico.mendonca@gmail.com (Erico Mascarenhas Mendonça) | |
27 | + * | |
28 | + */ | |
29 | + | |
30 | + #include "private.h" | |
31 | + | |
32 | + | |
33 | +/*---[ Implement ]----------------------------------------------------------------------------------*/ | |
34 | + | |
35 | +JNIEXPORT jstring JNICALL Java_pw3270_terminal_getVersion (JNIEnv *env, jobject obj) { | |
36 | + | |
37 | +} | |
38 | + | |
39 | +JNIEXPORT jstring JNICALL Java_pw3270_terminal_getRevision(JNIEnv *, jobject) { | |
40 | + | |
41 | +} | ... | ... |
src/java/jni3270.cbp
... | ... | @@ -32,8 +32,13 @@ |
32 | 32 | <Compiler> |
33 | 33 | <Add option="-Wall" /> |
34 | 34 | </Compiler> |
35 | + <Unit filename="../../configure.ac" /> | |
36 | + <Unit filename="../include/pw3270/class.h" /> | |
35 | 37 | <Unit filename="Makefile.in" /> |
38 | + <Unit filename="info.cc" /> | |
36 | 39 | <Unit filename="jni3270.h" /> |
40 | + <Unit filename="main.cc" /> | |
41 | + <Unit filename="private.h" /> | |
37 | 42 | <Unit filename="terminal.java" /> |
38 | 43 | <Extensions> |
39 | 44 | <code_completion /> | ... | ... |
... | ... | @@ -0,0 +1,34 @@ |
1 | +/* | |
2 | + * "Software pw3270, desenvolvido com base nos códigos fontes do WC3270 e X3270 | |
3 | + * (Paul Mattes Paul.Mattes@usa.net), de emulação de terminal 3270 para acesso a | |
4 | + * aplicativos mainframe. Registro no INPI sob o nome G3270. | |
5 | + * | |
6 | + * Copyright (C) <2008> <Banco do Brasil S.A.> | |
7 | + * | |
8 | + * Este programa é software livre. Você pode redistribuí-lo e/ou modificá-lo sob | |
9 | + * os termos da GPL v.2 - Licença Pública Geral GNU, conforme publicado pela | |
10 | + * Free Software Foundation. | |
11 | + * | |
12 | + * Este programa é distribuído na expectativa de ser útil, mas SEM QUALQUER | |
13 | + * GARANTIA; sem mesmo a garantia implícita de COMERCIALIZAÇÃO ou de ADEQUAÇÃO | |
14 | + * A QUALQUER PROPÓSITO EM PARTICULAR. Consulte a Licença Pública Geral GNU para | |
15 | + * obter mais detalhes. | |
16 | + * | |
17 | + * Você deve ter recebido uma cópia da Licença Pública Geral GNU junto com este | |
18 | + * programa; se não, escreva para a Free Software Foundation, Inc., 59 Temple | |
19 | + * Place, Suite 330, Boston, MA, 02111-1307, USA | |
20 | + * | |
21 | + * Este programa está nomeado como main.cc e possui - linhas de código. | |
22 | + * | |
23 | + * Contatos: | |
24 | + * | |
25 | + * perry.werneck@gmail.com (Alexandre Perry de Souza Werneck) | |
26 | + * erico.mendonca@gmail.com (Erico Mascarenhas Mendonça) | |
27 | + * | |
28 | + */ | |
29 | + | |
30 | + #include "private.h" | |
31 | + | |
32 | +/*---[ Implement ]----------------------------------------------------------------------------------*/ | |
33 | + | |
34 | + | ... | ... |
... | ... | @@ -0,0 +1,37 @@ |
1 | +/* | |
2 | + * "Software pw3270, desenvolvido com base nos códigos fontes do WC3270 e X3270 | |
3 | + * (Paul Mattes Paul.Mattes@usa.net), de emulação de terminal 3270 para acesso a | |
4 | + * aplicativos mainframe. Registro no INPI sob o nome G3270. | |
5 | + * | |
6 | + * Copyright (C) <2008> <Banco do Brasil S.A.> | |
7 | + * | |
8 | + * Este programa é software livre. Você pode redistribuí-lo e/ou modificá-lo sob | |
9 | + * os termos da GPL v.2 - Licença Pública Geral GNU, conforme publicado pela | |
10 | + * Free Software Foundation. | |
11 | + * | |
12 | + * Este programa é distribuído na expectativa de ser útil, mas SEM QUALQUER | |
13 | + * GARANTIA; sem mesmo a garantia implícita de COMERCIALIZAÇÃO ou de ADEQUAÇÃO | |
14 | + * A QUALQUER PROPÓSITO EM PARTICULAR. Consulte a Licença Pública Geral GNU para | |
15 | + * obter mais detalhes. | |
16 | + * | |
17 | + * Você deve ter recebido uma cópia da Licença Pública Geral GNU junto com este | |
18 | + * programa; se não, escreva para a Free Software Foundation, Inc., 59 Temple | |
19 | + * Place, Suite 330, Boston, MA, 02111-1307, USA | |
20 | + * | |
21 | + * Este programa está nomeado como private.h e possui - linhas de código. | |
22 | + * | |
23 | + * Contatos: | |
24 | + * | |
25 | + * perry.werneck@gmail.com (Alexandre Perry de Souza Werneck) | |
26 | + * erico.mendonca@gmail.com (Erico Mascarenhas Mendonça) | |
27 | + * | |
28 | + */ | |
29 | +#ifndef PRIVATE_H_INCLUDED | |
30 | + | |
31 | + #define PRIVATE_H_INCLUDED | |
32 | + | |
33 | + #include "jni3270.h" | |
34 | + | |
35 | + | |
36 | + | |
37 | +#endif // PRIVATE_H_INCLUDED | ... | ... |
src/java/terminal.java
... | ... | @@ -24,6 +24,9 @@ |
24 | 24 | * |
25 | 25 | * perry.werneck@gmail.com (Alexandre Perry de Souza Werneck) |
26 | 26 | * erico.mendonca@gmail.com (Erico Mascarenhas Mendonça) |
27 | + * licinio@bb.com.br (Licínio Luis Branco) | |
28 | + * kraucer@bb.com.br (Kraucer Fernandes Mazuco) | |
29 | + * macmiranda@bb.com.br (Marco Aurélio Caldas Miranda) | |
27 | 30 | * |
28 | 31 | */ |
29 | 32 | |
... | ... | @@ -31,47 +34,17 @@ package pw3270; |
31 | 34 | |
32 | 35 | public class terminal |
33 | 36 | { |
34 | - /* Get library/extension info */ | |
35 | - public native String getVersion(); | |
36 | - public native String getRevision(); | |
37 | + // Init/Deinit | |
38 | + private native int init(); | |
39 | + private native int deinit(); | |
37 | 40 | |
38 | - /* Connect/Disconnect */ | |
39 | - public native int Connect( String uri, int timeout ); | |
40 | - public native int Disconnect(); | |
41 | - public native int getConnectionState(); | |
42 | - | |
43 | - /* Get Status */ | |
44 | - public native boolean isConnected(); | |
45 | - public native boolean isTerminalReady(); | |
46 | - public native String getEncoding(); | |
47 | - | |
48 | - /* Get/Query Screen contents */ | |
49 | - public native String getScreenContentAt(int row, int col, int size); | |
50 | - public native String getScreenContent(); | |
51 | - public native boolean queryStringAt(int row, int col, String key); | |
52 | - | |
53 | - /* Actions/Screen changes */ | |
54 | - public native int sendEnterKey(); | |
55 | - public native int setStringAt(int row, int col, String str); | |
56 | - public native int sendPFKey(int key); | |
57 | - | |
58 | - /* Waiting */ | |
59 | - public native int wait(int seconds); | |
60 | - public native int waitForTerminalReady(int timeout); | |
61 | - public native int waitForStringAt(int row, int col, String key, int timeout); | |
62 | - | |
63 | - /* Non-native methods */ | |
64 | - public int Connect(String hostinfo) | |
65 | - { | |
66 | - int rc = Connect(hostinfo,10); | |
67 | - if(rc != 0) | |
68 | - return rc; | |
69 | - return waitForTerminalReady(10); | |
70 | - } | |
41 | + // Get library/extension info | |
42 | + public native String get_version(); | |
43 | + public native String get_revision(); | |
71 | 44 | |
72 | 45 | static |
73 | 46 | { |
74 | - System.loadLibrary("jni3270"); | |
47 | + System.loadLibrary("pw3270_jni"); | |
75 | 48 | } |
76 | 49 | |
77 | 50 | }; | ... | ... |