We developed a cluster synchronization feature that is able to synchronize the execution of an objects method cluster-wide. The approach is similar to the spring transaction proxy, so we are able to AOP-inject the cluster synchronization via spring configuration. The component is highly customizable. A new database table is used for synchonization, but any other data container (i.e. broadcast-distributed-hashmap) could be used.
One main application for this functionality is the start of many jetspeed cluster nodes and synchronize the deployment of the PAs to the database. (Even with the VersionedApplicationManager we experienced DB constraints failures on startup with fresh database, preventing the some PAs from registration.)
Patch follows (exists only for the 2.1.2-POSTRELEASE branch yet).