You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@tomcat.apache.org by hg...@apache.org on 2001/05/03 16:40:57 UTC
cvs commit: jakarta-tomcat/proposals/web-connector/native/jni Makefile.nw Makefile.solaris jk_jnicb.c jk_jnicb.exp jk_jnicb.h jni_connect.dsp jni_connect.dsw
hgomez 01/05/03 07:40:56
Added: proposals/web-connector/native/jni Makefile.nw
Makefile.solaris jk_jnicb.c jk_jnicb.exp jk_jnicb.h
jni_connect.dsp jni_connect.dsw
Log:
jni stuff
Revision Changes Path
1.1 jakarta-tomcat/proposals/web-connector/native/jni/Makefile.nw
Index: Makefile.nw
===================================================================
.SILENT:
NLM_NAME=jni_conn
JDKPATH=k:\jdk\jdk-1_2_2
NOVELLNDK=r:\nwsdk
METROWERKSPATH=k:\mw\5.3
CC=$(METROWERKSPATH)\bin\mwccnlm
LINK=$(METROWERKSPATH)\bin\mwldnlm
JK_OBJS=\
jk_map.obj \
jk_pool.obj \
jk_util.obj \
jk_jnicb.obj \
jk_nwmain.obj \
all: $(NLM_NAME).nlm
$(NLM_NAME).nlm: $(JK_OBJS) link.opt
@echo Linking $@
@$(LINK) @link.opt
%.obj: %.c cc.opt
@echo Compiling $<
@$(CC) $< -o=$(@F) @cc.opt
%.obj: ../common/%.c cc.opt
@echo Compiling $<
@$(CC) $< -o=$(@F) @cc.opt
cc.opt: Makefile.nw
-@del cc.opt 2> NUL
@echo Generating $@
@echo -nosyspath -ext obj -c -align 1 -w nocmdline -bool on >> $@
ifdef DEBUG
@echo -g >> $@
endif
@echo -I$(NOVELLNDK)\include\nlm >> $@
@echo -I$(NOVELLNDK)\include >> $@
@echo -I. >> $@
@echo -I..\common >> $@
@echo -I$(METROWERKSPATH)\include >> $@
@echo -I$(JDKPATH)\include >> $@
@echo -I$(JDKPATH)\include\netware >> $@
@echo -DN_PLAT_NLM >> $@
@echo -DNETWARE >> $@
@echo -DXP_NETWARE >> $@
link.opt: Makefile.nw
-@del link.opt 2> NUL
-@del link.def 2> NUL
@echo -warnings off >> $@
@echo -zerobss >> $@
@echo -desc "JNI Natives for Tomcat" >> $@
@echo -o $(NLM_NAME).nlm >> $@
@echo -screenname "System Console" >> $@
@echo -nlmversion 0,1,0 >> $@
ifdef DEBUG
@echo -g >> $@
@echo -sym internal >> $@
@echo -sym codeview4 >> $@
@echo -osym $(NLM_NAME).sym >> $@
endif
@echo -nodefaults >> $@
@echo -map $(NLM_NAME).map >> $@
@echo -threadname "JK_JNI Thread" >> $@
@echo -stacksize 64000 >> $@
@echo $(METROWERKSPATH)\lib\nwpre.obj $(strip $(JK_OBJS)) >> $@
@echo -commandfile link.def >> $@
@echo module nsapi >> link.def
@echo Import @$(NOVELLNDK)\imports\clib.imp >> link.def
@echo Import @$(NOVELLNDK)\imports\lib0.imp >> link.def
@echo Import @$(NOVELLNDK)\imports\nlmlib.imp >> link.def
@echo Import @$(NOVELLNDK)\imports\threads.imp >> link.def
@echo Import @$(NOVELLNDK)\imports\socklib.imp >> link.def
@echo Export @jk_jnicb.exp >> link.def
clean:
-@del *.obj 2> NUL
-@del *.map 2> NUL
-@del link.* 2> NUL
-@del cc.opt 2> NUL
-@del *.nlm 2> NUL
-@del *.sym 2> NUL
1.1 jakarta-tomcat/proposals/web-connector/native/jni/Makefile.solaris
Index: Makefile.solaris
===================================================================
# Defines for example NSAPI programs running under SOLARIS
CC_CMD=gcc -DSOLARIS -D_REENTRANT
LD_SHAREDCMD=ld -G
all:
prepare:
OS_TYPE=solaris
INCLUDEDIR=../common
JAVA_INCLUDE=$(JAVA_HOME)/include
JK_OBJS = ../common/jk_map.o ../common/jk_util.o ../common/jk_pool.o jk_jnicb.o
INCLUDE_FLAGS=-I$(INCLUDEDIR) -I$(JAVA_INCLUDE) -I$(JAVA_INCLUDE)/$(OS_TYPE)
COMMON_DEFS=-Wall
all: jni_connect.so
jni_connect.so: $(JK_OBJS)
$(MAKE) prepare
$(LD_SHAREDCMD) $(JK_OBJS) -o jni_connect.so $(EXTRA_LDDEFINES)
.c.o:
$(CC_CMD) $(COMMON_DEFS) $(INCLUDE_FLAGS) -c $<
clean:
rm $(JK_OBJS)
1.1 jakarta-tomcat/proposals/web-connector/native/jni/jk_jnicb.c
Index: jk_jnicb.c
===================================================================
/*
* Copyright (c) 1997-1999 The Java Apache Project. All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
* are met:
*
* 1. Redistributions of source code must retain the above copyright
* notice, this list of conditions and the following disclaimer.
*
* 2. Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in
* the documentation and/or other materials provided with the
* distribution.
*
* 3. All advertising materials mentioning features or use of this
* software must display the following acknowledgment:
* "This product includes software developed by the Java Apache
* Project for use in the Apache JServ servlet engine project
* <http://java.apache.org/>."
*
* 4. The names "Apache JServ", "Apache JServ Servlet Engine" and
* "Java Apache Project" must not be used to endorse or promote products
* derived from this software without prior written permission.
*
* 5. Products derived from this software may not be called "Apache JServ"
* nor may "Apache" nor "Apache JServ" appear in their names without
* prior written permission of the Java Apache Project.
*
* 6. Redistributions of any form whatsoever must retain the following
* acknowledgment:
* "This product includes software developed by the Java Apache
* Project for use in the Apache JServ servlet engine project
* <http://java.apache.org/>."
*
* THIS SOFTWARE IS PROVIDED BY THE JAVA APACHE PROJECT "AS IS" AND ANY
* EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
* PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE JAVA APACHE PROJECT OR
* ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
* SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
* NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
* HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
* STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
* ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
* OF THE POSSIBILITY OF SUCH DAMAGE.
*
* This software consists of voluntary contributions made by many
* individuals on behalf of the Java Apache Group. For more information
* on the Java Apache Project and the Apache JServ Servlet Engine project,
* please see <http://java.apache.org/>.
*
*/
/***************************************************************************
* Description: JNI callbacks implementation for the JNI in process adapter*
* Author: Gal Shachor <sh...@il.ibm.com> *
* Version: $Revision: 1.1 $ *
***************************************************************************/
#include "jk_jnicb.h"
#include "jk_service.h"
#include "jk_util.h"
#include "jk_pool.h"
/*
* Class: org_apache_tomcat_service_connector_JNIConnectionHandler
* Method: getNumberOfHeaders
* Signature: (JJ)I
*/
JNIEXPORT jint JNICALL
Java_org_apache_tomcat_service_connector_JNIConnectionHandler_getNumberOfHeaders
(JNIEnv *env, jobject o, jlong s, jlong l)
{
/* [V] Convert indirectly from jlong -> int -> pointer to shut up gcc */
/* I hope it's okay on other compilers and/or machines... */
jk_ws_service_t *ps = (jk_ws_service_t *)(int)s;
jk_logger_t *pl = (jk_logger_t *)(int)l;
jk_log(pl, JK_LOG_DEBUG, "Into JNIConnectionHandler::getNumberOfHeaders\n");
if(!ps) {
jk_log(pl, JK_LOG_ERROR,
"In JNIConnectionHandler::getNumberOfHeaders, NULL ws service object\n");
/* [V] JNIConnectionHandler doesn't handle this */
return -1;
}
jk_log(pl, JK_LOG_DEBUG,
"Done JNIConnectionHandler::getNumberOfHeaders, found %d headers\n",
ps->num_headers);
return (jint)ps->num_headers;
}
/*
* Class: org_apache_tomcat_service_connector_JNIConnectionHandler
* Method: read
* Signature: (JJ[BII)I
*/
JNIEXPORT jint JNICALL
Java_org_apache_tomcat_service_connector_JNIConnectionHandler_read
(JNIEnv *env, jobject o, jlong s, jlong l, jbyteArray buf, jint from, jint cnt)
{
jk_ws_service_t *ps = (jk_ws_service_t *)(int)s;
jk_logger_t *pl = (jk_logger_t *)(int)l;
jint rc = -1;
jboolean iscommit;
jbyte *nbuf;
unsigned nfrom = (unsigned)from;
unsigned ncnt = (unsigned)cnt;
unsigned acc = 0;
jk_log(pl, JK_LOG_DEBUG, "Into JNIConnectionHandler::read\n");
if(!ps) {
jk_log(pl, JK_LOG_ERROR,
"In JNIConnectionHandler::read, NULL ws service object\n");
return -1;
}
nbuf = (*env)->GetByteArrayElements(env, buf, &iscommit);
if(!nbuf) {
jk_log(pl, JK_LOG_ERROR,
"In JNIConnectionHandler::read, GetByteArrayElements error\n");
return -1;
}
if(!ps->read(ps, nbuf + nfrom, ncnt, &acc)) {
jk_log(pl, JK_LOG_ERROR,
"In JNIConnectionHandler::read, failed to read from web server\n");
} else {
rc = (jint)acc;
}
(*env)->ReleaseByteArrayElements(env, buf, nbuf, 0);
jk_log(pl, JK_LOG_DEBUG, "Done JNIConnectionHandler::read\n");
return rc;
}
/*
* Class: org_apache_tomcat_service_connector_JNIConnectionHandler
* Method: readEnvironment
* Signature: (JJ[Ljava/lang/String;)I
*/
JNIEXPORT jint JNICALL
Java_org_apache_tomcat_service_connector_JNIConnectionHandler_readEnvironment
(JNIEnv *env, jobject o, jlong s, jlong l, jobjectArray envbuf)
{
jk_ws_service_t *ps = (jk_ws_service_t *)(int)s;
jk_logger_t *pl = (jk_logger_t *)(int)l;
char port[10];
jk_log(pl, JK_LOG_DEBUG,
"Into JNIConnectionHandler::readEnvironment. Environment follows --->\n");
if(!ps) {
jk_log(pl, JK_LOG_ERROR,
"In JNIConnectionHandler::readEnvironment, NULL ws service object\n");
return JK_FALSE;
}
sprintf(port, "%d", ps->server_port);
if(ps->method) {
(*env)->SetObjectArrayElement(env,
envbuf,
0,
(*env)->NewStringUTF(env, ps->method));
jk_log(pl, JK_LOG_DEBUG, "---> method: %s\n", ps->method);
}
if(ps->req_uri) {
(*env)->SetObjectArrayElement(env,
envbuf,
1,
(*env)->NewStringUTF(env, ps->req_uri));
jk_log(pl, JK_LOG_DEBUG, "---> req_uri: %s\n", ps->req_uri);
}
if(ps->query_string) {
(*env)->SetObjectArrayElement(env,
envbuf,
2,
(*env)->NewStringUTF(env, ps->query_string));
jk_log(pl, JK_LOG_DEBUG, "---> query_string: %s\n", ps->query_string);
}
if(ps->remote_addr) {
(*env)->SetObjectArrayElement(env,
envbuf,
3,
(*env)->NewStringUTF(env, ps->remote_addr));
jk_log(pl, JK_LOG_DEBUG, "---> remote_addr: %s\n", ps->remote_addr);
}
if(ps->remote_host) {
(*env)->SetObjectArrayElement(env,
envbuf,
4,
(*env)->NewStringUTF(env, ps->remote_host));
jk_log(pl, JK_LOG_DEBUG, "---> remote_host: %s\n", ps->remote_host);
}
if(ps->server_name) {
(*env)->SetObjectArrayElement(env,
envbuf,
5,
(*env)->NewStringUTF(env, ps->server_name));
jk_log(pl, JK_LOG_DEBUG, "---> server_name: %s\n", ps->server_name);
}
(*env)->SetObjectArrayElement(env,
envbuf,
6,
(*env)->NewStringUTF(env, port));
jk_log(pl, JK_LOG_DEBUG, "---> server_port: %s\n", port);
if(ps->auth_type) {
(*env)->SetObjectArrayElement(env,
envbuf,
7,
(*env)->NewStringUTF(env, ps->auth_type));
jk_log(pl, JK_LOG_DEBUG, "---> auth_type: %s\n", ps->auth_type);
}
if(ps->remote_user) {
(*env)->SetObjectArrayElement(env,
envbuf,
8,
(*env)->NewStringUTF(env, ps->remote_user));
jk_log(pl, JK_LOG_DEBUG, "---> remote_user: %s\n", ps->remote_user);
}
if(ps->is_ssl) {
(*env)->SetObjectArrayElement(env,
envbuf,
9,
(*env)->NewStringUTF(env, "https"));
} else {
(*env)->SetObjectArrayElement(env,
envbuf,
9,
(*env)->NewStringUTF(env, "http"));
}
jk_log(pl, JK_LOG_DEBUG, "---> is_ssl: %s\n", ps->is_ssl ? "yes" : "no");
if(ps->protocol) {
(*env)->SetObjectArrayElement(env,
envbuf,
10,
(*env)->NewStringUTF(env, ps->protocol));
jk_log(pl, JK_LOG_DEBUG, "---> protocol: %s\n", ps->protocol);
}
if(ps->server_software) {
(*env)->SetObjectArrayElement(env,
envbuf,
11,
(*env)->NewStringUTF(env, ps->server_software));
jk_log(pl, JK_LOG_DEBUG, "---> server_software: %s\n", ps->server_software);
}
if(ps->is_ssl) {
if(ps->ssl_cert) {
(*env)->SetObjectArrayElement(env,
envbuf,
12,
(*env)->NewStringUTF(env, ps->ssl_cert));
jk_log(pl, JK_LOG_DEBUG, "---> ssl_cert: %s\n", ps->ssl_cert);
}
if(ps->ssl_cipher) {
(*env)->SetObjectArrayElement(env,
envbuf,
13,
(*env)->NewStringUTF(env, ps->ssl_cipher));
jk_log(pl, JK_LOG_DEBUG, "---> ssl_cipher: %s\n", ps->ssl_cipher);
}
if(ps->ssl_session) {
(*env)->SetObjectArrayElement(env,
envbuf,
14,
(*env)->NewStringUTF(env, ps->ssl_session));
jk_log(pl, JK_LOG_DEBUG, "---> ssl_session: %s\n", ps->ssl_session);
}
}
jk_log(pl, JK_LOG_DEBUG,
"Done JNIConnectionHandler::readEnvironment\n");
return JK_TRUE;
}
/*
* Class: org_apache_tomcat_service_connector_JNIConnectionHandler
* Method: readHeaders
* Signature: (JJ[Ljava/lang/String;[Ljava/lang/String;)I
*/
JNIEXPORT jint JNICALL
Java_org_apache_tomcat_service_connector_JNIConnectionHandler_readHeaders
(JNIEnv *env, jobject o, jlong s, jlong l, jobjectArray hnames, jobjectArray hvalues)
{
jk_ws_service_t *ps = (jk_ws_service_t *)(int)s;
jk_logger_t *pl = (jk_logger_t *)(int)l;
unsigned i;
jk_log(pl, JK_LOG_DEBUG, "Into JNIConnectionHandler::readHeaders\n");
if(!ps) {
jk_log(pl, JK_LOG_ERROR,
"In JNIConnectionHandler::readHeaders, NULL ws service object\n");
return JK_FALSE;
}
jk_log(pl, JK_LOG_DEBUG, "In JNIConnectionHandler::readHeaders, %d headers follow --->\n",
ps->num_headers);
for(i = 0 ; i < ps->num_headers ; i++) {
(*env)->SetObjectArrayElement(env,
hnames,
i,
(*env)->NewStringUTF(env, ps->headers_names[i]));
(*env)->SetObjectArrayElement(env,
hvalues,
i,
(*env)->NewStringUTF(env, ps->headers_values[i]));
jk_log(pl, JK_LOG_DEBUG, "---> %s = %s\n",
ps->headers_names[i], ps->headers_values[i]);
}
jk_log(pl, JK_LOG_DEBUG,
"Done JNIConnectionHandler::readHeaders\n");
return JK_TRUE;
}
/*
* Class: org_apache_tomcat_service_connector_JNIConnectionHandler
* Method: startReasponse
* Signature: (JJILjava/lang/String;[Ljava/lang/String;[Ljava/lang/String;I)I
*/
JNIEXPORT jint JNICALL
Java_org_apache_tomcat_service_connector_JNIConnectionHandler_startReasponse
(JNIEnv *env, jobject o, jlong s, jlong l,
jint sc, jstring msg, jobjectArray hnames, jobjectArray hvalues, jint hcnt)
{
jk_ws_service_t *ps = (jk_ws_service_t *)(int)s;
jk_logger_t *pl = (jk_logger_t *)(int)l;
const char *nmsg = NULL;
char **nhnames = NULL;
char **nhvalues = NULL;
jstring *shnames = NULL;
jstring *shvalues = NULL;
int i = 0;
int ok = JK_TRUE;
jk_log(pl, JK_LOG_DEBUG, "Into JNIConnectionHandler::startReasponse\n");
if(!ps) {
jk_log(pl, JK_LOG_ERROR,
"In JNIConnectionHandler::startReasponse, NULL ws service object\n");
return JK_FALSE;
}
jk_log(pl, JK_LOG_DEBUG, "In JNIConnectionHandler::startReasponse, %d headers follow --->\n",
hcnt);
if(hcnt) {
ok = JK_FALSE;
nhnames = (char **)jk_pool_alloc(ps->pool, hcnt * sizeof(char *));
nhvalues = (char **)jk_pool_alloc(ps->pool, hcnt * sizeof(char *));
shnames = (jstring *)jk_pool_alloc(ps->pool, hcnt * sizeof(jstring));
shvalues = (jstring *)jk_pool_alloc(ps->pool, hcnt * sizeof(jstring));
if(nhvalues && nhnames && shnames && shnames) {
for( ; i < hcnt ; i++) {
jboolean iscommit;
shvalues[i] = shnames[i] = NULL;
nhnames[i] = nhvalues[i] = NULL;
shnames[i] = (*env)->GetObjectArrayElement(env, hnames, i);
shvalues[i] = (*env)->GetObjectArrayElement(env, hvalues, i);
if(!shvalues[i] || !shnames[i]) {
jk_log(pl, JK_LOG_ERROR,
"In JNIConnectionHandler::startReasponse, GetObjectArrayElement error\n");
break;
}
nhnames[i] = (char *)(*env)->GetStringUTFChars(env, shnames[i], &iscommit);
nhvalues[i] = (char *)(*env)->GetStringUTFChars(env, shvalues[i], &iscommit);
if(!nhvalues[i] || !nhnames[i]) {
jk_log(pl, JK_LOG_ERROR,
"In JNIConnectionHandler::startReasponse, GetStringUTFChars error\n");
break;
}
jk_log(pl, JK_LOG_DEBUG, "---> %s=%s\n", nhnames[i], nhvalues[i]);
}
if(i == hcnt) {
ok = JK_TRUE;
jk_log(pl, JK_LOG_DEBUG,
"In JNIConnectionHandler::startReasponse. ----- End headers.\n", hcnt);
}
} else {
jk_log(pl, JK_LOG_ERROR,
"In JNIConnectionHandler::startReasponse, memory allocation error\n");
}
}
if(msg && ok) {
jboolean iscommit;
nmsg = (*env)->GetStringUTFChars(env, msg, &iscommit);
if(!nmsg) {
ok = JK_FALSE;
}
}
if(ok) {
if(!ps->start_response(ps, sc, nmsg, (const char**)nhnames, (const char**)nhvalues, hcnt)) {
ok = JK_FALSE;
jk_log(pl, JK_LOG_ERROR,
"In JNIConnectionHandler::startReasponse, servers startReasponse failed\n");
}
}
if(nmsg) {
(*env)->ReleaseStringUTFChars(env, msg, nmsg);
}
if(i < hcnt) {
i++;
}
if(nhvalues) {
int j;
for(j = 0 ; j < i ; j++) {
if(nhvalues[j]) {
(*env)->ReleaseStringUTFChars(env, shvalues[j], nhvalues[j]);
}
}
}
if(nhnames) {
int j;
for(j = 0 ; j < i ; j++) {
if(nhnames[j]) {
(*env)->ReleaseStringUTFChars(env, shnames[j], nhnames[j]);
}
}
}
jk_log(pl, JK_LOG_DEBUG, "Done JNIConnectionHandler::startReasponse.\n");
return ok;
}
/*
* Class: org_apache_tomcat_service_connector_JNIConnectionHandler
* Method: write
* Signature: (JJ[BII)I
*/
JNIEXPORT jint JNICALL
Java_org_apache_tomcat_service_connector_JNIConnectionHandler_write
(JNIEnv *env, jobject o, jlong s, jlong l, jbyteArray buf, jint from, jint cnt)
{
jk_ws_service_t *ps = (jk_ws_service_t *)(int)s;
jk_logger_t *pl = (jk_logger_t *)(int)l;
jint rc = JK_FALSE;
jboolean iscommit;
jbyte *nbuf;
unsigned nfrom = (unsigned)from;
unsigned ncnt = (unsigned)cnt;
jk_log(pl, JK_LOG_DEBUG,
"In JNIConnectionHandler::write\n");
if(!ps) {
jk_log(pl, JK_LOG_ERROR,
"In JNIConnectionHandler::write, NULL ws service object\n");
return JK_FALSE;
}
nbuf = (*env)->GetByteArrayElements(env, buf, &iscommit);
if(!nbuf) {
jk_log(pl, JK_LOG_ERROR,
"In JNIConnectionHandler::write, GetByteArrayElements error\n");
return JK_FALSE;
}
if(!ps->write(ps, nbuf + nfrom, ncnt)) {
jk_log(pl, JK_LOG_ERROR,
"In JNIConnectionHandler::write, failed to write to the web server\n");
} else {
rc = (jint)JK_TRUE;
}
(*env)->ReleaseByteArrayElements(env, buf, nbuf, JNI_ABORT);
return rc;
}
1.1 jakarta-tomcat/proposals/web-connector/native/jni/jk_jnicb.exp
Index: jk_jnicb.exp
===================================================================
Java_org_apache_tomcat_service_connector_JNIConnectionHandler_getNumberOfHeaders,
Java_org_apache_tomcat_service_connector_JNIConnectionHandler_read,
Java_org_apache_tomcat_service_connector_JNIConnectionHandler_readEnvironment,
Java_org_apache_tomcat_service_connector_JNIConnectionHandler_readHeaders,
Java_org_apache_tomcat_service_connector_JNIConnectionHandler_startReasponse,
Java_org_apache_tomcat_service_connector_JNIConnectionHandler_write
1.1 jakarta-tomcat/proposals/web-connector/native/jni/jk_jnicb.h
Index: jk_jnicb.h
===================================================================
/* DO NOT EDIT THIS FILE - it is machine generated */
#include <jni.h>
/* Header for class org_apache_tomcat_service_connector_JNIConnectionHandler */
#ifndef _Included_org_apache_tomcat_service_connector_JNIConnectionHandler
#define _Included_org_apache_tomcat_service_connector_JNIConnectionHandler
#ifdef __cplusplus
extern "C" {
#endif
/*
* Class: org_apache_tomcat_service_connector_JNIConnectionHandler
* Method: getNumberOfHeaders
* Signature: (JJ)I
*/
JNIEXPORT jint JNICALL Java_org_apache_tomcat_service_connector_JNIConnectionHandler_getNumberOfHeaders
(JNIEnv *, jobject, jlong, jlong);
/*
* Class: org_apache_tomcat_service_connector_JNIConnectionHandler
* Method: read
* Signature: (JJ[BII)I
*/
JNIEXPORT jint JNICALL Java_org_apache_tomcat_service_connector_JNIConnectionHandler_read
(JNIEnv *, jobject, jlong, jlong, jbyteArray, jint, jint);
/*
* Class: org_apache_tomcat_service_connector_JNIConnectionHandler
* Method: readEnvironment
* Signature: (JJ[Ljava/lang/String;)I
*/
JNIEXPORT jint JNICALL Java_org_apache_tomcat_service_connector_JNIConnectionHandler_readEnvironment
(JNIEnv *, jobject, jlong, jlong, jobjectArray);
/*
* Class: org_apache_tomcat_service_connector_JNIConnectionHandler
* Method: readHeaders
* Signature: (JJ[Ljava/lang/String;[Ljava/lang/String;)I
*/
JNIEXPORT jint JNICALL Java_org_apache_tomcat_service_connector_JNIConnectionHandler_readHeaders
(JNIEnv *, jobject, jlong, jlong, jobjectArray, jobjectArray);
/*
* Class: org_apache_tomcat_service_connector_JNIConnectionHandler
* Method: startReasponse
* Signature: (JJILjava/lang/String;[Ljava/lang/String;[Ljava/lang/String;I)I
*/
JNIEXPORT jint JNICALL Java_org_apache_tomcat_service_connector_JNIConnectionHandler_startReasponse
(JNIEnv *, jobject, jlong, jlong, jint, jstring, jobjectArray, jobjectArray, jint);
/*
* Class: org_apache_tomcat_service_connector_JNIConnectionHandler
* Method: write
* Signature: (JJ[BII)I
*/
JNIEXPORT jint JNICALL Java_org_apache_tomcat_service_connector_JNIConnectionHandler_write
(JNIEnv *, jobject, jlong, jlong, jbyteArray, jint, jint);
#ifdef __cplusplus
}
#endif
#endif
1.1 jakarta-tomcat/proposals/web-connector/native/jni/jni_connect.dsp
Index: jni_connect.dsp
===================================================================
# Microsoft Developer Studio Project File - Name="jni_connect" - Package Owner=<4>
# Microsoft Developer Studio Generated Build File, Format Version 6.00
# ** DO NOT EDIT **
# TARGTYPE "Win32 (x86) Dynamic-Link Library" 0x0102
CFG=jni_connect - Win32 Debug
!MESSAGE This is not a valid makefile. To build this project using NMAKE,
!MESSAGE use the Export Makefile command and run
!MESSAGE
!MESSAGE NMAKE /f "jni_connect.mak".
!MESSAGE
!MESSAGE You can specify a configuration when running NMAKE
!MESSAGE by defining the macro CFG on the command line. For example:
!MESSAGE
!MESSAGE NMAKE /f "jni_connect.mak" CFG="jni_connect - Win32 Debug"
!MESSAGE
!MESSAGE Possible choices for configuration are:
!MESSAGE
!MESSAGE "jni_connect - Win32 Release" (based on "Win32 (x86) Dynamic-Link Library")
!MESSAGE "jni_connect - Win32 Debug" (based on "Win32 (x86) Dynamic-Link Library")
!MESSAGE
# Begin Project
# PROP AllowPerConfigDependencies 0
# PROP Scc_ProjName ""
# PROP Scc_LocalPath ""
CPP=cl.exe
MTL=midl.exe
RSC=rc.exe
!IF "$(CFG)" == "jni_connect - Win32 Release"
# PROP BASE Use_MFC 0
# PROP BASE Use_Debug_Libraries 0
# PROP BASE Output_Dir "Release"
# PROP BASE Intermediate_Dir "Release"
# PROP BASE Target_Dir ""
# PROP Use_MFC 0
# PROP Use_Debug_Libraries 0
# PROP Output_Dir "release"
# PROP Intermediate_Dir "release"
# PROP Ignore_Export_Lib 0
# PROP Target_Dir ""
# ADD BASE CPP /nologo /MT /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "JNI_CONNECT_EXPORTS" /YX /FD /c
# ADD CPP /nologo /MT /W3 /GX /O2 /I "$(JAVA_HOME)\include" /I "$(JAVA_HOME)\include\win32" /I "..\common" /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "JNI_CONNECT_EXPORTS" /YX /FD /c
# ADD BASE MTL /nologo /D "NDEBUG" /mktyplib203 /win32
# ADD MTL /nologo /D "NDEBUG" /mktyplib203 /win32
# ADD BASE RSC /l 0x409 /d "NDEBUG"
# ADD RSC /l 0x409 /d "NDEBUG"
BSC32=bscmake.exe
# ADD BASE BSC32 /nologo
# ADD BSC32 /nologo
LINK32=link.exe
# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /dll /machine:I386
# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /dll /machine:I386
!ELSEIF "$(CFG)" == "jni_connect - Win32 Debug"
# PROP BASE Use_MFC 0
# PROP BASE Use_Debug_Libraries 1
# PROP BASE Output_Dir "Debug"
# PROP BASE Intermediate_Dir "Debug"
# PROP BASE Target_Dir ""
# PROP Use_MFC 0
# PROP Use_Debug_Libraries 1
# PROP Output_Dir "debug"
# PROP Intermediate_Dir "debug"
# PROP Ignore_Export_Lib 0
# PROP Target_Dir ""
# ADD BASE CPP /nologo /MTd /W3 /Gm /GX /ZI /Od /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "JNI_CONNECT_EXPORTS" /YX /FD /GZ /c
# ADD CPP /nologo /MTd /W3 /Gm /GX /ZI /Od /I "$(JAVA_HOME)\include" /I "$(JAVA_HOME)\include\win32" /I "..\jk" /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "JNI_CONNECT_EXPORTS" /YX /FD /GZ /c
# ADD BASE MTL /nologo /D "_DEBUG" /mktyplib203 /win32
# ADD MTL /nologo /D "_DEBUG" /mktyplib203 /win32
# ADD BASE RSC /l 0x409 /d "_DEBUG"
# ADD RSC /l 0x409 /d "_DEBUG"
BSC32=bscmake.exe
# ADD BASE BSC32 /nologo
# ADD BSC32 /nologo
LINK32=link.exe
# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /dll /debug /machine:I386 /pdbtype:sept
# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /dll /debug /machine:I386 /pdbtype:sept
!ENDIF
# Begin Target
# Name "jni_connect - Win32 Release"
# Name "jni_connect - Win32 Debug"
# Begin Group "Source Files"
# PROP Default_Filter "cpp;c;cxx;rc;def;r;odl;idl;hpj;bat"
# Begin Source File
SOURCE=.\jk_jnicb.c
# End Source File
# Begin Source File
SOURCE=..\common\jk_map.c
# End Source File
# Begin Source File
SOURCE=..\common\jk_pool.c
# End Source File
# Begin Source File
SOURCE=..\common\jk_util.c
# End Source File
# End Group
# Begin Group "Header Files"
# PROP Default_Filter "h;hpp;hxx;hm;inl"
# Begin Source File
SOURCE=..\common\jk_ajp12_worker.h
# End Source File
# Begin Source File
SOURCE=..\common\jk_global.h
# End Source File
# Begin Source File
SOURCE=.\jk_jnicb.h
# End Source File
# Begin Source File
SOURCE=..\common\jk_logger.h
# End Source File
# Begin Source File
SOURCE=..\common\jk_map.h
# End Source File
# Begin Source File
SOURCE=..\common\jk_pool.h
# End Source File
# Begin Source File
SOURCE=..\common\jk_service.h
# End Source File
# Begin Source File
SOURCE=..\common\jk_util.h
# End Source File
# End Group
# Begin Group "Resource Files"
# PROP Default_Filter "ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe"
# End Group
# End Target
# End Project
1.1 jakarta-tomcat/proposals/web-connector/native/jni/jni_connect.dsw
Index: jni_connect.dsw
===================================================================
Microsoft Developer Studio Workspace File, Format Version 6.00
# WARNING: DO NOT EDIT OR DELETE THIS WORKSPACE FILE!
###############################################################################
Project: "jni_connect"=.\jni_connect.dsp - Package Owner=<4>
Package=<5>
{{{
}}}
Package=<4>
{{{
}}}
###############################################################################
Global:
Package=<5>
{{{
}}}
Package=<3>
{{{
}}}
###############################################################################