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,6 +146,7 @@ case "$host" in | ||
146 | PLUGINS="hllapi" | 146 | PLUGINS="hllapi" |
147 | APP_GUI_SRC="resources.rc" | 147 | APP_GUI_SRC="resources.rc" |
148 | DLLPREFIX="" | 148 | DLLPREFIX="" |
149 | + JNI_CPPFLAGS="-I\$(JDK_HOME)/include -I\$(JDK_HOME)/include/win32" | ||
149 | ;; | 150 | ;; |
150 | 151 | ||
151 | *-apple-*) | 152 | *-apple-*) |
@@ -169,6 +170,7 @@ case "$host" in | @@ -169,6 +170,7 @@ case "$host" in | ||
169 | LDAPPFLAGS="" | 170 | LDAPPFLAGS="" |
170 | DBGRPATH="-Wl,--rpath,.bin/Debug/lib" | 171 | DBGRPATH="-Wl,--rpath,.bin/Debug/lib" |
171 | DBGCMDPREFIX="LD_LIBRARY_PATH=\$(BINDIR)/Debug/lib" | 172 | DBGCMDPREFIX="LD_LIBRARY_PATH=\$(BINDIR)/Debug/lib" |
173 | + JNI_CPPFLAGS="-I\$(JDK_HOME)/include -I\$(JDK_HOME)/include/linux" | ||
172 | 174 | ||
173 | esac | 175 | esac |
174 | 176 | ||
@@ -339,6 +341,7 @@ AC_SUBST(JAVAH) | @@ -339,6 +341,7 @@ AC_SUBST(JAVAH) | ||
339 | AC_SUBST(JAR) | 341 | AC_SUBST(JAR) |
340 | AC_SUBST(JDK_HOME) | 342 | AC_SUBST(JDK_HOME) |
341 | AC_SUBST(JRE_HOME) | 343 | AC_SUBST(JRE_HOME) |
344 | +AC_SUBST(JNI_CPPFLAGS) | ||
342 | 345 | ||
343 | #--[ Headers ]------------------------------------------------------------------------------------------------------------------------------------------------ | 346 | #--[ Headers ]------------------------------------------------------------------------------------------------------------------------------------------------ |
344 | 347 |
src/java/Makefile.in
@@ -25,7 +25,7 @@ | @@ -25,7 +25,7 @@ | ||
25 | # | 25 | # |
26 | 26 | ||
27 | PACKAGE_NAME=@PACKAGE_NAME@ | 27 | PACKAGE_NAME=@PACKAGE_NAME@ |
28 | -SOURCES= | 28 | +SOURCES=main.cc info.cc |
29 | 29 | ||
30 | #---[ Paths ]------------------------------------------------------------------ | 30 | #---[ Paths ]------------------------------------------------------------------ |
31 | 31 | ||
@@ -70,24 +70,24 @@ include $(CLASSLIBDIR)/class.mak | @@ -70,24 +70,24 @@ include $(CLASSLIBDIR)/class.mak | ||
70 | 70 | ||
71 | #---[ Build options ]---------------------------------------------------------- | 71 | #---[ Build options ]---------------------------------------------------------- |
72 | 72 | ||
73 | -CXXFLAGS=@CXXFLAGS@ @DLL_CFLAGS@ | 73 | +CXXFLAGS=@CXXFLAGS@ @DLL_CFLAGS@ @JNI_CPPFLAGS@ -I../include |
74 | 74 | ||
75 | #---[ Rules ]------------------------------------------------------------------ | 75 | #---[ Rules ]------------------------------------------------------------------ |
76 | 76 | ||
77 | $(OBJDBG)/%.o: %.cc Makefile jni3270.h | 77 | $(OBJDBG)/%.o: %.cc Makefile jni3270.h |
78 | @echo " CC `basename $@`" | 78 | @echo " CC `basename $@`" |
79 | @mkdir -p `dirname $@` | 79 | @mkdir -p `dirname $@` |
80 | - @$(CXX) -DDEBUG=1 $(CXXFLAGS) -o $@ -c $< | 80 | + $(CXX) -DDEBUG=1 $(CXXFLAGS) -o $@ -c $< |
81 | 81 | ||
82 | $(OBJRLS)/%.o: %.cc Makefile jni3270.h | 82 | $(OBJRLS)/%.o: %.cc Makefile jni3270.h |
83 | @echo " CC `basename $@`" | 83 | @echo " CC `basename $@`" |
84 | @mkdir -p `dirname $@` | 84 | @mkdir -p `dirname $@` |
85 | @$(CXX) -DNDEBUG=1 $(CXXFLAGS) -o $@ -c $< | 85 | @$(CXX) -DNDEBUG=1 $(CXXFLAGS) -o $@ -c $< |
86 | 86 | ||
87 | -$(BINDIR)/java/$(PACKAGE)/%.class: %.java | 87 | +$(BINDIR)/java/$(PACKAGE_NAME)/%.class: %.java |
88 | @echo $< ... | 88 | @echo $< ... |
89 | @mkdir -p `dirname $@` | 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 | #---[ Release targets ]-------------------------------------------------------- | 92 | #---[ Release targets ]-------------------------------------------------------- |
93 | 93 | ||
@@ -117,10 +117,10 @@ run: $(BINDBG)/jni3270@DLLEXT@ | @@ -117,10 +117,10 @@ run: $(BINDBG)/jni3270@DLLEXT@ | ||
117 | 117 | ||
118 | #---[ Misc targets ]----------------------------------------------------------- | 118 | #---[ Misc targets ]----------------------------------------------------------- |
119 | 119 | ||
120 | -jni3270.h: $(BINDIR)/java/$(PACKAGE)/terminal.class | 120 | +jni3270.h: $(BINDIR)/java/$(PACKAGE_NAME)/terminal.class |
121 | @echo $< ... | 121 | @echo $< ... |
122 | @mkdir -p `dirname $@` | 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 | install: $(BINRLS)/jni3270@DLLEXT@ | 126 | install: $(BINRLS)/jni3270@DLLEXT@ |
@@ -0,0 +1,41 @@ | @@ -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,8 +32,13 @@ | ||
32 | <Compiler> | 32 | <Compiler> |
33 | <Add option="-Wall" /> | 33 | <Add option="-Wall" /> |
34 | </Compiler> | 34 | </Compiler> |
35 | + <Unit filename="../../configure.ac" /> | ||
36 | + <Unit filename="../include/pw3270/class.h" /> | ||
35 | <Unit filename="Makefile.in" /> | 37 | <Unit filename="Makefile.in" /> |
38 | + <Unit filename="info.cc" /> | ||
36 | <Unit filename="jni3270.h" /> | 39 | <Unit filename="jni3270.h" /> |
40 | + <Unit filename="main.cc" /> | ||
41 | + <Unit filename="private.h" /> | ||
37 | <Unit filename="terminal.java" /> | 42 | <Unit filename="terminal.java" /> |
38 | <Extensions> | 43 | <Extensions> |
39 | <code_completion /> | 44 | <code_completion /> |
@@ -0,0 +1,34 @@ | @@ -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 @@ | @@ -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,6 +24,9 @@ | ||
24 | * | 24 | * |
25 | * perry.werneck@gmail.com (Alexandre Perry de Souza Werneck) | 25 | * perry.werneck@gmail.com (Alexandre Perry de Souza Werneck) |
26 | * erico.mendonca@gmail.com (Erico Mascarenhas Mendonça) | 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,47 +34,17 @@ package pw3270; | ||
31 | 34 | ||
32 | public class terminal | 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 | static | 45 | static |
73 | { | 46 | { |
74 | - System.loadLibrary("jni3270"); | 47 | + System.loadLibrary("pw3270_jni"); |
75 | } | 48 | } |
76 | 49 | ||
77 | }; | 50 | }; |