Package org.jboss.seam.web

Source Code of org.jboss.seam.web.WicketFilter

package org.jboss.seam.web;

import static org.jboss.seam.ScopeType.APPLICATION;
import static org.jboss.seam.annotations.Install.BUILT_IN;

import java.io.IOException;
import java.util.HashMap;
import java.util.Map;

import javax.servlet.Filter;
import javax.servlet.FilterChain;
import javax.servlet.FilterConfig;
import javax.servlet.ServletException;
import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse;
import javax.servlet.http.HttpServletRequest;

import org.jboss.seam.Component;
import org.jboss.seam.ScopeType;
import org.jboss.seam.annotations.Install;
import org.jboss.seam.annotations.Name;
import org.jboss.seam.annotations.Scope;
import org.jboss.seam.annotations.intercept.BypassInterceptors;
import org.jboss.seam.servlet.ContextualHttpServletRequest;

@Scope(APPLICATION)
@Name("org.jboss.seam.web.wicketFilter")
@Install(precedence = BUILT_IN, dependencies="org.jboss.seam.wicket.web.wicketFilterInstantiator")
@BypassInterceptors
@org.jboss.seam.annotations.web.Filter
public class WicketFilter extends AbstractFilter
{
  
   private Filter delegate = null;

   private String applicationClass;
  
   private String applicationFactoryClass;
  
   private boolean detectPortletContext;
  
  
  
   public void doFilter(final ServletRequest servletRequest, final ServletResponse servletResponse, final FilterChain chain) throws IOException, ServletException
   {
      if (delegate==null)
      {
         chain.doFilter(servletRequest, servletResponse);
      }
      else
      {
         new ContextualHttpServletRequest((HttpServletRequest) servletRequest)
         {
            @Override
            public void process() throws Exception
            {
               delegate.doFilter(servletRequest, servletResponse, chain);
            }
           
         }.run();
      }
   }
  
   @Override
   public void init(FilterConfig filterConfig) throws ServletException
  
      super.init(filterConfig);
     
      delegate = (javax.servlet.Filter) Component.getInstance("org.jboss.seam.wicket.web.wicketFilterInstantiator", ScopeType.STATELESS);
     
      if (delegate!=null)
      {
         Map<String, String> parameters = new HashMap<String, String>();
         if ( getApplicationClass() != null )
         {
            parameters.put( "applicationClassName", getApplicationClass() );
         }
         if ( getUrlPattern() != null )
         {
            parameters.put("filterMappingUrlPattern", getUrlPattern());
         }
         else
         {
            parameters.put("filterMappingUrlPattern", "/*");
         }
         if (getApplicationFactoryClass() != null)
         {
            parameters.put("applicationFactoryClassName", getApplicationFactoryClass());
         }
         if (isDetectPortletContext())
         {
            parameters.put("detectPortletContext", "true");
         }
         delegate.init( new FilterConfigWrapper(filterConfig, parameters) );
      }
   }
  
   public String getApplicationClass()
   {
      return applicationClass;
   }
  
   public void setApplicationClass(String applicationClassName)
   {
      this.applicationClass = applicationClassName;
   }
  
   public String getApplicationFactoryClass()
   {
      return applicationFactoryClass;
   }
  
   public void setApplicationFactoryClass(String applicationFactoryClass)
   {
      this.applicationFactoryClass = applicationFactoryClass;
   }
  
   public boolean isDetectPortletContext()
   {
      return detectPortletContext;
   }
  
   public void setDetectPortletContext(boolean detectPortletContext)
   {
      this.detectPortletContext = detectPortletContext;
   }
  
}
TOP

Related Classes of org.jboss.seam.web.WicketFilter

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.