Many web frameworks like Struts, Cocoon, WebWork have been developed to help developers creating web applications.
Many organizations have invested a lot of time and money to develop applications with one of those framework. Unfortunately most of them were tied to the Servlet API and used servlet objects which makes them unsuable in the portlet API context.
The eXo platform bridges have been developed to allow you using your existing work embeded into portlets.
The concept is the same for all the bridges : in the portlet we extract the wrapped servlet objects from the portlet objects like PortletRequest, PortletResponse or PortletContext. Then the incoming request is delegated to the framework servlet.
There is still a problem : the response that comes back from the framework contains URLs that have not been created for a portal use. To solve this, there exist two solutions
Note that new versions of those frameworks should be context agnostic, and it will be possible to develop portlets with new versions of Cocoon or Struts but our bridges also allow you to run previous version of them in portlets.