I finally decided to publish PortletWork, which is a JSR168 portlet development framework I've been developing for about a year.
PortletWork is a framework built on XWork/WebWork and JSR168. It is basically a dispatcher for XWork in a Portlet Container, in addition to some re-use of the WebWork JSP tag libraries and interceptors. Only minor changes in the xwork.xml configuration file, and one custom JSP taglib (due to the special handling of URLs in a portlet container) is required to start using PortletWork. It currently runs with XWork 1.0.5 and WebWork 2.1.7.
The motivation for making PortletWork was not only to ease the migration of existing web applications to a portlet environment, but also to provide a solid framework for building "native" portlet applications, utilizing the core concepts of JSR168 such as modes, phases, preferences etc. It is possible, for instance, to map XWork package namespaces to portlet modes, and to have multiple portlets in a portlet application using different package namespaces. This makes it trivial to group actions into a logical structure of packages.
Some of the remaining tasks before 1.0 final is documentation (surprise, surprise), and releasing a proper example application that can be used as a template for development.
There is a maven generate site with some documentation at http://boss.bekk.no/boss/portletwork. The project itself is published on SourceForge at http://www.sf.net/projects/portletwork.
All feedback is appreciated.