cocoon-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Neeme Praks" <>
Subject Cocoon and Jetspeed
Date Tue, 30 May 2000 19:01:19 GMT

Sorry for crossposting this, but I feel that this theme covers the
topics on both of these lists...

Lately I have been doing some thinking about the integration of Cocoon
and Jetspeed. Now I would like to share my ideas/comments with others
and hopefully get some feedback and discussion about this.

I like the idea of the Jetspeed project, however, I see some places
where cocoon would fit in (and improve?) Jetspeed (or vice versa ;-)

Currently Jetspeed holds its configuration data as psml/xml files: one
file for all the portlets (portlet registry) and then individual files
for the actual portal pages that reference portlets in the registry.

When looking at cocoon framework, I realised that there is actually no
need for these files to be static (as they are currently). Instead, they
could be XSP pages, XML pages that Xinclude other pages (kind of
cascading registry for example), or pages generated by some other cocoon
producer. For example, I could store all my registry in the database and
then generate the portletregistry with XSP.

Also, the individual portal pages (e.g. default.psml) could be served by
cocoon, either static files or dynamic ones. In fact, jetspeed could be
a cocoon producer that is registered to hande all files with extension
"psml". This way I could place there "portal" pages anywhere on my
cocoon site and have jetspeed assemble the actual page with portlets.
The user personalization could also be achieved by dynamic XSP pages:
the PSML content would be rendered according to information in the
requested URL and authentication/authorization provided by servlet

This would allow me to define many "public" portal pages (consisting of
portlets) across my site and also provide users with personalization
scheme most appropriate for me.
For example, I want to give my users the possibility to have more than
one totally personalized page (users can put these pages together by
choosing the portlets to be included on the page); I can do that by
making some page totally dynamic and database driven.
On the other hand, some pages can be "semi-personalized": when anonymous
user is accessing them, they would always return the same set of
portlets (by returning some static file for example)... However, when
authenticated user is accessing them, I can provide the user with
customization features (through dynamic generation), disable some
portlets, etc.
Finally, there could be totally plain static and simple pages that
always return the same set of portlets, regardless who would be
accessing them...

I also have some ideas about using cocoon inside the portlets...
All portlets could return some XML representation enclosed in some
agreed upon tags and attributes. For example, i could return something
like this:

    <border bordersize=3 titleBG="#000000">
        <xml-stylesheet href="HTML XSLT sheet" type="text/xsl"/>
        <xml-stylesheet href="ie5 XSLT sheet" type="text/xsl"
        <xml-stylesheet href="WAP XSLT sheet" type="text/xsl"
        <xml-stylesheet href="HTML XSLT sheet" type="text/xsl"/>
        <xml-stylesheet href="ie5 XSLT sheet" type="text/xsl"
        <xml-stylesheet href="WAP XSLT sheet" type="text/xsl"
            .... portlet content ....

The border tag would specify the preferred way (specified by portlet
developer) how the "border" of the portlet would be rendered. The user
could override these settings with some system-wide theme for border
rendering. The content tag would include the XML content of the portlet
as well as stylesheets for transformation of this content to appropriate

The use of this kind of system would also enable the possible use of
"remote portlets": XML pages (that follow the portlet DTD) residing on
remote server that could be rendered as portlets on local server...

I hope all this makes sense to somebody... maybe i'm totally caught by
the flexibility syndrome, but let me know what you think of all this ;-)


PS. Sorry if I missed some critical points that make this whole idea
totally useless...

View raw message