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/08 15:40:33 UTC
[21/34] portals-pluto git commit: basic async functionality works
basic async functionality works
Project: http://git-wip-us.apache.org/repos/asf/portals-pluto/repo
Commit: http://git-wip-us.apache.org/repos/asf/portals-pluto/commit/c4a9c538
Tree: http://git-wip-us.apache.org/repos/asf/portals-pluto/tree/c4a9c538
Diff: http://git-wip-us.apache.org/repos/asf/portals-pluto/diff/c4a9c538
Branch: refs/heads/V3Prototype
Commit: c4a9c5387647a653ed0f3d258977948a6a2400bc
Parents: 3a6b398
Author: Scott Nicklous <ms...@apache.org>
Authored: Thu Mar 31 18:26:45 2016 +0200
Committer: Scott Nicklous <ms...@apache.org>
Committed: Thu Mar 31 18:26:45 2016 +0200
----------------------------------------------------------------------
.../portals/samples/AsyncPortletResource.java | 136 +++++---------
.../src/main/resources/logging.properties | 2 +-
.../impl/PortletAsyncRequestWrapper.java | 184 +++++++++++++++----
.../PortletResourceRequestContextImpl.java | 59 +++---
4 files changed, 226 insertions(+), 155 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/portals-pluto/blob/c4a9c538/PortletV3AnnotatedDemo/src/main/java/org/apache/portals/samples/AsyncPortletResource.java
----------------------------------------------------------------------
diff --git a/PortletV3AnnotatedDemo/src/main/java/org/apache/portals/samples/AsyncPortletResource.java b/PortletV3AnnotatedDemo/src/main/java/org/apache/portals/samples/AsyncPortletResource.java
index 65fea26..72b681b 100644
--- a/PortletV3AnnotatedDemo/src/main/java/org/apache/portals/samples/AsyncPortletResource.java
+++ b/PortletV3AnnotatedDemo/src/main/java/org/apache/portals/samples/AsyncPortletResource.java
@@ -21,6 +21,7 @@ package org.apache.portals.samples;
import java.io.IOException;
import java.util.Collections;
import java.util.List;
+import java.util.logging.Level;
import java.util.logging.Logger;
import javax.inject.Inject;
@@ -44,31 +45,30 @@ import org.apache.portals.samples.AsyncDialogBean.OutputType;
*
*/
public class AsyncPortletResource {
- private static final Logger LOGGER = Logger.getLogger(AsyncPortletResource.class.getName());
-
+ private static final Logger LOGGER = Logger.getLogger(AsyncPortletResource.class.getName());
+ private static final boolean isDebug = LOGGER.isLoggable(Level.FINE);
+ private static final boolean isTrace = LOGGER.isLoggable(Level.FINEST);
+
private final static String JSP = "/WEB-INF/jsp/asyncOutput.jsp";
private final static String ATTRIB_REPS = "reps";
private final static String ATTRIB_AUTO = "auto";
- private final static String ATTRIB_TITLE = "title";
+ public final static String ATTRIB_TITLE = "title";
private class AsyncRunnable implements Runnable {
private final AsyncContext ctx;
private final int delay;
private final OutputType type;
- private final boolean done;
- public AsyncRunnable(AsyncContext ctx, int delay, OutputType type, boolean done) {
+ public AsyncRunnable(AsyncContext ctx, int delay, OutputType type) {
this.ctx = ctx;
this.delay = delay;
this.type = type;
- this.done = done;
StringBuilder txt = new StringBuilder(128);
txt.append("Constructing runnable.");
txt.append(" delay: ").append(delay);
txt.append(", type: ").append(type);
- txt.append(", done: ").append(done);
LOGGER.fine(txt.toString());
}
@@ -81,34 +81,7 @@ public class AsyncPortletResource {
HttpServletResponse hresp = (HttpServletResponse) ctx.getResponse();
RequestDispatcher rd;
- {
- List<String> attrNames = Collections.list(hreq.getAttributeNames());
- StringBuilder txt = new StringBuilder(128);
- txt.append("Runnable:");
- txt.append("\nAttribute names: ").append(attrNames);
- txt.append("\nasync_request_uri: ").append((String) hreq.getAttribute("javax.servlet.async.request_uri"));
- txt.append("\nasync_context_path: ").append((String) hreq.getAttribute("javax.servlet.async.context_path"));
- txt.append("\nasync_servlet_path: ").append((String) hreq.getAttribute("javax.servlet.async.servlet_path"));
- txt.append("\nasync_path_info: ").append((String) hreq.getAttribute("javax.servlet.async.path_info"));
- txt.append("\nasync_query_string: ").append((String) hreq.getAttribute("javax.servlet.async.query_string"));
- txt.append("\nforward_request_uri: ").append((String) hreq.getAttribute("javax.servlet.forward.request_uri"));
- txt.append("\nforward_context_path: ").append((String) hreq.getAttribute("javax.servlet.forward.context_path"));
- txt.append("\nforward_servlet_path: ").append((String) hreq.getAttribute("javax.servlet.forward.servlet_path"));
- txt.append("\nforward_path_info: ").append((String) hreq.getAttribute("javax.servlet.forward.path_info"));
- txt.append("\nforward_query_string: ").append((String) hreq.getAttribute("javax.servlet.forward.query_string"));
- txt.append("\ninclude_request_uri: ").append((String) hreq.getAttribute("javax.servlet.include.request_uri"));
- txt.append("\ninclude_context_path: ").append((String) hreq.getAttribute("javax.servlet.include.context_path"));
- txt.append("\ninclude_servlet_path: ").append((String) hreq.getAttribute("javax.servlet.include.servlet_path"));
- txt.append("\ninclude_path_info: ").append((String) hreq.getAttribute("javax.servlet.include.path_info"));
- txt.append("\ninclude_query_string: ").append((String) hreq.getAttribute("javax.servlet.include.query_string"));
- txt.append("\nmethod_request_uri: ").append(hreq.getRequestURI());
- txt.append("\nmethod_context_path: ").append(hreq.getContextPath());
- txt.append("\nmethod_servlet_path: ").append(hreq.getServletPath());
- txt.append("\nmethod_path_info: ").append(hreq.getPathInfo());
- txt.append("\nmethod_query_string: ").append(hreq.getQueryString());
- LOGGER.fine(txt.toString());
- }
-
+ AsyncPortletResource.trace(hreq, "Runnable: ");
PortletConfig config = (PortletConfig) hreq.getAttribute("javax.portlet.config");
String portletName = "Could not get PortletConfig";
@@ -124,11 +97,7 @@ public class AsyncPortletResource {
txt.append("<p>dispatcher type: ").append(hreq.getDispatcherType().toString());
txt.append("</p>");
hresp.getWriter().write(txt.toString());
- if (done) {
- ctx.complete();
- } else {
- hresp.flushBuffer();
- }
+ ctx.complete();
break;
case AUTO:
StringBuilder str = new StringBuilder(128);
@@ -145,26 +114,19 @@ public class AsyncPortletResource {
ctx.dispatch(hreq.getServletContext(), JSP);
break;
case FWD:
- LOGGER.fine("Doing request dispatcher forward to JSP.");
+ LOGGER.fine("Doing request dispatcher forward to JSP: " + JSP);
hreq.setAttribute(ATTRIB_TITLE, "Thread forwarding to JSP");
rd = hreq.getRequestDispatcher(JSP);
rd.forward(hreq, hresp);
- if (done) {
- ctx.complete();
- } else {
- hresp.flushBuffer();
- }
+ LOGGER.fine("After request dispatcher forward to JSP.");
+ ctx.complete();
break;
case INC:
- LOGGER.fine("Doing request dispatcher include of JSP.");
+ LOGGER.fine("Including JSP: " + JSP);
hreq.setAttribute(ATTRIB_TITLE, "Thread including JSP");
rd = hreq.getRequestDispatcher(JSP);
rd.include(hreq, hresp);
- if (done) {
- ctx.complete();
- } else {
- hresp.flushBuffer();
- }
+ ctx.complete();
break;
}
@@ -188,13 +150,9 @@ public class AsyncPortletResource {
req.removeAttribute(ATTRIB_AUTO);
Integer reps = (Integer) req.getAttribute(ATTRIB_REPS);
- boolean done = false;
if (reps == null) {
reps = adb.getReps();
}
- if (reps <= 0) {
- done = true;
- }
StringBuilder txt = new StringBuilder(128);
txt.append("Resource method.");
@@ -204,12 +162,11 @@ public class AsyncPortletResource {
txt.append(", total reps: ").append(adb.getReps());
txt.append(", auto: ").append(adb.isAutoDispatch());
txt.append(", auto-dispatch: ").append(auto);
- txt.append(", done: ").append(done);
LOGGER.fine(txt.toString());
AsyncContext ctx = null;
- if (!done) {
+ if (reps > 0) {
reps--;
req.setAttribute(ATTRIB_REPS, reps);
@@ -225,6 +182,7 @@ public class AsyncPortletResource {
if (ctx == null) {
// last iteration of auto-dispatch
+ LOGGER.fine("Retrieving async context for the last run.");
try {
ctx = req.getAsyncContext();
} catch (Exception e) {
@@ -237,35 +195,7 @@ public class AsyncPortletResource {
}
HttpServletRequest hreq = (HttpServletRequest) req.getAttribute("javax.portlet.debug.ServletRequest");
-
- {
- List<String> attrNames = Collections.list(hreq.getAttributeNames());
- StringBuilder txt2 = new StringBuilder(128);
- txt2.append("During content generation:");
- txt2.append("\nAttribute names: ").append(attrNames);
- txt2.append("\nasync_request_uri: ").append((String) hreq.getAttribute("javax.servlet.async.request_uri"));
- txt2.append("\nasync_context_path: ").append((String) hreq.getAttribute("javax.servlet.async.context_path"));
- txt2.append("\nasync_servlet_path: ").append((String) hreq.getAttribute("javax.servlet.async.servlet_path"));
- txt2.append("\nasync_path_info: ").append((String) hreq.getAttribute("javax.servlet.async.path_info"));
- txt2.append("\nasync_query_string: ").append((String) hreq.getAttribute("javax.servlet.async.query_string"));
- txt2.append("\nforward_request_uri: ").append((String) hreq.getAttribute("javax.servlet.forward.request_uri"));
- txt2.append("\nforward_context_path: ").append((String) hreq.getAttribute("javax.servlet.forward.context_path"));
- txt2.append("\nforward_servlet_path: ").append((String) hreq.getAttribute("javax.servlet.forward.servlet_path"));
- txt2.append("\nforward_path_info: ").append((String) hreq.getAttribute("javax.servlet.forward.path_info"));
- txt2.append("\nforward_query_string: ").append((String) hreq.getAttribute("javax.servlet.forward.query_string"));
- txt2.append("\ninclude_request_uri: ").append((String) hreq.getAttribute("javax.servlet.include.request_uri"));
- txt2.append("\ninclude_context_path: ").append((String) hreq.getAttribute("javax.servlet.include.context_path"));
- txt2.append("\ninclude_servlet_path: ").append((String) hreq.getAttribute("javax.servlet.include.servlet_path"));
- txt2.append("\ninclude_path_info: ").append((String) hreq.getAttribute("javax.servlet.include.path_info"));
- txt2.append("\ninclude_query_string: ").append((String) hreq.getAttribute("javax.servlet.include.query_string"));
- txt2.append("\nmethod_request_uri: ").append(hreq.getRequestURI());
- txt2.append("\nmethod_context_path: ").append(hreq.getContextPath());
- txt2.append("\nmethod_servlet_path: ").append(hreq.getServletPath());
- txt2.append("\nmethod_path_info: ").append(hreq.getPathInfo());
- txt2.append("\nmethod_query_string: ").append(hreq.getQueryString());
- LOGGER.fine(txt2.toString());
- }
-
+ trace(hreq, "Resource method: ");
// HttpServletRequest hreq = (HttpServletRequest) ctx.getRequest();
PortletConfig config = (PortletConfig) req.getAttribute("javax.portlet.config");
@@ -323,9 +253,39 @@ public class AsyncPortletResource {
type = OutputType.AUTO;
}
- AsyncRunnable ar = new AsyncRunnable(ctx, adb.getDelay(), type, (reps<=0));
+ AsyncRunnable ar = new AsyncRunnable(ctx, adb.getDelay(), type);
ctx.start(ar);
}
+ }
+
+ public static void trace(HttpServletRequest hreq, String src) {
+ if (isTrace) {
+ List<String> attrNames = Collections.list(hreq.getAttributeNames());
+ StringBuilder txt = new StringBuilder(128);
+ txt.append(src);
+ txt.append("\nAttribute names: ").append(attrNames);
+ txt.append("\nasync_request_uri: ").append((String) hreq.getAttribute("javax.servlet.async.request_uri"));
+ txt.append("\nasync_context_path: ").append((String) hreq.getAttribute("javax.servlet.async.context_path"));
+ txt.append("\nasync_servlet_path: ").append((String) hreq.getAttribute("javax.servlet.async.servlet_path"));
+ txt.append("\nasync_path_info: ").append((String) hreq.getAttribute("javax.servlet.async.path_info"));
+ txt.append("\nasync_query_string: ").append((String) hreq.getAttribute("javax.servlet.async.query_string"));
+ txt.append("\nforward_request_uri: ").append((String) hreq.getAttribute("javax.servlet.forward.request_uri"));
+ txt.append("\nforward_context_path: ").append((String) hreq.getAttribute("javax.servlet.forward.context_path"));
+ txt.append("\nforward_servlet_path: ").append((String) hreq.getAttribute("javax.servlet.forward.servlet_path"));
+ txt.append("\nforward_path_info: ").append((String) hreq.getAttribute("javax.servlet.forward.path_info"));
+ txt.append("\nforward_query_string: ").append((String) hreq.getAttribute("javax.servlet.forward.query_string"));
+ txt.append("\ninclude_request_uri: ").append((String) hreq.getAttribute("javax.servlet.include.request_uri"));
+ txt.append("\ninclude_context_path: ").append((String) hreq.getAttribute("javax.servlet.include.context_path"));
+ txt.append("\ninclude_servlet_path: ").append((String) hreq.getAttribute("javax.servlet.include.servlet_path"));
+ txt.append("\ninclude_path_info: ").append((String) hreq.getAttribute("javax.servlet.include.path_info"));
+ txt.append("\ninclude_query_string: ").append((String) hreq.getAttribute("javax.servlet.include.query_string"));
+ txt.append("\nmethod_request_uri: ").append(hreq.getRequestURI());
+ txt.append("\nmethod_context_path: ").append(hreq.getContextPath());
+ txt.append("\nmethod_servlet_path: ").append(hreq.getServletPath());
+ txt.append("\nmethod_path_info: ").append(hreq.getPathInfo());
+ txt.append("\nmethod_query_string: ").append(hreq.getQueryString());
+ LOGGER.fine(txt.toString());
+ }
}
}
http://git-wip-us.apache.org/repos/asf/portals-pluto/blob/c4a9c538/PortletV3AnnotatedDemo/src/main/resources/logging.properties
----------------------------------------------------------------------
diff --git a/PortletV3AnnotatedDemo/src/main/resources/logging.properties b/PortletV3AnnotatedDemo/src/main/resources/logging.properties
index 9a479f9..ef8a5c4 100644
--- a/PortletV3AnnotatedDemo/src/main/resources/logging.properties
+++ b/PortletV3AnnotatedDemo/src/main/resources/logging.properties
@@ -34,4 +34,4 @@ org.apache.juli.FileHandler.directory = ${catalina.base}/logs
org.apache.juli.FileHandler.prefix = PortletV3AnnotatedDemo.
org.apache.pluto.level=FINE
-org.apache.portals.samples.level=FINEST
+org.apache.portals.samples.level=FINER
http://git-wip-us.apache.org/repos/asf/portals-pluto/blob/c4a9c538/pluto-container/src/main/java/org/apache/pluto/container/impl/PortletAsyncRequestWrapper.java
----------------------------------------------------------------------
diff --git a/pluto-container/src/main/java/org/apache/pluto/container/impl/PortletAsyncRequestWrapper.java b/pluto-container/src/main/java/org/apache/pluto/container/impl/PortletAsyncRequestWrapper.java
index f2f6c2b..aec96ef 100644
--- a/pluto-container/src/main/java/org/apache/pluto/container/impl/PortletAsyncRequestWrapper.java
+++ b/pluto-container/src/main/java/org/apache/pluto/container/impl/PortletAsyncRequestWrapper.java
@@ -19,63 +19,173 @@
package org.apache.pluto.container.impl;
+import java.util.ArrayList;
+import java.util.Collections;
import java.util.Enumeration;
-import javax.portlet.PortletRequest;
+import javax.portlet.ResourceRequest;
+import javax.portlet.ResourceResponse;
import javax.servlet.AsyncContext;
-import javax.servlet.DispatcherType;
import javax.servlet.RequestDispatcher;
-import javax.servlet.ServletContext;
import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletRequestWrapper;
-import javax.servlet.http.HttpSession;
+
+import org.apache.pluto.container.NamespaceMapper;
+import org.apache.pluto.container.PortletRequestContext;
+import org.apache.pluto.container.PortletResourceRequestContext;
+import org.apache.pluto.container.PortletWindowID;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
/**
* @author Scott Nicklous
*
*/
-public class PortletAsyncRequestWrapper extends HttpServletRequestWrapper {
+public class PortletAsyncRequestWrapper extends HttpServletPortletRequestWrapper {
+
+ /** Logger. */
+ private static final Logger LOG = LoggerFactory.getLogger(PortletAsyncRequestWrapper.class);
+ @SuppressWarnings("unused")
+ private static final boolean isDebug = LOG.isDebugEnabled();
+ private static final boolean isTrace = LOG.isTraceEnabled();
- private final PortletRequest preq;
+
+ private final ResourceRequest preq;
+ private final PortletResourceRequestContext reqctx;
+ private final NamespaceMapper mapper;
+ private final PortletWindowID winId;
- public PortletAsyncRequestWrapper(HttpServletRequest hreq, PortletRequest preq) {
- super(hreq);
+ public PortletAsyncRequestWrapper(HttpServletRequest hreq, ResourceRequest preq, PortletResourceRequestContext reqctx) {
+ super(hreq, reqctx.getServletContext(), null, preq, true, false);
this.preq = preq;
+ this.reqctx = reqctx;
+ this.mapper = reqctx.getContainer().getContainerServices().getNamespaceMapper();
+ this.winId = reqctx.getPortletWindow().getId();
}
@Override
public Object getAttribute(String name) {
- return preq.getAttribute(name);
+ boolean encoded = true;
+ Object val = getRequest().getAttribute(mapper.encode(winId, name));
+ if (val == null) {
+ val = getRequest().getAttribute(name);
+ encoded = false;
+ }
+ if (isTrace) {
+ StringBuilder txt = new StringBuilder();
+ txt.append("Getting: ");
+ txt.append(name).append(", value: ").append((val == null) ? "null" : val.toString());
+ txt.append(", encoded: ").append(encoded);
+ LOG.debug(txt.toString());
+ }
+ return val;
}
@Override
public Enumeration<String> getAttributeNames() {
- return preq.getAttributeNames();
+ Enumeration<String> enames = getRequest().getAttributeNames();
+ ArrayList<String> snames = new ArrayList<String>();
+ for (String name : Collections.list(enames)) {
+ String dn = mapper.decode(winId, name);
+ if (dn != null) {
+ snames.add(dn);
+ } else {
+ snames.add(name);
+ }
+ }
+ return Collections.enumeration(snames);
}
@Override
public void setAttribute(String name, Object o) {
- preq.setAttribute(name, o);
+ boolean encoded = false;
+ Object val = getRequest().getAttribute(mapper.encode(winId, name));
+ if (val != null) {
+ getRequest().setAttribute(mapper.encode(winId, name), o);
+ encoded = true;
+ } else {
+ getRequest().setAttribute(name, o);
+ }
+
+ if (isTrace) {
+ StringBuilder txt = new StringBuilder();
+ txt.append("Setting: ");
+ txt.append(name).append(", value: ").append((o == null) ? "null" : o.toString());
+ txt.append(", encoded: ").append(encoded);
+ LOG.debug(txt.toString());
+ }
}
@Override
public void removeAttribute(String name) {
- preq.removeAttribute(name);
+ boolean encoded = false;
+ Object val = getRequest().getAttribute(mapper.encode(winId, name));
+ if (val != null) {
+ getRequest().removeAttribute(mapper.encode(winId, name));
+ encoded = true;
+ } else {
+ getRequest().removeAttribute(name);
+ }
+
+ if (isTrace) {
+ StringBuilder txt = new StringBuilder();
+ txt.append("Removing: ");
+ txt.append(name);
+ txt.append(", encoded: ").append(encoded);
+ LOG.debug(txt.toString());
+ }
}
@Override
- public RequestDispatcher getRequestDispatcher(String path) {
- RequestDispatcher rd = super.getRequestDispatcher(path);
- if (rd != null) {
- return new PortletRequestDispatcherImpl(rd, false);
+ public String getServletPath() {
+ String path = ((HttpServletRequest)getRequest()).getServletPath();
+ if (isTrace) {
+ StringBuilder txt = new StringBuilder();
+ txt.append("Servlet path: ");
+ txt.append(path);
+ LOG.debug(txt.toString());
}
- return null;
+ return path;
}
+ @Override
+ public String getPathInfo() {
+ String info = ((HttpServletRequest)getRequest()).getPathInfo();
+ if (isTrace) {
+ StringBuilder txt = new StringBuilder();
+ txt.append("Path info: ");
+ txt.append(info);
+ LOG.debug(txt.toString());
+ }
+ return info;
+ }
+
+
+
+
+
+
+
+
+
+
+
+// @Override
+// public RequestDispatcher getRequestDispatcher(String path) {
+// RequestDispatcher rd = super.getRequestDispatcher(path);
+// if (rd != null) {
+// PortletRequestDispatcherImpl prd = new PortletRequestDispatcherImpl(rd, false);
+// prd.setPortletRequest(preq);
+// prd.setPortletResponse(reqctx.getResponse());
+// return prd;
+// }
+// return null;
+// }
+
@@ -101,25 +211,25 @@ public class PortletAsyncRequestWrapper extends HttpServletRequestWrapper {
//
//
//
-// @Override
-// public AsyncContext startAsync() throws IllegalStateException {
-// return getRequest().startAsync();
-// }
-//
-// @Override
-// public AsyncContext startAsync(ServletRequest request, ServletResponse response) throws IllegalStateException {
-// return getRequest().startAsync(request, response);
-// }
-//
-// @Override
-// public boolean isAsyncStarted() {
-// return getRequest().isAsyncStarted();
-// }
-//
-// @Override
-// public boolean isAsyncSupported() {
-// return getRequest().isAsyncSupported();
-// }
-//
+ @Override
+ public AsyncContext startAsync() throws IllegalStateException {
+ return getRequest().startAsync();
+ }
+
+ @Override
+ public AsyncContext startAsync(ServletRequest request, ServletResponse response) throws IllegalStateException {
+ return getRequest().startAsync(request, response);
+ }
+
+ @Override
+ public boolean isAsyncStarted() {
+ return getRequest().isAsyncStarted();
+ }
+
+ @Override
+ public boolean isAsyncSupported() {
+ return getRequest().isAsyncSupported();
+ }
+
}
http://git-wip-us.apache.org/repos/asf/portals-pluto/blob/c4a9c538/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 a441c29..35909c0 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
@@ -26,7 +26,6 @@ import javax.portlet.ResourceRequest;
import javax.portlet.ResourceResponse;
import javax.servlet.AsyncContext;
import javax.servlet.DispatcherType;
-import javax.servlet.ServletContext;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
@@ -35,7 +34,6 @@ import org.apache.pluto.container.PortletContainer;
import org.apache.pluto.container.PortletInvokerService;
import org.apache.pluto.container.PortletResourceRequestContext;
import org.apache.pluto.container.PortletWindow;
-import org.apache.pluto.container.impl.HttpServletPortletRequestWrapper;
import org.apache.pluto.container.impl.HttpServletPortletResponseWrapper;
import org.apache.pluto.container.impl.PortletAsyncRequestWrapper;
import org.apache.pluto.container.impl.ResourceParametersImpl;
@@ -53,6 +51,7 @@ public class PortletResourceRequestContextImpl extends PortletRequestContextImpl
/** Logger. */
private static final Logger LOG = LoggerFactory.getLogger(PortletResourceRequestContextImpl.class);
+ @SuppressWarnings("unused")
private static final boolean isDebug = LOG.isDebugEnabled();
private static final boolean isTrace = LOG.isTraceEnabled();
@@ -130,11 +129,11 @@ public class PortletResourceRequestContextImpl extends PortletRequestContextImpl
HttpServletRequest hreq = getServletRequest();
HttpServletResponse hresp = getServletResponse();
- ServletContext ctx = getServletContext();
- HttpSession sess = getSession();
+// ServletContext ctx = getServletContext();
+// HttpSession sess = getSession();
PortletConfig cfg = getPortletConfig();
- if (isDebug) {
+ if (isTrace) {
List<String> attrNames = Collections.list(hreq.getAttributeNames());
StringBuilder txt = new StringBuilder(128);
txt.append("Start async before:");
@@ -171,7 +170,8 @@ public class PortletResourceRequestContextImpl extends PortletRequestContextImpl
// Wrap http req & response.
- HttpServletRequest wreq = new PortletAsyncRequestWrapper(hreq, request);
+ HttpServletRequest wreq = new PortletAsyncRequestWrapper(hreq, request, this);
+// HttpServletRequest wreq = new HttpServletPortletRequestWrapper(hreq, ctx, sess, request, true, false);
HttpServletResponse wresp = new HttpServletPortletResponseWrapper(hresp, request, response, false);
// get the original container req & resp to pass to listener for resource releasing
@@ -192,31 +192,31 @@ public class PortletResourceRequestContextImpl extends PortletRequestContextImpl
}
- if (isDebug) {
+ if (isTrace) {
List<String> attrNames = Collections.list(hreq.getAttributeNames());
StringBuilder txt = new StringBuilder(128);
- txt.append("Start async after:");
+ txt.append("Start async after (wreq):");
txt.append("\nAttribute names: ").append(attrNames);
- txt.append("\nasync_request_uri: ").append((String) hreq.getAttribute("javax.servlet.async.request_uri"));
- txt.append("\nasync_context_path: ").append((String) hreq.getAttribute("javax.servlet.async.context_path"));
- txt.append("\nasync_servlet_path: ").append((String) hreq.getAttribute("javax.servlet.async.servlet_path"));
- txt.append("\nasync_path_info: ").append((String) hreq.getAttribute("javax.servlet.async.path_info"));
- txt.append("\nasync_query_string: ").append((String) hreq.getAttribute("javax.servlet.async.query_string"));
- txt.append("\nforward_request_uri: ").append((String) hreq.getAttribute("javax.servlet.forward.request_uri"));
- txt.append("\nforward_context_path: ").append((String) hreq.getAttribute("javax.servlet.forward.context_path"));
- txt.append("\nforward_servlet_path: ").append((String) hreq.getAttribute("javax.servlet.forward.servlet_path"));
- txt.append("\nforward_path_info: ").append((String) hreq.getAttribute("javax.servlet.forward.path_info"));
- txt.append("\nforward_query_string: ").append((String) hreq.getAttribute("javax.servlet.forward.query_string"));
- txt.append("\ninclude_request_uri: ").append((String) hreq.getAttribute("javax.servlet.include.request_uri"));
- txt.append("\ninclude_context_path: ").append((String) hreq.getAttribute("javax.servlet.include.context_path"));
- txt.append("\ninclude_servlet_path: ").append((String) hreq.getAttribute("javax.servlet.include.servlet_path"));
- txt.append("\ninclude_path_info: ").append((String) hreq.getAttribute("javax.servlet.include.path_info"));
- txt.append("\ninclude_query_string: ").append((String) hreq.getAttribute("javax.servlet.include.query_string"));
- txt.append("\nmethod_request_uri: ").append(hreq.getRequestURI());
- txt.append("\nmethod_context_path: ").append(hreq.getContextPath());
- txt.append("\nmethod_servlet_path: ").append(hreq.getServletPath());
- txt.append("\nmethod_path_info: ").append(hreq.getPathInfo());
- txt.append("\nmethod_query_string: ").append(hreq.getQueryString());
+ txt.append("\nasync_request_uri: ").append((String) wreq.getAttribute("javax.servlet.async.request_uri"));
+ txt.append("\nasync_context_path: ").append((String) wreq.getAttribute("javax.servlet.async.context_path"));
+ txt.append("\nasync_servlet_path: ").append((String) wreq.getAttribute("javax.servlet.async.servlet_path"));
+ txt.append("\nasync_path_info: ").append((String) wreq.getAttribute("javax.servlet.async.path_info"));
+ txt.append("\nasync_query_string: ").append((String) wreq.getAttribute("javax.servlet.async.query_string"));
+ txt.append("\nforward_request_uri: ").append((String) wreq.getAttribute("javax.servlet.forward.request_uri"));
+ txt.append("\nforward_context_path: ").append((String) wreq.getAttribute("javax.servlet.forward.context_path"));
+ txt.append("\nforward_servlet_path: ").append((String) wreq.getAttribute("javax.servlet.forward.servlet_path"));
+ txt.append("\nforward_path_info: ").append((String) wreq.getAttribute("javax.servlet.forward.path_info"));
+ txt.append("\nforward_query_string: ").append((String) wreq.getAttribute("javax.servlet.forward.query_string"));
+ txt.append("\ninclude_request_uri: ").append((String) wreq.getAttribute("javax.servlet.include.request_uri"));
+ txt.append("\ninclude_context_path: ").append((String) wreq.getAttribute("javax.servlet.include.context_path"));
+ txt.append("\ninclude_servlet_path: ").append((String) wreq.getAttribute("javax.servlet.include.servlet_path"));
+ txt.append("\ninclude_path_info: ").append((String) wreq.getAttribute("javax.servlet.include.path_info"));
+ txt.append("\ninclude_query_string: ").append((String) wreq.getAttribute("javax.servlet.include.query_string"));
+ txt.append("\nmethod_request_uri: ").append(wreq.getRequestURI());
+ txt.append("\nmethod_context_path: ").append(wreq.getContextPath());
+ txt.append("\nmethod_servlet_path: ").append(wreq.getServletPath());
+ txt.append("\nmethod_path_info: ").append(wreq.getPathInfo());
+ txt.append("\nmethod_query_string: ").append(wreq.getQueryString());
LOG.debug(txt.toString());
}
@@ -246,7 +246,8 @@ public class PortletResourceRequestContextImpl extends PortletRequestContextImpl
// For use within the wrapper.
// PLT.10.4.3. Proxied session is created and passed if
// javax.portlet.servletDefaultSessionScope == PORTLET_SCOPE
- private HttpSession getSession() {
+ @SuppressWarnings("unused")
+ private HttpSession getSession() {
HttpSession sess = null;
PortletConfig portletConfig = getPortletConfig();