What is XRadar ?

XRadar is an open extensible code report tool currently supporting all Java based systems. The batch-processing framework produces HTML/SVG reports of the systems current state and the development over time - all presented in sexy tables and graphs. It gets results from several brilliant open source projects and a couple of in house grown projects and presents the results as massive unified html/svg reports. The architecture is based on java, xml and xsl. For now, it only supports Java, but there are plans to produce plug ins for other leading languages.

See the short presentation below for more details.

News: XRadar 1.1.2 is released !

A small maintenace release. Please see changelog.

News: XRadar 1.1.1 is released !

First maintenance release of the 1.1.x branches has been released. Please see changelog for more details.

This release has been successfully testing the following environement:

  • On Windows :
    1. - Ant 1.7.1 with Java 6
    2. - Ant 1.7.1 with Java 5*
  • On Linux :
    1. - Ant 1.7.1 with Java 5*
    2. - Ant 1.7.1 with Java 6
    3. - Ant 1.6.5 with Java 6
    4. - Ant 1.6.5 with Java 5*

When running XRadar with Java 5, it requires an internet connection. If you are accessing internet with a proxy, you need to set the Java proxy parameters in the ANT_OPTS variable:

$ export ANT_OPTS="-Dhttp.proxyHost=proxyhostURL -Dhttp.proxyPort=proxyPortNumber" (linux)
           

or

$ set ANT_OPTS=-Dhttp.proxyHost=proxyhostURL -Dhttp.proxyPort=proxyPortNumber (windows)
           

News: XRadar 1.1 is released !

New features and bugfixes

This new version comes with a lot of new features and bug fixes:

  • Offline support (through the use of an XML Catalog), therefore a new Ant attribute (online=(true/false) has been added).
  • Some bugfixes about links (now xradar generate a site without full filepath name) ;
  • Findbugs support ! Thanks to Ernesto Botella Vélez and David Stockar ;
  • A new command line interface for a standalone usage of XRadar, designed by Zahir Nuckchady ;
  • Switch graph colors of the dynamic analysis to black (some browser didn't display thoses colored lines !)
  • Emma support (as a rather good alternative to Cobertura) ! Thanks to Bert Kandert now XRadar can uses Cobertura or Emma for its unit test coverage metric tools, (also note that Emma does have its own Maven Plugin);
  • PMD, CoberturaCheckstyle, Ckjm and JavaNCSS udpated to their lastest version.
  • Adding some appropriate "closing files" code in the statics, thanks to Dimitris report, and test.
  • Adding support for cloc, thanks to David Stockar !
  • A new cool API that allows you, using XPath, to query the results produced by XRadar, and if you want, to have your build failed. This new API is a prerequisite to an Hudson integration.

As XRadar uses a rather complex set of technologies, mixing Ant, XSLT/XML, and Java code, we run into some issues regarding use of XML Catalog, filename and file path and character set encoding depending on which plateform (OS + Java + Ant) we where running. Therefore, we check that the testproject on several plateform, please check the page on supported plateform on our wiki.

If you do run XRadar successfully on other plateform, please let us know !

performances

Another major fix of this new version is performance related, the previous release, which introduced a new way of packaging XRadar (as one jar, rather than a set of files) has two issues when it came to analyse "large project" (around 1000 classes):

  • As XML files becomes as large, you may run out of memory ;
  • DTM id is limited in Xalan 2.7.0 (which is shipped in JVM) leading to the 'No More DTM' issue.

On memory usage issue matter, we refactored XRadar to use files (and InputStream) rather than String object. Those changes lead to a far less memory hungrier XRadar. The following memory usage graphics (displayed by GCViewer) display the memory consumption of xradar running with 1Go memory an audit over the Apache Project QPid, which encompass about 1000 classes:


Community work

On more personnal note, a great thanks to everyone (especially Ernesto Botella Vélez for his testing) that contribute to XRadar since 1.0 as most of the news features came from this real community work.

Test it quickly !

First, you can go to the Test Report for a teaser. To see the graphics, note that you need a SVG viewer in your browser (Firefox comes with it, IE requires a plugin by Adobe). XRadar downloads can be found under file releases under the sourceforge project page.

To actually run this demo on your computer, it's pretty easy :

  1. Download the XRadar and unzip ;
  2. Use your terminal/dos interpreter to get into the 'testproject' directory ;
  3. Run the following command: $ ant -lib lib/junit-*.jar
  4. Once Ant has finished sucessfully to run XRadar, use your web browser to display the index.html file of the 'release4/docs/' from the testproject.
  5. This first run did not include any test coverage tools, nor unit tests metrics, you can now rerun it to include either Emma or Cobertura: $ ant -Dinclude.junit=true -Dinclude.emma=true -lib lib/junit*.jar all or $ ant -Dinclude.junit=true -Dinclude.cobertura=true -lib lib/junit*.jar all
  6. As a bonus, if you have 'perl' properly set up on your computer, you can add metrics from 'cloc': $ ant -Dcloc.enabled=true -lib lib/junit*.jar all

You do need to set up both a JDK (Java Run Time, plus Java Compiler) and the Ant tools, prior to running XRadar. Note that you can also run it using Maven 2 (instructions on the maven plugin page).

XRadar, a short presentation

An example of the spider graph

XRadar was build to solve the needs of a large reengineering initiative. Hence, reports and results presented are based on real requirements - likely to match needs in your organisation as well. An important design requirement was that all stakeholders should get their preferred view of the system : managers, architects and developers. We believe they all deserve an ownership and understanding of the systems quality and development. Hence you can navigate from abstract system quality representations, through modules, packages down through classes to the source and javadoc - everything is integrated.

By default, XRadar gives measurements on standard software metrics such as package metrics and dependencies, code size and complexity, code duplications, coding violations and code-style violations. Data from unit test metrics and code coverage are also integrated, but must be obtained running the test suites on the system while doing monitoring. On the left, you can see a typical view in XRadar : one package is compared to all the other packages in the system on typical metrics in a spider graph.

Interested?! Go to the sourceforge page link in the top left corner for downloading. Installation instructions are given under "Downloading and Configuration". If you want to see the XRadar on a very simple project, go to Example analysis. You need an svg plugin in your browser to see the images. In the sections below some deeper descriptions of the XRadar are shown.