Yesterday was a busy day for me and my colleague babu. We were in process of removing xWork dependency from our project. As advised by xWork the obvious choice was to use spring framework. Initially we thought that it will require lot of code change and the way our application loads various sub components. However it was a very sweet experience and migration really happened smoothly. We did not have to write lot of code.
What I really liked about spring was ease of configuration/setup and support for singletons and independent instances (prototype). I haven't had a chance to try our more complex scenarios but I am sure that spring won't let me down.
Second exercise that I carried out was with another colleague Parag. This time it was removing dependency on concurrency jar and using built in package from JDK 5. This change was really simple we just had to change the imports and in one case the different queue implementation. Although we were unable to get rid of runtime dependency on concurrency.jar as the jgroups project has not yet shifted to JDK's concurrency package.
I analyzed the jgroups source code and found out that around 53 classes needs a change. The most significant out of this is the change related to “Sync” interface. I guess for JDK 5.0 they will have to use “Lock” interface.
At this stage I am really tempted to undertake this change and be a part of jgroups supporter team.