Author: julien(a)jboss.com
Date: 2008-01-31 05:25:17 -0500 (Thu, 31 Jan 2008)
New Revision: 9679
Modified:
modules/portlet/trunk/portlet/src/main/java/org/jboss/portal/portlet/impl/jsr168/DispatchedHttpServletRequest.java
modules/portlet/trunk/portlet/src/main/java/org/jboss/portal/portlet/impl/jsr168/api/PortletRequestDispatcherImpl.java
Log:
implemented the never implemented (and used probably) getTranslatedPath() method on the
dispatched http servlet request
Modified:
modules/portlet/trunk/portlet/src/main/java/org/jboss/portal/portlet/impl/jsr168/DispatchedHttpServletRequest.java
===================================================================
---
modules/portlet/trunk/portlet/src/main/java/org/jboss/portal/portlet/impl/jsr168/DispatchedHttpServletRequest.java 2008-01-31
10:23:45 UTC (rev 9678)
+++
modules/portlet/trunk/portlet/src/main/java/org/jboss/portal/portlet/impl/jsr168/DispatchedHttpServletRequest.java 2008-01-31
10:25:17 UTC (rev 9679)
@@ -34,6 +34,7 @@
import javax.servlet.RequestDispatcher;
import javax.servlet.ServletInputStream;
+import javax.servlet.ServletContext;
import javax.servlet.http.Cookie;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpSession;
@@ -123,10 +124,14 @@
/** . */
private final String[] infos;
+ /** . */
+ private final ServletContext servletContext;
+
public DispatchedHttpServletRequest(
Dispatch dispatch,
PortletRequestImpl preq,
- HttpServletRequest dreq)
+ HttpServletRequest dreq,
+ ServletContext servletContext)
{
super(dreq);
@@ -134,6 +139,7 @@
this.dispatchType = dispatch.getType();
this.preq = preq;
this.dreq = dreq;
+ this.servletContext = servletContext;
this.containerAttributesStack = new LinkedList<Map<String, String>>();
// Push dispatch
@@ -212,7 +218,10 @@
public final String getPathTranslated()
{
- return "PathTranslated"; // todo
+ String pathInfo = getPathInfo();
+
+ //
+ return pathInfo == null ? null : servletContext.getRealPath(pathInfo);
}
public final String getQueryString()
@@ -641,9 +650,9 @@
/** . */
private final ClientDataRequestImpl cdreq;
- public ClientData(Dispatch dispatch, ClientDataRequestImpl cdreq,
HttpServletRequest dreq)
+ public ClientData(Dispatch dispatch, ClientDataRequestImpl cdreq,
HttpServletRequest dreq, ServletContext servletContext)
{
- super(dispatch, cdreq, dreq);
+ super(dispatch, cdreq, dreq, servletContext);
//
this.cdreq = cdreq;
@@ -709,26 +718,26 @@
public static final class Action extends ClientData
{
- public Action(Dispatch dispatch, ActionRequestImpl areq, HttpServletRequest dreq)
+ public Action(Dispatch dispatch, ActionRequestImpl areq, HttpServletRequest dreq,
ServletContext servletContext)
{
- super(dispatch, areq, dreq);
+ super(dispatch, areq, dreq, servletContext);
}
}
public static final class Resource extends ClientData
{
- public Resource(Dispatch dispatch, ResourceRequestImpl rreq, HttpServletRequest
dreq)
+ public Resource(Dispatch dispatch, ResourceRequestImpl rreq, HttpServletRequest
dreq, ServletContext servletContext)
{
- super(dispatch, rreq, dreq);
+ super(dispatch, rreq, dreq, servletContext);
}
}
public static abstract class Mime extends DispatchedHttpServletRequest
{
- public Mime(Dispatch dispatch, PortletRequestImpl preq, HttpServletRequest dreq)
+ public Mime(Dispatch dispatch, PortletRequestImpl preq, HttpServletRequest dreq,
ServletContext servletContext)
{
- super(dispatch, preq, dreq);
+ super(dispatch, preq, dreq, servletContext);
}
public final String getCharacterEncoding()
@@ -767,9 +776,9 @@
/** . */
private final EventRequestImpl ereq;
- public Event(Dispatch dispatch, EventRequestImpl ereq, HttpServletRequest dreq)
+ public Event(Dispatch dispatch, EventRequestImpl ereq, HttpServletRequest dreq,
ServletContext servletContext)
{
- super(dispatch, ereq, dreq);
+ super(dispatch, ereq, dreq, servletContext);
//
this.ereq = ereq;
@@ -784,9 +793,9 @@
public static final class Render extends Mime
{
- public Render(Dispatch dispatch, RenderRequestImpl rreq, HttpServletRequest dreq)
+ public Render(Dispatch dispatch, RenderRequestImpl rreq, HttpServletRequest dreq,
ServletContext servletContext)
{
- super(dispatch, rreq, dreq);
+ super(dispatch, rreq, dreq, servletContext);
}
public String getMethod()
Modified:
modules/portlet/trunk/portlet/src/main/java/org/jboss/portal/portlet/impl/jsr168/api/PortletRequestDispatcherImpl.java
===================================================================
---
modules/portlet/trunk/portlet/src/main/java/org/jboss/portal/portlet/impl/jsr168/api/PortletRequestDispatcherImpl.java 2008-01-31
10:23:45 UTC (rev 9678)
+++
modules/portlet/trunk/portlet/src/main/java/org/jboss/portal/portlet/impl/jsr168/api/PortletRequestDispatcherImpl.java 2008-01-31
10:25:17 UTC (rev 9679)
@@ -28,6 +28,8 @@
import org.jboss.portal.portlet.impl.jsr168.DispatchedHttpServletResponse;
import org.jboss.portal.portlet.impl.jsr168.DispatchType;
import org.jboss.portal.portlet.impl.jsr168.Dispatch;
+import org.jboss.portal.portlet.container.PortletApplication;
+import org.jboss.portal.portlet.container.PortletApplicationContext;
import javax.portlet.PortletException;
import javax.portlet.PortletRequestDispatcher;
@@ -39,6 +41,7 @@
import javax.portlet.EventRequest;
import javax.servlet.RequestDispatcher;
import javax.servlet.ServletException;
+import javax.servlet.ServletContext;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
@@ -97,6 +100,11 @@
PortletInvocation invocation =
(PortletInvocation)req.getAttribute(ContextDispatcherInterceptor.REQ_ATT_COMPONENT_INVOCATION);
//
+ PortletApplication application =
((PortletRequestImpl)req).container.getApplication();
+ PortletApplicationContext applicationContext = application.getContext();
+ ServletContext servletContext = applicationContext.getServletContext();
+
+ //
HttpServletRequest dreq = invocation.getDispatchedRequest();
HttpServletResponse dresp = invocation.getDispatchedResponse();
@@ -105,22 +113,22 @@
DispatchedHttpServletResponse diresp;
if (req instanceof ActionRequest)
{
- direq = new DispatchedHttpServletRequest.Action(dispatch,
(ActionRequestImpl)req, dreq);
+ direq = new DispatchedHttpServletRequest.Action(dispatch,
(ActionRequestImpl)req, dreq, servletContext);
diresp = new DispatchedHttpServletResponse.StateAware(direq,
(StateAwareResponseImpl)resp, dresp);
}
else if (req instanceof EventRequest)
{
- direq = new DispatchedHttpServletRequest.Event(dispatch,
(EventRequestImpl)req, dreq);
+ direq = new DispatchedHttpServletRequest.Event(dispatch,
(EventRequestImpl)req, dreq, servletContext);
diresp = new DispatchedHttpServletResponse.StateAware(direq,
(StateAwareResponseImpl)resp, dresp);
}
else if (req instanceof RenderRequest)
{
- direq = new DispatchedHttpServletRequest.Render(dispatch,
(RenderRequestImpl)req, dreq);
+ direq = new DispatchedHttpServletRequest.Render(dispatch,
(RenderRequestImpl)req, dreq, servletContext);
diresp = new DispatchedHttpServletResponse.Mime(direq,
(MimeResponseImpl)resp, dresp);
}
else
{
- direq = new DispatchedHttpServletRequest.Resource(dispatch,
(ResourceRequestImpl)req, dreq);
+ direq = new DispatchedHttpServletRequest.Resource(dispatch,
(ResourceRequestImpl)req, dreq, servletContext);
diresp = new DispatchedHttpServletResponse.Mime(direq,
(MimeResponseImpl)resp, dresp);
}