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();
}