Fair enough. I can certainly make it so that the filter is an "optional" component and we can keep the filter code in there.

That being said, are there some specific circumstances today where these filter services perform some logic that are needed in portal environments. I do agree that right not the Portlet API does not yet allow us the flexibility of the Servlet container so simply eliminating the filter may be a bit premature.

For instance:

One of the requirements I heard from Adam was that of setting up skins in these filter services. Perhaps it would be prudent to have a special skinning setup api that could reduce our reliance on the filter framework and allow for handing of this in a portal environment.

Does anyone else have requirements for these filters that they would want addressed in a more generic fashion?

Adam Winer wrote:
On 11/3/06, Scott O'Bryan <[EMAIL PROTECTED]> wrote:
Then I guess the final question is, is it important if these don't run
in the portal.

I mean if we can't change the API to be container agnostic and ordering
is important, I'm forced to use the Lifecycle/ExternalContext approach
for Portlets and the filter approach for servlets.  Not only is this
painful and somewhat dirty, but a large chunk of functionality simply
won't be available on the portal that, quite possibly, needs to be.

I mean I've managed to wrap Request and Response objects in the
FacesContext for both the portal and the servlet.  Anything that is
dependant on a ServletRequest will automatically not work in a portal.

So help me out here.

I'm happy with adding some servlet-agnostic APIs for some
of the purposes served by the existing filter code.  I'm just saying
that the goal of 100% no filters, 100% shared code is overly optimistic,
and that we really, really, really shouldn't just nuke the existing filter
API.

ExternalContext isn't 100% sufficient.  Ergo, perfect code sharing
and being totally agnostic to the Servlet API isn't gonna happen.
Forget about perfection - let's take steps towards making things better.

-- Adam



Scott

Adam Winer wrote:
> On 11/3/06, Scott O'Bryan <[EMAIL PROTECTED]> wrote:
>> Two questions then:
>>
>> 1) Being that these won't work in a portal environment, should we move
>> these to be executed elsewhere (like my custom lifecycle object) and
>> change the API to be more container agnostic (ie. using the
>> ExternalContext)?
>
> Changing the API is a painful way to go, and given that I've
> used it to wrap ServletResponse objects, a purely container agnostic
> approach isn't gonna cut it, I assume.
>
>> 2) If we do need to leave these in the filters, is it okay to move all
>> the other initialization logic (like setting up the skinning and
>> whatnot) to execute after these services or does it need to continue to
>> execute in the same order?
>
> Ordering is very important - one thing I've seen these filters
> used for is programatically registering additional skins.  And
> that had better happen after the original execution logic!
>
> -- Adam
>




Reply via email to