A servlet/portlet application framework dedicated to the development of reverse proxying, web content rewriting and rendering.
Apache Portals Web Content Application 2 consists of four submodules: content-rewriter, reverse-proxy, portlets and war package, which can support various use cases.
For example, you may want to use reverse-proxy module only without having to use portlets or war package modules if you want to construct a reverse proxy service for your backend web site, REST services, web services, etc. Or you can use portlets module when you want to build a new portlet application without having to pull in the example configurations from war package module.
The content-rewriter module defines a simple API and implements simple components to bridge various content rewriting framework such as text line based rewriting or HtmlCleaner based advanced rewriting.
The reverse-proxy module defines HTTP Reverse Proxy application framework for servlets or filters, providing YAML based proxy path mapping configurations and default content rewriter components.
The portlets module consists of various portlets serving remote content through either server-side HTTP Client handling or IFrame-based client-side page handling.
The war package module has all of the other modules with example configurations for servlets, filters, portlets and others.
Please see Modules Overview page for detail.
Note: Apache Portals Web Content Application 2 was rewritten from the previous versions in order to take advantage of the newer version of Apache HttpComponents and to be more flexible as a framework, especially for content-rewriting and reverse-proxying. For example, it used to try to provide every feature in the default reverse proxy component in the previous versions, but it now tries to provide a more flexible framework based on Chain of Responsibility pattern (using Apache Commons Chain) instead. So, it uses a different package (org.apache.portals.applications.webcontent2) than the previous versions (org.apache.portals.applications.webcontent), allowing it to be used at the same time as an earlier version. As a result, it is incompatible with the previous versions.