<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	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:georss="http://www.georss.org/georss" xmlns:geo="http://www.w3.org/2003/01/geo/wgs84_pos#" xmlns:media="http://search.yahoo.com/mrss/"
	>

<channel>
	<title>Un expresso sans sucre &#187; java</title>
	<atom:link href="http://blog.tartachuc.org/tag/java/feed/" rel="self" type="application/rss+xml" />
	<link>http://blog.tartachuc.org</link>
	<description>Java,  Architecture &#38; Methodes agiles par Thomas Recloux</description>
	<lastBuildDate>Wed, 18 Jan 2012 09:30:10 +0000</lastBuildDate>
	<language>fr</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.com/</generator>
<cloud domain='blog.tartachuc.org' port='80' path='/?rsscloud=notify' registerProcedure='' protocol='http-post' />
<image>
		<url>http://s2.wp.com/i/buttonw-com.png</url>
		<title>Un expresso sans sucre &#187; java</title>
		<link>http://blog.tartachuc.org</link>
	</image>
	<atom:link rel="search" type="application/opensearchdescription+xml" href="http://blog.tartachuc.org/osd.xml" title="Un expresso sans sucre" />
	<atom:link rel='hub' href='http://blog.tartachuc.org/?pushpress=hub'/>
		<item>
		<title>Mon premier Devoxx</title>
		<link>http://blog.tartachuc.org/2011/11/19/mon-premier-devoxx/</link>
		<comments>http://blog.tartachuc.org/2011/11/19/mon-premier-devoxx/#comments</comments>
		<pubDate>Sat, 19 Nov 2011 15:03:24 +0000</pubDate>
		<dc:creator>Thomas Recloux</dc:creator>
				<category><![CDATA[Communauté]]></category>
		<category><![CDATA[Java]]></category>
		<category><![CDATA[chtijug]]></category>
		<category><![CDATA[devoxx]]></category>
		<category><![CDATA[java]]></category>

		<guid isPermaLink="false">http://blog.tartachuc.org/?p=451</guid>
		<description><![CDATA[J&#8217;ai enfin eu l&#8217;occasion de participer à mon premier Devoxx cette semaine, encore un peu à chaud voici ce qui m&#8217;a marqué : Keynote de S.Janssen La Keynote a lieu dans une des (la ?) plus grandes salles et elle est retransmise en live dans les autres salles. Tout l&#8217;esprit de Devoxx est représenté par [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=blog.tartachuc.org&amp;blog=23137075&amp;post=451&amp;subd=tartachuc&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p><img class="aligncenter size-full wp-image-461" title="devoxx" src="http://tartachuc.files.wordpress.com/2011/11/devoxx.png?w=600" alt=""   /></p>
<p>J&#8217;ai enfin eu l&#8217;occasion de participer à mon premier <a title="Devoxx" href="http://www.devoxx.com">Devoxx</a> cette semaine, encore un peu à chaud voici ce qui m&#8217;a marqué :</p>
<h3>Keynote de <a href="https://twitter.com/#!/stephan007">S.Janssen</a></h3>
<p><a href="http://tartachuc.files.wordpress.com/2011/11/devoxx_stephan_janssen.jpg"><img class="alignleft size-thumbnail wp-image-454" title="devoxx_stephan_janssen" src="http://tartachuc.files.wordpress.com/2011/11/devoxx_stephan_janssen.jpg?w=150&#038;h=99" alt="" width="150" height="99" /></a>La Keynote a lieu dans une des (la ?) plus grandes salles et elle est retransmise en live dans les autres salles.<br />
Tout l&#8217;esprit de Devoxx est représenté par Stephan : fun et sérieux.<br />
Il introduit les trois jours de conférence et termine sur l&#8217;annonce de <a href="http://www.devoxx.fr">DevoxxFrance</a> via un &#8220;One more thing&#8221; et une <a href="http://www.youtube.com/watch?v=II6XiGGlJX0">vidéo</a> bien menée.<br />
Un grand moment pour les Français qui attendaient enfin une belle conférence de ce type en France.</p>
<h3>Oracle vs Google</h3>
<p><a href="http://tartachuc.files.wordpress.com/2011/11/google_oracle.jpg"><img class="alignleft size-thumbnail wp-image-455" title="google_oracle" src="http://tartachuc.files.wordpress.com/2011/11/google_oracle.jpg?w=150&#038;h=125" alt="" width="150" height="125" /></a>Assurément compétents, les speakers de Oracle m&#8217;ont appris beaucoup de choses sur l&#8217;intégration des closures et sur Jigsaw pour Java 8 &#8230; mais que c&#8217;est dur de rester accroché, des slides chargés, pas de live coding, des speakers un peu monocordes.<br />
D&#8217;un autre coté, que ce soit sur Android ou HTML5, Google a sorti l&#8217;artillerie lourde avec beaucoup de conférences par des speakers de grande qualité.<br />
Des bons speakers, du code et/ou des démos, c&#8217;est ce que les gens attendent. Même en restant sur le thème Java SE, <a href="https://twitter.com/#!/joshbloch">Josh Bloch</a> arrive à avoir une présentation sympa et accrocheuse .</p>
<h3>BOF Java EE</h3>
<p><img class="alignleft  wp-image-456" title="java" src="http://tartachuc.files.wordpress.com/2011/11/java.jpg?w=36&#038;h=63" alt="" width="36" height="63" />J&#8217;ai participé au BOF animé par<a href="https://twitter.com/#!/alexismp"> Alexis Moussine-Pouchkine </a>sur les JSR relatives à Java EE 7.<br />
C&#8217;était assez interessant de voir de nombreux &#8220;specs leaders&#8221; répondre à des questions très pointues et débattre entre eux.<br />
Devoxx est une énorme conférence mais les intervenants sont très accessibles.</p>
<h3>BOF JUG</h3>
<p><img class="alignleft size-full wp-image-457" title="chtijug" src="http://tartachuc.files.wordpress.com/2011/11/chtijug.jpeg?w=600" alt=""   />Je crois que j&#8217;ai oublié de vous le dire mais j&#8217;ai intégré l&#8217;équipe d&#8217;organisation du <a href="http://www.chtijug.org">Ch&#8217;ti JUG</a> il y a quelques mois.<br />
J&#8217;ai donc participé avec plaisir à cette rencontre des JUG Leaders. Des représentants d&#8217;Oracle étaient présents ainsi que de nombreux JUG Leaders des capitales européennes et d&#8217;autres continents (Maroc, Egypte, Brésil, USA, ..)<br />
Oracle semble apprendre vite et faire beaucoup d&#8217;efforts en direction des JUGs, bonne nouvelle.<br />
Une large partie de la session a été consacrée au programme &#8220;<a href="http://java.net/projects/ljc-london-jug/pages/AdoptAJSRProgram">Adopt a JSR</a>&#8220;, le JCP est preneur de retour d&#8217;information de la part de développeurs et encourage la communauté à s&#8217;investir dans les JSR.</p>
<h3>Matt Raible</h3>
<p><a href="https://twitter.com/#!/mraible"><img class="alignleft size-thumbnail wp-image-458" title="mattraible" src="http://tartachuc.files.wordpress.com/2011/11/mattraible.png?w=150&#038;h=112" alt="" width="150" height="112" />Matt Raible</a> est un spécialiste des frameworks Web et nous a présenté la session la plus hallucinante de ces trois jours, .<br />
Il a aimé venir à Devoxx l&#8217;année dernière et c&#8217;est imposé un challenge de taille : apprendre Scala pour en faire une session à Devoxx 2011 !<br />
Comme le garçon n&#8217;a pas froid aux yeux, il empile de nombreuses technologies dans sa R&amp;D : Play!, CoffeeScript, Scalate, Jade et pour finir PhoneGap car tout ca tourne dans Safari Mobile.<br />
Le tout est présenté avec beaucoup d&#8217;humour, à la fin de la session il présente une <a href="http://www.youtube.com/watch?v=bBqtPPfM2xQ">vidéo</a> qui retrace toute cette aventure avec trois sessions de test en extérieur.</p>
<h3>Ceylon</h3>
<p><img class="alignleft size-thumbnail wp-image-460" title="ceylon-logo" src="http://tartachuc.files.wordpress.com/2011/11/ceylon-logo.png?w=150&#038;h=46" alt="" width="150" height="46" />Dernière session de la conférence : présentation du langage Ceylon par <a href="https://twitter.com/#!/emmanuelbernard">Emmanuel Bernard</a> et <a href="http://stephane.epardaud.fr/">Stephane Epardaud</a>.<br />
Ceylon est un langage statique pour la JVM qui vient apporter des solutions à certains problèmes rencontrés avec Java.<br />
Par rapport à Java, la syntaxe n&#8217;est vraiment pas chocante, le développeur Java ne sera pas chamboullé.<br />
Parmis les fonctionnalités proposées, j&#8217;ai retenu :</p>
<ul>
<li>Une protection contre les NullPointerException par le compilateur.</li>
<li>L&#8217;utilisation naturelle d&#8217;objects immuables.</li>
<li>Le type Union qui permet de combiner plusieurs interfaces.</li>
<li>Les propriétés : les accesseurs sont présents par défaut</li>
<li>&#8230; et plein d&#8217;autres choses sympas.</li>
</ul>
<p>Pendant la session, Emmanuel annonce que le projet a maintenant un <a href="http://www.ceylon-lang.org/">site web</a> et a puplié son code sur <a href="https://github.com/ceylon">Github</a>.<br />
Je n&#8217;ai pas encore regardé attentivement les autres langages (Kotlin et Fantom) mais celui ci me plait bien.</p>
<p>Un dernier mot : Harcelez votre manager, prenez des congés, changez de boite  ou devenez indépendant mais allez à ces conférences</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/tartachuc.wordpress.com/451/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/tartachuc.wordpress.com/451/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/tartachuc.wordpress.com/451/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/tartachuc.wordpress.com/451/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/tartachuc.wordpress.com/451/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/tartachuc.wordpress.com/451/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/tartachuc.wordpress.com/451/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/tartachuc.wordpress.com/451/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/tartachuc.wordpress.com/451/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/tartachuc.wordpress.com/451/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/tartachuc.wordpress.com/451/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/tartachuc.wordpress.com/451/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/tartachuc.wordpress.com/451/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/tartachuc.wordpress.com/451/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=blog.tartachuc.org&amp;blog=23137075&amp;post=451&amp;subd=tartachuc&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://blog.tartachuc.org/2011/11/19/mon-premier-devoxx/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/19b0cd2457923995444d0e963cf799bd?s=96&#38;d=http%3A%2F%2F1.gravatar.com%2Favatar%2Fad516503a11cd5ca435acc9bb6523536%3Fs%3D96&#38;r=G" medium="image">
			<media:title type="html">trecloux</media:title>
		</media:content>

		<media:content url="http://tartachuc.files.wordpress.com/2011/11/devoxx.png" medium="image">
			<media:title type="html">devoxx</media:title>
		</media:content>

		<media:content url="http://tartachuc.files.wordpress.com/2011/11/devoxx_stephan_janssen.jpg?w=150" medium="image">
			<media:title type="html">devoxx_stephan_janssen</media:title>
		</media:content>

		<media:content url="http://tartachuc.files.wordpress.com/2011/11/google_oracle.jpg?w=150" medium="image">
			<media:title type="html">google_oracle</media:title>
		</media:content>

		<media:content url="http://tartachuc.files.wordpress.com/2011/11/java.jpg?w=86" medium="image">
			<media:title type="html">java</media:title>
		</media:content>

		<media:content url="http://tartachuc.files.wordpress.com/2011/11/chtijug.jpeg" medium="image">
			<media:title type="html">chtijug</media:title>
		</media:content>

		<media:content url="http://tartachuc.files.wordpress.com/2011/11/mattraible.png?w=150" medium="image">
			<media:title type="html">mattraible</media:title>
		</media:content>

		<media:content url="http://tartachuc.files.wordpress.com/2011/11/ceylon-logo.png?w=150" medium="image">
			<media:title type="html">ceylon-logo</media:title>
		</media:content>
	</item>
		<item>
		<title>Devoxx France à Paris en Avril 2012</title>
		<link>http://blog.tartachuc.org/2011/11/16/devoxx-france-a-paris-en-avril-2012/</link>
		<comments>http://blog.tartachuc.org/2011/11/16/devoxx-france-a-paris-en-avril-2012/#comments</comments>
		<pubDate>Wed, 16 Nov 2011 16:25:12 +0000</pubDate>
		<dc:creator>Thomas Recloux</dc:creator>
				<category><![CDATA[Java]]></category>
		<category><![CDATA[Conférence]]></category>
		<category><![CDATA[java]]></category>

		<guid isPermaLink="false">http://blog.tartachuc.org/?p=447</guid>
		<description><![CDATA[Ce matin lors de la Keynote d&#8217;ouverture de Devoxx, nous avons eu le droit à un &#8220;One more thing&#8221; : la projection d&#8217;une vidéo annonçant l&#8217;organisation d&#8217;une édition Française de la conférence Devoxx. C&#8217;est une excellente nouvelle, car aucune conférence de ce gabarit n&#8217;existe pour les développeurs Java francophones. Grand bravo et bon courage à l&#8217;équipe [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=blog.tartachuc.org&amp;blog=23137075&amp;post=447&amp;subd=tartachuc&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p><img class="alignleft" title="DevoxxFrance" src="http://www.devoxx.fr/download/attachments/5341937/FR12" alt="" width="222" height="92" /></p>
<p>Ce matin lors de la Keynote d&#8217;ouverture de Devoxx, nous avons eu le droit à un &#8220;One more thing&#8221; : la projection d&#8217;une <a href="http://www.youtube.com/watch?v=II6XiGGlJX0&amp;feature=youtu.be">vidéo</a> annonçant l&#8217;organisation d&#8217;une édition Française de la conférence Devoxx.</p>
<p>C&#8217;est une excellente nouvelle, car aucune conférence de ce gabarit n&#8217;existe pour les développeurs Java francophones.</p>
<p>Grand bravo et bon courage à l&#8217;équipe du Paris JUG qui prend en charge cette organisation.</p>
<p>Rendez vous sur le site de <a href="http://www.devoxx.fr/display/FR12/Accueil">DevooxFrance</a> pour plus d&#8217;infos.</p>
<p>&nbsp;</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/tartachuc.wordpress.com/447/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/tartachuc.wordpress.com/447/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/tartachuc.wordpress.com/447/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/tartachuc.wordpress.com/447/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/tartachuc.wordpress.com/447/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/tartachuc.wordpress.com/447/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/tartachuc.wordpress.com/447/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/tartachuc.wordpress.com/447/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/tartachuc.wordpress.com/447/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/tartachuc.wordpress.com/447/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/tartachuc.wordpress.com/447/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/tartachuc.wordpress.com/447/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/tartachuc.wordpress.com/447/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/tartachuc.wordpress.com/447/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=blog.tartachuc.org&amp;blog=23137075&amp;post=447&amp;subd=tartachuc&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://blog.tartachuc.org/2011/11/16/devoxx-france-a-paris-en-avril-2012/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/19b0cd2457923995444d0e963cf799bd?s=96&#38;d=http%3A%2F%2F1.gravatar.com%2Favatar%2Fad516503a11cd5ca435acc9bb6523536%3Fs%3D96&#38;r=G" medium="image">
			<media:title type="html">trecloux</media:title>
		</media:content>

		<media:content url="http://www.devoxx.fr/download/attachments/5341937/FR12" medium="image">
			<media:title type="html">DevoxxFrance</media:title>
		</media:content>
	</item>
		<item>
		<title>Automatiser les changements de schéma de base de données avec Flyway</title>
		<link>http://blog.tartachuc.org/2011/07/05/automatiser-les-changements-de-schema-de-base-de-donnees-avec-flyway/</link>
		<comments>http://blog.tartachuc.org/2011/07/05/automatiser-les-changements-de-schema-de-base-de-donnees-avec-flyway/#comments</comments>
		<pubDate>Tue, 05 Jul 2011 06:30:13 +0000</pubDate>
		<dc:creator>Thomas Recloux</dc:creator>
				<category><![CDATA[Java]]></category>
		<category><![CDATA[flyway]]></category>
		<category><![CDATA[java]]></category>

		<guid isPermaLink="false">http://blog.tartachuc.org/?p=433</guid>
		<description><![CDATA[J&#8217;ai été intrigué par le système de mise à jour de base de données de l&#8217;appliation Sonar. Quand vous installez une nouvelle version, l&#8217;application vous indique que votre base de données est en version x et qu&#8217;il faut la migrer en version y. Un clic et un peu de patience plus tard, la mise à jour [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=blog.tartachuc.org&amp;blog=23137075&amp;post=433&amp;subd=tartachuc&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>J&#8217;ai été intrigué par le système de mise à jour de base de données de l&#8217;appliation <a href="http://www.sonarsource.org/">Sonar</a>. Quand vous installez une nouvelle version, l&#8217;application vous indique que votre base de données est en version x et qu&#8217;il faut la migrer en version y. Un clic et un peu de patience plus tard, la mise à jour de la base de données est effective.</p>
<p>J&#8217;ai également rencontré le même système de mise à jour pour le portail projet <a href="www.redmine.org">Redmine</a>. Le point commun entre ces deux outils : ils sont basés sur <a href="http://rubyonrails.org/">Ruby On Rails</a>, le fameux framework intégré de développement web basé sur le langage Ruby.</p>
<p>Ruby On Rail intègre un outil nommé <a href="http://guides.rubyonrails.org/migrations.html">Migrations</a> qui permet en effet de spécifier des migrations unitaires de base de données, le framework permettant de les appliquer de manière incrémentale.</p>
<p>En Java, les outils de mapping objet/relationnel disposent de fonctions similaires. Par exemple Hibernate sait générer le modèle de base de donnée (DDL) qui correspond à vos entités JPA . Il sait également mettre à jour une base de données pour lui ajouter des éléments (propriété <a href="http://docs.jboss.org/hibernate/core/3.3/reference/en/html/session-configuration.html#configuration-transaction-properties">hibernate.hbm2ddl.auto</a>). Dans de nombreux cas c&#8217;est suffisant. Cependant certains cas ne sont pas gérés, par exemple le changement de type d&#8217;une colonne ou la suppression de colonnes.</p>
<p>J&#8217;ai récemment rencontré un cas ou nous avions besoin d&#8217;aller plus loin, en effet les applications traversent de nombreux environnements de qualification avant d&#8217;arriver en production. Dans ce cas les opérations manuelles sont à éviter le plus possible. J&#8217;ai donc recherché un outil équivalent à Migrations mais en Java.</p>
<p>J&#8217;ai trouvé mon bonheur avec <a href="http://code.google.com/p/flyway/">Flyway</a>, une librairie OpenSource (License Apache 2.0) qui permet d&#8217;automatiser les changements de schéma. L&#8217;idée est simple :</p>
<ul>
<li>Flyway stocke dans une table (SCHEMA_VERSION) un journal des scripts déja executés sur cette base de données</li>
<li>L&#8217;application embarque les scripts SQL suivant une convention de nommage</li>
<li>Au démarrage de l&#8217;application, Flyway calcule l&#8217;écart entre la table SCHEMA_VERSION et les scripts présents dans votre application et applique les nouveaux scripts</li>
</ul>
<div>De plus il est possible d&#8217;écrire les scripts en SQL mais aussi de les écrire en Java pour les opérations plus complexes. Par exemple pour adapter les données au nouveau schéma.</div>
<div>Pour intégrer flyway dans votre application, il est nécessaire d&#8217;ajouter la librairie flyway-core qui s&#8217;appuie sur spring-jdbc.</div>
<div>Pour les utilisateurs de maven, ajouter cette dépendance dans votre pom :</div>
<div><pre class="brush: xml;">
&lt;!-- Migrations de schémas SQL --&gt;
&lt;dependency&gt;
  &lt;groupId&gt;com.googlecode.flyway&lt;/groupId&gt;
  &lt;artifactId&gt;flyway-core&lt;/artifactId&gt;
  &lt;version&gt;1.4&lt;/version&gt;
&lt;/dependency&gt;
</pre></p>
</div>
<p>Les fichiers SQL doivent se trouver dans le classpath de l&#8217;application à l&#8217;exécution, dans un package <em>db.migration</em>. Les utilisateurs de maven les placeront donc dans <em>src/main/resources/db/migration</em> . Les fichiers doivent être nommés sur le pattern suivant : VX_yyy_zzz.sql, X représentant le numéro de version et yyy_zzz étant un libellé de version. Par exemple : <em>V1_initialize.sql</em> ou <em>V6_parameter_table.sql</em> .</p>
<p>Pour lancer la migration, une <a href="http://wiki.flyway.googlecode.com/hg/javadoc/index.html?com/googlecode/flyway/core/Flyway.html">API</a> est disponible. Toutes les opérations sont disponibles dans la classe <a href="http://wiki.flyway.googlecode.com/hg/javadoc/com/googlecode/flyway/core/Flyway.html">Flyway</a>, voici un exemple d&#8217;utilisation :</p>
<div><pre class="brush: java;">
Flyway flyway = new Flyway();
flyway.setDataSource(dataSource);
flyway.migrate();
</pre></p>
</div>
<p>L&#8217;intégration avec Spring est soignée, il suffit de déclarer le bean avec une méthode d&#8217;initialisation</p>
<div><pre class="brush: xml;">
&lt;bean id=&quot;flyway&quot; class=&quot;com.googlecode.flyway.core.Flyway&quot; init-method=&quot;migrate&quot;&gt;
  &lt;property name=&quot;dataSource&quot; ref=&quot;dataSource&quot;/&gt;
&lt;/bean&gt;
</pre></p>
</div>
<div>Pour écrire un script de migration en Java, la encore il faut suivre une convention de nommage. Les classes  doivent se trouver dans le package <em>db.migration </em>et suivre le même pattern de nommage que les scripts. Par exemple : <em>V4_settings_migration.java.</em> Les classes doivent également implémenter l&#8217;interface <a href="http://wiki.flyway.googlecode.com/hg/javadoc/com/googlecode/flyway/core/migration/java/JavaMigration.html">JavaMigration</a>.</div>
<div>Par exemple :</div>
<div><pre class="brush: java;">
package db.migration;

import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.jdbc.core.JdbcTemplate;

import com.googlecode.flyway.core.migration.java.JavaMigration;

public class V54_sample_migration implements JavaMigration {

	private Logger logger = LoggerFactory.getLogger(this.getClass());

	@Override
	public void migrate(JdbcTemplate jdbcTemplate) throws Exception {
		logger.info(&quot;V54_sample_migration STARTING&quot;);
		int countOfActorsNamedJoe = jdbcTemplate.queryForInt(&quot;select count(0) from actors where first_name = ?&quot;, &quot;Joe&quot;);
		jdbcTemplate.update(&quot;update stats set count = ? where first_name = ?&quot;, countOfActorsNamedJoe, &quot;Joe&quot;);
		logger.info(&quot;V54_sample_migration ENDED&quot;);
	}
}

</pre></p>
</div>
<p>Toutes les conventions de nommage sont configurables (package de base, préfixe et suffixe des scripts, &#8230;) . Pour assurer les évolutions d&#8217;un modèle de données existant, il est nécessaire d&#8217;ajuster la propriété <em><a href="http://wiki.flyway.googlecode.com/hg/javadoc/com/googlecode/flyway/core/Flyway.html#setDisableInitCheck(boolean)">disableInitCheck</a></em> à <em>true</em> dans le cas contraire Flyway déclenche une exception.</p>
<p>Bref un outil simple et extrêmement pratique pour rendre le déploiement de vos applications un peu plus fluide.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/tartachuc.wordpress.com/433/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/tartachuc.wordpress.com/433/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/tartachuc.wordpress.com/433/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/tartachuc.wordpress.com/433/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/tartachuc.wordpress.com/433/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/tartachuc.wordpress.com/433/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/tartachuc.wordpress.com/433/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/tartachuc.wordpress.com/433/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/tartachuc.wordpress.com/433/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/tartachuc.wordpress.com/433/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/tartachuc.wordpress.com/433/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/tartachuc.wordpress.com/433/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/tartachuc.wordpress.com/433/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/tartachuc.wordpress.com/433/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=blog.tartachuc.org&amp;blog=23137075&amp;post=433&amp;subd=tartachuc&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://blog.tartachuc.org/2011/07/05/automatiser-les-changements-de-schema-de-base-de-donnees-avec-flyway/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/19b0cd2457923995444d0e963cf799bd?s=96&#38;d=http%3A%2F%2F1.gravatar.com%2Favatar%2Fad516503a11cd5ca435acc9bb6523536%3Fs%3D96&#38;r=G" medium="image">
			<media:title type="html">trecloux</media:title>
		</media:content>
	</item>
		<item>
		<title>HTTP sans session : pourquoi et comment ?</title>
		<link>http://blog.tartachuc.org/2011/06/30/http-sans-session-pourquoi-et-comment/</link>
		<comments>http://blog.tartachuc.org/2011/06/30/http-sans-session-pourquoi-et-comment/#comments</comments>
		<pubDate>Thu, 30 Jun 2011 13:40:33 +0000</pubDate>
		<dc:creator>Thomas Recloux</dc:creator>
				<category><![CDATA[Java]]></category>
		<category><![CDATA[java]]></category>
		<category><![CDATA[session]]></category>

		<guid isPermaLink="false">http://blog.tartachuc.org/?p=428</guid>
		<description><![CDATA[Voici une présentation rapide sur un sujet assez populaire en ce moment : Les applications Web sans session coté serveur d&#8217;application. J&#8217;ai écrit cette présentation avec mon collègue Guillaume, nous y revenons sur les principes basiques de HTTP, à quoi sert une session coté serveur et comment s&#8217;en passer. Http SessionLess : Pourquoi, comment ? [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=blog.tartachuc.org&amp;blog=23137075&amp;post=428&amp;subd=tartachuc&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Voici une présentation rapide sur un sujet assez populaire en ce moment : Les applications Web sans session coté serveur d&#8217;application.</p>
<p>J&#8217;ai écrit cette présentation avec mon collègue <a href="http://walletguillaume.blogspot.com/">Guillaume</a>, nous y revenons sur les principes basiques de HTTP, à quoi sert une session coté serveur et comment s&#8217;en passer.</p>
<div id="__ss_8260320" style="width:425px;"><strong><a title="Http SessionLess : Pourquoi, comment ?" href="http://www.slideshare.net/trecloux/http-sessionless-pourquoi-comment" target="_blank">Http SessionLess : Pourquoi, comment ?</a></strong> <iframe src='http://www.slideshare.net/slideshow/embed_code/8260320' width='425' height='348' scrolling='no'></iframe></p>
<div style="padding:5px 0 12px;">View more <a href="http://www.slideshare.net/" target="_blank">presentations</a> from <a href="http://www.slideshare.net/trecloux" target="_blank">Thomas Recloux</a></div>
</div>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/tartachuc.wordpress.com/428/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/tartachuc.wordpress.com/428/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/tartachuc.wordpress.com/428/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/tartachuc.wordpress.com/428/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/tartachuc.wordpress.com/428/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/tartachuc.wordpress.com/428/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/tartachuc.wordpress.com/428/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/tartachuc.wordpress.com/428/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/tartachuc.wordpress.com/428/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/tartachuc.wordpress.com/428/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/tartachuc.wordpress.com/428/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/tartachuc.wordpress.com/428/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/tartachuc.wordpress.com/428/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/tartachuc.wordpress.com/428/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=blog.tartachuc.org&amp;blog=23137075&amp;post=428&amp;subd=tartachuc&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://blog.tartachuc.org/2011/06/30/http-sans-session-pourquoi-et-comment/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/19b0cd2457923995444d0e963cf799bd?s=96&#38;d=http%3A%2F%2F1.gravatar.com%2Favatar%2Fad516503a11cd5ca435acc9bb6523536%3Fs%3D96&#38;r=G" medium="image">
			<media:title type="html">trecloux</media:title>
		</media:content>
	</item>
		<item>
		<title>WebService &quot;Contract First&quot; avec Spring-WS</title>
		<link>http://blog.tartachuc.org/2010/04/01/webservice-contract-first-avec-spring-ws/</link>
		<comments>http://blog.tartachuc.org/2010/04/01/webservice-contract-first-avec-spring-ws/#comments</comments>
		<pubDate>Thu, 01 Apr 2010 06:12:05 +0000</pubDate>
		<dc:creator>Thomas Recloux</dc:creator>
				<category><![CDATA[Java]]></category>
		<category><![CDATA[java]]></category>
		<category><![CDATA[spring]]></category>

		<guid isPermaLink="false">http://blog.tartachuc.org/?p=192</guid>
		<description><![CDATA[Contract First vs Code First La méthode la plus répandue pour exposer des WebServices en Java est la méthode dite &#8220;Code First&#8221; : on développe un composant Java et on s&#8217;appuie ensuite sur un outil pour exposer ce composant sous forme de WebService. Cet outil va analyser les signatures des méthodes de votre composant et va générer [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=blog.tartachuc.org&amp;blog=23137075&amp;post=192&amp;subd=tartachuc&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<h2>Contract First vs Code First</h2>
<p>La méthode la plus répandue pour exposer des WebServices en Java est la méthode dite &#8220;Code First&#8221; : on développe un composant Java et on s&#8217;appuie ensuite sur un outil pour exposer ce composant sous forme de WebService. Cet outil va analyser les signatures des méthodes de votre composant et va générer un descripteur de WebService : le WSDL. Le développeur jette ensuite un oeil (ou pas) à ce descripteur et se félicite de ne pas avoir eu à écrire ce fichier très verbeux.</p>
<p>Un autre développeur récupère le fameux descripteur WSDL et utilise un autre langage ou un autre outil pour générer le code client et c&#8217;est la que les choses se compliquent souvent.</p>
<p>Je vais prendre comme exemple un service de recherche dans un annuaire, ce service permet de rechercher des personnes à partir de leur nom, prénom et ville de résidence. Deux critères sont obligatoires : le nom et la ville de résidence.</p>
<p>Voici l&#8217;interface Java qui correspond au service :</p>
<p><pre class="brush: java;">
@WebService
public interface AnnuaireService {
	List&lt;Personne&gt; rechercher(String nom, String prenom, String ville);
}
</pre></p>
<p>Une fois ce service déployé à l&#8217;aide de la <a href="http://cxf.apache.org/docs/writing-a-service-with-spring.html">pile de WebService CXF</a>, le WSDL généré déclare le type suivant pour représenter le message de recherche :</p>
<p><pre class="brush: xml;">
&lt;xs:complexType name=&quot;rechercher&quot;&gt;
	&lt;xs:sequence&gt;
		&lt;xs:element minOccurs=&quot;0&quot; name=&quot;arg0&quot; type=&quot;xs:string&quot; /&gt;
		&lt;xs:element minOccurs=&quot;0&quot; name=&quot;arg1&quot; type=&quot;xs:string&quot; /&gt;
		&lt;xs:element minOccurs=&quot;0&quot; name=&quot;arg2&quot; type=&quot;xs:string&quot; /&gt;
	&lt;/xs:sequence&gt;
&lt;/xs:complexType&gt;
</pre></p>
<p>Cette déclaration n&#8217;est pas utilisable dans l&#8217;état, les critères de recherche ne sont pas nommés et tous les critères sont marqués comme optionnels (minOccurs=0).<br />
Il est donc necessaire d&#8217;annoter l&#8217;interface Java pour permettre à CXF de générer un WSDL plus significatif.</p>
<p><pre class="brush: java;">
@WebService
public interface AnnuaireService {
	List&lt;Personne&gt; rechercher(
		@WebParam(name=&quot;nom&quot;) String nom,
		@WebParam(name=&quot;prenom&quot;) String prenom,
		@WebParam(name=&quot;ville&quot;) String ville);
}
</pre></p>
<p>Les critères de recherche sont maintenant nommés dans le WSDL :</p>
<p><pre class="brush: xml;">
&lt;xs:complexType name=&quot;rechercher&quot;&gt;
	&lt;xs:sequence&gt;
		&lt;xs:element minOccurs=&quot;0&quot; name=&quot;nom&quot; type=&quot;xs:string&quot; /&gt;
		&lt;xs:element minOccurs=&quot;0&quot; name=&quot;prenom&quot; type=&quot;xs:string&quot; /&gt;
		&lt;xs:element minOccurs=&quot;0&quot; name=&quot;ville&quot; type=&quot;xs:string&quot; /&gt;
	&lt;/xs:sequence&gt;
&lt;/xs:complexType&gt;
</pre></p>
<p>La spécification JAX-WS ne permet pas de rendre les paramètres obligatoires.</p>
<p>Il existe bien sur des solutions de contournement pour que le WSDL soit plus conforme au contrat du service, mais cet exemple trivial nous montre que la génération du WSDL à partir du code Java necessite d&#8217;enrichir le code avec des méta données et que le résultat ne permet pas d&#8217;utiliser le WSDL généré comme contrat solide entre le producteur et les consommateurs.</p>
<p>Pour que le WSDL reprenne son rôle de contrat, il est important qu&#8217;il spécifie le plus précisément possible les messages d&#8217;entrée et de sortie du WebService. La démarche &#8220;Contract First&#8221; met justement l&#8217;accent sur la contractualisation des messages échangés.</p>
<h2>Contract First avec Spring WS</h2>
<p>Le descripteur WSDL reste très verbeux et la perspective de gérer ces fichiers à la main est assez effrayante. Rassurez vous, nous allons nous contenter de décrire les messages en entrée et sortie à l&#8217;aide de XML Schema (XSD).<br />
Une fois ces messages décrits, nous allons nous appuyer sur JAXB et Spring-WS pour implémenter le contrat.</p>
<p>Voici le schéma décrivant le message de recherche dans l&#8217;annuaire :</p>
<p><pre class="brush: xml;">
&lt;element name=&quot;rechercherRequest&quot;&gt;
	&lt;complexType&gt;
		&lt;annotation&gt;
			&lt;documentation&gt;
				Message d'entrée pour la recherche dans l'annuaire
   		&lt;/documentation&gt;
		&lt;/annotation&gt;
		&lt;sequence&gt;
			&lt;element name=&quot;nom&quot; type=&quot;string&quot; /&gt;
			&lt;element name=&quot;prenom&quot; type=&quot;string&quot; minOccurs=&quot;0&quot; /&gt;
			&lt;element name=&quot;ville&quot; type=&quot;string&quot; /&gt;
		&lt;/sequence&gt;
	&lt;/complexType&gt;
&lt;/element&gt;
</pre></p>
<p>Une configuration rapide de la génération des objets Java à partir du XML Schema à l&#8217;aide de maven 2 :</p>
<p><pre class="brush: xml;">
&lt;plugin&gt;
	&lt;groupId&gt;org.codehaus.mojo&lt;/groupId&gt;
	&lt;artifactId&gt;jaxb2-maven-plugin&lt;/artifactId&gt;
	&lt;version&gt;1.3&lt;/version&gt;
	&lt;executions&gt;
		&lt;execution&gt;
			&lt;goals&gt;
				&lt;goal&gt;xjc&lt;/goal&gt;
			&lt;/goals&gt;
		&lt;/execution&gt;
	&lt;/executions&gt;
&lt;/plugin&gt;
</pre></p>
<p>Et voici l&#8217;objet qui correspond à la requête :</p>
<p><pre class="brush: java;">
@XmlAccessorType(XmlAccessType.FIELD)
@XmlType(name = &quot;&quot;, propOrder = {
    &quot;nom&quot;,
    &quot;prenom&quot;,
    &quot;ville&quot;
})
@XmlRootElement(name = &quot;rechercherRequest&quot;)
public class RechercherRequest {

    @XmlElement(required = true)
    protected String nom;
    protected String prenom;
    @XmlElement(required = true)
    protected String ville;
 ....
 </pre></p>
<p>Certes c&#8217;est verbeux mais c&#8217;est du codé généré donc pas de couts d&#8217;intégration ou de maintenance.</p>
<p>Voici maintenant la signature du composant Java qui prend en charge la requête :</p>
<p><pre class="brush: java;">
@Endpoint
public class AnnuaireEndpoint {
	@PayloadRoot(localPart = &quot;rechercherRequest&quot;, namespace = &quot;http://yellowpages.tartachuc.org&quot;)
	public RechercherResponse rechercher(RechercherRequest request) {

....
</pre></p>
<p>Une première annotation @Endpoint marque la classe et la rend detectable par le &#8220;component-scan&#8221; de spring. La seconde annotation @PayloadRoot indique quel message est traité par la méthode.</p>
<p>Cette mise en oeuvre de Spring-WS permet d&#8217;assurer un contrat WSDL soigné tout en ne pénalisant pas la productivité des développements. Dernier avantage, cette démarche impose de concevoir les messages échangés ce qui favorisera des messages plus expressifs et simples  qui facilitent l&#8217;utilisation des services tout en évitant d&#8217;exposer directement les objets &#8220;privés&#8221;.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/tartachuc.wordpress.com/192/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/tartachuc.wordpress.com/192/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/tartachuc.wordpress.com/192/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/tartachuc.wordpress.com/192/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/tartachuc.wordpress.com/192/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/tartachuc.wordpress.com/192/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/tartachuc.wordpress.com/192/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/tartachuc.wordpress.com/192/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/tartachuc.wordpress.com/192/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/tartachuc.wordpress.com/192/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/tartachuc.wordpress.com/192/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/tartachuc.wordpress.com/192/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/tartachuc.wordpress.com/192/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/tartachuc.wordpress.com/192/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=blog.tartachuc.org&amp;blog=23137075&amp;post=192&amp;subd=tartachuc&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://blog.tartachuc.org/2010/04/01/webservice-contract-first-avec-spring-ws/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/19b0cd2457923995444d0e963cf799bd?s=96&#38;d=http%3A%2F%2F1.gravatar.com%2Favatar%2Fad516503a11cd5ca435acc9bb6523536%3Fs%3D96&#38;r=G" medium="image">
			<media:title type="html">trecloux</media:title>
		</media:content>
	</item>
		<item>
		<title>Sortie de Sonar 1.6</title>
		<link>http://blog.tartachuc.org/2009/02/09/sortie-de-sonar-16/</link>
		<comments>http://blog.tartachuc.org/2009/02/09/sortie-de-sonar-16/#comments</comments>
		<pubDate>Mon, 09 Feb 2009 21:01:52 +0000</pubDate>
		<dc:creator>Thomas Recloux</dc:creator>
				<category><![CDATA[Java]]></category>
		<category><![CDATA[java]]></category>
		<category><![CDATA[sonar]]></category>

		<guid isPermaLink="false">http://blog.tartachuc.org/?p=115</guid>
		<description><![CDATA[Le blog du projet Sonar annonce la sortie de la version 1.6 de ce très bon outil de suivi qualité. Voici une liste des nouveautés : Paramétrages des règles au sein de profils, ces profils contiennent tous les paramètres et sont entièrement exportables. Possibilité de définir des seuils d&#8217;alerte, au sein des profils. Cela permet [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=blog.tartachuc.org&amp;blog=23137075&amp;post=115&amp;subd=tartachuc&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Le blog du projet Sonar <a href="http://sonar.codehaus.org/sonar-16-in-screenshots/">annonce la sortie de la version 1.6 </a>de ce très bon outil de suivi qualité.</p>
<p>Voici une liste des nouveautés :</p>
<ul>
<li>Paramétrages des règles au sein de profils, ces profils contiennent tous les paramètres et sont entièrement exportables.</li>
<li>Possibilité de définir des seuils d&#8217;alerte, au sein des profils. Cela permet de matérialiser le respect des objectifs de qualité du projet par une icône en fonction de son état.<br />
Pour chaque alerte, on peut définir un seuil de &#8220;orange&#8221; et un seuil &#8220;rouge&#8221;. Un flux Atom permet de s&#8217;abonner à ces alertes.</li>
<li>Et enfin, la grosse nouveauté de mon point de vue, la possibilité d&#8217;affecter un profil différent à chaque projet et donc d&#8217;adapter les règles au contexte et aux choix de chaque équipe.</li>
</ul>
<p>A noter que la <a href="http://docs.codehaus.org/display/SONAR/Upgrade+guide">mise à jour</a> se fait sans difficulté.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/tartachuc.wordpress.com/115/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/tartachuc.wordpress.com/115/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/tartachuc.wordpress.com/115/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/tartachuc.wordpress.com/115/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/tartachuc.wordpress.com/115/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/tartachuc.wordpress.com/115/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/tartachuc.wordpress.com/115/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/tartachuc.wordpress.com/115/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/tartachuc.wordpress.com/115/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/tartachuc.wordpress.com/115/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/tartachuc.wordpress.com/115/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/tartachuc.wordpress.com/115/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/tartachuc.wordpress.com/115/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/tartachuc.wordpress.com/115/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=blog.tartachuc.org&amp;blog=23137075&amp;post=115&amp;subd=tartachuc&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://blog.tartachuc.org/2009/02/09/sortie-de-sonar-16/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/19b0cd2457923995444d0e963cf799bd?s=96&#38;d=http%3A%2F%2F1.gravatar.com%2Favatar%2Fad516503a11cd5ca435acc9bb6523536%3Fs%3D96&#38;r=G" medium="image">
			<media:title type="html">trecloux</media:title>
		</media:content>
	</item>
		<item>
		<title>Sortie de Sonar 1.5</title>
		<link>http://blog.tartachuc.org/2008/12/17/sortie-de-sonar-15/</link>
		<comments>http://blog.tartachuc.org/2008/12/17/sortie-de-sonar-15/#comments</comments>
		<pubDate>Wed, 17 Dec 2008 14:28:28 +0000</pubDate>
		<dc:creator>Thomas Recloux</dc:creator>
				<category><![CDATA[Java]]></category>
		<category><![CDATA[java]]></category>
		<category><![CDATA[sonar]]></category>

		<guid isPermaLink="false">http://blog.tartachuc.org/?p=91</guid>
		<description><![CDATA[La version 1.5 de l&#8217;outil de suivi qualité Sonar est sortie aujourd&#8217;hui. J&#8217;ai mis en place cet outil sur un de mes projets et je le trouve très pratique, la configuration est très simple et cela permet à toute l&#8217;équipe d&#8217;avoir une vue à la fois synthétique et précise des marqueurs qualité. La version 1.5 [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=blog.tartachuc.org&amp;blog=23137075&amp;post=91&amp;subd=tartachuc&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p style="text-align:left;">La version 1.5 de l&#8217;outil de suivi qualité <a title="Sonar" href="http://sonar.codehaus.org/">Sonar</a> est sortie aujourd&#8217;hui.</p>
<p>J&#8217;ai mis en place cet outil sur un de mes projets et je le trouve très pratique, la configuration est très simple et cela permet à toute l&#8217;équipe d&#8217;avoir une vue à la fois synthétique et précise des marqueurs qualité.</p>
<p>La version 1.5 amène des changements sympatiques au niveau de l&#8217;interface graphique et surtout une ouverture vers d&#8217;autres outils de mesure via un système de plugins.</p>
<p>Cet <a href="http://sonar.codehaus.org/sonar-15-in-screenshots/">article du blog Sonar</a> détaille les principaux changements</p>
<p>Voici un graphique de suivi qualité que l&#8217;on peut, par exemple, afficher dans la war room ou sur le site projet.</p>
<p><span style="background-color:#ffffff;color:#ffffff;"><img class="aligncenter size-full wp-image-100" title="Indicateurs qualité" src="http://tartachuc.files.wordpress.com/2008/12/221.jpg?w=600" alt="Indicateurs qualité"   /><br />
</span></p>
<p>Sonar est une solution beaucoup plus utilisable que le <a title="Plugin Maven Dashboard" href="http://mojo.codehaus.org/dashboard-maven-plugin/">plugin dashboard maven</a> qui est moins mur.</p>
<p>Dans tous les cas, il faut au minimum que l&#8217;équipe adhère aux règles qualité et il est préférable que l&#8217;équipe définisse elle même les règles de développement.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/tartachuc.wordpress.com/91/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/tartachuc.wordpress.com/91/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/tartachuc.wordpress.com/91/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/tartachuc.wordpress.com/91/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/tartachuc.wordpress.com/91/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/tartachuc.wordpress.com/91/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/tartachuc.wordpress.com/91/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/tartachuc.wordpress.com/91/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/tartachuc.wordpress.com/91/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/tartachuc.wordpress.com/91/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/tartachuc.wordpress.com/91/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/tartachuc.wordpress.com/91/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/tartachuc.wordpress.com/91/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/tartachuc.wordpress.com/91/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=blog.tartachuc.org&amp;blog=23137075&amp;post=91&amp;subd=tartachuc&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://blog.tartachuc.org/2008/12/17/sortie-de-sonar-15/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/19b0cd2457923995444d0e963cf799bd?s=96&#38;d=http%3A%2F%2F1.gravatar.com%2Favatar%2Fad516503a11cd5ca435acc9bb6523536%3Fs%3D96&#38;r=G" medium="image">
			<media:title type="html">trecloux</media:title>
		</media:content>

		<media:content url="http://tartachuc.files.wordpress.com/2008/12/221.jpg" medium="image">
			<media:title type="html">Indicateurs qualité</media:title>
		</media:content>
	</item>
		<item>
		<title>Suivre vos applications avec Appspy</title>
		<link>http://blog.tartachuc.org/2008/11/29/suivre-vos-applications-avec-appspy/</link>
		<comments>http://blog.tartachuc.org/2008/11/29/suivre-vos-applications-avec-appspy/#comments</comments>
		<pubDate>Sat, 29 Nov 2008 14:21:41 +0000</pubDate>
		<dc:creator>Thomas Recloux</dc:creator>
				<category><![CDATA[Java]]></category>
		<category><![CDATA[java]]></category>
		<category><![CDATA[monitoring]]></category>

		<guid isPermaLink="false">http://blog.tartachuc.org/?p=80</guid>
		<description><![CDATA[Olivier m&#8217;a envoyé hier un email pour m&#8217;annoncer la sortie de son nouveau projet OpenSource : Appspy. Appspy offre une solution pour le suivi de vos applications Java coté serveur en production, vous pourrez ainsi consolider toutes sortes de données issues des différentes instances de vos applications et par exemple savoir quelles URLs sont sollicitées, [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=blog.tartachuc.org&amp;blog=23137075&amp;post=80&amp;subd=tartachuc&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p><a title="Olivier" href="http://www.linkedin.com/in/olivierhedin">Olivier</a> m&#8217;a envoyé hier un email pour m&#8217;annoncer la sortie de son nouveau projet OpenSource : <a title="Appspy" href="http://www.appspy.org/index.html">Appspy</a>.</p>
<p><a title="Appspy" href="http://www.appspy.org/index.html">Appspy</a> offre une solution pour le suivi de vos applications Java coté serveur en production, vous pourrez ainsi consolider toutes sortes de données issues des différentes instances de vos applications et par exemple savoir quelles URLs sont sollicitées, quelles URLs sont lentes ou encore comparer les temps de réponse entre deux versions.</p>
<p>Les applications intègrent un module client qui collecte les données et les fournit au serveur qui permet de les visualiser sous formes de rapports paramétrables. Le tout est disponible sous la licence Apache 2.0 qui est &#8220;business friendly&#8221;.</p>
<p>Je ne vais pas tarder à essayer cet outil sur un de mes projets, je vous en dirai plus à ce moment la. Ayant eu l&#8217;occasion d&#8217;utiliser un ancien produit de la même gamme écrit par Olivier, je suis assez impatient <img src='http://s0.wp.com/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /> </p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/tartachuc.wordpress.com/80/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/tartachuc.wordpress.com/80/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/tartachuc.wordpress.com/80/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/tartachuc.wordpress.com/80/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/tartachuc.wordpress.com/80/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/tartachuc.wordpress.com/80/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/tartachuc.wordpress.com/80/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/tartachuc.wordpress.com/80/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/tartachuc.wordpress.com/80/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/tartachuc.wordpress.com/80/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/tartachuc.wordpress.com/80/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/tartachuc.wordpress.com/80/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/tartachuc.wordpress.com/80/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/tartachuc.wordpress.com/80/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=blog.tartachuc.org&amp;blog=23137075&amp;post=80&amp;subd=tartachuc&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://blog.tartachuc.org/2008/11/29/suivre-vos-applications-avec-appspy/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/19b0cd2457923995444d0e963cf799bd?s=96&#38;d=http%3A%2F%2F1.gravatar.com%2Favatar%2Fad516503a11cd5ca435acc9bb6523536%3Fs%3D96&#38;r=G" medium="image">
			<media:title type="html">trecloux</media:title>
		</media:content>
	</item>
		<item>
		<title>Améliorer la productivité sous Eclipse avec MouseFeed.</title>
		<link>http://blog.tartachuc.org/2008/10/30/ameliorer-la-productivite-sous-eclipse-avec-mousefeed/</link>
		<comments>http://blog.tartachuc.org/2008/10/30/ameliorer-la-productivite-sous-eclipse-avec-mousefeed/#comments</comments>
		<pubDate>Thu, 30 Oct 2008 06:39:35 +0000</pubDate>
		<dc:creator>Thomas Recloux</dc:creator>
				<category><![CDATA[Java]]></category>
		<category><![CDATA[eclipse]]></category>
		<category><![CDATA[java]]></category>

		<guid isPermaLink="false">http://blog.tartachuc.org/?p=56</guid>
		<description><![CDATA[Lors du dojo de l&#8217;AgileTour à Lille, Dimitri Baeli avait évoqué un plugin eclipse qui favorisait l&#8217;apprentissage des raccourcis clavier. La lecture de cet article m&#8217;a rappelé son nom et j&#8217;ai donc installé le plugin MouseFeed. Depuis, à chaque fois que j&#8217;utilise la souris alors qu&#8217;un raccourci clavier existe, un marqueur m&#8217;indique le raccourci correspondant. [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=blog.tartachuc.org&amp;blog=23137075&amp;post=56&amp;subd=tartachuc&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Lors du dojo de l&#8217;AgileTour à Lille, Dimitri Baeli avait évoqué un plugin eclipse qui favorisait l&#8217;apprentissage des raccourcis clavier.</p>
<p>La lecture de cet <a title="The best Eclipse plugin you have never heard of: MouseFeed " href="http://www.screaming-penguin.com/node/7615">article </a>m&#8217;a rappelé son nom et j&#8217;ai donc installé le plugin <a title="MouseFeed" href="http://www.mousefeed.com/">MouseFeed.</a></p>
<p>Depuis, à chaque fois que j&#8217;utilise la souris alors qu&#8217;un raccourci clavier existe, un marqueur m&#8217;indique le raccourci correspondant.</p>
<p>Exemple :</p>
<div class="mceTemp">
<dl class="wp-caption alignnone">
<dt class="wp-caption-dt"><img class="size-full wp-image-57" title="Exemple MouseFeed" src="http://tartachuc.files.wordpress.com/2008/10/mousefeed1.png?w=600" alt="Exemple MouseFeed"   /></dt>
</dl>
</div>
<p>Je pense que ce plugin peut nous faire gagner en productivité car bien que fan des raccourcis clavier, j&#8217;ai pu constater lors des <a title="Nord Agile" href="http://groups.google.com/group/nord-agile">dojo </a>que d&#8217;autres en tiraient bien plus avantage.</p>
<p>A noter que par défaut le plugin s&#8217;attribue la combinaison de touches Ctrl + Shift + 1 qui sur les claviers azerty est aussi utilisée pour effectuer la combinaison Ctrl + 1 qui correspond à l&#8217;action &#8220;Quick Fix&#8221; qui permet de lister les correctifs proposés par eclipse. Il faut donc changer l&#8217;un des deux.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/tartachuc.wordpress.com/56/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/tartachuc.wordpress.com/56/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/tartachuc.wordpress.com/56/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/tartachuc.wordpress.com/56/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/tartachuc.wordpress.com/56/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/tartachuc.wordpress.com/56/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/tartachuc.wordpress.com/56/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/tartachuc.wordpress.com/56/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/tartachuc.wordpress.com/56/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/tartachuc.wordpress.com/56/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/tartachuc.wordpress.com/56/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/tartachuc.wordpress.com/56/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/tartachuc.wordpress.com/56/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/tartachuc.wordpress.com/56/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=blog.tartachuc.org&amp;blog=23137075&amp;post=56&amp;subd=tartachuc&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://blog.tartachuc.org/2008/10/30/ameliorer-la-productivite-sous-eclipse-avec-mousefeed/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/19b0cd2457923995444d0e963cf799bd?s=96&#38;d=http%3A%2F%2F1.gravatar.com%2Favatar%2Fad516503a11cd5ca435acc9bb6523536%3Fs%3D96&#38;r=G" medium="image">
			<media:title type="html">trecloux</media:title>
		</media:content>

		<media:content url="http://tartachuc.files.wordpress.com/2008/10/mousefeed1.png" medium="image">
			<media:title type="html">Exemple MouseFeed</media:title>
		</media:content>
	</item>
	</channel>
</rss>
