Mega Code Archive

 
Categories / Java / Servlets
 

Fake session

/*  * Copyright 2005 Joe Walker  *  * Licensed 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.  */ import java.util.Collections; import java.util.Enumeration; import java.util.HashMap; import java.util.Map; import javax.servlet.ServletContext; import javax.servlet.http.HttpSession; /**  * For the benefit of anyone that wants to create a fake HttpSession  * that doesn't do anything other than not be null.  * @author Joe Walker [joe at getahead dot ltd dot uk]  */ public class FakeHttpSession implements HttpSession {     /**      * Setup the creation time      */     public FakeHttpSession()     {         creationTime = System.currentTimeMillis();     }     /**      * Setup the creation time      * @param id The new session id      */     public FakeHttpSession(String id)     {         this.id = id;         creationTime = System.currentTimeMillis();     }     /* (non-Javadoc)      * @see javax.servlet.http.HttpSession#getCreationTime()      */     public long getCreationTime()     {         return creationTime;     }     /* (non-Javadoc)      * @see javax.servlet.http.HttpSession#getId()      */     public String getId()     {         if (id == null)         {             System.out.println("Inventing data in FakeHttpSession.getId() to remain plausible.");             id = "fake";         }         return id;     }     /* (non-Javadoc)      * @see javax.servlet.http.HttpSession#getLastAccessedTime()      */     public long getLastAccessedTime()     {         return creationTime;     }     /* (non-Javadoc)      * @see javax.servlet.http.HttpSession#getServletContext()      */     public ServletContext getServletContext()     {         return null;     }     /* (non-Javadoc)      * @see javax.servlet.http.HttpSession#setMaxInactiveInterval(int)      */     public void setMaxInactiveInterval(int maxInactiveInterval)     {         this.maxInactiveInterval = maxInactiveInterval;     }     /* (non-Javadoc)      * @see javax.servlet.http.HttpSession#getMaxInactiveInterval()      */     public int getMaxInactiveInterval()     {         return maxInactiveInterval;     }     /**      * @see javax.servlet.http.HttpSession#getSessionContext()      * @deprecated      */     @SuppressWarnings({"UnnecessaryFullyQualifiedName"})     @Deprecated     public javax.servlet.http.HttpSessionContext getSessionContext()     {         return null;     }     /* (non-Javadoc)      * @see javax.servlet.http.HttpSession#getAttribute(java.lang.String)      */     public Object getAttribute(String name)     {         return attributes.get(name);     }     /* (non-Javadoc)      * @see javax.servlet.http.HttpSession#getValue(java.lang.String)      */     @Deprecated     public Object getValue(String name)     {         return attributes.get(name);     }     /* (non-Javadoc)      * @see javax.servlet.http.HttpSession#getAttributeNames()      */     public Enumeration<String> getAttributeNames()     {         return Collections.enumeration(attributes.keySet());     }     /* (non-Javadoc)      * @see javax.servlet.http.HttpSession#getValueNames()      */     @Deprecated     public String[] getValueNames()     {         return attributes.keySet().toArray(new String[attributes.keySet().size()]);     }     /* (non-Javadoc)      * @see javax.servlet.http.HttpSession#setAttribute(java.lang.String, java.lang.Object)      */     public void setAttribute(String name, Object value)     {         attributes.put(name, value);     }     /* (non-Javadoc)      * @see javax.servlet.http.HttpSession#putValue(java.lang.String, java.lang.Object)      */     @Deprecated     public void putValue(String name, Object value)     {         attributes.put(name, value);     }     /* (non-Javadoc)      * @see javax.servlet.http.HttpSession#removeAttribute(java.lang.String)      */     public void removeAttribute(String name)     {         attributes.remove(name);     }     /* (non-Javadoc)      * @see javax.servlet.http.HttpSession#removeValue(java.lang.String)      */     @Deprecated     public void removeValue(String name)     {         attributes.remove(name);     }     /* (non-Javadoc)      * @see javax.servlet.http.HttpSession#invalidate()      */     public void invalidate()     {     }     /* (non-Javadoc)      * @see javax.servlet.http.HttpSession#isNew()      */     public boolean isNew()     {         return true;     }     /**      * The session id      */     private String id = null;     /**      * The list of attributes      */     private Map<String, Object> attributes = new HashMap<String, Object>();     /**      * When were we created      */     private long creationTime;     /**      * How long before we timeout?      */     private int maxInactiveInterval = 30 * 60 * 1000; }