Hi devs,
I just added a new project, xwiki-portlet, to contrib/sandbox. Its final
target is to handle the integration of an XWiki Enterprise instance
inside a JSR286 compatible portal.
My current approach is to dispatch portlet requests from a portlet
(DispatchPortlet) to an XWiki Enterprise instance running on the same
context path. I use a servlet filter to catch these requests on the
servlet side and to adjust them. I'm rewriting the XWiki URLs from the
response, if content type is text/html, into portlet URLs so that the
user can navigate through XWiki pages without leaving the portal. XWiki
URLs are mapped to portlet URLs (action/render/resource) through
configuration (e.g. /bin/download/ prefix is mapped to a resource
request type).
The current code is not well documented and there are no tests. It's
more or less a proof of concept. I'm still investigating if the current
approach covers all the use cases.
In order to be able to fully integrate XWiki into a portal we must
rewrite some of XWiki's UI to ensure it is isolated from the rest of the
portal when in portlet mode. This implies:
* making sure the CSS doesn't affect content outside of the XWiki
container (the container needs to be defined)
* namespacing HTML element ids
* namespacing JavaScript global variables
The last two points are required to allow two instances of the XWiki
portlet to be present on the same portal page and have different state.
Thanks,
Marius