Save This Page
Home » trinidad-1.2.8-src-all » org.apache.myfaces.trinidad » webapp » [javadoc | source]
    1   /*
    2    *  Licensed to the Apache Software Foundation (ASF) under one
    3    *  or more contributor license agreements.  See the NOTICE file
    4    *  distributed with this work for additional information
    5    *  regarding copyright ownership.  The ASF licenses this file
    6    *  to you under the Apache License, Version 2.0 (the
    7    *  "License"); you may not use this file except in compliance
    8    *  with the License.  You may obtain a copy of the License at
    9    * 
   10    *  http://www.apache.org/licenses/LICENSE-2.0
   11    * 
   12    *  Unless required by applicable law or agreed to in writing,
   13    *  software distributed under the License is distributed on an
   14    *  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
   15    *  KIND, either express or implied.  See the License for the
   16    *  specific language governing permissions and limitations
   17    *  under the License.
   18    */
   19   package org.apache.myfaces.trinidad.webapp;
   20   
   21   import java.io.IOException;
   22   
   23   import javax.servlet.Filter;
   24   import javax.servlet.FilterChain;
   25   import javax.servlet.FilterConfig;
   26   import javax.servlet.ServletException;
   27   import javax.servlet.ServletRequest;
   28   import javax.servlet.ServletResponse;
   29   
   30   import org.apache.myfaces.trinidad.logging.TrinidadLogger;
   31   
   32   /**
   33    * Servlet filter that ensures that Trinidad is properly initialized
   34    * by establishing a RequestContext object;  this filter also processes file
   35    * uploads.
   36    * <p>
   37    * @version $Name:  $ ($Revision: adfrt/faces/adf-faces-api/src/main/java/oracle/adf/view/faces/webapp/AdfFacesFilter.java#0 $) $Date: 10-nov-2005.19:08:29 $
   38    */
   39   public class TrinidadFilter implements Filter
   40   {
   41     public void init(
   42       FilterConfig filterConfig) throws ServletException
   43     {
   44       ClassLoader loader = Thread.currentThread().getContextClassLoader();
   45       if (loader == null)
   46         _LOG.severe("CANNOT_FIND_CONTEXT_CLASS_LOADER");
   47       else
   48       {
   49         try
   50         {
   51           Class<?> proxiedClass = loader.loadClass(
   52                         "org.apache.myfaces.trinidadinternal.webapp.TrinidadFilterImpl");
   53           _proxied = (Filter) proxiedClass.newInstance();
   54           _proxied.init(filterConfig);
   55         }
   56         catch (ClassNotFoundException cnfe)
   57         {
   58           _LOG.severe(cnfe);
   59         }
   60         catch (IllegalAccessException iae)
   61         {
   62           _LOG.severe(iae);
   63         }
   64         catch (InstantiationException ie)
   65         {
   66           _LOG.severe(ie);
   67         }
   68         catch (RuntimeException e)
   69         {
   70           // OC4J was not reporting these errors properly:
   71           _LOG.severe(e);
   72           throw e;
   73         }
   74       }
   75   
   76   
   77     }
   78   
   79     public void destroy()
   80     {
   81       if (_proxied != null)
   82         _proxied.destroy();
   83       _proxied = null;
   84     }
   85   
   86     public void doFilter(
   87       ServletRequest  request,
   88       ServletResponse response,
   89       FilterChain     chain) throws IOException, ServletException
   90     {
   91       if (_proxied != null)
   92         _proxied.doFilter(request, response, chain);
   93       else
   94         chain.doFilter(request, response);
   95     }
   96   
   97     private static final TrinidadLogger _LOG = TrinidadLogger.createTrinidadLogger(TrinidadFilter.class);
   98   
   99     private Filter _proxied;
  100   }

Save This Page
Home » trinidad-1.2.8-src-all » org.apache.myfaces.trinidad » webapp » [javadoc | source]