costin 02/04/11 12:34:30 Modified: jk/native2/common jk_workerEnv.c Log: Channel initialization. If no worker is found we create a default ajp13 worker. Revision Changes Path 1.26 +70 -4 jakarta-tomcat-connectors/jk/native2/common/jk_workerEnv.c Index: jk_workerEnv.c =================================================================== RCS file: /home/cvs/jakarta-tomcat-connectors/jk/native2/common/jk_workerEnv.c,v retrieving revision 1.25 retrieving revision 1.26 diff -u -r1.25 -r1.26 --- jk_workerEnv.c 10 Apr 2002 23:48:33 -0000 1.25 +++ jk_workerEnv.c 11 Apr 2002 19:34:30 -0000 1.26 @@ -59,7 +59,7 @@ * Description: Workers controller * * Author: Gal Shachor <[EMAIL PROTECTED]> * * Author: Henri Gomez <[EMAIL PROTECTED]> * - * Version: $Revision: 1.25 $ * + * Version: $Revision: 1.26 $ * ***************************************************************************/ #include "jk_env.h" @@ -166,9 +166,9 @@ jk_workerEnv_t *wEnv) { int i; - char **wlist=wEnv->worker_list; for( i=0; i< wEnv->worker_map->size( env, wEnv->worker_map ); i++ ) { + char *name= wEnv->worker_map->nameAt( env, wEnv->worker_map, i ); jk_worker_t *w= wEnv->worker_map->valueAt( env, wEnv->worker_map, i ); int err; @@ -188,6 +188,59 @@ return JK_TRUE; } +static int jk2_workerEnv_initChannel(jk_env_t *env, + jk_workerEnv_t *wEnv, jk_channel_t *ch) +{ + int rc=JK_TRUE; + + ch->workerEnv=wEnv; + + if( ch->init != NULL ) { + rc=ch->init(env, ch); + + if(rc!=JK_TRUE) { + env->l->jkLog(env, env->l, JK_LOG_ERROR, + "workerEnv.initChannel() init failed for %s\n", + ch->mbean->name); + } + } + + if( ch->workerName != NULL ) { + jk_worker_t *w=wEnv->worker_map->get( env, wEnv->worker_map, ch->workerName ); + ch->worker=w; + } + + /* If a worker is not defined ( yet ) for the channel, define a default one ( ajp13 )*/ + if( ch->worker == NULL ) { + jk_bean_t *jkb; + + env->l->jkLog(env, env->l, JK_LOG_INFO, + "workerEnv.initChannel(): default worker ajp13:%s\n", ch->mbean->localName ); + + jkb=env->createBean2(env, ch->mbean->pool, "worker.ajp13", ch->mbean->localName ); + ch->worker=jkb->object; + ch->worker->channelName=ch->mbean->name; + ch->worker->channel=ch; + + /* XXX Set additional parameters - use defaults otherwise */ + } + return rc; +} + +static int jk2_workerEnv_initChannels(jk_env_t *env, + jk_workerEnv_t *wEnv) +{ + int i; + + for( i=0; i< wEnv->channel_map->size( env, wEnv->channel_map ); i++ ) { + + char *name= wEnv->channel_map->nameAt( env, wEnv->channel_map, i ); + jk_channel_t *ch= wEnv->channel_map->valueAt( env, wEnv->channel_map, i ); + jk2_workerEnv_initChannel( env, wEnv, ch ); + } + return JK_TRUE; +} + static void jk2_workerEnv_initHandlers(jk_env_t *env, jk_workerEnv_t *wEnv) { @@ -212,7 +265,6 @@ } } - static void jk2_workerEnv_registerHandler(jk_env_t *env, jk_workerEnv_t *wEnv, jk_handler_t *handler) { @@ -239,9 +291,10 @@ if( configFile == NULL ) { wEnv->config->setPropertyString( env, wEnv->config, "config.file", - "$(serverRoot)/conf/jk2.properties" ); + "${serverRoot}/conf/workers2.properties" ); } + jk2_workerEnv_initChannels( env, wEnv ); jk2_workerEnv_initWorkers( env, wEnv ); jk2_workerEnv_initHandlers( env, wEnv ); @@ -392,6 +445,16 @@ } +static int jk2_workerEnv_addChannel(jk_env_t *env, jk_workerEnv_t *wEnv, + jk_channel_t *w) +{ + int err=JK_TRUE; + + wEnv->channel_map->put(env, wEnv->channel_map, w->mbean->name, w, NULL); + + return JK_TRUE; +} + static int jk2_workerEnv_addWorker(jk_env_t *env, jk_workerEnv_t *wEnv, jk_worker_t *w) @@ -543,6 +606,7 @@ jk2_map_default_create(env, &wEnv->envvars, pool); jk2_map_default_create(env,&wEnv->worker_map, wEnv->pool); + jk2_map_default_create(env,&wEnv->channel_map, wEnv->pool); jkb=env->createBean2(env, wEnv->pool,"uriMap", ""); @@ -575,6 +639,8 @@ wEnv->init=&jk2_workerEnv_init; wEnv->close=&jk2_workerEnv_close; wEnv->addWorker=&jk2_workerEnv_addWorker; + wEnv->addChannel=&jk2_workerEnv_addChannel; + wEnv->initChannel=&jk2_workerEnv_initChannel; wEnv->registerHandler=&jk2_workerEnv_registerHandler; wEnv->processCallbacks=&jk2_workerEnv_processCallbacks; wEnv->dispatch=&jk2_workerEnv_dispatch;
-- To unsubscribe, e-mail: <mailto:[EMAIL PROTECTED]> For additional commands, e-mail: <mailto:[EMAIL PROTECTED]>