Monday, June 01, 2009


JavaNCSS is a little Java source measurement tool and open source project that I started some 12 years ago. It's the personal software project of mine that got the most traction and is still in some use, even thought I stopped developing in Java myself and had very little time to keep up with the support and development work that was neccessary.

With lot's of effort did move the programm to support the new Java 1.4 grammar back then, but still, some esoteric open bugs with new grammar features like annotations remained.

Then some people using the tool in their project (Sonar) and a vivid maintainer of the popular Maven build tool showed up, wanting to move things forward. With the help of Simon Brandhof and Hervé Boutemy the project got opened up, first Simon helped giving JavaNCSS an all around infrastructure (at, which also hosts the JRuby, Jetty, and Groovy projects), with mailing lists, a public bug tracking system, and a source code repository that allows multiple people to work in parallel on the software. Then Hervé worked on the code to bring it into the Maven world, allowing other people and projects to include and invoke JavaNCSS easily through this popular build infrastructure.

Both changes had the effect that we got a lot more input from the user community with explicit error reports AND contributed code solutions! Over the years I had always gotten individual error reports and particular fixes, but this had all been hidden for the other users before a release and notably a bottleneck had been that changes to the Java grammars are very very tricky and time consuming without the experience. Now we got important and difficult grammar fixes contributed by Sébastien Reynaud. Freddy Mallet even made a prototype of a whole new architecture and grammar system based on the visitor pattern.

Yesterday we released the third version since these changes took place, but it has been the first one where all code changes have been done by Hervé (including test cases) with major bug fixes supplied by Sébastien!

Happy to see JavaNCSS opening up and to get a life of its own, thanks to all the people now and over the years who have given it their support...


Unknown said...

Hi There. I have been looking at JavaNCSS and I must say its a nice piece of work you guys have done there. I see that there has not been much of activity on this since late 2009. Is this not being developed anymore? What are the future plans? Are you gonna be adding more OO Metrics to this tool?

Virgo47 said...

We're using JavaNCSS transitionally through Cobertura and I recently hit quite a major problem that causes fails of the build on our Jenkins/Sonar infrastructure:
As I see no activity from 2009 I'd like to ask for any strategy advice. I see also some request for Java 7 support, soon Java 8 is here... should we still use JavaNCSS or should we migrate?
Thank you

Clemens Lee said...

Hi, I am glad JavaNCSS has been in steady use despite no further updates in recent years. To support Java 7 a new JavaCC Java 7 grammar is needed first (or some move to ANTLR or what other parser generator is out there). I have found some discussion on the JavaCC users mailing list, but nothing to download yet. If someone likes to dig into it, let me know. Personally I have moved to Ruby a while back ago, so if a JavaNCSS user and Java coder wants to jump into the fold, also let me know and I am happy to guide around. Thanks anyway for your usage so far!