Hi,
I have been working on a second integration attempt of WADI and I am
posting here a high-level description of the current state of progress
such that people can jump in.
At this stage, this is a Jetty only attempt and I do believe that the
same approach can be applied for Tomcat. The current integration
provides (very unreliable) HttpSession state migration. It only works
for a single Web-application; more effort is required on the WADI side
to support multiple Web-applications and this will not impact the
integration piece of code. I (more or less successfully) tested the
integration with mod_proxy + mod_proxy_balancer and mod_proxy +
mod_rewrite in front of three Geronimo servers running the WADI demo
web-app.
The code changes are:
* new module to capture some clustering contracts – geronimo-clustering:
there Node, SessionManager, Session and ClusteredInvocation are defined.
* new module to provide a WADI implementation of the above –
geronimo-clustering-wadi;
* new module to capture clustering builder contracts –
geronimo-clustering-builder: there is only one interesting interface
JettyClusteringBuilder. This later defines a couple of methods to
augment the environment of a Web module being built and add clustering
specific GBeans;
* new module to provide a WADI implementation of the above –
Geronimo-clustering-builder-wadi; and
* geronimo-jetty-builder and geronimo-jetty are impacted to hook in
clustering. These two modules depend on geronimo-clustering and
geronimo-clustering-builder and not on WADI specific modules.
Two new modules are added:
* jetty-clustering- wadi: this module defines default WADI GBeans such
as Dispatcher, ReplicationManagerFactory, BackingStrategyFactory et
cetera; and
* jetty-clustering-builder-wadi: this module defines a builder to
process Jetty DD and add various GBeans to the module being built.
I think that the implementation is flexible enough to plug in another
clustering implementation such as Kache.
As a matter of fact, there are some severe reliability (e.g. locking
issues) and integration (only one Web-app can be clustered) issues,
which need to be fixed. So, this work is not yet ready to be RTC voted
and I do not think that it will before a couple of weeks. Having said
that, I have opened a JIRA
(http://issues.apache.org/jira/browse/GERONIMO-2163) such that people
can have a look to the integration.
Thanks,
Gianny