weaver 2003/08/07 14:33:38
Modified: portal/src/java/org/apache/jetspeed/container/invoker
ServletPortletInvoker.java
Log:
the javax.portlet.PortletConfig is added to the request for invocation
Revision Changes Path
1.2 +41 -46
jakarta-jetspeed-2/portal/src/java/org/apache/jetspeed/container/invoker/ServletPortletInvoker.java
Index: ServletPortletInvoker.java
===================================================================
RCS file:
/home/cvs/jakarta-jetspeed-2/portal/src/java/org/apache/jetspeed/container/invoker/ServletPortletInvoker.java,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- ServletPortletInvoker.java 28 Jul 2003 23:47:38 -0000 1.1
+++ ServletPortletInvoker.java 7 Aug 2003 21:33:38 -0000 1.2
@@ -63,6 +63,8 @@
import javax.portlet.ActionResponse;
import javax.portlet.ActionRequest;
+import javax.portlet.PortletConfig;
+import javax.portlet.PortletContext;
import javax.portlet.PortletException;
import javax.portlet.PortletRequest;
import javax.portlet.PortletResponse;
@@ -76,8 +78,10 @@
import org.apache.pluto.om.portlet.PortletDefinition;
import org.apache.pluto.core.InternalPortletRequest;
import org.apache.pluto.core.InternalPortletResponse;
+import org.apache.pluto.core.impl.PortletConfigImpl;
import org.apache.pluto.portlet.PortletUtils;
import org.apache.jetspeed.container.ContainerConstants;
+import org.apache.jetspeed.container.PortletContextFactory;
/**
* Portlet Invoker implementation, invokes the JetspeedContainerServlet
@@ -88,17 +92,16 @@
public class ServletPortletInvoker implements PortletInvoker
{
public static final String MVC_ENTRY_SERVLET = "/container";
-
+
private final static Log log = LogFactory.getLog(ServletPortletInvoker.class);
- protected ServletContext jetspeedContext;
+ protected ServletContext jetspeedContext;
private PortletDefinition portletDefinition;
- public ServletPortletInvoker(PortletDefinition portletDefinition,
- ServletConfig servletConfig)
+ public ServletPortletInvoker(PortletDefinition portletDefinition, ServletConfig
servletConfig)
{
System.out.println("%%% invoker.portletdef = " + portletDefinition);
-
+
jetspeedContext = servletConfig.getServletContext();
this.portletDefinition = portletDefinition;
}
@@ -109,36 +112,31 @@
* @param response
* @throws PortletException
*/
- public void render(RenderRequest request,
- RenderResponse response)
- throws PortletException, IOException
+ public void render(RenderRequest request, RenderResponse response) throws
PortletException, IOException
{
- invoke(request, response, ContainerConstants.METHOD_RENDER);
+ invoke(request, response, ContainerConstants.METHOD_RENDER);
}
/**
*
*/
- public void action(ActionRequest request, ActionResponse response)
- throws PortletException, IOException
+ public void action(ActionRequest request, ActionResponse response) throws
PortletException, IOException
{
- invoke(request, response, ContainerConstants.METHOD_ACTION);
+ invoke(request, response, ContainerConstants.METHOD_ACTION);
}
/**
*
*/
- public void load(PortletRequest request,
- RenderResponse response)
- throws PortletException
+ public void load(PortletRequest request, RenderResponse response) throws
PortletException
{
try
{
invoke(request, response, ContainerConstants.METHOD_NOOP);
- }
+ }
catch (IOException e)
{
- log.error("PortletInvokerImpl.load() - Error while dispatching
portlet.",e);
+ log.error("PortletInvokerImpl.load() - Error while dispatching
portlet.", e);
throw new PortletException(e);
}
}
@@ -151,50 +149,43 @@
* @throws PortletException
* @throws IOException
*/
- protected void invoke(PortletRequest portletRequest,
- PortletResponse portletResponse,
- Integer methodID)
- throws PortletException,IOException
- {
+ protected void invoke(PortletRequest portletRequest, PortletResponse
portletResponse, Integer methodID)
+ throws PortletException, IOException
+ {
PortletApplicationDefinition app =
portletDefinition.getPortletApplicationDefinition();
System.out.println("%%% invoker.pa = " + app);
-
+
String portletApplicationName =
app.getWebApplicationDefinition().getContextRoot();
//String portletApplicationName = "/HW_App";
-
- InternalPortletRequest internalPortletRequest =
- PortletUtils.getInternalRequest(portletRequest);
- InternalPortletResponse internalPortletResponse =
- PortletUtils.getInternalResponse(portletResponse);
+ InternalPortletRequest internalPortletRequest =
PortletUtils.getInternalRequest(portletRequest);
- // gather all required data from request and response
- ServletRequest servletRequest =
-
((javax.servlet.http.HttpServletRequestWrapper)internalPortletRequest).getRequest();
+ InternalPortletResponse internalPortletResponse =
PortletUtils.getInternalResponse(portletResponse);
- ServletResponse servletResponse =
-
((javax.servlet.http.HttpServletResponseWrapper)internalPortletResponse).getResponse();
+ // gather all required data from request and response
+ ServletRequest servletRequest =
((javax.servlet.http.HttpServletRequestWrapper) internalPortletRequest).getRequest();
+ ServletResponse servletResponse =
((javax.servlet.http.HttpServletResponseWrapper)
internalPortletResponse).getResponse();
ServletContext appContext =
jetspeedContext.getContext(portletApplicationName);
if (null == appContext)
{
- String message = "Failed to find Servlet context for Portlet
Application: "
- + portletApplicationName;
+ String message = "Failed to find Servlet context for Portlet
Application: " + portletApplicationName;
log.error(message);
throw new PortletException();
}
-
RequestDispatcher dispatcher =
appContext.getRequestDispatcher(MVC_ENTRY_SERVLET);
if (null == dispatcher)
{
- String message = "Failed to get Request Dispatcher for Portlet
Application: "
- + portletApplicationName + ", servlet: " + MVC_ENTRY_SERVLET;
- log.error(message);
+ String message =
+ "Failed to get Request Dispatcher for Portlet Application: "
+ + portletApplicationName
+ + ", servlet: "
+ + MVC_ENTRY_SERVLET;
+ log.error(message);
throw new PortletException(message);
}
-
try
{
@@ -203,13 +194,18 @@
servletRequest.setAttribute(ContainerConstants.PORTLET_REQUEST,
portletRequest);
servletRequest.setAttribute(ContainerConstants.PORTLET_RESPONSE,
portletResponse);
servletRequest.setAttribute(ContainerConstants.PORTLET_ENTITY,
portletDefinition);
-
+
+ PortletContext portletContext =
PortletContextFactory.createPortletContext(appContext, app);
+ //TODO: We need to get the ServletConfig somehow!!!
+ PortletConfig portletConfig = new PortletConfigImpl(null,
portletContext, portletDefinition);
+ servletRequest.setAttribute(ContainerConstants.PORTLET_CONFIG,
portletConfig);
+
dispatcher.include(servletRequest, servletResponse);
}
catch (Exception e)
{
- String message = "Failed to dispatch.include for Portlet Application: "
+
- portletApplicationName + ", servlet: " +
MVC_ENTRY_SERVLET;
+ String message =
+ "Failed to dispatch.include for Portlet Application: " +
portletApplicationName + ", servlet: " + MVC_ENTRY_SERVLET;
log.error(message, e);
throw new PortletException(message, e);
}
@@ -218,10 +214,9 @@
servletRequest.removeAttribute(ContainerConstants.METHOD_ID);
servletRequest.removeAttribute(ContainerConstants.PORTLET_REQUEST);
servletRequest.removeAttribute(ContainerConstants.PORTLET_RESPONSE);
+ servletRequest.removeAttribute(ContainerConstants.PORTLET_CONFIG);
servletRequest.removeAttribute(ContainerConstants.PORTLET_ENTITY);
}
}
-
}
-
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]