Done r514462.
Elliot Metsger wrote:
being fixed now...
Charles Severance wrote:
But there *is* a problem with 1.1.1 (castor.properties) that might be
worthfixing before 1.1.1. Broke Sakai solidly.
http://issues.apache.org/jira/browse/PLUTO-329
/Chuck
On Mar 4, 2007, at 2:22 PM, David H. DeWolf wrote:
I like this . . .and I think we could support additional events as
well. I'd like to come up with an eventing model that's flexible and
easily scales. Do you mind if this waits until 1.1.2 so it doesn't
hold up 1.1.1?
Charles Severance wrote:
David,
I really think that the code adding Listeners to the ADMIN requests
is sweet - and no good deed goes unpunished. I really would like
similar code added both to the Render and Action code (i.e. check to
see if there is a listener registered with the container and hand
the request/response off to the listener *right before* the render
and action calls.
I need this to get some code to run inside the servlet to set a few
things in thread local so Sakai APIs work once portlets start. I am
guessing that many containers will want this same opportunity. It
is like a "light" Portlet filter. I am not suggesting a filter
pattern or a wrapping pattern - just give me a moment *right before*
render is called.
/Chuck
// The requested method is RENDER: call Portlet.render(..)
if (methodId == Constants.METHOD_RENDER) {
RenderRequestImpl renderRequest =
(RenderRequestImpl) portletRequest;
RenderResponseImpl renderResponse =
(RenderResponseImpl) portletResponse;
// check to see if there is a registered listener for
renders and call
portlet.render(renderRequest, renderResponse);
}
// The requested method is ACTION: call
Portlet.processAction(..)
else if (methodId == Constants.METHOD_ACTION) {
ActionRequestImpl actionRequest =
(ActionRequestImpl) portletRequest;
ActionResponseImpl actionResponse =
(ActionResponseImpl) portletResponse;
// check to see if there is a registered listener for
action and call
portlet.processAction(actionRequest, actionResponse);
}
// The requested method is ADMIN: call handlers.
else if (methodId == Constants.METHOD_ADMIN) {
ContainerInvocation inv =
ContainerInvocation.getInvocation();
PortalAdministrationService pas =
inv.getPortletContainer()
.getOptionalContainerServices()
.getPortalAdministrationService();
Iterator it =
pas.getAdministrativeRequestListeners().iterator();
while(it.hasNext()) {
AdministrativeRequestListener l
=(AdministrativeRequestListener)it.next();
l.administer(portletRequest, portletResponse);
}
}