You are viewing a plain text version of this content. The canonical link for it is here.
Posted to pluto-scm@portals.apache.org by ms...@apache.org on 2016/04/14 14:29:04 UTC
[24/50] [abbrv] portals-pluto git commit: worked on Resource phase
async implementation
worked on Resource phase async implementation
Project: http://git-wip-us.apache.org/repos/asf/portals-pluto/repo
Commit: http://git-wip-us.apache.org/repos/asf/portals-pluto/commit/60c741fb
Tree: http://git-wip-us.apache.org/repos/asf/portals-pluto/tree/60c741fb
Diff: http://git-wip-us.apache.org/repos/asf/portals-pluto/diff/60c741fb
Branch: refs/heads/master
Commit: 60c741fb133d61551c3a2de9c1b74b9751734c4c
Parents: ae198fe
Author: Scott Nicklous <ms...@apache.org>
Authored: Wed Mar 23 16:25:50 2016 +0100
Committer: Scott Nicklous <ms...@apache.org>
Committed: Wed Mar 23 16:25:50 2016 +0100
----------------------------------------------------------------------
.../PortletResourceRequestContext.java | 13 +++++++++
.../container/impl/PortletContainerImpl.java | 1 +
.../container/impl/ResourceRequestImpl.java | 30 +++++++++++++-------
.../PortletResourceRequestContextImpl.java | 24 ++++++++++++++++
4 files changed, 57 insertions(+), 11 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/portals-pluto/blob/60c741fb/pluto-container-api/src/main/java/org/apache/pluto/container/PortletResourceRequestContext.java
----------------------------------------------------------------------
diff --git a/pluto-container-api/src/main/java/org/apache/pluto/container/PortletResourceRequestContext.java b/pluto-container-api/src/main/java/org/apache/pluto/container/PortletResourceRequestContext.java
index bf69dac..242d8a6 100644
--- a/pluto-container-api/src/main/java/org/apache/pluto/container/PortletResourceRequestContext.java
+++ b/pluto-container-api/src/main/java/org/apache/pluto/container/PortletResourceRequestContext.java
@@ -19,6 +19,7 @@ package org.apache.pluto.container;
import java.util.Map;
import javax.portlet.ResourceParameters;
+import javax.portlet.ResourceResponse;
/**
* @version $Id$
@@ -41,4 +42,16 @@ public interface PortletResourceRequestContext extends PortletRequestContext
* @return
*/
ResourceParameters getResourceParameters();
+
+ /**
+ * Returns the resource response needed for async support. V3 method.
+ * @return
+ */
+ ResourceResponse getResponse();
+
+ /**
+ * Sets the resource response needed for async support. V3 method.
+ * @return
+ */
+ void setResponse(ResourceResponse response);
}
http://git-wip-us.apache.org/repos/asf/portals-pluto/blob/60c741fb/pluto-container/src/main/java/org/apache/pluto/container/impl/PortletContainerImpl.java
----------------------------------------------------------------------
diff --git a/pluto-container/src/main/java/org/apache/pluto/container/impl/PortletContainerImpl.java b/pluto-container/src/main/java/org/apache/pluto/container/impl/PortletContainerImpl.java
index 44f2035..ce60f2e 100644
--- a/pluto-container/src/main/java/org/apache/pluto/container/impl/PortletContainerImpl.java
+++ b/pluto-container/src/main/java/org/apache/pluto/container/impl/PortletContainerImpl.java
@@ -265,6 +265,7 @@ public class PortletContainerImpl implements PortletContainer
responseContext.setPropsAllowed(true);
ResourceRequest portletRequest = envService.createResourceRequest(requestContext, responseContext);
ResourceResponse portletResponse = envService.createResourceResponse(responseContext, requestContext.getCacheability());
+ requestContext.setResponse(portletResponse); // for async support
FilterManager filterManager = filterInitialisation(portletWindow,PortletRequest.RESOURCE_PHASE);
http://git-wip-us.apache.org/repos/asf/portals-pluto/blob/60c741fb/pluto-container/src/main/java/org/apache/pluto/container/impl/ResourceRequestImpl.java
----------------------------------------------------------------------
diff --git a/pluto-container/src/main/java/org/apache/pluto/container/impl/ResourceRequestImpl.java b/pluto-container/src/main/java/org/apache/pluto/container/impl/ResourceRequestImpl.java
index 96aa81e..aafbbee 100644
--- a/pluto-container/src/main/java/org/apache/pluto/container/impl/ResourceRequestImpl.java
+++ b/pluto-container/src/main/java/org/apache/pluto/container/impl/ResourceRequestImpl.java
@@ -38,17 +38,24 @@ public class ResourceRequestImpl extends ClientDataRequestImpl implements Resour
/** Internal logger. */
private static final Logger LOG = LoggerFactory.getLogger(ResourceRequestImpl.class);
- private PortletResourceRequestContext requestContext;
private CacheControl cacheControl;
public ResourceRequestImpl(PortletResourceRequestContext requestContext, PortletResourceResponseContext responseContext)
{
super(requestContext, responseContext, PortletRequest.RESOURCE_PHASE);
- this.requestContext = requestContext;
this.cacheControl = responseContext.getCacheControl();
}
@Override
+ protected PortletResourceRequestContext getRequestContext() {
+ return (PortletResourceRequestContext) requestContext;
+ }
+
+ protected PortletResourceResponseContext getResponseContext() {
+ return (PortletResourceResponseContext) responseContext;
+ }
+
+ @Override
public String getProperty(String name)
{
String result = getMimeRequestProperty(name, cacheControl);
@@ -57,7 +64,7 @@ public class ResourceRequestImpl extends ClientDataRequestImpl implements Resour
public String getCacheability()
{
- return requestContext.getCacheability();
+ return getRequestContext().getCacheability();
}
public String getETag()
@@ -67,12 +74,12 @@ public class ResourceRequestImpl extends ClientDataRequestImpl implements Resour
public Map<String, String[]> getPrivateRenderParameterMap()
{
- return cloneParameterMap(requestContext.getPrivateRenderParameterMap());
+ return cloneParameterMap(getRequestContext().getPrivateRenderParameterMap());
}
public String getResourceID()
{
- return requestContext.getResourceID();
+ return getRequestContext().getResourceID();
}
public String getResponseContentType()
@@ -108,12 +115,13 @@ public class ResourceRequestImpl extends ClientDataRequestImpl implements Resour
}
public ResourceParameters getResourceParameters() {
- return requestContext.getResourceParameters();
+ return getRequestContext().getResourceParameters();
}
@Override
public AsyncContext startAsync() throws IllegalStateException {
- return null;
+ ResourceResponse resp = getRequestContext().getResponse();
+ return startAsync(this, resp);
}
@Override
@@ -123,21 +131,21 @@ public class ResourceRequestImpl extends ClientDataRequestImpl implements Resour
@Override
public boolean isAsyncStarted() {
- return false;
+ return getRequestContext().getServletRequest().isAsyncStarted();
}
@Override
public boolean isAsyncSupported() {
- return false;
+ return getRequestContext().getServletRequest().isAsyncSupported();
}
@Override
public AsyncContext getAsyncContext() {
- return null;
+ return getRequestContext().getServletRequest().getAsyncContext();
}
@Override
public DispatcherType getDispatcherType() {
- return null;
+ return getRequestContext().getServletRequest().getDispatcherType();
}
}
http://git-wip-us.apache.org/repos/asf/portals-pluto/blob/60c741fb/pluto-portal-driver-impl/src/main/java/org/apache/pluto/driver/services/container/PortletResourceRequestContextImpl.java
----------------------------------------------------------------------
diff --git a/pluto-portal-driver-impl/src/main/java/org/apache/pluto/driver/services/container/PortletResourceRequestContextImpl.java b/pluto-portal-driver-impl/src/main/java/org/apache/pluto/driver/services/container/PortletResourceRequestContextImpl.java
index b008e51..1a6bf5e 100644
--- a/pluto-portal-driver-impl/src/main/java/org/apache/pluto/driver/services/container/PortletResourceRequestContextImpl.java
+++ b/pluto-portal-driver-impl/src/main/java/org/apache/pluto/driver/services/container/PortletResourceRequestContextImpl.java
@@ -19,6 +19,7 @@ package org.apache.pluto.driver.services.container;
import java.util.Map;
import javax.portlet.ResourceParameters;
+import javax.portlet.ResourceResponse;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
@@ -35,6 +36,8 @@ public class PortletResourceRequestContextImpl extends PortletRequestContextImpl
PortletResourceRequestContext
{
private String pageState;
+ private ResourceResponse response;
+
public PortletResourceRequestContextImpl(PortletContainer container, HttpServletRequest containerRequest,
HttpServletResponse containerResponse, PortletWindow window,
@@ -47,16 +50,19 @@ public class PortletResourceRequestContextImpl extends PortletRequestContextImpl
this.pageState = pageState;
}
+ @Override
public String getCacheability()
{
return getPortalURL().getCacheability();
}
+ @Override
public Map<String, String[]> getPrivateRenderParameterMap()
{
return paramFactory.getResourceRenderParameterMap(window.getId().getStringId());
}
+ @Override
public String getResourceID()
{
return getPortalURL().getResourceID();
@@ -65,11 +71,29 @@ public class PortletResourceRequestContextImpl extends PortletRequestContextImpl
/* (non-Javadoc)
* @see org.apache.pluto.container.PortletResourceRequestContext#getPageState()
*/
+ @Override
public String getPageState() {
return pageState;
}
+ @Override
public ResourceParameters getResourceParameters() {
return new ResourceParametersImpl(urlProvider, windowId);
}
+
+ /**
+ * @return the response
+ */
+ @Override
+ public ResourceResponse getResponse() {
+ return response;
+ }
+
+ /**
+ * @param response the response to set
+ */
+ @Override
+ public void setResponse(ResourceResponse response) {
+ this.response = response;
+ }
}