<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" media="screen" href="/~d/styles/rss2full.xsl"?><?xml-stylesheet type="text/css" media="screen" href="http://feeds.feedburner.com/~d/styles/itemcontent.css"?><rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:sy="http://purl.org/rss/1.0/modules/syndication/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" version="2.0">

<channel>
	<title>Sonar</title>
	
	<link>http://www.sonarsource.org</link>
	<description>Open Source Quality Management Platform</description>
	<lastBuildDate>Wed, 01 Sep 2010 19:24:56 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.8.6</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" type="application/rss+xml" href="http://feeds.feedburner.com/Sonar" /><feedburner:info uri="sonar" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com/" /><feedburner:emailServiceId>Sonar</feedburner:emailServiceId><feedburner:feedburnerHostname>http://feedburner.google.com</feedburner:feedburnerHostname><item>
		<title>Sonar in the news</title>
		<link>http://feedproxy.google.com/~r/Sonar/~3/f7QA6T5cLcQ/</link>
		<comments>http://www.sonarsource.org/sonar-in-the-news-7/#comments</comments>
		<pubDate>Wed, 01 Sep 2010 19:24:56 +0000</pubDate>
		<dc:creator>Olivier Gaudin</dc:creator>
				<category><![CDATA[blog]]></category>
		<category><![CDATA[news]]></category>

		<guid isPermaLink="false">http://www.sonarsource.org/?p=4013</guid>
		<description><![CDATA[Welcome to the roundup of blog posts and pages that mentioned Sonar last month&#8230;
5 Java powered open source tools for your team
By Alex Collins, 27 August 2010
If you&#8217;re a Java shop and want to ensure you can support your team&#8217;s toolset, here are some pointers for the must-have tools we modern developers use day-to-day.
Killer tool: [...]]]></description>
			<content:encoded><![CDATA[<p>Welcome to the roundup of blog posts and pages that mentioned Sonar last month&#8230;<br/><span id="more-4013"></span></p>
<p><a href="http://java.dzone.com/articles/5-java-powered-open-source-tools-team">5 Java powered open source tools for your team</a><br />
By Alex Collins, 27 August 2010<br />
<quote>If you&#8217;re a Java shop and want to ensure you can support your team&#8217;s toolset, here are some pointers for the must-have tools we modern developers use day-to-day.</quote></p>
<p><a href="http://ev9d9.blogspot.com/2010/08/killer-tool-sonar.html">Killer tool: Sonar</a><br />
By Erwin Vervaet, 27 August 2010<br />
<quote> Today a colleague at work showed Sonar to me, and I must say that I was really impressed! Sonar is an open source code quality analysis tool that uses a number of popular Java code analyzers like PMD, CheckStyle, FindBugs and Cobertura under the hood, &#8230;</quote></p>
<p><a href="http://tech.joshuacummings.com/">Cross-referencing plugins in Sonar 2.2</a><br />
By Josh Cummings, 19 August 2010<br />
<quote> Formerly, we had three Sonar plugins, two &#8220;mavenly&#8221; dependent on the other. The parent plugin held the common code for uploading non-Java files into Sonar for reporting. The other two took care of analyzing xml and css, respectively, and tying violations to those files. </quote></p>
<p><a href="http://tech.joshuacummings.com/2010/08/integration-tests-in-sonar.html">Integration Tests in Sonar</a><br />
By Josh Cummings, 19 August 2010<br />
<quote> Integration tests are another important aspect of analyzing a project&#8217;s overall health that Sonar does not yet support out of the box. To get this functionality, you&#8217;ll need to build a couple of Sonar plugins (or try using the ones that I built) that will instrument your integration test code, run the integration tests, and collect the integration test results as well as the new coverage data. </quote></p>
<p><a href="http://www.infoq.com/news/2010/08/sonarj-6.0">Architecture Analysis Tool SonarJ 6.0 Supports Structural Debt Index and Quality Model</a><br />
By Srini Penchikala, 16 August 2010<br />
<quote>The latest version of software architecture analysis and quality governance tool SonarJ supports structural debt index metrics and architecture quality model. The company behind the product, hello2morrow, last month announced the release of version 6.0 of the tool.</quote></p>
<p><a href="http://www.sonatype.com/people/2010/08/maven-3-and-sonar/">Maven 3 and Sonar</a><br />
By Anders Hammar, 16 August 2010<br />
<quote>Another step towards a final release of Maven 3.0 was made the other day when version 3.0-beta-2 was released. I’ve been using Maven 3 since its alpha days, and despite the alpha/beta moniker, I find it to be superior to any Maven 2.x version. If you are starting a new project, I strongly recommend using Maven 3.</quote></p>
<p><a href="http://tech.joshuacummings.com/2010/08/reporting-more-than-java-code-in-sonar.html">Reporting more than Java code in Sonar (Part I)</a><br />
By Josh Cummings, 3 August 2010<br />
<quote>Of course, anyone that has done static analysis on their project in the past has found certain bad practices that are out of their tools reach to spot. Some examples are&#8230;</quote></p>
<img src="http://feeds.feedburner.com/~r/Sonar/~4/f7QA6T5cLcQ" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.sonarsource.org/sonar-in-the-news-7/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://www.sonarsource.org/sonar-in-the-news-7/</feedburner:origLink></item>
		<item>
		<title>Pick your code coverage tool in Sonar 2.2</title>
		<link>http://feedproxy.google.com/~r/Sonar/~3/apRw3WPUDrs/</link>
		<comments>http://www.sonarsource.org/pick-your-code-coverage-tool-in-sonar-2-2/#comments</comments>
		<pubDate>Thu, 05 Aug 2010 10:59:45 +0000</pubDate>
		<dc:creator>Evgeny Mandrikov</dc:creator>
				<category><![CDATA[blog]]></category>
		<category><![CDATA[benchmark]]></category>
		<category><![CDATA[coverage]]></category>
		<category><![CDATA[plugins]]></category>

		<guid isPermaLink="false">http://www.sonarsource.org/?p=3914</guid>
		<description><![CDATA[By default, Sonar embarks two tools to calculate code coverage by unit tests on java projects : Cobertura and Clover. But last week, we also released plugins for two other coverage tools : Emma and JaCoCo. Both plugins are available in the Sonar Plugin Library. So I thought it would be a good time to [...]]]></description>
			<content:encoded><![CDATA[<p>By default, Sonar embarks two tools to calculate code coverage by unit tests on java projects : Cobertura and Clover. But last week, we also released plugins for two other coverage tools : <a href="http://docs.codehaus.org/display/SONAR/Sonar+Emma+Plugin">Emma</a> and <a href="http://docs.codehaus.org/display/SONAR/JaCoCo+Plugin">JaCoCo</a>. Both plugins are available in the<a href="http://sonar-plugins.codehaus.org/"> Sonar Plugin Library.</a> So I thought it would be a good time to compare all of them and share the results with the community.<br />
<span id="more-3914"></span></p>
<table border="2">
<tr>
<th></th>
<th>Clover</th>
<th>Cobertura</th>
<th>Emma</th>
<th>JaCoCo</th>
</tr>
<tr>
<th>License</th>
<td>Commercial</td>
<td>GNU GPL</td>
<td>CPL</td>
<td>EPL</td>
</tr>
<tr>
<th>Latest stable release</th>
<td>3.0.2<br />
(13 April 2010)</td>
<td>1.9.4.1<br />
(3 March 2010)</td>
<td>2.0.5312<br />
(13 June 2005)</td>
<td>0.4.0<br />
(4 June 2010)</td>
</tr>
<tr>
<th>Type of instrumentation</th>
<td>Source code instrumentation</td>
<td>Offline bytecode instrumentation</td>
<td>Offline bytecode instrumentation</td>
<td>On-The-Fly bytecode instrumentation</td>
</tr>
<tr>
<th>Java</th>
<td>1.4+</td>
<td>1.3+</td>
<td>1.2+</td>
<td>1.5+</td>
</tr>
<tr>
<th>Line hits</th>
<td>yes</td>
<td>yes</td>
<td>yes</td>
<td>yes</td>
</tr>
<tr>
<th>Branch coverage</th>
<td>yes</td>
<td>yes</td>
<td>no</td>
<td>no (but planned)</td>
</tr>
<tr>
<th>Process within Sonar</th>
<td>Instrumentation<br />
Compilation<br />
Execution<br />
Report generation<br />
Report parsing</td>
<td>Instrumentation<br />
Execution<br />
Report generation<br />
Report parsing</td>
<td>Instrumentation<br />
Execution<br />
Data reading</td>
<td>Execution<br />
Data reading</td>
</tr>
</table>
<p></p>
<p>To compare results and performance of those tools I&#8217;ve used following projects:</p>
<table>
<tr>
<th></th>
<th>Lines</th>
<th>Statements</th>
<th>Lines of code</th>
<th>Classes</th>
<th>Tests</th>
</tr>
<tr>
<th>Sonar LDAP Plugin 0.1</th>
<td>925</td>
<td>201</td>
<td>459</td>
<td>8</td>
<td>9</td>
</tr>
<tr>
<th>Struts 1.3.9</th>
<td>114621</td>
<td>21896</td>
<td>50080</td>
<td>518</td>
<td>323</td>
</tr>
<tr>
<th>Commons Collections 3.3RC1</th>
<td>64447</td>
<td>12402</td>
<td>26558</td>
<td>412</td>
<td>13023</td>
</tr>
</table>
<p></p>
<p>And here is code coverage results:</p>
<table>
<tr>
<th></th>
<th>Clover 2.6.3</th>
<th>Clover 3.0.2</th>
<th>Cobertura 1.9.4.1</th>
<th>Emma 2.0.5312</th>
<th>JaCoCo 0.4.0</th>
</tr>
<tr>
<td colspan="6"><i>Sonar LDAP Plugin 0.1</i></td>
</tr>
<tr>
<th>Line coverage</th>
<td>91.9</td>
<td>91.9</td>
<td>88.8</td>
<td>86.7</td>
<td>88.0</td>
</tr>
<tr>
<th>Branch coverage</th>
<td>73.4</td>
<td>73.4</td>
<td>75.0</td>
<td>N/A</td>
<td>N/A</td>
</tr>
<tr>
<td colspan="6"><i>Struts 1.3.9</i></td>
</tr>
<tr>
<th>Line coverage</th>
<td>15.7</td>
<td>15.7</td>
<td>15.4</td>
<td>14.8</td>
<td>15.4</td>
</tr>
<tr>
<th>Branch coverage</th>
<td>14.6</td>
<td>14.6</td>
<td>12.8</td>
<td>N/A</td>
<td>N/A</td>
</tr>
<tr>
<td colspan="6"><i>Commons Collections 3.3RC1</i></td>
</tr>
<tr>
<th>Line coverage</th>
<td>82.5</td>
<td>82.9</td>
<td>82.1</td>
<td>81.1</td>
<td>82.4</td>
</tr>
<tr>
<th>Branch coverage</th>
<td>78.7</td>
<td>78.8</td>
<td>78.6</td>
<td>N/A</td>
<td>N/A</td>
</tr>
</table>
<p></p>
<p>And finally I&#8217;ve made three measures of time of Sonar analysis for each combination of project and tool with clean Sonar database (which means 54 builds on my Intel(R) Core(TM) i3 CPU M 330 @ 2.13GHz). For this I&#8217;ve used Maven 2.2.1 with Java 1.6.0_20 and Sonar 2.2.<br />
<img src="http://www.sonarsource.org/wp-content/uploads/2010/07/coverage-tools-performance.png" alt="coverage-tools-performance" width="650" class="aligncenter" /></p>
<img src="http://feeds.feedburner.com/~r/Sonar/~4/apRw3WPUDrs" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.sonarsource.org/pick-your-code-coverage-tool-in-sonar-2-2/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://www.sonarsource.org/pick-your-code-coverage-tool-in-sonar-2-2/</feedburner:origLink></item>
		<item>
		<title>Sonar in the news</title>
		<link>http://feedproxy.google.com/~r/Sonar/~3/Ey8VaGsdhhA/</link>
		<comments>http://www.sonarsource.org/sonar-in-the-news-6/#comments</comments>
		<pubDate>Mon, 02 Aug 2010 13:47:24 +0000</pubDate>
		<dc:creator>Olivier Gaudin</dc:creator>
				<category><![CDATA[blog]]></category>
		<category><![CDATA[news]]></category>

		<guid isPermaLink="false">http://www.sonarsource.org/?p=4004</guid>
		<description><![CDATA[Welcome to the roundup of blog posts and pages that mentioned Sonar last month&#8230;
Jouez les Docteurs Love, apprenez à nettoyer du vieux code
By Le Touilleur Express, 28 July 2010
La vie d’un développeur ce n’est pas toujours de travailler à la création d’une nouvelle application. Au contraire nous serons souvent amené à faire ce que j’appelle [...]]]></description>
			<content:encoded><![CDATA[<p>Welcome to the roundup of blog posts and pages that mentioned Sonar last month&#8230;<br/><span id="more-4004"></span></p>
<p><a href="http://www.touilleur-express.fr/2010/07/28/jouez-les-docteurs-love-apprenez-a-nettoyer-du-vieux-code/">Jouez les Docteurs Love, apprenez à nettoyer du vieux code</a><br />
By Le Touilleur Express, 28 July 2010<br />
<quote>La vie d’un développeur ce n’est pas toujours de travailler à la création d’une nouvelle application. Au contraire nous serons souvent amené à faire ce que j’appelle de l’Archéologie. Cela veut dire entrer dans du code écrit il y a quelques années, être capable de faire fonctionner une vieille application, et surtout, être capable de la moderniser sans l’abimer. J’ai regroupé quelques outils et quelques pratiques apprises ces dernières années, mais n’hésitez pas à compléter.</quote></p>
<p><a href="http://www.clever-age.com/veille/blog/zoom-sur-sonar-pour-automatiser-la-verification-de-la-qualite-du-code-java.html"> Zoom sur&#8230; sonar, pour automatiser la vérification de la qualité du code java</a><br />
By Guillaume Saint-Raymond, 28 July 2010<br />
<quote> La qualité du code est souvent le parent pauvre des projets en entreprise et, pourtant, celle-ci a un impact sur la productivité. Sonar est le tableau de bord permettant de suivre l’évolution de la qualité des sources au fur et à mesure de la vie d’un projet.</quote></p>
<p><a href="http://www.tampajug.org/wordpress/?p=164">Maintaining High Quality Code with Sonar</a><br />
By RJ Salicco, 27 July 2010<br />
<quote>Is your app so brittle that if you stare at it for too long that it may break causing an all weekend outage?<br />
Does your app contain smelly dead code?<br />
Are your code review sessions a waste of your time?</quote></p>
<p><a href="http://i-proving.ca/space/Technologies/Mobile+Development/Android/Android+and+Sonar">Android and Sonar</a><br />
By Brett Dubroy, 21 July 2010<br />
<quote> Continuing from the Android and Continuous Integration note, we&#8217;d also like to hook up our metrics gathering tool (Sonar &#8211; http://www.sonarsource.org/) into our CI builds of our android applications on Hudson.</quote></p>
<p><a href="http://blog.versionone.com/blog/versionone/0/0/technical-debt-and-the-boogie-monster">Technical Debt and the Boogie Monster</a><br />
By Joel Tosi, 19 July 2010<br />
<quote>Growing up as the youngest child meant that my closest brother (6 years my elder) terrorized me with threats of the boogie man coming to get me.  It was a rather effective tactic &#8211; how to deal with the boogie man wasn&#8217;t well known, and the internet was just a glimmer in Al Gore&#8217;s eye. </quote></p>
<img src="http://feeds.feedburner.com/~r/Sonar/~4/Ey8VaGsdhhA" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.sonarsource.org/sonar-in-the-news-6/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://www.sonarsource.org/sonar-in-the-news-6/</feedburner:origLink></item>
		<item>
		<title>Sonar 2.2 in screenshots</title>
		<link>http://feedproxy.google.com/~r/Sonar/~3/p2L6I7kqrNc/</link>
		<comments>http://www.sonarsource.org/sonar-2-2-in-screenshots/#comments</comments>
		<pubDate>Wed, 21 Jul 2010 08:44:45 +0000</pubDate>
		<dc:creator>Simon Brandhof</dc:creator>
				<category><![CDATA[blog]]></category>
		<category><![CDATA[release]]></category>
		<category><![CDATA[screenshots]]></category>

		<guid isPermaLink="false">http://www.sonarsource.org/?p=3875</guid>
		<description><![CDATA[The Sonar team is proud to announce the release of Sonar 2.2. As usual, this new release includes numerous improvements, bug-fixes and also brand new features that we believe are worth stopping your daily work for a few minutes to review. Those features can be divided into three categories :

Favourites resources
Filters homepage
Plugin classloaders


Favourites
When you are [...]]]></description>
			<content:encoded><![CDATA[<p>The Sonar team is proud to announce the release of Sonar 2.2. As usual, this new release includes numerous improvements, bug-fixes and also brand new features that we believe are worth stopping your daily work for a few minutes to review. Those features can be divided into three categories :</p>
<ul>
<li>Favourites resources</li>
<li>Filters homepage</li>
<li>Plugin classloaders</li>
</ul>
<p><span id="more-3875"></span></p>
<h2>Favourites</h2>
<p>When you are working in a company that makes an intensive usage of Sonar, the project(s) you want to monitor can be quickly lost among hundred of others projects. Favourites makes it possible to flag those projects but also modules, packages and files. You then get quickly an overview of those resources at any time.</p>
<p>To use this feature, the user must be logged into Sonar. Resources can then be flagged by clicking on the star icon available in the &#8220;Dashboard&#8221;, &#8220;Components&#8221; and &#8220;Filters&#8221; pages :</p>
<p><img src="http://www.sonarsource.org/wp-content/uploads/2010/07/sonar_star_icon.jpg" alt="sonar_star_icon" title="sonar_star_icon" width="556" height="158" class="alignnone size-full wp-image-3880" /></p>
<p>Once a resource is flagged as a favourite, it is automatically displayed in the &#8220;My Favourites&#8221; tab in the homepage  :<br />
<img src="http://www.sonarsource.org/wp-content/uploads/2010/07/sonar_favourites.jpg" alt="sonar_favourites" title="sonar_favourites" width="712" height="244" class="alignnone size-full wp-image-3882" /></p>
<h2>Filters</h2>
<p>The Sonar homepage had several drawbacks when Sonar was intensively used  :</p>
<ul>
<li>Displaying the page took too much time with more than 500 projects</li>
<li>Only root projects were displayed</li>
<li>There was no way to quickly get a list of resources according to some criteria. For instance, the list of projects whose technical debt ratio is greater than 10%, the list of Files whose complexity is greater than 300&#8230; </li>
<li>The Treemap was too small and so not usable with many projects</li>
<li>There was no way for a user to customize the homepage</li>
</ul>
<p>The new &#8220;Filters&#8221; page allows to overcome those limitations :<br />
<img src="http://www.sonarsource.org/wp-content/uploads/2010/07/sonar_filter_tabs.jpg" alt="sonar_filter_tabs" title="sonar_filter_tabs" width="557" height="138" class="alignnone size-full wp-image-3890" /></p>
<p>Of course, this feature comes along with configuration capabilities :<br />
<img src="http://www.sonarsource.org/wp-content/uploads/2010/07/sonar_filters_admin.jpg" alt="sonar_filters_admin" title="sonar_filters_admin" width="577" height="303" class="alignnone size-full wp-image-3888" /></p>
<h2>Plugin classloaders</h2>
<p>Plugins are now executed in independent classloaders. The main advantage is that plugins can declare and embed their own dependencies instead of being limited to libraries provided by Sonar. As a direct consequence, Sonar no longer depends on Maven Checkstyle and PMD plugins but now directly embed Checkstyle and PMD libraries.</p>
<p>To find out more about Sonar 2.2 and the 63 issues that have been fixed, you can read the <a href="http://www.sonarsource.org/downloads/#2.2">release notes</a> or maybe you prefer to <a href="http://dist.sonar.codehaus.org/sonar-2.2.zip">download it</a> to give a ride. Have fun !</p>
<img src="http://feeds.feedburner.com/~r/Sonar/~4/p2L6I7kqrNc" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.sonarsource.org/sonar-2-2-in-screenshots/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		<feedburner:origLink>http://www.sonarsource.org/sonar-2-2-in-screenshots/</feedburner:origLink></item>
		<item>
		<title>Sonar in the news</title>
		<link>http://feedproxy.google.com/~r/Sonar/~3/21yF5rVX8Uk/</link>
		<comments>http://www.sonarsource.org/sonar-in-the-news-5/#comments</comments>
		<pubDate>Thu, 01 Jul 2010 13:52:56 +0000</pubDate>
		<dc:creator>Olivier Gaudin</dc:creator>
				<category><![CDATA[blog]]></category>
		<category><![CDATA[news]]></category>

		<guid isPermaLink="false">http://www.sonarsource.org/?p=3863</guid>
		<description><![CDATA[Welcome to the roundup of blog posts and pages that mentioned Sonar last month&#8230;
Use Sonar to Develop a Quality Feedback Loop into the Build Cycle

By Brian Chaplin on ServerSide, 29 june 2010
 The number of business defects in an application tracks with the number of technical defects.  More technical defects normally means more business [...]]]></description>
			<content:encoded><![CDATA[<p>Welcome to the roundup of blog posts and pages that mentioned Sonar last month&#8230;<br/><span id="more-3863"></span></p>
<p><a href="http://www.theserverside.com/tutorial/Use-Sonar-to-Develop-a-Quality-Feedback-Loop-into-the-Build-Cycle">Use Sonar to Develop a Quality Feedback Loop into the Build Cycle<br />
</a><br />
By Brian Chaplin on ServerSide, 29 june 2010<br />
<quote> The number of business defects in an application tracks with the number of technical defects.  More technical defects normally means more business defects.  This means that technical defects can be used as a metric for the overall quality of a development approach.  Sonar is a great dashboard for tracking code quality at the project and file level.  But how can it be used to as part of the daily workflow? </quote></p>
<p><a href="http://chariotsolutions.blogspot.com/2010/06/making-most-of-maven-nexus-hudson-sonar.html">Making the Most of Maven: Nexus, Hudson, Sonar</a><br />
By Joel Confino, 15 June 2010<br />
<quote>Maven is a build tool. I like Maven because it supports dependency management, consistent builds and a modular code base. But if you are just using Maven without using Nexus, Hudson, Sonar you are really missing out on a lot of goodness. Nexus is a Maven repository manager, Hudson is a CI server, and Sonar is a code metrics server. </quote></p>
<p><a href="http://godin.net.ru/2010/06/07/google-summer-of-code-2010-with-sonar-team-first-steps/">Google Summer of Code 2010 with Sonar team – first steps</a><br />
By Evgeny Mandrikov, 7 June 2010<br />
<quote>As I promised in previous post, that progress of my work on Google Summer of Code 2010 would be available publicly – here is a brief overview of what was done for Sonar IDE project, what we have now and what expected in nearest future.</quote></p>
<p><a href="http://www.sickenger.com/2010/06/the-code-quality-game/">The Code Quality game</a><br />
By Ricki Sickenger, 4 June 2010<br />
<quote>Most programmers think they can recognize good code and a lot of them think they produce good code, but the sad truth is that not a lot of programmers actually do. Between time constraints, feature creep, and laziness, programmers hardly ever end up producing super quality code.</quote></p>
<p><a href="http://blog.namics.com/2010/06/qa-code-metriken.html">Code-Metriken auf dem Prüfstand</a><br />
By Sandro Ruch, 4 June 2010<br />
<quote>Wie lässt sich die Qualität von Code bestimmen? Welche Kriterien sollen dafür hinzugezogen werden? Eine mögliche Antwort könnte sein: &#8220;So gut wie die Abnahme-Testresultate des Kunden&#8221;&#8230; </quote></p>
<p><a href="http://www.olivergierke.de/wordpress/2010/06/changing-a-projects-artifact-id-in-sonar/">Changing a project’s artifact id in Sonar</a><br />
By Oliver Gierke, 2 Jun 2010<br />
<quote>Sonar is a great tool to take care of code quality in your software projects. I use it heavily to monitor the open source projects I am involved with. When working on getting Hades published into Maven central I had to polish it’s pom.xml and felt the need to align the parent project’s artifact to our chosen OSGi compatible package notation for artifacts</quote></p>
<p><a href="http://www.infoq.com/news/2010/06/sonar-2.1">Code Quality Management Tool Sonar Provides Design and Architecture Metrics</a><br />
By Srini Penchikala on InfoQ, 1 June 2010<br />
<quote>The new version of open source code quality management tool Sonar provides design and architecture metrics. Sonar 2.0 introduced the analysis of design, architecture and object-oriented metrics for Java applications. And Sonar 2.1 version, which was released recently, supports the detection of unused methods.</quote></p>
<img src="http://feeds.feedburner.com/~r/Sonar/~4/21yF5rVX8Uk" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.sonarsource.org/sonar-in-the-news-5/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		<feedburner:origLink>http://www.sonarsource.org/sonar-in-the-news-5/</feedburner:origLink></item>
		<item>
		<title>Continuous Inspection Practice Emerges with Sonar</title>
		<link>http://feedproxy.google.com/~r/Sonar/~3/osDFk2mBQmA/</link>
		<comments>http://www.sonarsource.org/continuous-inspection-practice-emerges-with-sonar/#comments</comments>
		<pubDate>Wed, 23 Jun 2010 09:40:34 +0000</pubDate>
		<dc:creator>Freddy Mallet</dc:creator>
				<category><![CDATA[blog]]></category>
		<category><![CDATA[continuous inspection]]></category>
		<category><![CDATA[continuous integration]]></category>

		<guid isPermaLink="false">http://www.sonarsource.org/?p=3765</guid>
		<description><![CDATA[It has now been more than ten years since Kent Beck and Martin Fowler started to talk about Continuous Integration. At that time, it was hard to believe this practice would have such an impact on our daily work and would be so much adopted in the world of software development. Today, we at SonarSource [...]]]></description>
			<content:encoded><![CDATA[<p>It has now been more than ten years since <a href="http://en.wikipedia.org/wiki/Kent_Beck">Kent Beck</a> and <a href="http://en.wikipedia.org/wiki/Martin_Fowler">Martin Fowler</a> started to talk about <a href="http://www.martinfowler.com/articles/continuousIntegration.html">Continuous Integration</a>. At that time, it was hard to believe this practice would have such an impact on our daily work and would be so much adopted in the world of software development. Today, we at SonarSource but also in many places, can simply not imagine to go back and work without Continuous Integration.</p>
<p>Here is what can be read about Continuous Integration on Wikipedia :<br />
<quote>Continuous integration aims to improve the quality of software, and to reduce the time taken to deliver it, by replacing the traditional practice of applying quality control after completing all development.</quote></p>
<p>The ultimate goal of Continuous is to be able to fire any type of release at any time with minimal risk whether it is a Milestone, Release Candidate or GA : quality requirements become a must-have and no more a nice-to-have. Let&#8217;s review which requirements are correctly covered by continuous integration environments today :</p>
<ul>
<li>Anybody must be able to build the project from any place and at anytime.</li>
<li>Every Unit Tests must be executed during the Continuous Integration build.</li>
<li>Every Unit Tests must pass during the Continuous Integration build.</li>
<li>The output of the Continuous Integration build is a package ready to ship.</li>
<li>When one of the above requirement is violated nothing is more important for the team than fixing it.</li>
</ul>
<p>This is a really a good starting point but does not sound sufficient to talk about total quality . What&#8217;s about those other source code quality requirements ?</p>
<ul>
<li>Any new code should come with corresponding unit  tests (regardless of previous state in code coverage).</li>
<li>New methods must not have a complexity higher than a defined threshold.</li>
<li>No cycle between packages must be added.</li>
<li>No duplication blocks must be added.</li>
<li>No violation to coding standard must be added.</li>
<li>No call to deprecated methods should be added.</li>
<li>&#8230;</li>
</ul>
<p>More generally, those requirements are about keeping overall <a href="http://www.martinfowler.com/bliki/TechnicalDebt.html">technical debt</a> under control and only let it increase consciously (see the <a href="http://www.martinfowler.com/bliki/TechnicalDebtQuadrant.html">Technical Debt Quadrant</a>) : this is the concept of Continuous Inspection. This concept seems to have appeared around five years ago (see this <a href="http://www.ibm.com/developerworks/java/library/j-ap08016/index.html">IBM Article</a>) and has been recently described and defined (see <a href="http://refcardz.dzone.com/refcardz/continuous-integration-servers?oid=hom18527">DZone Refcards 87 about Continuous Integration and Continuous Inspection</a>, see book <a href="http://www.amazon.com/Continuous-Integration-Improving-Software-Reducing/dp/0321336380">&#8220;Continuous Integration : Improving Software Quality and Reducing Risk&#8221;</a> ) but is still an emerging concept as was Continuous Integration ten years ago. </p>
<p>Continuous Inspection requires a tool to automate data collection, to report on measures and to highlight hot spots and defects. <a href="http://www.sonarsource.org">Sonar</a> is currently the leading &#8220;all-in-one&#8221; Continuous Inspection engine. A Continuous Inspection engine can be seen as an <a href="http://www.xqa.com.ar/visualmanagement/tag/information-radiators/">Information Radiator</a> dedicated to make the source code quality information available at anytime to every stakeholder. Transparency is certainly one of the main reason why Open Source Software is most of the time of better quality than Close Source Software. A developer writing a new piece of code should always think about the next person/team who will maintain it : Continuous Inspection helps to never forget this golden rule.</p>
<p>But of course, Continuous Inspection only comes after Continuous Integration is solidly implemented : this is the next maturity level and this maturity level can be implemented with Sonar.</p>
<img src="http://feeds.feedburner.com/~r/Sonar/~4/osDFk2mBQmA" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.sonarsource.org/continuous-inspection-practice-emerges-with-sonar/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		<feedburner:origLink>http://www.sonarsource.org/continuous-inspection-practice-emerges-with-sonar/</feedburner:origLink></item>
		<item>
		<title>Eclipse Sonar Plugin 0.1 in screenshots</title>
		<link>http://feedproxy.google.com/~r/Sonar/~3/juUpDHWN8Q0/</link>
		<comments>http://www.sonarsource.org/eclipse-sonar-plugin-0-1-in-screenshots/#comments</comments>
		<pubDate>Mon, 07 Jun 2010 21:18:29 +0000</pubDate>
		<dc:creator>Evgeny Mandrikov</dc:creator>
				<category><![CDATA[blog]]></category>
		<category><![CDATA[plugins]]></category>
		<category><![CDATA[release]]></category>
		<category><![CDATA[screenshots]]></category>

		<guid isPermaLink="false">http://www.sonarsource.org/?p=3506</guid>
		<description><![CDATA[The Sonar Team is very proud to announce the availability of the first version of the Sonar Eclipse plugin. This plugin is part of the Sonar IDE Project. This first version comes just few a weeks after the release of the Sonar IntelliJ IDEA plugin. The project has 2 active contributors : Jérémie and myself.
The [...]]]></description>
			<content:encoded><![CDATA[<p>The Sonar Team is very proud to announce the availability of the first version of the Sonar Eclipse plugin. This plugin is part of the <a href="http://sonar-ide.codehaus.org/">Sonar IDE Project</a>. This first version comes just few a weeks after the <a href="http://www.sonarsource.org/intellij-idea-sonar-plugin-0-1-in-screenshots/">release of the Sonar IntelliJ IDEA plugin</a>. The project has 2 active contributors : <a href="http://printstacktrace.org/">Jérémie</a> and myself.</p>
<p>The work has been greatly facilitated by the good feedback we received from the Sonar community on the release candidate version. It is going to be followed by new ones in the upcoming weeks/months (see <a href="http://godin.net.ru/2010/04/27/my-proposal-for-google-summer-of-code-2010/">My proposal for GSoC (Google Summer of Code) 2010</a>). </p>
<p>This version 0.1 only displays violations. Duplicated blocks, code coverage and commented out lines of code will be added later. As for the Sonar IntelliJ IDEA plugin, source code is decorated on the fly with information provided by the Sonar web server.</p>
<p>As usual for releases, let’s go through screenshots to discover this new functionality and how it can be used in your daily work to track violations. Enjoy !<br />
<span id="more-3506"></span></p>
<h2>Configuration</h2>
<p>By default, the plugin tries to reach a local Sonar web server on port 9000 to get violations. But it is possible to define different and several Sonar web servers to use in the Eclipse global preferences :<br />
<img src="http://www.sonarsource.org/wp-content/uploads/2010/06/eclipse-plugin-global-configuration.png" width="600px"><br />
For instance, for Open Source projects available in Nemo, the configuration would be :<br />
<img src="http://www.sonarsource.org/wp-content/uploads/2010/06/eclipse-plugin-server-configuration.png" width="600px"></p>
<p>Once, the Sonar web server to be used has been configured, the next step is to activate the Sonar plugin on a given project. If you use <a href="http://m2eclipse.sonatype.org/">m2eclipse</a>, there is nothing to do as the groupId and artifactId of your project are automatically configured. Nevertheless, you may want to change the default Sonar server to use  :<br />
<img src="http://www.sonarsource.org/wp-content/uploads/2010/06/eclipse-plugin-project-configuration.png" width="600px"></p>
<h2>Source code decoration</h2>
<p>Then you just have to open the java file you want to work on and violations are displayed with markers (on the left-hand side) :<br />
<img src="http://www.sonarsource.org/wp-content/uploads/2010/06/eclipse-plugin-violation-in-editor.png" width="600px"></p>
<h2>Global source code Inspection</h2>
<p>To start hunting violations on the overall project, you can use the Problems View :<br />
<img src="http://www.sonarsource.org/wp-content/uploads/2010/06/eclipse-plugin-problems-view.png" width="600px"></p>
<h2>Go to Sonar</h2>
<p>At any time you can jump onto the Sonar Web dashboard directly from the IDE, to get information that is not yet available in the Sonar Eclipse plugin :<br />
<img src="http://www.sonarsource.org/wp-content/uploads/2010/06/eclipse-plugin-select-in-sonar.png" width="600px"></p>
<h2>Navigator</h2>
<p>Sonar Server Navigator allows you to browse all available projects in a specified Sonar server :<br />
<img src="http://www.sonarsource.org/wp-content/uploads/2010/06/eclipse-plugin-navigator-view.png" width="600px"></p>
<h2>Roadmap</h2>
<p>Next <a href="http://jira.codehaus.org/browse/SONARIDE/fixforversion/16336">version 0.2</a> will allow to visualize duplicated blocks, code coverage, &#8230; directly inside Eclipse, so stay tuned.</p>
<p>To give it a try, you can add it to your favourites in <a href="http://marketplace.eclipse.org/content/eclipse-sonar-plugin">Eclipse Marketplace</a> or install directly using <a href="http://dist.sonar-ide.codehaus.org/eclipse/">update-site</a>. For more information you can visit <a href="http://sonar-ide.codehaus.org/">Sonar IDE site</a>.</p>
<img src="http://feeds.feedburner.com/~r/Sonar/~4/juUpDHWN8Q0" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.sonarsource.org/eclipse-sonar-plugin-0-1-in-screenshots/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		<feedburner:origLink>http://www.sonarsource.org/eclipse-sonar-plugin-0-1-in-screenshots/</feedburner:origLink></item>
		<item>
		<title>Sonar in the news</title>
		<link>http://feedproxy.google.com/~r/Sonar/~3/WQSNgnRt1_4/</link>
		<comments>http://www.sonarsource.org/sonar-in-the-news-4/#comments</comments>
		<pubDate>Tue, 01 Jun 2010 11:13:19 +0000</pubDate>
		<dc:creator>Olivier Gaudin</dc:creator>
				<category><![CDATA[blog]]></category>
		<category><![CDATA[news]]></category>

		<guid isPermaLink="false">http://www.sonarsource.org/?p=3617</guid>
		<description><![CDATA[Welcome to the roundup of blog posts and pages that mentioned Sonar last month…

Developers dashboard : Mash-up activity streams from Jira, Sonar and Hudson
By exoPlatform, 21 May 2010
We are going to build a space in exo social to follow the development of a software. We are going to take as an example the development of [...]]]></description>
			<content:encoded><![CDATA[<p>Welcome to the roundup of blog posts and pages that mentioned Sonar last month…<br />
<span id="more-3617"></span></p>
<p><a href="http://www.exoplatform.com/company/public/website/parameterizedviewer?path=/website/Products/Extended%20Services/eXo%20Social/How%20to%20mash-up%20activity%20streams%20from%20Jira,%20Sonar%20and%20Hudson">Developers dashboard : Mash-up activity streams from Jira, Sonar and Hudson</a><br />
By exoPlatform, 21 May 2010<br />
<quote>We are going to build a space in exo social to follow the development of a software. We are going to take as an example the development of eXo Social. We want to integrate the 3 following things: Our task manager &#8211; Jira, our code quality tool &#8211; Sonar and our building system &#8211; Hudson.</quote></p>
<p><a href="http://php.jglobal.com/blog/?p=963">Coding Standards with Sonar, Maven and Intellij IDEA</a><br />
By Mike Nash, 18 May 2010<br />
<quote>One of the ways to ensure quality in a software project is to find a set of coding standards that your team can agree on then put automated checks in place to ensure they are adhered to. In this post I’d like to take a very small example of such a stanard, and show how you can use several different tools to help ensure and measure compliance.</quote></p>
<p><a href="http://www.sonarsource.com/2010/05/17/sonar-cobol-plugin-released/">Sonar Cobol Plugin released</a><br />
By SonarSource, 17 May 2010<br />
<quote>We are happy to announce the release of the Sonar Cobol Plugin. SonarSource has developed its own state of the art Cobol parser and packaged it as a Sonar Plugin. It allows to perform objective and automated Cobol code reviews against pre-defined or homemade coding best practices.</quote></p>
<p><a href="http://www.arensa.net/?p=95">Passing Hudson BUILD_NUMBER to Sonar Plugin</a><br />
By arensa, 17 May 2010<br />
<quote>Sonar is a great source code analysis tool that integrates through its plugin neatly into the Hudson continuous integration server. One major feature of Sonar is the module called “Time machine” where you can review the progress of the quality metrics for your project over time.</quote></p>
<p><a href="http://www.programmez.com/actualites.php?titre_actu=Obeo-et-SonarSource-annoncent-la-sortie-du-plugin-Sonar10--pour-VisualBasic-6&#038;id_actu=7459">Obeo et SonarSource annoncent la sortie du plugin Sonar1.0 pour VisualBasic 6</a><br />
By Programmez!, 12 May 2010<br />
<quote>Les deux sociétés ont décidé de combiner leur savoir-faire afin de fournir une solution permettant d&#8217;analyser automatiquement la qualité du code d&#8217;applications VisualBasic 6.</quote></p>
<p><a href="http://gojko.net/2010/05/04/the-perfect-agile-test-management-tool/">The perfect agile test management tool</a><br />
By Gojko Adzic, 4 May 2010<br />
<quote>David Evans and I facilitated a session on designing a killer agile test management tool last week at the UK Test Management Forum, with the goal of learning what are the biggest currently unsolved problems for agile teams in the area of testing at the moment. So for any tool vendors our there, here are the ideas.</quote></p>
<p><a href="http://www.baptiste-wicht.com/2010/05/first-build-jtheque-sonar-2-0/">First build of JTheque with Sonar 2.0</a><br />
By Baptiste Wicht, 2 May 2010<br />
<quote>This week-end I updated the version of Sonar to the new version 2.0 and migrated it from Tomcat 5.5 to Tomcat 6.0. I waited until now for the plugins I use to be compatible.</quote></p>
<p><a href="http://plugins.intellij.net/plugin/?idea&#038;id=4971">An IntelliJ IDEA Plugin for Sonar</a><br />
By Evgeny Mandrikov, 1 May 2010<br />
<quote>The Sonar Team is very proud to announce the release of a first version of a Sonar plugin for IntelliJ IDEA. Sonar (http://sonar.codehaus.org) is an open-source Code Quality Management Platform based on many well known analysis tools like Checkstyle, PMD, Findbugs, Cobertura, &#8230;</quote></p>
<p><a href="http://markthomas.info/blog/?p=160">Sonar: Understanding your codebase</a><br />
By Mark Thomas, 29 March 2010<br />
<quote>Large code bases can be difficult to understand, particularly for a new joiner to a team. Reading code is a great way to get the detail, but getting a high-level view can sometimes be hard. There are a range of open source tools that can provide Information about code coverage, design attributes and complexity, but it is often hard&#8230;</quote></p>
<p><a href="http://qualityswdev.com/2010/01/23/java-build-server/">Java Build Server</a><br />
By Manuel Küblböck, 23 January 2010<br />
<quote>In my last Java project, I set up a build server with Continuous Integration (CI) capability. I am a big fan of Test Driven Development (TDD) and I quite enjoyed Hudson telling us right away when someone checked in code that broke the build. It just gives you so much more confidence in your code and keeps it releasable at all times. In addition, we used Sonar to measure the quality of our code.</quote></p>
<img src="http://feeds.feedburner.com/~r/Sonar/~4/WQSNgnRt1_4" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.sonarsource.org/sonar-in-the-news-4/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://www.sonarsource.org/sonar-in-the-news-4/</feedburner:origLink></item>
		<item>
		<title>Detect Dead Code and Calls to Deprecated Methods with Sonar Squid</title>
		<link>http://feedproxy.google.com/~r/Sonar/~3/NGl2kpXjOqU/</link>
		<comments>http://www.sonarsource.org/detect-dead-code-and-calls-to-deprecated-methods-with-sonar-squid/#comments</comments>
		<pubDate>Wed, 26 May 2010 12:51:15 +0000</pubDate>
		<dc:creator>Freddy Mallet</dc:creator>
				<category><![CDATA[blog]]></category>
		<category><![CDATA[dependencies]]></category>
		<category><![CDATA[functionality]]></category>
		<category><![CDATA[squid]]></category>

		<guid isPermaLink="false">http://www.sonarsource.org/?p=3626</guid>
		<description><![CDATA[Up to version 2.1, Sonar was relying only on external coding rules engines such as Checkstyle, PMD and Findbugs to report violations on Java applications. But since version 2.1, Sonar also provides its own rules engine to work on Java dependencies. This rules engine is based on Squid and three rules are currently available :

Squid [...]]]></description>
			<content:encoded><![CDATA[<p>Up to version 2.1, Sonar was relying only on external coding rules engines such as <a href="http://checkstyle.sourceforge.net/">Checkstyle</a>, <a href="http://pmd.sourceforge.net/">PMD</a> and <a href="http://findbugs.sourceforge.net/">Findbugs</a> to report violations on Java applications. But since version 2.1, Sonar also provides its own rules engine to work on Java dependencies. This rules engine is based on Squid and three rules are currently available :<span id="more-3626"></span><br />
<img src="http://www.sonarsource.org/wp-content/uploads/2010/05/sonar-squid-rule-engine.png" alt="sonar-squid-rule-engine"/></p>
<p>Squid provides an easy to use visitor pattern to be able to visit dependencies between methods, fields, classes and packages. This visitor pattern has been used in <a href="http://www.sonarsource.org/sonar-2-0-in-screenshots/">Sonar 2.0</a> to calculate Object Oriented metrics like <a href="http://www.sonarsource.org/clean-up-design-at-class-level-with-sonar/">LCOM4</a>, RFC, DIT, NOC, &#8230; and has been reused in Sonar 2.1 to implement this new rules engine.</p>
<p>Here is a description of the three new rules :</p>
<ul>
<li><strong>Use of deprecated method</strong> : Once deprecated, a method should no longer be used as it means that the method might be removed one day; it might also mean its usage is inefficient or does not enable to benefit from certain features. Using a deprecated method is a sort of technical debt that must be repaid earlier rather than later. The rule detects calls to deprecated methods not only inside but also outside the project. It means that you can track usage of deprecated methods on  Java API or any other external libraries. Here is an example of violation :<br />
<img src="http://www.sonarsource.org/wp-content/uploads/2010/05/sonar-avoid-use-of-deprecated-method.png"/></li>
<li><strong>Unused protected method or Unused private method</strong> : Protected or private methods that are never used by any classes in the same project are strongly suspected to be dead code. Dead code means unnecessary, inoperative code that should be removed. This helps in maintenance by decreasing the maintained code size, making it easier to understand the program. Protected methods that override a method from a parent class are not considered as dead code as those methods are most often used through polymorphism.<img src="http://www.sonarsource.org/wp-content/uploads/2010/05/sonar-unused-protected-method.png"/></li>
</ul>
<p>To support those new functionality, a new Open Source library called <a href="http://svn.codehaus.org/sonar/trunk/sonar-check-api/">sonar-check-api</a> has been added in the Sonar toolbox. This library offers a mechanism to describe the rule : title, description, default priority, ISO category&#8230; For Checkstyle, PMD and Findbugs, an XML file is used to provide such description but this library allows use of java annotations to embed the description inside the rule. Here is an example of use with the new &#8220;Use of deprecated method&#8221; rule :</p>
<p><script src='http://pastie.org/969106.js'></script><br/></p>
<p>Have fun with those three new rules while waiting for new ones like a rule to define the architecture layering :) </p>
<img src="http://feeds.feedburner.com/~r/Sonar/~4/NGl2kpXjOqU" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.sonarsource.org/detect-dead-code-and-calls-to-deprecated-methods-with-sonar-squid/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		<feedburner:origLink>http://www.sonarsource.org/detect-dead-code-and-calls-to-deprecated-methods-with-sonar-squid/</feedburner:origLink></item>
		<item>
		<title>Sonar 2.1 in screenshots</title>
		<link>http://feedproxy.google.com/~r/Sonar/~3/5wneJxDwU8A/</link>
		<comments>http://www.sonarsource.org/sonar-2-1-in-screenshots/#comments</comments>
		<pubDate>Tue, 11 May 2010 09:29:16 +0000</pubDate>
		<dc:creator>Simon Brandhof</dc:creator>
				<category><![CDATA[blog]]></category>
		<category><![CDATA[release]]></category>
		<category><![CDATA[screenshots]]></category>

		<guid isPermaLink="false">http://www.sonarsource.org/?p=3509</guid>
		<description><![CDATA[As usual this new release includes numerous improvements, bug-fixes and also brand new features that we believe are worth stopping your daily work for a few minutes to review. Those features can be divided into two categories :

Libraries cartography : what project is using which library and how ?
Powerful Squid rules to detect dead methods [...]]]></description>
			<content:encoded><![CDATA[<p>As usual this new release includes numerous improvements, bug-fixes and also brand new features that we believe are worth stopping your daily work for a few minutes to review. Those features can be divided into two categories :</p>
<ul>
<li>Libraries cartography : what project is using which library and how ?</li>
<li>Powerful Squid rules to detect dead methods and calls to deprecated methods</li>
</ul>
<p><span id="more-3509"></span></p>
<h2>Libraries cartography</h2>
<p>Starting from use cases is the best way to explain how useful those new features are and how Sonar can now easily help you to solve your problem.</p>
<p>Imagine that you want to eradicate the use of Commons Logging library from your projects (because <a href="http://tapestryjava.blogspot.com/2007/08/so-long-commons-logging-hello-slf4j.html">it&#8217;s evil</a>). Simply go to the new &#8220;Dependencies&#8221; page, search for &#8220;commons logging&#8221;, optionally select a version of the library and quickly see which applications need to be refactored :</p>
<p><img src="http://www.sonarsource.org/wp-content/uploads/2010/05/dependencies.png" alt="dependencies" title="dependencies" width="630" height="361" class="alignnone size-full wp-image-3557" /></p>
<p>Let&#8217;s say that you now want to know which transitive dependency can explain why your application depends on Fusesource Commons-Management library. Simply go to the new &#8220;Libraries&#8221; page on your application and start typing fuseso&#8230; :</p>
<p><img src="http://www.sonarsource.org/wp-content/uploads/2010/05/libraries.png" alt="libraries" title="libraries" width="630" height="397" class="alignnone size-full wp-image-3559" /></p>
<p>For more details, you can read the <a href="http://docs.codehaus.org/display/SONAR/Managing+libraries">user guide</a>.</p>
<h2>New Squid rules for Java</h2>
<p>Squid, the home made parser embarked within Sonar, has a pretty unique capability in the fact that it works not only on source code but also on byte-code. So far Squid was only used to compute metrics like LCOM4, RFC, complexity, &#8230;. From Sonar 2.1, we have created a rule engine on top of Squid. Three rules are already available :</p>
<ul>
<li>detect unused private and protected methods as they are dead code. Dead code means unnecessary, inoperative code that should be removed. This helps in maintenance by decreasing the maintained code size, making it easier to understand the program.</li>
<li>detect calls to deprecated methods. Once deprecated, a method should no longer be used as it means that the method might be removed sooner or later. Squid analyzes both application, java API and external libraries bytecode to determine which methods / classes / fields are deprecated.</li>
</ul>
<p><img src="http://www.sonarsource.org/wp-content/uploads/2010/05/squid-rules-1.png" alt="New Squid rules" title="New Squid rules" width="621" height="288" class="alignnone size-full wp-image-3517" /></p>
<h2>System info</h2>
<p>The new page &#8220;System Info&#8221; provides detailed information about system properties, sonar configuration, installed plugins, Java VM memory statistics and database statistics. As the Sonar ecosystem is growing, there is a real need to provide such administration tools . In the upcoming Sonar versions, a new page should allow to dynamically install, uninstall, upgrade plugins and thereby imitate its older brother <a href="http://hudson-ci.org/">Hudson CI engine</a>.<br />
<img src="http://www.sonarsource.org/wp-content/uploads/2010/05/system.png" alt="System Info" title="System Info" width="621" height="598" class="alignnone size-full wp-image-3513" /></p>
<h2>Better usability of drilldown pages</h2>
<p>Small but useful UI improvement : when navigating through the drilldown pages, the columns are now automatically scrolled to the selected items, so they are always displayed. This little UI improvement was loudly requested by the Sonar community :)<br />
<img src="http://www.sonarsource.org/wp-content/uploads/2010/05/drilldown-UI-1.png" alt="Drilldown UI" title="Drilldown UI" width="630" height="299" class="alignnone size-full wp-image-3537" /></p>
<p>To find out more about Sonar 2.1 and the 50 issues that have been fixed, you can read the <a href="http://www.sonarsource.org/downloads/#2.1">release notes</a> or maybe you prefer to <a href="http://www.sonarsource.org/downloads/">download</a> it to give a ride. Have fun !</p>
<img src="http://feeds.feedburner.com/~r/Sonar/~4/5wneJxDwU8A" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.sonarsource.org/sonar-2-1-in-screenshots/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		<feedburner:origLink>http://www.sonarsource.org/sonar-2-1-in-screenshots/</feedburner:origLink></item>
	</channel>
</rss>
