You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@myfaces.apache.org by im...@apache.org on 2006/09/29 10:53:26 UTC

svn commit: r451175 - in /myfaces/tomahawk/trunk/sandbox/core/src/main/java/org/apache/myfaces/custom/conversation: ConversationExternalContext.java ConversationManager.java ConversationServletFilter.java

Author: imario
Date: Fri Sep 29 01:53:26 2006
New Revision: 451175

URL: http://svn.apache.org/viewvc?view=rev&rev=451175
Log:
allow access to the servletContext initParameters through the
conversationExternalContext

Modified:
    myfaces/tomahawk/trunk/sandbox/core/src/main/java/org/apache/myfaces/custom/conversation/ConversationExternalContext.java
    myfaces/tomahawk/trunk/sandbox/core/src/main/java/org/apache/myfaces/custom/conversation/ConversationManager.java
    myfaces/tomahawk/trunk/sandbox/core/src/main/java/org/apache/myfaces/custom/conversation/ConversationServletFilter.java

Modified: myfaces/tomahawk/trunk/sandbox/core/src/main/java/org/apache/myfaces/custom/conversation/ConversationExternalContext.java
URL: http://svn.apache.org/viewvc/myfaces/tomahawk/trunk/sandbox/core/src/main/java/org/apache/myfaces/custom/conversation/ConversationExternalContext.java?view=diff&rev=451175&r1=451174&r2=451175
==============================================================================
--- myfaces/tomahawk/trunk/sandbox/core/src/main/java/org/apache/myfaces/custom/conversation/ConversationExternalContext.java (original)
+++ myfaces/tomahawk/trunk/sandbox/core/src/main/java/org/apache/myfaces/custom/conversation/ConversationExternalContext.java Fri Sep 29 01:53:26 2006
@@ -18,6 +18,7 @@
 import java.util.Map;
 
 import javax.servlet.http.HttpServletRequest;
+import javax.servlet.ServletContext;
 
 /**
  * we need some information we normally get from the FacesContext.getExternalContext BEFORE the FacesContext is active.
@@ -27,15 +28,30 @@
 {
 	private final Map requestMap;
 	private final Map requestParameterMap;
-	
-	protected ConversationExternalContext(Map requestMap, Map requestParameterMap)
+	private final Map initParameterMap;
+
+	protected ConversationExternalContext(Map initParameterMap, Map requestMap, Map requestParameterMap)
 	{
 		this.requestMap = requestMap;
 		this.requestParameterMap = requestParameterMap;
+		this.initParameterMap = initParameterMap;
 	}
-	
-	public static ConversationExternalContext create(final HttpServletRequest httpRequest)
+
+	public static ConversationExternalContext create(final ServletContext servletContext, final HttpServletRequest httpRequest)
 	{
+		Map initParameterMap = new FakeMap()
+		{
+			public boolean containsKey(Object key)
+			{
+				return servletContext.getInitParameter((String) key) != null;
+			}
+
+			public Object get(Object key)
+			{
+				return servletContext.getInitParameter((String) key);
+			}
+		};
+
 		Map requestParameterMap = new FakeMap()
 		{
 			public boolean containsKey(Object key)
@@ -48,7 +64,7 @@
 				return httpRequest.getParameter((String) key);
 			}
 		};
- 
+
 		Map requestMap = new FakeMap()
 		{
 			public boolean containsKey(Object key)
@@ -68,8 +84,8 @@
 				return prev;
 			}
 		};
-		
-		return new ConversationExternalContext(requestMap, requestParameterMap);
+
+		return new ConversationExternalContext(initParameterMap, requestMap, requestParameterMap);
 	}
 
 	public Map getRequestMap()
@@ -80,5 +96,10 @@
 	public Map getRequestParameterMap()
 	{
 		return requestParameterMap;
+	}
+
+	public Map getInitParameterMap()
+	{
+		return initParameterMap;
 	}
 }

Modified: myfaces/tomahawk/trunk/sandbox/core/src/main/java/org/apache/myfaces/custom/conversation/ConversationManager.java
URL: http://svn.apache.org/viewvc/myfaces/tomahawk/trunk/sandbox/core/src/main/java/org/apache/myfaces/custom/conversation/ConversationManager.java?view=diff&rev=451175&r1=451174&r2=451175
==============================================================================
--- myfaces/tomahawk/trunk/sandbox/core/src/main/java/org/apache/myfaces/custom/conversation/ConversationManager.java (original)
+++ myfaces/tomahawk/trunk/sandbox/core/src/main/java/org/apache/myfaces/custom/conversation/ConversationManager.java Fri Sep 29 01:53:26 2006
@@ -105,7 +105,7 @@
 			{
 				return cm;
 			}
-			
+
 			throw new IllegalStateException("no faces context available");
 		}
 		return getInstance(context);
@@ -430,7 +430,7 @@
 	{
 		if (persistenceManagerFactory == null)
 		{
-			String persistenceManagerFactoryName = FacesContext.getCurrentInstance().getExternalContext().getInitParameter(INIT_PERSISTENCE_MANAGER_FACOTRY);
+			String persistenceManagerFactoryName = (String) ConversationServletFilter.getConversationExternalContext().getInitParameterMap().get(INIT_PERSISTENCE_MANAGER_FACOTRY);
 			if (persistenceManagerFactoryName == null)
 			{
 				throw new IllegalArgumentException("please configure '" + INIT_PERSISTENCE_MANAGER_FACOTRY + "' in your web.xml");

Modified: myfaces/tomahawk/trunk/sandbox/core/src/main/java/org/apache/myfaces/custom/conversation/ConversationServletFilter.java
URL: http://svn.apache.org/viewvc/myfaces/tomahawk/trunk/sandbox/core/src/main/java/org/apache/myfaces/custom/conversation/ConversationServletFilter.java?view=diff&rev=451175&r1=451174&r2=451175
==============================================================================
--- myfaces/tomahawk/trunk/sandbox/core/src/main/java/org/apache/myfaces/custom/conversation/ConversationServletFilter.java (original)
+++ myfaces/tomahawk/trunk/sandbox/core/src/main/java/org/apache/myfaces/custom/conversation/ConversationServletFilter.java Fri Sep 29 01:53:26 2006
@@ -8,8 +8,10 @@
 import javax.servlet.ServletException;
 import javax.servlet.ServletRequest;
 import javax.servlet.ServletResponse;
+import javax.servlet.ServletContext;
 import javax.servlet.http.HttpServletRequest;
 import javax.servlet.http.HttpSession;
+import javax.servlet.http.HttpServletResponse;
 
 public class ConversationServletFilter implements Filter
 {
@@ -18,8 +20,11 @@
 	private final static ThreadLocal externalContextTL = new ThreadLocal();
 	private final static ThreadLocal conversationManagerTL = new ThreadLocal();
 
+	private ServletContext servletContext;
+
 	public void init(FilterConfig arg0) throws ServletException
 	{
+		servletContext = arg0.getServletContext();
 	}
 
 	public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException
@@ -38,7 +43,7 @@
 					if (conversationManager != null)
 					{
 						conversationManagerTL.set(conversationManager);
-						externalContextTL.set(ConversationExternalContext.create(httpRequest));
+						externalContextTL.set(ConversationExternalContext.create(servletContext, httpRequest));
 
 						conversationManager.attachPersistence();
 					}