Site Reports

Maven Site URLs

https://shibboleth.net/sites/release/

https://shibboleth.net/sites/snapshot/

Maven Site Reports

The parent POM shared by all the Java-based project defines a set of reports that can be generated.

Generating and Locating the Reports

In order to generate the reports run the following in either the project directory, for monolithic projects, or the *-parent directory, for multi-module projects:

mvn -Prelease site

The results are then located in target/site directory. You can use the -DskipTests option when executing the command to skip unit tests if you prefer.

Available Reports

Checkstyle

This report uses the Checkstyle tool to check the code's compliance with the Shibboleth project's style guidelines.  The style settings used are always those specified by the "trunk" of the appropriate (V2 or V3) parent POM, not necessarily those specified in the parent POM that the Java project is locked to.

Java Cross Reference

This report generates an HTML-ized view of the Java code allowing URLs that reference particular lines, classes, fields, and methods. For multi-module projects you can also find an aggregation of all the per-module reports.

Most of the following reports build on this one.

Javadoc

This report generates the standard HTML Javadoc files. For multi-module projects you can also find an aggregation of all the per-module reports.

Cobertura Unit Test Coverage

This report provides information on what code has been exercised by the unit tests. It will show how many times each line has been hit and what lines/methods/classes haven't been covered. Such information is useful for ensuring that at least a minimum amount of unit testing is done.

There are a couple things to note, however:

  • Just because a some code has been executed during a unit test does not it isn't buggy. The test may not have covered all possible types of input. Hopefully this is obvious, but for any pointy-haired boss reading this we state this explicitly.

  • The coverage reports do not really understand certain language constructors. This includes assert statements and the private constructors used in our support classes.

Java NCSS Statistics

This report provides metrics about the source code. This includes things like number of lines of code and comments and cyclomatic complexity. The former is useful for ensuring that all our classes/methods have javadoc. The ratio between the two should be about 1:1, if the amount of javadoc lines is significantly less then the javadoc probably isn't descriptive enough to be useful. The later is useful flagging potentially overly-complicated code. Our checkstyle configuration within Eclipse will also flag this.