Author: taylor
Date: Fri Oct 13 13:04:54 2006
New Revision: 463809
URL: http://svn.apache.org/viewvc?view=rev&rev=463809
Log:
Refactoring of header component to use a Header phase, PortletHeaderRequest,
PortletHeaderResponse
Establishes a header phase in processing of script-portlet frameworks
the full refactoring out of the Header component string buffers is not completed
Added:
portals/jetspeed-2/trunk/components/portal/src/java/org/apache/jetspeed/aggregator/HeaderAggregatorValve.java
portals/jetspeed-2/trunk/components/portal/src/java/org/apache/jetspeed/aggregator/impl/HeaderAggregatorImpl.java
portals/jetspeed-2/trunk/components/portal/src/java/org/apache/jetspeed/aggregator/impl/PortletHeaderRequestImpl.java
portals/jetspeed-2/trunk/components/portal/src/java/org/apache/jetspeed/aggregator/impl/PortletHeaderResponseImpl.java
portals/jetspeed-2/trunk/jetspeed-api/src/java/org/apache/jetspeed/portlet/
portals/jetspeed-2/trunk/jetspeed-api/src/java/org/apache/jetspeed/portlet/PortletHeaderRequest.java
portals/jetspeed-2/trunk/jetspeed-api/src/java/org/apache/jetspeed/portlet/PortletHeaderResponse.java
portals/jetspeed-2/trunk/jetspeed-api/src/java/org/apache/jetspeed/portlet/SupportsHeaderPhase.java
Modified:
portals/jetspeed-2/trunk/applications/demo/src/webapp/WEB-INF/jetspeed-portlet.xml
portals/jetspeed-2/trunk/applications/gems/src/java/org/apache/portals/gems/dojo/AbstractDojoVelocityPortlet.java
portals/jetspeed-2/trunk/applications/gems/src/java/org/apache/portals/gems/dojo/DojoSpringMVCPortlet.java
portals/jetspeed-2/trunk/applications/gems/src/java/org/apache/portals/gems/googlemaps/GoogleMapsPortlet.java
portals/jetspeed-2/trunk/components/portal/src/test/org/apache/jetspeed/AbstractPortalContainerTestCase.java
portals/jetspeed-2/trunk/components/portal/src/test/org/apache/jetspeed/aggregator/TestWorkerMonitor.java
portals/jetspeed-2/trunk/components/portlet-factory/src/java/org/apache/jetspeed/factory/JetspeedPortletInstance.java
portals/jetspeed-2/trunk/jetspeed-api/src/java/org/apache/jetspeed/aggregator/PortletContent.java
portals/jetspeed-2/trunk/jetspeed-api/src/java/org/apache/jetspeed/factory/PortletInstance.java
portals/jetspeed-2/trunk/src/webapp/WEB-INF/assembly/aggregation.xml
portals/jetspeed-2/trunk/src/webapp/WEB-INF/assembly/pipelines.xml
Modified:
portals/jetspeed-2/trunk/applications/demo/src/webapp/WEB-INF/jetspeed-portlet.xml
URL:
http://svn.apache.org/viewvc/portals/jetspeed-2/trunk/applications/demo/src/webapp/WEB-INF/jetspeed-portlet.xml?view=diff&rev=463809&r1=463808&r2=463809
==============================================================================
---
portals/jetspeed-2/trunk/applications/demo/src/webapp/WEB-INF/jetspeed-portlet.xml
(original)
+++
portals/jetspeed-2/trunk/applications/demo/src/webapp/WEB-INF/jetspeed-portlet.xml
Fri Oct 13 13:04:54 2006
@@ -222,7 +222,6 @@
<js:services>
<js:service name='SSO'/>
- <js:service name='HeaderResource'/>
</js:services>
</portlet-app>
Modified:
portals/jetspeed-2/trunk/applications/gems/src/java/org/apache/portals/gems/dojo/AbstractDojoVelocityPortlet.java
URL:
http://svn.apache.org/viewvc/portals/jetspeed-2/trunk/applications/gems/src/java/org/apache/portals/gems/dojo/AbstractDojoVelocityPortlet.java?view=diff&rev=463809&r1=463808&r2=463809
==============================================================================
---
portals/jetspeed-2/trunk/applications/gems/src/java/org/apache/portals/gems/dojo/AbstractDojoVelocityPortlet.java
(original)
+++
portals/jetspeed-2/trunk/applications/gems/src/java/org/apache/portals/gems/dojo/AbstractDojoVelocityPortlet.java
Fri Oct 13 13:04:54 2006
@@ -15,23 +15,18 @@
*/
package org.apache.portals.gems.dojo;
-import java.io.IOException;
import java.util.HashMap;
import java.util.Map;
import javax.portlet.PortletException;
-import javax.portlet.RenderRequest;
-import javax.portlet.RenderResponse;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
-import org.apache.jetspeed.CommonPortletServices;
-import org.apache.jetspeed.PortalReservedParameters;
import org.apache.jetspeed.headerresource.HeaderResource;
-import org.apache.jetspeed.headerresource.HeaderResourceFactory;
-import org.apache.jetspeed.request.RequestContext;
+import org.apache.jetspeed.portlet.PortletHeaderRequest;
+import org.apache.jetspeed.portlet.PortletHeaderResponse;
+import org.apache.jetspeed.portlet.SupportsHeaderPhase;
import org.apache.portals.bridges.velocity.GenericVelocityPortlet;
-import org.apache.velocity.context.Context;
/**
* Abstract DOJO portlet for inserting in cross context dojo widget includes
@@ -39,7 +34,7 @@
* @author <a href="mailto:[EMAIL PROTECTED]">David Sean Taylor</a>
* @version $Id: $
*/
-public abstract class AbstractDojoVelocityPortlet extends
GenericVelocityPortlet
+public abstract class AbstractDojoVelocityPortlet extends
GenericVelocityPortlet implements SupportsHeaderPhase
{
protected void includeDojoRequires(StringBuffer headerInfoText)
{
@@ -60,11 +55,6 @@
private final static Log log =
LogFactory.getLog(AbstractDojoVelocityPortlet.class);
/*
- * Jetspeed header resource component
- */
- protected HeaderResourceFactory headerResourceFactoryComponent;
-
- /*
* Portlet constructor.
*/
public AbstractDojoVelocityPortlet()
@@ -73,65 +63,23 @@
}
/*
- * Portlet lifecycle method.
- */
- public void init() throws PortletException
- {
- super.init();
-
- // access jetspeed heaader resource component
- synchronized (this)
- {
- if (headerResourceFactoryComponent == null)
- {
- headerResourceFactoryComponent = (HeaderResourceFactory)
-
getPortletContext().getAttribute(CommonPortletServices.CPS_HEADER_RESOURCE_FACTORY);
- }
- if (headerResourceFactoryComponent == null)
- {
- throw new PortletException("Failed to find the
HeaderResourceFactoryComponent instance.");
- }
- }
- }
-
- /* (non-Javadoc)
- * @see
javax.portlet.GenericPortlet#doDispatch(javax.portlet.RenderRequest,
javax.portlet.RenderResponse)
- */
- protected void doDispatch(RenderRequest request, RenderResponse response)
throws PortletException, IOException
- {
- // include header content
- includeHeaderContent(request,response);
-
- // dispatch normally
- super.doDispatch(request, response);
- }
-
- /*
* Include Dojo and Turbo header content using header resource component.
*
* @param request render request
* @param response render response
- */
- protected void includeHeaderContent(RenderRequest request, RenderResponse
response)
+ */
+ public void doHeader(PortletHeaderRequest request, PortletHeaderResponse
response)
+ throws PortletException
{
- // get portal context path
- RequestContext requestContext = (RequestContext)
request.getAttribute(PortalReservedParameters.REQUEST_CONTEXT_ATTRIBUTE);
- String portalContextPath =
requestContext.getRequest().getContextPath();
+ String portalContextPath = request.getPortalContextPath();
// use header resource component to ensure header logic is included
only once
- HeaderResource headerResource =
headerResourceFactoryComponent.getHeaderResouce(request);
+ HeaderResource headerResource = response.getHeaderResource();
StringBuffer headerInfoText = new StringBuffer();
Map headerInfoMap = null;
- // detect jetspeed-desktop
- String requestEncoder =
(String)requestContext.getRequest().getParameter("encoder");
-
- boolean isJetspeedDesktop = ((requestEncoder == null) ||
!requestEncoder.equals("desktop")) ? false : true;
- Context velocityContext = getContext(request);
- velocityContext.put("isJetspeedDesktop", new Boolean(
isJetspeedDesktop ) );
-
// add dojo if not already in use as desktop
- if (!isJetspeedDesktop)
+ if (!request.isDesktopEncoder())
{
// dojo configuration
headerInfoText.setLength(0);
@@ -165,7 +113,7 @@
}
// close DOJO if not already in use as desktop
- if (!isJetspeedDesktop)
+ if (!request.isDesktopEncoder())
{
// complete DoJo includes
headerInfoText.setLength(0);
@@ -178,7 +126,7 @@
}
// add jetspeed widget package if not already in use as desktop
- if (!isJetspeedDesktop)
+ if (!request.isDesktopEncoder())
{
headerInfoText.setLength(0);
headerInfoText.append("\r\n");
@@ -189,7 +137,7 @@
headerResource.addHeaderInfo("script", headerInfoMap,
headerInfoText.toString());
}
- if (!isJetspeedDesktop)
+ if (!request.isDesktopEncoder())
{
headerInfoText.setLength(0);
headerInfoText.append("\r\n");
Modified:
portals/jetspeed-2/trunk/applications/gems/src/java/org/apache/portals/gems/dojo/DojoSpringMVCPortlet.java
URL:
http://svn.apache.org/viewvc/portals/jetspeed-2/trunk/applications/gems/src/java/org/apache/portals/gems/dojo/DojoSpringMVCPortlet.java?view=diff&rev=463809&r1=463808&r2=463809
==============================================================================
---
portals/jetspeed-2/trunk/applications/gems/src/java/org/apache/portals/gems/dojo/DojoSpringMVCPortlet.java
(original)
+++
portals/jetspeed-2/trunk/applications/gems/src/java/org/apache/portals/gems/dojo/DojoSpringMVCPortlet.java
Fri Oct 13 13:04:54 2006
@@ -16,7 +16,6 @@
package org.apache.portals.gems.dojo;
import java.io.BufferedReader;
-import java.io.IOException;
import java.io.StringReader;
import java.util.Enumeration;
import java.util.HashMap;
@@ -34,11 +33,10 @@
import org.apache.commons.lang.ObjectUtils;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
-import org.apache.jetspeed.CommonPortletServices;
-import org.apache.jetspeed.PortalReservedParameters;
import org.apache.jetspeed.headerresource.HeaderResource;
-import org.apache.jetspeed.headerresource.HeaderResourceFactory;
-import org.apache.jetspeed.request.RequestContext;
+import org.apache.jetspeed.portlet.PortletHeaderRequest;
+import org.apache.jetspeed.portlet.PortletHeaderResponse;
+import org.apache.jetspeed.portlet.SupportsHeaderPhase;
import org.apache.pluto.core.impl.RenderRequestImpl;
import org.apache.pluto.core.impl.RenderResponseImpl;
import org.apache.portals.gems.util.HttpBufferedResponse;
@@ -54,12 +52,27 @@
* @author <a href="mailto:[EMAIL PROTECTED]">David Sean Taylor</a>
* @version $Id: $
*/
-public class DojoSpringMVCPortlet extends DispatcherPortlet
+public class DojoSpringMVCPortlet extends DispatcherPortlet implements
SupportsHeaderPhase
{
protected static final String CRLF = "\r\n";
-
- protected void includeDojoConfig(RenderRequest request, RenderResponse
response, String portalContextPath, StringBuffer headerInfoText)
- throws PortletException, java.io.IOException
+
+ /*
+ * Class specific logger.
+ */
+ private final static Log log =
LogFactory.getLog(DojoSpringMVCPortlet.class);
+
+ protected String headerPage;
+
+ /*
+ * Portlet constructor.
+ */
+ public DojoSpringMVCPortlet()
+ {
+ super();
+ }
+
+ protected void includeDojoConfig(PortletHeaderRequest request,
PortletHeaderResponse response, String portalContextPath, StringBuffer
headerInfoText)
+ throws PortletException
{
headerInfoText.append( "var djConfig = { " );
headerInfoText.append( "isDebug: true, debugAtAllCosts: false" );
@@ -74,32 +87,32 @@
return portalContextPath + "/javascript/dojo/dojo.js";
}
- protected void includeDojoRequires(RenderRequest request, RenderResponse
response, StringBuffer headerInfoText)
- throws PortletException, java.io.IOException
+ protected void includeDojoRequires(PortletHeaderRequest request,
PortletHeaderResponse response, StringBuffer headerInfoText)
+ throws PortletException
{
if ( this.headerPage != null )
{
include( request, response, this.headerPage, headerInfoText );
}
}
- protected void includeDojoWidgetRequires(RenderRequest request,
RenderResponse response, StringBuffer headerInfoText)
- throws PortletException, java.io.IOException
+ protected void includeDojoWidgetRequires(PortletHeaderRequest request,
PortletHeaderResponse response, StringBuffer headerInfoText)
+ throws PortletException
{
}
- protected void includeDojoCustomWidgetRequires(RenderRequest request,
RenderResponse response, StringBuffer headerInfoText)
- throws PortletException, java.io.IOException
+ protected void includeDojoCustomWidgetRequires(PortletHeaderRequest
request, PortletHeaderResponse response, StringBuffer headerInfoText)
+ throws PortletException
{
}
- protected void includeDojoWriteIncludes(RenderRequest request,
RenderResponse response, StringBuffer headerInfoText)
- throws PortletException, java.io.IOException
+ protected void includeDojoWriteIncludes(PortletHeaderRequest request,
PortletHeaderResponse response, StringBuffer headerInfoText)
+ throws PortletException
{
headerInfoText.append( "dojo.hostenv.writeIncludes();" ).append( CRLF );
}
- protected void includeDojoRegisterWidgetPackage(RenderRequest request,
RenderResponse response, StringBuffer headerInfoText)
- throws PortletException, java.io.IOException
+ protected void includeDojoRegisterWidgetPackage(PortletHeaderRequest
request, PortletHeaderResponse response, StringBuffer headerInfoText)
+ throws PortletException
{
headerInfoText.append(
"dojo.widget.manager.registerWidgetPackage('jetspeed.ui.widget');" ).append(
CRLF );
}
@@ -134,25 +147,6 @@
}
- /*
- * Class specific logger.
- */
- private final static Log log =
LogFactory.getLog(DojoSpringMVCPortlet.class);
-
- /*
- * Jetspeed header resource component
- */
- protected HeaderResourceFactory headerResourceFactoryComponent;
-
- protected String headerPage;
-
- /*
- * Portlet constructor.
- */
- public DojoSpringMVCPortlet()
- {
- super();
- }
/*
* Portlet lifecycle method.
@@ -164,15 +158,6 @@
// access jetspeed heaader resource component
synchronized (this)
{
- if (headerResourceFactoryComponent == null)
- {
- headerResourceFactoryComponent = (HeaderResourceFactory)
-
getPortletContext().getAttribute(CommonPortletServices.CPS_HEADER_RESOURCE_FACTORY);
- }
- if (headerResourceFactoryComponent == null)
- {
- throw new PortletException("Failed to find the
HeaderResourceFactoryComponent instance.");
- }
this.headerPage = this.getInitParameter("HeaderPage");
}
}
@@ -182,9 +167,6 @@
*/
protected void doRenderService(RenderRequest request, RenderResponse
response) throws Exception
{
- // include header content
- doHeader(request,response);
-
// dispatch normally
super.doRenderService(request, response);
}
@@ -195,24 +177,19 @@
* @param request render request
* @param response render response
*/
- protected void doHeader(RenderRequest request, RenderResponse response)
- throws PortletException, java.io.IOException
+ public void doHeader(PortletHeaderRequest request, PortletHeaderResponse
response)
+ throws PortletException
{
- // get portal context path
- RequestContext requestContext = (RequestContext)
request.getAttribute(PortalReservedParameters.REQUEST_CONTEXT_ATTRIBUTE);
- String portalContextPath =
requestContext.getRequest().getContextPath();
+ String portalContextPath = request.getPortalContextPath();
// use header resource component to ensure header logic is included
only once
- HeaderResource headerResource =
headerResourceFactoryComponent.getHeaderResouce(request);
+ HeaderResource headerResource = response.getHeaderResource();
StringBuffer headerInfoText = new StringBuffer();
Map headerInfoMap = null;
-
- // detect jetspeed-desktop
- String requestEncoder =
(String)requestContext.getRequest().getParameter("encoder");
-
- boolean isJetspeedDesktop = ((requestEncoder == null) ||
!requestEncoder.equals("desktop")) ? false : true;
-
+ boolean isJetspeedDesktop = request.isDesktopEncoder();
boolean addedDojoRequires = false;
+
+
// add dojo if not already in use as desktop
if (!isJetspeedDesktop)
{
@@ -279,55 +256,10 @@
}
- public void include(RenderRequest request, RenderResponse response, String
headerPagePath, StringBuffer headerText) throws PortletException,
java.io.IOException
+ public void include(PortletHeaderRequest request, PortletHeaderResponse
response, String headerPagePath, StringBuffer headerText) throws
PortletException
{
- HttpServletRequest servletRequest = null;
- HttpServletResponse servletResponse = null;
- try
- {
- servletRequest = (HttpServletRequest) ((RenderRequestImpl)
request).getRequest();
- servletResponse = (HttpServletResponse) ((RenderResponseImpl)
response).getResponse();
-
- PortletContentImpl content = new PortletContentImpl();
- content.init();
- HttpBufferedResponse bufferedResponse =
- new HttpBufferedResponse(servletResponse, content.getWriter());
-
- RequestDispatcher dispatcher =
servletRequest.getRequestDispatcher(headerPagePath);
- System.out.println("dispatcher:" + dispatcher);
- if (dispatcher != null)
- dispatcher.include(servletRequest, bufferedResponse);
-
- bufferedResponse.flushBuffer();
- BufferedReader reader = new BufferedReader(new
StringReader(content.getContent()));
- String buffer;
- while ((buffer = reader.readLine()) != null)
- {
- headerText.append( buffer ).append( "\r\n" );
- }
- //System.out.println("dispatched:" + content.getContent());
- }
- catch (RuntimeException re)
- {
- throw re;
- }
- catch (IOException ioe)
- {
- throw ioe;
- }
- catch (Exception e)
- {
- Throwable rootCause = null;
- if ( e instanceof ServletException)
- {
- rootCause = ((ServletException)e).getRootCause();
- }
- else
- {
- rootCause = e.getCause();
- }
- throw new PortletException(rootCause != null ? rootCause : e);
- }
+ response.include(request, response, headerPagePath);
+ headerText.append(response.getContent());
}
Modified:
portals/jetspeed-2/trunk/applications/gems/src/java/org/apache/portals/gems/googlemaps/GoogleMapsPortlet.java
URL:
http://svn.apache.org/viewvc/portals/jetspeed-2/trunk/applications/gems/src/java/org/apache/portals/gems/googlemaps/GoogleMapsPortlet.java?view=diff&rev=463809&r1=463808&r2=463809
==============================================================================
---
portals/jetspeed-2/trunk/applications/gems/src/java/org/apache/portals/gems/googlemaps/GoogleMapsPortlet.java
(original)
+++
portals/jetspeed-2/trunk/applications/gems/src/java/org/apache/portals/gems/googlemaps/GoogleMapsPortlet.java
Fri Oct 13 13:04:54 2006
@@ -24,16 +24,10 @@
import javax.portlet.ActionResponse;
import javax.portlet.PortletException;
import javax.portlet.PortletPreferences;
-import javax.portlet.RenderRequest;
-import javax.portlet.RenderResponse;
-import org.apache.jetspeed.CommonPortletServices;
-import org.apache.jetspeed.PortalReservedParameters;
-import org.apache.jetspeed.headerresource.HeaderResource;
-import org.apache.jetspeed.headerresource.HeaderResourceFactory;
-import org.apache.jetspeed.request.RequestContext;
+import org.apache.jetspeed.portlet.PortletHeaderRequest;
+import org.apache.jetspeed.portlet.PortletHeaderResponse;
import org.apache.portals.gems.dojo.AbstractDojoVelocityPortlet;
-import org.apache.velocity.context.Context;
/**
* This is a simple class used to override processAction
* to save location form submission value to location preference
@@ -66,52 +60,31 @@
preferences.store();
}
- protected void doDispatch(RenderRequest request, RenderResponse response)
throws PortletException, IOException
+ public void doHeader(PortletHeaderRequest request, PortletHeaderResponse
response)
+ throws PortletException
{
- // include header content
- includeHeaderContent(request,response);
-
- // dispatch normally
- super.doDispatch(request, response);
- }
-
- protected void includeHeaderContent(RenderRequest request, RenderResponse
response)
- {
- // get portal context path
- RequestContext requestContext = (RequestContext)
request.getAttribute(PortalReservedParameters.REQUEST_CONTEXT_ATTRIBUTE);
- String portalContextPath =
requestContext.getRequest().getContextPath();
-
- // use header resource component to ensure header logic is included
only once
- HeaderResource headerResource =
headerResourceFactoryComponent.getHeaderResouce(request);
StringBuffer headerInfoText = new StringBuffer();
Map headerInfoMap = null;
-
- // detect jetspeed-desktop
- String requestEncoder =
(String)requestContext.getRequest().getParameter("encoder");
-
- boolean isJetspeedDesktop = ((requestEncoder == null) ||
!requestEncoder.equals("desktop")) ? false : true;
- Context velocityContext = getContext(request);
- velocityContext.put("isJetspeedDesktop", new Boolean(
isJetspeedDesktop ) );
// close DOJO if not already in use as desktop
- if (!isJetspeedDesktop)
+ if (!request.isDesktopEncoder())
{
// complete DoJo includes
headerInfoText.setLength(0);
headerInfoMap = new HashMap(8);
- headerInfoMap.put("language", "JavaScript");
+ headerInfoMap.put("language", "JavaScript");
headerInfoMap.put("src",
"http://maps.google.com/maps?file=api&v=2&key=ABQIAAAAisHr-hr7f_yfo_m3teTC5RQXGaCFRGWXJQavRKQcb1Ew_fwkKRQ26QnpXVIkxSMwwTECWDV23ZDaLQ");
headerInfoMap.put("type", "text/javascript");
- headerResource.addHeaderInfo("script", headerInfoMap,
headerInfoText.toString());
+ response.getHeaderResource().addHeaderInfo("script",
headerInfoMap, headerInfoText.toString());
}
- super.includeHeaderContent(request, response);
+ super.doHeader(request, response);
}
protected void includeDojoRequires(StringBuffer headerInfoText)
{
appendHeaderText(headerInfoText, "dojo.lang.*");
appendHeaderText(headerInfoText, "dojo.event.*");
- appendHeaderText(headerInfoText, "dojo.io");
+ appendHeaderText(headerInfoText, "dojo.io.*");
}
}
Added:
portals/jetspeed-2/trunk/components/portal/src/java/org/apache/jetspeed/aggregator/HeaderAggregatorValve.java
URL:
http://svn.apache.org/viewvc/portals/jetspeed-2/trunk/components/portal/src/java/org/apache/jetspeed/aggregator/HeaderAggregatorValve.java?view=auto&rev=463809
==============================================================================
---
portals/jetspeed-2/trunk/components/portal/src/java/org/apache/jetspeed/aggregator/HeaderAggregatorValve.java
(added)
+++
portals/jetspeed-2/trunk/components/portal/src/java/org/apache/jetspeed/aggregator/HeaderAggregatorValve.java
Fri Oct 13 13:04:54 2006
@@ -0,0 +1,62 @@
+/*
+ * Copyright 2000-2004 The Apache Software Foundation.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.apache.jetspeed.aggregator;
+
+import org.apache.commons.logging.Log;
+import org.apache.commons.logging.LogFactory;
+import org.apache.jetspeed.pipeline.PipelineException;
+import org.apache.jetspeed.pipeline.valve.AbstractValve;
+import org.apache.jetspeed.pipeline.valve.ValveContext;
+import org.apache.jetspeed.request.RequestContext;
+
+/**
+ * Invokes the header aggregator service in the request pipeline
+ *
+ * @author <a href="mailto:[EMAIL PROTECTED]">David Sean Taylor</a>
+ * @version $Id: $
+ */
+public class HeaderAggregatorValve
+ extends AbstractValve
+{
+ private static final Log log =
LogFactory.getLog(HeaderAggregatorValve.class);
+ private Aggregator aggregator;
+
+ public HeaderAggregatorValve(Aggregator aggregator)
+ {
+ this.aggregator = aggregator;
+ }
+
+ public void invoke( RequestContext request, ValveContext context )
+ throws PipelineException
+ {
+ try
+ {
+ aggregator.build(request);
+ }
+ catch (Exception e)
+ {
+ throw new PipelineException(e.toString(), e);
+ }
+ // Pass control to the next Valve in the Pipeline
+ context.invokeNext( request );
+ }
+
+ public String toString()
+ {
+ return "HeaderAggregatorValve";
+ }
+}
\ No newline at end of file
Added:
portals/jetspeed-2/trunk/components/portal/src/java/org/apache/jetspeed/aggregator/impl/HeaderAggregatorImpl.java
URL:
http://svn.apache.org/viewvc/portals/jetspeed-2/trunk/components/portal/src/java/org/apache/jetspeed/aggregator/impl/HeaderAggregatorImpl.java?view=auto&rev=463809
==============================================================================
---
portals/jetspeed-2/trunk/components/portal/src/java/org/apache/jetspeed/aggregator/impl/HeaderAggregatorImpl.java
(added)
+++
portals/jetspeed-2/trunk/components/portal/src/java/org/apache/jetspeed/aggregator/impl/HeaderAggregatorImpl.java
Fri Oct 13 13:04:54 2006
@@ -0,0 +1,148 @@
+/*
+ * Copyright 2000-2004 The Apache Software Foundation.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.jetspeed.aggregator.impl;
+
+import java.io.IOException;
+import java.util.Iterator;
+
+import javax.portlet.Portlet;
+
+import org.apache.commons.logging.Log;
+import org.apache.commons.logging.LogFactory;
+import org.apache.jetspeed.aggregator.FailedToRenderFragmentException;
+import org.apache.jetspeed.aggregator.PageAggregator;
+import org.apache.jetspeed.container.state.NavigationalState;
+import org.apache.jetspeed.container.window.PortletWindowAccessor;
+import org.apache.jetspeed.exception.JetspeedException;
+import org.apache.jetspeed.factory.PortletFactory;
+import org.apache.jetspeed.headerresource.HeaderResource;
+import org.apache.jetspeed.headerresource.HeaderResourceFactory;
+import org.apache.jetspeed.om.page.ContentFragment;
+import org.apache.jetspeed.om.page.ContentPage;
+import org.apache.jetspeed.portlet.PortletHeaderRequest;
+import org.apache.jetspeed.portlet.PortletHeaderResponse;
+import org.apache.jetspeed.portlet.SupportsHeaderPhase;
+import org.apache.jetspeed.request.RequestContext;
+import org.apache.pluto.om.portlet.PortletDefinition;
+import org.apache.pluto.om.window.PortletWindow;
+
+/**
+ * HeaderAggregator builds the content required to render a page of portlets.
+ *
+ * @author <a href="mailto:[EMAIL PROTECTED]">Rapha�l Luta </a>
+ * @author <a href="mailto:[EMAIL PROTECTED]">David Sean Taylor </a>
+ * @version $Id: PageAggregatorImpl.java 359125 2005-12-26 23:16:39Z rwatler $
+ */
+public class HeaderAggregatorImpl implements PageAggregator
+{
+ private final static Log log =
LogFactory.getLog(HeaderAggregatorImpl.class);
+
+ private PortletFactory factory;
+ private PortletWindowAccessor windowAccessor;
+ private HeaderResourceFactory headerResourceFactory;
+
+ public HeaderAggregatorImpl(PortletFactory factory, PortletWindowAccessor
windowAccessor, HeaderResourceFactory headerResourceFactory)
+ {
+ this.factory = factory;
+ this.windowAccessor = windowAccessor;
+ this.headerResourceFactory = headerResourceFactory;
+ }
+
+ /**
+ * Builds the portlet set defined in the context into a portlet tree.
+ *
+ * @return Unique Portlet Entity ID
+ */
+ public void build( RequestContext context ) throws JetspeedException,
IOException
+ {
+ ContentPage page = context.getPage();
+ if (null == page)
+ {
+ throw new JetspeedException("Failed to find PSML Pin
ContentPageAggregator.build");
+ }
+
+ ContentFragment root = page.getRootContentFragment();
+
+ if (root == null)
+ {
+ throw new JetspeedException("No root ContentFragment found in
ContentPage");
+ }
+
+ // handle maximized state
+ NavigationalState nav = context.getPortalURL().getNavigationalState();
+ PortletWindow window = nav.getMaximizedWindow();
+ if (null != window)
+ {
+ ContentFragment maxedContentFragment =
page.getContentFragmentById(window.getId().toString());
+ if (maxedContentFragment != null)
+ {
+ renderHeaderFragment(context, maxedContentFragment);
+ }
+ }
+ else
+ {
+ aggregateAndRender(root, context, page);
+ }
+
+ }
+
+ protected void aggregateAndRender( ContentFragment fragment,
RequestContext context, ContentPage page )
+ throws FailedToRenderFragmentException
+ {
+
+ if (fragment.getContentFragments() != null &&
fragment.getContentFragments().size() > 0)
+ {
+ Iterator children = fragment.getContentFragments().iterator();
+ while (children.hasNext())
+ {
+ ContentFragment child = (ContentFragment) children.next();
+ if (!"hidden".equals(fragment.getState()))
+ {
+ aggregateAndRender(child, context, page);
+ }
+ }
+ }
+ renderHeaderFragment(context, fragment);
+ }
+
+ protected void renderHeaderFragment(RequestContext context,
ContentFragment fragment)
+ {
+ try
+ {
+ PortletWindow portletWindow =
windowAccessor.getPortletWindow(fragment);
+ PortletDefinition pd =
portletWindow.getPortletEntity().getPortletDefinition();
+ //portletWindow.getPortletEntity().getPreferenceSet().get
+ String portletApplicationContextPath =
pd.getPortletApplicationDefinition().getWebApplicationDefinition().getContextRoot();
+ Portlet portlet =
factory.getPortletInstance(context.getConfig().getServletContext().getContext(portletApplicationContextPath),
pd).getRealPortlet();
+ if (portlet instanceof SupportsHeaderPhase)
+ {
+ System.out.println("HEADER AGGREGATOR: supports header phase:
" + pd.getName());
+
+ HeaderResource hr =
headerResourceFactory.getHeaderResouce(context);
+ PortletHeaderRequest headerRequest = new
PortletHeaderRequestImpl(context, portletWindow,
portletApplicationContextPath);
+ PortletHeaderResponse headerResponse = new
PortletHeaderResponseImpl(context, hr);
+ ((SupportsHeaderPhase)portlet).doHeader(headerRequest,
headerResponse);
+ }
+ }
+ catch (Exception e)
+ {
+ log.equals(e);
+ }
+
+ }
+
+
+}
Added:
portals/jetspeed-2/trunk/components/portal/src/java/org/apache/jetspeed/aggregator/impl/PortletHeaderRequestImpl.java
URL:
http://svn.apache.org/viewvc/portals/jetspeed-2/trunk/components/portal/src/java/org/apache/jetspeed/aggregator/impl/PortletHeaderRequestImpl.java?view=auto&rev=463809
==============================================================================
---
portals/jetspeed-2/trunk/components/portal/src/java/org/apache/jetspeed/aggregator/impl/PortletHeaderRequestImpl.java
(added)
+++
portals/jetspeed-2/trunk/components/portal/src/java/org/apache/jetspeed/aggregator/impl/PortletHeaderRequestImpl.java
Fri Oct 13 13:04:54 2006
@@ -0,0 +1,65 @@
+/*
+ * Copyright 2000-2001,2004 The Apache Software Foundation.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.jetspeed.aggregator.impl;
+
+import javax.portlet.PortletPreferences;
+
+import org.apache.jetspeed.portlet.PortletHeaderRequest;
+import org.apache.jetspeed.request.RequestContext;
+import org.apache.pluto.core.impl.PortletPreferencesImpl;
+import org.apache.pluto.om.window.PortletWindow;
+
+
+public class PortletHeaderRequestImpl implements PortletHeaderRequest
+{
+ private RequestContext requestContext;
+ private String portletApplicationContextPath;
+ private PortletWindow portletWindow;
+
+ public PortletHeaderRequestImpl(RequestContext requestContext,
PortletWindow portletWindow, String portletApplicationContextPath)
+ {
+ this.requestContext = requestContext;
+ this.portletApplicationContextPath = portletApplicationContextPath;
+ this.portletWindow = portletWindow;
+ }
+
+ public String getPortalContextPath()
+ {
+ return requestContext.getRequest().getContextPath();
+ }
+
+ public boolean isDesktopEncoder()
+ {
+ String requestEncoder =
(String)requestContext.getRequest().getParameter("encoder");
+ return((requestEncoder == null) || !requestEncoder.equals("desktop"))
? false : true;
+ }
+
+
+ public PortletPreferences getPreferences()
+ {
+ return new
PortletPreferencesImpl(org.apache.pluto.Constants.METHOD_NOOP,
this.portletWindow.getPortletEntity());
+ }
+
+
+ /**
+ * @return Returns the portletApplicationContextPath.
+ */
+ public String getPortletApplicationContextPath()
+ {
+ return portletApplicationContextPath;
+ }
+
+}
Added:
portals/jetspeed-2/trunk/components/portal/src/java/org/apache/jetspeed/aggregator/impl/PortletHeaderResponseImpl.java
URL:
http://svn.apache.org/viewvc/portals/jetspeed-2/trunk/components/portal/src/java/org/apache/jetspeed/aggregator/impl/PortletHeaderResponseImpl.java?view=auto&rev=463809
==============================================================================
---
portals/jetspeed-2/trunk/components/portal/src/java/org/apache/jetspeed/aggregator/impl/PortletHeaderResponseImpl.java
(added)
+++
portals/jetspeed-2/trunk/components/portal/src/java/org/apache/jetspeed/aggregator/impl/PortletHeaderResponseImpl.java
Fri Oct 13 13:04:54 2006
@@ -0,0 +1,85 @@
+/*
+ * Copyright 2000-2001,2004 The Apache Software Foundation.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.jetspeed.aggregator.impl;
+
+import java.io.BufferedReader;
+import java.io.StringReader;
+
+import javax.portlet.PortletException;
+import javax.servlet.RequestDispatcher;
+import javax.servlet.ServletContext;
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+
+import org.apache.jetspeed.aggregator.PortletContent;
+import org.apache.jetspeed.headerresource.HeaderResource;
+import org.apache.jetspeed.portlet.PortletHeaderRequest;
+import org.apache.jetspeed.portlet.PortletHeaderResponse;
+import org.apache.jetspeed.request.RequestContext;
+
+
+public class PortletHeaderResponseImpl implements PortletHeaderResponse
+{
+ private RequestContext requestContext;
+ private HeaderResource hr;
+ private String tempContent;
+
+ public PortletHeaderResponseImpl(RequestContext requestContext,
HeaderResource hr)
+ {
+ this.requestContext = requestContext;
+ this.hr = hr;
+ }
+
+ public HeaderResource getHeaderResource()
+ {
+ return this.hr;
+ }
+
+ public String getContent()
+ {
+ return tempContent;
+ }
+
+ public void include(PortletHeaderRequest request, PortletHeaderResponse
response, String headerResource)
+ throws PortletException
+ {
+ try
+ {
+ HttpServletRequest servletRequest = requestContext.getRequest();
+ HttpServletResponse servletResponse = requestContext.getResponse();
+ PortletContent content = new PortletContentImpl();
+ HttpBufferedResponse bufferedResponse =
+ new HttpBufferedResponse(servletResponse, content.getWriter());
+ ServletContext crossContext =
requestContext.getConfig().getServletContext().getContext(request.getPortletApplicationContextPath());
+ RequestDispatcher dispatcher =
crossContext.getRequestDispatcher(headerResource);
+ if (dispatcher != null)
+ dispatcher.include(servletRequest, bufferedResponse);
+ bufferedResponse.flushBuffer();
+ BufferedReader reader = new BufferedReader(new
StringReader(content.getContent()));
+ String buffer;
+ StringBuffer headerText = new StringBuffer();
+ while ((buffer = reader.readLine()) != null)
+ {
+ headerText.append( buffer ).append( "\r\n" );
+ }
+ tempContent = headerText.toString();
+ }
+ catch (Exception e)
+ {
+ throw new PortletException(e);
+ }
+ }
+}
Modified:
portals/jetspeed-2/trunk/components/portal/src/test/org/apache/jetspeed/AbstractPortalContainerTestCase.java
URL:
http://svn.apache.org/viewvc/portals/jetspeed-2/trunk/components/portal/src/test/org/apache/jetspeed/AbstractPortalContainerTestCase.java?view=diff&rev=463809&r1=463808&r2=463809
==============================================================================
---
portals/jetspeed-2/trunk/components/portal/src/test/org/apache/jetspeed/AbstractPortalContainerTestCase.java
(original)
+++
portals/jetspeed-2/trunk/components/portal/src/test/org/apache/jetspeed/AbstractPortalContainerTestCase.java
Fri Oct 13 13:04:54 2006
@@ -16,7 +16,6 @@
package org.apache.jetspeed;
-import org.apache.jetspeed.components.util.RegistrySupportedTestCase;
import org.apache.jetspeed.container.window.PortletWindowAccessor;
import org.apache.jetspeed.container.window.impl.PortletWindowAccessorImpl;
import org.apache.pluto.PortletContainer;
Modified:
portals/jetspeed-2/trunk/components/portal/src/test/org/apache/jetspeed/aggregator/TestWorkerMonitor.java
URL:
http://svn.apache.org/viewvc/portals/jetspeed-2/trunk/components/portal/src/test/org/apache/jetspeed/aggregator/TestWorkerMonitor.java?view=diff&rev=463809&r1=463808&r2=463809
==============================================================================
---
portals/jetspeed-2/trunk/components/portal/src/test/org/apache/jetspeed/aggregator/TestWorkerMonitor.java
(original)
+++
portals/jetspeed-2/trunk/components/portal/src/test/org/apache/jetspeed/aggregator/TestWorkerMonitor.java
Fri Oct 13 13:04:54 2006
@@ -22,12 +22,7 @@
import junit.framework.TestCase;
import junit.framework.TestSuite;
-import org.apache.jetspeed.aggregator.impl.ContentServerAdapterImpl;
-import org.apache.jetspeed.aggregator.impl.PageAggregatorImpl;
-import org.apache.jetspeed.aggregator.impl.PortletAggregatorImpl;
import org.apache.jetspeed.aggregator.impl.WorkerMonitorImpl;
-import org.apache.jetspeed.headerresource.HeaderResourceFactory;
-import org.apache.jetspeed.headerresource.impl.HeaderResourceFactoryImpl;
import org.apache.jetspeed.om.window.impl.PortletWindowImpl;
import org.apache.pluto.om.window.PortletWindow;
Modified:
portals/jetspeed-2/trunk/components/portlet-factory/src/java/org/apache/jetspeed/factory/JetspeedPortletInstance.java
URL:
http://svn.apache.org/viewvc/portals/jetspeed-2/trunk/components/portlet-factory/src/java/org/apache/jetspeed/factory/JetspeedPortletInstance.java?view=diff&rev=463809&r1=463808&r2=463809
==============================================================================
---
portals/jetspeed-2/trunk/components/portlet-factory/src/java/org/apache/jetspeed/factory/JetspeedPortletInstance.java
(original)
+++
portals/jetspeed-2/trunk/components/portlet-factory/src/java/org/apache/jetspeed/factory/JetspeedPortletInstance.java
Fri Oct 13 13:04:54 2006
@@ -106,4 +106,13 @@
{
return portlet.toString();
}
+
+
+/**
+ * @return Returns the portlet.
+ */
+public Portlet getRealPortlet()
+{
+ return portlet;
+}
}
Modified:
portals/jetspeed-2/trunk/jetspeed-api/src/java/org/apache/jetspeed/aggregator/PortletContent.java
URL:
http://svn.apache.org/viewvc/portals/jetspeed-2/trunk/jetspeed-api/src/java/org/apache/jetspeed/aggregator/PortletContent.java?view=diff&rev=463809&r1=463808&r2=463809
==============================================================================
---
portals/jetspeed-2/trunk/jetspeed-api/src/java/org/apache/jetspeed/aggregator/PortletContent.java
(original)
+++
portals/jetspeed-2/trunk/jetspeed-api/src/java/org/apache/jetspeed/aggregator/PortletContent.java
Fri Oct 13 13:04:54 2006
@@ -6,6 +6,8 @@
*/
package org.apache.jetspeed.aggregator;
+import java.io.PrintWriter;
+
/**
* <p>
* PortletContent
@@ -24,4 +26,6 @@
boolean isComplete();
void complete();
+
+ PrintWriter getWriter();
}
Modified:
portals/jetspeed-2/trunk/jetspeed-api/src/java/org/apache/jetspeed/factory/PortletInstance.java
URL:
http://svn.apache.org/viewvc/portals/jetspeed-2/trunk/jetspeed-api/src/java/org/apache/jetspeed/factory/PortletInstance.java?view=diff&rev=463809&r1=463808&r2=463809
==============================================================================
---
portals/jetspeed-2/trunk/jetspeed-api/src/java/org/apache/jetspeed/factory/PortletInstance.java
(original)
+++
portals/jetspeed-2/trunk/jetspeed-api/src/java/org/apache/jetspeed/factory/PortletInstance.java
Fri Oct 13 13:04:54 2006
@@ -28,4 +28,5 @@
public interface PortletInstance extends Portlet
{
PortletConfig getConfig();
+ Portlet getRealPortlet();
}
Added:
portals/jetspeed-2/trunk/jetspeed-api/src/java/org/apache/jetspeed/portlet/PortletHeaderRequest.java
URL:
http://svn.apache.org/viewvc/portals/jetspeed-2/trunk/jetspeed-api/src/java/org/apache/jetspeed/portlet/PortletHeaderRequest.java?view=auto&rev=463809
==============================================================================
---
portals/jetspeed-2/trunk/jetspeed-api/src/java/org/apache/jetspeed/portlet/PortletHeaderRequest.java
(added)
+++
portals/jetspeed-2/trunk/jetspeed-api/src/java/org/apache/jetspeed/portlet/PortletHeaderRequest.java
Fri Oct 13 13:04:54 2006
@@ -0,0 +1,46 @@
+/*
+ * Copyright 2000-2004 The Apache Software Foundation.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.jetspeed.portlet;
+
+import javax.portlet.PortletPreferences;
+
+public interface PortletHeaderRequest
+{
+ /**
+ * Returns the web context path for the portal
+ * @return the portal context path, for example "/jetspeed"
+ */
+ String getPortalContextPath();
+
+ /**
+ * Returns the portlet applicatoin context path
+ *
+ * @return
+ */
+ String getPortletApplicationContextPath();
+
+ /**
+ * Get the portlet preferences
+ */
+ PortletPreferences getPreferences();
+
+ /**
+ * Determine if its a /desktop encoder
+ * @return true if its a /desktop encoder, false if /portal encoder
+ */
+ boolean isDesktopEncoder();
+
+}
Added:
portals/jetspeed-2/trunk/jetspeed-api/src/java/org/apache/jetspeed/portlet/PortletHeaderResponse.java
URL:
http://svn.apache.org/viewvc/portals/jetspeed-2/trunk/jetspeed-api/src/java/org/apache/jetspeed/portlet/PortletHeaderResponse.java?view=auto&rev=463809
==============================================================================
---
portals/jetspeed-2/trunk/jetspeed-api/src/java/org/apache/jetspeed/portlet/PortletHeaderResponse.java
(added)
+++
portals/jetspeed-2/trunk/jetspeed-api/src/java/org/apache/jetspeed/portlet/PortletHeaderResponse.java
Fri Oct 13 13:04:54 2006
@@ -0,0 +1,51 @@
+/*
+ * Copyright 2000-2004 The Apache Software Foundation.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.jetspeed.portlet;
+
+import java.io.Writer;
+
+import javax.portlet.PortletException;
+
+import org.apache.jetspeed.headerresource.HeaderResource;
+
+
+public interface PortletHeaderResponse
+{
+ /**
+ * Retrieves the header resource for this request
+ * @return a per request HeaderResource
+ */
+ HeaderResource getHeaderResource();
+
+ /**
+ * Temporary solution: get the content after calling include
+ * this will be deprecated
+ *
+ */
+ String getContent();
+
+ /**
+ * Dispatch to a servlet or resource to generate and include the header
content
+ *
+ * @param request
+ * @param response
+ * @param headerResource
+ * @return
+ * @throws PortletException
+ */
+ void include(PortletHeaderRequest request, PortletHeaderResponse response,
String headerResource)
+ throws PortletException;
+}
Added:
portals/jetspeed-2/trunk/jetspeed-api/src/java/org/apache/jetspeed/portlet/SupportsHeaderPhase.java
URL:
http://svn.apache.org/viewvc/portals/jetspeed-2/trunk/jetspeed-api/src/java/org/apache/jetspeed/portlet/SupportsHeaderPhase.java?view=auto&rev=463809
==============================================================================
---
portals/jetspeed-2/trunk/jetspeed-api/src/java/org/apache/jetspeed/portlet/SupportsHeaderPhase.java
(added)
+++
portals/jetspeed-2/trunk/jetspeed-api/src/java/org/apache/jetspeed/portlet/SupportsHeaderPhase.java
Fri Oct 13 13:04:54 2006
@@ -0,0 +1,28 @@
+/*
+ * Copyright 2000-2004 The Apache Software Foundation.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.jetspeed.portlet;
+
+import javax.portlet.PortletException;
+
+/**
+ * Indicates that a portlet supports the pre-286 header phase
+ *
+ * @author <a href="mailto:[EMAIL PROTECTED]">David Sean Taylor</a>
+ */
+public interface SupportsHeaderPhase
+{
+ void doHeader(PortletHeaderRequest request, PortletHeaderResponse
response) throws PortletException;
+}
Modified: portals/jetspeed-2/trunk/src/webapp/WEB-INF/assembly/aggregation.xml
URL:
http://svn.apache.org/viewvc/portals/jetspeed-2/trunk/src/webapp/WEB-INF/assembly/aggregation.xml?view=diff&rev=463809&r1=463808&r2=463809
==============================================================================
--- portals/jetspeed-2/trunk/src/webapp/WEB-INF/assembly/aggregation.xml
(original)
+++ portals/jetspeed-2/trunk/src/webapp/WEB-INF/assembly/aggregation.xml Fri
Oct 13 13:04:54 2006
@@ -71,11 +71,6 @@
</constructor-arg>
</bean>
- <!-- Header Resource Factory TODO: do we really need the factory? -->
- <bean id="org.apache.jetspeed.headerresource.HeaderResourceFactory"
-
class="org.apache.jetspeed.headerresource.impl.HeaderResourceFactoryImpl">
- </bean>
-
<bean id="org.apache.jetspeed.aggregator.ContentServerAdapter"
class="org.apache.jetspeed.aggregator.impl.ContentServerAdapterImpl">
<constructor-arg index="0">
@@ -113,5 +108,17 @@
</constructor-arg>
</bean>
-
+
+ <bean id="org.apache.jetspeed.aggregator.HeaderAggregator"
class="org.apache.jetspeed.aggregator.impl.HeaderAggregatorImpl">
+ <constructor-arg index="0">
+ <ref bean="portletFactory" />
+ </constructor-arg>
+ <constructor-arg index='1'>
+ <ref bean="PortletWindowAccessor"/>
+ </constructor-arg>
+ <constructor-arg index="2">
+ <ref
bean="org.apache.jetspeed.headerresource.HeaderResourceFactory" />
+ </constructor-arg>
+ </bean>
+
</beans>
Modified: portals/jetspeed-2/trunk/src/webapp/WEB-INF/assembly/pipelines.xml
URL:
http://svn.apache.org/viewvc/portals/jetspeed-2/trunk/src/webapp/WEB-INF/assembly/pipelines.xml?view=diff&rev=463809&r1=463808&r2=463809
==============================================================================
--- portals/jetspeed-2/trunk/src/webapp/WEB-INF/assembly/pipelines.xml
(original)
+++ portals/jetspeed-2/trunk/src/webapp/WEB-INF/assembly/pipelines.xml Fri Oct
13 13:04:54 2006
@@ -178,7 +178,16 @@
<ref bean="org.apache.jetspeed.aggregator.PageAggregator"/>
</constructor-arg>
</bean>
-
+
+ <bean id="headerAggregatorValve"
+ class="org.apache.jetspeed.aggregator.HeaderAggregatorValve"
+ init-method="initialize"
+ >
+ <constructor-arg>
+ <ref bean="org.apache.jetspeed.aggregator.HeaderAggregator"/>
+ </constructor-arg>
+ </bean>
+
<bean id="cleanUpValve"
class="org.apache.jetspeed.pipeline.valve.impl.CleanupValveImpl"
init-method="initialize"
@@ -241,6 +250,7 @@
<ref bean="containerValve"/>
<ref bean="actionValve"/>
<ref bean="DecorationValve" />
+ <ref bean="headerAggregatorValve"/>
<ref bean="aggregatorValve"/>
<ref bean="cleanUpValve"/>
</list>
@@ -376,6 +386,7 @@
<ref bean="securityValve"/>
<ref bean="localizationValve"/>
<ref bean="profilerValve"/>
+ <ref bean="headerAggregatorValve"/>
<ref bean="desktopValve"/>
</list>
</constructor-arg>
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]