Hi gyus, my name is Petar Toshev Tahchiev and for the past over six months I have been working with Felipe Leme on the Cactus project. It all started on the last year's Google's Summer Of Code where I wanted to apply with the project of building a Cactus-Maven2-plugin and refactoring the build tree of cactus. However our project wasn't voted I couldn't take part. Anyway I had some problems later and a few months ago I started working hard on the project again. Through all that time I have been working on my personal project in sourceforge [2], where you now can reach the new, refactored, cactus trunk.
I took as a base the repository at [1], trying to make the build using maven2. I must admit It's been a really hard work, as the old build of cactus, using ANT was MORE than complicated. Some of the difficulties I met was that Maven does not support multi-source tree projects, and that's the case of cactus: we have a "framework" module, and in it several sub-modules: j2ee-12/ j2ee-13/ j2ee-14/ share-12-13-14/ share-13-14/ and when building the different package for the different JDK, we always use some of the share sub-modules. Anyway, this problem I have managed, by using uberjars. I package the wrappers for the different JDKs in an artifact, and then the share submodules also. Later when building the uberjars, the wrappers and the share submodules are extracted and packaged as a whole, using the assembly plugin. I also spent a great deal of time in trying to improve the documentation. Maven2 has the ability to generate a site for every single artifact. The main cactus site was very ugly when being built with maven, because the XDOC format differed from the one maven recognizes (for example the <section> tag gets as attribute a "title", not an id and many other small changes). I spent a lot of time trying to fix the changes, and there may be still some places where I have missed, so if you find the site apporopriate we can use it. I also added the clover plugin in the pom.xml and saw the test-coverage was not so big, so I also spent some time writing a few testcases. I also spent some time in fixing 2 of the bugs in the jira. Another milestone in my work was making the Cactus-Ant Cargo integration. I researched for a few days and managed to make it. I had a few problems with one of the Cargo components, but I asked on the Cargo list if it could be changed, and supplied a patch for the Cargo 0.9 release (Vincent Massol may remember if he is reading this) and the patch was applied. Another Issue I would like to mention is the building of the Cactus-Samples module. As I didn't have a Cactus-M2 plugin it was practically impossible to test the samples against a real container. So I added profiles and used the cargo-plugin just to start and stop the containers for now, until I make the Cactus-M2-plugin. If you would like to test the project with a specific container you have to specify the container as a profile, for instance: mvn install -P tomcat5x Also another thing I would like to mention is the Checkstyle plugin. After adding it to the build I found about 300 checkstyle errors that prevented the build from passing successfully. I spent some time fixing those mistakes so the build now is being build successfully with checkstyle reports. Also I talked on the Cargo's lists about the expected release date of Cargo 0.9 and I was explained that cargo is expected to release any day now. So I made additional cactus-cargo.09 integration. So my point is that if you want to test the trunk at [2] you have to check out and install the cargo-.09 project at first. ======================================== A few weeks ago I started making the Cactus-M2-plugin. My first attempt was very ugly. I made it mainly because I was qurious if It was possible of soing it that way. In the implementation of the mojos I just instantiated the CactifyWar/Ear tasks and called their execute methods. (If you are really interested I was able to make it that way :-), though it depended on the cactus-ant-integration module and was REALLY ugly). Then I started anew writing the plugin after losing two days in vain. But my work was stalled for a while, as I moved to a new job. This weekend I made the cactifyWar/Ear and MergeWebXML mojos, and placed them in the trunk of my sourceforge's repo. The only thing that left was the CactusTestMojo that still doesnot work for unknown reasons to me. After extending the Surefireplugin mojo of maven I get a null pointer exception in the parent mojo. After investigating it in the maven lists it turned it is a bug in maven. I posted an issue in the maven JIRA recently, and right now I expect them to answer me. So I am currenty working on the maven cactus plugin and I think that in a few weeks I will finish it. ============================ I have added a submodule for JDK 1.5 support and this will be my next occupation (if anyone of you don't do it :-)). Also maybe the maven1 plugin needs to be fixed as it could be broken because of the refactoring of the ant-integration module to use cargo's containers. So if we manage to fix these things and release the Cactus-1.8 it would be a great thing. I want some of the other cactus-committers to review the subversion repository anf ============================ So to summon up the situation is this:I understand that there is still lots of work to be done, but I definitely think that we are on the right way. If any of the cactus-committers is able to look at the source tree in [2] and give his feedback if it is good enough to port it (maybe as a branch at first) on the cactus official repo. So we can all continue working on it. Also it would be good to hear from you, what else could be done for the successful release of the of Cactus-1.8 project - this project definitely deserves our joint efforts for bringing it to life again. Thank you. P.S . I would like to thank Felipe for his support and encouragement. And despite he was busy enough, he found some time to guide me on some of the issues: what needed additionaly to be done, and where I had made mistakes. [1] http://svn.apache.org/repos/asf/jakarta/cactus/trunk/ [2] svn co https://mamouth.svn.sourceforge.net/svnroot/mamouth mamouth -- Regards, Petar! Karlovo, Bulgaria.