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 Sonar 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 :
All other technologies are deprecated or forbidden (XStream, DOM4J, JDOM, ...)
Logging
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.