⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 jk_registry.c

📁 Tomcat 4.1与WebServer集成组件的源代码包.
💻 C
字号:
/* ========================================================================= * *                                                                           * *                 The Apache Software License,  Version 1.1                 * *                                                                           * *          Copyright (c) 1999-2002 The Apache Software Foundation.          * *                           All rights reserved.                            * *                                                                           * * ========================================================================= * *                                                                           * * Redistribution and use in source and binary forms,  with or without modi- * * fication, are permitted provided that the following conditions are met:   * *                                                                           * * 1. Redistributions of source code  must retain the above copyright notice * *    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. The end-user documentation  included with the redistribution,  if any, * *    must include the following acknowlegement:                             * *                                                                           * *       "This product includes  software developed  by the Apache  Software * *        Foundation <http://www.apache.org/>."                              * *                                                                           * *    Alternately, this acknowlegement may appear in the software itself, if * *    and wherever such third-party acknowlegements normally appear.         * *                                                                           * * 4. The names  "The  Jakarta  Project",  "Jk",  and  "Apache  Software     * *    Foundation"  must not be used  to endorse or promote  products derived * *    from this  software without  prior  written  permission.  For  written * *    permission, please contact <apache@apache.org>.                        * *                                                                           * * 5. Products derived from this software may not be called "Apache" nor may * *    "Apache" appear in their names without prior written permission of the * *    Apache Software Foundation.                                            * *                                                                           * * THIS SOFTWARE IS PROVIDED "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 APACHE  SOFTWARE  FOUNDATION 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 indivi- * * duals on behalf of the  Apache Software Foundation.  For more information * * on the Apache Software Foundation, please see <http://www.apache.org/>.   * *                                                                           * * ========================================================================= */#include "jk_global.h"#include "jk_logger.h"#include "jk_pool.h"#include "jk_service.h"#include "jk_env.h" #include "jk_registry.h"/*************************************************************************** * Description: Worker list                                                * * Version:     $Revision: 1.28 $                                           * ***************************************************************************//** Static declarations for all 'hardcoded' modules. This is a hack,  *  needed to initialize the static 'type system' for jk.  * *  A better solution would use 'introspection' and dlsyms to locate the  *  factory, using the common naming schema. This is a bit harder to implement *  ( we can do it later ) and may have problems on some buggy OSs ( I assume *  most decent systems support .so/.dll and symbols, but you can never know ) *  *  Both solutions could be used in paralel - for start we'll use this *  hack and static registration. Don't put anything else here, just  *  static declarations for the factory methods and the registrerFactory() call. *  * (based on jk_worker_list.h ) * @author:      Gal Shachor <shachor@il.ibm.com>                           * * @author:      Henri Gomez <hgomez@slib.fr>                               * * @author:      Costin Manolache *   *//** *   Init the components that we compile in by default.  *   In future we should have a more flexible mechanism that would allow  *   different server modules to load and register various jk objects, or  *   even have jk load it's own modules from .so files. *  *   For now the static registrartion should work. */void JK_METHOD jk2_registry_init(jk_env_t *env) {  if( env==NULL ) {    /* XXX do something ! */    printf("jk2_registry_init: Assertion failed, env==NULL\n" );    return;  }  /**   * Because the functions being referenced here (apjp14_work_factory, and   * lb_worker_factory) don't match the prototype declared for registerFactory,   * and because the MetroWerks compiler (used for NetWare) treats this as an   * error, I'm casting the function pointers to (void *) - mmanders   */  env->registerFactory( env, "logger.file",   jk2_logger_file_factory );  env->registerFactory( env, "logger.win32",   jk2_logger_win32_factory );  env->registerFactory( env, "workerEnv", jk2_workerEnv_factory );  env->registerFactory( env, "uriMap", jk2_uriMap_factory );  env->registerFactory( env, "uriEnv", jk2_uriEnv_factory );  env->registerFactory( env, "endpoint", jk2_endpoint_factory );  env->registerFactory( env, "uri", jk2_uriEnv_factory );  env->registerFactory( env, "config", jk2_config_file_factory );    env->registerFactory( env, "ajp13", jk2_worker_ajp13_factory );  env->registerFactory( env, "lb",    jk2_worker_lb_factory );  env->registerFactory( env, "status", jk2_worker_status_factory );  env->registerFactory( env, "run", jk2_worker_run_factory );  env->registerFactory( env, "channel.un", jk2_channel_un_factory );  env->registerFactory( env, "channel.apr",jk2_channel_apr_socket_factory );  env->registerFactory( env, "shm", jk2_shm_factory );  env->registerFactory( env, "channel.socket", jk2_channel_socket_factory );    env->registerFactory( env, "handler.response", jk2_handler_response_factory );  env->registerFactory( env, "handler.logon",   jk2_handler_logon_factory );    env->registerFactory( env, "threadMutex", jk2_mutex_thread_factory );  env->registerFactory( env, "procMutex", jk2_mutex_proc_factory );  env->registerFactory( env, "channel.jni",   jk2_channel_jni_factory );  env->registerFactory( env, "worker.jni",   jk2_worker_jni_factory );  env->registerFactory( env, "vm",   jk2_vm_factory );  env->registerFactory( env, "signal",  jk2_signal_factory);  env->registerFactory( env, "user",  jk2_user_factory);}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -