You are viewing a plain text version of this content. The canonical link for it is here.
Posted to pluto-dev@portals.apache.org by Stefan Hepper <st...@hursley.ibm.com> on 2003/10/17 17:13:13 UTC
Re: [Patch] PortletRequestDispatcherImpl doesn't unwrap requests
Thanks Andy.
I'm +1 for accepting the change.
Stefan
Andy Pruitt wrote:
> This is a patch for the core pluto engine.
>
>
> CURRENT BEHAVIOR:
> [PortletRequestDispatcherImpl:80] InternalPortletRequest
> internalRequest = (InternalPortletRequest)request;
>
> PROPOSED CHANGE:
> replace with:
> InternalPortletRequest internalRequest =
> CoreUtils.getInternalRequest(request);
>
> RATIONALE
> This is the only location in the codebase which relies on a
> (InternalPortletRequest) cast instead of using
> CoreRequestUtils.getInternalRequest(..).
>
> Currently, PortletRequestDispatcherImpl assumes that any PortletRequest
> it receives will be an instance of InternalPortletRequest. This becomes
> a problem if a portal implementer needs to wrap the request using
> PortletRequestWrapper; the cast will fail.
>
> Other alternatives would be:
> * Remove CoreUtils.getInternalRequest(..), and use a
> (InternalPortletRequest) cast on the assumption that all PortletRequests
> implement InternalPortletRequest.
> * Have PortletRequestWrapper and subclasses implement
> InternalPortletRequest.
> * No change.
>
>
> If no change, portal implementers should subclass
> PortletRequestWrapper+, which seems a shame since it would mean
> PortletRequestWrapper+ could never be safely used without subclassing.
> (Subclassing like :
>
> class InternalRenderWrapper extends RenderRequestWrapper implements
> InternalPortletRequest {
> public InternalRenderWrapper(RenderRequest renderRequest) {
> super(renderRequest);
> }
> public void lateInit(HttpServletRequest webModuleServletRequest)
> {
>
> CoreUtils.getInternalRequest(getRenderRequest()).lateInit(webModuleServl
> etRequest);
> }
> public PortletWindow getInternalPortletWindow() {
> return
> CoreUtils.getInternalRequest(getRenderRequest()).getInternalPortletWindo
> w();
> }
> public void setIncluded(boolean included) {
>
> CoreUtils.getInternalRequest(getRenderRequest()).setIncluded(included);
> }
> public boolean isIncluded() {
> return
> CoreUtils.getInternalRequest(getRenderRequest()).isIncluded();
> }
> }
>
>
>
Re: [Patch] PortletRequestDispatcherImpl doesn't unwrap
requests
Posted by James Nguyen <se...@duskyblue.net>.
Sorry.
I replied to the wrong thread.
James
At 09:06 AM 10/17/2003 -0700, you wrote:
>Stefan/Andy,
>
>I will try the patch out later today and let you know how it turns out.
>
>Thanks for the information.
>
>James
>
>At 05:13 PM 10/17/2003 +0200, you wrote:
>>Thanks Andy.
>>
>>I'm +1 for accepting the change.
>>
>>Stefan
>>
>>Andy Pruitt wrote:
>>
>>>This is a patch for the core pluto engine.
>>>
>>>CURRENT BEHAVIOR:
>>>[PortletRequestDispatcherImpl:80] InternalPortletRequest
>>>internalRequest = (InternalPortletRequest)request;
>>>PROPOSED CHANGE:
>>>replace with:
>>>InternalPortletRequest internalRequest =
>>>CoreUtils.getInternalRequest(request);
>>>RATIONALE
>>>This is the only location in the codebase which relies on a
>>>(InternalPortletRequest) cast instead of using
>>>CoreRequestUtils.getInternalRequest(..).
>>>Currently, PortletRequestDispatcherImpl assumes that any PortletRequest
>>>it receives will be an instance of InternalPortletRequest. This becomes
>>>a problem if a portal implementer needs to wrap the request using
>>>PortletRequestWrapper; the cast will fail.
>>>Other alternatives would be:
>>> * Remove CoreUtils.getInternalRequest(..), and use a
>>>(InternalPortletRequest) cast on the assumption that all PortletRequests
>>>implement InternalPortletRequest.
>>> * Have PortletRequestWrapper and subclasses implement
>>>InternalPortletRequest.
>>> * No change.
>>>
>>>If no change, portal implementers should subclass
>>>PortletRequestWrapper+, which seems a shame since it would mean
>>>PortletRequestWrapper+ could never be safely used without subclassing.
>>>(Subclassing like :
>>> class InternalRenderWrapper extends RenderRequestWrapper implements
>>>InternalPortletRequest {
>>> public InternalRenderWrapper(RenderRequest renderRequest) {
>>> super(renderRequest);
>>> }
>>> public void lateInit(HttpServletRequest webModuleServletRequest)
>>>{
>>>
>>>CoreUtils.getInternalRequest(getRenderRequest()).lateInit(webModuleServl
>>>etRequest);
>>> }
>>> public PortletWindow getInternalPortletWindow() {
>>> return
>>>CoreUtils.getInternalRequest(getRenderRequest()).getInternalPortletWindo
>>>w();
>>> }
>>> public void setIncluded(boolean included) {
>>>
>>>CoreUtils.getInternalRequest(getRenderRequest()).setIncluded(included);
>>> }
>>> public boolean isIncluded() {
>>> return
>>>CoreUtils.getInternalRequest(getRenderRequest()).isIncluded();
>>> }
>>> }
>
>
>James Nguyen
>I/T Professional
>600 Anton Boulevard - Suite 360
>Costa Mesa, California 92626
>
>"Cogito ergo sum"
> -Rene Descartes
>
>
James Nguyen
I/T Professional
600 Anton Boulevard - Suite 360
Costa Mesa, California 92626
"Cogito ergo sum"
-Rene Descartes
Re: [Patch] PortletRequestDispatcherImpl doesn't unwrap
requests
Posted by James Nguyen <se...@duskyblue.net>.
Stefan/Andy,
I will try the patch out later today and let you know how it turns out.
Thanks for the information.
James
At 05:13 PM 10/17/2003 +0200, you wrote:
>Thanks Andy.
>
>I'm +1 for accepting the change.
>
>Stefan
>
>Andy Pruitt wrote:
>
>>This is a patch for the core pluto engine.
>>
>>CURRENT BEHAVIOR:
>>[PortletRequestDispatcherImpl:80] InternalPortletRequest
>>internalRequest = (InternalPortletRequest)request;
>>PROPOSED CHANGE:
>>replace with:
>>InternalPortletRequest internalRequest =
>>CoreUtils.getInternalRequest(request);
>>RATIONALE
>>This is the only location in the codebase which relies on a
>>(InternalPortletRequest) cast instead of using
>>CoreRequestUtils.getInternalRequest(..).
>>Currently, PortletRequestDispatcherImpl assumes that any PortletRequest
>>it receives will be an instance of InternalPortletRequest. This becomes
>>a problem if a portal implementer needs to wrap the request using
>>PortletRequestWrapper; the cast will fail.
>>Other alternatives would be:
>> * Remove CoreUtils.getInternalRequest(..), and use a
>>(InternalPortletRequest) cast on the assumption that all PortletRequests
>>implement InternalPortletRequest.
>> * Have PortletRequestWrapper and subclasses implement
>>InternalPortletRequest.
>> * No change.
>>
>>If no change, portal implementers should subclass
>>PortletRequestWrapper+, which seems a shame since it would mean
>>PortletRequestWrapper+ could never be safely used without subclassing.
>>(Subclassing like :
>> class InternalRenderWrapper extends RenderRequestWrapper implements
>>InternalPortletRequest {
>> public InternalRenderWrapper(RenderRequest renderRequest) {
>> super(renderRequest);
>> }
>> public void lateInit(HttpServletRequest webModuleServletRequest)
>>{
>>
>>CoreUtils.getInternalRequest(getRenderRequest()).lateInit(webModuleServl
>>etRequest);
>> }
>> public PortletWindow getInternalPortletWindow() {
>> return
>>CoreUtils.getInternalRequest(getRenderRequest()).getInternalPortletWindo
>>w();
>> }
>> public void setIncluded(boolean included) {
>>
>>CoreUtils.getInternalRequest(getRenderRequest()).setIncluded(included);
>> }
>> public boolean isIncluded() {
>> return
>>CoreUtils.getInternalRequest(getRenderRequest()).isIncluded();
>> }
>> }
>>
>
James Nguyen
I/T Professional
600 Anton Boulevard - Suite 360
Costa Mesa, California 92626
"Cogito ergo sum"
-Rene Descartes