Skip to end of metadata
Go to start of metadata

Adding a new library must be submitted for discussions. We should avoid having multiple libs for the same need.

This white-list of libraries relates to the internal dependencies of SonarQube but not to plugins.

Java

Unit Tests

  • JUnit 4
  • FEST Assert, heavily recommended for replacing Hamcrest matchers
  • Mockito
  • XMLUnit for comparing XML documents
  • DBUnit
  • SubEtha SMTP

Utilities

  • Guava. Warning : google-collections must be excluded from transitive dependencies
  • Commons Lang. Note : pending experiments to move to Guava.
  • Commons IO 2.2. Version 2.3 is not accepted because it does not support Java 5. Note : we're doing some experiments to move to Guava.
  • Commons Codec, for example for Base64 encoding
  • Freemarker for templating
  • json-simple
Deprecated
  • Commons Collections is deprecated and replaced by Guava.
  • Commons BeanUtils is not recommended
  • Commons Configuration is replaced by org.sonar.api.config.Settings

Database

  • MyBatis
  • Apache Commons DBCP

Hibernate is deprecated and must not be used in new developments.

XML

Writing and reading XML documents should be implemented with Stax :

  • Staxmate
  • Woodstox parser

All other technologies are deprecated or forbidden (XStream, DOM4J, JDOM, ...)

Logging

  • SLF4J
  • Logback

All other libraries must be excluded from transitive dependencies (log4j, commons-logging) and replaced by jcl-over-slf4j/log4j-over-slf4j

Javascript

  • Prototype 1.7
  • Scriptaculous 1.9.0, provided under the MIT License.
  • Protovis 3.3, a visualization toolkit using SVG. Does not depend on Prototype. Provided under the BSD License.
  • Protovis MSIE, a compatibility layer for Protovis that adds support for VML compatible browsers (IE7 and IE8)

Should be dropped soon :

  • Tablekit 1.2.1, sortable HTML tables using Prototype, provided under the MIT License.
  • Prototip 1.0.2 to create nice tooltips. It depends on Prototype.
Labels
  • None