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/05/04 23:38:12 UTC

svn commit: r399864 - in /myfaces/tomahawk/trunk/sandbox: core/src/main/java/org/apache/myfaces/custom/conversation/ core/src/main/java/org/apache/myfaces/custom/requestParameterProvider/ core/src/main/tld/ examples/ examples/src/main/webapp/ examples/...

Author: imario
Date: Thu May  4 14:38:11 2006
New Revision: 399864

URL: http://svn.apache.org/viewcvs?rev=399864&view=rev
Log:
Added RequestParameterProvider stuff. Thanks to Thomas Obereder!
Adapted conversation tag to use RequestParameterProvider.

Added:
    myfaces/tomahawk/trunk/sandbox/core/src/main/java/org/apache/myfaces/custom/conversation/ConversationRequestParameterProvider.java   (with props)
    myfaces/tomahawk/trunk/sandbox/core/src/main/java/org/apache/myfaces/custom/requestParameterProvider/
    myfaces/tomahawk/trunk/sandbox/core/src/main/java/org/apache/myfaces/custom/requestParameterProvider/RequestParameterProvider.java   (with props)
    myfaces/tomahawk/trunk/sandbox/core/src/main/java/org/apache/myfaces/custom/requestParameterProvider/RequestParameterProviderManager.java   (with props)
    myfaces/tomahawk/trunk/sandbox/core/src/main/java/org/apache/myfaces/custom/requestParameterProvider/RequestParameterResponseWrapper.java   (with props)
    myfaces/tomahawk/trunk/sandbox/core/src/main/java/org/apache/myfaces/custom/requestParameterProvider/RequestParameterServletFilter.java   (with props)
Modified:
    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/ConversationViewHandler.java
    myfaces/tomahawk/trunk/sandbox/core/src/main/tld/myfaces_sandbox.tld
    myfaces/tomahawk/trunk/sandbox/examples/pom.xml
    myfaces/tomahawk/trunk/sandbox/examples/src/main/webapp/WEB-INF/web.xml
    myfaces/tomahawk/trunk/sandbox/examples/src/main/webapp/home.jsp

Modified: myfaces/tomahawk/trunk/sandbox/core/src/main/java/org/apache/myfaces/custom/conversation/ConversationManager.java
URL: http://svn.apache.org/viewcvs/myfaces/tomahawk/trunk/sandbox/core/src/main/java/org/apache/myfaces/custom/conversation/ConversationManager.java?rev=399864&r1=399863&r2=399864&view=diff
==============================================================================
--- 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 Thu May  4 14:38:11 2006
@@ -24,6 +24,7 @@
 import javax.faces.context.FacesContext;
 import javax.servlet.http.HttpSession;
 
+import org.apache.myfaces.custom.requestParameterProvider.RequestParameterProviderManager;
 import org.apache.myfaces.shared_tomahawk.util.ClassUtils;
 
 /**
@@ -76,7 +77,14 @@
 			{
 				throw new IllegalStateException("ConversationServletFilter not called. Please configure the filter org.apache.myfaces.custom.conversation.ConversationServletFilter in your web.xml to cover your faces requests.");
 			}
+			
+			// create manager
 			conversationManager = new ConversationManager();
+			
+			// initialize environmental systems
+			RequestParameterProviderManager.getInstance(context).register(new ConversationRequestParameterProvider());
+
+			// set mark
 			context.getExternalContext().getSessionMap().put(CONVERSATION_MANAGER_KEY, conversationManager);
 		}
 		
@@ -262,8 +270,10 @@
 	{
 		FacesContext context = FacesContext.getCurrentInstance();
 		
-		return context.getExternalContext().getRequestMap().containsKey(CONVERSATION_CONTEXT_REQ) ||
-			context.getExternalContext().getRequestParameterMap().containsKey(CONVERSATION_CONTEXT_PARAM);
+		return
+			(context.getExternalContext().getRequestMap().containsKey(CONVERSATION_CONTEXT_REQ) ||
+			context.getExternalContext().getRequestParameterMap().containsKey(CONVERSATION_CONTEXT_PARAM)) &&
+			getConversationContext() != null;
 	}
 
 	/**

Added: myfaces/tomahawk/trunk/sandbox/core/src/main/java/org/apache/myfaces/custom/conversation/ConversationRequestParameterProvider.java
URL: http://svn.apache.org/viewcvs/myfaces/tomahawk/trunk/sandbox/core/src/main/java/org/apache/myfaces/custom/conversation/ConversationRequestParameterProvider.java?rev=399864&view=auto
==============================================================================
--- myfaces/tomahawk/trunk/sandbox/core/src/main/java/org/apache/myfaces/custom/conversation/ConversationRequestParameterProvider.java (added)
+++ myfaces/tomahawk/trunk/sandbox/core/src/main/java/org/apache/myfaces/custom/conversation/ConversationRequestParameterProvider.java Thu May  4 14:38:11 2006
@@ -0,0 +1,61 @@
+/*
+ * Copyright 2006 The Apache Software Foundation.
+ *
+ * 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.
+ */
+package org.apache.myfaces.custom.conversation;
+
+import org.apache.myfaces.custom.requestParameterProvider.RequestParameterProvider;
+
+/**
+ * adds the required fields (conversationContext) to the request parameters.
+ * 
+ * @author imario@apache.org
+ */
+public class ConversationRequestParameterProvider implements RequestParameterProvider
+{
+	private final static String[] REQUEST_PARAMETERS = new String[]
+               {
+		ConversationManager.CONVERSATION_CONTEXT_PARAM
+               };
+	
+	public String getFieldValue(String field)
+	{
+		ConversationManager conversationManager = ConversationManager.getInstance();
+		if (conversationManager == null)
+		{
+			throw new IllegalStateException("can find the conversationManager");
+		}
+		if (!conversationManager.hasConversationContext())
+		{
+			return null;
+		}
+		
+		return Long.toString(conversationManager.getConversationContextId().longValue(), Character.MAX_RADIX);
+	}
+
+	public String[] getFields()
+	{
+		ConversationManager conversationManager = ConversationManager.getInstance();
+		if (conversationManager == null)
+		{
+			throw new IllegalStateException("can find the conversationManager");
+		}
+		if (!conversationManager.hasConversationContext())
+		{
+			return null;
+		}
+		
+		return REQUEST_PARAMETERS; 
+	}
+}

Propchange: myfaces/tomahawk/trunk/sandbox/core/src/main/java/org/apache/myfaces/custom/conversation/ConversationRequestParameterProvider.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: myfaces/tomahawk/trunk/sandbox/core/src/main/java/org/apache/myfaces/custom/conversation/ConversationRequestParameterProvider.java
------------------------------------------------------------------------------
    svn:keywords = Date Author Id Revision HeadURL

Propchange: myfaces/tomahawk/trunk/sandbox/core/src/main/java/org/apache/myfaces/custom/conversation/ConversationRequestParameterProvider.java
------------------------------------------------------------------------------
    svn:mime-type = text/plain

Modified: myfaces/tomahawk/trunk/sandbox/core/src/main/java/org/apache/myfaces/custom/conversation/ConversationViewHandler.java
URL: http://svn.apache.org/viewcvs/myfaces/tomahawk/trunk/sandbox/core/src/main/java/org/apache/myfaces/custom/conversation/ConversationViewHandler.java?rev=399864&r1=399863&r2=399864&view=diff
==============================================================================
--- myfaces/tomahawk/trunk/sandbox/core/src/main/java/org/apache/myfaces/custom/conversation/ConversationViewHandler.java (original)
+++ myfaces/tomahawk/trunk/sandbox/core/src/main/java/org/apache/myfaces/custom/conversation/ConversationViewHandler.java Thu May  4 14:38:11 2006
@@ -67,6 +67,7 @@
 
 	public String getActionURL(FacesContext context, String viewId)
 	{
+/*		
 		ConversationManager conversationManager = ConversationManager.getInstance(context);
 		if (conversationManager.hasConversationContext())
 		{
@@ -86,8 +87,11 @@
 		}
 		else
 		{
+*/		
 			return original.getActionURL(context, viewId);
+/*			
 		}
+*/		
 	}
 
 	public String getResourceURL(FacesContext context, String path)

Added: myfaces/tomahawk/trunk/sandbox/core/src/main/java/org/apache/myfaces/custom/requestParameterProvider/RequestParameterProvider.java
URL: http://svn.apache.org/viewcvs/myfaces/tomahawk/trunk/sandbox/core/src/main/java/org/apache/myfaces/custom/requestParameterProvider/RequestParameterProvider.java?rev=399864&view=auto
==============================================================================
--- myfaces/tomahawk/trunk/sandbox/core/src/main/java/org/apache/myfaces/custom/requestParameterProvider/RequestParameterProvider.java (added)
+++ myfaces/tomahawk/trunk/sandbox/core/src/main/java/org/apache/myfaces/custom/requestParameterProvider/RequestParameterProvider.java Thu May  4 14:38:11 2006
@@ -0,0 +1,12 @@
+package org.apache.myfaces.custom.requestParameterProvider;
+
+/**
+ * @author Thomas Oberder
+ * @author Mario Ivankovits
+ * @version 27.04.2006 22:41:11
+ */
+public interface RequestParameterProvider
+{
+    public String[] getFields();
+    public String   getFieldValue(String field);
+}

Propchange: myfaces/tomahawk/trunk/sandbox/core/src/main/java/org/apache/myfaces/custom/requestParameterProvider/RequestParameterProvider.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: myfaces/tomahawk/trunk/sandbox/core/src/main/java/org/apache/myfaces/custom/requestParameterProvider/RequestParameterProvider.java
------------------------------------------------------------------------------
    svn:keywords = Date Author Id Revision HeadURL

Propchange: myfaces/tomahawk/trunk/sandbox/core/src/main/java/org/apache/myfaces/custom/requestParameterProvider/RequestParameterProvider.java
------------------------------------------------------------------------------
    svn:mime-type = text/plain

Added: myfaces/tomahawk/trunk/sandbox/core/src/main/java/org/apache/myfaces/custom/requestParameterProvider/RequestParameterProviderManager.java
URL: http://svn.apache.org/viewcvs/myfaces/tomahawk/trunk/sandbox/core/src/main/java/org/apache/myfaces/custom/requestParameterProvider/RequestParameterProviderManager.java?rev=399864&view=auto
==============================================================================
--- myfaces/tomahawk/trunk/sandbox/core/src/main/java/org/apache/myfaces/custom/requestParameterProvider/RequestParameterProviderManager.java (added)
+++ myfaces/tomahawk/trunk/sandbox/core/src/main/java/org/apache/myfaces/custom/requestParameterProvider/RequestParameterProviderManager.java Thu May  4 14:38:11 2006
@@ -0,0 +1,135 @@
+package org.apache.myfaces.custom.requestParameterProvider;
+
+import java.util.ArrayList;
+import java.util.Iterator;
+import java.util.List;
+
+import javax.faces.context.FacesContext;
+
+import org.apache.commons.logging.Log;
+import org.apache.commons.logging.LogFactory;
+
+/**
+ * @author Thomas Obereder
+ * @version 27.04.2006 22:42:32
+ */
+public class RequestParameterProviderManager
+{
+    private static final Log LOG = LogFactory.getLog(RequestParameterProviderManager.class);
+
+    private static final String PAGE_PARAMETER_SEP = "?";
+    private static final String PARAMETER_SEP = "&";
+    private static final String PARAMETER_PROVIDER_MANAGER_KEY = "org.apache.myfaces.RequestParameterProviderManager";
+
+    private List providers;
+
+
+    private RequestParameterProviderManager()
+    {
+        providers = new ArrayList();
+    }
+
+    public static RequestParameterProviderManager getInstance()
+    {
+        FacesContext context = FacesContext.getCurrentInstance();
+        if (context == null)
+        {
+            throw new IllegalStateException("no faces context available!");
+        }
+        return getInstance(context);
+    }
+
+    public static RequestParameterProviderManager getInstance(FacesContext context)
+    {
+        RequestParameterProviderManager manager =
+                (RequestParameterProviderManager) context.getExternalContext().getSessionMap().get(PARAMETER_PROVIDER_MANAGER_KEY);
+
+        if (manager == null)
+        {
+            manager = new RequestParameterProviderManager();
+            context.getExternalContext().getSessionMap().put(PARAMETER_PROVIDER_MANAGER_KEY, manager);
+        }
+
+        return manager;
+    }
+
+
+    /**
+     * Register the given provider.
+     * @param provider the provider to register.
+     */
+
+    public void register(RequestParameterProvider provider)
+    {
+        if(provider == null)
+            LOG.warn("RequestParameterProvider is null -> no registration!");
+        else
+            this.providers.add(provider);
+    }
+
+
+    /**
+     * Encode all fields of all providers, and attach the name-value pairs to url.
+     * @param url the URL to which the fields should be attached.
+     * @return the url after attaching all fields.
+     */
+
+    public String encodeAndAttachParameters(String url)
+    {
+    		if (!isFilterCalled())
+    		{
+    			throw new IllegalStateException("RequestParameterServletFilter not called. Please configure the filter " + RequestParameterServletFilter.class.getName() + " in your web.xml to cover your faces requests.");
+    		}
+    		
+        StringBuffer sb = new StringBuffer();
+        if(url == null)
+        {
+            LOG.warn("URL is null -> empty string is returned.");
+            return sb.toString();
+        }
+
+        int nuofParams = -1;
+        String firstSeparator = url.indexOf(PAGE_PARAMETER_SEP) == -1 ? PAGE_PARAMETER_SEP : PARAMETER_SEP;
+        sb.append(url);
+        for (Iterator it = providers.iterator(); it.hasNext();)
+        {
+            RequestParameterProvider provider = (RequestParameterProvider) it.next();
+            String[] fields = provider.getFields();
+            if (fields == null)
+            {
+            	continue;
+            }
+            for (int i = 0; i < fields.length; i++)
+            {
+            	nuofParams++;
+            	
+                sb.append(nuofParams == 0 ? firstSeparator : PARAMETER_SEP);
+                sb.append(fields[i]);
+                sb.append("=");
+                sb.append(provider.getFieldValue(fields[i]));
+            }
+        }
+        return sb.toString();
+    }
+
+
+    /**
+     * Check if there are any providers registered.
+     * @return true, if the list is not null and not empty.
+     */
+    public boolean hasProviders()
+    {
+        return this.providers != null && !this.providers.isEmpty();
+    }
+    
+    public boolean isFilterCalled()
+    {
+        FacesContext context = FacesContext.getCurrentInstance();
+        if (context == null)
+        {
+            throw new IllegalStateException("no faces context available!");
+        }
+        
+        return Boolean.TRUE.equals(context.getExternalContext().getRequestMap().get(RequestParameterServletFilter.REQUEST_PARAM_FILTER_CALLED));
+    }
+}

Propchange: myfaces/tomahawk/trunk/sandbox/core/src/main/java/org/apache/myfaces/custom/requestParameterProvider/RequestParameterProviderManager.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: myfaces/tomahawk/trunk/sandbox/core/src/main/java/org/apache/myfaces/custom/requestParameterProvider/RequestParameterProviderManager.java
------------------------------------------------------------------------------
    svn:keywords = Date Author Id Revision HeadURL

Propchange: myfaces/tomahawk/trunk/sandbox/core/src/main/java/org/apache/myfaces/custom/requestParameterProvider/RequestParameterProviderManager.java
------------------------------------------------------------------------------
    svn:mime-type = text/plain

Added: myfaces/tomahawk/trunk/sandbox/core/src/main/java/org/apache/myfaces/custom/requestParameterProvider/RequestParameterResponseWrapper.java
URL: http://svn.apache.org/viewcvs/myfaces/tomahawk/trunk/sandbox/core/src/main/java/org/apache/myfaces/custom/requestParameterProvider/RequestParameterResponseWrapper.java?rev=399864&view=auto
==============================================================================
--- myfaces/tomahawk/trunk/sandbox/core/src/main/java/org/apache/myfaces/custom/requestParameterProvider/RequestParameterResponseWrapper.java (added)
+++ myfaces/tomahawk/trunk/sandbox/core/src/main/java/org/apache/myfaces/custom/requestParameterProvider/RequestParameterResponseWrapper.java Thu May  4 14:38:11 2006
@@ -0,0 +1,211 @@
+package org.apache.myfaces.custom.requestParameterProvider;
+
+
+import javax.servlet.http.HttpServletResponse;
+import javax.servlet.http.Cookie;
+import javax.servlet.ServletOutputStream;
+import java.io.IOException;
+import java.io.PrintWriter;
+import java.util.Locale;
+
+/**
+ * @author Thomas Obereder
+ * @version 30.04.2006 14:40:05
+ */
+public class RequestParameterResponseWrapper implements HttpServletResponse
+{
+    protected HttpServletResponse original;
+
+
+    public RequestParameterResponseWrapper(HttpServletResponse httpServletResponse)
+    {
+        //super();
+        this.original = httpServletResponse;
+    }
+
+    /**
+     * @param url the url to encode
+     * @return wrappedResponse.encodeUrl(url);
+     */
+    public String encodeURL(String url)
+    {
+        if(url == null)
+            return null;
+
+        url = RequestParameterProviderManager.getInstance().encodeAndAttachParameters(url);
+
+        return this.original.encodeURL(url);
+    }
+
+
+    /**
+     * @param url the url to encode
+     * @return wrappedResponse.encodeUrl(url);
+     */
+
+    public String encodeRedirectURL(String url)
+    {
+        return this.original.encodeRedirectURL(url);
+    }
+
+
+    /**
+     * @deprecated uses deprecated Method.
+     * @param url the url to encode
+     * @return wrappedResponse.encodeUrl(url);
+     */
+    public String encodeUrl(String url)
+    {
+        return this.original.encodeUrl(url);
+    }
+
+
+    /**
+     * @deprecated uses deprecated Method.
+     * @param url the url to encode
+     * @return wrappedResponse.encodeUrl(url);
+     */
+    public String encodeRedirectUrl(String url)
+    {
+        return this.original.encodeRedirectUrl(url);
+    }
+
+
+    //simple delegation
+
+    public void addCookie(Cookie cookie)
+    {
+        this.original.addCookie(cookie);
+    }
+
+
+    public boolean containsHeader(String header)
+    {
+        return this.original.containsHeader(header);
+    }
+
+    public void sendError(int i, String string) throws IOException
+    {
+        this.original.sendError(i, string);
+    }
+
+    public void sendError(int i) throws IOException
+    {
+        this.original.sendError(i);
+    }
+
+    public void sendRedirect(String string) throws IOException
+    {
+        this.original.sendRedirect(string);
+    }
+
+    public void setDateHeader(String string, long l)
+    {
+        this.original.setDateHeader(string, l);
+    }
+
+    public void addDateHeader(String string, long l)
+    {
+        this.original.addDateHeader(string, l);
+    }
+
+    public void setHeader(String string, String string1)
+    {
+        this.original.setHeader(string, string1);
+    }
+
+    public void addHeader(String string, String string1)
+    {
+        this.original.addHeader(string, string1);
+    }
+
+    public void setIntHeader(String string, int i)
+    {
+        this.original.setIntHeader(string, i);
+    }
+
+    public void addIntHeader(String string, int i)
+    {
+        this.original.addIntHeader(string, i);
+    }
+
+    public void setStatus(int i)
+    {
+        this.original.setStatus(i);
+    }
+
+
+    /**
+     * @deprecated uses deprecated Method
+     */
+
+    public void setStatus(int i, String string)
+    {
+        this.original.setStatus(i, string);
+    }
+
+    public String getCharacterEncoding()
+    {
+        return this.original.getCharacterEncoding();
+    }
+
+    public ServletOutputStream getOutputStream() throws IOException
+    {
+        return this.original.getOutputStream();
+    }
+
+    public PrintWriter getWriter() throws IOException
+    {
+        return this.original.getWriter();
+    }
+
+    public void setContentLength(int i)
+    {
+        this.original.setContentLength(i);
+    }
+
+    public void setContentType(String string)
+    {
+        this.original.setContentType(string);
+    }
+
+    public void setBufferSize(int i)
+    {
+        this.original.setBufferSize(i);
+    }
+
+    public int getBufferSize()
+    {
+        return this.original.getBufferSize();
+    }
+
+    public void flushBuffer() throws IOException
+    {
+        this.original.flushBuffer();
+    }
+
+    public void resetBuffer()
+    {
+        this.original.resetBuffer();
+    }
+
+    public boolean isCommitted()
+    {
+        return this.original.isCommitted();
+    }
+
+    public void reset()
+    {
+        this.original.reset();
+    }
+
+    public void setLocale(Locale locale)
+    {
+        this.original.setLocale(locale);
+    }
+
+    public Locale getLocale()
+    {
+        return this.original.getLocale();
+    }
+}

Propchange: myfaces/tomahawk/trunk/sandbox/core/src/main/java/org/apache/myfaces/custom/requestParameterProvider/RequestParameterResponseWrapper.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: myfaces/tomahawk/trunk/sandbox/core/src/main/java/org/apache/myfaces/custom/requestParameterProvider/RequestParameterResponseWrapper.java
------------------------------------------------------------------------------
    svn:keywords = Date Author Id Revision HeadURL

Propchange: myfaces/tomahawk/trunk/sandbox/core/src/main/java/org/apache/myfaces/custom/requestParameterProvider/RequestParameterResponseWrapper.java
------------------------------------------------------------------------------
    svn:mime-type = text/plain

Added: myfaces/tomahawk/trunk/sandbox/core/src/main/java/org/apache/myfaces/custom/requestParameterProvider/RequestParameterServletFilter.java
URL: http://svn.apache.org/viewcvs/myfaces/tomahawk/trunk/sandbox/core/src/main/java/org/apache/myfaces/custom/requestParameterProvider/RequestParameterServletFilter.java?rev=399864&view=auto
==============================================================================
--- myfaces/tomahawk/trunk/sandbox/core/src/main/java/org/apache/myfaces/custom/requestParameterProvider/RequestParameterServletFilter.java (added)
+++ myfaces/tomahawk/trunk/sandbox/core/src/main/java/org/apache/myfaces/custom/requestParameterProvider/RequestParameterServletFilter.java Thu May  4 14:38:11 2006
@@ -0,0 +1,53 @@
+package org.apache.myfaces.custom.requestParameterProvider;
+
+import java.io.IOException;
+
+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 javax.servlet.http.HttpServletResponse;
+
+
+/**
+ * @author Thomas Obereder
+ * @version 30.04.2006 14:38:23
+ * 
+ * Once moved to tomahawk, we can get rid of this filter and add its functionality to the default ExtensionsFilter.
+ */
+public class RequestParameterServletFilter implements Filter
+{
+	public final static String REQUEST_PARAM_FILTER_CALLED = RequestParameterServletFilter.class.getName() + ".CALLED";
+	
+    public RequestParameterServletFilter()
+    {
+    }
+
+    public void init(FilterConfig filterConfig)
+    {
+    }
+
+    public void doFilter(ServletRequest servletRequest,
+                         ServletResponse servletResponse,
+                         FilterChain filterChain) throws IOException, ServletException
+    {
+        if(servletResponse instanceof HttpServletResponse)
+        {
+        	HttpServletRequest httpServletRequest = (HttpServletRequest) servletRequest;
+    		if (!Boolean.TRUE.equals(httpServletRequest.getAttribute(REQUEST_PARAM_FILTER_CALLED)))
+    		{
+    			httpServletRequest.setAttribute(REQUEST_PARAM_FILTER_CALLED, Boolean.TRUE);
+    			servletResponse = new RequestParameterResponseWrapper((HttpServletResponse) servletResponse);
+    		}
+        }
+        
+        filterChain.doFilter(servletRequest, servletResponse);
+    }
+
+    public void destroy()
+    {
+    }
+}

Propchange: myfaces/tomahawk/trunk/sandbox/core/src/main/java/org/apache/myfaces/custom/requestParameterProvider/RequestParameterServletFilter.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: myfaces/tomahawk/trunk/sandbox/core/src/main/java/org/apache/myfaces/custom/requestParameterProvider/RequestParameterServletFilter.java
------------------------------------------------------------------------------
    svn:keywords = Date Author Id Revision HeadURL

Propchange: myfaces/tomahawk/trunk/sandbox/core/src/main/java/org/apache/myfaces/custom/requestParameterProvider/RequestParameterServletFilter.java
------------------------------------------------------------------------------
    svn:mime-type = text/plain

Modified: myfaces/tomahawk/trunk/sandbox/core/src/main/tld/myfaces_sandbox.tld
URL: http://svn.apache.org/viewcvs/myfaces/tomahawk/trunk/sandbox/core/src/main/tld/myfaces_sandbox.tld?rev=399864&r1=399863&r2=399864&view=diff
==============================================================================
--- myfaces/tomahawk/trunk/sandbox/core/src/main/tld/myfaces_sandbox.tld (original)
+++ myfaces/tomahawk/trunk/sandbox/core/src/main/tld/myfaces_sandbox.tld Thu May  4 14:38:11 2006
@@ -130,6 +130,7 @@
 <!ENTITY html_timed_notifier_attributes	SYSTEM "entities/html_timed_notifier_attributes.xml">
 <!ENTITY start_conversation_attributes	SYSTEM "entities/start_conversation_attributes.xml">
 <!ENTITY standard_conversation_attributes	SYSTEM "entities/standard_conversation_attributes.xml">
+<!ENTITY start_conversation_attributes	SYSTEM "entities/start_conversation_attributes.xml">
 <!ENTITY conversation_attributes	SYSTEM "entities/conversation_attributes.xml">
 ]>
 

Modified: myfaces/tomahawk/trunk/sandbox/examples/pom.xml
URL: http://svn.apache.org/viewcvs/myfaces/tomahawk/trunk/sandbox/examples/pom.xml?rev=399864&r1=399863&r2=399864&view=diff
==============================================================================
--- myfaces/tomahawk/trunk/sandbox/examples/pom.xml (original)
+++ myfaces/tomahawk/trunk/sandbox/examples/pom.xml Thu May  4 14:38:11 2006
@@ -46,9 +46,9 @@
       <version>${version}</version>
     </dependency> 
     <dependency>
-      <groupId>myfaces</groupId>
+      <groupId>org.apache.myfaces.core</groupId>
       <artifactId>myfaces-api</artifactId>
-      <version>1.1.1</version>
+      <version>1.1.4-SNAPSHOT</version>
     </dependency>
     <dependency>
       <groupId>org.apache.myfaces.core</groupId>

Modified: myfaces/tomahawk/trunk/sandbox/examples/src/main/webapp/WEB-INF/web.xml
URL: http://svn.apache.org/viewcvs/myfaces/tomahawk/trunk/sandbox/examples/src/main/webapp/WEB-INF/web.xml?rev=399864&r1=399863&r2=399864&view=diff
==============================================================================
--- myfaces/tomahawk/trunk/sandbox/examples/src/main/webapp/WEB-INF/web.xml (original)
+++ myfaces/tomahawk/trunk/sandbox/examples/src/main/webapp/WEB-INF/web.xml Thu May  4 14:38:11 2006
@@ -52,6 +52,14 @@
   </context-param> 
   
   <filter>
+    <filter-name>requestParameterProviderFilter</filter-name>
+    <filter-class>org.apache.myfaces.custom.requestParameterProvider.RequestParameterServletFilter</filter-class>
+  </filter>
+  <filter>
+    <filter-name>conversationFilter</filter-name>
+    <filter-class>org.apache.myfaces.custom.conversation.ConversationServletFilter</filter-class>
+  </filter>
+  <filter>
     <filter-name>extensionsFilter</filter-name>
     <filter-class>org.apache.myfaces.webapp.filter.ExtensionsFilter</filter-class>
     <init-param>
@@ -82,6 +90,14 @@
   </filter>
   <filter-mapping>
     <filter-name>extensionsFilter</filter-name>
+    <url-pattern>*.jsf</url-pattern>
+  </filter-mapping>
+  <filter-mapping>
+    <filter-name>requestParameterProviderFilter</filter-name>
+    <url-pattern>*.jsf</url-pattern>
+  </filter-mapping>
+  <filter-mapping>
+    <filter-name>conversationFilter</filter-name>
     <url-pattern>*.jsf</url-pattern>
   </filter-mapping>
   <filter-mapping>

Modified: myfaces/tomahawk/trunk/sandbox/examples/src/main/webapp/home.jsp
URL: http://svn.apache.org/viewcvs/myfaces/tomahawk/trunk/sandbox/examples/src/main/webapp/home.jsp?rev=399864&r1=399863&r2=399864&view=diff
==============================================================================
--- myfaces/tomahawk/trunk/sandbox/examples/src/main/webapp/home.jsp (original)
+++ myfaces/tomahawk/trunk/sandbox/examples/src/main/webapp/home.jsp Thu May  4 14:38:11 2006
@@ -94,6 +94,11 @@
 	            <h:outputLink value="dojo/textareatestjsfonly.jsf"><f:verbatim>Integration of Dojo Toolkit</f:verbatim></h:outputLink>
                 <h:outputLink value="killSession.jsf"><f:verbatim>Kill Session - refreshes state</f:verbatim></h:outputLink>
             </h:panelGrid>
+            <h:panelGrid style="padding-left:25px">
+                <h:outputLink value="ajaxChildComboBox.jsf" >
+                    <f:verbatim>Ajax-enabled combo box - reloads its contents when the value of another combo box is changed</f:verbatim>
+                </h:outputLink>
+            </h:panelGrid>
 
             <h:outputText value="Conversation"/>
             <h:panelGrid style="padding-left:25px">