Start line:  
End line:  

Snippet Preview

Snippet HTML Code

Stack Overflow Questions
  /*
   * Licensed to the Apache Software Foundation (ASF) under one or more
   * contributor license agreements.  See the NOTICE file distributed with
   * this work for additional information regarding copyright ownership.
   * The ASF licenses this file to You under the Apache License, Version 2.0
   * (the "License"); you may not use this file except in compliance with
   * the License.  You may obtain a copy of the License at
   * 
   *      http://www.apache.org/licenses/LICENSE-2.0
  * 
  * Unless required by applicable law or agreed to in writing, software
  * distributed under the License is distributed on an "AS IS" BASIS,
  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
 
 
 package org.apache.catalina.valves;
 
 
 
 
Convenience base class for implementations of the Valve interface. A subclass MUST implement an invoke() method to provide the required functionality, and MAY implement the Lifecycle interface to provide configuration management and lifecycle support.

Author(s):
Craig R. McClanahan
Version:
$Revision: 1703 $ $Date: 2011-04-13 15:25:47 +0200 (Wed, 13 Apr 2011) $
 
 
 public abstract class ValveBase
     implements ContainedValveMBeanRegistration {
 
 
     //------------------------------------------------------ Instance Variables
 

    
The Container whose pipeline this Valve is a component of.
 
     protected Container container = null;


    
Descriptive information about this Valve implementation. This value should be overridden by subclasses.
 
     protected static String info =
         "org.apache.catalina.core.ValveBase/1.0";


    
The next Valve in the pipeline this Valve is a component of.
 
     protected Valve next = null;
 
 
     //-------------------------------------------------------------- Properties
 

    
Return the Container with which this Valve is associated, if any.
 
     public Container getContainer() {
 
         return ();
 
     }


    
Set the Container with which this Valve is associated, if any.

Parameters:
container The new associated container
 
    public void setContainer(Container container) {
        this. = container;
    }


    
Return descriptive information about this Valve implementation.
    public String getInfo() {
        return ();
    }


    
Return the next Valve in this pipeline, or null if this is the last Valve in the pipeline.
    public Valve getNext() {
        return ();
    }


    
Set the Valve that follows this one in the pipeline it is part of.

Parameters:
valve The new next valve
    public void setNext(Valve valve) {
        this. = valve;
    }
    //---------------------------------------------------------- Public Methods


    
Execute a periodic task, such as reloading, etc. This method will be invoked inside the classloading context of this container. Unexpected throwables will be caught and logged.
    public void backgroundProcess() {
    }


    
The implementation-specific logic represented by this Valve. See the Valve description for the normal design patterns for this method.

This method MUST be provided by a subclass.

Parameters:
request The servlet request to be processed
response The servlet response to be created
Throws:
java.io.IOException if an input/output error occurs
javax.servlet.ServletException if a servlet error occurs
    public abstract void invoke(Request requestResponse response)
        throws IOExceptionServletException;


    
Process a Comet event. This method will rarely need to be provided by a subclass, unless it needs to reassociate a particular object with the thread that is processing the request.

Parameters:
request The servlet request to be processed
response The servlet response to be processed
event The event to be processed
Throws:
java.io.IOException if an input/output error occurs, or is thrown by a subsequently invoked Valve, Filter, or Servlet
javax.servlet.ServletException if a servlet error occurs, or is thrown by a subsequently invoked Valve, Filter, or Servlet
    public void event(Request requestResponse responseHttpEvent event)
        throws IOExceptionServletException {
        // Perform the request
        getNext().event(requestresponseevent);
    }


    
Return a String rendering of this object.
    public String toString() {
        StringBuilder sb = new StringBuilder(this.getClass().getName());
        sb.append("[");
        if ( != null)
            sb.append(.getName());
        sb.append("]");
        return (sb.toString());
    }
    // -------------------- JMX and Registration  --------------------
    protected String domain;
    protected ObjectName oname;
    protected MBeanServer mserver;
    protected ObjectName controller;
    public ObjectName getObjectName() {
        return ;
    }
    public void setObjectName(ObjectName oname) {
        this. = oname;
    }
    public String getDomain() {
        return ;
    }
    public ObjectName preRegister(MBeanServer server,
                                  ObjectName namethrows Exception {
        =name;
        =server;
        =name.getDomain();
        return name;
    }
    public void postRegister(Boolean registrationDone) {
    }
    public void preDeregister() throws Exception {
    }
    public void postDeregister() {
    }
    public ObjectName getController() {
        return ;
    }
    public void setController(ObjectName controller) {
        this. = controller;
    }

    
From the name, extract the parent object name

Parameters:
valveName The valve name
Returns:
ObjectName The parent name
    public ObjectName getParentNameObjectName valveName ) {
        return null;
    }
    public ObjectName createObjectName(String domainObjectName parent)
            throws MalformedObjectNameException
    {
        Container container=this.getContainer();
        ifcontainer == null || ! (container instanceof ContainerBase) )
            return null;
        ContainerBase containerBase=(ContainerBase)container;
        Pipeline pipe=containerBase.getPipeline();
        Valve valves[]=pipe.getValves();
        /* Compute the "parent name" part */
        String parentName="";
        if (container instanceof Engine) {
        } else if (container instanceof Host) {
            parentName=",host=" +container.getName();
        } else if (container instanceof Context) {
                    String path = ((Context)container).getPath();
                    if (path.length() < 1) {
                        path = "/";
                    }
                    Host host = (Hostcontainer.getParent();
                    parentName=",path=" + path + ",host=" +
                            host.getName();
        } else if (container instanceof Wrapper) {
            Context ctx = (Contextcontainer.getParent();
            String path = ctx.getPath();
            if (path.length() < 1) {
                path = "/";
            }
            Host host = (Hostctx.getParent();
            parentName=",servlet=" + container.getName() +
                    ",path=" + path + ",host=" + host.getName();
        }
        String className=this.getClass().getName();
        int period = className.lastIndexOf('.');
        if (period >= 0)
            className = className.substring(period + 1);
        int seq=0;
        forint i=0; i<valves.lengthi++ ) {
            // Find other valves with the same name
            if (valves[i] == this) {
                break;
            }
            ifvalves[i]!=null &&
                    valves[i].getClass() == this.getClass() ) {
                seq++;
            }
        }
        String ext="";
        ifseq > 0 ) {
            ext=",seq=" + seq;
        }
        return new ObjectNamedomain + ":type=Valve,name=" + className + ext + parentName);
    }
    // -------------------- JMX data  --------------------
    public ObjectName getContainerName() {
        if== nullreturn null;
        return ((ContainerBase)).getJmxName();
    }
New to GrepCode? Check out our FAQ X