costin 2002/06/05 12:26:45
Modified: jk/native2/common jk_channel_jni.c
Log:
Patch from Mladen Turk:
The patch enables to dynamically configure the channel.jni
JAVA_BRIDGE_CLASS_NAME in
Workers2.properties.
Revision Changes Path
1.25 +30 -4 jakarta-tomcat-connectors/jk/native2/common/jk_channel_jni.c
Index: jk_channel_jni.c
===================================================================
RCS file: /home/cvs/jakarta-tomcat-connectors/jk/native2/common/jk_channel_jni.c,v
retrieving revision 1.24
retrieving revision 1.25
diff -u -r1.24 -r1.25
--- jk_channel_jni.c 30 May 2002 18:05:08 -0000 1.24
+++ jk_channel_jni.c 5 Jun 2002 19:26:45 -0000 1.25
@@ -259,7 +259,7 @@
"(JLjava/lang/Object;)I");
if( jniCh->writeMethod == NULL ) {
- env->l->jkLog(env, env->l, JK_LOG_EMERG,
+ env->l->jkLog(env, env->l, JK_LOG_EMERG,
"channel_jni.open() can't find jniInvoke\n");
return JK_ERR;
}
@@ -519,12 +519,36 @@
ep->currentRequest, ep, code, ep->reply
);
}
+static int JK_METHOD jk2_channel_jni_setProperty(jk_env_t *env,
+ jk_bean_t *mbean,
+ char *name, void *valueP)
+{
+ jk_channel_t *ch=(jk_channel_t *)mbean->object;
+ char *value=valueP;
+ jk_channel_jni_private_t *jniInfo=
+ (jk_channel_jni_private_t *)(ch->_privatePtr);
+
+ if( strcmp( "class", name ) == 0 ) {
+ jniInfo->className=value;
+ }
+ /* TODO: apache protocol hooks
+ else if( strcmp( "xxxx", name ) == 0 ) {
+ jniInfo->xxxx=value;
+ }
+ */
+ else {
+ return jk2_channel_setAttribute( env, mbean, name, valueP );
+ }
+ return JK_OK;
+}
+
int JK_METHOD jk2_channel_jni_factory(jk_env_t *env, jk_pool_t *pool,
jk_bean_t *result,
const char *type, const char *name)
{
jk_channel_t *ch=result->object;
jk_workerEnv_t *wEnv;
+ jk_channel_jni_private_t *jniPrivate;
ch=(jk_channel_t *)pool->calloc(env, pool, sizeof( jk_channel_t));
@@ -536,12 +560,14 @@
ch->beforeRequest= jk2_channel_jni_beforeRequest;
ch->afterRequest= jk2_channel_jni_afterRequest;
- ch->_privatePtr=(jk_channel_jni_private_t *)pool->calloc(env, pool,
- sizeof(jk_channel_jni_private_t));
+ ch->_privatePtr=jniPrivate=(jk_channel_jni_private_t *)pool->calloc(env, pool,
+ sizeof(jk_channel_jni_private_t));
+
+ jniPrivate->className = JAVA_BRIDGE_CLASS_NAME;
ch->is_stream=JK_FALSE;
/* No special attribute */
- result->setAttribute= jk2_channel_setAttribute;
+ result->setAttribute= jk2_channel_jni_setProperty;
ch->mbean=result;
result->object= ch;
result->init= jk2_channel_jni_init;
--
To unsubscribe, e-mail: <mailto:[EMAIL PROTECTED]>
For additional commands, e-mail: <mailto:[EMAIL PROTECTED]>