diff --git a/configure.ac b/configure.ac index be40954..4c73dce 100644 --- a/configure.ac +++ b/configure.ac @@ -146,6 +146,7 @@ case "$host" in PLUGINS="hllapi" APP_GUI_SRC="resources.rc" DLLPREFIX="" + JNI_CPPFLAGS="-I\$(JDK_HOME)/include -I\$(JDK_HOME)/include/win32" ;; *-apple-*) @@ -169,6 +170,7 @@ case "$host" in LDAPPFLAGS="" DBGRPATH="-Wl,--rpath,.bin/Debug/lib" DBGCMDPREFIX="LD_LIBRARY_PATH=\$(BINDIR)/Debug/lib" + JNI_CPPFLAGS="-I\$(JDK_HOME)/include -I\$(JDK_HOME)/include/linux" esac @@ -339,6 +341,7 @@ AC_SUBST(JAVAH) AC_SUBST(JAR) AC_SUBST(JDK_HOME) AC_SUBST(JRE_HOME) +AC_SUBST(JNI_CPPFLAGS) #--[ Headers ]------------------------------------------------------------------------------------------------------------------------------------------------ diff --git a/src/java/Makefile.in b/src/java/Makefile.in index d6d53e5..2cb2832 100644 --- a/src/java/Makefile.in +++ b/src/java/Makefile.in @@ -25,7 +25,7 @@ # PACKAGE_NAME=@PACKAGE_NAME@ -SOURCES= +SOURCES=main.cc info.cc #---[ Paths ]------------------------------------------------------------------ @@ -70,24 +70,24 @@ include $(CLASSLIBDIR)/class.mak #---[ Build options ]---------------------------------------------------------- -CXXFLAGS=@CXXFLAGS@ @DLL_CFLAGS@ +CXXFLAGS=@CXXFLAGS@ @DLL_CFLAGS@ @JNI_CPPFLAGS@ -I../include #---[ Rules ]------------------------------------------------------------------ $(OBJDBG)/%.o: %.cc Makefile jni3270.h @echo " CC `basename $@`" @mkdir -p `dirname $@` - @$(CXX) -DDEBUG=1 $(CXXFLAGS) -o $@ -c $< + $(CXX) -DDEBUG=1 $(CXXFLAGS) -o $@ -c $< $(OBJRLS)/%.o: %.cc Makefile jni3270.h @echo " CC `basename $@`" @mkdir -p `dirname $@` @$(CXX) -DNDEBUG=1 $(CXXFLAGS) -o $@ -c $< -$(BINDIR)/java/$(PACKAGE)/%.class: %.java +$(BINDIR)/java/$(PACKAGE_NAME)/%.class: %.java @echo $< ... @mkdir -p `dirname $@` - $(JAVAC) -encoding utf-8 -cp $(BINDIR)/java -sourcepath $(PWD) -d $(BINDIR)/java $^ + $(JAVAC) -encoding utf-8 -d $(BINDIR)/java $^ #---[ Release targets ]-------------------------------------------------------- @@ -117,10 +117,10 @@ run: $(BINDBG)/jni3270@DLLEXT@ #---[ Misc targets ]----------------------------------------------------------- -jni3270.h: $(BINDIR)/java/$(PACKAGE)/terminal.class +jni3270.h: $(BINDIR)/java/$(PACKAGE_NAME)/terminal.class @echo $< ... @mkdir -p `dirname $@` - @$(JAVAH) -o $@ -classpath $(BINDIR)/java $(PACKAGE).terminal + $(JAVAH) -o $@ -classpath $(BINDIR)/java $(PACKAGE_NAME).terminal install: $(BINRLS)/jni3270@DLLEXT@ diff --git a/src/java/info.cc b/src/java/info.cc new file mode 100644 index 0000000..3405bb3 --- /dev/null +++ b/src/java/info.cc @@ -0,0 +1,41 @@ +/* + * "Software pw3270, desenvolvido com base nos códigos fontes do WC3270 e X3270 + * (Paul Mattes Paul.Mattes@usa.net), de emulação de terminal 3270 para acesso a + * aplicativos mainframe. Registro no INPI sob o nome G3270. + * + * Copyright (C) <2008> + * + * Este programa é software livre. Você pode redistribuí-lo e/ou modificá-lo sob + * os termos da GPL v.2 - Licença Pública Geral GNU, conforme publicado pela + * Free Software Foundation. + * + * Este programa é distribuído na expectativa de ser útil, mas SEM QUALQUER + * GARANTIA; sem mesmo a garantia implícita de COMERCIALIZAÇÃO ou de ADEQUAÇÃO + * A QUALQUER PROPÓSITO EM PARTICULAR. Consulte a Licença Pública Geral GNU para + * obter mais detalhes. + * + * Você deve ter recebido uma cópia da Licença Pública Geral GNU junto com este + * programa; se não, escreva para a Free Software Foundation, Inc., 59 Temple + * Place, Suite 330, Boston, MA, 02111-1307, USA + * + * Este programa está nomeado como info.cc e possui - linhas de código. + * + * Contatos: + * + * perry.werneck@gmail.com (Alexandre Perry de Souza Werneck) + * erico.mendonca@gmail.com (Erico Mascarenhas Mendonça) + * + */ + + #include "private.h" + + +/*---[ Implement ]----------------------------------------------------------------------------------*/ + +JNIEXPORT jstring JNICALL Java_pw3270_terminal_getVersion (JNIEnv *env, jobject obj) { + +} + +JNIEXPORT jstring JNICALL Java_pw3270_terminal_getRevision(JNIEnv *, jobject) { + +} diff --git a/src/java/jni3270.cbp b/src/java/jni3270.cbp index b893dc9..4452002 100644 --- a/src/java/jni3270.cbp +++ b/src/java/jni3270.cbp @@ -32,8 +32,13 @@ + + + + + diff --git a/src/java/main.cc b/src/java/main.cc new file mode 100644 index 0000000..a69a22c --- /dev/null +++ b/src/java/main.cc @@ -0,0 +1,34 @@ +/* + * "Software pw3270, desenvolvido com base nos códigos fontes do WC3270 e X3270 + * (Paul Mattes Paul.Mattes@usa.net), de emulação de terminal 3270 para acesso a + * aplicativos mainframe. Registro no INPI sob o nome G3270. + * + * Copyright (C) <2008> + * + * Este programa é software livre. Você pode redistribuí-lo e/ou modificá-lo sob + * os termos da GPL v.2 - Licença Pública Geral GNU, conforme publicado pela + * Free Software Foundation. + * + * Este programa é distribuído na expectativa de ser útil, mas SEM QUALQUER + * GARANTIA; sem mesmo a garantia implícita de COMERCIALIZAÇÃO ou de ADEQUAÇÃO + * A QUALQUER PROPÓSITO EM PARTICULAR. Consulte a Licença Pública Geral GNU para + * obter mais detalhes. + * + * Você deve ter recebido uma cópia da Licença Pública Geral GNU junto com este + * programa; se não, escreva para a Free Software Foundation, Inc., 59 Temple + * Place, Suite 330, Boston, MA, 02111-1307, USA + * + * Este programa está nomeado como main.cc e possui - linhas de código. + * + * Contatos: + * + * perry.werneck@gmail.com (Alexandre Perry de Souza Werneck) + * erico.mendonca@gmail.com (Erico Mascarenhas Mendonça) + * + */ + + #include "private.h" + +/*---[ Implement ]----------------------------------------------------------------------------------*/ + + diff --git a/src/java/private.h b/src/java/private.h new file mode 100644 index 0000000..ecdb4d9 --- /dev/null +++ b/src/java/private.h @@ -0,0 +1,37 @@ +/* + * "Software pw3270, desenvolvido com base nos códigos fontes do WC3270 e X3270 + * (Paul Mattes Paul.Mattes@usa.net), de emulação de terminal 3270 para acesso a + * aplicativos mainframe. Registro no INPI sob o nome G3270. + * + * Copyright (C) <2008> + * + * Este programa é software livre. Você pode redistribuí-lo e/ou modificá-lo sob + * os termos da GPL v.2 - Licença Pública Geral GNU, conforme publicado pela + * Free Software Foundation. + * + * Este programa é distribuído na expectativa de ser útil, mas SEM QUALQUER + * GARANTIA; sem mesmo a garantia implícita de COMERCIALIZAÇÃO ou de ADEQUAÇÃO + * A QUALQUER PROPÓSITO EM PARTICULAR. Consulte a Licença Pública Geral GNU para + * obter mais detalhes. + * + * Você deve ter recebido uma cópia da Licença Pública Geral GNU junto com este + * programa; se não, escreva para a Free Software Foundation, Inc., 59 Temple + * Place, Suite 330, Boston, MA, 02111-1307, USA + * + * Este programa está nomeado como private.h e possui - linhas de código. + * + * Contatos: + * + * perry.werneck@gmail.com (Alexandre Perry de Souza Werneck) + * erico.mendonca@gmail.com (Erico Mascarenhas Mendonça) + * + */ +#ifndef PRIVATE_H_INCLUDED + + #define PRIVATE_H_INCLUDED + + #include "jni3270.h" + + + +#endif // PRIVATE_H_INCLUDED diff --git a/src/java/terminal.java b/src/java/terminal.java index 9c548ee..5ce43a7 100644 --- a/src/java/terminal.java +++ b/src/java/terminal.java @@ -24,6 +24,9 @@ * * perry.werneck@gmail.com (Alexandre Perry de Souza Werneck) * erico.mendonca@gmail.com (Erico Mascarenhas Mendonça) + * licinio@bb.com.br (Licínio Luis Branco) + * kraucer@bb.com.br (Kraucer Fernandes Mazuco) + * macmiranda@bb.com.br (Marco Aurélio Caldas Miranda) * */ @@ -31,47 +34,17 @@ package pw3270; public class terminal { - /* Get library/extension info */ - public native String getVersion(); - public native String getRevision(); + // Init/Deinit + private native int init(); + private native int deinit(); - /* Connect/Disconnect */ - public native int Connect( String uri, int timeout ); - public native int Disconnect(); - public native int getConnectionState(); - - /* Get Status */ - public native boolean isConnected(); - public native boolean isTerminalReady(); - public native String getEncoding(); - - /* Get/Query Screen contents */ - public native String getScreenContentAt(int row, int col, int size); - public native String getScreenContent(); - public native boolean queryStringAt(int row, int col, String key); - - /* Actions/Screen changes */ - public native int sendEnterKey(); - public native int setStringAt(int row, int col, String str); - public native int sendPFKey(int key); - - /* Waiting */ - public native int wait(int seconds); - public native int waitForTerminalReady(int timeout); - public native int waitForStringAt(int row, int col, String key, int timeout); - - /* Non-native methods */ - public int Connect(String hostinfo) - { - int rc = Connect(hostinfo,10); - if(rc != 0) - return rc; - return waitForTerminalReady(10); - } + // Get library/extension info + public native String get_version(); + public native String get_revision(); static { - System.loadLibrary("jni3270"); + System.loadLibrary("pw3270_jni"); } }; -- libgit2 0.21.2