<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" media="screen" href="/~d/styles/atom10full.xsl"?><?xml-stylesheet type="text/css" media="screen" href="http://feeds.feedburner.com/~d/styles/itemcontent.css"?><feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en-US">
  <title>XDepend Blog - News</title>
  <id>tag:blog.xdepend.com,2011:mephisto/</id>
  <generator uri="http://mephistoblog.com" version="0.8.0">Mephisto Drax</generator>
  
  <link href="http://blog.xdepend.com/" rel="alternate" type="text/html" />
  <updated>2011-02-03T13:14:33Z</updated>
  <atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" type="application/atom+xml" href="http://feeds.feedburner.com/xdepend" /><feedburner:info xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" uri="xdepend" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com/" /><entry xml:base="http://blog.xdepend.com/">
    <author>
      <name>Jessy</name>
    </author>
    <id>tag:blog.xdepend.com,2011-02-03:246</id>
    <published>2011-02-03T13:13:00Z</published>
    <updated>2011-02-03T13:14:33Z</updated>
    <category term="event" />
    <link href="http://blog.xdepend.com/2011/2/3/xdepend-will-be-featured-at-a-panel-of-software-quality-tools-february-the-10th-2011" rel="alternate" type="text/html" />
    <title>XDepend will be featured at a panel of Software Quality tools - February the 10th, 2011</title>
<content type="html">
            &lt;p&gt;XDepend will demo its product features next month at an event organized
by the Lausanne Java User Group, along with other software vendors. This
event will take place in Lausanne, Switzerland.&lt;/p&gt;
&lt;p&gt;
If you are around, this is a truly rare opportunity to see XDepend in
action, have a grasp on how to use it and what are its unique features,
compared to others.&lt;/p&gt;
&lt;p&gt;
More info &lt;a href="http://mailings.octo.com/2011-01-25/uk/index_uk.html"&gt;here&lt;/a&gt;
&lt;/p&gt;
          </content>  </entry>
  <entry xml:base="http://blog.xdepend.com/">
    <author>
      <name>Ivan</name>
    </author>
    <id>tag:blog.xdepend.com,2009-10-05:115</id>
    <published>2009-10-05T12:20:00Z</published>
    <updated>2009-10-06T12:27:29Z</updated>
    <category term="build comparison" />
    <category term="open source" />
    <category term="reports" />
    <link href="http://blog.xdepend.com/2009/10/5/xdepend-changelogs-for-open-source-projects" rel="alternate" type="text/html" />
    <title>XDepend changelogs for open source projects</title>
<content type="html">
            &lt;p&gt;XDepend features a rather unusual functionality that is seldom found in the traditional feature set of code analysis tools ; the build comparison. This feature allows to compare an analysis of a set of jars with a previous analysis of the same jars. There are then several &lt;span class="caps"&gt;CQL&lt;/span&gt; keywords that are available in queries which allows to extract a lot of interesting insight on the differences between the two builds.&lt;/p&gt;

&lt;p&gt;We decided to put this feature to some good use by generating &lt;a href="http://xdepend.com/reports/list"&gt;reports&lt;/a&gt; for several major open source frameworks written in Java. These reports show the results of a build comparison analysis between the current version and the previous major release of a given framework. The different sections present information on global project metrics, what has changed (added / removed methods, &lt;span class="caps"&gt;API&lt;/span&gt; changes at the type or method level, ...) as well as the evolution of instability and abstractness between the two versions.&lt;/p&gt;

&lt;p&gt;These reports are generated by running XDepend in console mode and providing a custom tailored &lt;span class="caps"&gt;XSL&lt;/span&gt; stylesheet. We tried our best to select the most meaningful information and present them in a readable manner, thus creating a new kind of changelog format for these projects. We hope you will find these reports interesting. Be sure to let us know how you think we could improve them and don’t hesitate to give us ideas on which projects and versions would make an interesting report. You can find the list of the generated reports &lt;a href="http://xdepend.com/reports/list"&gt;here&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;&lt;b&gt;Update&lt;/b&gt;: we added documentation for the two features of XDepend used to generate these reports: &lt;a href="http://forge.octo.com/confluence/display/XDEPDOC/Build+comparison+feature"&gt;build comparison&lt;/a&gt; and &lt;a href="http://forge.octo.com/confluence/display/XDEPDOC/Generating+custom+reports"&gt;custom reports generation&lt;/a&gt;.&lt;/p&gt;
          </content>  </entry>
  <entry xml:base="http://blog.xdepend.com/">
    <author>
      <name>Ivan</name>
    </author>
    <id>tag:blog.xdepend.com,2009-09-24:90</id>
    <published>2009-09-24T13:25:00Z</published>
    <updated>2009-09-24T13:28:39Z</updated>
    <category term="1.0" />
    <category term="blogs" />
    <category term="license" />
    <link href="http://blog.xdepend.com/2009/9/24/free-licenses-for-reviews" rel="alternate" type="text/html" />
    <title>Free licenses for reviews</title>
<content type="html">
            &lt;p&gt;Until 1.0 we’ve been working hard on the development side of things on XDepend; integrating the most recent bits of interface from NDepend, optimizing our code and most of all getting on a par with the feature set of NDepend. Meanwhile the marketing, communication and support work has been left aside. We feel that now is the right time to get XDepend some exposure. On one hand we are convinced that the product offers some truly unique features that weren’t previously available for the Java platform and on the other hand we need some real world usage feedback to make our product more complete and efficient.&lt;/p&gt;

&lt;p&gt;In an effort to gain more awareness of XDepend we are willing to offer a pro license to any blogger who would be interested in testing the product and then write a review of it on his blog. To benefit from this offer, all you need to do is send us a mail (contact at xdepend) containing your blog url, your physical address and phone number. You will receive a license file in reply.&lt;/p&gt;

&lt;p&gt;We are also offering pro license to open-source projects. You can contact us in the same way if you are a committer on an open-source project and want to see what kind of insight you can get on your project with XDepend.&lt;/p&gt;

&lt;p&gt;We are really eager for your feedback, so enjoy these offers and share your experience with XDepend.&lt;/p&gt;
          </content>  </entry>
  <entry xml:base="http://blog.xdepend.com/">
    <author>
      <name>Ivan</name>
    </author>
    <id>tag:blog.xdepend.com,2009-09-21:74</id>
    <published>2009-09-21T16:14:00Z</published>
    <updated>2009-09-21T16:15:12Z</updated>
    <category term="1.0" />
    <category term="release" />
    <link href="http://blog.xdepend.com/2009/9/21/xdepend-1-0-released" rel="alternate" type="text/html" />
    <title>XDepend 1.0 Released</title>
<content type="html">
            &lt;p&gt;The XDepend team is pleased to announce the release of XDepend 1.0 .
The 1.0 release is an important milestone for us and brings a whole slew of new features as well as bugfixes.&lt;/p&gt;

&lt;p&gt;Here is a quick list of the new features of particular interest to the users:&lt;/p&gt;
&lt;ul&gt;

&lt;li&gt;&lt;b&gt;Updated &lt;span class="caps"&gt;GUI&lt;/span&gt;&lt;/b&gt;: the &lt;span class="caps"&gt;GUI&lt;/span&gt; has been updated and now features tabs on the left to display more information on the result sets returned by a &lt;span class="caps"&gt;CQL&lt;/span&gt; query.&lt;/li&gt;

&lt;li&gt;&lt;b&gt;Memory and performance optimizations&lt;/b&gt;: there has been a big rewrite on the internal storage and represenatation of the analyzed code as well as the different steps involved in the analysis which brings great improvements on the memory consumption of the application and the time taken for analyses.&lt;/li&gt;

&lt;li&gt;&lt;b&gt;More metrics and &lt;span class="caps"&gt;CQL&lt;/span&gt; keywords&lt;/b&gt;: the &lt;span class="caps"&gt;CQL&lt;/span&gt; support is much more complete, giving access to new metrics and &lt;span class="caps"&gt;CQL&lt;/span&gt; keywords. You can see the updated specification &lt;a href="http://forge.octo.com/confluence/display/XDEPDOC/Code+Query+Language+Specification+CQL"&gt;here&lt;/a&gt;.&lt;/li&gt;

&lt;li&gt;&lt;b&gt;Linux/unix support&lt;/b&gt;: the XDepend Console can now run on Unix / Linux environments thanks to the Mono project. You can read about it &lt;a href="/2009/9/21/mono-support-for-xdepend-console"&gt;here&lt;/a&gt;&lt;/li&gt;

&lt;li&gt;&lt;b&gt;Maven plugin&lt;/b&gt;: a Maven plugin is available for generating XDepend project file from the Maven &lt;span class="caps"&gt;POM&lt;/span&gt; file of your project. You can read about it &lt;a href="/2009/9/18/xdepend-maven-plugin"&gt;here&lt;/a&gt;&lt;/li&gt;

&lt;/ul&gt;

&lt;p&gt;We hope you are as excited as us about this new release and we would love to have as much feedback as possible on our product.&lt;/p&gt;
          </content>  </entry>
  <entry xml:base="http://blog.xdepend.com/">
    <author>
      <name>Ivan</name>
    </author>
    <id>tag:blog.xdepend.com,2009-09-21:73</id>
    <published>2009-09-21T16:09:00Z</published>
    <updated>2009-09-21T16:09:33Z</updated>
    <category term="console" />
    <category term="linux" />
    <category term="mono" />
    <category term="unix" />
    <link href="http://blog.xdepend.com/2009/9/21/mono-support-for-xdepend-console" rel="alternate" type="text/html" />
    <title>Mono support for XDepend Console</title>
<content type="html">
            &lt;p&gt;Until 1.0, XDepend was only compatible with Windows. From a certain point of view it perfectly makes sense since one of the great strengths of XDepend comes from its feature-rich interface which relies heavily on the Windows APIs.&lt;/p&gt;

&lt;p&gt;However XDepend also has a great added value with its Code Query Language which allows the definition of custom project rules and the html report that comes with it. This analysis can be run in a headless fashion with XDepend Console and thus take part in a continuous integration setup.&lt;/p&gt; 

&lt;p&gt;In the case of NDepend (the original .Net version of the software) it is quite reasonable to assume that the continuous integration server will run on Windows, however this assumption is quite far-fetched when considering a Java project. In this case the continuous integration server is as likely to be a Linux box as a Windows box, thus preventing the integration of XDepend in the build and losing a key feature of the product. That was definitely an issue that we wanted to address before our 1.0 release.&lt;/p&gt;

&lt;p&gt;Consequently we took some time to work on supporting Mono for XDepend console. We ironed out a few kinks and got it working on Mono; it has been tested under Mac &lt;span class="caps"&gt;OS X&lt;/span&gt; and Ubuntu Linux, but there is no reason it shouldn’t work on any platform supported by the Mono project. This support is still experimental and a few features are lacking, but the basic functionality is here. Complete instructions on installation and usage can be found &lt;a href="http://forge.octo.com/confluence/display/XDEPDOC/Running+XDepend+Console+on+Unix+-+Linuxes"&gt;here&lt;/a&gt;. Be sure to let us know if you encounter any issue.&lt;/p&gt;
          </content>  </entry>
  <entry xml:base="http://blog.xdepend.com/">
    <author>
      <name>Ivan</name>
    </author>
    <id>tag:blog.xdepend.com,2009-09-18:72</id>
    <published>2009-09-18T10:30:00Z</published>
    <updated>2009-09-18T10:30:58Z</updated>
    <category term="maven" />
    <category term="plugin" />
    <link href="http://blog.xdepend.com/2009/9/18/xdepend-maven-plugin" rel="alternate" type="text/html" />
    <title>XDepend Maven plugin</title>
<content type="html">
            &lt;p&gt;I am thrilled to introduce you to a great addition to the XDepend package ; a maven plugin which can generate the right XDepend project file for your application from the &lt;span class="caps"&gt;POM&lt;/span&gt; file of your project.&lt;/p&gt;
&lt;p&gt;This new plugin gives a much better user experience when analysing a mavenized project with XDepend. Previously you had to manually select in XDepend the right folders for your application jars and source files, as well as the right folders in your local Maven repository for the tier jars. The plugin takes care of all of this for you and gives you a nice xml file ready to use in XDepend.&lt;/p&gt;
&lt;p&gt;The usage is quite straightforward. Once you have installed the plugin, the following command executed in your project directory will generate the XDepend project file:&lt;/p&gt;
&lt;code&gt;mvn compile jar:jar com.octo.xdepend:xdepend-maven-plugin:1.0:xdepend&lt;/code&gt;
&lt;p&gt;Complete instructions on installation and different use cases (jsp precompilation, test cover inclusion) can be found &lt;a href="http://forge.octo.com/confluence/display/XDEPDOC/Maven+plugin+documentation"&gt;here&lt;/a&gt;.&lt;/p&gt;
          </content>  </entry>
  <entry xml:base="http://blog.xdepend.com/">
    <author>
      <name>mac</name>
    </author>
    <id>tag:blog.xdepend.com,2009-06-09:21</id>
    <published>2009-06-09T14:01:00Z</published>
    <updated>2009-10-15T09:58:48Z</updated>
    <category term="quality" />
    <link href="http://blog.xdepend.com/2009/6/9/an-easy-way-to-create-coding-and-design-standards-that-live" rel="alternate" type="text/html" />
    <title>An efficient tool for effective code and design standards</title>
<content type="html">
            &lt;p&gt;
As "SOA" or "Software Factory" are, "Code and design quality standards adoption" &lt;b&gt;is still a myth&lt;/b&gt;. Today, what we see in many projects is a lot of costly tools that not brings expected added-value. 
&lt;/p&gt;
&lt;p&gt;
We believe that &lt;b&gt;effective standards are standards that comes from the team members in a specific context&lt;/b&gt;. Thus the complexity for a team to create and maintain its own quality standards can be a real issue to achieve significant quality improvements across time.
&lt;/p&gt;
&lt;p&gt;
A lot of quality check tools aim to provide ways to define your own quality standards by:
&lt;ul&gt;
&lt;li&gt;parameterizing predefined rules &lt;/li&gt;
&lt;li&gt;developing new ones using their APIs&lt;/li&gt;
&lt;/ul&gt;
&lt;/p&gt;
&lt;p&gt;
By experience, it can be a very tedious process to setup and maintain your own set of rules. Take a look at the process of "developing a custom quality rule" using the famous &lt;a href="http://pmd.sourceforge.net/"&gt;PMD&lt;/a&gt; trough the popular &lt;a href="http://sonar.codehaus.org/"&gt;Sonar&lt;/a&gt; quality aggregator : 
&lt;ol&gt;
&lt;li&gt;Define the rules behavior by inheriting from &lt;code&gt;AbstractRule&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;Package it in &lt;code&gt;myCustomRules.jar&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;Register your rule through a &lt;code&gt;myCustomRules.xml&lt;/code&gt; file&lt;/li&gt;
&lt;li&gt;Add the custom jar to sonar runtime and configure the active profile for your project to register the new rule&lt;/li&gt;
&lt;li&gt;&lt;i&gt;This is the theorical process. In fact you need to code, package and deploy in order to test and fix your rule in a real code sample.&lt;/i&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt; &lt;b&gt;Where is the added-value?&lt;/b&gt;  Only in step one. The other steps are plumbing and it takes time.&lt;/p&gt;

&lt;/p&gt;
&lt;p&gt;Now take a look at the same process using &lt;a href="http://xdepend.com/"&gt;XDepend&lt;/a&gt;:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt; Define, Check, Affinate your rule with a real code oriented query language (CQL) and real-time execution environment (CQL Editor)

&lt;/li&gt;

&lt;li&gt;Store your CQL query using a Java Annotation inside your code

&lt;/li&gt;

&lt;/ol&gt;
&lt;p&gt;
&lt;b&gt;Where is the added-value? &lt;/b&gt;Both of the steps are valuable to your project since the first allows you to design a perfectly tailored CQL query for 
your code and the second allows you to persist it right into your code.
&lt;/p&gt;
&lt;p&gt;
&lt;a href="http://xdepend.com/"&gt;XDepend&lt;/a&gt; lets you focus on "the rules definition" not its "integration inside tools". From this perspective, &lt;a href="http://xdepend.com/"&gt;XDepend&lt;/a&gt; seamlessly brings added-value to the quality process.
&lt;/p&gt;
&lt;p&gt;
&lt;b&gt;Read more&lt;/b&gt;
&lt;ul&gt;
&lt;li&gt;Download Trial &lt;a href="http://xdepend.com/"&gt;here&lt;/a&gt;&lt;/li&gt; 
&lt;li&gt;Getting started with XDepend &lt;a href="https://forge.octo.com/confluence/display/XDEPDOC/One+minute+tutorial+analysing+Spring-Batch+using+Maven"&gt;here&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;More on CQL Queries inside source code &lt;a href="https://forge.octo.com/confluence/display/XDEPDOC/Integrating+CQL+Queries+in+your+source+code"&gt;here&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;
          </content>  </entry>
  <entry xml:base="http://blog.xdepend.com/">
    <author>
      <name>Ivan</name>
    </author>
    <id>tag:blog.xdepend.com,2009-06-09:19</id>
    <published>2009-06-09T08:03:00Z</published>
    <updated>2009-08-11T08:19:03Z</updated>
    <category term="cql" />
    <category term="testing" />
    <link href="http://blog.xdepend.com/2009/6/9/cql-queries-for-your-test-code" rel="alternate" type="text/html" />
    <title>CQL queries for your test code</title>
<content type="html">
            &lt;p&gt;On the occasion of the release of our second release candidate for XDepend 1.0, I thought I’d write a quick followup on the post related to the &lt;a href="/2009/3/31/don-t-forget-to-analyze-the-quality-of-your-test-code"&gt;analysis of the test code&lt;/a&gt;. Among the new features brought by this release is the support for the &lt;span class="caps"&gt;CQL&lt;/span&gt; keyword &lt;code&gt;HasAnnotation&lt;/code&gt; which can come in handy in this use case.&lt;/p&gt;

&lt;p&gt;In the said post I gave the following &lt;span class="caps"&gt;CQL&lt;/span&gt; query to detect useless tests:&lt;/p&gt;

&lt;pre&gt;SELECT METHODS WHERE !IsUsing "org.junit" 
AND !IsConstructor AND ReturnTypeIs "void" AND !NameIs "setUp()" AND IsPublic&lt;/pre&gt;

&lt;p&gt;This query seems to do the job, however it uses several conditions to make sure that the method is a test and it isn’t impossible to get false positives. If your project is relying on annotations to mark tests instead of subclassing and naming conventions, there is now a better way to query for tests. By taking advantage of the &lt;code&gt;HasAnnotation&lt;/code&gt;, you can rewrite the query this way:&lt;/p&gt;

&lt;pre&gt;SELECT METHODS WHERE !IsUsing "org.junit.Assert" 
AND HasAnnotation "org.junit.Test"&lt;/pre&gt;

&lt;p&gt;Be sure to check out the &lt;a href="/2009/6/4/xdepend-rc2"&gt;release notes of XDepend 1.0 &lt;span class="caps"&gt;RC2&lt;/span&gt;&lt;/a&gt; for the other remarkable changes.&lt;/p&gt;
          </content>  </entry>
  <entry xml:base="http://blog.xdepend.com/">
    <author>
      <name>mac</name>
    </author>
    <id>tag:blog.xdepend.com,2009-06-04:20</id>
    <published>2009-06-04T09:52:00Z</published>
    <updated>2009-06-04T09:52:46Z</updated>
    <category term="release" />
    <link href="http://blog.xdepend.com/2009/6/4/xdepend-rc2" rel="alternate" type="text/html" />
    <title>What's new in XDepend 1.0-RC2</title>
<content type="html">
            &lt;p&gt;The XDepend team is pleased to announce the release of XDepend 1.0-RC2.&lt;/p&gt;
&lt;p&gt;This release will probably be followed by a third release candidate before we release 1.0 final. The objective for the 1.0 final being to provide the complete set of features offered by NDepend. Below are listed the highlights of this release in terms of enhancements and major bug fixes.&lt;/p&gt;

&lt;h3&gt;Enhancements&lt;/h3&gt;

&lt;p&gt;
It is now possible to use the &lt;code&gt;CQLConstraint&lt;/code&gt; annotation to insert CQL rules inside the analysed code. During the analysis these rules are extracted and integrated into the report and the GUI.
The &lt;code&gt;CQLConstraints&lt;/code&gt; annotation allows to specify multiple &lt;code&gt;CQLConstraint&lt;/code&gt; on the same piece of code.
&lt;br /&gt;
&lt;a href="https://forge.octo.com/confluence/display/XDEPDOC/Integrating+CQL+Queries+in+your+source+code"&gt;See Documentation&lt;/a&gt;
&lt;/p&gt;

&lt;p&gt;
The &lt;code&gt;HasAnnotation&lt;/code&gt; CQL keyword is now supported. It allows you to write queries that will retrieve the code elements annotated by a specific annotation. Moreover, dependencies related to annotations are more accurate than before.
&lt;br /&gt;
&lt;a href="https://forge.octo.com/confluence/display/XDEPDOC/Code+Query+Language+Specification+CQL#CodeQueryLanguageSpecificationCQL-HasAnnotationTMF"&gt;See Documentation&lt;/a&gt;
&lt;/p&gt;

&lt;p&gt;
The analysis launches a JVM with certain memory settings. These settings aren't necessarily a good fit for your hardware configuration. You can now override these by specifying in your system environment the &lt;code&gt;JAVA_OPTS&lt;/code&gt; variable.
&lt;br /&gt;
&lt;a href="http://forge.octo.com/confluence/display/XDEPDOC/Custom+JVM+memory+settings+for+analysis"&gt;See documentation&lt;/a&gt;
&lt;/p&gt;


&lt;h3&gt;Fixed issues&lt;/h3&gt;

&lt;p&gt;
There was a bug related to source file opening from XDepend. If you had two classes with the same name in different packages, the wrong file could be opened. This case is now handled properly.
&lt;/p&gt;

&lt;p&gt;
The analysis will fail if you haven't the java executable in your path. Previously this case wasn't handled specifically and the error message wasn't helpful. The XDepend error list will now clearly report the problem if this happens to you.
&lt;/p&gt;

&lt;p&gt;
The analysis was failing in case of accentuated characters in identifiers. The encoding is now better handled in the analysis process and these use cases won't fail anymore.
&lt;/p&gt;

&lt;h3&gt;Next step&lt;/h3&gt;

&lt;p&gt;We're eager for your feedback on this new release. Our issue tracker can be found &lt;a href="http://forge.octo.com/jira/browse/XDPS"&gt;here&lt;/a&gt; and we're open to any suggestions regarding our roadmap for future developments. The next release should be out in about a month.&lt;/p&gt;
          </content>  </entry>
  <entry xml:base="http://blog.xdepend.com/">
    <author>
      <name>Ivan</name>
    </author>
    <id>tag:blog.xdepend.com,2009-03-31:6</id>
    <published>2009-03-31T10:02:00Z</published>
    <updated>2009-03-31T10:03:44Z</updated>
    <category term="cql" />
    <category term="tdd" />
    <category term="testing" />
    <link href="http://blog.xdepend.com/2009/3/31/don-t-forget-to-analyze-the-quality-of-your-test-code" rel="alternate" type="text/html" />
    <title>Don't forget to analyze the quality of your test code</title>
<content type="html">
            &lt;p&gt;Nowadays &lt;acronym title="Test Driven Development"&gt;TDD&lt;/acronym&gt; is considered a best practice in software development. One of the goals of &lt;acronym title="Test Driven Development"&gt;TDD&lt;/acronym&gt; (or side effect) is to have a 100% coverage on your application code. This will often mean that you have as much test code as application code, or even more. In some contexts you might also consider using tests as documentation. As a result, it is obvious that the code quality of tests should be considered as important as the code quality of the deployed code.&lt;/p&gt;

&lt;p&gt;Analyzing your test code with &lt;a href="http://xdepend.com"&gt;XDepend&lt;/a&gt; is quite straightforward. You would start by creating a jar of your tests with the following &lt;a href="http://maven.apache.org"&gt;Maven&lt;/a&gt; command:&lt;/p&gt;

&lt;pre&gt;mvn test jar:test-jar&lt;/pre&gt;

&lt;p&gt;Then you would open XDepend and create a new project and select the jar you just created for analysis (we don't necessarily need to add the dependencies since we're not gonna focus on the architecture with the external jars; the analysis won't break, XDepend will just put all the external dependencies in a generic jar named "MISSING").&lt;/p&gt;

&lt;p&gt;You can then launch the analysis and start by taking a look at the built-in &lt;acronym title="Code Query Language"&gt;CQL&lt;/acronym&gt; queries. Indeed the regular code quality and design rules apply; test methods shouldn't be too long, shouldn't have a cyclomatic complexity that is too high, etc...&lt;/p&gt;

&lt;p&gt;Next you can perform specifically tailored code queries that take into account the fact that you are analysing the quality of your tests. Take this request for example:&lt;/p&gt;

&lt;pre&gt;SELECT METHODS WHERE !(IsUsing "junit.framework" OR IsUsing "org.junit") 
AND !IsConstructor AND ReturnTypeIs "void" AND !NameIs "setUp()" AND IsPublic &lt;/pre&gt;

&lt;p&gt;This request will help you find useless test methods ; a test method which isn't using any assertion is useless, however sometimes some of these happen to be committed after an intense &lt;acronym title="Test Driven Development"&gt;TDD&lt;/acronym&gt; session, or perhaps someone in your team isn't quite clear about the best practices for writing tests and needs a refresh.&lt;/p&gt;

&lt;p&gt;Once you will have set up the custom queries for your test jar in addition to the default ruleset, the next step is obviously to include the XDepend analysis of your test jar in your continuous integration build in order to maintain, or much better, improve the quality of your tests over time. Start improving the quality of your test code and you can be sure that the quality of your application code will also see a positive evolution (well, at least I think so, be sure to let me know in the comments if you disagree).&lt;/p&gt;
          </content>  </entry>
  <entry xml:base="http://blog.xdepend.com/">
    <author>
      <name>Marc-Antoine</name>
    </author>
    <id>tag:blog.xdepend.com,2009-01-27:2</id>
    <published>2009-01-27T15:41:00Z</published>
    <updated>2009-01-27T15:44:03Z</updated>
    <category term="documentation" />
    <link href="http://blog.xdepend.com/2009/1/27/new-tutorials-available" rel="alternate" type="text/html" />
    <title>CQL Reference for XDepend available</title>
<content type="html">
            &lt;p&gt;The &lt;a href="http://forge.octo.com/confluence/display/XDEPDOC/Code+Query+Language+Specification+CQL"&gt;CQL Reference for XDepend RC1&lt;/a&gt; is now available !&lt;/p&gt;

&lt;p&gt;Enjoy!&lt;/p&gt;
          </content>  </entry>
  <entry xml:base="http://blog.xdepend.com/">
    <author>
      <name>Marc-Antoine</name>
    </author>
    <id>tag:blog.xdepend.com,2009-01-26:3</id>
    <published>2009-01-26T15:45:00Z</published>
    <updated>2009-01-27T15:46:55Z</updated>
    <category term="documentation" />
    <link href="http://blog.xdepend.com/2009/1/26/new-tutorials-available-2" rel="alternate" type="text/html" />
    <title>New tutorials available</title>
<content type="html">
            Two new tutorials are avaiblable :
	&lt;ul&gt;
	&lt;li&gt;&lt;a href="http://forge.octo.com/confluence/display/XDEPDOC/One+minute+tutorial+analysing+Spring-Batch+using+Maven"&gt; One minute tutorial analysing Spring-Batch using Maven&lt;/a&gt;&lt;/li&gt;
	&lt;/ul&gt;


	&lt;ul&gt;
	&lt;li&gt;&lt;a href="http://forge.octo.com/confluence/display/XDEPDOC/Two+minutes+tutorial+analysing+FindBugs+%28without+maven%29"&gt;Two minutes tutorial analysing FindBugs (without maven)&lt;/a&gt;&lt;/li&gt;
	&lt;/ul&gt;


	&lt;p&gt;Enjoy!&lt;/p&gt;
          </content>  </entry>
  <entry xml:base="http://blog.xdepend.com/">
    <author>
      <name>Jessy</name>
    </author>
    <id>tag:blog.xdepend.com,2008-12-25:1</id>
    <published>2008-12-25T13:21:00Z</published>
    <updated>2008-12-26T16:02:32Z</updated>
    <category term="beta" />
    <category term="release" />
    <link href="http://blog.xdepend.com/2008/12/25/beta-release" rel="alternate" type="text/html" />
    <title>Beta Release</title>
<content type="html">
            &lt;p&gt;We all have been hard working lately to deliver the beta of &lt;a href="http://www.xdepend.com"&gt;XDepend&lt;/a&gt; for Christmas. And here &lt;a href="http://xdepend.com/licenses/new"&gt;it is&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;XDepend integrates almost all advance features of &lt;a href="http://www.ndepend.com/Editions.aspx"&gt;NDepend&lt;/a&gt; such as build comparison, import of code coverage data or linking between source files and code element definitions. We will soon give you all the tips and tricks to take the best out of XDepend and show you how it will definitely help you in your daily work.&lt;/p&gt;
&lt;p&gt;For now, feel free to play with this software on your current project until January 20th and be aware that we always appreciate your feedback.&lt;/p&gt;
&lt;p&gt;Here is a simple screenshot of XDepend analyzing the JDK 7. Optimization is one of XDepend strongest point, imagine : the analysis of one of the biggest project ever only takes 2 minutes! Then you can fluidly navigate through the JDK and have the big picture.&lt;/p&gt;
&lt;a href="http://www.xdepend.com/images/Capture16-12-2008-13.31.31.png"&gt;

&lt;/a&gt;

&lt;p&gt;This screenshot shows the dependencies structure matrix that will help you understand the coupling between JDK 7 jars&lt;/p&gt;

&lt;p&gt;Happy Christmas and see you back in 2009 with an official release !&lt;/p&gt;
          </content>  </entry>
</feed>

