costin 2002/07/12 10:49:20 Added: util/java/org/apache/tomcat/util/handler HandlerManager.java Log: Initial handler manager. This is a simplified version of the Hook, using typed hooks ( TcHandler ). The model allows both iterative and recursive hooks. It doesn't deal with configuration - including the complex per/context and global. This should be done externally, to keep the hook simple. Please review and contribute :-) Revision Changes Path 1.1 jakarta-tomcat-connectors/util/java/org/apache/tomcat/util/handler/HandlerManager.java Index: HandlerManager.java =================================================================== /* * ==================================================================== * * The Apache Software License, Version 1.1 * * Copyright (c) 1999 The Apache Software Foundation. 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. 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", "Tomcat", 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 [EMAIL PROTECTED] * * 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 Group. * * 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 * individuals on behalf of the Apache Software Foundation. For more * information on the Apache Software Foundation, please see * <http://www.apache.org/>. * * [Additional notices, if required by prior licensing conditions] * */ package org.apache.tomcat.util.handler; import java.io.*; import java.net.*; import java.util.*; import org.apache.tomcat.util.IntrospectionUtils; /** Hooks support. Hooks implement a chain-of-command pattern, and * are commonly used in most web servers as a mechanism of extensibility. * * The HandlerManager class will provide support for registering and maintaining * a list of modules implementing each hook. * * Each hook will have a name and an id. Name-based operations are slower, it is * recomended you use them only in non-critical code. The name-id association is * handled by NoteManager. * * * @todo Merging. It is possible to have different hooks on different contexts * ( server, context, servlet ), we need to merge them. */ public class HandlerManager { // hook name -> hook[] private Hashtable hookMap; private TcHandler hooks[][]; public HandlerManager() { } /** Add a new handler. */ public void addHandler( String name, TcHandler hook ) { } public TcHandler[] getHandlers( int hookId ) { return hooks[hookId]; } public TcHandler[] getHandlers( String name ) { return getHandlers( 0 ); } public Hashtable getHookMap() { return hookMap; } }
-- To unsubscribe, e-mail: <mailto:[EMAIL PROTECTED]> For additional commands, e-mail: <mailto:[EMAIL PROTECTED]>