Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.
Comment: Add site URLs

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.

...

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:

Code Block
mvn -PPrelease release 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.

...

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.