You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@wicket.apache.org by pa...@apache.org on 2013/02/19 15:47:07 UTC

[2/2] git commit: WICKET-5044: use ServletWebRequest for atmosphere requests

Updated Branches:
  refs/heads/master 2e74e97fe -> e5058b118


WICKET-5044: use ServletWebRequest for atmosphere requests


Project: http://git-wip-us.apache.org/repos/asf/wicket/repo
Commit: http://git-wip-us.apache.org/repos/asf/wicket/commit/12d6be7a
Tree: http://git-wip-us.apache.org/repos/asf/wicket/tree/12d6be7a
Diff: http://git-wip-us.apache.org/repos/asf/wicket/diff/12d6be7a

Branch: refs/heads/master
Commit: 12d6be7aba3755495a4cd0adef7f9f1a159c8b7a
Parents: 2e74e97
Author: Emond Papegaaij <em...@topicus.nl>
Authored: Mon Feb 18 07:38:58 2013 +0100
Committer: Emond Papegaaij <em...@topicus.nl>
Committed: Tue Feb 19 15:46:56 2013 +0100

----------------------------------------------------------------------
 .../wicket/atmosphere/AtmosphereWebRequest.java    |  119 ++++++++++++++-
 .../org/apache/wicket/atmosphere/EventBus.java     |    6 +-
 2 files changed, 118 insertions(+), 7 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/wicket/blob/12d6be7a/wicket-experimental/wicket-atmosphere/src/main/java/org/apache/wicket/atmosphere/AtmosphereWebRequest.java
----------------------------------------------------------------------
diff --git a/wicket-experimental/wicket-atmosphere/src/main/java/org/apache/wicket/atmosphere/AtmosphereWebRequest.java b/wicket-experimental/wicket-atmosphere/src/main/java/org/apache/wicket/atmosphere/AtmosphereWebRequest.java
index 2fe006e..18556de 100644
--- a/wicket-experimental/wicket-atmosphere/src/main/java/org/apache/wicket/atmosphere/AtmosphereWebRequest.java
+++ b/wicket-experimental/wicket-atmosphere/src/main/java/org/apache/wicket/atmosphere/AtmosphereWebRequest.java
@@ -22,10 +22,17 @@ import java.util.List;
 import java.util.Locale;
 
 import javax.servlet.http.Cookie;
+import javax.servlet.http.HttpServletRequest;
 
+import org.apache.wicket.protocol.http.RequestUtils;
+import org.apache.wicket.protocol.http.servlet.MultipartServletWebRequest;
+import org.apache.wicket.protocol.http.servlet.ServletWebRequest;
+import org.apache.wicket.request.IRequestParameters;
 import org.apache.wicket.request.Url;
-import org.apache.wicket.request.http.WebRequest;
+import org.apache.wicket.util.lang.Bytes;
 import org.apache.wicket.util.time.Time;
+import org.apache.wicket.util.upload.FileItemFactory;
+import org.apache.wicket.util.upload.FileUploadException;
 
 /**
  * Internal request to signal the processing of an event. This request will be mapped by
@@ -34,9 +41,9 @@ import org.apache.wicket.util.time.Time;
  * 
  * @author papegaaij
  */
-class AtmosphereWebRequest extends WebRequest
+class AtmosphereWebRequest extends ServletWebRequest
 {
-	private WebRequest wrappedRequest;
+	private ServletWebRequest wrappedRequest;
 
 	private PageKey pageKey;
 
@@ -44,9 +51,10 @@ class AtmosphereWebRequest extends WebRequest
 
 	private AtmosphereEvent event;
 
-	AtmosphereWebRequest(WebRequest wrappedRequest, PageKey pageKey,
+	AtmosphereWebRequest(ServletWebRequest wrappedRequest, PageKey pageKey,
 		Collection<EventSubscription> subscriptions, AtmosphereEvent event)
 	{
+		super(wrappedRequest.getContainerRequest(), wrappedRequest.getFilterPrefix());
 		this.wrappedRequest = wrappedRequest;
 		this.pageKey = pageKey;
 		this.subscriptions = subscriptions;
@@ -113,16 +121,117 @@ class AtmosphereWebRequest extends WebRequest
 	@Override
 	public Charset getCharset()
 	{
+		// called from the super constructor, when wrappedRequest is still null
+		if (wrappedRequest == null)
+			return RequestUtils.getCharset(super.getContainerRequest());
 		return wrappedRequest.getCharset();
 	}
 
 	@Override
-	public Object getContainerRequest()
+	public Cookie getCookie(String cookieName)
+	{
+		return wrappedRequest.getCookie(cookieName);
+	}
+
+	@Override
+	public int hashCode()
+	{
+		return wrappedRequest.hashCode();
+	}
+
+	@Override
+	public Url getOriginalUrl()
+	{
+		return wrappedRequest.getOriginalUrl();
+	}
+
+	@Override
+	public IRequestParameters getQueryParameters()
+	{
+		return wrappedRequest.getQueryParameters();
+	}
+
+	@Override
+	public IRequestParameters getRequestParameters()
+	{
+		return wrappedRequest.getRequestParameters();
+	}
+
+	@Override
+	public boolean equals(Object obj)
+	{
+		return wrappedRequest.equals(obj);
+	}
+
+	@Override
+	public String getFilterPrefix()
+	{
+		return wrappedRequest.getFilterPrefix();
+	}
+
+	@Override
+	public String toString()
+	{
+		return wrappedRequest.toString();
+	}
+
+	@Override
+	public IRequestParameters getPostParameters()
+	{
+		return wrappedRequest.getPostParameters();
+	}
+
+	@Override
+	public ServletWebRequest cloneWithUrl(Url url)
+	{
+		return wrappedRequest.cloneWithUrl(url);
+	}
+
+	@Override
+	public MultipartServletWebRequest newMultipartWebRequest(Bytes maxSize, String upload)
+		throws FileUploadException
+	{
+		return wrappedRequest.newMultipartWebRequest(maxSize, upload);
+	}
+
+	@Override
+	public MultipartServletWebRequest newMultipartWebRequest(Bytes maxSize, String upload,
+		FileItemFactory factory) throws FileUploadException
+	{
+		return wrappedRequest.newMultipartWebRequest(maxSize, upload, factory);
+	}
+
+	@Override
+	public String getPrefixToContextPath()
+	{
+		return wrappedRequest.getPrefixToContextPath();
+	}
+
+	@Override
+	public HttpServletRequest getContainerRequest()
 	{
 		return wrappedRequest.getContainerRequest();
 	}
 
 	@Override
+	public String getContextPath()
+	{
+		return wrappedRequest.getContextPath();
+	}
+
+	@Override
+	public String getFilterPath()
+	{
+		return wrappedRequest.getFilterPath();
+	}
+
+	@Override
+	public boolean shouldPreserveClientUrl()
+	{
+		return wrappedRequest.shouldPreserveClientUrl();
+	}
+
+	@Override
 	public boolean isAjax()
 	{
 		return true;

http://git-wip-us.apache.org/repos/asf/wicket/blob/12d6be7a/wicket-experimental/wicket-atmosphere/src/main/java/org/apache/wicket/atmosphere/EventBus.java
----------------------------------------------------------------------
diff --git a/wicket-experimental/wicket-atmosphere/src/main/java/org/apache/wicket/atmosphere/EventBus.java b/wicket-experimental/wicket-atmosphere/src/main/java/org/apache/wicket/atmosphere/EventBus.java
index a312f99..579d61b 100644
--- a/wicket-experimental/wicket-atmosphere/src/main/java/org/apache/wicket/atmosphere/EventBus.java
+++ b/wicket-experimental/wicket-atmosphere/src/main/java/org/apache/wicket/atmosphere/EventBus.java
@@ -35,6 +35,7 @@ import org.apache.wicket.ThreadContext;
 import org.apache.wicket.atmosphere.config.AtmosphereParameters;
 import org.apache.wicket.protocol.http.WebApplication;
 import org.apache.wicket.protocol.http.WicketFilter;
+import org.apache.wicket.protocol.http.servlet.ServletWebRequest;
 import org.apache.wicket.request.Response;
 import org.apache.wicket.session.ISessionStore.UnboundListener;
 import org.atmosphere.cpr.AtmosphereResource;
@@ -314,8 +315,9 @@ public class EventBus implements UnboundListener
 				return ret == null ? "" : ret;
 			}
 		};
-		AtmosphereWebRequest request = new AtmosphereWebRequest(application.newWebRequest(
-			httpRequest, filterPath), pageKey, subscriptionsForPage, event);
+		AtmosphereWebRequest request = new AtmosphereWebRequest(
+			(ServletWebRequest)application.newWebRequest(httpRequest, filterPath), pageKey,
+			subscriptionsForPage, event);
 		Response response = new AtmosphereWebResponse(resource.getResponse());
 		if (application.createRequestCycle(request, response).processRequestAndDetach())
 			broadcaster.broadcast(response.toString(), resource);