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 cd...@apache.org on 2008/10/06 10:39:12 UTC
svn commit: r702005 - in /portals/pluto/branches/2.0-spi-refactoring:
pluto-container/src/main/java/org/apache/pluto/core/
pluto-container/src/main/java/org/apache/pluto/internal/impl/
pluto-portal-driver/src/main/java/org/apache/pluto/driver/ pluto-po...
Author: cdoremus
Date: Mon Oct 6 01:39:11 2008
New Revision: 702005
URL: http://svn.apache.org/viewvc?rev=702005&view=rev
Log:
Applied PLUTO-501_patch2.diff in PLUTO-501.
Modified:
portals/pluto/branches/2.0-spi-refactoring/pluto-container/src/main/java/org/apache/pluto/core/PortletContainerImpl.java
portals/pluto/branches/2.0-spi-refactoring/pluto-container/src/main/java/org/apache/pluto/core/PortletContextManager.java
portals/pluto/branches/2.0-spi-refactoring/pluto-container/src/main/java/org/apache/pluto/core/PortletServlet.java
portals/pluto/branches/2.0-spi-refactoring/pluto-container/src/main/java/org/apache/pluto/internal/impl/Configuration.java
portals/pluto/branches/2.0-spi-refactoring/pluto-portal-driver/src/main/java/org/apache/pluto/driver/PortalDriverServlet.java
portals/pluto/branches/2.0-spi-refactoring/pluto-portal-driver/src/main/java/org/apache/pluto/driver/PortalStartupListener.java
portals/pluto/branches/2.0-spi-refactoring/pluto-portal-driver/src/main/java/org/apache/pluto/driver/core/PortalRequestContext.java
Modified: portals/pluto/branches/2.0-spi-refactoring/pluto-container/src/main/java/org/apache/pluto/core/PortletContainerImpl.java
URL: http://svn.apache.org/viewvc/portals/pluto/branches/2.0-spi-refactoring/pluto-container/src/main/java/org/apache/pluto/core/PortletContainerImpl.java?rev=702005&r1=702004&r2=702005&view=diff
==============================================================================
--- portals/pluto/branches/2.0-spi-refactoring/pluto-container/src/main/java/org/apache/pluto/core/PortletContainerImpl.java (original)
+++ portals/pluto/branches/2.0-spi-refactoring/pluto-container/src/main/java/org/apache/pluto/core/PortletContainerImpl.java Mon Oct 6 01:39:11 2008
@@ -17,6 +17,7 @@
package org.apache.pluto.core;
import java.io.IOException;
+import java.io.PrintWriter;
import java.util.Map;
import javax.portlet.ActionRequest;
@@ -178,11 +179,32 @@
ensureInitialized();
+
+ ServletContext srvCtx = null;
+
+ try
+ {
+ srvCtx = PortletContextManager.getPortletContext(servletContext,
+ portletWindow.getContextPath());
+
+ } catch(PortletContainerException ex)
+ {
+ LOG.error("Can get portlet context for: " + portletWindow.getContextPath(), ex);
+ }
+
+ if (srvCtx == null)
+ {
+ PrintWriter writer=null;
+ writer = response.getWriter();
+ writer.write("<div class=\"portlet-msg-error\">Portlet '" + portletWindow.getContextPath() + "' cannot be loaded because of problems getting servlet context. Pleae check your configuration.</div>");
+ return; // Can't get portlet context!
+ }
+
+
+
InternalPortletWindow internalPortletWindow =
- new InternalPortletWindowImpl(
- PortletContextManager.getPortletContext(servletContext,
- portletWindow.getContextPath()),
- portletWindow);
+ new InternalPortletWindowImpl(srvCtx, portletWindow);
+
debugWithName("Render request received for portlet: "
+ portletWindow.getPortletName());
Modified: portals/pluto/branches/2.0-spi-refactoring/pluto-container/src/main/java/org/apache/pluto/core/PortletContextManager.java
URL: http://svn.apache.org/viewvc/portals/pluto/branches/2.0-spi-refactoring/pluto-container/src/main/java/org/apache/pluto/core/PortletContextManager.java?rev=702005&r1=702004&r2=702005&view=diff
==============================================================================
--- portals/pluto/branches/2.0-spi-refactoring/pluto-container/src/main/java/org/apache/pluto/core/PortletContextManager.java (original)
+++ portals/pluto/branches/2.0-spi-refactoring/pluto-container/src/main/java/org/apache/pluto/core/PortletContextManager.java Mon Oct 6 01:39:11 2008
@@ -125,12 +125,16 @@
ServletContext servletContext = config.getServletContext();
String applicationId = getContextPath(servletContext);
if (!portletContexts.containsKey(applicationId)) {
+ PortletDescriptorRegistry portletRegistry = PortletDescriptorRegistry.getRegistry();
- PortletApp portletApp = PortletDescriptorRegistry.getRegistry().getPortletAppDD(servletContext);
+ PortletApp portletApp = portletRegistry.getPortletAppDD(servletContext);
portletApp.setId(applicationId);
portletApp.setName(applicationId.substring(1));
InternalPortletContext portletContext = new PortletContextImpl(servletContext, portletApp);
+ if (portletContext.getApplicationId() == null) {
+ throw new IllegalStateException("Unable to resolve unique identifier for portlet context.");
+ }
portletContexts.put(applicationId, portletContext);
Modified: portals/pluto/branches/2.0-spi-refactoring/pluto-container/src/main/java/org/apache/pluto/core/PortletServlet.java
URL: http://svn.apache.org/viewvc/portals/pluto/branches/2.0-spi-refactoring/pluto-container/src/main/java/org/apache/pluto/core/PortletServlet.java?rev=702005&r1=702004&r2=702005&view=diff
==============================================================================
--- portals/pluto/branches/2.0-spi-refactoring/pluto-container/src/main/java/org/apache/pluto/core/PortletServlet.java (original)
+++ portals/pluto/branches/2.0-spi-refactoring/pluto-container/src/main/java/org/apache/pluto/core/PortletServlet.java Mon Oct 6 01:39:11 2008
@@ -23,11 +23,14 @@
import javax.portlet.Portlet;
import javax.portlet.PortletException;
import javax.portlet.ResourceServingPortlet;
+import javax.servlet.ServletConfig;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
+import org.apache.commons.logging.Log;
+import org.apache.commons.logging.LogFactory;
import org.apache.pluto.Constants;
import org.apache.pluto.PortletContainerException;
import org.apache.pluto.PortletWindow;
@@ -61,6 +64,9 @@
// Private Member Variables ------------------------------------------------
+ /** Internal Logger. */
+ private static final Log LOG = LogFactory.getLog(PortletServlet.class);
+
/**
* The portlet name as defined in the portlet app descriptor.
*/
@@ -108,11 +114,18 @@
// Retrieve the associated internal portlet context.
PortletContextManager mgr = PortletContextManager.getManager();
try {
- String applicationId = mgr.register(getServletConfig());
+ ServletConfig sConfig = getServletConfig();
+ if (sConfig == null) {
+ String msg = "Problem obtaining servlet configuration(getServletConfig() returns null).";
+ throw new PortletContainerException(msg);
+ }
+
+ String applicationId = mgr.register(sConfig);
portletContext = (InternalPortletContext) mgr.getPortletContext(applicationId);
portletConfig = (InternalPortletConfig) mgr.getPortletConfig(applicationId, portletName);
} catch (PortletContainerException ex) {
+ LOG.error(ex.getMessage(), ex);
throw new ServletException(ex);
}
@@ -127,16 +140,16 @@
initializeEventPortlet();
initializeResourceServingPortlet();
} catch (ClassNotFoundException ex) {
- ex.printStackTrace();
+ LOG.error(ex.getMessage(), ex);
throw new ServletException(ex);
} catch (IllegalAccessException ex) {
- ex.printStackTrace();
+ LOG.error(ex.getMessage(), ex);
throw new ServletException(ex);
} catch (InstantiationException ex) {
- ex.printStackTrace();
+ LOG.error(ex.getMessage(), ex);
throw new ServletException(ex);
} catch (PortletException ex) {
- ex.printStackTrace();
+ LOG.error(ex.getMessage(), ex);
throw new ServletException(ex);
}
}
@@ -282,7 +295,7 @@
} catch (javax.portlet.UnavailableException ex) {
- ex.printStackTrace();
+ LOG.error(ex.getMessage(), ex);
/*
if (e.isPermanent()) {
throw new UnavailableException(e.getMessage());
@@ -294,6 +307,7 @@
try {
portlet.destroy();
} catch (Throwable th) {
+ LOG.error(th.getMessage(), th);
// Don't care for Exception
}
@@ -302,7 +316,7 @@
} catch (PortletException ex) {
notify(event, false, ex);
- ex.printStackTrace();
+ LOG.error(ex.getMessage(), ex);
throw new ServletException(ex);
} finally {
@@ -347,7 +361,10 @@
if (portlet instanceof ResourceServingPortlet) {
resourceServingPortlet = (ResourceServingPortlet) portlet;
}
- else{
+ else {
+ if (LOG.isDebugEnabled()) {
+ LOG.debug("Not resource serving portlet.");
+ }
resourceServingPortlet = new NullPortlet();
}
}
Modified: portals/pluto/branches/2.0-spi-refactoring/pluto-container/src/main/java/org/apache/pluto/internal/impl/Configuration.java
URL: http://svn.apache.org/viewvc/portals/pluto/branches/2.0-spi-refactoring/pluto-container/src/main/java/org/apache/pluto/internal/impl/Configuration.java?rev=702005&r1=702004&r2=702005&view=diff
==============================================================================
--- portals/pluto/branches/2.0-spi-refactoring/pluto-container/src/main/java/org/apache/pluto/internal/impl/Configuration.java (original)
+++ portals/pluto/branches/2.0-spi-refactoring/pluto-container/src/main/java/org/apache/pluto/internal/impl/Configuration.java Mon Oct 6 01:39:11 2008
@@ -45,6 +45,7 @@
String test = BUNDLE.getString(PREVENT_UNECESSARY_CROSS_CONTEXT);
prevent = new Boolean(test);
} catch (MissingResourceException mre) {
+ LOG.warn(mre.getMessage());
prevent = Boolean.FALSE;
}
}
Modified: portals/pluto/branches/2.0-spi-refactoring/pluto-portal-driver/src/main/java/org/apache/pluto/driver/PortalDriverServlet.java
URL: http://svn.apache.org/viewvc/portals/pluto/branches/2.0-spi-refactoring/pluto-portal-driver/src/main/java/org/apache/pluto/driver/PortalDriverServlet.java?rev=702005&r1=702004&r2=702005&view=diff
==============================================================================
--- portals/pluto/branches/2.0-spi-refactoring/pluto-portal-driver/src/main/java/org/apache/pluto/driver/PortalDriverServlet.java (original)
+++ portals/pluto/branches/2.0-spi-refactoring/pluto-portal-driver/src/main/java/org/apache/pluto/driver/PortalDriverServlet.java Mon Oct 6 01:39:11 2008
@@ -66,7 +66,6 @@
/** Character encoding and content type of the response */
private String contentType = "";
-
// HttpServlet Impl --------------------------------------------------------
public String getServletInfo() {
@@ -99,6 +98,9 @@
*/
public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
+ if (LOG.isDebugEnabled()) {
+ LOG.debug("Start of PortalDriverServlet.doGet() to process portlet request . . .");
+ }
if ( contentType != "" ) {
response.setContentType( contentType );
@@ -107,7 +109,15 @@
PortalRequestContext portalRequestContext =
new PortalRequestContext(getServletContext(), request, response);
- PortalURL portalURL = portalRequestContext.getRequestedPortalURL();
+ PortalURL portalURL = null;
+
+ try {
+ portalURL = portalRequestContext.getRequestedPortalURL();
+ } catch(Exception ex) {
+ String msg = "Cannot handle request for portal URL. Problem: " + ex.getMessage();
+ LOG.error(msg, ex);
+ throw new ServletException(msg, ex);
+ }
String actionWindowId = portalURL.getActionWindow();
String resourceWindowId = portalURL.getResourceWindow();
@@ -116,8 +126,7 @@
if (resourceWindowId != null){
resourceWindowConfig = PortletWindowConfig.fromId(resourceWindowId);
- }
- else if(actionWindowId != null){
+ } else if(actionWindowId != null){
actionWindowConfig = PortletWindowConfig.fromId(actionWindowId);
}
@@ -132,8 +141,10 @@
try {
container.doAction(portletWindow, request, response);
} catch (PortletContainerException ex) {
+ LOG.error(ex.getMessage(), ex);
throw new ServletException(ex);
} catch (PortletException ex) {
+ LOG.error(ex.getMessage(), ex);
throw new ServletException(ex);
}
if (LOG.isDebugEnabled()) {
@@ -146,7 +157,8 @@
if (request.getParameterNames().hasMoreElements())
setPublicRenderParameter(request, portalURL, portalURL.getResourceWindow());
} catch (PortletContainerException e) {
- LOG.warn(e);
+ LOG.error(e);
+ throw new ServletException(e);
}
PortletWindowImpl portletWindow = new PortletWindowImpl(container,
resourceWindowConfig, portalURL);
@@ -157,12 +169,14 @@
try {
container.doServeResource(portletWindow, request, response);
} catch (PortletContainerException ex) {
+ LOG.error(ex.getMessage(), ex);
throw new ServletException(ex);
} catch (PortletException ex) {
+ LOG.error(ex.getMessage(), ex);
throw new ServletException(ex);
}
if (LOG.isDebugEnabled()) {
- LOG.debug("Action request processed.\n\n");
+ LOG.debug("Resource serving request processed.\n\n");
}
}
// Otherwise (actionWindowConfig == null), handle the render request.
@@ -173,8 +187,10 @@
PageConfig pageConfig = portalURL.getPageConfig(servletContext);
if (pageConfig == null)
{
- // TODO Shouldn't we throw an exception here?
- LOG.error("PageConfig for render path [" + portalURL.getRenderPath() + "] could not be found.");
+ String renderPath = (portalURL == null ? "" : portalURL.getRenderPath());
+ String msg = "PageConfig for render path [" + renderPath + "] could not be found.";
+ LOG.error(msg);
+ throw new ServletException(msg);
}
request.setAttribute(AttributeKeys.CURRENT_PAGE, pageConfig);
Modified: portals/pluto/branches/2.0-spi-refactoring/pluto-portal-driver/src/main/java/org/apache/pluto/driver/PortalStartupListener.java
URL: http://svn.apache.org/viewvc/portals/pluto/branches/2.0-spi-refactoring/pluto-portal-driver/src/main/java/org/apache/pluto/driver/PortalStartupListener.java?rev=702005&r1=702004&r2=702005&view=diff
==============================================================================
--- portals/pluto/branches/2.0-spi-refactoring/pluto-portal-driver/src/main/java/org/apache/pluto/driver/PortalStartupListener.java (original)
+++ portals/pluto/branches/2.0-spi-refactoring/pluto-portal-driver/src/main/java/org/apache/pluto/driver/PortalStartupListener.java Mon Oct 6 01:39:11 2008
@@ -95,9 +95,18 @@
ServletContext servletContext = event.getServletContext();
- WebApplicationContext springContext = (WebApplicationContext)
- servletContext.getAttribute(WebApplicationContext.ROOT_WEB_APPLICATION_CONTEXT_ATTRIBUTE);
-
+ WebApplicationContext springContext = null;
+
+ try {
+ springContext = (WebApplicationContext)
+ servletContext.getAttribute(WebApplicationContext.ROOT_WEB_APPLICATION_CONTEXT_ATTRIBUTE);
+
+ } catch (RuntimeException ex) {
+ String msg = "Problem getting Spring context: " + ex.getMessage();
+ LOG.error(msg, ex);
+ throw ex;
+ }
+
LOG.debug(" [1a] Loading DriverConfiguration. . . ");
DriverConfiguration driverConfiguration = (DriverConfiguration)
springContext.getBean("DriverConfiguration");
Modified: portals/pluto/branches/2.0-spi-refactoring/pluto-portal-driver/src/main/java/org/apache/pluto/driver/core/PortalRequestContext.java
URL: http://svn.apache.org/viewvc/portals/pluto/branches/2.0-spi-refactoring/pluto-portal-driver/src/main/java/org/apache/pluto/driver/core/PortalRequestContext.java?rev=702005&r1=702004&r2=702005&view=diff
==============================================================================
--- portals/pluto/branches/2.0-spi-refactoring/pluto-portal-driver/src/main/java/org/apache/pluto/driver/core/PortalRequestContext.java (original)
+++ portals/pluto/branches/2.0-spi-refactoring/pluto-portal-driver/src/main/java/org/apache/pluto/driver/core/PortalRequestContext.java Mon Oct 6 01:39:11 2008
@@ -20,6 +20,8 @@
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
+import org.apache.commons.logging.Log;
+import org.apache.commons.logging.LogFactory;
import org.apache.pluto.driver.AttributeKeys;
import org.apache.pluto.driver.config.DriverConfiguration;
import org.apache.pluto.driver.url.PortalURL;
@@ -36,6 +38,9 @@
*/
public class PortalRequestContext {
+ /** Internal Logger. */
+ private static final Log LOG = LogFactory.getLog(PortalRequestContext.class);
+
/**
* The attribute key to bind the portal environment instance to servlet
* request.
@@ -109,8 +114,14 @@
if(requestedPortalURL == null) {
DriverConfiguration config = (DriverConfiguration)
servletContext.getAttribute(AttributeKeys.DRIVER_CONFIG);
- PortalURLParser parser = config.getPortalUrlParser();
- requestedPortalURL = parser.parse(request);
+ if (config != null) {
+ PortalURLParser parser = config.getPortalUrlParser();
+ requestedPortalURL = parser.parse(request);
+ } else {
+ String msg = "Driver configuration not found while parsing portal URL!";
+ LOG.error(msg);
+ throw new IllegalStateException(msg);
+ }
}
return requestedPortalURL;
}