You are viewing a plain text version of this content. The canonical link for it is here.
Posted to jetspeed-dev@portals.apache.org by ra...@apache.org on 2003/12/07 00:24:04 UTC
cvs commit: jakarta-jetspeed-2/portal/src/java/org/apache/jetspeed/tools/pamanager PortletApplicationManager.java
raphael 2003/12/06 15:24:04
Modified: portal/src/java/org/apache/jetspeed/aggregator Tag:
aggregation_1-branch ContentDispatcher.java
PageAggregator.java
portal/src/java/org/apache/jetspeed/aggregator/impl Tag:
aggregation_1-branch ContentDispatcherImpl.java
PortletRendererImpl.java
portal/src/java/org/apache/jetspeed/container/invoker Tag:
aggregation_1-branch ServletPortletInvoker.java
portal/src/java/org/apache/jetspeed/request Tag:
aggregation_1-branch JetspeedRequestContext.java
RequestContext.java
portal/src/java/org/apache/jetspeed/tools/pamanager Tag:
aggregation_1-branch PortletApplicationManager.java
Added: portal/src/java/org/apache/jetspeed/layout Tag:
aggregation_1-branch MultiColumnPortlet.java
Log:
- add a layout portlet application to jetspeed webapp
- fix ContentDispatcher so that it can be used within a Portlet JSP template
Revision Changes Path
No revision
No revision
1.1.2.4 +9 -1 jakarta-jetspeed-2/portal/src/java/org/apache/jetspeed/aggregator/Attic/ContentDispatcher.java
Index: ContentDispatcher.java
===================================================================
RCS file: /home/cvs/jakarta-jetspeed-2/portal/src/java/org/apache/jetspeed/aggregator/Attic/ContentDispatcher.java,v
retrieving revision 1.1.2.3
retrieving revision 1.1.2.4
diff -u -r1.1.2.3 -r1.1.2.4
--- ContentDispatcher.java 1 Dec 2003 22:57:14 -0000 1.1.2.3
+++ ContentDispatcher.java 6 Dec 2003 23:24:03 -0000 1.1.2.4
@@ -78,4 +78,12 @@
* hold until it's completely rendered.
*/
public void include(Fragment fragment, HttpServletRequest req, HttpServletResponse rsp);
+
+ /**
+ * Include in the provided PortletResponse output stream the rendered content
+ * of the request fragment.
+ * If the fragment rendered content is not yet available, the method will
+ * hold until it's completely rendered.
+ */
+ public void include(Fragment fragment, javax.portlet.RenderRequest req, javax.portlet.RenderResponse rsp);
}
1.1.2.4 +5 -3 jakarta-jetspeed-2/portal/src/java/org/apache/jetspeed/aggregator/Attic/PageAggregator.java
Index: PageAggregator.java
===================================================================
RCS file: /home/cvs/jakarta-jetspeed-2/portal/src/java/org/apache/jetspeed/aggregator/Attic/PageAggregator.java,v
retrieving revision 1.1.2.3
retrieving revision 1.1.2.4
diff -u -r1.1.2.3 -r1.1.2.4
--- PageAggregator.java 4 Dec 2003 20:34:11 -0000 1.1.2.3
+++ PageAggregator.java 6 Dec 2003 23:24:03 -0000 1.1.2.4
@@ -222,11 +222,12 @@
ContentDispatcher dispatcher = renderer.getDispatcher(context,(strategy==STRATEGY_PARALLEL));
-/*
// Now synchronously trigger the rendering of the whole page
+ log.debug("Triggering synchronous rendering..." + page.getRootFragment());
+
renderer.renderNow(page.getRootFragment(),context);
-*/
+/*
// DEBUG Testing: Use ContentDispatcher to display all children
// of root fragment
@@ -239,6 +240,7 @@
dispatcher.include(f,context.getRequest(),context.getResponse());
}
}
+*/
}
else
{
No revision
No revision
1.1.2.5 +115 -10 jakarta-jetspeed-2/portal/src/java/org/apache/jetspeed/aggregator/impl/Attic/ContentDispatcherImpl.java
Index: ContentDispatcherImpl.java
===================================================================
RCS file: /home/cvs/jakarta-jetspeed-2/portal/src/java/org/apache/jetspeed/aggregator/impl/Attic/ContentDispatcherImpl.java,v
retrieving revision 1.1.2.4
retrieving revision 1.1.2.5
diff -u -r1.1.2.4 -r1.1.2.5
--- ContentDispatcherImpl.java 4 Dec 2003 20:34:11 -0000 1.1.2.4
+++ ContentDispatcherImpl.java 6 Dec 2003 23:24:03 -0000 1.1.2.5
@@ -61,6 +61,8 @@
import javax.servlet.ServletOutputStream;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
+import javax.servlet.http.HttpServletRequestWrapper;
+import javax.servlet.http.HttpServletResponseWrapper;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
@@ -90,7 +92,7 @@
private boolean isParallel = true;
- private static boolean DEBUG = true;
+ private static int debugLevel = 1;
public ContentDispatcherImpl()
{
@@ -111,7 +113,7 @@
{
ObjectID oid = JetspeedObjectID.createFromString(fragment.getId());
- if (DEBUG && log.isDebugEnabled())
+ if ((debugLevel > 1) && log.isDebugEnabled())
{
log.debug("Including content for OID "+ oid);
}
@@ -119,7 +121,7 @@
// If we work synchronously, call Renderer.renderNow
if (!isParallel)
{
- if (DEBUG && log.isDebugEnabled())
+ if ((debugLevel > 0) && log.isDebugEnabled())
{
log.debug("Synchronous rendering for OID "+ oid);
}
@@ -136,7 +138,7 @@
{
if (!content.isComplete())
{
- if (DEBUG && log.isDebugEnabled())
+ if ((debugLevel > 0) && log.isDebugEnabled())
{
log.debug("Waiting for content OID "+oid);
}
@@ -149,13 +151,13 @@
{
}
- if (DEBUG && log.isDebugEnabled())
+ if ((debugLevel > 0) && log.isDebugEnabled())
{
log.debug("Been notified that OID "+oid+" is complete");
}
}
- if (DEBUG && log.isDebugEnabled())
+ if ((debugLevel > 1) && log.isDebugEnabled())
{
log.debug("Content OID "+oid+": "+content.toString());
}
@@ -165,7 +167,7 @@
{
try
{
- content.writeTo(rsp.getWriter());
+ rsp.getWriter().write(content.toString());
}
catch (IllegalStateException e)
{
@@ -180,7 +182,7 @@
{
synchronized(contents)
{
- if (DEBUG && log.isDebugEnabled())
+ if ((debugLevel > 1) && log.isDebugEnabled())
{
log.debug("Removing content OID "+oid);
}
@@ -190,10 +192,113 @@
}
else
{
- if (DEBUG && log.isDebugEnabled())
+ // should only happen when a layout tries to render an inner layout
+ // trigger a synchronous rendering of this fragment
+
+ if ((debugLevel > 1) && log.isDebugEnabled())
{
log.debug("Content is null for OID "+oid);
}
+
+ PortletRenderer renderer = (PortletRenderer)CommonPortletServices.getPortalService(PortletRenderer.SERVICE_NAME);
+ renderer.renderNow(fragment,req,rsp);
+ return;
+ }
+ }
+
+ /**
+ * Include in the provided PortletResponse output stream the rendered content
+ * of the request fragment.
+ * If the fragment rendered content is not yet available, the method will
+ * hold until it's completely rendered.
+ */
+ public void include(Fragment fragment, javax.portlet.RenderRequest req, javax.portlet.RenderResponse rsp)
+ {
+ ObjectID oid = JetspeedObjectID.createFromString(fragment.getId());
+
+ if ((debugLevel > 1) && log.isDebugEnabled())
+ {
+ log.debug("Including content for OID "+ oid);
+ }
+
+ PortletContent content = (PortletContent)contents.get(oid);
+
+ if (content!=null)
+ {
+ synchronized (content)
+ {
+ if (!content.isComplete())
+ {
+ if ((debugLevel > 0) && log.isDebugEnabled())
+ {
+ log.debug("Waiting for content OID "+oid);
+ }
+
+ try
+ {
+ content.wait();
+ }
+ catch (InterruptedException e)
+ {
+ }
+
+ if ((debugLevel > 0) && log.isDebugEnabled())
+ {
+ log.debug("Been notified that OID "+oid+" is complete");
+ }
+ }
+
+ if ((debugLevel > 1) && log.isDebugEnabled())
+ {
+ log.debug("Content OID "+oid+": "+content.toString());
+ }
+ }
+
+ try
+ {
+ try
+ {
+ rsp.getWriter().write(content.toString());
+ }
+ catch (IllegalStateException e)
+ {
+ //rsp.getPortletOutputStream().print(content.toString());
+ }
+ }
+ catch (Exception e)
+ {
+ log.error("Unable to include content OID "+oid+" in response object", e);
+ }
+ finally
+ {
+ synchronized(contents)
+ {
+ if ((debugLevel > 1) && log.isDebugEnabled())
+ {
+ log.debug("Removing content OID "+oid);
+ }
+ ((PortletContent)contents.remove(oid)).release();
+ }
+ }
+ }
+ else
+ {
+ // should only happen when a layout tries to render an inner layout
+ // trigger a synchronous rendering of this fragment
+
+ if ((debugLevel > 1) && log.isDebugEnabled())
+ {
+ log.debug("Content is null for OID "+oid);
+ }
+
+ PortletRenderer renderer = (PortletRenderer)CommonPortletServices.getPortalService(PortletRenderer.SERVICE_NAME);
+
+ //unwrap the RenderRequest and RenderResponse to avoid having to cascade several
+ // portlet requests/responses
+ HttpServletRequest request = (HttpServletRequest)((HttpServletRequestWrapper)req).getRequest();
+ HttpServletResponse response = (HttpServletResponse)((HttpServletResponseWrapper)rsp).getResponse();
+ renderer.renderNow(fragment,request,response);
+ return;
}
}
@@ -205,7 +310,7 @@
{
synchronized (content)
{
- if (DEBUG && log.isDebugEnabled())
+ if ((debugLevel > 0) && log.isDebugEnabled())
{
log.debug("Notifying complete OID "+oid);
}
1.1.2.5 +11 -8 jakarta-jetspeed-2/portal/src/java/org/apache/jetspeed/aggregator/impl/Attic/PortletRendererImpl.java
Index: PortletRendererImpl.java
===================================================================
RCS file: /home/cvs/jakarta-jetspeed-2/portal/src/java/org/apache/jetspeed/aggregator/impl/Attic/PortletRendererImpl.java,v
retrieving revision 1.1.2.4
retrieving revision 1.1.2.5
diff -u -r1.1.2.4 -r1.1.2.5
--- PortletRendererImpl.java 1 Dec 2003 22:57:14 -0000 1.1.2.4
+++ PortletRendererImpl.java 6 Dec 2003 23:24:03 -0000 1.1.2.5
@@ -161,8 +161,10 @@
servletRequest = request.getRequestForWindow(portletWindow);
HttpServletResponse servletResponse = request.getResponseForWindow(portletWindow);
- servletRequest.setAttribute("page.fragment",fragment);
+ servletRequest.setAttribute("org.apache.jetspeed.ContentDispatcher",getDispatcher(request,true));
+ servletRequest.setAttribute("org.apache.jetspeed.Fragment",fragment);
+ // should we decorate here instead of rendering Portlet ?
container.renderPortlet(portletWindow, servletRequest, servletResponse);
}
catch (Throwable t)
@@ -174,7 +176,8 @@
{
if (servletRequest!=null)
{
- servletRequest.removeAttribute("page.fragment");
+ servletRequest.removeAttribute("org.apache.jetspeed.ContentDispatcher");
+ servletRequest.removeAttribute("org.apache.jetspeed.Fragment");
}
}
}
@@ -256,7 +259,8 @@
HttpServletRequest servletRequest = request.getRequestForWindow(portletWindow);
HttpServletResponse servletResponse = dispatcher.getResponseForWindow(portletWindow, request);
- servletRequest.setAttribute("page.fragment",fragment);
+ servletRequest.setAttribute("org.apache.jetspeed.ContentDispatcher",dispatcher);
+ servletRequest.setAttribute("org.apache.jetspeed.Fragment",fragment);
rJob.setWindow(portletWindow);
rJob.setContainer(this.container);
@@ -280,13 +284,12 @@
*/
protected ContentDispatcherCtrl getDispatcherCtrl(RequestContext request, boolean isParallel)
{
- if (request.getRequest().getAttribute("dispatcher")==null)
+ if (request.getContentDispatcher()==null)
{
- log.debug("Creating a new dispatcher and binding to request "+request.getRequest());
- request.getRequest().setAttribute("dispatcher",new ContentDispatcherImpl(isParallel));
+ request.setContentDispatcher(new ContentDispatcherImpl(isParallel));
}
- return (ContentDispatcherCtrl)request.getRequest().getAttribute("dispatcher");
+ return (ContentDispatcherCtrl)request.getContentDispatcher();
}
}
No revision
No revision
1.5.2.1 +10 -10 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.5
retrieving revision 1.5.2.1
diff -u -r1.5 -r1.5.2.1
--- ServletPortletInvoker.java 20 Oct 2003 03:47:06 -0000 1.5
+++ ServletPortletInvoker.java 6 Dec 2003 23:24:03 -0000 1.5.2.1
@@ -107,7 +107,7 @@
}
/**
- *
+ *
* @param request
* @param response
* @throws PortletException
@@ -118,7 +118,7 @@
}
/**
- *
+ *
*/
public void action(ActionRequest request, ActionResponse response) throws PortletException, IOException
{
@@ -126,7 +126,7 @@
}
/**
- *
+ *
*/
public void load(PortletRequest request, RenderResponse response) throws PortletException
{
@@ -142,7 +142,7 @@
}
/**
- *
+ *
* @param portletRequest
* @param portletResponse
* @param methodID
@@ -205,11 +205,11 @@
}
finally
{
- 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);
+ //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);
}
}
No revision
No revision
1.1.2.1 +325 -0 jakarta-jetspeed-2/portal/src/java/org/apache/jetspeed/layout/Attic/MultiColumnPortlet.java
No revision
No revision
1.4.2.2 +13 -1 jakarta-jetspeed-2/portal/src/java/org/apache/jetspeed/request/JetspeedRequestContext.java
Index: JetspeedRequestContext.java
===================================================================
RCS file: /home/cvs/jakarta-jetspeed-2/portal/src/java/org/apache/jetspeed/request/JetspeedRequestContext.java,v
retrieving revision 1.4.2.1
retrieving revision 1.4.2.2
diff -u -r1.4.2.1 -r1.4.2.2
--- JetspeedRequestContext.java 1 Dec 2003 22:57:14 -0000 1.4.2.1
+++ JetspeedRequestContext.java 6 Dec 2003 23:24:04 -0000 1.4.2.2
@@ -58,6 +58,7 @@
import javax.servlet.ServletConfig;
import org.apache.jetspeed.PortalContext;
+import org.apache.jetspeed.aggregator.ContentDispatcher;
import org.apache.jetspeed.om.profile.Profile;
import org.apache.jetspeed.om.page.Page;
import org.apache.jetspeed.services.factory.FactoryManager;
@@ -88,6 +89,7 @@
private Profile profile;
private Page page;
private PortletDefinition portletDefinition;
+ private ContentDispatcher dispatcher;
private CapabilityMap capabilityMap;
private String mimeType;
@@ -185,6 +187,16 @@
public void setPortletDefinition(PortletDefinition portletDefinition)
{
this.portletDefinition = portletDefinition;
+ }
+
+ public ContentDispatcher getContentDispatcher()
+ {
+ return dispatcher;
+ }
+
+ public void setContentDispatcher(ContentDispatcher dispatcher)
+ {
+ this.dispatcher = dispatcher;
}
/** Set the capabilityMap. Used by the CapabilityValve
1.3.2.3 +16 -1 jakarta-jetspeed-2/portal/src/java/org/apache/jetspeed/request/RequestContext.java
Index: RequestContext.java
===================================================================
RCS file: /home/cvs/jakarta-jetspeed-2/portal/src/java/org/apache/jetspeed/request/RequestContext.java,v
retrieving revision 1.3.2.2
retrieving revision 1.3.2.3
diff -u -r1.3.2.2 -r1.3.2.3
--- RequestContext.java 1 Dec 2003 22:57:14 -0000 1.3.2.2
+++ RequestContext.java 6 Dec 2003 23:24:04 -0000 1.3.2.3
@@ -58,6 +58,7 @@
import javax.servlet.http.HttpServletResponse;
import org.apache.jetspeed.PortalContext;
+import org.apache.jetspeed.aggregator.ContentDispatcher;
import org.apache.jetspeed.capability.CapabilityMap;
import org.apache.jetspeed.engine.core.PortalControlParameter;
import org.apache.jetspeed.engine.core.PortalURL;
@@ -133,6 +134,20 @@
* @param page The target page
*/
public void setPage(Page page);
+
+ /**
+ * Gets the content dispatcher for this request
+ *
+ * @return ContentDispatcher
+ */
+ public ContentDispatcher getContentDispatcher();
+
+ /**
+ * Sets the content dispatcher for this request
+ *
+ * @param dispatcher The ContentDispatcher to use for this request
+ */
+ public void setContentDispatcher(ContentDispatcher dispatcher);
/**
* Set the capabilityMap. Used by the CapabilityValve
No revision
No revision
1.1.1.1.2.2 +2 -2 jakarta-jetspeed-2/portal/src/java/org/apache/jetspeed/tools/pamanager/PortletApplicationManager.java
Index: PortletApplicationManager.java
===================================================================
RCS file: /home/cvs/jakarta-jetspeed-2/portal/src/java/org/apache/jetspeed/tools/pamanager/PortletApplicationManager.java,v
retrieving revision 1.1.1.1.2.1
retrieving revision 1.1.1.1.2.2
diff -u -r1.1.1.1.2.1 -r1.1.1.1.2.2
--- PortletApplicationManager.java 4 Dec 2003 23:06:20 -0000 1.1.1.1.2.1
+++ PortletApplicationManager.java 6 Dec 2003 23:24:04 -0000 1.1.1.1.2.2
@@ -324,7 +324,7 @@
{
System.out.println("Calling FileSystemPAM...");
- fs.deploy(webAppsDir, warFile, strPortletAppName, 1);
+ fs.deploy(webAppsDir, warFile, strPortletAppName, 2);
}
catch (PortletApplicationException e)
{
---------------------------------------------------------------------
To unsubscribe, e-mail: jetspeed-dev-unsubscribe@jakarta.apache.org
For additional commands, e-mail: jetspeed-dev-help@jakarta.apache.org