<?xml version="1.0" encoding="UTF-8"?> <rss
version="2.0"
xmlns:content="http://purl.org/rss/1.0/modules/content/"
xmlns:wfw="http://wellformedweb.org/CommentAPI/"
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:atom="http://www.w3.org/2005/Atom"
xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
xmlns:itunes="http://www.itunes.com/dtds/podcast-1.0.dtd"
xmlns:media="http://search.yahoo.com/mrss/"
> <channel><title>Blog Xebia France &#187; GWT</title> <atom:link href="http://blog.xebia.fr/tag/gwt/feed/" rel="self" type="application/rss+xml" /><link>http://blog.xebia.fr</link> <description>J2EE, Agilité et SOA</description> <lastBuildDate>Wed, 08 Feb 2012 09:23:16 +0000</lastBuildDate> <language>fr</language> <sy:updatePeriod>hourly</sy:updatePeriod> <sy:updateFrequency>1</sy:updateFrequency> <generator>http://wordpress.org/?v=</generator> <copyright>CC BY-NC-ND 2.0 http://creativecommons.org/licenses/by-nc-nd/2.0/fr/</copyright> <managingEditor>blog-france@xebia.com (Xebia France)</managingEditor> <webMaster>blog-france@xebia.com (Xebia France)</webMaster> <ttl>1440</ttl> <image> <url>http://blog.xebia.fr/videos/xebia-podcast.png</url><title>Blog Xebia France</title><link>http://blog.xebia.fr</link> <width>144</width> <height>144</height> </image> <itunes:new-feed-url>http://blog.xebia.fr/feed/podcast/</itunes:new-feed-url> <itunes:subtitle>Les podcasts de Xebia France vous permettent de suivre l&#039;actualité autour de Java, de l&#039;agilité, des technologies Web et bien d&#039;autres. Xebia France est une entreprise spécialisée dans les technologies Java et JEE en environnement agi[...]</itunes:subtitle> <itunes:summary>Les podcasts de Xebia France vous permettent de suivre l&#039;actualité autour de Java, de l&#039;agilité, des technologies Web et bien d&#039;autres. Xebia France est une entreprise spécialisée dans les technologies Java et JEE en environnement agile.</itunes:summary> <itunes:keywords>Xebia, Java, JEE, SOA, Agile, Méthodes, Agiles</itunes:keywords> <itunes:category text="Technology" /> <itunes:category text="Technology"> <itunes:category text="Software How-To" /> </itunes:category> <itunes:category text="Technology"> <itunes:category text="Tech News" /> </itunes:category> <itunes:author>Xebia France</itunes:author> <itunes:owner> <itunes:name>Xebia France</itunes:name> <itunes:email>blog-france@xebia.com</itunes:email> </itunes:owner> <itunes:block>no</itunes:block> <itunes:explicit>no</itunes:explicit> <itunes:image href="http://blog.xebia.fr/videos/xebia-podcast.png" /> <item><title>Les annonces de Google IO 2011</title><link>http://blog.xebia.fr/2011/05/13/les-annonces-de-google-io-2011/</link> <comments>http://blog.xebia.fr/2011/05/13/les-annonces-de-google-io-2011/#comments</comments> <pubDate>Fri, 13 May 2011 12:16:49 +0000</pubDate> <dc:creator>Steve Klouvi</dc:creator> <category><![CDATA[Java / JEE]]></category> <category><![CDATA[Android]]></category> <category><![CDATA[Android@Home]]></category> <category><![CDATA[Chrome]]></category> <category><![CDATA[Chromebooks]]></category> <category><![CDATA[Google]]></category> <category><![CDATA[Google AppEngine]]></category> <category><![CDATA[Google IO]]></category> <category><![CDATA[Google Storage]]></category> <category><![CDATA[GWT]]></category> <category><![CDATA[HTML 5]]></category> <guid
isPermaLink="false">http://blog.xebia.fr/?p=7717</guid> <description><![CDATA[Cette semaine se tenait à San Francisco la conférence Google I/O pour la 4ème année consécutive. Cette conférence est toujours un évènement riche en annonces sur l&#8217;ensemble des technologies Google, et cette année n&#8217;a pas fait exception à la règle. Nous n&#8217;étions malheureusement pas sur place (la totalité des places de la conférence était écoulée [...]]]></description> <content:encoded><![CDATA[<p>Cette semaine se tenait à San Francisco la conférence <a
href="http://www.google.com/events/io/2011/" title="Google IO" >Google I/O</a> pour la 4ème année consécutive. Cette conférence est toujours un évènement riche en annonces sur l&#8217;ensemble des technologies Google, et cette année n&#8217;a pas fait exception à la règle. Nous n&#8217;étions malheureusement pas sur place (la totalité des places de la conférence était écoulée deux heures après l&#8217;ouverture des ventes). Toutefois, l&#8217;initiative de retransmettre en direct une partie des sessions de la conférence est louable <img
src='http://blog.xebia.fr/wp-includes/images/smilies/icon_wink.gif' alt=';-)' class='wp-smiley' /> . Voici donc un petit résumé.</p><div
style="border: dotted 1px #6A205F; background: #F0EDF1; padding:10px 30px;"> Comme pour les années précédentes, les keynotes de la conférence et une partie des sessions seront (ou sont d&#8217;ores et déjà) mises en ligne dans les jours et semaines à venir. Nous ne saurions trop vous conseiller d&#8217;en profiter.</p><ul><li><a
href="http://www.youtube.com/watch?v=OxzucwjFEEs" title="Keynote du mardi 10 Mai" >Keynote du mardi 10 Mai</a></li><li><a
href="http://www.youtube.com/watch?v=MiYND_zvIc0" title="Keynote du mercredi 11 Mai" >Keynote du mercredi 11 Mai</a></li><li><a
href="http://www.youtube.com/user/GoogleDevelopers" title="Chaine YouTube" >Chaine YouTube</a></li></ul></div><style>table {border: hidden; border-collapse: collapse; font-size: small;}
tr, th, td {border: dotted 1px #6A205F; padding: 5px;}
th {background: #F0EDF1;}
td {text-align: center;}</style><h3><a
name="GoogleAppEngine"></a>Google AppEngine 1.5</h3><p>Google livre une nouvelle version de sa plateforme de cloud AppEngine. On notera l&#8217;arrivée d&#8217;une nouvelle API de file de traitement en mode Producteur/Consommateur, les Pull Queues. Les consommateurs peuvent être des composants faisant partie de votre application AppEngine ou externes ; le service fournit une API REST et des librairies pour Java, Python, .NET, PHP et Ruby.</p><p>Cette version introduit également un nouveau type d&#8217;instance en liaison directe avec la nouvelle API de file de traitement, les instances « <em>Backend</em> ». Les traitements effectués sur une instance de type <em>Backend</em> ne sont pas soumis aux restrictions standards (comme par exemple la limite de durée à 30 secondes). Il est également possible de choisir une classe parmi 4 proposées pour ces instances ; ce qui offre plus de contrôle sur le dimensionnement de l&#8217;architecture de déploiement. Une des autres options de configuration est le mode de rétention de l&#8217;instance Backend : <em>Resident</em>, son arrêt et son démarrage sont alors <strong>manuels</strong> ; ou <em>Dynamic,</em> les instances sont alors automatiquement démarrées pour traiter les demandes et sont arrêtées après 30 secondes d&#8217;inactivité.</p><p>Voici un tableau récapitulatif, pour vous donner une idée des tarifs de ces Backends:</p><table><tr><th> Backend</th><th> Description</th><th> Tarif horaire</th><th> Tarif journalier</th><th> Tarif mensuelle (30j)</th></tr><tr><th> Classe B1</th><td> CPU 600 MHz<br
/> Ram 128 Mo</td><td>0,08 $</td><td>1,92 $</td><td>57,60 $</td></tr><tr><th> Classe B2 <em>(classe par défaut)</em></th><td> CPU 1,2 GHz<br
/> Ram 256 Mo</td><td>0,16 $</td><td>3,84 $</td><td>115,20 $</td></tr><tr><th> Classe B4</th><td> CPU 2,4 GHz<br
/> Ram 512 Mo</td><td>0,32 $</td><td>7,68 $</td><td>230,40 $</td><tr><th> Classe B8</th><td> CPU 4,8 GHz<br
/> Ram 1024 Mo</td><td>0,64 $</td><td>15,36 $</td><td>460,80 $</td></tr></table><p>Autre annonce importante, la technologie quittera le statut de <strong>preview</strong> lors du 2ème semestre de cette année. Le programme « <em>AppEngine for Business</em> » s&#8217;arrête et nombre des fonctionnalités est ou sera réintégré dans AppEngine comme : les bases SQL hébergées, les engagements sur les niveaux de service, l&#8217;utilisation de SSL avec des noms de domaine externes, etc. Une première version du SLA est consultable <a
href="http://code.google.com/appengine/sla.html" title="ici" >ici</a>. Autre modification importante, <a
href="http://www.google.com/enterprise/appengine/appengine_pricing.html" title="le modle tarifaire" >le modèle tarifaire</a> évoluera également : certaines APIs, dont la consommation est évaluée en temps CPU, seront dorénavant facturées au nombre d&#8217;appels. Tout cela conforte l&#8217;engagement de Google pour cette technologie.</p><h3><a
name="RapprochementAndroidGWTAppEngi"></a>Rapprochement Android / GWT / AppEngine</h3><p>La future version 2.4 du plugin Eclipse de Google (actuellement en bêta) permettra un rapprochement entre les technologies Android, AppEngine et GWT. Le plugin autorisera la création de projets « connectés », et générera automatiquement le code de plomberie technique nécessaire pour effectuer les appels aux services GWT depuis une application Android.</p><p>Il y a également des nouveautés du côté de l&#8217;API Cloud to Device (<a
href="http://code.google.com/android/c2dm/index.html" title="CD2M" >CD2M</a>) qui est encore dans l&#8217;incubateur Google. Sa mise en œuvre sera simplifiée par une intégration au sein même de Google AppEngine. Pour rappel, le but de l&#8217;API Cloud to Device est de remplacer les mécanismes de polling que l&#8217;on pourrait développer directement au niveau applicatif par un système de notification push. L&#8217;intégration de cette fonctionnalité directement au cœur du système permet de mutualiser les notifications, et rend l&#8217;ensemble du service plus efficace et moins consommateur en bande passante et en énergie. Un exemple concret d&#8217;utilisation est l&#8217;extension ChromeToPhone qui permet de diriger vers votre Smartphone Android une page en cours de visualisation dans Chrome.</p><p>Avec ce rapprochement, c&#8217;est tout un éco-système autour de Google AppEngine qui se dessine peu à peu.</p><h3><a
name="ChromeHTML"></a>Chrome / HTML 5</h3><p>Le navigateur de Google se voit doté de fonctionnalités supplémentaires intéressantes comme la reconnaissance vocale. Autre annonce marquante, l&#8217;équipe de développement signale que l&#8217;optimisation des performances reste un chantier de premier plan. Toutefois, le focus sera mis sur l&#8217;accélération matérielle et non plus sur le moteur JavaScript. Enfin, on peut rappeler le lancement mondial du <a
href="https://chrome.google.com/webstore" title="Chrome Web Store" >Chrome Web Store</a> accessible dans plus d&#8217;une quarantaine de langues.</p><h3><a
name="NouvellesversionsAndroid"></a>Nouvelles versions Android</h3><p>Cette conférence a été l&#8217;occasion pour Google d&#8217;annoncer 2 versions majeures de la plateforme Android. La version HoneyComb 3.1 et la très attendue version 4 (?!) Ice Cream Sandwich qui va permettre de regrouper la version téléphone et la déclinaison tablette du système d&#8217;exploitation. La plus importante nouveauté de ces versions est sans doute l&#8217;API Open Accessory qui permet aux appareils Android d&#8217;utiliser les appareils connectés via USB ou de se comporter comme un hôte USB (le mode hôte USB n&#8217;est accessible que pour HoneyComb).</p><h3><a
name="AndroidHome"></a>Android@Home</h3><p>Le framework Android@Home permet au système d&#8217;exploitation d&#8217;être utilisé pour la domotique. Votre appareil Android devient la commande centrale pour piloter les appareils sans fil de votre domicile ; les équipes ont également développé un nouveau protocole pour les appareils sans fil non connectés au réseau Wifi. Une démonstration du projet Tungsten permet par exemple de diffuser en streaming de la musique dans l&#8217;ensemble de votre domicile.</p><h3><a
name="GoogleStorage"></a>Google Storage</h3><p><a
href="http://code.google.com/apis/storage/" title="Google Storage" >Google Storage</a>, le service de stockage en ligne de haute disponibilité et accessible via une API REST. Bien qu&#8217;encore dans l&#8217;incubateur, il est maintenant accessible à tous, dispose d&#8217;un quota gratuit d&#8217;utilisation (jusqu&#8217;à la fin de l&#8217;année) et propose 2 zones géographiques de stockage les états-unis et l&#8217;Europe.</p><h3><a
name="Chromebooks"></a>Chromebooks</h3><p>Google a annoncé la prochaine sortie de 2 nouveaux « <em>NetBook</em> » utilisant le système d&#8217;exploitation Chrome OS. L&#8217;originalité vient l&#8217;offre de commercialisation puisqu&#8217;ils seront disponible à la vente de manière standard, mais aussi dans le cadre d&#8217;une souscription étudiante ou professionnelle pour respectivement $20 et $30. L&#8217;offre inclue également la mise à jour matérielle.</p><h3><a
name="LemotdelafinenattendantGoogleI"></a>Le mot de la fin &#8230; en attendant Google I/O 2012</h3><p>C&#8217;est ici que s&#8217;achève notre petit tour d&#8217;horizon de cette très généreuse conférence. Avec plus de 100 sessions réparties sur 2 jours, il y a fort à parier que nous avons « <em>oublié</em> » d&#8217;aborder certains sujets. Mais, j&#8217;espère vous avoir donné l&#8217;envie de parcourir plus en détail les annonces, vidéos et autres matériaux de cette conférence.</p> ]]></content:encoded> <wfw:commentRss>http://blog.xebia.fr/2011/05/13/les-annonces-de-google-io-2011/feed/</wfw:commentRss> <slash:comments>1</slash:comments> </item> <item><title>Revue de Presse Xebia</title><link>http://blog.xebia.fr/2011/02/22/revue-de-presse-xebia-199/</link> <comments>http://blog.xebia.fr/2011/02/22/revue-de-presse-xebia-199/#comments</comments> <pubDate>Tue, 22 Feb 2011 08:41:24 +0000</pubDate> <dc:creator>Xebia France</dc:creator> <category><![CDATA[Revue de presse]]></category> <category><![CDATA[Continuous Delivery]]></category> <category><![CDATA[Ehcache]]></category> <category><![CDATA[GWT]]></category> <category><![CDATA[Java FX]]></category> <category><![CDATA[jBPM 5]]></category> <category><![CDATA[Netbeans]]></category> <category><![CDATA[Oracle]]></category> <guid
isPermaLink="false">http://blog.xebia.fr/?p=7066</guid> <description><![CDATA[La revue de presse de l’actualité Java/J2EE hebdomadaire proposée par Xebia. Actualité éditeurs / SSIIest Ehcache Search Chez Oracle: Netbeans 7, Java FX 2&#8230; Agilité Continuous Delivery selon Martin Fowler et Jez Humble Le coin de la technique jBPM 5 est de sortie Google Web Toolkit 2.2 Actualité éditeurs / SSII Ehcache Search La nouvelle [...]]]></description> <content:encoded><![CDATA[<p><img
style="margin: 1em 1em 1em 1em; float: right;" src="http://blog.xebia.fr/wp-content/uploads/2007/06/revuedepresse.png" alt="Revue de Presse Xebia" /></p><p><em>La revue de presse de l’actualité Java/J2EE hebdomadaire proposée par Xebia.</em></p><p><strong>Actualité  éditeurs / SSIIest<br
/> </strong></p><ul><li><a
href="http://blog.xebia.fr/2011/02/22/revue-de-presse-xebia-199/#EhcacheSearch">Ehcache Search</a></li><li><a
href="http://blog.xebia.fr/2011/02/22/revue-de-presse-xebia-199/#ChezOracleNetbeansJavaFX">Chez Oracle: Netbeans 7, Java FX 2&#8230;</a></li></ul><p><strong>Agilité</strong></p><ul><li><a
href="http://blog.xebia.fr/2011/02/22/revue-de-presse-xebia-199/#ContinuousDeliveryselonMartinF">Continuous Delivery selon Martin Fowler et Jez Humble</a></li></ul><p><strong>Le coin de la  technique</strong></p><ul><li><a
href="http://blog.xebia.fr/2011/02/22/revue-de-presse-xebia-199/#jBPMestdesortie">jBPM 5 est de sortie</a></li><li><a
href="http://blog.xebia.fr/2011/02/22/revue-de-presse-xebia-199/#GoogleWebToolkit">Google Web Toolkit 2.2</a></li></ul><h3><a
name="ActualitditeursSSII"></a>Actualité  éditeurs / SSII</h3><h4><a
name="EhcacheSearch"></a>Ehcache Search</h4><p>La nouvelle version Ehcache 2.4 est sortie la <a
title="semaine dernière" href="http://gregluck.com/blog/archives/2011/02/ehcache-2-4-with-the-new-search-feature-is-out/">semaine dernière</a>, elle apporte une nouvelle fonctionnalité importante, <a
title="Search" href="http://ehcache.org/documentation/search.html">Search</a>, qui améliore les mécanismes de recherche. Elle offre entre autre une API <em>fluent</em> (<a
title="Dsignation chaine" href="http://fr.wikipedia.org/wiki/D%C3%A9signation_cha%C3%AEn%C3%A9e">Désignation chainée</a> en français ?) qu’on retrouve souvent dans les API de recherche de ce type. Voici un exemple:</p><pre class="brush: java; title: ; notranslate">
Results results = cache.createQuery().includeKeys().addCriteria(age.eq(32).and(gender.eq(“male”))).execute();
</pre><p>Nous voici donc avec un nouveau <em>query language</em>, EQL, qui rassemble toutes les fonctionnalités classiques de requêtage: les critères ( <code>eq </code>, <code>lt</code>, <code>like</code>, <code>ilike</code>, <code>between</code>&#8230;), les tris descendant/ascendant et les agrégateurs ( <code>min </code>, <code>max</code>, <code>avg</code>, <code>sum</code>, <code>count</code>&#8230;). Par contre il n’y a pas de possibilités de jointure.</p><p>Deux approches ont été utilisées selon qu’on soit en mode <em>standalone</em> ou distribué. En <em>standalone</em> la recherche se fait simplement en parcourant l’ensemble des éléments. Même si il y a beaucoup d’éléments le fait d’être en local permet d’avoir un temps de réponse très bon (d’après Ehcache, 1 million d’entrée en moins d’une seconde environ). Par contre le mode distribué, qui ne sera disponible qu’avec la future <em>release</em> Terracota 3.5, s’appuie sur des indexes et est par conséquent beaucoup plus rapide sur des tailles de cache de plusieurs giga voire téra octets. Dans ce mode on peut doubler le volume en gardant quasiment le même temps de réponse si on ajoute tout simplement un cache. A noter que la mise à jour des indexes est asynchrone.</p><p>Sans être révolutionnaire voici une nouvelle fonctionnalité assez utile pour un outil déjà appréciable par sa simplicité.</p><h4><a
name="ChezOracleNetbeansJavaFX"></a>Chez Oracle: Netbeans 7, Java FX 2&#8230;</h4><p>Attention, cette info est réservée à un public averti. Aux aventuriers du code. A ceux qui aiment prendre des risques avec leurs sources en utilisant un IDE encore en bêta. En effet, la bêta 2 de Netbeans 7 vient de sortir. Et elle sait nous mettre l&#8217;eau à la bouche ! On ne sera pas surpris d&#8217;apprendre que le support des produits Oracle comme WebLogic ou la base de donnée a été amélioré, mais c&#8217;est surtout le support de Java 7 qui nous fait saliver: découvrez les possibilités de refactoring dans <a
title="les release notes" href="http://wiki.netbeans.org/NewAndNoteworthyNB70#JDK7_support">les release notes</a>.<br
/> Toujours concernant Netbeans, certains d&#8217;entre nous avaient été déçus de l&#8217;annonce de l&#8217;arrêt du développement du plugin Ruby. Rassurez-vous, la newsletter hebdomadaire de Netbeans annonce que <a
title="Tom Enebo et la communaut" href="http://blog.enebo.com/2011/02/ruby-on-netbeans-lives.html">Tom Enebo et la communauté</a> comptent continuer à le développer. C&#8217;est une bonne nouvelle pour les amateurs de multilinguisme.</p><p>Pour continuer sur Oracle, Gerbrand van Dieijen, notre collègue Xebian néerlandais, nous livre <a
title="quelques informations" href="http://www.gerbrand-ict.nl/2011/02/javafx-2-0-by-roger-brinkley/#">quelques informations</a> glanées lors d&#8217;un JUG. Les voici:</p><ul><li>comme prévu, le langage de script JavaFX est bien abandonné. Java FX 2 sera une librairie jar.</li><li>il sera possible de mixer Swing et JavaFX2&#8230;</li><li>&#8230; mais Swing est en mode maintenance. Comprendre &laquo;&nbsp;ne plus attendre d&#8217;innovations de ce coté&nbsp;&raquo;. Aie&#8230;</li></ul><p>Faut-il s&#8217;attendre à ce que Java FX2 soit en fait Swing 2 ? Nous verrons mais en attendant, <a
title="contrairement  dautres" href="http://www.adam-bien.com/roller/abien/entry/hello_javafx_2_a_tableview#">contrairement à d&#8217;autres</a>, nous avons du mal à nous enthousiasmer pour un simple composant TableView qui était absent de la librairie jusqu&#8217;ici (bien que gérer correctement une table soit beaucoup plus dur qu&#8217;il n&#8217;y parait !).</p><h3><a
name="Agilit"></a>Agilité</h3><h4><a
name="ContinuousDeliveryselonMartinF"></a>Continuous Delivery selon Martin Fowler et Jez Humble</h4><p>Martin Fowler et Jez Humble (product manager de <a
title="Go" href="http://www.thoughtworks-studios.com/go-agile-release-management/">Go</a> chez ThoughtWorks) ont présenté à QCon 2010 leur vision du <a
title="Continuous Delivery" href="http://www.infoq.com/interviews/jez-humble-martin-fowler-cd">Continuous Delivery</a>. Nous retiendrons :</p><h5>Qu&#8217;est ce que le &laquo;&nbsp;Continuous Delivery&nbsp;&raquo;</h5><p>L&#8217;objectif du &laquo;&nbsp;Continuous Delivery&nbsp;&raquo; est d&#8217;accélérer le rythme de <em>release</em> des logiciels. L&#8217;Agilité et le &laquo;&nbsp;Continuous Integration&nbsp;&raquo; ont traité les périmètres des équipes fonctionnelles et de développement ; &laquo;&nbsp;Continuous Delivery&nbsp;&raquo; prolonge cette dynamique aux équipes de production.</p><p>Les bénéfices majeurs sont :</p><ul><li>Valider plus rapidement le &laquo;&nbsp;business plan&nbsp;&raquo; en recueillant plus rapidement les retours d&#8217;expérience des utilisateurs,</li><li>Réduire les risques de mise en production (et donc des coûts) par rapport aux approches &laquo;&nbsp;Big Bang&nbsp;&raquo; grâce à des incréments plus petits, plus fréquents et automatisés.</li></ul><p>Pour atteindre cet objectif, &laquo;&nbsp;Continuous Delivery&nbsp;&raquo; propose d&#8217;automatiser les phases de &laquo;&nbsp;build-deploy-test-release&nbsp;&raquo; en un &laquo;&nbsp;Build Pipeline&nbsp;&raquo;. Cela comporte l&#8217;automatisation de tests intégrés (User Acceptance Tests, Performance Tests, etc), la gestion des configurations, des environnements et des données ainsi que l&#8217;automatisation des déploiements.</p><p>Plus de détails dans <a
title="InformIT  Continuous Delivery The Value Proposition" href="http://www.informit.com/articles/article.aspx?p=1641923">InformIT &#8211; Continuous Delivery: The Value Proposition</a>.</p><h5>&laquo;&nbsp;Continuous Delivery&nbsp;&raquo; versus &laquo;&nbsp;Continuous Deployment&nbsp;&raquo;</h5><p>&laquo;&nbsp;Continuous Delivery&nbsp;&raquo; et &laquo;&nbsp;Continuous Deployment&nbsp;&raquo; diffèrent par le fait que &laquo;&nbsp;Continous Delivery&nbsp;&raquo; laisse au <em>business</em> le choix du rythme des releases. Le logiciel doit toujours être <em>releasable</em> mais c&#8217;est le <em>business</em> qui choisit la date de la <em>release</em> (e.g. un éditeur limite le nombre de release à supporter, les équipes ne sont pas forcément disponibles pour supporter une mise en production, etc). A l&#8217;inverse, &laquo;&nbsp;Continuous Deployment&nbsp;&raquo; promeut la mise en production permanente ; chaque commit est l&#8217;occasion d&#8217;une <em>release</em>, il s&#8217;agit de &laquo;&nbsp;continuous release&nbsp;&raquo;.</p><p>Plus de détails dans <a
title="Jez Humble  Continuous Delivery vs Continuous Deployment" href="http://continuousdelivery.com/2010/08/continuous-delivery-vs-continuous-deployment/">Jez Humble &#8211; Continuous Delivery vs Continuous Deployment</a>.</p><h5>Les enjeux et pièges de l&#8217;adoption du &laquo;&nbsp;Continuous Delivery&nbsp;&raquo;</h5><p>Le principal enjeu du &laquo;&nbsp;Continuous Delivery&nbsp;&raquo; est culturel : il s&#8217;agit de faire travailler ensemble les équipes de développement, de validation (QA) et d&#8217;exploitation.</p><p>Le premier piège de l&#8217;adoption de &laquo;&nbsp;Continuous Deployment&nbsp;&raquo; est le même que pour l&#8217;adoption de l&#8217;Agilité : l&#8217;adoption en mode &laquo;&nbsp;Big Bang&nbsp;&raquo;. Il faut à la place procéder incrémentalement, automatiser les étapes une par une en identifiant à chaque fois l&#8217;action la plus bénéfique.</p><h5>&laquo;&nbsp;Continuous Delivery&nbsp;&raquo;, &laquo;&nbsp;Feature Branching&nbsp;&raquo; et &laquo;&nbsp;Feature Toggle Pattern&nbsp;&raquo;</h5><p>Martin Fowler et Jez Humble recommandent le développement sur le &#8216;trunk&#8217; plutôt qu&#8217;une approche de &laquo;&nbsp;feature branching&nbsp;&raquo; à cause des difficultés de merge.</p><p>Tant qu&#8217;une fonctionnalité n&#8217;est pas complètement &laquo;&nbsp;done&nbsp;&raquo; ou que le <em>business</em> n&#8217;a pas décidé de son activation définitive, on recourra à un pattern de &laquo;&nbsp;feature toggle&nbsp;&raquo; qui permet d&#8217;activer/désactiver par configuration la fonctionnalité. Cette approche permet notamment le <a
title="canary releasing" href="http://gotocon.com/dl/jaoo-aarhus-2010/slides/JezHumble_ContinuousDelivery.pdf">canary releasing</a> et le <a
title="AB testing" href="http://en.wikipedia.org/wiki/A/B_testing">A/B testing</a>.</p><p>Plus de détails sur <a
title="Martin Fowlers Bliki  Feature Toggle" href="http://martinfowler.com/bliki/FeatureToggle.html">Martin Fowler&#8217;s Bliki : Feature Toggle</a>.</p><h5>Les outils pour le &laquo;&nbsp;Continous Delivery&nbsp;&raquo;</h5><p>Il y a peu d&#8217;outils à part <a
title="Go" href="http://www.thoughtworks-studios.com/go-agile-release-management/">Go</a> de Toughtworks. Les serveurs d&#8217;intégration continue commencent à s&#8217;intéresser au sujet (cf <a
title="Atlassian Bamboo 3" href="http://www.theserverside.com/discussions/thread.tss?thread_id=61908">Atlassian Bamboo 3</a>). Les produits Open Source comme Maven ou Hudson n&#8217;ont pas de proposition pour le moment.</p><h3><a
name="Lecoindelatechnique"></a>Le coin de la  technique</h3><h4><a
name="jBPMestdesortie"></a>jBPM 5 est de sortie</h4><p>La version 5 de jBPM <a
title="est sortie" href="http://planet.jboss.org/post/jbpm_5_0_released">est sortie</a> il y a peu de temps. Pour mémoire, jBPM est une librairie open-source faite par JBoss pour faire du BPM (<a
title="Business Process Management" href="http://en.wikipedia.org/wiki/Business_process_management">Business Process Management</a>). On se rappellera que le projet a connu quelques heurts dont le départ de ses 2 principaux membres: Tom Baeyens et Joram Barrez avaient abandonné le navire pour aller faire Activiti sous la houlette de Alfresco. La 1ere version d&#8217;Activiti est d&#8217;ailleurs sortie récemment, avec le <a
title="numro de version 5" href="http://www.activiti.org/faq.html#WhyIsTheVersionCalled50">numéro de version 5</a>, sans doutes pour concurrencer jBPM 5 !</p><p>Tout comme Activiti, ce jBPM 5 voit la généralisation du langage BPMN 2 pour décrire les process. Et par conséquence l&#8217;abandon du langage propriétaire JPDL employé jusqu&#8217;alors en parallèle de BPMN 1.2.<br
/> JBPM 5 résulte d&#8217;un merge avec <a
title="Drools Flow" href="http://www.jboss.org/drools/drools-flow.html">Drools Flow</a> et sort accompagné entre autres de plugin Eclipse, d&#8217;une console web de management et d&#8217;un <em>Process Repository</em> <a
title="avec Guvnor" href="http://kverlaen.blogspot.com/2011/01/process-repository-using-guvnor.html">avec Guvnor</a>.</p><p>JBPM 3, lui, a joui et jouira pour encore quelques années d&#8217;un support complet de la part de jBoss. De plus, des outils sont prévus pour migrer les process vers jBPM 5. Ce sont les utilisateurs de jBPM 4 qui se retrouvent le bec dans l&#8217;eau: il semble que rien n&#8217;est prévu pour eux. Toutefois il est vrai que cette version n&#8217;a jamais été présentée comme étant officiellement supportée, mais plutôt <em>community</em>. Notons tout de même que, comme indiqué en fin de <a
title="cet article" href="http://kverlaen.blogspot.com/2011/01/migrating-to-jbpm5.html">cet article</a>, ce sont les process qui seront migrés, et non les données de ces process.</p><p>L&#8217;intégration avec Drools sera-t-elle un pari réussi pour JBoss ? En tout cas le projet semble n&#8217;avoir pas trop souffert du départ de ses leaders et le combat pour le titre de solution BPM Open Source ne fait que s&#8217;engager avec Activiti. Profitons en pour noter que les français de <a
title="Bonitasoft" href="http://www.bonitasoft.com/">Bonitasoft</a> proposent eux aussi une solution concurrente.</p><h4><a
name="GoogleWebToolkit"></a>Google Web Toolkit 2.2</h4><p>La <a
title="version 22" href="http://code.google.com/webtoolkit/doc/latest/ReleaseNotes.html">version 2.2</a> du framework GWT est sortie la semaine passée. Cette sortie, en plus d&#8217;un lot de correctifs, s&#8217;accompagne d&#8217;une mise à jour des outils de développement.</p><p>Le plugin GPE (Google Plugin for Eclipse) intègre donc en standard une <strong>version light</strong> de GWT Designer. <a
title="GWT Designer" href="http://code.google.com/webtoolkit/tools/download-gwtdesigner.html">GWT Designer</a> est un outil WYSIWYG pour la création d&#8217;interfaces GWT. La version allégée n&#8217;inclut pas le support des librairies GWT-Ext, GXT ou SmartGWT. Elle offre moins d&#8217;options de configuration, et n&#8217;inclut pas les assistants et vérificateurs de la version complète pour s&#8217;appuyer sur ceux de GPE. La version complète reste toujours disponible gratuitement.</p><p>Autre nouveauté, le framework inclut un support expérimentale pour les éléments HTML 5 Canvas, Video et Audio. Les API sont encore susceptibles d&#8217;évoluer, mais l&#8217;équipe de développement pense qu&#8217;elles sont suffisamment &laquo;&nbsp;stables&nbsp;&raquo; pour être publiées. Et une démo et son code source sont accessibles <a
title="ici" href="http://code.google.com/p/gwtcanvasdemo">ici</a>.</p><p>On notera également l&#8217;ajout des fonctionnalités de tri et de dimensionnement des colonnes sur le composant CellTable.</p><p>Enfin, cette version déprécie le support de Java 1.5. Noter que l&#8217;équipe s&#8217;engage à supporter Java 1.5 au moins jusqu&#8217;à la prochaine release. Toutefois, la migration vers une version plus récente du runtime est recommandé.</p> ]]></content:encoded> <wfw:commentRss>http://blog.xebia.fr/2011/02/22/revue-de-presse-xebia-199/feed/</wfw:commentRss> <slash:comments>4</slash:comments> </item> <item><title>Devoxx &#8211; Comparaison des Frameworks Web sur JVM</title><link>http://blog.xebia.fr/2010/11/19/devoxx-comparaison-des-frameworks-web-sur-jvm/</link> <comments>http://blog.xebia.fr/2010/11/19/devoxx-comparaison-des-frameworks-web-sur-jvm/#comments</comments> <pubDate>Fri, 19 Nov 2010 14:12:34 +0000</pubDate> <dc:creator>Romain Maton</dc:creator> <category><![CDATA[Java / JEE]]></category> <category><![CDATA[Devoxx]]></category> <category><![CDATA[Grails]]></category> <category><![CDATA[GWT]]></category> <category><![CDATA[Ruby on Rails]]></category> <category><![CDATA[Spring MVC]]></category> <category><![CDATA[Web]]></category> <category><![CDATA[Wicket]]></category> <guid
isPermaLink="false">http://blog.xebia.fr/?p=5938</guid> <description><![CDATA[Nouvelle journée de Devoxx et cela commence plutôt bien avec une comparaison des Frameworks Web sur JVM par Matt Raible. Avec un accent Américain trés prononcé, et aprés une présentation &#171;&#160;lessig style&#160;&#187; trés appréciée, il présente le programme de la session : les candidats, les points de comparaison, la matrice et quelques graphiques. Comment choisir [...]]]></description> <content:encoded><![CDATA[<p> <img
src="http://blog.xebia.fr/wp-content/uploads/2010/11/devoxx_matt_raible.png" border="0" alt="" style="margin: 1em 1em 1em 1em; float: right;" /><br
/> Nouvelle journée de Devoxx et cela commence plutôt bien avec une <a
href="http://www.devoxx.com/display/Devoxx2K10/Comparing+JVM+Web+Frameworks" title="comparaison des Frameworks Web sur JVM" >comparaison des Frameworks Web sur JVM</a> par <a
href="http://raibledesigns.com/" title="Matt Raible" >Matt Raible</a>. Avec un accent Américain trés prononcé, et aprés une présentation &laquo;&nbsp;<a
href="http://www.presentationzen.com/presentationzen/2005/10/the_lessig_meth.html" title="lessig style" >lessig style</a>&nbsp;&raquo; trés appréciée, il présente le programme de la session : les candidats, les points de comparaison, la <em>matrice</em> et quelques graphiques.</p><p>Comment choisir ces fameux Frameworks Web qui sont, et c&#8217;est le moins que l&#8217;on puisse dire, assez nombreux. Et bien tout d&#8217;abord, il va falloir restreindre cette liste à quelques Frameworks et, pour chacun d&#8217;entre eux, prototyper une application. A partir de ces prototypes, il sera alors possible de créer une <em>matrice</em> comprenant différents critères qui seront notés pour chaque Frameworks. De là, on pourra faire ressortir les meilleurs prétendants, un petit document et faire nos recommandations. C&#8217;est ce qu&#8217;a fait Matt Raible durant cette présentation et voici ses résultats !</p><p>&nbsp;<br
/> &nbsp;</p><div
align="center"> <img
src="http://blog.xebia.fr/wp-content/uploads/2010/11/devoxx_web_frameworks.png" border="0" alt="" /></div><p>Matt fait un petit rappel sur les facteurs clés qui nous permettaient de choisir un Framework Web en 2007 <em>(de son expérience)</em> :</p><ul><li>composant, requête ou RIA,</li><li>facilité de développement,</li><li>communauté autour du Framework,</li><li>roadmap et futur du Framework,</li><li>maintenance,</li><li>fonctionnalités.</li></ul><p>Aujourd&#8217;hui, nous en demandons beaucoup plus à nos Frameworks Web et, pour Matt, nous passons de 6 à 20 ! Avec un peu d&#8217;exagération sur cette fulgurante croissance car certains points faisaient déjà parti de nos préoccupations en 2007 ; de là à dire que ce sont de nouveaux points&#8230; En tout cas, les voici au complet :</p><ul><li>productivité du développeur,</li><li>perception du développeur,</li><li>courbe d&#8217;apprentissage,</li><li>santé du Framework,</li><li>disponibilité des développeurs <em>(sur le marché)</em>,</li><li>offres d&#8217;emploi,</li><li>templating,</li><li>composants,</li><li>ajax,</li><li>plugins ou add-ons,</li><li>scalabilité,</li><li>support pour les tests,</li><li>i18n et l10n,</li><li>validation,</li><li>support du multi-langage (groovy, scala&#8230;),</li><li>qualité de la documentation / tutoriaux,</li><li>publications,</li><li>support de REST,</li><li>support mobile,</li><li>et degré de risque.</li></ul><p>Bien sûr, nous pouvons remettre en cause certains points de cette liste et passer plusieurs journées à en débattre mais le débat n&#8217;est pas là. Matt assume que les choix qui sont fait sont les siens et il nous invite à participer pour ajouter des éléments à la liste ou lui indiquer pourquoi il se trompe sur telle ou telle appréciation. L&#8217;idée est ici de donner une base solide afin de pouvoir comparer sur plusieurs points importants de nos projets d&#8217;entreprise ces fameux innombrables Frameworks Web.</p><p>Roulement de tambour&#8230; voici la matrice ! (<a
href="http://spreadsheets.google.com/pub?key=0AtkkDCT2WDMXdC1HOEtnUHpCejJMbUhGeGJWUmh5dVE&#038;hl=en&#038;output=html" title="google spreadsheet" >google spreadsheet</a>)</p><div
align="center"> <img
src="http://blog.xebia.fr/wp-content/uploads/2010/11/devoxx_matrice.png" border="0" alt="" /></div><p>Les gagnants de ce &laquo;&nbsp;concours&nbsp;&raquo; sont :</p><ul><li>Spring MVC,</li><li>GWT,</li><li>Ruby on Rails <em>(non JVM mais non exclu car très présent sur le marché)</em>,</li><li>Grails,</li><li>Wicket.</li></ul><p>Vient ensuite une partie avantages / inconvénients pour chacun d&#8217;eux. Cette partie est à prendre avec des pincettes car les inconvénients relevés sont souvent surmontables <em>(certains sont même juste des comportements par défaut modifiable par configuration !)</em> mais encore une fois cela donne un overview de ce que font ou ne font pas ces Frameworks :</p><ul><li><strong>Spring MVC :</strong> configuration simple par conventions et annotations, intégration de plusieurs formats d&#8217;affichage <em>(JSP, JSTL, FreeMarker, JSON, PDF&#8230;)</em> et excellent support de REST <u>mais</u> pas de rechargement à chaud par défaut <em>(toutefois possible avec JRebel ou Spring Roo)</em>, projet non ouvert à la communauté pour contribution <em>(SpringSource mandatory)</em> et pas de librairie ajax en bundle <em>(ce qui peut aussi être vu comme un point positif car mise à jour des librairies Javascript non bloquée par le Framework)</em> ;</li><li><strong>GWT :</strong> code Java traduit en un Javascript extrêmement optimisé, apprentissage facile et rapide <em>(petit bémol car sur ce point les développeurs Web n&#8217;ont pas forcément cette compétence du code Swing-like)</em> et une communauté vibrante <u>mais</u> il faut connaître Java <em>(alors que l&#8217;on produit du Javascript)</em>, compilation très lente et code difficile à tester ;</li><li><strong>Ruby on Rails :</strong> apprentissage rapide pour tout développeur Web, documentation abondante et  communauté de passionnés <u>mais</u> moins performant que les autres langages, langage dynamique = plus de tests pour éviter les cast exceptions au runtime et  un manque d&#8217;outils de développement et de débugger comme dans le monde Java ;</li><li><strong>Grails :</strong> transition facile depuis le monde Java, utlise Groovy et nombreux plugins <u>mais</u> Groovy vise directement les développeurs Java <em>(ce qui peut bloquer d&#8217;autres développeurs)</em>, stack traces <em>affreuses</em> <em>(dans le slide</em> <img
src='http://blog.xebia.fr/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /> <em>)</em> et connaissances des sous-modules non nécessaires mais peut aider ;</li><li><strong>Wicket :</strong> parfait pour les développeurs Java, binding des pages et des vues et communauté active <u>mais</u> pas ou peu d&#8217;offres d&#8217;emploi, stateful par défaut et templates HTML juste à côté des classes Java <em>(ce qui ne va pas aider le graphiste)</em>.</li></ul><p>Pour finir, nous avons droit à quelques <em>jolis</em> graphiques qui nous montre à quelle point Ruby On Rails est très présent au niveau de la communauté mais ainsi en terme d&#8217;offres d&#8217;emploi.</p><div
align="center"> <a
href="http://blog.xebia.fr/wp-content/uploads/2010/11/devoxx_stack_overflow.png"><img
src="http://blog.xebia.fr/wp-content/uploads/2010/11/devoxx_stack_overflow-300x225.png" alt="devoxx_stack_overflow" title="devoxx_stack_overflow" width="300" height="225" class="alignnone size-medium wp-image-5941" /></a></div><div
align="center"> <a
href="http://blog.xebia.fr/wp-content/uploads/2010/11/devoxx_charts.png"><img
src="http://blog.xebia.fr/wp-content/uploads/2010/11/devoxx_charts-300x225.png" alt="devoxx_charts" title="devoxx_charts" width="300" height="225" class="alignnone size-medium wp-image-5939" /></a></div><p>Matt a insisté sur deux points importants tout d&#8217;abord sur le fait que ce sont les développeurs qui devraient choisir leur framework web, plus les développeurs sont heureux, plus ils seront productifs. D&#8217;autre part, javascript n&#8217;est pas si difficile comme on l&#8217;entend souvent de la part des développeurs java, plus on le pratique, plus on l&#8217;apprécie, et c&#8217;est vital si l&#8217;on veut être sérieux pour le développement d&#8217;application web.</p><p>Cette méthode peut être appliqué dans votre entreprise pour choisir votre framework web :</p><ol><li>priorisez les fonctionnalités importantes de votre application</li><li>sélectionnez ensuite 3 ou 4 Frameworks pour prototyper une application <em>(1 semaine chacun)</em>, documentez</li><li>calculez votre <em>matrice</em> et choisissez !</li></ol> ]]></content:encoded> <wfw:commentRss>http://blog.xebia.fr/2010/11/19/devoxx-comparaison-des-frameworks-web-sur-jvm/feed/</wfw:commentRss> <slash:comments>7</slash:comments> </item> <item><title>Revue de Presse Xebia</title><link>http://blog.xebia.fr/2010/11/02/revue-de-presse-xebia-183/</link> <comments>http://blog.xebia.fr/2010/11/02/revue-de-presse-xebia-183/#comments</comments> <pubDate>Tue, 02 Nov 2010 21:24:17 +0000</pubDate> <dc:creator>Xebia France</dc:creator> <category><![CDATA[Revue de presse]]></category> <category><![CDATA[GWT]]></category> <category><![CDATA[JOOQ]]></category> <category><![CDATA[Mozilla Rainbow]]></category> <category><![CDATA[ROO]]></category> <category><![CDATA[SpringOne 2GX]]></category> <category><![CDATA[SpringSource]]></category> <guid
isPermaLink="false">http://blog.xebia.fr/?p=5816</guid> <description><![CDATA[La revue de presse de l’actualité Java/J2EE hebdomadaire proposée par Xebia. Actualité éditeurs / SSII SpringOne2GX 2010 &#8211; Les annonces de SpringSource Spring ROO 1.1.0 Sortie de GWT 2.1 Mozilla Rainbow: enregistrement audio et video dans le browser Le coin de la technique jOOQ 1.4.2, ou comment faire du SQL object Actualité éditeurs / SSII [...]]]></description> <content:encoded><![CDATA[<p><img
style="margin: 1em 1em 1em 1em; float: right;" src="http://blog.xebia.fr/wp-content/uploads/2007/06/revuedepresse.png" alt="Revue de Presse Xebia" /></p><p><em>La revue de presse de l’actualité Java/J2EE hebdomadaire proposée par Xebia.</em></p><p><strong>Actualité  éditeurs / SSII</strong></p><ul><li><a
href="http://blog.xebia.fr/2010/11/02/revue-de-presse-xebia-183/#SpringOneGXLesannoncesdeSpring">SpringOne2GX 2010 &#8211; Les annonces de SpringSource</a></li><li><a
href="http://blog.xebia.fr/2010/11/02/revue-de-presse-xebia-183/#SpringROO">Spring ROO 1.1.0</a></li><li><a
href="http://blog.xebia.fr/2010/11/02/revue-de-presse-xebia-183/#SortiedeGWT">Sortie de GWT 2.1</a></li><li><a
href="http://blog.xebia.fr/2010/11/02/revue-de-presse-xebia-183/#MozillaRainbowenregistrementau">Mozilla Rainbow: enregistrement audio et video dans le browser</a></li></ul><p><strong>Le coin de la  technique</strong></p><ul><li><a
href="http://blog.xebia.fr/2010/11/02/revue-de-presse-xebia-183/#jOOQoucommentfaireduSQLobject">jOOQ 1.4.2, ou comment faire du SQL object</a></li></ul><h3><a
name="ActualitditeursSSII"></a>Actualité  éditeurs / SSII</h3><h4><a
name="SpringOneGXLesannoncesdeSpring"></a>SpringOne2GX 2010 &#8211; Les annonces de SpringSource</h4><p>La semaine dernière se tenait la conférence SpringOne 2GX à Chicago. Cette conférence a été le théâtre de nombreuses annonces du duo SpringSource/Vmware. Cette actualité est notamment relayée sur le <a
title="blog de Rod Johnson" href="http://blog.springsource.com/2010/10/21/springone2gx-2010-driving-java-innovation-into-the-cloud/">blog de Rod Johnson</a>.</p><h5>Code2Cloud</h5><p>SpringSource présente <a
title="Code2Cloud" href="http://www.springsource.com/code2cloud">ici</a> une forge logicielle mettant en oeuvre des services tels que :</p><ul><li>un système de <em>bug tracking</em> basé sur Bugzilla,</li><li>utilisation du système de <em>bug tracking</em> avec <a
title="Mylyn" href="http://www.eclipse.org/mylyn/">Mylyn</a></li><li>la <strong>gestion du code source</strong> avec <a
title="Git" href="http://git-scm.com/">Git</a>, le système de contrôle de version distribué phare du moment,</li><li>de l&#8217;<strong>intégration continue</strong> avec <a
title="Hudson" href="http://www.eclipse.org/mylyn/">Hudson</a>,</li><li>une intégration de cette nouvelle plateforme avec <a
title="STS" href="http://www.springsource.com/developer/sts">STS</a>.</li></ul><p>Code2Cloud a pour ambition de simplifier la vie des développeurs tout en augmentant leur productivité en leur permettant de se focaliser sur les aspects métiers. Nous ne manquerons pas de suivre l&#8217;actualité de ce projet et de l&#8217;évaluer dès que la <strong>Developer Preview</strong> sera disponible. Cette preview ne devrait pas être disponible avant le début 2011 (cf <a
title="FAQ" href="http://www.springsource.com/code2cloud/faq">FAQ</a>).<br
/> Pour ceux qui se posaient la question, le code de ce projet sera fournit sous les termes de la GPL.</p><h5>Preview de Spring 3.1</h5><p>De nombreuses évolutions nous attendent dans la version <strong>3.1</strong> du framework Spring avec au menu :</p><ul><li>le support des servlet 3.0,</li><li> les profils d&#8217;environnement permettant de charger des propriétés différentes selon que l&#8217;on soit sur un environnement de développement, de recette ou de production (ce principe est notamment utilisé dans <a
title="Grails" href="http://www.grails.org/">Grails</a> par exemple),</li><li>une couche d&#8217;abstraction pour l&#8217;accès aux systèmes de cache (<a
title="EhCache" href="http://ehcache.org/">EhCache</a> et <a
title="GemFire" href="http://www.gemstone.com/products/gemfire">GemFire</a> dans un premier temps) et une nouvelle annotation <code>@Cacheable</code>,</li><li> un effort a aussi été réalisé afin de diminuer le nombre de configuration qu&#8217;il est possible de réaliser en xml mais pas en utilisant des annotations.</li></ul><p>Cette version semble prévue pour le début de l&#8217;année 2011 (la roadmap s&#8217;arrête actuellement mi-janvier 2011 avec la 3.1M2).</p><p>Mais SpringSource annonce de nouveaux projets venant s&#8217;ajouter au portefeuille. Les voici:</p><h5>Spring Data</h5><p>SpringSource s&#8217;attaque avec <a
title="Spring Data" href="http://www.springsource.org/spring-data">Spring Data</a> aux <a
title="bases de données NoSql" href="http://blog.xebia.fr/2010/04/21/nosql-europe-tour-dhorizon-des-bases-de-donnees-nosql/">bases de données NoSql</a>. L&#8217;idée est de fournir un moyen simple d&#8217;accès aux bases de données non relationnelles ainsi qu&#8217;à des technologies telles que <a
title="Oracle RAC" href="http://www.oracle.com/technetwork/database/clustering/overview/index.html">Oracle RAC</a>.<br
/> Le projet <strong>Spring Data</strong> contient de nombreux sous projets permettant notamment l&#8217;accès aux bases de données orientées :</p><ul><li><strong>clé-valeur</strong> avec le support actuel de <a
title="Redis" href="http://code.google.com/p/redis/">Redis</a>, le support de <a
title="Membase" href="http://www.membase.org/">Membase</a> est prévu prochainement,</li><li><strong>document</strong> avec le support actuel de <a
title="CouchDB" href="http://couchdb.apache.org/">CouchDB</a> et de <a
title="MongoDB" href="http://www.mongodb.org/">MongoDB</a>,</li><li><strong>colones</strong> avec le futur support de <a
title="HBase" href="http://hbase.apache.org/">HBase</a>, de <a
title="Hadoop" href="http://hadoop.apache.org/">Hadoop</a> et de <a
title="Cassandra" href="http://cassandra.apache.org/">Cassandra</a>,</li><li><strong>graphe</strong> avec le support de <a
title="Neo4j" href="http://neo4j.org/">Neo4j</a>.</li></ul><p>Le projet propose un système de <em>templating</em> bien connu des développeurs utilisant le framework Spring, pour permettre l&#8217;accès à ces bases de données.</p><h5>Spring Mobile</h5><p><a
title="Ce projet" href="http://git.springsource.org/spring-mobile">Ce projet</a> a pour but de fournir un meilleur support pour l&#8217;écriture d&#8217;applications destinées aux terminaux mobiles. Il repose sur des évolutions de <strong>Spring MVC</strong> et un partenariat avec <strong>Google</strong> autour de <strong>GWT</strong>.</p><h5>Spring Social</h5><p><a
title="Ce projet" href="http://www.springsource.org/spring-social">Ce projet</a> doit simplifier les interactions avec des services des réseaux sociaux tels que <strong>Twitter</strong>, <strong>Facebook</strong> ou encore <strong>LinkedIn</strong>. <em>Spring Social</em> fournira :</p><ul><li>un <strong>Social Network Template</strong> permettant d&#8217;interagir avec les réseaux sociaux supportés (<code>LinkedInTemplate</code>, <code>FacebookTemplate</code> &#8230;),</li><li>une intégration <a
title="OAuth" href="http://oauth.net/">OAuth</a> pour la gestion des autorisations (une <strong>request factory</strong> signera les requêtes <strong>REST</strong> avec les informations d&#8217;autorisation <strong>OAuth</strong> requises)</li><li>le mécanisme nécessaire à l&#8217;extraction du <strong>Facebook User ID</strong>.</li></ul><p><strong>SpringSource</strong> fournit un <a
title="exemple dapplication" href="http://greenhouse.springsource.org/">exemple d&#8217;application</a> permettant de voir comment fonctionne ce nouveau projet.</p><h5>Spring Payment Services</h5><p><a
title="Ce projet" href="http://www.springsource.org/spring-payment">Ce projet</a> facilitera l&#8217;intégration de services de paiement dans les applications <strong>Spring</strong>. Ce projet réalisé en partenariat avec <a
title="Visa" href="http://www.visa.com">Visa</a> qui fournit l&#8217;expertise métier aux développeurs de <strong>SpringSource</strong> vise à permettre différents types de paiements (paiement en ligne, paiement mobile, paiement de personne à personne &#8230;) via différents fournisseurs de services de paiement (donc pas uniquement <strong>Visa</strong>). Spring Payment Services étant encore en incubation, il est possible que les API subissent un lifting plus ou moins prononcé. Il est donc préférable de l&#8217;utiliser uniquement pour évaluation à l&#8217;heure actuelle.</p><h4><a
name="SpringROO"></a>Spring ROO 1.1.0</h4><p>En restant toujours dans l&#8217;écosystème de SpringSource, Spring Roo 1.1.0 <a
title="vient de sortir" href="http://blog.springsource.com/2010/10/27/spring-roo-1-1-0-is-released/">vient de sortir</a> après 10 mois de gestation.</p><p>Spring Roo est un outil de haute productivité de SpringSource pour développer rapidement des applications Java. Par l&#8217;intermédiaire d&#8217;un shell, intégré à SpringSource Tool Suite, on peut en quelques commandes construire le squelette d&#8217;un projet, avec pojos et classes de tests, puis ajouter ensuite tout un ensemble de fonctionnalités liées à des frameworks tels que Spring MVC, Hibernate, JMS (la liste est longue)&#8230; Spring Roo s&#8217;appuie massivement sur les annotations et AspectJ pour générer les sources.</p><p>Parmi les nouvelles fonctionnalités:</p><ul><li>du <em>reverse engineering</em> incrémental à partir de la base de données. On génère les entités à partir de la base de données. Si le modèle évolue ensuite, les entités seront enrichies mais en gardant les éventuelles modifications que le développeur a pu ajouter depuis la dernière génération.</li><li>des améliorations avec Spring MVC. Spring Roo utilise des fichiers JSPX (JSP <em>XML compatible</em>) au lieu de JSP ce qui lui permet à présent de pouvoir faire des aller-retours (<em>round-trip</em>) avec le modèle pour mettre à jour un champ par exemple.</li><li>une meilleure intégration de GWT et de Google App Engine.</li><li>une intégration de Apache Solr, le serveur de recherche derrière Apache Lucene, garantissant la réindéxation des éléments lorsqu&#8217;une entité est insérée, mise à jour ou effacée.</li><li>des nouvelles annotations comme <code>@RooJson</code> qui ajoute deux méthodes de sérialisation/désérialisation à votre classe et <code>@RooSerializable</code> pour maintenir le <code>serialVersionUID</code>.</li></ul><p>Le projet a lui-même subi des changements au niveau de son développement. Outre le passage à OSGI, ses sources sont maintenant sous Git (tout comme Hibernate récemment) et le projet a un nouveau logo. SpringSource a également mis à jour la plupart des librairies (JPA 2, Spring Framework, Spring Security, Spring Web Flow, Log4j, ActiveMQ, AspectJ et GWT).</p><p>Se plaçant comme une alternative à des outils comme Grails pour la haute productivité, il a le très grand avantage d&#8217;être <em>full java</em>. Par ailleurs, son shell, avec ses aides et ses complétions, est très réussi. A voir maintenant s&#8217;ils arrivent à convaincre plus de projets à migrer sur cette solution. Pour ceux qui aimerait en savoir plus, <em>Spring Roo in Action</em> <a
title="va paratre" href="http://www.manning.com/dickens/">va paraître</a> chez Manning au printemps 2011.</p><h4><a
name="SortiedeGWT"></a>Sortie de GWT 2.1</h4><p>Après des mois d&#8217;attente, nous avons accueilli avec joie la sortie de <a
title="GWT21" href="http://googlewebtoolkit.blogspot.com/2010/10/announcing-final-release-of-gwt-21.html">GWT-2.1</a> jeudi dernier. Cette version arrive avec beaucoup de nouveautés; au menu un framework Editor, RequestFactory, MVP, Nouveaux widgets et bien plus. Bruce Johnson et son équipe ont voulu que cette version de GWT soit celle de la maturité. GWT 2.1 a pour objectif de bien répondre aux besoins des applications d&#8217;entreprise et les applications de haute scalabilité. C&#8217;est la version qui marie RAD, RIA et scalabilité.<br
/> Parmi les nouveautés on trouve:</p><ul><li><strong>le framework Editor</strong>: Ce nouveau framework assure le binding entre les vues et le modèle. Vous aurez moins de code à écrire afin de peupler vos interfaces graphiques avec le contenu de vos POJO et vice versa.</li><li><strong>Le framework RequestFactory</strong> : Une alternative de GWT-RPC permettant de créer des applications CRUD. RequestFactory n&#8217;a pas pour but de remplacer GWT-RPC, mais plutôt de simplifier la mise en place de la couche d&#8217;accès aux données entre le client et le serveur.</li><li><strong>Le framework MVP (Places et activities)</strong>: Enfin un framework interne qui implémente le pattern Model-View-Presenter en se basant sur les <em>Places</em> (notion de Lieu ou de place dans l&#8217;application) et les <em>Activities</em> (une activity c&#8217;est ce que peut faire un utilisateur dans une région de la page)</li><li><strong>Data présentation widgets (<a
title="cell widgets" href=" http://gwt.google.com/samples/Showcase/Showcase.html#!CwCellSampler ">cell widgets</a>)</strong>: des composants orientés données ont été ajoutés toujours dans le but de permettre aux applications d&#8217;entreprises qui manipulent des millions d&#8217;enregistrements de faire des rendus rapides et efficaces (CellList, CellTable, CellTree, CellBrowser&#8230;).</li><li><strong>Sécurité</strong>: afin d&#8217;améliorer la sécurité des applications GWT, une nouvelle librairie voit le jour. Disponible sous le package <a
title="comgooglegwtsafehtml" href=" http://google-web-toolkit.googlecode.com/svn/javadoc/2.1/com/google/gwt/safehtml/shared/package-summary.html">com.google.gwt.safehtml</a> et autour de l&#8217;interface SafeHTML. Cette librairie veut limiter les vulnérabilités liées au XSS (Cross-Site-Scripting).</li><li><strong>Logging coté client</strong> : <a
title="javautillogging" href=" http://download.oracle.com/javase/6/docs/api/java/util/logging/package-summary.html">java.util.logging</a> est maintenant émulé dans le GWT-SDK il est désormais possible de créer des logs de la même manière que coté serveur et de les voir affichés dans une popup coté client. Les logs sont configurés non pas via fichier de propriétés mais plutôt via le descripteur <em>.gwt.xml</em>.</li><li><strong>SpeedTracer</strong> : passe d&#8217;un outil de monitoring côté client à un outil de monitoring client-serveur. Il est possible dorénavant de voir avec la même interface les performances du serveur et du client (s&#8217;appuyant entre autre sur <a
title="Spring Insight" href="http://www.springsource.org/insight">Spring Insight</a>).</li></ul><p>D&#8217;autres nouveautés ont été apportées comme l&#8217;amélioration de l&#8217;intégration entre m2eclipse et le plugin Eclipse de Google (meilleure reconnaissance du <em>classpath</em>) et une intégration (plutôt moyenne à mon avis) avec Spring-roo&#8230;</p><h4><a
name="MozillaRainbowenregistrementau"></a>Mozilla Rainbow: enregistrement audio et video dans le browser</h4><p>Mozilla a récemment annoncé <a
title="une nouvelle extension pour Firefox" href="http://mozillalabs.com/rainbow/2010/10/28/cloud-meet-rainbow/">une nouvelle extension pour Firefox</a>: Rainbow. Son rôle est de permettre au browser d&#8217;accéder aux capacités d&#8217;enregistrement audio &amp; vidéo des ordinateurs et de les mettre à disposition à travers une API Javascript. Pour ce faire, Mozilla s&#8217;appuie sur des librairies <em>cross-platform</em> comme:</p><ul><li><a
title="Libvidcap" href="http://libvidcap.sourceforge.net/">Libvidcap</a> pour l&#8217;accès au <em>hardware</em> vidéo</li><li><a
title="Portaudio" href="http://www.portaudio.com/">Portaudio</a> pour le <em>hardware</em> audio</li><li><a
title="Vorbis et Theora" href="http://www.xiph.org/">Vorbis et Theora</a> pour l&#8217;encodage des flux audio et vidéo capturés</li></ul><p>Mais l&#8217;intérêt de cette news réside peu dans l&#8217;extension elle-même qui est encore très loin d&#8217;être exploitable (ne fonctionne que sous Mac OS pour l&#8217;instant). Elle se situe plutôt dans la perspective apportée: il semble que l&#8217;on se dirige de plus en plus vers un monde où le navigateur aura accès aux matériels des machines. Lors d&#8217;un récent XKE (<a
title="notre journée mensuelle d'échange" href="http://www.touilleur-express.fr/2010/05/10/xke-xebia/">notre journée mensuelle d&#8217;échange</a>) nous avions parlé de <em>HTML5 vs Flash</em> et l&#8217;un des problèmes que nous avions évoqué était que la technologie pour faire ne serait-ce qu&#8217;un simple chat vidéo en simple HTML/Javascript n&#8217;existait pas encore. Il semble maintenant que l&#8217;on s&#8217;en rapproche de plus en plus! Alors certes, ce n&#8217;est pas pour aujourd&#8217;hui&#8230; Ce n&#8217;est pas non plus pour demain car pour obtenir une API standard à plusieurs navigateurs, il faudra que les participants se mettent d&#8217;accord: Ericsson, par exemple, <a
title="a commencé à jouer" href="https://labs.ericsson.com/developer-community/blog/beyond-html5-conversational-voice-and-video-implemented-webkit-gtk">a commencé à jouer</a> avec la <a
title="balise &lt;i&gt;device&lt;/i&gt; " href="http://www.whatwg.org/specs/web-apps/current-work/multipage/commands.html#devices">balise <em>device</em> </a> qui n&#8217;est pas encore standardisée et sur laquelle travaille <a
title="le Whatwg" href="http://wiki.whatwg.org/wiki/FAQ#What_is_the_WHATWG.3F">le Whatwg</a>, alors que l&#8217;implémentation de Mozilla semble <a
title="ne pas passer par cette balise" href="http://github.com/mozilla/rainbow/blob/master/content/example.html">ne pas passer par cette balise</a> (du moins pour l&#8217;instant). Bref, on a le temps de voir arriver toutes ces bonnes choses, mais autant s&#8217;y préparer dès maintenant: le futur réside dans le navigateur !</p><h3><a
name="Lecoindelatechnique"></a>Le coin de la  technique</h3><h4><a
name="jOOQoucommentfaireduSQLobject"></a>jOOQ 1.4.2, ou comment faire du SQL object</h4><p><a
title="jOOQ" href="http://sourceforge.net/apps/trac/jooq">jOOQ</a>, pour <em>Java Oriented Object Querying</em>, est un framework de persistance qui veut se démarquer des autres. En effet, son créateur Lukas Eder est parti de deux constats:</p><ul><li>le modèle relationnel est aujourd&#8217;hui quasi omniprésent dans les SI. De plus, le langage SQL nous permet de répondre à toutes nos attentes en terme d&#8217;interrogation de bases de données,</li><li>une bonne partie des projets sur lesquels nous travaillons possèdent une base de données <em>legacy</em> dont il n&#8217;est souvent pas possible d&#8217;apporter quelconques modifications.</li></ul><p><em>Mais alors pourquoi utiliser des outils de persistance complexes rajoutant une abstraction au SQL ?</em> Question tout à fait légitime et pleine de bons sens.</p><p>Si vous êtes dans ce cas de figure, vous pouvez télécharger ce petit outil <a
title="ici" href="http://sourceforge.net/projects/jooq/">ici</a> (même si vous ne l&#8217;êtes pas, je ne pense pas qu&#8217;il y ait d&#8217;inconvénient à ce que vous le testiez&#8230;). Puis, générez vos entités à partir de votre modèle relationnel en exécutant un générateur qui va parser votre base et détecter les entités ainsi que leurs relations. Ensuite, il vous suffira de créer vos requêtes en utilisant l&#8217;une des deux manières possibles. Voici un exemple pour illustrer ces propos:</p><p>Nous souhaitons exécuter la requête suivante avec jOOQ:</p><div><strong>Book.sql</strong></div><pre class="brush: java; title: ; notranslate">
-- Select all books by authors born after 1920 from a catalogue:
SELECT *
FROM t_author a
JOIN t_book b ON a.id = b.author_id
WHERE a.year_of_birth &amp;gt; 1920
ORDER BY b.title
</pre><ul><li>Modèle objet:</li></ul><div><strong>AuthorDao.java</strong></div><pre class="brush: java; title: ; notranslate">
// Instanciate your factory using a JDBC connection or datasource,
// and specify the SQL dialect you're using. Of course you can
// have several factories in your application.
Factory create = new Factory(datasource, SQLDialect.MYSQL);
// Create the query using generated, type-safe objects. You could
// write even less code with static imports!
SelectQuery q = create.selectQuery();
q.addFrom(TAuthor.T_AUTHOR);
q.addJoin(TBook.T_BOOK, TAuthor.ID, TBook.AUTHOR_ID);
q.addCompareCondition(TAuthor.YEAR_OF_BIRTH, 1920, Comparator.GREATER);
q.addOrderBy(TBook.TITLE);
</pre><ul><li>DSL SQL:</li></ul><div><strong>AuthorDao.java</strong></div><pre class="brush: java; title: ; notranslate">
// Do it all &quot;on one line&quot;.
SelectQuery q = create.select()
.from(T_AUTHOR)
.join(T_BOOK).on(TAuthor.ID.equal(TBook.AUTHOR_ID))
.where(TAuthor.YEAR_OF_BIRTH.greaterThan(1920))
.orderBy(TBook.TITLE).getQuery();
</pre><p>Ensuite, vous pourrez exécuter et récupérer vos résultats mapper sur vos objets grâce à jOOQ comme suit:</p><div><strong>AuthorDao.java</strong></div><pre class="brush: java; title: ; notranslate">
// Similar query, but don't join books to authors.
// Note the generic type that is added to your query:
SimpleSelectQuery q = create.select(T_AUTHOR)
.where(TAuthor.YEAR_OF_BIRTH.greaterThan(1920))
.orderBy(TAuthor.LAST_NAME).getQuery();
// When executing this query, also Result holds a generic type:
q.execute();
Result result = q.getResult();
for (TAuthorRecord record : result) {
    // With generate record classes, you can use generated getters and setters:
    String firstName = record.getFirstName();
    String lastName = record.getLastName();
    System.out.println(&quot;Author : &quot; + firstName + &quot; &quot; + lastName + &quot; wrote : &quot;);
    // Use generated foreign key navigation methods
    for (TBookRecord book : record.getTBooks()) {
        System.out.println(&quot;  Book : &quot; + book.getTitle());
    }
}
</pre><p>Enfin, l&#8217;API fournie permet d&#8217;exécuter des opérations de CRUD assez facilement:</p><div><strong>AuthorDao.java</strong></div><pre class="brush: java; title: ; notranslate">
// Create a new record and insert it into the database
TBookRecord book = create.newRecord(T_BOOK);
book.setTitle(&quot;My first book&quot;);
book.store();
// Update it with new values
book.setPublishedIn(2010);
book.store();
// Delete it
book.delete();
</pre><p>Vous trouverez tous les exemples cités ci-dessus sur le <a
title="site officiel" href="http://sourceforge.net/apps/trac/jooq/wiki/Examples">site officiel</a>.</p><p>Plutôt sympa, ce framework démarre d&#8217;une idée intéressante en se situant entre les requêtes sql brutes via jdbc mais qui sont difficiles à maintenir et les <em>frameworks</em> tels que Hibernate ou iBatis, un peu trop haut niveau. Pour ne rien gâcher la roadmap du projet est visible ainsi que les tickets de bugs et l&#8217;avancement de chaque sprint, et bien que l&#8217;auteur soit seul sur ce projet, il le fait évoluer à un rythme soutenu.</p> ]]></content:encoded> <wfw:commentRss>http://blog.xebia.fr/2010/11/02/revue-de-presse-xebia-183/feed/</wfw:commentRss> <slash:comments>2</slash:comments> </item> <item><title>Revue de Presse Xebia</title><link>http://blog.xebia.fr/2010/09/21/revue-de-presse-xebia-177/</link> <comments>http://blog.xebia.fr/2010/09/21/revue-de-presse-xebia-177/#comments</comments> <pubDate>Tue, 21 Sep 2010 09:50:34 +0000</pubDate> <dc:creator>Xebia France</dc:creator> <category><![CDATA[Revue de presse]]></category> <category><![CDATA[BigMemory]]></category> <category><![CDATA[Eclipse]]></category> <category><![CDATA[estimation]]></category> <category><![CDATA[GWT]]></category> <category><![CDATA[Instantiation]]></category> <category><![CDATA[Mule ESB]]></category> <category><![CDATA[PostgreSQL]]></category> <category><![CDATA[Terracotta]]></category> <category><![CDATA[user story]]></category> <guid
isPermaLink="false">http://blog.xebia.fr/?p=5423</guid> <description><![CDATA[La revue de presse de l’actualité Java/J2EE hebdomadaire proposée par Xebia. Actualité éditeurs / SSII La diffusion des produits d&#8217;Instantiations par Google Avec BigMemory Terracotta se dote d&#8217;une mémoire d&#8217;éléphant PostgreSQL: version 9.0 finale Agilité Les problèmes d&#8217;estimation de la valeur métier SOA Sortie de Mule ESB 3 GA Actualité éditeurs / SSII La diffusion [...]]]></description> <content:encoded><![CDATA[<p><img
style="margin: 1em 1em 1em 1em; float: right;" src="http://blog.xebia.fr/wp-content/uploads/2007/06/revuedepresse.png" alt="Revue de Presse Xebia" /></p><p><em>La revue de presse de l’actualité Java/J2EE hebdomadaire proposée par Xebia.</em></p><p><strong>Actualité  éditeurs / SSII</strong></p><ul><li><a
href="http://blog.xebia.fr/2010/09/21/revue-de-presse-xebia-177/#LadiffusiondesproduitsdInstant">La diffusion des produits d&#8217;Instantiations par Google</a></li><li><a
href="http://blog.xebia.fr/2010/09/21/revue-de-presse-xebia-177/#AvecBigMemoryTerracottasedoted">Avec BigMemory Terracotta se dote d&#8217;une mémoire d&#8217;éléphant</a></li><li><a
href="http://blog.xebia.fr/2010/09/21/revue-de-presse-xebia-177/#PostgreSQLversionfinale">PostgreSQL: version 9.0 finale</a></li></ul><p><strong>Agilité</strong></p><ul><li><a
href="http://blog.xebia.fr/2010/09/21/revue-de-presse-xebia-177/#Lesproblmesdestimationdelavale">Les problèmes d&#8217;estimation de la valeur métier</a></li></ul><p><strong>SOA</strong></p><ul><li><a
href="http://blog.xebia.fr/2010/09/21/revue-de-presse-xebia-177/#SortiedeMuleESBGA">Sortie de Mule ESB 3 GA</a></li></ul><h3><a
name="ActualitditeursSSII"></a>Actualité  éditeurs / SSII</h3><h4><a
name="LadiffusiondesproduitsdInstant"></a>La diffusion des produits d&#8217;Instantiations par Google</h4><p>Dans les semaines qui ont suivi le rachat de la société Instantiations par Google début août, les produits phares de la start-up, comme GWT Designer, n&#8217;étaient plus accessibles. Comme on s&#8217;en doutait, Google <a
href="http://googlewebtoolkit.blogspot.com/2010/09/google-relaunches-instantiations.html">vient de remettre à disposition</a> ces outils, au détail prêt qu&#8217;ils sont désormais gratuits. On retrouve les plugins Eclipse suivant :</p><ul><li><a
title="GWT Designer" href="http://code.google.com/webtoolkit/tools/download-gwtdesigner.html">GWT Designer</a></li></ul><p>Ce plugin est un ensemble de fonctionnalités autour du framework Google Web Toolkit. Parmi ses avantages, on retrouve principalement le designer visuel permettant de concevoir rapidement des interfaces ou d&#8217;effectuer du reverse engineering sur un code existant et la génération automatique des services RPC.<br
/> L&#8217;acquisition de ce plugin marque un renforcement de l&#8217;offre RIA de Google, qui annonce travailler sur la fusion de GWT Designer avec GPE (Google Plugin Eclipse) et sur la prise en charge de l&#8217;UIBinding.</p><ul><li><a
title="CodePro AnalytiX" href="http://code.google.com/webtoolkit/tools/download-codepro.html">CodePro AnalytiX</a></li></ul><p>Ce plugin est un outil collaboratif autour de la qualité du code Java contenant pas moins de 700 métriques. Il propose des fonctions comme l&#8217;audit de code, la couverture de code, l&#8217;analyse des dépendances.</p><ul><li><a
title="WindowBuilder Pro" href="http://code.google.com/webtoolkit/tools/download-wbpro.html">WindowBuilder Pro</a></li></ul><p>Ce plugin est un designer visuel permettant de concevoir rapidement des interfaces graphiques dans diverses technologies comme Swing, SWT, RCP, XWT et GWT. Au même titre que GWT Designer, l&#8217;outil permet également d&#8217;effectuer du Reverse Engineering sur du code existant (écrit à la main ou généré par des outils comme JBuilder, NetBeans, etc.)</p><ul><li><a
title="WindowTester Pro" href="http://code.google.com/webtoolkit/tools/download-wintester.html">WindowTester Pro</a></li></ul><p>Ce plugin permet de réaliser des tests d&#8217;interfaces pour les frameworks SWT et Swing.</p><h4><a
name="AvecBigMemoryTerracottasedoted"></a>Avec BigMemory Terracotta se dote d&#8217;une mémoire d&#8217;éléphant</h4><p>La semaine dernière Terracotta <a
title="a annonc" href="http://www.terracotta.org/news/pr/2010-09-14-bigmemory">a annoncé</a> la sortie de BigMemory en version bêta. Cette nouvelle solution, qui se présente sous la forme d&#8217;un plugin d&#8217;Ehcache, permet d&#8217;utiliser un cache pouvant atteindre plusieurs centaines de Go d&#8217;espace (la compagnie annonce 350Go) sans souffrir des pauses dues au garbage collector.</p><p>Ce tour de force est possible en soustrayant cet espace à la <em>heap</em> de la jvm, Ehcache désigne cet espace <a
title="offheap store" href="http://ehcache.org/documentation/offheap_store.html">off-heap store</a>. Il s&#8217;agit d&#8217;une énorme HashMap qui n&#8217;est limitée que par la RAM du serveur. De plus la configuration semble assez facile, juste quelques lignes à ajouter dans la configuration de Ehcache. Bien sûr pour dépasser les 2 ou 4 Go il faudra un OS 64bits. Il est à noter par ailleurs que cette solution est 100% java. Parmi les  points forts mis en avant:</p><ul><li>d&#8217;un point de vue logistique, concentrer la gestion du cache sur une seule machine peut être plus simple à gérer qu&#8217;avec un cache distribué.</li><li>les projets confrontés à la taille maximum de leur JVM dépensent parfois beaucoup d&#8217;énergie afin de trouver les bonnes options pour limiter le garbage collector ou à trouver des dérivatifs, ici la question ne se pose plus.</li><li>les temps de réponse sont quasi constants, en partie parce que le garbage collector n&#8217;est pas concerné, ce qui permet d&#8217;avoir un SLA <em>prédictible</em>. Le <a
title="benchmark" href="http://ehcache.org/documentation/offheap_store.html#Performance_Comparisons">benchmark</a> d&#8217;Ehcache est assez évocateur à ce sujet.</li></ul><p>Parmi les bémols qui se sont exprimés, le billet sur ServerSide de <a
title="Joseph Ottinger" href="http://www.theserverside.com/report/What-Does-BigMemory-Mean-for-Terracotta">Joseph Ottinger</a>, employé de Gigaspaces (donc pas 100% objectif) et la <a
title="discussion" href="http://www.theserverside.com/discussions/thread.tss?thread_id=60933#339175">discussion</a> qu&#8217;il a engendré sont très instructifs. De façon abrégée, les points relevés:</p><ul><li>BigMemory <em>n&#8217;est qu&#8217;une</em> HashMap, lorsqu&#8217;on manipule autant de données il peut être nécessaire d&#8217;avoir un mécanisme de requête sur les clés.</li><li>Le garbage collector a ses vertus, lorsqu&#8217;il y a un fort ratio d&#8217;écritures et que les tailles des objets varient beaucoup on peut se trouver dans une situation où l&#8217;espace est très fragmenté ce qui ralentira les écritures.</li><li>Le monitoring de ce cache nécessitera d&#8217;autres outils que ceux utilisés habituellement pour surveiller l&#8217;efficacité du cache, rendant plus complexe leur utilisation.</li></ul><h4><a
name="PostgreSQLversionfinale"></a>PostgreSQL: version 9.0 finale</h4><p>En version bêta depuis avril, PostgreSQL <a
title="débarque" href="http://www.postgresql.org/about/news.1235">débarque</a> dans sa version finale 9.0. Souvent considérée comme &laquo;&nbsp;l&#8217;autre base de donnée open source&nbsp;&raquo;, PostgreSQL dispose pourtant de nombreuses qualités, que vient renforcer cette nouvelle version. Pendant la phase bêta, PostgreSQLFR <a
title="nous avait dcrit en dtails" href="http://blog.postgresql.fr/index.php?post/2010/06/16/Pr%C3%A9sentation-de-la-version-9.0-de-PostgreSQL2">nous avait décrit en détails</a> les 2 principales nouveautés, orientées réplication et répartition de la charge en lecture.</p><ul><li>Le <a
title="hot Standby" href="http://wiki.postgresql.org/wiki/Hot_Standby"><em>hot Standby</em></a>: des bases secondaires sont disponibles en lecture seule. La charge peut donc être répartie entre les bases.</li><li>La <a
title="streaming replication" href="http://wiki.postgresql.org/wiki/Streaming_Replication"><em>streaming replication</em></a>: les bases secondaires sont maintenues à jour en temps réel, grâce aux logs de la base principale.</li></ul><p>Ces 2 fonctionnalités justifient à elles seules le passage à la version supérieure. Il y en a bien sûr de nombreuses autres parmi lesquelles:</p><ul><li>des améliorations dans la gestion des droits qui peuvent être appliqués:<ul><li>sur les blobs</li><li>en groupe sur les schémas</li></ul></li><li>le support de Python 3 en plus de nombreuses modifications dans la gestion des langages des procédures stockées</li></ul><p>La liste complète des ajouts de cette version ainsi que des incompatibilités et informations de migration est disponible dans <a
title="les release notes" href="http://www.postgresql.org/docs/9.0/static/release-9-0">les <em>release notes</em></a>. Elle était déjà <em>Open Source friendly</em>, surtout après l&#8217;acquisition de MySQL par Oracle, voila que PostgreSQL va à n&#8217;en pas douter, avec cette nouvelle version, renforcer sa position dans les entreprises.</p><h3><a
name="Agilit"></a>Agilité</h3><h4><a
name="Lesproblmesdestimationdelavale"></a>Les problèmes d&#8217;estimation de la valeur métier</h4><p><a
title="Mike Cohn" href="http://blog.mountaingoatsoftware.com/the-problems-with-estimating-business-value">Mike Cohn</a>, personnalité éminente dans la sphère agiliste et fondateur de l&#8217;<a
title="Agile Alliance" href="http://www.agilealliance.org/">Agile Alliance</a>, nous fait part des difficultés à estimer la valeur métier des fonctionnalités développées dans un projet. En général, on estime la valeur métier pour deux raisons:</p><p>- Estimer la valeur ajoutée pour la société au cours des sprints (sous forme de graphique)<br
/> - Prioriser les <em>user stories</em> de manière plus efficace en comparant la valeur métier au coût de chaque <em>story</em>.</p><p>Vu que les <em>user stories</em> sont censés être des petits morceaux de fonctionnalités, il est très difficile de les estimer une à une puisqu&#8217;elles sont étroitement liées. Leur estimation s&#8217;apparente à la méthode des <a
title="prix hdoniques" href="http://www.jourdan.ens.fr/~carbonnier/env/environnement10.pdf">prix hédoniques</a> (il va falloir ressortir les livres d&#8217;économie). Cette méthode est notamment utilisée pour évaluer les biens environnementaux et se base sur le principe que le prix d&#8217;un bien dépend de ses caractéristiques et des services qu&#8217;il rend.</p><p>En faisant des calculs de retour sur investissement, on peut être amené à comparer la valeur métier avec le coût de la <em>story</em>. Or, le coût d&#8217;une petite <em>story</em> est souvent dur à déterminer sans prendre en compte les autres <em>stories</em> (ex: une fonctionnalité d&#8217;architecture). Cela révèle tout le problème des coûts partagés.</p><p>Un autre constat que l&#8217;on peut faire est que la valeur de certaines <em>stories</em> peut être considérée comme la valeur totale de la fonctionnalité regroupant des <em>stories</em>. Mike reprend l&#8217;exemple de la valeur d&#8217;une roue alors que l&#8217;on veut fabriquer une voiture: Si on considère que l&#8217;on ne veut pas cette voiture sans cette roue, alors la valeur métier de la roue vaut la totalité de la voiture.</p><p>Mike nous a exposé tout le problème de l&#8217;estimation de la valeur métier sans toutefois nous proposer de méthode miracle. Celui-ci conclut en proposant d&#8217;estimer par groupe de <em>user stories</em> afin d&#8217;obtenir des valeurs plus réalistes et de permettre d&#8217;effectuer des analyses plus significatives.</p><h3><a
name="SOA"></a>SOA</h3><h4><a
name="SortiedeMuleESBGA"></a>Sortie de Mule ESB 3 GA</h4><p>Le 15 septembre dernier, Ross Masson, CTO de MuleSoft, a officiellement annoncé la sortie de Mule ESB 3 en version GA. Cette 3ème version de l&#8217;ESB star, dont la première Milestone remonte à plus d&#8217;un an, était très attendue par la communauté Open Source, ainsi que par les utilisateurs, en raison des nombreuses nouveautés qui l&#8217;accompagnent.</p><p>Parmi les principales fonctionnalités se trouve le tout nouveau module Cloud Connect, qui regroupe un ensemble de connecteurs dédiés à l&#8217;intégration avec les applications Cloud, SaaS, ainsi qu&#8217;avec les Médias sociaux :</p><ul><li>Connecteurs Cloud clef-en-main dédiés aux fournisseurs de service Cloud populaires tels que Amazon Web Services et Facebook.</li><li>Support natif de REST, facilitant le data-binding et la consomation de services RESTful s&#8217;appuyant notamment sur JAX-RS.</li><li>Intégration avec les framework AJAX / JavaScript, offrant la possibilité d&#8217;interagir avec les services de l&#8217;ESB directement depuis son navigateur à l&#8217;aide de connecteurs dédiés à chaque librairie JavaScript (MooTools, ExtJS, JQuery, Dojo).</li><li>Utilisation simplifiée d&#8217;ATOM et de RSS, pour la consommation et la création de flux. Il est notamment possible de déclencher des évènements en réaction à un flux.</li><li>Support de JSON, à travers l&#8217;utilisation de nouveaux transformateurs.</li></ul><p>Cette nouvelle version de Mule ESB introduit également une nouvelle gestion de la configuration basée sur les patterns, simplifiant l&#8217;exécution des tâches courantes telles que la publication de service REST, la création de passerelles transactionnelles ou la configuration de proxy de Services Web.</p><p>Par ailleurs, Mule ESB 3 supporte maintenant les annotations, simplifiant encore un peu la configuration de ces services. Parmi ces annotations, @Schedule offre la possibilité de planifier simplement l&#8217;exécution d&#8217;une méthode, et @Transformer, permet d&#8217;appliquer des transformations directement sur les messages reçus.</p><p>Du côté du déploiement, Mule ESB 3 est maintenant capable de déployer les nouveaux services à chaud, sans avoir à redémarrer son application. Basé sur une architecture OSGI, Mule 3 offre une meilleure isolation, permettant aux services d&#8217;être modifiés lors de l&#8217;exécution sans impact sur les autres services.</p><p>A noter parmi les autres changements :</p><ul><li>Une intégration avec jBPM améliorée permettant d&#8217;envoyer ou recevoir des messages vers et à partir d&#8217;un processus en cours.</li><li>La possibilité de définir des <em>endpoints</em> dynamiques à l&#8217;aide d&#8217;expressions (Expression Language).</li><li>Un mécanisme de transformations automatiques, s&#8217;appuyant sur les types Mime des messages.</li></ul><p>Cette nouvelle version de Mule ESB apporte un très grand nombre de nouveautés, qui ont toutes vocation à en simplifier l&#8217;utilisation. La simplicité semble donc être le maître mot de cette 3ème mouture de l&#8217;ESB, qui va certainement conserver sa qualification de &laquo;&nbsp;couteau suisse&nbsp;&raquo; dans le domaine de l&#8217;intégration et des architectures SOA. En outre, Mule 3 sait également faire la part belle aux nouvelles exigences des entreprises, en s&#8217;ouvrant aux applications Cloud et aux Médias sociaux.</p><p>Pour plus d&#8217;informations sur Mule ESB 3 :</p><ul><li><a
title="Mule 30 Getting Started Guide" href="http://www.mulesoft.org/documentation/display/MULE3INTRO">Mule 3.0 Getting Started Guide</a></li><li><a
title="Mule 300 Release Notes" href="http://www.mulesoft.org/documentation/display/MULE/Mule+3+Release+Notes">Mule 3.0.0 Release Notes</a></li></ul> ]]></content:encoded> <wfw:commentRss>http://blog.xebia.fr/2010/09/21/revue-de-presse-xebia-177/feed/</wfw:commentRss> <slash:comments>3</slash:comments> </item> <item><title>Revue de Presse Xebia</title><link>http://blog.xebia.fr/2010/09/07/revue-de-presse-xebia-175/</link> <comments>http://blog.xebia.fr/2010/09/07/revue-de-presse-xebia-175/#comments</comments> <pubDate>Tue, 07 Sep 2010 10:00:33 +0000</pubDate> <dc:creator>Xebia France</dc:creator> <category><![CDATA[Revue de presse]]></category> <category><![CDATA[cloud]]></category> <category><![CDATA[GWT]]></category> <category><![CDATA[HornetQ]]></category> <category><![CDATA[Hudson]]></category> <category><![CDATA[JBoss]]></category> <category><![CDATA[JRuby]]></category> <category><![CDATA[JUG]]></category> <category><![CDATA[Maven]]></category> <category><![CDATA[OAuth]]></category> <category><![CDATA[RoR]]></category> <category><![CDATA[Saas]]></category> <category><![CDATA[Spring]]></category> <category><![CDATA[Twitter]]></category> <guid
isPermaLink="false">http://blog.xebia.fr/?p=5326</guid> <description><![CDATA[La revue de presse de l’actualité Java/J2EE hebdomadaire proposée par Xebia. Actualité éditeurs / SSII Cloudbees propose Hudson en Software as a Service JBoss met en avant les performances de HornetQ SOA Lancement de vFabric au VMworld 2010 : Spring in the cloud Le coin de la technique GWT 2.1 sera Maven compliant OAuth : [...]]]></description> <content:encoded><![CDATA[<p><img
style="margin: 1em 1em 1em 1em; float: right;" src="http://blog.xebia.fr/wp-content/uploads/2007/06/revuedepresse.png" alt="Revue de Presse Xebia" /></p><p><em>La revue de presse de l’actualité Java/J2EE hebdomadaire proposée par Xebia.</em></p><p><strong>Actualité  éditeurs / SSII</strong></p><ul><li><a
href="http://blog.xebia.fr/2010/09/07/revue-de-presse-xebia-175/#CloudbeesproposeHudsonenSoftwa">Cloudbees propose Hudson en Software as a Service</a></li><li><a
href="http://blog.xebia.fr/2010/09/07/revue-de-presse-xebia-175/#JBossmetenavantlesperformances">JBoss met en avant les performances de HornetQ</a></li></ul><p><strong>SOA</strong></p><ul><li><a
href="http://blog.xebia.fr/2010/09/07/revue-de-presse-xebia-175/#LancementdevFabricauVMworldSpr">Lancement de vFabric au VMworld 2010 : Spring in the cloud</a></li></ul><p><strong>Le coin de la  technique</strong></p><ul><li><a
href="http://blog.xebia.fr/2010/09/07/revue-de-presse-xebia-175/#GWTseraMavencompliant">GWT 2.1 sera Maven compliant</a></li><li><a
href="http://blog.xebia.fr/2010/09/07/revue-de-presse-xebia-175/#OAuthpasleprotocoledauthentifi">OAuth : pas le protocole d&#8217;authentification ultime ?</a></li><li><a
href="http://blog.xebia.fr/2010/09/07/revue-de-presse-xebia-175/#RubyonRailsestsortiduboisJRuby">Ruby on Rails 3 est sorti du bois, JRuby l&#8217;attendait au bar</a></li></ul><p><strong>Evènements  de notre communauté en France et à l&#8217;étranger</strong></p><ul><li><a
href="http://blog.xebia.fr/2010/09/07/revue-de-presse-xebia-175/#JugSummerCampLaRochelle">Jug Summer Camp 2010 &#8211; La Rochelle</a></li></ul><h3><a
name="ActualitditeursSSII"></a>Actualité  éditeurs / SSII</h3><h4><a
name="CloudbeesproposeHudsonenSoftwa"></a>Cloudbees propose Hudson en Software as a Service</h4><p>Le Software as a Service fait beaucoup de bruit, mais peu d&#8217;initiatives tangibles émergent. C&#8217;est peut être à cause de la complexité de nos logiciels, ou bien à cause du manque de maitrise qui en résulte, que nous hésitons à les déporter sur un environnement de type cloud. Alors, pourquoi ne pas commencer petit, avec un logiciel que nous maitrisons parfaitement ? Plutôt que d&#8217;arriver chez vos clients et de systématiquement reconstruire une plateforme d&#8217;intégration continue, Cloudbees propose Hudson &laquo;&nbsp;à la demande&nbsp;&raquo; (_HaaS_ Hudson as a Service). Avec un dimensionnement automatique du nombre d&#8217;agents nécessaires pour effectuer l&#8217;ensemble des taches de votre build, Cloubees offre une réelle parallélisation des traitements, et donc des builds plus rapides. Ant, Maven et le Jdk sont disponibles dans une grande variété de versions. Et, petit plus appréciable, Cloudbees propose &laquo;&nbsp;gratuitement&nbsp;&raquo; des repositories GIT, SVN et un dépôt Maven privés.<br
/> La facturation se décompose en deux parties :</p><ul><li>un partie fixe, de 25$ à 35$ par mois, en fonction du nombre de user (5 ou 10).</li><li>une partie variable, par agent et par minute d&#8217;utilisation (0,6$ par heure et par agent).</li></ul><p>Reste à sortir les calculatrices, pour savoir si dans votre cas mieux vaut mobiliser un master et plusieurs slaves Hudson dans votre propre infrastructure, ou bien si le tarif agressif de ce nouveau mode d&#8217;intégration continue vous décidera à déposer vos sources sur le <em>cloud</em>.  Pour tester ce nouveau service, <a
title="Cloudbess propose une version dvaluation de 7 jours" href="http://cloudbees.com/dev-pricing.cb">Cloudbess propose une version d&#8217;évaluation de 7 jours</a>, incluant 7 heures de build.</p><h4><a
name="JBossmetenavantlesperformances"></a>JBoss met en avant les performances de HornetQ</h4><p>Un peu plus d&#8217;un an après la <a
title="sortie officielle" href="http://blog.xebia.fr/2009/08/31/revue-de-presse-xebia-124/#JBossHornetQ">sortie officielle</a> d&#8217;HornetQ, sur les fondations de JBoss Messaging, RedHat tente de prouver sa maturité et son avance sur d&#8217;autres produits du marché. Un <a
title="benchmark" href="https://community.jboss.org/servlet/JiveServlet/download/15777-7-16513/JMS_Market_Throughput_Comparison.pdf">benchmark</a>, proposé par eux-mêmes, compare les produits suivants:</p><ul><li>HornetQ 2.1.1 final</li><li>ActiveMQ 5.3.2 GA</li><li>SwiftMQ 7.6</li><li>OpenMQ 4.4</li><li>d&#8217;autres produits mais anonymes</li></ul><p>Les scénarios choisis suivent ces critères:</p><ul><li>le nombre d&#8217;acteurs: d&#8217;un producteur et un consommateur  (1/1) jusqu&#8217;à un scénario avec 40 acteurs de chaque côté.</li><li>la taille des messages allant de 12 bytes à 1k byte.</li><li>de type publish/subscribe ou point-à-point</li><li>la persistance ou non des messages</li><li>la persistance transactionnelle ou non</li></ul><p>Sans trop de surprises, HornetQ s&#8217;en sort très bien au niveau des résultats, ActiveMQ trainant beaucoup la patte, même face à d&#8217;autre concurrents. Bien que forcément partial, on peut cependant dégager quelques remarques intéressantes sur les points forts de HornetQ:</p><ul><li>le MoM devance de loin ses concurrents sur le transfert de petits messages non persistés</li><li>la différence est moins grande pour le transfert de messages non persistés plus gros (1k), et se fait parfois même dépasser</li><li>la différence est à nouveau grande dans les scénarios de persistance</li></ul><p>HornetQ est capable d&#8217;utiliser un mode asynchrone pour l&#8217;écriture des fichiers à condition d&#8217;être sur une distribution particulière de linux. Cette option n&#8217;est pas spécifiée dans le benchmark et donc ne doit pas être utilisée, mais une précision serait la bienvenue, histoire d&#8217;être sûr.</p><p>Les benchmarks de ce type sont souvent sujet à polémiques et celui-ci <a
title="en fait partie" href="http://www.theserverside.com/discussions/thread.tss?thread_id=60827">en fait partie</a>. Les scénarios sont souvent trop simples, chaque éditeur a ses options très spécifiques à tel cas d&#8217;utilisation. Néanmoins on peut lire entre les lignes les points forts et les points faibles et ensuite à chacun de se faire une opinion.</p><h3><a
name="SOA"></a>SOA</h3><h4><a
name="LancementdevFabricauVMworldSpr"></a>Lancement de vFabric au VMworld 2010 : Spring in the cloud</h4><p>La semaine dernière, VMWare était au coeur de l&#8217;actualité avec l&#8217;évènement <a
title="VMworld" href="http://www.vmworld.com/index.jspa">VMworld</a> qui a été le théâtre de plusieurs <a
title="annonces" href="http://www.vmware.com/next-decade/">annonces</a> dont celle de <a
title="VFabric" href="http://www.springsource.com/products/cloud-application-platform">VFabric</a>.<br
/> VMWare souhaite pousser les applications dans le Cloud et il a rassemblé sous le nom VFabric, les différents éléments de sa plateforme pour le développement et l&#8217;exploitation d&#8217;applications cloudifiées.<br
/> L&#8217;annonce est relayée sur le <a
title="blog" href="http://blog.springsource.com/2010/08/31/cloud-platform/">blog</a> de Rod Johnson qui nous donne sa vision de cette nouvelle plateforme. SpringSource qui s&#8217;est fait connaitre grâce au framework Spring dispose maintenant d&#8217;un portefeuille de technologies conséquent :</p><ul><li>son serveur d&#8217;application <a
title="tcServer" href="http://www.springsource.com/products/tcserver">tcServer</a> (reposant sur Tomcat),</li><li>le datagrid <a
title="GemFire" href="http://www.springsource.com/products/data-management">GemFire</a>,</li><li>le serveur web et le load balancer de la solution <a
title="Enterprise Ready Server" href="http://www.springsource.com/products/apache-web-server">Enterprise Ready Server</a> (basé sur le serveur web Apache),</li><li>la solution de monitoring <a
title="Hyperic" href="http://www.springsource.com/products/systems-management">Hyperic</a>,</li><li>le système de messaging <a
title="RabbitMQ" href="http://www.springsource.com/products/messaging">RabbitMQ</a>.</li></ul><p>Ces différentes technologies sont associées aux solutions de virtualisation de VMWare pour former leur boîte à outils du cloud computing VFabric.</p><p>VMWare et SpringSource continuent donc sur la route initiée il y a un peu plus d&#8217;un an par le rachat de SpringSource par VMware (dont nous vous parlions <a
title="ici" href="http://blog.xebia.fr/2009/08/17/pourquoi-vmware-springsource-virtualisation-materielle-vs-cloud/">ici</a>) et le rachat de CloudFoundry (<a
title="ici" href="http://blog.xebia.fr/2009/08/19/java-platform-as-a-service-springsource-accelere/">ici</a> pour plus d&#8217;informations) avec pour but que le cloud soit l&#8217;infrastructure d&#8217;exécution des applications informatiques de demain.</p><h3><a
name="Lecoindelatechnique"></a>Le coin de la  technique</h3><h4><a
name="GWTseraMavencompliant"></a>GWT 2.1 sera Maven compliant</h4><p>Google depuis quelques mois fait de gros efforts pour rendre leurs GWT et AppEngine plus <em>Maven-friendly</em>. L&#8217;arborescence assez spécifique de ces projets obligeait jusqu&#8217;à maintenant de se contenter de solutions intermédiaires. Nicolas De Loof nous <a
title="annonce" href="http://blog.loof.fr/2010/09/gwt-21-will-be-maven-compliant.html">annonce</a> sur son blog l&#8217;arrivée d&#8217;une nouvelle version compatible entièrement avec la future version 2.1 de GWT. Par exemple une option <code>-maven</code> du script <code>webAppCreator</code> permettra de construire le fichier selon les conventions Maven.</p><p>Une des plus grosses difficultés provient des changements parfois assez importants d&#8217;une version à une autre de GWT. Or le plugin actuellement est maintenu de sorte qu&#8217;il soit compatible avec toutes les anciennes SDK. Nicolas De Loof propose à présent que chaque nouvelle version du plugin soit callée sur celle de GWT. Si vous êtes d&#8217;accord avec ce principe vous pouvez voter <a
title="ici" href="http://markmail.org/search/?q=list:org.codehaus.mojo.dev#query:list%3Aorg.codehaus.mojo.dev+page:1+mid:vdxubybus3tfii6e+state:results">ici</a>.</p><h4><a
name="OAuthpasleprotocoledauthentifi"></a>OAuth : pas le protocole d&#8217;authentification ultime ?</h4><p>En 2007, suite à des réflexions sur le moyen de déléguer à des API l&#8217;accès à des ressources privées, les créateurs du site Ma.gnolia finirent par inventer <a
title="OAuth" href="http://en.wikipedia.org/wiki/OAuth">OAuth</a>, un protocole ouvert destiné à remplir cette fonction. Beaucoup ont alors cru voir arriver le protocole d&#8217;authentification ultime. Mais si la sécurité informatique était simple, cela se saurait !</p><p>Jusqu&#8217;à il y a peu, les applications clientes de Twitter se connectaient à celui-ci en demandant simplement leur mot de passe et login aux utilisateurs. Mais cela représentait un risque: rien ne dit qu&#8217;une application à laquelle on donne ses codes d&#8217;accès ne va pas les transmettre à quelqu&#8217;un de mal intentionné qui pourrait en faire mauvais usage ou tenter de réutiliser votre mot de passe sur d&#8217;autres sites (au cas ou vous feriez partie des nombreuses personnes qui réutilisent le même mot de passe pour de nombreux services, ce qui n&#8217;est bien sûr pas votre cas <img
src='http://blog.xebia.fr/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> ). Mais récemment, Twitter a fermé son accès <em>basic auth</em> et oblige les applications à utiliser le protocole OAuth. Et comme le raconte <a
title="Ryan Paul" href="http://arstechnica.com/author/ryan-paul/">Ryan Paul</a>, le développeur du client de microblogging Gwibber <a
title="sur Ars Technica" href="http://arstechnica.com/security/guides/2010/09/twitter-a-case-study-on-how-to-do-oauth-wrong.ars">sur Ars Technica</a> cela ne va pas sans poser problème.  Par exemple pour les applications <em>standalone</em>, les clefs requises par le protocole doivent se trouver dans le programme. Or toute donnée informatique, même bien obfusquée, peut se retrouver (avec un peu de travail ou parfois même un simple éditeur héxa !). Ainsi les clefs qui sont sensées garantir l&#8217;identité de l&#8217;application appelante ne garantissent plus rien. Ryan Paul a lui même facilement fait passer auprès de Twitter sa propre application pour le client Twitter officiel. Lorsque l&#8217;on sait que Twitter menace de désactiver certaines applications en cas d&#8217;abus ou si leur clefs sont compromises, on peut logiquement s&#8217;attendre à voir arriver des attaques visant à désactiver les applications des concurrents.</p><p>Un autre cas problématique est la position des nombreux clients Twitter Open-Source. Comment garder ses clefs secrètes tout en publiant son code source ?! Epineux problème !</p><p>Bref, il semble que la question, loin d&#8217;être simple, ne soit pas prête d&#8217;être réglée. C&#8217;est pour cela qu&#8217;elle mérite que l&#8217;on s&#8217;y intéresse de prés, au travers <a
title="du long article" href="http://arstechnica.com/security/guides/2010/09/twitter-a-case-study-on-how-to-do-oauth-wrong.ars">du long article</a> de Ryan Paul qui passe en revue les différents problèmes, dont certains spécifiques à l&#8217;implémentation OAuth de Twitter. Et dans l&#8217;état actuel des choses, cette dernière semble plus destiné à permettre les interactions de serveur (client) à serveur (Twitter) plûtot que d&#8217;application <em>standalone</em> à serveur (Twitter).</p><h4><a
name="RubyonRailsestsortiduboisJRuby"></a>Ruby on Rails 3 est sorti du bois, JRuby l&#8217;attendait au bar</h4><p>Avis au amateurs de Ruby et de JRuby ! Le célèbre framework web le plus productif au monde est sorti dans sa version 3.0. La communauté Ruby vibre déjà et les observateurs externes se demandent si le buzz va devenir aussi gros que lors de la sortie de la 1.0 en 2006. Parmi les nouveautés, on peut citer :</p><ul><li>intégration d&#8217;un nouveau moteur de génération de requêtes SQL : <a
title="ARel" href="http://github.com/brynary/arel">ARel</a>.</li><li>refonte du moteur de routing url -&gt; contrôleur pour une approche plus REST.</li><li>refonte des entrailles pour passer d&#8217;un code monolithique à du tout modulaire.</li><li>nouvelle API de plugins</li></ul><p>Le point important pour nous autre du monde Java, c&#8217;est que l&#8217;équipe JRuby a travaillé, en parallèle de Rails, à intégrer toutes les nouveautés. JRuby 1.5 supporte Rails 3 depuis sa version bêta de février, mais pour l&#8217;instant il n&#8217;y a que peu de retours JRuby + Rails 3.0, donc si le coeur vous en dit, testez et remontez du feedback.</p><ul><li><a
title="Lannonce officielle" href="http://weblog.rubyonrails.org/2010/8/29/rails-3-0-it-s-done">L&#8217;annonce officielle</a></li></ul><h3><a
name="EvnementsdenotrecommunautenFra"></a>Evènements  de notre communauté en France et à l&#8217;étranger</h3><h4><a
name="JugSummerCampLaRochelle"></a>Jug Summer Camp 2010 &#8211; La Rochelle</h4><p>Le 10 Septembre aura lieu à la Rochelle le Jug Summer Camp. Il s&#8217;agit de la conférence Java de la rentrée qui s&#8217;étale sur toute la journée du vendredi.<br
/> Le <a
title="programme" href="http://sites.google.com/site/jugsummercamp/programmation">programme</a> est bien fourni, et les sujets tourneront principalement autour de Java EE 6 (avec GlassFish, JPA 2, JSF 2 &#8230;) et n&#8217;oublions pas Maven 3 avec Nicolas De Loof et Spring 3 avec Julien Dubois. Le planning est disponible <a
title="ici" href="http://sites.google.com/site/jugsummercamp/planning">ici</a> et les inscriptions sont maintenant closes. Vous n&#8217;avez pas pu vous inscrire mais vous voulez quand même savoir ce qui s&#8217;est passé ? Alors pensez au blog des <a
title="Duchess France" href="http://jduchess.org/duchess-france/">Duchess France</a> qui seront présentes durant cette journée et couvriront l&#8217;évènement. Merci à Orianne Tisseuil et Jérôme Petit, JUG Leader du Poitou Charentes JUG, pour l&#8217;organisation de cet évènement.</p> ]]></content:encoded> <wfw:commentRss>http://blog.xebia.fr/2010/09/07/revue-de-presse-xebia-175/feed/</wfw:commentRss> <slash:comments>0</slash:comments> </item> <item><title>Revue de Presse Xebia</title><link>http://blog.xebia.fr/2009/12/14/revue-de-presse-xebia-138/</link> <comments>http://blog.xebia.fr/2009/12/14/revue-de-presse-xebia-138/#comments</comments> <pubDate>Mon, 14 Dec 2009 18:48:42 +0000</pubDate> <dc:creator>Xebia France</dc:creator> <category><![CDATA[Revue de presse]]></category> <category><![CDATA[Eclipse]]></category> <category><![CDATA[ECMAScript]]></category> <category><![CDATA[FlexPMD]]></category> <category><![CDATA[GlassFish]]></category> <category><![CDATA[GWT]]></category> <category><![CDATA[IDEA]]></category> <category><![CDATA[Java / JEE]]></category> <category><![CDATA[Java EE 6]]></category> <category><![CDATA[Netbeans]]></category> <category><![CDATA[OpenJDK]]></category> <category><![CDATA[Quartz]]></category> <category><![CDATA[RIA]]></category> <category><![CDATA[Spring Surf]]></category> <category><![CDATA[Terracota]]></category> <guid
isPermaLink="false">http://blog.xebia.fr/?p=3545</guid> <description><![CDATA[La revue de presse de l&#8217;actualité Java/J2EE hebdomadaire proposée par Xebia. Actualité éditeurs / SSII Java EE 6, Glassfish v3 et NetBeans 6.8 dans les bacs Terracota et Quartz : un premier produit disponible. RIA GWT 2.0 est (enfin) là ! Sortie de la release de FlexPMD 1.0 Le coin de la technique Le projet [...]]]></description> <content:encoded><![CDATA[<p><img
src="http://blog.xebia.fr/wp-content/uploads/2007/06/revuedepresse.png" alt="Revue de Presse Xebia" style="margin: 1em 1em 1em 1em; float: right;" /><br
/> <em>La revue de presse de l&#8217;actualité Java/J2EE hebdomadaire proposée par Xebia.</em></p><p><strong>Actualité éditeurs / SSII</strong></p><ul><li><a
href="http://blog.xebia.fr/2009/12/14/revue-de-presse-xebia-138/#JavaEEGlassfishvetNetBeansdans">Java EE 6, Glassfish v3 et NetBeans 6.8 dans les bacs</a></li><li><a
href="http://blog.xebia.fr/2009/12/14/revue-de-presse-xebia-138/#TerracotaetQuartzunpremierprod">Terracota et Quartz : un premier produit disponible.</a></li></ul><p><strong>RIA</strong></p><ul><li><a
href="http://blog.xebia.fr/2009/12/14/revue-de-presse-xebia-138/#GWTestenfinl">GWT 2.0 est (enfin) là !</a></li><li><a
href="http://blog.xebia.fr/2009/12/14/revue-de-presse-xebia-138/#SortiedelareleasedeFlexPMD">Sortie de la release de FlexPMD 1.0</a></li></ul><p><strong>Le coin de la technique</strong></p><ul><li><a
href="http://blog.xebia.fr/2009/12/14/revue-de-presse-xebia-138/#LeprojetLambdaapparatauseindOp">Le projet Lambda apparaît au sein d&#8217;OpenJDK</a></li><li><a
href="http://blog.xebia.fr/2009/12/14/revue-de-presse-xebia-138/#NouvelleversiondumeilleurIDEJa">Nouvelle version du meilleur IDE Java du monde&#8230;</a></li><li><a
href="http://blog.xebia.fr/2009/12/14/revue-de-presse-xebia-138/#ansdattenteetECMAScript">10 ans d&#8217;attente et ECMAScript 5</a></li><li><a
href="http://blog.xebia.fr/2009/12/14/revue-de-presse-xebia-138/#NouvelleMilestonedEclipseHelio">Nouvelle Milestone d&#8217;Eclipse Helios</a></li><li><a
href="http://blog.xebia.fr/2009/12/14/revue-de-presse-xebia-138/#SpringSurflestudiodecompositio">Spring Surf &#8211; le studio de composition de pages pour Spring MVC</a></li></ul><h3><a
name="ActualitditeursSSII"></a>Actualité éditeurs / SSII</h3><h4><a
name="JavaEEGlassfishvetNetBeansdans"></a>Java EE 6, Glassfish v3 et NetBeans 6.8 dans les bacs</h4><p>C&#8217;est la fin de longs mois d&#8217;attente, Sun nous livre <em>finalement</em> sa version 6 de la plateforme Java EE dont nous parlons depuis déjà longtemps sur le blog. Comme promis, c&#8217;est GlassFish v3 qui sert d&#8217;implémentation de référence à JavaEE 6. Le tout est fourni prêt à l&#8217;emploi : le SDK, l&#8217;implémentation serveur et l&#8217;IDE compatible. Vous pouvez donc d&#8217;ores et déjà essayer les EJB lite, les Servlet 3.0, la validation de Bean, l&#8217;injection de dépendance et bien sûr, la toute nouvelle JSF 2 &laquo;&nbsp;tant attendue&nbsp;&raquo;.<br
/> Voilà un beau cadeau de Noël que Sun nous offre, d&#8217;autant que la sortie de GlassFish v3 s&#8217;accompagne des plugins adéquats pour Eclipse et IntelliJ. Nous souhaitons longue vie et grand succès à cette nouvelle plateforme JavaEE.<br
/> Pour plus d&#8217;information sur le sujet:</p><ul><li><a
href="http://blog.xebia.fr/2009/11/25/devoxx-jour-3-jee6/" title="JavaEE6  Devoxx" >JavaEE6 à Devoxx</a></li><li><a
href="http://www.sun.com/featured-articles/2009-1210/feature/index.jsp" title="La news sur le site de Sun" >La news sur le site de Sun</a></li><li><a
href="http://www.infoq.com/news/2009/12/ee6qanda" title="Inteview de Roberto Chinnici sur InfoQ" >Inteview de Roberto Chinnici sur InfoQ</a></li><li><a
href="http://www.theserverside.com/news/thread.tss?thread_id=58858&#038;utm_source=feedburner&#038;utm_medium=feed&#038;utm_campaign=Feed:+techtarget/tsscom/home+(TheServerSide.com:+Your+Enterprise+Java+Community)&#038;utm_content=Google+Feedfetcher" title="Lannonce sur The Server Side" >L&#8217;annonce sur The Server Side</a></li></ul><h4><a
name="TerracotaetQuartzunpremierprod"></a>Terracota et Quartz : un premier produit disponible.</h4><p>Un peu moins d&#8217;un mois après <a
href="http://blog.xebia.fr/2009/11/23/revue-de-presse-xebia-135/#TerracottaafaimdOpenSourceacqu" title="le rachat de Quartz par Terracota" >le rachat de Quartz par Terracota</a>, l&#8217;éditeur met en application son acquisition, en proposant <a
href="http://www.terracotta.org/quartz/get-started" title="Terracotta Quartz EX" >Terracotta Quartz EX</a>, un Job Store pour Quartz. Cette nouveauté permet de développer une plate forme de gestion de charge et de distribution des traitements basée sur une gestion des jobs en mémoire.<br
/> Pour ceux qui utilisaient Quartz de manière non clusterisée, <a
href="http://www.terracotta.org/quartz/index-variation2" title="une nouvelle version de Quartz" >une nouvelle version de Quartz</a> permet d&#8217;utiliser une instance de serveur Terracota comme JobStore. Cela procure, <em>automatiquement</em>, à la fois une solution de persistance et de haute disponibilité pour la programmation des jobs. Cette implémentation repose sur le lock manager et la plate forme haute-dispo de Terracotta (et ne nécessite donc pas de base de données).<br
/> Pour ceux qui utilisaient déjà Quartz de manière clusterisée, à l&#8217;aide d&#8217;une base de données centrale, le nouveau <em>Terracotta Job Store</em> permet de continuer à utiliser le mode clusterisé, sans l&#8217;overhead dû à la base de données.</p><p>A n&#8217;en pas douter, comme pour EHCache, aquis il y a quelques temps déjà, Terracotta va rapidement proposer de nouvelles applications permettant de profiter au mieux des interactions possibles entre un <em>scheduler</em> et une plate-forme clusterisée.</p><p>Au passage, Quartz a subi un lifting afin que le <em>framework</em> respecte au mieux les normes Maven et s&#8217;intègre plus facile à Hudson.</p><p><a
href="http://www.infoq.com/news/2009/12/terracotta-quartz" title="Via infoQ" >Via infoQ</a></p><h3><a
name="RIA"></a>RIA</h3><h4><a
name="GWTestenfinl"></a>GWT 2.0 est (enfin) là !</h4><p>L&#8217;une des sensations de la semaine dernière n&#8217;est autre que la sortie en release finale de <a
href="http://googlewebtoolkit.blogspot.com/2009/12/introducing-google-web-toolkit-20-now.html" title="GWT en version 2.0" >GWT en version 2.0</a>, quelques mois seulement après la <a
href="http://blog.xebia.fr/2009/07/20/revue-de-presse-xebia-118/#GWTpourlesnouveauxnavigateurs" title="mise  jour 17" >mise à jour 1.7</a> qui ne faisait que corriger GWT pour les navigateurs récents.</p><p>Nous avons déjà bien couvert le sujet dans nos précédentes revues de presse, que ce soit pour la <a
href="http://blog.xebia.fr/2009/10/19/revue-de-presse-xebia-130/#GWTMilestone" title="Milestone 1" >Milestone 1</a> ou la <a
href="http://blog.xebia.fr/2009/11/23/revue-de-presse-xebia-135/#GWTversionRC" title="Release Candidate 1" >Release Candidate 1</a>. Rien de nouveau donc si vous nous suivez régulièrement. On retrouve ainsi le <em>development mode</em>, le <em>code splitting</em>, l&#8217;intégration <code>HTMLUnit</code>, l&#8217;<code>UIBinder</code>, le <code>RunAsync</code> et bien d&#8217;autres. Le détail complet des différentes nouveautés se trouve sur cette <a
href="http://googlewebtoolkit.blogspot.com/2009/12/introducing-google-web-toolkit-20-now.html" title="page" >page</a>.</p><p>A noter aussi l&#8217;arrivée avec GWT 2.0 de <a
href="http://code.google.com/intl/fr-FR/webtoolkit/speedtracer/" title="Speed Tracer" >Speed Tracer</a>, un outil vous permettant d&#8217;analyser votre application et ainsi de repérer d&#8217;éventuels problèmes de performances.<br
/> Le plugin Eclipse a lui aussi été mis à jour et possède désormais de nouvelles fonctionnalités spécifiques à GWT 2.0, comme le support d&#8217;<code>UiBinder</code> et de <code>ClientBundle</code>.</p><p>Concernant la migration, les retours <em>(comme <a
href="http://blog.jdevelop.eu/2009/12/10/experiences-with-the-migration-from-gwt-171-to-20/" title="celuici" >celui-ci</a>)</em> sont plutôt encourageants et laissent présager une migration sans trop de difficultés. Les gains en performance se situent, comme on pouvait s&#8217;y attendre, au niveau du <em>development mode</em> et de son plugin pour débuguer directement dans le navigateur (ce bon vieux <em>Hosted Mode</em> ne va décidément pas me manquer). Même au niveau des librairies tierces, il n&#8217;y a pas de grosses incompatibilités remontées par l&#8217;auteur.</p><p>La section téléchargement se trouve <a
href="http://code.google.com/intl/fr-FR/webtoolkit/download.html" title="ici" >ici</a>.</p><h4><a
name="SortiedelareleasedeFlexPMD"></a>Sortie de la release de FlexPMD 1.0</h4><p>Une bonne nouvelle cette semaine pour les développeurs Flex : <a
href="http://blogs.adobe.com/xagnetti/2009/12/flexpmd_10_released_flexmetric.html" title="la sortie de FlexPMD FlexCPD et FlexMetrics en release" >la sortie de FlexPMD, FlexCPD et FlexMetrics en release</a> pour contrôler votre code. Voyons un peu plus en détail ces différents outils :</p><ul><li>FlexPMD</li></ul><p><a
href="http://blog.xebia.fr/2009/09/07/revue-de-presse-xebia-125/#AnalysezvotrecodeFlexavecFlexP" title="Nous vous en parlions en septembre" >Nous vous en parlions en septembre</a>, FlexPMD fournit maintenant des fonctionnalités supplémentaires :</p><ul><li>invocation depuis Eclipse grâce à son <a
href="http://opensource.adobe.com/wiki/display/flexpmd/FlexPMD+Eclipse+plugin" title="plugin" >plugin</a>,</li><li>depuis <a
href="http://groups.adobe.com/posts/8f4c3bbe01" title="FlashDevelop" >FlashDevelop</a> ou <a
href="http://www.ohloh.net/p/textmate_flexpmd_bundle" title="TextMate" >TextMate</a> sur Mac OS X.</li></ul><p>Le rapport peut être généré en HTML ou XML. Son rapport au format XML est un standard pouvant être exploité par tout intépréteur PMD comme le plugin d&#8217;Hudson.</p><ul><li>FlexCPD (Copy &#038; and Paste Detector)</li><ul><li><a
href="http://opensource.adobe.com/wiki/display/flexpmd/FlexCPD" title="FlexCPD" >FlexCPD</a> permet comme son nom l&#8217;indique de détecter les duplications de code. Basé sur le moteur de JavaCPD, il peut être appelé en ligne de commande par une tâche Ant ou avec Maven. Les résultats sont exploitables dans Hudson également grâce au plugin <a
href="http://wiki.hudson-ci.org/display/HUDSON/DRY+Plugin" title="DRY" >DRY</a>.</li></ul><li>FlexMetrics</li><ul><li><a
href="http://opensource.adobe.com/wiki/display/flexpmd/FlexMetrics" title="FlexMetrics" >FlexMetrics</a> permet d&#8217;avoir des métriques sur votre code Flex. Comme FlexCPD, il peut être appelé en ligne de commande, avec Ant ou Maven. Pour interpréter les résultats de l&#8217;outil, il est possible d&#8217;utiliser le plugin <a
href="http://wiki.hudson-ci.org//pages/viewpage.action?pageId=36603031" title="JavaNCSS" >JavaNCSS</a>.</li></ul></ul><p>Des outils intéressants donc, pour ajouter vos projets Flex dans vos outils d&#8217;intégration continue.</p><h3><a
name="Lecoindelatechnique"></a>Le coin de la technique</h3><h4><a
name="LeprojetLambdaapparatauseindOp"></a>Le projet Lambda apparaît au sein d&#8217;OpenJDK</h4><p>Mark Reinhold annonce la création d&#8217;un nouveau sous-projet au sein d&#8217;OpenJDK : le <a
href="http://openjdk.java.net/projects/lambda/" title="Projet Lambda" >Projet Lambda</a>. Son but est d&#8217;apporter une implémentation des <em>closures</em> pour le JDK 7. Dans la mesure où il est prévu que cette fonctionnalité soit implémentée dans un premier temps pour être spécifiée par la suite, il sera particulièrement intéressant de suivre l&#8217;évolution de ce projet dans les prochains mois afin de découvrir à quoi <em>pourraient</em> ressembler les <em>closures</em> dans la prochaine version de Java.</p><p>Un premier <a
href="http://cr.openjdk.java.net/~mr/lambda/straw-man/" title="document de travail" >document de travail</a> a été mis à disposition. Il présente de manière non formelle la proposition pour l&#8217;implémentation des <em>closures</em> qui est retenue pour le moment. Cette proposition se base sur les trois principales bases de travail qui s&#8217;étaient dégagées lors des débats précédents, à savoir la <a
href="http://www.javac.info/closures-v05.html" title="BGGA" >BGGA</a>, la <a
href="http://docs.google.com/Doc.aspx?id=k73_1ggr36h" title="CICE" >CICE</a> et la <a
href="http://docs.google.com/Doc?id=ddhp95vd_6hg3qhc" title="FCM" >FCM</a>. Elle met en avant principalement :</p><ul><li>La syntaxe retenue pour la définition de fonctions anonymes qui se base sur le caractère <code>#</code>, ainsi <code>#()(42)</code> définit une fonction retournant toujours <code>42</code>.</li><li>La définition d&#8217;un type Java pour ces fonctions. Ainsi la fonction <code>#()(42)</code> prise en exemple précédemment a pour type <code>#int()</code>.</li><li>Les fonctions anonymes peuvent être converties automatiquement lorsqu&#8217;elle sont passées en argument d&#8217;une méthode attendant une instance d&#8217;une classe anonyme. En clair, il sera possible de créer une nouvelle <em>thread</em> avec <code>new Thread(#() { ...some code... } )</code> plutôt que de fournir au constructeur une classe anonyme implémentant <code>Runnable</code> pour définir la méthode <code>run()</code>. Cette possibilité permettra donc aux <em>closures</em> d&#8217;être utilisées directement dans les APIs existantes !</li><li>Dans certaines conditions, les <em>closures</em> sont à même d&#8217;utiliser les variables accessibles dans le contexte dans lequel elles sont définies.</li><li>Le mot clé <code>this</code> peut être utilisé si la <em>closure</em> est déclarée depuis une méthode d&#8217;instance, il référence alors l&#8217;instance à laquelle est attachée la méthode concernée.</li></ul><p>Enfin, pour faciliter les évolutions des APIs existantes que pourraient justifier ces nouvelles possibilités du langage, la notion de méthodes d&#8217;extensions est introduite. Il s&#8217;agit de permettre la définition de méthodes au sein des interfaces dont l&#8217;implémentation par défaut serait une méthode statique indiquée en argument.</p><p>Pour plus de détails sur cette proposition, n&#8217;hésitez pas à lire le <a
href="http://cr.openjdk.java.net/~mr/lambda/straw-man/" title="document de travail" >document de travail</a>, volontairement très didactique, du projet Lambda.</p><h4><a
name="NouvelleversiondumeilleurIDEJa"></a>Nouvelle version du meilleur IDE Java du monde&#8230;</h4><p>&#8230; en tout cas, c&#8217;est une des accroches d&#8217;IntelliJ IDEA <img
src='http://blog.xebia.fr/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /><br
/> <a
href="http://www.jetbrains.com/" title="JetBrains" >JetBrains</a> continue donc sur sa lancée d&#8217;évolution majeure de ses produits.<br
/> Ainsi, après <a
href="http://blog.xebia.fr/2009/12/07/revue-de-presse-xebia-137/#SortiedeTeamCity" title="TeamCity 5.0" >TeamCity 5.0</a>, c&#8217;est au tour d&#8217;<a
href="http://www.jetbrains.com/idea/index.html" title="IntelliJ IDEA" >IntelliJ IDEA</a> d&#8217;évoluer et de <a
href="http://blogs.jetbrains.com/idea/2009/12/intellij-idea-9-finally-out-with-great-new-features-a-performance-boost/" title="passer en version 9" >passer en version 9</a>.</p><p>Les <a
href="http://www.jetbrains.com/idea/whatsnew/index.html" title="nouveauts sont trs nombreuses" >nouveautés sont très nombreuses</a>. Les points importants retenus par JetBrains sont :</p><ul><li>la rapidité de l&#8217;IDE,</li><li>l&#8217;amélioration de la lecture du code <em>(meilleure coloration syntaxique&#8230;)</em>,</li><li>meilleure UI, une structure de projet plus flexible,</li><li>premier support Java 7 avec JSR308, support de JEE 6,</li><li>meilleur support de Groovy,</li><li>plugin de développement Android,</li><li>support d&#8217;autres frameworks <em>(Tapestry, GAE, GWT 1.7 et 2.0, Spring 3.0 et Spring Security 2.0 et 3.0)</em>,</li><li>meilleur support de Maven,</li><li>plusieurs nouvelles fonctionnalités pour le développement d&#8217;applications Flex. <em>(Air, FlexUnit&#8230;)</em>.</li></ul><p>Deux éditions nous sont proposées <a
href="http://www.jetbrains.com/idea/download/index.html" title="en téléchargement" >en téléchargement</a> (avec <a
href="http://www.jetbrains.com/idea/buy/index.jsp#newuser" title="diffrentes licences" >différentes licences</a>) :</p><ul><li>l&#8217;édition <em>ultimate</em> : complète, gratuite pour les licences <em>Classroom</em> et <em>Open Source Project</em> ;</li><li>l&#8217;édition <em>community</em> : produit sous licence Apache 2.0 proposant en standard l&#8217;IDE pour Java et Groovy (et quelques plugins gratuits).</li></ul><p>Et même quelques <a
href="http://konigsberg.blogspot.com/2009/12/eclipse-users-go-download-intellij.html" title="Friends of Eclipse" >Friends of Eclipse</a> vous encouragent à le télécharger <img
src='http://blog.xebia.fr/wp-includes/images/smilies/icon_biggrin.gif' alt=':D' class='wp-smiley' /> Comme on dit : <em>l&#8217;essayer, c&#8217;est l&#8217;adopter</em> !</p><h4><a
name="ansdattenteetECMAScript"></a>10 ans d&#8217;attente et ECMAScript 5</h4><p>ECMAScript, langage de programmation de type script implémenté entre autres par Javascript et ActionScript, passe en <a
href="http://www.ecma-international.org/publications/files/ECMA-ST/ECMA-262.pdf" title="version 5" >version 5</a> <em>(via <a
href="http://www.infoq.com/news/2009/12/ecmascript5" title="InfoQ" >InfoQ</a>)</em>.<br
/> La version 4 ayant été abandonnée, il faut remonter à 1999 pour voir la dernière version d&#8217;ECMAScript et sa version 3&#8230; Ce fût long, mais au moins il est là !</p><p>Comme nous le rappelle <a
href="http://alblue.blogspot.com/2009/12/javascript-5-standard-released.html" title="Alex Blewitt" >Alex Blewitt</a>, celle-ci essayera de s&#8217;imposer là où la version 4 (qui a d&#8217;ailleurs été abandonnée) a échoué, à savoir être pleinement supportée par les navigateurs actuels. En effet, nos sites web et nos outils évoluent mais pas la spécification ECMA. Côté application, c&#8217;est une nouvelle fois Google Wave <em>(en GWT donc Javascript)</em> qui est cité en exemple pour son côté collaboratif <em>live</em>. Et pour les outils, l&#8217;auteur cite Speed Tracer <em>(inclus dans la release GWT 2.0)</em> qui va nous permettre de détecter et de fixer certains problèmes de performances sur nos applications.</p><p>On notera la rétrocompatibilité avec les anciennes applications ECMAScript grâce au code suivant :</p><pre class="brush: java; title: ; notranslate">
&quot;use strict;&quot;
</pre><p>Ce code indique au runtime ECMAScript qu&#8217;il faut être compatible avec la version 5 d&#8217;ECMAScript et ses différentes nouveautés. Il sera possible d&#8217;être compatible sur tout le document ou seulement sur une partie de code. Concernant les anciens runtimes, le <code>strict</code> sera compris mais ne changera pas leur comportement.</p><p>Concernant les nouveautés de la spécification, on retiendra :</p><ul><li>déclaration de variable obligatoire : terminé les <code>i=3</code>, il faudra obligatoirement passer par <code>var i=3</code> ;</li><li><code>eval</code> devient un mot clé réservé ;</li><li>l&#8217;opérateur <code>with</code> disparaît ;</li><li>les fonctions et objets ne peuvent plus avoir des arguments/propriétés doubles avec le même nom ;</li><li>nouvel objet JSON et mécanisme de <em>parsing</em> désormais standard ;</li><li>méthode <code>trim</code> pour l&#8217;objet <code>String</code> ;</li><li>méthodes <code>indexOf</code>, <code>map</code>, <code>filter</code> and <code>reduce</code> pour l&#8217;objet <code>Array</code>;</li><li>nombreuses nouvelles méthodes sur <code>Object</code> dont <code>seal</code> <em>(empêche l&#8217;ajout/la suppression de propriétés)</em>, <code>freeze</code> <em>(propriétés read-only)</em>, <code>keys</code> <em>(liste les propriétés de l&#8217;objet)</em> ou <code>getPrototypeof</code> <em>(prototype de l&#8217;objet)</em>.</li></ul><p>Beaucoup de bonnes nouvelles pour les développeurs donc. La rétrocompatibilité permettra une mise en place progressive sur notre code, soit par bloc soit directement sur toute la page. Côté API, on avait déjà l&#8217;habitude d&#8217;utiliser ces fonctions par l&#8217;intermédiaire de librairies comme <a
href="http://jquery.com/" title="jQuery" >jQuery</a> mais cette standardisation est la bienvenue.</p><h4><a
name="NouvelleMilestonedEclipseHelio"></a>Nouvelle Milestone d&#8217;Eclipse Helios</h4><p>Eclipse 3.6, nom de code Helios, vient de sortir en version Milestone 4. De nouvelles fonctionnalités sont apparues avec ce build, comme :</p><ul><li>la possibilité d&#8217;éditer plusieurs quick fix en même temps</li><li>les &laquo;&nbsp;virtual folders&nbsp;&raquo; qui permettent de créer des regroupements de fichiers au niveau du projet pour une navigation plus facile</li><li>amélioration du plugin JUnit</li></ul><p>Pour plus de détails, voici la <a
href="http://download.eclipse.org/eclipse/downloads/drops/S-3.6M4-200912101301/eclipse-news-M4.html" title="liste des améliorations" >liste des améliorations</a> et <a
href="http://eclipsesource.com/blogs/2009/12/12/eclipse-3-6-m4-helios-available-for-download/" title="lannonce officielle" >l&#8217;annonce officielle</a> d&#8217;EclipseSource.</p><h4><a
name="SpringSurflestudiodecompositio"></a>Spring Surf &#8211; le studio de composition de pages pour Spring MVC</h4><p>Spring s&#8217;intéresse à présent à la gestion documentaire, grâce à une collaboration avec Alfresco, le système de GED Open Source Java, qui a démarré le projet Surf. A l&#8217;origine, l&#8217;objectif était de proposer aux utilisateurs d&#8217;Alfresco une plateforme pour développer leurs propres applications connectées à la GED.</p><p>Pour profiter des facilités de développement d&#8217;applications que propose Spring avec <a
href="http://www.springsource.org/roo" title="Spring Roo" >Spring Roo</a> et <a
href="http://www.springsource.com/products/sts" title="Spring Tool Suite" >Spring Tool Suite</a>, Alfresco commence à migrer son projet Surf dans l&#8217;<em>incubator</em> Spring Extension.</p><p>Pour le moment, les principales informations se trouvent sur le <a
href="http://wiki.alfresco.com/wiki/Surf" title="wiki d'Alfresco" >wiki d&#8217;Alfresco</a>, la <a
href="http://www.springsource.org/extensions/se-surf" title="page daccueil de Spring Surf" >page d&#8217;accueil de Spring Surf</a> étant encore très succincte.</p><p>Pour démarrer, seuls l&#8217;addon Spring Roo et un QuickStart sont disponibles chez Spring (pas encore de tutorial). Et pour mieux connaitre ce que deviendra cette extension, l&#8217;application <a
href="http://wiki.alfresco.com/wiki/Alfresco_Share" title="Alfresco Share" >Alfresco Share</a>, basée sur la <a
href="http://wiki.alfresco.com/wiki/Surf_Platform" title="plateforme Surf" >plateforme Surf</a> donne un bon nombre de pistes comme :</p><ul><li>Création d&#8217;applications uniquement par scripting (Freemarker, Groovy, PHP, JavaScript)</li><li>Ajout de pages à une application basée sur le framework Spring MVC</li><li>Développement avec un modèle extensible de templates, composants, styles, etc.</li></ul> ]]></content:encoded> <wfw:commentRss>http://blog.xebia.fr/2009/12/14/revue-de-presse-xebia-138/feed/</wfw:commentRss> <slash:comments>1</slash:comments> </item> <item><title>Revue de Presse Xebia</title><link>http://blog.xebia.fr/2009/11/23/revue-de-presse-xebia-135/</link> <comments>http://blog.xebia.fr/2009/11/23/revue-de-presse-xebia-135/#comments</comments> <pubDate>Mon, 23 Nov 2009 19:07:04 +0000</pubDate> <dc:creator>Xebia France</dc:creator> <category><![CDATA[Revue de presse]]></category> <category><![CDATA[Devoxx]]></category> <category><![CDATA[GWT]]></category> <category><![CDATA[J2EE]]></category> <category><![CDATA[Java / JEE]]></category> <category><![CDATA[jdk-7]]></category> <category><![CDATA[JEE 6]]></category> <category><![CDATA[Maven 3.0]]></category> <category><![CDATA[owasp]]></category> <category><![CDATA[Quartz]]></category> <category><![CDATA[Terracotta]]></category> <guid
isPermaLink="false">http://blog.xebia.fr/?p=3296</guid> <description><![CDATA[La revue de presse de l&#8217;actualité Java/J2EE hebdomadaire proposée par Xebia. Actualité éditeurs / SSII Terracotta a faim d&#8217;Open Source : acquisition de Quartz JDK 7, JEE 6, et Maven 3.0 : les annonces de Devoxx RIA GWT version 2.0 RC1 Le coin de la technique OWASP Security Top Ten, la cuvée 2010 est arrivée [...]]]></description> <content:encoded><![CDATA[<p><img
src="http://blog.xebia.fr/wp-content/uploads/2007/06/revuedepresse.png" alt="Revue de Presse Xebia" style="margin: 1em 1em 1em 1em; float: right;" /><br
/> <em>La revue de presse de l&#8217;actualité Java/J2EE hebdomadaire proposée par Xebia.</em></p><p><strong>Actualité éditeurs / SSII</strong></p><ul><li><a
href="http://blog.xebia.fr/2009/11/23/revue-de-presse-xebia-135/#TerracottaafaimdOpenSourceacqu">Terracotta a faim d&#8217;Open Source : acquisition de Quartz</a></li><li><a
href="http://blog.xebia.fr/2009/11/23/revue-de-presse-xebia-135/#JDKJEEetMavenlesannoncesdeDevo">JDK 7, JEE 6, et Maven 3.0 : les annonces de Devoxx</a></li></ul><p><strong>RIA</strong></p><ul><li><a
href="http://blog.xebia.fr/2009/11/23/revue-de-presse-xebia-135/#GWTversionRC">GWT version 2.0 RC1</a></li></ul><p><strong>Le coin de la technique</strong></p><ul><li><a
href="http://blog.xebia.fr/2009/11/23/revue-de-presse-xebia-135/#OWASPSecurityTopTenlacuveestar">OWASP Security Top Ten, la cuvée 2010 est arrivée</a></li><li><a
href="http://blog.xebia.fr/2009/11/23/revue-de-presse-xebia-135/#QuedevientSpringRichClient">Que devient Spring Rich Client ?</a></li></ul><p><strong>Evènements de notre communauté en France et à l&#8217;étranger</strong></p><ul><li><a
href="http://blog.xebia.fr/2009/11/23/revue-de-presse-xebia-135/#Devoxx">Devoxx 2009</a></li></ul><h3><a
name="ActualitditeursSSII"></a>Actualité éditeurs / SSII</h3><h4><a
name="TerracottaafaimdOpenSourceacqu"></a>Terracotta a faim d&#8217;Open Source : acquisition de Quartz</h4><p>Terracotta a annoncé cette semaine <a
href=" http://terracotta.org/news/terracotta-acquires-quartz" title="l'acquisition de Quartz" >l&#8217;acquisition de Quartz</a>, le scheduler open source le plus connu est le mieux intégré du marché. Cette acquisition est <a
href="http://blog.xebia.fr/2009/08/24/revue-de-presse-xebia-123/#AcquisitiondEhcacheparTerracot" title="lexacte copie de celle opre cet t avec Ehcache" >l&#8217;exacte copie de celle opérée cet été avec Ehcache</a>. Tout comme ehCache, Quartz est un projet open source, largement utilisé et bien intégré avec la plupart des solutions stars de leur secteur &#8230; et porté par un seul homme (James House). Cible idéale pour Terracotta ? Probablement. Mais il se pose toujours la question suivante : comment Terracotta compte t&#8217;il rentabiliser cette acquisition, quand on sait a quel point la monétisation d&#8217;un projet open source est difficile. Quoi qu&#8217;il arrive, d&#8217;ici la prochaine acquisition, Terracotta touche, par ce biais, une communauté de plus en plus large. Cela sera-t-il suffisant pour séduire un éventuel racheteur ?</p><p>D&#8217;autre part, comme le signale <a
href="http://puredanger.com/tech/2009/11/19/terracotta-acquires-quart/" title="Alex Miller" >Alex Miller</a>, Quartz c&#8217;est :</p><ul><li>Un nouveau <a
href="http://www.quartz-scheduler.org/" title="site web" >site web</a>.</li><li>Un nouveau <a
href="http://svn.terracotta.org/svn/quartz/" title="gestionnaire de sources" >gestionnaire de sources</a>.</li><li>Un nouveau <a
href="http://jira.terracotta.org/jira/browse/QTZ" title="gestionnaire danomalies" >gestionnaire d&#8217;anomalies</a>.</li><li>Un nouveau <a
href=" http://forums.terracotta.org/forums/forums/show/17.page" title="forum" >forum</a>.</li><li>Mais toujours la même licence, Apache 2.</li></ul><h4><a
name="JDKJEEetMavenlesannoncesdeDevo"></a>JDK 7, JEE 6, et Maven 3.0 : les annonces de Devoxx</h4><p>La conférence Devoxx ayant eu lieu la semaine dernière a été l&#8217;occasion de plusieurs annonces importantes qui ont rapidement fait le tour de la blogosphère.</p><p><strong>JDK 7 avec les closures, mais retardé à nouveau</strong></p><p>C&#8217;est surement l&#8217;annonce qui à fait le plus de bruit. Elle s&#8217;est répandue comme une trainée de poudre tant elle était inattendue. Lors d&#8217;une présentation en apparence sans surprise sur les nouveautés du JDK 7, Mark Reinhold explique que le temps est venu pour Java de supporter les <em>closures</em>. Afin de permettre leur implémentation, la finalisation du JDK 7 est repoussée à septembre 2010. Trois nouveaux <em>milestones</em> sont donc ajoutés au calendrier initial avec une finalisation des fonctionnalités <em>(features complete)</em> prévue pour Juin 2010. Ce nouveau délai permet donc à l&#8217;équipe du JDK de travailler sereinement sur la finalisation de Jigsaw, d&#8217;implémenter les <em>closures</em>, et devrait vraisemblablement permettre également l&#8217;inclusion du <a
href="http://mail.openjdk.java.net/pipermail/coin-dev/2009-February/000003.html" title="multicatch pour les exceptions" >multi-catch pour les exceptions</a>.</p><p>En fait ce délai semble laisser la possibilité à de nombreuses autres fonctionnalités et spécifications qui avaient été mises de coté de prétendre de nouveau intégrer le JDK 7. On peut ainsi imaginer :</p><ul><li>JMX 2, qui avait <a
href="http://blog.xebia.fr/2009/06/29/revue-de-presse-xebia-115/#QuedevientJMX" title="t repouss au JDK 8" >été repoussé au JDK 8</a></li><li>La <a
href="http://www.jcp.org/en/jsr/detail?id=310" title="JSR-310 (Date and Time API)" >JSR-310 (Date and Time API)</a> qui avait connu des difficultés par manque de contributions et <a
href="http://blog.xebia.fr/2009/03/30/revue-de-presse-xebia-102/#EnfinuneroadmapdtaillepourleJD" title="navait finalement pas t incluse" >n&#8217;avait finalement pas été incluse</a> à la liste <em>finale</em> des fonctionnalités du JDK 7</li><li>La <a
href="http://www.jcp.org/en/jsr/detail?id=296" title="JSR-296 (Swing Application Framework)" >JSR-296 (Swing Application Framework)</a> dont le retrait du JDK 7 <a
href="http://blog.xebia.fr/2009/08/24/revue-de-presse-xebia-123/#PasdeSwingApplicationFramework" title="avait t annonc cet t" >avait été annoncé cet été</a></li><li>Le <a
href="http://www.jroller.com/scolebourne/entry/java_7_properties_terminology" title="support des proprits" >support des propriétés</a></li></ul><p>Questionné à Devoxx sur l&#8217;étendue des fonctionnalités pouvant être concernées par une potentielle inclusion, Mark Reinhold ne ferme la porte à aucune hypothèse. Il explique ainsi qu&#8217;il n&#8217;a pas eu l&#8217;occasion de voir de <em>proposal</em> pour les propriétés qui lui semblait satisfaisante jusqu&#8217;à présent mais n&#8217;exclue pas une telle possibilité d&#8217;ici la finalisation des fonctionnalités du JDK 7.</p><p><strong>JEE 6 finalisé en décembre</strong></p><p>Lors du <em>keynote</em> du premier jour des conférences, Roberto Chinnici (<em>Spec lead</em> JEE 6) a annoncé la finalisation de l&#8217;ensemble des spécifications JEE 6 ainsi que de l&#8217;implémentation de référence associée (<a
href="https://glassfish.dev.java.net/" title="Glassfish V3" >Glassfish V3</a>) pour le 10 décembre 2009.</p><p>Cette nouvelle intervient alors que JEE 6 a été très bien accueilli par le public à Devoxx comme il l&#8217;a été maintes fois répété dans <a
href="http://lescastcodeurs.com/2009/11/les-cast-codeurs-episode-12-special-devoxx-2009/" title="le dernier pisode des Cast Codeurs" >le dernier épisode des Cast Codeurs</a>.</p><p><strong>Maven 3.0 finalisé en Janvier</strong></p><p>Cette annonce est passée plus inaperçue parmi l&#8217;actualité de Sun. Pourtant Jason van Zyl, lors de sa présentation des nouveautés de Maven 3.0, a annoncé une finalisation de la nouvelle version de son outil de <em>build</em> pour la fin janvier 2010.</p><p>Cette nouvelle version apportera le support des <a
href="http://www.sonatype.com/people/2009/11/maven-3x-community-participation-multi-threaded-execution/" title="builds multithreadés" >builds multithreadés</a> ainsi qu&#8217;un <a
href="http://www.sonatype.com/people/2009/11/maven-3x-community-participation-multi-threaded-execution/" title="environnement de base" >environnement de base</a> pour les extensions très intéressantes que sont Polyglot Maven et Maven Shell.</p><p>Nous publierons rapidement un article plus détaillé sur l&#8217;ensemble des nouveautés à venir sur Maven 3.x.</p><h3><a
name="RIA"></a>RIA</h3><h4><a
name="GWTversionRC"></a>GWT version 2.0 RC1</h4><p>Une nouvelle version majeure du RIA de Google, <a
href="http://code.google.com/intl/fr/webtoolkit/" title="GWT" >GWT</a>, sort en <a
href="http://code.google.com/p/google-web-toolkit/wiki/GWT_2_0_RC" title="version 20 RC 1" >version 2.0 RC 1</a>. Cependant, aucune date de sortie n&#8217;est encore annoncée.<br
/> Cette version s&#8217;accompagne d&#8217;un plugin pour Eclipse, nommé Google Plugin for Eclipse 1.2 RC1, dont l&#8217;on recommande vivement la mise à jour.<br
/> Parmi les nouveautés, on peut citer:</p><ul><li>Utilisation du Development Mode (anciennement appelé Hosted Mode) dans le navigateur de votre choix via un plugin.</li><li>Possibilité de fragmenter le code JavaScript généré en plusieurs morceaux en utilisant GWT.runAsync() va permettre d&#8217;accélérer considérablement les temps de chargement.</li><li>Story Of Your Compile (SOYC) génère un rapport sur le processus de compilation et permet d&#8217;avoir une meilleure vision du code généré.</li><li>Facilitation de la création d&#8217;IHM par déclaration avec Ui Binder.</li><li>Apparition d&#8217;un ClientBundle, similaire au ImageBundle, qui permet la généralisation du sprinting à d&#8217;autres formats les fichiers textes, css, etc.</li><li>Utilisation de HtmlUnit pour les tests unitaires, qui permet maintenant de débugger directement dans le débuggeur Java.</li></ul><p>Les nouveautés sont donc nombreuses et apportent un réel gain de productivité.<br
/> Le combat auquel se livrent actuellement les RIA est loin d&#8217;être terminé&#8230;</p><h3><a
name="Lecoindelatechnique"></a>Le coin de la technique</h3><h4><a
name="OWASPSecurityTopTenlacuveestar"></a>OWASP Security Top Ten, la cuvée 2010 est arrivée</h4><p>Après le Beaujolais Nouveau et le calendrier des pompiers, c&#8217;est au tour de l&#8217;OWASP de faire son annonce avec la <a
href="http://www.owasp.org/index.php/Category:OWASP_Top_Ten_Project" title="mouture 2010 de son "Security Top Ten"" >mouture 2010 de son &laquo;&nbsp;Security Top Ten&nbsp;&raquo;</a>. En attendant de rédiger un billet complet sur ces failles et leur prévention en Java, voici un <a
href="http://www.slideshare.net/XebiaFrance/xebia-knowledge-exchange-owasp-top-ten-2565878" title="lien vers une prsentation que nous avions fait pour une formation interne" >lien vers une présentation que nous avions fait pour une formation interne</a> et la liste 2010 avec une présentation très succincte des parades dont nous disposons en Java :</p><p><strong>A1 &#8211; Injection :</strong> injection sql, hibernate ql, jpa ql, http, etc.<br
/> Utiliser des prepared statements, les paramètres de commons http, etc.</p><p><strong>A2 &#8211; Cross Site Scripting (XSS)</strong><br
/> Utiliser JSR 303 Bean Validation pour valider les données entrantes et <em>escaper</em> les données sortantes avec JSTL ou un équivalent.</p><p><strong>A3 &#8211; Failles d&#8217;Authentification et de gestion de Gestion de Session</strong><br
/> Utiliser Spring Security ou les mécanismes du moteur de servlet.</p><p><strong>A4 &#8211; Référence Directe Non Sécurisée aux Objets de données</strong><br
/> Revalider tous les ID provenants des requêtes HTTP ou utiliser un <em>aliasing par random</em> (cf. org.owasp.esapi.AccessReferenceMap).</p><p><strong>A5 &#8211; Cross Site Request Forgery (CSRF)</strong></p><p>Protéger les invocations d&#8217;URL par le contrôle d&#8217;un nombre aléatoire généré côté serveur. En cas de risque majeur, utiliser un framework Web de description de flow (Spring Web Flow, JBoss Seam, etc).</p><p><strong>A6 &#8211; Mauvaise configuration de sécurité (Nouveau)</strong><br
/> Utiliser les installation standard des systèmes d&#8217;exploitation et des middlewares, restreindre les droits des utilisateurs unix, etc.</p><p><strong>A7 &#8211; Mauvaise protection des URL</strong></p><p>Utiliser des mécanismes de sécurité déclarative par URL ou par annotation sur les beans controlleurs et de service.</p><p><strong>A8 &#8211; Utilisation de redirects et forwards non controlés (nouveau)</strong></p><p>Ne pas construire l&#8217;url de redirection ou de forward avec des données saisies par l&#8217;internaute. Figer les valeurs possibles de redirection dans le code ou dans des fichiers de configuration.</p><p><strong>A9 &#8211; Failles des systèmes de stockages encryptés</strong></p><p>Ne jamais stocker un mot de passe en clair, éviter de stocker des informations sensibles comme les numéros de carte bleue, . Si c&#8217;est finalement nécessaire, mettre en place un système de stockage dédié avec une gestion très attentive.<br
/> Documenter dans les configurations de logging (e.g. log4j.properties) les loggers à ne pas activer si des informations sensibles ne doivent pas sortir dans les logs (e.g. couche de binding des frameworks web).</p><p><strong>A10 &#8211; Protection insuffisante des canaux de communication</strong></p><p>Ne pas réinventer de canal de transport sécurisé, utiliser SSL quand c&#8217;est possible ; sinon, regarder WS-Security même s&#8217;il est très couteux à mettre en œuvre (debugging, etc).</p><h4><a
name="QuedevientSpringRichClient"></a>Que devient Spring Rich Client ?</h4><p><a
href="http://spring-rich-c.sourceforge.net/1.1.0/index.html" title="Spring Rich Client" >Spring Rich Client</a> est un <em>framework</em> applicatif basé sur Spring. Il permet de créer des applications clients lourds plus facilement qu&#8217;en utilisant l&#8217;environnement Swing de base.</p><p>La promesse est séduisante, toutefois le projet initié en 2004 ne s&#8217;est vu finalisé que 4 ans plus tard, en mars 2008. Dès lors certains doutes planent quant à la santé de cette communauté.</p><p>Lieven Doclo, <em>leader</em> du projet, en a présenté les fonctionnalités lors d&#8217;un <a
href="http://devoxx.com/display/DV09/Spring+Rich+Client" title="BOF  Devoxx" >BOF à Devoxx</a>. Ce fut également l&#8217;occasion d&#8217;un certain nombre de questions quant à la santé et au positionnement de ce projet méconnu :</p><ul><li>Bien qu&#8217;il soit directement référencé au sein du <a
href="http://www.springsource.org/projects" title="portfolio de SpringSource" >portfolio de SpringSource</a>, l&#8217;éditeur n&#8217;investit pas dans ce projet. On notera d&#8217;ailleurs que Lieven Doclo n&#8217;est pas employé par SpringSource mais consultant Java externe.</li><li>Le projet souhaite se positionner face à <a
href="http://www.eclipse.org/community/rcp.php" title="Eclipse RCP" >Eclipse RCP</a> et <a
href="http://platform.netbeans.org/" title="NetBeans RCP" >NetBeans RCP</a> en mettant en avant l&#8217;obligation d&#8217;utiliser SWT pour le premier et le manque de perspectives pour le second du fait des récentes déclarations d&#8217;Oracle.</li><li>Les évolutions lentes du projet s&#8217;expliquent par la taille réduite de l&#8217;équipe. Lieven Doclo appelle d&#8217;ailleurs les volontaires à le rejoindre.</li></ul><p>Si l&#8217;utilisation du <em>framework</em> Spring pour l&#8217;assemblage des composants des applications Spring RC est attirante car elle permet de reproduire les paradigmes de programmation utilisés pour le développement d&#8217;applications Web, Spring Rich Client peine encore à convaincre face aux poids lourds que sont les solutions d&#8217;Eclipse et de Netbeans. Il pourra toutefois intéresser les équipes souhaitant réutiliser des composants Spring existants.</p><h3><a
name="EvnementsdenotrecommunautenFra"></a>Evènements de notre communauté en France et à l&#8217;étranger</h3><h4><a
name="Devoxx"></a>Devoxx 2009</h4><p>La semaine dernière se tenait <a
href="http://www.devoxx.com/display/DV09/Home" title="ldition 2009 de Devoxx" >l&#8217;édition 2009 de Devoxx</a> à Anvers. Retrouvez nos premiers billets sur cette semaine de conférence&nbsp;:</p><ul><li><a
href="http://blog.xebia.fr/2009/11/17/devoxx-jour-1-adobe-university/" title="Devoxx  Jour 1  Adobe University" >Devoxx &#8211; Jour 1 &#8211; Adobe University</a></li><li><a
href="http://blog.xebia.fr/2009/11/18/devoxx-jour-1-applications-robustes-avec-amazon-ec2/" title="Devoxx  Jour 1  Applications robustes avec Amazon EC2" >Devoxx &#8211; Jour 1 &#8211; Applications robustes avec Amazon EC2</a></li><li><a
href="http://blog.xebia.fr/2009/11/18/devoxx-jour-1-kanban-in-action/" title="Devoxx  Jour 1  Kanban in action" >Devoxx &#8211; Jour 1 &#8211; Kanban in action</a></li><li><a
href="http://blog.xebia.fr/2009/11/18/devoxx-jour-1-jsf-2/" title="Devoxx  Jour 1  JSF 2" >Devoxx &#8211; Jour 1 &#8211; JSF 2</a></li><li><a
href="http://blog.xebia.fr/2009/11/18/devoxx-jour-1-nosql-avec-hbase/" title="Devoxx  Jour 1  NoSQL avec HBase" >Devoxx &#8211; Jour 1 &#8211; NoSQL avec HBase</a></li><li><a
href="http://blog.xebia.fr/2009/11/19/devoxx-jour-2-google-app-engine/" title="Devoxx  Jour 2  Google App Engine" >Devoxx &#8211; Jour 2 &#8211; Google App Engine</a></li><li><a
href="http://blog.xebia.fr/2009/11/19/devoxx-jour-2-les-effets-avec-flex-4/" title="Devoxx  Jour 2  Les effets avec Flex 4" >Devoxx &#8211; Jour 2 &#8211; Les effets avec Flex 4</a></li><li><a
href="http://blog.xebia.fr/2009/11/23/devoxx-jour-2-hibernate-search/" title="Devoxx  Jour 2  Hibernate Search" >Devoxx &#8211; Jour 2 &#8211; Hibernate Search</a></li><li><a
href="http://blog.xebia.fr/2009/11/23/devoxx-jour-2-java-fx-the-developer-guide/" title="Devoxx  Jour 2  Java FX The developer guide" >Devoxx &#8211; Jour 2 &#8211; Java FX The developer guide</a></li><li><a
href="http://blog.xebia.fr/2009/11/23/devoxx-jour-2-soa-en-pratique/" title="Devoxx  Jour 2  SOA en pratique" >Devoxx &#8211; Jour 2 &#8211; SOA en pratique</a></li><li><a
href="http://blog.xebia.fr/2009/11/23/devoxx-jour-2-scala-actors/" title="Devoxx  Jour 2  Scala Actors" >Devoxx &#8211; Jour 2 &#8211; Scala Actors</a></li></ul> ]]></content:encoded> <wfw:commentRss>http://blog.xebia.fr/2009/11/23/revue-de-presse-xebia-135/feed/</wfw:commentRss> <slash:comments>3</slash:comments> </item> <item><title>Revue de Presse Xebia</title><link>http://blog.xebia.fr/2009/11/16/revue-de-presse-xebia-134/</link> <comments>http://blog.xebia.fr/2009/11/16/revue-de-presse-xebia-134/#comments</comments> <pubDate>Mon, 16 Nov 2009 17:47:49 +0000</pubDate> <dc:creator>Xebia France</dc:creator> <category><![CDATA[Revue de presse]]></category> <category><![CDATA[Android]]></category> <category><![CDATA[Google]]></category> <category><![CDATA[Google App Engine]]></category> <category><![CDATA[Google Wave]]></category> <category><![CDATA[GWT]]></category> <category><![CDATA[J2EE]]></category> <category><![CDATA[Java / JEE]]></category> <category><![CDATA[jdk-7]]></category> <category><![CDATA[SOA]]></category> <guid
isPermaLink="false">http://blog.xebia.fr/?p=3140</guid> <description><![CDATA[La revue de presse de l&#8217;actualité Java/J2EE hebdomadaire proposée par Xebia. Actualité éditeurs / SSII Innovation permanente chez Google Java SE 5 en fin de vie, JDK 7 en approche SOA 10 mythes au sujet des SOA Evènements de notre communauté en France et à l&#8217;étranger Soirée Google au LyonJUG Actualité éditeurs / SSII Innovation [...]]]></description> <content:encoded><![CDATA[<p><img
src="http://blog.xebia.fr/wp-content/uploads/2007/06/revuedepresse.png" alt="Revue de Presse Xebia" style="margin: 1em 1em 1em 1em; float: right;" /><br
/> <em>La revue de presse de l&#8217;actualité Java/J2EE hebdomadaire proposée par Xebia.</em></p><p><strong>Actualité éditeurs / SSII</strong></p><ul><li><a
href="http://blog.xebia.fr/2009/11/16/revue-de-presse-xebia-134/#InnovationpermanentechezGoogle">Innovation permanente chez Google</a></li><li><a
href="http://blog.xebia.fr/2009/11/16/revue-de-presse-xebia-134/#JavaSEenfindevieJDKenapproche">Java SE 5 en fin de vie, JDK 7 en approche</a></li></ul><p><strong>SOA</strong></p><ul><li><a
href="http://blog.xebia.fr/2009/11/16/revue-de-presse-xebia-134/#mythesausujetdesSOA">10 mythes au sujet des SOA</a></li></ul><p><strong>Evènements de notre communauté en France et à l&#8217;étranger</strong></p><ul><li><a
href="http://blog.xebia.fr/2009/11/16/revue-de-presse-xebia-134/#SoireGoogleauLyonJUG">Soirée Google au LyonJUG</a></li></ul><h3><a
name="ActualitditeursSSII"></a>Actualité éditeurs / SSII</h3><h4><a
name="InnovationpermanentechezGoogle"></a>Innovation permanente chez Google</h4><p>Google est encore une fois au cœur de l&#8217;actualité cette semaine avec la mise à disposition d&#8217;un nouveau langage de programmation et d&#8217;un protocole destiné à remplacer HTTP.</p><p><a
href="http://golang.org/" title="Le langage Go" >Le langage Go</a> est à la croisée de C, Java et Pascal et est annoncé comme ayant des performances proches du C. Go se distingue par le fait que son compilateur produise directement du code natif, et qu&#8217;il ne requiert donc pas de machine virtuelle. Il apporte toutefois un ramasse-miette et un ensemble d&#8217;abstractions permettant de simplifier la programmation parallèle.</p><p>Très rapidement, plusieurs opinions et résultats d&#8217;expérimentations sont apparus. Ainsi, <a
href="http://timyang.net/programming/c-erlang-java-performance/" title="Tim Yang montre les performances" >Tim Yang montre les performances</a> obtenues par une application serveur développée en Java (en utilisant Mina), C (avec Nginx) et Go. Les résultats qu&#8217;il obtient montre que Go est en retrait par rapport aux deux autres solutions. Ces résultats doivent toutefois être relativisés par la maturité acquise par le système d&#8217;entrée / sortie de la JVM, le design très performant offert par Mina, la réputation de performance de Nginx et enfin, bien sûr, par le stade embryonnaire de Go.</p><p>Google a également diffusé les spécifications de <a
href="http://dev.chromium.org/spdy/spdy-protocol" title="SPDY" >SPDY</a> (prononcer Speedy), un protocole visant à remplacer HTTP. On le sait, HTTP n&#8217;est pas adapté au Web moderne. En particulier il n&#8217;est pas optimisé pour obtenir une latence minimale. SPDY ne redéfinit pas tout, il se base sur HTTP et y ajoute un ensemble de possibilités supplémentaires telles que la compression d&#8217;en-têtes, le multiplexage de flux ou encore la priorisation de requêtes.</p><p>Des tests sur le transport du contenu des sites Web les plus populaires, permettent à Google d&#8217;annoncer un gain moyen de 55%.</p><p>L&#8217;entreprise américaine continue donc d&#8217;impressionner par son innovation permanente, n&#8217;hésitant pas à remettre en cause régulièrement des technologies considérées comme incontournables.</p><h4><a
name="JavaSEenfindevieJDKenapproche"></a>Java SE 5 en fin de vie, JDK 7 en approche</h4><p>Sur la <a
href="http://java.sun.com/javase/downloads/index_jdk5.jsp" title="page ddie  J2SE 50" >page dédiée à J2SE 5.0</a>, Sun notifie depuis début novembre les utilisateurs de l&#8217;arrivée en fin de vie <em>(End of Service Life)</em> de cette version de Java.</p><p>Arrivé <a
href="http://java.sun.com/j2se/codenames.html" title="il y a 5 ans" >il y a 5 ans</a>, Java 5 avait constitué la mise à jour la plus importante de la plate-forme et de son langage depuis sa création. Son adoption en entreprise fut longue, mais s&#8217;est concrétisée au fil du temps. Ainsi aujourd&#8217;hui, on ne compte plus qu&#8217;une minorité de projets fonctionnant encore exclusivement avec la version 1.4 ou inférieure de Java.</p><p>Il en est tout autrement pour Java 6.0. En effet, contrairement à la version 5.0 dont l&#8217;adoption était indispensable pour profiter des technologies d&#8217;entreprise les plus récentes, les principales motivations pour passer à la version 6.0 concernent la JVM elle-même et les améliorations qu&#8217;elle a connue.</p><p>L&#8217;arrivée en EOSL pourrait accélérer les choses dans certaines entreprises, tandis que d&#8217;autres préfèreront se tourner vers l&#8217;offre <a
href="http://www.sun.com/software/javaforbusiness/" title="Java for Business" >Java for Business</a> de Sun qui permet de continuer de bénéficier du support de l&#8217;éditeur.</p><p>Une autre possibilité pourrait se trouver dans l&#8217;arrivée de JDK 7. En effet, la <a
href="http://openjdk.java.net/projects/jdk7/milestones/" title="roadmap" >roadmap</a> du projet promet un début de phase <em>Release Candidate</em> débutant à la fin du premier trimestre 2010 pour une durée d&#8217;un à deux mois, ce qui permettrait donc l&#8217;arrivée d&#8217;une version finale dans 6 mois. Si la confiance dans les dates de finalisation annoncées de JDK 7 s&#8217;est évaporée au fil des reports successifs, la situation semble maintenant se stabiliser : <a
href="http://blogs.sun.com/mr/entry/jdk7_m5" title="Mark Reinhold vient dannoncer" >Mark Reinhold vient d&#8217;annoncer</a> la disponibilité de la M5 de JDK 7, en accord avec le calendrier prévisionnel de la <em>roadmap</em>. Quatre des fameuses évolutions du langage apportées par le projet Coin y sont implémentées et peuvent donc être d&#8217;ores et déjà testées.</p><h3><a
name="SOA"></a>SOA</h3><h4><a
name="mythesausujetdesSOA"></a>10 mythes au sujet des SOA</h4><p><a
href="http://www.ebizq.net/webinars/11585.html" title="Yefim Natis de Gartner a expos durant lvnement SOA in Action dix mythes communs" >Yefim Natis, de Gartner, a exposé durant l&#8217;évènement <em>SOA in Action</em>, dix mythes communs</a> <em>(et la réponse qu&#8217;il faut leur apporter)</em> sur la mise en place d&#8217;une SOA.<br
/> Là où l&#8217;article porte à sourire, c&#8217;est que, pour une fois, la faute est partagée : cinq de ces mythes sont propagés par les fanatiques de la SOA, et sont mis en regard de cinq autres portés par les allergiques.</p><p>Pour les fanatiques, nous avons :</p><ul><li>Les services sont portés par l&#8217;IT et propagés vers les acteurs fonctionnels.<br
/> Pour Yefim Natis, une SOA est un moyen pour l&#8217;IT de mieux comprendre et appréhender les problématiques métier.</li><li>Les plate formes orientées services reposent sur des briques pré-fabriquées.<br
/> Les SOA ne reposent pas uniquement sur des applications &#8216;services&#8217;, mais aussi sur des batchs et des applications héritées.</li><li>Partager et réutiliser sont les principaux apports d&#8217;une SOA.<br
/> C&#8217;est en effet un des bénéfices attendus, mais c&#8217;est loin d&#8217;être le seul. On peut citer : meilleure exploitation, meilleure montée en charge &#8230;</li><li>Mettre en place une SOA permet de s&#8217;abstenir de réaliser une phase d&#8217;intégration.<br
/> Même si la SOA permet d&#8217;introduire une stabilité dans les interactions entre services, elle ne dispense pas de réaliser de vrais tests d&#8217;intégration, bien au contraire.</li><li>Une SOA réduit les coûts du SI.<br
/> Sur le long terme, peut être &#8230; Mais dans un premier temps, une SOA peut s&#8217;avérer couteuse : nouvelle façon de penser, nouveaux outils, formations à prévoir&#8230;</li></ul><p>Pour les allergiques, la liste est la suivante :</p><ul><li>Une SOA introduit une grande complexité et de nouveaux problèmes.<br
/> La plupart des problèmes liés à la mise en place d&#8217;une SOA sont des problèmes existants partout ailleurs dans le monde de l&#8217;informatique distribuée. La mise en œuvre d&#8217;une SOA ne fait souvent que mettre en exergue des problèmes existants.</li><li>SOA n&#8217;est pas nouveau, c&#8217;est juste un effet de mode.<br
/> Il faut voir au delà de l&#8217;aspect technique : certes SOA repose sur les principes de l&#8217;informatique distribué, mais c&#8217;est l&#8217;ensemble de la démarche qui est nouvelle et qui a au moins l&#8217;avantage de crystaliser certaines bonnes pratiques.</li><li>Une SOA est vouée à l&#8217;échec, parce que les Web Services sont un standard trop instable.<br
/> SOA et SOAP sont deux choses complètement différentes. Les Web Services sont &#8216;juste&#8217; un moyen d&#8217;exposer des services.</li><li>Il est difficile de vendre une SOA, car les acteurs fonctionnels n&#8217;en voient pas les bénéfices.<br
/> Certains bénéfices sont apparents de manières quasi instantanée <em>(on pense aux indicateurs BAM)</em>, et les acteurs fonctionnels gagnent rapidement une nouvelle compréhension de leur environnement IT.</li><li>SOA est déjà dépassé, il faut passer à la suite.<br
/> Le challenge d&#8217;une SOA basique est en effet dépassé. Mais il reste de nombreux enjeux à adresser, notamment dans les architectures les plus complexes.</li></ul><p><a
href="http://www.infoq.com/news/2009/11/SOA10" title="via InfoQ" >via InfoQ</a></p><h3><a
name="EvnementsdenotrecommunautenFra"></a>Evènements de notre communauté en France et à l&#8217;étranger</h3><h4><a
name="SoireGoogleauLyonJUG"></a>Soirée Google au LyonJUG</h4><p>Lundi 23 Novembre, le <a
href="http://www.lyonjug.org/bin/view/Main/" title="LyonJUG" >LyonJUG</a> organise une soirée dédiée aux technologies Google. L&#8217;occasion de découvrir, démonstration à l&#8217;appui, Google Web Toolkit, Google App Engine, Android et le dernier né Google Wave. L&#8217;objectif est aussi de présenter l&#8217;architecture globale de ces produits pour mieux en saisir le fonctionnement et le but.<br
/> Pour faciliter l&#8217;organisation de la soirée dans les locaux d&#8217;EPITECH, vous devez vous inscrire <a
href="http://www.jugevents.org/jugevents/event/show.html?id=21154" title="ici" >ici</a>.</p> ]]></content:encoded> <wfw:commentRss>http://blog.xebia.fr/2009/11/16/revue-de-presse-xebia-134/feed/</wfw:commentRss> <slash:comments>1</slash:comments> </item> <item><title>Revue de Presse Xebia</title><link>http://blog.xebia.fr/2009/10/19/revue-de-presse-xebia-130/</link> <comments>http://blog.xebia.fr/2009/10/19/revue-de-presse-xebia-130/#comments</comments> <pubDate>Mon, 19 Oct 2009 17:00:25 +0000</pubDate> <dc:creator>Xebia France</dc:creator> <category><![CDATA[Revue de presse]]></category> <category><![CDATA[ActiveMQ]]></category> <category><![CDATA[Beans Validation]]></category> <category><![CDATA[Datagrid]]></category> <category><![CDATA[DDD]]></category> <category><![CDATA[dm Server]]></category> <category><![CDATA[G2X]]></category> <category><![CDATA[GWT]]></category> <category><![CDATA[J2EE]]></category> <category><![CDATA[Java / JEE]]></category> <category><![CDATA[KahaDB]]></category> <category><![CDATA[Spring 3]]></category> <category><![CDATA[SpringOne]]></category> <guid
isPermaLink="false">http://blog.xebia.fr/?p=3024</guid> <description><![CDATA[La revue de presse de l&#8217;actualité Java/J2EE hebdomadaire proposée par Xebia. Actualité éditeurs / SSII SpringOne G2X : c&#8217;est parti pour Spring 3 ! RIA GWT 2.0 Milestone 1 Le coin de la technique memcached vs. DataGrid, serveur stupide vs. serveur astucieux ? Finalisation de l&#8217;implémentation de référence de Beans Validation Le noyau de dm [...]]]></description> <content:encoded><![CDATA[<p><img
style="margin: 1em 1em 1em 1em; float: right;" src="http://blog.xebia.fr/wp-content/uploads/2007/06/revuedepresse.png" alt="Revue de Presse Xebia" /><br
/> <em>La revue de presse de l&#8217;actualité Java/J2EE hebdomadaire proposée par Xebia.</em></p><p><strong>Actualité éditeurs / SSII</strong></p><ul><li><a
href="http://blog.xebia.fr/2009/10/19/revue-de-presse-xebia-130/#SpringOneGXcestpartipourSpring">SpringOne G2X : c&#8217;est parti pour Spring 3 !</a></li></ul><p><strong>RIA</strong></p><ul><li><a
href="http://blog.xebia.fr/2009/10/19/revue-de-presse-xebia-130/#GWTMilestone">GWT 2.0 Milestone 1</a></li></ul><p><strong>Le coin de la technique</strong></p><ul><li><a
href="http://blog.xebia.fr/2009/10/19/revue-de-presse-xebia-130/#memcachedvsDataGridserveurstup">memcached vs. DataGrid, serveur stupide vs. serveur astucieux ?</a></li><li><a
href="http://blog.xebia.fr/2009/10/19/revue-de-presse-xebia-130/#Finalisationdelimplmentationde">Finalisation de l&#8217;implémentation de référence de Beans Validation</a></li><li><a
href="http://blog.xebia.fr/2009/10/19/revue-de-presse-xebia-130/#LenoyaudedmServerdisponiblespa">Le noyau de dm Server disponible séparément, pourquoi ?</a></li><li><a
href="http://blog.xebia.fr/2009/10/19/revue-de-presse-xebia-130/#UnnouveaumoteurdestockagepourA">Un nouveau moteur de stockage pour ActiveMQ 5.3 : KahaDB</a></li></ul><p><strong>Evènements de notre communauté en France et à l&#8217;étranger</strong></p><ul><li><a
href="http://blog.xebia.fr/2009/10/19/revue-de-presse-xebia-130/#TraductiondelapremirepartiedeD">Traduction de la première partie de DDD Quickly</a></li></ul><h3><a
name="ActualitditeursSSII"></a>Actualité éditeurs / SSII</h3><h4><a
name="SpringOneGXcestpartipourSpring"></a>SpringOne G2X : c&#8217;est parti pour Spring 3 !</h4><p>L&#8217;édition américaine de <a
title="cette conférence" href="http://www.springone2gx.com">cette conférence</a> dédiée aux produits SpringSource commence aujourd&#8217;hui à la Nouvelle Orléans et durera 4 jours. Elle est donc plus longue que les années précédentes en raison de l&#8217;intégration de nombreuses présentations dédiées à Groovy, mais également plus dense puisqu&#8217;on compte pas moins de 8 sessions en parallèle. La lecture du <a
title="planning" href="http://www.springone2gx.com/conference/new_orleans/2009/10/schedule">planning</a> permet de noter la présence fortement marquée de Spring 3.0 et Spring Roo. Par ailleurs SpringSource offre de nombreuses sessions à Groovy / Grails, avec des sujets rarement évoqués tels que <a
title="Grails and the JVM Memory Management" href="http://www.springone2gx.com/conference/new_orleans/2009/10/session?id=16449">Grails and the JVM Memory Management</a> ou <a
title="OSGi and Groovy" href="http://www.springone2gx.com/conference/new_orleans/2009/10/session?id=15408">OSGi and Groovy</a>.</p><p>En accord avec les préceptes du <em>Conference Driven Development</em>, évoqués par Guillaume Laforge dans <a
title="un podcast" href="http://lescastcodeurs.com/">un podcast</a> <img
src='http://blog.xebia.fr/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /> , SpringOne G2X est l&#8217;occasion d&#8217;un certain nombre d&#8217;annonces. Ainsi SpringSource vient d&#8217;annoncer dans <a
title="un communiqu" href="http://www.springsource.com/newsevents/springsource">un communiqué</a> la finalisation du très attendu Spring 3.0, qui était jusqu&#8217;alors en statut <em>release candidate</em>.</p><p>Cette version est la première mise à jour majeure de Spring depuis la version 2.5 sortie il y a maintenant 2 ans et qui avait notamment apporté la configuration massive par annotations. Les principaux apports de la version 3.0 sont :</p><ul><li>Support de REST dans Spring MVC</li><li>Transition de l&#8217;ensemble du code du <em>framework</em> vers Java 5, tirant ainsi partie des <em>generics</em></li><li>Support de <a
title="Spring Expression Language (SpEL)" href="http://static.springsource.org/spring/docs/3.0.x/spring-framework-reference/html/ch06.html">Spring Expression Language (SpEL)</a> dans les annotations comme dans la configuration XML</li><li>Intégration de certains des mécanismes de configuration de <a
title="Spring JavaConfig" href="http://www.springsource.org/javaconfig">Spring JavaConfig</a></li><li>Intégration d&#8217;OXM, l&#8217;abstraction de mapping Objet / XML jusqu&#8217;alors incluse dans Spring WS</li><li>Support initial de la JSR-330 (Dependency Injection)</li></ul><p>Ces nouveautés étaient très attendues par la communauté et le succès à venir de Spring 3.0 semble acquis. Si cette projection est évidente, il est par contre plus délicat de dire qui aura la préférence dans les projets entre JAX-RS et le support de REST intégré à Spring MVC ou encore entre le nouveau standard qu&#8217;est la JSR-330 face à l&#8217;API propriétaire de Spring&#8230;</p><h3><a
name="RIA"></a>RIA</h3><h4><a
name="GWTMilestone"></a>GWT 2.0 Milestone 1</h4><p>GWT 2.0 arrive à grands pas ! Un petit avant goût nous est proposé depuis quelques jours avec la <a
title="Milestone 1" href="http://code.google.com/p/google-web-toolkit/downloads/list?can=1&amp;q=2.0+Milestone+1">Milestone 1</a> de ce nouveau cru GWT (via <a
title="InfoQ" href="http://www.infoq.com/news/2009/10/gwt-2-m1">InfoQ</a>).</p><p>Des nouveautés, il y en a ! Du changement de terminologie en passant par de nouveaux composants, GWT 2.0 apporte son lots de gros changements :</p><ul><li>nouvelle terminologie : le <em>hosted mode</em> devient le <em>developpement mode</em> et le <em>web mode</em> devient le <em>production mode</em> ;</li><li>distribution unique avec, vous le verrez sur la page de téléchargement, un JAR unique et non plus un JAR par environnement (Windows, Mac et Linux) ;</li><li><em>developpement mode</em> directement dans le navigateur (GWT utilise pour cela un <em>plugin</em> de lecture de code natif), les fenêtres du mode hosté disparaissent ;</li><li>ajout du <em>code splitting</em> qui découpera le code en plusieurs fragments : l&#8217;idée ici est que l&#8217;on pourra commencer à utiliser une application web GWT alors que certains fragments (non nécessaires au démarrage de la webapp) n&#8217;auront pas été chargés, ce qui permettra entre autres un démarrage plus rapide de l&#8217;application (chargement différé) ;</li><li><code>UIBinder</code> qui offrira la possibilité de déclarer nos écrans dans un fichier XML (swing-like ou flex-like, à vous de choisir <img
src='http://blog.xebia.fr/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> ) ;</li><li><em>ClientBundle</em> qui optimisera et combinera des ressources telles que les fichiers texte, les CSS ou les XML, ce qui permettra de réduire le trafic réseau et les temps de latence ;</li><li>utilisation d&#8217;<code>HtmlUnit</code> pour les tests unitaires ;</li><li>suppression des APIs GWT dépréciées jusqu&#8217;à la version 1.6.</li></ul><p>Les défauts que l&#8217;on remarquait sur les premières versions se corrigent donc petit à petit et GWT 2.0 affiche le souhait d&#8217;aider / simplifier la vie du développeur. Google confirme ainsi qu&#8217;il faut toujours compter sur GWT dans la course effréné au meilleur RIA du marché. Il est vrai que des applications comme <a
title="Google Wave" href="https://wave.google.com/wave/">Google Wave</a> montrent clairement le potentiel technique de GWT (robustesse, rapidité&#8230;).</p><p>Concernant l&#8217;<em>upgrade</em> vers cette nouvelle mouture, l&#8217;équipe se veut rassurante et précise qu&#8217;une montée de version entre la 1.7 et la 2.0 ne devrait pas demander beaucoup d&#8217;efforts.<br
/> Le JAR se récupère à cette <a
title="adresse" href="http://code.google.com/p/google-web-toolkit/downloads/list?can=1&amp;q=2.0+Milestone+1">adresse</a>.</p><h3><a
name="Lecoindelatechnique"></a>Le coin de la technique</h3><h4><a
name="memcachedvsDataGridserveurstup"></a>memcached vs. DataGrid, serveur stupide vs. serveur astucieux ?</h4><p>Billy Newport, Websphere eXtreme Scale, est juge et partie dans son billet <a
title="memcached versus DataGrid, dumb server versus smart server..." href="http://www.devwebsphere.com/devwebsphere/2009/10/memcached-versus-datagrid-dumb-server-versus-smart-server.html">memcached versus DataGrid, dumb server versus smart server&#8230;</a> dans lequel il compare le très à la mode <a
title="memcached" href="http://www.danga.com/memcached/">memcached</a> avec les sophistiquées DataGrid (<a
title="IBM Websphere eXtreme Scale" href="http://www-01.ibm.com/software/webservers/appserv/extremescale/">IBM Websphere eXtreme Scale</a>, <a
title="Gigaspaces XAP" href="http://www.gigaspaces.com/xap">Gigaspaces XAP</a>, <a
title="Oracle Coherence" href="http://www.oracle.com/technology/products/coherence/index.html">Oracle Coherence</a>).<br
/> Le point d&#8217;attention de Billy Newport est la <strong>rusticité de memcached qui amène souvent les utilisateurs à inventer au dessus un ensemble de <em>rustines</em> qui rendent la solution finalement complexe et sous optimale</strong>. Le principal défi est la gestion de la haute disponibilité et la faiblesse du <em>failover</em>. En effet, l&#8217;intelligence de memcached se limite à être un gros entrepôt de clés-valeurs ; un serveur memcached n&#8217;est pas conscient qu&#8217;il est utilisé en mode partitionné et clusterisé avec d&#8217;autres serveurs, ce sont les clients memcached qui connaissent la topologie et ont une intelligence de routage des plus rudimentaire avec un modulo sur le <em>hash</em> de la clef à stocker.<br
/> De ce fait, les mécanismes de <em>failover</em> en cas d&#8217;arrêt d&#8217;un serveur sont très limités ; une extension de <a
title="consistent hashing" href="http://www.spiteful.com/2008/03/17/programmers-toolbox-part-3-consistent-hashing/">consistent hashing</a> améliore la situation en évitant un transfert brutal de toutes les données que causerait la perte d&#8217;un nœud (tous les modulos changent). Ce ne sont que les débuts des difficultés, les ingénieurs de Facebook, gros consommateurs de memcached, détaillent dans <a
title="Designing the Facebook username land rush" href="http://www.facebook.com/note.php?note_id=114979233919">Designing the Facebook username land rush</a> les défis de fiabilité qu&#8217;ils ont rencontrés.<br
/> A cette rusticité de memcached, Billy Newport oppose la sophistication des DataGrids qui assurent en standard la fiabilité des données qu&#8217;elles gèrent, en consommant souvent moins de ressources mémoire, CPU et réseau.</p><p>Mesquinerie d&#8217;un éditeur qui cherche à tacler un concurrent ?</p><p>On peut en douter, l&#8217;argumentaire de Billy Newport est parfaitement cohérent. Memcached a été initialement créé pour mettre en cache des fragments html pour le site web <a
title="LiveJournal" href="http://www.livejournal.com/">LiveJournal</a>, des données en lecture seule qui ne nécessitent de fiabilité, alors que les DataGrids ont été dès leur conception destinées au monde de la finance qui a besoin d&#8217;une fiabilité sans faille.</p><p>Alors que vaut-il mieux, un serveur rudimentaire étoffé par des gens astucieux ou des DataGrids astucieuses directement utilisables par des équipes qui n&#8217;ont pas le temps ou les compétences pour inventer un cache distribué fiable ?</p><p>Sans négliger le coût des DataGrids, rappelons nous l&#8217;adage <em>&laquo;&nbsp;There is a fine line between clever and stupid&nbsp;&raquo;</em>, tout le monde n&#8217;est pas ingénieur <em>clustering</em> chez Facebook <img
src='http://blog.xebia.fr/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /></p><h4><a
name="Finalisationdelimplmentationde"></a>Finalisation de l&#8217;implémentation de référence de Beans Validation</h4><p>Emmanuel Bernard <a
title="annonce la disponibilité" href="http://in.relation.to/Bloggers/HibernateValidator4Unleashed">annonce la disponibilité</a> de la version 4.0 finale d&#8217;<a
title="Hibernate Validator" href="https://www.hibernate.org/412.html">Hibernate Validator</a>. Cette version est la première à implémenter la <a
title="JSR-303 (Beans Validation)" href="http://www.jcp.org/en/jsr/detail?id=303">JSR-303 (Beans Validation)</a> qui devrait se voir également finalisée dans le même temps.</p><p>En pratique, Validator 4.0 apporte principalement :</p><ul><li>La composition de contraintes : il est ainsi possible de créer des contraintes qui réutilisent des contraintes existantes afin d&#8217;éviter la duplication de code.</li><li>La notion de groupe : en catégorisant les contraintes dans des groupes, il est possible de ne valider qu&#8217;une partie des contraintes, ce qui trouvera son intérêt dans de nombreux cas d&#8217;utilisation.</li><li>Les contraintes <em>type-safe</em> : la compatibilité entre le type supporté par une contrainte et celui de la valeur qu&#8217;elle valide est maintenant vérifié par Validator.</li><li>Une API de création de contraintes : il est désormais possible de définir des contraintes par programmation et non plus uniquement par Annotation.</li><li>La définition de contraintes par XML : alors que la version précédente ne permettait la définition de contraintes que par annotations, il est désormais possible de les définir également dans un fichier XML.</li></ul><p>Les utilisateurs d&#8217;Hibernate Validator reconnaitront dans ces nouveautés des manques qu&#8217;ils avaient pu constater dans les versions précédentes. Toutefois, c&#8217;est probablement dans le support de la JSR-303 que réside la vraie révolution, puisqu&#8217;il s&#8217;agit d&#8217;unifier les très nombreux <em>frameworks</em> de validation qui se sont multipliés dans le monde Java depuis des années afin que nos applications ne dépendent plus que de <code>javax.validation</code>.</p><h4><a
name="LenoyaudedmServerdisponiblespa"></a>Le noyau de dm Server disponible séparément, pourquoi ?</h4><p>Steve Powell, SpringSource, <a
title="annonce" href="http://blog.springsource.com/">annonce</a> la disponibilité d&#8217;une version autonome du noyau de dm Server : dm Kernel. Il s&#8217;agit d&#8217;une abstraction autour d&#8217;OSGi qui offre un environnement plus élaboré pour la construction de modules indépendants.</p><p>Par cette annonce SpringSource s&#8217;aligne sur un certain nombre d&#8217;autres <em>middlewares</em> qui mettaient déjà à disposition leur noyau assurant leur modularité tel que <a
title="HK2" href="https://hk2.dev.java.net/">HK2</a> pour Glassfish, <a
title="MicroContainer" href="http://www.jboss.org/community/wiki/JBossMicrocontainer">MicroContainer</a> pour JBoss AS ou encore <a
title="Karaf" href="http://felix.apache.org/site/apache-felix-karaf.html">Karaf</a> pour Apache ServiceMix. Une question vient alors naturellement en tête, pourquoi une telle séparation entre un <em>middleware</em> et son noyau en deux projets distincts ? On trouve des éléments de réponse en revenant sur le contexte entourant la sortie de chacun des noyaux concernés :</p><ul><li>Guillaume Nodet <a
title="expliquait" href="http://gnodet.blogspot.com/2009/04/apache-karaf.html">expliquait</a> la création d&#8217;un projet à part pour le noyau de ServiceMix par le souhait exprimé par plusieurs projets Apache de se baser sur celui-ci.</li><li>Steve Powell dans son annonce de dm Kernel met surtout en avant le fait qu&#8217;il ait pu être extrait de dm Server sans modification, prouvant ainsi le <em>design</em> propre et modulaire du serveur d&#8217;application de SpringSource.</li><li>Glassfish HK2 et JBoss MicroContainer ont quant à eux été l&#8217;occasion de mettre en avant la légèreté du serveur d&#8217;application auquel ils sont liés.</li></ul><p>Si la raison d&#8217;être de ces projets de noyaux modulaires se situe quelque part entre design, partage, et marketing, la communauté Java s&#8217;en trouve dans tous les cas enrichie puisqu&#8217;ils permettent à des projets naissant de bénéficier immédiatement d&#8217;une architecture flexible et d&#8217;un socle robuste.</p><h4><a
name="UnnouveaumoteurdestockagepourA"></a>Un nouveau moteur de stockage pour ActiveMQ 5.3 : KahaDB</h4><p>Rob Davies <a
title="annonce" href="http://rajdavies.blogspot.com/2009/10/apache-activemq-53-released.html">annonce</a> la disponibilité d&#8217;ActiveMQ 5.3. Cette nouvelle version apporte son lot de nouveautés et d&#8217;améliorations à ce <em>Message Oriented Middleware</em> très populaire dans le monde Open Source.</p><p>Parmi les nouveautés, c&#8217;est la finalisation du nouveau moteur de persistance de messages KahaDB qui retient l&#8217;attention. Annoncé il y a un an sur la <a
title="mailing list" href="http://markmail.org/message/c3wqvpkvhpo5gyfv#query:KahaDB%20kaha+page:1+mid:c3wqvpkvhpo5gyfv+state:results">mailing list</a> du projet, et en gestation depuis, le but de KahaDB est d&#8217;apporter la vélocité de <em>Kaha Message Store</em> et la fiabilité de <em>AMQ Message Store</em>. Ce nouveau moteur de persistance offre ainsi :</p><ul><li>Journal transactionnel assurant la consistance des données</li><li>Réplication des données très performante</li><li>Support de plusieurs nœuds <em>slaves</em></li><li>Aucun point central d&#8217;échec, le noeud <em>master</em> peut être reconstruit sur un <em>slave</em> suite à une défaillance</li></ul><p>KahaDB se base sur <a
title="ZooKeeper" href="http://hadoop.apache.org/zookeeper/">ZooKeeper</a> pour assurer l&#8217;élection d&#8217;un nouveau nœud <em>master</em>.</p><p>Ce nouveau moteur de persistance s&#8217;annonce très novateur et devrait assurer l&#8217;attractivité de cette nouvelle version d&#8217;ActiveMQ. Les lecteurs intéressés par ActiveMQ noteront par ailleurs qu&#8217;<a
title="un ouvrage" href="http://www.manning.com/snyder/">un ouvrage</a> lui étant entièrement consacré paraitra courant 2010 chez Manning.</p><h3><a
name="EvnementsdenotrecommunautenFra"></a>Evènements de notre communauté en France et à l&#8217;étranger</h3><h4><a
name="TraductiondelapremirepartiedeD"></a>Traduction de la première partie de DDD Quickly</h4><p><em>Pour rappel, DDD = Domain Driven Design</em></p><p><a
title="Guillaume Lebur" href="http://blog.infosaurus.fr">Guillaume Lebur</a> est à l&#8217;initiative d&#8217;un travail intéressant et difficile : la traduction en anglais du livre <a
title="DDD Quickly" href="http://www.infoq.com/news/2006/12/domain-driven-design">DDD Quickly</a>. Ce livre propose une approche plus rapide du DDD afin d&#8217;en cerner les problématiques, contrairement au <a
title="livre" href="http://domaindrivendesign.org/books#DDD">livre</a> d&#8217;<a
title="Eric Evans" href="http://domaindrivendesign.org/about#eric">Eric Evans</a> qui se veut plus exhaustif et précis sur le sujet.</p><p>Son travail est disponible sur le site <a
title="DDD France" href="http://www.dddfrance.org">DDD France</a>, communauté libre qui ne parle que du DDD en français. En bon français cela donne <a
title="DDD vite fait" href="http://www.dddfrance.org/DDDViteFait">DDD vite fait</a> et surtout beaucoup de travail. La première partie est d&#8217;ores et déjà traduite, donc félicitations Guillaume et bon courage pour la suite !</p> ]]></content:encoded> <wfw:commentRss>http://blog.xebia.fr/2009/10/19/revue-de-presse-xebia-130/feed/</wfw:commentRss> <slash:comments>5</slash:comments> </item> <item><title>Revue de Presse Xebia</title><link>http://blog.xebia.fr/2009/07/20/revue-de-presse-xebia-118/</link> <comments>http://blog.xebia.fr/2009/07/20/revue-de-presse-xebia-118/#comments</comments> <pubDate>Mon, 20 Jul 2009 16:20:01 +0000</pubDate> <dc:creator>Xebia France</dc:creator> <category><![CDATA[Revue de presse]]></category> <category><![CDATA[CEP]]></category> <category><![CDATA[Cloud Computing]]></category> <category><![CDATA[Complex Event Processing]]></category> <category><![CDATA[EDA]]></category> <category><![CDATA[Flex]]></category> <category><![CDATA[Flex Monkey]]></category> <category><![CDATA[GWT]]></category> <category><![CDATA[J2EE]]></category> <category><![CDATA[Java / JEE]]></category> <category><![CDATA[JavaRebel]]></category> <category><![CDATA[OpenDS]]></category> <category><![CDATA[REST]]></category> <category><![CDATA[RIA]]></category> <category><![CDATA[SOA]]></category> <guid
isPermaLink="false">http://blog.xebia.fr/?p=2567</guid> <description><![CDATA[La revue de presse de l’actualité Java/J2EE hebdomadaire proposée par Xebia. Actualité éditeurs / SSII Les standards du Cloud Computing en préparation Fin de JavaRebel, place à &#8230; RIA GWT 1.7 pour les nouveaux navigateurs ! Flex Monkey 1.0 SOA La base de données dans une Event Driven Architecture REST et les abus de langage [...]]]></description> <content:encoded><![CDATA[<p><img
src="http://blog.xebia.fr/wp-content/uploads/2007/06/revuedepresse.png" alt="Revue de Presse Xebia" style="margin: 1em 1em 1em 1em; float: right;" /><br
/> <em>La revue de presse de l’actualité Java/J2EE hebdomadaire proposée par Xebia.</em></p><p><strong>Actualité éditeurs / SSII</strong></p><ul><li><a
href="http://blog.xebia.fr/2009/07/20/revue-de-presse-xebia-118/#LesstandardsduCloudComputingen">Les standards du Cloud Computing en préparation</a></li><li><a
href="http://blog.xebia.fr/2009/07/20/revue-de-presse-xebia-118/#FindeJavaRebelplace">Fin de JavaRebel, place à &#8230;</a></li></ul><p><strong>RIA</strong></p><ul><li><a
href="http://blog.xebia.fr/2009/07/20/revue-de-presse-xebia-118/#GWTpourlesnouveauxnavigateurs">GWT 1.7 pour les nouveaux navigateurs !</a></li><li><a
href="http://blog.xebia.fr/2009/07/20/revue-de-presse-xebia-118/#FlexMonkey">Flex Monkey 1.0</a></li></ul><p><strong>SOA</strong></p><ul><li><a
href="http://blog.xebia.fr/2009/07/20/revue-de-presse-xebia-118/#LabasededonnesdansuneEventDriv">La base de données dans une <em>Event Driven Architecture</em></a></li><li><a
href="http://blog.xebia.fr/2009/07/20/revue-de-presse-xebia-118/#RESTetlesabusdelangage">REST et les abus de langage</a></li></ul><p><strong>Le coin de la technique</strong></p><ul><li><a
href="http://blog.xebia.fr/2009/07/20/revue-de-presse-xebia-118/#OpenDSpasseenversion">OpenDS passe en version 2.0</a></li><li><a
href="http://blog.xebia.fr/2009/07/20/revue-de-presse-xebia-118/#bonnesraisonsdechercherlesucce">10 bonnes raisons de chercher le successeur de Java</a></li></ul><p><strong>Evènements de notre communauté en France et à l&#8217;étranger</strong></p><ul><li><a
href="http://blog.xebia.fr/2009/07/20/revue-de-presse-xebia-118/#SoireTontonsFlexeurs">Soirée Tontons Flexeurs</a></li></ul><h3><a
name="ActualitditeursSSII"></a>Actualité éditeurs / SSII</h3><h4><a
name="LesstandardsduCloudComputingen"></a>Les standards du Cloud Computing en préparation</h4><p>Comme pour tout marché émergeant, le Cloud Computing s&#8217;est développé autour de technologies propriétaires mises au point par différents éditeurs et fournisseurs. Une <a
href="http://blog.xebia.fr/2009/06/15/revue-de-presse-xebia-113/#RetoursurleCloudCamp" title="session ddie aux problmatiques dintgration" >session dédiée aux problématiques d&#8217;intégration</a> lors du CloudCamp Paris avait conclu qu&#8217;aucun standard adapté n&#8217;était disponible pour permettre le transfert d&#8217;informations entre les différents fournisseurs et technologies du Cloud Computing.</p><p>Le monde du Cloud Computing montant en puissance mois après mois, la problématique de standardisation se fait de plus en plus pressante. C&#8217;est donc sans surprise qu&#8217;on a assisté à la constitution d&#8217;organismes de standardisation et de groupes de travail afin d&#8217;établir les standards à venir. Afin de donner une visibilité à l&#8217;ensemble de ces efforts, l&#8217;Open Grid Forum (OGF) annonce la création d&#8217;un site commun ou chaque organisme est invité à présenter ses travaux en cours : <a
href="http://cloud-standards.org" title="cloud-standards.org" >http://cloud-standards.org</a>. On notera particulièrement deux spécifications prometteuses :</p><ul><li><a
href="http://www.dmtf.org/" title="Open Virtualization Format (OVF)" >Open Virtualization Format (OVF)</a> : Format de <em>packaging</em> d&#8217;application permettant la distribution et le déploiement simplifié sur environnement virtualisé.</li><li><a
href="http://www.occi-wg.org/" title="Open Cloud Computing Interface (OCCI)" >Open Cloud Computing Interface (OCCI)</a> : API standardisée permettant la définition, le <em>provisioning</em> et le <em>monitoring</em> d&#8217;infrastructures exposées en tant que services sur un Cloud (IaaS).</li></ul><p>Par ailleurs, l&#8217;<a
href="http://www.opencloudconsortium.org/" title="Open Cloud Consortium (OCC)" >Open Cloud Consortium (OCC)</a> explique travailler sur des <em>frameworks</em> d&#8217;interopérabilité entre Clouds et l&#8217;<a
href="http://www.oasis-open.org" title="OASIS" >OASIS</a> expose quant à elle sa vision selon laquelle le Cloud Computing est une extension naturelle des concepts SOA, et que, par conséquent, de nombreux standards qu&#8217;elle développe actuellement intègrent cette problématique.</p><h4><a
name="FindeJavaRebelplace"></a>Fin de JavaRebel, place à &#8230;</h4><p>Zeroturnaround, l&#8217;éditeur de <a
href="http://blog.xebia.fr/2008/11/14/javarebel/" title="JavaRebel" >JavaRebel</a>, doit faire face à un joli défi : pour avoir fait une entorse à la marque déposée Java, il doit modifier le nom de son produit, sans pour autant perdre la notoriété d&#8217;ores et déjà acquise. Pour faire d&#8217;une pierre deux coups (modifier effectivement ce nom mais aussi s&#8217;offrir un joli coup de pub), l&#8217;éditeur soumet ce renommage <a
href="http://www.zeroturnaround.com/blog/renaming-javarebel/" title=" un concours" >à un concours</a>. En jeu, une licence <strike>JavaRebel</strike> à vie&#8230;</p><h3><a
name="RIA"></a>RIA</h3><h4><a
name="GWTpourlesnouveauxnavigateurs"></a>GWT 1.7 pour les nouveaux navigateurs !</h4><p>Les dernières <em>releases</em> de GWT étaient plutôt espacées dans le temps (1 an entre 1.4/1.5 et 8 mois entre 1.5/1.6) mais il n&#8217;aura fallu attendre que 3 mois pour voir débarquer la version <strike>1.6.5</strike> <a
href="http://groups.google.com/group/Google-Web-Toolkit-Contributors/browse_thread/thread/a0d35938d940d32d?pli=1" title="17 de GWT" >1.7 de GWT</a>.</p><p>Cette dernière version (définie comme mise à jour mineure / <em>bugfix release</em>) apporte un meilleur support des derniers navigateurs à savoir Internet Explorer 8, FireFox 3.5 et Safari 4 (meilleur support d&#8217;IE8 = <a
href="http://ajaxian.com/archives/the-slow-death-of-ie-6-support-youtube-and-browser-placement" title="disparition dIE6" >disparition d&#8217;IE6</a> ? <img
src='http://blog.xebia.fr/wp-includes/images/smilies/icon_wink.gif' alt=';-)' class='wp-smiley' /> ).</p><p>L&#8217;ajout du <code>user.agent ie8</code>, qui peut potentiellement impacter certains projets, a fait pencher la balance vers un numéro de version de type majeure (1.7) pour forcer les développeurs à être attentif sur ce point important (une version de type 1.6.5 n&#8217;aurait pas eu le même impact).</p><p>Une simple recompilation suffit pour être compatible avec ces navigateurs, aucune modification de code n&#8217;est requise. Disponible comme toujours dans la section <a
href="http://code.google.com/p/google-web-toolkit/downloads/list?can=1&#038;q=GWT+1.7.0" title="tlchargement" >téléchargement</a> du Google Code.</p><h4><a
name="FlexMonkey"></a>Flex Monkey 1.0</h4><p>Plus de 7 mois après la sortie de la version 0.5 (<a
href="http://blog.xebia.fr/2008/12/01/revue-de-presse-xebia-85/#FlexMonkey" title="précédente revue de presse" >précédente revue de presse</a>), <a
href="http://flexmonkey.gorillalogic.com/gl/stuff.flexmonkey.html" title="FlexMonkey" >FlexMonkey</a>, le framework de tests automatisés pour applications Flex et Air, se met à jour et passe ainsi en version 1.0 (par <a
href="http://www.infoq.com/news/2009/07/flex-monkey-1.0-released" title="InfoQ" >InfoQ</a>).</p><p>Au menu : réorganisation de l&#8217;interface utilisateur, support direct d&#8217;applications Air (la console FlexMonkey devenant d&#8217;ailleurs une application Air) et tests générés pour Fluint (qui pourront aussi être lancés par FlexUnit 4).</p><p>Plusieurs tutoriels/exemples sont déjà disponibles sur la toile, on retiendra plus particulièrement le <a
href="http://www.adobe.com/devnet/flex/articles/flexmonkey.html" title="Getting Started" >Getting Started</a> d&#8217;Eric Owens <em>(Gorilla Logic)</em> et l&#8217;article très complet de Stuart Stern (CEO de <em>Gorilla Logic</em> et <a
href="http://stu-stern.blogspot.com/2009/07/monkey-has-landed.html" title="créateur de FlexMonkey" >créateur de FlexMonkey</a>) sur <a
href="http://www.infoq.com/articles/flexmonkey-ui-unit-testing" title="InfoQ" >InfoQ</a>.</p><h3><a
name="SOA"></a>SOA</h3><h4><a
name="LabasededonnesdansuneEventDriv"></a>La base de données dans une <em>Event Driven Architecture</em></h4><p>Sur son blog dédié aux traitements des évènements dans les systèmes d&#8217;informations, Tibco <a
href="http://tibcoblogs.com/cep/2009/07/14/exploiting-databases-in-an-event-based-infrastructure-just-got-easier/" title="a publi un billet" >a publié un billet</a> portant sur le positionnement d&#8217;une base de données dans une <em>Event Driven Architecture</em> (EDA).</p><p>Se trouvant à la base de nombreuses applications et services, elle constitue en effet une potentielle source d&#8217;évènements très intéressante. L&#8217;auteur met alors en avant la technologie <a
href="http://download.oracle.com/docs/cd/B28359_01/appdev.111/b28424/adfns_cqn.htm" title="Continuous Query Notification (CQN)" ><em>Continuous Query Notification</em> (CQN)</a> intégrée à Oracle 11g, et qui permet aux clients d&#8217;une base de données de s&#8217;enregistrer pour recevoir des notifications lorsque les données d&#8217;une table ou le résultat d&#8217;une requête prédéfinie changent. On peut assimiler cette technologie à un mécanisme de <em>trigger</em> qui rappellerait des systèmes externes.</p><p>Cette possibilité permet ainsi d&#8217;enrichir les sources d&#8217;évènements disponibles au sein du système d&#8217;information : de par son positionnement, la base de données est capable d&#8217;offrir simplement des évènements qui seraient parfois complexes à générer au niveau applicatif. Dans une telle configuration, le <a
href="http://en.wikipedia.org/wiki/Complex_Event_Processing" title="Complex Event Processing (CEP)" ><em>Complex Event Processing</em> (CEP)</a> permettra alors de manipuler le volume important d&#8217;évènements ainsi créés afin d&#8217;en extraire des informations métiers utiles.</p><h4><a
name="RESTetlesabusdelangage"></a>REST et les abus de langage</h4><p>Ryan McDonough, contributeur au projet <a
href="http://www.jboss.org/resteasy/" title="RESTEasy" >RESTEasy</a>, <a
href="http://www.damnhandy.com/2009/07/19/you-cant-do-anything-over-rest/" title="a publi un billet" >a publié un billet</a> dans lequel il fait un parallèle entre les abus de langages liés à REST et les mauvaises pratiques qui en découlent.</p><p>Parmi les erreurs de compréhension qu&#8217;il met en avant, on retrouve l&#8217;assimilation de REST à un protocole, la définition de REST en tant que synonyme de HTTP, ou encore l&#8217;utilisation abusive du qualificatif RESTful.</p><p>Il est souvent question lorsque l&#8217;on parle de REST de définition d&#8217;URLs, de représentations multiples d&#8217;une ressource, ou, plus couramment encore, d&#8217;opposition à SOAP. Loin de ces problématiques, Ryan McDonough met ici en avant le fait que REST est dans la réalité trop souvent utilisé pour justifier à tort tout type d&#8217;utilisation douteuse de JSON ou XML sur HTTP&#8230;</p><p>A ce titre, le <a
href="http://oreilly.com/catalog/9780596529260/" title="livre RESTful WebServices" >livre RESTful WebServices</a> de Leonard Richardson et Sam Ruby permet de comprendre en détail toutes les nuances de ce modèle d&#8217;architecture qui sont parfois délicates à appréhender.</p><h3><a
name="Lecoindelatechnique"></a>Le coin de la technique</h3><h4><a
name="OpenDSpasseenversion"></a>OpenDS passe en version 2.0</h4><p>La version 2.0 du projet <a
href="http://www.opends.org/" title="OpenDS" >OpenDS</a> est disponible. Il s&#8217;agit d&#8217;un serveur LDAP implémenté entièrement en Java et soutenu par Sun ; ces caractéristiques le positionne donc directement face à <a
href="http://directory.apache.org/" title="Apache Directory Server" >Apache Directory Server</a>, son équivalent développé par la fondation Apache.</p><p>Ludovic Poitou <a
href="http://blogs.sun.com/Ludo/entry/opends_2_0_is_here" title="prsente les principales nouveauts" >présente les principales nouveautés</a> de cette version :</p><ul><li>Ajout d&#8217;un <em>control panel</em> graphique, en remplacement du <em>status-panel</em> de la version précédente, permettant d&#8217;administrer le serveur et ses données</li><li>Amélioration de la réplication <em>multi-master</em><li>Support de connections sécurisées SASL</li><li>Affinement du système de contrôle d&#8217;accès</li><li>Amélioration des performances. On notera sur ce point la collaboration avec l&#8217;équipe du <em>garbage collector</em> G1 qui avait <a
href="http://blogs.sun.com/mattswift/entry/garbage_first_the_g1_garbage" title="t expose il y a 2 mois" >été exposée il y a 2 mois</a></li></ul><p>Au delà de l&#8217;ajout de fonctionnalités, la question du positionnement reste entière pour OpenDS tout comme pour son rival ApacheDS. En effet, l&#8217;annuaire est en général une ressource critique du système d&#8217;information pour laquelle on préfèrera généralement une implémentation native plus mature. Dès lors, OpenDS se destinera principalement au poste de développement, aux tests, et aux applications embarquant directement leur propre annuaire comme mécanisme de persistance.</p><h4><a
name="bonnesraisonsdechercherlesucce"></a>10 bonnes raisons de chercher le successeur de Java</h4><p>Dans la droite ligne d&#8217;un certain nombre de keynotes récentes, <a
href="http://www.theserverside.com/news/thread.tss?thread_id=55185" title="Mario Fusco expose sur TheServerSide" >Mario Fusco expose, sur TheServerSide</a>, 10 bonnes raisons de chercher un héritier à Java. Ces &#8216;manques&#8217; de Java sont souvent évoqués, parfois partiellement comblés par les futures spécifications. Il nous a semblé malgré tout intéressant de les reprendre ici, ne serait ce pour que ces limitation soient bien comprises de tous.</p><ul><li>Absence de Closures, et son corollaire, l&#8217;absence de pointeur sur les fonctions (<a
href="http://www.joelonsoftware.com/items/2006/08/01.html" title="firstclass function" ><em>first-class function</em></a>).</li><li>L&#8217;existence de types primitifs (le langage n&#8217;est pas 100 % objet), et un autoboxing pas toujours performant (sur la gestion des null par exemple).</li><li>La faiblesse des Génériques : impossible de découvrir leur type au Runtime.</li><li>L&#8217;impossibilité de supprimer certains warnings concernant les génériques.</li><li>Impossible de passer un paramètre <em>void</em> à une méthode.</li><li>Le pattern <em>proxy</em> n&#8217;est pas implémenté de manière native sur les classes concrètes.</li><li>Le switch&#8230;case est très faible</li><li>La présence des exceptions <em>Checked</em> qui obligent à de douloureux <code>try...catch</code> ou à d&#8217;illisibles <code>throws</code></li></ul><p>Mario Fusco a l&#8217;honnêteté de reconnaitre que nombre de ces défauts font partie des péchés originels de Java et qu&#8217;il est quasiment impossible de les remettre en cause sans gravement compromettre la compatibilité ascendante du language, qui en est une des pierres angulaires. C&#8217;est pour cette raison qu&#8217;il se met en quête du <em>next gen language</em></p><p>Vous ne manquerez pas de remarquer que, comme tout article qui parle de succéder à Java, ce billet est richement (parfois de manière assez virulente) commenté.</p><h3><a
name="EvnementsdenotrecommunautenFra"></a>Evènements de notre communauté en France et à l&#8217;étranger</h3><h4><a
name="SoireTontonsFlexeurs"></a>Soirée Tontons Flexeurs</h4><p>Demain (mardi 21 Juillet) de 18h à 20h se déroulera une nouvelle soirée des <a
href="http://groups.adobe.com/groups/193bcaff5f/summary" title="Tontons Flexeurs" >Tontons Flexeurs</a> dont le sujet est un retour d&#8217;expériences sur la mise en place d&#8217;applications Flex en entreprise dans le monde Java (tests unitaires/fonctionnels, intégration continue&#8230;).<br
/> L&#8217;événement étant déjà <a
href="http://reunion-ttfx-juillet-2009.eventbrite.com/" title="complet" >complet</a>, il ne vous reste plus qu&#8217;à bookmarker leur <a
href="http://groups.adobe.com/resources/8a214877ac/summary" title="calendrier" >calendrier</a> pour être informé des prochaines réunions <img
src='http://blog.xebia.fr/wp-includes/images/smilies/icon_wink.gif' alt=';-)' class='wp-smiley' /></p> ]]></content:encoded> <wfw:commentRss>http://blog.xebia.fr/2009/07/20/revue-de-presse-xebia-118/feed/</wfw:commentRss> <slash:comments>6</slash:comments> </item> <item><title>Revue de Presse Xebia</title><link>http://blog.xebia.fr/2009/07/13/revue-de-presse-xebia-117/</link> <comments>http://blog.xebia.fr/2009/07/13/revue-de-presse-xebia-117/#comments</comments> <pubDate>Mon, 13 Jul 2009 15:53:20 +0000</pubDate> <dc:creator>Xebia France</dc:creator> <category><![CDATA[Revue de presse]]></category> <category><![CDATA[ESB]]></category> <category><![CDATA[GChart]]></category> <category><![CDATA[GWT]]></category> <category><![CDATA[J2EE]]></category> <category><![CDATA[Java / JEE]]></category> <category><![CDATA[JBoss]]></category> <category><![CDATA[jBPM]]></category> <category><![CDATA[RIA]]></category> <category><![CDATA[SOA]]></category> <category><![CDATA[Sun]]></category> <guid
isPermaLink="false">http://blog.xebia.fr/?p=2541</guid> <description><![CDATA[La revue de presse de l’actualité Java/J2EE hebdomadaire proposée par Xebia. RIA GChart 2.5 pour GWT SOA jBPM 4.0 est disponible Avez-vous besoin d&#8217;un ESB ? Le coin de la technique Making Good Software, bonnes pratiques du développement logiciel Evènements de notre communauté en France et à l&#8217;étranger Sun fait évoluer sa certification programmer RIA [...]]]></description> <content:encoded><![CDATA[<p><img
src="http://blog.xebia.fr/wp-content/uploads/2007/06/revuedepresse.png" alt="Revue de Presse Xebia" style="margin: 1em 1em 1em 1em; float: right;" /><br
/> <em>La revue de presse de l’actualité Java/J2EE hebdomadaire proposée par Xebia.</em></p><p><strong>RIA</strong></p><ul><li><a
href="http://blog.xebia.fr/2009/07/13/revue-de-presse-xebia-117/#GChartpourGWT">GChart 2.5 pour GWT</a></li></ul><p><strong>SOA</strong></p><ul><li><a
href="http://blog.xebia.fr/2009/07/13/revue-de-presse-xebia-117/#jBPMestdisponible">jBPM 4.0 est disponible</a></li><li><a
href="http://blog.xebia.fr/2009/07/13/revue-de-presse-xebia-117/#AvezvousbesoindunESB">Avez-vous besoin d&#8217;un ESB ?</a></li></ul><p><strong>Le coin de la technique</strong></p><ul><li><a
href="http://blog.xebia.fr/2009/07/13/revue-de-presse-xebia-117/#MakingGoodSoftwarebonnespratiq">Making Good Software, bonnes pratiques du développement logiciel</a></li></ul><p><strong>Evènements de notre communauté en France et à l&#8217;étranger</strong></p><ul><li><a
href="http://blog.xebia.fr/2009/07/13/revue-de-presse-xebia-117/#Sunfaitvoluersacertificationpr">Sun fait évoluer sa certification <em>programmer</em></a></li></ul><h3><a
name="RIA"></a>RIA</h3><h4><a
name="GChartpourGWT"></a>GChart 2.5 pour GWT</h4><p>Afficher des résultats sous forme d&#8217;histogramme ou de camembert se résume pour  bon nombre de projets Java à l&#8217;import de <a
href="http://www.jfree.org/jfreechart/" title="JFreeChart" >JFreeChart</a>, la librairie de référence pour faire des diagrammes en Java (<a
href="http://www.jfree.org/jfreechart/jfreechart-1.0.13-demo.jnlp" title="dmo" >démo</a>).</p><p>Pour les projets GWT, une autre API fait beaucoup parler d&#8217;elle en ce moment (entre autres sur <a
href="http://ajaxian.com/archives/gchart-25-faster-sharper-canvas-rendered-pie-line-and-area-charts" title="Ajaxian" >Ajaxian</a> et <a
href="http://www.ongwt.com/post/2009/07/03/Client-side-GChart-25" title="onGWT" >onGWT</a>) et cette API est <a
href="http://code.google.com/p/gchart/" title="GChart 25" >GChart 2.5</a>. Son objectif est simple : réaliser rapidement de beaux graphiques.</p><p>Une <a
href="http://gchart.googlecode.com/svn/trunk/live-demo/v2_5/com.googlecode.gchart.gchartdemoapp.GChartDemoApp/GChartDemoApp.html" title="démo" >démo</a> nous montre les capacités de l&#8217;outil en termes de rapidité d&#8217;affichage. Le code source de chaque exemple est aussi disponible (<a
href="http://gchart.googlecode.com/svn/trunk/live-demo/v2_5/com.googlecode.gchart.gchartdemoapp.GChartDemoApp/GChartExample11.txt" title="source" >source</a> du graphique <em>Estimated Future Oil Prices</em>).</p><p>Pour la release note technique (plus de compatibilité GWT 1.4, navigateurs testés, objets et méthodes dépréciés, bugfix&#8230;), tout se trouve sur cette <a
href="http://gchart.googlecode.com/svn/trunk/doc/com/googlecode/gchart/client/doc-files/gchart2p5features.html" title="page" >page</a>. Il ne reste plus qu&#8217;à <a
href="http://code.google.com/p/gchart/downloads/list" title="tester" >tester</a> ! Les retours d&#8217;expériences sont bienvenus dans les commentaires.</p><h3><a
name="SOA"></a>SOA</h3><h4><a
name="jBPMestdisponible"></a>jBPM 4.0 est disponible</h4><p>Tom Baeyens <a
href="http://processdevelopments.blogspot.com/2009/07/jbpm-40-is-out.html" title="annonce sur son blog" >annonce sur son blog</a> la disponibilité de la version finale de jBPM 4.0 respectant ainsi le <a
href="http://blog.xebia.fr/2009/04/06/revue-de-presse-xebia-103/#LecalendrierseconfirmepourjBPM" title="calendrier prvu" >calendrier prévu</a>.</p><p>jBPM n&#8217;avait pas connu d&#8217;évolution majeure depuis 2005, cette nouvelle version constitue donc un évènement majeur pour les utilisateurs de jBPM. Les nouveautés apportées sont importantes :</p><ul><li>Nouvelle version du plugin Eclipse (GPD) permettant la définition graphique de processus suivant la notation <a
href="http://fr.wikipedia.org/wiki/Business_Process_Modeling_Notation" title="BPMN" >BPMN</a></li><li>Introduction de <a
href="http://docs.jboss.com/jbpm/pvm/article/" title="JBoss PVM" >JBoss PVM</a> (Process Virtual Machine), un moteur de <em>workflow</em> générique utilisé par jBPM pour l&#8217;implémentation des différents langages de définition de processus qu&#8217;il propose (jPDL, BPEL et Pageflow)</li><li>Refonte des schémas de base de données utilisés pour les rendre plus évolutifs</li><li>Intégration native à Spring</li><li>Amélioration des performances</li><li>Simplification de l&#8217;installation</li></ul><p>Cette nouvelle version est d&#8217;ores et déjà disponible sur le <a
href="http://repository.jboss.com/maven2/org/jbpm/jbpm4/" title="repository Maven de JBoss" ><em>repository</em> Maven de JBoss</a>. Par ailleurs, l&#8217;ensemble des apports de jBPM 4 seront passés en revue lors du <a
href="http://www.jbossworld.com/" title="JBoss World 2009" >JBoss World 2009</a> en septembre prochain, ainsi qu&#8217;à <a
href="http://www.devoxx.com/display/DV09/jBPM4+in+Action" title="Devoxx 09" >Devoxx 09</a> en novembre.</p><h4><a
name="AvezvousbesoindunESB"></a>Avez-vous besoin d&#8217;un ESB ?</h4><p>Ross Mason, <a
href="http://www.mulesource.org/display/COMMUNITY/Home" title="fondateur de MuleSource" >fondateur de MuleSource</a> a publié sur son blog <a
href="http://blog.mulesource.org/2009/07/to-esb-or-not-to-esb" title="une liste de points à vérifier avant de mettre en place un ESB" >une liste de points à vérifier avant de mettre en place un ESB</a>. L&#8217;article, au titre plutôt racoleur (To ESB or not to ESB), à fait du bruit sur Twitter. D&#8217;ailleurs, en aparté, pour avoir nous-mêmes fait circuler ce lien, nous avons été surpris d&#8217;avoir été répondu par un certain <a
href="http://twitter.com/shakesp/status/2454701331" title="shakesp" >@shakesp</a>.</p><p>Pour en revenir au cœur du sujet, les points qui nous semblent intéressants sont simples à retenir :</p><ul><li>Commencez à penser à un ESB pour intégrer 3 applications, à plusieurs ESB si vous en avez plus que 10</li><li>Avez-vous absolument besoin de plusieurs protocoles de communications ?</li><li>Avez-vous de réels besoins d&#8217;intégration ? Découpage, routing, agrégation de messages &#8230;</li></ul><h3><a
name="Lecoindelatechnique"></a>Le coin de la technique</h3><h4><a
name="MakingGoodSoftwarebonnespratiq"></a>Making Good Software, bonnes pratiques du développement logiciel</h4><p>Une fois n&#8217;est pas coutume, nous vous proposons cette semaine la découverte d&#8217;un blog tout récemment ajouté dans nos RSS : <a
href="http://www.makinggoodsoftware.com" title="Making Good Software" >Making Good Software</a>. Ce blog établit des listes de bonnes (et mauvaises) pratiques du développement logiciel. Non pas que son contenu soit extraordinaire, puisque vous en connaissez probablement déjà les plus gros points, mais il a le mérite de les rappeler : toute ressemblance avec personnes existantes ou ayant existé ne suivant pas ces règles ne saurait être que fortuite <img
src='http://blog.xebia.fr/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /></p><p>Dans un premier article, une liste des <a
href="http://www.makinggoodsoftware.com/2009/07/07/5-top-non-technical-mistakes-made-by-programmers/" title="5 erreurs non techniques" >5 erreurs non techniques</a> les plus répandues chez les développeurs, dont nos 2 préférés qui vous feront probablement penser à quelqu&#8217;un de votre open-space:</p><ul><li>Ego surdimensionné : &nbsp;&raquo; je suis le meilleur développeur au monde, et ça me permet d&#8217;avoir toujours raison &nbsp;&raquo; (ou la fameuse conversation à sens unique)</li><li>Manque de discipline : &nbsp;&raquo; j&#8217;essaye de tout faire en même temps, mais je ne termine jamais rien &nbsp;&raquo; (définition de <em>done</em> plus que douteuse)</li></ul><p>Un autre article vous donne une liste de <a
href="http://www.makinggoodsoftware.com/2009/06/04/10-commandments-for-creating-good-code/" title="10 points  suivre pour crire du bon code" >10 points à suivre pour écrire du bon code</a> :</p><ul><li>Factorisez votre code, pour simplifier la correction d&#8217;anomalies et le refactoring</li><li>Ecrivez des méthodes les plus courtes possibles</li><li>Travaillez le nom des vos objets, variables et méthodes, il s&#8217;agit de la meilleure des documentations</li><li>Une seule responsabilité par classe,</li><li>Travaillez l&#8217;organisation de votre code, par groupes physiques de fichiers et groupes logiques de fonctions</li><li>Faites des tests unitaires, quand vous aurez fini, faites-en encore plus <img
src='http://blog.xebia.fr/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /></li><li>Refactorez le plus tôt et le plus souvent possible</li><li>Auto-documentez votre code</li><li>Privilégiez le code par interface</li><li>Faites des revues de code régulières</li></ul><p>Dans un autre article l&#8217;auteur décrit une matrice permettant de <a
href="http://www.makinggoodsoftware.com/2009/06/30/types-of-code-how-to-rate-your-code-from-a-to-f/" title="noter votre code" >noter votre code</a> en fonction de sa simplicité et de son extensibilité.</p><p>Et pour finir, histoire de ne pas commenter l&#8217;ensemble des billets du blog, les <a
href="http://www.makinggoodsoftware.com/2009/06/14/7-steps-to-fix-an-error/" title="7 tapes pour corriger un bug" >7 étapes pour corriger un bug</a> : de la recherche de l&#8217;erreur, à l&#8217;analyse des dommages collatéraux.</p><h3><a
name="EvnementsdenotrecommunautenFra"></a>Evènements de notre communauté en France et à l&#8217;étranger</h3><h4><a
name="Sunfaitvoluersacertificationpr"></a>Sun fait évoluer sa certification <em>programmer</em></h4><p>Sun  teste  une nouvelle version de sa certification SCJP (Sun Certified Java Programmer). La grosse nouveauté de cette révision : l&#8217;examen contiendra dorénavant une partie programmation. Cette certification, que certains appellent &#8216;pensez comme un compilateur Java&#8217; évolue donc pour adopter une approche plus pragmatique.</p><ul><li>Les demandes d&#8217; <a
href="https://dct.sun.com/dct/forms/reg_us_2206_429_0.jsp" title="inscription (gratuites) aux examens <em>beta</em> sont ouvertes&nbsp;&raquo; >inscription (gratuites) aux examens <em>beta</em> sont ouvertes</a> pour cette nouvelle certification , Sun Java Programmer Plus Certification de son petit nom, la sélection des candidats aura lieu ce 22 juillet</li><li>Discussions sur Java Ranch : <a
href="http://www.coderanch.com/t/452870/Programmer-Certification-SCJP/certification/New-Sun-Java-Programmer-Plus" title="New Sun Java Programmer Plus Certification" >New Sun Java Programmer Plus Certification</a>, <a
href="http://www.coderanch.com/t/452410/Programmer-Certification-SCJP/certification/Sun-Java-Programmer-Plus-Certification" title="SCJP vs SJPPC" >SCJP vs SJPPC</a></li></ul> ]]></content:encoded> <wfw:commentRss>http://blog.xebia.fr/2009/07/13/revue-de-presse-xebia-117/feed/</wfw:commentRss> <slash:comments>1</slash:comments> </item> <item><title>Revue de Presse Xebia</title><link>http://blog.xebia.fr/2009/06/02/revue-de-presse-xebia-111/</link> <comments>http://blog.xebia.fr/2009/06/02/revue-de-presse-xebia-111/#comments</comments> <pubDate>Tue, 02 Jun 2009 10:52:21 +0000</pubDate> <dc:creator>Xebia France</dc:creator> <category><![CDATA[Revue de presse]]></category> <category><![CDATA[Adobe]]></category> <category><![CDATA[Flash]]></category> <category><![CDATA[Flash Catalyst]]></category> <category><![CDATA[FlashBuilder]]></category> <category><![CDATA[Flex]]></category> <category><![CDATA[FlexUnit]]></category> <category><![CDATA[G1]]></category> <category><![CDATA[Google]]></category> <category><![CDATA[Google IO]]></category> <category><![CDATA[GWT]]></category> <category><![CDATA[J2EE]]></category> <category><![CDATA[Java / JEE]]></category> <category><![CDATA[JavaFX]]></category> <category><![CDATA[Jetty]]></category> <category><![CDATA[Oracle]]></category> <category><![CDATA[RIA]]></category> <category><![CDATA[SmartGWT]]></category> <category><![CDATA[Tellerium]]></category> <guid
isPermaLink="false">http://blog.xebia.fr/?p=2094</guid> <description><![CDATA[La revue de presse de l’actualité Java/J2EE hebdomadaire proposée par Xebia. RIA Sortie de SmartGWT 1.1 FlashBuilder 4 supportera FlexUnit 4 JavaFX 1.2 est arrivé Le coin de la technique G1 Payant ! Oracle sonne-t-il le glas des machines virtuelles Java gratuites ? Jetty dévoile sa roadmap Sortie de Tellerium 0.6.0 RC1 Evènements de notre [...]]]></description> <content:encoded><![CDATA[<p><img
src="http://blog.xebia.fr/wp-content/uploads/2007/06/revuedepresse.png" alt="Revue de Presse Xebia" style="margin: 1em 1em 1em 1em; float: right;" /><br
/> <em>La revue de presse de l’actualité Java/J2EE hebdomadaire proposée par Xebia.</em></p><p><strong>RIA</strong></p><ul><li><a
href="http://blog.xebia.fr/2009/06/02/revue-de-presse-xebia-111/#SortiedeSmartGWT">Sortie de SmartGWT 1.1</a></li><li><a
href="http://blog.xebia.fr/2009/06/02/revue-de-presse-xebia-111/#FlashBuildersupporteraFlexUnit">FlashBuilder 4 supportera FlexUnit 4</a></li><li><a
href="http://blog.xebia.fr/2009/06/02/revue-de-presse-xebia-111/#JavaFXestarriv">JavaFX 1.2 est arrivé</a></li></ul><p><strong>Le coin de la technique</strong></p><ul><li><a
href="http://blog.xebia.fr/2009/06/02/revue-de-presse-xebia-111/#GPayantOraclesonnetilleglasdes">G1 Payant ! Oracle sonne-t-il le glas des machines virtuelles Java gratuites ?</a></li><li><a
href="http://blog.xebia.fr/2009/06/02/revue-de-presse-xebia-111/#Jettydvoilesaroadmap">Jetty dévoile sa roadmap</a></li><li><a
href="http://blog.xebia.fr/2009/06/02/revue-de-presse-xebia-111/#SortiedeTelleriumRC">Sortie de Tellerium 0.6.0 RC1</a></li></ul><p><strong>Evènements de notre communauté en France et à l&#8217;étranger</strong></p><ul><li><a
href="http://blog.xebia.fr/2009/06/02/revue-de-presse-xebia-111/#ConfrenceGoogleIO">Conférence Google  IO 2009</a></li><li><a
href="http://blog.xebia.fr/2009/06/02/revue-de-presse-xebia-111/#AdobeprsenteFlashCatalystParis">Adobe présente Flash Catalyst à Paris</a></li></ul><h3><a
name="RIA"></a>RIA</h3><h4><a
name="SortiedeSmartGWT"></a>Sortie de SmartGWT 1.1</h4><p>Il aura fallu attendre près de 6 mois pour pouvoir apprécier la nouvelle version de <a
href="http://code.google.com/p/smartgwt/" title="SmartGWT" >SmartGWT</a>, le wrapper GWT de <a
href="http://www.smartclient.com/" title="SmartClient" >SmartClient</a> par <a
href="http://www.jroller.com/sjivan/" title="Sanjiv Jivan" >Sanjiv Jivan</a> (<a
href="http://blog.xebia.fr/2008/12/01/revue-de-presse-xebia-85/#SortiedeSmartGWT" title="sortie de la version 1.0 lors d'une précédente revue de presse" >sortie de la version 1.0 lors d&#8217;une précédente revue de presse</a>), information relayée par l&#8217;<a
href="http://www.jroller.com/sjivan/entry/smartgwt_out_of_beta_v1" title="auteur" >auteur</a> et par <a
href="http://www.theserverside.com/news/thread.tss?thread_id=54747" title="The Server Side" >The Server Side</a>.</p><p>Cette version 1.1 apporte de nombreuses nouveautés (liste exhaustive sur la <a
href="http://www.smartclient.com/smartgwt/release_notes.html" title="release note" >release note</a>) :</p><ul><li>Correction de <a
href="http://code.google.com/p/smartgwt/issues/list?can=1&#038;q=label:SmartGWT-1.0b3" title="plus de 50 bugs" >plus de 50 bugs</a>.</li><li>Amélioration générale des performances des composants et des skins.</li><li>Champs de <a
href=" http://www.smartclient.com/smartgwt/showcase/#grid_formula_sumamry_builder_new_category" title="formules et rsums" >formules et résumés</a> (wizards, bindable avec des DataBoundComponent&#8230;).</li><li>Support du <em>GWT-RPC DataSource</em> avec les <em>DataBoundComponent</em> (tableaux, arbres, menus&#8230;).</li><li>Nombreuses documentations <em>Javadoc</em> (le gros défaut de <a
href="http://code.google.com/p/gwt-ext/" title="GWTExt" >GWT-Ext</a>).</li><li>API de récupération d&#8217;état de la vue depuis le serveur (pour de nombreux composants).</li><li>Nouveaux exemples dans le <a
href="http://www.smartclient.com/smartgwt/showcase" title="Showcase" >Showcase</a> au niveau de <em>New Samples</em>.</li><li>Un projet <em>Helloworld</em> pour SmartGWT avec GWT 1.6 &#8230;</li></ul><p>Une librairie open source <em>gratuite dans son intégralité</em> (<a
href="http://www.smartclient.com/product/index.jsp" title="licence LGPL" >licence LGPL</a>), <a
href="http://www.smartclient.com/product/download.jsp" title="ça ne se refuse pas" >ça ne se refuse pas</a> ou au moins <a
href="http://www.smartclient.com/smartgwt/showcase/#grid_grouping_custom_new_category" title="a se teste" >ça se teste</a> !</p><h4><a
name="FlashBuildersupporteraFlexUnit"></a>FlashBuilder 4 supportera FlexUnit 4</h4><p>Bonne nouvelle pour les développeurs Flex, nous apprenons par <a
href="http://www.insideria.com/2009/05/flashbuilder4-will-support-fle.html" title="InsideRIA" >InsideRIA</a> que FlexUnit 4 pourra être utilisé sur -FlexBuilder 4- <a
href="http://blog.xebia.fr/2009/05/25/revue-de-presse-xebia-110/#FlexBuilderdevientFlashBuilder" title="FlashBuilder 4" >FlashBuilder 4</a>.<br
/> Dans cet article, l&#8217;auteur nous présente les nouvelles fonctionnalités que propose FlexUnit 4 telles que :</p><ul><li>Création simplifiée de suites de tests.</li><li>Création et intégration facile de test runner à d&#8217;autres frameworks.</li><li>Utilisation de l&#8217;intégration continue grâce à une automatisation de l&#8217;intégration.</li><li>Meilleure gestion des tests asynchrones.</li><li>Meilleure gestion des exceptions.</li><li>Comme les annotations en Junit 4, les tests peuvent être gérés par les <a
href="http://livedocs.adobe.com/flex/3/html/help.html?content=metadata_3.html" title="Metadata" >Metadata</a>.</li></ul><p>La prochaine étape maintenant est d&#8217;intégrer le projet à FlashBuilder 4. Il est d&#8217;ailleurs possible de <a
href="http://bugs.adobe.com/jira/browse/FB-18873" title="voter pour ce projet" >voter pour ce projet</a>. Si cela vous intéresse n&#8217;hésitez pas à voter vous aussi.</p><h4><a
name="JavaFXestarriv"></a>JavaFX 1.2 est arrivé</h4><p>En accord avec le planning annoncé dès décembre dernier lors de <a
href="http://devoxx.com/" title="Devoxx" >Devoxx</a>, une nouvelle version de JavaFX vient d&#8217;être <a
href="http://javafx.com/" title="mise à disposition" >mise à disposition</a>. Les apports sont nombreux et comblent certains manques de la version 1.1. Le site de JavaFX propose <a
href="http://javafx.com/docs/articles/javafx1-2.jsp" title="un tour d'horizon" >un tour d&#8217;horizon</a> très complet des nouveautés et Stephen Chin en présente <a
href="http://steveonjava.com/2009/05/31/javafx-1-2-top-10/" title="un rsum accompagn dun guide de migration" >un résumé accompagné d&#8217;un guide de migration</a>. On retiendra :</p><ul><li>Ajout de <em>widgets</em> propres à JavaFX, <em>skinnables</em> et disponibles sur toute les plate-formes. Il n&#8217;est donc plus nécessaire de faire appel à des composants Swing (qui étaient inaccessibles sur mobile). L&#8217;ensemble des composants simples sont disponibles (bouton, checkbox, &#8230;), par contre la <code>ListView</code> est le seul composant de haut niveau à être fourni, pas de <em>table</em>, ni de <em>tree</em>.</li><li>Ajout de composants dédiés à la création de graphiques de type <em>Area, Bar, Bubble, Line, Pie, Scatter</em> et <em>X/Y</em>.</li><li>Ajout de <a
href="http://java.sun.com/developer/technicalArticles/javafx/v1_2_newlayouts/" title="nouveaux layouts " >nouveaux <em>layouts</em> </a> en supplément des <code>VBox</code> et <code>HBox</code> déjà disponibles.</li><li>Support de Linux et Solaris.</li></ul><p>La compatibilité des binaires générés par JavaFX n&#8217;est pas assurée entre cette nouvelle version 1.2 et ses prédécesseurs. Il sera donc nécessaire de recompiler les applications pour assurer la migration.</p><p>Le nouveau JavaFX sera donc sorti dans les temps pour être le sujet de nombreuses présentations et annonces lors de <a
href="http://java.sun.com/javaone/" title="JavaOne" >JavaOne</a> qui débute aujourd&#8217;hui même à San Fransisco. Comme <a
href="http://blog.xebia.fr/2009/05/11/revue-de-presse-xebia-108/#JavaFXinformationsetcontrovers" title="nous vous en parlions" >nous vous en parlions</a> il y a quelques semaines, le support des TVs <em>pourrait</em> y faire l&#8217;objet d&#8217;une démonstration.</p><h3><a
name="Lecoindelatechnique"></a>Le coin de la technique</h3><h4><a
name="GPayantOraclesonnetilleglasdes"></a>G1 Payant ! Oracle sonne-t-il le glas des machines virtuelles Java gratuites ?</h4><p>Oracle va-t-il rendre Java payant ? Cette question que tous posaient après l&#8217;annonce du rachat de Sun revient aujourd&#8217;hui au premier plan avec une phrase sibylline de l&#8217;annonce de la <a
href="http://java.sun.com/javase/6/webnotes/6u14.html" title="version 6 update 14 de la JVM de Sun" >version 6 update 14 de la JVM de Sun</a> :<br
/> <quote><br
/> <em>&laquo;&nbsp;Although G1 is available for use in this release, note that <strong>production use of G1 is only permitted where a Java support contract has been purchased</strong>&#8230;&nbsp;&raquo;</em><br
/> </quote><br
/> En théorie, la fonctionnalité concernée est encore expérimentale et le rachat de Sun par Oracle n&#8217;est pas clos : Oracle n&#8217;a pas à s&#8217;immiscer dans la gestion au quotidien de Sun  ; il n&#8217;y aurait donc pas de raison que Sun change de stratégie sur la JVM.<br
/> Cependant, on n&#8217;a jamais vu de telles limitations contractuelles sur la JVM de Sun. Si les JVM mobile et temps réel ont toujours été payantes chez Sun comme IBM et BEA/Oracle, les JVMs serveur et poste de travail étaient traditionnellement gratuites &#8230;  à un détails près : la JVM JRockit de BEA était devenue payante dès le rachat par Oracle ; on avait alors invoqué des considérations contractuelles qui empêchaient Oracle de distribuer gratuitement une JVM.</p><p>C&#8217;est aujourd&#8217;hui la très répandue JVM de Sun qui est menacée ; une fois de plus à la suite d&#8217;un rachat par Oracle. Faut-il craindre la fin des JVM gratuites ? Pour le poste de travail, cela parait très improbable faute de modèle économique crédible mais pour les serveurs, un revirement d&#8217;Oracle semble possible et dans la lignée de la nouvelle politique de JRockit. Il resterait alors disponibles gratuitement les JVM <a
href="http://www.ibm.com/developerworks/java/jdk/index.html" title="IBM J9" >IBM J9</a> et <a
href="http://openjdk.java.net/" title="Open JDK" >Open JDK</a>, le projet Open Source dont la gouvernance par Sun a été sujette à polémique ces derniers mois. Nous noterons au passage que G1 sera inclus dans la <a
href="http://openjdk.java.net/projects/jdk7/features/#f230" title="version 7 dOpen JDK" >version 7 d&#8217;Open JDK</a>.</p><p>Pour revenir sur les nouveautés de la JVM 6 update 14, nous retiendrons : la compression des pointeurs (<code>-XX:+UseCompressedOops</code>) pour les JVM 64 bits (cf. <a
href="http://blog.xebia.fr/2008/05/26/revue-de-presse-xebia-58/#Javabitspassisouventunebonneid" title="Java 64 bits, pas si souvent une bonne idée" >Java 64 bits, pas si souvent une bonne idée</a>), l&#8217;optimisation des accès aux variables utilisées sur un seul thread ( <code>-XX:+DoEscapeAnalysis</code> ) et ce <a
href="http://blog.xebia.fr/2008/03/12/gc-generationnels-traditionnels-jdk6-vs-gc-garbage-first-jdk7/" title="Garbage First (G1) Garbage Collector" >Garbage First (G1) Garbage Collector</a> optimisé pour la gestion de grands volumes de mémoire mais réservé en production aux souscripteurs d&#8217;un contrat de support.</p><h4><a
name="Jettydvoilesaroadmap"></a>Jetty dévoile sa roadmap</h4><p>Comme tous les conteneurs Servlet / JSP du marché, <a
href="http://www.eclipse.org/jetty/" title="Jetty" >Jetty</a> se prépare à l&#8217;arrivée de la <a
href="http://www.jcp.org/en/jsr/detail?id=315" title="JSR-315 (Servlet 3.0)" >JSR-315 (Servlet 3.0)</a> prévue pour cet été. Par ailleurs, il opère également divers changements dûs à sa récente <a
href="http://www.eclipse.org/proposals/jetty/" title="intgration  la fondation Eclipse" >intégration à la fondation Eclipse</a>.</p><p>Greg Wilkins a présenté <a
href="http://blogs.webtide.com/gregw/entry/jetty_6_jetty_7_and" title="une roadmap dtaille" >une roadmap détaillée</a> des fonctionnalités qui seront présentes dans les futures versions de Jetty.</p><p><strong>Jetty 6</strong> reste la version stable en attendant l&#8217;arrivée de son successeur.</p><p><strong>Jetty 7</strong> est la branche de développement que Greg Wilkins conseille d&#8217;adopter pour les projets débutant actuellement. Elle marquera la migration vers le package <code>org.eclipse.jetty</code>, et apportera une remodularisation accompagnée d&#8217;un packaging en bundle OSGi en supplément des artifacts Maven, et une préparation à Servlet 3.0 dont il proposera une <em>preview</em>.</p><p><strong>Jetty 8</strong> ne différera guère de son prédécesseur, il s&#8217;agira avant tout d&#8217;un <em>rebuild</em> en Java 1.6 exclusivement, accompagné d&#8217;une conformance stricte à Servlet 3.0 dont la spécification sera alors finalisée.</p><p>Aucune date précise n&#8217;est indiquée par l&#8217;auteur, mais il semble que la finalisation de la spécification Servlet 3.0 constituera le principal régulateur du calendrier de Jetty.</p><h4><a
name="SortiedeTelleriumRC"></a>Sortie de Tellerium 0.6.0 RC1</h4><p><a
href="http://code.google.com/p/aost/" title="Tellerium" >Tellerium</a> est un framework de tests unitaires d&#8217;interface utilisateur. Le projet s&#8217;appuie sur <a
href="http://seleniumhq.org/" title="Selenium" >Selenium</a>, est compatible avec JUnit et TestNG et permet d&#8217;écrire les tests en Java, Groovy ou par un DSL.</p><p>Les nouvelles fonctionnalités entre la version 0.5.0 et cette 0.6.0 sont <a
href="http://code.google.com/p/aost/wiki/WhatsNewInTellurium_0_6_0#New_Features" title="plutt nombreuses" >plutôt nombreuses</a>, on notera ainsi :</p><ul><li>Ajout du sélecteur <a
href="http://jquery.com/" title="jQuery" >jQuery</a> (et du jQuery Cache).</li><li>Support de Selenium 1.0 Beta 2 et Groovy 1.6.</li><li>Core (<em>Include</em>, <em>setCustomConfig</em>, <em>Dump method</em> &#8230;).</li><li>Selenium Grid (tests en parallèle).</li><li>Archetype Maven (JUnit et TestNG) &#8230;</li></ul><p>Plusieurs nouvelles fonctionnalités donc mais surtout de nombreuses optimisations de performances, des tests plus rapides et plus faciles à écrire, le tout utilisant les versions les plus récentes des projets dont il dépend. A noter aussi le plugin pour FireFox <a
href="http://code.google.com/p/aost/wiki/announcements#Tellurium_UI_Model_Plugin_(TrUMP)_0.1.0_is_released" title="TrUMP" >TrUMP</a> (Tellerium UI Model Plugin) permettant d&#8217;écrire plus rapidement les tests (enregistrement des clicks, validation et customisation, export Groovy&#8230;).</p><p>Le téléchargement se passe <a
href="http://code.google.com/p/aost/downloads/list" title="par ici" >par ici</a>, et pour les <em>pom</em> ça se passe <a
href="http://code.google.com/p/aost/wiki/announcements#Tellurium_0.6.0_RC1_is_out" title="en bas de page par l" >en bas de page par là</a>.</p><h3><a
name="EvnementsdenotrecommunautenFra"></a>Evènements de notre communauté en France et à l&#8217;étranger</h3><h4><a
name="ConfrenceGoogleIO"></a>Conférence Google  IO 2009</h4><p><a
href="http://code.google.com/events/io/" title="Google IO 2009" >Google I/O 2009</a> s&#8217;est tenu la semaine dernière à San Francisco. Il s&#8217;agit d&#8217;une des conférences destinées aux développeurs utilisateurs des applications et des API de Google. L&#8217;actualité autour de cette conférence étant relativement importante, nous avons décidé de traiter celle-ci dans un article séparé.</p><p>En voici les grandes lignes de ce qui s&#8217;est vu à Google I/O :</p><ul><li>Le futur du Web, avec les premières <a
href="http://blog.xebia.fr/2009/06/01/google-io-2009-annonces-et-strategie-google/#HTMLlepremierwhaoueffect" title="dmonstrations moustillantes Html 5" >démonstrations émoustillantes Html 5</a>.</li><li><a
href="http://blog.xebia.fr/2009/06/01/google-io-2009-annonces-et-strategie-google/#GoogleWavelagrosseannoncedelac" title="Google Wave" >Google Wave</a>, le prochain outil de communication et collaboration made in Google.</li><li>La <a
href="http://blog.xebia.fr/2009/06/01/google-io-2009-annonces-et-strategie-google/#GWTaucurdelastratgieGoogle" title="rconciliation de Google avec GWT" >réconciliation de Google avec GWT</a>, sortie de <strong>Gwt Query</strong>.</li><li>Le futur d&#8217;Android, avec l&#8217;annonce de la branche <a
href="http://blog.xebia.fr/2009/06/01/google-io-2009-annonces-et-strategie-google/#AndroidDonutrecherchesetfiltre" title="Android 20  Donut" >Android 2.0 : Donut</a>.</li><li><a
href="http://blog.xebia.fr/2009/06/01/google-io-2009-annonces-et-strategie-google/#JavasurGoogleAppEngineouvertto" title="Java et Google App Engine" >Java et Google App Engine</a> en GA.</li><li><a
href="http://blog.xebia.fr/2009/06/01/google-io-2009-annonces-et-strategie-google/#GoogleWebElementswidgetspourvo" title="Google Web Elements" >Google Web Elements</a>, comment intégrer les services Google dans vos pages web.</li><li>Les macros dans Google Document, avec <a
href="http://blog.xebia.fr/2009/06/01/google-io-2009-annonces-et-strategie-google/#GoogleAppsScriptscriptezvosGoo" title="Google Apps Script" >Google Apps Script</a>.</li><li>Arrivée des <a
href="http://blog.xebia.fr/2009/06/01/google-io-2009-annonces-et-strategie-google/#Chromearrivedesextensions" title="extensions dans Chrome" >extensions dans Chrome</a>.</li></ul><p>Pour en savoir plus, vous pouvez lire <a
href="http://blog.xebia.fr/2009/06/01/google-io-2009-annonces-et-strategie-google/" title="notre billet ddi" >notre billet dédié</a> au sujet.</p><h4><a
name="AdobeprsenteFlashCatalystParis"></a>Adobe présente Flash Catalyst à Paris</h4><p>Mercredi 3 Juin 2009 à 16h, Adobe propose une présentation de Flash Catalyst. Cet outil destiné aux designers permet de concevoir des composants graphiques riches sans programmation. Ces créations peuvent ensuite être fournies à un développeur Flex pour que ce dernier se charge de la programmation intelligente.<br
/> Cette présentation va se diviser en deux sessions sous formes de conférences et d&#8217;ateliers :</p><ul><li>Une session développeur.</li><li>Une session designer.</li></ul><p>Elle se clôtura par un cocktail à 19h30.<br
/> Pour plus d&#8217;informations ou pour vous inscrire ça se passe <a
href="http://events.adobe.co.uk/cgi-bin/event.cgi?country=fr&#038;eventid=8236" title="ici" >ici</a>.</p> ]]></content:encoded> <wfw:commentRss>http://blog.xebia.fr/2009/06/02/revue-de-presse-xebia-111/feed/</wfw:commentRss> <slash:comments>5</slash:comments> </item> <item><title>Google I/O 2009 &#8211; annonces et stratégie Google</title><link>http://blog.xebia.fr/2009/06/01/google-io-2009-annonces-et-strategie-google/</link> <comments>http://blog.xebia.fr/2009/06/01/google-io-2009-annonces-et-strategie-google/#comments</comments> <pubDate>Mon, 01 Jun 2009 12:58:21 +0000</pubDate> <dc:creator>Erwan Alliaume</dc:creator> <category><![CDATA[Java / JEE]]></category> <category><![CDATA[Mobilité]]></category> <category><![CDATA[RIA]]></category> <category><![CDATA[Android]]></category> <category><![CDATA[Chrome]]></category> <category><![CDATA[Google App Engine]]></category> <category><![CDATA[googleio]]></category> <category><![CDATA[GWT]]></category> <category><![CDATA[GWT Query]]></category> <category><![CDATA[HTML 5]]></category> <category><![CDATA[iPhone]]></category> <category><![CDATA[JavaScript]]></category> <category><![CDATA[wave]]></category> <category><![CDATA[Widgets]]></category> <guid
isPermaLink="false">http://blog.xebia.fr/?p=2068</guid> <description><![CDATA[Google I/O 2009 s&#8217;est tenu la semaine dernière à San Francisco. Il s&#8217;agit d&#8217;une des conférence destinées aux développeurs utilisateurs des applications et des API de Google. Faute d&#8217;avoir eu l&#8217;occasion de me rendre sur place, j&#8217;ai essayé de suivre d&#8217;aussi prêt que possible son déroulement. Vu de l&#8217;extérieur : du grand spectacle ! Dans [...]]]></description> <content:encoded><![CDATA[<p><a
href="http://code.google.com/events/io/" title="Google IO 2009" >Google I/O 2009</a> s&#8217;est tenu la semaine dernière à San Francisco. Il s&#8217;agit d&#8217;une des conférence destinées aux développeurs utilisateurs des applications et des API de Google. Faute d&#8217;avoir eu l&#8217;occasion de me rendre sur place, j&#8217;ai essayé de suivre d&#8217;aussi prêt que possible son déroulement. Vu de l&#8217;extérieur : du grand spectacle !</p><p>Dans cet article, je vais donc revenir sur les annonces et points marquants de ces deux jours de conférences.</p><p>D&#8217;autre part, les vidéos des keynotes sont disponibles, vous pouvez consulter celle du <a
href="http://www.youtube.com/watch?v=S5aJAaGZIvk" title="premier jour" >premier jour</a> (html5, android, web components &#8230;) ou celle du <a
href="http://www.youtube.com/watch?v=v_UyVmITiYQ" title="second jour" >second jour</a> (google wave).</p><p>Google I/O 2009, voici ce que j&#8217;en ai retenu  :</p><ul><li>Le futur du Web, avec les premières <strong>démonstrations émoustillantes <a
href="http://dev.w3.org/html5/spec/Overview.html" title="HTML 5" >HTML 5</a></strong>.</li><li><strong><a
href="http://wave.google.com" title="Google Wave" >Google Wave</a></strong>, le prochain outil de communication et collaboration made in Google.</li><li>La réconciliation de Google avec GWT et la sortie de <strong>GWT Query</strong>.</li><li>Le futur d&#8217;Android, avec l&#8217;annonce de la branche <strong>Android 2.0 : Donut</strong>.</li><li>Java sur Google App Engine en GA.</li><li><strong>Google Web Elements</strong>, comment intégrer les services Google dans vos pages web.</li><li>Les macros dans Google Document, avec <strong>Google Apps Script</strong>.</li><li>Arrivée des <strong>extensions dans Chrome</strong>.</li></ul><h3><a
name="HTMLlepremierwhaoueffect"></a>HTML 5, le premier whaou effect</h3><p>C&#8217;est la première fois que HTML 5 me fait rêver. C&#8217;est en effet un sacré coup de pouce que Google à donné afin de faire taire les <a
href="http://blog.xebia.fr/2008/08/11/revue-de-presse-xebia-69/#HTMLimmobilisparlestergiversat" title="tergiversions" >tergiversions</a>. Google a pris position, et nous en a mis plein la vue ! C&#8217;est ainsi qu&#8217;a débuté le premier jour de conférence avec <a
href="http://www.youtube.com/watch?v=W4FbF8GKChk" title="une vido dintroduction de 5 minutes" >une vidéo d&#8217;introduction de 5 minutes</a> présentant des applications écrites avec HTML 5. Application ai-je dit ? Eh bien oui, il semble bien loin le temps de la page web statique. Il semble bien loin le temps des hacks Javascript, arrêtons la bidouille et commençons le développement d&#8217;applications riches : c&#8217;est en tout cas ce que nous promet Google avec le HTML 5. Tout cela sans nécessiter le moindre plugin &#8230; pour peu que vous ayez un navigateur compatible.</p><p>Pour Google, le navigateur a encore de beaux jours devant lui. Installé sur prêt d&#8217;un <a
href="http://www.findmysoft.com/news/Google-I-O-2009-HTML-5-Web-Elements-App-Engine-Google-Earth-Android-Hardware/" title="demi-milliard d'ordinateurs" >demi-milliard d&#8217;ordinateurs</a>, il reste le moyen le plus simple et répandu pour accéder à Internet. Google l&#8217;a bien compris et a participé à la course <a
href="http://celtickane.com/labs/web-browser-javascript-benchmark/" title="aux performances des moteurs JavaScript" >aux performances des moteurs JavaScript</a>. En un an, les performances des moteurs JavaScript ont été multipliées par 5 ! Vous n&#8217;êtes pas fan de JavaScript, il faudra pourtant vous y faire. Comme nous vous pourrez le constater dans la suite de cet article, ce langage est l&#8217;un des points centraux de la stratégie Google.</p><p>Sans le savoir, vous possédez peut-être déjà l&#8217;un des navigateurs compatibles avec certaines fonctionnalités HTML 5, si tel est le cas vous pouvez lancer certaines des <a
href="http://htmlfive.appspot.com/" title="dmonstrations prsentes" >démonstrations présentées</a> directement depuis celui-ci.</p><p>Les principales nouveautés apportées par HTML 5 sont :</p><ul><li>Les <a
href="http://fr.wikipedia.org/wiki/Canvas_(balise_html)" title="canvas" >canvas</a>, zone sur laquelle il est possible de <em>dessiner</em> et d&#8217;effectuer des transformations : agrandissement, rotations, translations sur différents types de figures.</li><li>Des balises <em>audio</em> et <em>video</em>, qui permettent d&#8217;intégrer des médias dans le document sans nécessiter un plugin externe. Elles disposent de fonctionnalités similaires aux lecteurs <a
href="http://www.adobe.com/fr/products/flash" title="Flash" >Flash</a> ou <a
href="http://silverlight.net" title="Silverlight" >Silverlight</a> vous permettant de contrôler le comportement de vos médias.</li><li>Les <a
href="http://blog.whatwg.org/the-road-to-html-5-episode-1-the-section-element" title="sections" >sections</a> permettent de diviser vos pages en parts sémantiques. Elles se différencient des balises <em>div</em> qui ont pour rôle principal la présentation. Une section est complétée par un <em>header</em> et un <em>footer</em>.</li><li>Un nouvel attribut <em>async</em> pour les balises <em>script</em>, il permet d&#8217;exécuter un script indépendamment de l&#8217;affichage de la page. Ces scripts pourront s&#8217;activer à la demande selon la disponibilité de ressources.</li></ul><p>HTML 5 vous propose donc de transformer vos pages web en application riche, ce nouveau balisage vous permet de tirer pleinement partie de contenu multimédia sans nécessiter de plugin extérieur.</p><h3><a
name="GoogleWavelagrosseannoncedelac"></a>Google Wave, la grosse annonce de la conférence</h3><p>Sans conteste la grosse annonce de Google durant ces 2 jours, Google a annoncé la sortie prochaine de <a
href="http://wave.google.com/" title="Google Wave" >Google Wave</a>. Il s&#8217;agit d&#8217;un nouvel outil Open Source de communication et de collaboration, initié à l&#8217;origine par les deux frères Rasmussen, déjà à l&#8217;origine de Google Maps. Leur point de départ, à quoi les emails ressembleraient s&#8217;ils avaient été inventés aujourd&#8217;hui ? Après nous avoir parlé d&#8217;HTML 5 et d&#8217;applications riches, Google dévoile comment ils comptent tirer parti de ces nouveautés. A la vue du résultat, difficile de croire que l&#8217;application fonctionne sur un simple navigateur. Je vous encourage vivement de <a
href=" http://www.youtube.com/watch?v=v_UyVmITiYQ" title="regarder la démonstration" >regarder la démonstration</a>, le moins que l&#8217;on puisse dire est qu&#8217;elle donne envie <a
href="https://services.google.com/fb/forms/wavesignup/" title="dessayer le produit" >d&#8217;essayer le produit</a>. Pour ma part, même si j&#8217;avoue bien volontiers avoir été moins époustouflé qu&#8217;à la sortie de Google Earth il y a quelques années, il faut bien admettre qu&#8217;une fois encore Google est moteur d&#8217;innovations. Tout comme la sortie de Gmail, fort est à parier qu&#8217;une multitude de concurrents essayeront en vain d&#8217;égaler cette nouveauté. Et si une page était en train de se tourner dans le développement d&#8217;applications Web ?</p><p>Là où les emails permettaient un échange point à point, Google Wave centralise et met à disposition le contenu. On n&#8217;envoie pas une <em>Wave</em>, on y participe. L&#8217;historique des modifications des conversations (texte, média, widget) est stocké sur un serveur. Ainsi, tout nouveau participant pourra rejouer intégralement celle-ci.</p><p>Google Wave est un mixte entre email, messagerie instantanée, réseaux sociaux, partages de documents. Il se base sur un <a
href="http://www.waveprotocol.org/" title="protocole spcialement" >protocole spécialement</a> créé pour l&#8217;occasion. Celui-ci permet la transmission d&#8217;incréments de données et permet, entre autres, l&#8217;affichage caractère par caractère d&#8217;une conversation au fur et à mesure de la rédaction par son auteur.</p><p>Bien plus qu&#8217;une application, Google Wave est également contrôlable via une API spécifique. Vous pourrez donc y utiliser ces services à votre guise pour modeler vos propres solutions. Du coup, fort est à parier que Google Wave sera également disponible sous la forme de widget à utiliser sur vos blogs, sites web &#8230;</p><p>Pour plus d&#8217;information sur le sujet, vous pouvez <a
href=" http://mashable.com/2009/05/28/google-wave-guide/" title="consulter cette page" >consulter cette page</a> sur laquelle l&#8217;auteur à centralisé les informations, définitions et fonctionnalités de Google Wave.</p><h3><a
name="GWTaucurdelastratgieGoogle"></a>GWT, au cœur de la stratégie Google ?</h3><p>L&#8217;autre grosse surprise avec l&#8217;arrivée de Google Wave, l&#8217;utilisation de GWT à grande échelle dans un produit Google !</p><p>Jusqu&#8217;ici, il était drôle de constater que si GWT avait bien été créé intégralement en interne chez Google, au final, aucun produit phare n&#8217;utilisait cette technologie. Et bien, ceci sera bientôt du passé ! Non seulement le client Wave a été écrit en GWT, mais Google continue à investir beaucoup sur cette technologie. Certes GWT à tout de même dû subir pour l&#8217;occasion quelques modifications, mais force est de constater que GWT semble plus que jamais au centre de la stratégie Google. GWT permettra également la création d&#8217;applications pour Android et iPhone. C&#8217;est comme si Google voulait nous faire oublier nos applications locales/desktop aux bénéfices d&#8217;applications légères/riches.</p><p>Google I/O, c&#8217;est également l&#8217;annonce de la sortie de <a
href="http://code.google.com/p/gwtquery/" title="Gwt Query" >Gwt Query</a> : un clone de jQuery pour GWT. Cette nouvelle Api permet d&#8217;ajouter du comportement côté client sans rencontrer les lourdeurs des Widgets. À ce stage GWT Query reprend 98% des fonctionnalités de jQuery.</p><h3><a
name="AndroidDonutrecherchesetfiltre"></a>Android 2.0 Donut, recherches et filtres</h3><p>A l&#8217;heure où les premiers téléphones Android arrivent tout juste en France, Google a annoncé la création de la branche 2.0, appelée Donut. Sortie prévue : fin 2009.</p><p>Comme le communiquent <a
href=" http://www.zdnet.fr/actualites/telecoms/0,39040748,39501591,00.htm" title="certains" >certains</a>, 2009 sera probablement l&#8217;année d&#8217;Android. Si à ce jour seuls deux mobiles sous ce système sont timidement sortis en France, Google <a
href="http://bits.blogs.nytimes.com/2009/05/27/google-expect-18-android-phones-by-years-end/" title="attend la sortie dune vingtaine dappareils" >attend la sortie d&#8217;une vingtaine d&#8217;appareils</a> (pour une dizaine de fabriquants) en 2009.</p><p>Google I/O a donc été l&#8217;occasion de faire un point sur la roadmap de cette nouvelle version, celle-ci est prévue pour fin 2009 :</p><ul><li>Recherche globale : un champ de recherche commun pour le web, la musique, les contacts&#8230; C&#8217;est en effet, l&#8217;un des défauts de la version actuelle, le market nous encourage à installer toujours plus d&#8217;applications, il s&#8217;avère pour le moment peu pratique de retrouver celle que l&#8217;on cherche. J&#8217;avais d&#8217;ailleurs l&#8217;idée de développer une application &#8216;launcher&#8217;, je vais donc pouvoir nettoyer ma todo-list. Cette recherche globale vous permet donc d&#8217;effectuer des recherches aussi bien en local sur votre téléphone qu&#8217;en connecté sur le web. Démonstration de la fonctionnalité après la 3e minute <a
href="http://www.youtube.com/watch?v=uX9nt8Cpdqg&#038;feature=channel" title="de cette vido" >de cette vidéo</a>.</li><li>Contrôle par la voix : Android 1.5 (Cupcake) a introduit les embryons de Google Voice Search, vous permettant de lancer des recherches Google par la voix. Donut va davantage utiliser cette fonctionnalité qui vous permettra aussi bien d&#8217;appeler un contact que de contrôler vos applications à la voix. Ces fonctionnalités seront intégrées aux applications Google, mais pas seulement. Vous pourrez les utiliser dans vos applications via la nouvelle API. Révolutionnaire ? par forcément, j&#8217;ai utilisé cette fonctionnalité pour la première fois sur Pocket PC il y a 3 ans avec <a
href="http://www.microsoft.com/france/cp/2005/3/05030801_a79.mspx" title="Microsoft Voice Command" >Microsoft Voice Command</a>.</li><li>Synthèse vocale : vous contrôlez votre téléphone par la voix, celui-ci sait également vous parler. Donut offrira également des fonctionnalités de text2speach multi-langues, la présentation à été portée par une <a
href="http://www.youtube.com/watch?v=DZ-MZnMLb_A" title="application de traduction" >application de traduction</a> plutôt réussie.</li><li>Contrôle par le geste : votre téléphone sera capable également de reconnaître via l&#8217;écran tactile des formes complexes. Cela vous permettra entre autres de filtrer une liste de contacts en dessinant la première lettre du nom recherché.</li></ul><p>Pour clôturer ce sujet, notez l&#8217;ouverture d&#8217;un nouveau concours mondial de programmation sur Android : <a
href="http://code.google.com/intl/fr-FR/android/adc/" title="Android Developper Challenge 2" >Android Developper Challenge 2</a> avec de belles récompenses à la clé.</p><h3><a
name="JavasurGoogleAppEngineouvertto"></a>Java sur Google App Engine, ouvert à tous</h3><p>Bien qu&#8217;aucune annonce n&#8217;ait encore été faire sur le <a
href="http://googleappengine.blogspot.com/" title="blog officiel" >blog officiel</a>, il semblerait que Google ait annoncé officiellement le support Java sur <a
href="http://code.google.com/intl/fr/appengine/" title="Google App Engine" >Google App Engine</a>, ce qui veut dire : ouvert à tous. En effet, <a
href="http://blog.xebia.fr/2009/04/14/revue-de-presse-xebia-104/#GoogleAppEnginepourJavaetGroov" title="en avril dernier" >en avril dernier</a>, Google avait déjà pré-ouvert sa plateforme aux langages Java et Groovy aux 10 000 premiers inscrits.</p><h3><a
name="GoogleWebElementswidgetspourvo"></a>Google Web Elements, widgets pour vos sites internet</h3><p><a
href="http://www.google.com/webelements/" title="Google Web Elements" >Google Web Elements</a> vous permet d&#8217;utiliser les services Google sous la forme de widgets sur vos blogs ou sites web. Ces widgets nous permettront par exemple d&#8217;afficher facilement nos présentations PowerPoint sur le blog, les sites du type <a
href="http://www.slideshare.net/" title="Slideshare" >Slideshare</a> doivent grincer des dents&#8230;</p><p>Le fonctionnement est très simple :</p><ul><li>Rendez-vous sur le site de <a
href="http://www.google.com/webelements/" title="Google Web Elements" >Google Web Elements</a> pour choisir votre type de Widget.</li><li>Configurez-le en ligne via un simple formulaire permettant de générer le code HTML et JavaScript représentant le widget.</li><li>Copier-collez le code sur votre site ou blog.</li></ul><p>Huit applications sont disponibles pour le moment: Calendar, Presentation, Conversation, Custom Search, Maps, News, Spreadsheets et Youtube News.</p><h3><a
name="GoogleAppsScriptscriptezvosGoo"></a>Google Apps Script, scriptez vos Google Documents</h3><p>Google IO c&#8217;est du grand spectacle, comme nous l&#8217;avons vu durant les keynotes, mais aussi des annonces plus terre-à-terre : <a
href="http://www.youtube.com/watch?v=7ux-IexZFec" title="Google Apps Script" >Google Apps Script</a> en est un bon exemple. Avec cette fonctionnalité, il vous sera donc possible prochainement d&#8217;ajouter des fonctionnalités de scripting dans vos documents. Le développement de ces &#8216;macros&#8217; s&#8217;effectuera entièrement en JavaScript à partir d&#8217;un éditeur intégré aux différentes applications Google Document. Je vous invite à consulter une <a
href="http://www.youtube.com/watch?v=YJPsJOkaAzU" title="vido de dmonstration" >vidéo de démonstration</a> durant laquelle le présentateur effectue une macro d&#8217;envoi d&#8217;email.</p><h3><a
name="Chromearrivedesextensions"></a>Chrome, arrivée des extensions</h3><p>Comme certains le savent déjà, Chrome, le navigateur internet made in Google, proposera prochainement <a
href="http://dev.chromium.org/developers/design-documents/extensions/" title="un système de gestion d'extensions" >un système de gestion d&#8217;extensions</a>. Il vous est d&#8217;ailleurs déjà possible de commencer à écrire vos propres extensions en utilisant <a
href="http://dev.chromium.org/getting-involved/dev-channel" title="le dernier build developper" >le dernier build developper</a>, je m&#8217;y suis d&#8217;ailleurs essayé comme vous avez pu le <a
href="http://twitter.com/ealliaume" title="lire sur mon twitter" >lire sur mon twitter</a>. Si cela vous intéresse, jetez un coup d&#8217;œil au <a
href="http://dev.chromium.org/developers/design-documents/extensions/howto" title="howto" >howto</a> vous permettant de créer votre premier plugin en 30 secondes chrono.</p><p>Les extensions sont des archives ZIP contenant du HTML, des CSS et du JavaScript. Chaque partie d&#8217;UI d&#8217;une extension se présente sous la forme d&#8217;une simple page internet. Du coup, vous utilisez les mêmes outils, même debugger, mêmes librairies JavaScript et les mêmes techniques de programmation que pour créer vos pages web. Google a particulièrement bien travaillé son API pour la rendre aussi simple que possible.</p><p>Chrome dispose depuis <a
href="http://blog.xebia.fr/2008/09/09/google-chrome-1-semaine-apres/#Unrendustandardetquelquesnouve" title="sa premire version" >sa première version</a> d&#8217;une gestion des processus bien ficelée : chaque onglet dispose de son propre processus rendant de ce fait difficile de planter le navigateur à cause d&#8217;une des pages web. Les extensions fonctionneront sur un principe similaire et disposeront donc également de leur propre processus.</p><p>Les extensions seront distribuées sous la forme de fichier CRX composé de :</p><ul><li>Une signature, pour éviter les attaques du type Man In The Middle.</li><li>Un manifeste, contenant les informations générales (nom, version &#8230;).</li><li>Un fichier zip avec le contenu.</li></ul><p>Tiens tiens, cela n&#8217;est pas sans nous rappeler le packaging des applications Android&#8230;</p><div
align="center"> <a
href="http://twitter.com/ealliaume" ><br
/> <img
src="http://blog.xebia.fr/wp-content/uploads/2009/04/twitter4.png"  alt="twitter erwan alliaume" title="twitter erwan alliaume" border="0" /><br
/> </a></div> ]]></content:encoded> <wfw:commentRss>http://blog.xebia.fr/2009/06/01/google-io-2009-annonces-et-strategie-google/feed/</wfw:commentRss> <slash:comments>0</slash:comments> </item> <item><title>Revue de Presse Xebia</title><link>http://blog.xebia.fr/2009/05/18/revue-de-presse-xebia-109/</link> <comments>http://blog.xebia.fr/2009/05/18/revue-de-presse-xebia-109/#comments</comments> <pubDate>Mon, 18 May 2009 16:48:34 +0000</pubDate> <dc:creator>Xebia France</dc:creator> <category><![CDATA[Revue de presse]]></category> <category><![CDATA[Google App Engine]]></category> <category><![CDATA[Grails]]></category> <category><![CDATA[GWT]]></category> <category><![CDATA[Hudson]]></category> <category><![CDATA[J2EE]]></category> <category><![CDATA[Java / JEE]]></category> <category><![CDATA[Méthodes agiles]]></category> <category><![CDATA[Performances]]></category> <category><![CDATA[REST]]></category> <category><![CDATA[SCRUM]]></category> <category><![CDATA[Selenium Grid]]></category> <category><![CDATA[SOA]]></category> <category><![CDATA[Spring]]></category> <guid
isPermaLink="false">http://blog.xebia.fr/?p=2008</guid> <description><![CDATA[La revue de presse de l’actualité Java/J2EE hebdomadaire proposée par Xebia. Actualité éditeurs / SSII Grails 1.1.1 supporté par Google App Engine Agilité SCRUM en vidéo en 5 minutes SOA REST : Le bon et surtout le moins bon &#8230; Le coin de la technique Utiliser Selenium Grid avec Hudson Une API Criteria pour JCR [...]]]></description> <content:encoded><![CDATA[<p><img
src="http://blog.xebia.fr/wp-content/uploads/2007/06/revuedepresse.png" alt="Revue de Presse Xebia" style="margin: 1em 1em 1em 1em; float: right;" /><br
/> <em>La revue de presse de l’actualité Java/J2EE hebdomadaire proposée par Xebia.</em></p><p><strong>Actualité éditeurs / SSII</strong></p><ul><li><a
href="http://blog.xebia.fr/2009/05/18/revue-de-presse-xebia-109/#GrailssupportparGoogleAppEngin">Grails 1.1.1 supporté par Google App Engine</a></li></ul><p><strong>Agilité</strong></p><ul><li><a
href="http://blog.xebia.fr/2009/05/18/revue-de-presse-xebia-109/#SCRUMenvidoenminutes">SCRUM en vidéo en 5 minutes</a></li></ul><p><strong>SOA</strong></p><ul><li><a
href="http://blog.xebia.fr/2009/05/18/revue-de-presse-xebia-109/#RESTLebonetsurtoutlemoinsbon">REST : Le bon et surtout le moins bon &#8230;</a></li></ul><p><strong>Le coin de la technique</strong></p><ul><li><a
href="http://blog.xebia.fr/2009/05/18/revue-de-presse-xebia-109/#UtiliserSeleniumGridavecHudson">Utiliser Selenium Grid avec Hudson</a></li><li><a
href="http://blog.xebia.fr/2009/05/18/revue-de-presse-xebia-109/#UneAPICriteriapourJCR">Une API Criteria pour JCR</a></li><li><a
href="http://blog.xebia.fr/2009/05/18/revue-de-presse-xebia-109/#IntgrationsimpledeGWTetSpring">Intégration simple de GWT et Spring</a></li><li><a
href="http://blog.xebia.fr/2009/05/18/revue-de-presse-xebia-109/#bonnespratiquespouramliorersca">8 bonnes pratiques pour améliorer scalabilité et performances</a></li></ul><h3><a
name="ActualitditeursSSII"></a>Actualité éditeurs / SSII</h3><h4><a
name="GrailssupportparGoogleAppEngin"></a>Grails 1.1.1 supporté par Google App Engine</h4><p>Dans une précédente <a
href="http://blog.xebia.fr/2009/04/14/revue-de-presse-xebia-104/#GoogleAppEnginepourJavaetGroov" title="nouvelle" >nouvelle</a>, nous avions annoncé la sortie de <a
href="http://appengine.google.com/" title="Google App Engine" >Google App Engine</a> pour Java et Groovy. Après Struts2, Spring MVC, le support de nombreux frameworks web continue.<br
/> Le framework web Grails, basé sur le langage Groovy et développé par l&#8217;équipe de Spring est maintenant supporté par App Engine. Des ajustements ont été apportés pour le rendre compatible, d&#8217;où la sortie de cette <a
href="http://blog.springsource.com/2009/05/14/grails-111-released-with-google-appengine-support/" title="version 1.1.1." >version 1.1.1.</a>. Celle ci apporte aussi des corrections de bugs, dont la liste est disponible <a
href="http://jira.codehaus.org/browse/GRAILS?report=com.atlassian.jira.plugin.system.project:changelog-panel" title="ici" >ici</a>.<br
/> Par ailleurs, <a
href="http://grails.org/plugin/app-engine" title="un plugin" >un plugin</a> a été développé pour faciliter l&#8217;intégration de Grails avec le SDK de App Engine, notamment au niveau du déploiement du serveur web.</p><p>L&#8217;objectif fixé par SpringSource est que Grails devienne le framework web le plus utilisé avec Google App Engine, d&#8217;où les nombreux efforts fournis. Les prochains axes de travail porteront sur l&#8217;abstraction de JPA/JDO pour faciliter l&#8217;utilisation du data store (base de données) d&#8217;App Engine.</p><h3><a
name="Agilit"></a>Agilité</h3><h4><a
name="SCRUMenvidoenminutes"></a>SCRUM en vidéo en 5 minutes</h4><p>Tout simplement géniale, cette vidéo fait le tour de la blogosphère SCRUM / Agile : Le retour de 6 mois d&#8217;expérience d&#8217;une équipe SCRUM.</p><div
align="center"> <object
width="400" height="220"><param
name="allowfullscreen" value="true" /><param
name="allowscriptaccess" value="always" /><param
name="movie" value="http://vimeo.com/moogaloop.swf?clip_id=4587652&#038;server=vimeo.com&#038;show_title=1&#038;show_byline=1&#038;show_portrait=0&#038;color=&#038;fullscreen=1" /><embed
src="http://vimeo.com/moogaloop.swf?clip_id=4587652&#038;server=vimeo.com&#038;show_title=1&#038;show_byline=1&#038;show_portrait=0&#038;color=&#038;fullscreen=1"  type="application/x-shockwave-flash" allowfullscreen="true" allowscriptaccess="always" width="400" height="220"></embed></object></div><p>Tout y est :</p><ul><li>L&#8217;équipe.</li><li>Les cérémonies.</li><li>Les artefacts.</li><li>Le fun.</li></ul><p>La réalisation très soignée et la BO ne gâchent rien.</p><p>A regarder !</p><h3><a
name="SOA"></a>SOA</h3><h4><a
name="RESTLebonetsurtoutlemoinsbon"></a>REST : Le bon et surtout le moins bon &#8230;</h4><p>Dans l&#8217;article <em>&laquo;&nbsp;<a
href="http://soa.dzone.com/news/rest---good-bad-and-ugly" title="REST - The Good, The Bad and The Ugly" >REST &#8211; The Good, The Bad and The Ugly</a>&laquo;&nbsp;</em>, publié sur DZone, <a
href="http://soa.dzone.com/users/arnonrgo" title="Arnon RotemGalOz" >Arnon Rotem-Gal-Oz</a> propose un éclairage intéressant de ce qu&#8217;il y a de bon et surtout de ce qu&#8217;il peut y avoir de moins bon lors de la mise en place d&#8217;une architecture REST.<br
/> On retiendra de cette déclinaison deux travers récurrents dans la mise en œuvre de REST :</p><ul><li><strong>Limiter REST à REST over HTTP</strong> : Ce raccourci appauvrit en effet dramatiquement les possibilités que nous offre la mise en place d&#8217;une architecture REST</li><li><strong>Limiter REST à l&#8217;utilisation du GET et du POST</strong> : Ici encore, n&#8217;utiliser qu&#8217;une sémantique à 2 verbes nous prive de la richesse dont nous pourrions profiter.</li></ul><p>Comme pour beaucoup d&#8217;autres sujets <em>(les méthodes agiles, les SOA, &#8230;)</em>, la mise en place d&#8217;architectures REST nécessite un changement d&#8217;approche et de façon de penser : REST implique une <strong>approche orientée ressources</strong> qui ne nous est pas naturelle. Il est donc primordial de ne pas bruler les étapes et de faire l&#8217;effort du changement avant de pouvoir bénéficier des promesses de REST.</p><h3><a
name="Lecoindelatechnique"></a>Le coin de la technique</h3><h4><a
name="UtiliserSeleniumGridavecHudson"></a>Utiliser Selenium Grid avec Hudson</h4><p>Depuis 2006, Hudson offre un <a
href="http://wiki.hudson-ci.org/display/HUDSON/Distributed+builds" title="mode <em>master</em> / <em>slave</em>&nbsp;&raquo; >mode <em>master</em> / <em>slave</em></a> permettant d&#8217;effectuer des <em>builds distribués</em>. Récemment, ce mode de fonctionnement a commencé à être exploité par des plugins, tel que le <a
href="http://wiki.hudson-ci.org/display/HUDSON/Hadoop+Plugin" title="plugin Hadoop" >plugin Hadoop</a> permettant d&#8217;utiliser son cluster Hudson pour effectuer des traitements lourds de type MapReduce.</p><p><a
href="http://selenium-grid.seleniumhq.org/" title="Selenium Grid" >Selenium Grid</a>, d&#8217;autre part, est une solution permettant de distribuer un ensemble de tests Selenium sur plusieurs machines, permettant ainsi de ramener leur temps d&#8217;exécution à un ordre de grandeur plus propice à l&#8217;intégration continue.</p><p>Kohsuke Kawaguchi, créateur du projet Hudson, <a
href="http://weblogs.java.net/blog/kohsuke/archive/2009/05/hudson_selenium.html" title="vient d'annoncer la disponibilité" >vient d&#8217;annoncer la disponibilité</a> d&#8217;un <a
href="http://wiki.hudson-ci.org/display/HUDSON/Selenium+Plugin" title="plugin Selenium Grid" >plugin Selenium Grid</a>. Outre l&#8217;intégration à Hudson, facilitant le démarrage automatisé des tests, ce plugin présente l&#8217;intérêt de simplifier la configuration, puisqu&#8217;il s&#8217;appuie sur l&#8217;infrastructure cluster d&#8217;Hudson.</p><p>Il s&#8217;agit là d&#8217;une avancée qui devrait permettre de rendre plus accessible et moins coûteuse l&#8217;exploitation quotidienne de larges quantités de tests d&#8217;intégration. Parmi les perspectives d&#8217;avenir pour la pleine utilisation d&#8217;un cluster Hudson, on notera également une très intéressante proposition sur le Jira du projet Hadoop visant à créer un <a
href="https://issues.apache.org/jira/browse/HADOOP-1257" title="distributed JUnit TestRunner" >distributed JUnit TestRunner</a>.</p><h4><a
name="UneAPICriteriapourJCR"></a>Une API Criteria pour JCR</h4><p>Magnolia est un CMS en Java qui repose sur la technologie JCR (Java Content Repository, <a
href="http://jcp.org/en/jsr/detail?id=170" title="JSR170" >JSR-170</a>) pour assurer la persistance versionnée des informations qu&#8217;il présente.</p><p>JCR, dans sa version 1.0, propose deux possibilités pour exécuter des requêtes sur son <em>repository</em> de contenu : XPath, supporté en standard, et SQL, dont le support est défini comme optionnel par la spécification JCR.</p><p>Dans ces deux cas, les requêtes se font en mode texte. Dans certains cas d&#8217;utilisation, tels que les recherches multi-critères, cela peut amener le développeur à créer une logique de construction de requêtes par concaténation. Avec Hibernate, ce genre de problématique est adressée par l&#8217;API Criteria qui rend le développement de ce type de besoin trivial.</p><p>Partant de ce constat, les développeurs de Magnolia proposent une librairie utilitaire permettant la <a
href="http://wiki.magnolia-cms.com/display/WIKI/Hibernate%27s+Criteria-like+API+for+Magnolia-JCR" title="construction de requtes JCR par programmation" >construction de requêtes JCR par programmation</a>. Cette librairie repose sur Magnolia mais pourrait être adaptée pour devenir <em>standalone</em>.</p><p>Ceci préfigure de ce que JCR 2.0 (<a
href="http://jcp.org/en/jsr/detail?id=283" title="JSR-283" >JSR-283</a>), actuellement en statut <em>proposed final draft</em>, s&#8217;apprête à offrir : les requêtes pourront être définies de manière objet grâce à l&#8217;API JCR-JQOM (JCR Java Query Object Model). <a
href="http://jackrabbit.apache.org/" title="Apache Jackrabbit" >Apache Jackrabbit</a>, l&#8217;implémentation de référence, <a
href="http://www.nabble.com/Query-Object-Model--status-(QOM)-td22369489.html" title="supporte dj partiellement JQOM" >supporte déjà partiellement JQOM</a>.</p><h4><a
name="IntgrationsimpledeGWTetSpring"></a>Intégration simple de GWT et Spring</h4><p>Et même <em>super simple</em> selon l&#8217;article de <a
href="http://devbright.com/2009/05/super-simple-gwt-spring-integration/" title="Dev Bright" >Dev Bright</a> qui dans son exemple s&#8217;appuie sur le projet <a
href="http://code.google.com/p/gwtrpc-spring/" title="gwtrpc-spring" >gwtrpc-spring</a> (qui nous permet par la même occasion de tester une autre librairie que <a
href="http://gwt-widget.sourceforge.net/" title="GWTSL" >GWT-SL</a>, la librairie référence des projets GWT actuels). L&#8217;article est d&#8217;autant plus intéressant qu&#8217;il utilise les annotations pour déclarer les services auprès de Spring.</p><p>Les services seront accessibles par une URL qui possèdera une extension spécifique qui sera mappée dans le <em>web.xml</em>. Cela évite ainsi une multitude de servlets dans le web.xml. Ici il n&#8217;y aura qu&#8217;une seule servlet mais qui mappera toutes les extensions de type <em>.rpc</em>.</p><p>Le service :</p><pre class="brush: java; title: ; notranslate">
@RemoteServiceRelativePath(&quot;myservice.rpc&quot;)
public interface MyService extends RemoteService {
   String myMethod(String arg);
}
</pre><p>Le <em>web.xml</em> :</p><pre class="brush: xml; title: ; notranslate">
&lt;web-app&gt;
   &lt;servlet&gt;
      &lt;servlet-name&gt;dispatcher&lt;/servlet-name&gt;
      &lt;servlet-class&gt;org.gwtrpcspring.RemoteServiceDispatcher&lt;/servlet-class&gt;
   &lt;/servlet&gt;
   &lt;servlet-mapping&gt;
      &lt;servlet-name&gt;dispatcher&lt;/servlet-name&gt;
      &lt;url-pattern&gt;*.rpc&lt;/url-pattern&gt;
   &lt;/servlet-mapping&gt;
   &lt;listener&gt;
      &lt;listener-class&gt;org.springframework.web.context.ContextLoaderListener&lt;/listener-class&gt;
   &lt;/listener&gt;
&lt;/web-app&gt;
</pre><p>Pour le fichier de configuration Spring, il suffit d&#8217;activer la configuration par annotation et de donner le package à scanner :</p><pre class="brush: xml; title: ; notranslate">
&lt;beans ...&gt;
   &lt;context:annotation-config&gt;
      &lt;context:component-scan base-package=&quot;org.gwtrpcspring.example.server&quot; /&gt;
   &lt;/context:annotation-config&gt;
&lt;/beans&gt;
</pre><p>Du coup, plus aucune configuration XML, l&#8217;annotation <em>@Service</em> finit le travail :</p><pre class="brush: java; title: ; notranslate">
@Service
public class MyServiceImpl implements MyService {
   public String myMethod(String arg) {
      // You impl...
   }
}
</pre><p>En quelques lignes et très peu de configuration, l&#8217;auteur a créé une application GWT, Spring, avec annotation et avec un web.xml bindant tous les appels RPC. L&#8217;avantage dans cette configuration est que les fichiers XML de configuration n&#8217;évolueront pas (sauf ajout de nouveaux packages).</p><p>Le projet est récupérable à cette <a
href="http://gwtrpc-spring.googlecode.com/files/SimpleGwtRpcSpringExample.zip" title="url" >url</a>.</p><h4><a
name="bonnespratiquespouramliorersca"></a>8 bonnes pratiques pour améliorer scalabilité et performances</h4><p><a
href="http://www.infoq.com/news/2009/05/8-Best-Practices-Scalability" title="Wille Faler donne 8 conseils" >Wille Faler donne 8 conseils</a> pour optimiser la scalabilité de vos applications.</p><ul><li>Déchargez la base de données : la base de données relationnelles est le plus courant des goulets d&#8217;étranglements sur nos applications.</li><li>Utilisez des caches : cacher est un moyen simple d&#8217;appliquer le point précédent.</li><li>Cachez des objets complexes : même si des objets &#8216;à maille fine&#8217; sont stockées, cacher des entités plus complexes permettra de moins solliciter les ressources lors d&#8217;une recherche dans le cache, et de ramener plus rapidement une grappe d&#8217;objets complète.</li><li>Ne sauvez pas d&#8217;état en base : ne doivent persister que les données business (pas d&#8217;informations de login, de session&#8230;)</li><li>Réfléchissez à la spacialisation : placer les données au plus près de là où elles doivent être utilisées (en utilisant un CDN par exemple)</li><li>Restreignez les accès concurrents aux ressources sensibles : il est plus performant d&#8217;adopter une attitude &#8216;un seul thread à la fois&#8217;</li><li>Abusez de l&#8217;asynchrone pour fractionner vos process : séparez vos traitements en petites unités, traitées par des workers distincts; afin d&#8217;éviter un phénomène d&#8217;engorgement généralisé.</li><li>Ne surchargez pas le réseau : sortir de votre runtime applicatif est couteux en temps, limitez donc les échanges avec les systèmes tiers.</li></ul><p>Certains diront &#8216;encore un article de bonnes pratiques performance&#8217;&#8230; Pour notre part, sorti des grands classiques (base de données, réseaux&#8230;), nous avons apprécié deux conseils plutôt originaux : le caching d&#8217;entités complexes, et la spacialisation.</p> ]]></content:encoded> <wfw:commentRss>http://blog.xebia.fr/2009/05/18/revue-de-presse-xebia-109/feed/</wfw:commentRss> <slash:comments>0</slash:comments> </item> <item><title>Revue de Presse Xebia</title><link>http://blog.xebia.fr/2009/04/06/revue-de-presse-xebia-103/</link> <comments>http://blog.xebia.fr/2009/04/06/revue-de-presse-xebia-103/#comments</comments> <pubDate>Mon, 06 Apr 2009 17:18:59 +0000</pubDate> <dc:creator>Xebia France</dc:creator> <category><![CDATA[Revue de presse]]></category> <category><![CDATA[Amazon]]></category> <category><![CDATA[dm Server]]></category> <category><![CDATA[Elastic MapReduce]]></category> <category><![CDATA[GWT]]></category> <category><![CDATA[Hadoop]]></category> <category><![CDATA[J2EE]]></category> <category><![CDATA[Java / JEE]]></category> <category><![CDATA[JBoss]]></category> <category><![CDATA[jBPM]]></category> <category><![CDATA[Kanban]]></category> <category><![CDATA[Méthodes agiles]]></category> <category><![CDATA[RIA]]></category> <category><![CDATA[SCRUM]]></category> <category><![CDATA[SOA]]></category> <category><![CDATA[Spring]]></category> <category><![CDATA[SpringSource]]></category> <category><![CDATA[tc Server]]></category> <guid
isPermaLink="false">http://blog.xebia.fr/?p=1716</guid> <description><![CDATA[La revue de presse de l’actualité Java/J2EE hebdomadaire proposée par Xebia. Actualité éditeurs / SSII Amazon lance son service Elastic MapReduce Agilité Kanban vs Scrum RIA Optimisation GWT : EntryPoint multiples SOA Le calendrier se confirme pour jBPM Le coin de la technique Les nouveautés du futur SpringSource dm Server Spring tc Server, c&#8217;est parti [...]]]></description> <content:encoded><![CDATA[<p><img
src="http://blog.xebia.fr/wp-content/uploads/2007/06/revuedepresse.png" alt="Revue de Presse Xebia" style="margin: 1em 1em 1em 1em; float: right;" /><br
/> <em>La revue de presse de l’actualité Java/J2EE hebdomadaire proposée par Xebia.</em></p><p><strong>Actualité éditeurs / SSII</strong></p><ul><li><a
href="http://blog.xebia.fr/2009/04/06/revue-de-presse-xebia-103/#AmazonlancesonserviceElasticMa">Amazon lance son service Elastic MapReduce</a></li></ul><p><strong>Agilité</strong></p><ul><li><a
href="http://blog.xebia.fr/2009/04/06/revue-de-presse-xebia-103/#KanbanvsScrum">Kanban vs Scrum</a></li></ul><p><strong>RIA</strong></p><ul><li><a
href="http://blog.xebia.fr/2009/04/06/revue-de-presse-xebia-103/#OptimisationGWTEntryPointmulti">Optimisation GWT : EntryPoint multiples</a></li></ul><p><strong>SOA</strong></p><ul><li><a
href="http://blog.xebia.fr/2009/04/06/revue-de-presse-xebia-103/#LecalendrierseconfirmepourjBPM">Le calendrier se confirme pour jBPM</a></li></ul><p><strong>Le coin de la technique</strong></p><ul><li><a
href="http://blog.xebia.fr/2009/04/06/revue-de-presse-xebia-103/#LesnouveautsdufuturSpringSourc">Les nouveautés du futur SpringSource dm Server</a></li><li><a
href="http://blog.xebia.fr/2009/04/06/revue-de-presse-xebia-103/#SpringtcServercestpartienversi">Spring tc Server, c&#8217;est parti &#8230; en version beta</a></li></ul><h3><a
name="ActualitditeursSSII"></a>Actualité éditeurs / SSII</h3><h4><a
name="AmazonlancesonserviceElasticMa"></a>Amazon lance son service Elastic MapReduce</h4><p>Un nouveau service, <a
href="http://aws.amazon.com/elasticmapreduce/" title="Elastic MapReduce" >Elastic MapReduce</a>, vient s&#8217;ajouter au catalogue Amazon. Basé sur <a
href="http://aws.amazon.com/ec2/" title="EC2" >EC2</a> pour la puissance de calcul et sur <a
href="http://aws.amazon.com/s3/" title="S3" >S3</a> pour le stockage, ce service permet de soumettre facilement des traitements sur un large volume de données à Amazon en s&#8217;appuyant sur le framework <a
href="http://hadoop.apache.org/" title="Apache Hadoop" >Apache Hadoop</a> et son modèle de programmation <a
href="http://labs.google.com/papers/mapreduce.html" title="MapReduce" >MapReduce</a>.</p><p>Par rapport au service EC2, Elastic MapReduce apporte une solution Hadoop clé en main. Ainsi, il suffit de fournir au service les données en entrée via S3 et un programme de traitement écrit soit en Java en utilisant l&#8217;API Hadoop, soit dans un autre langage grâce à <a
href="http://hadoop.apache.org/core/docs/r0.18.3/streaming.html" title="Hadoop Streaming" >Hadoop Streaming</a> (Ruby, Perl, Python, PHP, R, ou C++). Les données produites lors du traitement sont également placées sur S3. Les <em>jobs</em> peuvent alors être créés et contrôlés soit depuis l&#8217;interface de management d&#8217;AWS, soit depuis une API SOAP.</p><p>Répondant à un besoin typique du cloud computing, ce service permet de se lancer dans des expérimentations de traitement distribué rapidement en délestant le développeur de toute tâche de configuration système préalable. Il est par ailleurs intéressant de noter cette mise en avant du framework Hadoop, <a
href="http://blog.lucene.com/2006/03/13/hadoop/" title="issu du projet Nutch en 2006" >issu du projet Nutch en 2006</a>, qui bénéficiait déjà d&#8217;un large intérêt comme en témoigne les 3 livres qui lui seront consacrés d&#8217;ici la fin de l&#8217;année chez <a
href="http://manning.com/lam/" title="Manning" >Manning</a>, <a
href="http://oreilly.com/catalog/9780596521998/index.html" title="O'Reilly" >O&#8217;Reilly</a> et <a
href="http://www.apress.com/book/view/1430219424" title="Apress" >Apress</a>.</p><h3><a
name="Agilit"></a>Agilité</h3><h4><a
name="KanbanvsScrum"></a>Kanban vs Scrum</h4><p>Sur son blog, Henrik Kniberg nous propose <a
href="http://blog.crisp.se/henrikkniberg/2009/04/03/1238795520000.html" title="un document au sujet de Kanban et de Scrum" >un document au sujet de Kanban et de Scrum</a>. Cette première version de ce document nous explique, de manière simplifiée, les différences entre les implémentations. En voici quelques unes :</p><ul><li>Pas de définition de rôles dans le Kanban.</li><li>Les estimations sont optionnels.</li><li>Prioriser les items est optionnel.</li></ul><p>Néanmoins, Kanban et Scrum présentent des similitudes :</p><ul><li>ce sont des processus d&#8217;optimisations.</li><li>possibilité d&#8217;itérer sur plusieurs produits en même temps.</li></ul><p>Au final, nous nous rendons compte que beaucoup de notions ne sont pas antinomiques, et selon les contextes il est intéressant de faire cohabiter certaines notions de Kanban et de Scrum.</p><h3><a
name="RIA"></a>RIA</h3><h4><a
name="OptimisationGWTEntryPointmulti"></a>Optimisation GWT : EntryPoint multiples</h4><p>Les développeurs GWT se heurtent  parfois à deux problèmes communs: un temps de compilation astronomique et des livrables très gourmands en taille.Heureusement, Matt Raible est là !</p><p>L&#8217;idée est de séparer votre application finale en plusieurs applications/écrans. Imaginons une application complète avec un seul <em>EntryPoint</em> qui contiendrait un front-office, un back-office et un écran standalone de statistiques : modifier le front-office impliquera la livraison de tous nos composants alors que les écrans back-office et statistiques n&#8217;ont pas été changés. Notre exemple ne contient que trois écrans différents mais selon le métier il est tout à fait possible d&#8217;envisager une dizaine d&#8217;écrans.</p><p>L&#8217;optimisation se passe sur le blog de <a
href="http://raibledesigns.com" title="Matt Raible" >Matt Raible</a> avec l&#8217;article <a
href="http://raibledesigns.com/rd/entry/optimizing_a_gwt_application_with" title="optimizing a GWT Application with Multiple EntryPoints" >optimizing a GWT Application with Multiple EntryPoints</a>. L&#8217;idée est simple : découper votre application en plusieurs mini-applications indépendantes (donc des écrans différents). La découpe se fera en créant plusieurs <em>EntryPoints</em> avec leur XML associé. On pourra alors ne compiler et ne livrer que le module souhaité (par exemple à l&#8217;aide d&#8217;un profil maven). On gagne alors en temps de compilation mais surtout en taille de livrable : ici on ne livre que ce qui doit être livré <em>(to-be-released feature)</em>. Matt obtient alors sur son livrable un gain en taille de 56% (non négligeable).<br
/> La mise en place d&#8217;un tel découpage est simple : création d&#8217;un nouvel EntryPoint (classe <em>java</em> et <em>gxt.xml</em>), mise à jour des références dans le <em>html</em> et le <em>nocache.js</em> et enfin création d&#8217;un profil maven associé à votre entry point de release.</p><p>On peut recouper ce best-practice avec la <a
href="http://raibledesigns.com/rd/entry/modularizing_gwt_applications_with_gwt" title="modularisation dune application GWT" >modularisation d&#8217;une application GWT</a>, celle-ci apportant en plus la notion de partage de module. On pourra alors créer des modules <em>CommonsUI</em>, <em>StatsModule</em>&#8230; qui seront des modules génériques pouvant être réutilisés par d&#8217;autres applications (<em>inherit</em> du gwt.xml). Cette pratique est très courante dans les projets GWT, mais la création d&#8217;<em>EntryPoint</em> de type livrable l&#8217;est déjà moins.</p><p>Avez-vous des retours concernant cette technique ?</p><h3><a
name="SOA"></a>SOA</h3><h4><a
name="LecalendrierseconfirmepourjBPM"></a>Le calendrier se confirme pour jBPM</h4><p>Le projet jBPM n&#8217;a pas connu de nouvelle version majeure depuis 2005. Pourtant ce moteur de BPM open-source très populaire fait partie de la suite <a
href="http://www.jboss.com/products/platforms/soa/" title="JBoss Enterprise SOA Platform" >JBoss Enterprise SOA Platform</a> lancée début 2008.</p><p>La version 4 a été dévoilée en alpha en décembre dernier mais son temps de gestation particulièrement long, similaire au délai important qu&#8217;a connu JBoss AS 5, laissait planer le doute quant au calendrier. Tom Baeyens, <em>project lead</em> de jBPM, <a
href="http://www.infoq.com/news/2009/01/jbpm4-first-release" title="annonçait en début d'année" >annonçait en début d&#8217;année</a> l&#8217;arrivée d&#8217;une version finale pour juillet et a confirmé cette date lors d&#8217;une <a
href="http://www.bejug.org/confluenceBeJUG/display/BeJUG/jBPM4+and+More" title="récente présentation au BeJUG" >récente présentation au BeJUG</a>. C&#8217;est maintenant l&#8217;équipe de JBoss Seam qui vient <a
href="http://in.relation.to/Bloggers/TheStateOfSeam" title="corroborer ce planing" >corroborer ce planing</a> en annonçant l&#8217;arrivée de Seam 2.2 pour juin. Soit juste avant l&#8217;arrivée de jBPM 4 avec lequel il prévoit de s&#8217;intégrer par la suite.</p><p>Le temps de développement particulièrement long de cette nouvelle version est probablement imputable au très ambitieux module <a
href="http://docs.jboss.com/jbpm/pvm/article/" title="PVM (Process Virtual Machine)" >PVM (Process Virtual Machine)</a>, dont le principe a été conçu conjointement avec <a
href="http://www.ow2.org/" title="OW2" >OW2</a> et son projet équivalent <a
href="http://wiki.bonita.ow2.org/xwiki/bin/view/Main/WebHome" title="Bonita" >Bonita</a>. Le but de PVM est d&#8217;offrir un moteur d&#8217;exécution de processus générique servant de base commune pour l&#8217;implémentation des différents langages de définition de <em>workflow</em> (jPDL, BPEL, Pageflow, &#8230;) supportés par jBPM. L&#8217;API de PVM reste malgré tout accessible par les développeurs souhaitant définir leurs <em>workflows</em> directement en Java.</p><p>Outre PVM, les autres nouveautés notables de cette version 4 seront :</p><ul><li>La possibilité d&#8217;utiliser <a
href="http://en.wikipedia.org/wiki/BPMN" title="BPMN" >BPMN</a> dans l&#8217;éditeur graphique sous Eclipse.</li><li>Une évolution de l&#8217;API de gestion des <em>activities</em> permettant un meilleur découplage.</li><li>Un schéma de base de données plus évolutif et partitionné selon les langages de définition de processus.</li></ul><p>Rendez vous est pris pour juillet.</p><h3><a
name="Lecoindelatechnique"></a>Le coin de la technique</h3><h4><a
name="LesnouveautsdufuturSpringSourc"></a>Les nouveautés du futur SpringSource dm Server</h4><p>SpringSource dm Server était le produit phare mis en avant lors de SpringOne Europe 2008 de juin dernier. OSGi était alors omniprésent dans les présentations. Pourtant 9 mois après sa sortie, les débouchés ne semblent toujours pas évidents. Ceci est avant tout dû à OSGi, qui reste une technologie méconnue et dont l&#8217;introduction dans le monde du Java d&#8217;entreprise pose encore quelques problèmes en raison du modèle particulier de découpage en bundles qu&#8217;il impose.</p><p>SpringSource a présenté récemment <a
href="http://blog.springsource.com/2009/04/01/springsource-dm-server-roadmap/" title="la liste des nouveauts prvisionnelles" >la liste des nouveautés prévisionnelles</a> de son dm Server 2, prévu pour juillet. Visiblement conscient des problèmes que pose OSGi, SpringSource propose plusieurs améliorations :</p><ul><li><strong>Clonage de bundle</strong> : cette fonctionnalité, activée par défaut, entraînera le chargement automatique d&#8217;une seconde instance identique d&#8217;un bundle lorsqu&#8217;un <a
href="http://blog.springsource.com/2008/10/20/understanding-the-osgi-uses-directive/" title="conflit d  une clause uses" >conflit dû à une clause <em>uses</em></a> sera détecté. Un clone pourra également être créé manuellement pour palier au comportement de certains frameworks utilisant des variables statiques et dont le bundle se prête donc mal au partage</li><li><strong>Gestion des logs</strong> : elle sera revue dans la prochaine version pour permettre une configuration centralisée par application et permettra à un bundle partagé entre plusieurs application d&#8217;écrire dans le fichier de log adapté au contexte</li><li><strong>Bundlor</strong> : un outil de création automatisée de bundles, développé conjointement, et dont <a
href="http://blog.xebia.fr/2009/03/30/revue-de-presse-xebia-102/#LacrationdebundlesOSGiselonSpr" title="nous vous parlions la semaine dernire" >nous vous parlions la semaine dernière</a></li></ul><p>Du reste des nouveautés, on retiendra surtout l&#8217;alignement avec les RFCs de l&#8217;OSGi Alliance, coïncidant ainsi avec <a
href="http://blog.xebia.fr/2008/11/24/revue-de-presse-xebia-84/#OSGiSpringdmServerstandardispo" title="le planning initialement prvu" >le planning initialement prévu</a>.</p><h4><a
name="SpringtcServercestpartienversi"></a>Spring tc Server, c&#8217;est parti &#8230; en version beta</h4><p>Nous avions annoncé en Décembre 2008 le <a
href="http://blog.xebia.fr/2008/12/15/revue-de-presse-xebia-87/#tcServerSpringSourcesignelapre" title="lancement de Tc Server, la version professionnelle de Tomcat par Spring Source" >lancement de Tc Server, la version professionnelle de Tomcat par Spring Source</a>. La version beta est désormais <a
href="http://www.springsource.com/products/tcserver" title="disponible" >disponible</a>. Pour mémoire, Tc Server apporte du support commercial, une simplification des installations, des outils de diagnostique avancé et des outils d&#8217;administration centralisés avec interface graphique et ligne de commande. Voici nos première impressions :</p><p><strong>Aide au diagnostique</strong></p><p>Tc Server apporte à Tomcat Standard des outils de diagnostique qui n&#8217;ont rien à envier à ceux qu&#8217;on trouve sur les <em>gros serveurs JavaEE</em> commerciaux. Nous retiendrons :</p><ul><li>La configuration JMX dans <code>server.xml</code> + <code>catalina.properties</code> (plutôt que dans <code>setenv.sh</code>) qui permet de surcroît de préciser le port d&#8217;écoute pour passer les firewalls (cf <a
href="http://blogs.sun.com/jmxetc/entry/connecting_through_firewall_using_jmx" title="Daniel Fuchs blog  Connecting Through Firewall Using JMX  Without modifying the server application" >Daniel Fuchs blog : Connecting Through Firewall Using JMX &#8211; Without modifying the server application</a>)</li><li>La détection des requêtes HTTP lentes avec le détails des activités de Garbage Collection et d&#8217;accès Data Source (les accès web services sont prévus).</li><li>Un mécanisme de First Failure Data Capture (heap dump, threads dump, état des composants Tomcat) pour les requêtes HTTP en erreur.</li><li>La détection des requêtes SQL lentes, des deadlocks inter-threads et de durée de Garbage Collection excessive</li></ul><p><strong>Installation</strong></p><p>L&#8217;installation reprend les bonnes pratiques Tomcat de séparer les binaires tomcat (CATALINA_HOME) des configurations des instances (CATALINA_BASE) et de grouper les paramètres spécifiques à chaque instance dans catalina.properties. Ce mode d&#8217;installation facilite grandement les montées de version de Tomcat ou de JVM et la gestion de plusieurs instances Tomcat voisines.</p><p>Le tuning des configurations JVM (setenv.sh) et Tomcat (server.xml) est très pédagogique.</p><p>Le script de création des instances ne prend en compte pour le moment ni l&#8217;incrément automatique des ports d&#8217;écoute (pour ne pas collisionner avec les instances voisines) ni la configuration Apache Httpd (mod_proxy_http) qui sont en amont des Tomcat.</p><p>Nous n&#8217;avons pas trouvé la commande <a
href="http://static.springsource.com/projects/tc-server/6.0/admin/cadmscript.html" title="tcadminsh" >tcadmin.sh</a> qui permet de gérer les groupes de serveurs. La documentation semble en avance sur le produit livré ; c&#8217;est assez rare dans le monde du logiciel <img
src='http://blog.xebia.fr/wp-includes/images/smilies/icon_wink.gif' alt=';-)' class='wp-smiley' /> .</p><p><strong>Administration et Spring AMS</strong></p><p>Spring AMS Tc Server est une extension du socle déjà mature <a
href="http://www.springsource.com/products/ams" title="Spring AMS" >Spring AMS</a> qui est lui même basé sur <a
href="http://www.hyperic.com/" title="Hyperic" >Hyperic</a>. Nous noterons comme bémol qu&#8217;AMS repose sur une ancienne version d&#8217;Hyperic, qu&#8217;il n&#8217;est pas possible de déployer les plugins Spring AMS dans Hyperic et que l&#8217;inverse est certes possible mais demande un travail autant contractuel que technique d&#8217;installation. La solution la plus humble est de faire cohabiter un Spring AMS (serveur + agents) dédié aux serveurs Java EE aux côtés d&#8217;un Hyperic (serveur + agents) dédié aux autres composants à superviser.</p><p>Pour revenir sur Spring Tc Server, nous remarquerons la <a
href="http://static.springsource.com/projects/tc-server/6.0/ams/DOC/ui-tomcatserverconfig.Help.html" title="configuration par console graphique AMS" >configuration par console graphique AMS</a> des serveurs Tc Server avec ses judicieux conseils de paramétrages (le déploiment de configuration ne supprime pas les commentaires dans server.xml). Les alertes deadlock et temps de garbage collection excessifs sont remontés dans Spring AMS.</p><p>Au final, cette version beta est bien agréable pour les <em>afficionados</em> de Tomcat. La <a
href="http://static.springsource.com/projects/tc-server/6.0/index.html" title="documentation est bien entame" >documentation est bien entamée</a>, les fonctionnalités intéressantes et l&#8217;ensemble très pédagogique pour les connaisseurs. Ces qualités techniques se transformeront-elles en déploiement dans nos data center ? Il faudra convaincre les exploitants du bien fondé de passer d&#8217;un modèle open source gratuit à de l&#8217;open source professionel &#8230;</p> ]]></content:encoded> <wfw:commentRss>http://blog.xebia.fr/2009/04/06/revue-de-presse-xebia-103/feed/</wfw:commentRss> <slash:comments>3</slash:comments> </item> <item><title>Ce que vous avez peut-être raté au premier trimestre 2009</title><link>http://blog.xebia.fr/2009/04/01/ce-que-vous-avez-peut-etre-rate-au-premier-trimestre-2009/</link> <comments>http://blog.xebia.fr/2009/04/01/ce-que-vous-avez-peut-etre-rate-au-premier-trimestre-2009/#comments</comments> <pubDate>Wed, 01 Apr 2009 06:31:31 +0000</pubDate> <dc:creator>Xebia France</dc:creator> <category><![CDATA[Divers]]></category> <category><![CDATA[Contrats]]></category> <category><![CDATA[GWT]]></category> <category><![CDATA[JMX]]></category> <category><![CDATA[Méthodes agiles]]></category> <category><![CDATA[Quartz]]></category> <category><![CDATA[RIA]]></category> <category><![CDATA[RMI]]></category> <category><![CDATA[Scheduling]]></category> <category><![CDATA[Spring]]></category> <guid
isPermaLink="false">http://blog.xebia.fr/?p=1700</guid> <description><![CDATA[Voici la liste des billets les plus lus sur ce blog en janvier, février et mars : Pourquoi les projets agiles ne peuvent pas (vraiment) être menés au forfait En matière de sous-traitance du développement logiciel, la pratique contractuelle la plus fréquente est celle dite du projet au forfait. La notion de forfait n&#8217;a, en [...]]]></description> <content:encoded><![CDATA[<p>Voici la liste des billets les plus lus sur ce blog en janvier, février et mars :</p><h4><a
href="http://blog.xebia.fr/2009/02/04/pourquoi-les-projets-agiles-ne-peuvent-pas-vraiment-etre-menes-au-forfait/">Pourquoi les projets agiles ne peuvent pas (vraiment) être menés au forfait</a></h4><p>En matière de sous-traitance du développement logiciel, la pratique contractuelle la plus fréquente est celle dite du projet au forfait. La notion de forfait n&#8217;a, en principe, pas de rapport avec le processus de développement ou les pratiques d&#8217;ingénierie utilisée dans la réalisation du projet. Il s&#8217;agit simplement, dans l&#8217;esprit des contractants, de fixer les contours exacts de leur relation commerciale, et de définir leurs obligations mutuelles – en terme de coûts, de délais, de mode de paiement et de livraison. Dans un État de droit, et pour autant qu&#8217;elles ne soient pas abusives, ces dispositions contractuelles ont force de loi, et protègent efficacement les parties prenantes.<br
/> A bien y regarder cependant la neutralité du forfait vis à vis du processus de développement est moins évidente. Conçu historiquement pour satisfaire aux exigences de mise en concurrence des fournisseurs du Département de la Défense américain, le contrat au forfait est né du même substrat que le processus de développement en cascade  &#8211; initialement décrit en 1970 par Winston W. Royce dans <em><a
href="http://www.cs.umd.edu/class/spring2003/cmsc838p/Process/waterfall.pdf">Managing the developpement of large software systems</a></em>.<br
/> Ce processus de développement est aujourd&#8217;hui fortement remis en question, sous le constat empirique de son échec relatif, et sous l&#8217;impulsion des méthodes agiles. Je pense quant à moi que la &laquo;&nbsp;cascade&nbsp;&raquo; sera perçue dans quelques années comme l&#8217;aveuglement juvénile d&#8217;une industrie encore adolescente, à la recherche de son identité.<br
/> La question qui nous intéresse ici est de savoir si le projet au forfait survivra à la cascade. Autrement dit s&#8217;il est possible de mener au forfait un projet agile sous-traité. Certains le pensent, et certains intégrateurs proposent au demeurant de tels contrats. J&#8217;entends quant à moi démontrer ici que l&#8217;agilité et le forfait reposent sur des logiques financières radicalement antinomiques, qui les rendent difficilement conciliables.</p><p><a
href="http://blog.xebia.fr/2009/02/04/pourquoi-les-projets-agiles-ne-peuvent-pas-vraiment-etre-menes-au-forfait/">Lire cet article »</a></p><h4><a
href="http://blog.xebia.fr/2009/01/23/gwt-galaxy/">GWT Galaxy</a></h4><p>Vous avez peut-être assisté au <a
href="http://www.parisjug.org/xwiki/bin/view/Meeting/20081104" title="Paris JUG" >Paris JUG</a> sur GWT et vous vous êtes forcément dit en sortant de la conférence qu&#8217;il fallait absolument vous mettre à GWT. En plus, le pas à franchir n&#8217;est pas énorme : c&#8217;est du Java (ça devrait aller), agrémenté de nombreuses librairies comme dans le monde J2EE, des libraires graphiques qui en jettent sont disponibles&#8230; Que d&#8217;avantages ! Mais par où commencer ?<br
/> Nous allons donc faire un tour d&#8217;horizon non exhaustif, mais balayant une grande partie de ce qui est utilisé dans la galaxie GWT : les plugins, les frameworks et les APIs générales et graphiques.</p><p><a
href="http://blog.xebia.fr/2009/01/23/gwt-galaxy/">Lire cet article »</a></p><h4><a
href="http://blog.xebia.fr/2009/02/12/quartz-et-spring-scheduling/">Quartz et Spring Scheduling</a></h4><p><a
href="http://www.opensymphony.com/quartz" title="Quartz" >Quartz</a> pour ceux qui ne le connaissent pas encore, est un ordonnanceur. Il permet de planifier des tâches pour des exécutions ponctuelles ou répétées. Les planifications possibles vont de la simple répétition infinie, à la répétition calendaire utilisant la syntaxe de cron (tous les jours à minuit, le 31 janvier 2009 à 12h00, &#8230;). Quartz est prévu pour toutes sortes d&#8217;applications allant des programmes standalone basiques aux gros systèmes JEE distribués.<br
/> De son côté, Spring scheduling nous donne le choix entre les Timers Java et Quartz. Avec ses interfaces, Spring nous permet de planifier, très facilement, des Jobs directement dans l&#8217;ApplicationContext. En revanche, la gestion des planifications dynamiques est moins évidente. Dans cet article, je vous présenterai l&#8217;API Quartz dans les grandes lignes, puis on mettra en place la planification Quartz avec Spring Scheduling.</p><p><a
href="http://blog.xebia.fr/2009/02/12/quartz-et-spring-scheduling/">Lire cet article »</a></p> ]]></content:encoded> <wfw:commentRss>http://blog.xebia.fr/2009/04/01/ce-que-vous-avez-peut-etre-rate-au-premier-trimestre-2009/feed/</wfw:commentRss> <slash:comments>0</slash:comments> </item> <item><title>Revue de Presse Xebia</title><link>http://blog.xebia.fr/2009/02/09/revue-de-presse-xebia-95/</link> <comments>http://blog.xebia.fr/2009/02/09/revue-de-presse-xebia-95/#comments</comments> <pubDate>Mon, 09 Feb 2009 17:52:23 +0000</pubDate> <dc:creator>Xebia France</dc:creator> <category><![CDATA[Revue de presse]]></category> <category><![CDATA[Ajax]]></category> <category><![CDATA[Flash]]></category> <category><![CDATA[Google]]></category> <category><![CDATA[GWT]]></category> <category><![CDATA[J2EE]]></category> <category><![CDATA[Java / JEE]]></category> <category><![CDATA[Jigsaw]]></category> <category><![CDATA[LiquidTest]]></category> <category><![CDATA[Méthodes agiles]]></category> <category><![CDATA[OpenJDK]]></category> <category><![CDATA[Paris JUG]]></category> <category><![CDATA[RIA]]></category> <guid
isPermaLink="false">http://blog.xebia.fr/?p=1471</guid> <description><![CDATA[La revue de presse de l’actualité Java/J2EE hebdomadaire proposée par Xebia. Agilité LiquidTest : un outil de test des applications web RIA Statut 2009 du Web et de l&#8217;Ajax vu par des superstars Google Analytics enfin pour les applications Flash Le coin de la technique Jigsaw, un petit nouveau de l&#8217;OpenJDK Sortie de GWT 1.6 [...]]]></description> <content:encoded><![CDATA[<p><img
src="http://blog.xebia.fr/wp-content/uploads/2007/06/revuedepresse.png" alt="Revue de Presse Xebia" style="margin: 1em 1em 1em 1em; float: right;" /><br
/> <em>La revue de presse de l’actualité Java/J2EE hebdomadaire proposée par Xebia.</em></p><p><strong>Agilité</strong></p><ul><li><a
href="http://blog.xebia.fr/2009/02/09/revue-de-presse-xebia-95/#LiquidTestunoutildetestdesappl">LiquidTest : un outil de test des applications web</a></li></ul><p><strong>RIA</strong></p><ul><li><a
href="http://blog.xebia.fr/2009/02/09/revue-de-presse-xebia-95/#StatutduWebetdelAjaxvupardessu">Statut 2009 du Web et de l&#8217;Ajax vu par des superstars</a></li><li><a
href="http://blog.xebia.fr/2009/02/09/revue-de-presse-xebia-95/#GoogleAnalyticsenfinpourlesapp">Google Analytics enfin pour les applications Flash</a></li></ul><p><strong>Le coin de la technique</strong></p><ul><li><a
href="http://blog.xebia.fr/2009/02/09/revue-de-presse-xebia-95/#JigsawunpetitnouveaudelOpenJDK">Jigsaw, un petit nouveau de l&#8217;OpenJDK</a></li><li><a
href="http://blog.xebia.fr/2009/02/09/revue-de-presse-xebia-95/#SortiedeGWTMilestone">Sortie de GWT 1.6 Milestone 1</a></li></ul><p><strong>Evènements de notre communauté en France et à l&#8217;étranger</strong></p><ul><li><a
href="http://blog.xebia.fr/2009/02/09/revue-de-presse-xebia-95/#ParisJUGdemainsoir">Paris JUG demain soir !</a></li></ul><h3><a
name="Agilit"></a>Agilité</h3><h4><a
name="LiquidTestunoutildetestdesappl"></a>LiquidTest : un outil de test des applications web</h4><p><a
href="http://www.theserverside.com/news/thread.tss?thread_id=53535" title="LiquidTest" >LiquidTest</a> est un outil entièrement écrit en <a
href="http://www.eclipsetotale.com/articles/Eclipse_RCP.html" title="RCP" >RCP</a> qui permet de tester une application web en jouant des scénarios directement dans le navigateur.</p><p>Les scénarios sont rédigés soit sous forme de tables HTML, soit sous forme de programmes qui pilotent le navigateur (Java, Ruby, Groovy, C#).</p><p>L&#8217;outil permet de générer des tests cases en Java, JUnit et TestNG, C# NUnit.</p><p>Les fonctionnalités suivantes sont proposées :</p><ul><li>Enregistrement automatique des actions sur Firefox et Internet Explorer.</li><li>Écriture rapide et simple des scénarios de tests.</li><li>Une exécution en parallèle des tests sur plusieurs serveurs.</li><li>Intégration avec JUnit, Eclipse (Plugin), .Net et d&#8217;autres frameworks.</li><li>Support des langages de programmation Java, C#, Groovy et Ruby.</li><li>Support du Drag and Drop.</li></ul><p>L&#8217;outil LiquidTest est fourni en 3 éditions : une édition Développeur, une édition Testeur et une édition Serveur.</p><p>Une version d&#8217;essai de 30 jours est <a
href="http://www.jadeliquid.com/?tss" title="disponible" >disponible</a>.</p><h3><a
name="RIA"></a>RIA</h3><h4><a
name="StatutduWebetdelAjaxvupardessu"></a>Statut 2009 du Web et de l&#8217;Ajax vu par des superstars</h4><p>Matt Raible, nous propose sur son blog, une retranscription de deux conférences intéressantes :</p><ul><li><a
href="http://raibledesigns.com/rd/entry/the_state_of_the_web" title="The State of the Web 2009" >The State of the Web 2009</a></li><li><a
href="http://raibledesigns.com/rd/entry/ajax_the_state_of_the" title="Ajax The State of the Art with Dion and Ben" >Ajax: The State of the Art with Dion and Ben</a></li></ul><p>Chris Wilson, employé de Microsoft, fait remarquer que même si il y a des efforts de standardisation les développeurs Web doivent apprendre à utiliser plusieurs types de navigateur. De manière générale, la tendance est à des plateformes et des environnements clients de plus en plus variés (Windows, Mac, iPhone). Les développements doivent tenir compte de tous ces environnements pour construire des applications de plus en plus dimensionnables (scalables).</p><p>Lars Erik Bolstad, employé Opera, ajoute que le WAP n&#8217;a pas réussi et que les navigateurs (même pour les mobiles) font se focaliser sur les standards du Web CSS/HTML. Les performances seront aussi un axe d&#8217;amélioration des mobiles mais aussi des différents moteurs (navigateur, javascript, framework).</p><p>Dan Connolly, membre du groupe de travail du W3C HTML, indique qu&#8217;il y a aussi des axes de travail qui vont avoir de nouveau de l&#8217;intérêt après avoir été un peu ignorés :</p><ul><li>Le Web Semantique.</li><li>Sécurité Javascript : actuellement la sécurité des navigateurs sur les scripts Javascript est faible. On constate souvent que le Javascript est désactivé par les équipes de sécurité ce qui freinent la portabilité des applications Web. (A voir sur google code le framework : <a
href="http://code.google.com/p/google-caja/" title="Caja" >Caja</a>).</li></ul><p>Sur l&#8217;axe développement, Scott Fegette, employé à Adobe, remarque une évolution importante dans le développement Web. Les IDE <a
href="http://fr.wikipedia.org/wiki/WYSIWYG" title="WYSIWYG" >WYSIWYG</a> sont dépréciés en faveur des frameworks. D&#8217;ailleurs, c&#8217;est <a
href="http://jquery.com/" title="JQuery" >JQuery</a> qui semble avoir le plus les faveurs des développeurs Javascript. Un des grands axes d&#8217;intérêt d&#8217;Adobe est le RIA. Ajax est mature. L&#8217;idée de <a
href="http://www.adobe.com/fr/products/air/" title="AIR" >AIR</a> est de développer des applications Bureau par des développeurs Web. Ainsi on développera des applications bureau comme des applications Web, avec des environnements, des techniques et des outils semblables. Ainsi Flash et Flex sont souvent trop riches pour de simples applications Web (hormis pour des composants multimédia &#8211; audio &#8211; vidéo) et sont plus destinés à des applications bureaux.</p><p>Une des orientations importantes est le développement des applications bureaux qui passera par ce que l&#8217;on a connu sur le développement d&#8217;applications Web.</p><h4><a
name="GoogleAnalyticsenfinpourlesapp"></a>Google Analytics enfin pour les applications Flash</h4><p>Google Analytics est un excellent outil pour analyser le trafic sur un site web. Mais jusqu&#8217;à présent cet outil n&#8217;était disponible qu&#8217;en JavaScript.</p><p>Pour étendre les fonctionnalités sur les applications RIA, l&#8217;équipe de Google Analytics a sorti récemment une nouvelle API Gaforflash. Cet API est une implémentation native pour ActionScript3. Matthew McNeely nous présente sur le blog d&#8217;InsideRIA <a
href="http://www.insideria.com/2009/02/using-google-analytics-within.html" title="Gaforflash et des exemples d'utilisation" >Gaforflash et des exemples d&#8217;utilisation</a>. Un nouveau pas franchit pour les applications Flex, si vous voulez avoir plus d&#8217;informations sur cet API voici le lien : <a
href="http://code.google.com/p/gaforflash/" title="httpcodegooglecompgaforflash" >http://code.google.com/p/gaforflash/</a>.</p><h3><a
name="Lecoindelatechnique"></a>Le coin de la technique</h3><h4><a
name="JigsawunpetitnouveaudelOpenJDK"></a>Jigsaw, un petit nouveau de l&#8217;OpenJDK</h4><p>Une <a
href=" http://mail.openjdk.java.net/pipermail/announce/2009-February/000067.html" title="nouvelle étape" >nouvelle étape</a> a été franchie cette semaine avec l&#8217;arrivée du <a
href="http://openjdk.java.net/projects/jigsaw/" title="projet Jigsaw" >projet Jigsaw</a> dans l&#8217;<a
href="http://openjdk.java.net/" title="OpenJDK" >OpenJDK</a>.<br
/> Cette approbation fait suite au vote positif de 6 des 8 membres du <a
href="http://openjdk.java.net/groups/compiler/" title="Compiler Group" >Compiler Group</a>.</p><p>Basé sur <a
href="http://blog.xebia.fr/2008/02/27/jsr-294-les-superpackages/" title="la JSR-294" >la JSR-294</a> dont il reprend les grands principes, Jigsaw a pour but d&#8217;ajouter la notion de modules au JDK. Ce projet, <a
href="http://blog.xebia.fr/2008/12/15/revue-de-presse-xebia-87/#Javacenestpaspourtoutdesuite" title="dernièrement créé" >dernièrement créé</a>, se doit de <a
href="http://blog.xebia.fr/2008/10/13/revue-de-presse-xebia-78/#JSROSGimatuerStanleyHo" title="recoller les morceaux" >recoller les morceaux</a> du <a
href="http://www.osgi.org/blog/2008/12/project-jigsaw.html" title="trs polmique puzzle" >très polémique puzzle</a> de la modularité Java.</p><p>Il devrait permettre :</p><ul><li>De modulariser le JDK. Il était temps de remettre le JDK au sport. Il n&#8217;a cessé de s&#8217;engraisser à chaque nouvelle version au fil de ses 15 ans d&#8217;évolutions. Découper celui-ci en modules permettra, d&#8217;une part de mettre à plat les différentes dépendances de celui-ci, d&#8217;autre part de réduire les consommations mémoires et le temps de démarrage.</li><li>D&#8217;offrir un moyen simple aux développeurs de modulariser leurs propres applications.</li></ul><p>Nous présenterons prochainement le fonctionnement de ces nouveautés, un article dédié est en cours d&#8217;élaboration.</p><h4><a
name="SortiedeGWTMilestone"></a>Sortie de GWT 1.6 Milestone 1</h4><p>Nous vous parlions mi-décembre des futures orientations de GWT  avec la <a
href="http://blog.xebia.fr/2008/12/15/revue-de-presse-xebia-87/#LesorientationsdeGWTRoadmapGWT" title="roadmap de GWT 16" >roadmap de GWT 1.6</a>, prévu pour le premier trimestre 2009.</p><p>C&#8217;est donc sans surprise qu&#8217;est sortie fin de semaine dernière cette version <a
href="http://groups.google.com/group/Google-Web-Toolkit/browse_thread/thread/3e7e6cc3b35ad98a" title="16 en milestone 1" >1.6 en milestone 1</a>. Cette version confirme entre autre :</p><ul><li>La <a
href="http://code.google.com/p/google-web-toolkit/wiki/WAR_Design_1_6" title="structure de projet en WAR" >structure de projet en WAR</a>.</li><li>Les nouveaux composants graphiques comme le <a
href="http://gwt-incubator-lib.googlecode.com/svn/trunk/GWT-Incubator-Demo/com.gwtincubator.TimePickerEntryPoint/TimePickerEntryPoint.html" title="DateTime Picker" >DateTime Picker</a> (à la manière du <a
href="http://haineault.com/media/jquery/ui-timepickr/page/#d-demo-wrapper-1" title="composant équivalent jQuery" >composant équivalent jQuery</a>) ou le <a
href="http://googlewebtoolkit.blogspot.com/2008/11/improving-performance-with-on-demand.html" title="LazyPanel" >LazyPanel</a>.</li><li>Le <em>Hosted Mode</em> qui passe de <a
href="http://tomcat.apache.org/" title="Tomcat" >Tomcat</a> à <a
href="http://www.mortbay.org/jetty/" title="Jetty" >Jetty</a> avec l&#8217;ajout d&#8217;une fonctionnalité <em>Restart</em>.</li><li>Un nouveau système de gestion des évènements.</li></ul><p>Le téléchargement de cette version se passe <a
href="http://code.google.com/p/google-web-toolkit/downloads/list?can=1&#038;q=1.6.0" title="par ici" >par ici</a>, le blog rappel toutefois que cette version n&#8217;est pas <em>production ready</em>.</p><h3><a
name="EvnementsdenotrecommunautenFra"></a>Evènements de notre communauté en France et à l&#8217;étranger</h3><h4><a
name="ParisJUGdemainsoir"></a>Paris JUG demain soir !</h4><p>Dernier rappel, le <a
href="http://www.parisjug.org/xwiki/bin/view/Meeting/20090210" title="Paris JUG" >Paris JUG</a> fête son 1er anniversaire demain soir à la <a
href="http://www.parisjug.org/xwiki/bin/view/Location/Fiapp" title="Fiap" >Fiap</a> à partir de 19h45. Pour plus de détails, regardez le <a
href="http://blog.xebia.fr/2009/02/06/paris-jug-exceptionnel-le-10-fevrier-2009-un-an-deja/" title="programme" >programme</a>.<br
/> Et n&#8217;oubliez pas de vous <a
href="http://www.jugevents.org/jugevents/event/registration.form?event.id=13566" title="inscrire" >inscrire</a>. On espère vous voir nombreux !</p> ]]></content:encoded> <wfw:commentRss>http://blog.xebia.fr/2009/02/09/revue-de-presse-xebia-95/feed/</wfw:commentRss> <slash:comments>0</slash:comments> </item> <item><title>GWT Galaxy</title><link>http://blog.xebia.fr/2009/01/23/gwt-galaxy/</link> <comments>http://blog.xebia.fr/2009/01/23/gwt-galaxy/#comments</comments> <pubDate>Fri, 23 Jan 2009 16:36:32 +0000</pubDate> <dc:creator>Romain Maton</dc:creator> <category><![CDATA[RIA]]></category> <category><![CDATA[GWT]]></category> <guid
isPermaLink="false">http://blog.xebia.fr/?p=1384</guid> <description><![CDATA[Vous avez peut-être assisté au Paris JUG sur GWT et vous vous êtes forcément dit en sortant de la conférence qu&#8217;il fallait absolument vous mettre à GWT. En plus, le pas à franchir n&#8217;est pas énorme : c&#8217;est du Java (ça devrait aller), agrémenté de nombreuses librairies comme dans le monde J2EE, des libraires graphiques [...]]]></description> <content:encoded><![CDATA[<p>Vous avez peut-être assisté au <a
href="http://www.parisjug.org/xwiki/bin/view/Meeting/20081104" title="Paris JUG" >Paris JUG</a> sur GWT et vous vous êtes forcément dit en sortant de la conférence qu&#8217;il fallait absolument vous mettre à GWT. En plus, le pas à franchir n&#8217;est pas énorme : c&#8217;est du Java (ça devrait aller), agrémenté de nombreuses librairies comme dans le monde J2EE, des libraires graphiques qui en jettent sont disponibles&#8230; Que d&#8217;avantages ! Mais par où commencer ?<br
/> Nous allons donc faire un tour d&#8217;horizon non exhaustif, mais balayant une grande partie de ce qui est utilisé dans la galaxie GWT : les plugins, les frameworks et les APIs générales et graphiques.</p><h3><a
name="volutionsdulangage"></a>Évolutions du langage</h3><p>Petit rappel : la toute première version de GWT (1.0) est sortie le 17 mai 2006. Oui, il y a seulement 2 ans et demi ! De nombreuses versions se sont suivies pour arriver à une version 1.4 (fin août 2007) stable et très complète, permettant de démarrer sereinement nos projets.<br
/> Mais voilà, fin août 2008 (1 an plus tard, la plus longue période entre 2 releases), la communauté GWT était en ébullition : en effet, l&#8217;importante version 1.5 pointa son nez apportant un lot de nouveautés assez importantes.<br
/> De nombreux articles nous exposent parfaitement ces nouveautés du langage ; on pourra se diriger sur le <a
href=" http://googlewebtoolkit.blogspot.com/2008/08/gwt-15-now-available.html" title="Blog de GWT" >Blog de GWT</a>, sur <a
href="http://www.infoq.com/news/2008/08/gwt-15" title="InfoQ" >InfoQ</a> ou chez <a
href=" http://blog.octo.com/index.php/2008/09/15/142-gwt-15-est-sorti" title="Octo" >Octo</a>.<br
/> Un rapide résumé donnerait :</p><ol><li>Enfin du Java en version 5 : annotations, generics, enhanced loop, autoboxing, import static&#8230;</li><li>Generics ? Donc nos <code>@gwt.typeArgs</code> sont terminés !</li><li>JRE Emulation beaucoup plus large avec entre autres les très attendues <code>TreeMap</code>, <code>LinkedHashMap</code> et autres <code>StringBuilder</code></li><li>Compilateur beaucoup plus rapide</li><li>Widgets plus complets et plus rapides</li></ol><p>En bref : que du bon !</p><h3><a
name="Plugins"></a>Plug-ins</h3><h4><a
name="ahrefhttpwwwinstantiationscomg"></a><a
href="http://www.instantiations.com/gwtdesigner/download.html" title="GWT Designer" >GWT Designer</a></h4><p>Plugin de type WYSIWYG. Il permet entre autres :</p><ul><li>la création de projet GWT, de module, de service et de librairie,</li><li>génération du service Async <img
src='http://blog.xebia.fr/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /> ,</li><li>la palette de widgets (intégrée dans une vue multi-onglets Design et Source),</li><li>ajout d&#8217;événements et modification des propriétés d&#8217;un composant dans les onglets Event et Properties,</li><li>Compilateur et Hosted Mode intégrés au projet (Builder Eclipse, menu « Run As&#8230; »),</li><li>drag and drop côté Design qui met automatiquement le « Source » à jour.</li></ul><p>À noter qu&#8217;il faudra, au-delà de la période d&#8217;essai, une <a
href="http://www.instantiations.com/gwtdesigner/purchase.html" title="licence annuelle ou perptuelle" >licence annuelle ou perpétuelle</a> pour continuer à l&#8217;utiliser.</p><h4><a
name="ahrefhttpwwwwirelexsoftcomVist"></a><a
href="http://www.wirelexsoft.com/VistaFei.html" title="VistaFei" >VistaFei</a></h4><p>Environnement de développement (qui s&#8217;appuie sur Eclipse 3.2) intégrant toute sorte de plugins spécialement conçus pour GWT. Il propose :</p><ul><li>la création de projet, de module (GWTView) et de service,</li><li>un WYSIWYG (très similaire à celui de GWT Designer) séparant l&#8217;onglet « Properties » de la vue « Design »,</li><li>la génération de code depuis la « GWTView »,</li><li>l&#8217;internationalisation aussi générée.</li></ul><p>Son utilisation est gratuite avec la licence « Community Edition ».</p><h4><a
name="ahrefhttpwwwjetbrainscomideafe"></a><a
href="http://www.jetbrains.com/idea/features/gwt.html" title="IntelliJ IDEA" >IntelliJ IDEA</a></h4><p>Un plugin GWT intégré à l&#8217;IDE très abouti :</p><ul><li>création de projet, de module et de service,</li><li>compilateur de projet,</li><li>complétion Javascript dans une méthode native (non, vous ne rêvez pas !!!),</li><li>quick-fix spécifiques GWT (votre code Java est correct mais il ne compilera pas, oubli de l&#8217;interface « IsSerializable », utilisation d&#8217;une librairie non émulée&#8230;), remplacement des @gwt.typeArgs&#8230;,</li><li>navigation rapide entre les méthodes synchrones et asynchrones.</li></ul><p>Le plugin est intégré à l&#8217;IDE de JetBrains, il faudra donc mettre la main à la poche pour <a
href="http://www.jetbrains.com/idea/buy/index.jsp" title="obtenir une licence" >obtenir une licence</a> à moins de vous lancer dans un projet Open Source.</p><h4><a
name="ahrefhttpwwwcypalinstudiotitle"></a><a
href="http://www.cypal.in/studio" title="Cypal Studio" >Cypal Studio</a></h4><p>Le plugin que tout développeur GWT anti-WYSIWYG a dans son IDE !</p><ul><li>création de module, de service et d&#8217;exemple (sample),</li><li>compilateur intégré au projet (« builder » Eclipse),</li><li>lancement du Hosted Mode.</li></ul><p>Simple mais efficace, ce produit est disponible gratuitement.</p><h3><a
name="Frameworks"></a>Frameworks</h3><h4><a
name="ahrefhttpcodegooglecompgwtmave"></a><a
href="http://code.google.com/p/gwt-maven/" title="GWTMaven" >GWT-Maven</a></h4><p>De nombreuses commandes maven adaptées à GWT sont disponibles, on notera parmi les plus intéressantes :</p><ul><li>Lancement du Hosted Mode (Tomcat, noserver, debug&#8230;),</li><li>Compilation GWT,</li><li>Lancement des tests unitaires GWT,</li><li>Génération des interfaces pour l&#8217;internationalisation,</li><li>Création de WAR GWT,</li><li>Création de JAR GWT.</li></ul><h4><a
name="ahrefhttpnoongileadfreefrgilea"></a><a
href="http://noon.gilead.free.fr/gilead/" title="Gilead" >Gilead</a> (anciennement <a
href="http://hibernate4gwt.sourceforge.net/" title="Hibernate4GWT" >Hibernate4GWT</a>)</h4><p>L&#8217;un des gros problèmes rencontrés au démarrage de GWT est l&#8217;utilisation des POJOs Hibernate côté client.<br
/> Je vous renvoie vers le très bon <a
href="http://blog.xebia.fr/2008/12/17/integrer-hibernate-avec-gwt-sans-douleur/" title="article d'Amin Fathallah (Xebia)" >article d&#8217;Amin Fathallah (Xebia)</a> qui détaille très bien les problèmes rencontrés.<br
/> Ainsi, Gilead nous permet d&#8217;utiliser nos POJOs Hibernate directement côté client sans aucun mapping Dozer !</p><h4><a
name="ahrefhttpgwtwidgetsourceforgen"></a><a
href="http://gwt-widget.sourceforge.net/" title="Spring" >Spring</a></h4><p>Accessible par les librairies <a
href=" http://gwt-widget.sourceforge.net/?q=node/51#GWTSpringController" title="GWTSL et  GWTWL" >GWT-SL et  GWT-WL</a>, il est tout à fait possible d&#8217;utiliser Spring dans un projet GWT.<br
/> Le principal changement est que les services ne sont plus définis en tant que servlets dans le <em>web.xml</em>. Ils sont remplacés par la classe <em> DispatcherServlet</em> de Spring qui pilotera l&#8217;application.<br
/> On notera aussi les classes GWTController et GWTHandler, cœur de GWT-SL, permettant de wrapper intégralement nos actions et nos services.</p><h4><a
name="ahrefhttpsajaxjsfdevjavanetnon"></a><a
href="https://ajax4jsf.dev.java.net/nonav/ajax/gwt/gwt-cdk.html" title="G4JSF" >G4JSF</a></h4><p>L&#8217;adaptation de JSF dans le monde GWT. Même mécanisme que pour le SpringController i.e. que l&#8217;on aura des interfaces/classes à implémenter/étendre au lieu des classes GWT standard, les principales étant ComponentEntryPoint et GwtFacesServiceAsync.<br
/> Le tutoriel de référence pour l&#8217;intégration de JSF avec GWT se trouve sur <a
href="http://www.theserverside.com/tt/articles/article.tss?l=GWTandJSF" title="The Server Side" >The Server Side</a>.</p><h3><a
name="APIsgraphiques"></a>APIs graphiques</h3><p>Le tour d&#8217;horizon continue avec les APIs graphiques.<br
/> Chaque composant ne sera pas détaillé à outrance, seuls certains seront cités pour donner un aperçu général de ce qui est proposé (détail complet sur les sites officiels respectifs de chaque librairie).</p><h4><a
name="ahrefhttpgwtgooglecomsamplesSh"></a><a
href="http://gwt.google.com/samples/Showcase/Showcase.html" title="Widgets Core (démo)" >Widgets Core (démo)</a></h4><p>Premier réflexe avec tout ce que l&#8217;on entend sur GWT : foncer sur la première librairie de composants graphiques à la mode !<br
/> Mais n&#8217;oublions pas toutefois que GWT propose en standard des widgets haut niveau très complets :</p><ul><li>Boutons : basique, checkbox, radio, custom&#8230;,</li><li>Listes : basique, suggest, arbre, menu&#8230;,</li><li>Text : basique et riche (à la <em>word</em>),</li><li>Popups,</li><li>Panels : décorateur, horizontal, vertical, dock, disclosure, onglet&#8230;,</li><li>Tables : tableau standard et flex.</li></ul><h4><a
name="ahrefhttpcodegooglecompgwtextt"></a><a
href="http://code.google.com/p/gwt-ext/" title="GWT-Ext" >GWT-Ext</a> (<a
href=" http://www.gwt-ext.com/demo/" title="dmo" >démo</a>)</h4><p>Certainement la librairie graphique la plus répandue.<br
/> Wrapping complet de l&#8217;API <a
href="http://extjs.com/" title="ExtJS" >ExtJS</a> dans sa version 2.0.2.<br
/> L&#8217;API ne contient donc quasiment que des classes dont les méthodes font une redirection native vers le code Javascript d&#8217;ExtJS.<br
/> On retrouvera donc tout ce qui se fait dans ExtJS avec des composants très puissants comme :</p><ul><li>Arbres : éditable, drag &#038; drop (arbre vers arbre ou tableau), tri, checkbox&#8230;,</li><li>Layouts : horizontal, vertical, accordéon&#8230;,</li><li>Liste : basique, listes liées, live (suggest), paginé&#8230;,</li><li>Tableau : éditable, tableaux groupés, JSON ou XML, chargement local ou distant, checkbox&#8230;,</li><li>Formulaire : à onglets, fieldset, multi-colonnes, binding avec un tableau&#8230;,</li><li>Éléments redimensionnables, déplaçables&#8230;</li><li>Widgets bien stylés et des thèmes out-of-the-box</li></ul><p>Le point noir reste toutefois la Javadoc, même si celle-ci s&#8217;étoffe au fur et à mesure des sorties de GWT-Ext (gros efforts fournis entre les versions 2.0.2 et 2.0.5). Elle reste cependant insuffisante. On pourra tout de même se retourner sur la doc d&#8217;ExtJS (puisque ce n&#8217;est que du pur wrapping) mais dès que l&#8217;on souhaitera aller un peu plus loin avec les composants, il faudra mettre les mains dans le <strike>cambouis</strike> Javascript.</p><h4><a
name="ahrefhttpextjscomproductsgxtti"></a><a
href="http://extjs.com/products/gxt/" title="Ext-GWT" >Ext-GWT</a> (<a
href="http://extjs.com/explorer/" title="dmo" >démo</a>)</h4><p>Le produit de la compagnie <a
href=" http://extjs.com/products/gxt/" title="ExtJS" >ExtJS</a> adapté à GWT.<br
/> Ext-GWT prend le parti de tout réécrire en pur GWT i.e. il n&#8217;y a aucun Javascript externe, tout est en Java.<br
/> Autre atout, l&#8217;API utilise les mécanismes internes de GWT permettant une intégration standard des fonctionnalités comme le remote service en Callback, retour JSON, XML&#8230; mais aussi du Java 5 (generics, enums et varargs).<br
/> On retrouve, sans surprise, les mêmes composants que pour GWT-Ext.<br
/> A noter enfin <a
href="http://extjs.com/products/license.php" title="3 licences" >3 licences</a> disponibles pour le produit (commercial, open source ou revendeur).</p><h4><a
name="ahrefhttpcodegooglecompsmartgw"></a><a
href="http://code.google.com/p/smartgwt/" title="Smart-GWT" >Smart-GWT</a> (<a
href="http://www.smartclient.com/smartgwt/showcase/" title="dmo" >démo</a>)</h4><p><a
href="http://www.jroller.com/sjivan/entry/smartgwt_1_0_released" title="Sanjiv Jivan" >Sanjiv Jivan</a> a encore frappé !<br
/> Après son wrapping complet d&#8217;ExtJS avec GWT-Ext, il s&#8217;attaque cette fois-ci à la librairie <a
href="http://www.smartclient.com/" title="SmartClient" >SmartClient</a> avec sa nouvelle API <a
href="http://www.smartclient.com/smartgwt/showcase/" title="SmartGWT" >SmartGWT</a> (nous vous en parlions dans une précédente <a
href="http://blog.xebia.fr/2008/12/01/revue-de-presse-xebia-85/#SortiedeSmartGWT" title="revue de presse" >revue de presse</a>).<br
/> Le wrapping est encore une fois très complet : tous les composants de SmartClient sont présents dont :</p><ul><li>Arbre : colonne bloquée, drag &#038; drop entre de nombreux composants, data binding multiples&#8230;,</li><li>Slider, effects, animations, dialogs, look &#038; feel, &#8230;</li><li>Tableau : filtres, interactions avancées, &#8230;</li><li>Tile (<a
href="http://www.smartclient.com/smartgwt/showcase/#featured_tile_filtering" title="dmo" >démo</a>),</li><li>Liste-Tableau, Calendrier (à la <em>outlook</em>), load on demand, &#8230;</li></ul><p>On retrouvera aussi, et sans surprise, la plupart des composants combobox, radio, field, &#8230; d&#8217;autres librairie du même type.</p><h4><a
name="ahrefhttprialtoimprovetechnolo"></a><a
href="http://rialto.improve-technologies.com/wiki/rialtogwt" title="Rialto-GWT" >Rialto-GWT</a> (<a
href="http://rialto.improve-technologies.com/Rialto-GWT-Demo/" title="dmo" >démo</a>)</h4><p>De même que pour Ext-GWT, Rialto-GWT dans sa version <a
href="http://rialto.improve-technologies.com/wiki/rialtogwt/download" title="20" >2.0</a> nous propose d&#8217;utiliser GWT 1.5 donc Java 5.<br
/> L&#8217;API utilise aussi les mécanismes internes à GWT, le Wrapping Javascript est présent mais l&#8217;abstraction avec les classes Java rend l&#8217;utilisation très simple.<br
/> A noter toutefois une Javadoc de composants peu fournie&#8230;<br
/> Les composants principaux sont proches de ceux d&#8217;Ext-GWT.</p><h4><a
name="ahrefhttpcodegooglecomptatamit"></a><a
href="http://code.google.com/p/tatami/" title="Tatami (Dojo)" >Tatami (Dojo)</a> (<a
href="http://tatami.googlecode.com/svn/trunk/site/samples/TatamiDemo/index.html" title="dmo" >démo</a>)</h4><p>Encore une célèbre librairie Javascript porté en GWT : <a
href="http://dojotoolkit.org/" title="Dojo" >Dojo</a> !<br
/> Une fois de plus, on retrouve le support de GWT 1.5, des tableaux en tout genre, des sliders, des pickers&#8230;</p><h4><a
name="Autres"></a>Autres&#8230;</h4><p>D&#8217;autres librairies/codes sont disponibles sur la plupart des sites d&#8217;informations GWT, on trouvera ainsi quelques wrapper <a
href="http://script.aculo.us/" title="Script.aculo.us" >Script.aculo.us</a> (<a
href="http://gwt.components.googlepages.com/script.aculo.usintegration" title="ici" >ici</a> ou <a
href="http://labs.pathf.com/GWTaculous/" title="là" >là</a>) mais aussi des wrapper <a
href="http://jquery.com/" title="jQuery" >jQuery</a> (avec entre autre <a
href="http://code.google.com/p/gwtquery/" title="GQuery" >GQuery</a>).</p><div
align="center"> <object
type="application/x-shockwave-flash" data="http://widget-44.slide.com/widgets/slideticker.swf" height="450" width="600" style="width:600px;height:450px"><param
name="movie" value="http://widget-44.slide.com/widgets/slideticker.swf" /><param
name="quality" value="high" /><param
name="scale" value="noscale" /><param
name="salign" value="l" /><param
name="wmode" value="transparent"/><param
name="flashvars" value="cy=ms&#038;il=1&#038;channel=3458764513824714820&#038;site=widget-44.slide.com"/></object></div><h3><a
name="APIsgnrales"></a>APIs générales</h3><h4><a
name="ahrefhttpgwtgooglecomsamplesSh"></a><a
href="http://gwt.google.com/samples/Showcase/Showcase.html#CwMessagesExample" title="I18N" >I18N</a></h4><p>GWT gère nativement l&#8217;internationalisation, donc pas de librairies externes pour cette fonctionnalité.<br
/> L&#8217;utilisation est simple :</p><ul><li>un fichier properties contenant toutes nos clés,</li><li>des interfaces (<em>I18NConstants</em>, <em>I18NMessages</em>&#8230;) Java permettant de faire appel à ces clés,</li><li>une entrée dans notre module.gwt.xml avec si besoin la locale par défaut,</li><li>une locale pouvant être définie au runtime, dans la JSP ou dans l&#8217;URL.</li></ul><h4><a
name="ahrefhttpcodegooglecompgwtlogt"></a><a
href="http://code.google.com/p/gwt-log/" title="Logs" >Logs</a> (<a
href="http://allen-sauer.com/com.allen_sauer.gwt.log.demo.LogDemo/LogDemo.html" title="demo" >demo</a>)</h4><p>Un logger côté client très complet avec différents niveaux de logs : <em>info</em>, <em>warn</em>, <em>debug</em>, <em>error</em> et <em>fatal</em>.<br
/> De nombreux loggers sont disponibles comme le <em>ConsoleLogger</em>, le <em>GWTLogger</em> ou bien encore le <em>FireBugLogger</em>.</p><h4><a
name="ahrefhttpcodegooglecompgwtgoog"></a><a
href="http://code.google.com/p/gwt-google-apis/" title="Google API" >Google API</a></h4><p>Gears, gadgets, Ajax Search et Maps, voici ce que propose la librairie de Google.<br
/> À noter que Visualization est en release candidate.</p><h4><a
name="ahrefhttpcodegooglecompgwtmath"></a><a
href="http://code.google.com/p/gwt-math/" title="Maths" >Maths</a></h4><p>Émulation de <em>BigInteger</em> et <em>BigDecimal</em> avec un grand nombre de méthodes (<em>add</em>, <em>subtract</em>, <em>multiply</em>, <em>divide</em>, <em>abs</em>, <em>negate</em>, <em>compareTo</em>, <em>equals</em>, <em>toString</em>&#8230;).</p><h4><a
name="Etbiendautresencore"></a>Et bien d&#8217;autres encore !</h4><p>A chercher/récupérer au besoin <img
src='http://blog.xebia.fr/wp-includes/images/smilies/icon_wink.gif' alt=';-)' class='wp-smiley' /></p><p>On pourra rapidement citer <a
href="http://code.google.com/p/gwteventservice/" title="GWTEventService" >GWTEventService</a> (qui permet entre autre de faire du pushing / comet), <a
href="http://trac.puremvc.org/PureMVC_Java_MultiCore/" title="PureMVC" >PureMVC</a> (MVC pour GWT) ou bien encore <a
href="http://code.google.com/p/goda-time/" title="GodaTime" >Goda-Time</a> (Joda-Time pour GWT !).</p><h3><a
name="Conclusion"></a>Conclusion</h3><p>Ce petit tour d&#8217;horizon de la galaxie GWT nous permet de retenir 3 choses : <em>vous avez dit galaxie ?</em>, <em>[Mode gros doutes] Tu penses que c&#8217;est possible ?</em> et enfin <em>ça ressemble vraiment à un puzzle cette techno&#8230;</em>.</p><p>Galaxie ? On peut se poser la question dans le sens où, si l&#8217;on creuse un peu, on trouve en effet quelques APIs très bien faites&#8230; mais elles sont tout de même rares ! Après plus de 2 ans d&#8217;existence, on a tout de même l&#8217;impression que cette techno se cherche encore et que, du coup, la communauté J2EE n&#8217;a pas encore confiance en GWT pour démarrer ses projets. Ce manque d&#8217;API robuste ne fera que renforcer cette tendance.</p><p>Est-ce possible ? Réponse : Google est ton ami <img
src='http://blog.xebia.fr/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /> Très peu de sites (comme par exemple <a
href="http://www.ongwt.com/" title="onGWT" >onGWT</a>)  référencent ce qui se fait en GWT au niveau des outils, des frameworks&#8230; Il devient assez laborieux de <em>trouver</em> une API pour un besoin spécifique. N&#8217;oublions pas que GWT émule les packages java.util, java.lang et java.io. Suffisant pour certains projets, mais pour de grosses applications de gestion il en faudra d&#8217;autres&#8230;</p><p>Un puzzle ! C&#8217;est certainement ce qui ressort le plus des projets GWT. Les librairies se récupèrent <em>à droite, à gauche</em> sur Google, il y en a partout avec peu de référencement&#8230; GWT devrait peut-être intégrer directement des APIs reconnues qui ont fait leurs preuves (comme par exemple <a
href="http://www.jcp.org/en/jsr/detail?id=310" title="Java 7 avec JodaTime" >Java 7 avec Joda-Time</a>)&#8230;</p><p>Autrement dit, et c&#8217;est aussi une des conclusions de <a
href="http://www.manning.com/hanson/" title="GWT in Action" >GWT in Action</a>, GWT permet de développer très facilement des applications <em>Ajax</em> sans forcément connaitre Javascript (tout en laissant la possibilité de coder directement en Javascript). Il y a bien sûr encore des choses à revoir/améliorer mais le langage est en très bonne voie et les librairies existantes font le travail demandé.</p><p>Cependant, devez-vous foncer tête baissée sur GWT car vous démarrez un nouveau projet Web / Ajax et vous ne savez pas quelle technologie choisir (<em>GWT</em>, <em>Flex</em>, <em>Silverlight</em>, <em>JavaFX</em>&#8230;) ? Impossible de répondre de manière générale pour tous les projets, cela dépend du back-end existant, des besoins du projet, du temps imparti&#8230; Sachez en tout cas que GWT est un excellent compromis entre Ajax, Java et Javascript et que personnellement, sur les projets auxquels j&#8217;ai participé, je ne regrette absolument pas son utilisation !</p> ]]></content:encoded> <wfw:commentRss>http://blog.xebia.fr/2009/01/23/gwt-galaxy/feed/</wfw:commentRss> <slash:comments>5</slash:comments> </item> <item><title>Ce que vous avez peut-être raté au quatrième trimestre 2008</title><link>http://blog.xebia.fr/2009/01/02/ce-que-vous-avez-peut-etre-rate-au-quatrieme-trimestre-2008/</link> <comments>http://blog.xebia.fr/2009/01/02/ce-que-vous-avez-peut-etre-rate-au-quatrieme-trimestre-2008/#comments</comments> <pubDate>Fri, 02 Jan 2009 10:56:49 +0000</pubDate> <dc:creator>Xebia France</dc:creator> <category><![CDATA[Divers]]></category> <category><![CDATA[Echo 3]]></category> <category><![CDATA[Flex]]></category> <category><![CDATA[GWT]]></category> <category><![CDATA[Java / JEE]]></category> <category><![CDATA[JavaFX]]></category> <category><![CDATA[JVM]]></category> <category><![CDATA[RIA]]></category> <category><![CDATA[Silverlight]]></category> <guid
isPermaLink="false">http://blog.xebia.fr/?p=1243</guid> <description><![CDATA[Voici la liste des billets les plus lus sur ce blog en octobre, novembre et décembre : RIA Contest : Flex / Silverlight / GWT / Echo3 / JavaFX Après le Xebia Web Framework Contest de l&#8217;année dernière, le thème du XKE du mois d&#8217;Octobre était un nouveau contest dédié aux RIA. Le but de [...]]]></description> <content:encoded><![CDATA[<p>Voici la liste des billets les plus lus sur ce blog en octobre, novembre et décembre :</p><h4><a
href="http://blog.xebia.fr/2008/10/03/ria-contest-flex-silverlight-gwt-echo3-javafx/">RIA Contest : Flex / Silverlight / GWT / Echo3 / JavaFX</a></h4><p>Après le <a
href="http://blog.xebia.fr/2007/10/26/xebia-web-framework-contest/" title="Xebia Web Framework Contest" >Xebia Web Framework Contest</a> de l&#8217;année dernière, le thème du <a
href="http://blog.xebia.fr/tag/xke/" title="XKE" >XKE</a> du mois d&#8217;Octobre était un nouveau <em>contest</em> dédié aux <a
href="http://fr.wikipedia.org/wiki/Rich_Internet_Application" title="RIA" >RIA</a>.</p><p>Le but de cette journée était de développer une application de gestion de playlist de morceaux de musique. En promoteurs des méthodes Agiles, les spécifications furent données sous forme d&#8217;un Product Backlog. Trois sprints d&#8217;une durée de 90 minutes ont permis à tous de suivre l&#8217;évolution des différentes réalisations. Un web service SOAP fournissait les différentes données: Artiste, Album, Titres et Pochettes d&#8217;album.</p><p>Cinq équipes ont été constituées, cinq frameworks ont donc été choisis :</p><ul><li><a
href="http://blog.xebia.fr/2008/10/03/ria-contest-flex-silverlight-gwt-echo3-javafx/#Flex" title="Flex 3" >Flex 3</a></li><li><a
href="http://blog.xebia.fr/2008/10/03/ria-contest-flex-silverlight-gwt-echo3-javafx/#Silverlight" title="Silverlight 2.0 beta 2" >Silverlight 2.0 beta 2</a></li><li><a
href="http://blog.xebia.fr/2008/10/03/ria-contest-flex-silverlight-gwt-echo3-javafx/#GoogleGWT" title="Google GWT 1.5" >Google GWT 1.5</a></li><li><a
href="http://blog.xebia.fr/2008/10/03/ria-contest-flex-silverlight-gwt-echo3-javafx/#Echo" title="Echo3" >Echo3</a></li><li><a
href="http://blog.xebia.fr/2008/10/03/ria-contest-flex-silverlight-gwt-echo3-javafx/#JavaFX" title="JavaFX Preview SDK" >JavaFX Preview SDK</a></li></ul><p>Au terme de cette journée, chaque équipe a pu exprimer un retour d&#8217;expérience significatif.</p><p><a
href="http://blog.xebia.fr/2008/10/03/ria-contest-flex-silverlight-gwt-echo3-javafx/">Lire cet article »</a></p><h4><a
href="http://blog.xebia.fr/2008/10/22/diagnostic-dune-jvm-a-distance/">Diagnostic d’une JVM à distance</a></h4><p><em>Développer une application Java, c&#8217;est bien. La rendre performante, c&#8217;est mieux.</em></p><p>Cependant, qui dit &laquo;&nbsp;performance&nbsp;&raquo;, dit &laquo;&nbsp;mesure&nbsp;&raquo;. En effet, il est nécessaire de pouvoir :</p><ul><li>connaître  les paramètres de lancement de la JVM,</li><li>mesurer l&#8217;empreinte mémoire et le comportement du Garbage Collector,</li></ul><p>Cet article va décrire dans une première partie les différents outils permettant de collecter ces informations en local. La seconde partie se concentre sur les moyens pour obtenir ces <strong>mêmes</strong> informations à distance.</p><p><a
href="http://blog.xebia.fr/2008/10/22/diagnostic-dune-jvm-a-distance/">Lire cet article »</a></p><h4><a
href="http://blog.xebia.fr/2008/11/27/analyse-memoire-dune-jvm/">Analyse mémoire d’une JVM</a></h4><p><em>Mardi, 10 heures</em><br
/> - <em>La production &laquo;&nbsp;Allo, le projet, depuis 10 minutes on voit passer des messages &#8216;OutOfMemoryError&#8217;. Que fait-on ? &laquo;&nbsp;</em><br
/> - <em>Le projet &laquo;&nbsp;Augmentez la mémoire de la JVM, doublez-la valeur de l&#8217;option -Xmx &laquo;&nbsp;</em></p><p><em>Mardi, 13 heures</em><br
/> - <em>La production &laquo;&nbsp;Allo, le projet, depuis 5 minutes on voit</em> <strong>encore</strong> <em>passer  des messages &#8216;OutOfMemoryError&#8217;. Que fait-on ? &laquo;&nbsp;</em><br
/> - <em>Le projet &laquo;&nbsp;Augmentez la mémoire de la JVM, doublez</em> <strong>encore</strong> <em>la valeur de l&#8217;option -Xmx &laquo;&nbsp;</em></p><p><em>Mardi 18 heures</em><br
/> - <em>La production &laquo;&nbsp;Allo, le projet, depuis 2 minutes on voit passer</em> <strong>encore</strong> <em>des messages &#8216;OutOfMemoryError&#8217;. Que fait-on ? &laquo;&nbsp;</em><br
/> - <em>Le projet &laquo;&nbsp;Tut, tut, tut,&#8230;..&nbsp;&raquo;</em><br
/> - <em>La production &laquo;&nbsp;Plus d&#8217;équipe projet, la nuit va être longue&#8230;&nbsp;&raquo;</em></p><p>Cette petite scène est un classique, un air de <em>déjà-vu</em> mais que faire ?  Si votre application a déjà subi une batterie de tests techniques, augmenter la mémoire est rarement la bonne solution. La scène décrite ci-dessus laisse penser à ce que l&#8217;on appelle classiquement une <em>Fuite Mémoire</em> (Memory Leak). En réalité, avec les JVM récentes, la fuite mémoire n&#8217;existe pas, je préfère parler <em>d&#8217;accumulation d&#8217;objets non désirés</em>. Cet article va vous montrer comment débusquer cette accumulation avec les outils <a
href="http://java.sun.com/javase/6/docs/technotes/tools/share/jmap.html" title="jmap" >jmap</a>, <a
href="http://java.sun.com/javase/6/docs/technotes/tools/share/jhat.html" title="jhat" >jhat</a> et <a
href="http://www.eclipse.org/mat/" title="Eclipse Memory Analyser" >Eclipse Memory Analyser</a>.</p><p><a
href="http://blog.xebia.fr/2008/11/27/analyse-memoire-dune-jvm/">Lire cet article »</a></p> ]]></content:encoded> <wfw:commentRss>http://blog.xebia.fr/2009/01/02/ce-que-vous-avez-peut-etre-rate-au-quatrieme-trimestre-2008/feed/</wfw:commentRss> <slash:comments>0</slash:comments> </item> <item><title>Intégrer Hibernate avec GWT sans douleur</title><link>http://blog.xebia.fr/2008/12/17/integrer-hibernate-avec-gwt-sans-douleur/</link> <comments>http://blog.xebia.fr/2008/12/17/integrer-hibernate-avec-gwt-sans-douleur/#comments</comments> <pubDate>Wed, 17 Dec 2008 11:44:11 +0000</pubDate> <dc:creator>Amin Fathallah</dc:creator> <category><![CDATA[Java / JEE]]></category> <category><![CDATA[GWT]]></category> <category><![CDATA[Hibernate]]></category> <guid
isPermaLink="false">http://blog.xebia.fr/?p=1149</guid> <description><![CDATA[Avez-vous essayé d&#8217;utiliser directement vos objets du Domaine directement dans votre application GWT sans avoir une longue liste d&#8217;erreurs ? Avez-vous essayé de résoudre le problème en créant des objets DTO (Data Transfer Object) ou en adaptant vos objets du Domaine ? Existe-t-il une solution légère et transparente pour faire cohabiter Hibernate avec GWT ? [...]]]></description> <content:encoded><![CDATA[<p>Avez-vous essayé d&#8217;utiliser directement vos objets du Domaine directement dans votre application GWT sans avoir une longue liste d&#8217;erreurs ? Avez-vous essayé de résoudre le problème en créant des objets DTO (Data Transfer Object) ou en adaptant vos objets du Domaine ? Existe-t-il une solution légère et transparente pour faire cohabiter Hibernate avec GWT ?</p><p>Dans cet article, nous présenterons une solution simple et propre pour vous permettre une meilleure intégration d&#8217;Hibernate avec GWT.</p><p>Ce billet se découpe de la façon suivante :</p><ul><li>Nous commencerons par introduire la <a
href="http://blog.xebia.fr/2008/12/17/integrer-hibernate-avec-gwt-sans-douleur#Introduction">problématique d&#8217;intégration d&#8217;Hibernate avec GWT</a>.</li><li>Nous introduirons ensuite une solution pour <a
href="http://blog.xebia.fr/2008/12/17/integrer-hibernate-avec-gwt-sans-douleur#FairecohabiterGWTetHibernate">faire cohabiter Hibernate avec GWT</a>.</li><li>Nous proposerons ensuite une <a
href="http://blog.xebia.fr/2008/12/17/integrer-hibernate-avec-gwt-sans-douleur#HibernateGWTarriveGWTaussi">solution légère et transparente pour intégrer Hibernate avec GWT</a>.</li><li>Nous détaillerons ensuite la <a
href="http://blog.xebia.fr/2008/12/17/integrer-hibernate-avec-gwt-sans-douleur#Etconcrtementquestcequeadonne">procédure d&#8217;intégration de la solution sur votre projet</a>.</li><li>Et nous terminerons par un petit <a
href="http://blog.xebia.fr/2008/12/17/integrer-hibernate-avec-gwt-sans-douleur#IntgrerHibernateGWTdansvotrepr">retour d&#8217;expérience</a>.</li></ul><h3><a
name="Introduction"></a>Introduction</h3><p>L&#8217;idée de base est d&#8217;utiliser mes objets du Domaine directement dans la couche présentation. Google Web Toolkit se basant sur Java, cela semblait l&#8217;une des forces de cette union. Mais malheureusement, les divergences techniques rendent la tâche difficile.</p><p>Plusieurs raisons empêchent d&#8217;utiliser les objets du Domaine directement dans la couche présentation :</p><ul><li><strong>Héritage différent</strong> : Les objets Java échangés entre le client et le serveur doivent implémenter une interface de sérialisation Google <code>IsSerializable</code>, tandis que les classes Hibernate implémentent l&#8217;interface <code>Serializable</code>. Autre problème gênant, le compilateur GWT dans sa version 1.4 ne supporte pas l&#8217;interface Java <code>Seriablizable</code> et affiche une erreur.</li><li><strong>Types de données incompatibles</strong> : Les classes <code>PersistentSet</code> et <code>java.sql.DateTime</code> utilisées par Hibernate ne sont pas reconnues par le compilateur GWT.</li><li><strong>Chargement partiel (Lazy-Loading)</strong> : GWT ne sait manipuler que des POJO (Plain Old Java Object) et non des objets Hibernate. À l&#8217;exécution, Hibernate remplace les instances par des Proxies, alors que JavaScript, mis en œuvre par GWT, accepte uniquement les types primitifs et les POJO qui en sont composés. Or une classe Proxy n&#8217;est pas un type primitif, ni un type déclaré comme sérialisable en JavaScript.</li></ul><p>Toutefois, intégrer Hibernate avec GWT est possible. Mais doit-on abandonner l&#8217;idée d&#8217;utiliser les objets du Domaine directement dans la couche présentation ? GWT 1.5 est peut-être la solution.</p><h3><a
name="FairecohabiterGWTetHibernate"></a>Faire cohabiter GWT et Hibernate</h3><p>Une solution consiste à créer une hiérarchie de classes DTO correspondant à la hiérarchie des classes Hibernate, puis à cloner les objets du Domaine en objets DTO afin de les véhiculer vers la couche présentation sans difficulté. L&#8217;opération de clonage est prise en charge par la couche service qui assure les conversions Hibernate&lt;-&gt;DTO en utilisant la librairie <a
href="http://beanlib.sourceforge.net/" title="bean-lib">bean-lib</a>. Celle-ci gère la duplication dynamique des objets Hibernate et convertit les données non supportées par GWT. Reste donc le problème de chargement partiel (Lazy loading) qui doit être géré par les développeurs.</p><p>Cette solution s&#8217;est avérée complexe et coûteuse en temps de développement. De plus, elle entraîne beaucoup trop de dépendances techniques. Elle a cependant le mérite de fonctionner.</p><p>Pour plus d&#8217;informations n&#8217;hésitez pas à <a
href="http://www.dotnetguru.org/temp/GWTHibernateinside.pdf" title="consulter le billet suivant" >consulter le billet suivant</a>.</p><h3><a
name="HibernateGWTarriveGWTaussi"></a>Hibernate4GWT arrive &#8230; GWT 1.5 aussi</h3><p>Hibernate4GWT est une librairie Java prenant en charge la cohabitation dynamique d&#8217;Hibernate avec GWT. Elle permet ainsi d&#8217;utiliser les objets du Domaine directement dans la couche présentation sans se soucier de créer une hiérarchie de classes DTO juste vos objets du Domaine et du <a
href="http://www.opentaps.org/docs/index.php/Domain_Driven_Architecture" title="Domain Driven Architecture" >Domain Driven Architecture</a>.</p><p>À noter que si vous utilisez toujours GWT 1.4, vos objets du Domaine doivent respecter la syntaxe Java 1.4, ce qui n&#8217;est pas facile à gérer et à intégrer dans du code existant. Et même avec Hibernate4GWT, vous êtes contraints de créer des classes DTO pour vous en sortir. Les objets du Domaine qui proviennent du serveur sont rapatriés et organisés dans les DTO par la librairie (l&#8217;opération de clone) et les objets DTO renvoyés vers le serveur sont également restitués par la librairie (l&#8217;opération de merge).</p><p>Avec l&#8217;arrivée de GWT1.5, vous n&#8217;avez plus ni à créer des classes DTO, ni à utiliser explicitement les opérations de merge et de clone. il est désormais possible d&#8217;utiliser vos objets du Domaine directement sur la couche présentation : d&#8217;où la nécessité de passer à GWT 1.5 pour une intégration transparente entre Hibernate et GWT.</p><div
align="center"> <img
src="http://blog.xebia.fr/wp-content/uploads/2008/12/hibernate-gwt.png" alt="" title="hibernate-gwt" width="500" height="190" class="aligncenter size-full wp-image-1151" /></div><p>La classe <code>HibernateBeanManager</code>, qui est le cœur de l&#8217;API, s&#8217;occupe de la suppression des proxies Hibernate. Elle gère la conversion des types de données incompatibles avec GWT en leur équivalent valide. Puis elle stocke les informations des attributs partiellement chargés (Lazy attributes) pour restituer correctement les objets du Domaine.</p><p>Hibernate4GWT, avec un minimum de configuration et des impacts techniques très légers, fournit un socle technique qui masque la complexité introduite par l&#8217;intégration d&#8217;Hibernate avec GWT et nous permet ainsi de respecter les règles de l&#8217;art.</p><h3><a
name="Etconcrtementquestcequeadonne"></a>Et concrètement qu&#8217;est-ce que ça donne ?!</h3><p>Hibernate4GWT s&#8217;adapte à plusieurs types de configurations, selon vos besoins et les contraintes du projet dans lequel vous souhaitez l&#8217;intégrer.</p><p>Plusieurs configurations sont possibles :</p><ul><li><strong>Stateless (configuration par défaut)</strong> : le serveur ne stocke aucune information sur l&#8217;état de la session. Les classes du Domaine doivent hériter de la classe <code>LazyPojo</code> pour stocker les attributs partiellement chargés (Lazy attributes).</li><li><strong>Dynamic Proxy</strong> : Une classe Proxy est générée par la librairie pour stocker les informations sur les attributs partiellement chargés (Lazy attributes) côté serveur et côté client. Les classes du Domaine doivent implémenter l&#8217;interface <code>Serializable</code>.</li><li><strong>Stateful</strong> : Les informations sur les attributs partiellement chargés (Lazy attributes) ne sont pas stockées dans les POJO mais dans la session HTTP. Les classes du Domaine ne nécessitent aucun héritage technique, mais votre serveur devient stateful (sticky session).</li><li><strong>Java5 support</strong> : GWT 1.4 ne supporte pas la syntaxe Java 5, Hibernate4GWT permet de cloner dynamiquement les classes du Domaine Java 5 en DTO associés compatibles Java 1.4. Pour cela, ces classes DTO doivent avoir le même nom que les classes du Domaine (placées dans un package différent) et doivent hériter de la classe <code>LazyPojo</code>.</li></ul><p>Pour démarrer, vous devez d&#8217;abord choisir une configuration pour votre projet. Pour un nouveau projet, ou si vous avez la possibilité d&#8217;ajouter des héritages techniques dans vos classes du Domaine, l&#8217;auteur de la librairie recommande la configuration <em>Dynamic proxy</em> ou le mode <em>Stateless</em>. Sinon, si vous ne voulez pas modifier l&#8217;existant, vous pouvez utiliser le mode <em>Stateful</em> ou la configuration <em>Dynamic proxy</em> si vos classes du Domaine implémentent l&#8217;interface <code>Serializable</code>.</p><p>À noter que si vous utilisez des classes du Domaine Java 5 et GWT 1.4, vous êtes contraints d&#8217;utiliser la configuration <em>Java5 support</em>.</p><h3><a
name="IntgrerHibernateGWTdansvotrepr"></a>Intégrer Hibernate4GWT dans votre projet</h3><h4><a
name="Installation"></a>Installation</h4><p>L&#8217;installation d&#8217;Hibernate4GWT dans un projet GWT :</p><ul><li>Décompression de l&#8217;archive hibernate4gwt-1.x.x.zip,</li><li>Ajout d&#8217;hibernate4gwt.jar et des dépendances présentes dans le répertoire lib dans le classpath de votre projet GWT,</li><li>Édition du fichier de configuration GWT :</li></ul><p><strong>Avec GWT 1.4 :</strong></p><pre class="brush: xml; title: ; notranslate">
&lt;module&gt;
       &lt;!-- Inherit the core Web Toolkit stuff --&gt;
       &lt;inherits name='com.google.gwt.user.User'/&gt;
       &lt;!-- Inherit the hibernate4gwt stuff --&gt;
       &lt;inherits name='net.sf.hibernate4gwt.Hibernate4Gwt14'/&gt;
       &lt;!-- Specify the app entry point class --&gt;
       &lt;entry-point class='...'/&gt;
       &lt;!-- Additional source path --&gt;
       &lt;!-- To add for java5 support configuration --&gt;
       &lt;source path='dto'/&gt;
       &lt;!-- To add for other configurations --&gt;
       &lt;source path='domain'/&gt;
       &lt;source path='client'/&gt;
       &lt;!-- To add for dynamic proxy configuration --&gt;
       &lt;generate-with class=&quot;net.sf.hibernate4gwt.rebind.Gwt14ProxyGenerator&quot;&gt;
          &lt;when-type-assignable class=&quot;java.io.Serializable&quot; /&gt;
       &lt;/generate-with&gt;
       &lt;!-- Servlet path --&gt;
&lt;/module&gt;
</pre><p><strong>Avec GWT 1.5 :</strong></p><pre class="brush: xml; title: ; notranslate">
&lt;module&gt;
       &lt;!-- Inherit the core Web Toolkit stuff --&gt;
       &lt;inherits name='com.google.gwt.user.User'/&gt;
       &lt;!-- Inherit the hibernate4gwt stuff --&gt;
       &lt;inherits name='net.sf.hibernate4gwt.Hibernate4Gwt15'/&gt;
       &lt;!-- Uncomment if your Domain class use JPA mapping annotations --&gt;
       &lt;!-- &lt;inherits name='net.sf.hibernate4gwt.emul.java5.ejb3.Ejb3'/&gt; --&gt;
       &lt;!-- Specify the app entry point class --&gt;
       &lt;entry-point class='...'/&gt;
       &lt;!-- Additional source path --&gt;
       &lt;!-- To add for java5 support configuration --&gt;
       &lt;source path='dto'/&gt;
       &lt;!-- To add for other configurations --&gt;
       &lt;source path='domain'/&gt;
       &lt;source path='client'/&gt;
       &lt;!-- To add for dynamic proxy configuration --&gt;
       &lt;generate-with class=&quot;net.sf.hibernate4gwt.rebind.Gwt15ProxyGenerator&quot;&gt;
         &lt;when-type-assignable class=&quot;java.io.Serializable&quot; /&gt;
       &lt;/generate-with&gt;
       &lt;!-- Servlet path --&gt;
&lt;/module&gt;
</pre><h4><a
name="ClassesduDomaine"></a>Classes du Domaine</h4><p>Pour utiliser vos classes du Domaine dans GWT, il y a quelques détails à régler :</p><ul><li>Ajouter vos classes du Domaine dans le classpath de l&#8217;application GWT,</li><li>Implémenter l&#8217;interface <code>Serializable</code> dans vos classes du Domaine pour le mode <em>Stateful</em> et la configuration <em>Dynamic proxy</em>,</li><li>Étendre la classe <code>net.sf.hibernate4gwt.pojo.java14.LazyPojo</code> (GWT 1.4) ou <code>net.sf.hibernate4gwt.pojo.java5.LazyPojo</code> (GWT 1.5) pour le mode <em>Stateless</em>,</li><li>Créer une hiérarchie de classes DTO compatibles avec GWT 1.4 pour la configuration <em>Java5 support</em>.</li></ul><h4><a
name="InitialisationdHibernateBeanMa"></a>Initialisation d&#8217;HibernateBeanManager</h4><p>Lors l&#8217;initialisation de l&#8217;instance d&#8217;<code>HibernateBeanManager</code>, il faut lui associer une instance d&#8217;Hibernate <code>SessionFactory</code>. Cette configuration est à faire dans le code d&#8217;initialisation serveur.</p><p><strong>Mode Stateless :</strong></p><pre class="brush: java; title: ; notranslate">
HibernateBeanManager.getInstance().setSessionFactory(sessionFactory);
// or HibernateBeanManager.getInstance().setEntityManagerFactory(emf);
</pre><p><strong>Configuration Java5 support :</strong></p><p>De plus, il faut également associer <code>HibernateBeanManager</code> à une instance de la classe <code>DirectoryCloneMapper</code> pour le mapping entre les classes du Domaine et les classes DTO.</p><pre class="brush: java; title: ; notranslate">
HibernateBeanManager.getInstance().setSessionFactory(sessionFactory);
// or HibernateBeanManager.getInstance().setEntityManagerFactory(emf);
DirectoryCloneMapper cloneMapper = new DirectoryClassMapper();
cloneMapper.setRootDomainPackage(&quot;com.testing.server.domain&quot;);
cloneMapper.setRootClonePackage(&quot;com.testing.dto&quot;);
cloneMapper.setCloneSuffix(&quot;DTO&quot;);
HibernateBeanManager.getInstance().setClassMapper(cloneMapper);
</pre><p><strong>Mode Stateful :</strong></p><p>En plus de la configuration de base, il faut associer une instance d&#8217;<code>HttpSessionPojoStore</code> à l&#8217;instance d&#8217;<code>HibernateBeanManager</code>.</p><pre class="brush: java; title: ; notranslate">
HibernateLazyManager.getInstance().setPojoStore(new HttpSessionPojoStore());
HibernateLazyManager.getInstance().setSessionFactory(sessionFactory);
// or HibernateLazyManager.getInstance().setEntityManagerFactory(emf);
</pre><p><strong>Configuration Dynamic proxy :</strong></p><p>Il est aussi nécessaire d&#8217;associer une instance de la classe <code>ProxyClassMapper</code> à l&#8217;instance d&#8217;<code>HibernateBeanManager</code> pour les opérations de clone et de merge.</p><pre class="brush: java; title: ; notranslate">
HibernateBeanManager.getInstance().setSessionFactory(sessionFactory);
// or HibernateBeanManager.getInstance().setEntityManagerFactory(emf);
HibernateBeanManager.getInstance().setClassMapper(new ProxyClassMapper());
</pre><h4><a
name="Servicedistant"></a>Service distant</h4><p>L&#8217;implémentation du service GWT distant doit hériter de la classe <code>HibernateRemoteService</code> au lieu de la classe <code>RemoteServiceServlet</code>.</p><pre class="brush: java; title: ; notranslate">
public class ProductRemoteImpl extends HibernateRemoteService
                            implements ProductRemote
{
    ...
    public Product getProduct(int id)
    {
         return _productDAO.getProductById(id);
    }
    public Product updateUser(Product product)
    {
         // Update the product in database
         _productDAO.updateProduct(product);
         // Send back a new clone (optimistic lock)
         return product;
    }
}
</pre><p>A noter qu&#8217;avec la configuration <em>Java5 support</em>, il faut merger les objets DTO en entrée et cloner les objets du Domaine en sortie.</p><pre class="brush: java; title: ; notranslate">
public class ProductRemoteImpl extends HibernateRemoteService
                            implements ProductRemote
{
    ...
    public ProductDTO getProduct(int id)
    {
         return (ProductDTO) clone(_productDAO.getProductById(id));
    }
    public ProductDTO updateUser(ProductDTO productDTO)
    {
         // Update the product in database
         product = (Product)merge(productDTO);
         _productDAO.updateProduct(product);
         // Send back a new clone (optimistic lock)
         return (ProductDTO) clone(product);
    }
}
</pre><h3><a
name="Conclusion"></a>Conclusion</h3><p>J&#8217;avais intégré l&#8217;API Hibernate4GWT sur un projet de petite taille avec une base de données de 10 tables et un nombre d&#8217;utilisateurs simultanés limité à 20. Lors de la mise en œuvre, l&#8217;API m&#8217;a facilité grandement la vie, et m&#8217;a permis une meilleure intégration d&#8217;Hibernate avec GWT. Je n&#8217;ai pas eu des problèmes particuliers en production ni d&#8217;impacts sur les performances de l&#8217;application, mais des questions se posent : peut-on utiliser l&#8217;API sur des grands projets ? Quel sera l&#8217;impact sur les performances lors de la montée en charge ?</p><p>Comme nous avons pu le voir, Hibernate4GWT est une petite librairie qui permet une intégration transparente et légère d&#8217;Hibernate avec GWT. L&#8217;auteur de la librairie nous promet beaucoup de choses dans l&#8217;avenir en renommant la librairie en <a
href="http://noon.gilead.free.fr/gilead/" title="Gilead" >Gilead</a> ou Generic Light Entity Adapter, une nouvelle version Hibernate4ALL pour les technologies (Flex/BlazeDS, Web Services &#8230;).</p><h4><a
name="Liensannexes"></a>Liens annexes :</h4><ul><li>Présentation d&#8217;<a
href="http://hibernate4gwt.sourceforge.net/" title="Hibernate4GWT sur le site officiel" >Hibernate4GWT sur le site officiel</a></li><li>Présentation de <a
href="http://noon.gilead.free.fr/gilead/" title="Gilead sur le site officiel" >Gilead sur le site officiel</a></li></ul> ]]></content:encoded> <wfw:commentRss>http://blog.xebia.fr/2008/12/17/integrer-hibernate-avec-gwt-sans-douleur/feed/</wfw:commentRss> <slash:comments>0</slash:comments> </item> <item><title>Revue de Presse Xebia</title><link>http://blog.xebia.fr/2008/12/15/revue-de-presse-xebia-87/</link> <comments>http://blog.xebia.fr/2008/12/15/revue-de-presse-xebia-87/#comments</comments> <pubDate>Mon, 15 Dec 2008 18:02:24 +0000</pubDate> <dc:creator>Xebia France</dc:creator> <category><![CDATA[Revue de presse]]></category> <category><![CDATA[Adobe]]></category> <category><![CDATA[Google]]></category> <category><![CDATA[Grizzly]]></category> <category><![CDATA[Guice]]></category> <category><![CDATA[GWT]]></category> <category><![CDATA[jdk-7]]></category> <category><![CDATA[PicoContainer]]></category> <category><![CDATA[SpringSource]]></category> <category><![CDATA[tc Server]]></category> <category><![CDATA[Tomcat]]></category> <guid
isPermaLink="false">http://blog.xebia.fr/?p=1121</guid> <description><![CDATA[La revue de presse de l’actualité Java/J2EE hebdomadaire proposée par Xebia. Actualité éditeurs / SSII Coopération entre SpringSource et Adobe tc Server : SpringSource signe la première offre open source professionnelle sur Tomcat Le coin de la technique Les orientations de GWT : Roadmap GWT 1.6 Java 7, ce n&#8217;est pas pour tout de suite&#8230; [...]]]></description> <content:encoded><![CDATA[<p><img
src="http://blog.xebia.fr/wp-content/uploads/2007/06/revuedepresse.png" alt="Revue de Presse Xebia" style="margin: 1em 1em 1em 1em; float: right;" /><br
/> <em>La revue de presse de l’actualité Java/J2EE hebdomadaire proposée par Xebia.</em></p><p><strong>Actualité éditeurs / SSII</strong></p><ul><li><a
href="http://blog.xebia.fr/2008/12/15/revue-de-presse-xebia-87/#CooprationentreSpringSourceetA">Coopération entre SpringSource et Adobe</a></li><li><a
href="http://blog.xebia.fr/2008/12/15/revue-de-presse-xebia-87/#tcServerSpringSourcesignelapre">tc Server : SpringSource signe la première offre open source professionnelle sur Tomcat</a></li></ul><p><strong>Le coin de la technique</strong></p><ul><li><a
href="http://blog.xebia.fr/2008/12/15/revue-de-presse-xebia-87/#LesorientationsdeGWTRoadmapGWT">Les orientations de GWT : Roadmap GWT 1.6</a></li><li><a
href="http://blog.xebia.fr/2008/12/15/revue-de-presse-xebia-87/#Javacenestpaspourtoutdesuite">Java 7, ce n&#8217;est pas pour tout de suite&#8230;</a></li><li><a
href="http://blog.xebia.fr/2008/12/15/revue-de-presse-xebia-87/#SortiedeGrizzly">Sortie de Grizzly 1.9</a></li><li><a
href="http://blog.xebia.fr/2008/12/15/revue-de-presse-xebia-87/#PrsentationdeGoogleGuice">Présentation de Google Guice 2.0</a></li></ul><h3><a
name="ActualitditeursSSII"></a>Actualité éditeurs / SSII</h3><h4><a
name="CooprationentreSpringSourceetA"></a>Coopération entre SpringSource et Adobe</h4><p>SpringSource renforce son positionnement sur les RIA en signant un accord de partenariat avec Adobe Systems. Un partenariat dont l&#8217;objectif est de simplifier le développement et le déploiement des applications RIA se basant sur Adobe Flex et Spring.</p><p>Adobe et SpringSource se sont alliés pour travailler sur Spring BlazeDS Integration, un projet open source qui vise à simplifier l&#8217;intégration de Spring avec Adobe&#8217;s BlazeDS. Une version bêta est prévue dans une ou deux semaines.</p><p>SpringSource a prévu pour l&#8217;année prochaine un nouvel adaptateur pour Adobe LiveCycle Data Services ES, qui permet d&#8217;instaurer un moteur d&#8217;échanges de données entre les applications RIA basées sur Flex et Spring.</p><p>Ce rapprochement permet à SpringSource de renforcer son positionnement sur les RIA.</p><h4><a
name="tcServerSpringSourcesignelapre"></a>tc Server : SpringSource signe la première offre open source professionnelle sur Tomcat</h4><p>Philip Hanik présente dans <a
href="http://www.springsource.com/node/1116" title=""SpringSource tc Server - The Tomcat you know. The enterprise capabilities you need."" >&laquo;&nbsp;SpringSource tc Server &#8211; The Tomcat you know. The enterprise capabilities you need.&nbsp;&raquo;</a> le périmètre du nouvellement annoncé tc Server.</p><p>On y retrouve tous les ingrédients de la version commerciale d&#8217;un produit open source professionnel :</p><ul><li>Support : de l&#8217;entrée de gamme &laquo;&nbsp;heures ouvrées&nbsp;&raquo; à la formule &laquo;&nbsp;mission critique 24&#215;365&#8243; avec une réponse dans l&#8217;heure</li><li>Packaging : livraison packagée avec les patchs nécessaires au client et des configurations et scripts de démarrage optimisés pour les différentes plateformes (32 vs 64 bits, etc).</li><li>Indemnisation : en cas de problème juridique concernant la nature Open Source de Tomcat.</li><li>Administration centralisée : ajout de mécanismes de gestion centralisée de serveurs Tomcat (configuration des serveurs, déploiement d&#8217;applications clusterisées [1] )</li><li>Audit : suivi des opérations réalisées sur les serveurs.</li><li>Monitoring et alertes : reprise des fonctionnalités de <a
href="http://www.springsource.com/files/SpringSource%20Application%20Management%20Suite%20Datasheet.pdf" title="SpringAMS" >SpringAMS</a> ( <a
href="http://www.hyperic.com/products/open-source-systems-monitoring.html" title="Hyperic HQ" >Hyperic HQ</a> + extensions de monitoring de Spring Framework).</li><li>Diagnostique : détection de thread lock, corrélation des erreurs avec les urls et les threads, mécanisme de <a
href="http://blog.springsource.com/2008/01/07/capturing-failures-and-system-state-part-i/" title="First Failure Data Capture (FFDC)" >First Failure Data Capture (FFDC)</a>.</li></ul><p>Si les premiers points étaient déjà couverts par des offres de support commercial (e.g. <a
href="http://www.springsource.com/products/ers" title="SpringSource Enterprise Ready Server" >SpringSource Enterprise Ready Server</a>), c&#8217;est la première offre de type <a
href="http://blogs.the451group.com/opensource/2008/09/01/andrew-lampitt-defines-open-core-licensing/" title="Open Core Licensing" >Open Core Licensing</a> pour Tomcat (noyau open source + extensions commerciales orientées administration).<br
/> Les éditeurs incitaient jusqu&#8217;à présent leurs clients intéressés par un support Tomcat à faire un <em>upsale</em> sur serveur plus sophistiqué (JBoss App. Server, Websphere App. Server Community Edition, Spring dm Server, etc).</p><p>Quel intérêt de payer 500$/an/cpu pour tc Server plutôt que d&#8217;utiliser Tomcat ? Outre le support qui sera important pour de nombreux exploitants, les fonctionnalités d&#8217;exploitations et de supervision présentent un intérêt à prendre en compte.</p><p>Nous noterons pour conclure que l&#8217;ensemble des fonctionnalités annoncées ne sera pas disponible dès la version 1.0 de tc Server.</p><p>[1] tc Server permet notamment des opérations install/update/start/stop/uninstall/rollback <em>phasées</em> sur des clusters pour mettre à jour les noeuds les uns après les autres sans arrêt du service.</p><h3><a
name="Lecoindelatechnique"></a>Le coin de la technique</h3><h4><a
name="LesorientationsdeGWTRoadmapGWT"></a>Les orientations de GWT : Roadmap GWT 1.6</h4><p>La version actuelle de <a
href="http://code.google.com/intl/fr/webtoolkit/" title="GWT" >GWT</a> est la 1.5.3. L&#8217;équipe GWT a présenté sur son blog officiel les orientations de GWT 1.6 et des prochaines versions : <a
href="http://googlewebtoolkit.blogspot.com/2008/12/whats-ahead-for-google-web-toolkit_10.html" title="What's ahead for Google Web Toolkit" >What&#8217;s ahead for Google Web Toolkit</a>.</p><p>Ainsi, on observe que l&#8217;équipe GWT s&#8217;attaque à différents points :</p><ul><li><strong>Performance</strong></li><ul><li>De compilation pour améliorer la productivité du cycle de développement</li><li>D&#8217;exécution : optimisation de l&#8217;utilisation de la classe <code>StringBuilder</code> par exemple, des composants (cf <em>LazyPanel</em> plus bas)</li></ul><li>S&#8217;approcher des <strong>bonnes pratiques éprouvées dans la communauté Java</strong> : voici la spécification : <a
href="http://code.google.com/p/google-web-toolkit/wiki/WAR_Design_1_6" title="Design Doc for 1.6 WAR structure" >Design Doc for 1.6 WAR structure</a>. Ainsi, il sera possible de livrer les fichiers statiques (images, css) dans un répertoire hors de la WebApps. Actuellement tout est chargé via le <em>classpath</em>. Ces ressources statiques pourront être &laquo;&nbsp;<a
href="http://www.akamai.fr/" title="akamai" >akamai</a>-llisées&nbsp;&raquo; et aussi relivrées indépendamment de la WebApp.</li><li><strong>Richesse des composants</strong> : intégration de nouveaux composants qui étaient dans l&#8217;<a
href="http://code.google.com/intl/fr/docreader/#p=google-web-toolkit-incubator&#038;s=google-web-toolkit-incubator&#038;t=google-web-toolkit-incubator" title="incubateur de composants GWT" >incubateur de composants GWT</a></li><ul><li>Un calendrier : <a
href="http://code.google.com/intl/fr/docreader/#p=google-web-toolkit-incubator&#038;s=google-web-toolkit-incubator&#038;t=DatePicker" title="DatePicker" >DatePicker</a></li><li>Un <em>Panel</em> qui permet l&#8217;affichage du contenu d&#8217;un <em>Panel</em> lorsqu&#8217;on le souhaite afin d&#8217;améliorer les performances d&#8217;affichage : <a
href="http://code.google.com/intl/fr/docreader/#p=google-web-toolkit-incubator&#038;s=google-web-toolkit-incubator&#038;t=LazyPanel" title="LazyPanel" >LazyPanel</a></li></ul><li>Migration de Tomcat à Jetty pour le <em>Hosted Mode Server</em>.</li></ul><p>Cette version 1.6 est prévue pour le premier trimestre 2009.</p><p>Ils parlent aussi de la Roadmap GWT :</p><ul><li>Marwan KHELIF avec <a
href="http://www.mkhelif.fr/2008/12/11/gwt-16-quoi-de-neuf.html" title="GWT 1.6 : quoi de neuf" >GWT 1.6 : quoi de neuf ?</a></li><li>Thomas Recloux avec <a
href="http://blog.tartachuc.org/2008/12/11/roadmap-gwt-16/" title="Roadmap GWT 1.6" >Roadmap GWT 1.6</a></li><li>A voir aussi sur le site officiel de GWT <a
href="http://code.google.com/intl/fr/webtoolkit/makinggwtbetter.html" title="Making Gwt Better" >Making Gwt Better</a></li></ul><h4><a
name="Javacenestpaspourtoutdesuite"></a>Java 7, ce n&#8217;est pas pour tout de suite&#8230;</h4><p>Initialement prévu pour début 2009, nous n&#8217;avons toujours pas (peu) eu de détails officiels concernant celui-ci. Vous vous en doutiez, Java 7 ne sortira pas demain. Suite à une des conférences de Devoxx, nous en savons désormais un peu plus sur ce sujet : sa sortie décalée à <strong>début 2010</strong>.</p><p>Est-ce si lointain ? Pas vraiment,  à la vue de tous les différents qui tournent autour du Jdk 7 (modularité, closures &#8230;), il ne sera probablement pas trop d&#8217;une année pour résoudre tous ces sujets de discordes. Pour y arriver, des choix rapides et judicieux devront être pris, cette même conférence en a d&#8217;ailleurs laissé sous-entendre quelques-uns, en voici <a
href="http://hamletdarcy.blogspot.com/2008/12/java-7-update-from-mark-reinhold-at.html" title="les grandes lignes" >les grandes lignes</a>.</p><ul><li><strong>Modularité</strong> : point central de Java7, après la <a
href="http://blog.xebia.fr/2008/10/13/revue-de-presse-xebia-78/#JSROSGimatuerStanleyHo" title="mort programmée de la JSR-277" >mort programmée de la JSR-277</a>, la réconciliation avec OSGi devra sans doute passer par la <a
href="http://jcp.org/en/jsr/detail?id=294" title="JSR-294" >JSR-294</a> (sous-jacente) &#8211; <a
href="http://blog.xebia.fr/2008/02/27/jsr-294-les-superpackages/" title="les superpackages" >les superpackages</a>. Si quelques changements récents offrent des perspectives de réconciliation, l&#8217;aventure ne fait que commencer pour le sujet le plus <a
href="http://www.touilleur-express.fr/2008/12/13/devoxx-que-contiendra-java-7/" title="sensible du Jdk 7" >sensible du Jdk 7</a>. Le nouveau <a
href="http://blogs.sun.com/mr/entry/jigsaw" title="projet Jigsaw" >projet Jigsaw</a> qui doit permettre de partager à la communauté l&#8217;avancement des travaux <a
href="http://neilbartlett.name/blog/2008/12/08/hope-fear-and-project-jigsaw/" title="est déjà fortement controversé" >est déjà fortement controversé</a>.</li><li><strong>Les closures</strong> : la grande blague ; le jdk7 ne proposera finalement pas cette fonctionnalité. Aucun consensus n&#8217;ayant été trouvé à ce sujet par la communauté : celles-ci sont pour le moment <em>déscopées</em>.</li><li><strong>Les nouvelles API</strong> :  aucun scoop à ce sujet. Nous en connaissions déjà les principales : nio2 (<a
href="http://jcp.org/en/jsr/detail?id=203" title="JSR-203" >JSR-203</a>) et JodaTime (<a
href=" http://jcp.org/en/jsr/detail?id=310" title="JSR-310" >JSR-310</a>).</li><li><strong>Évolutions du langage</strong> : C&#8217;est Joseph D. Darcy qui sera chargé de définir et regrouper les <a
href="http://blogs.sun.com/darcy/entry/guidance_measure_language_change_size" title="petites" >petites</a> évolutions du langage pour le Jdk 7. Pour <a
href=" http://blogs.sun.com/darcy/entry/small_language_changes_jdk_7" title="cette future nouvelle JSR" >cette future nouvelle JSR</a> (sa 3e après <a
href="http://jcp.org/en/jsr/detail?id=13" title="JSR-13" >JSR-13</a> et <a
href="http://jcp.org/en/jsr/detail?id=269" title="JSR-269" >JSR-269</a>), il a prévu d&#8217;impliquer d&#8217;avantage la communauté pour ce point facilement sujet à controverse. Son idée est de proposer et demander les retours de la communauté en amont du processus pour éviter toute controverse.  Avant même que la JSR ne soit proposée en draft, les grandes lignes de celles-ci devraient en être définies, disponibles et discutées sur un <a
href="http://mail.openjdk.java.net/pipermail/announce/2008-December/000065.html" title="projet spécifique de l'open JDK" >projet spécifique de l&#8217;open JDK</a>. Cette JSR est prévue pour sortir au cours du premier semestre 2009.</li></ul><p>À ce propos, vous vous demandez peut-être comment va-t-il s&#8217;y prendre pour intégrer ces changements ? C&#8217;est peut-être également l&#8217;occasion de revenir sur un de ces anciens articles présentant les différentes étapes à suivre pour <a
href="http://blogs.sun.com/darcy/entry/so_you_want_to_change" title="ajouter des fonctionnalités dans le jdk " >ajouter des fonctionnalités dans le jdk </a>.</p><h4><a
name="SortiedeGrizzly"></a>Sortie de Grizzly 1.9</h4><p><a
href="http://weblogs.java.net/blog/jfarcand/archive/2008/12/grizzly_190_is.html" title="Grizzly 1.9 est sorti" >Grizzly 1.9 est sorti</a>, à noter que la version 2.0 est prévue pour la fin de l&#8217;année. <a
href="https://grizzly.dev.java.net/" title="Grizzly" >Grizzly</a> est un framework Sun pour aider les développeurs à <strong>construire des serveurs robustes et scalables</strong> en utilisant l&#8217;API Java NIO (et NIO 2). Il met aussi à disposition le support de différents protocoles :</p><ul><li><strong><a
href="http://en.wikipedia.org/wiki/Comet_(programming)" title="<strong>Comet</strong>&nbsp;&raquo; ><strong>Comet</strong></a></strong>, qui permet à un serveur de pousser des informations au client.</li><li>Bayeux Protocol, qui permet une communication continue et bilatérale entre un serveur et un client</li><li>Servlet (support partiel)</li></ul><p>Il est aussi possible de développer un client serveur sur HTTP plus classique (sans push de donnée serveur). Cependant, ce n&#8217;est plus la vocation première du framework Grizzly.</p><p>À titre d&#8217;exemple, le serveur d&#8217;applications <a
href="https://glassfish.dev.java.net/" title="Glassfish" >Glassfish</a> utilise Grizzly comme HTTP Listener.</p><p>Les nouveautés de cette version sont :</p><ul><li>Support des I/O asynchrones (NIO2, <a
href="http://blog.xebia.fr/2008/07/21/revue-de-presse-xebia-66/#JSRMoreNewIOAPIsfortheJavaPlat" title="Xebia en avait parlé" >Xebia en avait parlé</a>), cela permet d&#8217;améliorer grandement les performances</li><li>Support des <em>HTTP write</em> asynchrones</li><li><code>GrizzlyAdapterChain</code> supporte maintenant plusieurs adapteurs et peut transformer les requêtes d&#8217;entrées à la volée</li><li>Le framework Comet a amélioré ses performances. À voir aussi un exemple d&#8217;implémentation utilisant GrizzlyComet : <a
href="http://weblogs.java.net/blog/jfarcand/archive/2008/11/writing_a_twitt.html" title="Writing a Twitter like application using Grizzly Comet part 1: The Servlet" >Writing a Twitter like application using Grizzly Comet part 1: The Servlet</a>.</li></ul><h4><a
name="PrsentationdeGoogleGuice"></a>Présentation de Google Guice 2.0</h4><p>La sortie Guice 2.0 est attendue pour décembre 2008 donc très prochainement.</p><p>À l&#8217;image de Spring, Guice est un framework d&#8217;injection de dépendances. Cependant, Guice se démarque de Spring dans la mesure où Guice fonctionne sans aucun XML. La configuration et le tissage des dépendances se font de manière programmatique. Il utilise les annotations du langage Java 5.</p><p>Guice se veut être un framework léger et facile à intégrer. Il existe d&#8217;ailleurs un plugin Struts pour gérer l&#8217;injection de dépendances en Guice.</p><p>L&#8217;article <a
href="http://www.ibm.com/developerworks/java/library/j-guice.html" title="Dependency injection with Guice" >Dependency injection with Guice</a> de Nicholas Lesoecki, employé à Google, présente le fonctionnement de Guice.</p><p>Voici le fonctionnement du Guice d&#8217;un point de vue programmatique :</p><pre class="brush: java; title: ; notranslate">
@Inject
public FrogMan(Vehicle vehicle) {
  this.vehicle = vehicle;
}
</pre><p>Le tissage s&#8217;effectue aussi de manière programmatique, ce qui le différencie radicalement de Spring :</p><pre class="brush: java; title: ; notranslate">
public class HeroModule implements Module {
  public void configure(Binder binder) {
    binder.bind(Vehicle.class).to(FrogMobile.class);
  }
}
</pre><p>Le tissage est donc réalisé dans un <code>Module</code>.</p><p>Ensuite le contexte Guice se démarre comme suit :</p><pre class="brush: java; title: ; notranslate">
public class Adventure {
  public static void main(String[] args){
    Injector injector = Guice.createInjector(new HeroModule());
    FrogMan hero = injector.getInstance(FrogMan.class);
    hero.fightCrime();
  }
}
</pre><p>Il est possible d&#8217;injecter une dépendance par :</p><ul><li>Constructeur, c&#8217;est la méthode la plus simple, par forcément la plus élégante en Spring</li><li>Méthode</li><li>Attribut de classe</li></ul><p>Cependant, un problème peut se poser par rapport à l&#8217;exemple précédent : comment injecter plusieurs véhicules ? Solution : il faut nommer les cibles en créant ses propres annotations pour l&#8217;injection :</p><pre class="brush: java; title: ; notranslate">
@Inject
public WeaselGirl(@Fast Vehicle vehicle) {
  this.vehicle = vehicle;
}
</pre><p>Code source du tissage :</p><pre class="brush: java; title: ; notranslate">
public class HeroModule implements Module {
 public void configure(Binder binder) {
    binder.bind(Vehicle.class).to(FrogMobile.class);
    binder.bind(Vehicle.class).annotatedWith(Fast.class).to(WeaselCopter.class);
  }
}
</pre><p>Code source de la déclaration de l&#8217;annotation :</p><pre class="brush: java; title: ; notranslate">
@Retention(RetentionPolicy.RUNTIME)
@Target({ElementType.FIELD, ElementType.PARAMETER})
@BindingAnnotation
public @interface Fast {}
</pre><p>Les nouveautés de cette version sont présentées sur le site officiel : <a
href="http://code.google.com/p/google-guice/wiki/Changes20" title="Changes in Guice 2" >Changes in Guice 2</a>. On y trouve entre autre :</p><ul><li>Implémentation de l&#8217;AOP</li><li>Surcharge du binding d&#8217;un module à un autre</li><li>Binding des éléments d&#8217;un tableau <code>Set</code> ({{Multibinding}}) ou <code>Map</code> ({{Mapbinding}})</li><li>Convertisseur de type branchable, par exemple, pour convertir une chaîne de caractères en date</li></ul><p>Même si Guice est loin d&#8217;avoir la maturité de Spring ou même autant de fonctionnalités que ce dernier, il propose une approche de l&#8217;injection de dépendances très pragmatique.</p><p>Une étude sur la comparaison des versions Guice 1.0 et Spring 2.0.2 (<a
href="http://www.jroller.com/habuma/entry/guice_vs_spring_javaconfig_a" title="Guice vs. Spring JavaConfig: A comparison of DI styles" >Guice vs. Spring JavaConfig: A comparison of DI styles</a>) arrive aux conclusions suivantes :</p><ul><li>Performance : Guice est plus rapide, mais est-ce vraiment important car généralement les dépendances sont chargées au démarrage de l&#8217;application ?</li><li>Modèle de programmation Guice plus intrusif : il est dommage de devoir mettre un <code>@inject</code> dans les objets Guice qui peuvent être injectés</li><li>Spring AOP est plus puissante</li><li>Guice est plus facile à intégrer (il y a seulement 2 <em>Jars</em> à intégrer)</li></ul><p>À voir également : deux liens intéressants sur l&#8217;injection de dépendance issus de la documentation de <a
href="http://www.picocontainer.org/" title="PicoContainer" >PicoContainer</a>, autre implémentation pour l&#8217;injection de dépendance :</p><ul><li><a
href="http://picocontainer.org/patterns.html" title="Design patterns" >Design patterns</a>, règles a avoir en tête lorsque l&#8217;on fait de l&#8217;injection de dépendance</li><li><a
href="http://picocontainer.org/inversion-of-control-history.html" title="Inversion of Control history" >Inversion of Control history</a>, tout sur l&#8217;injection de dépendance</li></ul> ]]></content:encoded> <wfw:commentRss>http://blog.xebia.fr/2008/12/15/revue-de-presse-xebia-87/feed/</wfw:commentRss> <slash:comments>4</slash:comments> </item> <item><title>Revue de Presse Xebia</title><link>http://blog.xebia.fr/2008/12/08/revue-de-presse-xebia-86/</link> <comments>http://blog.xebia.fr/2008/12/08/revue-de-presse-xebia-86/#comments</comments> <pubDate>Mon, 08 Dec 2008 18:13:36 +0000</pubDate> <dc:creator>Xebia France</dc:creator> <category><![CDATA[Revue de presse]]></category> <category><![CDATA[GWT]]></category> <category><![CDATA[Hibernate Search]]></category> <category><![CDATA[IBM]]></category> <category><![CDATA[J2EE]]></category> <category><![CDATA[Java / JEE]]></category> <category><![CDATA[JavaFX]]></category> <category><![CDATA[JBoss]]></category> <category><![CDATA[Méthodes agiles]]></category> <category><![CDATA[REST]]></category> <category><![CDATA[RIA]]></category> <category><![CDATA[Silverlight]]></category> <category><![CDATA[Spring]]></category> <category><![CDATA[Spring 3.0]]></category> <category><![CDATA[Spring Integration]]></category> <category><![CDATA[SpringSource]]></category> <guid
isPermaLink="false">http://blog.xebia.fr/?p=1112</guid> <description><![CDATA[La revue de presse de l’actualité Java/J2EE hebdomadaire proposée par Xebia. Actualité éditeurs / SSII JBoss AS 5, ce fut long mais c&#8217;est parti SpringSource tc Server : un dm Server sans ses modules Quoi de neuf dans Spring 3.0 M1 ? Sortie de Spring Integration 1.0.0 Sortie d&#8217;Hibernate Search 3.1 Agilité L&#8217;agilité chez IBM [...]]]></description> <content:encoded><![CDATA[<p><img
src="http://blog.xebia.fr/wp-content/uploads/2007/06/revuedepresse.png" alt="Revue de Presse Xebia" style="margin: 1em 1em 1em 1em; float: right;" /><br
/> <em>La revue de presse de l’actualité Java/J2EE hebdomadaire proposée par Xebia.</em></p><p><strong>Actualité éditeurs / SSII</strong></p><ul><li><a
href="http://blog.xebia.fr/2008/12/08/revue-de-presse-xebia-86/#JBossAScefutlongmaiscestparti">JBoss AS 5, ce fut long mais c&#8217;est parti</a></li><li><a
href="http://blog.xebia.fr/2008/12/08/revue-de-presse-xebia-86/#SpringSourcetcServerundmServer">SpringSource tc Server : un dm Server sans ses modules</a></li><li><a
href="http://blog.xebia.fr/2008/12/08/revue-de-presse-xebia-86/#QuoideneufdansSpringM">Quoi de neuf dans Spring 3.0 M1 ?</a></li><li><a
href="http://blog.xebia.fr/2008/12/08/revue-de-presse-xebia-86/#SortiedeSpringIntegration">Sortie de Spring Integration 1.0.0</a></li><li><a
href="http://blog.xebia.fr/2008/12/08/revue-de-presse-xebia-86/#SortiedHibernateSearch">Sortie d&#8217;Hibernate Search 3.1</a></li></ul><p><strong>Agilité</strong></p><ul><li><a
href="http://blog.xebia.fr/2008/12/08/revue-de-presse-xebia-86/#LagilitchezIBM">L&#8217;agilité chez IBM</a></li></ul><p><strong>RIA</strong></p><ul><li><a
href="http://blog.xebia.fr/2008/12/08/revue-de-presse-xebia-86/#AupieddusapinJavaFXGA">Au pied du sapin : JavaFX GA</a></li><li><a
href="http://blog.xebia.fr/2008/12/08/revue-de-presse-xebia-86/#SilverlightsousLinux">Silverlight sous Linux</a></li></ul><p><strong>Le coin de la technique</strong></p><ul><li><a
href="http://blog.xebia.fr/2008/12/08/revue-de-presse-xebia-86/#NouveaumodehostpourGWT">Nouveau mode hosté pour GWT 2.0</a></li></ul><h3><a
name="ActualitditeursSSII"></a>Actualité éditeurs / SSII</h3><h4><a
name="JBossAScefutlongmaiscestparti"></a>JBoss AS 5, ce fut long mais c&#8217;est parti</h4><p>Sacha Labourey, CTO de JBoss, nous avait parlé lors de <a
href="http://sacha.labourey.com/2008/12/03/paris-jug-you-rock/" title="sa venue au Paris JUG la semaine dernière" >sa venue au Paris JUG la semaine dernière</a> de l&#8217;imminence de cette annonce que la communauté attendait depuis longtemps : JBoss AS 5 est enfin releasé !</p><p><strong>Les principaux composants de JBoss AS 5</strong></p><ul><li><a
href="http://www.jboss.org/jbossmc/" title="JBoss Micro Container" >JBoss Micro Container</a> (MC) : remplaçant du JMX Kernel, MC est le conteneur du serveur d&#8217;applications. Il offre le cycle de vie des différents modules (installation, démarrage, arrêt, désinstallation).</li><li><a
href="http://www.jboss.org/jbossmessaging/" title="JBoss Messaging" >JBoss Messaging</a> (JMS) : déjà utilisé dans JBoss AS 4, JBoss Messaging est le successeur de JBoss MQ. La version 2 de JBoss Messaging est en cours de développement; les synergies avec <a
href="http://www.redhat.com/mrg/messaging/" title="Red Hat Messaging" >Red Hat Messaging</a> sont prévues ; les efforts pour faire converger les deux middlewares de message seront vraisemblablement importants.</li><li><a
href="http://www.jboss.org/jbosstm/" title="JBoss Transaction" >JBoss Transaction</a> : issu du rachat d&#8217;Arjuna Transaction Service en 2005, ce composant mature n&#8217;a pas connu d&#8217;évolution significative avec AS 5.</li><li><a
href="http://www.jboss.org/jbossws/" title="JBoss WS" >JBoss WS</a> : stack Web Service ; la multiplicité de ses implémentations SOAP (native, adapteur pour <a
href="https://metro.dev.java.net/" title="Glassfish Metro" >Glassfish Metro</a> ou pour <a
href="http://cxf.apache.org/" title="Apache CXF" >Apache CXF</a>) rend compliquée la compréhension de ce composant.</li><li>Clustering : la haute disponibilité et la réplication reposent sur le mature et dynamique <a
href="http://www.jboss.org/jbosscache/" title="JBoss Cache" >JBoss Cache</a> (aujourd&#8217;hui en version 3) qui repose lui-même sur la librairie de communication multicast <a
href="http://www.jboss.org/jgroups/" title="JGroups" >JGroups</a>.</li><li><a
href="http://www.jboss.org/jbossweb/" title="JBoss Web" >JBoss Web</a> : fort de son long passé de <em>commiter</em> Tomcat, JBoss package sa version optimisée du moteur de servlet de la fondation Apache.</li></ul><p><strong>Pourquoi JBoss a-t-il mis autant de temps à sortir cette version ? Des difficultés pour implémenter Java EE 5 ?</strong><br
/> JBoss n&#8217;a pas eu de difficultés particulières à implémenter les EJB 3 ou JPA qui étaient déjà disponibles dans JBoss AS 4.2. Java EE 5 est la partie émergée de l&#8217;iceberg AS 5. Ce qui a pris du temps à JBoss est la refonte complète de son serveur d&#8217;applications. Les fonctions structurelles du middleware (transactions, clustering, messaging, sécurité, administration, etc.) sont désormais séparées des applications déployées qui peuvent être <em>packagées</em> au format Java EE mais aussi OSGi, Spring, Ruby On Rails ou tout autre format dès lors qu&#8217;un <em>deployer</em> (i.e. adaptateur) est disponible.</p><p><strong>JBoss Micro Container est-il une victime du syndrome Not Invented Here ?</strong><br
/> La réponse est complexe et le choix de JBoss plein de mesure. Le projet MC a été lancé alors que la bataille (plus politique que technique) entre Java Module System et OSGi faisait rage. Sun misait sur le projet <a
href="https://hk2.dev.java.net/" title="HK2" >HK2</a> pour son serveur Glassfish et s&#8217;est finalement <a
href="http://blog.xebia.fr/2008/04/21/revue-de-presse-xebia-53/#JavaModuleSystemJSRvsOSGILarco" title="rabattu sur le conteneur OSGi Apache Felix" >rabattu sur le conteneur OSGi Apache Felix</a>. SpringSource a tellement <em>amélioré</em> OSGi que le résultat rendait OSGi méconnaissable (adieux les ServiceTracker et autres Declarative Services) ; le pari a réussi et Spring dm Server est en cours de standardisation par l&#8217;OSGi Alliance sous le nom de <a
href="http://blog.xebia.fr/2008/11/24/revue-de-presse-xebia-84/#OSGiSpringdmServerstandardispo" title="Blueprint Component Model" >Blueprint Component Model</a>. JBoss, pourtant habitué des contributions aux standards Java (cf. JPA, Web Beans, etc.) a cette fois ci préféré commencer cavalier seul avec un Micro Container qui supporte OSGi comme il aurait pu supporter Java Module System.</p><p><strong>Si JBoss AS 5.0 est une refonte complète, il risque d&#8217;être buggué</strong><br
/> Le risque n&#8217;est pas nul, mais nous remarquerons que la plupart des composants fondamentaux sont matures et n&#8217;ont pas été impactés par la refonte 5.0 (transactions, messaging, etc.).</p><p><strong>Le chantier AS 5 a-t-il été trop ambitieux ?</strong><br
/> Les autres serveurs d&#8217;applications ont déjà été refondus (Websphere 6.1) ou sont en cours de refonte (Glassfish 3). Cette remise à plat était importante. Cependant, JBoss a pris beaucoup plus de temps qu&#8217;il ne le prévoyait et a dû changer certaines méthodes de travail pour atteindre son objectif. Sacha Labourey a notamment expliqué que le mécanisme de build a été changé en cours de route et que le travail open source collaboratif à distance par forum/mailing-list interposés avait touché ses limites.</p><p><strong>Les clients ont-ils perdu patience ? Ont-ils changé de serveur ?</strong><br
/> Les clients ont sûrement été déçus par l&#8217;attente mais pas tellement plus que les clients Websphere <img
src='http://blog.xebia.fr/wp-includes/images/smilies/icon_wink.gif' alt=';-)' class='wp-smiley' /> et JBoss AS 4 proposait déjà les EJB 3 et JPA. Ensuite, Glassfish a surement pris des parts de marché à JBoss AS mais c&#8217;est plus probablement lié à l&#8217;essor de Glassfish qui se fait au détriment de ses concurrents JBoss, Websphere et Weblogic.</p><p>En conclusion, JBoss AS 5 est une bonne nouvelle pour l&#8217;Open Source Java et rappelle la vitalité du modèle économique du Professional Open Source que JBoss a contribué à inventer.</p><h4><a
name="SpringSourcetcServerundmServer"></a>SpringSource tc Server : un dm Server sans ses modules</h4><p>L&#8217;actualité Spring est particulièrement riche cette semaine : SpringSource a annoncé lors des conférences de <a
href="http://americas.springone.com/" title="SpringOne Americas" >SpringOne Americas</a> l&#8217;arrivée prochaine d&#8217;un nouveau serveur d&#8217;applications : le <a
href="http://www.springsource.com/products/suite/tcserver" title="tc Server" >tc Server</a>.  Non, il ne s&#8217;agit pas d&#8217;un second renommage de leur <a
href=" http://www.springsource.com/products/suite/dmserver" title="dm Server" >dm Server</a>, mais bel et bien d&#8217;un nouveau produit.  Comme son nom l&#8217;indique, tc Server  n&#8217;est ni plus ni moins qu&#8217;un Tomcat gonflé en fonctionnalités et en support, permettant de répondre aux problématiques de production.</p><p>Selon SpringSource, ce nouveau serveur est destiné à trois types d&#8217;utilisateurs :</p><ul><li>Les utilisateurs de Tomcat, désireux d&#8217;acquérir du support en production et/ou des fonctionnalités supplémentaires d&#8217;aide à la configuration et de diagnostics.</li><li>Les utilisateurs de serveurs d&#8217;applications JEE qui n&#8217;utilisent pas d&#8217;EJB, désireux de migrer vers une solution plus légère.</li><li>Les futurs utilisateurs de dm Server, désirant modulariser leur application.</li></ul><p>Par ailleurs, SpringSource a <a
href="http://blog.xebia.fr/2008/11/17/revue-de-presse-xebia-83/#SpringSourcedvoilesaroadmap" title="récemment annoncé dans sa roadmap" >récemment annoncé dans sa roadmap</a> une compatibilité Tomcat dans sa prochaine version de dm Server (Jersey) prévue pour Q2 2009. À terme, ces deux serveurs ne risquent-ils pas de se marcher dessus ? Vu de l&#8217;extérieur, cela donne l&#8217;impression que ce nouveau tc Server a été créé dans le but de rassurer les utilisateurs : pas besoin d&#8217;être modulaire pour tourner sur une plateforme SpringSource.</p><p>Ce chevauchement dans l&#8217;offre nous laisse entrevoir une stratégie intéressante de la part de SpringSource :</p><ol><li>Attirer en douceur les utilisateurs via un simple support Tomcat avec tc Server.</li><li>Les aiguiller par la suite vers une solution plus complète basée sur dm Server.</li></ol><p>Pour cela, Spring compte tout d&#8217;abord mettre en avant ses fonctions Java EE classiques (monitoring avancé, transactions distribuées),  puis, dans un deuxième temps, ouvrir le développement sur un modèle de composants Spring Module. Tout l&#8217;enjeu de cette stratégie est de convaincre les exploitants. Une fois que dm Server sera suffisamment bien implanté, les développeurs devraient se mettre à déployer leurs propres modules OSGi.</p><p>Cette distinction, techniquement non nécessaire, nous montre encore à quel point la monétisation du libre et la vente de support restent difficiles. La tarification des services reste au centre de la stratégie (et c&#8217;est bien compréhensible) : avec ce nouveau serveur, SpringSource nous propose également une nouvelle grille de tarifications allégée.</p><h4><a
name="QuoideneufdansSpringM"></a>Quoi de neuf dans Spring 3.0 M1 ?</h4><p>Le premier milestone du Spring nouveau est arrivé, <a
href="http://blog.springsource.com/2008/12/05/spring-framework-30-m1-released/" title="annoncé par Jurgen Holler ce vendredi sur son blog" >annoncé par Jurgen Holler ce vendredi sur son blog</a>. Comme nous <a
href="http://blog.xebia.fr/2008/11/17/revue-de-presse-xebia-83/#SpringSourcedvoilesaroadmap" title="l'annoncions dans une précédente revue de presse" >l&#8217;annoncions dans une précédente revue de presse</a>, Spring 3.0 M1 sort avec un léger retard par rapport à la roadmap Spring prévue.</p><p>Utilisateurs de Spring 2.5, les nouveautés apportées par cette nouvelle version ne devraient pas vous dépayser : peu de nouveautés fonctionnelles, mais un gros travail de refactoring interne.</p><p><strong>Modifications techniques internes :</strong></p><ul><li>Migration de gestionnaire de source : CVS vers SVN, dont voici <a
href="https://src.springframework.org/svn/spring-framework/" title="l'adresse" >l&#8217;adresse</a>.</li><li>Refactoring du projet en modules, le trunk contient une vingtaine de sous projets : <code>org.springframework.core</code>, <code>org.springframework.aop</code>, <code>org.springframework.expression</code> &#8230;</li><ul><li>Chaque module est commité avec sa configuration Eclipse prête à l&#8217;emploi, vous trouverez donc les <code>.project</code>, <code>.classpath</code> et même les répertoires <code>.settings</code> directement sur le svn.</li><li>Vous y trouverez également les fichiers de configuration de build Ivy et un début de configuration Maven. Cette dernière n&#8217;est probablement pas fonctionnelle : les derniers commits datent de fin d&#8217;octobre pour les fichiers Maven, alors que des modifications ont été effectuées plus récemment fin novembre sur la configuration Ivy. D’ailleurs, les <code>.classpath</code> ne vous y tromperont pas, ils contiennent tous la variable d’environnement <code>IVY_CACHE</code>.</li></ul><li>Refactoring des sources, chaque module utilise maintenant les fonctionnalités Java 5, le code interne en est simplifié.</li><li>Montée de version des tiers frameworks : JRuby 1.1 et  JUnit 4.5. La montée de version de JUnit simplifie l&#8217;utilisation de ses extensions.</li></ul><p><strong>Nouvelles fonctionnalités :</strong></p><ul><li>Arrivée de Spring EL utilisable dans n&#8217;importe quel composant Spring (y compris &#8216;core&#8217;). Vous pouvez par exemple utiliser la syntaxe #{ &#8230; } lors de la définition de vos beans (XML et/ou annotations) pour permettre de définir au runtime la valeur de certaines propriétés de vos <em>beans prototypes</em>.</li><li>Support de REST intégré dans Spring MVC.</li><li>&#8230; le reste à venir dans les milestones M2 et M3 qui suivront, prévus pour Q1 2009.</li></ul><p>Nous avions également publié un article en octobre présentant <a
href="http://blog.xebia.fr/2008/10/08/spring-30-le-grand-nettoyage-du-printemps/" title="les principales nouveautés de Spring 3.0" >les principales nouveautés de Spring 3.0</a>.</p><h4><a
name="SortiedeSpringIntegration"></a>Sortie de Spring Integration 1.0.0</h4><p>La version <a
href="http://www.springsource.org/node/843" title="1.0.0 GA de Spring Integration" >1.0.0 GA de Spring Integration</a>, le <em>&laquo;&nbsp;<a
href="http://blog.xebia.fr/2007/12/17/spring-integration-lavenement-des-lightweight-esb/" title="light weight ESB" >light weight ESB</a>&laquo;&nbsp;</em> de SpringSource a été annoncée cette semaine lors du dernier <a
href="http://americas.springone.com/" title="SpringOne Americas" >SpringOne Americas</a>.</p><p>Comme nous l&#8217;expliquions dans notre <a
href="http://blog.xebia.fr/2008/07/30/introduction-a-spring-integration/" title="Introduction à Spring Integration" >Introduction à Spring Integration</a>, cette implémentation légère des <a
href="http://activemq.apache.org/camel/enterprise-integration-patterns.html" title="Enterprise Integration Patterns" >Enterprise Integration Patterns</a> vise à simplifier le développement de solutions d&#8217;intégration d&#8217;entreprise et à faciliter l&#8217;adoption par les utilisateurs de Spring des principes <strong>EDA</strong> <em>(Event Driven Architecture)</em>.</p><h4><a
name="SortiedHibernateSearch"></a>Sortie d&#8217;Hibernate Search 3.1</h4><p>La version 3.1.0 d&#8217;Hibernate Search a été mise à disposition cette semaine. Comme l&#8217;explique <a
href="http://blog.emmanuelbernard.com/" title="Emmanuel Bernard" >Emmanuel Bernard</a> dans l&#8217;article <em>&laquo;&nbsp;<a
href="http://in.relation.to/Bloggers/HibernateSearch31IsOutPerformanceRobustnessAndNewFeaturesOnTheMenu" title="Hibernate Search 3.1 is out: performance, robustness and new features on the menu" >Hibernate Search 3.1 is out: performance, robustness and new features on the menu</a>&laquo;&nbsp;</em>, cette nouvelle version met l&#8217;accent sur l&#8217;amélioration des performances, la robustesse du code et l&#8217;<em>utilisabilité</em>.</p><p>Comme nous l&#8217;expliquions dans notre <a
href="http://blog.xebia.fr/2008/03/06/introduction-a-hibernate-search-googling-your-persistent-domain-model/" title="Introduction à Hibernate Search" >Introduction à Hibernate Search</a>, Hibernate Search est un <strong>moteur d&#8217;indexation et de recherche full-text</strong> reposant sur <a
href="http://lucene.apache.org/" title="Apache Lucene" >Apache Lucene</a>. Il prend ainsi en charge la gestion d&#8217;un index Lucene et sa synchronisation avec une structure objet persistée en base de données.</p><h3><a
name="Agilit"></a>Agilité</h3><h4><a
name="LagilitchezIBM"></a>L&#8217;agilité chez IBM</h4><p><a
href="http://www.ambysoft.com/scottAmbler.html" title="Scott Ambler" >Scott Ambler</a>, responsable du développement agile chez IBM, a été <a
href="http://www.infoq.com/interviews/Agile-Scott-Ambler" title="interviewé par InfoQ" >interviewé par InfoQ</a> sur l&#8217;état présent de l&#8217;agilité et son futur.<br
/> En se basant sur l&#8217;<a
href="http://www.infoq.com/news/2008/05/agile-adoption-survey-2008" title="étude 2008 de Dr. Dobb's" >étude 2008 de Dr. Dobb&#8217;s</a>, il rappelle que 69% des organisations font au moins un projet agile. L&#8217;agilité est une réalité. Le TDD fait aussi parler de lui mais ceux qui le pratiquent sont moins nombreux.</p><p>Une autre étude a montré que les équipes agiles font autant de documentation que les équipes traditionnelles, et même plus de modélisation upfront (88% des équipes agiles), que ce soit sur papier ou avec des outils plus sophistiqués.<br
/> Abordant les problèmes liés à l&#8217;introduction de l&#8217;Agilité dans les grandes équipes, Scott cite les 2 points les plus courants qui sont les équipes de grande taille (5000 ?) et les équipes distribuées. Il ajoute un 3e point : la gouvernance.<br
/> L&#8217;Agilité permet une gouvernance plus efficace que les projets traditionnels, en laissant le contrôle du périmètre, du budget et de l&#8217;agenda aux intervenants (stakeholders).<br
/> Concernant les équipes distribuées, l&#8217;étude du Dr Dobb&#8217;s rapporte le succès des projets mesuré par leurs clients :</p><ul><li>équipes colocalisées : 83%</li><li>équipes proches (étages différents, bâtiments différents) : 72%</li><li>équipes distribuées (qui nécessitent l&#8217;avion) : 60%</li></ul><p>Scott conseille donc d&#8217;éviter les équipes distribuées. Si l&#8217;on ne peut vraiment pas, il conseille d&#8217;organiser les équipes en fonction de l&#8217;architecture afin de minimiser la communication entre les différents lieux. Cela nécessite notamment un &laquo;&nbsp;architecture owner&nbsp;&raquo;, responsable de l&#8217;architecture, mais qui ne reste pas dans sa tour d&#8217;ivoire comme on peut en voir sur certains projets.</p><p>L&#8217;autre conseil pour les équipes distribuées est de s&#8217;équiper de bons outils. Il présente le nouveau produit <a
href="http://www-01.ibm.com/software/awdtools/rtc/" title="Rational Team Concert" >Rational Team Concert</a>, basé sur Eclipse et la plateforme <a
href="https://jazz.net" title="Jazz" >Jazz</a>, qui facilite la collaboration de l&#8217;équipe.</p><p>Pour finir avec le futur de l&#8217;agilité, Scott reprend son <a
href="http://www.ddj.com/architect/210603550" title="analogie avec l'astronomie" >analogie avec l&#8217;astronomie</a> :</p><ul><li>Avant on pensait que &laquo;&nbsp;tout tourne autour de la Terre&nbsp;&raquo;. C&#8217;est la communauté traditionnelle qui pense que &laquo;&nbsp;tout tourne autour de l&#8217;engineering et de la documentation&nbsp;&raquo;.</li><li>Aujourd&#8217;hui la communauté agile pense que &laquo;&nbsp;tout tourne autour du soleil&nbsp;&raquo;, c&#8217;est-à-dire &laquo;&nbsp;autour du développeur&nbsp;&raquo;.</li><li>Demain nous verrons comme Newton que &laquo;&nbsp;tout tourne autour de tout&nbsp;&raquo;. Nous devons avoir une vision entreprise et non par silo.</li></ul><p>Avoir une vue d&#8217;entreprise sur l&#8217;informatique est extrêmement difficile, mais nécessaire pour construire des applications de niveau entreprise et de haute qualité.</p><h3><a
name="RIA"></a>RIA</h3><h4><a
name="AupieddusapinJavaFXGA"></a>Au pied du sapin : JavaFX GA</h4><p>Après presque 2 ans d&#8217;attente, JavaFX est enfin disponible en version finale. Enfin pas tout à fait : JavaFX Mobile, initialement dans le scope de cette première version, est repoussé à février 2009, et les OS Linux et Solaris ne sont pas (encore) supportés.<br
/> Cette version 1.0 tient elle malgré tout <a
href="http://blog.xebia.fr/2008/10/03/ria-contest-flex-silverlight-gwt-echo3-javafx/#JavaFX" title="les promesses entrevues lors de la parution de la preview" >les promesses entrevues lors de la parution de la preview</a> ?<br
/> Et bien, pas vraiment.<br
/> Les défauts rédhibitoires que nous y avions décelés sont toujours là : le seul IDE de développement disponible est Netbeans (sans même l&#8217;inclusion d&#8217;un éditeur graphique), les composants graphiques de haut niveau (hormis les portages Swing) manquent toujours à l&#8217;appel&#8230;<br
/> Qu&#8217;est ce qu&#8217;apporte vraiment cette version 1.0 ? A première vue, l&#8217;effort a été porté sur la documentation : la Javadoc a été mise à jour et est relativement complète. <a
href="http://javafx.com/samples/" title="La galerie d'exemples et de tutoriaux 'officielle'" >La galerie d&#8217;exemples et de tutoriaux &#8216;officielle&#8217;</a> a été copieusement alimentée. On regrettera cependant que cette galerie mette l&#8217;accent sur le spectaculaire, plus que sur le fonctionnel (aucun exemple d&#8217;intégration avec un back end Java ou une base de données).<br
/> Au rayon des nouveautés, on notera <a
href="http://edageek.com/2008/05/07/rich-internet-application/" title="la présence de codecs audio et video" >la présence de codecs audio et video</a>, permettant d&#8217;intégrer facilement du contenu multimédia (par l&#8217;entremise d&#8217;un encodage en Flash).<br
/> Sur un niveau moins technique, on peut noter la présence de 2 plugins pour les produits Adobe, Photoshop et Illustrator, qui devraient faciliter les échanges entre web designers et développeurs J2EE.<br
/> A noter enfin, sur un plan plus marketing, la présence d&#8217;un émulateur mobile, qui préfigure ce que pourrait être JavaFx Mobile.<br
/> En conclusion, cette première version n&#8217;est pas vraiment au niveau des attentes qu&#8217;elle a suscitées. Cependant, nous restons une fois de plus sur l&#8217;agréable impression de pouvoir faire de jolies interfaces en Java.<br
/> A notre sens, la prochaine étape déterminante sera l&#8217;adhésion de la communauté à cette nouvelle technologie, qui devrait permettre l&#8217;émergence de composants de haut niveau (un travail auquel s&#8217;est déjà attelé <a
href="http://learnjavafx.typepad.com/" title="James Weaver" >James Weaver</a>), en espérant que ceux ci seront incorporés dans les prochaines versions.<br
/> Reste que le produit de Sun est en retard par rapport à ses concurrents, et que la volonté de couvrir toutes les plateformes à la fois (desktop, mobile, télévision) pourrait se révéler à court terme un handicap pour cette technologie émergente.<br
/> Alors, Sun s&#8217;est il fourvoyé avec Fx, <a
href="http://www.tbray.org/ongoing/When/200x/2008/11/24/What-Sun-Should-Do" title="comme le pense Tim Bray" >comme le pense Tim Bray</a> ? Seules les futures versions nous le diront.</p><h4><a
name="SilverlightsousLinux"></a>Silverlight sous Linux</h4><p>La <a
href="http://go-mono.com/moonlight/" title="version 1.0 beta de Moonlight" >version 1.0 beta de Moonlight</a> est disponible.<br
/> Moonlight est une implémentation open source de Silverlight pour Linux / Unix, portée par Novell et développée par <a
href="http://www.mono-project.com/Main_Page" title="le projet Mono" >le projet Mono</a>. Cette béta est disponible pour un grand nombre d&#8217;environnements (Ubuntu, Suze, Fedora&#8230;) en 32 ou 64 bits.<br
/> Elle permet l&#8217;exécution de scripts Silverlight 1.0, la diffusion de contenu (MediaPack 1.0)&#8230;<br
/> Elle sera disponible en version finale le 20 janvier 2009.<br
/> Pour pouvoir profiter au maximum de Silverlight sous Linux, il faudra attendre la version 2 de Moonlight (support complet de Silverlight 2.0 et des dernières innovations Microsoft). Elle devrait être disponible en béta courant avril, puis en finale durant septembre 2009.<br
/> <a
href="http://www.mono-project.com/MoonlightRoadmap" title="La roadmap complète" >La roadmap complète</a> est exposée sur le site du projet Mono.</p><h3><a
name="Lecoindelatechnique"></a>Le coin de la technique</h3><h4><a
name="NouveaumodehostpourGWT"></a>Nouveau mode hosté pour GWT 2.0</h4><p>Les nouveautés des prochaines versions 1.6 et 2.0  de GWT continuent d&#8217;affluer.<br
/> Ainsi, après la possibilité de pouvoir <a
href="http://www.dng-consulting.com/blogs/index.php/2008/11/26/gwt-va-enfin-gaeacute-rer-les-aquot-gros?blog=1" title="fragmenter son application" >fragmenter son application</a>, c&#8217;est une fois de plus chez <a
href="http://www.dng-consulting.com/blogs/index.php?blog=1" title="Sami Jaber" >Sami Jaber</a> que l&#8217;on apprend en vidéo l&#8217;une des grosses fonctionnalités à venir : <a
href="http://www.dng-consulting.com/blogs/index.php/2008/12/06/une-daeacute-mo-du-futur-mode-hostaeacut?blog=1" title="le nouveau "Hosted Mode" de GWT 2.0" >le nouveau &laquo;&nbsp;Hosted Mode&nbsp;&raquo; de GWT 2.0</a>.<br
/> Alors qu&#8217;aujourd&#8217;hui ce mode se lance dans une nouvelle fenêtre de votre IDE, demain vous pourrez le lancer directement dans votre navigateur (en tout cas ceux gérés pour l&#8217;instant).<br
/> Le mode reste toutefois celui que l&#8217;on connaît à savoir que GWT <em>simule</em> un site compilé (moteur de rendu) i.e. qu&#8217;aucun <em>Javascript</em> n&#8217;est généré. L&#8217;intégration avec des plugins comme <em>Firebug</em> sera donc limitée&#8230; Le mode <em>Debug</em> et le rafraichissement du navigateur suite à modification du code GWT sont bien sûr conservés.</p> ]]></content:encoded> <wfw:commentRss>http://blog.xebia.fr/2008/12/08/revue-de-presse-xebia-86/feed/</wfw:commentRss> <slash:comments>3</slash:comments> </item> <item><title>Revue de Presse Xebia</title><link>http://blog.xebia.fr/2008/12/01/revue-de-presse-xebia-85/</link> <comments>http://blog.xebia.fr/2008/12/01/revue-de-presse-xebia-85/#comments</comments> <pubDate>Mon, 01 Dec 2008 17:54:18 +0000</pubDate> <dc:creator>Xebia France</dc:creator> <category><![CDATA[Revue de presse]]></category> <category><![CDATA[Flex]]></category> <category><![CDATA[GridGain]]></category> <category><![CDATA[GWT]]></category> <category><![CDATA[J2EE]]></category> <category><![CDATA[Java / JEE]]></category> <category><![CDATA[JBoss]]></category> <category><![CDATA[junit]]></category> <category><![CDATA[Méthodes agiles]]></category> <category><![CDATA[Nexus]]></category> <category><![CDATA[RIA]]></category> <category><![CDATA[SCRUM]]></category> <category><![CDATA[Tomcat]]></category> <category><![CDATA[XP]]></category> <guid
isPermaLink="false">http://blog.xebia.fr/?p=1096</guid> <description><![CDATA[La revue de presse de l’actualité Java/J2EE hebdomadaire proposée par Xebia. Agilité Scrum et XP depuis les tranchées Scrum de scrums RIA FlexMonkey 0.5 Sortie de SmartGWT Le coin de la technique Améliorez la testabilité de votre code Nexus pour chercher dans les repositories Maven Distribuez vos tests JUnit avec GridGain Tomcat : Trucs et [...]]]></description> <content:encoded><![CDATA[<p><img
src="http://blog.xebia.fr/wp-content/uploads/2007/06/revuedepresse.png" alt="Revue de Presse Xebia" style="margin: 1em 1em 1em 1em; float: right;" /><br
/> <em>La revue de presse de l’actualité Java/J2EE hebdomadaire proposée par Xebia.</em></p><p><strong>Agilité</strong></p><ul><li><a
href="http://blog.xebia.fr/2008/12/01/revue-de-presse-xebia-85/#ScrumetXPdepuislestranches">Scrum et XP depuis les tranchées</a></li><li><a
href="http://blog.xebia.fr/2008/12/01/revue-de-presse-xebia-85/#Scrumdescrums">Scrum de scrums</a></li></ul><p><strong>RIA</strong></p><ul><li><a
href="http://blog.xebia.fr/2008/12/01/revue-de-presse-xebia-85/#FlexMonkey">FlexMonkey 0.5</a></li><li><a
href="http://blog.xebia.fr/2008/12/01/revue-de-presse-xebia-85/#SortiedeSmartGWT">Sortie de SmartGWT</a></li></ul><p><strong>Le coin de la technique</strong></p><ul><li><a
href="http://blog.xebia.fr/2008/12/01/revue-de-presse-xebia-85/#Amliorezlatestabilitdevotrecod">Améliorez la testabilité de votre code</a></li><li><a
href="http://blog.xebia.fr/2008/12/01/revue-de-presse-xebia-85/#Nexuspourchercherdanslesreposi">Nexus pour chercher dans les repositories Maven</a></li><li><a
href="http://blog.xebia.fr/2008/12/01/revue-de-presse-xebia-85/#DistribuezvostestsJUnitavecGri">Distribuez vos tests JUnit avec GridGain</a></li><li><a
href="http://blog.xebia.fr/2008/12/01/revue-de-presse-xebia-85/#TomcatTrucsetastucesdesprosdeS">Tomcat : Trucs et astuces des pros de SpringSource</a></li></ul><p><strong>Evènements de notre communauté en France et à l&#8217;étranger</strong></p><ul><li><a
href="http://blog.xebia.fr/2008/12/01/revue-de-presse-xebia-85/#SachaLaboureyauParisJUGmardipo">Sacha Labourey au Paris JUG mardi pour une soirée JBoss </a></li></ul><h3><a
name="Agilit"></a>Agilité</h3><h4><a
name="ScrumetXPdepuislestranches"></a>Scrum et XP depuis les tranchées</h4><p>Le livre référence de Henrik Kniberg, <a
href="http://www.infoq.com/minibooks/scrum-xp-from-the-trenches" title="disponible sur InfoQ" >disponible sur InfoQ</a>, vient d&#8217;être traduit en français (disponible <a
href="http://www.infoq.com/resource/news/2007/06/scrum-xp-book/en/resources/ScrumAndXpFromTheTrenches_French.pdf" title="en pdf ici" >en pdf ici</a>).<br
/> <a
href="http://blog.xebia.fr/author/gmathias/" title="Guillaume Mathias" >Guillaume Mathias</a> (Xebia) a participé à cette aventure aux côtés de <a
href="http://bruno-orsier.developpez.com/" title="Bruno Orsier" >Bruno Orsier</a>, <a
href="http://homoagilis.blogspot.com" title="Emmanuel Etasse" >Emmanuel Etasse</a> et Christophe Bunn.<br
/> Merci aux auteurs pour ce formidable don à la communauté Agile francophone.</p><h4><a
name="Scrumdescrums"></a>Scrum de scrums</h4><p>Une des questions récurrentes concernant l&#8217;adoption des démarches agiles sur une large échelle est celle de la synchronisation de nombreuses personnes. À ce sujet, <a
href="http://www.infoq.com/news/2008/11/scrum-of-scrums" title="InfoQ revient sur l'un des outils proposés par la méthode, le Scrum de Scrums" >InfoQ revient sur l&#8217;un des outils proposés par la méthode, le Scrum de Scrums</a>. Allan Shalloway expose les problématiques d&#8217;un &#8216;grand&#8217; projet Scrum, où plusieurs équipes interviennent sur la réalisation de modules inter connectés :</p><ul><li>Problématique technique : adopter une démarche agile, c&#8217;est éviter de réaliser des fonctionnalités non nécessaires. Ainsi, si une sous équipe &#8216;A&#8217; créé un service, dont l&#8217;équipe &#8216;B&#8217; aura peut-être besoin dans une itération ultérieure, rien ne l&#8217;oblige à exposer ce service. Quand &#8216;B&#8217; aura besoin du même type de service, plusieurs questions surgiront : &#8216;B&#8217; est-il au courant de l&#8217;existence de ce service. Si oui, qui doit le modifier pour qu&#8217;ils répondent aux besoins de &#8216;A&#8217; et de &#8216;B&#8217; ?</li><li>Synchronisation d&#8217;équipe : les Scrums Masters et les Product Owners ne sont pas les mêmes pour les équipes &#8216;A&#8217; et &#8216;B&#8217;. Les problématiques de synchronisation sont évidentes si on se place du point de vue du product owner (Cette fonctionnalité existe t&#8217;elle déjà ? Est elle est prévue ? &#8230;)</li><li>Intégration du produit final : il n&#8217;est pas simple de délivrer un produit final fonctionnant de bout en bout juste en accolant les composants développés par les différentes équipes.</li></ul><p>C&#8217;est pour cela qu&#8217;a été pensé le Scrum of Scrums.<br
/> Allan Shalloway, dans le cadre de la rédaction de son livre &laquo;&nbsp;<a
href="http://www.netobjectives.com/resources/books/lean-software-development" title="Lean Software Development: Scaling Agile to the Enterprise" >Lean Software Development: Scaling Agile to the Enterprise</a>&nbsp;&raquo; a collecté les retours d&#8217;utilisateurs sur ce &#8216;super&#8217; daily scrum.<br
/> Pour Mike Dwyer, le SoS sert à gérer la décomposition des users &#8211; stories afin de veiller à ce qu&#8217;une fonctionnalité ne soit pas réalisée en double.<br
/> Pour Ilja Preuß, le SoS permet d&#8217;identifier les points d&#8217;entraide possibles, les impacts des différentes équipes sur le système, mais surtout, cette réunion permet de renforcer le sentiment d&#8217;appartenance à un seul et même projet.<br
/> Christophe Louvion a utilisé le SoS pour gérer l&#8217;intégration des sous composants au jour le jour. Il a aussi utilisé le SoS pour maintenir une méta-équipe, composée de membres seniors de chacune des sous équipes, et chargée de gérer les problématiques transverses du projet (rédaction des normes, intégration end to end, revues d&#8217;architecture&#8230;)</p><p>Enfin, Walter Bodwell partage sa recette secrète pour un SoS pleinement opérationnel : il faut qu&#8217;il soit court (15 minutes), concis, centré autour de l&#8217;information qu&#8217;on veut communiquer aux autres. Toutes les problématiques particulières doivent être abordées dans des réunions en tête à tête. Le SoS doit permettre d&#8217;identifier les points bloquants, et de les rappeler à tous (tous les jours s&#8217;il le faut) jusqu&#8217;à leur résolution.<br
/> Enfin, comme la problématique des SoS est attenante à celle des équipes de développement distribuées, il peut être utile, afin de conserver au SoS une pertinence maximale, de préparer quelques notes pour la réunion.</p><h3><a
name="RIA"></a>RIA</h3><h4><a
name="FlexMonkey"></a>FlexMonkey 0.5</h4><p>Lors de l&#8217;une de <a
href="http://blog.xebia.fr/2008/10/20/revue-de-presse-xebia-79/#Testezunitairementetfonctionne" title="nos revues de presse" >nos revues de presse</a>, nous vous présentions <a
href="http://code.google.com/p/flexmonkey/" title="FlexMonkey" >FlexMonkey</a> (framework de tests automatisés OpenSource pour Flex).<br
/> Ce projet vient de voir arriver la version 0.5 et permet :</p><ul><li>Une configuration afin de pouvoir lancer <a
href="http://code.google.com/p/flexmonkey/" title="FlexMonkey" >FlexMonkey</a> par des systèmes de build (et plus particulièrement Ant).</li><li>Un refactoring de l&#8217;API afin de séparer l&#8217;UI et le core.</li><li>Une séparation entre la gestion des tests automatisés (FlexMonkey.swc) et le runner FlexUnit (FlexMonkeyUI.swc).</li></ul><p>Pour un produit aussi jeune, ce dernier permet d&#8217;effectuer des tests convenables sous une application Flex. L&#8217;automatisation des tests sous Flex lève une barrière à son adoption, alors qu&#8217;attendez-vous ?</p><h4><a
name="SortiedeSmartGWT"></a>Sortie de SmartGWT</h4><p><a
href="http://www.jroller.com/sjivan/" title="Sanjiv Jivan" >Sanjiv Jivan</a>, ex-auteur de <a
href="http://code.google.com/p/gwt-ext/" title="GWT-Ext" >GWT-Ext</a> a annoncé hier la sortie de <a
href="http://code.google.com/p/smartgwt/" title="SmartGWT" >SmartGWT</a>, un nouveau Wrapper <a
href="http://code.google.com/webtoolkit/" title="GWT" >GWT</a> au dessus d&#8217;un Framework Javascript très complet : <a
href="http://www.smartclient.com/" title="SmartClient" >SmartClient</a>.</p><p>Les plus de <a
href="http://code.google.com/p/smartgwt/" title="SmartGWT" >SmartGWT</a> par rapport à <a
href="http://code.google.com/p/gwt-ext/" title="GWT-Ext" >GWT-Ext</a> :</p><ul><li>La richesse des composants fournis par l&#8217;api.</li><li>L&#8217;amélioration des performances (peu de temps de latence, utilisation de l&#8217;asynchrone systématique &#8230;).</li><li>Un code Java plus léger et plus consistant.</li><li>Une intégration avec des services REST et à base de WSDL.</li></ul><p>Les moins :</p><ul><li>Un style visuel par défaut moins attrayant que celui de son rival.</li><li>Le niveau d&#8217;abstraction est le même que sur <a
href="http://code.google.com/p/gwt-ext/" title="GWT-Ext" >GWT-Ext</a>. Dès qu&#8217;on souhaite customiser un composant ou créer un comportement différent, il faut la plupart du temps mettre le nez dans le code Javascript.</li></ul><p>Le code source du projet est fourni sous licence LGPL.<br
/> Une <a
href="http://www.smartclient.com/smartgwt/showcase/" title="démo de SmartGWT" >démo de SmartGWT</a> en action est disponible.<br
/> Notons aussi, pour cette occasion, un petit jeu de <a
href="http://www.infoq.com/news/2008/11/smartgwt" title="questions / réponses chez InfoQ" >questions / réponses chez InfoQ</a>.</p><h3><a
name="Lecoindelatechnique"></a>Le coin de la technique</h3><h4><a
name="Amliorezlatestabilitdevotrecod"></a>Améliorez la testabilité de votre code</h4><p>Misko Hevery, coach Agile à Google, <a
href="http://misko.hevery.com/code-reviewers-guide/" title="partage sur son blog" >partage sur son blog</a> quelques-unes des recommandations et alertes que Google suggère à ses développeurs afin de garder le code le plus propre et le plus testable possible. Rien de bien étonnant, la majorité des points abordés sont connus et relèvent du bon sens. Cependant, une piqûre de rappel ne fait jamais de mal.</p><p>Misko a donc regroupé ceux-ci en &#8216;fléaux&#8217;. Ces 4 thèmes permettent de vérifier ou d&#8217;améliorer simplement la testabilité d&#8217;une application (la liste ne se veut pas exhaustive) :</p><ul><li>Assurez-vous que vos constructeurs n&#8217;effectuent aucun véritable traitement. Alertes : utilisation du mot clé <code>new</code>, appel à des méthodes statiques, présence de conditions ou de boucles, utilisation de blocs d&#8217;initialisation, initialisation trop complexe.</li><li>Contentez-vous d&#8217;utiliser les objets attributs de vos classes. Alertes : invocations chaînées trop profondes du type <code>getObject1().getObject2().getObject3()</code>. Objets avec des noms suspects comme &#8216;context&#8217;, &#8216;environnement&#8217;, ou &#8216;manager&#8217;.</li><li>Utilisez les objets <em>stateful</em> à bon escient. Alertes : utilisation d&#8217;un singleton, utilisation d&#8217;un champ ou d&#8217;une méthode statique, présence de bloc statique d&#8217;initialisation. Misko est d&#8217;ailleurs l&#8217;auteur d&#8217;un projet sur Google Code permettant de <a
href="http://code.google.com/p/google-singleton-detector/" title="détecter différents types de singletons" >détecter différents types de singletons</a>.</li><li>Découpez votre code, évitez les classes trop volumineuses. Alertes : les objets qui ont plusieurs fonctions distinctes, les classes difficiles à comprendre rapidement, les classes possédant des attributs qui ne sont utilisés dans aucune méthode.</li></ul><p>Misko est également l&#8217;auteur d&#8217;un autre projet permettant <a
href="http://code.google.com/p/testability-explorer/" title="l'analyse de la testabilité de votre projet" >l&#8217;analyse de la testabilité de votre projet</a> à partir de son bytecode. Il a d&#8217;ailleurs passé celui-ci sur quelques-uns des frameworks Open Source de votre quotidien et regroupé les résultats sur son site dédié : <a
href="http://testabilityexplorer.org/report" title="Testability Explorer" >Testability Explorer</a>.</p><h4><a
name="Nexuspourchercherdanslesreposi"></a>Nexus pour chercher dans les repositories Maven</h4><p>On avait l&#8217;habitude d&#8217;utiliser <a
href="http://www.mvnrepository.com" title="http://www.mvnrepository.com" >http://www.mvnrepository.com</a> (ou google, ou le plugin m2eclipse) lorsque l&#8217;on partait à la recherche de son jar favori, Sonatype (dont le fondateur et CTO est Jason Van Zyl, le père de Maven) a <a
href="http://blogs.sonatype.com/people/book/2008/11/19/use-repositorysonatypeorg-to-search-central-maven-repository/" title="mis à disposition" >mis à disposition</a> une instance publique de <a
href="http://nexus.sonatype.org/" title="Nexus" >Nexus</a>, son manager de repository Maven : <a
href="http://repository.sonatype.org" title="http://repository.sonatype.org" >http://repository.sonatype.org</a>.</p><p>L&#8217;interface est propre, facile à utiliser, et est développée à l&#8217;aide du <a
href="http://extjs.com/" title="framework Ext JS" >framework Ext JS</a>.</p><h4><a
name="DistribuezvostestsJUnitavecGri"></a>Distribuez vos tests JUnit avec GridGain</h4><p>Tester une application déployée sur plusieurs machines : quelle galère ! N&#8217;avez-vous jamais eu besoin d&#8217;effectuer des tests en environnement distribué ? Comment effectuez-vous vos tests d&#8217;intégration impliquant des communications clients-serveur ? <a
href="http://www.theserverlabs.com/blog/2008/11/24/distributed-junit-testing-with-gridgain/" title="Cet article nous propose une solution originale" >Cet article nous propose une solution originale</a> pour effectuer ce type de tests multi-jvm utilisant certaines fonctionnalités de <a
href="http://www.gridgain.com/" title="GridGain" >GridGain</a>, framework Open Source permettant la création d&#8217;applications distribuées de type grid computing. L&#8217;auteur de l&#8217;article n&#8217;utilise pour faire ses tests qu&#8217;une des fonctionnalités offertes par ce framework : la distribution des tests sur plusieurs nœuds.</p><p>Pour ce faire, vous aurez besoin, en plus de vos tests, de 3 &#8216;TestSuite&#8217; configurées avec des <em>annotations</em> et <em>runners</em> GridGain :</p><ul><li>Une première &#8216;Remote TestSuite&#8217; chargée de lancer les tests sur le serveur. Les tests de cette suite seront exécutés sur la grille.</li><li>Une seconde &#8216;Local TestSuite&#8217; pour lancer les tests sur le client local.</li><li>Une troisième et dernière &#8216;Distributed TestSuite&#8217; servant de point d&#8217;entrée unique au lancement de deux premières séries de tests.</li></ul><p>Cela vous déplaît certainement d&#8217;utiliser un tel framework uniquement pour une de ses plus petites fonctionnalités, et vous avez probablement raison. Maintenant quelles autres options aussi puissantes et rapides à mettre en place proposeriez-vous en remplacement ?</p><h4><a
name="TomcatTrucsetastucesdesprosdeS"></a>Tomcat : Trucs et astuces des pros de SpringSource</h4><p>SpringSource continue sa série de webinars sur Tomcat avec <a
href="http://www.springsource.com/webinars" title="Apache Tomcat Tips and Tricks from the Pros" >Apache Tomcat Tips and Tricks from the Pros</a> (cf. <a
href="http://blog.xebia.fr/2008/08/25/revue-de-presse-xebia-71/#TuningetoptimisationdeTomcatmo" title="Tuning et optimisation de Tomcat : mod_jk est mort ! Longue vie à mod_proxy_http !" >Tuning et optimisation de Tomcat : mod_jk est mort ! Longue vie à mod_proxy_http !</a> et <a
href="http://blog.xebia.fr/2008/09/22/revue-de-presse-xebia-75/#AmliorerlesperformancesdeTomca" title="Améliorer les performances de Tomcat en production" >Améliorer les performances de Tomcat en production</a>). Nous avons cette fois retenu :</p><ul><li><code>setEnv(.sh|.bat)</code> est le fichier à utiliser pour configurer le lancement de Tomcat (afin de préciser le JDK, les options de la JVM, etc). <code>startup.sh</code> et <code>catalina.sh</code> peuvent le plus souvent rester inchangés.</li></ul><pre class="brush: java; title: ; notranslate">
JAVA_HOME=/usr/local/jdk_1.6.0.10/
CATALINA_OPTS=-Xmx512m
CATALINA_HOME=/usr/local/apache-tomcat-6.0.18
CATALINA_BASE=/usr/local/tomcat-instance-01
CATALINA_PID=$CATALINA_BASE/logs/tomcat.pid
</pre><p>Dans cet exemple, un JDK 1.6.0.10 avec 512 Mo de Heap démarre un Tomcat 6.0.18 avec une configuration située sous <code>/usr/local/tomcat-instance-01</code> ; le pid sera stocké sous <code>/logs/tomcat.pid</code>.</p><ul><li>Le port de shutdown de Tomcat existe pour des raisons historiques [1] et présente une faille inutile de sécurité. Il doit être désactivé en précisant le port &laquo;&nbsp;-1&#8243;. On remplacera alors <code>shutdown.sh</code> et <code>catalina.sh stop</code> par le classique <a
href="http://en.wikipedia.org/wiki/Kill_(Unix)" title="kill unix" >kill unix</a>.</li></ul><pre class="brush: java; title: ; notranslate">
&lt;Server port=&quot;-1&quot; shutdown=&quot;SHUTDOWN&quot; &gt;
</pre><ul><li>L&#8217;<a
href="http://tomcat.apache.org/tomcat-6.0-doc/config/valve.html" title="Access Log Valve" >Access Log Valve</a> permet de générer des logs d&#8217;accès similaires à celles d&#8217;Apache. Ces informations sont très importantes pour la supervision et le <em>troubleshooting</em>. L&#8217;<a
href="http://tomcat.apache.org/tomcat-6.0-doc/api/org/apache/catalina/valves/ExtendedAccessLogValve.html" title="ExtendedAccessLogValve" >ExtendedAccessLogValve</a> supporte le <a
href="http://www.w3.org/TR/WD-logfile.html" title="W3C Extended Log File Format" >W3C Extended Log File Format</a> et surtout facilite le <em>troubleshooting</em> en permettant d&#8217;afficher les paramètres et les attributs de requête (même en POST).</li></ul><pre class="brush: java; title: ; notranslate">
&lt;Valve className=&quot;org.apache.catalina.valves.AccessLogValve&quot;
    pattern=&quot;combined&quot; directory=&quot;${catalina.base}/logs&quot; prefix=&quot;tomcat_access_&quot; suffix=&quot;.log&quot; /&gt;
</pre><ul><li>Le fichier <code>catalina.properties</code> permet d&#8217;utiliser des variables de substitution. Exemple avec une variable <code>engine.jvm-route</code> :</li></ul><pre class="brush: java; title: ; notranslate">
&lt;Engine ... jvmRoute=&quot;${engine.jvm-route}&quot;&gt;
</pre><ul><li>Tomcat offre plusieurs méthodes pour déployer les applications (définition de <code>&lt;context&gt;</code> dans server.xml, auto deploy de .war/répertoires/context.xml, déploiement scripté). Si toutes ces options sont utilisables en production, il est important de n&#8217;en utiliser qu&#8217;une seule pour éviter les collisions.</li></ul><p>[1] Les JDK 1.0, 1.1 et 1.2 n&#8217;offraient pas de graceful shutdown. Depuis, le <a
href="http://java.sun.com/developer/TechTips/2000/tt0711.html" title="mécanisme de Shutdown Hook" >mécanisme de Shutdown Hook</a> des JVM permet un arrêt élégant de Tomcat sur commande <code>kill</code>.</p><h3><a
name="EvnementsdenotrecommunautenFra"></a>Evènements de notre communauté en France et à l&#8217;étranger</h3><h4><a
name="SachaLaboureyauParisJUGmardipo"></a>Sacha Labourey au Paris JUG mardi pour une soirée JBoss</h4><p><a
href="http://www.linkedin.com/ppl/webprofile?action=vmi&#038;id=282026&#038;authToken=Xs-J&#038;authType=name&#038;trk=ppro_viewmore&#038;lnk=vw_pprofile" title="Sacha Labourey" >Sacha Labourey</a>, CTO de JBoss et General Manager de JBoss Europe, présentera JBoss AS 5.0 à la <a
href="http://parisjug.org/xwiki/bin/view/Meeting/20081202" title="soirée JBoss du Paris JUG" >soirée JBoss du Paris JUG</a> mardi 2 décembre. <a
href="http://parisjug.org/xwiki/bin/view/Speaker/SahebMalik" title="Saheb Malik" >Saheb Malik</a>, JBoss France, présentera ensuite JBoss Seam.<br
/> C&#8217;est l&#8217;occasion rêvée de mieux comprendre l&#8217;agenda de JBoss. Nous avons notamment en tête les questions suivantes :</p><ul><li><a
href="http://www.jboss.org/jbossmc/" title="JBoss MicroContainer" >JBoss MicroContainer</a> et OSGi : quel positionnement tenir quand Sun a mis en retrait <a
href="https://hk2.dev.java.net/" title="HK2" >HK2</a> au profit d&#8217;<a
href="http://felix.apache.org/site/index.html" title="Apache Felix" >Apache Felix</a>.</li><li><a
href="http://www.jboss.org/jbossmessaging/" title="JBoss Messaging" >JBoss Messaging</a> vs. <a
href="http://www.redhat.com/mrg/messaging/" title="RedHat MRG" >RedHat MRG</a> : quelles synergies ? Interopérables à l&#8217;instar de <a
href="http://www-01.ibm.com/software/integration/wmq/" title="Websphere MQ" >Websphere MQ</a> (aka MQ Series) et Websphere Embedded Messaging Engine ? <a
href="http://amqp.org/" title="AMQP" >AMQP</a> plaît à RedHat, JBoss est-il aussi intéressé ?</li><li><a
href="http://www.jboss.org/jbossas/" title="JBoss AS 5" >JBoss AS 5</a> : comment le précurseur des implémentations EJB 3 et JPA se retrouve t&#8217;il parmi les retardataires des <a
href="http://java.sun.com/javaee/overview/compatibility.jsp" title="certifiés Java EE 5" >certifiés Java EE 5</a> ? Le chantier de refonte a-t-il été trop ambitieux ?</li><li>Data Grids : pourquoi <a
href="http://www.jgroups.org" title="JGroups" >JGroups</a>, le coeur de communication de <a
href="http://www.jboss.org/jbosscache/" title="JBoss Cache" >JBoss Cache</a> est-il un projet extérieur à JBoss ? Les Data Grids font-elles parties des priorités de JBoss ?</li><li>JBoss, Fondation Apache et brique HTTP de JBoss AS : JBoss semble moins impliqué qu&#8217;auparavant dans Tomcat et vient de lancer son <a
href="http://www.jboss.org/mod_cluster/" title="mod_cluster" >mod_cluster</a> à l&#8217;extérieur du projet <a
href="http://httpd.apache.org/" title="Apache HTTP Server" >Apache HTTP Server</a> et de son <a
href="http://httpd.apache.org/docs/2.2/mod/mod_proxy_balancer.html" title="mod_proxy_balancer" >mod_proxy_balancer</a>. À l&#8217;heure où les <a
href="http://en.wikipedia.org/wiki/Comet_(programming)" title="architectures Comet" >architectures Comet</a> imposent des évolutions importantes des moteurs de Servlet, JBoss compte-t-il s&#8217;éloigner de Tomcat ?</li></ul> ]]></content:encoded> <wfw:commentRss>http://blog.xebia.fr/2008/12/01/revue-de-presse-xebia-85/feed/</wfw:commentRss> <slash:comments>0</slash:comments> </item> <item><title>Revue de Presse Xebia</title><link>http://blog.xebia.fr/2008/11/03/revue-de-presse-xebia-81/</link> <comments>http://blog.xebia.fr/2008/11/03/revue-de-presse-xebia-81/#comments</comments> <pubDate>Mon, 03 Nov 2008 16:55:56 +0000</pubDate> <dc:creator>Xebia France</dc:creator> <category><![CDATA[Revue de presse]]></category> <category><![CDATA[AMQP]]></category> <category><![CDATA[Envers]]></category> <category><![CDATA[Flex]]></category> <category><![CDATA[Flunit]]></category> <category><![CDATA[GWT]]></category> <category><![CDATA[Hibernate]]></category> <category><![CDATA[J2EE]]></category> <category><![CDATA[Java / JEE]]></category> <category><![CDATA[Méthodes agiles]]></category> <category><![CDATA[Paris JUG]]></category> <category><![CDATA[RIA]]></category> <category><![CDATA[SCRUM]]></category> <category><![CDATA[Spring]]></category> <category><![CDATA[X2O]]></category> <guid
isPermaLink="false">http://blog.xebia.fr/?p=950</guid> <description><![CDATA[La revue de presse de l’actualité Java/J2EE hebdomadaire proposée par Xebia. Actualité éditeurs / SSII SpringSource rejoint le comité exécutif du JCP pour Java SE et EE Microsoft embrasse les Middlewares de Message Open Source Agilité Scrum et le lavage en machine RIA X2O framework ou comment faciliter la réalisation d&#8217;applications Flex. Pivot 1.0 : [...]]]></description> <content:encoded><![CDATA[<p><img
src="http://blog.xebia.fr/wp-content/uploads/2007/06/revuedepresse.png" alt="Revue de Presse Xebia" style="margin: 1em 1em 1em 1em; float: right;" /><br
/> <em>La revue de presse de l’actualité Java/J2EE hebdomadaire proposée par Xebia.</em></p><p><strong>Actualité éditeurs / SSII</strong></p><ul><li><a
href="http://blog.xebia.fr/2008/11/03/revue-de-presse-xebia-81/#SpringSourcerejointlecomitexcu">SpringSource rejoint le comité exécutif du JCP pour Java SE et EE</a></li><li><a
href="http://blog.xebia.fr/2008/11/03/revue-de-presse-xebia-81/#MicrosoftembrasselesMiddleware">Microsoft embrasse les Middlewares de Message Open Source</a></li></ul><p><strong>Agilité</strong></p><ul><li><a
href="http://blog.xebia.fr/2008/11/03/revue-de-presse-xebia-81/#Scrumetlelavageenmachine">Scrum et le lavage en machine</a></li></ul><p><strong>RIA</strong></p><ul><li><a
href="http://blog.xebia.fr/2008/11/03/revue-de-presse-xebia-81/#XOframeworkoucommentfaciliterl">X2O framework ou comment faciliter la réalisation d&#8217;applications Flex.</a></li><li><a
href="http://blog.xebia.fr/2008/11/03/revue-de-presse-xebia-81/#PivotdvelopperdesapplicationsR">Pivot 1.0 : développer des applications RIA en Java et XML</a></li><li><a
href="http://blog.xebia.fr/2008/11/03/revue-de-presse-xebia-81/#TestezvosapplicationsFlexavecF">Testez vos applications Flex avec Fluint</a></li></ul><p><strong>Le coin de la technique</strong></p><ul><li><a
href="http://blog.xebia.fr/2008/11/03/revue-de-presse-xebia-81/#EnversrejointHibernate">Envers rejoint Hibernate</a></li></ul><p><strong>Evènements de notre communauté en France et à l&#8217;étranger</strong></p><ul><li><a
href="http://blog.xebia.fr/2008/11/03/revue-de-presse-xebia-81/#GWTauParisJUGdeNovembre">GWT au Paris JUG de Novembre</a></li><li><a
href="http://blog.xebia.fr/2008/11/03/revue-de-presse-xebia-81/#XKEleprogrammedelasessiondeNov">XKE, le programme de la session de Novembre</a></li></ul><h3><a
name="ActualitditeursSSII"></a>Actualité éditeurs / SSII</h3><h4><a
name="SpringSourcerejointlecomitexcu"></a>SpringSource rejoint le comité exécutif du JCP pour Java SE et EE</h4><p>SpringSource était déjà présent dans des Expert Groups clefs de Java EE (<a
href="http://jcp.org/en/jsr/detail?id=316" title="JSR-316 : JavaEE 6" >JSR-316 : JavaEE 6</a>, <a
href="http://jcp.org/en/jsr/detail?id=291" title="JSR-291 : Dynamic Component Support for Java SE" >JSR-291 : Dynamic Component Support for Java SE</a> &#8211; aka OSGi, etc). Rod Johnson fait un pas de plus dans cet organisme en se faisant élire membre du <a
href="http://jcp.org/en/participation/committee#SEEE" title="JCP Executive Committee for Java SE/EE" >JCP Executive Committee for Java SE/EE</a>, le comité qui encadre les JSR relatives à Java SE et Java EE. L&#8217;Executive Committee est à l&#8217;image de l&#8217;ouverture du JCP ; on y retrouve  principalement des grands acteurs du monde Java <em>(IBM, Oracle, Sun, etc)</em> mais aussi l&#8217;ancien trublion aujourd&#8217;hui assagi des serveurs Java EE JBoss/Redhat et des membres individuels comme l&#8217;universitaire Doug Lea ou le polémique auteur du <a
href="http://www.bileblog.org/" title="Bile Blog" >Bile Blog</a> Hani Suleiman <em>(qui ne s&#8217;est pas représenté cette année)</em>.</p><p>Rod Johnson place son mandat sous le signe de la transparence, de l&#8217;écoute de la communauté et du pragmatisme (Cf. <a
href="http://blog.springsource.com/2008/10/27/a-word-about-the-election/" title="A word about the election" >A word about the election</a> et <a
href="http://blog.springsource.com/2007/09/30/our-approach-to-the-jcp/" title="our approach to the JCP" >our approach to the JCP</a>). Cette vision s&#8217;inscrit dans la tendance actuelle du JCP dont les travaux s&#8217;ouvrent chaque année un peu plus <em>(participation gratuite pour les individuels, publicité des débats, Reference Implementation (RI) et Technology Compatibility Kit (TCK) open source, etc)</em>.</p><p>La présence de SpringSource dans les instances dirigeantes du JCP participera au maintien de l&#8217;équilibre entre <em>&laquo;&nbsp;petits et grands&nbsp;&raquo;</em> dans un monde en phase de concentration (Oracle/BEA, IBM/ILog, Progress/IONA, etc). De plus, on peut espérer que Rod Johnson facilite le rapprochement entre le JCP et l&#8217;OSGi Alliance dont le fonctionnement ressemble plus au JCP d&#8217;il y a 10 ans <em>(participation payante, membres essentiellement commerciaux, confidentialité des débats, des RI et des TCK, etc)</em> qu&#8217;à la communauté que nous connaissons aujourd&#8217;hui : certes perfectible mais exemplaire par son ouverture.</p><p>Pour en savoir plus : <a
href="http://www.sdtimes.com/link/33001" title="SD Time : Rod Johnson on a mission to open up JCP" >SD Time : Rod Johnson on a mission to open up JCP</a>, <a
href="http://blogs.the451group.com/opensource/2008/10/29/spring-foward/" title="The 451 group : Spring forward" >The 451 group : Spring forward</a>.</p><h4><a
name="MicrosoftembrasselesMiddleware"></a>Microsoft embrasse les Middlewares de Message Open Source</h4><p>Microsoft avait déjà surpris la communauté Open Source cet été en devenant <a
href="http://www.networkworld.com/news/2008/072508-microsoft-apache.html" title="Platinium Sponsor de la Fondation Apache" >Platinium Sponsor de la Fondation Apache</a>. La firme de Redmond poursuit aujourd&#8217;hui son rapprochement avec le monde Open Source en rejoignant l&#8217;<a
href="http://www.networkworld.com/news/2008/072508-microsoft-apache.html" title="AMQP Working Group " >AMQP Working Group </a> pour soutenir le développement du protocole open source de middleware de messages AMQP destiné à concurrencer le duopole d&#8217;IBM et de Tibco <em>(respectivement Websphere MQ et RendezVous)</em>.</p><p>Au delà de l&#8217;effet d&#8217;annonce, comment la firme de Redmond concrétisera-t-elle cet engagement ? Microsoft refondra-t-il <a
href="http://www.microsoft.com/windowsserver2003/technologies/msmq/default.mspx" title="Microsoft Message Queing (MSMQ)" >Microsoft Message Queing (MSMQ)</a> pour implémenter AMQP ? Contribuera-t-il à un projet Open Source comme par exemple <a
href="http://cwiki.apache.org/qpid/" title="Apache QPid" >Apache QPid</a>, projet largement supporté par Redhat qui en a fait le socle de sa solution <a
href="http://www.jboss.org/rhmessaging/" title="Redhat Messaging" >Redhat Messaging</a> ?</p><p>En attendant plus de détails, ce ralliement pourrait d&#8217;une part être le soutien qui semblait manquer à AMQP pour prendre son essor et d&#8217;autre part être un différenciateur clef de Microsoft pour se lancer à l&#8217;assaut des parts de marché d&#8217;IBM et de Tibco.</p><p>Pour en savoir plus : <a
href="http://www.interopnews.com/analysis/microsoft-embraces-amqp-open-middleware-standard.html" title="InteropNews : Microsoft embraces AMQP open middleware standard" >InteropNews : Microsoft embraces AMQP open middleware standard</a></p><h3><a
name="Agilit"></a>Agilité</h3><h4><a
name="Scrumetlelavageenmachine"></a>Scrum et le lavage en machine</h4><p>On connaissait la métaphore du Rugby pour expliquer Scrum, voici une comparaison plus originale : le lave-linge ! Le Touilleur Express fait l&#8217;analogie entre <a
href="http://www.touilleur-express.fr/2008/11/02/scrum-une-histoire-de-lave-linge/" title="Scrum et le lavage en machine" >Scrum et le lavage en machine</a> pour expliquer quelques notions :</p><ul><li>Product backlog : le linge sale représente la liste des tâches à faire.</li><li>Itérations : le lavage s&#8217;effectue par cycle, comme le développement itératif.</li><li>Capacité non extensible : ne demandez pas à votre lave-linge de laver plus de linge que sa capacité (5kg), de même une équipe ne peut produire qu&#8217;une quantité limitée de fonctionnalités par itération.</li><li>Gestion de priorités : il faut trier le linge en fonction des priorités, si l&#8217;on a besoin de la chemise pour demain ou si elle peut attendre le prochain lavage.</li><li>Ne pas perturber l&#8217;itération : il est impossible d&#8217;arrêter un programme en cours pour y ajouter une chemise oubliée. L&#8217;itération ne doit pas être perturbée non plus.</li></ul><p>On pourrait rajouter qu&#8217;il faut éviter de mélanger les couleurs et les domaines métier, sinon le résultat pourrait déteindre !</p><h3><a
name="RIA"></a>RIA</h3><h4><a
name="XOframeworkoucommentfaciliterl"></a>X2O framework ou comment faciliter la réalisation d&#8217;applications Flex.</h4><p>Après <a
href="http://blog.xebia.fr/2008/09/26/exadel-flamingo-applications-flex-amf-spring/" title="Exadel Flamingo" >Exadel Flamingo</a>, voici un nouveau framework nous facilitant le développement d&#8217;applications Flex : X2O. <a
href="http://www.infoq.com/news/2008/10/x2o-framework-for-flex" title="Dans cet article" >Dans cet article</a>, InfoQ interroge Ka Wai Cheung de <a
href="http://www.wearemammoth.com/" title="We Are Mammoth" >We Are Mammoth</a> sur ce nouvel outil. X2O est une plateforme permettant de réaliser des applications Flex sans toucher au code de la partie serveur. Grâce à ce framework, nous n&#8217;avons plus aucune intégration à réaliser, pas de base de données à mettre en place. Tout est géré par le framework.</p><p>Il suffit pour cela de se créer un compte sur <a
href="http://www.x2oframework.com/#" title="http://www.x2oframework.com/#" >http://www.x2oframework.com/#</a> puis de créer un modèle de données et de le soumettre à X2O.</p><p>Celui ci va ensuite générer :</p><ul><li>Un <a
href="http://fr.wikipedia.org/wiki/Syst%C3%A8me_de_gestion_de_contenu" title="CMS" >CMS</a> sécurisé permettant de gérer les données.</li><li>Un fichier SWC contenant les value objects du modèle de données ainsi que les CRUDs basiques et les méthodes de chargement qui ont été configurés dans le CMS.</li><li>La documentation ActionScript 3 du projet.</li></ul><p>Le CMS généré comprend une base de données, des procédures stockées, une couche d&#8217;accès aux données et une couche web service. Il est hébergé par le site et à tout moment, le développeur peut modifier son modèle de données dans le CMS et régénérer la librairie swc et la documentation ActionScript 3. La librairie fournit également des fonctionnalités supplémentaires comme l&#8217;envoi d&#8217;email et l&#8217;upload de fichiers. La plus grosse tâche est maintenant de créer son application Flex et d&#8217;appeler les méthodes du fichier swc pour charger les bonnes données.</p><p>Actuellement la version bêta est disponible et gratuite pour les développeurs. Ces derniers pourront donc tester ce framework (limité à deux projets par compte), donner leur avis et remonter des anomalies. La version définitive prévue en 2009 comportera probablement une version gratuite et une version payante sur plusieurs niveaux.</p><h4><a
name="PivotdvelopperdesapplicationsR"></a>Pivot 1.0 : développer des applications RIA en Java et XML</h4><p>Pivot est un framework Open Source pour le développement des applications RIA en Java. Ce dernier est le fruit d&#8217;un travail de l&#8217;équipe R&#038;D de <a
href="http://www.vmware.com/fr/" title="VMware" >VMware</a>, il fournit une alternative aux développeurs qui veulent développer leurs applications RIA en Java.</p><p>Les applications Pivot sont construites en Java et XML. La structure de l&#8217;interface utilisateur est décrite au format XML avec un langage de description d&#8217;écrans appelé WTKX, la gestion des événements et la logique applicative sont écrites en Java.</p><p>Pivot semble familier aux développeurs Swing, comme les deux utilisent Java2D et se basent sur une architecture MVC pour une séparation entre les données, la présentation et les traitements. Pivot fournit des composants graphiques dynamiques et réutilisables (panneaux, boutons, tables/grilles, boîtes de dialogues, menus et barres de menus &#8230;) pour créer des applications web de nouvelle génération.</p><p>Les applications Pivot peuvent s&#8217;exécuter à l&#8217;intérieur d&#8217;un applet java ou à déployer en local, tous systèmes d&#8217;exploitation confondus.</p><div
align="center"><img
src="http://blog.xebia.fr/wp-content/uploads/2008/11/pivot.png" alt="" title="pivot" /></div><p>Le code source du projet est fourni sous licence Apache Version 2.0.<br
/> Une démo de Pivot en action : <a
href="http://pivot-toolkit.org/tutorials/demo.standalone.html" title="http://pivot-toolkit.org/tutorials/demo.standalone.html" >http://pivot-toolkit.org/tutorials/demo.standalone.html</a>.</p><h4><a
name="TestezvosapplicationsFlexavecF"></a>Testez vos applications Flex avec Fluint</h4><p>Lors de l&#8217;une de nos <a
href="http://blog.xebia.fr/2008/10/20/revue-de-presse-xebia-79/#Testezunitairementetfonctionne" title="récentes revue de presse" >récentes revue de presse</a> nous vous parlions de <a
href="http://code.google.com/p/flexmonkey/" title="FlexMonkey" >FlexMonkey</a>, outil permettant d&#8217;enregistrer des tests fonctionnels à la manière d&#8217;un Selenium, mais sur des applications Flex.</p><p>Dans cet <a
href="http://www.infoq.com/news/2008/10/fluint-unit-test-for-flex" title="article de Moxie Zhang" >article de Moxie Zhang</a>, un autre outil nous est proposé et se nomme <a
href="http://code.google.com/p/fluint/" title="Fluint" >Fluint</a>. A l&#8217;origine développé chez <a
href="http://www.digitalprimates.net/" title="Digital Primates" >Digital Primates</a>, cet outil est passé Open Source et permet de mettre en place des tests unitaires ainsi que des tests d&#8217;intégrations. En effet la majorité des outils ne permettent pas de tester les interactions (souvent asynchrones) entre les composants, et Fluint permet d&#8217;effectuer ce genre de tests.</p><p>La documentation pour la mise en place est bien fournie, et permet de créer assez rapidement des suites de tests.</p><p>A travers ces outils, nous voyons que les technologies RIA, et plus particulièrement Flex remportent de plus en plus de succès, alors qu&#8217;attendez vous pour franchir le pas ?</p><h3><a
name="Lecoindelatechnique"></a>Le coin de la technique</h3><h4><a
name="EnversrejointHibernate"></a>Envers rejoint Hibernate</h4><p>Peu de temps après sa <a
href="http://blog.xebia.fr/2008/07/21/revue-de-presse-xebia-66/#EnversJBossajouteJPAleversioni" title="première release officielle" >première release officielle</a>, Adam Warski, développeur principal de <a
href="http://www.jboss.org/envers/" title="JBoss Envers" >JBoss Envers</a>, a annoncé cette semaine sur <a
href="http://www.warski.org/blog/?p=34" title="son blog" >son blog</a> l&#8217;intégration de ce framework de versioning d&#8217;entités comme module d&#8217;Hibernate. S&#8217;il n&#8217;apparaît pas encore sur <a
href="http://www.hibernate.org/" title="la page officielle du projet" >la page officielle du projet</a>, les sources ont d&#8217;ores et déjà été migrées sur le <a
href="http://anonsvn.jboss.org/repos/hibernate/core/trunk/" title="repository d'Hibernate" >repository d&#8217;Hibernate</a>. Aucun tag Hibernate ne dispose d&#8217;Envers pour le moment. Son intégration n&#8217;est d&#8217;ailleurs pas complètement terminée, <a
href="http://opensource.atlassian.com/projects/hibernate/secure/IssueNavigator.jspa?reset=true&#038;mode=hide&#038;pid=10031&#038;sorter/order=DESC&#038;sorter/field=priority&#038;resolution=-1&#038;component=10280" title="quelques modifications" >quelques modifications</a> restent à régler avant sa première release sous ce nouveau nom. <a
href=" http://opensource.atlassian.com/projects/hibernate/browse/HHH-3570" title="Par exemple" >Par exemple</a>, l&#8217;annotation <code>@Versioned</code> sera renommée <code>@Audited</code> pour éviter toute confusion avec <code>@Version</code> de JPA. La première version d&#8217;Hibernate proposant les fonctionnalités d&#8217;Envers devrait donc être la future 3.4.</p><p>Pour mémoire, Envers vous permet de versionner simplement la plupart de vos mappings JPA et Hibernate. A l&#8217;image de Subversion, il offre un mécanisme de révisions et un moyen d&#8217;effectuer des recherches sur son historique.</p><h3><a
name="EvnementsdenotrecommunautenFra"></a>Evènements de notre communauté en France et à l&#8217;étranger</h3><h4><a
name="GWTauParisJUGdeNovembre"></a>GWT au Paris JUG de Novembre</h4><p>Le <a
href="http://www.parisjug.org/xwiki/bin/view/Meeting/20081104" title="prochain Paris JUG" >prochain Paris JUG</a> se tient demain 4 Novembre, dans les locaux de <a
href="http://www.parisjug.org/xwiki/bin/view/Location/ISEP" title="l'ISEP" >l&#8217;ISEP</a>.</p><p>Au programme de la soirée:</p><ul><li>Une présentation de Google Web Toolkit, par Didier Girard, directeur technique de SFEIR.</li><li>Puis une démonstration de l&#8217;API Restlet portée sur GWT, <a
href="http://wiki.restlet.org/docs_1.1/13-restlet/144-restlet.html" title="Restlet-gwt" >Restlet-gwt</a>, par Jérôme Louvel, l&#8217;auteur de Restlet.</li></ul><h4><a
name="XKEleprogrammedelasessiondeNov"></a>XKE, le programme de la session de Novembre</h4><p>Le prochain XKE (Xebia Knowledge Exchange) aura lieu le jeudi 6 Novembre 2008. Les sujets suivants seront abordés :</p><ul><li>WSI-Basic profiles.</li><li><a
href="http://www.zeroturnaround.com/javarebel/" title="Java Rebel" >Java Rebel</a>.</li><li>La galaxie GWT, un tour d&#8217;horizon des projets qui gravitent et améliorent le célèbre framework de Google.</li><li>DDD &#8211; Domain Driven Design.</li><li><a
href="http://sourceforge.net/projects/liquibase/" title="Liquid Base" >Liquid Base</a>, un outil qui gère les modifications de schéma de base de données.</li><li><a
href="http://www.springsource.org/osgi" title="Spring Dynamic Modules" >Spring Dynamic Modules</a>, l&#8217;OSGI vu à la sauce Spring.</li><li>Les outils de la JVM.</li></ul><p>Comme nous l&#8217;<a
href="http://blog.xebia.fr/2008/02/06/xebia-ouvre-ses-journees-de-partage-de-la-connaissance-xke/" title="annoncions" >annoncions</a>, les XKE sont ouverts à l&#8217;ensemble des personnes à l&#8217;écoute du marché de l&#8217;emploi autour des technologies Java/J2EE. Si vous êtes l&#8217;une d&#8217;entre elles, n&#8217;hésitez pas à contacter <a
href="mailto:mbacrot@xebia.fr" title="Mélanie Bacrot" >Mélanie Bacrot</a> pour vous inscrire.</p> ]]></content:encoded> <wfw:commentRss>http://blog.xebia.fr/2008/11/03/revue-de-presse-xebia-81/feed/</wfw:commentRss> <slash:comments>1</slash:comments> </item> </channel> </rss>
