At 11:39 12/02/2001 +0100, you wrote:
>Raphael,
>
>I agree that it would be a complete waste of resources if all the portlet
>does is providing the SAX/DOM interface and streaming it. But I am not
>saying that. The idea is that such a derived portlet does everything
>required/desired on post-processing the events and only then streaming it.
>It's just that it is not the portal itself dealing with the events, but a
>special portlet. And the best is: this portlet would run on *any*
>implementation of a portlet container. I imagine something like this:
>
>Portlet
>-- getPrintWriter
>|-- SAXlet (c)
>|    -- getContentHandler
>|    -- getLexicalHandler
>|-- DOMet
>|    -- getDocumentNode
>|-- ECSlet
>|    -- getBaseElement
>|-- ????
>
>I do think there is a certain elegance in this approach.... If you want I
>can prepare Javadoc for this.

I understand your point but what you propose is in fact reimplementing
any functionalities already available in a native SAX site manager (like 
cocoon 2)
as a portlet so that it can be portable to any container.
That doesn't make sense to me.

>As you probably know, you can (almost) always map higher levels to lower
>levels but (virtually) never lower levels to higher levels. That's why the
>byte stream ultimately has to be the implementation. I am glad you agree to
>that.

I agree only as far as Jetspeed 1.3 is concerned. I can definitely see other
implementations where the link between portlet and portal is high level and
only converted to low level by the portal at the end of its processing.

>For the SAX case, I don't think it is a matter of adding one or two methods
>to the PortletResponse. That's why I am reluctant to make the mods just yet.
>How do we specifiy the stylesheet(s) to be used (if any)? How do we supply
>new parsers (if any)?

You don't. Why would a portlet care about this ?
It's a portal implementation job to know what to do with the event stream and
how to process it.
The Portlet API just has to make high-level communication possible between
portal and portet.

>How do we make sure that tomorrow we don't need to add
>support for DOM or ECS? If we support SAX, we should probably give the
>latter two a chance too. But add support for each of them in
>PortletResponse? I don't think that's a good idea.

The Portlet API is stream based we'll only consider stream options. It's 
trivial
to convert byte streams to string buffers (ECS ConcreteElement is a
specialized buffer) or event streams to object tree (DOM). They're just 2 faces
of the same coin, once you have one you can very easily get the other if 
required.

>I still don't see where Jetspeed parses portlet output. And I continue to
>disagree with your 80% statement. What assumptions are you talking about for
>WML? To some extent every portlet has to make assumptions about controls and
>controllers, because every portlet only delivers markup fragments which need
>to be (and hopefully are) completed by controls and controllers. But I guess
>that's not what you mean....

This is what I mean. In an ideal aggregation system, portlet should not be 
aware of
how they'll be aggregated.
For example, rather than simply outputting its HTML content in a <table> 
tag, a portlet
can simply output a complete HTML document (with <head> and <body>) and the 
portal
can simply strip <head> tags and replace <body> by either a <table> or a <div>.
The same kind of process can be done with other markup languages but it 
does require
post-processing of the portlet output.

This is a very important choice:
Should portlets be allowed to output document fragments ?
If so, how can they make sure that these fragments are correctly processed 
whatever the
portal implementation they're running on ?
One may want an HTML <table> as root element for the output while the other 
will want
a <div>, or talking WML must a portlet output a full <wml> deck, a 
<card>,  a set of <card>
or simply a <card> content ? This is very important because you can't nest 
<card> like you
can nest <table>.
The only way I can see this working across implementations is to mandate 
that portlet output
full documents with portal post-processing in order to fit the output in an 
aggregated document.

>If you (and Santiago) are still not convinced by the above solution, I
>suggest we do a vote on this particular issue. As I wrote before, I am happy
>to add those methods if for a good reason -- and a majority on the mailing
>list *is* a good reason.

OK, I think the arguements for both sides have run for long enough, I'll 
send a vote request in a
separate mail because some people probably didn't follow our discussions so 
far ;)


--
Raphaël Luta - [EMAIL PROTECTED]
Vivendi Universal Networks - Services Manager / Paris



--
--------------------------------------------------------------
To subscribe:        [EMAIL PROTECTED]
To unsubscribe:      [EMAIL PROTECTED]
Search: <http://www.mail-archive.com/[email protected]/>
List Help?:          [EMAIL PROTECTED]

Reply via email to