<?xml version="1.0" encoding="utf-8"?><?xml-stylesheet title="XSL formatting" type="text/xsl" href="http://www.insideit.fr/feed/rss2/xslt" ?><rss version="2.0"
  xmlns:dc="http://purl.org/dc/elements/1.1/"
  xmlns:wfw="http://wellformedweb.org/CommentAPI/"
  xmlns:content="http://purl.org/rss/1.0/modules/content/"
  xmlns:atom="http://www.w3.org/2005/Atom">
<channel>
  <title>insideIT.fr : le blog des architectes IT de SFEIR</title>
  <link>http://www.insideit.fr/</link>
  <atom:link href="http://www.insideit.fr/feed/rss2" rel="self" type="application/rss+xml"/>
  <description></description>
  <language>fr</language>
  <pubDate>Mon, 08 Mar 2010 21:12:31 +0100</pubDate>
  <copyright></copyright>
  <docs>http://blogs.law.harvard.edu/tech/rss</docs>
  <generator>Dotclear</generator>
  
    
  <item>
    <title>Révision Scrum : le backlog produit</title>
    <link>http://www.insideit.fr/post/2010/03/08/R%C3%A9vision-Scrum-%3A-le-product-backlog</link>
    <guid isPermaLink="false">urn:md5:ee403ba3b366c8c602644b2e07a4997e</guid>
    <pubDate>Mon, 08 Mar 2010 21:06:00 +0100</pubDate>
    <dc:creator>Pierre Mage</dc:creator>
        <category>Agile</category>
        <category>Agile</category><category>Backlog Produit</category><category>SCRUM</category>    
    <description>    &lt;p&gt;Le &lt;a href=&quot;http://www.aubryconseil.com/post/Le-backlog-de-produit&quot;&gt;backlog
produit&lt;/a&gt; est la liste des fonctionnalités du produit à développer. Chaque
élément de cette liste est composé au minimum de trois attributs :&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;une description sous la forme d'une &lt;a href=&quot;http://www.qualitystreet.fr/2008/08/25/des-user-stories-de-qualite/&quot;&gt;user
story&lt;/a&gt; ;&lt;/li&gt;
&lt;li&gt;une &lt;a href=&quot;http://www.agilex.fr/2009/12/valeur-metier-en-pratique/&quot;&gt;valeur
métier&lt;/a&gt; ;&lt;/li&gt;
&lt;li&gt;un effort ou une complexité.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;La finalité du backlog produit est d'avoir de la visibilité sur l'état du
projet et de &lt;a href=&quot;http://blog.octo.com/priorisation-des-projets-agiles/&quot;&gt;prioriser&lt;/a&gt; les
développements.&lt;/p&gt;
&lt;p&gt;Le backlog produit est de la responsabilité du product owner.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Valeur métier&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;La valeur métier d'un item est estimée par le product owner.&lt;/p&gt;
&lt;p&gt;C'est la valeur métier des items qui doit diriger la priorisation des
développements. Pour aider à la mise en perspective entre l'accessoire et le
fondamental, il est conseillé d'utiliser la &lt;a href=&quot;http://fr.wikipedia.org/wiki/Suite_de_Fibonacci&quot;&gt;suite de Fibonacci&lt;/a&gt; en
s'efforçant d'utiliser des valeurs très disparates.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Effort ou complexité&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;L'effort nécessaire à la réalisation d'un item est estimé par les personnes
qui seront en charge de la réalisation. Cette valeur est fixe dans le
temps.&lt;/p&gt;
&lt;p&gt;Plus un effort est important, plus son estimation est imprécise. C'est
pourquoi il est conseillé d'utiliser la suite de Fibonnaci pour estimer les
efforts.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Métriques&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Les métriques issues des données du backlog produit donnent de la visibilité
sur l'état actuel du projet et aide à définir les prochaines étapes.&lt;/p&gt;
&lt;p&gt;Le backlog produit est un outil évolutif (ajout, suppression, modification
d'items). Par conséquent, il est souvent intéressant de suivre ces métriques en
points et en pourcentage.&lt;/p&gt;
&lt;p&gt;Ci-dessous, deux exemples de métrique que nous pouvons extraire du backlog
produit.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Vélocité&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;La vélocité est l'effort qu'une équipe peut adresser en un sprint. Cette
mesure s'affine au fil des itérations.&lt;/p&gt;
&lt;p&gt;La vélocité ne doit pas être utilisé pour assurer le suivi de la
productivité d'une équipe mais pour réaliser des projections (e.g. estimer la
date de fin du projet). Une mauvaise utilisation de cette métrique entraine une
inflation des points d'effort et/ou une &amp;quot;course à la vélocité&amp;quot; au détriment de
la qualité.&lt;/p&gt;
&lt;p&gt;Il est également déconseillé de comparer les vélocités de deux équipes du
fait des estimations réalisées sur des échelles différentes. Les estimations
sont relatives, pas absolues.&lt;/p&gt;
&lt;p&gt;Par contre, il est intéressant de suivre l'évolution de la vélocité d'une
équipe. Une diminution de la vélocité traduit souvent un manque d'évolutivité
du produit développé ou l'apparition de nombreux bugs.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Valeur métier acquise&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Cette métrique détermine la valeur des développements réalisés.&lt;/p&gt;
&lt;p&gt;Si le backlog est correctement priorisé, l'évolution de la valeur métier
acquise doit diminuer au cours des itérations car les items de plus grande
valeur sont traités en premier.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Quelques liens&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;http://www.qualitystreet.fr/2010/02/05/dans-scrum-mon-backlog-de-produit-est-deep/&quot;&gt;
Dans SCRUM mon backlog de produit est DEEP&lt;/a&gt;&lt;br /&gt;
&lt;a href=&quot;http://www.aubryconseil.com/post/Le-backlog-de-produit&quot;&gt;Le backlog
produit&lt;/a&gt;&lt;br /&gt;
&lt;a href=&quot;http://www.qualitystreet.fr/2008/08/25/des-user-stories-de-qualite/&quot;&gt;Des user
stories de qualité&lt;/a&gt;&lt;br /&gt;
&lt;a href=&quot;http://www.agilex.fr/2009/12/valeur-metier-en-pratique/&quot;&gt;Valeur métier
en pratique&lt;/a&gt;&lt;br /&gt;
&lt;a href=&quot;http://blog.octo.com/priorisation-des-projets-agiles/&quot;&gt;Comment mieux
prioriser en agile&lt;/a&gt;&lt;br /&gt;
&lt;a href=&quot;http://fr.wikipedia.org/wiki/Suite_de_Fibonacci&quot;&gt;Suite de
Fibonacci&lt;/a&gt;&lt;/p&gt;</description>
    
    
    
          <comments>http://www.insideit.fr/post/2010/03/08/R%C3%A9vision-Scrum-%3A-le-product-backlog#comment-form</comments>
      <wfw:comment>http://www.insideit.fr/post/2010/03/08/R%C3%A9vision-Scrum-%3A-le-product-backlog#comment-form</wfw:comment>
      <wfw:commentRss>http://www.insideit.fr/feed/atom/comments/494965</wfw:commentRss>
      </item>
    
  <item>
    <title>Révision Agile : ScrumMaster ? C'est quoi déjà ?</title>
    <link>http://www.insideit.fr/post/2010/02/26/R%C3%A9vision-Agile-%3A%C2%A0Scrum-Master-C-est-quoi-d%C3%A9j%C3%A0</link>
    <guid isPermaLink="false">urn:md5:06527fc73b2b4a38ca260d1fc3ddb8a4</guid>
    <pubDate>Fri, 26 Feb 2010 21:20:00 +0100</pubDate>
    <dc:creator>Pierre Mage</dc:creator>
        <category>Agile</category>
        <category>Agile</category><category>SCRUM</category><category>ScrumMaster</category>    
    <description>    &lt;p&gt;La semaine prochaine, le ScrumMaster du projet sur lequel je travaille sera
en vacance. Étant donné que je vais assurer son remplacement, j'en profite pour
réviser le rôle du ScrumMaster.&lt;/p&gt;
&lt;p&gt;Alors, qu'est-ce qu'un ScrumMaster ?&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Un facilitateur&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;L'une des missions du ScrumMaster est de s'assurer que les autres membres de
l'équipe restent concentrés sur le véritable objectif du projet : la
livraison de valeur pour le client.&lt;br /&gt;
Il écarte les obstacles qui jonchent le parcours menant à la livraison et si
possible avant même qu'ils ne surviennent.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Un coach&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Dans le processus d'amélioration continue, le ScrumMaster joue le rôle du
coach.&lt;br /&gt;
Il aide l'équipe à prendre conscience de ses qualités et faiblesses. Puis il
fait en sorte de conserver les acquis tout en travaillant les points
faibles.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Un animateur&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Il organise et anime les activités Scrum tel que sprint planning, daily
Scrum, sprint review et rétrospective.&lt;br /&gt;
Il fait en sorte que tous les membres de l'équipe se sentent impliqué et libre
de s'exprimer.&lt;br /&gt;
Autant que faire se peut, le ScrumMaster s'assure que tous les membres de
l'équipe sont contents de travailler.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Le garant des pratiques Scrum&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Un ScumMaster, comme l'indique son nom, a une bonne connaissance de Scrum.
De par cette connaissance, le ScrumMaster s'impose comme le garant de la bonne
utilisation des pratiques de Scrum.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Quelques liens&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;http://www.aubryconseil.com/post/2007/01/07/148-le-role-de-scrummaster&quot;&gt;Le
rôle de ScrumMaster&lt;/a&gt;&lt;br /&gt;
&lt;a href=&quot;http://www.developpez.net/forums/d816728/general-developpement/conception/methodes/methodes-agiles/on-etre-scrum-master-developpeur-meme-projet/&quot;&gt;
Peut-on à la fois être ScrumMaster et développeur sur un même projet
?&lt;/a&gt;&lt;br /&gt;
&lt;a href=&quot;http://www.qualitystreet.fr/2008/09/04/alerte-agile-n4-mon-scrummaster-en-fait-trop/&quot;&gt;
Mon ScrumMaster en fait trop !&lt;/a&gt;&lt;br /&gt;&lt;/p&gt;</description>
    
    
    
      </item>
    
  <item>
    <title>Le Paris JUG a 2 ans !</title>
    <link>http://www.insideit.fr/post/2010/02/04/Le-Paris-JUG-a-2-ans-%21</link>
    <guid isPermaLink="false">urn:md5:7c02e6a6ab038c8ef0727b97d4d77066</guid>
    <pubDate>Thu, 04 Feb 2010 23:21:00 +0100</pubDate>
    <dc:creator>Tanguy Bayard</dc:creator>
        <category>Java</category>
            
    <description>    &lt;a href=&quot;http://www.insideit.fr/public/juggyannif02.jpg&quot;&gt;&lt;img style=&quot;border-bottom: 0; border-left: 0; display: inline; margin-left: 0; border-top: 0; margin-right: 0; border-right: 0&quot; title=&quot;juggyannif02&quot; border=&quot;0&quot; alt=&quot;juggyannif02&quot; align=&quot;right&quot; src=&quot;http://www.insideit.fr/public/juggyannif02_thumb.jpg&quot; width=&quot;244&quot; height=&quot;216&quot; /&gt;&lt;/a&gt;
&lt;p&gt;Le Paris JUG fêtera son 2ème anniversaire mardi 9 février. Pour célébrer
l'événement, l'équipe organise une soirée spéciale consacrée à l'Open-Source en
France. Sacha Labourey, ancien CTO de JBoss fera la keynote. &lt;a href=&quot;http://www.jmdoudoux.fr/blog/index.php?post/2010/01/25/Second-anniversaire-du-Paris-JUG&quot;&gt;
Jean-Michel Doudoux&lt;/a&gt; sera également présent afin de nous présenter les
différentes licences permettant la diffusion libre de documentations.&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;http://www.jugevents.org/jugevents/event/23793&quot;&gt;Les inscriptions
sont ouvertes&lt;/a&gt;, rendez-vous mardi au &lt;a href=&quot;http://www.parisjug.org/xwiki/bin/view/Location/SorbonneParisIV&quot;&gt;108 boulevard
Malesherbes&lt;/a&gt; !&lt;/p&gt;
&lt;p&gt;Sfeir est sponsor de l'événement : c'est également l'occasion de venir nous
rencontrer pendant la pause-buffet !&lt;/p&gt;</description>
    
    
    
      </item>
    
  <item>
    <title>Evénement : Conférence &quot;Jump Camp 4 IT&quot; jeudi 21 janvier à 19h</title>
    <link>http://www.insideit.fr/post/2010/01/15/Ev%C3%A8nement-%3A-Conf%C3%A9rence-%22Jump-Camp-4-IT%22-jeudi-21-janvier-%C3%A0-19h</link>
    <guid isPermaLink="false">urn:md5:ace4846ffa1a9f6f6795feb76172f4b5</guid>
    <pubDate>Fri, 15 Jan 2010 00:04:00 +0100</pubDate>
    <dc:creator>Fabien Baligand</dc:creator>
        <category>Web 2.0</category>
        <category>conférence</category><category>GWT</category><category>jumpcamp4it</category><category>Wave</category>    
    <description>    &lt;p&gt;Jeudi prochain aura lieu le premier opus du &lt;a href=&quot;https://sites.google.com/site/jumpcamp4it/&quot;&gt;Jump Camp 4 IT&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Alors Jump Camp 4 IT, c'est quoi ?&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Jump Camp 4 IT est une mini conférence en soirée sur Paris mêlant
présentations et ateliers de coding, destinés aux passionnés des technologies
de l'information.&lt;/strong&gt;&lt;br style=&quot;font-weight: bold;&quot; /&gt;
Ainsi, ce qui est intéressant dans ce format, c'est que cela vous permet de
mettre un premier pied à l'étrier sur le framework présenté, et non pas juste
d'écouter une présentation théorique. Il est donc conseillé de venir avec son
ordinateur portable pour profiter pleinement des présentations ;)&lt;/p&gt;
&lt;p&gt;Ah, et petit détail qui ravira tout le monde : &lt;strong&gt;c'est
gratuit.&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Le premier opus de la série aura lieu jeudi prochain, soit le 21 janvier, de
19h à 21h.&lt;br /&gt;
Au programme, 6 présentations/séances de coding live autour des dernières
technologies/tendances web du moment :&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Surprise...&lt;/strong&gt; : une présentation/annonce surprise par Didier
Girard&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Atmosphere&lt;/strong&gt; :  un framework permettant de faire des
applications web asynchrones (Comet) à partir de simples POJO (&lt;a href=&quot;https://atmosphere.dev.java.net/&quot; rel=&quot;nofollow&quot;&gt;https://atmosphere.dev.java.net&lt;/a&gt;)&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;HTML5&lt;/strong&gt; : découverte de html5 step by step&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Robots Wave et le WadRobotFramework&lt;/strong&gt; : un framework qui
simplifie énormément la création de robots pour Google Wave (&lt;a href=&quot;http://goo.gl/6pOC&quot;&gt;http://goo.gl/6pOC&lt;/a&gt;)&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Sisyphe version GWT&lt;/strong&gt; : une interface à refaire ?
reprogrammer ? Non, utilisez dès maintenant sisyphe.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt; gwt-mvc&lt;/strong&gt; : Framework pour GWT permettant de
structurer le code client en suivant le design pattern MVC (&lt;a href=&quot;http://code.google.com/p/gwt-mvc/&quot;&gt;http://code.google.com/p/gwt-mvc/&lt;/a&gt;) &lt;/li&gt;
&lt;/ul&gt;
&lt;br /&gt;
Si vous souhaitez vous inscrire, connaître le lieu exact de la conférence, ou
avoir plus de détails sur les présentations, &lt;a href=&quot;https://sites.google.com/site/jumpcamp4it/planning/web-developpeur-nous-et-demain&quot;&gt;
c'est par ici&lt;/a&gt;.&lt;br /&gt;
&lt;br /&gt;</description>
    
    
    
      </item>
    
  <item>
    <title>La communication, entre efficacité et complétude : L'échelle d'humanité</title>
    <link>http://www.insideit.fr/post/2009/12/18/Moyens-de-communication%2C-entre-efficacit%C3%A9-et-compl%C3%A9tude-%3A-L-%C3%A9chelle-d-humanit%C3%A9</link>
    <guid isPermaLink="false">urn:md5:d025cf49f3474405b3ae63110002f60f</guid>
    <pubDate>Fri, 18 Dec 2009 20:00:00 +0100</pubDate>
    <dc:creator>Laurent Capin &lt;Multi-Targeting&gt;</dc:creator>
        <category>Web 2.0</category>
        <category>Communication</category><category>Echelle d humanité</category><category>Laurent</category>    
    <description>    &lt;h2&gt;Communiquer pour le projet.&lt;/h2&gt;
&lt;p&gt;Dans des projets où parfois les acteurs sont distants, la communication est
un facteur déterminant de succès ou d'échec. C'est même l'élément essentiel du
projet. Mais de quelle communication parle-t-on ? Dans le cadre d'un
projet, la communication doit couvrir :&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;La Connaissance.&lt;/li&gt;
&lt;li&gt;Les Statuts.&lt;/li&gt;
&lt;li&gt;Le Ressenti.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;&lt;br /&gt;&lt;/p&gt;
&lt;h2&gt;Le formel et l'informel&lt;/h2&gt;
&lt;p&gt;Le DDD introduit la notion d'Ubiquitous Language, ce langage défini et
partagé par les différents acteurs du projet. Je voudrais ici mettre l'accent
sur l'optimisation des échanges. Comment fait-on pour être sûr que
l'information est bien partagée, qu'elle l'est dans son entier et qu'elle l'est
à temps ? Sachant que dans la communication, il y a des données
intangibles, certes, mais aussi des données informelles où rentre le subjectif,
le ressenti. Le daily scrum permet d'échanger cette seconde catégorie
d'information. Et c'est indispensable. Par exemple, si on ne communique pas, on
ne perçoit pas les frustrations à temps et on se retrouve face à des problèmes
de turn-over.&lt;/p&gt;
&lt;p&gt;&lt;br /&gt;&lt;/p&gt;
&lt;h2&gt;L'acteur et son texte&lt;/h2&gt;
&lt;p&gt;Vous préférez voir un film ou lire son scénario ?&lt;br /&gt;&lt;/p&gt;
&lt;p&gt;On est tous d'accord pour dire qu'un projet n'irait pas très loin si les
gens se contentaient d'en discuter autour d'un café, sans jamais échanger autre
chose que des impressions, des bons mots et des généralités. Mais à l'inverse,
parieriez-vous sur l'avenir d'un projet, où les acteurs ne se voient jamais
mais s'envoient des tonnes de fichiers Word ? Personnellement, je n'y
mettrais pas un Euro.&lt;br /&gt;&lt;/p&gt;
&lt;p&gt;La communication informelle, qui profite de la complicité s'installant entre
l'émetteur d'une information et ceux auxquels elle s'adresse, passe par le
visuel et l'auditif. Il y faut un peu de spectacle, pour que l'essentiel soit
retenu. On parle alors du Body Language, on y retrouve les notions d'empathie,
de synchronisation. Je préfère dix fois aller voir David Chappell dans &lt;a href=&quot;http://www.insideit.fr/post/2009/10/09/Azure-%3A-Prepare-to-be-a-part-of-it&quot; hreflang=&quot;fr&quot;&gt;sa
présentation sur Azure et sur le Cloud&lt;/a&gt;, que lire son livre-blanc sur le
même sujet. Je préfère aussi traverser le bâtiment, et aller échanger avec un
collègue, de vive voix, plutôt que d'attendre sa réponse à mon mail. Pas un
leader, aussi bon soit-il, ne fera passer sa vision dans un mail, un article,
une news. Ce sont de bons supports, pour tracer et conserver mais ce ne sont
que des supports. Et la communication sans le communiquant, c'est un peu le
plat sans le cuisinier. C'est du Picard. Ce n'est pas forcément mauvais mais
servi comme ça, c'est froid.&lt;/p&gt;
&lt;p&gt;&lt;br /&gt;&lt;/p&gt;
&lt;h2&gt;Entre trop et trop peu&lt;/h2&gt;
&lt;p&gt;Il y a quelque chose qui ressort de l'observation des échanges entre
personnes, c'est la relative proportion inverse entre la quantité de données
échangées et la perception qui en est faite. Si je vous dis : &amp;quot;Le projet
est mort&amp;quot;. Le message est clair, on aura tous compris qu'on peut rentrer à la
maison. Si je vous envoie un document de 758 pages de diagrammes, de tableaux,
de bilans, d'analyses d'experts et si dans un élan de professionnalisme rare,
vous allez jusqu'à le lire, n'allons pas jusqu'à dire &amp;quot;en entier&amp;quot;, vous en
sortirez confus, désorienté, partagé, vous demandant si on a juste essayé de
vous beurrer les lunettes ou si votre intelligence commence déjà à décliner.
Voyez, rien que cette phrase. Il vous a fallu la lire deux fois, non ?&lt;/p&gt;
&lt;p&gt;&lt;br /&gt;&lt;/p&gt;
&lt;h2&gt;L'échelle d'humanité&lt;/h2&gt;
&lt;p&gt;Partant du constat de cette proportion inverse, je me suis amusé à essayer
de situer sur un rapport entre la quantité de données échangée et leur
perception, les différents médias utilisables dans le cadre d'un projet. Et
voici de que ça donne :&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;http://www.insideit.fr/public/HumanityScale.png&quot; alt=&quot;HumanityScale&quot; title=&quot;HumanityScale, déc. 2009&quot; /&gt;&lt;/p&gt;
&lt;p&gt;Reprenons le diagramme, dans l'ordre de lecture.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Le face à face a le meilleur degré de perception possible, de partage, avec
un volume utile d'informations limité.&lt;/li&gt;
&lt;li&gt;Le live-meeting (écran et web-cam interposés) perd juste un peu
d'humanité.&lt;/li&gt;
&lt;li&gt;Le téléphone est un peu en retrait car on perd l'information visuelle donc
une bonne part de la communication informelle.&lt;/li&gt;
&lt;li&gt;Le chat (IM) permet d'échanger plus de données puisqu'il est écrit, tout en
restant &amp;quot;dans la discussion&amp;quot; donc de garder un fort aspect humain. Il offre
aussi un bon équilibre entre rapidité et pertinence dans la réponse.&lt;/li&gt;
&lt;li&gt;Le mail est plus factuel, il prend note, il prend date, il permet de tracer
la transmission. Mais il perd en spontanéité. Il devrait être réservé soit à
des réponses plus construites ou pour les aspects intentionnellement plus
formels ou officiels, souvent nominatifs, comme un bon rappel à l'ordre ou une
félicitation.&lt;/li&gt;
&lt;li&gt;Le blog et son flux RSS restent vivants, tout en fournissant un somme
importante d'informations actuelles, à jour. Ce sera le pouls du projet. Il
peuvent donner l'état des builds, les infos générales de la vie du projet, ses
grandes étapes, événements ou incidents.&lt;/li&gt;
&lt;li&gt;Le Wiki, outil essentiel de tout projet, devrait contenir l'ensemble des
informations du projet. Et comme il est collaboratif, il garde aussi un aspect
humain encore perceptible. Il décrira les pratiques et les procédures du
projet. Il garde en somme tous les sujets statiques du projet quand le Blog
reçoit les sujets dynamiques.&lt;/li&gt;
&lt;li&gt;La documentation classique elle, est au maximum pour le volume de données
mais c'est le degré zéro de l'échange humain.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;br /&gt;
J'ai omis à dessein deux outils, pourtant très prometteurs, même au niveau
projet, que sont Wave et Twitter. La raison est simple, je n'ai encore aucune
idée de l'endroit où les placer. Mais je ferais une petite piqure de rappel,
quand j'aurai soigné cet aspect de communication virale.&lt;/p&gt;
&lt;p&gt;&lt;br /&gt;&lt;/p&gt;
&lt;h2&gt;Voulez-vous réussir ?&lt;/h2&gt;
&lt;p&gt;Alors, lequel de ces médias utiliser ? Si vous voulez vraiment que
votre projet avance, vous n'avez pas le choix,
il-vous-les-faut-tous !&lt;br /&gt;&lt;/p&gt;
&lt;p&gt;Chaque média a son objectif et son cycle de vie, chacun doit avoir son cadre
d'utilisation et ses limites établies. Certains sont là pour aider à s'y
retrouver, d'autres favorisent l'esprit d'équipe, d'autres encore permettent de
guider la troupe. Vous voulez prendre le risque de vous passer de l'un de ces
médias ?&lt;br /&gt;
Préférez-vous alors :&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Que les gens soient perdus ?&lt;/li&gt;
&lt;li&gt;Qu'ils se détestent ?&lt;/li&gt;
&lt;li&gt;Ou qu'ils ne sachent juste pas où aller ?&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Un camionneur peut se passer de cartes, de CB (l'éméteur radio, pas le moyen
de paiement) et de GPS. Mais entre nous, c'est une économie de courte
vue ! Aujourd'hui, on a tous les outils pour organiser et optimiser un
flux d'informations efficientes. Et là où certains y voient des gadgets, osons
y voir le panel d'outils indispensables et sinon une garantie de succès, en
tout cas des alliés sûrs et fidèles sur la route qui y mène.&lt;/p&gt;
&lt;p&gt;&lt;br /&gt;&lt;/p&gt;
&lt;h2&gt;Think Big, Start Small&lt;/h2&gt;
&lt;p&gt;En supposant que vous avez le téléphone et un ordinateur relié au réseau
(sic), installer un wiki prend 5 minutes, un blog 5 de plus. S'abonner à un
flux RSS prend 30 secondes. Installer un outil de Chat prend bien 10 minutes.
Alors mis bout à bout, tout ça prend donc 20 minutes et 30 secondes. Ce qui est
plus long, c'est le temps d'adoption par tous les acteurs des outils et de
leurs avantages. Il y en a bien encore aujourd'hui qui résistent au téléphone
portable ! Faites-vous l'évangéliste de vos outils. Les convertis seront
nombreux.&lt;br /&gt;&lt;/p&gt;
&lt;p&gt;Bien sûr, il faudra éviter la redondance, qui est source d'incohérence. Par
exemple entre la documentation classique et le Wiki projet. Mais une fois
encore, ces deux médias ne visant pas les mêmes acteurs, ils ne devraient pas
contenir les mêmes informations et ce, de façon naturelle. Et puis la
redondance, c'est déjà un problème de riche. J'ai l'impression de conseiller à
un acheteur de bateau, de faire attention à la taille du mât pour passer sous
les ponts ou que le bateau ne soit pas trop grand pour entrer dans le port,
quand ce qu'il veut, c'est traverser la rivière. Il sera toujours temps quand
les outils seront là et utilisés, de veiller à ne pas trop les utiliser
(sic).&lt;br /&gt;&lt;/p&gt;
&lt;p&gt;Et puis il ne faut pas hésiter à faire &amp;quot;signer&amp;quot; une charte de bon usage des
médias de communications, pour mettre d'accord tout le monde sur le périmètre
de chaque média, ce qui peut y être échangé, ce qui ne le peut pas. Ne cherchez
pas trop, elle est juste au dessus.&lt;br /&gt;&lt;/p&gt;
&lt;p&gt;Je ne sais pas si on est déjà dans le Web 4.0 ou encore dans le Web 3.0 mais
ce que je sais, c'est que les outils du Web 2.0 peuvent vous aider dans vos
projets. Alors, prêts à communiquer ?&lt;/p&gt;</description>
    
    
    
      </item>
    
  <item>
    <title>Petite présentation de MooTools</title>
    <link>http://www.insideit.fr/post/2009/12/02/Petite-pr%C3%A9sentation-de-MooTools</link>
    <guid isPermaLink="false">urn:md5:cb6c1233504fa8963260382b177bb851</guid>
    <pubDate>Wed, 02 Dec 2009 14:44:00 +0100</pubDate>
    <dc:creator>SRO</dc:creator>
            
    <description>    &lt;p&gt;Pour mon premier article sur ce blog, j'ai choisi de présenter &lt;a href=&quot;http://mootools.net/&quot;&gt;MooTools&lt;/a&gt;, un framework Javascript open source
orienté objet distribué sous licence MIT.&lt;br /&gt;
Après une rapide présentation des bases, je montrerai, grâce à quatre courts
exemples, quelques unes des possibilités de MooTools, en espérant vous donner
l'envie d'aller plus loin par vous-mêmes.&lt;/p&gt;
&lt;p&gt;&lt;ins&gt;&lt;strong&gt;Récupération de la librairie MooTools&lt;/strong&gt;&lt;/ins&gt;&lt;/p&gt;
&lt;p&gt;La version actuelle est la 1.2.4, le &lt;a href=&quot;http://mootools.net/download&quot;&gt;core&lt;/a&gt; est disponible sur le site officiel en
version compressée (par YUI ou JSMin) et non compressée.&lt;br /&gt;
Il est également possible de définir sa propre version de MooTools en
choisissant les modules à intégrer au moment du téléchargement, ce qui permet
d'en optimiser la taille au maximum.&lt;br /&gt;
Les plugins officiels sont disponibles &lt;a href=&quot;http://mootools.net/more&quot;&gt;ici&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;&lt;ins&gt;&lt;strong&gt;La classe Element&lt;/strong&gt;&lt;/ins&gt;&lt;/p&gt;
&lt;p&gt;Element est la classe de base de MooTools, c'est par elle que l'on doit
passer pour créer ou récupérer un noeud DOM.&lt;br /&gt;
Des getters et setters permettent de manipuler les attributs des noeuds, les
styles et les événements :&lt;/p&gt;
&lt;pre&gt;
 var myButton = new Element('button');
 myButton.set('text', 'Je suis un bouton');
&lt;/pre&gt;
&lt;p&gt;Ci-dessous, un exemple de création d'un bouton plus complet utilisant la
syntaxe JSON :&lt;/p&gt;
&lt;pre&gt;
 var myOtherButton = new Element('button', {
   'class': 'BigButton',
   'html': 'Je suis un tr&amp;amp;egrave;s gros bouton',
   'styles': { 'font-size': '14px', 'font-weight': 'bold' },
   'events': {
     'click': function(){ alert('Click'); },
     'mouseover': function(){ alert('Mouseover'); }
   }
 });
&lt;/pre&gt;
&lt;p&gt;&lt;ins&gt;&lt;strong&gt;Le parcours de l'arborescence&lt;/strong&gt;&lt;/ins&gt;&lt;/p&gt;
&lt;p&gt;La fonction $ permet de récupérer un Element unique :&lt;/p&gt;
&lt;pre&gt;
 var buttonOK = $('btnOK'); // retourne l'Element ayant l'ID 'btnOK';
&lt;/pre&gt;
&lt;p&gt;La fonction $$ permet de récupérer une collection d'Element :&lt;/p&gt;
&lt;pre&gt;
 var forms = $$('form'); // retourne tous les formulaires
 var inputsWithValue = $$('input[value]'); // retourne tous les inputs ayant l'attribut 'value'
 var gifImages = $$('img[src$=.gif]'); // retourne toutes les images ayant l'extension '.gif'
 var buttons = $$('button', 'input[type=button]'); // retourne tous les boutons et les inputs de type bouton
 var bigInputs = $$('#form input.BigButton'); // retourne tous les inputs de classe 'BigButton' appartenant à l'élément ayant l'ID 'form'
&lt;/pre&gt;
&lt;p&gt;A noter qu'il est possible de travailler directement à partir des noeuds
DOM :&lt;/p&gt;
&lt;pre&gt;
 var buttonOK = $(document.getElementById('btnOK'));
 var inputs = $$(document.getElementsByTagName('input'))
&lt;/pre&gt;
&lt;p&gt;Pour les recherches qui doivent s'effectuer à partir d'un élément précis, il
existe les fonctions getElement() et getElements() :&lt;/p&gt;
&lt;pre&gt;
 var loginForm = $('loginForm');
 var loginInputs = loginForm.getElements('input');
&lt;/pre&gt;
&lt;p&gt;&lt;strong&gt;Exemple 1 : création d'un bouton qui change le style de la
page&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Nous allons commencer par créer un bouton en HTML, avec un identifiant afin
de le retrouver plus facilement.&lt;br /&gt;
Le code Javascript se résumera à l'ajout de l'évènement 'click' sur ce bouton
et à la création de la fonction à appeler.&lt;br /&gt;
Cette dernière se contente ici de modifier la couleur du body et de la police,
et d'ajouter un padding-left à tous les paragraphes.&lt;/p&gt;
&lt;p&gt;Code HTML :&lt;/p&gt;
&lt;pre&gt;
 &amp;lt;button id=&amp;quot;btnStyle&amp;quot;&amp;gt;Changer le style&amp;lt;/button&amp;gt;
&lt;/pre&gt;
&lt;p&gt;Code Javascript :&lt;/p&gt;
&lt;pre&gt;
 window.addEvent('domready', function() {
   $('btnStyle').addEvent('click', changeStyle);
 }
 var changeStyle = function() {
   $(document.body).setStyles({ 'background-color': '#000000', 'color': '#ffffff' });
   $$('p').each(function(p) {
     p.setStyle('padding-left', '20px');
   });
 }
&lt;/pre&gt;
&lt;p&gt;&lt;ins&gt;&lt;strong&gt;Les évènements&lt;/strong&gt;&lt;/ins&gt;&lt;/p&gt;
&lt;p&gt;L'évènement 'domready' permet de lancer l'exécution d'une fonction lorsque
le DOM est prêt, c'est-à-dire lorsque l'arborescence est prête à être lue et
écrite.&lt;br /&gt;
La différence avec 'onload' est que la vérification ne se fait que sur le DOM
et non sur les ressources annexes telles que CSS, images... etc...&lt;/p&gt;
&lt;pre&gt;
 window.addEvent('domready', function() {
   alert('Traitement...');
 });
&lt;/pre&gt;
&lt;p&gt;Les autres évènements sont les évènements Javascript traditionnels :&lt;br /&gt;
- boutons de la souris (click, dblclick, mouseup, mousedown, contextmenu,
mousewheel, ...)&lt;br /&gt;
- mouvements de la souris (mousemove, mouseover, mouseout, ...)&lt;br /&gt;
- clavier (keypress, keydown, keyup, ...)&lt;br /&gt;
- fenêtre (load, unload, beforeunload, resize, move, ...)&lt;br /&gt;
- éléments (focus, blur, change, reset, ...)&lt;/p&gt;
&lt;p&gt;Il est possible de créer un évènement personnalisé grâce à table
Element.Events, puis de l'appeler comme un autre évènement.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Exemple 2 : création d'un évènement pour gérer le déplacement
d'un conteneur&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;La première étape consiste à créer un container en position absolute et de
lui donner un identifiant pour nous permettre de le récupérer rapidement.&lt;br /&gt;
A l'intérieur nous mettons une image, un avion qui va se déplacer lorsqu'on
appuie sur la flèche de droite ou sur la touche D.&lt;br /&gt;
Puis, nous créons l'évènement, en lui fournissant un évènement de base,
keydown, et une fonction précisant les conditions pour que l'évènement soit
lancé.&lt;/p&gt;
&lt;p&gt;Code HTML :&lt;/p&gt;
&lt;pre&gt;
 &amp;lt;div id=&amp;quot;plane&amp;quot; style=&amp;quot;position: absolute&amp;quot;&amp;gt;&amp;lt;img src=&amp;quot;avion.png&amp;quot;/&amp;gt;&amp;lt;/div&amp;gt;
&lt;/pre&gt;
&lt;p&gt;Code Javascript :&lt;/p&gt;
&lt;pre&gt;
 Element.Events.planemove = {
   'base': 'keydown',
   'condition': function(event) {
     return event.key == &amp;quot;d&amp;quot; || event.key == &amp;quot;right&amp;quot;;
   }
 };
 $(document).addEvent('planemove', function(event) {
   var image = $('plane');
   var pos = image.getPosition();
   pos.x++;
   image.setPosition({ 'x': pos.x, 'y': pos.y });
 });
&lt;/pre&gt;
&lt;p&gt;&lt;ins&gt;&lt;strong&gt;Les classes&lt;/strong&gt;&lt;/ins&gt;&lt;/p&gt;
&lt;p&gt;MooTools permet de créer ses propres classes.&lt;br /&gt;
L'héritage se définit par Extends et Implements, le premier permettant de
redéfinir les variables et fonctions de la classe mère mais pas le
second.&lt;br /&gt;
Le constructeur correspond à la fonction initialize.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Exemple 3 : création d'une classe Square pour dessiner des
carrés sur la page&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Afin de présenter l'héritage, commençons par créer une classe Shape.&lt;br /&gt;
Celle-ci ne définit qu'un constructeur, contenant les coordonnées du point
d'origine de la forme à dessiner.&lt;br /&gt;
Puis nous créons la classe Square, qui hérite de Shape, et qui possède une
largeur.&lt;br /&gt;
La fonction draw() nous permet de dessiner le carré dans le body, en utilisant
un div correspondant aux positions et dimensions.&lt;/p&gt;
&lt;pre&gt;
 var Shape = new Class({
   'initialize': function(options) {
     this.x = options.x;
     this.y = options.y;
   }
 });
 var Square = new Class({
   'Extends': Shape,
   'initialize': function(options) {
     this.parent(options)
     this.width = options.width;
   },
   'draw': function() {
     if (this.width) {
       var element = new Element('div', {
         'text': 'Carré',
         'styles': {
           'position': 'absolute',
           'top': this.x,
           'left': this.y,
           'height': this.width,
           'width': this.width,
           'background-color': '#AA0000'
         }
       }).inject(document.body);
     }
     return this;
   }
 });
 var square = new Square({ 'x': 300, 'y': 30, 'width': 100 });
 square.draw();
&lt;/pre&gt;
&lt;p&gt;&lt;ins&gt;&lt;strong&gt;Les effets&lt;/strong&gt;&lt;/ins&gt;&lt;/p&gt;
&lt;p&gt;La librairie utilisée est MooFX, disponible également pour Prototype.&lt;br /&gt;
Les effets utilisent des transitions, une transition pouvant être linéaire,
cubique, élastique... etc...&lt;br /&gt;
Les effets présents dans le Core sont Tween et Morph, le premier permet
d'appliquer une transition sur une valeur CSS, et le second de le faire sur
plusieurs.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Exemple 4 : création d'un menu simple qui apparait lorsqu'on
clique sur un bouton&lt;/strong&gt;&lt;br /&gt;
&lt;strong&gt;Attention, cet exemple requiert un plugin disponible sur le site
officiel, Fx.Slide.&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Le menu ci-dessous se compose d'une liste de liens affichés en colonne, et
masqués (barre de menu).&lt;br /&gt;
Ils apparaissent et disparaissent lorsqu'on clique sur un bouton (flèche), avec
un effet de glissement.&lt;br /&gt;
Remarque : le style (couleurs, images, marges...) doit être codé en CSS et
donc ne se trouve pas ci-dessous.&lt;/p&gt;
&lt;pre&gt;
 // Menus à afficher
 var menuLabels = [['Menu 1', 'http://mootools.net'],
     ['Menu 2', 'http://www.sfeir.com'],
     ['Menu 3', 'http://www.google.fr']];
 // Barre de menu
 var menuBar;
 // Classe créée pour la barre de menu
 var MenuBar = new Class({
   'initialize': function(items) {
   // Menus à afficher
   this.items = items;
   // Element de l'arborescence
   this.rootElement = new Element('div');
   if (this.items) {
     var l = this.items.length;
       for (var i = 0; i &amp;lt; l; i++) {
         var a = new Element('a', {
           'text': this.items[i][0],
           'class': 'Menu',
           'href': this.items[i][1],
           'events': {
             // Petit effet de rollover
             'mouseover': function() { this.set('class', 'MenuOver'); },
             'mouseleave': function() { this.set('class', 'Menu'); }
           }
         }).inject(this.rootElement);
       }
     }
   },
   // Fonction permettant d'ajouter la barre de menu à un élément parent
   // Le slide hide permet de la masquer instantanément au démarrage
   'appendTo': function(parentElement) {
     this.rootElement.inject(parentElement).slide('hide');
   },
   // Ouverture de la barre : on fait apparaître les liens avec la transition Bounce
   'open': function() {
     this.rootElement.set('slide', {duration: 'long', transition: 'bounce:out'}).slide('in');
   },
   // Fermeture de la barre : on fait disparaître les liens avec la transition Pow
   'close': function() {
     this.rootElement.set('slide', {duration: 'long', transition: 'pow:out'}).slide('out');
   }
 });
 // Bouton pour ouvrir le menu
 var opacity = 0.4;
 var openArrow = new Element('div', {
   'html': '&amp;amp;#9660;',
   'class': 'Arrow',
   'styles': { 'opacity': opacity },
   'events': {
     'mouseover': function() {
       this.setStyle('text-decoration', 'underline');
       this.fade(1);
     },
     'mouseleave': function() {
       this.setStyle('text-decoration', 'none');
       this.fade(opacity);
     },
     'click': function() {
       openMenu();
     }
   }
 });
 // Bouton pour fermer le menu
 var closeArrow = new Element('div', {
   'html': '&amp;amp;#9650;',
   'class': 'Arrow',
   'events': {
     'click': function() { closeMenu(); }
   }
 });
 // Fonction d'ouverture du menu : on change de flèche et on ouvre la barre de menus
 function openMenu() {
   closeArrow.replaces(openArrow);
   menuBar.open();
 }
 // Fonction de fermeture du menu : on change de flèche et on ferme la barre de menus
 function closeMenu() {
   openArrow.replaces(closeArrow);
   menuBar.close();
 }
 window.addEvent('domready', function() {
   // Création d'un wrapper en position absolute
   var menuWrapper = new Element('div', {
     'styles': { 'position': 'absolute', 'width': '100%', 'top': '0px', 'left': '0px', 'text-align': 'center' }
   });
   menuWrapper.inject($(document.body));
   // Création de la barre de menu
   menuBar = new MenuBar(menuLabels);
   menuBar.appendTo(menuWrapper);
   // Ajout du bouton d'ouverture
   openArrow.inject(menuWrapper);
 }
&lt;/pre&gt;
&lt;p&gt;&lt;ins&gt;&lt;strong&gt;Conclusion&lt;/strong&gt;&lt;/ins&gt;&lt;/p&gt;
&lt;p&gt;Cet article a présenté les bases de MooTools, c'est-à-dire comment manipuler
les éléments, créer des classes et des événements.&lt;br /&gt;
Le framework contient d'autres outils, par exemple pour gérer les cookies, les
requêtes au format XML, HTML et JSON.&lt;/p&gt;
&lt;p&gt;La spécificité de MooTools est qu'il dispose d'un ensemble de classes qui en
fait quasiment un langage de programmation complet.&lt;br /&gt;
Là où avec jQuery par exemple, la création d'un élément se résume à une copie
de code HTML, MooTools utilise une syntaxe plus naturelle au programmeur objet,
plus structurée et plus simple à maintenir.&lt;/p&gt;
&lt;p&gt;La contrepartie est la nécessité de connaître un minimum Javascript et la
programmation objet, ce qui peut rebuter ceux qui ne se sentent pas
particulièrement à l'aise et qui souhaitent simplement avoir rapidement du code
qui tourne.&lt;/p&gt;
&lt;p&gt;De plus, MooTools possède une communauté moins importante que ses
concurrents les plus célèbres, les principaux inconvénients étant les plugins
moins nombreux, et le fait qu'on peut avoir un peu plus de difficulté à trouver
des réponses à ses questions lorsqu'on se trouve face à un problème.&lt;br /&gt;&lt;/p&gt;</description>
    
    
    
      </item>
    
  <item>
    <title>Le Motorola Droid (Milestone) débarque en France</title>
    <link>http://www.insideit.fr/post/2009/12/02/Le-Motorola-Droid-%28Milestone%29-d%C3%A9barque-en-France</link>
    <guid isPermaLink="false">urn:md5:5d299a8f330b62f757dd9ebd34b1183b</guid>
    <pubDate>Wed, 02 Dec 2009 00:09:00 +0100</pubDate>
    <dc:creator>Fabien Baligand</dc:creator>
        <category>Java</category>
        <category>Android</category><category>Droid</category><category>Milestone</category>    
    <description>    &lt;p&gt;&lt;img title=&quot;poster_motorola_milestone, déc. 2009&quot; style=&quot;margin: 0 1em 1em 0; float: left; width: 279px; height: 371px;&quot; alt=&quot;&quot; src=&quot;http://www.insideit.fr/public/motorola_droid/.Motorola_Droid_005_m.jpg&quot; /&gt;Ce soir, j'ai pu assister
à la soirée de présentation officielle du tout nouveau Motorola Droid (nommé
Milestone en Europe), à l'occasion de sa commercialisation en France, et ce,
dès ce soir.&lt;/p&gt;
&lt;p&gt;Ce smartphone est un des plus attendus parmi les andro-phones : beaucoup y
voient (espèrent) le tant attendu iphone killer. Pour preuve de sa popularité,
à sa sortie aux états-unis (le 6 novembre), 250 000 exemplaires ont été vendus
la première semaine...&lt;br /&gt;
Autre facteur faisant que ce téléphone attire l'attention (et pas des moindres)
: il s'agit du premier téléphone équipé de Android 2.0.&lt;/p&gt;
&lt;p&gt;Trêve de teasing, passons aux faits !&lt;/p&gt;
&lt;p&gt;La présentation est lancée par Jacques Rames, président de Motorola France,
qui nous annonce que :&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Motorola a fait le choix d'Android en 2008, pour simplifier le
développement multi-plateformes en interne et pour la facilité de déploiement
d'applications (comparé à l'App Store d'Apple bien entendu).&lt;/li&gt;
&lt;li&gt;Le Milestone est le deuxième téléphone Android de la marque et le début
d'une longue série : Motorola projète de sortir pas moins de 10 smartphones
Android en 2010, et souhaite devenir leader dans le domaine des smartphones
(comme beaucoup me direz-vous).&lt;/li&gt;
&lt;/ul&gt;
Suite à cela, rueducommerce, qui sera - pour au moins les quelques semaines à
venir - le vendeur exclusif du Motorola Milestone en France, nous annonce les
tarifs :&lt;br /&gt;
&lt;ul&gt;
&lt;li&gt;à partir de 89 euros avec un forfait chez Bouygues Telecom ou
SFR&lt;img title=&quot;pack multimedia et support voiture, déc. 2009&quot; style=&quot;margin: 0 0 1em 1em; float: right;&quot; alt=&quot;&quot; src=&quot;http://www.insideit.fr/public/motorola_droid/.Motorola_Droid_018_s.jpg&quot; /&gt;&lt;/li&gt;
&lt;li&gt;beaucoup plus cher chez Virgin Mobile ou Orange (à partir de 189 euros et
219 euros !)&lt;/li&gt;
&lt;li&gt;549 euros le téléphone nu, sans abonnement&lt;/li&gt;
&lt;/ul&gt;
  Pour ceux qui le souhaitent, vous pouvez dès maintenant &lt;a href=&quot;http://www.rueducommerce.fr/Telephonie/Smartphone-PDAphone/Smartphone-PDAphone/MOTOROLA/3003070-Smartphone-MOTOROLA-MILESTONE-Station-Multimedia-Support-pour-voiture.htm&quot;&gt;
réserver ce téléphone en pré-commande chez rueducommerce&lt;/a&gt;. On nous a annoncé
le début des livraisons mi-décembre (pour que tout le monde puisse avoir un
joli Milestone sous son sapin de Noël ;)&lt;br /&gt;
Soit dit en passant, et ça aussi c'est Noël, jusqu'à fin décembre, pour le même
prix, rueducommerce offre 60 euros d'accessoires en plus : un support
multimédia (pour servir de mini-chaine hi-fi), et un support voiture (pour
servir de GPS). Voir photo ci-contre.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Bien, l'aspect marketing et commercial étant passé, passons au côté technique
!&lt;br /&gt;
Alors, qu'a t-il dans le ventre ce fameux Milestone ? Voici ses principales
caractéristiques :&lt;img title=&quot;clavier ouvert, déc. 2009&quot; style=&quot;margin: 0 1em 1em 0; float: left; width: 285px; height: 226px;&quot; alt=&quot;&quot; src=&quot;http://www.insideit.fr/public/motorola_droid/.Milestone_Front_Open_FR_clo_s.jpg&quot; /&gt;&lt;br /&gt;
&lt;ul&gt;
&lt;li&gt;un écran très grand de 3,7 pouces (tout en restant compact)&lt;/li&gt;
&lt;li&gt;le support du multi-touch&lt;/li&gt;
&lt;li&gt;un processeur puissant cortex A8&lt;/li&gt;
&lt;li&gt;une mémoire vive conséquente de 256 Mo (comme l'iphone 3GS)&lt;/li&gt;
&lt;li&gt;un clavier physique AZERTY coulissant (pas comme l'iphone ;)&lt;/li&gt;
&lt;li&gt;un appareil photo 5 MegaPixels avec flash double LED et auto-focus&lt;/li&gt;
&lt;li&gt;un enregistreur vidéo (annoncé de qualité DVD !)&lt;/li&gt;
&lt;li&gt;un mémoire interne de 8 Go extensible à 32 Go&lt;/li&gt;
&lt;li&gt;WIFI, Bluetooth, USB 2.0, Micro-SD&lt;/li&gt;
&lt;li&gt;un GPS, et un logiciel GPS développé par Motorola (malheureusement valable
que 60 jours. Après, il faut passer à la caisse)&lt;/li&gt;
&lt;li&gt;équipé de Android 2.0&lt;/li&gt;
&lt;li&gt;équipé d'un navigateur intégrant Flash 10 (on va en reparler...)&lt;/li&gt;
&lt;/ul&gt;
Vous l'aurez compris, la liste des caractéristiques est plutôt alléchante, et
il me tardait d'essayer concrètement l'appareil, pour voir s'il était à la
hauteur de son impressionnante plaquette. Vous allez le voir, j'ai eu des
bonnes et des mauvaises surprises. Petit retour d'expérience :&lt;img title=&quot;en mode portrait, déc. 2009&quot; style=&quot;margin: 0 0 1em 1em; float: right; width: 165px; height: 286px;&quot; alt=&quot;&quot; src=&quot;http://www.insideit.fr/public/motorola_droid/.Milestone_Front_FR_clock_s.jpg&quot; /&gt;&lt;br /&gt;
&lt;ul&gt;
&lt;li&gt;Tout d'abord, &lt;strong&gt;l'esthétique&lt;/strong&gt; (c'est le premier truc qu'on
voit) : on appréciera son grand écran, ses 4 boutons tactiles assez jolis, et
une épaisseur assez fine pour un smartphone embarquant un clavier. Néanmoins,
je le trouve un peu trop rectangulaire (peu arrondi), et le clavier est assez
austère en comparaison au dernier LG GW620.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;L'écran :&lt;/strong&gt; l'écran est assez grand, et réagit très bien
(écran capactif).&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Le multi-touch :&lt;/strong&gt; très fonctionnel pour le zoom sur les
photos, et sur les sites internet. Par contre, ne marche bizarrement pas sur
les maps (contrairement à un iphone...). Pour cela, il faut
double-cliquer.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Le clavier :&lt;/strong&gt; si je ne le trouve pas très esthétique, il
est pour autant très efficace, le toucher est agréable et réactif.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;La rapidité/puissance :&lt;/strong&gt; globalement, la navigation est
fluide et précise (l'écran capacitif aidant). J'ai noté toutefois quelques
ralentissements lorsqu'on est sur le slideshow de photos.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Les photos :&lt;/strong&gt; très bonne qualité de photo, même dans un
endroit sombre, le double-flash marche très bien, et pas de flou. Les photos
sont ensuite partageables sur facebook, myspace, picasa, ...&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Les vidéos :&lt;/strong&gt; j'ai été bluffé par la qualité des vidéos
prises ! De même pour le son. C'est fluide, de bonne résolution et il y a un
stabilisateur d'image. J'ai vu notamment une vidéo d'une piscine où on voit
tous les détails des vagues. Par ailleurs, les vidéos sont partageables sur
Youtube d'un clic.&lt;/li&gt;
&lt;/ul&gt;
&lt;br /&gt;
Mais, me direz-vous, on est sur un blog technique et orienté
développement/technologies, non ? Alors parlons de la star de ce Milestone,
Android 2.0 :&lt;br /&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;La recherche :&lt;/strong&gt; première fonctionnalité testée, la
recherche intégrée dans le système d'exploitation. Le test est faussé par le
fait que le téléphone est pour ainsi dire vide, mais néanmoins c'est
convaincant. En quelques lettres tapées, on retrouve les contacts, les
applications, les musiques de notre téléphone. Puis on le voit, dans un
deuxième temps, il va chercher sur internet pour compléter la liste. Les
résultats sont rapides, très pratique !&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;MySign :&lt;/strong&gt; voici typiquement l'application qui m'a beaucoup
plu. On dessine une lettre au doigt (qui peut être en fait n'importe quel
geste), et il ouvre l'application paramétrée ! Très rigolo, mais aussi très
ingénieux comme système de raccourci. Ce qui est particulièrement intéressant,
c'est qu'on peut définir nos propres gestes, et leurs applications
associées.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Intégration de Flash 10 dans le navigateur :&lt;/strong&gt; il s'agit là
de ma grande déception. Annoncé partout sur les plaquettes de Motorola, lorsque
l'on va avec le téléphone sur un site Flash comme &lt;a href=&quot;http://beta.parleys.com&quot;&gt;http://beta.parleys.com&lt;/a&gt;, on obtient un joli
message indiquant que Flash n'est pas supporté... J'ai essayé avec d'autres
sites, même problème... C'était de loin la fonctionnalité que j'attendais le
plus (notamment d'un point de vue performance), et là, j'ai été très surpris et
déçu de constater que ce n'est même pas fonctionnel. Les commerciaux nous ont
expliqué que ce n'était pas la bonne version, mais je n'ai pas trouvé leurs
arguments très convaincants.&lt;img title=&quot;sfeir on milestone !, déc. 2009&quot; style=&quot;margin: 0 1em 1em 0; float: left;&quot; alt=&quot;&quot; src=&quot;http://www.insideit.fr/public/motorola_droid/.Motorola_Droid_030_s.jpg&quot; /&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Vive GWT et l'HTML 5 :&lt;/strong&gt; Par contre, une application GWT 2.0
et HTML 5, ça marche très bien ! La preuve avec cette superbe application
développée par SFEIR (^^) et qui fonctionne très bien sur le Motorola
Milestone.&lt;/li&gt;
&lt;/ul&gt;
&lt;br /&gt;</description>
    
    
    
      </item>
    
  <item>
    <title>Vidéo de présentation de la conférence pour le Web organisée par GET (Efrei)</title>
    <link>http://www.insideit.fr/post/2009/11/28/Vid%C3%A9o-de-pr%C3%A9sentation-de-la-conf%C3%A9rence-pour-le-Web-organis%C3%A9-par-GET-%28Efrei%29</link>
    <guid isPermaLink="false">urn:md5:935484173c93208bb9ac67de35ad4735</guid>
    <pubDate>Sat, 28 Nov 2009 21:39:00 +0100</pubDate>
    <dc:creator>Patrice</dc:creator>
        <category>Web 2.0</category>
            
    <description>    Nous en avons déjà parlé sur &lt;a href=&quot;http://www.insideit.fr/post/2009/11/23/La-conf%C3%A9rence-innovation-web2&quot;&gt;ce blog&lt;/a&gt;.
&lt;div&gt;Voici la vidéo très réussie pour présenter cette conférence :&lt;/div&gt;
&lt;object width=&quot;425&quot; height=&quot;344&quot;&gt;&lt;param name=&quot;movie&quot; value=&quot;http://www.youtube.com/v/zdADfbLBRwg&amp;amp;color1=0xd6d6d6&amp;amp;color2=0xf0f0f0&amp;amp;hl=en_US&amp;amp;feature=player_embedded&amp;amp;fs=1&quot; /&gt;
&lt;param name=&quot;allowFullScreen&quot; value=&quot;true&quot; /&gt;
&lt;param name=&quot;allowScriptAccess&quot; value=&quot;always&quot; /&gt;
&lt;div&gt;Au programme :&lt;/div&gt;
&lt;div&gt;
&lt;ul&gt;
&lt;li&gt;Android : par Ludovic Perrier&lt;/li&gt;
&lt;li&gt;GWT/Google Wave : par Didier Girard&lt;/li&gt;
&lt;li&gt;Standard du Web : par Patrick Chanezon&lt;/li&gt;
&lt;li&gt;Cocktail à 17h00&lt;/li&gt;
&lt;li&gt;Atelier Android par le GTUG (Google Technologie User Group) à partir de
19h30&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;div&gt;Inscrivez-vous sur le sur &lt;a href=&quot;http://www.g-e-t.fr&quot;&gt;g-e-t.fr&lt;/a&gt;.&lt;/div&gt;
&lt;/object&gt;</description>
    
    
    
      </item>
    
  <item>
    <title>GWT, en francais dans le texte</title>
    <link>http://www.insideit.fr/post/2009/11/24/GWT%2C-en-francais-dans-le-texte</link>
    <guid isPermaLink="false">urn:md5:2b45ab4e38b7a0466f6e0e6b758388a5</guid>
    <pubDate>Tue, 24 Nov 2009 13:27:00 +0100</pubDate>
    <dc:creator>dgirard</dc:creator>
        <category>.NET</category>
            
    <description>    &lt;p&gt;Le premier livre, en français, sur GWT est disponible dans toutes les bonnes
librairies. Ce livre a été rédigé par Olivier Gerardin, un collègue de SFEIR
Benelux.&lt;/p&gt;
&lt;p&gt;Ce livre est le premier ouvrage intégrant un chapitre sur la nouvelle
version de GWT : GWT2.&lt;/p&gt;
&lt;p&gt;Félicitations à Olivier !&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;http://www.amazon.fr/GWT-applications-interactives-Toolkit-versions/dp/2100531824&quot;&gt;
GWT – Créer des applications web interactives avec Google Web Toolkit&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;http://www.insideit.fr/public/WindowsLiveWriter/GWTenfrancaisdansletexte_BC45/image_2.png&quot;&gt;
&lt;img title=&quot;image&quot; style=&quot;border-top-width: 0px; display: inline; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px&quot; height=&quot;244&quot; alt=&quot;image&quot; src=&quot;http://www.insideit.fr/public/WindowsLiveWriter/GWTenfrancaisdansletexte_BC45/image_thumb.png&quot; width=&quot;244&quot; border=&quot;0&quot; /&gt;&lt;/a&gt;&lt;/p&gt;</description>
    
    
    
      </item>
    
  <item>
    <title>SLF4J &amp; LOGBack : simplifiez-vous les logs</title>
    <link>http://www.insideit.fr/post/2009/11/23/SLF4J-LOGBack</link>
    <guid isPermaLink="false">urn:md5:971a94399918340fbf87dcb227eb1e90</guid>
    <pubDate>Tue, 24 Nov 2009 10:01:00 +0100</pubDate>
    <dc:creator>Ludovic Meurillon</dc:creator>
        <category>Java</category>
        <category>DEVOXX 2009</category><category>Log</category><category>Log4j</category><category>LOGBack</category><category>SLF4J</category>    
    <description>    &lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Verdana; font-size: 13px;&quot;&gt;&lt;img src=&quot;http://www.insideit.fr/public/logbacklogo.jpg&quot; alt=&quot;&quot; title=&quot;LOGBack Logo, nov. 2009&quot; style=&quot;float: left; margin-top: 0; margin-right: 1em; margin-bottom: 1em; margin-left: 0; width: 115px; height: 65px;&quot; /&gt;&lt;br /&gt;
&lt;/span&gt;
&lt;div&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Verdana; font-size: 13px;&quot;&gt;Mercredi dernier, lors de la première
journée de conférences du Devoxx, &lt;span style=&quot;font-family: sans-serif;&quot;&gt;Ceki Gülcü, nous a présenté deux framework de
logs complémentaires SLF4J et logback.&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;div&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: sans-serif; font-size: 13px;&quot;&gt;&lt;strong&gt;&lt;br /&gt;&lt;/strong&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: sans-serif; font-size: 13px;&quot;&gt;&lt;strong&gt;&lt;br /&gt;&lt;/strong&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: sans-serif; font-size: 13px;&quot;&gt;&lt;strong&gt;SLF4J&lt;/strong&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;margin-top: 0; margin-bottom: 0;&quot;&gt;&lt;span style=&quot;font-family: sans-serif;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;margin-top: 0; margin-bottom: 0;&quot;&gt;Ceki Gülcü a d'abord
commencé sa présentation par la présentation de &lt;a id=&quot;dn45&quot; href=&quot;http://www.slf4j.org/&quot; title=&quot;SFL4J&quot; style=&quot;color: rgb(85, 26, 139);&quot; name=&quot;dn45&quot;&gt;SFL4J&lt;/a&gt; (&lt;span style=&quot;font-family: arial, sans-serif;&quot;&gt;The Simple
Logging Facade for Java), qui consiste en une API (slf4j-api.jar) permettant
d'harmoniser les appels de log dans le code Java quelle que soit
l'implémentation choisie (log4j ou JUL par exemple). Il explique au passage la
possibilité de brancher sur son application utilisant SLF4J une implémentation
noop (no operation performed).&lt;br /&gt;
&lt;br /&gt;
Le speaker (et créateur de SLF4J) présente ce dernier comme un potentiel
doublon de commons-logging à quelques différences prêt comme le choix de
l'implémentation choisie par le framework qui se fait automatiquement
(dynamiquement) dans commons-logging et de manière manuelle (statique) dans
SLF4J en important le jar adéquat dans le classpath
:  slf4j-logj12.jar pour log4j, slf4j-jdk14.jar pour JUL
(java.util.logging) ou encore logback-classic.jar pour utiliser
logback.&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;margin-top: 0; margin-bottom: 0;&quot;&gt;&lt;span style=&quot;font-family: arial, sans-serif;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;margin-top: 0; margin-bottom: 0;&quot;&gt;&lt;span style=&quot;font-family: arial, sans-serif;&quot;&gt;Le speaker est ensuite passé aux choses plus
concrètes en montrant quelques exemple d'appel SLF4J, il a notamment mis
l'accent sur la possibilité d'utiliser des messages paramétrés qui ne seront
construits (i.e. qui ne consommeront de ressources) que s'il doivent être
affichés. Pour démontrer son propos il a donné l'exemple suivant
:&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;margin-bottom: 0; margin-top: 0; text-align: left&quot;&gt;&lt;br /&gt;
&lt;table id=&quot;u8e.&quot; cellpadding=&quot;3&quot; cellspacing=&quot;0&quot; border=&quot;1&quot; class=&quot;&quot; style=&quot;font-size: 1em; line-height: inherit; border-collapse: collapse;&quot;&gt;
&lt;tbody&gt;
&lt;tr style=&quot;text-align: left;&quot;&gt;
&lt;td width=&quot;33.333333333333336%&quot;&gt;La vieille méthode&lt;/td&gt;
&lt;td width=&quot;33.333333333333336%&quot;&gt;La méthode moins naïve mais verbeuse&lt;/td&gt;
&lt;td width=&quot;33.333333333333336%&quot;&gt;&lt;strong&gt;La méthode SLF4J, intelligente et
concise&lt;/strong&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;text-align: left;&quot;&gt;
&lt;td width=&quot;33.333333333333336%&quot;&gt;&lt;span style=&quot;font-family: 'Courier New'; color: rgb(102, 102, 102);&quot;&gt;logger.debug(&amp;quot;Nom=&amp;quot;+nom);&lt;/span&gt;&lt;/td&gt;
&lt;td width=&quot;33.333333333333336%&quot;&gt;
&lt;div style=&quot;margin-top: 0; margin-bottom: 0; text-align: left; font-family: 'Courier New'; color: rgb(102, 102, 102);&quot;&gt;
if(logger.isDebugEnabled()){&lt;/div&gt;
&lt;div style=&quot;margin-top: 0; margin-bottom: 0; text-align: left;font-family: 'Courier New'; color: rgb(102, 102, 102);&quot;&gt;
    logger.debug(&amp;quot;Nom=&amp;quot;+nom);&lt;/div&gt;
&lt;div style=&quot;margin-top: 0; margin-bottom: 0; text-align: left; font-family: 'Courier New'; color: rgb(102, 102, 102);&quot;&gt;
}&lt;/div&gt;
&lt;/td&gt;
&lt;td width=&quot;33.333333333333336%&quot;&gt;&lt;span style=&quot;font-family: 'Courier New'; color: rgb(102, 102, 102);&quot;&gt;logger.debug(&amp;quot;Nom=&lt;strong&gt;{}&lt;/strong&gt;&amp;quot;,nom);&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;/div&gt;
&lt;div style=&quot;margin-top: 0; margin-bottom: 0; text-align: left;&quot;&gt;&lt;br /&gt;
Il a ensuite abordé les autres fonctionnalités offertes par SLF4J, parmis
lesquelles :&lt;br /&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style=&quot;margin-top: 0; margin-bottom: 0; text-align: left;&quot;&gt;
&lt;ul style=&quot;margin-top: 0; margin-bottom: 0;&quot;&gt;
&lt;li style=&quot;margin-top: 0; margin-bottom: 0;&quot;&gt;L'accès au &lt;a id=&quot;l6ru&quot; href=&quot;http://www.slf4j.org/api/org/slf4j/MDC.html&quot; title=&quot;MDC&quot; style=&quot;color: rgb(85, 26, 139);&quot; name=&quot;l6ru&quot;&gt;&lt;strong&gt;MDC&lt;/strong&gt;&lt;/a&gt;&lt;strong&gt; &lt;/strong&gt;(Mapped Diagnostic
Context) qui permet d'attacher des variables de log à un Thread comme par
exemple le login de l'utilisateur ayant fait la requête permettant ainsi de
suivre les logs de sa session de manière triviale même au sein de logs
complètement entrelacés. Les informations stoquées dans le MDC sont ensuite
utilisables directement dans les patterns de log utilisés dans la configuration
de la couche de logging.&lt;br /&gt;
&lt;br /&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;div style=&quot;margin-top: 0; margin-bottom: 0; text-align: left;&quot;&gt;
&lt;ul style=&quot;margin-top: 0; margin-bottom: 0;&quot;&gt;
&lt;li style=&quot;margin-top: 0; margin-bottom: 0;&quot;&gt;
Les &lt;strong&gt;Markers &lt;/strong&gt;hiérarchisés qui permettent en quelque
sorte d'affecter des tags aux différents logs. Les applications sont évidemment
nombreuses mais Ceki &lt;span style=&quot;font-family: sans-serif;&quot;&gt;Gülcü &lt;/span&gt;a donné un exemple assez simple où
les Marker sont utilisés pour marquer les
logs &lt;em&gt;&amp;quot;confidentiels&amp;quot;&lt;/em&gt; et ou les différents Appender
encryptent ces logs &lt;em&gt;&amp;quot;confidentiels&amp;quot;&lt;/em&gt;. Grâce aux Markers il est
donc possible de créer des comportements spécifiques quelle que soit l'origine
du log.&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;div style=&quot;margin-top: 0; margin-bottom: 0; text-align: left;&quot;&gt;&lt;br /&gt;
SLF4J a ensuite été abordé toujours sous l'angle d'un framework
d'uniformisation des logs applicatifs mais cette fois-ci en regardant
l'intégration de ce dernier sur des projets utilisant déjà un pou plusieurs
systèmes de logs. Il est aisin possible de créer une véritable passerelle entre
commons-logging, log4j, JUL avec SLF4J afin de centraliser la gestion et la
configuration des logs d'une application. Pour cela il suffit de remplacer les
jar d'implémentation du (des) système(s) utilisés (comme commons-logging.jar ou
log4j.jar) par des jar d'interception de logs (respectivement
jcl-over-slf4j.jar et log4j-over-slf4j.jar). Dans le cas de JUL il faut
cependant faire un petit effort de paramètrage (déclaration d'un logger dans le
rootLogger).&lt;/div&gt;
&lt;div style=&quot;margin-top: 0; margin-bottom: 0; text-align: left;&quot;&gt;&lt;br /&gt;
Pour ceux qui auraient simplement envie de remplacer (et non pas aggreger) le
système de logs de leur application, Ceki &lt;span style=&quot;font-family: sans-serif;&quot;&gt;Gülcü &lt;/span&gt;a créé un utilitaire simple de
migration vers SLF4J : &lt;strong&gt;&lt;a id=&quot;qh:i&quot; href=&quot;http://www.slf4j.org/migrator.html&quot; title=&quot;le SLF4J Migrator&quot; style=&quot;color: rgb(85, 26, 139);&quot; name=&quot;qh:i&quot;&gt;le SLF4J Migrator&lt;br /&gt;
&lt;br /&gt;&lt;/a&gt;&lt;/strong&gt;&lt;/div&gt;
&lt;div style=&quot;margin-top: 0; margin-bottom: 0; text-align: left;&quot;&gt;
&lt;strong&gt;Logback&lt;br /&gt;
&lt;br /&gt;&lt;/strong&gt;&lt;/div&gt;
&lt;div style=&quot;margin-top: 0; margin-bottom: 0; text-align: left;&quot;&gt;La créateur du
framework nous a d'abord mis dans le bain en définissant LOGBack comme le
successeur de Log4J, expliquant brièvement que LOGBack est simplement une
évolution de ce dernier (par de rupture conceptuelle).&lt;br /&gt;
&lt;br /&gt;
LogBack est divisé en 3 modules :&lt;/div&gt;
&lt;div style=&quot;margin-top: 0; margin-bottom: 0; text-align: left;&quot;&gt;
&lt;ul style=&quot;margin-top: 0; margin-bottom: 0;&quot;&gt;
&lt;li style=&quot;margin-top: 0; margin-bottom: 0;&quot;&gt;
Logback &lt;strong&gt;Core &lt;/strong&gt;: Module de base étendu par les deux
autres modules&lt;/li&gt;
&lt;li style=&quot;margin-top: 0; margin-bottom: 0;&quot;&gt;
Logback &lt;strong&gt;Classic &lt;/strong&gt;: Module de log des applications
Java (implémente les API SLF4J décrites précédemment)&lt;/li&gt;
&lt;li style=&quot;margin-top: 0; margin-bottom: 0;&quot;&gt;
Logback &lt;strong&gt;Access &lt;/strong&gt;: Module d'accès aux logs du
conteneur de Servlet (Tomcat, Jetty)&lt;/li&gt;
&lt;/ul&gt;
&lt;div style=&quot;margin-top: 0; margin-bottom: 0;&quot;&gt;&lt;br /&gt;
Logback utilise Joran en ce qui concerne la configuration des logs, ce qui
signifie qu'il est possible de décrire énormément de choses dans la
configuration (contrairement aux configurations sous forme de XML répondant à
une DTD statique ou de fichiers properties). il est par ailleurs possible de
gérer les inclusions de morceaux de configurations et ainsi rendre le
paramétrage des logs extrêmement modulaires au sein d'un projet de grande
taille.&lt;/div&gt;
&lt;div style=&quot;margin-top: 0; margin-bottom: 0;&quot;&gt;&lt;br /&gt;
Durant sa démonstration des possibilité de logback, le speaker a aussi montrer
qu'il est possible de publier des MBeans spécifiques à logback dans JMX et
ainsi contrôler les logs dynamiquement via une console comme JConsole (c'est
d'ailleurs comme ça qu'il rafraichissait son instance de logback lors des
démos).&lt;/div&gt;
&lt;div style=&quot;margin-top: 0; margin-bottom: 0;&quot;&gt;&lt;em&gt;&lt;strong&gt;&lt;br /&gt;
Filters&lt;br /&gt;
&lt;br /&gt;&lt;/strong&gt;&lt;/em&gt;&lt;/div&gt;
&lt;div style=&quot;margin-top: 0; margin-bottom: 0;&quot;&gt;Logback offre, à l'instar de
log4j, la possibilité d'utiliser des Filtres au sein de la configuration des
logs, ce qui permet de prendre (ou non) des logs en fonction de leur
correspondance à un filtre. Il est possible de créer des filtres sur des
expressions Java complexes (grâce à Juanino qui compile les expression java
contenues dans la configuration). On peut par exemple écrire une configuration
comme celle-ci avec logback : &lt;/div&gt;
&lt;div style=&quot;margin-top: 0; margin-bottom: 0;&quot;&gt;&lt;code&gt;&lt;span class=&quot;pun&quot;&gt;&lt;br /&gt;
&amp;lt;&lt;/span&gt;&lt;span class=&quot;tag&quot;&gt;appender&lt;/span&gt; &lt;span class=&quot;atn&quot;&gt;name&lt;/span&gt;&lt;span class=&quot;pun&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;atv&quot;&gt;&amp;quot;STDOUT&amp;quot; &lt;/span&gt;&lt;span class=&quot;atn&quot;&gt;class&lt;/span&gt;&lt;span class=&quot;pun&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;atv&quot;&gt;&amp;quot;ch.qos.logback.core.ConsoleAppender&amp;quot;&lt;/span&gt;&lt;span class=&quot;pun&quot;&gt;&amp;gt;&lt;/span&gt;&lt;span class=&quot;pln&quot;&gt;&lt;br /&gt;
    &lt;/span&gt;&lt;span class=&quot;pun&quot;&gt;&lt;strong&gt;&amp;lt;&lt;/strong&gt;&lt;/span&gt;&lt;span class=&quot;tag&quot;&gt;&lt;strong&gt;filter&lt;/strong&gt;&lt;/span&gt; &lt;span class=&quot;atn&quot;&gt;&lt;strong&gt;class&lt;/strong&gt;&lt;/span&gt;&lt;span class=&quot;pun&quot;&gt;&lt;strong&gt;=&lt;/strong&gt;&lt;/span&gt;&lt;span class=&quot;atv&quot;&gt;&lt;strong&gt;&amp;quot;ch.qos.logback.core.filter.EvaluatorFilter&amp;quot;&lt;/strong&gt;&lt;/span&gt;&lt;span class=&quot;pun&quot;&gt;&lt;strong&gt;&amp;gt;&lt;/strong&gt;&lt;/span&gt;&lt;span class=&quot;pln&quot;&gt;&lt;br /&gt;

      &lt;/span&gt;&lt;span class=&quot;pun&quot;&gt;&lt;strong&gt;&amp;lt;&lt;/strong&gt;&lt;/span&gt;&lt;span class=&quot;tag&quot;&gt;&lt;strong&gt;evaluator&lt;/strong&gt;&lt;/span&gt; &lt;span class=&quot;atn&quot;&gt;&lt;strong&gt;name&lt;/strong&gt;&lt;/span&gt;&lt;span class=&quot;pun&quot;&gt;&lt;strong&gt;=&lt;/strong&gt;&lt;/span&gt;&lt;span class=&quot;atv&quot;&gt;&lt;strong&gt;&amp;quot;myEval&amp;quot;&lt;/strong&gt;&lt;/span&gt;&lt;span class=&quot;pun&quot;&gt;&lt;strong&gt;&amp;gt;&lt;/strong&gt;&lt;/span&gt;&lt;span class=&quot;pln&quot;&gt;&lt;strong&gt;&lt;br /&gt;
        &lt;/strong&gt;&lt;/span&gt;&lt;span class=&quot;pun&quot;&gt;&lt;strong&gt;&amp;lt;&lt;/strong&gt;&lt;/span&gt;&lt;span class=&quot;tag&quot;&gt;&lt;strong&gt;expression&lt;/strong&gt;&lt;/span&gt;&lt;span class=&quot;pun&quot;&gt;&lt;strong&gt;&amp;gt;&lt;/strong&gt;&lt;/span&gt;&lt;span class=&quot;green&quot;&gt;&lt;span class=&quot;pln&quot;&gt;&lt;strong&gt;message.contains(&amp;quot;contenu
recherché&amp;quot;)&lt;/strong&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;pun&quot;&gt;&lt;strong&gt;&amp;lt;/&lt;/strong&gt;&lt;/span&gt;&lt;span class=&quot;tag&quot;&gt;&lt;strong&gt;expression&lt;/strong&gt;&lt;/span&gt;&lt;span class=&quot;pun&quot;&gt;&lt;strong&gt;&amp;gt;&lt;/strong&gt;&lt;/span&gt;&lt;span class=&quot;pln&quot;&gt;&lt;strong&gt;&lt;br /&gt;
      &lt;/strong&gt;&lt;/span&gt;&lt;span class=&quot;pun&quot;&gt;&lt;strong&gt;&amp;lt;/&lt;/strong&gt;&lt;/span&gt;&lt;span class=&quot;tag&quot;&gt;&lt;strong&gt;evaluator&lt;/strong&gt;&lt;/span&gt;&lt;span class=&quot;pun&quot;&gt;&lt;strong&gt;&amp;gt;&lt;/strong&gt;&lt;/span&gt;&lt;span class=&quot;pln&quot;&gt;&lt;br /&gt;
      &lt;/span&gt;&lt;span class=&quot;pun&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span class=&quot;tag&quot;&gt;OnMismatch&lt;/span&gt;&lt;span class=&quot;pun&quot;&gt;&amp;gt;&lt;/span&gt;&lt;span class=&quot;pln&quot;&gt;NEUTRAL&lt;/span&gt;&lt;span class=&quot;pun&quot;&gt;&amp;lt;/&lt;/span&gt;&lt;span class=&quot;tag&quot;&gt;OnMismatch&lt;/span&gt;&lt;span class=&quot;pun&quot;&gt;&amp;gt;&lt;/span&gt;&lt;span class=&quot;pln&quot;&gt;&lt;br /&gt;
      &lt;/span&gt;&lt;span class=&quot;pun&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span class=&quot;tag&quot;&gt;OnMatch&lt;/span&gt;&lt;span class=&quot;pun&quot;&gt;&amp;gt;&lt;/span&gt;&lt;span class=&quot;pln&quot;&gt;DENY&lt;/span&gt;&lt;span class=&quot;pun&quot;&gt;&amp;lt;/&lt;/span&gt;&lt;span class=&quot;tag&quot;&gt;OnMatch&lt;/span&gt;&lt;span class=&quot;pun&quot;&gt;&amp;gt;&lt;/span&gt;&lt;span class=&quot;pln&quot;&gt;&lt;br /&gt;
    &lt;/span&gt;&lt;span class=&quot;pun&quot;&gt;&lt;strong&gt;&amp;lt;/&lt;/strong&gt;&lt;/span&gt;&lt;span class=&quot;tag&quot;&gt;&lt;strong&gt;filter&lt;/strong&gt;&lt;/span&gt;&lt;span class=&quot;pun&quot;&gt;&lt;strong&gt;&amp;gt;&lt;/strong&gt;&lt;/span&gt;&lt;span class=&quot;pln&quot;&gt;&lt;br /&gt;
    &lt;/span&gt;&lt;span class=&quot;pun&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span class=&quot;tag&quot;&gt;layout&lt;/span&gt;&lt;span class=&quot;pun&quot;&gt;&amp;gt;&lt;/span&gt;&lt;span class=&quot;pln&quot;&gt;&lt;br /&gt;
      &lt;/span&gt;&lt;span class=&quot;pun&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span class=&quot;tag&quot;&gt;pattern&lt;/span&gt;&lt;span class=&quot;pun&quot;&gt;&amp;gt;&lt;/span&gt;&lt;span class=&quot;pln&quot;&gt;&lt;br /&gt;
        %-4relative [%thread] %-5level %logger -
%msg%n&lt;br /&gt;
      &lt;/span&gt;&lt;span class=&quot;pun&quot;&gt;&amp;lt;/&lt;/span&gt;&lt;span class=&quot;tag&quot;&gt;pattern&lt;/span&gt;&lt;span class=&quot;pun&quot;&gt;&amp;gt;&lt;/span&gt;&lt;span class=&quot;pln&quot;&gt;&lt;br /&gt;
    &lt;/span&gt;&lt;span class=&quot;pun&quot;&gt;&amp;lt;/&lt;/span&gt;&lt;span class=&quot;tag&quot;&gt;layout&lt;/span&gt;&lt;span class=&quot;pun&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/code&gt;&lt;/div&gt;
&lt;div style=&quot;margin-top: 0; margin-bottom: 0;&quot;&gt;&lt;span class=&quot;pun&quot;&gt;&amp;lt;/&lt;/span&gt;&lt;span class=&quot;tag&quot;&gt;appender&lt;/span&gt;&lt;span class=&quot;pun&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;margin-top: 0; margin-bottom: 0;&quot;&gt;&lt;span class=&quot;pun&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;margin-top: 0; margin-bottom: 0;&quot;&gt;Les expressions n'ont cependant à
disposition que les informations contenues dans le LoggingEvent (dont par
exemple le MDC, le timestamp de log, le logger, le marker racine ...). Pour
plus d'informations sur l'utilisation des filtres, la doc se
trouvent &lt;a id=&quot;qtlc&quot; href=&quot;http://logback.qos.ch/manual/filters.html&quot; title=&quot;ici&quot; style=&quot;color: rgb(85, 26, 139);&quot; name=&quot;qtlc&quot;&gt;ici&lt;/a&gt;&lt;/div&gt;
&lt;div style=&quot;margin-top: 0; margin-bottom: 0;&quot;&gt;Il existe aussi un tpe un peu
particulier de Filtre dans logback qui sont les TurboFilter. ces filtres ne
sont pas attachés à un appender particulier et sont donc appelés à chaque fois
que le système doit créer une évènement de log (donc très tôt dans le processus
de log). Il sont utilisés, comme leur nom l'indique, pour accélérer la prise de
décision dans la gestion des filtres puisque si un appel au logger ne sera pas
loggué à cause d'un TurboFilter (DENIED) alors aucun évènement ne sera diffusé
dans le système. Les TurboFilter peuvent par exemple ressembler à ceci :&lt;/div&gt;
&lt;div style=&quot;margin-top: 0; margin-bottom: 0;&quot;&gt;
&lt;div style=&quot;margin-top: 0; margin-bottom: 0;&quot;&gt;&lt;code&gt;&lt;span class=&quot;pun&quot;&gt;&lt;span class=&quot;pun&quot;&gt;&lt;br /&gt;
&amp;lt;&lt;/span&gt;&lt;span class=&quot;tag&quot;&gt;turboFilter&lt;/span&gt; &lt;span class=&quot;atn&quot;&gt;class&lt;/span&gt;&lt;span class=&quot;pun&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;atv&quot;&gt;&amp;quot;ch.qos.logback.classic.turbo.MDCFilter&amp;quot;&lt;/span&gt;&lt;span class=&quot;pun&quot;&gt;&amp;gt;&lt;/span&gt;&lt;span class=&quot;pln&quot;&gt;&lt;br /&gt;
    &lt;/span&gt;&lt;span class=&quot;pun&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span class=&quot;tag&quot;&gt;MDCKey&lt;/span&gt;&lt;span class=&quot;pun&quot;&gt;&amp;gt;&lt;/span&gt;&lt;span class=&quot;pln&quot;&gt;login&lt;/span&gt;&lt;span class=&quot;pun&quot;&gt;&amp;lt;/&lt;/span&gt;&lt;span class=&quot;tag&quot;&gt;MDCKey&lt;/span&gt;&lt;span class=&quot;pun&quot;&gt;&amp;gt;&lt;/span&gt;&lt;span class=&quot;pln&quot;&gt;&lt;br /&gt;
    &lt;/span&gt;&lt;span class=&quot;pun&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span class=&quot;tag&quot;&gt;Value&lt;/span&gt;&lt;span class=&quot;pun&quot;&gt;&amp;gt;&lt;/span&gt;&lt;span class=&quot;pln&quot;&gt;bobby&lt;/span&gt;&lt;span class=&quot;pun&quot;&gt;&amp;lt;/&lt;/span&gt;&lt;span class=&quot;tag&quot;&gt;Value&lt;/span&gt;&lt;span class=&quot;pun&quot;&gt;&amp;gt;&lt;/span&gt;&lt;span class=&quot;pln&quot;&gt;&lt;br /&gt;
    &lt;/span&gt;&lt;span class=&quot;pun&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span class=&quot;tag&quot;&gt;OnMatch&lt;/span&gt;&lt;span class=&quot;pun&quot;&gt;&amp;gt;&lt;/span&gt;&lt;span class=&quot;pln&quot;&gt;ACCEPT&lt;/span&gt;&lt;span class=&quot;pun&quot;&gt;&amp;lt;/&lt;/span&gt;&lt;span class=&quot;tag&quot;&gt;OnMatch&lt;/span&gt;&lt;span class=&quot;pun&quot;&gt;&amp;gt;&lt;/span&gt;&lt;span class=&quot;pln&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;span class=&quot;pun&quot;&gt;&amp;lt;/&lt;/span&gt;&lt;span class=&quot;tag&quot;&gt;turboFilter&lt;/span&gt;&lt;span class=&quot;pun&quot;&gt;&amp;gt;&lt;br /&gt;&lt;/span&gt;&lt;span class=&quot;pln&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/div&gt;
&lt;div style=&quot;margin-top: 0; margin-bottom: 0;&quot;&gt;&lt;code&gt;&lt;span class=&quot;pun&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span class=&quot;tag&quot;&gt;turboFilter&lt;/span&gt; &lt;span class=&quot;atn&quot;&gt;class&lt;/span&gt;&lt;span class=&quot;pun&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;atv&quot;&gt;&amp;quot;ch.qos.logback.classic.turbo.MarkerFilter&amp;quot;&lt;/span&gt;&lt;span class=&quot;pun&quot;&gt;&amp;gt;&lt;/span&gt;&lt;span class=&quot;pln&quot;&gt;&lt;br /&gt;
    &lt;/span&gt;&lt;span class=&quot;pun&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span class=&quot;tag&quot;&gt;Marker&lt;/span&gt;&lt;span class=&quot;pun&quot;&gt;&amp;gt;&lt;/span&gt;&lt;span class=&quot;pln&quot;&gt;inutile&lt;/span&gt;&lt;span class=&quot;pun&quot;&gt;&amp;lt;/&lt;/span&gt;&lt;span class=&quot;tag&quot;&gt;Marker&lt;/span&gt;&lt;span class=&quot;pun&quot;&gt;&amp;gt;&lt;/span&gt;&lt;span class=&quot;pln&quot;&gt;&lt;br /&gt;
    &lt;/span&gt;&lt;span class=&quot;pun&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span class=&quot;tag&quot;&gt;OnMatch&lt;/span&gt;&lt;span class=&quot;pun&quot;&gt;&amp;gt;&lt;/span&gt;&lt;span class=&quot;pln&quot;&gt;DENY&lt;/span&gt;&lt;span class=&quot;pun&quot;&gt;&amp;lt;/&lt;/span&gt;&lt;span class=&quot;tag&quot;&gt;OnMatch&lt;/span&gt;&lt;span class=&quot;pun&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/code&gt;&lt;/div&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;color: rgb(0, 0, 0); font-family: Verdana; font-weight: normal; font-size: 13px;&quot;&gt;&lt;code&gt;&lt;span class=&quot;pun&quot;&gt;&amp;lt;/&lt;/span&gt;&lt;span class=&quot;tag&quot;&gt;turboFilter&lt;/span&gt;&lt;span class=&quot;pun&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/code&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;margin-top: 0; margin-bottom: 0;&quot;&gt;&lt;span class=&quot;pun&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;margin-top: 0; margin-bottom: 0;&quot;&gt;Ceki &lt;span style=&quot;font-family: sans-serif;&quot;&gt;Gülcü &lt;/span&gt;a poursuivi ses démonstrations
avec le très intéressant &lt;a id=&quot;jg_g&quot; href=&quot;http://logback.qos.ch/manual/appenders.html#SiftingAppender&quot; title=&quot;SiftingAppender&quot; style=&quot;color: rgb(85, 26, 139);&quot; name=&quot;jg_g&quot;&gt;&lt;strong&gt;SiftingAppender&lt;/strong&gt;&lt;/a&gt; qui est capable d'encapsuler
un appender paramétré (donc plusieurs appender différents au runtime) en
fonction d'attributs qui peuvent provenir du MDC (ou d'une valeur par
défaut). &lt;/div&gt;
&lt;div style=&quot;margin-top: 0; margin-bottom: 0;&quot;&gt;Grâce à ce dernier, il est par
exemple possible de créer un appender par login ou par rôle dans une
application de manière très simple et sans toucher ou presque au code Java.
L'appender suivant définit par exemple un appender par rôle utilisateur en
fonction de la valeur role (rôle de l'utilisateur exécutant la requête)
contenue dans le MDC :&lt;/div&gt;
&lt;div style=&quot;margin-top: 0; margin-bottom: 0;&quot;&gt;&lt;code&gt;&lt;span class=&quot;pun&quot;&gt;&lt;br /&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;color: rgb(0, 0, 0); font-family: Verdana; font-weight: normal; font-size: 13px;&quot;&gt;
&lt;code&gt;&lt;span class=&quot;pun&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span class=&quot;tag&quot;&gt;configuration&lt;/span&gt;&lt;span class=&quot;pun&quot;&gt;&amp;gt;&lt;/span&gt;&lt;span class=&quot;pln&quot;&gt;&lt;br /&gt;
  &lt;/span&gt;&lt;span class=&quot;pun&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span class=&quot;tag&quot;&gt;appender&lt;/span&gt; &lt;span class=&quot;atn&quot;&gt;name&lt;/span&gt;&lt;span class=&quot;pun&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;atv&quot;&gt;&amp;quot;SIFT&amp;quot;&lt;/span&gt; &lt;span class=&quot;atn&quot;&gt;class&lt;/span&gt;&lt;span class=&quot;pun&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;atv&quot;&gt;&amp;quot;ch.qos.logback.classic.sift.SiftingAppender&amp;quot;&lt;/span&gt;&lt;span class=&quot;pun&quot;&gt;&amp;gt;&lt;/span&gt;&lt;span class=&quot;pln&quot;&gt;&lt;br /&gt;
    &lt;/span&gt;&lt;span class=&quot;pun&quot;&gt;&lt;strong&gt;&amp;lt;&lt;/strong&gt;&lt;/span&gt;&lt;span class=&quot;tag&quot;&gt;&lt;strong&gt;discriminator&lt;/strong&gt;&lt;/span&gt;&lt;span class=&quot;pun&quot;&gt;&lt;strong&gt;&amp;gt;&lt;/strong&gt;&lt;/span&gt;&lt;span class=&quot;pln&quot;&gt;&lt;strong&gt;&lt;br /&gt;
      &lt;/strong&gt;&lt;/span&gt;&lt;span class=&quot;pun&quot;&gt;&lt;strong&gt;&amp;lt;&lt;/strong&gt;&lt;/span&gt;&lt;span class=&quot;tag&quot;&gt;&lt;strong&gt;Key&lt;/strong&gt;&lt;/span&gt;&lt;span class=&quot;pun&quot;&gt;&lt;strong&gt;&amp;gt;&lt;/strong&gt;&lt;/span&gt;&lt;span class=&quot;green&quot;&gt;&lt;span class=&quot;pln&quot;&gt;&lt;strong&gt;role&lt;/strong&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;pun&quot;&gt;&lt;strong&gt;&amp;lt;/&lt;/strong&gt;&lt;/span&gt;&lt;span class=&quot;tag&quot;&gt;&lt;strong&gt;Key&lt;/strong&gt;&lt;/span&gt;&lt;span class=&quot;pun&quot;&gt;&lt;strong&gt;&amp;gt;&lt;/strong&gt;&lt;/span&gt;&lt;span class=&quot;pln&quot;&gt;&lt;strong&gt;&lt;br /&gt;
      &lt;/strong&gt;&lt;/span&gt;&lt;span class=&quot;pun&quot;&gt;&lt;strong&gt;&amp;lt;&lt;/strong&gt;&lt;/span&gt;&lt;span class=&quot;tag&quot;&gt;&lt;strong&gt;DefaultValue&lt;/strong&gt;&lt;/span&gt;&lt;span class=&quot;pun&quot;&gt;&lt;strong&gt;&amp;gt;&lt;/strong&gt;&lt;/span&gt;&lt;span class=&quot;pln&quot;&gt;&lt;strong&gt;ROLE_USER&lt;/strong&gt;&lt;/span&gt;&lt;span class=&quot;pun&quot;&gt;&lt;strong&gt;&amp;lt;/&lt;/strong&gt;&lt;/span&gt;&lt;span class=&quot;tag&quot;&gt;&lt;strong&gt;DefaultValue&lt;/strong&gt;&lt;/span&gt;&lt;span class=&quot;pun&quot;&gt;&lt;strong&gt;&amp;gt;&lt;/strong&gt;&lt;/span&gt;&lt;span class=&quot;pln&quot;&gt;&lt;strong&gt;&lt;br /&gt;
    &lt;/strong&gt;&lt;/span&gt;&lt;span class=&quot;pun&quot;&gt;&lt;strong&gt;&amp;lt;/&lt;/strong&gt;&lt;/span&gt;&lt;span class=&quot;tag&quot;&gt;&lt;strong&gt;discriminator&lt;/strong&gt;&lt;/span&gt;&lt;span class=&quot;pun&quot;&gt;&lt;strong&gt;&amp;gt;&lt;/strong&gt;&lt;/span&gt;&lt;span class=&quot;pln&quot;&gt;&lt;br /&gt;
    &lt;/span&gt;&lt;span class=&quot;pun&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span class=&quot;tag&quot;&gt;sift&lt;/span&gt;&lt;span class=&quot;pun&quot;&gt;&amp;gt;&lt;/span&gt;&lt;span class=&quot;pln&quot;&gt;&lt;br /&gt;
      &lt;/span&gt;&lt;span class=&quot;pun&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span class=&quot;tag&quot;&gt;appender&lt;/span&gt; &lt;span class=&quot;atn&quot;&gt;name&lt;/span&gt;&lt;span class=&quot;pun&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;atv&quot;&gt;&amp;quot;&lt;strong&gt;FILE-&lt;/strong&gt;&lt;/span&gt;&lt;span class=&quot;green&quot;&gt;&lt;span class=&quot;atv&quot;&gt;&lt;strong&gt;${role}&lt;/strong&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;atv&quot;&gt;&amp;quot;&lt;/span&gt; &lt;span class=&quot;atn&quot;&gt;class&lt;/span&gt;&lt;span class=&quot;pun&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;atv&quot;&gt;&amp;quot;ch.qos.logback.core.FileAppender&amp;quot;&lt;/span&gt;&lt;span class=&quot;pun&quot;&gt;&amp;gt;&lt;/span&gt;&lt;span class=&quot;pln&quot;&gt;&lt;br /&gt;
        &lt;/span&gt;&lt;span class=&quot;pun&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span class=&quot;tag&quot;&gt;File&lt;/span&gt;&lt;span class=&quot;pun&quot;&gt;&amp;gt;&lt;/span&gt;&lt;span class=&quot;green&quot;&gt;&lt;span class=&quot;pln&quot;&gt;&lt;strong&gt;${role}&lt;/strong&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;pln&quot;&gt;&lt;strong&gt;.log&lt;/strong&gt;&lt;/span&gt;&lt;span class=&quot;pun&quot;&gt;&amp;lt;/&lt;/span&gt;&lt;span class=&quot;tag&quot;&gt;File&lt;/span&gt;&lt;span class=&quot;pun&quot;&gt;&amp;gt;&lt;/span&gt;&lt;span class=&quot;pln&quot;&gt;&lt;br /&gt;
        &lt;/span&gt;&lt;span class=&quot;pun&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span class=&quot;tag&quot;&gt;Append&lt;/span&gt;&lt;span class=&quot;pun&quot;&gt;&amp;gt;&lt;/span&gt;&lt;span class=&quot;pln&quot;&gt;true&lt;/span&gt;&lt;span class=&quot;pun&quot;&gt;&amp;lt;/&lt;/span&gt;&lt;span class=&quot;tag&quot;&gt;Append&lt;/span&gt;&lt;span class=&quot;pun&quot;&gt;&amp;gt;&lt;/span&gt;&lt;span class=&quot;pln&quot;&gt;&lt;br /&gt;
        &lt;/span&gt;&lt;span class=&quot;pun&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span class=&quot;tag&quot;&gt;layout&lt;/span&gt; &lt;span class=&quot;atn&quot;&gt;class&lt;/span&gt;&lt;span class=&quot;pun&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;atv&quot;&gt;&amp;quot;ch.qos.logback.classic.PatternLayout&amp;quot;&lt;/span&gt;&lt;span class=&quot;pun&quot;&gt;&amp;gt;&lt;/span&gt;&lt;span class=&quot;pln&quot;&gt;&lt;br /&gt;
          &lt;/span&gt;&lt;span class=&quot;pun&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span class=&quot;tag&quot;&gt;Pattern&lt;/span&gt;&lt;span class=&quot;pun&quot;&gt;&amp;gt;&lt;/span&gt;&lt;span class=&quot;pln&quot;&gt;%d [%thread] %level %mdc %logger{35} -
%msg%n&lt;/span&gt;&lt;span class=&quot;pun&quot;&gt;&amp;lt;/&lt;/span&gt;&lt;span class=&quot;tag&quot;&gt;Pattern&lt;/span&gt;&lt;span class=&quot;pun&quot;&gt;&amp;gt;&lt;/span&gt;&lt;span class=&quot;pln&quot;&gt;&lt;br /&gt;
        &lt;/span&gt;&lt;span class=&quot;pun&quot;&gt;&amp;lt;/&lt;/span&gt;&lt;span class=&quot;tag&quot;&gt;layout&lt;/span&gt;&lt;span class=&quot;pun&quot;&gt;&amp;gt;&lt;/span&gt;&lt;span class=&quot;pln&quot;&gt;&lt;br /&gt;
      &lt;/span&gt;&lt;span class=&quot;pun&quot;&gt;&amp;lt;/&lt;/span&gt;&lt;span class=&quot;tag&quot;&gt;appender&lt;/span&gt;&lt;span class=&quot;pun&quot;&gt;&amp;gt;&lt;/span&gt;&lt;span class=&quot;pln&quot;&gt;&lt;br /&gt;
    &lt;/span&gt;&lt;span class=&quot;pun&quot;&gt;&amp;lt;/&lt;/span&gt;&lt;span class=&quot;tag&quot;&gt;sift&lt;/span&gt;&lt;span class=&quot;pun&quot;&gt;&amp;gt;&lt;/span&gt;&lt;span class=&quot;pln&quot;&gt;&lt;br /&gt;
  &lt;/span&gt;&lt;span class=&quot;pun&quot;&gt;&amp;lt;/&lt;/span&gt;&lt;span class=&quot;tag&quot;&gt;appender&lt;/span&gt;&lt;span class=&quot;pun&quot;&gt;&amp;gt;&lt;/span&gt;&lt;span class=&quot;pln&quot;&gt;&lt;br /&gt;
&lt;br /&gt;
  &lt;/span&gt;&lt;span class=&quot;pun&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span class=&quot;tag&quot;&gt;root&lt;/span&gt; &lt;span class=&quot;atn&quot;&gt;level&lt;/span&gt;&lt;span class=&quot;pun&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;atv&quot;&gt;&amp;quot;DEBUG&amp;quot;&lt;/span&gt;&lt;span class=&quot;pun&quot;&gt;&amp;gt;&lt;/span&gt;&lt;span class=&quot;pln&quot;&gt;&lt;br /&gt;
    &lt;/span&gt;&lt;span class=&quot;pun&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span class=&quot;tag&quot;&gt;appender-ref&lt;/span&gt; &lt;span class=&quot;atn&quot;&gt;ref&lt;/span&gt;&lt;span class=&quot;pun&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;atv&quot;&gt;&amp;quot;SIFT&amp;quot;&lt;/span&gt; &lt;span class=&quot;pun&quot;&gt;/&amp;gt;&lt;/span&gt;&lt;span class=&quot;pln&quot;&gt;&lt;br /&gt;
  &lt;/span&gt;&lt;span class=&quot;pun&quot;&gt;&amp;lt;/&lt;/span&gt;&lt;span class=&quot;tag&quot;&gt;root&lt;/span&gt;&lt;span class=&quot;pun&quot;&gt;&amp;gt;&lt;/span&gt;&lt;span class=&quot;pln&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;span class=&quot;pun&quot;&gt;&amp;lt;/&lt;/span&gt;&lt;span class=&quot;tag&quot;&gt;configuration&lt;/span&gt;&lt;span class=&quot;pun&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/code&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/div&gt;
&lt;div style=&quot;margin-top: 0; margin-bottom: 0;&quot;&gt;&lt;span class=&quot;pun&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;margin-top: 0; margin-bottom: 0;&quot;&gt;&lt;span class=&quot;pun&quot;&gt;Cette
configuration stocke dans le fichier ROLE_USER.log les logs des
utilisateurs n'ayant pas de rôle défini dans le MDC. On voit bien ici que
plusieurs Appenders vont être instanciés avec chacun un nom différent
(FILE-ROLE_USER pour l'Appender par défaut).&lt;br /&gt;
&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;margin-top: 0; margin-bottom: 0;&quot;&gt;Ceki &lt;span style=&quot;font-family: sans-serif;&quot;&gt;Gülcü &lt;/span&gt;a enfin terminé en soulignant une
petite fonctionnalités tout à fait intéressante de logback qui permet de
suffixer les lignes de logs d'une stacktrace d'erreur par le nom et la version
du jar utilisé, ce qui permet lors du debug d'erreur de récupérer
instantanément cette information cruciale. &lt;/div&gt;
&lt;div style=&quot;margin-top: 0; margin-bottom: 0;&quot;&gt;&lt;br /&gt;
Exemple de log généré : &lt;/div&gt;
&lt;div style=&quot;margin-top: 0; margin-bottom: 0;&quot;&gt;
&lt;div style=&quot;margin-top: 0; margin-bottom: 0;&quot;&gt;&lt;code&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;color: rgb(0, 0, 0); font-family: Verdana; font-weight: normal; font-size: 13px;&quot;&gt;
&lt;code&gt;java.lang.NullPointerException at
com.xyz.Wombat(Wombat.java:57) &lt;span class=&quot;red&quot;&gt;&lt;strong&gt;~&lt;/strong&gt;&lt;/span&gt;&lt;strong&gt;[wombat-1.3.jar:1.3]&lt;/strong&gt;&lt;/code&gt; &lt;/span&gt;&lt;/code&gt;&lt;/div&gt;
&lt;div style=&quot;margin-top: 0; margin-bottom: 0;&quot;&gt;&lt;code&gt;at
com.xyz.Wombat(Wombat.java:76) &lt;strong&gt;~[wombat-1.3.jar:1.3]&lt;/strong&gt; &lt;/code&gt;&lt;/div&gt;
&lt;div style=&quot;margin-top: 0; margin-bottom: 0;&quot;&gt;&lt;code&gt;at
sun.reflect.NativeMethodAccessorImpl.invoke0(Native
Method) &lt;strong&gt;~[na:1.5.0_06]&lt;/strong&gt;&lt;/code&gt;&lt;/div&gt;
&lt;div style=&quot;margin-top: 0; margin-bottom: 0;&quot;&gt;&lt;code&gt;...&lt;/code&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;div style=&quot;margin-top: 0; margin-bottom: 0;&quot;&gt;&lt;strong&gt;&lt;br /&gt;
Synthèse&lt;br /&gt;
&lt;br /&gt;&lt;/strong&gt;&lt;/div&gt;
&lt;div style=&quot;margin-top: 0; margin-bottom: 0;&quot;&gt;Pour terminer, nous pouvons dire
que, étant nous mêmes utilisateurs de log4j sur nos projets quotidiens,
Ceki &lt;span style=&quot;font-family: sans-serif;&quot;&gt;Gülcü &lt;/span&gt;nous a
convaincu que logback est bel et bien une évolution de Log4j (et non pas une
révolution) et qu'il semble très attrayant de tenter de passer à ce nouveau
framework (qui propose qui plus est nativement les API SLF4J) &lt;/div&gt;
&lt;div style=&quot;margin-top: 0; margin-bottom: 0;&quot;&gt;A essayer donc !&lt;/div&gt;
&lt;/div&gt;
&lt;div style=&quot;margin-top: 0; margin-bottom: 0; text-align: left;&quot;&gt;&lt;strong&gt;&lt;br /&gt;
Ressources&lt;br /&gt;
&lt;br /&gt;&lt;/strong&gt;&lt;/div&gt;
&lt;div style=&quot;margin-top: 0; margin-bottom: 0; text-align: left;&quot;&gt;SLF4J
: &lt;a href=&quot;http://www.slf4j.org/&quot; style=&quot;color: rgb(85, 26, 139);&quot;&gt;http://www.slf4j.org/&lt;/a&gt;&lt;/div&gt;
&lt;div style=&quot;margin-top: 0; margin-bottom: 0; text-align: left;&quot;&gt;LOGBack
: &lt;a href=&quot;http://logback.qos.ch/&quot; style=&quot;color: rgb(85, 26, 139);&quot;&gt;http://logback.qos.ch/&lt;/a&gt;&lt;/div&gt;
&lt;div style=&quot;margin-top: 0; margin-bottom: 0; text-align: left;&quot;&gt;Blog de Ceki
Gulcu : &lt;a href=&quot;http://ceki.blogspot.com/&quot; style=&quot;color: rgb(85, 26, 139);&quot;&gt;http://ceki.blogspot.com/&lt;/a&gt;&lt;/div&gt;
&lt;div style=&quot;margin-top: 0; margin-bottom: 0; text-align: left;&quot;&gt;Une
présentation du Jazzon09 quasi-similaire à celle du Devoxx par le même speaker
: &lt;a href=&quot;http://beta.parleys.com/#id=357&amp;amp;st=5&quot; style=&quot;color: rgb(85, 26, 139);&quot;&gt;http://beta.parleys.com/#id=357&amp;amp;st=5&lt;/a&gt;&lt;/div&gt;
&lt;/div&gt;</description>
    
    
    
      </item>
    
  <item>
    <title>Silverlight 4...Encore une version?</title>
    <link>http://www.insideit.fr/post/2009/11/23/Silverlight-4...Encore-une-version</link>
    <guid isPermaLink="false">urn:md5:7eb011f2e00e9e26f1a1c780e920c60a</guid>
    <pubDate>Mon, 23 Nov 2009 23:30:00 +0100</pubDate>
    <dc:creator>Boufous</dc:creator>
        <category>.NET</category>
        <category>Boufous</category><category>PDC 2009</category><category>RIA</category><category>Silvelight4</category><category>Silverlight</category>    
    <description>    &lt;img title=&quot;Silverlight4, nov. 2009&quot; style=&quot;margin: 0 0 1em 1em; float: right; width: 198px; height: 194px;&quot; alt=&quot;&quot; src=&quot;http://www.insideit.fr/public/silverlight4.PNG&quot; /&gt;&lt;br /&gt;
Si Silverlight 2 était sans doute une révolution sérieuse devant Silverlight
1.0 (une révolution qui se présente dans l’utilisation du XAML, code managé,
Expression Blend…), la version 3 de Silverlight reste une étape timide mais
logique qui montre une certaine maturité et stabilité de cette technologie,
Silverlight 3 est donc la version clé, graphiquement (avec ces nombreux
contrôles rajoutées et l’amélioration de Blend) et au niveau logique (surtout
avec le framework .NET RIA Services) du coup on peut finalement développer des
applications riches, dignes de ce nom, avec une productivité très élevée…Mais
la concurrence et la volonté de répondre par «Yes we can» à certain
fonctionnalités basique comme l’impression, la gestion des photos, la webcam,
etc. pousse Microsoft à « retoucher » légèrement la définition d’un
principe majeur de Silverlight : La sandbox. La sandbox est
l’environnement d’exécution sécurisé et sous SL2 et SL3 pas question de toucher
au matériels, un idéal qui devient réalité. Et selon Laurent Ellerbach,
directeur marketing de la division plate-forme et écosystème:
« Silverlight reste exécuté dans une sandbox, mais pourra au besoin
requérir des droits utilisateurs plus élevés pour certaines de ses
actions ». Avec ce relooking on peut donc répondre « Yes we
can », notamment à la partie multimédia : photos numériques, webcam,
clé USB, GPU… Mais pas avant mai ou juin 2010, date de la sortie officiel le de
Silverlight 4 (&lt;a href=&quot;http://timheuer.com/blog/archive/2009/11/18/whats-new-in-silverlight-4-complete-guide-new-features.aspx&quot;&gt;voir
toutes les nouveautés&lt;/a&gt;).
&lt;p&gt;Silverlight 4 ne représente pas seulement une version très puissante avec de
nombreuses nouvelles fonctionnalités mais un virage intéressant dans la
philosophie de cette technologie.&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;http://silverlight.net/getstarted/silverlight-4-beta/&quot;&gt;Site
officiel Silverlight 4&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;http://www.insideit.fr/post/2009/11/23/#&quot;&gt;
Demonstration Silverlight 4 PDC 2009&lt;/a&gt;&lt;/p&gt;</description>
    
    
    
      </item>
    
  <item>
    <title>La conférence &quot;Innovation WEB&quot; fait son retour</title>
    <link>http://www.insideit.fr/post/2009/11/23/La-conf%C3%A9rence-innovation-web2</link>
    <guid isPermaLink="false">urn:md5:be6cad4fcfa238421625c9d72fa07f17</guid>
    <pubDate>Mon, 23 Nov 2009 21:50:00 +0100</pubDate>
    <dc:creator>Vincent Bostoen</dc:creator>
        <category>4 décembre 2009</category><category>Android</category><category>Conférence</category><category>Google</category><category>Google App Engine</category><category>GWT</category><category>HTML5</category>    
    <description>    &lt;p&gt;&lt;img src=&quot;http://www.insideit.fr/public/associationget.png&quot; alt=&quot;&quot; style=&quot;margin-top: 0; margin-right: auto; margin-bottom: 0; margin-left: auto; display: block;&quot; title=&quot;Association Get, nov. 2009&quot; /&gt;&lt;/p&gt;
&lt;p&gt;Le 4 décembre 2008, l'association GET (Google EFREI Technologies) organisait
en association avec &lt;a href=&quot;http://www.sfeir.com/&quot;&gt;SFEIR&lt;/a&gt; une conférence
sur les technologies Google.&lt;br /&gt;
&lt;br /&gt;
Fort de son succès, une deuxième édition est programmée pour le 11 décembre
2009.&lt;/p&gt;
&lt;p&gt;Cette année, il sera question d'Android, de Google App Engine, de GWT, de
Google Wave et des standards du WEB (HTML5, CSS3, SVG).&lt;/p&gt;
&lt;p&gt;Les intervenants de cette année seront Ludovic Perrier, Didier Girard et
Patrick Chanezon.&lt;/p&gt;
&lt;p&gt;Les conférences se tiendront de 13h30 à 16h30 dans les locaux de
l'EFREI.&lt;/p&gt;
&lt;div style=&quot;text-align: center&quot;&gt;&lt;iframe width=&quot;425&quot; height=&quot;350&quot; frameborder=&quot;0&quot; scrolling=&quot;no&quot; marginheight=&quot;0&quot; marginwidth=&quot;0&quot; src=&quot;http://maps.google.fr/maps?f=q&amp;amp;source=s_q&amp;amp;hl=fr&amp;amp;geocode=&amp;amp;q=30,+32+av+de+la+r%C3%A9publique+94800+Villejuif&amp;amp;sll=46.75984,1.738281&amp;amp;sspn=12.919585,33.815918&amp;amp;ie=UTF8&amp;amp;hq=&amp;amp;hnear=30+Avenue+de+la+R%C3%A9publique,+94800+Villejuif,+Val-de-Marne,+Ile-de-France&amp;amp;z=16&amp;amp;ll=48.788541,2.364076&amp;amp;output=embed&quot;&gt;
&lt;/iframe&gt;&lt;br /&gt;
&lt;small&gt;&lt;a href=&quot;http://maps.google.fr/maps?f=q&amp;amp;source=embed&amp;amp;hl=fr&amp;amp;geocode=&amp;amp;q=30,+32+av+de+la+r%C3%A9publique+94800+Villejuif&amp;amp;sll=46.75984,1.738281&amp;amp;sspn=12.919585,33.815918&amp;amp;ie=UTF8&amp;amp;hq=&amp;amp;hnear=30+Avenue+de+la+R%C3%A9publique,+94800+Villejuif,+Val-de-Marne,+Ile-de-France&amp;amp;z=16&amp;amp;ll=48.788541,2.364076&quot; style=&quot;color:#0000FF;text-align:left&quot;&gt;Agrandir le plan&lt;/a&gt;&lt;/small&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: left&quot;&gt;&lt;br /&gt;
A la fin de la conférence aura lieu un cocktail, ce dernier sera suivi d'un
atelier de développement Android organisé en association avec le &lt;a href=&quot;http://groups.google.com/group/paris-gtug&quot;&gt;Paris GTUG&lt;/a&gt;.&lt;/div&gt;
&lt;div style=&quot;text-align: left&quot;&gt;&lt;a href=&quot;http://spreadsheets.google.com/viewform?formkey=dDlHZmVhYTJKMUVfSkl1M1c3dzVoVnc6MA&quot;&gt;
&lt;br /&gt;
Inscrivez vous sans plus tarder.&lt;/a&gt;&lt;/div&gt;
&lt;div&gt;&lt;br /&gt;
Pour plus d'informations, rendez vous sur le &lt;a href=&quot;http://www.g-e-t.fr/&quot;&gt;site de l'association&lt;/a&gt;.&lt;/div&gt;</description>
    
    
    
      </item>
    
  <item>
    <title>Atmosphere, atmosphere</title>
    <link>http://www.insideit.fr/post/2009/11/23/Atmosphere%2C-atmosphere</link>
    <guid isPermaLink="false">urn:md5:75c02b5b157f57f637756016bb1dc671</guid>
    <pubDate>Mon, 23 Nov 2009 13:30:00 +0100</pubDate>
    <dc:creator>Vincent Bostoen</dc:creator>
        <category>Java</category>
        <category>Atmosphere</category><category>Comet</category><category>DEVOXX 2009</category><category>Java</category><category>Jersey</category><category>Push</category><category>REST</category>    
    <description>    &lt;div style=&quot;margin-top: 0; margin-bottom: 0;&quot;&gt;&lt;img src=&quot;http://www.insideit.fr/public/IMG_4539.JPG&quot; alt=&quot;&quot; style=&quot;float: left; margin-top: 0; margin-right: 1em; margin-bottom: 1em; margin-left: 0;&quot; title=&quot;atmoshphereDevoxx2009, nov. 2009&quot; /&gt;&lt;br /&gt;
Au devoxx de cette année nous avons pu assister à la présentation du
framework &lt;a id=&quot;f_uh&quot; href=&quot;https://atmosphere.dev.java.net/&quot; title=&quot;Atmosphere&quot; name=&quot;f_uh&quot;&gt;Atmosphere&lt;/a&gt; par Jean-François Arcand, créateur
du framework et Paul Sandoz, contributeur sur le projet Jersey utilisé par
Atmosphere en ce qui concerne les aspects REST.&lt;/div&gt;
&lt;div style=&quot;margin-top: 0; margin-bottom: 0;&quot;&gt;&lt;br /&gt;
Après une rapide présentation des concepts liés aux architectures PUSH pour les
applications WEB. Les deux speakers sont rentrés dans le vif du sujet en
développant en direct une petite application permettant de démontrer les
possibilités offertes par Atmosphere.&lt;/div&gt;
&lt;div style=&quot;margin-top: 0; margin-bottom: 0;&quot;&gt;&lt;strong&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Le PUSH ?&lt;br /&gt;
&lt;br /&gt;&lt;/strong&gt;&lt;/div&gt;
&lt;div style=&quot;margin-top: 0; margin-bottom: 0;&quot;&gt;Dans les applications WEB, le
PUSH correspond à l'utilisation des protocoles WEB pour permettre aux
différents clients (navigateurs généralement) de se voir notifier des
informations de la part du serveur sans avoir à faire des requêtes périodiques
sur ce dernier. Comme son nom l'indique, les informations sont poussées du
serveur vers le(s) client(s) et non plus tirées par chaque client désireux d'y
avoir accès. L'intérêt d'une telle technique réside dans la possibilité de voir
se propager rapidement une modification de l'état du serveur et atteindre ainsi
un pseudo temps-réel tout en économisant des échanges réseaux inutiles. Avec le
PUSH on peut par exemple dans le cas d'un tchat, propager les nouveaux messages
d'une discussion du serveur vers les clients connectés de manière quasi
instantanée.&lt;/div&gt;
&lt;div style=&quot;margin-top: 0; margin-bottom: 0;&quot;&gt;Lors de cette conférence
Jean-François nous a décrit les trois types de communications existantes dans
les applications WEB à savoir :&lt;/div&gt;
&lt;div style=&quot;margin-top: 0; margin-bottom: 0;&quot;&gt;
&lt;ul&gt;
&lt;li&gt;Polling (technique traditionnelle)&lt;/li&gt;
&lt;li&gt;Ajax PUSH  ou Long Polling : ce que propose Atmosphere&lt;/li&gt;
&lt;li&gt;Http Streaming : Une technique idéale théoriquement mais qui souffre de
problème d'intégration avec les proxys notamment.&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;div style=&quot;margin-top: 0; margin-bottom: 0;&quot;&gt;Atmosphere est un framework (le
premier) à base de POJO proposant aux développeurs d'applications PUSH une
couche de programmation masquant la complexité des serveurs Java dans ce
domaine.&lt;/div&gt;
&lt;div style=&quot;margin-top: 0; margin-bottom: 0;&quot;&gt;Pour développer la partie serveur
d'une application, le framework est utilisable sur de nombreux serveurs : des
conteneurs legers (Tomcat, Jetty), certains serveurs d'applications comme
Glassfish et Weblogic, il est même disponible pour le Google App Engine.
Concernant ce dernier, on est en droit de se demander comment peut fonctionner
le Long Polling avec des requêtes censées durer moins de 30s ? Jean-François
nous a donné la solution en expliquant qu'Atmosphere implémente sont propre
système de continuation permettant de passer outre cette contrainte. Il faut
aussi noter la compatibilité d'Atmosphere avec les Servlets 3.0.&lt;/div&gt;
&lt;div style=&quot;margin-top: 0; margin-bottom: 0;&quot;&gt;&lt;br /&gt;
En ce qui concerne la partie cliente des applications, de nombreux frameworks
sont supportés dont GWT et Wicket. &lt;/div&gt;
&lt;div style=&quot;margin-top: 0; margin-bottom: 0;&quot;&gt;Lors de la présentation, les
speakers se sont focalisés sur une sous-partie du framework à savoir les
annotations disponibles pour les POJOs et les aspects REST intégrés via
Jersey.&lt;/div&gt;
&lt;div style=&quot;margin-top: 0; margin-bottom: 0;&quot;&gt;&lt;br /&gt;
Lors de la démo, les deux conférenciers ont pu nous démontrer la simplicité
avec laquelle il est possible de créer une application WEB asynchrone utilisant
le PUSH. Ils ont insisté sur le fait d'utiliser de simples POJO et de les
rendre manipulables via REST. On obtient par exemple des classes ressemblant à
ceci :&lt;/div&gt;
&lt;div style=&quot;margin-top: 0; margin-bottom: 0;&quot;&gt;
&lt;div style=&quot;margin-top: 0; margin-bottom: 0;&quot;&gt;&lt;code&gt;&lt;br /&gt;&lt;/code&gt;
&lt;div style=&quot;margin-top: 0; margin-bottom: 0;&quot;&gt;&lt;code&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;color: rgb(0, 0, 0); font-family: Verdana; font-weight: normal; white-space: normal; font-size: 13px;&quot;&gt;
@Path(&amp;quot;/{topic}&amp;quot;)&lt;/span&gt;&lt;/code&gt;&lt;/div&gt;
&lt;div style=&quot;margin-top: 0; margin-bottom: 0;&quot;&gt;
@Produces(&amp;quot;text/plain;charset=ISO-8859-1&amp;quot;)&lt;/div&gt;
&lt;div style=&quot;margin-top: 0; margin-bottom: 0;&quot;&gt;public class PubSub {&lt;/div&gt;
&lt;div style=&quot;margin-top: 0; margin-bottom: 0;&quot;&gt;    private
@PathParam(&amp;quot;topic&amp;quot;) Broadcaster topic;&lt;/div&gt;
&lt;div style=&quot;margin-top: 0; margin-bottom: 0;&quot;&gt;    @GET&lt;/div&gt;
&lt;div style=&quot;margin-top: 0; margin-bottom: 0;&quot;&gt;    @Suspend&lt;/div&gt;
&lt;div style=&quot;margin-top: 0; margin-bottom: 0;&quot;&gt;    public
Broadcastable subscribe() {&lt;/div&gt;
&lt;div style=&quot;margin-top: 0; margin-bottom: 0;&quot;&gt;      
 return new Broadcastable(&amp;quot;OK&amp;quot;,topic);&lt;/div&gt;
&lt;div style=&quot;margin-top: 0; margin-bottom: 0;&quot;&gt;    }&lt;/div&gt;
&lt;div style=&quot;margin-top: 0; margin-bottom: 0;&quot;&gt;    @POST&lt;/div&gt;
&lt;div style=&quot;margin-top: 0; margin-bottom: 0;&quot;&gt;  
 @Consumes(MediaType.APPLICATION_FORM_URLENCODED)&lt;/div&gt;
&lt;div style=&quot;margin-top: 0; margin-bottom: 0;&quot;&gt;  
 @Broadcast&lt;/div&gt;
&lt;div style=&quot;margin-top: 0; margin-bottom: 0;&quot;&gt;    public
Broadcastable publish(@FormParam(&amp;quot;message&amp;quot;) String message){&lt;/div&gt;
&lt;div style=&quot;margin-top: 0; margin-bottom: 0;&quot;&gt;      
 return new Broadcastable(message,topic);&lt;/div&gt;
&lt;div style=&quot;margin-top: 0; margin-bottom: 0;&quot;&gt;    }&lt;/div&gt;
&lt;div style=&quot;margin-top: 0; margin-bottom: 0;&quot;&gt;}&lt;/div&gt;
&lt;/div&gt;
&lt;div style=&quot;margin-top: 0; margin-bottom: 0;&quot;&gt;L'idée principale de cette démo
était d'utiliser Atmosphere pour suspendre la connection client lorsqu'il
s'incrit à un topic &amp;quot;test&amp;quot; en appelant http://mon_serveur/test. Un autre client
peut alors publier des messages qui seront diffusés à tous les clients
connectés sur ce topic en soumettant un simple formulaire HTML contenant un
paramètre &amp;quot;message&amp;quot; sous forme textuelle.&lt;/div&gt;
&lt;div style=&quot;margin-top: 0; margin-bottom: 0;&quot;&gt;&lt;strong&gt;&lt;br /&gt;
Ce que nous aurons retenu&lt;/strong&gt;&lt;/div&gt;
&lt;div style=&quot;margin-top: 0; margin-bottom: 0;&quot;&gt;&lt;br /&gt;
Atmosphere simplifie effectivement le travail des développeurs en ce qui
concerne la gestion du PUSH dans une application Java. Il n'est pas nécessaire
de refondre entièrement une application existante pour y intégrer Atmosphere,
la plupart des problèmes d'intégration sont adressés par le framework (gestion
des proxys pour les connections HTTP, les limitations de chacun des
navigateurs).&lt;/div&gt;
&lt;/div&gt;
&lt;div style=&quot;margin-top: 0; margin-bottom: 0;&quot;&gt;&lt;strong&gt;&lt;br /&gt;
Resources:&lt;/strong&gt;&lt;/div&gt;
&lt;div style=&quot;margin-top: 0; margin-bottom: 0;&quot;&gt;&lt;br /&gt;
Les slides de la présentation : &lt;a href=&quot;https://atmosphere.dev.java.net/conferences/2009/Devoxx/20091118_Devoxx.pdf&quot;&gt;https://atmosphere.dev.java.net/conferences/2009/Devoxx/20091118_Devoxx.pdf&lt;/a&gt;&lt;/div&gt;
&lt;div style=&quot;margin-top: 0; margin-bottom: 0;&quot;&gt;Le code de la présentation :
&lt;a href=&quot;https://atmosphere.dev.java.net/nonav/xref/org/atmosphere/samples/pubsub/PubSub.html&quot;&gt;
https://atmosphere.dev.java.net/nonav/xref/org/atmosphere/samples/pubsub/PubSub.html&lt;/a&gt;&lt;/div&gt;
&lt;div style=&quot;margin-top: 0; margin-bottom: 0;&quot;&gt;Le site du projet : &lt;a id=&quot;t7dk&quot; href=&quot;http://atmosphere.dev.java.net&quot; title=&quot;http://atmosphere.dev.java.net&quot; name=&quot;t7dk&quot;&gt;http://atmosphere.dev.java.net&lt;/a&gt;&lt;/div&gt;
&lt;div style=&quot;margin-top: 0; margin-bottom: 0;&quot;&gt;Blogs :&lt;/div&gt;
&lt;div style=&quot;margin-bottom: 0; margin-top: 0&quot;&gt;
&lt;div style=&quot;margin-top: 0; margin-bottom: 0;&quot;&gt;    &lt;a id=&quot;foxm&quot; href=&quot;http://blogs.un.com/sandoz/&quot; title=&quot;http://blogs.un.com/sandoz/&quot; name=&quot;foxm&quot;&gt;http://blogs.un.com/sandoz/&lt;/a&gt;&lt;/div&gt;
&lt;div style=&quot;margin-top: 0; margin-bottom: 0;&quot;&gt;    &lt;a id=&quot;wtee&quot; href=&quot;http://weblogs.java.net/bloc/jfarcand&quot; title=&quot;http://weblogs.java.net/bloc/jfarcand&quot; name=&quot;wtee&quot;&gt;http://weblogs.java.net/bloc/jfarcand&lt;/a&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;div style=&quot;margin-top: 0; margin-bottom: 0;&quot;&gt;Twitter : &lt;/div&gt;
    &lt;a id=&quot;xmf2&quot; href=&quot;http://twitter.com/atmosphere_java&quot; title=&quot;@atmosphere_java&quot; name=&quot;xmf2&quot;&gt;@atmosphere_java&lt;/a&gt; 
&lt;div style=&quot;margin-top: 0; margin-bottom: 0;&quot;&gt;    &lt;a id=&quot;ucsg&quot; href=&quot;http://twitter.com/jfarcand&quot; title=&quot;@jfarcand&quot; name=&quot;ucsg&quot;&gt;@jfarcand&lt;/a&gt; &lt;/div&gt;
&lt;div style=&quot;margin-top: 0; margin-bottom: 0;&quot;&gt;&lt;br /&gt;
Ludovic Meurillon et Vincent Bostoen&lt;/div&gt;</description>
    
    
    
      </item>
    
  <item>
    <title>Devoxx'09; un billet de plus!</title>
    <link>http://www.insideit.fr/post/2009/11/23/Devoxx-09%3B-un-billet-de-plus%21</link>
    <guid isPermaLink="false">urn:md5:5dc15d0180dccfa7d153f9ef320ef759</guid>
    <pubDate>Mon, 23 Nov 2009 12:51:00 +0100</pubDate>
    <dc:creator>Slim Tebourbi</dc:creator>
        <category>Devoxx09</category><category>java</category><category>évènement</category>    
    <description>    &lt;p&gt;Au lieu d'énumérer les présentations auxquelles j'ai assisté, je vais plutôt
essayer d'en faire un petite synthèse. Pour commencer, j'aurais beaucoup aimé
qu'il y ait eu quelques sujets en relation avec le mouvement 'NoSql' ou le
'Domain Driven Design', malheureusement ça pas été le cas, mais étant
simultanée avec la QCon à San Fransisco, il suffirait alors de jeter un petit
coup d'œil sur &lt;a href=&quot;http://qconsf.com/sf2009/speakers/&quot;&gt;les speakers&lt;/a&gt; et
le programme pour avoir la réponse (un autre coup d'œil sur les prix aussi
:p).&lt;/p&gt;
&lt;p&gt;En fait, le programme proposé traduit un peu l'année 2009 pour Java, mise a
part EE6, trop peu de nouveautés et encore moins d'innovations; enfin, la
encore si on considére que EE6 apporte de réelles nouveautés ou une quelconque
innovation; j'aurais plutôt tendance a dire que c'est un re-mixage de quelques
de-facto qui ont éclipsés la version précédente. Exception faite ce qui se
passe du coté des 'NoSqlistes' avec des projets comme Hadoop et compagnie, qui
n'étaient présent que par un petit BOF! Ce qui est a mon propre avis dommage
car c'est un thème en pleine ébullition. Du coup, des sujets comme JDK7 ou
Spring3 font encore et toujours l'actualité faute de relève mais aussi a cause
du retard qu'ils ont eu par rapport a leur roadmap initiale. Seule l'annonce de
adoption des 'closures' pour Java7 a créer un peu le buzz autour de ces sujets,
quoi que personnellement j'en avais marre de cette histoire et la suivais plus
depuis quelque temps. Autre chose qui a laissé sa trace sur cette édition,
c'est la crise! Etant à ma première je pouvais pas vraiment m'en apercevoir,
mais a en croire &lt;a href=&quot;http://arrayindexoutofboundsexception.skynetblogs.be/post/7449288/devoxx-2009--yes-we-have-a-world-crisis-going&quot; hreflang=&quot;en&quot;&gt;les habitués&lt;/a&gt; les traces sont assez flagrantes.&lt;/p&gt;
&lt;p&gt;En ce qui concerne les présentations auxquelles j'ai assistés, j'en ai
retenu spécialement celle de Cameron Puddy, intitulée 'Traditional Programming
Models: Stone knives and Bearskins in the Google Age' dont je donne un aperçu a
travers une citation tirée de ses slides :&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;« By 2021, there will be chips with 1024 cores on them. Is parallelism
the tool that will make all these cores useful? John Hennessey has called it
the biggest challenge Computer Science has every faced. He has credentials that
might make you believe him. Allen says that it’s also the best opportunity that
Computer Science has to improve user productivity, application performance and
system integrity. - Phillip J. Windley ».&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Je vous invite, d'ailleurs,a voir cette présentation sur Parleys soit dans
les prochains jours en vous inscrivant à la chaine dédiée au Devoxx'09 ou
gratuitement l'année prochaine.&lt;/p&gt;
&lt;p&gt;Je citerais aussi le 'show' de Robert Martin dit oncle Bob pour la 2éme
Keynote et vous invite de jeter un coup d'oeil sur le manifeste des '&lt;a href=&quot;http://manifesto.softwarecraftsmanship.org/&quot; hreflang=&quot;en&quot;&gt;artisants
développeurs'&lt;/a&gt;. Et enfin, la présentation de iBeans, quoique la c'est plus
le framework qui a retenu mon attention que la prestation de Ross Mason; En
fait, je remarque que toutes les sessions durant lesquelles un framework était
présenté par son 'créateur' étaient étrangement trop abstraites ou orientées
tutoriel/document de référence, et il y avait un manque de mise en valeur des
problématiques auxquelles répondait ou tentait de résoudre le produit en
question.&lt;/p&gt;
&lt;p&gt;En ce qui concerne le reste, je dirais pas qu'elles sont pas intéressantes
mais plutôt que j'en espérais plus. Par exemple je suis resté sur ma faim sur
un sujet qui m'intéresse beaucoup et qui était pourtant bien présent a travers
trois ou quatre sessions et qui est la performance. En fait j'avais espérer
retenir bien plus des Kirk Pepperdine, Dan Hardiker, Simon Ritter et Holly
Cummins. Cela dit, comme mentionné par ces speakers ce problème est très
difficile a présenté car trop liés aux cas concrets; la preuve, le peu
d'ouvrages qui existent dessus.&lt;/p&gt;
&lt;p&gt;Enfin, et pour conclure, je dirais que j'ai été globalement satisfait par
cette participation et surtout par quelques discussions intéressantes avec
d'autres participants, sans oublier les frites!&lt;/p&gt;</description>
    
    
    
      </item>
    
  <item>
    <title>Paris Datageeks : premier meetup.</title>
    <link>http://www.insideit.fr/post/2009/11/22/Paris-Datageeks-%3A-premier-meetup.</link>
    <guid isPermaLink="false">urn:md5:bc4d4862d68ff6057b887030cb5f9cb8</guid>
    <pubDate>Sun, 22 Nov 2009 22:43:00 +0100</pubDate>
    <dc:creator>Alex Conrad</dc:creator>
        <category>Base de données</category>
            
    <description>    &lt;p&gt;Cette semaine s'est déroulée la première rencontre &lt;a href=&quot;http://www.meetup.com/Paris-Datageeks/&quot;&gt;Paris Datageeks&lt;/a&gt; (le 19 nov).
Meeting informel qui prit place à La Karambole, convivial bar à DJ du 18ème
arrondissement de Paris.&lt;/p&gt;
&lt;p&gt;Paris Datageeks a été initié par &lt;a href=&quot;http://twitter.com/ogrisel&quot;&gt;Olivier Grisel&lt;/a&gt;, un passionné des technologies
scientifiques touchant de près ou de loin aux données, à leur interprétation et
leur compréhension. Par des machines.&lt;/p&gt;
&lt;p&gt;Constatant un intérêt pour ces technologies autour de la capitale, Olivier
Grisel prit l'initiative d'organiser cette rencontre, &amp;quot;juste pour voir&amp;quot;. Un
verre de vin pour les uns, une bière pour les autres, c'est de manière
improvisée que se sont effectués les échanges entre les participants. &amp;quot;Qui fait
quoi?&amp;quot;, lance l'un d'entre nous. Le tour de table débute et la quinzaine se
présente. Parmi nous, étudiants, chercheurs, ingénieurs de développement, gus
de garage, entrepreneurs pour un nouveau monde numérique. Ou encore simples
curieux.&lt;/p&gt;
&lt;p&gt;On y parle linguistique appliquée, système d'information géographique (GIS),
algorithmique, machine learning, intelligence artificielle, web sémantique.
Très en vogue, les bases de données dites &amp;quot;NoSQL&amp;quot; sont évidemment de la partie.
CouchDB, MongoDB, HBase, Redis. Traitement massif des données avec
Hadoop/MapReduce. Les questions et retours d'expériences de chacun agitent les
neurones d'une communauté de geeks passionnés.&lt;/p&gt;
&lt;p&gt;Ces technologies sont encore jeunes, voir expérimentales. Parmi nous, peu
ont osés les mettre en production. Mais la tendance du traitement des données
en masse est belle et bien présente. Les géants de l'Internet comme Google ou
Amazon ont fait leurs preuves avec ces technologies.&lt;/p&gt;
&lt;p&gt;La soirée se passe, certains ont faim, d'autres repartent. Le meetup se
termine dans un restaurant espagnol où tapas, paella et Rioja font bon ménage.
J'ai vite été embarqué dans une conversation passionnée sur les Conditional
Random Fields, la descente stochastique de gradient et la programmation
vectorielle sur GPU.&lt;/p&gt;
&lt;p&gt;Merci à Olivier Grisel pour l'initiative. En attendant de fixer le prochain
meetup Paris Datageeks, rendez-vous à l'&lt;a href=&quot;http://www.meetup.com/Paris-Datageeks/fr/calendar/11913500/&quot;&gt;OpenDataCamp&lt;/a&gt;
le 12 décembre 2009, à &lt;a href=&quot;http://lacantine.org/&quot;&gt;La Cantine&lt;/a&gt;.&lt;/p&gt;</description>
    
    
    
      </item>
    
  <item>
    <title>Analyse de code avec maven</title>
    <link>http://www.insideit.fr/post/2009/11/19/Analyse-de-code-avec-maven</link>
    <guid isPermaLink="false">urn:md5:18d0b663fc9d727d04a7106866b0dc1d</guid>
    <pubDate>Fri, 20 Nov 2009 19:54:00 +0100</pubDate>
    <dc:creator>Francois Wauquier</dc:creator>
        <category>Java</category>
            
    <description>    &lt;div style=&quot;margin-top: 15px; margin-right: auto; margin-bottom: 25px; margin-left: auto; padding-top: 40px; padding-right: 50px; padding-bottom: 40px; padding-left: 50px; font-family: Verdana; font-size: 10pt; background-color: rgb(255, 255, 255); min-height: 1100px; counter-reset: __goog_page__ 0; line-height: normal; border-top-width: 1px; border-top-style: solid; border-top-color: rgb(204, 204, 204); border-left-width: 1px; border-left-style: solid; border-left-color: rgb(204, 204, 204); border-right-width: 2px; border-right-style: solid; border-right-color: rgb(187, 187, 187); border-bottom-width: 2px; border-bottom-style: solid; border-bottom-color: rgb(187, 187, 187); width: 648px !important;&quot;&gt;
&lt;h2 style=&quot;font-size: 14pt;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-size: 16px;&quot;&gt;Intro&lt;/span&gt;&lt;/h2&gt;
&lt;p class=&quot;MsoNormal&quot; style=&quot;margin-top: 0; margin-right: 0; margin-bottom: 0; margin-left: 0;&quot;&gt;Maven,
outil de build que l’on ne présente plus, nous rend encore un immense service
en nous proposant de générer un site de présentation du projet.&lt;/p&gt;
&lt;p class=&quot;MsoNormal&quot; style=&quot;margin-top: 0; margin-right: 0; margin-bottom: 0; margin-left: 0;&quot;&gt;J’aimerais
dans cet article vous montrer les différents rapports de code que l’on peut
ainsi  agréger et déployer, afin de présenter le projet ou pour en
améliorer la qualité.&lt;/p&gt;
&lt;p class=&quot;MsoNormal&quot; style=&quot;margin-top: 0; margin-right: 0; margin-bottom: 0; margin-left: 0;&quot;&gt;Je vous
propose d’utiliser comme exemple un projet Open source hébergé sur googlecode,
nommé gwt-mvc &lt;span style=&quot;background-color: rgb(255, 255, 255);&quot;&gt;&lt;a href=&quot;http://code.google.com/p/gwt-mvc/&quot; style=&quot;color: rgb(85, 26, 139);&quot;&gt;http://code.google.com/p/gwt-mvc/&lt;/a&gt;&lt;span style=&quot;background-color: rgb(243, 243, 243);&quot;&gt;, choisi au hasard &lt;span style=&quot;font-family: Wingdings;&quot;&gt;J&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class=&quot;MsoNormal&quot; style=&quot;margin-top: 0; margin-right: 0; margin-bottom: 0; margin-left: 0;&quot;&gt;Voici le
résultat : &lt;a href=&quot;http://gwt-mvc.googlecode.com/svn/site/0.3/index.html&quot; style=&quot;color: rgb(85, 26, 139);&quot;&gt;http://gwt-mvc.googlecode.com/svn/site/0.3/index.html&lt;/a&gt;&lt;/p&gt;
&lt;p class=&quot;MsoNormal&quot; style=&quot;margin-top: 0; margin-right: 0; margin-bottom: 0; margin-left: 0;&quot;&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-size: 16px;&quot;&gt;&lt;strong&gt;&lt;br /&gt;&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class=&quot;MsoNormal&quot; style=&quot;margin-top: 0; margin-right: 0; margin-bottom: 0; margin-left: 0;&quot;&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-size: 16px; font-weight: bold;&quot;&gt;Rapports&lt;/span&gt;&lt;/p&gt;
&lt;p class=&quot;MsoNormal&quot; style=&quot;margin-top: 0; margin-right: 0; margin-bottom: 0; margin-left: 0;&quot;&gt; &lt;/p&gt;
&lt;p class=&quot;MsoNormal&quot; style=&quot;margin-top: 0; margin-right: 0; margin-bottom: 0; margin-left: 0;&quot;&gt;Voici les
différents plugins utilisés :&lt;/p&gt;
&lt;p class=&quot;MsoNormal&quot; style=&quot;margin-top: 0; margin-right: 0; margin-bottom: 0; margin-left: 0;&quot;&gt;
&lt;span style=&quot;color: black;&quot;&gt;&lt;strong&gt;maven-project-info-reports-plugin&lt;/strong&gt; &lt;/span&gt;&lt;a href=&quot;http://maven.apache.org/plugins/maven-project-info-reports-plugin/&quot; style=&quot;color: rgb(85, 26, 139);&quot;&gt;http://maven.apache.org/plugins/maven-project-info-reports-plugin/&lt;/a&gt;&lt;/p&gt;
&lt;p class=&quot;MsoNormal&quot; style=&quot;margin-top: 0; margin-right: 0; margin-bottom: 0; margin-left: 0;&quot;&gt;
&lt;span style=&quot;color: black;&quot;&gt;Plugin principal du site, permet de sélectionner
les rapports de base&lt;/span&gt;&lt;/p&gt;
&lt;p class=&quot;MsoNormal&quot; style=&quot;margin-top: 0; margin-right: 0; margin-bottom: 0; margin-left: 0;&quot;&gt; &lt;/p&gt;
&lt;p class=&quot;MsoNormal&quot; style=&quot;margin-top: 0; margin-right: 0; margin-bottom: 0; margin-left: 0;&quot;&gt;
&lt;span style=&quot;color: black;&quot;&gt;&lt;strong&gt;maven-javadoc-plugin&lt;/strong&gt; &lt;/span&gt;&lt;a href=&quot;http://maven.apache.org/plugins/maven-javadoc-plugin/&quot; style=&quot;color: rgb(85, 26, 139);&quot;&gt;http://maven.apache.org/plugins/maven-javadoc-plugin/&lt;/a&gt;&lt;/p&gt;
&lt;p class=&quot;MsoNormal&quot; style=&quot;margin-top: 0; margin-right: 0; margin-bottom: 0; margin-left: 0;&quot;&gt;
&lt;span style=&quot;color: black;&quot;&gt;Génère la javadoc du projet.&lt;/span&gt;&lt;/p&gt;
&lt;p class=&quot;MsoNormal&quot; style=&quot;margin-top: 0; margin-right: 0; margin-bottom: 0; margin-left: 0;&quot;&gt; &lt;/p&gt;
&lt;p class=&quot;MsoNormal&quot; style=&quot;margin-top: 0; margin-right: 0; margin-bottom: 0; margin-left: 0;&quot;&gt;
&lt;span style=&quot;color: black;&quot;&gt;&lt;strong&gt;maven-jxr-plugin&lt;/strong&gt; &lt;/span&gt;&lt;a href=&quot;http://maven.apache.org/plugins/maven-jxr-plugin/&quot; style=&quot;color: rgb(85, 26, 139);&quot;&gt;http://maven.apache.org/plugins/maven-jxr-plugin/&lt;/a&gt;&lt;/p&gt;
&lt;p class=&quot;MsoNormal&quot; style=&quot;margin-top: 0; margin-right: 0; margin-bottom: 0; margin-left: 0;&quot;&gt;
&lt;span style=&quot;color: black;&quot;&gt;Présente le code source avec des liens entre les
classes, afin de pouvoir naviguer dans le code en dehors d’un IDE, pratique
pour les projets Open Source&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;p class=&quot;MsoNormal&quot; style=&quot;margin-top: 0; margin-right: 0; margin-bottom: 0; margin-left: 0;&quot;&gt; &lt;/p&gt;
&lt;p class=&quot;MsoNormal&quot; style=&quot;margin-top: 0; margin-right: 0; margin-bottom: 0; margin-left: 0;&quot;&gt;
&lt;span style=&quot;color: black;&quot;&gt;&lt;strong&gt;maven-surefire-report-plugin&lt;/strong&gt; &lt;/span&gt;&lt;a href=&quot;http://maven.apache.org/plugins/maven-surefire-plugin/&quot; style=&quot;color: rgb(85, 26, 139);&quot;&gt;http://maven.apache.org/plugins/maven-surefire-plugin/&lt;/a&gt;&lt;/p&gt;
&lt;p class=&quot;MsoNormal&quot; style=&quot;margin-top: 0; margin-right: 0; margin-bottom: 0; margin-left: 0;&quot;&gt;
&lt;span style=&quot;color: black;&quot;&gt;Rapport de passage des tests
unitaires&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;p class=&quot;MsoNormal&quot; style=&quot;margin-top: 0; margin-right: 0; margin-bottom: 0; margin-left: 0;&quot;&gt;
&lt;span style=&quot;color: black;&quot;&gt; &lt;/span&gt;&lt;/p&gt;
&lt;p class=&quot;MsoNormal&quot; style=&quot;margin-top: 0; margin-right: 0; margin-bottom: 0; margin-left: 0;&quot;&gt;
&lt;span style=&quot;color: black;&quot;&gt;&lt;strong&gt;maven-pmd-plugin&lt;/strong&gt; &lt;/span&gt;&lt;a href=&quot;http://maven.apache.org/plugins/maven-pmd-plugin/&quot; style=&quot;color: rgb(85, 26, 139);&quot;&gt;http://maven.apache.org/plugins/maven-pmd-plugin/&lt;/a&gt;&lt;/p&gt;
&lt;p class=&quot;MsoNormal&quot; style=&quot;margin-top: 0; margin-right: 0; margin-bottom: 0; margin-left: 0;&quot;&gt;
&lt;span style=&quot;color: black;&quot;&gt;Rapport de code avec PMD&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;. Cela permet de vérifier la conformité du code avec des règles
de codage prédéfinies. Ces règles peuvent être très poussées, mais la plus
représentative est &amp;quot;Dans un  block catch, si une exception est relancées,
elle doit être construite avec l'exception intiale en tant que cause&amp;quot;. Inclus
également le rapport Copy Past Duplication, mettant en avant les duplications
de code. Il est même possible de bloquer le build en cas de non-respect de
règle.&lt;/span&gt;&lt;/p&gt;
&lt;p class=&quot;MsoNormal&quot; style=&quot;margin-top: 0; margin-right: 0; margin-bottom: 0; margin-left: 0;&quot;&gt;
&lt;span style=&quot;color: black;&quot;&gt;&lt;strong&gt;cobertura-maven-plugin&lt;/strong&gt; &lt;/span&gt;&lt;a href=&quot;http://mojo.codehaus.org/cobertura-maven-plugin/&quot; style=&quot;color: rgb(85, 26, 139);&quot;&gt;http://mojo.codehaus.org/cobertura-maven-plugin/&lt;/a&gt;&lt;/p&gt;
&lt;p class=&quot;MsoNormal&quot; style=&quot;margin-top: 0; margin-right: 0; margin-bottom: 0; margin-left: 0;&quot;&gt;
&lt;span style=&quot;color: black;&quot;&gt;Rapport de couverture de test&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;p class=&quot;MsoNormal&quot; style=&quot;margin-top: 0; margin-right: 0; margin-bottom: 0; margin-left: 0;&quot;&gt;
&lt;span style=&quot;color: black;&quot;&gt; &lt;/span&gt;&lt;/p&gt;
&lt;p class=&quot;MsoNormal&quot; style=&quot;margin-top: 0; margin-right: 0; margin-bottom: 0; margin-left: 0;&quot;&gt;
&lt;span style=&quot;color: black;&quot;&gt;&lt;strong&gt;maven-dependency-plugin&lt;/strong&gt; &lt;/span&gt;&lt;a href=&quot;http://maven.apache.org/plugins/maven-dependency-plugin/&quot; style=&quot;color: rgb(85, 26, 139);&quot;&gt;http://maven.apache.org/plugins/maven-dependency-plugin/&lt;/a&gt;&lt;/p&gt;
&lt;p class=&quot;MsoNormal&quot; style=&quot;margin-top: 0; margin-right: 0; margin-bottom: 0; margin-left: 0;&quot;&gt;
&lt;span style=&quot;color: black;&quot;&gt;Analyse des dépendances directes et indirectes, et
distinction des dépendances : utilisée directement mais sans déclaration
(directe), déclarées mais non utilisées.&lt;/span&gt;&lt;/p&gt;
&lt;p class=&quot;MsoNormal&quot; style=&quot;margin-top: 0; margin-right: 0; margin-bottom: 0; margin-left: 0;&quot;&gt;
&lt;span style=&quot;color: black;&quot;&gt; &lt;/span&gt;&lt;/p&gt;
&lt;p class=&quot;MsoNormal&quot; style=&quot;margin-top: 0; margin-right: 0; margin-bottom: 0; margin-left: 0;&quot;&gt;
&lt;span style=&quot;color: black;&quot;&gt;&lt;strong&gt;versions-maven-plugin&lt;/strong&gt; &lt;/span&gt;&lt;a href=&quot;http://mojo.codehaus.org/versions-maven-plugin/&quot; style=&quot;color: rgb(85, 26, 139);&quot;&gt;http://mojo.codehaus.org/versions-maven-plugin/&lt;/a&gt;&lt;/p&gt;
&lt;p class=&quot;MsoNormal&quot; style=&quot;margin-top: 0; margin-right: 0; margin-bottom: 0; margin-left: 0;&quot;&gt;
&lt;span style=&quot;color: black;&quot;&gt;Rapport de mise à jour des dépendances et des
plugins&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;p class=&quot;MsoNormal&quot; style=&quot;margin-top: 0; margin-right: 0; margin-bottom: 0; margin-left: 0;&quot;&gt;
&lt;span style=&quot;color: black;&quot;&gt; &lt;/span&gt;&lt;/p&gt;
&lt;p class=&quot;MsoNormal&quot; style=&quot;margin-top: 0; margin-right: 0; margin-bottom: 0; margin-left: 0;&quot;&gt;
&lt;span style=&quot;color: black;&quot;&gt;&lt;strong&gt;dashboard-maven-plugin&lt;/strong&gt; &lt;/span&gt;&lt;a href=&quot;http://mojo.codehaus.org/dashboard-maven-plugin/&quot; style=&quot;color: rgb(85, 26, 139);&quot;&gt;http://mojo.codehaus.org/dashboard-maven-plugin/&lt;/a&gt;&lt;/p&gt;
&lt;p class=&quot;MsoNormal&quot; style=&quot;margin-top: 0; margin-right: 0; margin-bottom: 0; margin-left: 0;&quot;&gt;Agrège les
résultats de certains des rapports précédents, et les présente avec de jolis
graphique&lt;span style=&quot;color: black;&quot;&gt;s.&lt;/span&gt;&lt;/p&gt;
&lt;p class=&quot;MsoNormal&quot; style=&quot;margin-top: 0; margin-right: 0; margin-bottom: 0; margin-left: 0;&quot;&gt; &lt;/p&gt;
&lt;h3 style=&quot;font-size: 12pt;&quot;&gt;Intégration à Eclipse&lt;/h3&gt;
&lt;p class=&quot;MsoNormal&quot; style=&quot;margin-top: 0; margin-right: 0; margin-bottom: 0; margin-left: 0;&quot;&gt;Ces
rapports étant éloignés de l’IDE, l’idéal est de pouvoir retrouver ces mêmes
résultats au plus près du code, afin d’avoir deux outils complémentaires.&lt;/p&gt;
&lt;p class=&quot;MsoNormal&quot; style=&quot;margin-top: 0; margin-right: 0; margin-bottom: 0; margin-left: 0;&quot;&gt; &lt;/p&gt;
&lt;p class=&quot;MsoNormal&quot; style=&quot;margin-top: 0; margin-right: 0; margin-bottom: 0; margin-left: 0;&quot;&gt;
&lt;strong&gt;M2clipse&lt;/strong&gt; &lt;a href=&quot;http://m2eclipse.sonatype.org/&quot; style=&quot;color: rgb(85, 26, 139);&quot;&gt;http://m2eclipse.sonatype.org/&lt;/a&gt; &lt;span style=&quot;background-color: rgb(255, 255, 255);&quot;&gt;&lt;a href=&quot;http://m2eclipse.sonatype.org/update/&quot; id=&quot;y4.d&quot; title=&quot;http://m2eclipse.sonatype.org/update/&quot; name=&quot;y4.d&quot;&gt;http://m2eclipse.sonatype.org/update/&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class=&quot;MsoNormal&quot; style=&quot;margin-top: 0; margin-right: 0; margin-bottom: 0; margin-left: 0;&quot;&gt;Ce plugin
permettra à Eclipse d’interpréter la configuration maven afin de compiler le
projet.&lt;/p&gt;
&lt;p class=&quot;MsoNormal&quot; style=&quot;margin-top: 0; margin-right: 0; margin-bottom: 0; margin-left: 0;&quot;&gt; &lt;/p&gt;
&lt;p class=&quot;MsoNormal&quot; style=&quot;margin-top: 0; margin-right: 0; margin-bottom: 0; margin-left: 0;&quot;&gt;
&lt;strong&gt;JUnit&lt;/strong&gt;&lt;/p&gt;
&lt;p class=&quot;MsoNormal&quot; style=&quot;margin-top: 0; margin-right: 0; margin-bottom: 0; margin-left: 0;&quot;&gt;Intégré
nativement à Eclipse, il vous permet de passer vos tests unitaires.&lt;/p&gt;
&lt;p class=&quot;MsoNormal&quot; style=&quot;margin-top: 0; margin-right: 0; margin-bottom: 0; margin-left: 0;&quot;&gt; &lt;/p&gt;
&lt;p class=&quot;MsoNormal&quot; style=&quot;margin-top: 0; margin-right: 0; margin-bottom: 0; margin-left: 0;&quot;&gt;
&lt;strong&gt;Eclemma &lt;/strong&gt; &lt;span style=&quot;background-color: rgb(255, 255, 255);&quot;&gt;&lt;a href=&quot;http://www.eclemma.org/&quot; id=&quot;ph.x&quot; title=&quot;http://www.eclemma.org&quot; style=&quot;color: rgb(85, 26, 139);&quot; name=&quot;ph.x&quot;&gt;http://www.eclemma.org&lt;/a&gt;/&lt;/span&gt; &lt;span style=&quot;background-color: rgb(255, 255, 255);&quot;&gt;&lt;a href=&quot;http://update.eclemma.org/&quot; id=&quot;w9d2&quot; title=&quot;http://update.eclemma.org/&quot; name=&quot;w9d2&quot;&gt;http://update.eclemma.org/&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class=&quot;MsoNormal&quot; style=&quot;margin-top: 0; margin-right: 0; margin-bottom: 0; margin-left: 0;&quot;&gt;
&lt;span style=&quot;color: black;&quot;&gt;Eclemma vous permet d’obtenir votre couverture de
test en utilisant emma. (Cobertura etait utilisé dans les rapports)&lt;/span&gt;&lt;/p&gt;
&lt;p class=&quot;MsoNormal&quot; style=&quot;margin-top: 0; margin-right: 0; margin-bottom: 0; margin-left: 0;&quot;&gt; &lt;/p&gt;
&lt;p class=&quot;MsoNormal&quot; style=&quot;margin-top: 0; margin-right: 0; margin-bottom: 0; margin-left: 0;&quot;&gt;
&lt;strong&gt;PMD&lt;/strong&gt; &lt;a href=&quot;http://pmd.sourceforge.net/&quot; style=&quot;color: rgb(85, 26, 139);&quot;&gt;http://pmd.sourceforge.net/&lt;/a&gt;&lt;span style=&quot;color: black;&quot;&gt; &lt;a href=&quot;http://pmd.sourceforge.net/eclipse&quot; id=&quot;et9j&quot; title=&quot;http://pmd.sourceforge.net/eclipse&quot; name=&quot;et9j&quot;&gt;http://pmd.sourceforge.net/eclipse&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class=&quot;MsoNormal&quot; style=&quot;margin-top: 0; margin-right: 0; margin-bottom: 0; margin-left: 0;&quot;&gt;Permet
d’effectuer les contrôles du respect des règles de codage. Il est important de
configurer ces outils avec le même ruleset, et de choisir avec précaution ces
règles.&lt;/p&gt;
&lt;p class=&quot;MsoNormal&quot; style=&quot;margin-top: 0; margin-right: 0; margin-bottom: 0; margin-left: 0;&quot;&gt;Ici, j’ai
utilisé les règles proposées par le plugin PMD eclipse.&lt;/p&gt;
&lt;p class=&quot;MsoNormal&quot; style=&quot;margin-top: 0; margin-right: 0; margin-bottom: 0; margin-left: 0;&quot;&gt; &lt;/p&gt;
&lt;h3 style=&quot;font-size: 12pt;&quot;&gt;Conseils&lt;/h3&gt;
&lt;p class=&quot;MsoNormal&quot; style=&quot;margin-top: 0; margin-right: 0; margin-bottom: 0; margin-left: 0;&quot;&gt;Fixer les
numéros de versions des plugins utilisés, afin d’avoir un build répétable.&lt;/p&gt;
&lt;p class=&quot;MsoNormal&quot; style=&quot;margin-top: 0; margin-right: 0; margin-bottom: 0; margin-left: 0;&quot;&gt;Placer vos
mots de passe dans les fichiers .settings, pas dans le pom, ou alors choisissez
le mode interactif (vos identifiants vous seront demandés pendant
l’execution).&lt;/p&gt;
&lt;p class=&quot;MsoNormal&quot; style=&quot;margin-top: 0; margin-right: 0; margin-bottom: 0; margin-left: 0;&quot;&gt; &lt;/p&gt;
&lt;h3 style=&quot;font-size: 12pt;&quot;&gt;Trucs et astuces&lt;/h3&gt;
&lt;p class=&quot;MsoNormal&quot; style=&quot;margin-top: 0; margin-right: 0; margin-bottom: 0; margin-left: 0;&quot;&gt;Pour
afficher l’arbre des dependances de votre projet :&lt;/p&gt;
&lt;p class=&quot;MsoNormal&quot; style=&quot;margin-top: 0; margin-right: 0; margin-bottom: 0; margin-left: 0;&quot;&gt;mvn
dependency:tree&lt;/p&gt;
&lt;p class=&quot;MsoNormal&quot; style=&quot;margin-top: 0; margin-right: 0; margin-bottom: 0; margin-left: 0;&quot;&gt;(Inclus
dans le rapport « Dependencies » mais tellement pratique)&lt;/p&gt;
&lt;p class=&quot;MsoNormal&quot; style=&quot;margin-top: 0; margin-right: 0; margin-bottom: 0; margin-left: 0;&quot;&gt; &lt;/p&gt;
&lt;p class=&quot;MsoNormal&quot; style=&quot;margin-top: 0; margin-right: 0; margin-bottom: 0; margin-left: 0;&quot;&gt;Pour savoir
si vous utilisez la dernière version de vos plugins (y compris les rapports)
:&lt;/p&gt;
&lt;p class=&quot;MsoNormal&quot; style=&quot;margin-top: 0; margin-right: 0; margin-bottom: 0; margin-left: 0;&quot;&gt;mvn
versions:display-plugin-updates&lt;/p&gt;
&lt;p class=&quot;MsoNormal&quot; style=&quot;margin-top: 0; margin-right: 0; margin-bottom: 0; margin-left: 0;&quot;&gt;(Inclus
dans le rapport « Plugin Updates Report »)&lt;/p&gt;
&lt;p class=&quot;MsoNormal&quot; style=&quot;margin-top: 0; margin-right: 0; margin-bottom: 0; margin-left: 0;&quot;&gt; &lt;/p&gt;
&lt;h3 style=&quot;font-size: 12pt;&quot;&gt;Problèmes rencontrés&lt;/h3&gt;
&lt;p class=&quot;MsoNormal&quot; style=&quot;margin-top: 0; margin-right: 0; margin-bottom: 0; margin-left: 0;&quot;&gt;J’aurais
aimé pouvoir faire le site-deploy en une seule fois, mais wagon-svn ne fournit
pas encore l’option qui permet de spécifier un fichier de configuration appellé
auto-props, permettant d’associer un mime-type à une extension de fichier.&lt;/p&gt;
&lt;p class=&quot;MsoNormal&quot; style=&quot;margin-top: 0; margin-right: 0; margin-bottom: 0; margin-left: 0;&quot;&gt;&lt;a href=&quot;https://wagon-svn.dev.java.net/issues/show_bug.cgi?id=4&quot; style=&quot;color: rgb(85, 26, 139);&quot;&gt;https://wagon-svn.dev.java.net/issues/show_bug.cgi?id=4&lt;/a&gt;&lt;/p&gt;
&lt;p class=&quot;MsoNormal&quot; style=&quot;margin-top: 0; margin-right: 0; margin-bottom: 0; margin-left: 0;&quot;&gt;J’ai donc
été obligé de générer le site dans un premier temps, puis de modifier les
propriétés mime-type dans un second temps.&lt;/p&gt;
&lt;p class=&quot;MsoNormal&quot; style=&quot;margin-top: 0; margin-right: 0; margin-bottom: 0; margin-left: 0;&quot;&gt; &lt;/p&gt;
&lt;h3 style=&quot;font-size: 12pt;&quot;&gt;Recherche d’ artifact&lt;/h3&gt;
&lt;p class=&quot;MsoNormal&quot; style=&quot;margin-top: 0; margin-right: 0; margin-bottom: 0; margin-left: 0;&quot;&gt;Je vous
conseille également les sites suivants pour « retrouver » des artifacts, leurs
différentes versions, et sur quel repository ils sont disponibles.&lt;/p&gt;
&lt;p class=&quot;MsoNormal&quot; style=&quot;margin-top: 0; margin-right: 0; margin-bottom: 0; margin-left: 0;&quot;&gt;&lt;a href=&quot;http://merobase.com/&quot; style=&quot;color: rgb(85, 26, 139);&quot;&gt;http://merobase.com/&lt;/a&gt;&lt;/p&gt;
&lt;p class=&quot;MsoNormal&quot; style=&quot;margin-top: 0; margin-right: 0; margin-bottom: 0; margin-left: 0;&quot;&gt;&lt;a href=&quot;http://mvnrepository.com/&quot; style=&quot;color: rgb(85, 26, 139);&quot;&gt;http://mvnrepository.com/&lt;/a&gt;&lt;/p&gt;
&lt;p class=&quot;MsoNormal&quot; style=&quot;margin-top: 0; margin-right: 0; margin-bottom: 0; margin-left: 0;&quot;&gt;&lt;a href=&quot;http://www.mvnbrowser.com/&quot; style=&quot;color: rgb(85, 26, 139);&quot;&gt;http://www.mvnbrowser.com/&lt;/a&gt;&lt;/p&gt;
&lt;p class=&quot;MsoNormal&quot; style=&quot;margin-top: 0; margin-right: 0; margin-bottom: 0; margin-left: 0;&quot;&gt; &lt;/p&gt;
&lt;p class=&quot;MsoNormal&quot; style=&quot;margin-top: 0; margin-right: 0; margin-bottom: 0; margin-left: 0;&quot;&gt;Il existe
des dizaines de sites proposant ce service, mais ceux-là ont un truc en plus,
je vous laisse les découvrir.&lt;/p&gt;
&lt;p class=&quot;MsoNormal&quot; style=&quot;margin-top: 0; margin-right: 0; margin-bottom: 0; margin-left: 0;&quot;&gt; &lt;/p&gt;
&lt;h3 style=&quot;font-size: 12pt;&quot;&gt;Sources&lt;/h3&gt;
&lt;p class=&quot;MsoNormal&quot; style=&quot;margin-top: 0; margin-right: 0; margin-bottom: 0; margin-left: 0;&quot;&gt;&lt;a href=&quot;http://beta.parleys.com/#sl=1&amp;amp;st=5&amp;amp;id=625&quot;&gt;http://beta.parleys.com/#sl=1&amp;amp;st=5&amp;amp;id=625&lt;/a&gt;&lt;/p&gt;
&lt;p class=&quot;MsoNormal&quot; style=&quot;margin-top: 0; margin-right: 0; margin-bottom: 0; margin-left: 0;&quot;&gt;&lt;a href=&quot;http://maven.apache.org/guides/mini/guide-site.html&quot; style=&quot;color: rgb(85, 26, 139);&quot;&gt;http://maven.apache.org/guides/mini/guide-site.html&lt;/a&gt;&lt;/p&gt;
&lt;p class=&quot;MsoNormal&quot; style=&quot;margin-top: 0; margin-right: 0; margin-bottom: 0; margin-left: 0;&quot;&gt;&lt;a href=&quot;http://blog.fastconnect.fr/?p=275&quot; style=&quot;color: rgb(85, 26, 139);&quot;&gt;http://blog.fastconnect.fr/?p=275&lt;/a&gt;&lt;/p&gt;
&lt;p class=&quot;MsoNormal&quot; style=&quot;margin-top: 0; margin-right: 0; margin-bottom: 0; margin-left: 0;&quot;&gt; &lt;/p&gt;
&lt;p class=&quot;MsoNormal&quot; style=&quot;margin-top: 0; margin-right: 0; margin-bottom: 0; margin-left: 0;&quot;&gt;Bonne
génératon de site.&lt;/p&gt;
&lt;p class=&quot;MsoNormal&quot; style=&quot;margin-top: 0; margin-right: 0; margin-bottom: 0; margin-left: 0;&quot;&gt; &lt;/p&gt;
&lt;h3 style=&quot;font-size: 12pt;&quot;&gt;Pom.xml&lt;/h3&gt;
&lt;p class=&quot;MsoNormal&quot; style=&quot;margin-top: 0; margin-right: 0; margin-bottom: 0; margin-left: 0;&quot;&gt;
&lt;span style=&quot;color: teal;&quot;&gt;&amp;lt;?&lt;/span&gt;&lt;span style=&quot;color: rgb(63, 127, 127);&quot;&gt;xml &lt;/span&gt;&lt;span style=&quot;color: rgb(127, 0, 127);&quot;&gt;version&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color: rgb(42, 0, 255);&quot;&gt;&amp;quot;1.0&amp;quot; &lt;/span&gt;&lt;span style=&quot;color: rgb(127, 0, 127);&quot;&gt;encoding&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color: rgb(42, 0, 255);&quot;&gt;&amp;quot;UTF-8&amp;quot;&lt;/span&gt;&lt;span style=&quot;color: teal;&quot;&gt;?&amp;gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class=&quot;MsoNormal&quot; style=&quot;margin-top: 0; margin-right: 0; margin-bottom: 0; margin-left: 0;&quot;&gt;
&lt;span style=&quot;color: teal;&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;color: rgb(63, 127, 127);&quot;&gt;project &lt;/span&gt;&lt;span style=&quot;color: rgb(127, 0, 127);&quot;&gt;xmlns&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color: rgb(42, 0, 255);&quot;&gt;&amp;quot;http://maven.apache.org/POM/4.0.0&amp;quot;&lt;/span&gt;&lt;/p&gt;
&lt;p class=&quot;MsoNormal&quot; style=&quot;margin-top: 0; margin-right: 0; margin-bottom: 0; margin-left: 0;&quot;&gt;
&lt;span style=&quot;color: rgb(42, 0, 255);&quot;&gt;            &lt;/span&gt;&lt;span style=&quot;color: rgb(127, 0, 127);&quot;&gt;xmlns:xsi&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color: rgb(42, 0, 255);&quot;&gt;&amp;quot;http://www.w3.org/2001/XMLSchema-instance&amp;quot;&lt;/span&gt;&lt;/p&gt;
&lt;p class=&quot;MsoNormal&quot; style=&quot;margin-top: 0; margin-right: 0; margin-bottom: 0; margin-left: 0;&quot;&gt;
&lt;span style=&quot;color: rgb(42, 0, 255);&quot;&gt;            &lt;/span&gt;&lt;span style=&quot;color: rgb(127, 0, 127);&quot;&gt;xsi:schemaLocation&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color: rgb(42, 0, 255);&quot;&gt;&amp;quot;http://maven.apache.org/POM/4.0.0
http://maven.apache.org/xsd/maven-4.0.0.xsd&amp;quot;&lt;/span&gt;&lt;span style=&quot;color: teal;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class=&quot;MsoNormal&quot; style=&quot;margin-top: 0; margin-right: 0; margin-bottom: 0; margin-left: 0;&quot;&gt; &lt;/p&gt;
&lt;p class=&quot;MsoNormal&quot; style=&quot;margin-top: 0; margin-right: 0; margin-bottom: 0; margin-left: 0;&quot;&gt;
&lt;span style=&quot;color: black;&quot;&gt;            &lt;/span&gt;&lt;span style=&quot;color: teal;&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;color: rgb(63, 127, 127);&quot;&gt;modelVersion&lt;/span&gt;&lt;span style=&quot;color: teal;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;4.0.0&lt;/span&gt;&lt;span style=&quot;color: teal;&quot;&gt;&amp;lt;/&lt;/span&gt;&lt;span style=&quot;color: rgb(63, 127, 127);&quot;&gt;modelVersion&lt;/span&gt;&lt;span style=&quot;color: teal;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class=&quot;MsoNormal&quot; style=&quot;margin-top: 0; margin-right: 0; margin-bottom: 0; margin-left: 0;&quot;&gt;
&lt;span style=&quot;color: black;&quot;&gt;            &lt;/span&gt;&lt;span style=&quot;color: teal;&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;color: rgb(63, 127, 127);&quot;&gt;groupId&lt;/span&gt;&lt;span style=&quot;color: teal;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;com.googlecode.gwt-mvc&lt;/span&gt;&lt;span style=&quot;color: teal;&quot;&gt;&amp;lt;/&lt;/span&gt;&lt;span style=&quot;color: rgb(63, 127, 127);&quot;&gt;groupId&lt;/span&gt;&lt;span style=&quot;color: teal;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class=&quot;MsoNormal&quot; style=&quot;margin-top: 0; margin-right: 0; margin-bottom: 0; margin-left: 0;&quot;&gt;
&lt;span style=&quot;color: black;&quot;&gt;            &lt;/span&gt;&lt;span style=&quot;color: teal;&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;color: rgb(63, 127, 127);&quot;&gt;artifactId&lt;/span&gt;&lt;span style=&quot;color: teal;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;gwt-mvc&lt;/span&gt;&lt;span style=&quot;color: teal;&quot;&gt;&amp;lt;/&lt;/span&gt;&lt;span style=&quot;color: rgb(63, 127, 127);&quot;&gt;artifactId&lt;/span&gt;&lt;span style=&quot;color: teal;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class=&quot;MsoNormal&quot; style=&quot;margin-top: 0; margin-right: 0; margin-bottom: 0; margin-left: 0;&quot;&gt;
&lt;span style=&quot;color: black;&quot;&gt;            &lt;/span&gt;&lt;span style=&quot;color: teal;&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;color: rgb(63, 127, 127);&quot;&gt;version&lt;/span&gt;&lt;span style=&quot;color: teal;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;0.3&lt;/span&gt;&lt;span style=&quot;color: teal;&quot;&gt;&amp;lt;/&lt;/span&gt;&lt;span style=&quot;color: rgb(63, 127, 127);&quot;&gt;version&lt;/span&gt;&lt;span style=&quot;color: teal;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class=&quot;MsoNormal&quot; style=&quot;margin-top: 0; margin-right: 0; margin-bottom: 0; margin-left: 0;&quot;&gt;
&lt;span style=&quot;color: black;&quot;&gt;            &lt;/span&gt;&lt;span style=&quot;color: teal;&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;color: rgb(63, 127, 127);&quot;&gt;packaging&lt;/span&gt;&lt;span style=&quot;color: teal;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;jar&lt;/span&gt;&lt;span style=&quot;color: teal;&quot;&gt;&amp;lt;/&lt;/span&gt;&lt;span style=&quot;color: rgb(63, 127, 127);&quot;&gt;packaging&lt;/span&gt;&lt;span style=&quot;color: teal;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class=&quot;MsoNormal&quot; style=&quot;margin-top: 0; margin-right: 0; margin-bottom: 0; margin-left: 0;&quot;&gt;
&lt;span style=&quot;color: black;&quot;&gt;            &lt;/span&gt;&lt;span style=&quot;color: teal;&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;color: rgb(63, 127, 127);&quot;&gt;name&lt;/span&gt;&lt;span style=&quot;color: teal;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;gwt-mvc&lt;/span&gt;&lt;span style=&quot;color: teal;&quot;&gt;&amp;lt;/&lt;/span&gt;&lt;span style=&quot;color: rgb(63, 127, 127);&quot;&gt;name&lt;/span&gt;&lt;span style=&quot;color: teal;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class=&quot;MsoNormal&quot; style=&quot;margin-top: 0; margin-right: 0; margin-bottom: 0; margin-left: 0;&quot;&gt;
&lt;span style=&quot;color: black;&quot;&gt;            &lt;/span&gt;&lt;span style=&quot;color: teal;&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;color: rgb(63, 127, 127);&quot;&gt;description&lt;/span&gt;&lt;span style=&quot;color: teal;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class=&quot;MsoNormal&quot; style=&quot;margin-top: 0; margin-right: 0; margin-bottom: 0; margin-left: 0;&quot;&gt;
&lt;span style=&quot;color: black;&quot;&gt;                       
gwt-mvc Project, an MVC layer on Google Web Toolkit&lt;/span&gt;&lt;/p&gt;
&lt;p class=&quot;MsoNormal&quot; style=&quot;margin-top: 0; margin-right: 0; margin-bottom: 0; margin-left: 0;&quot;&gt;
&lt;span style=&quot;color: black;&quot;&gt;            &lt;/span&gt;&lt;span style=&quot;color: teal;&quot;&gt;&amp;lt;/&lt;/span&gt;&lt;span style=&quot;color: rgb(63, 127, 127);&quot;&gt;description&lt;/span&gt;&lt;span style=&quot;color: teal;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class=&quot;MsoNormal&quot; style=&quot;margin-top: 0; margin-right: 0; margin-bottom: 0; margin-left: 0;&quot;&gt;
&lt;span style=&quot;color: black;&quot;&gt;            &lt;/span&gt;&lt;span style=&quot;color: teal;&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;color: rgb(63, 127, 127);&quot;&gt;url&lt;/span&gt;&lt;span style=&quot;color: teal;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;http://code.google.com/p/gwt-mvc/&lt;/span&gt;&lt;span style=&quot;color: teal;&quot;&gt;&amp;lt;/&lt;/span&gt;&lt;span style=&quot;color: rgb(63, 127, 127);&quot;&gt;url&lt;/span&gt;&lt;span style=&quot;color: teal;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class=&quot;MsoNormal&quot; style=&quot;margin-top: 0; margin-right: 0; margin-bottom: 0; margin-left: 0;&quot;&gt;
&lt;span style=&quot;color: black;&quot;&gt;            &lt;/span&gt;&lt;span style=&quot;color: teal;&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;color: rgb(63, 127, 127);&quot;&gt;licenses&lt;/span&gt;&lt;span style=&quot;color: teal;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class=&quot;MsoNormal&quot; style=&quot;margin-top: 0; margin-right: 0; margin-bottom: 0; margin-left: 0;&quot;&gt;
&lt;span style=&quot;color: black;&quot;&gt;                        &lt;/span&gt;&lt;span style=&quot;color: teal;&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;color: rgb(63, 127, 127);&quot;&gt;license&lt;/span&gt;&lt;span style=&quot;color: teal;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class=&quot;MsoNormal&quot; style=&quot;margin-top: 0; margin-right: 0; margin-bottom: 0; margin-left: 0;&quot;&gt;
&lt;span style=&quot;color: black;&quot;&gt;                                   &lt;/span&gt;&lt;span style=&quot;color: teal;&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;color: rgb(63, 127, 127);&quot;&gt;name&lt;/span&gt;&lt;span style=&quot;color: teal;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;The
Apache Software License, Version 2.0&lt;/span&gt;&lt;span style=&quot;color: teal;&quot;&gt;&amp;lt;/&lt;/span&gt;&lt;span style=&quot;color: rgb(63, 127, 127);&quot;&gt;name&lt;/span&gt;&lt;span style=&quot;color: teal;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class=&quot;MsoNormal&quot; style=&quot;margin-top: 0; margin-right: 0; margin-bottom: 0; margin-left: 0;&quot;&gt;
&lt;span style=&quot;color: black;&quot;&gt;                                   &lt;/span&gt;&lt;span style=&quot;color: teal;&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;color: rgb(63, 127, 127);&quot;&gt;url&lt;/span&gt;&lt;span style=&quot;color: teal;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;http://www.apache.org/licenses/LICENSE-2.0.txt&lt;/span&gt;&lt;span style=&quot;color: teal;&quot;&gt;&amp;lt;/&lt;/span&gt;&lt;span style=&quot;color: rgb(63, 127, 127);&quot;&gt;url&lt;/span&gt;&lt;span style=&quot;color: teal;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class=&quot;MsoNormal&quot; style=&quot;margin-top: 0; margin-right: 0; margin-bottom: 0; margin-left: 0;&quot;&gt;
&lt;span style=&quot;color: black;&quot;&gt;                                   &lt;/span&gt;&lt;span style=&quot;color: teal;&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;color: rgb(63, 127, 127);&quot;&gt;distribution&lt;/span&gt;&lt;span style=&quot;color: teal;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;gwt-mvc-repository&lt;/span&gt;&lt;span style=&quot;color: teal;&quot;&gt;&amp;lt;/&lt;/span&gt;&lt;span style=&quot;color: rgb(63, 127, 127);&quot;&gt;distribution&lt;/span&gt;&lt;span style=&quot;color: teal;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class=&quot;MsoNormal&quot; style=&quot;margin-top: 0; margin-right: 0; margin-bottom: 0; margin-left: 0;&quot;&gt;
&lt;span style=&quot;color: black;&quot;&gt;                        &lt;/span&gt;&lt;span style=&quot;color: teal;&quot;&gt;&amp;lt;/&lt;/span&gt;&lt;span style=&quot;color: rgb(63, 127, 127);&quot;&gt;license&lt;/span&gt;&lt;span style=&quot;color: teal;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class=&quot;MsoNormal&quot; style=&quot;margin-top: 0; margin-right: 0; margin-bottom: 0; margin-left: 0;&quot;&gt;
&lt;span style=&quot;color: black;&quot;&gt;            &lt;/span&gt;&lt;span style=&quot;color: teal;&quot;&gt;&amp;lt;/&lt;/span&gt;&lt;span style=&quot;color: rgb(63, 127, 127);&quot;&gt;licenses&lt;/span&gt;&lt;span style=&quot;color: teal;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class=&quot;MsoNormal&quot; style=&quot;margin-top: 0; margin-right: 0; margin-bottom: 0; margin-left: 0;&quot;&gt; &lt;/p&gt;
&lt;p class=&quot;MsoNormal&quot; style=&quot;margin-top: 0; margin-right: 0; margin-bottom: 0; margin-left: 0;&quot;&gt;
&lt;span style=&quot;color: black;&quot;&gt;            &lt;/span&gt;&lt;span style=&quot;color: teal;&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;color: rgb(63, 127, 127);&quot;&gt;repositories&lt;/span&gt;&lt;span style=&quot;color: teal;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class=&quot;MsoNormal&quot; style=&quot;margin-top: 0; margin-right: 0; margin-bottom: 0; margin-left: 0;&quot;&gt;
&lt;span style=&quot;color: black;&quot;&gt;                        &lt;/span&gt;&lt;span style=&quot;color: teal;&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;color: rgb(63, 127, 127);&quot;&gt;repository&lt;/span&gt;&lt;span style=&quot;color: teal;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class=&quot;MsoNormal&quot; style=&quot;margin-top: 0; margin-right: 0; margin-bottom: 0; margin-left: 0;&quot;&gt;
&lt;span style=&quot;color: black;&quot;&gt;                                   &lt;/span&gt;&lt;span style=&quot;color: teal;&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;color: rgb(63, 127, 127);&quot;&gt;id&lt;/span&gt;&lt;span style=&quot;color: teal;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;maven2-repository.dev.java.net&lt;/span&gt;&lt;span style=&quot;color: teal;&quot;&gt;&amp;lt;/&lt;/span&gt;&lt;span style=&quot;color: rgb(63, 127, 127);&quot;&gt;id&lt;/span&gt;&lt;span style=&quot;color: teal;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class=&quot;MsoNormal&quot; style=&quot;margin-top: 0; margin-right: 0; margin-bottom: 0; margin-left: 0;&quot;&gt;
&lt;span style=&quot;color: black;&quot;&gt;                                   &lt;/span&gt;&lt;span style=&quot;color: teal;&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;color: rgb(63, 127, 127);&quot;&gt;name&lt;/span&gt;&lt;span style=&quot;color: teal;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;Java.net
Repository for Maven&lt;/span&gt;&lt;span style=&quot;color: teal;&quot;&gt;&amp;lt;/&lt;/span&gt;&lt;span style=&quot;color: rgb(63, 127, 127);&quot;&gt;name&lt;/span&gt;&lt;span style=&quot;color: teal;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class=&quot;MsoNormal&quot; style=&quot;margin-top: 0; margin-right: 0; margin-bottom: 0; margin-left: 0;&quot;&gt;
&lt;span style=&quot;color: black;&quot;&gt;                                   &lt;/span&gt;&lt;span style=&quot;color: teal;&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;color: rgb(63, 127, 127);&quot;&gt;url&lt;/span&gt;&lt;span style=&quot;color: teal;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;http://download.java.net/maven/2/&lt;/span&gt;&lt;span style=&quot;color: teal;&quot;&gt;&amp;lt;/&lt;/span&gt;&lt;span style=&quot;color: rgb(63, 127, 127);&quot;&gt;url&lt;/span&gt;&lt;span style=&quot;color: teal;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class=&quot;MsoNormal&quot; style=&quot;margin-top: 0; margin-right: 0; margin-bottom: 0; margin-left: 0;&quot;&gt;
&lt;span style=&quot;color: black;&quot;&gt;                        &lt;/span&gt;&lt;span style=&quot;color: teal;&quot;&gt;&amp;lt;/&lt;/span&gt;&lt;span style=&quot;color: rgb(63, 127, 127);&quot;&gt;repository&lt;/span&gt;&lt;span style=&quot;color: teal;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class=&quot;MsoNormal&quot; style=&quot;margin-top: 0; margin-right: 0; margin-bottom: 0; margin-left: 0;&quot;&gt;
&lt;span style=&quot;color: black;&quot;&gt;                        &lt;/span&gt;&lt;span style=&quot;color: teal;&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;color: rgb(63, 127, 127);&quot;&gt;repository&lt;/span&gt;&lt;span style=&quot;color: teal;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class=&quot;MsoNormal&quot; style=&quot;margin-top: 0; margin-right: 0; margin-bottom: 0; margin-left: 0;&quot;&gt;
&lt;span style=&quot;color: black;&quot;&gt;                                   &lt;/span&gt;&lt;span style=&quot;color: teal;&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;color: rgb(63, 127, 127);&quot;&gt;id&lt;/span&gt;&lt;span style=&quot;color: teal;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;gwt-maven-repository&lt;/span&gt;&lt;span style=&quot;color: teal;&quot;&gt;&amp;lt;/&lt;/span&gt;&lt;span style=&quot;color: rgb(63, 127, 127);&quot;&gt;id&lt;/span&gt;&lt;span style=&quot;color: teal;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class=&quot;MsoNormal&quot; style=&quot;margin-top: 0; margin-right: 0; margin-bottom: 0; margin-left: 0;&quot;&gt;
&lt;span style=&quot;color: black;&quot;&gt;                                   &lt;/span&gt;&lt;span style=&quot;color: teal;&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;color: rgb(63, 127, 127);&quot;&gt;url&lt;/span&gt;&lt;span style=&quot;color: teal;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class=&quot;MsoNormal&quot; style=&quot;margin-top: 0; margin-right: 0; margin-bottom: 0; margin-left: 0;&quot;&gt;
&lt;span style=&quot;color: black;&quot;&gt;                                              
http://gwt-maven.googlecode.com/svn/trunk/mavenrepo&lt;/span&gt;&lt;/p&gt;
&lt;p class=&quot;MsoNormal&quot; style=&quot;margin-top: 0; margin-right: 0; margin-bottom: 0; margin-left: 0;&quot;&gt;
&lt;span style=&quot;color: black;&quot;&gt;                                   &lt;/span&gt;&lt;span style=&quot;color: teal;&quot;&gt;&amp;lt;/&lt;/span&gt;&lt;span style=&quot;color: rgb(63, 127, 127);&quot;&gt;url&lt;/span&gt;&lt;span style=&quot;color: teal;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class=&quot;MsoNormal&quot; style=&quot;margin-top: 0; margin-right: 0; margin-bottom: 0; margin-left: 0;&quot;&gt;
&lt;span style=&quot;color: black;&quot;&gt;                        &lt;/span&gt;&lt;span style=&quot;color: teal;&quot;&gt;&amp;lt;/&lt;/span&gt;&lt;span style=&quot;color: rgb(63, 127, 127);&quot;&gt;repository&lt;/span&gt;&lt;span style=&quot;color: teal;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class=&quot;MsoNormal&quot; style=&quot;margin-top: 0; margin-right: 0; margin-bottom: 0; margin-left: 0;&quot;&gt;
&lt;span style=&quot;color: black;&quot;&gt;            &lt;/span&gt;&lt;span style=&quot;color: teal;&quot;&gt;&amp;lt;/&lt;/span&gt;&lt;span style=&quot;color: rgb(63, 127, 127);&quot;&gt;repositories&lt;/span&gt;&lt;span style=&quot;color: teal;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class=&quot;MsoNormal&quot; style=&quot;margin-top: 0; margin-right: 0; margin-bottom: 0; margin-left: 0;&quot;&gt; &lt;/p&gt;
&lt;p class=&quot;MsoNormal&quot; style=&quot;margin-top: 0; margin-right: 0; margin-bottom: 0; margin-left: 0;&quot;&gt;
&lt;span style=&quot;color: black;&quot;&gt;            &lt;/span&gt;&lt;span style=&quot;color: teal;&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;color: rgb(63, 127, 127);&quot;&gt;scm&lt;/span&gt;&lt;span style=&quot;color: teal;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class=&quot;MsoNormal&quot; style=&quot;margin-top: 0; margin-right: 0; margin-bottom: 0; margin-left: 0;&quot;&gt;
&lt;span style=&quot;color: black;&quot;&gt;                        &lt;/span&gt;&lt;span style=&quot;color: rgb(63, 95, 191);&quot;&gt;&amp;lt;!--
http://maven.apache.org/scm/subversion.html --&amp;gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class=&quot;MsoNormal&quot; style=&quot;margin-top: 0; margin-right: 0; margin-bottom: 0; margin-left: 0;&quot;&gt;
&lt;span style=&quot;color: black;&quot;&gt;                        &lt;/span&gt;&lt;span style=&quot;color: teal;&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;color: rgb(63, 127, 127);&quot;&gt;connection&lt;/span&gt;&lt;span style=&quot;color: teal;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class=&quot;MsoNormal&quot; style=&quot;margin-top: 0; margin-right: 0; margin-bottom: 0; margin-left: 0;&quot;&gt;
&lt;span style=&quot;color: black;&quot;&gt;                                  
scm:svn:http://gwt-mvc.googlecode.com/svn/trunk/gwt-mvc&lt;/span&gt;&lt;/p&gt;
&lt;p class=&quot;MsoNormal&quot; style=&quot;margin-top: 0; margin-right: 0; margin-bottom: 0; margin-left: 0;&quot;&gt;
&lt;span style=&quot;color: black;&quot;&gt;                        &lt;/span&gt;&lt;span style=&quot;color: teal;&quot;&gt;&amp;lt;/&lt;/span&gt;&lt;span style=&quot;color: rgb(63, 127, 127);&quot;&gt;connection&lt;/span&gt;&lt;span style=&quot;color: teal;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class=&quot;MsoNormal&quot; style=&quot;margin-top: 0; margin-right: 0; margin-bottom: 0; margin-left: 0;&quot;&gt;
&lt;span style=&quot;color: black;&quot;&gt;                        &lt;/span&gt;&lt;span style=&quot;color: teal;&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;color: rgb(63, 127, 127);&quot;&gt;developerConnection&lt;/span&gt;&lt;span style=&quot;color: teal;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class=&quot;MsoNormal&quot; style=&quot;margin-top: 0; margin-right: 0; margin-bottom: 0; margin-left: 0;&quot;&gt;
&lt;span style=&quot;color: black;&quot;&gt;                                  
scm:svn:https://${username}:${password}@gwt-mvc.googlecode.com/svn/trunk/gwt-mvc&lt;/span&gt;&lt;/p&gt;
&lt;p class=&quot;MsoNormal&quot; style=&quot;margin-top: 0; margin-right: 0; margin-bottom: 0; margin-left: 0;&quot;&gt;
&lt;span style=&quot;color: black;&quot;&gt;                        &lt;/span&gt;&lt;span style=&quot;color: teal;&quot;&gt;&amp;lt;/&lt;/span&gt;&lt;span style=&quot;color: rgb(63, 127, 127);&quot;&gt;developerConnection&lt;/span&gt;&lt;span style=&quot;color: teal;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class=&quot;MsoNormal&quot; style=&quot;margin-top: 0; margin-right: 0; margin-bottom: 0; margin-left: 0;&quot;&gt;
&lt;span style=&quot;color: black;&quot;&gt;                        &lt;/span&gt;&lt;span style=&quot;color: teal;&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;color: rgb(63, 127, 127);&quot;&gt;url&lt;/span&gt;&lt;span style=&quot;color: teal;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;http://code.google.com/p/gwt-mvc/source/browse/&lt;/span&gt;&lt;span style=&quot;color: teal;&quot;&gt;&amp;lt;/&lt;/span&gt;&lt;span style=&quot;color: rgb(63, 127, 127);&quot;&gt;url&lt;/span&gt;&lt;span style=&quot;color: teal;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class=&quot;MsoNormal&quot; style=&quot;margin-top: 0; margin-right: 0; margin-bottom: 0; margin-left: 0;&quot;&gt;
&lt;span style=&quot;color: black;&quot;&gt;            &lt;/span&gt;&lt;span style=&quot;color: teal;&quot;&gt;&amp;lt;/&lt;/span&gt;&lt;span style=&quot;color: rgb(63, 127, 127);&quot;&gt;scm&lt;/span&gt;&lt;span style=&quot;color: teal;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class=&quot;MsoNormal&quot; style=&quot;margin-top: 0; margin-right: 0; margin-bottom: 0; margin-left: 0;&quot;&gt; &lt;/p&gt;
&lt;p class=&quot;MsoNormal&quot; style=&quot;margin-top: 0; margin-right: 0; margin-bottom: 0; margin-left: 0;&quot;&gt;
&lt;span style=&quot;color: black;&quot;&gt;            &lt;/span&gt;&lt;span style=&quot;color: teal;&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;color: rgb(63, 127, 127);&quot;&gt;distributionManagement&lt;/span&gt;&lt;span style=&quot;color: teal;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class=&quot;MsoNormal&quot; style=&quot;margin-top: 0; margin-right: 0; margin-bottom: 0; margin-left: 0;&quot;&gt;
&lt;span style=&quot;color: black;&quot;&gt;                        &lt;/span&gt;&lt;span style=&quot;color: teal;&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;color: rgb(63, 127, 127);&quot;&gt;repository&lt;/span&gt;&lt;span style=&quot;color: teal;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class=&quot;MsoNormal&quot; style=&quot;margin-top: 0; margin-right: 0; margin-bottom: 0; margin-left: 0;&quot;&gt;
&lt;span style=&quot;color: black;&quot;&gt;                                   &lt;/span&gt;&lt;span style=&quot;color: teal;&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;color: rgb(63, 127, 127);&quot;&gt;id&lt;/span&gt;&lt;span style=&quot;color: teal;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;gwt-mvc-repository&lt;/span&gt;&lt;span style=&quot;color: teal;&quot;&gt;&amp;lt;/&lt;/span&gt;&lt;span style=&quot;color: rgb(63, 127, 127);&quot;&gt;id&lt;/span&gt;&lt;span style=&quot;color: teal;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class=&quot;MsoNormal&quot; style=&quot;margin-top: 0; margin-right: 0; margin-bottom: 0; margin-left: 0;&quot;&gt;
&lt;span style=&quot;color: black;&quot;&gt;                                   &lt;/span&gt;&lt;span style=&quot;color: teal;&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;color: rgb(63, 127, 127);&quot;&gt;url&lt;/span&gt;&lt;span style=&quot;color: teal;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;svn:https://gwt-mvc.googlecode.com/svn/repository&lt;/span&gt;&lt;span style=&quot;color: teal;&quot;&gt;&amp;lt;/&lt;/span&gt;&lt;span style=&quot;color: rgb(63, 127, 127);&quot;&gt;url&lt;/span&gt;&lt;span style=&quot;color: teal;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class=&quot;MsoNormal&quot; style=&quot;margin-top: 0; margin-right: 0; margin-bottom: 0; margin-left: 0;&quot;&gt;
&lt;span style=&quot;color: black;&quot;&gt;                        &lt;/span&gt;&lt;span style=&quot;color: teal;&quot;&gt;&amp;lt;/&lt;/span&gt;&lt;span style=&quot;color: rgb(63, 127, 127);&quot;&gt;repository&lt;/span&gt;&lt;span style=&quot;color: teal;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class=&quot;MsoNormal&quot; style=&quot;margin-top: 0; margin-right: 0; margin-bottom: 0; margin-left: 0;&quot;&gt;
&lt;span style=&quot;color: black;&quot;&gt;                        &lt;/span&gt;&lt;span style=&quot;color: teal;&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;color: rgb(63, 127, 127);&quot;&gt;site&lt;/span&gt;&lt;span style=&quot;color: teal;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class=&quot;MsoNormal&quot; style=&quot;margin-top: 0; margin-right: 0; margin-bottom: 0; margin-left: 0;&quot;&gt;
&lt;span style=&quot;color: black;&quot;&gt;                                   &lt;/span&gt;&lt;span style=&quot;color: teal;&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;color: rgb(63, 127, 127);&quot;&gt;id&lt;/span&gt;&lt;span style=&quot;color: teal;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;gwt-mvc-site&lt;/span&gt;&lt;span style=&quot;color: teal;&quot;&gt;&amp;lt;/&lt;/span&gt;&lt;span style=&quot;color: rgb(63, 127, 127);&quot;&gt;id&lt;/span&gt;&lt;span style=&quot;color: teal;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class=&quot;MsoNormal&quot; style=&quot;margin-top: 0; margin-right: 0; margin-bottom: 0; margin-left: 0;&quot;&gt;
&lt;span style=&quot;color: black;&quot;&gt;                                   &lt;/span&gt;&lt;span style=&quot;color: teal;&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;color: rgb(63, 127, 127);&quot;&gt;url&lt;/span&gt;&lt;span style=&quot;color: teal;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class=&quot;MsoNormal&quot; style=&quot;margin-top: 0; margin-right: 0; margin-bottom: 0; margin-left: 0;&quot;&gt;
&lt;span style=&quot;color: black;&quot;&gt;                                              
svn:https://gwt-mvc.googlecode.com/svn/site/${version}&lt;/span&gt;&lt;/p&gt;
&lt;p class=&quot;MsoNormal&quot; style=&quot;margin-top: 0; margin-right: 0; margin-bottom: 0; margin-left: 0;&quot;&gt;
&lt;span style=&quot;color: black;&quot;&gt;                                   &lt;/span&gt;&lt;span style=&quot;color: teal;&quot;&gt;&amp;lt;/&lt;/span&gt;&lt;span style=&quot;color: rgb(63, 127, 127);&quot;&gt;url&lt;/span&gt;&lt;span style=&quot;color: teal;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class=&quot;MsoNormal&quot; style=&quot;margin-top: 0; margin-right: 0; margin-bottom: 0; margin-left: 0;&quot;&gt;
&lt;span style=&quot;color: black;&quot;&gt;                        &lt;/span&gt;&lt;span style=&quot;color: teal;&quot;&gt;&amp;lt;/&lt;/span&gt;&lt;span style=&quot;color: rgb(63, 127, 127);&quot;&gt;site&lt;/span&gt;&lt;span style=&quot;color: teal;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class=&quot;MsoNormal&quot; style=&quot;margin-top: 0; margin-right: 0; margin-bottom: 0; margin-left: 0;&quot;&gt;
&lt;span style=&quot;color: black;&quot;&gt;            &lt;/span&gt;&lt;span style=&quot;color: teal;&quot;&gt;&amp;lt;/&lt;/span&gt;&lt;span style=&quot;color: rgb(63, 127, 127);&quot;&gt;distributionManagement&lt;/span&gt;&lt;span style=&quot;color: teal;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class=&quot;MsoNormal&quot; style=&quot;margin-top: 0; margin-right: 0; margin-bottom: 0; margin-left: 0;&quot;&gt; &lt;/p&gt;
&lt;p class=&quot;MsoNormal&quot; style=&quot;margin-top: 0; margin-right: 0; margin-bottom: 0; margin-left: 0;&quot;&gt;
&lt;span style=&quot;color: black;&quot;&gt;            &lt;/span&gt;&lt;span style=&quot;color: teal;&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;color: rgb(63, 127, 127);&quot;&gt;build&lt;/span&gt;&lt;span style=&quot;color: teal;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class=&quot;MsoNormal&quot; style=&quot;margin-top: 0; margin-right: 0; margin-bottom: 0; margin-left: 0;&quot;&gt;
&lt;span style=&quot;color: black;&quot;&gt;                        &lt;/span&gt;&lt;span style=&quot;color: teal;&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;color: rgb(63, 127, 127);&quot;&gt;extensions&lt;/span&gt;&lt;span style=&quot;color: teal;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class=&quot;MsoNormal&quot; style=&quot;margin-top: 0; margin-right: 0; margin-bottom: 0; margin-left: 0;&quot;&gt;
&lt;span style=&quot;color: black;&quot;&gt;                                   &lt;/span&gt;&lt;span style=&quot;color: teal;&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;color: rgb(63, 127, 127);&quot;&gt;extension&lt;/span&gt;&lt;span style=&quot;color: teal;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class=&quot;MsoNormal&quot; style=&quot;margin-top: 0; margin-right: 0; margin-bottom: 0; margin-left: 0;&quot;&gt;
&lt;span style=&quot;color: black;&quot;&gt;                                               &lt;/span&gt;&lt;span style=&quot;color: teal;&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;color: rgb(63, 127, 127);&quot;&gt;groupId&lt;/span&gt;&lt;span style=&quot;color: teal;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;org.jvnet.wagon-svn&lt;/span&gt;&lt;span style=&quot;color: teal;&quot;&gt;&amp;lt;/&lt;/span&gt;&lt;span style=&quot;color: rgb(63, 127, 127);&quot;&gt;groupId&lt;/span&gt;&lt;span style=&quot;color: teal;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class=&quot;MsoNormal&quot; style=&quot;margin-top: 0; margin-right: 0; margin-bottom: 0; margin-left: 0;&quot;&gt;
&lt;span style=&quot;color: black;&quot;&gt;                                               &lt;/span&gt;&lt;span style=&quot;color: teal;&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;color: rgb(63, 127, 127);&quot;&gt;artifactId&lt;/span&gt;&lt;span style=&quot;color: teal;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;wagon-svn&lt;/span&gt;&lt;span style=&quot;color: teal;&quot;&gt;&amp;lt;/&lt;/span&gt;&lt;span style=&quot;color: rgb(63, 127, 127);&quot;&gt;artifactId&lt;/span&gt;&lt;span style=&quot;color: teal;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class=&quot;MsoNormal&quot; style=&quot;margin-top: 0; margin-right: 0; margin-bottom: 0; margin-left: 0;&quot;&gt;
&lt;span style=&quot;color: black;&quot;&gt;                                               &lt;/span&gt;&lt;span style=&quot;color: teal;&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;color: rgb(63, 127, 127);&quot;&gt;version&lt;/span&gt;&lt;span style=&quot;color: teal;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;1.9&lt;/span&gt;&lt;span style=&quot;color: teal;&quot;&gt;&amp;lt;/&lt;/span&gt;&lt;span style=&quot;color: rgb(63, 127, 127);&quot;&gt;version&lt;/span&gt;&lt;span style=&quot;color: teal;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class=&quot;MsoNormal&quot; style=&quot;margin-top: 0; margin-right: 0; margin-bottom: 0; margin-left: 0;&quot;&gt;
&lt;span style=&quot;color: black;&quot;&gt;                                   &lt;/span&gt;&lt;span style=&quot;color: teal;&quot;&gt;&amp;lt;/&lt;/span&gt;&lt;span style=&quot;color: rgb(63, 127, 127);&quot;&gt;extension&lt;/span&gt;&lt;span style=&quot;color: teal;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class=&quot;MsoNormal&quot; style=&quot;margin-top: 0; margin-right: 0; margin-bottom: 0; margin-left: 0;&quot;&gt;
&lt;span style=&quot;color: black;&quot;&gt;                        &lt;/span&gt;&lt;span style=&quot;color: teal;&quot;&gt;&amp;lt;/&lt;/span&gt;&lt;span style=&quot;color: rgb(63, 127, 127);&quot;&gt;extensions&lt;/span&gt;&lt;span style=&quot;color: teal;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class=&quot;MsoNormal&quot; style=&quot;margin-top: 0; margin-right: 0; margin-bottom: 0; margin-left: 0;&quot;&gt;
&lt;span style=&quot;color: black;&quot;&gt;                        &lt;/span&gt;&lt;span style=&quot;color: teal;&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;color: rgb(63, 127, 127);&quot;&gt;plugins&lt;/span&gt;&lt;span style=&quot;color: teal;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class=&quot;MsoNormal&quot; style=&quot;margin-top: 0; margin-right: 0; margin-bottom: 0; margin-left: 0;&quot;&gt;
&lt;span style=&quot;color: black;&quot;&gt;                                   &lt;/span&gt;&lt;span style=&quot;color: teal;&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;color: rgb(63, 127, 127);&quot;&gt;plugin&lt;/span&gt;&lt;span style=&quot;color: teal;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class=&quot;MsoNormal&quot; style=&quot;margin-top: 0; margin-right: 0; margin-bottom: 0; margin-left: 0;&quot;&gt;
&lt;span style=&quot;color: black;&quot;&gt;                                               &lt;/span&gt;&lt;span style=&quot;color: teal;&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;color: rgb(63, 127, 127);&quot;&gt;groupId&lt;/span&gt;&lt;span style=&quot;color: teal;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;org.apache.maven.plugins&lt;/span&gt;&lt;span style=&quot;color: teal;&quot;&gt;&amp;lt;/&lt;/span&gt;&lt;span style=&quot;color: rgb(63, 127, 127);&quot;&gt;groupId&lt;/span&gt;&lt;span style=&quot;color: teal;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class=&quot;MsoNormal&quot; style=&quot;margin-top: 0; margin-right: 0; margin-bottom: 0; margin-left: 0;&quot;&gt;
&lt;span style=&quot;color: black;&quot;&gt;                                               &lt;/span&gt;&lt;span style=&quot;color: teal;&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;color: rgb(63, 127, 127);&quot;&gt;artifactId&lt;/span&gt;&lt;span style=&quot;color: teal;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;maven-compiler-plugin&lt;/span&gt;&lt;span style=&quot;color: teal;&quot;&gt;&amp;lt;/&lt;/span&gt;&lt;span style=&quot;color: rgb(63, 127, 127);&quot;&gt;artifactId&lt;/span&gt;&lt;span style=&quot;color: teal;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class=&quot;MsoNormal&quot; style=&quot;margin-top: 0; margin-right: 0; margin-bottom: 0; margin-left: 0;&quot;&gt; &lt;/p&gt;
&lt;p class=&quot;MsoNormal&quot; style=&quot;margin-top: 0; margin-right: 0; margin-bottom: 0; margin-left: 0;&quot;&gt;
&lt;span style=&quot;color: black;&quot;&gt;                                               &lt;/span&gt;&lt;span style=&quot;color: teal;&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;color: rgb(63, 127, 127);&quot;&gt;configuration&lt;/span&gt;&lt;span style=&quot;color: teal;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class=&quot;MsoNormal&quot; style=&quot;margin-top: 0; margin-right: 0; margin-bottom: 0; margin-left: 0;&quot;&gt;
&lt;span style=&quot;color: black;&quot;&gt;                                                           &lt;/span&gt;&lt;span style=&quot;color: teal;&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;color: rgb(63, 127, 127);&quot;&gt;source&lt;/span&gt;&lt;span style=&quot;color: teal;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;1.5&lt;/span&gt;&lt;span style=&quot;color: teal;&quot;&gt;&amp;lt;/&lt;/span&gt;&lt;span style=&quot;color: rgb(63, 127, 127);&quot;&gt;source&lt;/span&gt;&lt;span style=&quot;color: teal;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class=&quot;MsoNormal&quot; style=&quot;margin-top: 0; margin-right: 0; margin-bottom: 0; margin-left: 0;&quot;&gt;
&lt;span style=&quot;color: black;&quot;&gt;                                                           &lt;/span&gt;&lt;span style=&quot;color: teal;&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;color: rgb(63, 127, 127);&quot;&gt;target&lt;/span&gt;&lt;span style=&quot;color: teal;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;1.5&lt;/span&gt;&lt;span style=&quot;color: teal;&quot;&gt;&amp;lt;/&lt;/span&gt;&lt;span style=&quot;color: rgb(63, 127, 127);&quot;&gt;target&lt;/span&gt;&lt;span style=&quot;color: teal;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class=&quot;MsoNormal&quot; style=&quot;margin-top: 0; margin-right: 0; margin-bottom: 0; margin-left: 0;&quot;&gt;
&lt;span style=&quot;color: black;&quot;&gt;                                                           &lt;/span&gt;&lt;span style=&quot;color: teal;&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;color: rgb(63, 127, 127);&quot;&gt;compilerVersion&lt;/span&gt;&lt;span style=&quot;color: teal;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;1.5&lt;/span&gt;&lt;span style=&quot;color: teal;&quot;&gt;&amp;lt;/&lt;/span&gt;&lt;span style=&quot;color: rgb(63, 127, 127);&quot;&gt;compilerVersion&lt;/span&gt;&lt;span style=&quot;color: teal;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class=&quot;MsoNormal&quot; style=&quot;margin-top: 0; margin-right: 0; margin-bottom: 0; margin-left: 0;&quot;&gt;
&lt;span style=&quot;color: black;&quot;&gt;                                               &lt;/span&gt;&lt;span style=&quot;color: teal;&quot;&gt;&amp;lt;/&lt;/span&gt;&lt;span style=&quot;color: rgb(63, 127, 127);&quot;&gt;configuration&lt;/span&gt;&lt;span style=&quot;color: teal;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class=&quot;MsoNormal&quot; style=&quot;margin-top: 0; margin-right: 0; margin-bottom: 0; margin-left: 0;&quot;&gt;
&lt;span style=&quot;color: black;&quot;&gt;                                   &lt;/span&gt;&lt;span style=&quot;color: teal;&quot;&gt;&amp;lt;/&lt;/span&gt;&lt;span style=&quot;color: rgb(63, 127, 127);&quot;&gt;plugin&lt;/span&gt;&lt;span style=&quot;color: teal;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class=&quot;MsoNormal&quot; style=&quot;margin-top: 0; margin-right: 0; margin-bottom: 0; margin-left: 0;&quot;&gt;
&lt;span style=&quot;color: black;&quot;&gt;                        &lt;/span&gt;&lt;span style=&quot;color: teal;&quot;&gt;&amp;lt;/&lt;/span&gt;&lt;span style=&quot;color: rgb(63, 127, 127);&quot;&gt;plugins&lt;/span&gt;&lt;span style=&quot;color: teal;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class=&quot;MsoNormal&quot; style=&quot;margin-top: 0; margin-right: 0; margin-bottom: 0; margin-left: 0;&quot;&gt;
&lt;span style=&quot;color: black;&quot;&gt;            &lt;/span&gt;&lt;span style=&quot;color: teal;&quot;&gt;&amp;lt;/&lt;/span&gt;&lt;span style=&quot;color: rgb(63, 127, 127);&quot;&gt;build&lt;/span&gt;&lt;span style=&quot;color: teal;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class=&quot;MsoNormal&quot; style=&quot;margin-top: 0; margin-right: 0; margin-bottom: 0; margin-left: 0;&quot;&gt; &lt;/p&gt;
&lt;p class=&quot;MsoNormal&quot; style=&quot;margin-top: 0; margin-right: 0; margin-bottom: 0; margin-left: 0;&quot;&gt;
&lt;span style=&quot;color: black;&quot;&gt;            &lt;/span&gt;&lt;span style=&quot;color: teal;&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;color: rgb(63, 127, 127);&quot;&gt;dependencies&lt;/span&gt;&lt;span style=&quot;color: teal;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class=&quot;MsoNormal&quot; style=&quot;margin-top: 0; margin-right: 0; margin-bottom: 0; margin-left: 0;&quot;&gt; &lt;/p&gt;
&lt;p class=&quot;MsoNormal&quot; style=&quot;margin-top: 0; margin-right: 0; margin-bottom: 0; margin-left: 0;&quot;&gt;
&lt;span style=&quot;color: black;&quot;&gt;                        &lt;/span&gt;&lt;span style=&quot;color: teal;&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;color: rgb(63, 127, 127);&quot;&gt;dependency&lt;/span&gt;&lt;span style=&quot;color: teal;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class=&quot;MsoNormal&quot; style=&quot;margin-top: 0; margin-right: 0; margin-bottom: 0; margin-left: 0;&quot;&gt;
&lt;span style=&quot;color: black;&quot;&gt;                                   &lt;/span&gt;&lt;span style=&quot;color: teal;&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;color: rgb(63, 127, 127);&quot;&gt;groupId&lt;/span&gt;&lt;span style=&quot;color: teal;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;com.google.gwt&lt;/span&gt;&lt;span style=&quot;color: teal;&quot;&gt;&amp;lt;/&lt;/span&gt;&lt;span style=&quot;color: rgb(63, 127, 127);&quot;&gt;groupId&lt;/span&gt;&lt;span style=&quot;color: teal;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class=&quot;MsoNormal&quot; style=&quot;margin-top: 0; margin-right: 0; margin-bottom: 0; margin-left: 0;&quot;&gt;
&lt;span style=&quot;color: black;&quot;&gt;                                   &lt;/span&gt;&lt;span style=&quot;color: teal;&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;color: rgb(63, 127, 127);&quot;&gt;artifactId&lt;/span&gt;&lt;span style=&quot;color: teal;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;gwt-user&lt;/span&gt;&lt;span style=&quot;color: teal;&quot;&gt;&amp;lt;/&lt;/span&gt;&lt;span style=&quot;color: rgb(63, 127, 127);&quot;&gt;artifactId&lt;/span&gt;&lt;span style=&quot;color: teal;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class=&quot;MsoNormal&quot; style=&quot;margin-top: 0; margin-right: 0; margin-bottom: 0; margin-left: 0;&quot;&gt;
&lt;span style=&quot;color: black;&quot;&gt;                                   &lt;/span&gt;&lt;span style=&quot;color: teal;&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;color: rgb(63, 127, 127);&quot;&gt;version&lt;/span&gt;&lt;span style=&quot;color: teal;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;1.6.4&lt;/span&gt;&lt;span style=&quot;color: teal;&quot;&gt;&amp;lt;/&lt;/span&gt;&lt;span style=&quot;color: rgb(63, 127, 127);&quot;&gt;version&lt;/span&gt;&lt;span style=&quot;color: teal;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class=&quot;MsoNormal&quot; style=&quot;margin-top: 0; margin-right: 0; margin-bottom: 0; margin-left: 0;&quot;&gt;
&lt;span style=&quot;color: black;&quot;&gt;                                   &lt;/span&gt;&lt;span style=&quot;color: teal;&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;color: rgb(63, 127, 127);&quot;&gt;scope&lt;/span&gt;&lt;span style=&quot;color: teal;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;provided&lt;/span&gt;&lt;span style=&quot;color: teal;&quot;&gt;&amp;lt;/&lt;/span&gt;&lt;span style=&quot;color: rgb(63, 127, 127);&quot;&gt;scope&lt;/span&gt;&lt;span style=&quot;color: teal;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class=&quot;MsoNormal&quot; style=&quot;margin-top: 0; margin-right: 0; margin-bottom: 0; margin-left: 0;&quot;&gt;
&lt;span style=&quot;color: black;&quot;&gt;                        &lt;/span&gt;&lt;span style=&quot;color: teal;&quot;&gt;&amp;lt;/&lt;/span&gt;&lt;span style=&quot;color: rgb(63, 127, 127);&quot;&gt;dependency&lt;/span&gt;&lt;span style=&quot;color: teal;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class=&quot;MsoNormal&quot; style=&quot;margin-top: 0; margin-right: 0; margin-bottom: 0; margin-left: 0;&quot;&gt; &lt;/p&gt;
&lt;p class=&quot;MsoNormal&quot; style=&quot;margin-top: 0; margin-right: 0; margin-bottom: 0; margin-left: 0;&quot;&gt; &lt;/p&gt;
&lt;p class=&quot;MsoNormal&quot; style=&quot;margin-top: 0; margin-right: 0; margin-bottom: 0; margin-left: 0;&quot;&gt;
&lt;span style=&quot;color: black;&quot;&gt;                        &lt;/span&gt;&lt;span style=&quot;color: rgb(63, 95, 191);&quot;&gt;&amp;lt;!--
ControllerTestCase compilation --&amp;gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class=&quot;MsoNormal&quot; style=&quot;margin-top: 0; margin-right: 0; margin-bottom: 0; margin-left: 0;&quot;&gt;
&lt;span style=&quot;color: black;&quot;&gt;                        &lt;/span&gt;&lt;span style=&quot;color: teal;&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;color: rgb(63, 127, 127);&quot;&gt;dependency&lt;/span&gt;&lt;span style=&quot;color: teal;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class=&quot;MsoNormal&quot; style=&quot;margin-top: 0; margin-right: 0; margin-bottom: 0; margin-left: 0;&quot;&gt;
&lt;span style=&quot;color: black;&quot;&gt;                                   &lt;/span&gt;&lt;span style=&quot;color: teal;&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;color: rgb(63, 127, 127);&quot;&gt;groupId&lt;/span&gt;&lt;span style=&quot;color: teal;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;junit&lt;/span&gt;&lt;span style=&quot;color: teal;&quot;&gt;&amp;lt;/&lt;/span&gt;&lt;span style=&quot;color: rgb(63, 127, 127);&quot;&gt;groupId&lt;/span&gt;&lt;span style=&quot;color: teal;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class=&quot;MsoNormal&quot; style=&quot;margin-top: 0; margin-right: 0; margin-bottom: 0; margin-left: 0;&quot;&gt;
&lt;span style=&quot;color: black;&quot;&gt;                                   &lt;/span&gt;&lt;span style=&quot;color: teal;&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;color: rgb(63, 127, 127);&quot;&gt;artifactId&lt;/span&gt;&lt;span style=&quot;color: teal;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;junit&lt;/span&gt;&lt;span style=&quot;color: teal;&quot;&gt;&amp;lt;/&lt;/span&gt;&lt;span style=&quot;color: rgb(63, 127, 127);&quot;&gt;artifactId&lt;/span&gt;&lt;span style=&quot;color: teal;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class=&quot;MsoNormal&quot; style=&quot;margin-top: 0; margin-right: 0; margin-bottom: 0; margin-left: 0;&quot;&gt;
&lt;span style=&quot;color: black;&quot;&gt;                                   &lt;/span&gt;&lt;span style=&quot;color: teal;&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;color: rgb(63, 127, 127);&quot;&gt;version&lt;/span&gt;&lt;span style=&quot;color: teal;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;4.5&lt;/span&gt;&lt;span style=&quot;color: teal;&quot;&gt;&amp;lt;/&lt;/span&gt;&lt;span style=&quot;color: rgb(63, 127, 127);&quot;&gt;version&lt;/span&gt;&lt;span style=&quot;color: teal;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class=&quot;MsoNormal&quot; style=&quot;margin-top: 0; margin-right: 0; margin-bottom: 0; margin-left: 0;&quot;&gt;
&lt;span style=&quot;color: black;&quot;&gt;                                   &lt;/span&gt;&lt;span style=&quot;color: teal;&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;color: rgb(63, 127, 127);&quot;&gt;scope&lt;/span&gt;&lt;span style=&quot;color: teal;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;provided&lt;/span&gt;&lt;span style=&quot;color: teal;&quot;&gt;&amp;lt;/&lt;/span&gt;&lt;span style=&quot;color: rgb(63, 127, 127);&quot;&gt;scope&lt;/span&gt;&lt;span style=&quot;color: teal;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class=&quot;MsoNormal&quot; style=&quot;margin-top: 0; margin-right: 0; margin-bottom: 0; margin-left: 0;&quot;&gt;
&lt;span style=&quot;color: black;&quot;&gt;                        &lt;/span&gt;&lt;span style=&quot;color: teal;&quot;&gt;&amp;lt;/&lt;/span&gt;&lt;span style=&quot;color: rgb(63, 127, 127);&quot;&gt;dependency&lt;/span&gt;&lt;span style=&quot;color: teal;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class=&quot;MsoNormal&quot; style=&quot;margin-top: 0; margin-right: 0; margin-bottom: 0; margin-left: 0;&quot;&gt;
&lt;span style=&quot;color: black;&quot;&gt;                        &lt;/span&gt;&lt;span style=&quot;color: teal;&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;color: rgb(63, 127, 127);&quot;&gt;dependency&lt;/span&gt;&lt;span style=&quot;color: teal;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class=&quot;MsoNormal&quot; style=&quot;margin-top: 0; margin-right: 0; margin-bottom: 0; margin-left: 0;&quot;&gt;
&lt;span style=&quot;color: black;&quot;&gt;                                   &lt;/span&gt;&lt;span style=&quot;color: teal;&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;color: rgb(63, 127, 127);&quot;&gt;groupId&lt;/span&gt;&lt;span style=&quot;color: teal;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;org.jmock&lt;/span&gt;&lt;span style=&quot;color: teal;&quot;&gt;&amp;lt;/&lt;/span&gt;&lt;span style=&quot;color: rgb(63, 127, 127);&quot;&gt;groupId&lt;/span&gt;&lt;span style=&quot;color: teal;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class=&quot;MsoNormal&quot; style=&quot;margin-top: 0; margin-right: 0; margin-bottom: 0; margin-left: 0;&quot;&gt;
&lt;span style=&quot;color: black;&quot;&gt;                                   &lt;/span&gt;&lt;span style=&quot;color: teal;&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;color: rgb(63, 127, 127);&quot;&gt;artifactId&lt;/span&gt;&lt;span style=&quot;color: teal;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;jmock&lt;/span&gt;&lt;span style=&quot;color: teal;&quot;&gt;&amp;lt;/&lt;/span&gt;&lt;span style=&quot;color: rgb(63, 127, 127);&quot;&gt;artifactId&lt;/span&gt;&lt;span style=&quot;color: teal;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class=&quot;MsoNormal&quot; style=&quot;margin-top: 0; margin-right: 0; margin-bottom: 0; margin-left: 0;&quot;&gt;
&lt;span style=&quot;color: black;&quot;&gt;                                   &lt;/span&gt;&lt;span style=&quot;color: teal;&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;color: rgb(63, 127, 127);&quot;&gt;version&lt;/span&gt;&lt;span style=&quot;color: teal;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;2.5.0&lt;/span&gt;&lt;span style=&quot;color: teal;&quot;&gt;&amp;lt;/&lt;/span&gt;&lt;span style=&quot;color: rgb(63, 127, 127);&quot;&gt;version&lt;/span&gt;&lt;span style=&quot;color: teal;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class=&quot;MsoNormal&quot; style=&quot;margin-top: 0; margin-right: 0; margin-bottom: 0; margin-left: 0;&quot;&gt;
&lt;span style=&quot;color: black;&quot;&gt;                                   &lt;/span&gt;&lt;span style=&quot;color: teal;&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;color: rgb(63, 127, 127);&quot;&gt;scope&lt;/span&gt;&lt;span style=&quot;color: teal;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;provided&lt;/span&gt;&lt;span style=&quot;color: teal;&quot;&gt;&amp;lt;/&lt;/span&gt;&lt;span style=&quot;color: rgb(63, 127, 127);&quot;&gt;scope&lt;/span&gt;&lt;span style=&quot;color: teal;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class=&quot;MsoNormal&quot; style=&quot;margin-top: 0; margin-right: 0; margin-bottom: 0; margin-left: 0;&quot;&gt;
&lt;span style=&quot;color: black;&quot;&gt;                        &lt;/span&gt;&lt;span style=&quot;color: teal;&quot;&gt;&amp;lt;/&lt;/span&gt;&lt;span style=&quot;color: rgb(63, 127, 127);&quot;&gt;dependency&lt;/span&gt;&lt;span style=&quot;color: teal;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class=&quot;MsoNormal&quot; style=&quot;margin-top: 0; margin-right: 0; margin-bottom: 0; margin-left: 0;&quot;&gt;
&lt;span style=&quot;color: black;&quot;&gt;                        &lt;/span&gt;&lt;span style=&quot;color: teal;&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;color: rgb(63, 127, 127);&quot;&gt;dependency&lt;/span&gt;&lt;span style=&quot;color: teal;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class=&quot;MsoNormal&quot; style=&quot;margin-top: 0; margin-right: 0; margin-bottom: 0; margin-left: 0;&quot;&gt;
&lt;span style=&quot;color: black;&quot;&gt;                                   &lt;/span&gt;&lt;span style=&quot;color: teal;&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;color: rgb(63, 127, 127);&quot;&gt;groupId&lt;/span&gt;&lt;span style=&quot;color: teal;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;org.jmock&lt;/span&gt;&lt;span style=&quot;color: teal;&quot;&gt;&amp;lt;/&lt;/span&gt;&lt;span style=&quot;color: rgb(63, 127, 127);&quot;&gt;groupId&lt;/span&gt;&lt;span style=&quot;color: teal;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class=&quot;MsoNormal&quot; style=&quot;margin-top: 0; margin-right: 0; margin-bottom: 0; margin-left: 0;&quot;&gt;
&lt;span style=&quot;color: black;&quot;&gt;                                   &lt;/span&gt;&lt;span style=&quot;color: teal;&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;color: rgb(63, 127, 127);&quot;&gt;artifactId&lt;/span&gt;&lt;span style=&quot;color: teal;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;jmock-legacy&lt;/span&gt;&lt;span style=&quot;color: teal;&quot;&gt;&amp;lt;/&lt;/span&gt;&lt;span style=&quot;color: rgb(63, 127, 127);&quot;&gt;artifactId&lt;/span&gt;&lt;span style=&quot;color: teal;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class=&quot;MsoNormal&quot; style=&quot;margin-top: 0; margin-right: 0; margin-bottom: 0; margin-left: 0;&quot;&gt;
&lt;span style=&quot;color: black;&quot;&gt;                                   &lt;/span&gt;&lt;span style=&quot;color: teal;&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;color: rgb(63, 127, 127);&quot;&gt;version&lt;/span&gt;&lt;span style=&quot;color: teal;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;2.5.0&lt;/span&gt;&lt;span style=&quot;color: teal;&quot;&gt;&amp;lt;/&lt;/span&gt;&lt;span style=&quot;color: rgb(63, 127, 127);&quot;&gt;version&lt;/span&gt;&lt;span style=&quot;color: teal;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class=&quot;MsoNormal&quot; style=&quot;margin-top: 0; margin-right: 0; margin-bottom: 0; margin-left: 0;&quot;&gt;
&lt;span style=&quot;color: black;&quot;&gt;                                   &lt;/span&gt;&lt;span style=&quot;color: teal;&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;color: rgb(63, 127, 127);&quot;&gt;scope&lt;/span&gt;&lt;span style=&quot;color: teal;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;provided&lt;/span&gt;&lt;span style=&quot;color: teal;&quot;&gt;&amp;lt;/&lt;/span&gt;&lt;span style=&quot;color: rgb(63, 127, 127);&quot;&gt;scope&lt;/span&gt;&lt;span style=&quot;color: teal;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class=&quot;MsoNormal&quot; style=&quot;margin-top: 0; margin-right: 0; margin-bottom: 0; margin-left: 0;&quot;&gt;
&lt;span style=&quot;color: black;&quot;&gt;                        &lt;/span&gt;&lt;span style=&quot;color: teal;&quot;&gt;&amp;lt;/&lt;/span&gt;&lt;span style=&quot;color: rgb(63, 127, 127);&quot;&gt;dependency&lt;/span&gt;&lt;span style=&quot;color: teal;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class=&quot;MsoNormal&quot; style=&quot;margin-top: 0; margin-right: 0; margin-bottom: 0; margin-left: 0;&quot;&gt; &lt;/p&gt;
&lt;p class=&quot;MsoNormal&quot; style=&quot;margin-top: 0; margin-right: 0; margin-bottom: 0; margin-left: 0;&quot;&gt;
&lt;span style=&quot;color: black;&quot;&gt;            &lt;/span&gt;&lt;span style=&quot;color: teal;&quot;&gt;&amp;lt;/&lt;/span&gt;&lt;span style=&quot;color: rgb(63, 127, 127);&quot;&gt;dependencies&lt;/span&gt;&lt;span style=&quot;color: teal;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class=&quot;MsoNormal&quot; style=&quot;margin-top: 0; margin-right: 0; margin-bottom: 0; margin-left: 0;&quot;&gt; &lt;/p&gt;
&lt;p class=&quot;MsoNormal&quot; style=&quot;margin-top: 0; margin-right: 0; margin-bottom: 0; margin-left: 0;&quot;&gt;
&lt;span style=&quot;color: black;&quot;&gt;            &lt;/span&gt;&lt;span style=&quot;color: teal;&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;color: rgb(63, 127, 127);&quot;&gt;reporting&lt;/span&gt;&lt;span style=&quot;color: teal;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class=&quot;MsoNormal&quot; style=&quot;margin-top: 0; margin-right: 0; margin-bottom: 0; margin-left: 0;&quot;&gt;
&lt;span style=&quot;color: black;&quot;&gt;                        &lt;/span&gt;&lt;span style=&quot;color: teal;&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;color: rgb(63, 127, 127);&quot;&gt;plugins&lt;/span&gt;&lt;span style=&quot;color: teal;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class=&quot;MsoNormal&quot; style=&quot;margin-top: 0; margin-right: 0; margin-bottom: 0; margin-left: 0;&quot;&gt;
&lt;span style=&quot;color: black;&quot;&gt;                                   &lt;/span&gt;&lt;span style=&quot;color: teal;&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;color: rgb(63, 127, 127);&quot;&gt;plugin&lt;/span&gt;&lt;span style=&quot;color: teal;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class=&quot;MsoNormal&quot; style=&quot;margin-top: 0; margin-right: 0; margin-bottom: 0; margin-left: 0;&quot;&gt;
&lt;span style=&quot;color: black;&quot;&gt;                                               &lt;/span&gt;&lt;span style=&quot;color: teal;&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;color: rgb(63, 127, 127);&quot;&gt;groupId&lt;/span&gt;&lt;span style=&quot;color: teal;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;org.apache.maven.plugins&lt;/span&gt;&lt;span style=&quot;color: teal;&quot;&gt;&amp;lt;/&lt;/span&gt;&lt;span style=&quot;color: rgb(63, 127, 127);&quot;&gt;groupId&lt;/span&gt;&lt;span style=&quot;color: teal;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class=&quot;MsoNormal&quot; style=&quot;margin-top: 0; margin-right: 0; margin-bottom: 0; margin-left: 0;&quot;&gt;
&lt;span style=&quot;color: black;&quot;&gt;                                               &lt;/span&gt;&lt;span style=&quot;color: teal;&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;color: rgb(63, 127, 127);&quot;&gt;artifactId&lt;/span&gt;&lt;span style=&quot;color: teal;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class=&quot;MsoNormal&quot; style=&quot;margin-top: 0; margin-right: 0; margin-bottom: 0; margin-left: 0;&quot;&gt;
&lt;span style=&quot;color: black;&quot;&gt;                                                          
maven-project-info-reports-plugin&lt;/span&gt;&lt;/p&gt;
&lt;p class=&quot;MsoNormal&quot; style=&quot;margin-top: 0; margin-right: 0; margin-bottom: 0; margin-left: 0;&quot;&gt;
&lt;span style=&quot;color: black;&quot;&gt;                                               &lt;/span&gt;&lt;span style=&quot;color: teal;&quot;&gt;&amp;lt;/&lt;/span&gt;&lt;span style=&quot;color: rgb(63, 127, 127);&quot;&gt;artifactId&lt;/span&gt;&lt;span style=&quot;color: teal;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class=&quot;MsoNormal&quot; style=&quot;margin-top: 0; margin-right: 0; margin-bottom: 0; margin-left: 0;&quot;&gt;
&lt;span style=&quot;color: black;&quot;&gt;           
                                   &lt;/span&gt;&lt;span style=&quot;color: teal;&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;color: rgb(63, 127, 127);&quot;&gt;reportSets&lt;/span&gt;&lt;span style=&quot;color: teal;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class=&quot;MsoNormal&quot; style=&quot;margin-top: 0; margin-right: 0; margin-bottom: 0; margin-left: 0;&quot;&gt;
&lt;span style=&quot;color: black;&quot;&gt;                                                           &lt;/span&gt;&lt;span style=&quot;color: teal;&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;color: rgb(63, 127, 127);&quot;&gt;reportSet&lt;/span&gt;&lt;span style=&quot;color: teal;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class=&quot;MsoNormal&quot; style=&quot;margin-top: 0; margin-right: 0; margin-bottom: 0; margin-left: 0;&quot;&gt;
&lt;span style=&quot;color: black;&quot;&gt;                                                                       &lt;/span&gt;&lt;span style=&quot;color: teal;&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;color: rgb(63, 127, 127);&quot;&gt;reports&lt;/span&gt;&lt;span style=&quot;color: teal;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class=&quot;MsoNormal&quot; style=&quot;margin-top: 0; margin-right: 0; margin-bottom: 0; margin-left: 0;&quot;&gt;
&lt;span style=&quot;color: black;&quot;&gt;                                                                                  &lt;/span&gt;&lt;span style=&quot;color: teal;&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;color: rgb(63, 127, 127);&quot;&gt;report&lt;/span&gt;&lt;span style=&quot;color: teal;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;index&lt;/span&gt;&lt;span style=&quot;color: teal;&quot;&gt;&amp;lt;/&lt;/span&gt;&lt;span style=&quot;color: rgb(63, 127, 127);&quot;&gt;report&lt;/span&gt;&lt;span style=&quot;color: teal;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class=&quot;MsoNormal&quot; style=&quot;margin-top: 0; margin-right: 0; margin-bottom: 0; margin-left: 0;&quot;&gt;
&lt;span style=&quot;color: black;&quot;&gt;                                                                                  &lt;/span&gt;&lt;span style=&quot;color: teal;&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;color: rgb(63, 127, 127);&quot;&gt;report&lt;/span&gt;&lt;span style=&quot;color: teal;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;licence&lt;/span&gt;&lt;span style=&quot;color: teal;&quot;&gt;&amp;lt;/&lt;/span&gt;&lt;span style=&quot;color: rgb(63, 127, 127);&quot;&gt;report&lt;/span&gt;&lt;span style=&quot;color: teal;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class=&quot;MsoNormal&quot; style=&quot;margin-top: 0; margin-right: 0; margin-bottom: 0; margin-left: 0;&quot;&gt;
&lt;span style=&quot;color: black;&quot;&gt;                                                                                  &lt;/span&gt;&lt;span style=&quot;color: teal;&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;color: rgb(63, 127, 127);&quot;&gt;report&lt;/span&gt;&lt;span style=&quot;color: teal;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;dependencies&lt;/span&gt;&lt;span style=&quot;color: teal;&quot;&gt;&amp;lt;/&lt;/span&gt;&lt;span style=&quot;color: rgb(63, 127, 127);&quot;&gt;report&lt;/span&gt;&lt;span style=&quot;color: teal;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class=&quot;MsoNormal&quot; style=&quot;margin-top: 0; margin-right: 0; margin-bottom: 0; margin-left: 0;&quot;&gt;
&lt;span style=&quot;color: black;&quot;&gt;                                                                                  &lt;/span&gt;&lt;span style=&quot;color: teal;&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;color: rgb(63, 127, 127);&quot;&gt;report&lt;/span&gt;&lt;span style=&quot;color: teal;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;plugin-management&lt;/span&gt;&lt;span style=&quot;color: teal;&quot;&gt;&amp;lt;/&lt;/span&gt;&lt;span style=&quot;color: rgb(63, 127, 127);&quot;&gt;report&lt;/span&gt;&lt;span style=&quot;color: teal;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class=&quot;MsoNormal&quot; style=&quot;margin-top: 0; margin-right: 0; margin-bottom: 0; margin-left: 0;&quot;&gt;
&lt;span style=&quot;color: black;&quot;&gt;                                                                                  &lt;/span&gt;&lt;span style=&quot;color: teal;&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;color: rgb(63, 127, 127);&quot;&gt;report&lt;/span&gt;&lt;span style=&quot;color: teal;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;plugins&lt;/span&gt;&lt;span style=&quot;color: teal;&quot;&gt;&amp;lt;/&lt;/span&gt;&lt;span style=&quot;color: rgb(63, 127, 127);&quot;&gt;report&lt;/span&gt;&lt;span style=&quot;color: teal;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class=&quot;MsoNormal&quot; style=&quot;margin-top: 0; margin-right: 0; margin-bottom: 0; margin-left: 0;&quot;&gt;
&lt;span style=&quot;color: black;&quot;&gt;                                                                                  &lt;/span&gt;&lt;span style=&quot;color: teal;&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;color: rgb(63, 127, 127);&quot;&gt;report&lt;/span&gt;&lt;span style=&quot;color: teal;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;summary&lt;/span&gt;&lt;span style=&quot;color: teal;&quot;&gt;&amp;lt;/&lt;/span&gt;&lt;span style=&quot;color: rgb(63, 127, 127);&quot;&gt;report&lt;/span&gt;&lt;span style=&quot;color: teal;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class=&quot;MsoNormal&quot; style=&quot;margin-top: 0; margin-right: 0; margin-bottom: 0; margin-left: 0;&quot;&gt;
&lt;span style=&quot;color: black;&quot;&gt;                       
                                                           &lt;/span&gt;&lt;span style=&quot;color: teal;&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;color: rgb(63, 127, 127);&quot;&gt;report&lt;/span&gt;&lt;span style=&quot;color: teal;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;scm&lt;/span&gt;&lt;span style=&quot;color: teal;&quot;&gt;&amp;lt;/&lt;/span&gt;&lt;span style=&quot;color: rgb(63, 127, 127);&quot;&gt;report&lt;/span&gt;&lt;span style=&quot;color: teal;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class=&quot;MsoNormal&quot; style=&quot;margin-top: 0; margin-right: 0; margin-bottom: 0; margin-left: 0;&quot;&gt;
&lt;span style=&quot;color: black;&quot;&gt;                                                                       &lt;/span&gt;&lt;span style=&quot;color: teal;&quot;&gt;&amp;lt;/&lt;/span&gt;&lt;span style=&quot;color: rgb(63, 127, 127);&quot;&gt;reports&lt;/span&gt;&lt;span style=&quot;color: teal;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class=&quot;MsoNormal&quot; style=&quot;margin-top: 0; margin-right: 0; margin-bottom: 0; margin-left: 0;&quot;&gt;
&lt;span style=&quot;color: black;&quot;&gt;                                                           &lt;/span&gt;&lt;span style=&quot;color: teal;&quot;&gt;&amp;lt;/&lt;/span&gt;&lt;span style=&quot;color: rgb(63, 127, 127);&quot;&gt;reportSet&lt;/span&gt;&lt;span style=&quot;color: teal;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class=&quot;MsoNormal&quot; style=&quot;margin-top: 0; margin-right: 0; margin-bottom: 0; margin-left: 0;&quot;&gt;
&lt;span style=&quot;color: black;&quot;&gt;                                               &lt;/span&gt;&lt;span style=&quot;color: teal;&quot;&gt;&amp;lt;/&lt;/span&gt;&lt;span style=&quot;color: rgb(63, 127, 127);&quot;&gt;reportSets&lt;/span&gt;&lt;span style=&quot;color: teal;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class=&quot;MsoNormal&quot; style=&quot;margin-top: 0; margin-right: 0; margin-bottom: 0; margin-left: 0;&quot;&gt;
&lt;span style=&quot;color: black;&quot;&gt;                                   &lt;/span&gt;&lt;span style=&quot;color: teal;&quot;&gt;&amp;lt;/&lt;/span&gt;&lt;span style=&quot;color: rgb(63, 127, 127);&quot;&gt;plugin&lt;/span&gt;&lt;span style=&quot;color: teal;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class=&quot;MsoNormal&quot; style=&quot;margin-top: 0; margin-right: 0; margin-bottom: 0; margin-left: 0;&quot;&gt;
&lt;span style=&quot;color: black;&quot;&gt;                                   &lt;/span&gt;&lt;span style=&quot;color: teal;&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;color: rgb(63, 127, 127);&quot;&gt;plugin&lt;/span&gt;&lt;span style=&quot;color: teal;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class=&quot;MsoNormal&quot; style=&quot;margin-top: 0; margin-right: 0; margin-bottom: 0; margin-left: 0;&quot;&gt;
&lt;span style=&quot;color: black;&quot;&gt;                                               &lt;/span&gt;&lt;span style=&quot;color: teal;&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;color: rgb(63, 127, 127);&quot;&gt;groupId&lt;/span&gt;&lt;span style=&quot;color: teal;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;org.apache.maven.plugins&lt;/span&gt;&lt;span style=&quot;color: teal;&quot;&gt;&amp;lt;/&lt;/span&gt;&lt;span style=&quot;color: rgb(63, 127, 127);&quot;&gt;groupId&lt;/span&gt;&lt;span style=&quot;color: teal;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class=&quot;MsoNormal&quot; style=&quot;margin-top: 0; margin-right: 0; margin-bottom: 0; margin-left: 0;&quot;&gt;
&lt;span style=&quot;color: black;&quot;&gt;                                               &lt;/span&gt;&lt;span style=&quot;color: teal;&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;color: rgb(63, 127, 127);&quot;&gt;artifactId&lt;/span&gt;&lt;span style=&quot;color: teal;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;maven-javadoc-plugin&lt;/span&gt;&lt;span style=&quot;color: teal;&quot;&gt;&amp;lt;/&lt;/span&gt;&lt;span style=&quot;color: rgb(63, 127, 127);&quot;&gt;artifactId&lt;/span&gt;&lt;span style=&quot;color: teal;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class=&quot;MsoNormal&quot; style=&quot;margin-top: 0; margin-right: 0; margin-bottom: 0; margin-left: 0;&quot;&gt;
&lt;span style=&quot;color: black;&quot;&gt;                                               &lt;/span&gt;&lt;span style=&quot;color: teal;&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;color: rgb(63, 127, 127);&quot;&gt;version&lt;/span&gt;&lt;span style=&quot;color: teal;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;2.6&lt;/span&gt;&lt;span style=&quot;color: teal;&quot;&gt;&amp;lt;/&lt;/span&gt;&lt;span style=&quot;color: rgb(63, 127, 127);&quot;&gt;version&lt;/span&gt;&lt;span style=&quot;color: teal;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class=&quot;MsoNormal&quot; style=&quot;margin-top: 0; margin-right: 0; margin-bottom: 0; margin-left: 0;&quot;&gt;
&lt;span style=&quot;color: black;&quot;&gt;                                               &lt;/span&gt;&lt;span style=&quot;color: teal;&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;color: rgb(63, 127, 127);&quot;&gt;reportSets&lt;/span&gt;&lt;span style=&quot;color: teal;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class=&quot;MsoNormal&quot; style=&quot;margin-top: 0; margin-right: 0; margin-bottom: 0; margin-left: 0;&quot;&gt;
&lt;span style=&quot;color: black;&quot;&gt;                                                           &lt;/span&gt;&lt;span style=&quot;color: teal;&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;color: rgb(63, 127, 127);&quot;&gt;reportSet&lt;/span&gt;&lt;span style=&quot;color: teal;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class=&quot;MsoNormal&quot; style=&quot;margin-top: 0; margin-right: 0; margin-bottom: 0; margin-left: 0;&quot;&gt;
&lt;span style=&quot;color: black;&quot;&gt;                                                                       &lt;/span&gt;&lt;span style=&quot;color: teal;&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;color: rgb(63, 127, 127);&quot;&gt;reports&lt;/span&gt;&lt;span style=&quot;color: teal;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class=&quot;MsoNormal&quot; style=&quot;margin-top: 0; margin-right: 0; margin-bottom: 0; margin-left: 0;&quot;&gt;
&lt;span style=&quot;color: black;&quot;&gt;                                                                                  &lt;/span&gt;&lt;span style=&quot;color: teal;&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;color: rgb(63, 127, 127);&quot;&gt;report&lt;/span&gt;&lt;span style=&quot;color: teal;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;javadoc&lt;/span&gt;&lt;span style=&quot;color: teal;&quot;&gt;&amp;lt;/&lt;/span&gt;&lt;span style=&quot;color: rgb(63, 127, 127);&quot;&gt;report&lt;/span&gt;&lt;span style=&quot;color: teal;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class=&quot;MsoNormal&quot; style=&quot;margin-top: 0; margin-right: 0; margin-bottom: 0; margin-left: 0;&quot;&gt;
&lt;span style=&quot;color: black;&quot;&gt;                                                                                  &lt;/span&gt;&lt;span style=&quot;color: rgb(63, 95, 191);&quot;&gt;&amp;lt;!--
&amp;lt;report&amp;gt;test-javadoc&amp;lt;/report&amp;gt; --&amp;gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class=&quot;MsoNormal&quot; style=&quot;margin-top: 0; margin-right: 0; margin-bottom: 0; margin-left: 0;&quot;&gt;
&lt;span style=&quot;color: black;&quot;&gt;                                                                       &lt;/span&gt;&lt;span style=&quot;color: teal;&quot;&gt;&amp;lt;/&lt;/span&gt;&lt;span style=&quot;color: rgb(63, 127, 127);&quot;&gt;reports&lt;/span&gt;&lt;span style=&quot;color: teal;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class=&quot;MsoNormal&quot; style=&quot;margin-top: 0; margin-right: 0; margin-bottom: 0; margin-left: 0;&quot;&gt;
&lt;span style=&quot;color: black;&quot;&gt;                                                           &lt;/span&gt;&lt;span style=&quot;color: teal;&quot;&gt;&amp;lt;/&lt;/span&gt;&lt;span style=&quot;color: rgb(63, 127, 127);&quot;&gt;reportSet&lt;/span&gt;&lt;span style=&quot;color: teal;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class=&quot;MsoNormal&quot; style=&quot;margin-top: 0; margin-right: 0; margin-bottom: 0; margin-left: 0;&quot;&gt;
&lt;span style=&quot;color: black;&quot;&gt;                                               &lt;/span&gt;&lt;span style=&quot;color: teal;&quot;&gt;&amp;lt;/&lt;/span&gt;&lt;span style=&quot;color: rgb(63, 127, 127);&quot;&gt;reportSets&lt;/span&gt;&lt;span style=&quot;color: teal;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class=&quot;MsoNormal&quot; style=&quot;margin-top: 0; margin-right: 0; margin-bottom: 0; margin-left: 0;&quot;&gt;
&lt;span style=&quot;color: black;&quot;&gt;                                   &lt;/span&gt;&lt;span style=&quot;color: teal;&quot;&gt;&amp;lt;/&lt;/span&gt;&lt;span style=&quot;color: rgb(63, 127, 127);&quot;&gt;plugin&lt;/span&gt;&lt;span style=&quot;color: teal;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class=&quot;MsoNormal&quot; style=&quot;margin-top: 0; margin-right: 0; margin-bottom: 0; margin-left: 0;&quot;&gt;
&lt;span style=&quot;color: black;&quot;&gt;                                   &lt;/span&gt;&lt;span style=&quot;color: teal;&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;color: rgb(63, 127, 127);&quot;&gt;plugin&lt;/span&gt;&lt;span style=&quot;color: teal;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class=&quot;MsoNormal&quot; style=&quot;margin-top: 0; margin-right: 0; margin-bottom: 0; margin-left: 0;&quot;&gt;
&lt;span style=&quot;color: black;&quot;&gt;                                               &lt;/span&gt;&lt;span style=&quot;color: teal;&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;color: rgb(63, 127, 127);&quot;&gt;groupId&lt;/span&gt;&lt;span style=&quot;color: teal;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;org.apache.maven.plugins&lt;/span&gt;&lt;span style=&quot;color: teal;&quot;&gt;&amp;lt;/&lt;/span&gt;&lt;span style=&quot;color: rgb(63, 127, 127);&quot;&gt;groupId&lt;/span&gt;&lt;span style=&quot;color: teal;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class=&quot;MsoNormal&quot; style=&quot;margin-top: 0; margin-right: 0; margin-bottom: 0; margin-left: 0;&quot;&gt;
&lt;span style=&quot;color: black;&quot;&gt;                                               &lt;/span&gt;&lt;span style=&quot;color: teal;&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;color: rgb(63, 127, 127);&quot;&gt;artifactId&lt;/span&gt;&lt;span style=&quot;color: teal;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;maven-jxr-plugin&lt;/span&gt;&lt;span style=&quot;color: teal;&quot;&gt;&amp;lt;/&lt;/span&gt;&lt;span style=&quot;color: rgb(63, 127, 127);&quot;&gt;artifactId&lt;/span&gt;&lt;span style=&quot;color: teal;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class=&quot;MsoNormal&quot; style=&quot;margin-top: 0; margin-right: 0; margin-bottom: 0; margin-left: 0;&quot;&gt;
&lt;span style=&quot;color: black;&quot;&gt;                                               &lt;/span&gt;&lt;span style=&quot;color: teal;&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;color: rgb(63, 127, 127);&quot;&gt;version&lt;/span&gt;&lt;span style=&quot;color: teal;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;2.1&lt;/span&gt;&lt;span style=&quot;color: teal;&quot;&gt;&amp;lt;/&lt;/span&gt;&lt;span style=&quot;color: rgb(63, 127, 127);&quot;&gt;version&lt;/span&gt;&lt;span style=&quot;color: teal;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class=&quot;MsoNormal&quot; style=&quot;margin-top: 0; margin-right: 0; margin-bottom: 0; margin-left: 0;&quot;&gt;
&lt;span style=&quot;color: black;&quot;&gt;                                               &lt;/span&gt;&lt;span style=&quot;color: teal;&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;color: rgb(63, 127, 127);&quot;&gt;reportSets&lt;/span&gt;&lt;span style=&quot;color: teal;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class=&quot;MsoNormal&quot; style=&quot;margin-top: 0; margin-right: 0; margin-bottom: 0; margin-left: 0;&quot;&gt;
&lt;span style=&quot;color: black;&quot;&gt;                                                           &lt;/span&gt;&lt;span style=&quot;color: teal;&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;color: rgb(63, 127, 127);&quot;&gt;reportSet&lt;/span&gt;&lt;span style=&quot;color: teal;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class=&quot;MsoNormal&quot; style=&quot;margin-top: 0; margin-right: 0; margin-bottom: 0; margin-left: 0;&quot;&gt;
&lt;span style=&quot;color: black;&quot;&gt;                                                                       &lt;/span&gt;&lt;span style=&quot;color: teal;&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;color: rgb(63, 127, 127);&quot;&gt;reports&lt;/span&gt;&lt;span style=&quot;color: teal;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class=&quot;MsoNormal&quot; style=&quot;margin-top: 0; margin-right: 0; margin-bottom: 0; margin-left: 0;&quot;&gt;
&lt;span style=&quot;color: black;&quot;&gt;                                                                                  &lt;/span&gt;&lt;span style=&quot;color: teal;&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;color: rgb(63, 127, 127);&quot;&gt;report&lt;/span&gt;&lt;span style=&quot;color: teal;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;jxr&lt;/span&gt;&lt;span style=&quot;color: teal;&quot;&gt;&amp;lt;/&lt;/span&gt;&lt;span style=&quot;color: rgb(63, 127, 127);&quot;&gt;report&lt;/span&gt;&lt;span style=&quot;color: teal;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class=&quot;MsoNormal&quot; style=&quot;margin-top: 0; margin-right: 0; margin-bottom: 0; margin-left: 0;&quot;&gt;
&lt;span style=&quot;color: black;&quot;&gt;                                                                                  &lt;/span&gt;&lt;span style=&quot;color: rgb(63, 95, 191);&quot;&gt;&amp;lt;!--
&amp;lt;report&amp;gt;test-jxr&amp;lt;/report&amp;gt;--&amp;gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class=&quot;MsoNormal&quot; style=&quot;margin-top: 0; margin-right: 0; margin-bottom: 0; margin-left: 0;&quot;&gt;
&lt;span style=&quot;color: black;&quot;&gt;                                                                       &lt;/span&gt;&lt;span style=&quot;color: teal;&quot;&gt;&amp;lt;/&lt;/span&gt;&lt;span style=&quot;color: rgb(63, 127, 127);&quot;&gt;reports&lt;/span&gt;&lt;span style=&quot;color: teal;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class=&quot;MsoNormal&quot; style=&quot;margin-top: 0; margin-right: 0; margin-bottom: 0; margin-left: 0;&quot;&gt;
&lt;span style=&quot;color: black;&quot;&gt;                                                           &lt;/span&gt;&lt;span style=&quot;color: teal;&quot;&gt;&amp;lt;/&lt;/span&gt;&lt;span style=&quot;color: rgb(63, 127, 127);&quot;&gt;reportSet&lt;/span&gt;&lt;span style=&quot;color: teal;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class=&quot;MsoNormal&quot; style=&quot;margin-top: 0; margin-right: 0; margin-bottom: 0; margin-left: 0;&quot;&gt;
&lt;span style=&quot;color: black;&quot;&gt;                                               &lt;/span&gt;&lt;span style=&quot;color: teal;&quot;&gt;&amp;lt;/&lt;/span&gt;&lt;span style=&quot;color: rgb(63, 127, 127);&quot;&gt;reportSets&lt;/span&gt;&lt;span style=&quot;color: teal;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class=&quot;MsoNormal&quot; style=&quot;margin-top: 0; margin-right: 0; margin-bottom: 0; margin-left: 0;&quot;&gt;
&lt;span style=&quot;color: black;&quot;&gt;                                   &lt;/span&gt;&lt;span style=&quot;color: teal;&quot;&gt;&amp;lt;/&lt;/span&gt;&lt;span style=&quot;color: rgb(63, 127, 127);&quot;&gt;plugin&lt;/span&gt;&lt;span style=&quot;color: teal;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class=&quot;MsoNormal&quot; style=&quot;margin-top: 0; margin-right: 0; margin-bottom: 0; margin-left: 0;&quot;&gt;
&lt;span style=&quot;color: black;&quot;&gt;                                   &lt;/span&gt;&lt;span style=&quot;color: teal;&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;color: rgb(63, 127, 127);&quot;&gt;plugin&lt;/span&gt;&lt;span style=&quot;color: teal;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class=&quot;MsoNormal&quot; style=&quot;margin-top: 0; margin-right: 0; margin-bottom: 0; margin-left: 0;&quot;&gt;
&lt;span style=&quot;color: black;&quot;&gt;                                               &lt;/span&gt;&lt;span style=&quot;color: teal;&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;color: rgb(63, 127, 127);&quot;&gt;groupId&lt;/span&gt;&lt;span style=&quot;color: teal;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;org.apache.maven.plugins&lt;/span&gt;&lt;span style=&quot;color: teal;&quot;&gt;&amp;lt;/&lt;/span&gt;&lt;span style=&quot;color: rgb(63, 127, 127);&quot;&gt;groupId&lt;/span&gt;&lt;span style=&quot;color: teal;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class=&quot;MsoNormal&quot; style=&quot;margin-top: 0; margin-right: 0; margin-bottom: 0; margin-left: 0;&quot;&gt;
&lt;span style=&quot;color: black;&quot;&gt;                                               &lt;/span&gt;&lt;span style=&quot;color: teal;&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;color: rgb(63, 127, 127);&quot;&gt;artifactId&lt;/span&gt;&lt;span style=&quot;color: teal;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;maven-surefire-report-plugin&lt;/span&gt;&lt;span style=&quot;color: teal;&quot;&gt;&amp;lt;/&lt;/span&gt;&lt;span style=&quot;color: rgb(63, 127, 127);&quot;&gt;artifactId&lt;/span&gt;&lt;span style=&quot;color: teal;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class=&quot;MsoNormal&quot; style=&quot;margin-top: 0; margin-right: 0; margin-bottom: 0; margin-left: 0;&quot;&gt;
&lt;span style=&quot;color: black;&quot;&gt;                                               &lt;/span&gt;&lt;span style=&quot;color: teal;&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;color: rgb(63, 127, 127);&quot;&gt;version&lt;/span&gt;&lt;span style=&quot;color: teal;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;2.4.3&lt;/span&gt;&lt;span style=&quot;color: teal;&quot;&gt;&amp;lt;/&lt;/span&gt;&lt;span style=&quot;color: rgb(63, 127, 127);&quot;&gt;version&lt;/span&gt;&lt;span style=&quot;color: teal;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class=&quot;MsoNormal&quot; style=&quot;margin-top: 0; margin-right: 0; margin-bottom: 0; margin-left: 0;&quot;&gt;
&lt;span style=&quot;color: black;&quot;&gt;                                   &lt;/span&gt;&lt;span style=&quot;color: teal;&quot;&gt;&amp;lt;/&lt;/span&gt;&lt;span style=&quot;color: rgb(63, 127, 127);&quot;&gt;plugin&lt;/span&gt;&lt;span style=&quot;color: teal;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class=&quot;MsoNormal&quot; style=&quot;margin-top: 0; margin-right: 0; margin-bottom: 0; margin-left: 0;&quot;&gt;
&lt;span style=&quot;color: black;&quot;&gt;                                   &lt;/span&gt;&lt;span style=&quot;color: teal;&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;color: rgb(63, 127, 127);&quot;&gt;plugin&lt;/span&gt;&lt;span style=&quot;color: teal;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class=&quot;MsoNormal&quot; style=&quot;margin-top: 0; margin-right: 0; margin-bottom: 0; margin-left: 0;&quot;&gt;
&lt;span style=&quot;color: black;&quot;&gt;                                               &lt;/span&gt;&lt;span style=&quot;color: teal;&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;color: rgb(63, 127, 127);&quot;&gt;groupId&lt;/span&gt;&lt;span style=&quot;color: teal;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;org.apache.maven.plugins&lt;/span&gt;&lt;span style=&quot;color: teal;&quot;&gt;&amp;lt;/&lt;/span&gt;&lt;span style=&quot;color: rgb(63, 127, 127);&quot;&gt;groupId&lt;/span&gt;&lt;span style=&quot;color: teal;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class=&quot;MsoNormal&quot; style=&quot;margin-top: 0; margin-right: 0; margin-bottom: 0; margin-left: 0;&quot;&gt;
&lt;span style=&quot;color: black;&quot;&gt;                                               &lt;/span&gt;&lt;span style=&quot;color: teal;&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;color: rgb(63, 127, 127);&quot;&gt;artifactId&lt;/span&gt;&lt;span style=&quot;color: teal;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;maven-pmd-plugin&lt;/span&gt;&lt;span style=&quot;color: teal;&quot;&gt;&amp;lt;/&lt;/span&gt;&lt;span style=&quot;color: rgb(63, 127, 127);&quot;&gt;artifactId&lt;/span&gt;&lt;span style=&quot;color: teal;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class=&quot;MsoNormal&quot; style=&quot;margin-top: 0; margin-right: 0; margin-bottom: 0; margin-left: 0;&quot;&gt;
&lt;span style=&quot;color: black;&quot;&gt;                                               &lt;/span&gt;&lt;span style=&quot;color: teal;&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;color: rgb(63, 127, 127);&quot;&gt;version&lt;/span&gt;&lt;span style=&quot;color: teal;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;2.4&lt;/span&gt;&lt;span style=&quot;color: teal;&quot;&gt;&amp;lt;/&lt;/span&gt;&lt;span style=&quot;color: rgb(63, 127, 127);&quot;&gt;version&lt;/span&gt;&lt;span style=&quot;color: teal;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class=&quot;MsoNormal&quot; style=&quot;margin-top: 0; margin-right: 0; margin-bottom: 0; margin-left: 0;&quot;&gt;
&lt;span style=&quot;color: black;&quot;&gt;                                               &lt;/span&gt;&lt;span style=&quot;color: teal;&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;color: rgb(63, 127, 127);&quot;&gt;configuration&lt;/span&gt;&lt;span style=&quot;color: teal;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class=&quot;MsoNormal&quot; style=&quot;margin-top: 0; margin-right: 0; margin-bottom: 0; margin-left: 0;&quot;&gt;
&lt;span style=&quot;color: black;&quot;&gt;                                                           &lt;/span&gt;&lt;span style=&quot;color: teal;&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;color: rgb(63, 127, 127);&quot;&gt;targetJdk&lt;/span&gt;&lt;span style=&quot;color: teal;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;1.5&lt;/span&gt;&lt;span style=&quot;color: teal;&quot;&gt;&amp;lt;/&lt;/span&gt;&lt;span style=&quot;color: rgb(63, 127, 127);&quot;&gt;targetJdk&lt;/span&gt;&lt;span style=&quot;color: teal;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class=&quot;MsoNormal&quot; style=&quot;margin-top: 0; margin-right: 0; margin-bottom: 0; margin-left: 0;&quot;&gt;
&lt;span style=&quot;color: black;&quot;&gt;                                                           &lt;/span&gt;&lt;span style=&quot;color: teal;&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;color: rgb(63, 127, 127);&quot;&gt;rulesets&lt;/span&gt;&lt;span style=&quot;color: teal;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class=&quot;MsoNormal&quot; style=&quot;margin-top: 0; margin-right: 0; margin-bottom: 0; margin-left: 0;&quot;&gt;
&lt;span style=&quot;color: black;&quot;&gt;                                                                       &lt;/span&gt;&lt;span style=&quot;color: teal;&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;color: rgb(63, 127, 127);&quot;&gt;ruleset&lt;/span&gt;&lt;span style=&quot;color: teal;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;/pmd/pmd-plugin-rules.xml&lt;/span&gt;&lt;span style=&quot;color: teal;&quot;&gt;&amp;lt;/&lt;/span&gt;&lt;span style=&quot;color: rgb(63, 127, 127);&quot;&gt;ruleset&lt;/span&gt;&lt;span style=&quot;color: teal;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class=&quot;MsoNormal&quot; style=&quot;margin-top: 0; margin-right: 0; margin-bottom: 0; margin-left: 0;&quot;&gt;
&lt;span style=&quot;color: black;&quot;&gt;                                                           &lt;/span&gt;&lt;span style=&quot;color: teal;&quot;&gt;&amp;lt;/&lt;/span&gt;&lt;span style=&quot;color: rgb(63, 127, 127);&quot;&gt;rulesets&lt;/span&gt;&lt;span style=&quot;color: teal;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class=&quot;MsoNormal&quot; style=&quot;margin-top: 0; margin-right: 0; margin-bottom: 0; margin-left: 0;&quot;&gt;
&lt;span style=&quot;color: black;&quot;&gt;                                               &lt;/span&gt;&lt;span style=&quot;color: teal;&quot;&gt;&amp;lt;/&lt;/span&gt;&lt;span style=&quot;color: rgb(63, 127, 127);&quot;&gt;configuration&lt;/span&gt;&lt;span style=&quot;color: teal;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;          &lt;/span&gt;&lt;/p&gt;
&lt;p class=&quot;MsoNormal&quot; style=&quot;margin-top: 0; margin-right: 0; margin-bottom: 0; margin-left: 0;&quot;&gt;
&lt;span style=&quot;color: black;&quot;&gt;                                   &lt;/span&gt;&lt;span style=&quot;color: teal;&quot;&gt;&amp;lt;/&lt;/span&gt;&lt;span style=&quot;color: rgb(63, 127, 127);&quot;&gt;plugin&lt;/span&gt;&lt;span style=&quot;color: teal;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class=&quot;MsoNormal&quot; style=&quot;margin-top: 0; margin-right: 0; margin-bottom: 0; margin-left: 0;&quot;&gt;
&lt;span style=&quot;color: black;&quot;&gt;                                   &lt;/span&gt;&lt;span style=&quot;color: teal;&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;color: rgb(63, 127, 127);&quot;&gt;plugin&lt;/span&gt;&lt;span style=&quot;color: teal;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class=&quot;MsoNormal&quot; style=&quot;margin-top: 0; margin-right: 0; margin-bottom: 0; margin-left: 0;&quot;&gt;
&lt;span style=&quot;color: black;&quot;&gt;                                               &lt;/span&gt;&lt;span style=&quot;color: teal;&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;color: rgb(63, 127, 127);&quot;&gt;groupId&lt;/span&gt;&lt;span style=&quot;color: teal;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;org.codehaus.mojo&lt;/span&gt;&lt;span style=&quot;color: teal;&quot;&gt;&amp;lt;/&lt;/span&gt;&lt;span style=&quot;color: rgb(63, 127, 127);&quot;&gt;groupId&lt;/span&gt;&lt;span style=&quot;color: teal;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class=&quot;MsoNormal&quot; style=&quot;margin-top: 0; margin-right: 0; margin-bottom: 0; margin-left: 0;&quot;&gt;
&lt;span style=&quot;color: black;&quot;&gt;                                               &lt;/span&gt;&lt;span style=&quot;color: teal;&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;color: rgb(63, 127, 127);&quot;&gt;artifactId&lt;/span&gt;&lt;span style=&quot;color: teal;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;cobertura-maven-plugin&lt;/span&gt;&lt;span style=&quot;color: teal;&quot;&gt;&amp;lt;/&lt;/span&gt;&lt;span style=&quot;color: rgb(63, 127, 127);&quot;&gt;artifactId&lt;/span&gt;&lt;span style=&quot;color: teal;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class=&quot;MsoNormal&quot; style=&quot;margin-top: 0; margin-right: 0; margin-bottom: 0; margin-left: 0;&quot;&gt;
&lt;span style=&quot;color: black;&quot;&gt;                                               &lt;/span&gt;&lt;span style=&quot;color: teal;&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;color: rgb(63, 127, 127);&quot;&gt;version&lt;/span&gt;&lt;span style=&quot;color: teal;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;2.3&lt;/span&gt;&lt;span style=&quot;color: teal;&quot;&gt;&amp;lt;/&lt;/span&gt;&lt;span style=&quot;color: rgb(63, 127, 127);&quot;&gt;version&lt;/span&gt;&lt;span style=&quot;color: teal;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class=&quot;MsoNormal&quot; style=&quot;margin-top: 0; margin-right: 0; margin-bottom: 0; margin-left: 0;&quot;&gt;
&lt;span style=&quot;color: black;&quot;&gt;                                   &lt;/span&gt;&lt;span style=&quot;color: teal;&quot;&gt;&amp;lt;/&lt;/span&gt;&lt;span style=&quot;color: rgb(63, 127, 127);&quot;&gt;plugin&lt;/span&gt;&lt;span style=&quot;color: teal;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class=&quot;MsoNormal&quot; style=&quot;margin-top: 0; margin-right: 0; margin-bottom: 0; margin-left: 0;&quot;&gt;
&lt;span style=&quot;color: black;&quot;&gt;                                   &lt;/span&gt;&lt;span style=&quot;color: teal;&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;color: rgb(63, 127, 127);&quot;&gt;plugin&lt;/span&gt;&lt;span style=&quot;color: teal;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class=&quot;MsoNormal&quot; style=&quot;margin-top: 0; margin-right: 0; margin-bottom: 0; margin-left: 0;&quot;&gt;
&lt;span style=&quot;color: black;&quot;&gt;                                               &lt;/span&gt;&lt;span style=&quot;color: teal;&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;color: rgb(63, 127, 127);&quot;&gt;groupId&lt;/span&gt;&lt;span style=&quot;color: teal;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;org.apache.maven.plugins&lt;/span&gt;&lt;span style=&quot;color: teal;&quot;&gt;&amp;lt;/&lt;/span&gt;&lt;span style=&quot;color: rgb(63, 127, 127);&quot;&gt;groupId&lt;/span&gt;&lt;span style=&quot;color: teal;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class=&quot;MsoNormal&quot; style=&quot;margin-top: 0; margin-right: 0; margin-bottom: 0; margin-left: 0;&quot;&gt;
&lt;span style=&quot;color: black;&quot;&gt;                                               &lt;/span&gt;&lt;span style=&quot;color: teal;&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;color: rgb(63, 127, 127);&quot;&gt;artifactId&lt;/span&gt;&lt;span style=&quot;color: teal;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;maven-dependency-plugin&lt;/span&gt;&lt;span style=&quot;color: teal;&quot;&gt;&amp;lt;/&lt;/span&gt;&lt;span style=&quot;color: rgb(63, 127, 127);&quot;&gt;artifactId&lt;/span&gt;&lt;span style=&quot;color: teal;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class=&quot;MsoNormal&quot; style=&quot;margin-top: 0; margin-right: 0; margin-bottom: 0; margin-left: 0;&quot;&gt;
&lt;span style=&quot;color: black;&quot;&gt;                                   &lt;/span&gt;&lt;span style=&quot;color: teal;&quot;&gt;&amp;lt;/&lt;/span&gt;&lt;span style=&quot;color: rgb(63, 127, 127);&quot;&gt;plugin&lt;/span&gt;&lt;span style=&quot;color: teal;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class=&quot;MsoNormal&quot; style=&quot;margin-top: 0; margin-right: 0; margin-bottom: 0; margin-left: 0;&quot;&gt;
&lt;span style=&quot;color: black;&quot;&gt;                                   &lt;/span&gt;&lt;span style=&quot;color: teal;&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;color: rgb(63, 127, 127);&quot;&gt;plugin&lt;/span&gt;&lt;span style=&quot;color: teal;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class=&quot;MsoNormal&quot; style=&quot;margin-top: 0; margin-right: 0; margin-bottom: 0; margin-left: 0;&quot;&gt;
&lt;span style=&quot;color: black;&quot;&gt;                                               &lt;/span&gt;&lt;span style=&quot;color: teal;&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;color: rgb(63, 127, 127);&quot;&gt;groupId&lt;/span&gt;&lt;span style=&quot;color: teal;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;org.codehaus.mojo&lt;/span&gt;&lt;span style=&quot;color: teal;&quot;&gt;&amp;lt;/&lt;/span&gt;&lt;span style=&quot;color: rgb(63, 127, 127);&quot;&gt;groupId&lt;/span&gt;&lt;span style=&quot;color: teal;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class=&quot;MsoNormal&quot; style=&quot;margin-top: 0; margin-right: 0; margin-bottom: 0; margin-left: 0;&quot;&gt;
&lt;span style=&quot;color: black;&quot;&gt;                                               &lt;/span&gt;&lt;span style=&quot;color: teal;&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;color: rgb(63, 127, 127);&quot;&gt;artifactId&lt;/span&gt;&lt;span style=&quot;color: teal;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;versions-maven-plugin&lt;/span&gt;&lt;span style=&quot;color: teal;&quot;&gt;&amp;lt;/&lt;/span&gt;&lt;span style=&quot;color: rgb(63, 127, 127);&quot;&gt;artifactId&lt;/span&gt;&lt;span style=&quot;color: teal;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class=&quot;MsoNormal&quot; style=&quot;margin-top: 0; margin-right: 0; margin-bottom: 0; margin-left: 0;&quot;&gt;
&lt;span style=&quot;color: black;&quot;&gt;                                               &lt;/span&gt;&lt;span style=&quot;color: teal;&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;color: rgb(63, 127, 127);&quot;&gt;version&lt;/span&gt;&lt;span style=&quot;color: teal;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;1.1&lt;/span&gt;&lt;span style=&quot;color: teal;&quot;&gt;&amp;lt;/&lt;/span&gt;&lt;span style=&quot;color: rgb(63, 127, 127);&quot;&gt;version&lt;/span&gt;&lt;span style=&quot;color: teal;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class=&quot;MsoNormal&quot; style=&quot;margin-top: 0; margin-right: 0; margin-bottom: 0; margin-left: 0;&quot;&gt;
&lt;span style=&quot;color: black;&quot;&gt;                                               &lt;/span&gt;&lt;span style=&quot;color: teal;&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;color: rgb(63, 127, 127);&quot;&gt;reportSets&lt;/span&gt;&lt;span style=&quot;color: teal;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class=&quot;MsoNormal&quot; style=&quot;margin-top: 0; margin-right: 0; margin-bottom: 0; margin-left: 0;&quot;&gt;
&lt;span style=&quot;color: black;&quot;&gt;                                                           &lt;/span&gt;&lt;span style=&quot;color: teal;&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;color: rgb(63, 127, 127);&quot;&gt;reportSet&lt;/span&gt;&lt;span style=&quot;color: teal;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class=&quot;MsoNormal&quot; style=&quot;margin-top: 0; margin-right: 0; margin-bottom: 0; margin-left: 0;&quot;&gt;
&lt;span style=&quot;color: black;&quot;&gt;                                                                       &lt;/span&gt;&lt;span style=&quot;color: teal;&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;color: rgb(63, 127, 127);&quot;&gt;reports&lt;/span&gt;&lt;span style=&quot;color: teal;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class=&quot;MsoNormal&quot; style=&quot;margin-top: 0; margin-right: 0; margin-bottom: 0; margin-left: 0;&quot;&gt;
&lt;span style=&quot;color: black;&quot;&gt;                                                                                  &lt;/span&gt;&lt;span style=&quot;color: teal;&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;color: rgb(63, 127, 127);&quot;&gt;report&lt;/span&gt;&lt;span style=&quot;color: teal;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;dependency-updates-report&lt;/span&gt;&lt;span style=&quot;color: teal;&quot;&gt;&amp;lt;/&lt;/span&gt;&lt;span style=&quot;color: rgb(63, 127, 127);&quot;&gt;report&lt;/span&gt;&lt;span style=&quot;color: teal;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class=&quot;MsoNormal&quot; style=&quot;margin-top: 0; margin-right: 0; margin-bottom: 0; margin-left: 0;&quot;&gt;
&lt;span style=&quot;color: black;&quot;&gt;                                                                                  &lt;/span&gt;&lt;span style=&quot;color: teal;&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;color: rgb(63, 127, 127);&quot;&gt;report&lt;/span&gt;&lt;span style=&quot;color: teal;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;plugin-updates-report&lt;/span&gt;&lt;span style=&quot;color: teal;&quot;&gt;&amp;lt;/&lt;/span&gt;&lt;span style=&quot;color: rgb(63, 127, 127);&quot;&gt;report&lt;/span&gt;&lt;span style=&quot;color: teal;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class=&quot;MsoNormal&quot; style=&quot;margin-top: 0; margin-right: 0; margin-bottom: 0; margin-left: 0;&quot;&gt;
&lt;span style=&quot;color: black;&quot;&gt;                                                                                  &lt;/span&gt;&lt;span style=&quot;color: rgb(63, 95, 191);&quot;&gt;&amp;lt;!--                    
&amp;lt;report&amp;gt;property-updates-report&amp;lt;/report&amp;gt;--&amp;gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class=&quot;MsoNormal&quot; style=&quot;margin-top: 0; margin-right: 0; margin-bottom: 0; margin-left: 0;&quot;&gt;
&lt;span style=&quot;color: black;&quot;&gt;                                                                       &lt;/span&gt;&lt;span style=&quot;color: teal;&quot;&gt;&amp;lt;/&lt;/span&gt;&lt;span style=&quot;color: rgb(63, 127, 127);&quot;&gt;reports&lt;/span&gt;&lt;span style=&quot;color: teal;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class=&quot;MsoNormal&quot; style=&quot;margin-top: 0; margin-right: 0; margin-bottom: 0; margin-left: 0;&quot;&gt;
&lt;span style=&quot;color: black;&quot;&gt;                                                           &lt;/span&gt;&lt;span style=&quot;color: teal;&quot;&gt;&amp;lt;/&lt;/span&gt;&lt;span style=&quot;color: rgb(63, 127, 127);&quot;&gt;reportSet&lt;/span&gt;&lt;span style=&quot;color: teal;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class=&quot;MsoNormal&quot; style=&quot;margin-top: 0; margin-right: 0; margin-bottom: 0; margin-left: 0;&quot;&gt;
&lt;span style=&quot;color: black;&quot;&gt;                                               &lt;/span&gt;&lt;span style=&quot;color: teal;&quot;&gt;&amp;lt;/&lt;/span&gt;&lt;span style=&quot;color: rgb(63, 127, 127);&quot;&gt;reportSets&lt;/span&gt;&lt;span style=&quot;color: teal;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class=&quot;MsoNormal&quot; style=&quot;margin-top: 0; margin-right: 0; margin-bottom: 0; margin-left: 0;&quot;&gt;
&lt;span style=&quot;color: black;&quot;&gt;                                   &lt;/span&gt;&lt;span style=&quot;color: teal;&quot;&gt;&amp;lt;/&lt;/span&gt;&lt;span style=&quot;color: rgb(63, 127, 127);&quot;&gt;plugin&lt;/span&gt;&lt;span style=&quot;color: teal;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class=&quot;MsoNormal&quot; style=&quot;margin-top: 0; margin-right: 0; margin-bottom: 0; margin-left: 0;&quot;&gt;
&lt;span style=&quot;color: black;&quot;&gt;                                   &lt;/span&gt;&lt;span style=&quot;color: teal;&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;color: rgb(63, 127, 127);&quot;&gt;plugin&lt;/span&gt;&lt;span style=&quot;color: teal;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class=&quot;MsoNormal&quot; style=&quot;margin-top: 0; margin-right: 0; margin-bottom: 0; margin-left: 0;&quot;&gt;
&lt;span style=&quot;color: black;&quot;&gt;                                               &lt;/span&gt;&lt;span style=&quot;color: teal;&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;color: rgb(63, 127, 127);&quot;&gt;groupId&lt;/span&gt;&lt;span style=&quot;color: teal;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;org.codehaus.mojo&lt;/span&gt;&lt;span style=&quot;color: teal;&quot;&gt;&amp;lt;/&lt;/span&gt;&lt;span style=&quot;color: rgb(63, 127, 127);&quot;&gt;groupId&lt;/span&gt;&lt;span style=&quot;color: teal;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class=&quot;MsoNormal&quot; style=&quot;margin-top: 0; margin-right: 0; margin-bottom: 0; margin-left: 0;&quot;&gt;
&lt;span style=&quot;color: black;&quot;&gt;                                               &lt;/span&gt;&lt;span style=&quot;color: teal;&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;color: rgb(63, 127, 127);&quot;&gt;artifactId&lt;/span&gt;&lt;span style=&quot;color: teal;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;dashboard-maven-plugin&lt;/span&gt;&lt;span style=&quot;color: teal;&quot;&gt;&amp;lt;/&lt;/span&gt;&lt;span style=&quot;color: rgb(63, 127, 127);&quot;&gt;artifactId&lt;/span&gt;&lt;span style=&quot;color: teal;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class=&quot;MsoNormal&quot; style=&quot;margin-top: 0; margin-right: 0; margin-bottom: 0; margin-left: 0;&quot;&gt;
&lt;span style=&quot;color: black;&quot;&gt;                                               &lt;/span&gt;&lt;span style=&quot;color: teal;&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;color: rgb(63, 127, 127);&quot;&gt;version&lt;/span&gt;&lt;span style=&quot;color: teal;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;1.0.0-beta-1&lt;/span&gt;&lt;span style=&quot;color: teal;&quot;&gt;&amp;lt;/&lt;/span&gt;&lt;span style=&quot;color: rgb(63, 127, 127);&quot;&gt;version&lt;/span&gt;&lt;span style=&quot;color: teal;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class=&quot;MsoNormal&quot; style=&quot;margin-top: 0; margin-right: 0; margin-bottom: 0; margin-left: 0;&quot;&gt;
&lt;span style=&quot;color: black;&quot;&gt;                                   &lt;/span&gt;&lt;span style=&quot;color: teal;&quot;&gt;&amp;lt;/&lt;/span&gt;&lt;span style=&quot;color: rgb(63, 127, 127);&quot;&gt;plugin&lt;/span&gt;&lt;span style=&quot;color: teal;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class=&quot;MsoNormal&quot; style=&quot;margin-top: 0; margin-right: 0; margin-bottom: 0; margin-left: 0;&quot;&gt;
&lt;span style=&quot;color: black;&quot;&gt;                        &lt;/span&gt;&lt;span style=&quot;color: teal;&quot;&gt;&amp;lt;/&lt;/span&gt;&lt;span style=&quot;color: rgb(63, 127, 127);&quot;&gt;plugins&lt;/span&gt;&lt;span style=&quot;color: teal;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class=&quot;MsoNormal&quot; style=&quot;margin-top: 0; margin-right: 0; margin-bottom: 0; margin-left: 0;&quot;&gt; &lt;/p&gt;
&lt;p class=&quot;MsoNormal&quot; style=&quot;margin-top: 0; margin-right: 0; margin-bottom: 0; margin-left: 0;&quot;&gt;
&lt;span style=&quot;color: black;&quot;&gt;            &lt;/span&gt;&lt;span style=&quot;color: teal;&quot;&gt;&amp;lt;/&lt;/span&gt;&lt;span style=&quot;color: rgb(63, 127, 127);&quot;&gt;reporting&lt;/span&gt;&lt;span style=&quot;color: teal;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class=&quot;MsoNormal&quot; style=&quot;margin-top: 0; margin-right: 0; margin-bottom: 0; margin-left: 0;&quot;&gt; &lt;/p&gt;
&lt;p class=&quot;MsoNormal&quot; style=&quot;margin-top: 0; margin-right: 0; margin-bottom: 0; margin-left: 0;&quot;&gt;
&lt;span style=&quot;color: teal;&quot;&gt;&amp;lt;/&lt;/span&gt;&lt;span style=&quot;color: rgb(63, 127, 127);&quot;&gt;project&lt;/span&gt;&lt;span style=&quot;color: teal;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class=&quot;MsoNormal&quot; style=&quot;margin-top: 0; margin-right: 0; margin-bottom: 0; margin-left: 0;&quot;&gt; &lt;/p&gt;
&lt;/div&gt;</description>
    
    
    
      </item>
    
  <item>
    <title>Unification reloaded</title>
    <link>http://www.insideit.fr/post/2009/11/20/Unification-reloaded</link>
    <guid isPermaLink="false">urn:md5:79eed65f1cf8cf743695fc5b0407c594</guid>
    <pubDate>Fri, 20 Nov 2009 15:46:00 +0100</pubDate>
    <dc:creator>Abderrazak Bouadma</dc:creator>
        <category>Stand on giant soulders</category>
        <category>DEVOXX</category><category>DEVOXX 2009</category>    
    <description>&lt;p&gt;Deuxième journée de DEVOXX 2009, qui commence par une Keynote très attendue
et à mon avis orientée BSBS &amp;quot;Be Simple Be Smart&amp;quot;. Je m'explique : Ivar Jacobson
, le père d'UML, est un personnage atypique qui n'a pas hésité pas à parler
d'une réalité tout aussi controversée que la démultiplication des méthodologies
où, selon ses termes, des pratiques qui ne cessent de fleurir régulièrement et
qui génèrent beaucoup de problèmes d'apprentissage, de maîtrise, et bien
évidemment de compréhension.&lt;/p&gt;    &lt;p&gt;&lt;img src=&quot;http://www.insideit.fr/public/.IvarJacobson_t.jpg&quot; alt=&quot;IvarJacobson&quot; style=&quot;float:left; margin: 0 1em 1em 0;&quot; title=&quot;IvarJacobson, Nov 2009&quot; /&gt;&lt;/p&gt;
&lt;p&gt;L'idée est simple, trop de méthodologies, ça tue les méthodologies ! C'est
générique comme pensée mais c'est la réalité. Ce que Ivar Jacobson propose
donc, encore une fois, c'est l'unification sans pour autant rejeter totalement
l'existant.&lt;/p&gt;
&lt;p&gt;La multitude de méthodes, selon l'orateur est un phénomène de mode
&amp;quot;&lt;em&gt;SCRUM is a fashion&lt;/em&gt;&amp;quot;. Le problème se trouve dans le fait qu'il y a un
grand écart entre les académiques et l'industrie du logiciel, et aussi, pas
assez de théories. Le résultat : l'industrie se trouve dans une continuelle
réinvention de la roue, tout le temps !&lt;/p&gt;
&lt;p&gt;La solution : &amp;quot;On a besoin de bases Théoriques !&amp;quot;&lt;/p&gt;
&lt;p&gt;Ivar fera après une présentation d'un cas d'utilisation de ce qu'il appelle
une &amp;quot;&lt;em&gt;solution selon lui&lt;/em&gt;&amp;quot; et non pas la solution qu'il faut, j'ai bien
aimé la définition de ce qu'est une &lt;strong&gt;PRATIQUE&lt;/strong&gt; : &amp;quot;Des choses à
Faire, Des choses à produire, Des compétences et des Patterns&amp;quot;.&lt;/p&gt;
&lt;p&gt;Ivar a lancé l'initiative &lt;strong&gt;SEMAT&lt;/strong&gt; , un moyen de faire adhérer
ou créer une communauté qui aura le rôle d'unifier les différentes pratiques et
de créer une sorte de Noyau sur lequel viendra s'appuyer l'approche
méthodologique.&lt;/p&gt;
&lt;p&gt;Au final, permettez-moi de partager quelques phrases de Ivar Jacobson :&lt;/p&gt;
&lt;p&gt;&amp;quot;&lt;em&gt;There is nothing as practical as a good theory&lt;/em&gt;&amp;quot;,&lt;br /&gt;
&amp;quot;&lt;em&gt;Many people buy books, a small part of them read those books, a minority
apply the book's principals.&lt;/em&gt;&amp;quot;&lt;br /&gt;
&amp;quot;&lt;em&gt;Stand on a giant shoulders&lt;/em&gt;&amp;quot;&lt;/p&gt;
&lt;h2&gt;Ressources&lt;/h2&gt;
&lt;p&gt;Who is Ivar Jacobson &lt;a href=&quot;http://en.wikipedia.org/wiki/Ivar_Jacobson&quot; hreflang=&quot;en&quot;&gt;http://en.wikipedia.org/wiki/Ivar_Jacobson&lt;/a&gt;&lt;br /&gt;
&lt;a href=&quot;http://www.semat.org/bin/view&quot; hreflang=&quot;en&quot;&gt;SEMAT&lt;/a&gt;&lt;br /&gt;
&lt;a href=&quot;http://alturl.com/d45n&quot; hreflang=&quot;en&quot;&gt;The unified software development
process&lt;/a&gt;&lt;br /&gt;
&lt;a href=&quot;http://www.insideit.fr/post/2009/11/19/Devoxx-2009-%3A-Agile-Mythbusters&quot; hreflang=&quot;fr&quot;&gt;Agile Mythbuster&lt;/a&gt;&lt;/p&gt;

//

//</description>
    
    
    
      </item>
    
  <item>
    <title>Devoxx 2009 : Agile Mythbusters</title>
    <link>http://www.insideit.fr/post/2009/11/19/Devoxx-2009-%3A-Agile-Mythbusters</link>
    <guid isPermaLink="false">urn:md5:9da9af9b5c4d96daa8a0326818869c28</guid>
    <pubDate>Thu, 19 Nov 2009 10:53:00 +0100</pubDate>
    <dc:creator>Pierre Mage</dc:creator>
        <category>Agile</category>
        <category>Agile</category><category>DEVOXX</category><category>DEVOXX 2009</category>    
    <description>    &lt;p&gt;&lt;a href=&quot;http://en.wikipedia.org/wiki/Scott_Ambler&quot;&gt;Scott W. Ambler&lt;/a&gt;,
Chief Agile Methodologist chez IBM, a présenté les résultats des sondages
réalisés par &lt;a href=&quot;http://www.ambysoft.com/surveys/&quot;&gt;Ambysoft&lt;/a&gt; et
&lt;a href=&quot;http://en.wikipedia.org/wiki/Dr._Dobb's_Journal&quot;&gt;Dr. Dobb's
Journal&lt;/a&gt; pour faire ressortir les pratiques réelles des équipes agiles à ce
jour.&lt;/p&gt;
&lt;p&gt;Les conclusions qui ont retenu mon attention :&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;les pratiques agiles restent principalement concentrées sur la technique
(Continuous Integration) ;&lt;/li&gt;
&lt;li&gt;l'obtention de la certification &amp;quot;SCRUM Master&amp;quot; après seulement deux jours
de formation est dépourvue de sens ;&lt;/li&gt;
&lt;li&gt;des équipes de plus de 200 personnes pratiquent l'agilité ;&lt;/li&gt;
&lt;li&gt;les pratiques agiles ne changent pas les besoins de chiffrage, de
spécification, de modélisation, d'architecture durant l'initialisation d'un
projet ;&lt;/li&gt;
&lt;li&gt;la majorité des développeurs agiles suivent des conventions de codage même
s'il reste une marge de progrès dans ce domaine ;&lt;/li&gt;
&lt;li&gt;les équipes agiles et traditionnelles écrivent autant de documentation et
cette documentation est de qualité similaire ;&lt;/li&gt;
&lt;li&gt;les projets agiles connaissent plus de succès que les projets
classiques.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;L'intérêt principal de cette présentation a été de fournir des réponses
chiffrées aux questions que peuvent se poser les personnes s'intéressant aux
méthodes agiles. Cependant, il convient de considérer ces chiffres dans leur
contexte avec les limitations que ça implique. Par exemple, les conditions de
succès d'un projet restent sujet à discussion.&lt;/p&gt;
&lt;p&gt;Pour la liste complète des &amp;quot;Mythes Agiles&amp;quot; et les résultats des sondages
associés, se référer au post de &lt;a href=&quot;http://dow.ngra.de/2009/11/18/live-from-devoxx-agile-mythbusters-by-scott-ambler/&quot;&gt;
Jevgeni Kabanov&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Pour la liste des sondages, suivre &lt;a href=&quot;http://www.ambysoft.com/surveys/&quot;&gt;ce lien&lt;/a&gt;.&lt;/p&gt;</description>
    
    
    
      </item>
    
  <item>
    <title>Flash Catalyst</title>
    <link>http://www.insideit.fr/post/2009/11/18/Flash-Catalyst</link>
    <guid isPermaLink="false">urn:md5:b13cb1f206e924f7aa2233a800dc92e3</guid>
    <pubDate>Wed, 18 Nov 2009 17:10:00 +0100</pubDate>
    <dc:creator>Patrice</dc:creator>
        <category>Web 2.0</category>
        <category>DEVOXX</category><category>DEVOXX 2009</category><category>flash</category><category>flex</category><category>ria</category>    
    <description>    &lt;div style=&quot;border-style: none; margin: 0; padding: 2px; font-family: 'DejaVu Sans','Lucida Grande','Lucida Sans Unicode',Arial,sans-serif; font-style: normal; font-variant: normal; font-weight: normal; font-size: 12px; line-height: normal; font-size-adjust: none; font-stretch: normal; -x-system-font: none; color: rgb(0, 0, 0); background-color: rgb(249, 249, 249);&quot;&gt;
&lt;ul&gt;
&lt;li&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: 'Times New Roman'; font-size: medium;&quot;&gt;Flex est un framework open
source pour créer des applications web riches&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;Flash builder : Plugin eclipse pour construire des applications flex&lt;/li&gt;
&lt;li&gt;Flash Catalyst : Logiciel pour faire le lien
entre le designer et le developpeur flex.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;img src=&quot;http://joseoyarce.files.wordpress.com/2009/07/alteringba.jpg&quot; alt=&quot;&quot; align=&quot;right&quot; /&gt;Flash Player 10 est maintenant présent sur 93,5%
des ordinateurs connectés dans le monde, en seulement 10 mois après
sa sortie, et est disponible sur tous les navigateurs et systèmes
d'exploitation.&lt;/p&gt;
&lt;p&gt;Il possède une large communauté en s'ouvrant à elle de plus en plus (les
spécifications FLV, SWF, &lt;span style=&quot;border-bottom: 1px dotted rgb(255, 0, 0);&quot;&gt;AMF&lt;/span&gt;, RTMP sont ainsi
disponibles).&lt;/p&gt;
&lt;p&gt;Flex :&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;MXML : interface&lt;/li&gt;
&lt;li&gt;Action Script 3 : code&lt;/li&gt;
&lt;/ul&gt;
&lt;p class=&quot;&quot;&gt;&lt;span style=&quot;border-bottom: 1px dotted rgb(255, 0, 0);&quot;&gt;Compilé&lt;/span&gt; en un
fichier .SWF et exécuté par le Flash player ou packagé dans un
fichier AIR et exécuté sur l'ordinateur.&lt;/p&gt;
&lt;p&gt;Jusque-là, le &lt;span style=&quot;border-bottom: 1px dotted rgb(204, 204, 204);&quot;&gt;designer&lt;/span&gt; visuel
(qui utilise Photoshop et Illustrator) et le designer
d'interactions (Flash) envoyaient leurs fichiers aux developpeurs qui
s'occupaient d'intégrer tant bien que mal le tout dans
l'application.&lt;/p&gt;
&lt;p&gt;Flash Catalyst permet une interaction &lt;span style=&quot;border-bottom: 1px dotted rgb(204, 204, 204);&quot;&gt;directe&lt;/span&gt; entre le
designer graphique et le designer d'interaction mais aussi avec l'utilisateur
qui peut tester le prototype et enfin le developpeur qui peut alors
importer et utiliser tout ce travail directement dans Flash Builder.&lt;/p&gt;
&lt;p&gt;Flash Catalyst permet de faire des interfaces en wireframes
pour rapidement valider l'organisation d'une application. Des fonctionnalités
de base pour &lt;span style=&quot;border-bottom: 1px dotted rgb(204, 204, 204);&quot;&gt;dessiner&lt;/span&gt; des formes
sont possibles mais le plus important est peut-être le fait de pouvoir
créer les différents états (ou pages) de notre application et définir
simplement les actions basiques possibles (clique sur un bouton et
changement de page). Il est aussi possible de définir les
effets entre les états de l'application.&lt;/p&gt;
&lt;p&gt;Ce qui est vraiment le plus &lt;span style=&quot;border-bottom: 1px dotted rgb(204, 204, 204);&quot;&gt;impressionnant&lt;/span&gt; est
le moment où l'on importe un fichier photoshop (ou illustrator) créé par le
graphiste qui contient alors tous les visuels de l'application dans des calques
ou des &lt;span style=&quot;border-bottom: 1px dotted rgb(204, 204, 204);&quot;&gt;éléments&lt;/span&gt; différents. Il
suffit alors de &lt;span style=&quot;border-bottom: 1px dotted rgb(204, 204, 204);&quot;&gt;sélectionner&lt;/span&gt; le cadre
et le texte qui représente un champ de saisie pour indiquer à Flash Catalyst de
le transformer en TextBox Flex qui prendra alors l'apparance définie par le
graphiste.&lt;/p&gt;
&lt;p&gt;On peut ensuite créer un composant &lt;span style=&quot;border-bottom: 1px dotted rgb(204, 204, 204);&quot;&gt;personnalisé&lt;/span&gt; qui
pourra être &lt;span style=&quot;border-bottom: 1px dotted rgb(204, 204, 204);&quot;&gt;réutilisé&lt;/span&gt; dans une
autre application.&lt;/p&gt;
&lt;p&gt;Une fois l'interface définie, on peut directement &lt;span style=&quot;border-bottom: 1px dotted rgb(204, 204, 204);&quot;&gt;prévisualiser&lt;/span&gt; le rendu
directement dans le flash player.&lt;/p&gt;
&lt;p&gt;Une fois la partie de design et d'intégration terminée, il suffit
alors de générer un projet flex. En ouvrant le projet avec Flash Builder,
on y retrouve tous les composants créés, mais aussi les images et tout ce qu'il
faut pour faire fonctionner le projet. Une nouveauté dans Flash builder, la
possibilité de configurer simplement
l'accès aux données via de nombreux services (blazeDS,
PHP, HTTP, etc.), des assistants nous permettent d'afficher les services
disponibles sur le serveur et de les plugger aux composants de
l'interface.&lt;/p&gt;
&lt;p&gt;La démonstration est vraiment convainquante.&lt;span&gt; &lt;/span&gt;&lt;/p&gt;
&lt;/div&gt;</description>
    
    
    
      </item>
    
  <item>
    <title>DEVOXX 2009 - Conference Day 1 - Keynote</title>
    <link>http://www.insideit.fr/post/2009/11/18/DEVOXX-2009-Conference-Day-1-Keynote</link>
    <guid isPermaLink="false">urn:md5:7b113862ec70469be8c12c6228546047</guid>
    <pubDate>Wed, 18 Nov 2009 13:11:00 +0100</pubDate>
    <dc:creator>Fabien Baligand</dc:creator>
        <category>Java</category>
        <category>DEVOXX</category><category>DEVOXX 2009</category><category>Java</category>    
    <description>    &lt;p&gt;&lt;img title=&quot;DEVOXX09 Stephan at Keynote1, nov. 2009&quot; style=&quot;margin: 0 1em 1em 0; float: left;&quot; alt=&quot;&quot; src=&quot;http://www.insideit.fr/public/DEVOXX09_Stephan_at_Keynote1/.Stephan_at_Keynote1_s.jpg&quot; /&gt;Premier
jour à DEVOXX 2009 pour SFEIR, et premier jour de la partie &amp;quot;Conference&amp;quot; de
DEVOXX.&lt;/p&gt;
&lt;p&gt;Ca commence fort : Stephan JANSSEN (principal organisateur de DEVOXX)
demande s'il y a des gens de SFEIR dans la salle, en précisant qu'on est venu à
24 au total ! Nous sommes surpris de notre popularité !&lt;/p&gt;
&lt;p&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Stephan JANSSEN enchaine alors par quelques chiffres clés afin de se rendre
compte de l'importance de l'événement :&lt;br /&gt;
- 8e édition&lt;br /&gt;
- plus de 2500 inscrits&lt;br /&gt;
- 737 entreprises&lt;br /&gt;
- 212 étudiants&lt;br /&gt;
- 132 sessions&lt;br /&gt;
- 120 speakers&lt;br /&gt;
- 56 JUGs&lt;br /&gt;
- 36 pays&lt;br /&gt;
- 19 partenaires&lt;br /&gt;
&lt;br /&gt;
Il poursuit sur la présentation de Parleys.com V3, la plate-forme de e-learning
dont il est le principal contributeur, et qui fête aujourd'hui ses 3 ans. Cette
version est actuellement disponible sur : &lt;a href=&quot;http://beta.parleys.com&quot;&gt;http://beta.parleys.com&lt;/a&gt;&lt;br /&gt;
Au programme des nouveautés de cette V3 :&lt;br /&gt;
- la possibilité de créer des espaces&lt;br /&gt;
- la possibilité de personnaliser son espace (par CSS)&lt;br /&gt;
- la possibilité d'avoir sa propre URL (monnom.parleys.com) pour son espace&lt;/p&gt;
&lt;p&gt;Au programme de la version suivante (V4) :&lt;br /&gt;
- un client iphone (Stephan souligne que c'est à cause du système de validation
de l'Apple Store que cette évolution n'est pas présente dans la V3)&lt;br /&gt;
- un système de pay-per-view, qui permet au visionneur de rémunérer le speaker
de la session.&lt;/p&gt;
&lt;p&gt;Il a également annoncé que comme l'an dernier, toutes les vidéos de DEVOXX
2009 seront publiées sur parleys.com tout au long de l'année (à hauteur de deux
sessions par semaine) et disponibles gratuitement.&lt;br /&gt;
Pour ceux qui seraient pressés d'avoir accès à toutes les vidéos, une formule
payante (49 euros pour 6 mois d'accès illimité) sera possible et permettra
seulement une semaine après DEVOXX 2009 d'avoir un accès complet et illimité à
toutes les vidéos des conférences.&lt;br /&gt;
Courage au passage à l'équipe DEVOXX, car à mon avis, la semaine après DEVOXX,
ils auront du pain sur la planche...&lt;br /&gt;
&lt;br /&gt;
Après Parleys, un speaker Oracle a expliqué sa vision du futur de la
plate-forme java.&lt;br /&gt;
Une démonstration a été faite de Weblogic DM (pour Dynamic Modules), qui permet
la modularisation en utilisant OSGI.&lt;br /&gt;
Je ne m'étendrai pas sur sa présentation qui, à mon sens, a peu apporté.&lt;/p&gt;
&lt;p&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;img title=&quot;Java EE 6 final release date, nov. 2009&quot; style=&quot;margin: 0 1em 1em 0; float: left;&quot; alt=&quot;&quot; src=&quot;http://www.insideit.fr/public/DEVOXX09_Stephan_at_Keynote1/.Java_EE_6_final_release_date_s.jpg&quot; /&gt;Puis
Robert Chinicci (spec lead de Java EE 6) a présenté les grandes lignes de Java
EE 6.&lt;br /&gt;
Il a annoncé que la date de version finale de Java EE 6 sera le 10 décembre
2009.&lt;br /&gt;
Il s'est attardé sur les principales nouveautés de Java EE 6 :&lt;br /&gt;
&lt;strong&gt;- JAX-RS :&lt;/strong&gt; l'API pour développer des web services RESTfull, en
utilisant uniquement des simples classes java (POJO) et des annotations.&lt;br /&gt;
&lt;strong&gt;- Bean Validation (JSR 303) :&lt;/strong&gt; l'API pour définir des
contraintes par annotation directement sur les entités métier.&lt;br /&gt;
Il sera intégré avec JSF et JPA pour que la validation soit automatique dans
les frameworks associés. Par ailleurs, on pourra étendre les contraintes en
créant ses propres annotations de contraintes.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;&lt;img title=&quot;Java EE 6 Web Profile, nov. 2009&quot; style=&quot;margin: 0 0 1em 1em; float: right;&quot; alt=&quot;&quot; src=&quot;http://www.insideit.fr/public/DEVOXX09_Stephan_at_Keynote1/.Java_EE_6_Web_Profile_s.jpg&quot; /&gt;&lt;br /&gt;&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;- Web Profile :&lt;/strong&gt; le premier sous-profil Java EE. Ce profil
est en fait une sous-partie de Java EE 6, qui inclut les principales APIs
utilisées pour développer des sites web. En plus de Servlet/JSP/JSTL/JSF, on
pourra y retrouver des APIs plus poussées comme Managed Beans, EJB 3.1 lite,
JPA et JTA. Ainsi, avec un serveur d'applications implémentant ce profil, on
pourra réaliser des applications relativement complètes. Par contre, je vois
mal Tomcat implémenter EJB 3.1 lite, JPA et JTA... On verra l'adoption de ce
web profile par les serveurs d'applications.&lt;br /&gt;
&lt;strong&gt;- Servlet 3.0 :&lt;/strong&gt;&lt;br /&gt;
Ont été ici cités : les web fragments, le fichier web.xml désormais optionnel,
la configuration de servlets par annotation, la possibilité d'initialisation de
librairies partagées, la registration de servlets par programmation (au
démarrage), et la possibilité d'intégrer des ressources statiques dans les JARs
des frameworks web.&lt;br /&gt;
Pour plus de détails sur cette API, vous pouvez lire notre &lt;a href=&quot;http://www.insideit.fr/post/2009/10/16/Compte-rendu-de-la-soir%C3%A9e-JSF-2.0-/-Servlet-3.0-au-Paris-JUG&quot;&gt;
compte-rendu de la soirée Servlet 3 &amp;amp; JSF 2 au Paris JUG&lt;/a&gt;.&lt;br /&gt;
&lt;strong&gt;- Dependency Injection :&lt;/strong&gt; API permettant de standardiser
l'injection de dépendance (JSR 299 et JSR 330).&lt;br /&gt;
En plus de l'annotation @Resource (existante dans Java EE 5), a été rajoutée
l'annotation @Inject.&lt;br /&gt;
Les beans sont découverts au démarrage de l'application.&lt;br /&gt;
Possibilité de parcourir le métamodel d'injection, par l'API BeanManager&lt;br /&gt;
&lt;strong&gt;- EJB 3.1 :&lt;/strong&gt;&lt;br /&gt;
ajout de l'annotation @Singleton (pour un EJB ayant une unique instance)&lt;br /&gt;
ajout de l'annotation @Startup (pour l'initialisation d'un EJB au démarrage de
l'application)&lt;br /&gt;
ajout de l'annotation @Asynchronous (pour déclarer l'invocation d'un EJB comme
asynchrone)&lt;br /&gt;
possibilité de définir un EJB directement dans un WAR&lt;br /&gt;
API EJBContainer pour pouvoir démarrer/exécuter un conteneur EJB dans une
application Java SE ou pour les tests unitaires&lt;br /&gt;
&lt;strong&gt;- JSF 2.0 :&lt;/strong&gt;&lt;br /&gt;
standardisation des facelets&lt;br /&gt;
définition de managed beans par annotation&lt;br /&gt;
intégration d'AJAX&lt;br /&gt;
et même une API JavaScript fournie&lt;br /&gt;
Tout comme Servlet 3.0, pour plus de détails sur cette API, vous pouvez lire
notre &lt;a href=&quot;http://www.insideit.fr/post/2009/10/16/Compte-rendu-de-la-soir%C3%A9e-JSF-2.0-/-Servlet-3.0-au-Paris-JUG&quot;&gt;
compte-rendu de la soirée Servlet 3 &amp;amp; JSF 2 au Paris JUG&lt;/a&gt;.&lt;br /&gt;
&lt;br /&gt;
Une démonstration a ensuite été faite de GlassFish V3, qui est l'implémentation
de référence de Java EE 6.&lt;br /&gt;
On a alors appris qu'un plugin pour Eclipse existait et la démo en a
attesté.&lt;br /&gt;
De la démo, on retiendra :&lt;br /&gt;
- un démarrage de Glassfish V3 en 3 secondes chrono (merci OSGi)&lt;br /&gt;
- une application web sans fichier web.xml (servlet définie par annotation
uniquement)&lt;br /&gt;
- rechargement à chaud : on enregistre la modification dans Eclipse, on fait F5
dans son navigateur et ça marche ! Le tout en conservant la session
utilisateur...&lt;br /&gt;
- démonstration de l'ajout simple d'un EJB directement dans l'application web :
un EJB simple POJO avec l'annotation @Stateless, une servlet l'intégrant en
variable d'instance (@EJB MonEJB monEJB), un appel à l'EJB dans la méthode
doGet() de la servlet, hop, on rafraichit le navigateur et ça marche ! Bluffant
de simplicité... au point que la salle applaudit&lt;br /&gt;
- démonstration de l'intégration d'un module OSGI dans la même servlet,
toujours avec aussi peu d'étapes, et une intégration simple par annotation, on
recharge le navigateur, et ça marche... Toujours pas de redémarrage du serveur
d'applications, vraiment bluffant...&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;img title=&quot;Flash on smartphone, nov. 2009&quot; style=&quot;margin: 0 1em 1em 0; float: left;&quot; alt=&quot;&quot; src=&quot;http://www.insideit.fr/public/DEVOXX09_Stephan_at_Keynote1/.Flash_on_smartphone_s.jpg&quot; /&gt;Enfin, Chet
Haase (de Adobe) a montré l'ensemble de la gamme des produits d'Adobe, démo à
l'appui.&lt;br /&gt;
On retiendra :&lt;br /&gt;
- Flash 10.1 optimisé pour être compatible avec des smartphones&lt;br /&gt;
- l'empreinte mémoire de la VM Flash 10.1 est globalement 2 fois inférieure à
celle de la VM Flash 10.0&lt;br /&gt;
- une démo a par ailleurs été faite sur un smartphone de l'application
parleys.com (qui fait du streaming vidéo), qui était particulièrement
fluide.&lt;br /&gt;
- BlackBerry/RIM et Google Android sont en train d'intégrer Flash dans leur
système&lt;br /&gt;
- Pour Apple/iPhone, ils ont indiqué qu'un outil permettait de convertir une
application Flash en application iPhone SDK (démo à l'appui...)&lt;br /&gt;
- AIR 2.0 apporte plus de rapidité, et ouverture directe des fichiers dans le
système d'exploitation&lt;br /&gt;
- une démo assez bluffante de Flash Catalyst : transformation de fichiers
PhotoShop en une application Flash/Flex en quelques étapes (pour autant, il
s'agissait grossomodo de la même démonstration que l'an dernier)&lt;br /&gt;
&lt;br /&gt;
Ainsi se termine ce premier keynote, qui ma foi, fut assez intéressant !&lt;br /&gt;
 &lt;/p&gt;</description>
    
    
    
      </item>
    
</channel>
</rss>