[jboss-cvs] JBossAS SVN: r72704 - trunk/tomcat/src/main/org/jboss/web/tomcat/service.

jboss-cvs-commits at lists.jboss.org jboss-cvs-commits at lists.jboss.org
Thu Apr 24 16:44:09 EDT 2008


Author: bstansberry at jboss.com
Date: 2008-04-24 16:44:09 -0400 (Thu, 24 Apr 2008)
New Revision: 72704

Removed:
   trunk/tomcat/src/main/org/jboss/web/tomcat/service/JvmRouteFilter.java
Log:
[JBAS-5456] Remove outdated org.jboss.web.tomcat.service.JvmRouteFilter

Deleted: trunk/tomcat/src/main/org/jboss/web/tomcat/service/JvmRouteFilter.java
===================================================================
--- trunk/tomcat/src/main/org/jboss/web/tomcat/service/JvmRouteFilter.java	2008-04-24 20:43:03 UTC (rev 72703)
+++ trunk/tomcat/src/main/org/jboss/web/tomcat/service/JvmRouteFilter.java	2008-04-24 20:44:09 UTC (rev 72704)
@@ -1,204 +0,0 @@
-/*
-* JBoss, Home of Professional Open Source
-* Copyright 2005, JBoss Inc., and individual contributors as indicated
-* by the @authors tag. See the copyright.txt in the distribution for a
-* full listing of individual contributors.
-*
-* This is free software; you can redistribute it and/or modify it
-* under the terms of the GNU Lesser General Public License as
-* published by the Free Software Foundation; either version 2.1 of
-* the License, or (at your option) any later version.
-*
-* This software is distributed in the hope that it will be useful,
-* but WITHOUT ANY WARRANTY; without even the implied warranty of
-* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-* Lesser General Public License for more details.
-*
-* You should have received a copy of the GNU Lesser General Public
-* License along with this software; if not, write to the Free
-* Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
-* 02110-1301 USA, or see the FSF site: http://www.fsf.org.
-*/
-package org.jboss.web.tomcat.service;
-
-import java.io.IOException;
-import java.util.Enumeration;
-
-import javax.servlet.Filter;
-import javax.servlet.FilterChain;
-import javax.servlet.FilterConfig;
-import javax.servlet.ServletContext;
-import javax.servlet.ServletException;
-import javax.servlet.ServletRequest;
-import javax.servlet.ServletResponse;
-import javax.servlet.http.HttpServletRequest;
-import javax.servlet.http.HttpServletResponse;
-import javax.servlet.http.HttpSession;
-
-import org.apache.catalina.Session;
-import org.jboss.logging.Logger;
-import org.jboss.util.NestedRuntimeException;
-import org.jboss.web.tomcat.service.session.AbstractJBossManager;
-
-/**
- * Web request filter to specifically handle Tomcat jvmRoute using mod_jk(2)
- * module. We assume that the session is set by cookie only for now, i.e., no
- * support of that from URL. Furthermore, the session id has a format of
- * id.jvmRoute where jvmRoute is used by JK module to determine sticky session
- * during load balancing.
- *
- * @author Ben Wang
- * @author Marco Antonioni
- * @version $Revision: 45726 $
- * @deprecated 4.0.3
- */
-public class JvmRouteFilter
-   implements Filter
-{
-   protected AbstractJBossManager manager_;
-   protected static Logger log_ = Logger.getLogger(JvmRouteFilter.class);
-
-   public void init(FilterConfig filterConfig) throws ServletException
-   {
-      if (log_.isDebugEnabled())
-      {
-         ServletContext sc = filterConfig.getServletContext();
-         Enumeration names = sc.getAttributeNames();
-         while (names.hasMoreElements())
-         {
-            String name = (String) names.nextElement();
-            Object value = sc.getAttribute(name);
-            log_.debug("name=" + name + ", value.className: [" + value.getClass().getName() + "] value.toString: [" + value.toString() + "]");
-         }
-      }
-      manager_ = (AbstractJBossManager) filterConfig.getServletContext().getAttribute("AbstractJBossManager");
-      if (manager_ == null)
-      {
-         throw new RuntimeException("JvmRouteFilter.init(): No AbstractJBossManager found for clustering support.");
-      }
-
-      if (log_.isDebugEnabled())
-         log_.debug("JvmRouteFilter.init(): initializing JvmRouteFilter");
-   }
-
-   public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain)
-      throws IOException, ServletException
-   {
-      // Check if request and response is valid
-      if (!(request instanceof HttpServletRequest && response instanceof HttpServletResponse))
-      {
-         // Don't know how to handle. There is a mistake.
-         throw new RuntimeException("JvmRouteFilter.doFilter(): Not a http request and response type.");
-      }
-
-      // get session id
-      HttpServletRequest req = (HttpServletRequest) request;
-      HttpServletResponse res = (HttpServletResponse) response;
-      HttpSession session = req.getSession(false);
-      if (session != null)
-      {
-         String sessionId = session.getId();
-   
-         // Obtain JvmRoute
-         String jvmRoute = manager_.getJvmRoute();
-         if (log_.isDebugEnabled())
-         {
-            log_.debug("doFilter(): check if need to re-route based on JvmRoute. Session id: " +
-               sessionId + " jvmRoute: " + jvmRoute);
-         }
-
-         if (jvmRoute == null)
-         {
-            throw new RuntimeException("JvmRouteFilter.doFilter(): Tomcat JvmRoute is null. " +
-               "Need to assign a value in Tomcat server.xml for load balancing.");
-         }
-   
-         // Check if incoming session id has JvmRoute appended. If not, append it.
-         // TODO. We handle only get session id by cookie only
-         if (req.isRequestedSessionIdFromURL())
-         {
-            // Warning but do nothing
-            log_.error("JvmRouteFilter.doFilter(): Can't handle clustering where session id is from URL. Will skip.");
-         }
-         else
-         {
-            handleJvmRoute(sessionId, jvmRoute, res);
-         }
-      }
-      chain.doFilter(request, response);
-   }
-
-   protected void handleJvmRoute(String sessionId, String jvmRoute, HttpServletResponse response)
-   {
-      // get requested jvmRoute.
-      // TODO. The current format is assumed to be id.jvmRoute. Can be generalized later.
-      String requestedJvmRoute = null;
-      int ind = sessionId.indexOf(".");
-      if (ind > 0)
-      {
-         requestedJvmRoute = sessionId.substring(sessionId.indexOf(".") + 1, sessionId.length());
-      }
-
-      String sid = sessionId;
-      if (requestedJvmRoute == null)
-      {
-         // If this filter is turned on, we assume we have an appendix of jvmRoute. So this request is new.
-         sid = sessionId + "." + jvmRoute;
-         manager_.setNewSessionCookie(sid, response);
-      }
-      else if (requestedJvmRoute.equals(jvmRoute))
-      {
-         return;  // Nothing more needs to be done.
-      }
-      else
-      {
-         // We just have a failover since jvmRoute does not match. We will replace the old one with the new one.
-         if (log_.isDebugEnabled())
-         {
-            log_.debug("handleJvmRoute(): We have detected a failover with differen jvmRoute." +
-               " old one: " + requestedJvmRoute + " new one: " + jvmRoute + ". Will reset the session id.");
-         }
-         int index = sessionId.indexOf(".");
-         if (index > 0)
-         {
-            String base = sessionId.substring(0, sessionId.indexOf("."));
-            sid = base + "." + jvmRoute;
-         }
-         else
-         {
-            throw new RuntimeException("JvmRouteFilter.handleJvmRoute(): session id doesn't JvmRoute.");
-         }
-
-         manager_.setNewSessionCookie(sid, response);
-         // Change the sessionId with the new one using local jvmRoute
-         Session catalinaSession = null;
-         try
-         {
-            catalinaSession = manager_.findSession(sessionId);
-            // change session id with the new one using local jvmRoute and update cluster if needed.
-            if( catalinaSession != null )
-            {
-               catalinaSession.setId(sid);
-               if (log_.isDebugEnabled())
-               {
-                  log_.debug("handleJvmRoute(): changed catalina session to= [" + sid + "] old one= [" + sessionId + "]");
-               }
-            }
-         }
-         catch (IOException e)
-         {
-            if (log_.isDebugEnabled())
-            {
-               log_.debug("handleJvmRoute(): manager_.findSession() unable to find session= [" + sessionId + "]", e);
-            }
-            throw new NestedRuntimeException("JvmRouteFilter.handleJvmRoute(): cannot find session [" + sessionId + "]", e);
-         }
-      }
-   }
-
-
-   public void destroy()
-   {
-      manager_ = null;
-   }
-}




More information about the jboss-cvs-commits mailing list