<?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; JBoss</title> <atom:link href="http://blog.xebia.fr/tag/jboss/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>Revue de presse</title><link>http://blog.xebia.fr/2011/07/19/revue-de-presse-xebia-220/</link> <comments>http://blog.xebia.fr/2011/07/19/revue-de-presse-xebia-220/#comments</comments> <pubDate>Tue, 19 Jul 2011 06:19:57 +0000</pubDate> <dc:creator>Xebia France</dc:creator> <category><![CDATA[Revue de presse]]></category> <category><![CDATA[Cloud / NoSQL]]></category> <category><![CDATA[Hadoop]]></category> <category><![CDATA[JBoss]]></category> <category><![CDATA[JPA]]></category> <category><![CDATA[mapreduce]]></category> <category><![CDATA[OGM]]></category> <category><![CDATA[Oozie]]></category> <category><![CDATA[Spring Data]]></category> <guid
isPermaLink="false">http://blog.xebia.fr/?p=8238</guid> <description><![CDATA[La revue de presse de l’actualité Java/JEE hebdomadaire proposée par Xebia. Actualité éditeurs / SSII Object Grid Mapping, une alternative à Spring Data? Un flot de projets pour Hadoop JBoss AS 7 est sorti Actualité éditeurs / SSII Object Grid Mapping, une alternative à Spring Data? Il manquait une API haut niveau, à la JPA, [...]]]></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/JEE hebdomadaire proposée par Xebia.</em></p><p><strong>Actualité  éditeurs / SSII</strong></p><ul><li><a
href="http://blog.xebia.fr/2011/07/19/revue-de-presse-xebia-220/#ObjectGridMappingunealternativ">Object Grid Mapping, une alternative à Spring Data?</a></li><li><a
href="http://blog.xebia.fr/2011/07/19/revue-de-presse-xebia-220/#UnflotdeprojetspourHadoop">Un flot de projets pour Hadoop</a></li><li><a
href="http://blog.xebia.fr/2011/07/19/revue-de-presse-xebia-220/#JBossASestsorti">JBoss AS 7 est sorti</a></li></ul><h3><a
name="ActualitditeursSSII"></a>Actualité  éditeurs / SSII</h3><h4><a
name="ObjectGridMappingunealternativ"></a>Object Grid Mapping, une alternative à Spring Data?</h4><p>Il manquait une API haut niveau, à la JPA, pour la manipulation des données dans Infinispan. En tant que preuve de concept, Emmanuel Bernard a tenté une adaptation d&#8217;Hibernate Core. Finalement, il s&#8217;avère que l&#8217;idée peut s&#8217;appliquer à de nombreux datastores NoSQL. C&#8217;est la naissance d&#8217;<a
href="http://in.relation.to/Bloggers/HibernateOGMBirthAnnouncement" title="Hibernate Object Grid Mapping" >Hibernate Object Grid Mapping</a>.</p><p>Les opérations CRUD sont stables mais la partie recherche par JP-QL est encore balbutiante. Celle-ci devrait cependant se reposer sur des technologies testées sur le terrain : Lucene et Hibernate Search.</p><p>JBoss par ce projet souhaite faciliter l&#8217;accès aux datastores NoSQL. Ce n&#8217;est certes pas sans rappeler <a
href="http://www.springsource.org/spring-data" title="Spring Data" >Spring Data</a>, l&#8217;initiative de VMware. Pour autant, même si ces deux entreprises sont en effet concurrentes et veulent se positionner en tant que facilitatrices, l&#8217;approche technique diffère.</p><p>JBoss souhaite proposer des implémentations pour une même API : JPA. La question se posera de savoir si JPA est suffisamment flexible pour cela. JPA fournit un vocabulaire commun; encore faut-il que pour chaque store sa sémantique ne varie pas trop.</p><p>VMware suit le principe de Spring : une configuration par POJO tout en ayant accès aux particularités de l&#8217;implémentation sous-jacente, quitte à avoir une API par datastore si cela se révèle être pertinent. On retiendra également que le but est plus large puisque le projet inclus également le support d&#8217;un framework MapReduce : Hadoop.</p><ul><li><a
href="http://www.infoq.com/news/2011/07/hibernateogm" title="httpwwwinfoqcomnews201107hibernateogm" >http://www.infoq.com/news/2011/07/hibernateogm</a></li><li><a
href="http://jduchess.org/duchess-france/blog/hibernons-avec-emmanuel-bernard/" title="httpjduchessorgduchessfrancebloghibernonsavecemmanuelbernard" >http://jduchess.org/duchess-france/blog/hibernons-avec-emmanuel-bernard/</a></li></ul><h4><a
name="UnflotdeprojetspourHadoop"></a>Un flot de projets pour Hadoop</h4><p>C&#8217;est peut-être la fin de la conquête spatiale mais l&#8217;ère du web ne fait que commencer. Et s&#8217;il y a bien quelque chose qui monte en flèche, c&#8217;est le volume des données.</p><p>HDFS vous a permis de stocker de manière distribuée vos données de telle sorte que la perte d&#8217;un noeud n&#8217;ait pas d&#8217;impact.</p><p>Avec l&#8217;API MapReduce, vous avez pu programmatiquement rapprocher vos traitements de vos données et profiter de la vitesse d&#8217;un calcul distribué et parallèle.</p><p>Mais voilà, après l&#8217;implémentation de plusieurs jobs, il vous a peut-être paru qu&#8217;il ne s&#8217;agissait pas nécessairement du bon niveau de granularité. Pig ou Hive vous ont alors permis d&#8217;exprimer vos requêtes avec un niveau d&#8217;abstraction équivalent à SQL pour les bases de données relationnelles.</p><p>Le paradigme relationnel est un acquis pour les entreprises. Passer à Hadoop ne signifie par pour autant que vous avez dû changer complètement votre système d&#8217;information. Avec HBase, vous avez pu disposer d&#8217;une base de données orientée colonne et d&#8217;un accès rapide à de petits fragments d&#8217;information. Et grâce à Sqoop, vos données relationnelles ont pu être importées dans HDFS.</p><p>Enfin Mahout vous a permis d&#8217;extraire de ces données une information pertinente en utilisant des algorithmes classiques de recommandation, clustering et classification.</p><p>Tous ces composants sont des éléments essentiels pour construire sa propre solution d&#8217;informatique décisionnelle que cela soit pour analyser les informations de ses utilisateurs ou pour consolider des sources de données externes. Cependant, au moins un élément manquait : l&#8217;orchestration des différentes étapes.</p><p>Yahoo a contribué à Oozie, une moteur de processus pour Hadoop. L&#8217;approche est classique. Le workflow peut se décrire par une API java ou en XML en utilisant hPDL, un langage similaire à celui utilisé par JBoss Business Process Management (jPBM) : jPDL. Les limitations les plus notables sont l&#8217;absence de support pour HBase et Hive.</p><p>L&#8217;écosystème d&#8217;Hadoop est jeune et en pleine expansion. L&#8217;ensemble des pièces est en construction et se perfectionne. Pour autant, c&#8217;est un écosystème qui a déjà fait ses preuves dans l&#8217;industrie comme le montre Yahoo et Hadoop.</p><ul><li><a
href="http://www.infoq.com/articles/introductionOozie" title="httpwwwinfoqcomarticlesintroductionOozie" >http://www.infoq.com/articles/introductionOozie</a></li><li><a
href="http://yahoo.github.com/oozie/design.html" title="httpyahoogithubcomooziedesignhtml" >http://yahoo.github.com/oozie/design.html</a></li><li><a
href="http://archive.cloudera.com/cdh/3/oozie/DG_Overview.html" title="httparchiveclouderacomcdh3oozieDGOverviewhtml" >http://archive.cloudera.com/cdh/3/oozie/DG_Overview.html</a></li></ul><h4><a
name="JBossASestsorti"></a>JBoss AS 7 est sorti</h4><p>Impossible de passer à côté d&#8217;une des nouvelles les plus twittées de cette semaine : la sortie de la version finale du serveur d&#8217;application de RedHat, JBoss AS 7. Si sa version précédente implementait déjà la spécification Web Profile de JEE 6, il a fallu attendre la sortie de cette dernière release pour avoir l&#8217;implementation complète. L&#8217;équipe de Dan Allen et Pete Muir a travaillé à fond pour améliorer la vitesse de démarrage et le déploiement en réduisant, selon ce qui est annoncé sur le site, la durée par 10 par rapport à sa version précédente. Dans l&#8217;un des forums de JBoss, les meilleurs temps obtenus par ceux qui l&#8217;ont déjà testé sont affichés: ils varient entre une et trois secondes.</p><p>Quelles sont les bases de cette nouvelle release ?</p><p>Légèreté : l&#8217;introduction de la modularité via le Modular Services Container (MSC) permettant le chargement des jars en fonction de la demande.<br
/> Vitesse de démarrage : les services démarrent de façon concurrente pour profiter au maximum de l&#8217;architecture multi-core.</p><p>Par ailleurs la dernière version du serveur d&#8217;applications de Red Hat offre d&#8217;autres avantages tels que :</p><ul><li>Support à la spécification OSGi out-of-the-box</li><li>Simplification de la gestion de la configuration</li><li>Déploiement à chaud des fichiers de configuration</li><li>Orientation à test en facilitant l&#8217;utilisation du modèle de composants Arquilian pour le développement des tests d&#8217;intégration.</li></ul><p>Avec toutes ces caractéristiques, JBoss AS 7 se positionne au même niveau que d&#8217;autres serveurs d&#8217;application rivaux, notamment la référence de JEE 6, Glassfish 3.1.</p><p><a
href="http://community.jboss.org/wiki/AS7StartupTimeShowdown" title="httpcommunityjbossorgwikiAS7StartupTimeShowdown" >http://community.jboss.org/wiki/AS7StartupTimeShowdown</a></p> ]]></content:encoded> <wfw:commentRss>http://blog.xebia.fr/2011/07/19/revue-de-presse-xebia-220/feed/</wfw:commentRss> <slash:comments>3</slash:comments> </item> <item><title>Revue de Presse Xebia</title><link>http://blog.xebia.fr/2011/04/12/revue-de-presse-xebia-206/</link> <comments>http://blog.xebia.fr/2011/04/12/revue-de-presse-xebia-206/#comments</comments> <pubDate>Tue, 12 Apr 2011 07:42:14 +0000</pubDate> <dc:creator>Xebia France</dc:creator> <category><![CDATA[Revue de presse]]></category> <category><![CDATA[asynchronisme]]></category> <category><![CDATA[java]]></category> <category><![CDATA[JBoss]]></category> <category><![CDATA[MongoDB]]></category> <category><![CDATA[NodeJS]]></category> <category><![CDATA[Ruby]]></category> <category><![CDATA[Seam]]></category> <category><![CDATA[SeamForge]]></category> <category><![CDATA[Twitter]]></category> <guid
isPermaLink="false">http://blog.xebia.fr/?p=7401</guid> <description><![CDATA[La revue de presse de l’actualité Java/JEE hebdomadaire proposée par Xebia. Actualité éditeurs / SSII Sortie de MongoDB 1.8.1 Le coin de la technique Sortie de Jboss Seam 3 : un framework J2EE modulaire Twitter: l’asynchronisme est la clef Actualité éditeurs / SSII Sortie de MongoDB 1.8.1 Une mise à jour de maintenance de la [...]]]></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/JEE hebdomadaire proposée par Xebia.</em></p><p><strong>Actualité  éditeurs / SSII</strong></p><ul><li><a
href="http://blog.xebia.fr/2011/04/12/revue-de-presse-xebia-206/#SortiedeMongoDB">Sortie de MongoDB 1.8.1</a></li></ul><p><strong>Le coin de la  technique</strong></p><ul><li><a
href="http://blog.xebia.fr/2011/04/12/revue-de-presse-xebia-206/#SortiedeJbossSeamunframeworkJE">Sortie de Jboss Seam 3 : un framework J2EE modulaire</a></li><li><a
href="http://blog.xebia.fr/2011/04/12/revue-de-presse-xebia-206/#Twitterlasynchronismeestlaclef">Twitter: l’asynchronisme est la clef</a></li></ul><h3><a
name="ActualitditeursSSII"></a>Actualité  éditeurs / SSII</h3><h4><a
name="SortiedeMongoDB"></a>Sortie de MongoDB 1.8.1</h4><p>Une mise à jour de maintenance de la version 1.8 (<a
title="notes de version" href="http://www.mongodb.org/display/DOCS/1.8+Release+Notes">notes de version</a>) de Mongo est sortie il y a quelques semaines. Elle apporte:</p><ul><li>Le mode journal lorsque l&#8217;on utilise un seul serveur Mongo.</li><li>Support de Map/Reduce incrémental.</li><li>Support des index partiel et couvert.</li><li>Support des recherches géographiques en prenant en compte le rayon de courbure de la terre. Ce point est appréciable pour effectuer des recherches spatiales correspondant à un vrai cercle.</li></ul><p>La <a
title="181" href="https://jira.mongodb.org/browse/SERVER/fixforversion/10260">1.8.1</a> fixe quelques régressions liées à la dernière sortie.</p><h3><a
name="Lecoindelatechnique"></a>Le coin de la  technique</h3><h4><a
name="SortiedeJbossSeamunframeworkJE"></a>Sortie de Jboss Seam 3 : un framework J2EE modulaire</h4><p><em>Jboss Seam</em> vient de sortir en <a
title="version 30" href="http://in.relation.to/Bloggers/Seam300FinalReleased">version 3.0</a>.<br
/> De la même manière que <em>Spring</em>, <em>Seam</em> est un framework &laquo;&nbsp;boîte à outils&nbsp;&raquo;, qui offre un ensemble de modules et d&#8217;extensions pour implémenter une solution J2EE complète. La grosse nouveauté de cette release est que le cœur de Seam est fourni par l&#8217;api <strong>CDI</strong> (JSR-299 Java Contexts and Dependency Injection). Ce choix permet au framework d&#8217;être <strong>totalement modulaire</strong> sous forme d&#8217;extensions portables. Les modules Seam peuvent être exécutés sur tous les serveurs compatible Java EE 6, mais aussi sur de simples serveurs web, comme <em>Tomcat</em> ou <em>Jetty</em> en utilisant <a
title="Weld" href="http://seamframework.org/Weld">Weld</a>, une implémentation de CDI.<br
/> Cette nouvelle approche modulaire se retrouve aussi dans <a
title="le système de build" href="http://www.seamframework.org/Seam3/BuildSystemArchitecture">le système de build</a> de Seam, qui utilise le pattern <a
title="BOM" href="http://maven.apache.org/guides/introduction/introduction-to-dependency-mechanism.html">BOM</a> (&laquo;&nbsp;Bill Of Materials&nbsp;&raquo;) de <em>Maven 3</em>. Les différents modules Seam peuvent alors être <strong>construits indépendamment</strong> et la mise à jour de la version d&#8217;une dépendance est aisée.</p><p>Voici la liste des principaux modules Seam:</p><ul><li><strong>Solder:</strong> Offre un ensemble d&#8217;annotations utiles ajoutant des fonctionnalités supplémentaires à CDI</li><li><strong>Catch:</strong> Gestion des exceptions, plus d&#8217;infos <a
title="ici" href="http://in.relation.to/Bloggers/SeamModuleSpotlightSeamCatch">ici</a>.</li><li><strong>Config:</strong> Offre la capacité de configurer les CDI beans via XML.</li><li><strong>Persistence:</strong> Gestion de la persistance et des transactions.</li><li><strong>International:</strong> Gestion des langues et internationalisation complète de l&#8217;application.</li><li><strong>Remoting:</strong> Support Ajax coté client et serveur.</li><li><strong>Validation:</strong> Fournit des fonctionnalités supplémentaires à Hibernate Validator.</li><li><strong>Rest:</strong> Fournit une intégration de JAX-RS.</li><li><strong>Security:</strong> Fournit des services d&#8217;authentification et d&#8217;autorisation.</li><li><strong>Wicket:</strong> Intégrer CDI et ajouter quelques apports de Seam au framework Wicket.</li></ul><p>Cette orientation modulaire et les nombreuses extensions proposées devraient permettre à Seam d&#8217;être un choix intéressant à la fois pour les nouveaux projets J2EE et à la fois pour faire évoluer en douceur des applications existantes. Et ce, que vous utilisiez un serveur d&#8217;application ou un simple serveur web.<br
/> Cette nouvelle version pourrait faire réfléchir plus d&#8217;un qui hésiterait entre le monde &laquo;&nbsp;Spring&nbsp;&raquo; et le monde &laquo;&nbsp;J2EE&nbsp;&raquo;.</p><p>Par ailleurs, la distribution de Seam vient maintenant accompagnée de SeamForge. C&#8217;est un outil en ligne de commande qui peut faire penser à Grails, Rails ou Spring Roo. Il permet de créer rapidement de nouvelles applications, de paramétrer facilement des applications existantes (ajout de JPA, JSF ou CDI), générer des IHM CRUD pour les @Entity&#8230; Plus d&#8217;infos sur <a
title="TheServerSide" href="http://www.theserverside.com/discussions/thread.tss?thread_id=62154">TheServerSide</a> ou dans <a
title="la documentation" href="http://docs.jboss.org/forge/snapshot/reference/en-US/html_single/">la documentation</a>.</p><p>Pour en savoir plus sur CDI, Oracle Tech Network vient de publier <a
title="un article intressant" href="http://www.oracle.com/technetwork/articles/java/cdi-javaee-bien-225152.html">un article intéressant</a> intitulé &laquo;&nbsp;Contexts and Dependency Injection in Java EE 6&#8243;.</p><h4><a
name="Twitterlasynchronismeestlaclef"></a>Twitter: l’asynchronisme est la clef</h4><p>La nouvelle a été relayée partout: Twitter remplace Ruby par Java. En plus, Java est 3 fois plus rapide ! Bref, de quoi regonfler l&#8217;égo des développeurs Java attaqués de toute part par des langages &laquo;&nbsp;plus rapides&nbsp;&raquo;, &laquo;&nbsp;plus productifs&nbsp;&raquo; (et &laquo;&nbsp;plus hype&nbsp;&raquo; ?)&#8230; Qu&#8217;en est-il vraiment ?</p><p>En fait, plus que tel ou tel langage, Twitter est surtout passé, pour son moteur de recherche, d&#8217;un mécanisme de requêtes synchrones à un mécanisme complètement asynchrone agrégeant les résultats de requêtes sur les serveurs back-end. Plus que le remplacement d&#8217;un langage par un autre, c&#8217;est à une nouvelle architecture que Twitter a donné naissance et c&#8217;est elle qui apporte surtout le bénéfice. Le <a
title="blog officiel des ingnieurs" href="http://engineering.twitter.com/">blog officiel des ingénieurs</a> du site donne quelques éléments pour comprendre cette migration. C&#8217;est le serveur Netty qui propulse la toute nouvelle architecture. Il a été choisi pour &laquo;&nbsp;son API plus claire et une meilleure documentation&nbsp;&raquo; par rapport à Jetty ou Mina qui auraient aussi pu fournir les fonctionnalités asynchrones nécessaires. Par ailleurs, l&#8217;article décrit comment est déterminé l&#8217;ordre d&#8217;appel des différents services (en fonction de leurs dépendances) qui constituent alors une séquence de <em>handlers</em> à travers lesquels la requête passe pour être traitée. L&#8217;asynchronisme permet alors d&#8217;éviter d&#8217;avoir des threads se tournant les pouces en attendant les réponses des différents services.</p><p>Il est à noter que les traitements asynchrones sensés permettre de meilleures montées en charge ne sont pas l&#8217;apanage des serveurs Java: NodeJS et le Javascript sont souvent cités comme étant l&#8217;avenir. <a
title="Un post sur le blog de MetaMarket" href="http://metamarketsgroup.com/blog/node-js-and-the-javascript-age/">Un post sur le blog de MetaMarket</a> annonce d&#8217;ailleurs que &laquo;&nbsp;les architectures LAMP sont mortes&nbsp;&raquo; et destinées à être remplacées par NodeJS et Javascript. C&#8217;est encore une fois la nature asynchrone du langage qui est mise en avant, ainsi que son adaptation aussi bien côté client que serveur. InfoQ vient d&#8217;ailleurs de publier <a
href="http://www.infoq.com/news/2011/04/javascript-lamp">une analyse</a> de ce post qui semble faire un peu de bruit.</p><p>Bref, le langage du futur n&#8217;est pas connu avec certitude, mais le futur de la montée en charge sera asynchrone ou ne sera pas.</p> ]]></content:encoded> <wfw:commentRss>http://blog.xebia.fr/2011/04/12/revue-de-presse-xebia-206/feed/</wfw:commentRss> <slash:comments>2</slash:comments> </item> <item><title>Testabilité des EJB 3.1. Prêt pour du TDD ?</title><link>http://blog.xebia.fr/2011/02/02/testabilite-des-ejb-3-1-pret-pour-du-tdd/</link> <comments>http://blog.xebia.fr/2011/02/02/testabilite-des-ejb-3-1-pret-pour-du-tdd/#comments</comments> <pubDate>Wed, 02 Feb 2011 15:22:55 +0000</pubDate> <dc:creator>Julien Smadja</dc:creator> <category><![CDATA[Java / JEE]]></category> <category><![CDATA[EJB]]></category> <category><![CDATA[EJB 3.1]]></category> <category><![CDATA[GlassFish]]></category> <category><![CDATA[JBoss]]></category> <category><![CDATA[TDD]]></category> <category><![CDATA[Test-Driven-Development]]></category> <guid
isPermaLink="false">http://blog.xebia.fr/?p=6766</guid> <description><![CDATA[La testabilité est devenue un facteur à prendre en compte lors du choix d&#8217;un composant technique. Pour les EJB 3.0, il existait plusieurs manières de tester des services développés, Ejb3unit (figé depuis mi-2009) ou Arquillian (uniquement côté JBoss AS). Les EJB 3.1 offrent enfin une solution native, prête à l&#8217;emploi et simple à manipuler : [...]]]></description> <content:encoded><![CDATA[<p>La testabilité est devenue un facteur à prendre en compte lors du choix d&#8217;un composant technique. Pour les EJB 3.0, il existait plusieurs manières de tester des services développés, <a
href="http://ejb3unit.sourceforge.net/" title="Ejb3unit" >Ejb3unit</a> (figé depuis mi-2009) ou <a
href="http://www.jboss.org/arquillian" title="Arquillian" >Arquillian</a> (uniquement côté JBoss AS). Les EJB 3.1 offrent enfin une solution native, prête à l&#8217;emploi et simple à manipuler : <strong>l&#8217;EJB Container</strong>.</p><p>Cet article présente l&#8217;utilité de l&#8217;EJB Container et la manière de l&#8217;utiliser ; il s&#8217;appuie pour cela sur l&#8217;écriture d&#8217;un service et d&#8217;une suite de tests exécutables sur <strong>Glassfish 3</strong> et sur <strong>JBoss 6</strong>.</p><h3><a
name="LEJBContainerenthorie"></a>L&#8217;EJB Container en théorie</h3><p>Les EJB 3.1 sont spécifiés dans la <a
href="http://jcp.org/en/jsr/detail?id=318" title="JSR 318" >JSR 318</a> dont la version finale a été validée en décembre 2009. Outre les spécifications liées au cœur même des EJB (Session Bean Stateless, Stateful, Message-Driven Bean, Timer Service, Transactions, etc) on trouve un chapitre dédié à un tout nouveau composant : l&#8217;EJB Container. Voici un résumé des fonctionnalités et obligations spécifiées :</p><ul><li>Supporter le sous-ensemble EJB Lite de l&#8217;API EJB 3.1 dans un environnement de conteneur embarqué ;</li><li>Permettre à un code client (un programme Java standard par exemple) d&#8217;instancier un EJB Container qui s&#8217;exécute dans sa propre JVM avec son propre classloader ;</li><li>Définir une API permettant de démarrer le conteneur et de récupérer les Enterprise Beans ;</li><li>Fournir un environnement qui supporte les services de base tels que l&#8217;injection de dépendances, l&#8217;accès à l&#8217;environnement, la gestion des transactions, etc.</li></ul><p>Pour rappel, le sous-ensemble EJB Lite est composé :</p><ul><li>De la prise en charge des Session Beans Stateless, Stateful, et Singleton ;</li><li>Uniquement des EJB avec interface Local ou sans interface ;</li><li>De la prise en charge des Interceptors ;</li><li>Du support de la sécurité ;</li><li>Du support des transactions.</li></ul><p>La JSR 318 n&#8217;étant qu&#8217;une spécification, l&#8217;implémentation de ces fonctionnalités repose sur les éditeurs de serveurs d&#8217;applications.</p><h3><a
name="LEJBContainerenpratique"></a>L&#8217;EJB Container en pratique</h3><p>L&#8217;EJB Container est le moteur qui va nous permettre de simuler l&#8217;exécution de nos EJB comme si nous étions dans le « vrai » conteneur EJB de notre serveur d&#8217;applications.</p><h4><a
name="UncassimpleHelloWorld"></a>Un cas simple : Hello World !</h4><p>Pour démarrer, nous allons développer un simple EJB <a
href="https://github.com/jsmadja/EJBContainer/blob/master/src/main/java/com/xebia/ejbcontainer/service/HelloWorldService.java#L1" title="HelloWorldService" >HelloWorldService</a>. Le test consistera à vérifier que la méthode sayHelloWorld() de <a
href="https://github.com/jsmadja/EJBContainer/blob/master/src/main/java/com/xebia/ejbcontainer/service/HelloWorldService.java#L1" title="HelloWorldService" >HelloWorldService</a> renvoie bien « Hello World ».</p><p>Voici tout d&#8217;abord notre bean <a
href="https://github.com/jsmadja/EJBContainer/blob/master/src/main/java/com/xebia/ejbcontainer/service/HelloWorldService.java#L1" title="HelloWorldService" >HelloWorldService</a>. Sa responsabilité est de retourner la chaîne de caractères « Hello World » lors de l&#8217;appel de la méthode <code>sayHelloWorld</code>.</p><pre class="brush: java; title: ; notranslate">
@Stateless
@Local
public class HelloWorldService implements IHelloWorldService {
    public String sayHelloWorld() {
        return &quot;Hello World&quot;;
    }
}
</pre><p>Pour tester uniquement cet EJB nous créons un test JUnit qui se charge d&#8217;instancier l&#8217;EJBContainer et de récupérer notre Bean. Le seul et unique test sera de vérifier que l&#8217;appel à la méthode sayHelloWorld retourne bien « Hello World ».</p><pre class="brush: java; title: ; notranslate">
public class HelloWorldServiceTest {
    private static EJBContainer ejbContainer;
    private static IHelloWorldService helloWorldService;
    /***
     * Méthode d'initialisation appelée une seule fois lors de l'exécution
     * des tests de HelloServiceTest.
     * C'est l'endroit idéal pour démarrer l'EJBContainer et récupérer
     * les EJB à tester.
     * @throws NamingException
     */
    @BeforeClass
    public static void init() throws NamingException {
        Map&lt;String, Object&gt; properties = new HashMap&lt;String, Object&gt;();
        properties.put(EJBContainer.MODULES, new File(&quot;target/classes.ext&quot;));
        ejbContainer = EJBContainer.createEJBContainer(properties);
        Context ctx = ejbContainer.getContext();
        // le nom JNDI d'un EJB dépend du serveur d'applications utilisé :
        // jboss     : &quot;HelloWorldService/local&quot;
        // glassfish : &quot;java:global/classes.ext/HelloWorldService&quot;
        String helloWorldServiceName = HelloWorldService.class.getSimpleName();
        helloWorldServiceName = isJbossContainer() ? helloWorldServiceName + &quot;/local&quot; : &quot;java:global/classes.ext/&quot; + helloWorldServiceName;
        helloWorldService = (IHelloWorldService) ctx.lookup(helloWorldServiceName);
    }
    /***
     * Méthode de test qui vérifie que nous avons bien récupéré l'EJB
     * HelloWorldService et qu'il est fonctionnel
     */
    @Test
    public void should_say_hello_world() {
        Assert.assertEquals(&quot;Hello World&quot;, helloWorldService.sayHelloWorld());
    }
    /***
     * Méthode de nettoyage appelée une seule fois après l'exécution de
     * l'ensemble des tests unitaires de HelloServiceTest.
     * C'est l'endroit idéal pour fermer le contexte JNDI et l'EJBContainer.
     * Un bug de JBoss nous contraint à ne pas appeler les méthodes close()
     * sur context et container.
     * @throws NamingException
     */
    @AfterClass
    public static void cleanup() throws NamingException {
        ejbContainer.close();
    }
    private static boolean isJbossContainer() {
        return System.getProperty(&quot;jboss.home&quot;) != null;
    }
}
</pre><p>Comme convenu par les spécifications, un EJBContainer est instancié grâce à la méthode <code>EJBContainer.createEJBContainer()</code> et fermé par la méthode <code>EJBContainer.close()</code>.</p><p>Lors de la création de l&#8217;EJBContainer il faut préciser le répertoire des classes compilées. Habituellement lorsqu&#8217;on utilise Maven, ce répertoire est <code>target/classes</code>.</p><p>Malheureusement JBoss 6.0.0 Final contient un <a
href="https://issues.jboss.org/browse/JBAS-8669" title="bug" >bug</a> qui nous oblige à compiler nos EJB dans un dossier suffixé par 4 caractères (par exemple : target/classes devient target/classes.ext).  En effet, lors de l&#8217;exécution du déploiement du conteneur, les 4 derniers caractères seront tronqués. La prochaine version de JBoss  (v6.0.1) corrigera cette anomalie.</p><p>Une fois le conteneur récupéré, il suffit de passer par le Context JNDI pour rapatrier ses beans mais attention : le nom JNDI des EJB est différent selon le serveur d&#8217;applications utilisé.</p><p>Nous avons défini deux profils Maven dans le <a
href="https://github.com/jsmadja/EJBContainer/blob/master/pom.xml#L12" title="pomxml" >pom.xml</a> permettant de passer d&#8217;une exécution avec Glassfish à une exécution avec JBoss. Pour choisir, il suffit d&#8217;ajouter le paramètre <code>-Pglassfish</code> ou le paramètre <code>-Pjboss</code>.</p><p>Pour exécuter les tests sur Glassfish il suffit d&#8217;exécuter la commande suivante :</p><pre class="brush: bash; title: ; notranslate">
mvn test -Pglassfish
</pre><p>Pour exécuter les tests sur JBoss il suffit d&#8217;exécuter la commande suivante :</p><pre class="brush: bash; title: ; notranslate">
mvn test -Pjboss
</pre><p>Le temps d&#8217;exécution total est très différent entre les deux conteneurs :</p><ul><li><strong>Glassfish 3</strong> : 6 secondes</li><li><strong>JBoss 6 Final</strong> : 61 secondes</li></ul><h3><a
name="UncaspluscomplexeEJBJPA"></a>Un cas plus complexe : EJB 3.1 + JPA 2</h3><p>Pour aller plus loin, nous allons développer un service permettant d&#8217;enregistrer des personnes dans une base de données.</p><p>Pour manipuler nos entités <a
href="https://github.com/jsmadja/EJBContainer/blob/master/src/main/java/com/xebia/ejbcontainer/domain/Person.java#L1" title="Person" >Person</a> nous créons <a
href="https://github.com/jsmadja/EJBContainer/blob/master/src/main/java/com/xebia/ejbcontainer/service/PersonService.java#L1" title="PersonService" >PersonService</a> qui est un EJB Session Bean Stateless utilisant l&#8217;EntityManager de JPA 2.0.</p><pre class="brush: java; title: ; notranslate">
@Stateless
@Local
/**
 * Service permettant la gestion des entités Person avec la base de données
 * Seule la méthode de création est implémentée.
 */
public class PersonService implements IPersonService {
    @PersistenceContext
    EntityManager em;
    /**
     * Crée une nouvelle Person dans la base de données.
     * Méthode transactionnelle :
     *  @TransactionAttribute(TransactionAttributeType.REQUIRED) est implicite
     * @param person une instance de Person
     * @return L'instance de personne persistée, champ Id initialisé
     */
    @Override
    public Person create(Person person) {
        em.persist(person);
        return person;
    }
}
</pre><p>En nous arrêtant là, et à 2 fichiers de configuration près, notre EJB est packageable en JAR et déployable sur les serveurs d&#8217;applications JBoss et Glassfish :</p><ul><li><a
href="https://github.com/jsmadja/EJBContainer/blob/master/src/conf/glassfish/META-INF/ejb-jar.xml#L1" title="ejbjarxml" >ejb-jar.xml</a> contient la liste de vos EJB. Ce fichier est portable et sera le même quel que soit le serveur d&#8217;applications ;</li><li>persistence.xml contient les paramètres de connexion à la base de donnée. La configuration de ce fichier est fortement liée au choix de serveur d&#8217;applications. Pour JBoss, Hibernate sera privilégié comme Persistence Provider <a
href="https://github.com/jsmadja/EJBContainer/blob/master/src/conf/jboss/META-INF/persistence.xml#L1" title="(persistence.xml" >(persistence.xml</a>), alors que pour Glassfish ce sera plutôt Eclipse Link (<a
href="https://github.com/jsmadja/EJBContainer/blob/master/src/conf/glassfish/META-INF/persistence.xml#L1" title="persistencexml" >persistence.xml</a>).</li></ul><p><strong>Écriture et exécution du test</strong></p><p>Comme précédemment, nous utilisons un test JUnit pour valider le comportement de <a
href="https://github.com/jsmadja/EJBContainer/blob/master/src/main/java/com/xebia/ejbcontainer/service/PersonService.java#L1" title="PersonService" >PersonService</a>. Pour plus de clarté, l&#8217;exemple ci-dessous ne contient pas les méthodes d&#8217;initialisation et de fermeture de l&#8217;EJBContainer :</p><pre class="brush: java; title: ; notranslate">
public class PersonServiceTest {
    private static IPersonService personService;
    /***
     &lt;strong&gt; Méthode de test qui vérifie la création d'un objet Person dans la
     &lt;/strong&gt; base de données. L'instance obtient un identifiant après avoir été
     * persistée par l'EntityManager.
     */
    @Test
    public void should_create_a_person() {
        Person person = new Person(&quot;Erich&quot;, &quot;Gamma&quot;);
        Person createdPerson = personService.create(person);
        assertNotNull(createdPerson.getId());
    }
}
</pre><p>Regardons maintenant comment se comporte notre EJB Container en rajoutant ce nouvel EJB. Tout d&#8217;abord, voici les temps d&#8217;exécution mis à jour :</p><ul><li><strong>Glassfish 3</strong> : 12 secondes</li><li><strong>JBoss 6 Final</strong> : 67 secondes</li></ul><p>Le temps d&#8217;exécution est toujours beaucoup plus faible en utilisant Glassfish 3 que JBoss 6.</p><p>Glassfish a mis 2 fois plus de temps à démarrer à cause des phases d&#8217;initialisation dues à l&#8217;utilisation de JPA 2.0 (entity manager, création de la base de données, création des tables, mapping des entités, etc). JBoss a quant à lui mis quelques secondes de plus que précédemment, il charge un conteneur entier et ne semble pas vouloir jouer la carte de la légèreté comme le fait Glassfish.</p><p>Ce temps total d&#8217;exécution est voué à augmenter tout au long du projet, au fur et à mesure des nouvelles entités, des nouveaux services. Une chose est sûre, des outils comme <a
href="http://infinitest.github.com/" title="Infinitest" >Infinitest</a> &#8212; lançant en boucle les tests des EJB &#8212; sont à proscrire. Il n&#8217;est pas concevable de démarrer des conteneurs qui mettent plus d&#8217;une minute à s&#8217;initialiser!</p><h3><a
name="LeslimitesdelEJBContainer"></a>Les limites de l&#8217;EJB Container</h3><p>En conclusion, l&#8217;EJB Container est un vrai plus dans la testabilité des EJB 3.1. Sa simplicité d&#8217;utilisation permet de se reposer facilement sur le conteneur dans nos tests ; il permet même d&#8217;envisager le développement dirigé par les tests (TDD). Malheureusement, sa trop grande durée d&#8217;initialisation n&#8217;encouragera pas à lancer les tests toutes les 5 secondes.</p><p>Ce qu&#8217;il faut retenir c&#8217;est qu&#8217;après le démarrage de l&#8217;EJB Container, les tests sont exécutés à vitesse grand V. Ils feront partie des tests d&#8217;intégration et nous permettront toujours de déceler les régressions et bugs potentiels.</p><p>Nous n&#8217;avons pas exploré dans cet article les limites techniques dues au sous-ensemble réduit des EJB Lite. Si vous pensez avoir des cas dans lesquels l&#8217;EJB Container ne peut pas vous aider, laissez-nous un commentaire <img
src='http://blog.xebia.fr/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /> .</p><h3>Code source</h3><p>L&#8217;intégralité de l&#8217;exemple est disponible sur <a
href="https://github.com/jsmadja/EJBContainer" title="Github" >Github</a>. Maven et <a
href="http://www.jboss.org/jbossas/downloads.html" title="JBoss 60" >JBoss 6.0.</a> sont nécessaires à son bon fonctionnement.</p><p>Pour JBoss, une variable d&#8217;environnement JBOSS_HOME pointant vers le répertoire d&#8217;installation est indispensable.</p><h3>Pour en savoir plus sur les EJB 3.1</h3><p>Le livre <a
href="http://apress.com/book/view/1430219548" title="Beginning Java EE 6 Platform with GlassFish 3 From Novice to Professional" >Beginning Java™ EE 6 Platform with GlassFish™ 3: From Novice to Professional</a> d&#8217;Antonio Goncalves permet d&#8217;approfondir les possibilités offertes par EJB 3.1 et Java EE 6. Plusieurs chapitres sont dédiés aux EJB 3.1 (Session Beans, Transactions, Timer Service, etc). Les autres chapitres portent sur JPA 2.0, JSF 2.0 ainsi que sur l&#8217;écriture de Web Services SOAP et REST. Ce livre est un guide qui se lit vite et permet de mettre rapidement le pied à l&#8217;étrier.</p><div
align="center"> <img
src="http://blog.xebia.fr/wp-content/uploads/2011/02/9781430219545.gif" border="0" alt="" /></div><h3>Annexe</h3><p>Si vous exécutez les tests avec la version 6.0.0 de JBoss AS, attendez-vous à une erreur lors de la fermeture de l&#8217;EJB Container. En effet, une anomalie lève une stacktrace lors de l&#8217;appel à la méthode ejbContainer.close().</p><pre class="brush: bash; title: ; notranslate">
21:04:59,128 ERROR [AOPClassLoaderDeployer] Error during undeploy: vfs:///Users/juliensmadja/Documents/workspace_fluxx/EJBContainer/target/classes.ext/: java.lang.NullPointerException
	at org.jboss.aop.asintegration.jboss5.AOPClassLoaderInitializer.unregisterLoaders(AOPClassLoaderInitializer.java:54) [jboss-aop-asintegration-mc.jar:2.2.1.GA]
	at org.jboss.aop.asintegration.jboss5.AOPClassLoaderDeployer.internalUndeploy(AOPClassLoaderDeployer.java:77) [jboss-aop-deployers.jar:2.2.1.GA]
	at org.jboss.deployers.spi.deployer.helpers.AbstractRealDeployer.undeploy(AbstractRealDeployer.java:117) [jboss-deployers-spi.jar:2.2.0.GA]
	at org.jboss.deployers.plugins.deployers.DeployerWrapper.undeploy(DeployerWrapper.java:204) [jboss-deployers-impl.jar:2.2.0.GA]
	at org.jboss.deployers.plugins.deployers.DeployersImpl.doUndeploy(DeployersImpl.java:1862) [jboss-deployers-impl.jar:2.2.0.GA]
	at org.jboss.deployers.plugins.deployers.DeployersImpl.doUninstallParentLast(DeployersImpl.java:1769) [jboss-deployers-impl.jar:2.2.0.GA]
	at org.jboss.deployers.plugins.deployers.DeployersImpl.uninstall(DeployersImpl.java:1724) [jboss-deployers-impl.jar:2.2.0.GA]
	at org.jboss.dependency.plugins.AbstractControllerContext.uninstall(AbstractControllerContext.java:385) [jboss-dependency.jar:2.2.0.GA]
	at org.jboss.dependency.plugins.AbstractController.uninstall(AbstractController.java:2078) [jboss-dependency.jar:2.2.0.GA]
	at org.jboss.dependency.plugins.AbstractController.uninstallContext(AbstractController.java:1624) [jboss-dependency.jar:2.2.0.GA]
	at org.jboss.dependency.plugins.AbstractController.uninstallContext(AbstractController.java:1472) [jboss-dependency.jar:2.2.0.GA]
	at org.jboss.dependency.plugins.AbstractController.uninstall(AbstractController.java:756) [jboss-dependency.jar:2.2.0.GA]
	at org.jboss.dependency.plugins.AbstractController.uninstall(AbstractController.java:669) [jboss-dependency.jar:2.2.0.GA]
	at org.jboss.dependency.plugins.AbstractController.shutdown(AbstractController.java:270) [jboss-dependency.jar:2.2.0.GA]
	at org.jboss.bootstrap.impl.mc.server.AbstractMCServerBase.shutdownKernelAndDeployer(AbstractMCServerBase.java:202) [jboss-bootstrap-impl-mc.jar:2.1.0-alpha-5]
	at org.jboss.bootstrap.impl.mc.server.AbstractMCServerBase.doShutdown(AbstractMCServerBase.java:160) [jboss-bootstrap-impl-mc.jar:2.1.0-alpha-5]
	at org.jboss.bootstrap.impl.base.server.AbstractServer.shutdown(AbstractServer.java:304) [jboss-bootstrap-impl-base.jar:2.1.0-alpha-5]
	at org.jboss.ejb3.embedded.sub.JBossSubmersibleEJBContainer.close(JBossSubmersibleEJBContainer.java:76) [jboss-ejb3-embedded-sub.jar:1.0.0-alpha-4]
	at com.xebia.ejbcontainer.service.HelloWorldServiceTest.cleanup(HelloWorldServiceTest.java:57)
</pre>]]></content:encoded> <wfw:commentRss>http://blog.xebia.fr/2011/02/02/testabilite-des-ejb-3-1-pret-pour-du-tdd/feed/</wfw:commentRss> <slash:comments>7</slash:comments> </item> <item><title>Revue de Presse Xebia</title><link>http://blog.xebia.fr/2011/01/04/revue-de-presse-xebia-192/</link> <comments>http://blog.xebia.fr/2011/01/04/revue-de-presse-xebia-192/#comments</comments> <pubDate>Tue, 04 Jan 2011 09:16:34 +0000</pubDate> <dc:creator>Xebia France</dc:creator> <category><![CDATA[Revue de presse]]></category> <category><![CDATA[agile client]]></category> <category><![CDATA[Android]]></category> <category><![CDATA[iPhone]]></category> <category><![CDATA[JBoss]]></category> <category><![CDATA[JBoss AS 6]]></category> <category><![CDATA[JEE6]]></category> <category><![CDATA[JSR-310]]></category> <category><![CDATA[Mobilité]]></category> <category><![CDATA[ThreeTen]]></category> <guid
isPermaLink="false">http://blog.xebia.fr/?p=6570</guid> <description><![CDATA[La revue de presse hebdomadaire proposée par Xebia vous souhaite une bonne et heureuse année 2011. Actualité éditeurs / SSII JBoss AS 6 est disponible Agilité Comment impliquer votre client dans un projet ? Le coin de la technique La JSR 310 devient &#171;&#160;Project ThreeTen&#160;&#187; PhoneGap, une autre approche du développement d&#8217;application mobile Actualité éditeurs [...]]]></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 hebdomadaire proposée par Xebia vous souhaite une bonne et heureuse année 2011.</em></p><p><strong>Actualité  éditeurs / SSII</strong></p><ul><li><a
href="http://blog.xebia.fr/2011/01/04/revue-de-presse-xebia-192/#JBossASestdisponible">JBoss AS 6 est disponible</a></li></ul><p><strong>Agilité</strong></p><ul><li><a
href="http://blog.xebia.fr/2011/01/04/revue-de-presse-xebia-192/#Commentimpliquervotreclientdan">Comment impliquer votre client dans un projet ?</a></li></ul><p><strong>Le coin de la  technique</strong></p><ul><li><a
href="http://blog.xebia.fr/2011/01/04/revue-de-presse-xebia-192/#LaJSRdevientProjectThreeTen">La JSR 310 devient &laquo;&nbsp;Project ThreeTen&nbsp;&raquo;</a></li><li><a
href="http://blog.xebia.fr/2011/01/04/revue-de-presse-xebia-192/#PhoneGapuneautreapprochedudvel">PhoneGap, une autre approche du développement d&#8217;application mobile</a></li></ul><h3><a
name="ActualitditeursSSII"></a>Actualité  éditeurs / SSII</h3><h4><a
name="JBossASestdisponible"></a>JBoss AS 6 est disponible</h4><p>Un an après la sortie de la spec finale JEE6 en simultanée avec son implémentation de référence, Glassfish V3, c&#8217;est au tour de JBoss AS (pour Application Server) de montrer le bout de son nez en version 6.<br
/> JBoss, c&#8217;est le poids lourd des serveurs JEE. Poids lourd par la part de marché, car, d&#8217;après <a
title="une récente étude" href="http://planet.jboss.org/post/java_container_popularity_and_a_prediction">une récente étude</a> de ZeroTurnaround (ceux de l&#8217;excellent JRebel), il représente tout de même près du quart des déploiements de serveurs Java. Mais poids lourd aussi par ses fonctionnalités. Il implémente en effet <span
style="text-decoration: line-through;">la  totalité de la spécification JEE6</span> en partie JEE6 dont  le &laquo;&nbsp;Web Profile&nbsp;&raquo; en totalité (pour visualiser ce que représente Web Profile, <a
href="http://wiki.caucho.com/Resin_Java_EE_6_Web_Profile#Java_EE_6_Web_Profile">ce graphique</a> sur le site de Caucho est représentatif). Nous ne reviendrons pas sur JEE6 déjà <a
title="largement voque" href="http://blog.xebia.fr/2009/11/25/devoxx-jour-3-jee6/">largement évoqué</a> ici.<br
/> <a
href="http://java.dzone.com/news/jboss-6-release-rings-happy">Sur DZone</a>, Mitchell Pronschinske a listé les composant remarquables. Reprenons les un par un:</p><ul><li>JBoss Embedded AS, le serveur est embarquable directement depuis Maven, utile pour les tests</li><li><em>Single POM Dependency for all the AS runtime</em>, permet comme <a
title="expliqu ici" href="http://web.archiveorange.com/archive/v/4gws3SgEVOjkKC7KALP5">expliqué ici</a> de fournir une intégration facilitée aux utilisateurs de Maven. Une dépendance unique &laquo;&nbsp;tire&nbsp;&raquo; toutes les dépendances du serveur embarqué.</li><li><a
title="ShrinkWrap" href="http://www.jboss.org/shrinkwrap">ShrinkWrap</a>, l&#8217;API permettant d&#8217;assembler aisément des JAR, WAR ou autres EARs</li><li><a
title="JBoss Switchboard" href="http://community.jboss.org/wiki/Switchboard">JBoss Switchboard</a> et <a
title="JBossinjection" href="http://community.jboss.org/wiki/DesignofJBossInjection">JBoss-injection</a> prennent en charge l&#8217;injection de ressources JNDI</li><li>HornetQ, la solution de messaging JBoss, <a
title="rcemment vante" href="http://blog.xebia.fr/2010/09/07/revue-de-presse-xebia-175/#JBossmetenavantlesperformances">récemment vantée</a> pour ses performances</li><li>VFS 3, le système de fichier virtuel uniformise l&#8217;accès aux différentes ressources et est censé apporter une <a
title="vitesse accrue pour lire depuis les fichiers jars" href="http://planet.jboss.org/post/optimizing_the_jboss_microcontainer">vitesse accrue pour lire depuis les fichiers jars</a></li><li>JBoss OSGi integration</li><li>les Servlets en version 3.0, avec notamment la configuration par annotations, la modularisation grâce aux <em>webfragments</em> et l&#8217;exécution asynchrone. Plus de détails <a
title="sur notre blog" href="http://blog.xebia.fr/2009/09/15/servlet-3-0-les-3-points-marquants/">sur notre blog</a></li><li>JPA 2.0, implémenté comme il se doit par Hibernate</li><li>RESTEasy 2.0 qui propose une implémentation de la JSR 311, JAX-RS dont le principe est évoqué sur le <a
title="Touilleur Express" href="http://www.touilleur-express.fr/2008/04/25/jsr-311-jax-rs-rest-une-histoire-de-restaurant/">Touilleur Express</a></li><li>Microcontainer 2.2, un peu le coeur du systeme, qui nous est décrit dans <a
title="une srie de 6 articles" href="http://java.dzone.com/articles/a-look-inside-jboss-microconta">une série de 6 articles</a> par Ales Justin de JBoss.</li><li>Le déploiement de la console de management seulement <a
title=" la demande" href="http://community.jboss.org/wiki/On-DemandDeploymentofWebApplications">à la demande</a> pour ne pas pénaliser le temps de chargement</li><li>Les EJB 3.1 avec <a
title="toutes les fonctionnalits" href="http://en.wikipedia.org/wiki/Enterprise_JavaBean#EJB_3.1.2C_final_release_.282009-12-10.29">toutes les fonctionnalités</a> apportées par la JSR 318 (<em>Singleton Session Beans</em>, packaging WAR, EJB lights&#8230;)</li><li>La stack <a
title="JBossWS" href="http://www.jboss.org/jbossws">JBossWS</a> en versions CXF/Metro/Native</li><li>La spécification EE 6 &laquo;&nbsp;Web Profile&nbsp;&raquo; est bien sûr de la partie, permettant des développement <a
title="plus lgers" href="http://www.infoq.com/news/2009/12/is-the-web-profile-enough">plus légers</a></li><li>Weld 1.1, implémentation de référence de la JSR 299 autrement connue sous le nom de Context &amp; Dependency Injection</li></ul><p>Au final, ce n&#8217;est bien sûr pas un serveur sorti de nulle part que JBoss nous sert là. C&#8217;est un assemblage cohérent basé sur des composants éprouvés et disponibles pour la plupart depuis un moment. Il sera donc intéressant d&#8217;observer les retours des premiers utilisateurs et voir si <a
title="les prvisions de JBoss" href="http://planet.jboss.org/post/java_container_popularity_and_a_prediction">les prévisions de JBoss</a> ont des chances de se réaliser.</p><h3><a
name="Agilit"></a>Agilité</h3><h4><a
name="Commentimpliquervotreclientdan"></a>Comment impliquer votre client dans un projet ?</h4><p>c&#8217;est la question à laquelle Vikas Hazrati répond dans <a
title="cet article" href="http://www.infoq.com/news/2010/12/getting-the-customer-involved">cet article</a> sur InfoQ.</p><p>Selon Vikas, les signes du manque d&#8217;engagement de la part d&#8217;un client sont :</p><ul><li>peu ou pas de retours sur le travail effectué,</li><li>un retour sur les erreurs tardif, qui révèle généralement que le client teste ou s&#8217;intéresse au dernier moment au projet,</li><li>notre interlocuteur n&#8217;est pas le bon et nous ne sommes finalement pas en contact avec le client réel.</li></ul><p>Ce manque d&#8217;implication peut provenir d&#8217;une mauvaise formation aux processus de développement agiles ou encore d&#8217;un problème de temps ou de ressource disponible. Différentes stratégies peuvent être employées afin de remédier à ce problème d&#8217;implication :</p><ul><li>identifier un interlocuteur unique faisant l&#8217;interface avec les autres clients,</li><li>utiliser des techniques comme celle des <a
title="personas" href="http://agile2009.agilealliance.org/personas">personas</a> afin d&#8217;améliorer la compréhension mutuelle,</li><li>planifier les réunions en prenant au maximum compte des contraintes de vos clients,</li><li>motiver votre client en notant ses efforts et en l&#8217;encourageant dans cette voie,</li><li>et enfin la communication avec votre client est primordiale, lui garantissant un bonne connaissance de l&#8217;actualité du projet, même en phase de développement.</li></ul><p>L&#8217;implication des clients dans le projet est un élément important de sa réussite et elle ne doit donc pas être négligée. Rappelez-vous, la collaboration avec le client est une des quatre valeurs fondamentales du <a
title="manifeste agile" href="http://agilemanifesto.org/">manifeste agile</a>.</p><h3><a
name="Lecoindelatechnique"></a>Le coin de la  technique</h3><h4><a
name="LaJSRdevientProjectThreeTen"></a>La JSR 310 devient &laquo;&nbsp;Project ThreeTen&nbsp;&raquo;</h4><p>La JSR 310, la fameuse JSR &laquo;&nbsp;Date and Time API&nbsp;&raquo; attendue comme le messie pour remplacer l&#8217;<a
title="implémentation défaillante" href="http://www.wolkje.net/2010/01/06/java-date-and-time-api-and-jsr-310/">implémentation défaillante</a> des dates dans le JDK n&#8217;en finit pas d&#8217;être retardée. Nous vous en parlions déjà <a
title="en 2008" href="http://blog.xebia.com/2008/03/31/datetime-and-timezone-pains/">en 2008</a>, puis l&#8217;API fut planifiée avec des réserves <a
title="pour le JDK 7" href="http://blog.xebia.fr/2010/03/08/revue-de-presse-xebia-150/#OlonreparledelaJSR">pour le JDK 7</a>&#8230; Aujourd&#8217;hui, Stephen Colebourne, le <em>spec lead</em> annonce <a
title="sur son blog" href="http://www.jroller.com/scolebourne/entry/what_about_jsr_310">sur son blog</a> diverses informations.</p><ul><li>tout d&#8217;abord, il ne semble vraiment pas satisfait de la façon dont Oracle a pris en main la communauté mais il désire tout de même continuer son travail sur l&#8217;implémentation de référence.</li><li>cette implémentation de référence a d&#8217;ailleurs maintenant un nom: elle est portée par <a
title="le projet ThreeTen" href="http://sourceforge.net/apps/mediawiki/threeten/">le projet ThreeTen</a> (ThreeTen, 310&#8230; vous voyez le rapport ? <img
src='http://blog.xebia.fr/wp-includes/images/smilies/icon_wink.gif' alt=';-)' class='wp-smiley' /> ).</li><li>la cible est maintenant Java 8 et non plus Java 7. Il va falloir patienter encore.</li><li>une nouvelle mailing liste, encore bien vide, est en place et un repo SVN est disponible sur Sourceforge.</li></ul><p>Une autre particularité est aussi mentionnée et peut faire réfléchir. Stephen indique en effet se réserver la possibilité d&#8217;écrire des spécifications pour le projet ThreeTen séparées de la JSR 310. Concrètement, il parle de pouvoir fournir une terminologie commune et un comportement de plus haut niveau pour pouvoir collaborer avec d&#8217;autres langages ou librairies comme XML ou SQL. Sur le principe c&#8217;est une excellente idée: faciliter la collaboration de Java avec &laquo;&nbsp;l&#8217;extérieur&nbsp;&raquo; en prenant une base solide pour socle semble une bonne chose. Mais il ne faudrait pas que cette nouvelle perspective ne vienne retarder une fois encore le projet&#8230; Cela serait vraiment dommageable pour tous ceux qui préfèrent se reposer sur les API standard du JDK plutôt que sur une librairie tierce comme Joda Time (malgré ses qualités) et qui sont en attente de cette implémentation.</p><h4><a
name="PhoneGapuneautreapprochedudvel"></a>PhoneGap, une autre approche du développement d&#8217;application mobile</h4><p>Aujourd&#8217;hui, dans le domaine du développement mobile, le choix se résume encore entre développer une application native ou une application Web Mobile. <a
title="PhoneGap" href="http://www.phonegap.com">PhoneGap</a> est un framework qui permet le développement d&#8217;applications mobiles <strong>multi-plateformes</strong> en combinant ces deux mondes.</p><p>L&#8217;approche retenue est de développer votre application en utilisant les technologies HTML 5 et JavaScript. L&#8217;accès aux fonctionnalités de la plateforme (système de fichiers, géolocalisation, notifications, appareil photo, accéléromètre, &#8230;) s&#8217;effectue via des <a
title="APIs JavaScript" href="http://docs.phonegap.com/">APIs JavaScript</a>. Le framework prend en charge le code de liaison nécessaire, et fournit également un modèle d&#8217;application native pour chaque plateforme. Il sert entre autre à démarrer une version embarquée du navigateur web. Le navigateur est donc utilisé comme environnement d&#8217;exécution standard. Cette approche est possible car les navigateurs des plateformes iOS, Android, BlackBerry OS et WebOS sont tous basés sur le moteur WebKit. Même si l&#8217;expérience utilisateur peut varier entre les plateformes, le résultat reste dans l&#8217;ensemble cohérent.</p><p>PhoneGap est encore en phase de développement. Les supports des plateformes iOS et Android sont les plus avancés, mais il faut y ajouter les plateformes BlackBerry OS, WebOS et Symbian. C&#8217;est, au final, une alternative intéressante au développement natif pour les plateformes mobiles. La dernière version en date (0.9.3) est sortie le 23 décembre.</p> ]]></content:encoded> <wfw:commentRss>http://blog.xebia.fr/2011/01/04/revue-de-presse-xebia-192/feed/</wfw:commentRss> <slash:comments>5</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/2010/08/10/revue-de-presse-xebia-171/</link> <comments>http://blog.xebia.fr/2010/08/10/revue-de-presse-xebia-171/#comments</comments> <pubDate>Tue, 10 Aug 2010 05:39:38 +0000</pubDate> <dc:creator>Xebia France</dc:creator> <category><![CDATA[Revue de presse]]></category> <category><![CDATA[Axon]]></category> <category><![CDATA[CQRS]]></category> <category><![CDATA[Google]]></category> <category><![CDATA[Google Wave]]></category> <category><![CDATA[HonetQ]]></category> <category><![CDATA[JBoss]]></category> <category><![CDATA[JMS]]></category> <category><![CDATA[MongoDB]]></category> <category><![CDATA[Sharding]]></category> <guid
isPermaLink="false">http://blog.xebia.fr/?p=5184</guid> <description><![CDATA[La revue de presse de l’actualité Java/J2EE hebdomadaire proposée par Xebia. Actualité éditeurs / SSII Naufrage pour Google Wave Le coin de la technique Nouvelle architecture de réplication et de sharding pour MongoDB Axon, une implémentation Java du pattern CQRS L&#8217;architecture de Last.fm basée sur HornetQ Actualité éditeurs / SSII Naufrage pour Google Wave Nous [...]]]></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/08/10/revue-de-presse-xebia-171/#NaufragepourGoogleWave">Naufrage pour Google Wave</a></li></ul><p><strong>Le coin de la  technique</strong></p><ul><li><a
href="http://blog.xebia.fr/2010/08/10/revue-de-presse-xebia-171/#Nouvellearchitecturederplicati">Nouvelle architecture de réplication et de sharding pour MongoDB</a></li><li><a
href="http://blog.xebia.fr/2010/08/10/revue-de-presse-xebia-171/#AxonuneimplmentationJavadupatt">Axon, une implémentation Java du <em>pattern</em> CQRS</a></li><li><a
href="http://blog.xebia.fr/2010/08/10/revue-de-presse-xebia-171/#LarchitecturedeLastfmbasesurHo">L&#8217;architecture de Last.fm basée sur HornetQ</a></li></ul><h3><a
name="ActualitditeursSSII"></a>Actualité  éditeurs / SSII</h3><h4><a
name="NaufragepourGoogleWave"></a>Naufrage pour Google Wave</h4><p>Nous l&#8217;apprenons sur <a
title="The H" href="http://www.h-online.com/open/news/item/Google-Wave-to-dissipate-1051080.html">The H</a>, Google Wave coule et ne sera bientôt plus. Après un peu plus d&#8217;un an d&#8217;existence, Google a décidé de mettre fin à son expérimentation qui n&#8217;aura pas répondu à toutes les attentes qu&#8217;elle avait provoqué. Pourtant, nous-mêmes, <a
title="nous y avons cru" href="http://blog.xebia.fr/2009/11/20/pourquoi-tant-de-vagues-autour-de-google-wave/">nous y avons cru</a> ! Basé sur des protocoles ouverts, le système avait de quoi séduire, même si tout le monde se demandait un peu quelles allaient être les applications réelles&#8230; Las, les serveurs de Google devraient être fermés l&#8217;année prochaine. La firme annonce quand même la mise à disposition future d&#8217;outils permettant aux utilisateurs de &laquo;&nbsp;libérer leurs données de Wave&nbsp;&raquo;. Mais ne nous y trompons pas, même si l&#8217;interface graphique colorée ayant donné aux internautes un avant goût de la communication du futur disparaît, il reste quasi-certain que le mécanisme d&#8217;échange de données entre serveurs Wave devrait survivre et servir de base à d&#8217;autres projets.</p><h3><a
name="Lecoindelatechnique"></a>Le coin de la  technique</h3><h4><a
name="Nouvellearchitecturederplicati"></a>Nouvelle architecture de réplication et de sharding pour MongoDB</h4><p><a
title="MongoDB" href="http://mongodb.org/">MongoDB</a> est une base de données orientée documents très populaire ces temps-ci. 10gen l&#8217;entreprise Open Source qui en est à la source se montre très active tant sur la communication que le plan technique en apportant des améliorations régulières pour placer leur base de données NoSQL à la hauteur des ambitions qu&#8217;on lui prête.<br
/> Respectant le planning présenté mi-juin lors du <a
title="MongoDB Day à Paris" href="http://www.10gen.com/conferences/event_mongofr_21june10">MongoDB Day à Paris</a>, la version 1.6 <a
title="vient dtre finalise" href="http://blog.mongodb.org/post/908172564/mongodb-1-6-released">vient d&#8217;être finalisée</a>. Cette <em>release</em> estivale était particulièrement attendue car elle apporte des améliorations majeures sur l&#8217;architecture distribuée de MongoDB :</p><ul><li>La réplication était jusqu&#8217;alors assurée par une architecture master / slave qui souffrait d&#8217;un <em>single point of failure</em> à cause de son nœud master. MongoDB 1.6 introduit la notion de <em>replica set</em> qui est un ensemble de nœuds qui possèderont des replicas d&#8217;une même donnée. Une élection de <em>master</em> permet alors de définir un nœud unique qui sera responsable des écritures.</li><li>Le <em>sharding</em> est maintenant <em>production ready</em> dans MongoDB. L&#8217;architecture de partitionnement repose sur un ou plusieurs nœud proxy intermédiaire entre les clients et les instances MongoDB.</li></ul><p>En apportant ces améliorations, 10gen offre à MongoDB une architecture distribuée plus attrayante. Ce choix se comprend puisque MongoDB ne proposait jusqu&#8217;alors que des mécanismes peu innovants et qui poussaient beaucoup de projets à lui préférer Cassandra.</p><h4><a
name="AxonuneimplmentationJavadupatt"></a>Axon, une implémentation Java du <em>pattern</em> CQRS</h4><p>Le <em>Command Query Request Segregation</em> (CQRS) est un <em>pattern</em> architectural qui a été <a
title="formalis fin 2009" href="http://www.udidahan.com/2009/12/09/clarified-cqrs/">formalisé fin 2009</a> par Greg Young et Udi Dahan. Il repose sur l&#8217;idée de séparer le code métier selon qu&#8217;il s&#8217;appuie sur des opérations d&#8217;écriture (<em>command</em>) ou de consultation de données (<em>query</em>), plutôt que par découpage fonctionnel. Le but recherché ici est d&#8217;offrir une grande scalabilité en permettant aux lectures de s&#8217;effectuer de manière synchrone dans un cache, tandis que les requêtes d&#8217;écritures sont effectuées de manière asynchrone en mettant à jour à la fois le cache et la base de données sous-jacente.</p><p>Les développeurs Java disposent d&#8217;une implémentation Open Source de ce <em>pattern</em>, il s&#8217;agit du <em>framework</em> <a
title="Axon" href="http://code.google.com/p/axonframework/">Axon</a> (anciennement CQRS4J). Le projet est très actif et <a
title="vient diffuser" href="http://www.gridshore.nl/2010/08/08/axon-framework-0-6-released/">vient diffuser</a> une version 0.6 dont la maturité mérite de s&#8217;y attarder : gestion et persistance des évènements, intégration à Spring et gestion des transactions.<br
/> Ce <em>framework</em> reste modeste pour l&#8217;instant et ne couvre qu&#8217;un nombre limité d&#8217;environnements techniques mais à défaut de répondre à votre besoin il constituera un exemple d&#8217;implémentation intéressant à étudier.</p><h4><a
name="LarchitecturedeLastfmbasesurHo"></a>L&#8217;architecture de Last.fm basée sur HornetQ</h4><p>Tout le monde connaît <a
title="Last.fm" href="http://fr.wikipedia.org/wiki/Last.fm">Last.fm</a>, le service de <em>streaming</em> et de recommandation de musique. La compagnie a récemment changé son infrastructure de <em>streaming</em> et en a profité pour adopter <a
title="JBoss HornetQ" href="http://jboss.org/hornetq">JBoss HornetQ</a> comme serveur de <em>messaging</em>, au détriment <em>&laquo;&nbsp;d&#8217;un autre serveur open-source&nbsp;&raquo;</em> (mais nous ne saurons pas lequel !). Jeff Mesnil publie sur DZone un article <a
title="expliquant" href="http://java.dzone.com/articles/case-study-how-lastfm-uses">expliquant</a> les raisons de ce changement et la façon dont Last.fm se sert d&#8217;HornetQ.<br
/> Pour résumer simplement, les messages JMS sont générés principalement par les <em>streamers</em> pour:</p><ul><li> notifier la fin de l&#8217;écoute d&#8217;un morceau et donc faire mettre à jour la base.</li><li>permettre la déconnexion automatique d&#8217;un utilisateur connecté à un flux si un message généré par un second <em>streamer</em> indique qu&#8217;il vient de se connecter à un autre flux.</li></ul><p>Dans sa configuration de HornetQ, Last.fm a mis l&#8217;accent sur la performance:</p><ul><li> la persistance a été désactivée. Comme rapporté par nos lecteurs dans <a
title="les commentaires" href="http://blog.xebia.fr/2010/02/23/amqp-une-alternative-a-jms/#comment-21922">les commentaires</a> <a
title="dun prcdant article" href="http://blog.xebia.fr/2010/02/23/amqp-une-alternative-a-jms/#comment-22026">d&#8217;un précédant article</a> celle-ci est connue pour être consommatrice.</li><li>messages déclarés comme pré-acquittés, permettant d&#8217;éliminer des accès réseau supplémentaires.</li></ul><p>Bien sûr tout ceci est fait au détriment de la robustesse. On n&#8217;a rien sans rien ! Mais Last.fm préfère perdre des messages plutôt que d&#8217;empêcher un auditeur d&#8217;écouter sa musique: &laquo;&nbsp;Availability was more important than reliable delivery&nbsp;&raquo;. Il est à noter que pour renforcer la robustesse, les envois de messages ne sont pas faits n&#8217;importe comment: un seul thread s&#8217;occupe de la communication JMS. Il communique avec les autres threads en interne par un mécanisme de files, dans lesquelles il puise les messages à envoyer à HornetQ et dépose les messages reçus. Ces files étant limitées en mémoire, cette dernière est donc maîtrisée et comme il y a un seul thread responsable des accès JMS, il n&#8217;y a pas de risque de blocage de tout le système.</p><p>Pour continuer sur HornetQ, notons que <a
title="la tant attendue" href="http://blog.xebia.fr/2010/01/18/revue-de-presse-xebia-143/#HornetQunvritablerenouveau">la tant attendue</a> interface REST vient d&#8217;être annoncée par Bill Burke, son développeur principal, sur <a
title="le forum du broker" href="http://community.jboss.org/message/556393">le forum du broker</a>. Cette interface n&#8217;est pas encore disponible dans une version officielle de HornetQ, mais <a
title="sa documentation" href="http://jboss.org/hornetq/rest">sa documentation</a> permet d&#8217;ores et déjà de se faire une idée. Basée directement sur HTTP, elle évite de forcer l&#8217;utilisation d&#8217;une quelconque encapsulation (autre qu&#8217;applicative) des messages. Et bien sûr, on peut l&#8217;utiliser avec n&#8217;importe quel langage: REST est interopérable. La documentation <a
title="spécifique à la création de messages" href="http://docs.jboss.org/resteasy/hornetq-rest/1.0-beta-1/userguide/html/ch04.html">spécifique à la création de messages</a> permet de se faire une idée rapidement. Basée sur <a
title="RestEasy" href="http://jboss.org/resteasy">RestEasy</a>, qui fera aussi partie du futur JBoss AS 6, il y a fort à parier que cette interface fera parler d&#8217;elle et ouvrira la voie à de nouvelles utilisations du <em>broker</em>.</p> ]]></content:encoded> <wfw:commentRss>http://blog.xebia.fr/2010/08/10/revue-de-presse-xebia-171/feed/</wfw:commentRss> <slash:comments>4</slash:comments> </item> <item><title>Revue de Presse Xebia</title><link>http://blog.xebia.fr/2010/05/03/revue-de-presse-xebia-157/</link> <comments>http://blog.xebia.fr/2010/05/03/revue-de-presse-xebia-157/#comments</comments> <pubDate>Mon, 03 May 2010 22:12:56 +0000</pubDate> <dc:creator>Xebia France</dc:creator> <category><![CDATA[Revue de presse]]></category> <category><![CDATA[Android]]></category> <category><![CDATA[Cloud Computing]]></category> <category><![CDATA[JBoss]]></category> <category><![CDATA[jBPM]]></category> <category><![CDATA[JCP]]></category> <category><![CDATA[Oracle]]></category> <category><![CDATA[salesforce]]></category> <category><![CDATA[scala]]></category> <category><![CDATA[scalate]]></category> <category><![CDATA[Spring]]></category> <category><![CDATA[thread]]></category> <category><![CDATA[vmforce]]></category> <category><![CDATA[VMWare]]></category> <guid
isPermaLink="false">http://blog.xebia.fr/?p=4516</guid> <description><![CDATA[La revue de presse de l’actualité Java/J2EE hebdomadaire proposée par Xebia. Actualité éditeurs / SSII (VMware + Spring) + SalesForce = VMforce Refonte de jBPM chez JBoss Josh Bloch : le futur de Java, sous la houlette de Oracle Le coin de la technique Scalate : un moteur de template pour Scala Le multitâche sur [...]]]></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’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/05/03/revue-de-presse-xebia-157/#VMwareSpringSalesForceVMforce">(VMware + Spring) + SalesForce = VMforce</a></li><li><a
href="http://blog.xebia.fr/2010/05/03/revue-de-presse-xebia-157/#RefontedejBPMchezJBoss">Refonte de jBPM chez JBoss</a></li><li><a
href="http://blog.xebia.fr/2010/05/03/revue-de-presse-xebia-157/#JoshBlochlefuturdeJavasouslaho">Josh Bloch : le futur de Java, sous la houlette de Oracle</a></li></ul><p><strong>Le coin de la technique</strong></p><ul><li><a
href="http://blog.xebia.fr/2010/05/03/revue-de-presse-xebia-157/#ScalateunmoteurdetemplatepourS">Scalate : un moteur de <em>template</em> pour Scala</a></li><li><a
href="http://blog.xebia.fr/2010/05/03/revue-de-presse-xebia-157/#LemultitchesurAndroid">Le multitâche sur Android</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/05/03/revue-de-presse-xebia-157/#Scaladaysintgralementdisponibl">Scaladays 2010 intégralement disponible en vidéo !</a></li></ul><h4><a
name="VMwareSpringSalesForceVMforce"></a>(VMware + Spring) + SalesForce = VMforce</h4><p>Le 27 avril dernier, Paul Maritz (CEO de VMware), Marc Benioff (CEO de SalesForce) et Rod Johnson (GM de SpringSource) ont fait une <a
href="http://www.salesforce.com/video/vmforce-launch-sf.jsp" title="annonce" >annonce</a> conjointe pour le lancement d&#8217;une nouvelle solution cloud: <strong>VMforce</strong>.</p><p>Jusqu&#8217;à maintenant SalesForce était un des acteurs majeurs des SaaS (<em>Software as a Service</em>), spécialisé dans les CRM. Mais la montée en puissance de concurrents dans le cloud a poussé l&#8217;entreprise à revoir sa stratégie. Pour créer ou personnaliser des applications de SalesForce, les développeurs devaient s&#8217;appuyer exclusivement sur la plateforme de développement Force.com et sur son langage maison, l&#8217;<a
href="http://wiki.developerforce.com/index.php/Apex_Code:_The_World's_First_On-Demand_Programming_Language" title="Apex Code" >Apex Code</a>, relativement confidentiel. Il faut donc voir ce partenariat, avant tout, comme une ouverture des services de SalesForce au monde Java et en particulier celui de SpringSource.</p><p>Concernant Java, il est intéressant de constater que ce langage devient celui de référence pour toute solution cloud qui veut se populariser ou se standardiser. Il y a plus d&#8217;un an, Google avait subi de fortes pressions de la part de la communauté pour pouvoir utiliser Appengine avec Java en plus de Python. Encore plus étonnant, la solution cloud Azure de Microsoft propose également des <a
href="http://www.windowsazure4j.org/" title="ponts" >ponts</a> vers Java.</p><p>D&#8217;après <a
href="http://blog.springsource.com/2010/04/27/vmforce-spring-cloud/" title="Rod Johnson" >Rod Johnson</a> Spring sera vraiment au cœur de cette nouvelle offre. Son serveur tomcat, tcServer, constituera l&#8217;environnement d&#8217;exécution. SpringSource Tool Suite jouera un rôle important pour faciliter l&#8217;interopérabilité avec Force.com. On nous promet, entre autres, du <em>drag and drop</em> pour déployer directement des applications. Cela peut prêter à sourire mais ce genre de détail peut parfois faire basculer certains DSI, la véritable cible de cette nouvelle offre, qui cherchent les solutions les mieux intégrées aux environnements utilisés par leurs développeurs.</p><div
align="center"><img
class="size-full wp-image-4518" title="vmforceCloud" src="http://blog.xebia.fr/wp-content/uploads/2010/05/vmforceCloud.png" alt="Ecosysteme VMforce" width="500" height="385" /></div><p>De son côté Force.com apporte un accès à sa base de donnée relationnelle et à de nombreux services de rapport et de partage. De plus le développement de services orientés <em>réseau social</em>, avec des interfaces par exemple avec Twitter ou Facebook, de ponts vers les API Google ou de portage vers les téléphones mobiles, constitue une des originalités de SalesForce et un des points forts par rapport à ses concurrents.</p><p>Cette annonce peut en étonner certains qui avaient suivi <a
href="http://googleappengine.blogspot.com/2008/12/salesforcecom-announces-forcecom-for.html" title="celle de l'intégration de SalesForce dans Google Appengine" >celle de l&#8217;intégration de SalesForce dans Google AppEngine</a>, d&#8217;abord dans sa version Python puis Java. Le peu d&#8217;écho qu&#8217;elle a eu semble souligner le peu de synergies qui existent dans l&#8217;association de ces deux solutions et VMforce a, sur le papier, tout pour remplacer AppEngine comme PaaS (<em>Platform as a Service</em>) de référence. Bien sûr tout cela reste encore à confirmer car le lancement véritable est attendu cet automne (vous pouvez vous pré-inscrire sur cette <a
href="http://www.vmforce.com/" title="page" >page</a>). Est-ce que l&#8217;intégration dans STS tiendra ses promesses ? Est-ce que cette solution arrivera à convaincre les entreprises d&#8217;externaliser une partie de leur système d&#8217;information ?</p><h4><a
name="RefontedejBPMchezJBoss"></a>Refonte de jBPM chez JBoss</h4><p>Tout commença il y a un mois par <a
href="http://enterprisebpm.blogspot.com/2010/03/open-letter-to-jbpm-community.html" title="une lettre ouverte" >une lettre ouverte</a> à la communauté jBPM pour annoncer le départ de JBoss de Tom Baeyens et Joram Barrez, respectivement <em>project leader</em> et <em>core developer</em> du projet de gestion de <em>workflow</em> de l&#8217;éditeur. Quelques jours plus tard, Tom Baeyens <a
href="http://processdevelopments.blogspot.com/2010/03/alive-and-kicking.html" title="explique" >explique</a> qu&#8217;ils souhaitent développer, avec Joram Barrez, leur propre plate-forme BPM, qui supportera BPMN 2.0, adoptera une licence Apache 2.0 et sera adaptée &laquo;&nbsp;aux nouvelles infrastructures IT&nbsp;&raquo;. Le flou de cette dernière mention s&#8217;éclaircit en partie lorsque nous croisâmes Tom Baeyens à la conférence <a
href="http://blog.xebia.fr/2010/04/21/nosql-europe-tour-dhorizon-des-bases-de-donnees-nosql/">NoSQL Europe</a> de Londres ; il nous expliqua s&#8217;intéresser de près aux problématiques de persistance liées au <em>Cloud Computing</em>. Cette vision rafraichissante du BPM sera particulièrement intéressante à suivre&#8230;</p><p>Du coté de JBoss, l&#8217;affaire a entrainé un vaste projet de refonte. Ainsi Alejandro Guizar, nouveau <em>project lead</em> de jBPM, a publié deux semaines plus tard <a
href="http://enterprisebpm.blogspot.com/2010/04/announcing-jbpm-5.html" title="l'annonce du développement de jBPM 5" >l&#8217;annonce du développement de jBPM 5</a> qui <a
href="http://community.jboss.org/wiki/jBPM5RequestforComments" title="consistera" >consistera</a> en une fusion de jBPM et de <a
href="http://www.jboss.org/drools/drools-flow.html" title="Drools Flow" >Drools Flow</a>. Ceci aboutirait donc à un <em>rule driven process engine</em>, nom donné aux moteurs BPM fusionnés avec un moteur de règles. Cette vision constitue la tendance depuis quelques temps déjà sur ce marché, mais jBPM et Drools <a
href="http://blog.xebia.fr/2009/04/27/revue-de-presse-xebia-106/#VerslmergencedeRuledrivenproce" title="n'avaient pas su prendre ce virage" >n&#8217;avaient pas su prendre ce virage</a> pour cause d&#8217;avis divergents entre les deux équipes. Cet évènement semble donc avoir été l&#8217;occasion d&#8217;une remise en question globale. Mark Little, CTO de JBoss, <a
href="http://community.jboss.org/blogs/mark.little/2010/04/23/the-future-of-workflow-in-jboss" title="sexprimait" >s&#8217;exprimait</a> il y a une semaine sur l&#8217;avenir de la brique BPM de JBoss. Il reprenait ces faits en ajoutant une nouvelle importante : jBPM 4 ne deviendra pas un produit supporté par JBoss au sein de sa plate-forme commerciale SOA. Ce sera le rôle de jBPM 5.</p><p>jBPM est le moteur BPM Open Source majeur sur le marché. Ce changement de plan est donc important tant pour la communauté qui a déjà commencé à investir sur jBPM 4, sorti <a
href="http://blog.xebia.fr/2009/07/13/revue-de-presse-xebia-117/#jBPMestdisponible" title="il y a 10 mois" >il y a 10 mois</a>, que pour JBoss qui avait fortement investi dans jBPM 4. Ce dernier avait d&#8217;ailleurs connu une période de gestation particulièrement longue. Bien sûr ces investissements de part et d&#8217;autre ne sont pas perdus pour autant puisque cette nouvelle version s&#8217;appuiera pour partie sur l&#8217;existant, mais elle peut remettre en question certains choix stratégiques pour les entreprises.</p><h4><a
name="JoshBlochlefuturdeJavasouslaho"></a>Josh Bloch : le futur de Java, sous la houlette de Oracle</h4><p><a
href="http://www.infoq.com/news/2010/04/bloch_java_future" title="Pour InfoQ Josh Bloch" >Pour InfoQ, Josh Bloch</a>, l&#8217;auteur du fameux &laquo;&nbsp;Effective Java&nbsp;&raquo;, fait part de ses préoccupations au sujet du futur de Java. Tout d&#8217;abord, il constate que son évolution a ralenti ces derniers mois, pour deux raisons principales :</p><ul><li>le manque d&#8217;implication de Sun dans les travaux autour de Java 7, qui a conduit à sans cesse repousser sa date de sortie.</li><li>la confusion qui règne autour des différentes licences utilisées par le JCP, qui amène parfois des séparations étranges comme celle qui a eu lieu entre OpenJDK et Harmony. De plus, le support de certains éditeurs (Google a choisi Harmony comme base aux librairies Android) ne fait qu&#8217;ajouter à la confusion et à la discorde.</li></ul><p>Oracle, en meilleure santé financière que Sun, peut sortir le JCP de l&#8217;impasse en soutenant des réformes de fond, et en portant un regard neuf sur un certain héritage un peu &#8216;poussiéreux&#8217;. En particulier, Oracle a déjà proposé en 2007 de réformer les règles de propriété intellectuelle du JCP pour qu&#8217;elles deviennent plus permissives pour tous les composants de base (avec une licence de type Apache ou BSD).<br
/> Pour cette raison, Josh Bloch aimerait voir Oracle réclamer le bâton de commandeur qui était la propriété de Sun.</p><p>D&#8217;autre part, les statistiques montrent une baisse de l&#8217;utilisation de Java, au profit de C. Malgré cela, aucun des &laquo;&nbsp;nouveaux langages&nbsp;&raquo; (Scala, Ruby&#8230;) n&#8217;émerge suffisamment pour apparaitre dans ces statistiques et expliquer ce désamour. Cependant, ils restent des vecteurs d&#8217;innovation qu&#8217;il faut surveiller.<br
/> Et contrairement à ce que disent les statistiques, Josh Bloch ne pense que pas Java, aussi bien en tant que langage qu&#8217;en tant que plate forme, soit sur le déclin. Il voit certes un risque de déclin, mais il compte sur Oracle et sur la communauté pour l&#8217;enrayer. D&#8217;ailleurs, il ne voit pas émerger d&#8217;alternative crédible au langage et à la JVM. D&#8217;autant plus qu&#8217;Oracle ne devrait pas prendre le risque de tenter de mettre la JVM sous licence.<br
/> En ce qui concerne la fusion JRockit / Hotspot, elle est sur le papier intéressante, mais Sun n&#8217;est jamais parvenu à réaliser une telle fusion, ne serait ce que pour les JVM client et serveur. Pour le moins, ses coûts seront élevés.</p><p>Pour finir sur une note positive, Josh Bloch rappelle que Java a connu quelques succès retentissants ces derniers mois : Google Collections, Guice, les nouveaux langages de la JVM, et Android. En comptant sur des actions décisives d&#8217;Oracle, et la coopération d&#8217;une communauté élargie, le futur de java s&#8217;annonce (malgré tout ?) brillant.</p><h3><a
name="Lecoindelatechnique"></a>Le coin de la technique</h3><h4><a
name="ScalateunmoteurdetemplatepourS"></a>Scalate : un moteur de <em>template</em> pour Scala</h4><p>Voilà une bonne occasion de vous parler d&#8217;un framework qui monte dans le monde Scala, à savoir <a
href="http://github.com/scalate/scalate" title="Scalate" >Scalate</a>. James Strachan <a
href="http://macstrac.blogspot.com/2010/04/scalate-11-released.html" title="a annoncé sa sortie" >a annoncé sa sortie</a> fin de semaine dernière en <a
href="http://scalate.fusesource.org/" title="version 1.1" >version 1.1</a>. Le détail des nouveautés se trouve <a
href="http://scalate.assembla.com/spaces/scalate/milestones/191837-1-1" title="ici" >ici</a>.</p><p>Scalate, pour Scala Template Engine, est un moteur de template qui s&#8217;appuie sur Scala 2.8 et permet de générer plusieurs type de documents <em>(texte, balises&#8230;)</em>. Il est actuellement utilisable :</p><ul><li>de manière standalone,</li><li>dans des Servlets,</li><li>dans <a
href="https://jersey.dev.java.net/" title="Jersey" >Jersey</a>,</li><li>dans Play! Framework grâce au projet <a
href="http://github.com/pk11/play-scalate" title="PlayScalate" >Play-Scalate</a>,</li><li>et dans <a
href="http://camel.apache.org/scalate.html" title="Apache Camel" >Apache Camel</a>,</li><li>avec prochainement l&#8217;intégration à <a
href="https://liftweb.assembla.com/spaces/liftweb/tickets/475" title="Lift" >Lift</a>.</li></ul><p>Scalate supporte les templates de type <a
href="http://scalate.fusesource.org/documentation/ssp-reference.html" title="SSP" >SSP</a> pour Scala Server Pages dont Velocity ou bien encore JSP. Ainsi Scalate supporte <code>${ }</code>, <code>&lt;%= %&gt;</code>, <code>&lt;% %&gt;</code> ou bien encore <code>#for</code>, <code>#if</code> et <code>#{ }</code>. L&#8217;autre format géré est le <a
href="http://scalate.fusesource.org/documentation/scaml-reference.html" title="Scaml" >Scaml</a> pour Scala Markup Language qui est un dialecte <em>(<a
href="http://haml-lang.com/" title="haml" >haml</a>)</em> pour simplifier la description d&#8217;un document web. Petit exemple :</p><pre class="brush: java; title: ; notranslate">
// ssp template
&lt;p&gt;
   &lt;%= List(&quot;hi&quot;, &quot;there&quot;, &quot;reader!&quot;).mkString(&quot; &quot;) %&gt;
   ${ &quot;yo &quot;+(3+4) }
&lt;/p&gt;
// ssp rendering
&lt;p&gt;
   hi there reader!
   yo 7
&lt;/p&gt;
// scaml template
%gee
   %whiz
      Wow this is cool!
// scaml rendering
&lt;gee&gt;
   &lt;whiz&gt;
      Wow this is cool!
   &lt;/whiz&gt;
&lt;/gee&gt;
</pre><p>Il n&#8217;y a plus qu&#8217;à <a
href="http://scalate.fusesource.org/download.html" title="jouer avec" >jouer avec</a> !</p><h4><a
name="LemultitchesurAndroid"></a>Le multitâche sur Android</h4><p>Qui aurai cru il y a encore peu que nous disposerions aujourd&#8217;hui d&#8217;équipements de poche ayant les capacités de faire tourner plusieurs applications riches simultanément, en Java qui plus est, malgré sa réputation de glouton en mémoire ? Ce temps là est révolu et Android montre combien un système basé sur Java peut se montrer performant. Néanmoins, pour atteindre cet objectif, il aura fallu que Google mette au point de nombreuses techniques. C&#8217;est ce que nous explique <a
href="http://android-developers.blogspot.com/2010/04/multitasking-android-way.html" title="cet article" >cet article</a> du <em>Android Developers blog</em>, le blog Google de référence sur le sujet.<br
/> Les objectifs (simplifier la vie de l&#8217;utilisateur au maximum en supprimant la notion de &laquo;&nbsp;fermer&nbsp;&raquo; une application&#8230;) et les contraintes (pas de swap&#8230;) sont expliqués ainsi que leurs conséquences sur la gestion de la mémoire dans les applications et l&#8217;OS.</p><p>on découvre certaines spécificités qui peuvent sembler étonnantes au commun des programmeurs. ainsi, des applications qui apparaissent en cours d&#8217;exécution peuvent n&#8217;avoir en fait aucun processus en cours ! Un autre point très intrigant est que les applications sont généralement tuées brutalement ! L&#8217;astuce consiste à garder la trace des parties de l&#8217;application visibles, les <a
href="http://developer.android.com/reference/android/app/activity.html" title="activity" ><em>Activity</em></a>, pour les redémarrer avec les infos de leur dernier état si besoin. si l&#8217;utilisateur n&#8217;y voit que du feu, le programmeur expérimenté sera lui surpris par ce fonctionnement peu orthodoxe mais visiblement efficace.</p><p>L&#8217;article va ensuite plus loin en explorant la façon dont sont gérés les services, à travers les notions de <a
href="http://developer.android.com/reference/android/content/BroadcastReceiver.html" title=""Broadcast Receivers"" ><em>Broadcast Receivers</em></a> et de <a
href="http://developer.android.com/reference/android/app/Service.html" title="Services" ><em>Services</em></a>. Les  premiers permettent de  réagir ponctuellement et brièvement à des stimuli externes alors que les seconds effectuent des opérations longues mais sans garanties aucune quant à leur survie: Android peut les tuer en cas de besoin.</p><p>Rassurez-vous, tout n&#8217;est pas complètement nouveau dans Android et certains concepts restent identiques à ce que l&#8217;on connaît en Java <em>desktop</em>. Sur <a
href="www.developpez.com" title="developpez.com" >developpez.com</a> Davy Leggieri nous offre 2 bons articles: l&#8217;un sur <a
href="http://davy-leggieri.developpez.com/tutoriels/android/threads-composants-application/" title="les threads composants une application Android" >les threads composants une application Android</a> et l&#8217;autre plus précisément centré sur <a
href="http://davy-leggieri.developpez.com/tutoriels/android/ui-thread/" title="l'UI Thread" >l&#8217;UI Thread</a>. Cela rappellera des souvenirs aux développeurs <a
href="http://fr.wikipedia.org/wiki/Swing_%28Java%29" title="Swing" >Swing</a> qui, avec son <a
href="http://en.wikipedia.org/wiki/Event_dispatching_thread" title="Event Dispatch Thread" >Event Dispatch Thread</a>, impose des contraintes similaires. Les environnements changent, mais certains fondamentaux restent !</p><h3><a
name="EvnementsdenotrecommunautenFra"></a>Evènements de notre communauté en France et à l&#8217;étranger</h3><h4><a
name="Scaladaysintgralementdisponibl"></a>Scaladays 2010 intégralement disponible en vidéo !</h4><p>Si comme moi vous n&#8217;avez pas pu vous rendre au <a
href="http://days2010.scala-lang.org/" title="Scaladays 2010" >Scaladays 2010</a> de Lausanne, réjouissez-vous : toutes les vidéos sont déjà disponibles à <a
href="http://days2010.scala-lang.org/node/136" title="cette adresse" >cette adresse</a> !<br
/> Du <a
href="http://days2010.scala-lang.org/node/138/137" title="discours d'ouverture de Martin Odersky" >discours d&#8217;ouverture de Martin Odersky</a> en passant par les <a
href="http://days2010.scala-lang.org/node/138/140" title="Parallel Collections" >Parallel Collections</a> ou bien encore une session sur <a
href="http://days2010.scala-lang.org/node/138/159" title="Scala at LinkedIn" >Scala at LinkedIn</a>, redécouvrez les grands moments de cette première grosse conférence sur Scala. Les vidéos sont disponibles en basse et haute qualité et, pour les nomades, des verions <i>.mp4</i> sont téléchargeables.<br
/> Je sais déjà ce que je vais regarder dans le bus dans les prochaines semaines <img
src='http://blog.xebia.fr/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /><br
/> Et pour un petit résumé de ces deux jours, je vous renvoie vers le blog de <a
href="http://fanf42.blogspot.com/2010/04/summary-of-my-scala-days-2010.html" title="Franois" >François</a> pour un article qui ne peut que faire regretter de pas y être allé&#8230;</p> ]]></content:encoded> <wfw:commentRss>http://blog.xebia.fr/2010/05/03/revue-de-presse-xebia-157/feed/</wfw:commentRss> <slash:comments>2</slash:comments> </item> <item><title>Revue de Presse Xebia</title><link>http://blog.xebia.fr/2010/03/15/revue-de-presse-xebia-151/</link> <comments>http://blog.xebia.fr/2010/03/15/revue-de-presse-xebia-151/#comments</comments> <pubDate>Mon, 15 Mar 2010 17:43:45 +0000</pubDate> <dc:creator>Xebia France</dc:creator> <category><![CDATA[Revue de presse]]></category> <category><![CDATA[EJB]]></category> <category><![CDATA[HTML5]]></category> <category><![CDATA[JBoss]]></category> <category><![CDATA[SoapUI]]></category> <category><![CDATA[Spring]]></category> <category><![CDATA[SpringSource]]></category> <category><![CDATA[tc Server]]></category> <category><![CDATA[Tests]]></category> <guid
isPermaLink="false">http://blog.xebia.fr/?p=4198</guid> <description><![CDATA[La revue de presse de l’actualité Java/J2EE hebdomadaire proposée par Xebia. Actualité éditeurs / SSII TC Server spécial printemps Le coin de la technique Html5 en action soapUI s&#8217;enrichit du support de JMS et AMF Des tests unitaires expressifs grâce à Spock JBoss simplifie les tests dans les conteneurs EJB Evènements de notre communauté en [...]]]></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/2010/03/15/revue-de-presse-xebia-151/#TCServerspcialprintemps">TC Server spécial printemps</a></li></ul><p><strong>Le coin de la technique</strong></p><ul><li><a
href="http://blog.xebia.fr/2010/03/15/revue-de-presse-xebia-151/#Htmlenaction">Html5 en action</a></li><li><a
href="http://blog.xebia.fr/2010/03/15/revue-de-presse-xebia-151/#soapUIajoutletestdeJMSetAMF">soapUI s&#8217;enrichit du support de JMS et AMF</a></li><li><a
href="http://blog.xebia.fr/2010/03/15/revue-de-presse-xebia-151/#Destestsunitairesexpressifsgrc">Des tests unitaires expressifs grâce à Spock</a></li><li><a
href="http://blog.xebia.fr/2010/03/15/revue-de-presse-xebia-151/#JBosssimplifielestestsdanslesc">JBoss simplifie les tests dans les conteneurs EJB</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/03/15/revue-de-presse-xebia-151/#SalonSolutionsLinuxOpenSource">Salon &laquo;&nbsp;Solutions Linux Open Source&nbsp;&raquo;</a></li></ul><p><em>La revue de presse de l&#8217;actualité Java/J2EE hebdomadaire proposée par Xebia.</em></p><h3><a
name="ActualitditeursSSII"></a>Actualité éditeurs / SSII</h3><h4><a
name="TCServerspcialprintemps"></a>TC Server spécial printemps</h4><p>Plus besoin de vous présenter Spring TC Server dont nous avons déjà parlé plus d&#8217;une fois sur le blog. Pour mémoire, TC Server est un Tomcat intégré à la sauce Spring. La nouveauté de la semaine vient de l&#8217;annonce d&#8217;une édition spéciale du TC Server 2.0 pour le printemps. Le TC Server Spring Edition est <a
href="http://www.springsource.org/node/2474" title="annoncé pour Avril" >annoncé pour Avril</a> et déjà mis à disposition des développeurs via la <a
href="http://www.springsource.com/products/tcserver/devedition" title="Developer Edition" >Developer Edition</a>. L&#8217;offre TC Server se répartit donc maintenant en trois éditions différentes:</p><ul><li>L&#8217;édition <em>standard</em> qui intègre l&#8217;offre de base TC Server (Administration, Déploiement, Diagnostic par Thread et Heap dump).</li><li>L&#8217;édition <em>spring</em> ajoute à la première offre, le monitoring automatique des applications déployées.</li><li>L&#8217;édition <em>developer</em> intègre TC Server dans Spring Tool Suite pour que les développeurs puissent surveiller en temps réel les performances de leurs applications.</li></ul><p>C&#8217;est aussi l&#8217;occasion pour SpringSource de fournir une bonne intégration avec les solutions VMWare pour déployer et tester facilement sur des machines virtuelles. Pour notre bonheur à tous, SpringSource inscrit donc durablement son TC Server dans le paysage des serveurs J2EE et continue à participer activement au développement de Tomcat.</p><h3><a
name="Lecoindelatechnique"></a>Le coin de la technique</h3><h4><a
name="Htmlenaction"></a>Html5 en action</h4><p>Comme une suite logique à notre article <a
href="http://blog.xebia.fr/2010/03/02/html-5-les-nouveaux-elements/" title="HTML5, les nouveaux éléments" >HTML5, les nouveaux éléments</a>, DevelopperWorks propose un <a
href="https://www.ibm.com/developerworks/web/tutorials/wa-html5/section4.html" title="tutoriel HTML5 + CSS3" >tutoriel HTML5 + CSS3</a>. Après quelques rappels succincts sur ces deux standards, Joe Lennon propose de soumettre quelques unes de ces nouveautés à l&#8217;épreuve du feu. Un survol relativement complet, puisqu&#8217;il couvre la nouvelle structure de page, quelques nouvelles balises sémantiques, la vidéo, CSS3, les nouveaux formulaires et le <em>canvas</em>. Un complément intéressant pour tous ceux qui étaient impatients de découvrir ces nouvelles possibilités.</p><h4><a
name="soapUIajoutletestdeJMSetAMF"></a>soapUI s&#8217;enrichit du support de JMS et AMF</h4><p>Le célèbre outil de test de WebService, SoapUi, poursuit sa marche en avant, et ajoute de nouvelles cordes à son arc. <a
href="http://www.soapui.org/new_and_noteworthy_3_5.html" title="La version 35" >La version 3.5</a> offre de nouvelles fonctionnalités particulièrement utiles aux développeurs travaillant sur des architectures web complexes, en particulier le test des ressources JMS.<br
/> Les développeurs de chez EviWare n&#8217;ont pas réinventé la roue, et ont <em>seulement</em> intégré un <em>framework</em> robuste sur ce sujet, <a
href="http://www.hermesjms.org/confluence/display/HJMS/Home" title="HermesJMS" >HermesJMS</a>. A vous les joies de poster / recevoir des messages JMS (texte ou xml), de manipuler les <em>headers</em>, de scripter vos files, et surtout d&#8217;automatiser vos tests d&#8217;intégration facilement.<br
/> De manière plus anecdotique (à notre sens en tout cas), cette nouvelle version propose aussi un ensemble d&#8217;outils pour tester vos ressources JDBC.<br
/> Enfin, dernière évolution majeure que nous n&#8217;avons pas eu l&#8217;occasion de tester, mais qui semble prometteuse, la possibilité de tester vos scripts AMF (Flash et Flex).<br
/> Tous les tutoriels se trouvent dans la page de la <em>release</em> 3.5 (qui ne va bien sûr pas sans son lot de corrections de bugs).</p><h4><a
name="Destestsunitairesexpressifsgrc"></a>Des tests unitaires expressifs grâce à Spock</h4><p><a
href="http://code.google.com/p/spock/" title="Spock" >Spock</a> est une petite librairie de tests unitaires en Groovy permettant d&#8217;écrire un test sous le format spécification (le format given/when/then est aussi supporté) :</p><pre class="brush: java; title: ; notranslate">
def &quot;subscribers receive published events at least once&quot;() {
      when: publisher.send(event)
      then: (1.._) * subscriber.receive(event)
      where: event &lt;&lt; [&quot;started&quot;, &quot;paused&quot;, &quot;stopped&quot;]
    }
</pre><p>La <a
href="http://pniederw.wordpress.com/2010/03/11/whats-new-in-spock-0-4-episode-1-data-tables/" title="version 0.4" >version 0.4</a> apporte la notion de &laquo;&nbsp;Data tables&nbsp;&raquo;. On retrouve cette notion dans d&#8217;autres API (notamment <a
href="http://testng.org/doc/documentation-main.html#parameters-dataproviders" title="testNG" >testNG</a>). Cependant l&#8217;apport de Groovy rend le test vraiment très expressif :</p><pre class="brush: java; title: ; notranslate">
def &quot;maximum of two numbers&quot;() {
  expect:
  Math.max(a, b) == c
  where:
  a | b | c
  3 | 7 | 7
  5 | 4 | 5
  9 | 9 | 9
}
</pre><p>Une petite librairie sympathique à découvrir <a
href="http://code.google.com/p/spock/wiki/SpockBasics" title="ici" >ici</a>.</p><h4><a
name="JBosssimplifielestestsdanslesc"></a>JBoss simplifie les tests dans les conteneurs EJB</h4><p>JBoss vient <a
href="http://in.relation.to/14773.lace" title="d'annoncer" >d&#8217;annoncer</a> une première version alpha d&#8217;un nouveau projet baptisé <a
href="http://community.jboss.org/en/arquillian" title="Arquillian" >Arquillian</a>. Ce projet permet de simplifier l&#8217;écriture de tests unitaires qui doivent s&#8217;exécuter au sein d&#8217;un conteneur EJB. S&#8217;il est parfaitement possible de tester un <em>session bean</em> hors conteneur depuis l&#8217;arrivée de Pojos dans EJB 3.0, disposer d&#8217;un conteneur EJB permet de simplifier les injections de dépendance qui doivent être réalisées via l&#8217;annotation <code>@EJB</code> ainsi que les accès à des ressources propres au conteneur.</p><p>Conscient de cette problématique, pour laquelle l&#8217;univers Spring offre de nombreuses solutions, JBoss tente depuis plusieurs années d&#8217;apporter une réponse satisfaisante aux développeurs. Cette quête s&#8217;est engagée dès le développement des première versions de son conteneur EJB 3.0 avec le développement d&#8217;une déclinaison pouvant être démarrée depuis des tests et nommée Embeddable EJB (<a
href="http://shrubbery.mynetgear.net/wiki/Embedded_JBoss_/_Embedded_EJB3" title="renommée" >renommée</a> depuis <a
href="http://community.jboss.org/wiki/JBossEmbeddedAS" title="JBoss Embedded AS" >JBoss Embedded AS</a>) ; cette initiative avait par ailleurs permis d&#8217;embarquer un conteneur EJB 3.0 dans Tomcat. Aujourd&#8217;hui Arquillian va plus loin en proposant une API de plus haut niveau pour tester ses EJB : l&#8217;ensemble des fastidieuses tâches de démarrage du conteneur sont ainsi masquées et le développeur n&#8217;a plus qu&#8217;a décrire son besoin.</p><p>Le projet est pour le moment à un stade embryonnaire et il faudra probablement plusieurs mois avant que l&#8217;on dispose d&#8217;un ensemble cohérent pour l&#8217;utilisation au sein des projets EJB. Toutefois, le souhait affiché d&#8217;utiliser Arquillian  pour les tests internes de Seam 3 et pour les TCK de <a
href="http://blog.xebia.fr/2009/10/05/revue-de-presse-xebia-128/#WebBeansestmortLonguevieaWeld" title="Weld" >Weld</a> permet d&#8217;espérer une rapide évolution pour cette API.</p><h3><a
name="EvnementsdenotrecommunautenFra"></a>Evènements de notre communauté en France et à l&#8217;étranger</h3><h4><a
name="SalonSolutionsLinuxOpenSource"></a>Salon &laquo;&nbsp;Solutions Linux Open Source&nbsp;&raquo;</h4><p>Le salon &laquo;&nbsp;<a
href="http://www.solutionslinux.fr/" title="Solutions Linux Open Source" >Solutions Linux Open Source</a>&nbsp;&raquo; se déroulera cette semaine à la Porte de Versailles. De nombreux exposants y seront présents tels Oracle, Linagora, Alter Way, Canonical et <a
href="http://www.solutionslinux.fr/exposants_154_291_p.html" title="bien dautres" >bien d&#8217;autres</a> encore&#8230; C&#8217;est l&#8217;occasion d&#8217;assister à de nombreuses conférences dont celles qui nous semblent les plus intéressantes sont:</p><ul><li><a
href=" http://www.solutionslinux.fr/animation_4_168_169_p.html?cid=183" title="Oracle et lopen source" >Oracle et l&#8217;open source</a></li><li><a
href="http://www.solutionslinux.fr/animation_8_168_170_p.html?cid=29" title="Progiciels le logiciel libre envahit le domaine fonctionnel" >Progiciels, le logiciel libre envahit le domaine fonctionnel</a></li><li><a
href="http://www.solutionslinux.fr/animation_8_168_170_p.html?cid=30" title="Virtualisation retours sur investissement et bonnes pratiques de la virtualisation" >Virtualisation: retours sur investissement et bonnes pratiques de la virtualisation</a></li><li><a
href="http://www.solutionslinux.fr/animation_8_168_170_p.html?cid=31" title="Mobilité: smartphones, le libre prépondérant ?" >Mobilité: smartphones, le libre prépondérant ?</a></li><li><a
href="http://www.solutionslinux.fr/animation_2_168_172_p.html?cid=34" title="Dveloppement logiciel collaboratif  bonnes pratiques premiers bilans" >Développement logiciel collaboratif : bonnes pratiques, premiers bilans</a></li><li><a
href="http://www.solutionslinux.fr/animation_2_168_172_p.html?cid=35" title="Meilleures pratiques pour lintgration continue et mthodes agiles avec  Subversion Ant Maven et CruiseControl" >Meilleures pratiques pour l&#8217;intégration continue et méthodes agiles avec : Subversion, Ant, Maven et CruiseControl</a></li></ul><p>De nombreuses <a
href="http://www.solutionslinux.fr/animations_9_168_171_p.html" title="formations" >formations</a> seront aussi dispensées, mais par contre, elles sont payantes. L&#8217;an passé, c&#8217;est surtout l&#8217;omniprésence des solutions de virtualisation qui nous avait marqué. Quel sera le thème majeur du salon cette année ?</p> ]]></content:encoded> <wfw:commentRss>http://blog.xebia.fr/2010/03/15/revue-de-presse-xebia-151/feed/</wfw:commentRss> <slash:comments>1</slash:comments> </item> <item><title>Revue de Presse Xebia</title><link>http://blog.xebia.fr/2009/12/28/revue-de-presse-xebia-140/</link> <comments>http://blog.xebia.fr/2009/12/28/revue-de-presse-xebia-140/#comments</comments> <pubDate>Mon, 28 Dec 2009 19:02:30 +0000</pubDate> <dc:creator>Xebia France</dc:creator> <category><![CDATA[Revue de presse]]></category> <category><![CDATA[Cloud Computing]]></category> <category><![CDATA[EC2]]></category> <category><![CDATA[GAE]]></category> <category><![CDATA[GlassFish]]></category> <category><![CDATA[Hibernate]]></category> <category><![CDATA[IBM]]></category> <category><![CDATA[J2EE]]></category> <category><![CDATA[Java / JEE]]></category> <category><![CDATA[JBoss]]></category> <category><![CDATA[JEE]]></category> <category><![CDATA[JEE6]]></category> <category><![CDATA[JGroups]]></category> <category><![CDATA[JPA]]></category> <category><![CDATA[Spring]]></category> <category><![CDATA[Spring Security]]></category> <category><![CDATA[Sun]]></category> <guid
isPermaLink="false">http://blog.xebia.fr/?p=3665</guid> <description><![CDATA[La revue de presse de l&#8217;actualité Java/J2EE hebdomadaire proposée par Xebia. Actualité éditeurs / SSII Le meilleur de The Server Side Le coin de la technique Spring Security seulement un alignement sur Spring 3.0 ? Tour d&#8217;horizon de JBoss Infinispan JGroups à l&#8217;heure du Cloud Computing Actualité éditeurs / SSII Le meilleur de The Server [...]]]></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/12/28/revue-de-presse-xebia-140/#LemeilleurdeTheServerSide">Le meilleur de The Server Side</a></li></ul><p><strong>Le coin de la technique</strong></p><ul><li><a
href="http://blog.xebia.fr/2009/12/28/revue-de-presse-xebia-140/#SpringSecurityseulementunalign">Spring Security seulement un alignement sur Spring 3.0 ?</a></li><li><a
href="http://blog.xebia.fr/2009/12/28/revue-de-presse-xebia-140/#TourdhorizondeJBossInfinispan">Tour d&#8217;horizon de JBoss Infinispan</a></li><li><a
href="http://blog.xebia.fr/2009/12/28/revue-de-presse-xebia-140/#JGroupslheureduCloudComputing">JGroups à l&#8217;heure du Cloud Computing</a></li></ul><h3><a
name="ActualitditeursSSII"></a>Actualité éditeurs / SSII</h3><h4><a
name="LemeilleurdeTheServerSide"></a>Le meilleur de The Server Side</h4><p>Avec les fêtes vient le temps des rétrospectives. Et c&#8217;est TheServerSide qui ouvre le bal, avec son hit parade des neuf fils de discussion les plus vus en 2009. Sans surprise, on retrouve quelques stars de l&#8217;année, dont la popularité ne devrait pas faiblir en 2010 : <a
title="JavaEE 6" href="http://www.theserverside.com/news/thread.tss?thread_id=53459">JavaEE 6</a> et <a
title="Glassfish 3" href="http://www.theserverside.com/news/thread.tss?thread_id=58858">Glassfish 3</a>, la persistance (<a
title="JPA" href="http://www.theserverside.com/news/thread.tss?thread_id=53142">JPA</a>, <a
title="les caches d'Hibernate" href="http://www.theserverside.com/news/thread.tss?thread_id=53716">les caches d&#8217;Hibernate</a>, <a
title="la démarcation transactionnelle avec Spring" href="http://www.theserverside.com/news/thread.tss?thread_id=53529">la démarcation transactionnelle avec Spring</a>)&#8230; Mais aussi les buzz de l&#8217;année : <a
title="Google App Engine" href="http://www.theserverside.com/news/thread.tss?thread_id=54215">Google App Engine</a>, <a
title="les langages next-gen" href="http://www.theserverside.com/news/thread.tss?thread_id=55185">les langages next-gen</a>&#8230; On trouve ensuite un grand article communautaire, <a
title="sur ce que doit savoir un architecte applicatif" href="http://www.theserverside.com/news/thread.tss?thread_id=53819">sur ce que doit savoir un architecte applicatif</a>.<br
/> Enfin, et nous devons bien avouer qu&#8217;à la vue des évènements passés, cela prête à sourire, un très beau fil de prospective : <a
title="IBM parle de racheter Sun" href="http://www.theserverside.com/news/thread.tss?thread_id=54007">IBM parle de racheter Sun</a>.</p><p>Cette première rétrospective reflète pour nous bien les tendances de l&#8217;année passée : pas mal de grandes manœuvres chez les éditeurs, des <em>concurrents</em> à Java de plus en plus présent, un nouvelle spécification très attendue, et des frameworks incontournables qui continuent à mener la danse.</p><h3><a
name="Lecoindelatechnique"></a>Le coin de la technique</h3><h4><a
name="SpringSecurityseulementunalign"></a>Spring Security seulement un alignement sur Spring 3.0 ?</h4><p>Dans la foulée de la sortie de la version 3 de Spring Framework, c&#8217;est au tour de Spring Security de faire <a
title="son annonce" href="http://www.springsource.org/node/2271">son annonce</a>. Le point le plus marquant de cette version est l&#8217;utilisation du Spring Expression Language pour décrire les règles de contrôle d&#8217;accès qui simplifieront des vérifications simples comme <code>@PreAuthorize("#contact.name == principal.name)")</code> et surtout, couplé à des classes java transverses de sécurité, permettra d&#8217;effectuer élégamment des contrôles déclaratifs sophistiqués tels que :</p><pre class="brush: java; title: ; notranslate">
@PreAuthorize(&quot;isPhysician(#patientFile.patient)&quot;)
public void create(PatientFile patientFile);
</pre><p>Bien sûr, il faudra programmer la méthode <code>isPhysician()</code>, Spring Security ne se substituera pas au code métier de votre application, il sera juste une aide précieuse <img
src='http://blog.xebia.fr/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /> .<br
/> Nous noterons au passage que l&#8217;<em>Expression Language</em> apporte à l&#8217;<em>Aspect Oriented Programming</em> le haut niveau d&#8217;abstraction qui permet de programmer des fonctionnalités métiers transverses sans être un spécialiste de la plomberie <code>ProceedingJoinPoint</code> et autres joyeusetés. L&#8217;AOP devient alors beaucoup plus accessible pour les développeurs d&#8217;informatique de gestion.</p><p>Les autres nouveautés que nous garderons en tête : des contrôles pré et post traitement (<code>@PreAuthorize</code> et <code>@PostAuthorize</code>), la restructuration des jars similaire à celle que Spring 2.5 a connu, et une clarification des règles de redirection post authentification.</p><h4><a
name="TourdhorizondeJBossInfinispan"></a>Tour d&#8217;horizon de JBoss Infinispan</h4><p>Le projet <a
title="Infinispan" href="http://www.jboss.org/infinispan.html">Infinispan</a> a été <a
title="initié en milieu d'année 2009" href="http://blog.xebia.fr/2009/05/04/revue-de-presse-xebia-107/#JBossveutsonDataGrid">initié en milieu d&#8217;année 2009</a> chez JBoss. Il s&#8217;agit d&#8217;une évolution de <a
title="JBoss Cache" href="http://www.jboss.org/jbosscache/">JBoss Cache</a> d&#8217;un simple cache vers un DataGrid.</p><p>Dans le <a
title="dernier pisode en date de JBoss Asylum" href="http://asylum.libsyn.com/index.php?post_id=562565">dernier épisode en date de JBoss Asylum</a>, le podcast dédié à la communauté JBoss maintenu par Emmanuel Bernard et Max R Andersen, Mark Surtani, <em>leader</em> du projet Infinispan, était invité pour parler de son projet. Il a pu faire un tour d&#8217;horizon global en commençant par le lien entre JBoss Cache et Infinispan :</p><ul><li>Contrairement à JBoss Cache qui utilisait une organisation arborescente, Infinispan se base uniquement sur une structure clé-valeur à plat.</li><li>Tout comme le faisait JBoss Cache, Inifinispan utilise JGroups pour assurer la découverte de ses instances.</li><li>Une API d&#8217;adaptation permettra d&#8217;assurer la transition entre JBoss Cache et Infinispan, notamment en offrant une arborescence au dessus de la structure de base d&#8217;Infinispan. Des outils seront fournis afin de migrer les fichiers de configuration.</li></ul><p>Manik Surtani a également abordé les fonctionnalités à venir, après la finalisation de la première version, dévoilant ainsi les ambitions de positionnement de ce produit :</p><ul><li>Utilisation de Lucene pour offrir une API de requêtes puissante permettant des recherches dans le DataGrid. Plusieurs possibilités d&#8217;architecture ont été évoquées telles que la réplication d&#8217;un index complet sur l&#8217;ensemble des noeuds ou la distribution de <em>shards</em> de l&#8217;index complet sur les noeuds via l&#8217;utilisation d&#8217;un <code>InfinispanDirectory</code> pour Lucene, actuellement en cours de développement.</li><li>Intégration éventuelle avec Hibernate Search. Infinispan se substituerait à Hibernate Core et Hibernate Search lui apporterait alors la fonctionnalité de recherche.</li><li>Possibilité d&#8217;effectuer des <em>continuous requests</em> pour que les résultats d&#8217;une requête s&#8217;enrichissent au fur et a mesure de l&#8217;arrivée de données sur la grille.</li><li>API de MapReduce permettant de soumettre un <code>Callable</code> et un ensemble de clés d&#8217;objets sur lesquels doivent s&#8217;appliquer le traitement pour obtenir un <code>Future</code> représentant le résultat, à venir, après opération de réduction.</li></ul><p>La plupart des fonctionnalités évoquées sont présentes dans les produits commerciaux que sont <a
title="Oracle Coherence" href="http://www.oracle.com/technology/products/coherence/index.html">Oracle Coherence</a> ou <a
title="IBM eXtreme Scale" href="http://www.ibm.com/software/webservers/appserv/extremescale/">IBM eXtreme Scale</a>. Toutefois, de telles possibilités seraient inédites dans un produit Open Source ce qui devrait faire d&#8217;Inifinispan un produit très intéressant à suivre en 2010&#8230;</p><h4><a
name="JGroupslheureduCloudComputing"></a>JGroups à l&#8217;heure du Cloud Computing</h4><p>JGroups est un <em>framework</em> permettant la communication au sein d&#8217;un groupe de serveurs. Actuellement développé au sein de JBoss, il est à la base de nombreux <em>middlewares</em> et frameworks d&#8217;entreprise permettant un fonctionnement distribué tels que JBoss Cache ou plus récemment Infinispan.</p><p>Après un an sans mise à jour majeure, Bela Ban, <em>leader</em> du projet, <a
title="annonce la version 28" href="http://belaban.blogspot.com/2009/12/jgroups-280ga-released.html">annonce la version 2.8</a>. Outre de nombreuses évolutions améliorant la flexibilité de JGroups, un apport notable s&#8217;est glissé dans la liste : le support d&#8217;Amazon EC2. Il s&#8217;agit là d&#8217;une nouveauté emblématique de cette année 2009 qui va se conclure ; la majorité des <em>frameworks</em> cherche à afficher une compatibilité voire une synergie avec les environnements de Cloud Computing courant.<br
/> En pratique, cette intégration de JGroups à EC2 se fait par l&#8217;ajout d&#8217;un nouveau protocole de découverte de voisinage nommé S3_PING. Comme son nom l&#8217;indique, il utilise un stockage S3 commun dans lequel tous les membres d&#8217;un groupe écrivent leurs coordonnées. Ce mécanisme est particulièrement bien adapté à EC2 qui, de part la topologie réseau qu&#8217;il offre, ne permet pas le <em>multicasting</em> et n&#8217;est guère adapté aux autres protocoles de découvertes qui existaient jusqu&#8217;alors dans JGroups.</p><p>Notons tout de même que la principale nouveauté de cette version 2.8 est l&#8217;ajout du concept d&#8217;adresse logique que Bela Ban <a
title="presentait il y a quelques mois" href="http://belaban.blogspot.com/2009/02/whats-cool-about-logical-addresses.html">présentait il y a quelques mois</a>. Une adresse logique permet de découpler l&#8217;identité d&#8217;un nœud JGroups de son adresse réseau ; l&#8217;association entre adresse logique et physique est résolue lors de la découverte des nœuds. Outre le découplage offert par ce concept, ces adresses permettent également de simplifier la gestion des pertes de messages lors de la ré-incarnation d&#8217;un nœud suite a son indisponibilité temporaire.</p><p>10 ans après sa création, JGroups continue donc de se maintenir à jour et, dans la mesure où il remplit toujours parfaitement son rôle, il devrait rester présent encore des années dans plusieurs <em>middlewares</em> et <em>frameworks</em> majeurs.</p> ]]></content:encoded> <wfw:commentRss>http://blog.xebia.fr/2009/12/28/revue-de-presse-xebia-140/feed/</wfw:commentRss> <slash:comments>1</slash:comments> </item> <item><title>Revue de Presse Xebia</title><link>http://blog.xebia.fr/2009/12/07/revue-de-presse-xebia-137/</link> <comments>http://blog.xebia.fr/2009/12/07/revue-de-presse-xebia-137/#comments</comments> <pubDate>Mon, 07 Dec 2009 18:47:07 +0000</pubDate> <dc:creator>Xebia France</dc:creator> <category><![CDATA[Revue de presse]]></category> <category><![CDATA[Apache]]></category> <category><![CDATA[Camel]]></category> <category><![CDATA[DDD]]></category> <category><![CDATA[J2EE]]></category> <category><![CDATA[Java / JEE]]></category> <category><![CDATA[JBoss]]></category> <category><![CDATA[JEE]]></category> <category><![CDATA[JEE 6]]></category> <category><![CDATA[TeamCity]]></category> <guid
isPermaLink="false">http://blog.xebia.fr/?p=3510</guid> <description><![CDATA[La revue de presse de l&#8217;actualité Java/J2EE hebdomadaire proposée par Xebia. Actualité éditeurs / SSII JEE 6 commence à apparaître chez JBoss Le coin de la technique Sortie de TeamCity 5 Apache Camel continue d&#8217;évoluer Evènements de notre communauté en France et à l&#8217;étranger Suite et fin, traduction de la deuxième partie de DDD Quickly [...]]]></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/07/revue-de-presse-xebia-137/#JEEcommenceapparatrechezJBoss">JEE 6 commence à apparaître chez JBoss</a></li></ul><p><strong>Le coin de la technique</strong></p><ul><li><a
href="http://blog.xebia.fr/2009/12/07/revue-de-presse-xebia-137/#SortiedeTeamCity">Sortie de TeamCity 5</a></li><li><a
href="http://blog.xebia.fr/2009/12/07/revue-de-presse-xebia-137/#ApacheCamelcontinuedvoluer">Apache Camel continue d&#8217;évoluer</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/12/07/revue-de-presse-xebia-137/#Suiteetfintraductiondeladeuxim">Suite et fin, traduction de la deuxième partie de DDD Quickly</a></li></ul><h3><a
name="ActualitditeursSSII"></a>Actualité éditeurs / SSII</h3><h4><a
name="JEEcommenceapparatrechezJBoss"></a>JEE 6 commence à apparaître chez JBoss</h4><p>Quelques jours avant la finalisation de <a
href="https://glassfish.dev.java.net/" title="Glassfish V3" >Glassfish V3</a>, l&#8217;implémentation de référence de la nouvelle spécification JEE, <a
href="http://in.relation.to/13275.lace" title="JBoss met  disposition" >JBoss met à disposition</a> une première <em>milestone</em> de JBoss AS 6.0, le serveur d&#8217;application que l&#8217;éditeur destine à implémenter JEE 6.</p><p>Ce premier jet apporte seulement 3 des composants propres à JEE 6 :</p><ul><li><a
href="http://seamframework.org/Weld" title="Weld" >Weld</a>, un conteneur CDI implémentant la <a
href="http://www.jcp.org/en/jsr/detail?id=299" title="JSR-299 (Contexts and Dependency Injection)" >JSR-299 (Contexts and Dependency Injection)</a>.</li><li>Un moteur de validation implémentant la <a
href="http://www.jcp.org/en/jsr/detail?id=303" title="JSR-303 (Bean Validation)" >JSR-303 (Bean Validation)</a>. L&#8217;implémentation utilisée est Hibernate Validator 4.0.</li><li>Une implémentation de JSF 2. Il s&#8217;agit de l&#8217;implémentation de référence de Sun.</li></ul><p>Pourquoi ces composants en particulier ? Parce qu&#8217;il s&#8217;agit soit des composants pour lesquels JBoss est responsable de l&#8217;implémentation de référence, soit, dans le cas de JSF 2, d&#8217;une implémentation de référence empruntée à Sun. Or, ces composants sont forcément finalisés puisqu&#8217;ils seront intégrés à l&#8217;implémentation de référence de l&#8217;ensemble de la spécification JEE 6 qu&#8217;est Glassfish V3, qui sera disponible dans quelques jours (peu après la finalisation de la spécification le 10 décembre).</p><p>JBoss AS 6.0 M1 embarque Hibernate 3.5.0 beta 2, or Steve Ebersole, un des membres de l&#8217;équipe Hibernate, <a
href="http://relation.to/12696.lace" title="expliquait" >expliquait</a> que le support de JPA 2 dans cette version était encore partiel. Aucune indication n&#8217;est par contre donnée quant au statut de l&#8217;autre composant majeur de JEE 6 qu&#8217;est EJB 3.1.</p><p>Aucune <em>roadmap</em> n&#8217;est annoncée, mais il semble raisonnable de penser à une finalisation pour fin 2010. Si l&#8217;on regarde la vitesse de déploiement des serveurs Java EE 5, rares seront donc les privilégiés qui pourront utiliser Java EE 6 avant 2011 voire 2012&#8230;</p><h3><a
name="Lecoindelatechnique"></a>Le coin de la technique</h3><h4><a
name="SortiedeTeamCity"></a>Sortie de TeamCity 5</h4><p>Fin de semaine dernière est sortie la nouvelle version du serveur d&#8217;intégration continue de <a
href="http://www.jetbrains.com/index.html" title="JetBrains" >JetBrains</a> à savoir <a
href="http://www.jetbrains.com/teamcity/index.html" title="TeamCity" >TeamCity</a> <em>(via <a
href="http://jetbrains.dzone.com/announcements/jetbrains-releases-teamcity-50" title="JavaLobby" >JavaLobby</a>)</em>. Cette version 5 apporte son <a
href="http://www.jetbrains.com/teamcity/whatsnew/index.html" title="lot de nouveauts" >lot de nouveautés</a> et elles sont assez alléchantes, jugez par vous-même :</p><ul><li>support d&#8217;Amazon EC2 avec un agent de build sur le Cloud permettant de faire du build distribué,</li><li>meilleur support de maven,</li><li>templates de build <em>(préférences partagées)</em>,</li><li>intégration avec les gestionnaires de bugs <a
href="http://www.jetbrains.com/youtrack?utm_source=DZone&#038;utm_medium=Post&#038;utm_term=Release&#038;utm_campaign=YouTrack" title="YouTrack" >YouTrack</a>, <a
href="http://www.atlassian.com/software/jira/" title="Jira" >Jira</a> et <a
href="http://www.bugzilla.org/" title="Bugzilla" >Bugzilla</a>,</li><li>archivage de projets,</li><li>command line tool <em>(build sans plugin intégré à l&#8217;IDE)</em>,</li><li><em>back-up and restore</em> pour simplifier la maintenance de TeamCity,</li><li>ainsi que <a
href="http://www.jetbrains.com/teamcity/whatsnew/index.html#Many_Other_Improvements" title="plusieurs nouvelles fonctionnalits et corrections de bugs" >plusieurs nouvelles fonctionnalités et corrections de bugs</a> dont le support de Git et la compatibilité du plugin TeamCity avec IntelliJ IDEA CE.</li></ul><p>Les <a
href="http://www.jetbrains.com/teamcity/buy/index.jsp" title="licences" >licences</a> ne changent pas, <a
href="http://www.jetbrains.com/teamcity/download/index.html" title="laissezvous tenter" >laissez-vous tenter</a> !</p><h4><a
name="ApacheCamelcontinuedvoluer"></a>Apache Camel continue d&#8217;évoluer</h4><p>Claus Ibsen, un membre de l&#8217;équipe Apache Camel, <a
href="http://davsclaus.blogspot.com/2009/12/apache-camel-21-released.html" title="annonce une nouvelle version 21" >annonce une nouvelle version 2.1</a> du moteur de médiation d&#8217;Apache.</p><p>Il liste les principales nouveautés parmi lesquelles on notera un effort particulier pour apporter une gestion plus robuste des routes&nbsp;:</p><ul><li>Amélioration des messages d&#8217;erreur fournit au démarrage en cas de mauvaise définition d&#8217;une route.</li><li>Il est désormais possible de définir un ordre de démarrage pour les routes.</li><li>Il est également possible d&#8217;indiquer si une route doit être auto-démarrée.</li></ul><p>Poursuivant dans cette voie, Claus Ibsen explique son intention d&#8217;apporter un <em>graceful shutdown</em> à Camel pour la version 2.2, ce qui permettrait un arrêt de l&#8217;ESB sans perdre de messages. Cet arrêt sans perte est dors et déjà possible avec la version 2.1 mais nécessite plusieurs manipulations via JMX (arrêt des routes, puis arrêt du moteur lorsque plus aucun message n&#8217;est en cours de traitement).</p><p>James Strachan, créateur du projet, expliquait lors de Devoxx 2009 que la majorité de ses clients déployaient Camel sur Tomcat, Jetty ou ServiceMix pour bénéficier d&#8217;un environnement de <em>monitoring</em> plus riche et d&#8217;une structure plus familière pour l&#8217;administration. Ces pratiques montrent les besoins de robustesse des entreprises quant aux déploiements Camel. Ces améliorations, répondant à des problématiques réelles lors de l&#8217;utilisation de Camel pour la médiation, devraient donc être accueillies avec joie par les équipes utilisant ce <em>framework</em>.</p><h3><a
name="EvnementsdenotrecommunautenFra"></a>Evènements de notre communauté en France et à l&#8217;étranger</h3><h4><a
name="Suiteetfintraductiondeladeuxim"></a>Suite et fin, traduction de la deuxième partie de DDD Quickly</h4><p>Dans la revue de presse du 10 octobre 2009, nous avons relayé l&#8217;information de la <a
href="http://blog.xebia.fr/2009/10/19/revue-de-presse-xebia-130/#TraductiondelapremirepartiedeD" title="traduction de la premire partie de DDD Quickly" >traduction de la première partie de DDD Quickly</a>.</p><p>La traduction de la deuxième et dernière partie est terminée. <a
href="http://www.dddfrance.org/DDDViteFait" title="Ce livre" >Ce livre</a> est disponible sur le portail <a
href="http://www.dddfrance.org/" title="DDD France" >DDD France</a>.</p><p>Dans cette deuxième partie : <em>On y retrouve des techniques pour mettre en oeuvre DDD sur de gros projets impliquant plusieurs équipes, mais aussi pour refactorer un domaine et gérer sa croissance, notamment à travers la distillation et l&#8217;identification d&#8217;un Coeur de Domaine.</em> (<a
href="http://blog.infosaurus.fr/post/2009/12/06/DDD-Vite-Fait%2C-notions-avanc%C3%A9es" title="source sur le blog de Guillaume" >source sur le blog de Guillaume</a>)</p><p>Félicitations à <a
href="http://blog.infosaurus.fr/" title="Guillaume Lebur" >Guillaume Lebur</a> pour ce gros travail, et bonne lecture de <em>DDD Vite fait</em> au pied de votre arbre de Noël !</p> ]]></content:encoded> <wfw:commentRss>http://blog.xebia.fr/2009/12/07/revue-de-presse-xebia-137/feed/</wfw:commentRss> <slash:comments>2</slash:comments> </item> <item><title>Revue de Presse Xebia</title><link>http://blog.xebia.fr/2009/09/28/revue-de-presse-xebia-126/</link> <comments>http://blog.xebia.fr/2009/09/28/revue-de-presse-xebia-126/#comments</comments> <pubDate>Mon, 28 Sep 2009 16:36:38 +0000</pubDate> <dc:creator>Xebia France</dc:creator> <category><![CDATA[Revue de presse]]></category> <category><![CDATA[Chrome]]></category> <category><![CDATA[Devoxx]]></category> <category><![CDATA[IE]]></category> <category><![CDATA[J2EE]]></category> <category><![CDATA[Java / JEE]]></category> <category><![CDATA[JBoss]]></category> <category><![CDATA[JBoss Microcontainer]]></category> <category><![CDATA[Lucene]]></category> <category><![CDATA[RIA]]></category> <category><![CDATA[Tellurium]]></category> <category><![CDATA[VFS]]></category> <guid
isPermaLink="false">http://blog.xebia.fr/?p=2922</guid> <description><![CDATA[La revue de presse de l’actualité Java/J2EE hebdomadaire proposée par Xebia. Actualité éditeurs / SSII Condamnation pour non respect de licence RIA Chrome dans IE avec Google Chrome Frame Le coin de la technique Guide utilisateur de Tellurium Lucene évolue et prépare l&#8217;avenir JBoss Microcontainer et son Virtual File System Injection de dépendances en Javascript [...]]]></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/09/28/revue-de-presse-xebia-126/#Condamnationpournonrespectdeli">Condamnation pour non respect de licence</a></li></ul><p><strong>RIA</strong></p><ul><li><a
href="http://blog.xebia.fr/2009/09/28/revue-de-presse-xebia-126/#ChromedansIEavecGoogleChromeFr">Chrome dans IE avec Google Chrome Frame</a></li></ul><p><strong>Le coin de la technique</strong></p><ul><li><a
href="http://blog.xebia.fr/2009/09/28/revue-de-presse-xebia-126/#GuideutilisateurdeTellurium">Guide utilisateur de Tellurium</a></li><li><a
href="http://blog.xebia.fr/2009/09/28/revue-de-presse-xebia-126/#Lucenevolueetprparelavenir">Lucene évolue et prépare l&#8217;avenir</a></li><li><a
href="http://blog.xebia.fr/2009/09/28/revue-de-presse-xebia-126/#JBossMicrocontaineretsonVirtua">JBoss Microcontainer et son Virtual File System</a></li><li><a
href="http://blog.xebia.fr/2009/09/28/revue-de-presse-xebia-126/#InjectiondedpendancesenJavascr">Injection de dépendances en Javascript &#8230;</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/09/28/revue-de-presse-xebia-126/#Devoxxleplanningdessessionsest">Devoxx 2009 : le planning des sessions est maintenant connu</a></li><li><a
href="http://blog.xebia.fr/2009/09/28/revue-de-presse-xebia-126/#AsylumunnouveaupodcastddiJBoss">Asylum, un nouveau podcast dédié à JBoss</a></li></ul><h3><a
name="ActualitditeursSSII"></a>Actualité éditeurs / SSII</h3><h4><a
name="Condamnationpournonrespectdeli"></a>Condamnation pour non respect de licence</h4><p>Qu&#8217;arrive-t-il lorsque l&#8217;on réutilise du code open source sans se soucier de sa licence ? On se fait taper sur les doigts. C&#8217;est en effet la mésaventure qui est arrivé à la société Edu4, comme le présente l&#8217;<a
href="http://fsffrance.org/news/article2009-09-22.fr.html" title="article de la Free Software Foundation France sur laffaire" >article de la Free Software Foundation France sur l&#8217;affaire</a>.<br
/> Ayant fourni en 2000 à l&#8217;<a
href="http://www.afpa.fr/" title="AFPA" >AFPA</a> (un organisme de formation professionnelle) un logiciel basé sur VNC, Edu4 a reçu une requête de cet organisme demandant le code source du logiciel, conformément à ce qu&#8217;autorise la licence GPL.<br
/> Edu4, dans un premier temps, a refusé de fournir les sources de VNC modifiées par ses soins. Puis, à la suite d&#8217;une décision de justice de 2002, a fourni des sources ne correspondant pas à la version livrée et dans lesquelles le texte de la licence GPL de VNC avait été retiré.<br
/> Cette semaine, la cour d&#8217;Appel de Paris a reconnu Edu4 coupable.<br
/> Nous savons tous comment se passent les projets sur lesquels il y a une certaine pression et certains enjeux qui poussent à sortir des produits le plus vite possible sans mesurer toutes les conséquences. Nous ne jetterons donc pas la pierre à Edu4. Mais cette histoire permet de préciser que (1) la licence GNU GPL a bien valeur légale en France et que (2) n&#8217;importe quel utilisateur de logiciel basé sur la licence GNU GPL est en droit de réclamer les sources, et pas seulement les auteurs du code original (dans le cas présent, les auteurs de VNC n&#8217;ont pas participé au procès).</p><p>Il faut donc être bien conscient des conséquences que peut avoir la réutilisation de code open-source. Selon la licence (<a
href="http://fr.wikipedia.org/wiki/Logiciel_libre#Licences" title="article de Wikipedia sur les licences du logiciel libre" >article de Wikipedia sur les licences du logiciel libre</a>), il y a des obligations et des contraintes. Mais c&#8217;est bien là la moindre des choses pour pouvoir profiter de code déjà testé, éprouvé et amélioré par nombre de contributeurs. Cette prise de conscience est d&#8217;autant plus nécessaire que les composants open-source sont <a
href="http://www.zdnet.fr/galerie-image/0,50018840,39707056,00.htm" title="de plus en plus présents dans les SI des entreprises françaises" >de plus en plus présents dans les SI des entreprises françaises</a>. Pour un autre éclairage sur ces questions, on peut citer <a
href="http://www.itrmanager.com/articles/95161/trois-questions-posent-dsi-propos-logiciels-libres-br-matt-light-vice-president-recherche-gartner.html" title="linterview de Matt Light par ITRManager" >l&#8217;interview de Matt Light par ITRManager</a>.</p><h3><a
name="RIA"></a>RIA</h3><h4><a
name="ChromedansIEavecGoogleChromeFr"></a>Chrome dans IE avec Google Chrome Frame</h4><p>Une des sensations de la semaine dernière est l&#8217;annonce de <a
href="http://blog.chromium.org/2009/09/introducing-google-chrome-frame.html" title="Google Chrome Frame" >Google Chrome Frame</a> ou comment transformer Internet Explorer en Google Chrome.<br
/> On ne compte plus les sites ayant relayé l&#8217;information : cela passe par <a
href="http://www.infoq.com/news/2009/09/Google-Chrome-Frame" title="InfoQ" >InfoQ</a>, <a
href="http://ajaxian.com/archives/chrome-frame" title="Ajaxian" >Ajaxian</a>, <a
href="http://www.insideria.com/2009/09/google-releases-google-chrome.html" title="Inside RIA" >Inside RIA</a> ou encore <a
href="http://www.techcrunch.com/2009/09/22/google-turns-internet-explorer-into-chrome-yes-seriously/" title="TechCrunch" >TechCrunch</a>.<br
/> <a
href="http://code.google.com/intl/fr-FR/chrome/chromeframe/" title="Google Chrome Frame" >Google Chrome Frame</a> se présente sous la forme d&#8217;un plug-in pour Internet Explorer (6, 7 et 8). Le plug-in se lancera sur la balise suivante (ce qui implique donc que tous nos <code>header</code> HTML doivent être changés) :</p><pre class="brush: java; title: ; notranslate">
&lt;meta http-equiv=&quot;X-UA-Compatible&quot; content=&quot;chrome=1&quot;&gt;
</pre><p>À partir de là, 2 possibilités :</p><ul><li>Le plug-in est installé : il détecte le tag et lance le moteur de rendu de Chrome (<a
href="http://webkit.org/" title="WebKit" >WebKit</a>) dans IE</li><li>Le plug-in n&#8217;est pas installé : la page s&#8217;affiche normalement dans IE mais il est possible de rediriger l&#8217;utilisateur vers une page d&#8217;installation</li></ul><p>Les avantages sont multiples : on retiendra de nombreuses optimisations de performances Javascript, un chargement de page plus rapide mais aussi l&#8217;utilisation de HTML 5 avec le offline et les <code>canvas</code>.<br
/> Il sera alors possible, comme le rappelle <a
href="http://www.infoq.com/news/2009/09/Google-Chrome-Frame" title="InfoQ" >InfoQ</a>, pour <a
href="http://wave.google.com/" title="Google Wave" >Google Wave</a> d&#8217;offrir une expérience utilisateur complète à tous les utilisateurs d&#8217;Internet Explorer (en effet, celui-ci utilisera de nombreuses fonctionnalités de HTML 5).<br
/> Le support d&#8217;IE continuera comme le rappelle Lars Rasmussen (Team manager de Google Wave) qui insiste aussi sur le fait que les différentes versions d&#8217;IEs ralentissent l&#8217;élaboration d&#8217;applications web dîtes riches (avec des <em>quick fixes</em> à n&#8217;en plus finir pour obtenir des résultats présents out of the box chez les autres navigateurs).</p><p>Plusieurs réactions ont suivi cette annonce. On pourra retenir celle de <a
href="http://robertnyman.com/2009/09/23/google-chrome-frame-google-wave-not-supporting-any-version-of-internet-explorer/" title="Robert Nyman" >Robert Nyman</a> (par <a
href="http://ajaxian.com/archives/chrome-frame-no-one-will-care-but-it%E2%80%99s-fantastic" title="Ajaxian" >Ajaxian</a>) qui rappelle fort justement que les utilisateurs restant sur de vielles versions d&#8217;IEs sont (pour résumer grossièrement) :</p><ul><li>soit des utilisateurs qui ne savent pas ce qu&#8217;est un navigateur (et donc n&#8217;installeront jamais ce plug-in)</li><li>soit (malheureusement pour ceux qui y sont confrontés) des sociétés qui bloquent les mises à jours logicielles (il sera donc peu probable que le plug-in soit autorisé à être installé)</li></ul><p><a
href="http://ajaxian.com/archives/chrome-frame" title="Dion Almaer" >Dion Almaer</a> se pose la question de l&#8217;inversion des rôles quant à l&#8217;expérience utilisateur : est-ce au développeur de choisir (forcer ?) le renderer/navigateur à utiliser ?<br
/> En tous cas, on ne peut que saluer le travail effectué et espérer que cela aidera, ne serait-ce qu&#8217;un peu, à réduire les IE 6 de ce monde <img
src='http://blog.xebia.fr/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /></p><h3><a
name="Lecoindelatechnique"></a>Le coin de la technique</h3><h4><a
name="GuideutilisateurdeTellurium"></a>Guide utilisateur de Tellurium</h4><p><a
href="http://code.google.com/p/aost/" title="Tellurium" >Tellurium</a> nous <a
href="http://code.google.com/p/aost/wiki/announcements#The_Tellurium_User_Guide_0.6.0_is_Available_Now" title="annonce" >annonce</a> la sortie de son guide utilisateur version 0.6.0.<br
/> En 5 chapitres, celui-ci parcourt :</p><ul><li>Les concepts et fonctionnalités principaux de l&#8217;outil</li><li>Un Getting Started</li><li>Les sous-projets de Tellurium (archetype Maven, TrUMP&#8230;)</li><li>L&#8217;architecture de Tellurium</li><li>Ses APIs (DSLs, data access&#8230;)</li></ul><p>Le PDF se récupère à  cette <a
href="http://aost.googlecode.com/files/TelluriumUserGuide.0.6.0.pdf" title="url" >url</a>.<br
/> Et pour un petit aperçu du projet, je vous renvoie vers notre article sur comment <a
href="http://blog.xebia.fr/2009/04/08/ameliorer-lecriture-de-vos-tests-selenium/" title="amliorer lcriture de vos tests selenium" >améliorer l&#8217;écriture de vos tests selenium</a>.</p><h4><a
name="Lucenevolueetprparelavenir"></a>Lucene évolue et prépare l&#8217;avenir</h4><p>Le projet Apache Lucene <a
href="http://lucene.apache.org/#25+September+2009+-+Lucene+Java+2.9.0+available" title="annonce" >annonce</a> la disponibilité de la version 2.9 du célèbre <em>framework</em> de recherche d&#8217;information. La <a
href="http://lucene.apache.org/java/2_9_0/changes/Changes.html" title="liste des changements" >liste des changements</a> est conséquente.</p><p>Shalin Shekhar Mangar, <em>committer</em> sur Apache Solr, <a
href="http://shalinsays.blogspot.com/2009/04/burst-of-activity-in-lucene.html" title="faisait part" >faisait part</a> il y a quelques mois d&#8217;une activité très dense sur le projet Lucene pour préparer cette nouvelle version. Il expliquait alors que la majorité du travail était imputable au <em>near real-time search</em>, amélioration permettant de refléter très rapidement les modifications des données dans les résultats des requêtes alors que celles-ci sont habituellement rendues visibles seulement après le <em>commit</em> des changements dans l&#8217;index.</p><p>Outre cette nouvelle possibilité de recherche en <em>temps réel</em>, les principaux apports de Lucene 2.9 :</p><ul><li>Optimisations portant sur la mise en cache de segments inchangés de l&#8217;index, apportant un gain significatif de performance</li><li>Gestion plus efficace des champs numériques avec l&#8217;ajout des classes <code><a
href="http://lucene.apache.org/java/2_9_0/api/core/org/apache/lucene/document/NumericField.html" title="NumericField" >NumericField</a></code> et <code><a
href="http://lucene.apache.org/java/2_9_0/api/core/org/apache/lucene/search/NumericRangeQuery.html" title="NumericRangeQuery" >NumericRangeQuery</a></code>. Il en résulte un gain de performance sur les requêtes par intervalles</li><li>Support des requêtes géo-spaciales (module <code>contrib/spatial</code>)</li><li>Nouveaux <em>analyzers</em> (<code>PersianAnalyzer</code>, <code>ArabicAnalyzer</code>, et <code>SmartChineseAnalyser</code>)</li><li>Diverses améliorations d&#8217;API notamment sur le <code>Collector</code> / <code>Scorer</code> et le <code>QueryParser</code></li></ul><p>Par ailleurs, Lucid Imagination, une société américaine d&#8217;expertise Lucene, propose un <em>webinar</em> sur <a
href="http://www.lucidimagination.com/blog/2009/09/22/lucene29_webinar/" title="les nouveauts" >les nouveautés</a> de cette version. On y retrouve également les plans pour la version 3.0 : les changements seront majeurs puisqu&#8217;il est prévu de passer l&#8217;API à Java 5 et de supprimer les éléments précédemment dépréciés.</p><p>La documentation du projet évolue également mais reste moins fournie qu&#8217;on ne le souhaiterait et les développements avec Lucene doivent souvent être accompagnés de l&#8217;ouvrage <a
href="http://www.manning.com/hatcher2/" title="Lucene In Action" >Lucene In Action</a> paru chez Manning. Ce livre paraîtra dans <a
href="http://manning.com/hatcher3/" title="une seconde dition" >une seconde édition</a>, mise à jour pour la version 3.0 du framework, en mars 2010.</p><p>Cette activité dense de l&#8217;équipe Lucene est en rapport avec l&#8217;importance que prend ce projet dans la mise en œuvre des nombreux cas d&#8217;utilisations issus du Web moderne, tels que les recherches intelligentes et rapides, les systèmes de suggestions, et les analyses de contenu.</p><h4><a
name="JBossMicrocontaineretsonVirtua"></a>JBoss Microcontainer et son Virtual File System</h4><p>Le projet Microcontainer de JBoss est le noyau de la version 5.0 du serveur d&#8217;application de l&#8217;éditeur <a
href="http://blog.xebia.fr/2008/12/08/revue-de-presse-xebia-86/#JBossAScefutlongmaiscestparti" title="sortie en fin danne dernire" >sortie en fin d&#8217;année dernière</a>. Il remplace le Microkernel JMX qui était utilisé jusqu&#8217;alors dans les version 4.x de JBoss AS. Le choix d&#8217;un tel noyau développé en interne avait fait l&#8217;objet de quelques remarques lors de son développement puisqu&#8217;il offre des fonctionnalités très classiques telles que la gestion du cycle de vie de ses composants, l&#8217;injection de dépendances et de propriétés, et des fonctionnalités d&#8217;AOP.</p><p>Ce Microcontainer s&#8217;illustre malgré tout par son système de déploiement reposant sur une abstraction très flexible encapsulant le chargement de ressources qu&#8217;elles soient sous forme de Jar, de fichiers, ou de répertoires : le <em>Virtual File System</em>. Cette fonctionnalité très puissante est malheureusement <a
href="http://www.jboss.org/file-access/default/members/jbossmc/freezone/docs/2.0.x/userGuide/ch20.html" title="trs peu documente dans le manuel utilisateur" >très peu documentée dans le manuel utilisateur</a> du projet. Sa bonne maîtrise est pourtant souhaitable pour bien comprendre le comportement et les possibilités du déploiement d&#8217;applications dans JBoss AS 5.0 ou encore (scénario certes beaucoup moins courant) pour utiliser directement le Microcontainer dans un projet.</p><p>Ce manque de documentation est maintenant partiellement comblé grâce à Ales Justin, travaillant chez JBoss sur leur serveur d&#8217;application, qui a mis en ligne <a
href="http://java.dzone.com/news/jboss-virtual-file-system" title="un article sur VFS" >un article sur VFS</a>. Cet article fait suite à deux articles précédents sur le <a
href="http://java.dzone.com/articles/a-look-inside-jboss-microconta" title="modèle de composants" >modèle de composants</a> et <a
href="http://java.dzone.com/articles/a-look-inside-jboss-microconta-0" title="linjection de dpendances" >l&#8217;injection de dépendances</a> dans JBoss Microcontainer.</p><p>Il y présente l&#8217;architecture de VFS et les abstractions et APIs mises en œuvre. On découvre alors des interfaces très claires et on se rend compte qu&#8217;il est envisageable de développer son propre protocole pour VFS afin de permettre le chargement de ressources depuis n&#8217;importe quelle source de stockage (réseau, base de données, repository, &#8230;).</p><p>Au-delà de la compréhension de cette architecture et de son comportement standard, on retiendra donc cette possibilité d&#8217;adapter le déploiement des applications sur JBoss AS 5.x à l&#8217;infrastructure mise en place dans l&#8217;entreprise, et ce, pour un coût raisonnable.</p><p>A noter que l&#8217;auteur annonce que le prochain article portera sur le système de <em>classloading</em> du Microcontainer. A suivre donc &#8230;</p><h4><a
name="InjectiondedpendancesenJavascr"></a>Injection de dépendances en Javascript &#8230;</h4><p>Dans la série <em>pourquoi faire simple quand on peut faire compliqué</em>, à l&#8217;heure où Spring vient d&#8217;annoncer la sortie de la <a
href=" http://jira.springframework.org/secure/ReleaseNote.jspa?projectId=10040&#038;styleName=Html&#038;version=11172" title="version 3-RC1" >version 3-RC1</a> de son framework, à l&#8217;heure où Google sort son nouveau framework web <a
href="http://www.infoq.com/news/2009/09/google-sitebricks" title="sitebricks" >sitebricks</a> basé sur <a
href="http://code.google.com/p/google-guice/" title="Google Guice" >Google Guice</a>, son framework d&#8217;injection de dépendances, pourquoi ne pas abandonner tout cela et gérer vous-même l&#8217;injection des dépendances de votre application Java en &#8230; Javascript ! C&#8217;est ce que nous propose <a
href="http://tuxychandru.blogspot.com/2009/08/using-javascript-as-di-container-in.html" title="lauteur de cet article" >l&#8217;auteur de cet article</a>.</p><p>S&#8217;il est clair que vous n&#8217;allez pas jeter votre framework préféré dés la lecture de ce billet, cette solution<br
/> a tout de même le mérite, en plus d&#8217;être originale, d&#8217;utiliser uniquement les fonctions du JDK : <a
href="http://java.sun.com/javase/6/docs/technotes/guides/scripting/programmer_guide/index.html" title="Scripting API" >Scripting API</a> + <a
href="http://java.sun.com/j2se/1.4.2/docs/api/java/lang/reflect/Proxy.html" title="proxy dynamique" >proxy dynamique</a>.</p><h3><a
name="EvnementsdenotrecommunautenFra"></a>Evènements de notre communauté en France et à l&#8217;étranger</h3><h4><a
name="Devoxxleplanningdessessionsest"></a>Devoxx 2009 : le planning des sessions est maintenant connu</h4><p><a
href="http://www.devoxx.com/" title="Devoxx" >Devoxx</a> (anciennement JavaPolis) est la première conférence Java au niveau européen et la seconde au niveau mondial, après JavaOne. L&#8217;édition 2009 se déroulera du 16 au 20 novembre et devrait, cette année encore, réunir plus de 3000 personnes.</p><p>Le <a
href="http://www.devoxx.com/display/DV09/Schedule" title="planning des sessions" >planning des sessions</a> est maintenant connu, ce qui permet d&#8217;observer les tendances du moment. On dégage ainsi une présence marquée du Cloud Computing, de JDK 7 et des langages alternatifs pour la JVM, notamment Scala.</p><p>On peut également noter quelques sessions particulièrement alléchantes telles que :</p><ul><li>Le keynote de Steven Harris (Oracle, <em>Product Development</em> &#038; <em>Server Technologies</em>)</li><li>Le keynote d&#8217;Ivar Jacobson</li><li><a
href="http://www.devoxx.com/display/DV09/Distributed+Programming+the+Google+Way" title="Distributed Programming the Google Way" >Distributed Programming the Google Way</a> par Gregor Hohpe (l&#8217;auteur de <a
href="http://www.informit.com/store/product.aspx?isbn=0321200683" title="Enterprise Integration Patterns" >Enterprise Integration Patterns</a>), qui présentera les technologies mises au point par Google (MapReduce, GFS, Sawzall, Chubby, Protocol Buffers, &#8230;) pour rendre leurs applications distribuées optimales et surtout réalisables</li><li><a
href="http://www.devoxx.com/pages/viewpage.action?pageId=2753089" title="The Modular Java Platform  Project Jigsaw" >The Modular Java Platform &#038; Project Jigsaw</a> par Mark Reinold, qui permettra de faire le point sur cette technologie clé du JDK 7 qui est encore peu documentée.</li><li><a
href="http://www.devoxx.com/display/DV09/Maven3" title="Maven 3" >Maven 3</a> par Jason van Zyl (créateur de Maven)</li></ul><p>En outre, pour ceux qui n&#8217;auraient pu assister à la <a
href="http://www.parisjug.org/xwiki/bin/view/Meeting/20090113" title="présentation de JEE 6" >présentation de JEE 6</a> par Antonio Goncalves au ParisJUG en début d&#8217;année, ou qui souhaiteraient être au fait des dernières évolutions, il présentera de nouveau <a
href="http://www.devoxx.com/display/DV09/The+Java+EE+6++Platform" title="une session sur ce sujet" >une session sur ce sujet</a> à Devoxx.</p><p>L&#8217;édition 2009 s&#8217;annonce donc aussi riche que les précédentes, ce qui laisse présager que, comme les années passées, les places seront toutes vendues 1 ou 2 semaines avant le début de la conférence, alors ne tardez pas à vous inscrire si vous êtes intéressés !</p><h4><a
name="AsylumunnouveaupodcastddiJBoss"></a>Asylum, un nouveau podcast dédié à JBoss</h4><p><a
href="http://asylum.libsyn.com/" title="JBoss Community Asylum" >JBoss Community Asylum</a> est un nouveau <em>podcast</em> créé par Max R. Andersen (JBoss Tools), Emmanuel Bernard (Hibernate), et Michael Neale (Drools) dont le contenu sera entièrement centré sur l&#8217;actualité et les informations relatives à la communauté JBoss.</p><p>Le premier épisode est en ligne et revient sur la conférence JBoss World et les nouveautés qui y ont été présentées, notamment :</p><ul><li><a
href="http://blog.xebia.fr/2009/05/04/revue-de-presse-xebia-107/#JBossveutsonDataGrid" title="Infinispan" >Infinispan</a>, une évolution majeure de JBoss Cache</li><li><a
href="http://blog.xebia.fr/2009/09/21/revue-de-presse-xebia-127/#LinitiativeRESTfaitdbat" title="REST" >REST-*</a>, un ensemble de spécifications de services pour REST</li><li><a
href="http://www.jboss.org/gatein" title="GateIn" >GateIn</a>, le nouveau portail issu du <a
href="http://blog.xebia.fr/2009/06/15/revue-de-presse-xebia-113/#JBosseteXofusionnentleurssolut" title="partenariat entre JBoss et eXo" >partenariat entre JBoss et eXo</a></li><li><a
href="http://torquebox.org/" title="TorqueBox" >TorqueBox</a>, un conteneur d&#8217;applications Ruby On Rails pour JBoss AS</li><li><a
href="http://blog.xebia.fr/2009/08/31/revue-de-presse-xebia-124/#JBossHornetQ" title="HornetQ" >HornetQ</a>, la nouvelle version de JBoss Messaging</li><li><a
href="http://www.jboss.org/community/wiki/ShrinkWrap" title="Shrinkwrap" >Shrinkwrap</a>, une API d&#8217;assemblage d&#8217;archives applicatives Java</li></ul><p>Pour rappel, Emmanuel Bernard participe également à un <em>podcast</em> en français, <a
href="http://lescastcodeurs.com" title="les Cast Codeurs" >les Cast Codeurs</a>, dont le dernier épisode en date est <a
href="http://lescastcodeurs.com/2009/09/les-cast-codeurs-podcast-episode-9-tout-le-monde-rachete-tout-le-monde/" title="disponible depuis hier" >disponible depuis hier</a>.</p> ]]></content:encoded> <wfw:commentRss>http://blog.xebia.fr/2009/09/28/revue-de-presse-xebia-126/feed/</wfw:commentRss> <slash:comments>1</slash:comments> </item> <item><title>Revue de Presse Xebia</title><link>http://blog.xebia.fr/2009/08/31/revue-de-presse-xebia-124/</link> <comments>http://blog.xebia.fr/2009/08/31/revue-de-presse-xebia-124/#comments</comments> <pubDate>Mon, 31 Aug 2009 16:13:33 +0000</pubDate> <dc:creator>Xebia France</dc:creator> <category><![CDATA[Revue de presse]]></category> <category><![CDATA[BlazeMonster]]></category> <category><![CDATA[Eclipse RCP]]></category> <category><![CDATA[Gartner]]></category> <category><![CDATA[HornetQ]]></category> <category><![CDATA[J2EE]]></category> <category><![CDATA[Java / JEE]]></category> <category><![CDATA[JBoss]]></category> <category><![CDATA[jdk-7]]></category> <category><![CDATA[RIA]]></category> <category><![CDATA[TestSwarm]]></category> <guid
isPermaLink="false">http://blog.xebia.fr/?p=2734</guid> <description><![CDATA[La revue de presse de l’actualité Java/J2EE hebdomadaire proposée par Xebia. Architecture Gartner adopte le pragmatisme avec l&#8217;Architecture Émergente Actualité éditeurs / SSII JBoss HornetQ RIA BlazeMonster Le coin de la technique Liste finale des évolutions du langage Java apportées par le JDK 7 Fin d&#8217;Eclipse RCP, place à&#8230; TestSwarm Architecture Gartner adopte le pragmatisme [...]]]></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>Architecture</strong></p><ul><li><a
href="http://blog.xebia.fr/2009/08/31/revue-de-presse-xebia-124/#Gartneradoptelepragmatismeavec">Gartner adopte le pragmatisme avec l&#8217;Architecture Émergente</a></li></ul><p><strong>Actualité éditeurs / SSII</strong></p><ul><li><a
href="http://blog.xebia.fr/2009/08/31/revue-de-presse-xebia-124/#JBossHornetQ">JBoss HornetQ</a></li></ul><p><strong>RIA</strong></p><ul><li><a
href="http://blog.xebia.fr/2009/08/31/revue-de-presse-xebia-124/#BlazeMonster">BlazeMonster</a></li></ul><p><strong>Le coin de la technique</strong></p><ul><li><a
href="http://blog.xebia.fr/2009/08/31/revue-de-presse-xebia-124/#Listefinaledesvolutionsdulanga">Liste finale des évolutions du langage Java apportées par le JDK 7</a></li><li><a
href="http://blog.xebia.fr/2009/08/31/revue-de-presse-xebia-124/#FindEclipseRCPplace">Fin d&#8217;Eclipse RCP, place à&#8230;</a></li><li><a
href="http://blog.xebia.fr/2009/08/31/revue-de-presse-xebia-124/#TestSwarm">TestSwarm</a></li></ul><h3><a
name="Architecture"></a>Architecture</h3><h4><a
name="Gartneradoptelepragmatismeavec"></a>Gartner adopte le pragmatisme avec l&#8217;Architecture Émergente</h4><p>Gartner nous livre un plaidoyer pour la pragmatisme avec <a
href="http://www.infoq.com/news/2009/08/Emergent-Architecture" title="Emergent Architecture" >Emergent Architecture</a>. La formulation est parfois compliquée mais on se réjouira de trouver la responsabilisation des équipes sur le terrain et des Architectes d&#8217;Entreprise évangélistes de lignes directrices. Pour reprendre une expression chère au Lean Manufacturing, &laquo;&nbsp;Empower the People&nbsp;&raquo; <img
src='http://blog.xebia.fr/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /> :</p><ol><li><strong>Non déterminisme</strong> &#8211; Dans le passé, les architectes d&#8217;entreprise prenaient des décisions centralisées qui s&#8217;appliquaient à tous. Dans une architecture émergente, ces architectes d&#8217;entreprise doivent au contraire décentraliser la prise de décisions pour permettre l&#8217;innovation.</li><li><strong>Acteurs autonomes</strong> &#8211; Les architectes d&#8217;entreprise ne peuvent plus contrôler tous les aspects de l&#8217;architecture comme ils le faisaient auparavant ; ils doivent désormais reconnaître l&#8217;étendue et la variété du SI ; ils doivent déléguer le contrôle aux équipes sur le terrain.</li><li><strong>Limiter les contraintes aux lignes directrices</strong> &#8211; Jusqu&#8217;à présent, les architectes d&#8217;entreprise ont fourni des spécifications détaillées de tous les aspects de l&#8217;architecture ; ils doivent désormais limiter leurs prescriptions aux lignes directrices et de permettre le choix.</li><li><strong>Acteurs orientés objectif</strong> &#8211; Auparavant, les seuls objectifs qui comptaient étaient les objectifs de l&#8217;entreprise mais cela s&#8217;est maintenant déplacé et chaque acteur agit dans ses propres intérêt. Il ne faut pas pour autant oublier les lignes directrices.</li><li><strong>Influences locales</strong>: Les acteurs sont influencés par des interactions locales et des informations limitées. Les feedbacks au sein de leur sphère de communication modifie leur comportement. Aucun acteur individuel ne possède la vision globale d&#8217;un système émergent. Les architectes d&#8217;entreprise doivent intensifier leur travail coordonner et de transmission de l&#8217;information.</li><li><strong>Systèmes dynamiques et adaptatifs</strong>: le système (les différents acteurs et leur environnement)  changent avec le temps. Les architectes d&#8217;entreprise doivent définir les pourtours des systèmes émergents et ajuster en fonction des changements.</li><li><strong>Environnement aux ressources limitées</strong>: L&#8217;abondance, les budgets illimités, ne permet pas de créer une architecture émergente ; c&#8217;est au contraire la rareté des moyens qui permet une architecture émergente.</li></ol><h3><a
name="ActualitditeursSSII"></a>Actualité éditeurs / SSII</h3><h4><a
name="JBossHornetQ"></a>JBoss HornetQ</h4><p>Après 2 ans de développement, le projet JBoss Messaging 2.0 sort enfin dans les bacs sous le nom HornetQ. Ce Message Oriented Middleware n&#8217;est pas une évolution de son prédécesseur qui continue d&#8217;exister dans sa version 1.0, mais belle et bien une réécriture (presque) intégrale. Redhat nous le vend comme un MoM opensource, multi-protocol, embarquable, haute performance, réparti, et asynchrone.<br
/> HornetQ peut-être utilisé en standalone ou bien embarqué dans un serveur d&#8217;application JBoss AS par exemple. Chose appréciable, HornetQ est léger, il dépend uniquement du JDK (5 minimum) pour être complètement fonctionnel.<br
/> Dans sa présentation, Redhat nous annonce que le projet est facile d&#8217;utilisation avec une documentation déjà très complète et la bagatelle de 65 exemples de codes sources. <a
href="http://www.jboss.org/community/wiki/GettingstartedwithHornetQinlessthanfiveminutes" title="Il est mme possible de dmarrer en moins de 5 minutes" >Il est même possible de démarrer en moins de 5 minutes</a>.<br
/> HornetQ bénéficie d&#8217;une conception orientée Pojo qui lui permet d&#8217;être utilisé directement dans Spring ou Guice. La performance a fait l&#8217;objet d&#8217;une attention importante, avec un <a
href="http://hornetq.sourceforge.net/docs/hornetq-2.0.0.BETA5/user-manual/en/html/persistence.html" title="journal haute performance" >journal haute performance</a> et <a
href="http://jboss.org/netty/" title="JBoss Netty" >JBoss Netty</a> pour la scalabilité.<br
/> JBoss nous livre une <a
href="http://www.jboss.org/community/wiki/HornetQFeatures" title="liste sans fin des fonctionnalits embarques" >liste sans fin des fonctionnalités embarquées</a> parmi lesquels on retiendra:</p><ul><li>JMS 1.1</li><li>JTA</li><li>Adaptateur JCA</li></ul><p>Enfin, l&#8217;editeur annonce orienter ses développements vers le support d&#8217;API RestFull qu&#8217;il voit comme le futur du cloud computing. Redhat souhaite donc pousser la porte des clouds privé en tentant de s&#8217;imposer comme le provider de message incontournable dans le nuage.</p><ul><li><a
href="http://jboss.org/hornetq/" title="Site du projet" >Site du projet</a></li><li><a
href="http://www.jboss.org/community/wiki/HornetQ" title="Wiki" >Wiki</a></li></ul><h3><a
name="RIA"></a>RIA</h3><h4><a
name="BlazeMonster"></a>BlazeMonster</h4><p><a
href="http://sujitreddyg.wordpress.com/blazemonster/" title="BlazeMonster" >BlazeMonster</a> vient de sortir dans sa deuxième version. Pour rappel cet outil, basée sur la technologie AIR, permet le support et l&#8217;aide à la génération de code pour consommer/exposer des services Java en tant que service Remote pour BlazeDS ou LCDS (LiveCycle Data Services).<br
/> Parmi les supports, nous avons entre autre :</p><ul><li>Génération des fichiers de configurations : déclarations des services, channels..</li><li>Génération du code appelant le service Remote</li><li>Génération des beans ActionScript (Value Object)</li><li>Visualisation des réponses des services Remote</li></ul><p>Dans cette deuxième version, <a
href="http://sujitreddyg.wordpress.com/blazemonster/" title="BlazeMonster" >BlazeMonster</a> intègre le support de <a
href="http://www.springsource.org/spring-flex" title="Spring BlazeDS" >Spring BlazeDS</a>, permettant la génération de services Remote en utilisant cette librairie. Je vous invite à jeter un coup d&#8217;œil sur les autres corrections et évolutions apportées à ce projet <a
href="http://sujitreddyg.wordpress.com/2009/08/26/blazemonster-v2-with-support-for-spring-blazeds/" title="ici" >ici</a>.<br
/> Facile d&#8217;utilisation, ce projet permet de copier/coller des morceaux de code dans votre application, facilitant le développement.<br
/> Enfin, à travers ce projet nous voyons, une fois de plus, l&#8217;engouement que les technologies Flex et BlazeDS remportent. Peut être pouvons nous espérer l&#8217;intégration de ce type d&#8217;outil dans le Flash Builder 4. Alors messieurs d&#8217;Adobe, qu&#8217;attendez vous ?</p><h3><a
name="Lecoindelatechnique"></a>Le coin de la technique</h3><h4><a
name="Listefinaledesvolutionsdulanga"></a>Liste finale des évolutions du langage Java apportées par le JDK 7</h4><p>En début d&#8217;année, Sun <a
href="http://blog.xebia.fr/2009/03/16/revue-de-presse-xebia-100/#OpenJdkProjectCoinproposezvosv" title="a initié" >a initié</a> le <a
href="http://openjdk.java.net/projects/coin/" title="Project Coin" >Project Coin</a>, un sous-projet d&#8217;OpenJDK visant à recueillir les propositions d&#8217;évolutions du langage Java pour le JDK 7 prévu pour début 2010. Les soumissions ont été nombreuses et Joseph D. Darcy, <em>leader</em> du projet, informait régulièrement la communauté sur l&#8217;avancement du processus de sélection. C&#8217;est maintenant la liste finale des évolutions <a
href="http://blogs.sun.com/darcy/entry/project_coin_final_five" title="quil annonce" >qu&#8217;il annonce</a>. Sauf problème de planning, il s&#8217;agit donc là de ce que le langage Java sera dans JDK 7 :</p><ul><li>Clause <code>switch</code> utilisable sur les <code>String</code>.</li><li><a
href="http://mail.openjdk.java.net/pipermail/coin-dev/2009-February/000011.html" title="Gestion automatique des resources" >Gestion automatique des resources</a>. Cette évolution vise à simplifier la gestion de la fermeture des flux ou autre ressources par l&#8217;utilisation d&#8217;une clause <code>try</code> spécifique pour les objets implémentant l&#8217;interface <code>Disposable</code> introduite dans le JDK pour l&#8217;occasion.</li><li><a
href="http://mail.openjdk.java.net/pipermail/coin-dev/2009-February/000009.html" title="Infrence de type amliore" >Inférence de type améliorée</a> pour la création d&#8217;objets génériques grâce à une syntaxe du type <code>List&lt;String&gt; list = new ArrayList<>()</code>.</li><li>Evolution de la gestion des <em>warnings</em> pour l&#8217;utilisation des <em>generics</em> dans des <em>varargs</em>.</li><li><a
href="http://mail.openjdk.java.net/pipermail/coin-dev/2009-March/000929.html" title="Autorisation de la notation binaire" >Autorisation de la notation binaire</a> pour les entiers comme en C/C++ et <a
href="http://mail.openjdk.java.net/pipermail/coin-dev/2009-April/001628.html" title="possibilit de placer des underscores" >possibilité de placer des underscores</a> dans les nombres pour en simplifier la relecture tel que <code>long creditCardNumber = 1234_5678_9012_3456L</code></li><li><a
href="http://mail.openjdk.java.net/pipermail/coin-dev/2009-March/001108.html" title="Accès en lecture et écriture aux valeurs des collections Java" >Accès en lecture et écriture aux valeurs des collections Java</a> par la notation <code><a
href="" title="" ></a></code> utilisé jusqu&#8217;alors uniquement pour les tableaux.</li></ul><p>On est loin de la liste d&#8217;évolutions très audacieuses initialement prévue pour JDK 7, mais les évolutions finalement retenues ont l&#8217;avantage d&#8217;être réalistes en terme de temps d&#8217;implémentation, tout en apportant un confort supplémentaire au quotidien pour les développeurs Java.</p><p>Rémi Forax, très au fait des développements sur l&#8217;OpenJDK, <a
href="http://weblogs.java.net/blog/forax/archive/2009/08/29/seven-small-languages-changes-will-be-jdk7" title="propose dailleurs son analyse" >propose d&#8217;ailleurs son analyse</a> des tâches restant à accomplir et de leur complexité pour chacune des évolutions.</p><h4><a
name="FindEclipseRCPplace"></a>Fin d&#8217;Eclipse RCP, place à&#8230;</h4><p>Après <a
href="http://blog.xebia.fr/2009/07/20/revue-de-presse-xebia-118/#FindeJavaRebelplace" title="Java Rebel" >Java Rebel</a>, c&#8217;est Eclipse RCP qui se trouve sur la voie du <a
href="http://eclipse.dzone.com/articles/renaming-eclipse-rcp-%e2%80%93-vote" title="changement de nom" >changement de nom</a>.<br
/> Cette fois-ci, ce n&#8217;est pas pour une raison de marque déposée mais tout simplement, <a
href="http://eclipse.dzone.com/articles/renaming-eclipse-rcp-%e2%80%93-vote" title="dixit lauteur" >dixit l&#8217;auteur</a>, parce que ce nom est <em>horrible</em> <img
src='http://blog.xebia.fr/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /> .<br
/> Un vote est organisé avec tous les noms remontés par la communauté Eclipse depuis 3 mois.<br
/> Alors, <em>Aurora</em>, <em>Montage</em> ou <em>Tangram</em>, c&#8217;est à vous de voter ! Et ça se passe sur cette <a
href="http://www.surveymonkey.com/s.aspx?sm=D9ZYFUQdiRI4b2kNPE7Rwg_3d_3d" title="page" >page</a>.</p><h4><a
name="TestSwarm"></a>TestSwarm</h4><p><a
href="http://ejohn.org/blog/test-swarm-alpha-open/" title="John Resig" >John Resig</a>, créateur de <a
href="http://jquery.com/" title="jQuery" >jQuery</a>, nous annonce que <a
href="http://testswarm.com/" title="Test Swarm" >Test Swarm</a> est maintenant ouvert au public (par <a
href="http://ajaxian.com/archives/testswarm-crowdsource-your-continuous-tests-for-javascript" title="ajaxian" >ajaxian</a>).</p><p>Test Swarm permet de tester le code Javascript sur différents navigateurs de différentes plateformes de manières continues. A l&#8217;origine utilisé pour jQuery, il est désormais possible de tester son propre code Javascript, moyennant 8 steps d&#8217;installation <a
href="http://wiki.github.com/jeresig/testswarm" title="paragraphe Setting Up Your Own Swarm" >paragraphe Setting Up Your Own Swarm</a>. Les tests (jobs) peuvent être lancés à chaque commits (SVN ou Git) ou bien en appelant une URL spécifique. Les résultats des tests sont résumés dans un <a
href="http://farm4.static.flickr.com/3500/3723002475_d628e85afb.jpg" title="tableau" >tableau</a> avec une colonne pour chaque navigateur/plateforme. Il est possible de rester au niveau projet mais on peut affiner l&#8217;affichage au niveau commit voir au niveau de chaque fichier js de tests. Côté couleur, les tests vert se sont bien passés, les rouges contiennent au moins une erreur, les noirs ont au moins une erreur critiques et les gris sous en cours/en attente. Des logs sont disponibles pour chaque <em>run</em> de tests et permettent de voir ceux qui ne seraient pas passés.</p><p>Les frameworks de tests unitaires Javascript gérés (bien d&#8217;autres suivront) sont pour l&#8217;instant :</p><ul><li>QUnit (jQuery)</li><li>UnitTestJS (Prototype)</li><li>JSSpec (MooTools)</li><li>JSUnit</li><li>Selenium</li><li>Dojo Objective Harness</li></ul><p>Une <a
href="http://www.vimeo.com/6281121" title="vido de type quick tour" >vidéo de type quick tour</a> nous donne un bon aperçu  du site. Plusieurs directions sont possible concernant la <em>roadmap</em> du produit dont l&#8217;intégration à l&#8217;IDE, tests sur encore plus de browser&#8230; Un produit à suivre.</p> ]]></content:encoded> <wfw:commentRss>http://blog.xebia.fr/2009/08/31/revue-de-presse-xebia-124/feed/</wfw:commentRss> <slash:comments>3</slash:comments> </item> <item><title>Revue de Presse Xebia</title><link>http://blog.xebia.fr/2009/08/10/revue-de-presse-xebia-121/</link> <comments>http://blog.xebia.fr/2009/08/10/revue-de-presse-xebia-121/#comments</comments> <pubDate>Mon, 10 Aug 2009 16:08:43 +0000</pubDate> <dc:creator>Xebia France</dc:creator> <category><![CDATA[Revue de presse]]></category> <category><![CDATA[Eclipse]]></category> <category><![CDATA[J2EE]]></category> <category><![CDATA[Java / JEE]]></category> <category><![CDATA[JavaCampParis]]></category> <category><![CDATA[JBoss]]></category> <category><![CDATA[JSR-299]]></category> <category><![CDATA[JSR-330]]></category> <category><![CDATA[Spring]]></category> <category><![CDATA[SpringSource Tool Suite]]></category> <guid
isPermaLink="false">http://blog.xebia.fr/?p=2616</guid> <description><![CDATA[La revue de presse de l’actualité Java/J2EE hebdomadaire proposée par Xebia. Actualité éditeurs / SSII Fin officielle de la guerre des JSR d&#8217;injection de dépendances Le coin de la technique SpringSource Tool Suite 2.1.0 JBoss vous aide à manipuler vos annotations Eclipse 3.6 M1 Evènements de notre communauté en France et à l&#8217;étranger JavaCampParis en [...]]]></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/08/10/revue-de-presse-xebia-121/#FinofficielledelaguerredesJSRd">Fin officielle de la guerre des JSR d&#8217;injection de dépendances</a></li></ul><p><strong>Le coin de la technique</strong></p><ul><li><a
href="http://blog.xebia.fr/2009/08/10/revue-de-presse-xebia-121/#SpringSourceToolSuite">SpringSource Tool Suite 2.1.0</a></li><li><a
href="http://blog.xebia.fr/2009/08/10/revue-de-presse-xebia-121/#JBossvousaidemanipulervosannot">JBoss vous aide à manipuler vos annotations</a></li><li><a
href="http://blog.xebia.fr/2009/08/10/revue-de-presse-xebia-121/#EclipseM">Eclipse 3.6 M1</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/08/10/revue-de-presse-xebia-121/#JavaCampParisenpleinair">JavaCampParis en plein air !</a></li></ul><h3><a
name="ActualitditeursSSII"></a>Actualité éditeurs / SSII</h3><h4><a
name="FinofficielledelaguerredesJSRd"></a>Fin officielle de la guerre des JSR d&#8217;injection de dépendances</h4><p>Nous en parlions <a
href="http://blog.xebia.fr/2009/08/03/revue-de-presse-xebia-120/#Avancementdesspcificationsetim" title="dès la semaine dernière" >dès la semaine dernière</a> (grâce aux informations fournies par les <a
href="http://lescastcodeurs.com/2009/08/les-cast-codeurs-podcast-episode-7-le-dsl-et-ses-amantes/" title="Cast Codeurs" >Cast Codeurs</a>), la <a
href="http://blog.xebia.fr/2009/05/11/inject-standardisation-de-linjection-de-dependances/" title="rivalit JSR299  JSR330" >rivalité JSR-299 / JSR-330</a>, portant sur l&#8217;injection de dépendances, débouche sur une harmonisation des deux JSR.<br
/> Roberto Chinnici, leader de la spécification Java EE 6, <a
href="http://weblogs.java.net/blog/robc/archive/2009/08/dependency_inje.html" title="lannonce sur son blog" >l&#8217;annonce sur son blog</a>. Les deux JSR seront intégrées à la spécification JEE 6.</p><ul><li>la JSR 299 (dite &laquo;&nbsp;Web Beans&nbsp;&raquo;) intègrera les annotations proposées par la JSR 330.</li><li>la JSR 330 (dite &laquo;&nbsp;@Inject&nbsp;&raquo;) intègre, dès aujourd&#8217;hui en draft, les objectifs de la JSR 299</li></ul><p>L&#8217;équipe en charge de la JSR 330 a fait d&#8217;importants efforts sur le planning pour que celle ci puisse être intégrée à JEE6 : early draft d&#8217;ores et déjà <a
href="http://jcp.org/aboutJava/communityprocess/edr/jsr330/index.html" title="disponible" >disponible</a>, et navigation à travers les différentes étapes du processus du JCP accélérée.<br
/> Cela aura un impact mineur sur la finalisation de la spécification Java EE 6 (estimé entre 4 et 6 semaines). Celle ci devrait donc être disponible en version finale en novembre.</p><h3><a
name="Lecoindelatechnique"></a>Le coin de la technique</h3><h4><a
name="SpringSourceToolSuite"></a>SpringSource Tool Suite 2.1.0</h4><p>Quelques mois après l&#8217;annonce de la <a
href="http://blog.springsource.com/2009/05/07/springsource-tool-suite-now-free/" title="gratuité de STS ou SpringSource Tool Suite" >gratuité de STS ou SpringSource Tool Suite</a>, le produit sort fin de semaine dernière en <a
href="http://blog.springsource.com/2009/08/06/springsource-tool-suite-210-now-available/" title="version 210 GA" >version 2.1.0 GA</a>.</p><p>Côté packaging, on a le choix entre une version d&#8217;eclipse 3.4 ou 3.5, les 2 étant disponibles sous Windows, Mac et Linux. La suite inclut les dernières versions de tc Server et dm Server ainsi que Roo. Une autre release contenant le plugin Groovy est aussi disponible (uniquement en 3.5).</p><p>Comme le signale <a
href="http://blog.springsource.com/author/cdupuis/" title="Christian Dupuis" >Christian Dupuis</a>, la liste des nouveautés est assez <a
href="http://www.springsource.com/files/uploads/all/pdf_files/product/STS-new_and_noteworthy-2.1.0.RELEASE.pdf" title="consquente" >conséquente</a>. On retiendra plus particulièrement :</p><ul><li>Support des milestones Spring 3.0 (@Configuration, @Bean, validation XML&#8230;)</li><li>Support des milestones de SpringSource dm Server 2.0</li><li>Déploiement sur les plateformes virtuels de type EC2 ou VMWare Lab Manager</li><li>Amélioration des performances de l&#8217;IDE et réduction de l&#8217;empreinte mémoire</li><li>Et plusieurs corrections de bugs (cf. la <a
href="https://issuetracker.springsource.com/secure/ReleaseNote.jspa?version=10183&#038;styleName=Html&#038;projectId=10010&#038;Create=Create" title="release notes du Jira" >release notes du Jira</a>)</li></ul><p>L&#8217;équipe travaille déjà sur la prochaine version 2.2.0 avec dans les tuyaux :</p><ul><li>Intégration du support Spring 3.0 pour le développement d&#8217;application RESTful</li><li>Support de Grails</li><li>Support de dm Server 2.0</li></ul><p>Téléchargement sur le site de <a
href="http://www.springsource.com/products/springsource-tool-suite-download" title="SpringSource" >SpringSource</a> après avoir rempli le formulaire d&#8217;accord.</p><h4><a
name="JBossvousaidemanipulervosannot"></a>JBoss vous aide à manipuler vos annotations</h4><p>Début 2008, Bill Burke (<em>project lead</em> de JBoss RestEasy) présentait une petite librairie Java très pratique nommée <a
href="http://scannotation.sourceforge.net/" title="Scannotation" >Scannotation</a> permettant de scanner les annotations présentes dans les classes d&#8217;un <em>package</em> donné. Il <a
href="http://bill.burkecentral.com/2008/01/14/scanning-java-annotations-at-runtime/" title="expliquait alors le besoin rel" >expliquait alors le besoin réel</a> pour un tel <em>framework</em> par le fait qu&#8217;en standard, cette découverte de classes annotées n&#8217;est possible que par un coûteux mécanisme d&#8217;introspection nécessitant le chargement dans la JVM de l&#8217;ensemble des classes scannées (induisant donc une consommation de mémoire <em>PermGen</em> excessive puisque toutes les classes concernées n&#8217;auraient pas forcément été chargées lors de l&#8217;exécution de l&#8217;application).</p><p>JBoss <a
href="http://in.relation.to/12078.lace" title="présente maintenant" >présente maintenant</a> un framework remplissant le même rôle et nommé JBoss Annotations, prévu pour être intégré aux différents projets de l&#8217;éditeur. Il vous permettra ainsi de constituer une base de données des annotations présentes sur l&#8217;ensemble des classes que vous aurez sélectionnées pour analyse, que vous pourrez ainsi facilement interroger. La documentation et la javadoc de JBoss Annotations sont pour le moment uniquement disponibles dans <a
href="http://sourceforge.net/projects/jboss" title="larchive de distribution" >l&#8217;archive de distribution</a> du projet.</p><h4><a
name="EclipseM"></a>Eclipse 3.6 M1</h4><p>Quelques semaines après la <a
href="http://blog.xebia.fr/2009/06/29/revue-de-presse-xebia-115/#SortiedEclipseGalileo" title="sortie fin juin d'eclipse 3.5 galileo" >sortie fin juin d&#8217;eclipse 3.5 galileo</a>, voici venir la première milestone de la prochaine version de l&#8217;IDE à savoir eclipse 3.6 helios (par le <a
href="http://keulkeul.blogspot.com/2009/08/eclipse-36-m1-est-disponible.html" title="blog de keulkeul" >blog de keulkeul</a>).</p><p>Au menu des <a
href="http://download.eclipse.org/eclipse/downloads/drops/S-3.6M1-200908061400/eclipse-news-M1.html" title="nouveauts" >nouveautés</a> :</p><ul><li>Regroupement des licences dans le <em>wizard</em> d&#8217;installation</li><li>Ajout d&#8217;un <em>Footer</em> customisable pour l&#8217;aide</li><li><em>Content assist</em> et <em>Hover Pop-Up</em> redimensionnable sous Linux</li><li>Amélioration d&#8217;<em>Extract Method</em> au niveau de <code>continue</code> et de retours multiples</li><li><em>Export All</em> pour les <em>Formatters</em></li><li>Nouvelles entrées de menu (<em>Remove Nodes</em> dans <em>Call Hierarchy</em>, <em>Open Implementation</em>&#8230;)</li></ul><p>Early adopters, c&#8217;est <a
href="http://download.eclipse.org/eclipse/downloads/drops/S-3.6M1-200908061400/index.php" title="par ici" >par ici</a> que ça se passe !</p><h3><a
name="EvnementsdenotrecommunautenFra"></a>Evènements de notre communauté en France et à l&#8217;étranger</h3><h4><a
name="JavaCampParisenpleinair"></a>JavaCampParis en plein air !</h4><p>Fort du succès des précédentes rencontres, le JavaCamp Paris organise une nouvelle session le 27 août dans un format très original puisqu&#8217;elle se tiendra en plein air, au Jardin des Tuileries.</p><p>Pour rappel, le principe des JavaCamp repose sur la constitution de groupes de discussion improvisés échangeant des informations et des idées sur des sujets décidés en début de session.</p><p>Si cette expérience vous intéresse, n&#8217;hésitez pas à vous inscrire sur le <a
href="http://barcamp.org/JavaCampParis5" title="wiki du JavaCamp Paris 5" >wiki du JavaCamp Paris 5</a>.</p> ]]></content:encoded> <wfw:commentRss>http://blog.xebia.fr/2009/08/10/revue-de-presse-xebia-121/feed/</wfw:commentRss> <slash:comments>0</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/15/revue-de-presse-xebia-113/</link> <comments>http://blog.xebia.fr/2009/06/15/revue-de-presse-xebia-113/#comments</comments> <pubDate>Mon, 15 Jun 2009 16:07:13 +0000</pubDate> <dc:creator>Xebia France</dc:creator> <category><![CDATA[Revue de presse]]></category> <category><![CDATA[AjaxSwing]]></category> <category><![CDATA[Cloud Computing]]></category> <category><![CDATA[Coherence]]></category> <category><![CDATA[eXo]]></category> <category><![CDATA[Gigaspace]]></category> <category><![CDATA[Hadoop]]></category> <category><![CDATA[J2EE]]></category> <category><![CDATA[Java / JEE]]></category> <category><![CDATA[JBoss]]></category> <category><![CDATA[JBoss Messaging]]></category> <category><![CDATA[RIA]]></category> <category><![CDATA[SoapUI]]></category> <category><![CDATA[Yahoo!]]></category> <guid
isPermaLink="false">http://blog.xebia.fr/?p=2214</guid> <description><![CDATA[La revue de presse de l’actualité Java/J2EE hebdomadaire proposée par Xebia. Actualité éditeurs / SSII Yahoo! distribue Hadoop JBoss et eXo fusionnent leurs solutions de Portlets Refonte de JBoss Messaging RIA AjaxSwing 2.4 Le coin de la technique SoapUI 3.0 se prépare Comparaison Gigaspace &#8211; Coherence L&#8217;invocation dynamique pour Java se concrétise Evènements de notre [...]]]></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’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/06/15/revue-de-presse-xebia-113/#YahoodistribueHadoop">Yahoo! distribue Hadoop</a></li><li><a
href="http://blog.xebia.fr/2009/06/15/revue-de-presse-xebia-113/#JBosseteXofusionnentleurssolut">JBoss et eXo fusionnent leurs solutions de Portlets</a></li><li><a
href="http://blog.xebia.fr/2009/06/15/revue-de-presse-xebia-113/#RefontedeJBossMessaging">Refonte de JBoss Messaging</a></li></ul><p><strong>RIA</strong></p><ul><li><a
href="http://blog.xebia.fr/2009/06/15/revue-de-presse-xebia-113/#AjaxSwing">AjaxSwing 2.4</a></li></ul><p><strong>Le coin de la technique</strong></p><ul><li><a
href="http://blog.xebia.fr/2009/06/15/revue-de-presse-xebia-113/#SoapUIseprpare">SoapUI 3.0 se prépare</a></li><li><a
href="http://blog.xebia.fr/2009/06/15/revue-de-presse-xebia-113/#ComparaisonGigaspaceCoherence">Comparaison Gigaspace &#8211; Coherence</a></li><li><a
href="http://blog.xebia.fr/2009/06/15/revue-de-presse-xebia-113/#LinvocationdynamiquepourJavase">L&#8217;invocation dynamique pour Java se concrétise</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/15/revue-de-presse-xebia-113/#RetoursurleCloudCamp">Retour sur le CloudCamp</a></li></ul><h3><a
name="ActualitditeursSSII"></a>Actualité éditeurs / SSII</h3><h4><a
name="YahoodistribueHadoop"></a>Yahoo! distribue Hadoop</h4><p>Yahoo! <a
title="a annoncé" href="http://finance.yahoo.com/news/Yahoo-Raises-Commitment-to-bw-15490453.html?.v=1">a annoncé</a> la disponibilité de <a
title="leur propre distribution du projet Hadoop" href="http://developer.yahoo.net/hadoop/">leur propre distribution du projet Hadoop</a>. Répondant à une demande de la communauté qui souhaitait avoir accès aux modifications effectuées par Yahoo! en interne, cette distribution est basée sur la dernière version du <a
title="projet Hadoop" href="http://hadoop.apache.org">projet Hadoop</a> disponible auprès de la fondation Apache.</p><p>Avec <a
title="13 committers sur les 22" href="http://hadoop.apache.org/core/credits.html">13 <em>committers</em> sur les 22</a> que compte au total Hadoop, Yahoo! porte largement ce projet dont <a
title="la popularit crot rapidement" href="http://blog.xebia.fr/2009/04/06/revue-de-presse-xebia-103/#AmazonlancesonserviceElasticMa">la popularité croît rapidement</a>. Dans un contexte où Google, son concurrent direct, affirme fortement sa présence dans le domaine du calcul distribué et sur le très convoité bien qu&#8217;émergeant marché du Cloud Computing, le projet Hadoop constitue une belle vitrine technologique pour Yahoo!.</p><p>Souhaitant couper court aux inévitables accusations de tentative de <em>fork</em> ou de prise de contrôle du projet <a
title="qui nont pas tardes  arriver" href="http://themindstorms.blogspot.com/2009/06/is-it-apache-hadoop-or-yahoo-hadoop.html">qui n&#8217;ont pas tardées à arriver</a>, Yahoo! précise sur la page d&#8217;accueil de sa distribution que l&#8217;ensemble des patchs apportés par cette dernière ont déjà été contribués à Apache mais ne sont pas encore apparus dans une version stable.</p><h4><a
name="JBosseteXofusionnentleurssolut"></a>JBoss et eXo fusionnent leurs solutions de Portlets</h4><p>JBoss <a
title="a annonc" href="http://press.redhat.com/2009/06/10/jboss-org-community-grows/">a annoncé</a> la constitution d&#8217;un partenariat avec eXo qui va donner lieu à la fusion de leur solutions de Portlets respectives : JBoss Portal et eXo Portal. C&#8217;est assez logiquement la solution de JBoss qui survivra à cette fusion.</p><p>En pratique, le portail résultant proposera les spécificités suivantes aux utilisateurs :</p><ul><li>L&#8217;expertise de JBoss sur son moteur de Portlet qui était plus abouti que la solution d&#8217;eXo en terme de performance et de modularité.</li><li>L&#8217;interface utilisateur d&#8217;eXo Portal ainsi que les possibilités d&#8217;administration confortables qu&#8217;il apportait.</li><li>Le support des Portlets 2.0 telles que définies par la <a
title="JSR286" href="http://www.jcp.org/en/jsr/detail?id=286">JSR-286</a>. Les deux portails supportaient déjà cette spécification finalisée il y a un an.</li><li>Les deux entreprises seront a priori à même de proposer du support sur JBoss Portal</li></ul><p>Cette information a été relayée par le <a
title="Touilleur" href="http://www.touilleur-express.fr/2009/06/10/le-portail-dexoplatform-et-jboss-portal-fusionnent/">Touilleur</a>, et <a
title="Janus Boye propose une analyse des impacts" href="http://www.jboye.com/blogpost/exo-portal-and-jboss-portal-join-forces/">Janus Boye propose une analyse des impacts</a> de cette fusion pour les clients actuels de l&#8217;une des deux solutions existantes.</p><h4><a
name="RefontedeJBossMessaging"></a>Refonte de JBoss Messaging</h4><p>JBoss Messaging est une brique importante de la plate-forme entreprise de JBoss. Après avoir entrepris une ambitieuse refonte de son serveur d&#8217;application, l&#8217;éditeur réitère l&#8217;opération avec son middleware de messages. JBoss Messaging 2.0 vient en effet d&#8217;être <a
title="mis à disposition en version beta" href="http://www.jboss.org/jbossmessaging/downloads/">mis à disposition en version beta</a>. Tim Fox, <em>project lead</em> de Messaging, <a
title="prcise" href="http://www.theserverside.com/news/thread.tss?thread_id=54886#309853">précise</a> que cette nouvelle version ne réutilise que 5 % du code de son prédécesseur. Parmi les nouveautés, on notera en particulier :</p><ul><li>Embarquable dans n&#8217;importe quel type d&#8217;application et intégrable facilement à JBoss MicroContainer ou à d&#8217;autre framework d&#8217;injection de dépendances (Spring ?)</li><li>Stockage performant des informations de journalisation</li><li>Stockage JDBC s&#8217;appuyant sur Hibernate</li><li>Support des messages de grosse taille</li><li>Moteur NIO supportant TCP, SSL, HTTP et APR</li></ul><p>Il est intéressant de noter que JBoss Messaging 2.0 s&#8217;appuiera sur un moteur NIO basé sur <a
title="Apache Mina" href="http://mina.apache.org/">Apache Mina</a>. Ce choix est inattendu, dans le mesure où JBoss publie <a
title="Netty" href="http://www.jboss.org/netty/">Netty</a>, un framework concurrent de Mina créé il y a un an par Trustin Lee, alors <em>committer</em> sur le projet Mina. Le framework NIO d&#8217;Apache bénéficiant d&#8217;une plus grande maturité et d&#8217;un support APR aura probablement eu raison du corporatisme.</p><p>Par ailleurs, le support d&#8217;AMQP, STOMP et REST devrait arriver d&#8217;ici la version finale 2.0 selon Tim Fox. Ces technologies de transports constituent un attrait stratégique important : <a
title="AMQP dispose d'un fort potentiel" href="http://blog.xebia.fr/2008/08/19/revue-de-presse-xebia-70/#AMQPlavenirdesMiddlewareOrient">AMQP dispose d&#8217;un fort potentiel</a> en tant que protocole standard de transport de messages M2M, <a
title="STOMP" href="http://en.wikipedia.org/wiki/Streaming_Text_Orientated_Messaging_Protocol">STOMP</a> assure la compatibilité avec d&#8217;autres <em>middlewares</em> de messages, et REST permet de <a
title="s'aligner sur ActiveMQ" href="http://activemq.apache.org/restful-queue.html">s&#8217;aligner sur ActiveMQ</a> et d&#8217;offrir un accès Web Service au MOM non sans rappeler <a
title="Amazon Simple Queue Service" href="http://aws.amazon.com/sqs/">Amazon Simple Queue Service</a>.</p><h3><a
name="RIA"></a>RIA</h3><h4><a
name="AjaxSwing"></a>AjaxSwing 2.4</h4><p>Un projet qui fait beaucoup de bruit en ce moment, avec entre autres une présentation / démo à <a
title="Java One" href="http://eclipsesource.com/blogs/2009/06/01/java-one-good-looking-apps-with-rap/?dzref=188895">Java One</a>, c&#8217;est <a
title="Eclipse RAP" href="http://www.eclipse.org/rap/">Eclipse RAP</a>. Pour résumer, un projet de type RAP sera très similaire à un projet RCP, à la grosse différence que la cible ne sera pas le <em>desktop</em> mais le <em>browser</em>. Cela veut dire que l&#8217;on continue à développer en SWT like (RWT) avec toutes les compétences acquises pour le développement d&#8217;un client lourd mais qu&#8217;on obtiendra au final un client léger.</p><p>Mais qu&#8217;en est-il pour <a
title="Swing" href="http://fr.wikipedia.org/wiki/Swing_(Java)">Swing</a> ? C&#8217;est du côté de chez <a
title="TSS" href="http://www.theserverside.com/news/thread.tss?thread_id=54844">TSS</a> que l&#8217;on apprend la release 2.4 d&#8217;un projet faisant le pont entre Swing et HTML : <a
title="AjaxSwing" href="http://www.creamtec.com/products/ajaxswing/solutions/convert_swing_to_ajax.html">AjaxSwing</a>.</p><p>L&#8217;outil convertira votre application Swing en application HTML / Javascript au <em>runtime</em> (à l&#8217;inverse de GWT qui le fait à la compilation). Aucune modification spécifique ni connaissance particulière n&#8217;est demandée par AjaxSwing : le code est en pur Java / Swing. Que du bonheur <img
src='http://blog.xebia.fr/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> Reste maintenant à voir sur un projet d&#8217;envergure si tout se fait réellement sans coup de tournevis particulier&#8230;</p><p>Pour les nouveautés de cette 2.4, on note :</p><ul><li>Amélioration mémoire (vidage du buffer entre les requêtes)</li><li>Meilleur support des <em>mouse listeners</em></li><li>Amélioration de composants (<code>FileOpenDialog</code>, <code>JTable cells</code>&#8230;)</li><li>Meilleures performances (<code>regexp</code>, communication serveur&#8230;)</li><li>Plusieurs corrections de bugs</li></ul><p>Plusieurs démos sont <a
title="disponibles" href="http://www.creamtec.com/products/ajaxswing/demos.html">disponibles</a> avec des applications en Java Web Start et les mêmes en Ajax. Et bien sûr un lien vers les pages incontournables : <a
title="licences" href="http://www.creamtec.com/products/ajaxswing/prices.html">licences</a> et <a
title="tlchargement" href="http://www.creamtec.com/products/ajaxswing/install/index.html">téléchargement</a>.</p><h3><a
name="Lecoindelatechnique"></a>Le coin de la technique</h3><h4><a
name="SoapUIseprpare"></a>SoapUI 3.0 se prépare</h4><p>Eviware relaie via <a
title="The ServerSide" href="http://www.theserverside.com/news/thread.tss?thread_id=54726">The ServerSide</a>, l&#8217;annonce de la sortie en version 3.0beta de SoapUi, l&#8217;outil graphique pour manipuler des WebServices.<br
/> Après l&#8217;ajout  de la gestion de services REST, ce nouvel opus continue sur la même voie pour faciliter encore leurs manipulations :</p><ul><li>A partir des différentes requêtes et réponses, l&#8217;outil génère un schéma XML de validation/<a
title="WADL" href="http://en.wikipedia.org/wiki/Web_Application_Description_Language">WADL</a> des flux et ce même si le contenu échangé n&#8217;est pas du XML (par exemple JSON ou HTML)</li><li>Ajout du support des opérations OPTIONS et TRACE</li><li>Montée de version de la spécification WADL.</li><li>Comme pour le taux de couverture de test des opérations d&#8217;un WSDL, il est maintenant possible d&#8217;avoir le même calcul sur les ressources, méthodes et paramètres REST (accessible seulement pour la version pro).</li></ul><p>De plus, cette nouvelle version comporte entre autres les fonctionnalités suivantes :</p><ul><li>Support de JavaScript : dorénavant, en plus de groovy, il possible d&#8217;utiliser du JavaScript comme langage de script</li><li>L&#8217;outil WS-I utilisé pour calculer son niveau de conformité WS-I Basic Profile est maintenant packagé avec SoapUI</li><li>Le navigateur de composant est amélioré pour permettre la vision de réponse HTML et REST au contenu complexe (ex : FLASH, SVG, Images&#8230;)</li></ul><p>A ceci s&#8217;ajoute la correction de bugs (voir <a
title="la realease note complte" href="http://www.soapui.org/new_and_noteworthy_3_0.html">la realease note complète</a>). SoapUi se positionne encore plus comme l&#8217;outil incontournable pour manipuler WebServices et Services REST.<br
/> Bientôt sur notre blog une série d&#8217;article présentant les principales fonctionnalités de l&#8217;outil.</p><h4><a
name="ComparaisonGigaspaceCoherence"></a>Comparaison Gigaspace &#8211; Coherence</h4><p>Gojko Adzic (<a
title="via TheServerSide" href="http://www.theserverside.com/news/thread.tss?thread_id=54903">via TheServerSide</a>) propose sur <a
title="son blog une intressante comparaison" href="http://gojko.net/2009/06/01/oracle-coherence-vs-gigaspaces-xap/">son blog une intéressante comparaison</a> entre deux des produits phares du DataGrid, Oracle Coherence et Gigaspace XAP (dommage d&#8217;avoir laissé de coté IBM eXtrem Scale).<br
/> Cette comparaison porte sur cinq points :</p><ul><li>Cache de données : match nul, les fonctionnalités des deux produits sont quasi identiques.</li><li>Processing : Gigaspace possède un modèle de processing <em>orienté évènements</em> et offre un bonne intégration de Spring Transaction. Coherence est plus limité.</li><li>Déploiement : Gigaspace se positionne en remplacement des serveurs d&#8217;applications, et possède donc des mécanismes de déploiement comparables, ce que Coherence ne propose pas. D&#8217;un autre coté, le produit d&#8217;Oracle offre un mécanisme de sérialisation qui autorise plusieurs version d&#8217;une même classe à être déployées sur une grille.</li><li>Scaling : Coherence offre un scaling dynamique (à la hausse comme à la baisse) là où Gigaspace ne fonctionne qu&#8217;avec un nombre de nœuds données.</li><li>Persistance : là encore, les fonctionnalités offertes sont très comparables</li></ul><p>Et comme d&#8217;habitude dans ce genre de comparaison, pas de vainqueur, pas de vaincu, seulement deux produits qui répondent à des besoins différents :</p><ul><li><strong>Gigaspace XAP</strong>, plus apte à remplacer des serveurs d&#8217;applications et réaliser du calcul distribué. Le modèle de processing est plus flexible et plus riche que celui de Coherence</li><li><strong>Coherence</strong>, très performant dans les grilles passives (lecture seulement), car il scale dynamiquement, offre une topologie de données flexible et possède de riches librairies clientes.</li></ul><p>Pour résumer, cet article propose une très bonne grille d&#8217;aide à la décision.</p><h4><a
name="LinvocationdynamiquepourJavase"></a>L&#8217;invocation dynamique pour Java se concrétise</h4><p>Rémi Forax, l&#8217;un des 4 <em>committers</em> d&#8217;<a
title="ASM" href="http://asm.ow2.org">ASM</a>, un framework de manipulation de bytecode <a
title="largement utilisé dans le monde Java" href="http://asm.ow2.org/users.html">largement utilisé dans le monde Java</a>, vient <a
title="dannoncer" href="http://weblogs.java.net/blog/forax/archive/2009/06/asm_now_support_1.html">d&#8217;annoncer</a> que leur dernière version supportait l&#8217;instruction <code>invokedynamic</code>.</p><p>Cette instruction est définie par la <a
title="JSR-292" href="http://www.jcp.org/en/jsr/detail?id=292">JSR-292</a> et vise à simplifier l&#8217;invocation de méthodes non connues lors de la compilation, ce qui constitue une des principales capacités des langages dynamiques tels que Groovy. Un gain significatif de performance est donc attendu pour ces langages, puisqu&#8217;ils n&#8217;auront alors plus à s&#8217;appuyer sur un coûteux mécanisme d&#8217;introspection ou de <a
title="gnration dynamique de bytecode dinvocation" href="http://groovy.codehaus.org/Groovy+Method+Invokation">génération dynamique de bytecode d&#8217;invocation</a>.</p><p>Au delà des langages dynamiques qui sont les premiers destinataires de cette JSR, de nombreux frameworks pourront également profiter de cette possibilité. En effet, la manipulation de JavaBeans et d&#8217;annotations, deux concepts majeurs dans le monde JEE actuel, induisent de nombreuses invocations de méthodes découvertes au <em>runtime</em>. Dans de larges projets, cela conduit actuellement à la génération massive de bytecode pour éviter de très lentes introspections, induisant une forte consommation de la <em>PermGen</em> des JVMs.</p><p>Le support de l&#8217;instruction <code>invokedynamic</code> par ASM, combiné au fait que le <em>draft</em> actuel de la JSR-292 est d&#8217;ores et déjà implémenté et <a
title="disponible dans la preview de lOpenJDK 7" href="http://download.java.net/jdk7/binaries/">disponible dans la preview de l&#8217;OpenJDK 7</a> depuis la b59, permet d&#8217;être optimiste quant à la finalisation prochaine de cette JSR.</p><h3><a
name="EvnementsdenotrecommunautenFra"></a>Evènements de notre communauté en France et à l&#8217;étranger</h3><h4><a
name="RetoursurleCloudCamp"></a>Retour sur le CloudCamp</h4><p>Un <a
title="CloudCamp" href="http://www.cloudcamp.com/?page_id=748">CloudCamp</a> s&#8217;est tenu à Paris le 11 juin, réunissant un certain nombre d&#8217;acteurs du Cloud Computing. Les CloudCamps ont été initiés par Reuven Cohen et Dave Nielsen et visent a partager la connaissance et les expériences sur ce secteur émergeant.</p><p>Ce CloudCamp s&#8217;est révélé bien plus commercial dans son contenu que les <a
title="JavaCamps" href="http://www.barcamp.org/JavaCampParis">JavaCamps</a> : de nombreux partenaires ont ainsi présenté leurs solutions pendant environ une heure avant que les réelles sessions (au nombre de quatre, se déroulant en parallèle) ne commencent. De chacune d&#8217;entre elles, on retiendra :</p><ul><li><strong>Architecture du Cloud</strong> : une solution de Cloud Computing doit apporter abstraction, elasticité et automatisation. Si les deux premiers points sont d&#8217;ores et déjà couverts par les solutions actuelles, l&#8217;automatisation n&#8217;est en revanche pas encore une réalité. Ce point constituera un élément déterminant pour l&#8217;adoption du Cloud Computing.</li><li><strong>Cloud et Sécurité</strong> : les problèmes de sécurité que l&#8217;on connaît aujourd&#8217;hui dans les SI demeurent avec le Cloud Computing, mais de nouveaux défis s&#8217;annoncent dans le cas de <em>clouds</em> accessibles publiquement et répartis à travers Internet sans forcément passer par un VPN dédié.</li><li><strong>Cloud et Intégration</strong> : le constat est sombre. Les projets lancés par les différents éditeurs et fournisseurs surfant sur la vague du Cloud Computing ne suivent aucune standardisation. Changer de fournisseur ou de solution sur un projet constitue actuellement une modification majeure.</li><li><strong>Aspects business du Cloud</strong> : l&#8217;émergence du Cloud Computing draine la création de nouveaux besoins à pourvoir. Les 3 niveaux d&#8217;abstraction du Cloud Computing que sont SaaS (<em>Software As A Service</em>), Paas (<em>Platform As A Service</em>) et IaaS (<em>Infrastructure As A Service</em>) apportent chacun leurs spécificités en termes de monétisation et d&#8217;opportunités.</li></ul> ]]></content:encoded> <wfw:commentRss>http://blog.xebia.fr/2009/06/15/revue-de-presse-xebia-113/feed/</wfw:commentRss> <slash:comments>5</slash:comments> </item> <item><title>Revue de presse</title><link>http://blog.xebia.fr/2009/05/04/revue-de-presse-xebia-107/</link> <comments>http://blog.xebia.fr/2009/05/04/revue-de-presse-xebia-107/#comments</comments> <pubDate>Mon, 04 May 2009 16:52:50 +0000</pubDate> <dc:creator>Xebia France</dc:creator> <category><![CDATA[Revue de presse]]></category> <category><![CDATA[Apache Derby]]></category> <category><![CDATA[Apache Directory Server]]></category> <category><![CDATA[Hyperic]]></category> <category><![CDATA[JBoss]]></category> <category><![CDATA[JBoss Cache]]></category> <category><![CDATA[Mémoire]]></category> <category><![CDATA[Spring]]></category> <category><![CDATA[SpringSource]]></category> <category><![CDATA[Tomcat]]></category> <guid
isPermaLink="false">http://blog.xebia.fr/?p=1905</guid> <description><![CDATA[La revue de presse de l’actualité Java/J2EE hebdomadaire proposée par Xebia. Actualité éditeurs / SSII JBoss veut son DataGrid SpringSource renforce (encore) le lien développement / production Le coin de la technique Quelques nouveautés pour Apache Derby L&#8217;actualité d&#8217;Apache Directory Server La mémoire native en Java Actualité éditeurs / SSII JBoss veut son DataGrid Le [...]]]></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/04/revue-de-presse-xebia-107/#JBossveutsonDataGrid">JBoss veut son DataGrid</a></li><li><a
href="http://blog.xebia.fr/2009/05/04/revue-de-presse-xebia-107/#SpringSourcerenforceencoreleli">SpringSource renforce (encore) le lien développement / production</a></li></ul><p><strong>Le coin de la technique</strong></p><ul><li><a
href="http://blog.xebia.fr/2009/05/04/revue-de-presse-xebia-107/#QuelquesnouveautspourApacheDer">Quelques nouveautés pour Apache Derby</a></li><li><a
href="http://blog.xebia.fr/2009/05/04/revue-de-presse-xebia-107/#LactualitdApacheDirectoryServe">L&#8217;actualité d&#8217;Apache Directory Server</a></li><li><a
href="http://blog.xebia.fr/2009/05/04/revue-de-presse-xebia-107/#LammoirenativeenJava">La mémoire native en Java</a></li></ul><h3><a
name="ActualitditeursSSII"></a>Actualité éditeurs / SSII</h3><h4><a
name="JBossveutsonDataGrid"></a>JBoss veut son DataGrid</h4><p>Le projet JBoss <a
href="http://www.jboss.org/infinispan.html" title="Infinispan" >Infinispan</a> a été initié il y a peu. Il vient de produire <a
href="http://sourceforge.net/project/showfiles.php?group_id=258851&#038;package_id=317644" title="deux versions alpha successives" >deux versions alpha successives</a>. Il s&#8217;agit d&#8217;une réécriture majeure du projet <a
href="http://www.jboss.org/jbosscache/" title="JBoss Cache" >JBoss Cache</a> auquel il succède et qu&#8217;il est destiné à remplacer. Le but premier affiché par ce projet est de produire une solution de DataGrid, là où son prédécesseur n&#8217;offrait qu&#8217;une technologie de cache distribué. L&#8217;ambition est forte, puisqu&#8217;il s&#8217;agit de se positionner sur un marché dominé par les solutions commerciales que sont <a
href="http://www.oracle.com/technology/products/coherence/index.html" title="Oracle Coherence" >Oracle Coherence</a> et <a
href="http://www-01.ibm.com/software/webservers/appserv/extremescale/" title="IBM eXtreme Scale" >IBM eXtreme Scale</a>.</p><p>Une <a
href="http://www.opensourcereleasefeed.com/interview/show/manik-surtani-on-jboss-infinispan-a-new-era-for-open-source-data-grids" title="récente interview" >récente interview</a> de Manik Surtani, <em>project leader</em> d&#8217;Infinispan et JBoss Cache, associée aux <a
href="http://www.jboss.org/community/docs/DOC-13434" title="informations diffuses" >informations diffusées</a> sur le site d&#8217;Infinispan, permet de mieux répondre aux différentes questions que l&#8217;introduction de ce nouveau projet peut soulever :</p><ul><li>Parmi les atouts prévisionnels d&#8217;Infinispan (après sa finalisation) face à Oracle Coherence, Manik Surtani met surtout en avant la nature Open Source, LGPL, de son projet. Il souligne toutefois la richesse d&#8217;Infinispan tant dans le domaine des performances (grâce à une implémentation efficace du <a
href="http://jbosscache.blogspot.com/2008/07/mvcc-has-landed.html" title="MVCC locking" >MVCC locking</a>) que des fonctionnalités (intégration simplifiée à Amazon EC2 et S3, compatibilité serveur <a
href="http://www.danga.com/memcached/" title="Memcached" >Memcached</a>).</li><li>La création d&#8217;un nouveau projet et donc d&#8217;un nouveau nom plutôt que le maintien de JBoss Cache est justifiée pour l&#8217;équipe par la réécriture et les changements d&#8217;API. On peut aussi aisément imaginer que le nouveau positionnement &#8216;DataGrid&#8217; ne coïncidait guère avec un nom de projet &#8216;Cache&#8217;&#8230;</li><li>Infinispan pourra être utilisé en tant que cache Hibernate, ce qui est assez logique compte tenu de l&#8217;affiliation JBoss de ce dernier.</li></ul><p>Face à des concurrents commerciaux bien installés sur ce marché, la tâche ne sera pas aisée pour JBoss, et le but affiché de proposer une solution équivalente à Coherence est très audacieux compte-tenu de la maturité acquise par ce produit. Ce scénario n&#8217;est pas sans rappeler le positionnement qu&#8217;avait JBoss AS lors de son arrivée sur le marché des serveurs d&#8217;application, mais l&#8217;absence de roadmap datée pour Infinispan tend à indiquer qu&#8217;il faudra probablement s&#8217;armer de patience pour savoir si l&#8217;histoire se répétera.</p><h4><a
name="SpringSourcerenforceencoreleli"></a>SpringSource renforce (encore) le lien développement / production</h4><p><a
href="http://www.springsource.com/node/1547" title="SpringSource a annoncé" >SpringSource a annoncé</a> aujourd&#8217;hui le <a
href="http://www.hyperic.com/springsource/" title="rachat de Hyperic" >rachat de Hyperic</a>, l&#8217;éditeur du célèbre outil de supervision du même nom.<br
/> Le partenariat SpringSource / Hyperic ne date pas d&#8217;hier (SpringSource redistribuait une version améliorée du serveur Hyperic dans son produit SpringSource Application Management Suite depuis 2007), mais cette acquisition confirme la direction affichée par SpringSource ces derniers mois : contrôler l&#8217;ensemble du cycle de vie d&#8217;une application Java, de sa conception à son exploitation.<br
/> En effet, un très grand nombre de projets Java s&#8217;appuient aujourd&#8217;hui sur le framework Spring (phase de développement). Un très grand nombre de ces développements tournent sur le serveur openSource Tomcat, dont SpringSource propose une distribution commerciale depuis peu (Spring tc Server). Et aujourd&#8217;hui, grâce à l&#8217;acquisition de Hyperic, SpringSource propose de réaliser l&#8217;exploitation de ces serveurs d&#8217;applications.</p><p>On peut d&#8217;ailleurs supposer qu&#8217;Hyperic devrait rapidement évoluer et proposer une version commerciale encore plus &#8216;orientée&#8217; vers le framework Spring et le serveur Tomcat que ne l&#8217;était Spring AMS, avec une offre de support afférente.<br
/> Parmi les évolutions probables (car souvent évoquées par SpringSource comme des problèmes à résoudre pour les développeurs), nous devrions avoir :</p><ul><li>Gestion de la configuration au niveau Hyperic. Actuellement, Hyperic ne permet de réaliser que des opérations Stop/Start sur la ferme de serveurs. tcServer propose la gestion de la configuration du serveur. On peut donc imaginer un modèle de données qui permettrait de configurer ses tomcats directement depuis l&#8217;outil de monitoring.</li><li>Déploiement phasé. Comme avec JBoss ON, il est souhaitable de voir apparaître un outil permettant de déployer progressivement sur les noeuds d&#8217;un cluster (probablement basé sur un outil de scripting).</li><li>Virtualisation. Le déploiement sur des machines virtuelles types VM-Ware sera facilité.</li></ul><p>Sur ces sujets, l&#8217;apport (et l&#8217;expérience) de Hyperic sera déterminant.</p><p>On peut s&#8217;amuser à retracer les différents rachats de Spring. En 2004, Hyperic est né d&#8217;un fork d&#8217;une partie des équipes de Covalent. En février 2008, <a
href="http://blog.xebia.fr/2008/02/04/revue-de-presse-xebia-42/#SpringSourcerCovalent" title="SpringSource acqurait Covalent" >SpringSource acquérait Covalent</a>. Un peu plus d&#8217;un an après, SpringSource reconstitue l&#8217;entité de 2004 en acquérant Hyperic.</p><p>Javier Soltero, CEO d&#8217;Hyperic affirme qu&#8217;il s&#8217;agit là d&#8217;un mariage de raison, entre deux acteurs qui partagent la même vision de l&#8217;informatique et qui sont les meilleurs (et des standards de facto) dans leur domaine respectif (le développement Java pour SpringSource, et le management IT pour Hyperic). Il va d&#8217;ailleurs rejoindre le board de SpringSource en tant que <em>directeur technique des outils de Management</em>.</p><p>Parmi les effets collatéraux, on peut noter la (très probable) fin du projet (déjà mal en point) <a
href="http://www.rhq-project.org/" title="RHQ" >RHQ</a>, partenariat entre RedHat et Hyperic, qui visait à créer une plate forme &#8216;manageable&#8217; basée sur JBoss.<br
/> Toutefois, JBoss ayant racheté la base de code d&#8217;Hyperic avant qu&#8217;il ne devienne &laquo;&nbsp;public source&nbsp;&raquo;, la fin du partenariat ne veut pas forcément dire fin de JBoss On dont le code à été très largement modifié par les équipes JBoss.</p><p>Le choix de monétisation des assets open source devrait commencer à effrayer les mastodontes de l&#8217;informatique (IBM, Oracle, Microsoft), qui avaient fait du contrôle total de la stack applicative (Java dans un cas, .Net dans l&#8217;autre) leur pré carré. C&#8217;est d&#8217;ailleurs la volonté de Rod Johnson (annoncée lors de <a
href="http://blog.xebia.fr/2009/05/03/springone-2009-synthese/" title="SpringOne Europe" >SpringOne Europe</a>) : devenir un &#8216;One Stop-By Shop&#8217;, comme peuvent l&#8217;être ces géants du monde informatique.</p><h3><a
name="Lecoindelatechnique"></a>Le coin de la technique</h3><h4><a
name="QuelquesnouveautspourApacheDer"></a>Quelques nouveautés pour Apache Derby</h4><p>Une nouvelle version du moteur de base de données Java de la fondation Apache <a
href="http://db.apache.org/derby/releases/release-10.5.1.1.cgi" title="vient d'être diffusée" >vient d&#8217;être diffusée</a>. Cette version apporte à Derby une dose d&#8217;évolutions intéressantes pouvant aider dans certains cas d&#8217;utilisation. François Orsini <a
href="http://blogs.sun.com/FrancoisOrsini/entry/apache_derby_10_5_1" title="en prsente la liste" >en présente la liste</a>. On retiendra en particulier :</p><ul><li><strong>In-memory backend</strong> : Cette fonctionnalité, <a
href="http://blogs.sun.com/kah/entry/derby_10_5_preview_in" title="particulièrement mise en avant" >particulièrement mise en avant</a> dès la version 10.5 preview, permet de stocker une base de données en mémoire et ainsi de s&#8217;astreindre du stockage sur disque. Derby rejoint ainsi <a
href="http://hsqldb.org/" title="HSQLDB" >HSQLDB</a> et <a
href="http://www.h2database.com/html/main.html" title="H2 Database" >H2 Database</a> qui offraient déjà une telle possibilité, très utile dans le contexte des tests unitaires ou de certaines applications ne nécessitant pas de persistance durable.</li><li><strong>Roles SQL</strong> : Ils permettent de simplifier l&#8217;administration des privilèges attribués à une base de données. La <a
href="http://db.apache.org/derby/docs/dev/devguide/cdevcsecureroles.html" title="documentation de Derby" >documentation de Derby</a> est d&#8217;ores et déjà à jour et permet de faire le tour des possibilités offertes.</li><li><strong>Generated columns</strong> : Il s&#8217;agit de colonnes dont les valeurs sont calculées à partir d&#8217;autres colonnes d&#8217;une même table. Il est également possible de déclarer un index sur une telle colonne afin d&#8217;améliorer les performances sur certains types de requêtes. Cette fonctionnalité est une version allégée des <a
href="http://www.dba-oracle.com/oracle11g/oracle_11g_function_based_columns.htm" title="virtual columns" >virtual columns</a> introduites dans Oracle 11g.</li></ul><h4><a
name="LactualitdApacheDirectoryServe"></a>L&#8217;actualité d&#8217;Apache Directory Server</h4><p>Lors du <a
href="http://lescastcodeurs.com/2009/04/les-cast-codeurs-podcast-episode-2/" title="dernier podcast des Cast Codeurs" >dernier podcast des Cast Codeurs</a>, <a
href="http://hrabal.blogspot.com/" title="Emmanuel Lécharny" >Emmanuel Lécharny</a>, <em>committer</em> français sur <a
href="http://directory.apache.org/" title="Apache Directory" >Apache Directory</a>, a fait un tour d&#8217;horizon de ce projet. Pour rappel, Apache Directory est un projet de la fondation Apache qui produit un serveur LDAP en Java (Directory Server) et un outil de visualisation / édition de <em>directory</em> LDAP basé sur Eclipse (Directory Studio).</p><p>Du fait de son orientation Java, le positionnement de Directory Server sur le marché n&#8217;est pas évident, aussi les cas d&#8217;utilisation ont été longuement décrits ; on retiendra :</p><ul><li>Les tests unitaires, puisque le serveur LDAP peut ainsi être contrôlé et se faire injecter des données par Java lors du déroulement des tests.</li><li>Embarquement du serveur LDAP dans l&#8217;application grâce au mode <em>embedded</em> de Directory Server, lorsque l&#8217;on ne souhaite pas dépendre d&#8217;un serveur externe.</li><li>Profiter de la simplicité de configuration de Directory Server pour le mettre en place rapidement en premier lieu pour éventuellement passer ensuite à un serveur commercial.</li></ul><p>Ainsi, lors de cette interview, il a été question d&#8217;utiliser Directory Server dans des rôles secondaires plutôt  que directement en production. Pourtant, il y a un an, lors de l&#8217;ApacheCon 08, Emmanuel Lécharny <a
href="http://streaming.linux-magazin.de/events/apachecon08eu/archive/" title="s'était longuement attardé sur la question" >s&#8217;était longuement attardé sur la question</a> lors de sa présentation en mettant en avant les fonctionnalités exclusives de procédures stockées et de <em>triggers</em> pour légitimer l&#8217;utilisation de Directory Server en production. Face à l&#8217;oscillation autour de cette problématique, notons qu&#8217;Apache DS, pourrait, plus modestement, être utilisé conjointement à d&#8217;autres serveurs LDAP commerciaux par la mise en place d&#8217;un <a
href="http://en.wikipedia.org/wiki/Virtual_directory" title="virtual directory" >virtual directory</a>.</p><p>Enfin, Emmanuel Lécharny a exposé une synthèse des principales nouveautés à attendre de la future version 2.0, actuellement prévue pour septembre :</p><ul><li>Réplication multi-master entre plusieurs noeuds Apache DS ainsi qu&#8217;avec des noeuds OpenLDAP.</li><li>Disaster Recovery System permettant d&#8217;éviter les pertes de données suite à un crash. Cette fonctionnalité étant actuellement assurée par un journal, peu optimal, qui rend l&#8217;opération de récupération très longue.</li><li>Configuration stockée au sein même du serveur LDAP.</li></ul><h4><a
name="LammoirenativeenJava"></a>La mémoire native en Java</h4><p>Andrew Hall a publié deux articles très intéressants portant sur la gestion de la mémoire native dans la JVM, c&#8217;est-à-dire la mémoire consommée par la machine virtuelle mais ne faisant pas partie de la Java Heap et n&#8217;étant donc pas gérée par le garbage collector. Les systèmes d&#8217;exploitation couverts par ces articles sont <a
href="http://www.ibm.com/developerworks/java/library/j-nativememory-linux/index.html" title="Windows, Linux" >Windows, Linux</a> et <a
href="http://www.ibm.com/developerworks/java/library/j-nativememory-aix/index.html" title="AIX" >AIX</a>.</p><p>Après avoir fait un rappel sur la gestion de la mémoire par les systèmes d&#8217;exploitation, l&#8217;auteur explique en détail les différents composants Java susceptibles de consommer de la mémoire native non gérée au sein de la Heap Java. En font partie le bytecode des classes chargées par les classloaders, la mémoire allouée par le code JNI natif, les <em>direct buffers</em> NIO et les <em>stacks</em> de chaque thread. Le problème est que la mémoire totale adressable par un processus 32 bits est de 2 à 4 Go selon les cas. Des crashs de la JVM, dus à un manque de mémoire, peuvent donc parfois intervenir alors que la Java Heap n&#8217;est pas pleine.</p><p>Les solutions à cette problématique sont passées en revue, parmi lesquelles figurent : réduire la mémoire totale utilisée par la JVM en réduisant la taille de la Java Heap (via -Xmx), réduire l&#8217;utilisation de mémoire native non gérée par la Java Heap, repousser la taille limite de la mémoire adressable par le processus de la JVM en passant par exemple à un OS et une JVM 64 bits.</p><p>Au-delà des informations fournies par ces deux articles, les lecteurs intéressés par ce sujet pourront étudier le très complet, bien qu&#8217;ancien, livre de Bill Venners, &#8216;Inside the Java Virtual Machine&#8217;, <a
href="http://www.artima.com/insidejvm/ed2/" title="partiellement disponible en ligne" >partiellement disponible en ligne</a>.</p> ]]></content:encoded> <wfw:commentRss>http://blog.xebia.fr/2009/05/04/revue-de-presse-xebia-107/feed/</wfw:commentRss> <slash:comments>2</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>Revue de Presse Xebia</title><link>http://blog.xebia.fr/2009/03/30/revue-de-presse-xebia-102/</link> <comments>http://blog.xebia.fr/2009/03/30/revue-de-presse-xebia-102/#comments</comments> <pubDate>Mon, 30 Mar 2009 17:03:17 +0000</pubDate> <dc:creator>Xebia France</dc:creator> <category><![CDATA[Revue de presse]]></category> <category><![CDATA[CXF]]></category> <category><![CDATA[Eclipse]]></category> <category><![CDATA[GlassFish]]></category> <category><![CDATA[J2EE]]></category> <category><![CDATA[Java / JEE]]></category> <category><![CDATA[JBoss]]></category> <category><![CDATA[Jdk7]]></category> <category><![CDATA[OSGi]]></category> <category><![CDATA[Red Hat]]></category> <category><![CDATA[RIA]]></category> <category><![CDATA[SOA]]></category> <category><![CDATA[SpringSource]]></category> <category><![CDATA[Sun]]></category> <guid
isPermaLink="false">http://blog.xebia.fr/?p=1694</guid> <description><![CDATA[La revue de presse de l’actualité Java/J2EE hebdomadaire proposée par Xebia. Actualité éditeurs / SSII Sun, Java et le JCP RIA, SOA, Tim Bray tire dans le tas SOA Red Hat JBoss choisit d&#8217;investir dans CXF Le coin de la technique Enfin une roadmap détaillée pour le JDK7 La création de bundles OSGi selon SpringSource [...]]]></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/03/30/revue-de-presse-xebia-102/#SunJavaetleJCP">Sun, Java et le JCP</a></li><li><a
href="http://blog.xebia.fr/2009/03/30/revue-de-presse-xebia-102/#RIASOATimBraytiredansletas">RIA, SOA, Tim Bray tire dans le tas</a></li></ul><p><strong>SOA</strong></p><ul><li><a
href="http://blog.xebia.fr/2009/03/30/revue-de-presse-xebia-102/#RedHatJBosschoisitdinvestirdan">Red Hat JBoss choisit d&#8217;investir dans CXF</a></li></ul><p><strong>Le coin de la technique</strong></p><ul><li><a
href="http://blog.xebia.fr/2009/03/30/revue-de-presse-xebia-102/#EnfinuneroadmapdtaillepourleJD">Enfin une roadmap détaillée pour le JDK7</a></li><li><a
href="http://blog.xebia.fr/2009/03/30/revue-de-presse-xebia-102/#LacrationdebundlesOSGiselonSpr">La création de bundles OSGi selon SpringSource</a></li><li><a
href="http://blog.xebia.fr/2009/03/30/revue-de-presse-xebia-102/#Utiliserlenuagepourrduirelesco">Utiliser le nuage pour réduire les coûts d&#8217;intégration continue.</a></li><li><a
href="http://blog.xebia.fr/2009/03/30/revue-de-presse-xebia-102/#OutilsGlassfishpourEclipse">Outils Glassfish pour Eclipse</a></li></ul><h3><a
name="ActualitditeursSSII"></a>Actualité éditeurs / SSII</h3><h4><a
name="SunJavaetleJCP"></a>Sun, Java et le JCP</h4><p>Depuis quelques jours, une agitation se crée au sein de la communauté Java autour des agissements de Sun vis-à-vis de son projet OpenJDK 7. Plusieurs observations permettent en effet de penser que le JDK 7 pourrait bien ne pas être basé sur un standard du JCP comme c&#8217;est habituellement le cas :</p><ul><li><a
href="http://neilbartlett.name/blog/2009/03/25/using-suns-jigsaw-may-get-you-fired/" title="Neil Bartlett remarque" >Neil Bartlett remarque</a> que le projet Jigsaw, poussé par Sun pour être le système de modules utilisé par le JDK, n&#8217;est pas défini par une JSR. Ceci en fait donc une technologie propriétaire dont il doute de la légitimité face à OSGi, un standard bénéficiant de 10 années d&#8217;expérience.</li><li><a
href="http://www.jroller.com/scolebourne/entry/no_more_java_7" title="Stephen Colebourne constate" >Stephen Colebourne constate</a> que Sun ne fait plus mention de &laquo;&nbsp;Java 7&#8243; depuis quelques temps, mais seulement de &laquo;&nbsp;JDK 7&#8243; qui n&#8217;est qu&#8217;une implémentation, là où &laquo;&nbsp;Java 7&#8243; qualifierait un standard.</li><li><a
href="http://apsblog.burtongroup.com/2009/03/open-source-is-not-as-open-as-standard-specifications.html" title="Anne Thomas Manes faisant des observations similaires compare" >Anne Thomas Manes faisant des observations similaires, compare</a> l&#8217;OpenJDK à la position de framework Open Source &laquo;&nbsp;rebelle&nbsp;&raquo;, non standard, que tient Spring.</li><li>Stephen Colebourne encore, visiblement très impliqué par ce débat, revient dans une série de billets sur <a
href="http://www.jroller.com/scolebourne/entry/sun_apache_ip_in_pictures" title="les différents qui opposent Sun à la fondation Apache" >les différents qui opposent Sun à la fondation Apache</a>, <a
href="http://www.jroller.com/scolebourne/entry/shedding_new_light_on_no" title="rappelant l'historique" >rappelant l&#8217;historique</a>, ainsi que sur la problématique de <a
href="http://www.jroller.com/scolebourne/entry/a_question_of_ip" title="proprit intellectuelle au sein du JCP" >propriété intellectuelle au sein du JCP</a> de manière générale.</li></ul><p>Si le JDK 7 devait être finalisé sans qu&#8217;aucun standard ne le soutienne, cela constituerait un évènement majeur, puisque l&#8217;avenir deviendrait incertain pour les JVMs fournies par d&#8217;autres éditeurs tels qu&#8217;Oracle ou IBM.</p><h4><a
name="RIASOATimBraytiredansletas"></a>RIA, SOA, Tim Bray tire dans le tas</h4><p>C&#8217;est <a
href="http://www.infoq.com/interviews/tim-bray-future-of-web" title="dans une interview pour InfoQ" >dans une interview pour InfoQ</a> que Tim Bray co-auteur du XML nous donne son avis sur les technologies RIA. Selon lui, les RIA type Flex, Silverlight et JavaFx n&#8217;ont pour but que de fournir des applications toujours plus immersives et de moins en moins utiles. Il modère tout de même ses propos en s&#8217;appuyant sur des exemples de réussite comme Google et Yahoo! qui utilisent de manière élégante Ajax et consort. En bref, pour lui les avantages des interfaces web sont la simplicité et la rapidité, Tim ne croit donc pas en la longévité du RIA. Rien de mieux pour faire de l&#8217;applicatif lourd que de l&#8217;applicatif lourd.<br
/> Dans son interview, il explique rapidement que l&#8217;émergence des Web Services et des architectures de type SOA s&#8217;est faite en dépit du bon sens. Au début chacun y allait de son format XML privé et ça fonctionnait, mais on a voulu généraliser le problème et fournir une solution pour tous. Cette volonté de créer une pierre philosophale pour exposer ses services n&#8217;a apporté que des difficultés d&#8217;implémentation, d&#8217;intégration et surtout d&#8217;interopérabilité. Bref, Tim est assez pessimiste en ce qui concerne les &#8216;WS-*&#8217;, il soutient en revanche REST qui selon ses termes, n&#8217;est qu&#8217;une reformulation des bonnes pratiques des Web Oriented Architectures.<br
/> Enfin, il reste très discret sur Sun et sur le cloud computing en indiquant tout de même que pour le moment le département se cherche un peu. Faut-il fournir des solutions et des outils pour implémenter des nuages ou bien héberger directement des nuages et devenir fournisseur?</p><p><a
href="http://www.infoq.com/interviews/tim-bray-future-of-web" title="Linterview complte sur InfoQ" >L&#8217;interview complète sur InfoQ</a><br
/> <a
href="http://flexblog.faratasystems.com/?p=404" title="La rponse de Yakov Fain" >La réponse de Yakov Fain</a></p><h3><a
name="SOA"></a>SOA</h3><h4><a
name="RedHatJBosschoisitdinvestirdan"></a>Red Hat JBoss choisit d&#8217;investir dans CXF</h4><p><a
href="http://www.press.redhat.com/2009/03/25/red-hat-adds-muscle-to-apache-cxf/" title="Red Hat a annoncé la semaine dernière" >Red Hat a annoncé la semaine dernière</a> qu&#8217;elle devient un <em>&laquo;&nbsp;key contributor&nbsp;&raquo;</em> du projet <a
href="http://cxf.apache.org/" title="Apache CXF" >Apache CXF</a>.<br
/> A terme, <a
href="http://sacha.labourey.com/2009/03/26/jboss-to-join-forces-with-apache-cxf/" title="comme l'explique Sacha Labourey sur son blog" >comme l&#8217;explique Sacha Labourey sur son blog</a>, cela signifie que <a
href="http://jboss.org/jbossws" title="JBossWS" >JBossWS</a> qui laisse aujourd&#8217;hui le choix de l&#8217;implémentation Web Service <em>(ne fournissant qu&#8217;une couche d&#8217;abstraction)</em> ne fournira plus que l&#8217;implémentation Apache CXF. C&#8217;est dommage, d&#8217;autant plus que les dernières releases de CXF ont été plutôt douloureuses et riches en bugs.<br
/> D&#8217;un autre côté, la participation active des équipes JBoss au projet ne peut qu&#8217;aider à rectifier le tir. Gageons donc que les futures releases d&#8217;Apache CXF seront de bien meilleures factures que celles de 2008.</p><h3><a
name="Lecoindelatechnique"></a>Le coin de la technique</h3><h4><a
name="EnfinuneroadmapdtaillepourleJD"></a>Enfin une roadmap détaillée pour le JDK7</h4><p>Lors de la conférence Devoxx de décembre dernier, un keynote avait particulièrement retenu l&#8217;attention : Mark Reinhold présentait alors la <a
href="http://hamletdarcy.blogspot.com/2008/12/java-7-update-from-mark-reinhold-at.html" title="liste des fonctionnalits" >liste des fonctionnalités</a> qui seraient intégrées au futur JDK 7, ainsi qu&#8217;une date pour la version finale.</p><p>Mark Reinhold <a
href="http://blogs.sun.com/mr/entry/jdk7" title="annonce" >annonce</a> maintenant la mise en ligne d&#8217;un <a
href="http://openjdk.java.net/projects/jdk7/calendar/" title="calendrier" >calendrier</a> détaillé des <a
href="http://openjdk.java.net/projects/jdk7/" title="milestones prévus" >milestones prévus</a> et des <a
href="http://openjdk.java.net/projects/jdk7/features/" title="fonctionnalits" >fonctionnalités</a> associées.</p><p>L&#8217;analyse de ces informations aboutit à quelques remarques :</p><ul><li>La période annoncée en décembre dernier pour l&#8217;arrivée d&#8217;une version finale, à savoir &laquo;&nbsp;début 2010&#8243;, est légèrement décalée puisqu&#8217;un <em>final milestone</em> est prévu pour le 18/02/2010 suivi d&#8217;une phase de <em>release candidate</em> d&#8217;un à deux mois. Ceci porterait donc l&#8217;arrivée d&#8217;une version finale à avril ou mai 2010.</li><li>La liste des nouveautés reste globalement inchangée à une exception près : il n&#8217;est plus question de MVM (Multiple Virtual Machines) qui devait permettre d&#8217;exécuter plusieurs applications au sein d&#8217;une même VM. Cette fonctionnalité, particulièrement intéressante dans le contexte du regain d&#8217;intérêt pour les Applets Java et autres applications JavaFX embarquées dans le browser, était annotée d&#8217;un <em>&laquo;&nbsp;maybe&nbsp;&raquo;</em> il y a deux mois et était visiblement trop ambitieuse pour résister à la pression du calendrier.</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> n&#8217;avait pas été citée en décembre et ne l&#8217;est toujours pas. <a
href="https://jsr-310.dev.java.net/servlets/ReadMsg?list=dev&#038;msgNo=1389" title="Lappel  laide" >L&#8217;appel à l&#8217;aide</a> du <em>spec lead</em> Stephen Colebourne aura donc été vain. En effet, comme il le faisait alors remarquer, dans le cas d&#8217;une inclusion au JDK, JDBC et NIO2 seraient impactés afin de prendre en compte la nouvelle API. Compte-tenu de cet impact, il était essentiel que cette JSR puisse être finalisée rapidement. Or son statut, toujours annoncé comme <em>&laquo;&nbsp;inactive&nbsp;&raquo;</em> par le site du JCP, tend à nous faire penser que la classe <code>java.util.Date</code> a encore de &laquo;&nbsp;beaux&nbsp;&raquo; jours devant elle.</li></ul><h4><a
name="LacrationdebundlesOSGiselonSpr"></a>La création de bundles OSGi selon SpringSource</h4><p>SpringSource <a
href="http://forum.springsource.org/showthread.php?p=232865" title="annonce" >annonce</a> l&#8217;arrivée de <a
href="http://www.springsource.org/bundlor" title="Bundlor" >Bundlor</a>, son outil de création de bundles OSGi, actuellement en version 1.0M2.</p><p>Dans un projet OSGi il est en effet nécessaire que l&#8217;ensemble des modules de l&#8217;application et des librairies tierces soient fournis sous forme de bundles. La création de bundles pour les modules dont on a le contrôle n&#8217;est pas un problème en soit, pour les librairies tierces, il en est tout autrement.</p><p>Deux possibilités s&#8217;offrent alors au développeur : obtenir la librairie qu&#8217;il recherche packagée sous forme d&#8217;un bundle OSGi sur un repository dédié (<a
href="http://www.springsource.com/repository/app/" title="celui de SpringSource" >celui de SpringSource</a> par exemple) ou créer ce bundle par lui-même. Dans ce dernier cas, il faudra analyser l&#8217;ensemble des dépendances de la librairie pour créer un manifest adapté. C&#8217;est là que les outils de création automatisée de bundles interviennent. <a
href="http://www.aqute.biz/Code/Bnd" title="Bnd" >Bnd</a> était le seul disponible jusqu&#8217;alors, crée par Peter Kriens, <em>Technical Director</em> d&#8217;OSGi. SpringSource amène donc désormais son propre outil.</p><p>Bundlor est justifié par SpringSource par quelques fonctionnalités non présentes dans Bnd telles que la création incrémentale de manifests et <a
href="http://blog.springsource.com/2009/03/26/using-bundlor-in-eclipse/" title="lintgration  Eclipse" >l&#8217;intégration à Eclipse</a> via un plugin dédié.</p><p>Malgré l&#8217;apparente efficacité de ce type d&#8217;outil, il est indispensable de ne l&#8217;appliquer qu&#8217;à des librairies tierces. En effet un des intérêts d&#8217;OSGi réside dans sa capacité à n&#8217;exposer qu&#8217;une partie soigneusement sélectionnée des interfaces d&#8217;un module, ce que seule une intervention humaine sera à même d&#8217;effectuer correctement.</p><h4><a
name="Utiliserlenuagepourrduirelesco"></a>Utiliser le nuage pour réduire les coûts d&#8217;intégration continue.</h4><p>Il est de notoriété publique que plus la fin d&#8217;un sprint approche, plus les ressources du serveur d&#8217;intégration sont sollicitées. En outre, c&#8217;est dans ces périodes que les développeurs ont besoin des feedbacks les plus rapides. Alors, que faire ? S&#8217;offrir une machine surpuissante, dédiée à l&#8217;intégration continue, mais qui ne sera que rarement utilisée à pleine capacité ?<br
/> Atlassian, l&#8217;éditeur du <a
href="http://www.atlassian.com/software/bamboo" title="serveur d'intégration continue Bamboo" >serveur d&#8217;intégration continue Bamboo</a>, propose de résoudre ce problème dans la version 2.2 de son produit, en offrant la possibilité d&#8217;utiliser &laquo;&nbsp;Elastic Bamboo&nbsp;&raquo;, un agent distant s&#8217;exécutant sur le nuage <a
href="http://aws.amazon.com/ec2/" title="Amazon EC2" >Amazon EC2</a>. Ainsi, la disponibilité et la puissance sont maximales lorsque l&#8217;équipe en a besoin, tout en limitant les coûts.<br
/> Et comme Atlassian utilise Bamboo en interne, certains plâtres sont déjà essuyés :</p><ul><li>Les builds doivent réellement être indépendants de l&#8217;environnement (à vous de construire vos builds en étant conscients de ce problème).</li><li>Dans le cas <em>standard</em>, les dépendances doivent être téléchargées à chaque build (l&#8217;instance de build disparaissant du nuage lorsqu&#8217;elle se termine). Une solution peut être d&#8217;utiliser une <em>image disque</em> sauvegardée sur le nuage.</li></ul><p><a
href="http://blogs.atlassian.com/developer/2009/03/customizing_your_cloud.html" title="Toutes les astuces de Edwin Wong pour paramtrer votre serveur dintgration continue sur le nuage" >Toutes les astuces de Edwin Wong pour paramétrer votre serveur d&#8217;intégration continue sur le nuage</a> se trouvent sur le blog d&#8217;Atlassian.</p><h4><a
name="OutilsGlassfishpourEclipse"></a>Outils Glassfish pour Eclipse</h4><p>Sun vient de sortir la <a
href="http://download.java.net/glassfish/eclipse/" title="version 09" >version 0.9</a> (la version 1.0 arrive bientôt) de son bundle.<br
/> Celui-ci intègre:</p><ul><li>Eclipse 3.4.1</li><li>Serveurs Glassfish v 2.1 et v3 Prélude</li><li>JDK 1.6 Update 12 (optionnel)</li><li>Une série de plugins permettant de configurer votre serveur J2EE, ainsi que vos WebServices (Soap ou Rest) depuis l&#8217;IDE. (Plus de détails sur les plugins, <a
href="https://glassfishplugins.dev.java.net/eclipse34/index.html" title="ici" >ici</a>).</li></ul><p>Ce bundle offre l&#8217;avantage de fournir un paquet tout-en-un. Il est destiné aux développeurs et aux organisations qui n&#8217;utilisent pas NetBeans, mais Eclipse. Celui-ci étant l&#8217;IDE le plus répandu. Sun élargit ainsi son public et se rapproche de la grande communauté d&#8217;Eclipse.</p> ]]></content:encoded> <wfw:commentRss>http://blog.xebia.fr/2009/03/30/revue-de-presse-xebia-102/feed/</wfw:commentRss> <slash:comments>1</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/24/revue-de-presse-xebia-84/</link> <comments>http://blog.xebia.fr/2008/11/24/revue-de-presse-xebia-84/#comments</comments> <pubDate>Mon, 24 Nov 2008 17:58:29 +0000</pubDate> <dc:creator>Xebia France</dc:creator> <category><![CDATA[Revue de presse]]></category> <category><![CDATA[J2EE]]></category> <category><![CDATA[Java / JEE]]></category> <category><![CDATA[JBoss]]></category> <category><![CDATA[Méthodes agiles]]></category> <category><![CDATA[Netbeans]]></category> <category><![CDATA[Oracle]]></category> <category><![CDATA[OSGi]]></category> <category><![CDATA[SCRUM]]></category> <category><![CDATA[Seam]]></category> <category><![CDATA[SOA]]></category> <category><![CDATA[SoapUI]]></category> <category><![CDATA[XP]]></category> <guid
isPermaLink="false">http://blog.xebia.fr/?p=1050</guid> <description><![CDATA[La revue de presse de l’actualité Java/J2EE hebdomadaire proposée par Xebia. Actualité éditeurs / SSII OSGi : Spring dm Server standardisé pour l&#8217;été 2009 ? Agilité La fin de l&#8217;Agilité ? SOA SOA : de la crise de doute à la désillusion ? Le coin de la technique Seam 3 : les futures orientations de [...]]]></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/24/revue-de-presse-xebia-84/#OSGiSpringdmServerstandardispo">OSGi : Spring dm Server standardisé pour l&#8217;été 2009 ?</a></li></ul><p><strong>Agilité</strong></p><ul><li><a
href="http://blog.xebia.fr/2008/11/24/revue-de-presse-xebia-84/#LafindelAgilit">La fin de l&#8217;Agilité ?</a></li></ul><p><strong>SOA</strong></p><ul><li><a
href="http://blog.xebia.fr/2008/11/24/revue-de-presse-xebia-84/#SOAdelacrisededouteladsillusio">SOA : de la crise de doute à la désillusion ?</a></li></ul><p><strong>Le coin de la technique</strong></p><ul><li><a
href="http://blog.xebia.fr/2008/11/24/revue-de-presse-xebia-84/#SeamlesfuturesorientationsdeSe">Seam 3 : les futures orientations de Seam</a></li><li><a
href="http://blog.xebia.fr/2008/11/24/revue-de-presse-xebia-84/#SortiedeNetbeans">Sortie de Netbeans 6.5</a></li><li><a
href="http://blog.xebia.fr/2008/11/24/revue-de-presse-xebia-84/#SortiedeSOAPUI">Sortie de SOAP UI 2.5</a></li><li><a
href="http://blog.xebia.fr/2008/11/24/revue-de-presse-xebia-84/#SurvoldelarchitectureMySpace">Survol de l&#8217;architecture MySpace</a></li><li><a
href="http://blog.xebia.fr/2008/11/24/revue-de-presse-xebia-84/#OraclesortsonIncubateurCoheren">Oracle sort son Incubateur Coherence</a></li></ul><h3><a
name="ActualitditeursSSII"></a>Actualité éditeurs / SSII</h3><h4><a
name="OSGiSpringdmServerstandardispo"></a>OSGi : Spring dm Server standardisé pour l&#8217;été 2009 ?</h4><p>Eric Newcommer, <em>OSGi Enterprise Expert Group <em>(EEG)</em> co-chair</em>, présente dans &laquo;&nbsp;<a
href="http://blogs.iona.com/newcomer/archives/000578.html" title="OSGi for the Enterprise Gets a Bit Closer &#038; LinkedIn Too" >OSGi for the Enterprise Gets a Bit Closer &#038; LinkedIn Too</a>&nbsp;&raquo; l&#8217;avancement de l&#8217;EEG qui a pour ambition de faire coïncider la fin de ses travaux avec la sortie d&#8217;OSGi R4.2 annoncée pour Juin 2009.</p><p>On y apprend que la &laquo;&nbsp;RFC 124 / Blueprint Component Model&nbsp;&raquo; est quasiment finalisée, son implémentation de référence <em>(RI)</em> est <a
href="http://www.springsource.com/products/suite/dmserver" title="SpringSource dm Server" >SpringSource dm Server</a> dont elle a repris les principes ; le Test Compatibility Kit <em>(TCK)</em> est développé par le projet <a
href="http://geronimo.apache.org/" title="Apache Geronimo" >Apache Geronimo</a>. Souhaitons que cette standardisation de dm Server permette à SpringSource de reverser le contenu de son <a
href="http://www.springsource.com/repository/app/" title="Enterprise Bundle Repository" >Enterprise Bundle Repository</a> dans l&#8217;officiel <a
href="http://www.osgi.org/Repository/HomePage" title="OSGi Bundle Repository" >OSGi Bundle Repository</a> de l&#8217;OSGi Alliance et que la prolifération de bundles customisés par les grands acteurs de l&#8217;OSGi prenne fin.</p><p>Par ailleurs, &laquo;&nbsp;RFC 119 / Distributed OSGi&nbsp;&raquo; serait elle aussi prête. <a
href="http://cxf.apache.org/" title="Apache CXF" >Apache CXF</a> est en charge de la Reference Implementation <em>(Cf. <a
href="http://blogs.iona.com/newcomer/archives/000569.html" title="First Ever Demo of Distributed OSGi" >First Ever Demo of Distributed OSGi</a>)</em> et Tibco s&#8217;occupe du Test Compatibility Kit. Nous remarquerons que Distributed OSGi reprend certains principes de <a
href="http://blog.xebia.fr/2007/04/11/introduction-a-sca-service-component-architecture/" title="Service Component Architecture (SCA)" >Service Component Architecture (SCA)</a> et que le positionnement des deux technologies manque encore de clarté. De plus, à la différence de &laquo;&nbsp;Blueprint Component Model&nbsp;&raquo; avec Spring dm Server, Distributed OSGi ne connaît pas encore de <em>&laquo;&nbsp;vraie&nbsp;&raquo;</em> implémentation.</p><h3><a
name="Agilit"></a>Agilité</h3><h4><a
name="LafindelAgilit"></a>La fin de l&#8217;Agilité ?</h4><p>Le prix du buzz de la semaine revient incontestablement à James Shore pour son article <a
href="http://jamesshore.com/Blog/The-Decline-and-Fall-of-Agile.html" title="The Decline and Fall of Agile" >The Decline and Fall of Agile</a>. &laquo;&nbsp;Jim&nbsp;&raquo; raconte qu&#8217;il a noté un changement dans son métier : avant on l&#8217;appelait pour introduire les méthodes agiles sur les projets, aujourd&#8217;hui on l&#8217;appelle pour secourir des projets soi-disant &laquo;&nbsp;agiles&nbsp;&raquo;.<br
/> Et par &laquo;&nbsp;agile&nbsp;&raquo; la plupart des clients entendent Scrum, la méthode la plus répandue. Il reproche à Scrum son silence sur les pratiques d&#8217;ingénierie logicielle à mettre en place <em>(contrairement à XP)</em>, pourtant indispensables à la viabilité d&#8217;un projet. Il critique également la <a
href="http://www.scrumalliance.org/" title="Scrum Alliance" >Scrum Alliance</a> et son système de certification ScrumMaster qui donnent l&#8217;impression que l&#8217;agilité est facile. La nature humaine nous incite à ne choisir que les côtés agréables <em>(les sprints et les daily scrums)</em> mais nous ignorons les côtés plus difficiles, qui sont aussi les plus importants : équipe co-localisée, auto-organisée, produit livrable à chaque fin d&#8217;itération, élimination des obstacles.</p><p>Cet article a déclenché de vives réactions dans la communauté agile, certaines un peu <a
href="http://blog.objectmentor.com/articles/2008/11/16/dirty-rotten-scrumdrels" title="puériles" >puériles</a>, d&#8217;autres plus constructives. Sur <a
href="http://www.infoq.com/news/2008/11/decline-of-agile" title="InfoQ" >InfoQ</a> par exemple, le <a
href="http://en.wikipedia.org/wiki/Hype_cycle" title="Gartner Hype Cycle" >Gartner Hype Cycle</a> est évoqué pour expliquer ce déclin. Après un pic d&#8217;attentes irréalistes concernant une technologie, celle-ci traverse un creux de désillusion avant de remonter pour atteindre son plateau de productivité. Les méthodes agiles traverseraient-elles actuellement ce creux ?</p><p>Le <a
href="http://www.touilleur-express.fr/2008/11/17/mda-scrum/" title="Touilleur" >Touilleur</a> cite <a
href="http://blog.robbowley.net/2008/11/15/lean-scrum/" title="Rob Bowley" >Rob Bowley</a> qui fait le rapprochement entre la déception de Scrum et l&#8217;engouement récent pour le <a
href="http://en.wikipedia.org/wiki/Lean_software_development" title="Lean Software Development" >Lean Software Development</a>. Il prédit pourtant que le Lean subira le même sort que Scrum, pour les mêmes raisons. Selon lui peu importe la méthode, il y a toujours des personnes qui se concentrent sur les outils plutôt que sur les vrais problèmes. Ces personnes, qui échouent avec Scrum aujourd&#8217;hui, échoueront avec le Lean demain.</p><h3><a
name="SOA"></a>SOA</h3><h4><a
name="SOAdelacrisededouteladsillusio"></a>SOA : de la crise de doute à la désillusion ?</h4><p>Nous évoquions en Mars dernier dans <em>&laquo;&nbsp;<a
href="http://blog.xebia.fr/2008/03/03/revue-de-presse-xebia-46/#annusHorribilis" title="2008, annus horribilis de la la SOA ?" >2008, annus horribilis de la la SOA ?</a>&laquo;&nbsp;</em> la crise de doute qui s&#8217;emparait du Burton Group, grand chantre de la SOA. La crise s&#8217;accentue aujourd&#8217;hui avec l&#8217;autre évangéliste de SOA, le Gartner Group, qui nous gratifie de <a
href="http://blogs.gartner.com/frank_kenney/2008/11/12/ahh-shucks-soa-is-a-failure/" title="Ahh Shucks, SOA Is A Failure (Frank Kenney)" >Ahh Shucks, SOA Is A Failure (Frank Kenney)</a>. À croire que le Gartner Group s&#8217;applique son célèbre <a
href="http://en.wikipedia.org/wiki/Hype_cycle" title="Hype cycle" >Hype cycle</a> et, après avoir loué SOA, tombe en pleine phase de désillusion.</p><p>Est-ce pour autant la fin de SOA ? Certainement pas, des ouvrages comme <a
href="http://www.enterpriseintegrationpatterns.com/" title="Enterprise Integration Patterns" >Enterprise Integration Patterns</a> ou <a
href="http://www.enterpriseintegrationpatterns.com/docs/hohpe_developing_in_soa_world.pdf" title="Developing in a Service-oriented World" >Developing in a Service-oriented World</a> <em>(Gregor Hohpe, Google)</em> ont beaucoup apporté à l&#8217;intégration des Systèmes d&#8217;Information.</p><p>Quant aux cabinets de conseils qui ont parfois <em>manqué de pragmatisme</em>, ils ont trouvé des nouvelles marottes avec les architectures du moment : <a
href="http://en.wikipedia.org/wiki/Representational_State_Transfer" title="Representational State Transfer (REST)" >Representational State Transfer (REST)</a> et <a
href="http://en.wikipedia.org/wiki/Web_Oriented_Architecture" title="Web Oriented Architecture (WOA)" >Web Oriented Architecture (WOA)</a> <em>(Cf. <a
href="http://blogs.gartner.com/nick_gall/2008/11/19/woa-putting-the-web-back-in-web-services/" title="Gartner - WOA: Putting the Web Back in Web Services" >Gartner &#8211; WOA: Putting the Web Back in Web Services</a> ou <a
href="http://apsblog.burtongroup.com/2008/09/the-toa-of-rest.html" title="Burton Group : The Tao Of REST" >Burton Group : The Tao Of REST</a>)</em>, sans oublier les promesses mirobolantes du <a
href="http://en.wikipedia.org/wiki/Software_as_a_service" title="Software As A Service (SaaS)" >Software As A Service (SaaS)</a> et du <a
href="http://en.wikipedia.org/wiki/Cloud_computing" title="Cloud Computing" >Cloud Computing</a> !</p><h3><a
name="Lecoindelatechnique"></a>Le coin de la technique</h3><h4><a
name="SeamlesfuturesorientationsdeSe"></a>Seam 3 : les futures orientations de Seam</h4><p>Gavin King, créateur d&#8217;Hibernate et Seam, présente les futures orientations de <a
href="http://in.relation.to/Bloggers/Seam3" title="Seam3" >Seam3</a>.</p><p>Il indique que Seam 2 était une première couche. Cette couche a pour responsabilité de gérer des composants à état, configurables et injectables pour le développement d&#8217;applications Web riches. Il permet de s&#8217;abstraire du code &laquo;&nbsp;glue&nbsp;&raquo; que l&#8217;on doit faire pour intégrer différentes technologies <em>(JSF, JPA, &#8230;)</em>. Cette première couche est focalisée sur l&#8217;intégration de services à état côté serveur et sur la réalisation d&#8217;interface graphique <em>(par défaut avec JSF)</em>.</p><p>Seam 3 ajoutera une seconde couche, qui aura pour responsabilité de faire de WebBeans le coeur de Seam, d&#8217;améliorer l&#8217;intégration de la sécurité, de <a
href="http://www.jboss.org/drools/" title="Drools" >Drools</a> et <a
href="http://www.jboss.com/fr/products/jbpm" title="jBPM" >jBPM</a>. L&#8217;idée est de faire de Seam 3 un framework d&#8217;infrastructure basé sur Web Beans. Seam 3 permettra donc l&#8217;intégration de moteur de workflow et de moteur de règles qui devrait apporter de nouveaux outils pour la conception et la réalisation d&#8217;applications.</p><p>Seam 3 pourrait conduire à une réécriture de Seam 2 afin d&#8217;intégrer Web Beans.</p><p>A noter que le 2 décembre 2008 se tiendra une <a
href="http://www.parisjug.org/xwiki/bin/view/Meeting/20081202" title="soirée JBoss au Paris JUG" >soirée JBoss au Paris JUG</a>, dont la deuxième partie sera entièrement consacrée au framework Seam.</p><h4><a
name="SortiedeNetbeans"></a>Sortie de Netbeans 6.5</h4><p>Netbeans.org annonce la sortie de son IDE NetBeans 6.5 : <a
href="http://www.netbeans.org/servlets/NewsItemView?newsItemID=1313" title="NetBeans.org is proud to announce the availability of NetBeans IDE 6.5!" >NetBeans.org is proud to announce the availability of NetBeans IDE 6.5!</a>.</p><p>Cette nouvelle version met à disposition des développeurs :</p><ul><li>le debug Javascript dans Internet Explorer et Firefox,</li><li>le développement JavaFX <em>(compilation, déploiement, prévisualisation, édition, &#8230;)</em>,</li><li>l&#8217;intégration de Glassfish V3 Prelude <em>(possibilité de scripter en JRuby)</em>,</li><li>un plugin pour le développement en python : <a
href="http://dlc.sun.com.edgesuite.net/netbeans/6.5/python/ea/" title="NetBeans IDE for Python EA Download" >NetBeans IDE for Python EA Download</a>,</li><li>l&#8217;amélioration et l&#8217;intégration de nouvelles technologies de développement : PHP, Groovy / <a
href="http://grail.sourceforge.net/" title="GRails" >GRails</a>, Ruby <em>(<a
href="http://www.rubyonrails.org/" title="RoR - Ruby On Rails" >RoR &#8211; Ruby On Rails</a>, <a
href="http://rake.rubyforge.org/" title="rake" >rake</a>)</em>,</li><li>et bien d&#8217;autres : <a
href="http://www.netbeans.org/community/releases/65/" title="NetBeans IDE 6.5 Release Information" >NetBeans IDE 6.5 Release Information</a>, <a
href="http://wiki.netbeans.org/NewAndNoteWorthyNB65" title="NewAndNoteWorthyNB65" >NewAndNoteWorthyNB65</a>.</li></ul><p>Netbeans s&#8217;avère une alternative de plus en plus crédible à Eclipse. Il possède des avantages non négligeables par rapport à ce dernier : meilleur support Javascript <em>(et du développement Web avec PHP)</em>, support de Python, JavaFx, etc.</p><p>Pour plus d&#8217;informations, voici quelques screencasts qui montrent le fonctionnement de Netbeans : <a
href="http://cld.blog-city.com/netbeans_ide_65_released_introductory_screencast_released.htm" title="NetBeans IDE 6.5 Released; Introductory Screencast Released" >NetBeans IDE 6.5 Released; Introductory Screencast Released</a>.</p><h4><a
name="SortiedeSOAPUI"></a>Sortie de SOAP UI 2.5</h4><p>SoapUI est un outil graphique pour tester les services web. Il permet d&#8217;inspecter, invoquer, développer, créer des tests de charges et des tests fonctionnels sur des services web. Il apporte aussi des plugins pour Eclipse, IntelliJ IDEA et NetBeans.</p><p>SoapUI 2.5 apporte un grand nombre de fonctionnalités :</p><ul><li><strong>Inspection</strong> et <strong>invocation</strong> :<ul><li
style="font-size:1.0em;">Importation et analyse de fichiers WSDL.</li><li
style="font-size:1.0em;">Appel des différentes opérations d&#8217;un service web.</li><li
style="font-size:1.0em;">SSL / authentification / sécurité WS.</li></ul></li><li><strong>Développement</strong> et <strong>validation</strong> :<ul><li
style="font-size:1.0em;">Génération de stubs client et serveur pour les frameworks les plus populaires : Axis 1.x/2.x, XFire / CXF, JWSDP, Oracle, .NET, GSoap, JBossWS.</li><li
style="font-size:1.0em;">Génération de XML bindings pour JAXB et XMLB.</li></ul></li><li><strong>Tests fonctionnels</strong> :<ul><li
style="font-size:1.0em;">Génération de séries de tests et de testcases sur la base du WSDL.</li><li
style="font-size:1.0em;">Utilisation de scripts « Groovy » pour l&#8217;exécution de tests.</li></ul></li><li><strong>Tests de charge</strong> :<ul><li
style="font-size:1.0em;">Établissement de tests de charge à partir de testcases fonctionnels.</li><li
style="font-size:1.0em;">Établissement d&#8217;assertions, tant au niveau de la performance que de la fonctionnalité.</li><li
style="font-size:1.0em;">Analyse de performance pour des scénarios variés..</li></ul></li></ul><p>Pour voir la liste complète des fonctionnalités, rendez-vous sur <a
href="http://www.soapui.org/features.html" title="le site du projet" >le site du projet</a>.</p><p>Très facile d&#8217;utilisation, SoapUI devient de plus en plus un leader incontournable dans le test des services web en open source. Il existe en version gratuite et open source et en version payante appelée &laquo;&nbsp;SoapUI Pro&nbsp;&raquo;.</p><p>Vous pouvez <a
href="http://sourceforge.net/project/showfiles.php?group_id=136013&#038;package_id=163662&#038;release_id=568878" title="télécharger" >télécharger</a> l&#8217;outil, ou l&#8217;utiliser directement avec le déploiement Java Web Start. Java 1.5 est indispensable à son utilisation.</p><h4><a
name="SurvoldelarchitectureMySpace"></a>Survol de l&#8217;architecture MySpace</h4><p><a
href="http://www.infoq.com/interviews/MySpace-Architecture-Dan-Farino" title="InfoQ poursuit sa série sur les architectures des grands du Web 2.0" >InfoQ poursuit sa série sur les architectures des grands du Web 2.0</a>, avec l&#8217;interview de Dan Farino, architecte principal du site communautaire <a
href="http://www.myspace.com/" title="MySpace" >MySpace</a>.</p><p>Nous entrerons probablement moins dans les détails de cette architecture pour la bonne et simple raison que MySpace est l&#8217;un des seuls site internet de cette taille à tourner sous .Net. Cependant, les grands principes de performances qui permettent au site communautaire de gérer plusieurs millions de visiteurs par jour, et un contenu en constante augmentation, s&#8217;appliquent à n&#8217;importe quelle technologie.</p><ul><li>Mettre l&#8217;accent sur l&#8217;automatisation : avec des fermes comportant plusieurs centaines de serveurs <em>(300 serveurs web IIS frontaux par exemple)</em>, il est vital que toutes les opérations d&#8217;administration des serveurs soient automatisées à une large échelle.</li><li>La détection des anomalies est la première étape nécessaire à l&#8217;amélioration des performances : à cette fin, Dan Farino a dû écrire un outil de supervision sur mesure permettant de &#8216;tracer&#8217; chaque requête à travers les centaines de serveurs de l&#8217;architecture. Cette problématique est relativement courante.</li><li>Pour chaque problème de performance ou de scalling détecté, l&#8217;équipe d&#8217;architectes de MySpace a favorisé la solution sur mesure aux nombreux outils &#8216;génériques&#8217; proposés par Microsoft. On notera en particulier :<ul><li
style="font-size:1.0em;">Le développement d&#8217;un système de cache spécifique, afin de s&#8217;affranchir des problèmes <em>(connus)</em> de GarbageCollection en .Net, et afin d&#8217;alléger la charge pesant sur les serveurs de DB.</li><li
style="font-size:1.0em;">Le développement d&#8217;un serveur de fichiers, en Linux, permettant d&#8217;adresser les fichiers aux utilisateurs finaux directement en HTTP, et gérant la redondance des fichiers audio, video <em>(qui sont la vraie valeur ajoutée de MySpace)</em>.</li><li
style="font-size:1.0em;">Le développement d&#8217;un système d&#8217;introspection du code .Net en temps réel <em>(mesure des temps d&#8217;appels, des allocations mémoire, levée d&#8217;exception, &#8230;)</em> écrit en C++ <em>(afin de monitorer le code .Net de la manière la plus indépendante possible)</em>.</li><li
style="font-size:1.0em;">La création d&#8217;un système de &#8216;load balancing&#8217; spécifique, permettant de rapidement isoler un serveur défaillant et de n&#8217;impacter qu&#8217;un minimum d&#8217;utilisateurs.</li></ul></li></ul><p>Et bien sûr, MySpace respecte un principe que nous avons maintenant rencontré dans tous les sites gérant un trafic ou un contenu important, le partitionnement horizontal et vertical des bases de données, en fixant une limite d&#8217;un million d&#8217;utilisateurs par DB.</p><p>Les autres épisodes de la série disponibles sur notre blog :</p><ul><li><a
href="http://blog.xebia.fr/2008/06/02/revue-de-presse-xebia-59/#eBayexposelesgrandsprincipesdu" title="Ebay" >Ebay</a></li><li><a
href="http://blog.xebia.fr/2008/06/09/revue-de-presse-xebia-60/#LesprincipesarchitecturauxdeLi" title="LinkedIn" >LinkedIn</a></li><li><a
href="http://blog.xebia.fr/2008/10/06/revue-de-presse-xebia-77/#LesdessousdInfoQ" title="InfoQ" >InfoQ</a></li></ul><h4><a
name="OraclesortsonIncubateurCoheren"></a>Oracle sort son Incubateur Coherence</h4><p>Oracle tente d&#8217;élargir la communauté &#8216;Coherence&#8217; après l&#8217;ouverture du mois dernier de son nouveau site web <a
href="http://coherence.oracle.com/display/INCUBATOR/" title="Coherence Incubator" >Coherence Incubator</a>. Veillez à ne pas comparer celui-ci à l&#8217;incubateur Apache, son fonctionnement est tout autre. &#8216;Coherence Incubator&#8217; a été créé dans le but de regrouper un ensemble de projets d&#8217;exemples, chacun d&#8217;entre eux proposant une implémentation de référence pour un cas d&#8217;utilisation standard de l&#8217;outil. Il s&#8217;agit donc d&#8217;un ensemble de bonnes pratiques validées par Oracle. Oracle espère par ce biais faciliter l&#8217;accès à son outil.</p><p>Pour mémoire, <a
href="http://www.oracle.com/technology/products/coherence/index.html" title="Oracle Coherence" >Oracle Coherence</a> se positionne comme l&#8217;une des solutions les plus complètes de grilles de données distribuées. Il  permet de clusteriser vos applications sur un environnement hardware évolutif. Par exemple, l&#8217;ajout et la suppression de machine s&#8217;effectuent sans contrarier la réplication, la distribution et le cache de données au sein du cluster.</p><p>Un mois après sa sortie, l&#8217;incubateur Coherence contient les projets suivants :</p><ul><li><a
href="http://coherence.oracle.com/display/INCUBATOR/Coherence+Common" title="coherence common" >coherence common</a> : un regroupement de classes utilitaires et bonnes pratiques. Utilisés par les autres projets de l&#8217;incubateur.</li><li>Implémentation distribuée du <a
href="http://coherence.oracle.com/display/INCUBATOR/Command+Pattern" title="command pattern" >command pattern</a>.</li><li>Implémentation du <a
href="http://coherence.oracle.com/display/INCUBATOR/Functor+Pattern" title="functor pattern" >functor pattern</a>. Il s&#8217;agit d&#8217;une extension au &#8216;command pattern&#8217; qui permet de renvoyer à l&#8217;appelant des valeurs de retour et des exceptions.</li><li>Implémentation partielle du pattern <a
href="http://coherence.oracle.com/display/INCUBATOR/Messaging+Pattern" title="messaging" >messaging</a>. Messages non persistés, managés en mémoire par Coherence.</li><li>Implémentation du pattern <a
href="http://coherence.oracle.com/display/INCUBATOR/Push+Replication+Pattern" title="Push Replication" >Push Replication</a>. Propagation des modifications des données, réplication.</li></ul><p>Si le contenu de cet incubateur n&#8217;est pas encore très impressionnant, il aura le mérite de servir de bon point de départ aux futurs nouveaux utilisateurs de Coherence. Le nombre de cas d&#8217;utilisation est encore très faible ; reste à savoir à quelle vitesse Oracle enrichira-t-il celui-ci. Après un mois d&#8217;utilisation, seul un nouveau projet a été créé.</p> ]]></content:encoded> <wfw:commentRss>http://blog.xebia.fr/2008/11/24/revue-de-presse-xebia-84/feed/</wfw:commentRss> <slash:comments>6</slash:comments> </item> <item><title>Revue de Presse Xebia</title><link>http://blog.xebia.fr/2008/11/10/revue-de-presse-xebia-82/</link> <comments>http://blog.xebia.fr/2008/11/10/revue-de-presse-xebia-82/#comments</comments> <pubDate>Mon, 10 Nov 2008 17:57:51 +0000</pubDate> <dc:creator>Xebia France</dc:creator> <category><![CDATA[Revue de presse]]></category> <category><![CDATA[GlassFish]]></category> <category><![CDATA[J2EE]]></category> <category><![CDATA[Java / JEE]]></category> <category><![CDATA[JBoss]]></category> <category><![CDATA[Méthodes agiles]]></category> <category><![CDATA[Restlet]]></category> <category><![CDATA[SCRUM]]></category> <category><![CDATA[Sun]]></category> <guid
isPermaLink="false">http://blog.xebia.fr/?p=970</guid> <description><![CDATA[La revue de presse de l’actualité Java/J2EE hebdomadaire proposée par Xebia. Actualité éditeurs / SSII Sun délaisserait Swing ? Entre sur réaction et conflit d&#8217;intérêts Agilité ScrumMaster A.O.C Getting Real : les conseils de 37Signals Le coin de la technique GlassFish v3 Prelude, Sun fait le Buzz Restlet 1.1.0: Plus de souplesse et une implémentation [...]]]></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/10/revue-de-presse-xebia/#SundlaisseraitSwingEntresurrac">Sun délaisserait Swing ? Entre <em>sur réaction</em> et conflit d&#8217;intérêts</a></li></ul><p><strong>Agilité</strong></p><ul><li><a
href="http://blog.xebia.fr/2008/11/10/revue-de-presse-xebia/#ScrumMasterAOC">ScrumMaster A.O.C</a></li><li><a
href="http://blog.xebia.fr/2008/11/10/revue-de-presse-xebia/#GettingReallesconseilsdeSignal">Getting Real : les conseils de 37Signals</a></li></ul><p><strong>Le coin de la technique</strong></p><ul><li><a
href="http://blog.xebia.fr/2008/11/10/revue-de-presse-xebia/#GlassFishvPreludeSunfaitleBuzz">GlassFish v3 Prelude, Sun fait le Buzz</a></li><li><a
href="http://blog.xebia.fr/2008/11/10/revue-de-presse-xebia/#RestletPlusdesouplesseetuneimp">Restlet 1.1.0: Plus de souplesse et une implémentation de JAX-RS 1.0:</a></li><li><a
href="http://blog.xebia.fr/2008/11/10/revue-de-presse-xebia/#modclusterJBossfaitcavalierseu">mod_cluster : JBoss fait cavalier seul pour l&#8217;après mod_jk</a></li><li><a
href="http://blog.xebia.fr/2008/11/10/revue-de-presse-xebia/#JSRWebBeansdisponibleenPublicR">JSR-299 : Web Beans disponible en <em>Public Review Draft</em></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/10/revue-de-presse-xebia/#JourneGlassFishetJavaParischez">Journée &laquo;&nbsp;GlassFish et Java&nbsp;&raquo; à Paris chez Sun</a></li></ul><h3><a
name="ActualitditeursSSII"></a>Actualité éditeurs / SSII</h3><h4><a
name="SundlaisseraitSwingEntresurrac"></a>Sun délaisserait Swing ? Entre <em>sur réaction</em> et conflit d&#8217;intérêts</h4><p>Il a suffit que Sun annonce son désengagement temporaire de <a
href="http://swinglabs.org/" title="SwingLabs" >SwingLabs</a> pour que la blogosphère s&#8217;enflamme et prédise la fin de Swing <em>(<a
href="http://forums.java.net/jive/thread.jspa?messageID=315074&#038;tstart=0#315074" title="ici" >ici</a>, <a
href="http://glaforge.free.fr/weblog/?itemid=258" title="là" >là</a>, ou encore <a
href="http://weblogs.java.net/blog/kirillcool/archive/2008/11/sun_setting_dow.html" title="là" >là</a> )</em>.</p><p>Swing Labs est l&#8217;incubateur des nouveaux composants et des nouvelles fonctionnalités de Swing <em>(cf. <a
href="http://swinglabs.org/docs/presentations/2008/JavaOne/J1-Swinglabs.pdf" title="SwingLabs - Status Update @ Java One 2008" >SwingLabs &#8211; Status Update @ Java One 2008</a> par Richard Bair, SwingLabs Project Lead, Sun Microsystems)</em>. Les développements y sont réalisés en open source <em>(GNU LGPL)</em> avec un copyright &laquo;&nbsp;Sun Microsystems, Inc&nbsp;&raquo;. On retrouve ici la stratégie fréquente de Sun d&#8217;un mode Open Source à gouvernance exclusive avec Copyright Sun qui permet un <a
href="http://en.wikipedia.org/wiki/Dual-licensing" title="dual licensing" >dual licensing</a>. Grâce à son copyright, Sun est libre de proposer le code sous un autre contrat de licence. La contre partie de ce copyright Sun Microsystems est que les contributions extérieures à Sun sont peu probables ; peu de développeurs et d&#8217;entreprise sont prêts à céder leur copyright à un a acteur commercial (1).</p><p>Le désengagement de Sun peut s&#8217;expliquer par l&#8217;énergie que la société place actuellement dans le lancement de son produit <a
href="http://www.sun.com/software/javafx/" title="Java FX" >Java FX</a> qui doit occuper ses développeurs d&#8217;interface graphique les plus talentueux. Si l&#8217;on ajoute que Sun restructure en ce moment ses équipes pour des raisons financières, cela laisse peut de monde pour s&#8217;occuper des nouveaux composants de Swing <em>(JavaFX et Swing partagent le même socle mais ont des composants de haut niveau différents)</em>.</p><p>Quel impact aura ce désengagement sur les évolutions de Swing ? On peut voir ici un conflit d&#8217;intérêts entre l&#8217;éditeur Sun Microsystem qui lance un produit stratégique et la responsabilité du fondateur du langage Java qui a pris la gouvernance exclusive sur un chantier d&#8217;évolution du langage.</p><p>Alors, Java FX a tué Swing ? On peut en douter ; Swing a toujours été important pour Sun <em>(Netbeans, Matisse, etc)</em> et Java FX enrichiera probablement plus Swing qu&#8217;il ne lui nuira. En revanche, l&#8217;agenda commercial de Sun et le lancement de Java FX risquent de retarder temporairement les évolutions de Swing.</p><p><em>(1) On notera que certains projets open source prennent eux aussi le copyright du code (les développeurs se dépossèdent de leur travail) et que cela ne freine pas les contributions. Par exemple, la Fondation Apache utilise l&#8217;<a
href="http://www.apache.org/licenses/LICENSE-2.0.html" title="Apache Software License" >Apache Software License</a> (ASL) et est propriétaire du copyright (&laquo;&nbsp;Licensed to the Apache Software Foundation (ASF)&#8230;&nbsp;&raquo;) ; la Fondation peut à tout moment exposer le code sous un nouveau contrat de licence, ce fut notamment le cas lors du passage de l&#8217;ASL version 1 à la version 2. Spring Framework a une approche différente puisque ce projet utilise lui aussi l&#8217;<a
href="http://www.apache.org/licenses/LICENSE-2.0.html" title="Apache Software License " >Apache Software License </a> mais a laissé le copyright aux auteurs (&laquo;&nbsp;Copyright 2002-2005 the original author or authors&nbsp;&raquo;).</em></p><h3><a
name="Agilit"></a>Agilité</h3><h4><a
name="ScrumMasterAOC"></a>ScrumMaster A.O.C</h4><p>À partir de janvier 2009, il vous faudra passer <a
href="http://www.infoq.com/news/2008/11/scrum-certification-test" title="un test" >un test</a> en plus du <a
href="http://www.scrumalliance.org/training/" title="CSM" >CSM</a> pour pouvoir être certifié ScrumMaster, comme l&#8217;annonce <a
href="http://danube.com/blog/michaeljames/the_scrummaster_certification_test" title="Michael James" >Michael James</a>. Il s&#8217;agira d&#8217;un questionnaire à choix multiple, actuellement en bêta-test au <a
href="http://jeffsutherland.com/scrum/2008/10/scrum-gathering-stokholm-pretty-good.html" title="Scrum Gathering Stockholm" >Scrum Gathering Stockholm</a>.<br
/> En effet jusqu&#8217;à maintenant il suffisait d&#8217;assister à un CSM pour être certifié ScrumMaster. N&#8217;importe qui, même sans aucune connaissance sur Scrum, pouvait assister à la formation et devenir ainsi &laquo;&nbsp;ScrumMaster&nbsp;&raquo;. Le terme &laquo;&nbsp;certification&nbsp;&raquo; était donc <a
href="http://www.aubryconseil.com/dotclear/index.php/2007/02/26/181-la-certification-scrummaster-c-est-pipeau" title="trompeur" >trompeur</a>. Ce manque de garantie était d&#8217;ailleurs largement <a
href="http://www.infoq.com/news/2007/03/Scrum-CSM-debate" title="critiqué" >critiqué</a> par la communauté agile.<br
/> Tom Mellor rappelle qu&#8217;à l&#8217;origine Ken Schwaber a créé le CSM en pied-de-nez au <a
href="http://fr.wikipedia.org/wiki/PMI" title="PMI" >PMI</a>. L&#8217;objectif du CSM n&#8217;est pas de découvrir le rôle de ScrumMaster mais de comprendre et maîtriser les concepts de Scrum.</p><h4><a
name="GettingReallesconseilsdeSignal"></a>Getting Real : les conseils de 37Signals</h4><p>Kris Jordan avait recueilli les <a
href="http://www.krisjordan.com/2008/09/17/jason-fried-10-things-weve-learned-at-37signals/" title="leçons qu'ils ont apprises chez 37Signals" >leçons qu&#8217;ils ont apprises chez 37Signals</a> lors de la conférence donnée par Jason Fried pendant la <a
href="http://en.oreilly.com/webexny2008/" title="Web 2.0 Expo" >Web 2.0 Expo</a>.<br
/> David Larlet <a
href="http://www.biologeek.com/conferences,life-hacks,traduction/37signals-ce-quils-ont-appris/" title="a traduit" >a traduit</a> ce recueil qui synthétise les idées du célèbre manifeste <a
href="https://gettingreal.37signals.com/" title="Getting Real" >Getting Real</a> de <a
href="https://www.37signals.com/" title="37Signals" >37Signals</a>. L&#8217;occasion de revoir les points importants :</p><ul><li><strong>Volatilité</strong> : les décisions sont limitées dans le temps, les plannings aussi. Les projections long terme ne servent à rien, les choses changent.</li><li><strong>Restez concentrés</strong> : concentrez-vous sur l&#8217;essentiel, le réel, ce qui est simple et qui ne change pas. Évitez les interruptions qui nuisent à la productivité.</li><li><strong>Travailler moins pour produire plus</strong> : ignorez ce qui n&#8217;est pas important, vous pourrez travailler moins pour aboutir à un produit plus simple mais d&#8217;aussi bonne qualité.</li></ul><h3><a
name="Lecoindelatechnique"></a>Le coin de la technique</h3><h4><a
name="GlassFishvPreludeSunfaitleBuzz"></a>GlassFish v3 Prelude, Sun fait le Buzz</h4><p>Difficile de passer à côté de cette actualité cette semaine : la sortie de <a
href="http://www.sun.com/software/products/glassfishv3_prelude/index.xml" title="GlassFish V3 Prelude" >GlassFish V3 Prelude</a>. Une <a
href="http://blogs.sun.com/theaquarium/entry/glassfish_v3_prelude_launching_today" title="pluie de billets" >pluie de billets</a> sur les blogs de Sun a accompagné la sortie de cette version &#8216;démo&#8217; de son futur nouveau serveur d&#8217;applications dont la sortie est prévue pour 2009. Notez tout de même que cette version est supportée par Sun et est prête pour tourner en production, veillez donc à ne pas le comparer à une version bêta.</p><p>Le kernel de FlassFish v3 Prelude repose sur une architecture modulaire. Pas de surprise à ce niveau, Sun reste dans la lignée de <a
href="http://blog.xebia.fr/2008/04/21/revue-de-presse-xebia-53/#JavaModuleSystemJSRvsOSGILarco" title="ses previews" >ses previews</a>, GlassFish repose sur <a
href="http://felix.apache.org" title="Apache Felix" >Apache Felix</a>, l&#8217;implémentation Apache du runtime <a
href="http://www.osgi.org/Specifications/HomePage" title="OSGi R4" >OSGi R4</a>. La liaison entre cette technologie et le centre de mises à jour inclus, vous permettra d&#8217;activer, supprimer simplement les différentes technologies proposées : Servlet 3.0, JRuby, Groovy, Grails, &#8230; Et c&#8217;est la que repose toute l&#8217;utilité d&#8217;un tel kernel, vous ne chargez que ce qui vous intéresse et optimisez du même coup les temps de démarrage et consommation mémoire.</p><p>Offrant également un avant-goût de JEE 6 (dont la sortie est prévue pour début 2009), cette version de GlassFish vous permettra de tester certaines fonctionnalités de la future version de Java Enterprise, dont :</p><ul><li>JAX-RS 1.0, vous permettant le développement de services REST, les <a
href="http://blog.xebia.fr/2008/09/29/revue-de-presse-xebia-76/#LesspcificationsRESTseterminen" title="spécifications sont stables" >spécifications sont stables</a></li><li>EJB 3.1 Lite, se voulant résoudre les dernières <a
href="http://blog.xebia.fr/2008/10/06/revue-de-presse-xebia-77/#EJBsedvoile" title="lourdeurs" >lourdeurs</a> des EJB, GlassFish en sera la <a
href="http://blog.xebia.fr/2008/09/22/revue-de-presse-xebia-75/#JavaEEetsesRI" title="reference implementation" >reference implementation</a></li><li>JSF 2.0, dont les spécifications ne sont pas encore terminées</li></ul><p>Sun a fait en sorte que toutes les conditions soient réunies pour que le buzz prenne autour de cette sortie (sortie prématurée, technologies affriandantes&#8230;). Force est de constater que l&#8217;objectif est rempli ! GlassFish v2 était déjà considéré comme le nouveau chouchou des développeurs, cette nouvelle version séduira elle en plus les exploitants ? Le futur nous le dira.</p><p>Comme l&#8217;indique, le créateur de Java et employé à Sun, James Gosling dans <a
href="http://blogs.sun.com/jag/entry/we_ve_been_cranking" title="We've been cranking!" >We&#8217;ve been cranking!</a>, en complément de la sortie de Glassfish, Sun a mis à jour différents types de logiciels : son framework avec JDK6u10, son IDE avec Netbeans 6.5RC, sa base de données avec MySQL 5.1, son système d&#8217;exploitation avec OpenSolaris 2008.11.</p><h4><a
name="RestletPlusdesouplesseetuneimp"></a>Restlet 1.1.0: Plus de souplesse et une implémentation de JAX-RS 1.0:</h4><p>Restlet est un framework Java qui permet de développer des applications REST-ful. La version 1.1.0 est sortie fin octobre 2008. Le blog de <a
href="http://www.noelios.com/" title="Noelios Technologies" >Noelios Technologies</a> (la société qui dirige les développements sur Restlet) nous parle des différentes améliorations :</p><ul><li>Un support du protocole HTTP plus large.</li><li>Une implémentation de la <a
href="http://jcp.org/en/jsr/detail?id=311" title="JSR 311" >JSR 311</a> sur JAX-RS 1.0 la plus complète du moment.</li><li>Une intégration étendue et facilitée avec les technologies en vogue (Spring 2.5, JAXB 2.1, etc.)</li><li>Un portage de l&#8217;API côté client Restlet vers GWT 1.5 permettant d&#8217;appeler des applications REST-ful directement depuis le navigateur WEB. Ce fût d&#8217;ailleurs le sujet de la deuxième partie du <a
href="http://www.touilleur-express.fr/2008/11/05/soiree-gwt-et-restlet-au-paris-jug/" title="Paris JUG du mardi 4 novembre" >Paris JUG du mardi 4 novembre</a> présenté par Jérôme Louvel.</li><li>&#8230; et beaucoup d&#8217;autres disponibles sur <a
href="http://blog.noelios.com/2008/10/28/restlet-110-released/" title="le billet" >le billet</a> posté sur le blog de Noelios.</li></ul><p>Jérôme Louvel est le responsable principal du développement de Restlet. Il a été interviewé par <a
href="http://www.infoq.com/news/2008/11/restlet_1_1" title="InfoQ" >InfoQ</a> à propos de cette nouvelle version.<br
/> Trois questions ont été posées sur les points suivants :</p><ul><li>L&#8217;implémentation de la JSR 311 dans Restlet<br
/> <u>Réponse</u> : La plus complète, et l&#8217;objectif est d&#8217;obtenir le kit de compatibilité (TCK) nécessaire pour être certifié.</li><li>Les conditions d&#8217;utilisation de JAX-RS : seul ou avec l&#8217;API Restlet<br
/> <u>Réponse</u> : Après avoir distingué les différentes approches de JAX-RS et de Restlet API, annotations sur un POJO pour le premier, héritage des classes de base pour le second, Jérôme pense que s&#8217;il n&#8217;y a pas nécessité d&#8217;être conforme avec les standards de JEE, il est plus simple et puissant d&#8217;utiliser Restlet.</li><li>L&#8217;importance de la communauté Restlet<br
/> <u>Réponse</u> : 8 valideurs sur le core, 6 sur les extensions et 160 contributeurs soutenus par une communauté solidaire.</li></ul><p>Restlet 1.1.0 offre une implémentation très complète de JAX-RS 1.0 et s&#8217;intègre à plusieurs frameworks importants du marché.</p><h4><a
name="modclusterJBossfaitcavalierseu"></a>mod_cluster : JBoss fait cavalier seul pour l&#8217;après mod_jk</h4><p>Alors que la Fondation Apache propose depuis Httpd 2.2 le <a
href="http://blog.xebia.fr/2008/08/25/revue-de-presse-xebia-71/#TuningetoptimisationdeTomcatmo" title="duo mod_proxy_balancer / mod_proxy_http comme successeur de mod_jk pour se connecter à Tomcat" >duo mod_proxy_balancer / mod_proxy_http comme successeur de mod_jk pour se connecter à Tomcat</a>, JBoss se lance dans le développement de son propre module Httpd, <a
href="http://www.jboss.org/mod_cluster/" title="mod_cluster" >mod_cluster</a>, pour connecter le moteur Tomcat embarqué dans JBoss AS au serveur. mod_cluster met en avant les fonctionnalités suivantes :</p><ul><li><strong>Configuration dynamique des <em>workers http</em></strong> : alors que mod_proxy_balancer se limite pour le moment à l&#8217;interface web (/<a
href="http://httpd.apache.org/docs/2.2/mod/mod_proxy_balancer.html#enable" title="balancer-manager" >balancer-manager</a>) destinée aux humains, mod_cluster expose un <a
href="http://www.jboss.org/community/docs/DOC-11425" title="Cluster Management Protocol" >Cluster Management Protocol</a> qui permettra à des outils de déploiement de centraliser les opérations sur le serveur moteur de servlet et sur le serveur web (installation, mise à jour, désinstallation). Nous noterons au passage qu&#8217;une application Tomcat arrêtée renvoi des erreurs 404 qu&#8217;un load balancer ne sait pas interpréter pour marquer comme indisponible le servant alors qu&#8217;une erreur <a
href="http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.5.4" title="503 Service Unavailable" >503 Service Unavailable</a> ferait l&#8217;affaire. Ces fonctionnalités d&#8217;administration sont déjà disponibles dans des serveurs Java EE tels que Websphere (c.f. <a
href="http://publib.boulder.ibm.com/infocenter/ieduasst/v1r1m0/index.jsp?topic=/com.ibm.iea.was_v6/was/6.1/InstallationAndMigration/WASv61_CreateLocalWebServerDefinition/WASv61_CreateLocalWebServerDefinition_viewlet_swf.html" title="Websphere Education Center : eate a remote Web server definition" >Websphere Education Center : eate a remote Web server definition</a>).</li><li><strong>Gestion du cycle de vie des applications</strong> : mod_cluster apporte le très important concept de désactivation d&#8217;un servant (<a
href="http://www.jboss.org/community/docs/DOC-11425" title="DISABLE-APP:" >DISABLE-APP:</a>) qui fait hélas défaut à l&#8217;actuel mod_proxy_balancer. On pourra éteindre en douceur un noeud en reportant la charge vers les autres servants sans pour autant perdre les sessions en cours (dans le cas ou l&#8217;on n&#8217;a pas de réplication de sessions).</li><li><strong>Algorithme de load balancing basé sur la charge des serveurs</strong> : les load balancers déduisent le plus souvent la charge des servants à partir du nombre de requêtes ou du nombre de requêtes en cours d&#8217;exécution. mod_cluster expose une API pour que chaque servant puisse communiquer des informations plus fines (charge CPU de la machine, etc). Ce mécanisme sophistiqué concernera les besoins avancés alors que la plupart des installations peuvent se contenter d&#8217;un simple algorithme round robin</li><li><strong>Mise en avant du protocole HTTP en substitution à AJP</strong> : JBoss continuait à mettre en avant mod_jk et le protocole AJP (cf <a
href="http://www.jboss.org/file-access/default/members/jbossas/freezone/docs/Server_Configuration_Guide/beta500/html/ch18s01.html" title="JBoss AS Guide - 18.1. Configuring load balancing using Apache and mod_jk" >JBoss AS Guide &#8211; 18.1. Configuring load balancing using Apache and mod_jk</a>). La page semble aujourd&#8217;hui se tourner au profit du connecteur HTTP sur lequel portent les efforts du projet Tomcat.</li></ul><p>Espérons que ces travaux bénéficieront un jour au module mod_proxy_balancer intégré à Apache Httpd.</p><h4><a
name="JSRWebBeansdisponibleenPublicR"></a>JSR-299 : Web Beans disponible en <em>Public Review Draft</em></h4><p>Gavin King, le créateur d&#8217;Hibernate et le <em>Spec Lead</em> sur Web Beans, a annoncé sur le blog <a
href="http://in.relation.to/" title="InRelationTo" >InRelationTo</a> la sortie de la spécification Web Beans en <em>Public Review Draft</em> : <a
href="http://in.relation.to/Bloggers/WebBeansPublicReviewDraftReleased" title="Web Beans Public Review Draft released" >Web Beans Public Review Draft released</a>.</p><p>Cette spécification est issue des travaux ménés sur le framework <a
href="http://www.seamframework.org/" title="Seam" >Seam</a>. De plus, elle s&#8217;inspire des moteurs d&#8217;injection <a
href="http://code.google.com/p/google-guice/" title="Guice (Google)" >Guice (Google)</a> et <a
href="http://www.springframework.org/" title="Spring" >Spring</a>. Cependant Web Beans (et Seam) se démarque de Spring dans une approche orientée annotation plutôt que XML pour la configuration.</p><p>Web Beans a pour objectif de fournir un ensemble de services pour les composants JEE. La spécification définit :</p><ul><li>Le cycle de vie et les interactions de composants à état <em>(stateful)</em> dans des contextes définis et extensibles.</li><li>Un mécanisme d&#8217;injection de dépendance permettant de choisir les dépendances d&#8217;un composant au déploiement.</li><li>La possibilité d&#8217;utiliser un langage EL <em>(Expression Language)</em> étendu dans les pages JSP et JSP.</li><li>Un paradigme d&#8217;intercepteur dont un nouveau type d&#8217;intercepteur baptisé <em>Decorator</em>.</li><li>Un modèle de notification par événement.</li><li>Un contexte d&#8217;exécution Web.</li><li>Un SPI <em>(Service Provider Interface)</em> permettant l&#8217;intégration de framework tier dans Web Beans.</li></ul><p>Cette spécification a pour vocation d&#8217;uniformiser de manière globale le développement d&#8217;applications de gestion en se reposant sur d&#8217;autres spécifications : EJB, JSF, Java Servlets, Common Annotation.</p><p>C&#8217;est une spécification assez velue, car elle introduit beaucoup de nouveaux concepts largement expérimentés dans Seam :</p><ul><li>Scope,</li><li>Conversation,</li><li>Composant à état,</li><li>Intégration des standards ensemble EJB/JSF,</li><li>Modèle d&#8217;annotations, d&#8217;intercepteurs, &#8230;</li></ul><p>Cette spécification est indispensable dans le cas où vous voulez essentiellement développer avec des standards, mais elle peut être aussi, bien utile dans d&#8217;autres cas. Elle vous permettra de développer avec les standards comme JSF et EJB en utilisant leurs pleines puissances et en ayant à développer très peu de code pour intégrer les 2 technologies (pas de DTO <strike> <em>Data Transfer Object</em> </strike>, utilisation de <em>Binding</em> par annotation et EL).</p><h3><a
name="EvnementsdenotrecommunautenFra"></a>Evènements de notre communauté en France et à l&#8217;étranger</h3><h4><a
name="JourneGlassFishetJavaParischez"></a>Journée &laquo;&nbsp;GlassFish et Java&nbsp;&raquo; à Paris chez Sun</h4><p><a
href="http://blogs.sun.com/alexismp/entry/bloquez_la_date_12_decembre" title="Sun organise le vendredi 12 décembre une journée gratuite "GlassFish et Java"" >Sun organise le vendredi 12 décembre une journée gratuite &laquo;&nbsp;GlassFish et Java&nbsp;&raquo;</a> dans ses locaux au 42, avenue d&#8217;Iéna à Paris.<br
/> Cette journée sera l&#8217;occasion de couvrir un large spectre de la gamme Sun :</p><ul><li><a
href="https://glassfish.dev.java.net/" title="GlassFish" >GlassFish</a>,</li><li>Java EE 6,</li><li><a
href="https://grizzly.dev.java.net/" title="Grizzly Comet" >Grizzly Comet</a>,</li><li><a
href="https://jersey.dev.java.net/" title="Jersey" >Jersey</a>,</li><li><a
href="https://mq.dev.java.net/" title="OpenMQ" >OpenMQ</a>,</li><li><a
href="http://javafx.com/" title="JavaFX" >JavaFX</a>,</li><li><a
href="http://www.mysql.fr/" title="MySQL" >MySQL</a>,</li><li><a
href="https://opensso.dev.java.net/" title="OpenSSO" >OpenSSO</a>,</li><li><a
href="https://open-esb.dev.java.net/" title="OpenESB" >OpenESB</a>.</li></ul><p>Parmi les intervenants: Roberto Chinnici (spec lead), Richard Bair (tech lead), Paul Sandoz (spec lead), Linda Schneider (tech lead), Jean-François Arcand (tech lead), etc&#8230;</p><p>L&#8217;ouverture des inscriptions ne devrait pas tarder : A suivre sur <a
href="http://blogs.sun.com/alexismp/" title="le blog d'Alexis Moussine-Pouchkine" >le blog d&#8217;Alexis Moussine-Pouchkine</a> &#8230;</p> ]]></content:encoded> <wfw:commentRss>http://blog.xebia.fr/2008/11/10/revue-de-presse-xebia-82/feed/</wfw:commentRss> <slash:comments>3</slash:comments> </item> <item><title>Revue de Presse Xebia</title><link>http://blog.xebia.fr/2008/10/27/revue-de-presse-xebia-80/</link> <comments>http://blog.xebia.fr/2008/10/27/revue-de-presse-xebia-80/#comments</comments> <pubDate>Mon, 27 Oct 2008 17:49:53 +0000</pubDate> <dc:creator>Xebia France</dc:creator> <category><![CDATA[Revue de presse]]></category> <category><![CDATA[Amazon]]></category> <category><![CDATA[Android]]></category> <category><![CDATA[Google]]></category> <category><![CDATA[J2EE]]></category> <category><![CDATA[Java / JEE]]></category> <category><![CDATA[JBoss]]></category> <category><![CDATA[JMX]]></category> <category><![CDATA[Jopr]]></category> <category><![CDATA[JVM]]></category> <category><![CDATA[Seam]]></category> <guid
isPermaLink="false">http://blog.xebia.fr/?p=913</guid> <description><![CDATA[La revue de presse de l’actualité Java/J2EE hebdomadaire proposée par Xebia. Actualité éditeurs / SSII Google Android disponible en Open Source Amazon EC2 passe en production Le coin de la technique Sortie de Seam 2.1.0.GA JBoss AOP 2.0.0 disponible, JBoss AS 5 se rapproche &#8230; Embedded Jopr pour JBoss AS : une console JMX de [...]]]></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/10/27/revue-de-presse-xebia-80/#GoogleAndroiddisponibleenOpenS">Google Android disponible en Open Source</a></li><li><a
href="http://blog.xebia.fr/2008/10/27/revue-de-presse-xebia-80/#AmazonECpasseenproduction">Amazon EC2 passe en production</a></li></ul><p><strong>Le coin de la technique</strong></p><ul><li><a
href="http://blog.xebia.fr/2008/10/27/revue-de-presse-xebia-80/#SortiedeSeamGA">Sortie de Seam 2.1.0.GA</a></li><li><a
href="http://blog.xebia.fr/2008/10/27/revue-de-presse-xebia-80/#JBossAOPdisponibleJBossASserap">JBoss AOP 2.0.0 disponible, JBoss AS 5 se rapproche &#8230;</a></li><li><a
href="http://blog.xebia.fr/2008/10/27/revue-de-presse-xebia-80/#EmbeddedJoprpourJBossASunecons">Embedded Jopr pour JBoss AS : une console JMX de nouvelle génération</a></li><li><a
href="http://blog.xebia.fr/2008/10/27/revue-de-presse-xebia-80/#ExemplesdelaJSRlanouvellenouve">Exemples de la JSR 203 (la nouvelle nouvelle JSR I/O)</a></li><li><a
href="http://blog.xebia.fr/2008/10/27/revue-de-presse-xebia-80/#JVMbitOuimaisaveccompressionde">JVM 64 bits ? Oui mais avec compression des pointeurs</a></li></ul><h3><a
name="ActualitditeursSSII"></a>Actualité éditeurs / SSII</h3><h4><a
name="GoogleAndroiddisponibleenOpenS"></a>Google Android disponible en Open Source</h4><p>Google a officiellement mis à disposition le code source de la plateforme <a
href="http://code.google.com/android/" title="Android" >Android</a> et encourage les développeurs à la tester.</p><p>Cette annonce survient au moment du lancement du nouveau téléphone le HTC Dream G1 de HTC par T-Mobile aux États-Unis. Le code source est livré sous licence Apache, ce qui implique que son utilisation est gratuite et que les développeurs ne sont pas tenus de rendre public le code source de leurs nouveaux produits.</p><p>Le code source d&#8217;Android est à présent disponible au téléchargement à l&#8217;adresse suivante : <a
href="http://source.android.com/download" title="http://source.android.com/download" >http://source.android.com/download</a>.</p><p>Quant à ceux qui souhaiteraient développer des applications pour ces téléphones, Google recommande <a
href="http://www.ubuntu.com/" title="Ubuntu" >Ubuntu</a> comme environnement de programmation pour Android (il est également possible d&#8217;utiliser MacOS).</p><h4><a
name="AmazonECpasseenproduction"></a>Amazon EC2 passe en production</h4><p>Le service d&#8217;hébergement d&#8217;applications <a
href="http://aws.amazon.com/ec2/" title="Amazon EC2" >Amazon EC2</a> n&#8217;est plus une bêta depuis le 23 octobre. Aurait-on donc de nombreux changements à se mettre sous la dent ?<br
/> Pas vraiment. La seule <em>&laquo;&nbsp;révolution&nbsp;&raquo;</em> est l&#8217;introduction d&#8217;un <a
href="http://aws.amazon.com/ec2-sla/" title="SLA" >SLA</a> <em>(Service Level Agreement, autrement dit un engagement de résultat)</em> qui garantit une disponibilité à 99.95% du temps. Si le taux de service chute sous cette barre, le client peut remplir une demande et accéder à des remises commerciales <em>(autant dire qu&#8217;Amazon a dû considérablement stresser son système avant d&#8217;annoncer de tels chiffres)</em>.</p><p>Dans un futur proche, le service d&#8217;Amazon devrait se voir enrichi des fonctionnalités suivantes :</p><ul><li>Console d&#8217;administration.</li><li>Load Balancing.</li><li>Adaptation automatique à la charge <em>(AutoScaling)</em>.</li><li>Monitoring global de l&#8217;ensemble des instances.</li></ul><p>ainsi que de nouveaux logiciels : Windows Server 2003, SQL Server Standard 2005 ou Express <em>(déjà disponibles en bêta)</em>, Windows Server 2008 <em>(à venir)</em></p><p>Une nouvelle pierre dans le jardin des hébergeurs traditionnels&#8230;</p><h3><a
name="Lecoindelatechnique"></a>Le coin de la technique</h3><h4><a
name="SortiedeSeamGA"></a>Sortie de Seam 2.1.0.GA</h4><p>Dans une précédente revue de presse, nous vous avions présenté <a
href="http://blog.xebia.fr/2008/08/11/revue-de-presse-xebia-69/#LesnouveautsdeSeam" title="les nouveautés de Seam 2.1" >les nouveautés de Seam 2.1</a>. L&#8217;équipe Seam concrétise ces nouveautés avec <a
href="http://in.relation.to/Bloggers/Seam210GAReleased" title="la sortie officielle de Seam 2.1.0.GA" >la sortie officielle de Seam 2.1.0.GA</a>.</p><p>Seam 2.1.0.GA intègre les composants suivants :</p><ul><li><a
href="http://www.jboss.org/jbossrichfaces/" title="RichFaces 3.2" >RichFaces 3.2</a> <em>(implémentation JSF de JBoss)</em>.</li><li><a
href="http://code.google.com/webtoolkit/" title="GWT (Google)" >GWT (Google)</a>.</li><li><a
href="http://wicket.apache.org/" title="Wicket (Apache)" >Wicket (Apache)</a> <em>(exemple d&#8217;intégration de Wicket dans Seam : <a
href="http://in.relation.to/Bloggers/SeamlessWicketOrchestratingYourApplication" title="Seamless Wicket: Orchestrating your application">Seamless Wicket: Orchestrating your application</a>)</em>.</li><li><a
href="http://groovy.codehaus.org/" title="Groovy 1.5" >Groovy 1.5</a> <em>(pour rappel il est possible d&#8217;écrire des composants Seam avec le langage Groovy)</em>.</li><li><strong>JBoss Cache 2</strong> <em>(ou JBoss Cache ou EHCache)</em>.</li><li><strong>JAX-RS</strong> <em>(REST)</em> via l&#8217;implémentation du projet JBoss <a
href="http://www.jboss.org/resteasy/" title="RestEasy" >RestEasy</a>.<br
/> <em>A noter que RestEasy n&#8217;est actuellement qu&#8217;en version bêta.</em></li><li>Documentation pour intégrer Seam dans d&#8217;autres containers que JBoss AS : WebLogic, WebSphere, OC4J et Glassfish.</li></ul><p>Prochaine étape : Seam 2.1.1, l&#8217;équipe s&#8217;attachera à encore améliorer les performances, la scalabilité et le clustering de Seam.</p><p>En parallèle, la spécification Web Beans commence à pointer le bout de son nez : <a
href="http://in.relation.to/Bloggers/WebBeansTeaser" title="Web Beans Teaser" >Web Beans Teaser</a>.</p><p>Félicitation à l&#8217;équipe Seam pour le travail qui a été réalisé.</p><h4><a
name="JBossAOPdisponibleJBossASserap"></a>JBoss AOP 2.0.0 disponible, JBoss AS 5 se rapproche &#8230;</h4><p>La <a
href="http://www.jboss.org/feeds/post/jboss_aop_2_0_0_ga_released" title="sortie officielle de la version 2.0.0 de JBoss AOP" >sortie officielle de la version 2.0.0 de JBoss AOP</a> vient d&#8217;être annoncée. Après s&#8217;être posé <a
href="http://www.nabble.com/AOP-2.0.0.GA--td20087156.html" title="la question en début de semaine" >la question en début de semaine</a>, Kabir Khan a finalement décidé de publier celle-ci. Doit-on y voir les signes avant-coureurs d&#8217;une sortie imminente du nouveau serveur d&#8217;applications made in JBoss ? Il est encore un peu tôt pour le dire. Notez tout de même que JBoss AS 5 est en RC2 depuis déjà <a
href="http://sacha.labourey.com/2008/09/15/jboss-as-is-now-ee5-certified/" title="plus d'un mois" >plus d&#8217;un mois</a>, date à laquelle il avait franchi la plus grande marche lui restant à gravir <em>(La Certification JEE)</em>.</p><p>Pour en revenir au cœur du sujet, si JBoss AOP est directement intégré au sein du futur serveur d&#8217;applications, rien ne vous empêche d&#8217;utiliser celui-ci en <em>standalone</em>. La meilleure présentation de ce framework reste l&#8217;article de 5 pages publié sur DZone cet été : <a
href="http://java.dzone.com/news/an-introduction-aspect-oriente" title="An Introduction to Aspect-Oriented programming with JBoss AOP" >An Introduction to Aspect-Oriented programming with JBoss AOP</a> qui en présente les principales nouveautés :</p><ul><li>Un nouveau mode de weaving permettant l&#8217;ajout d&#8217;<code>advices</code> autour des exceptions <em>(before / after / throwing / finally)</em>.</li><li>L&#8217;interception des accès à chaque élément d&#8217;un tableau.</li><li>Un déploiement et une mise à jour à chaud des <code>advices</code> et des <code>interceptors</code>.</li><li>Une intégration avec le microcontainer JBoss AS 5.</li></ul><p>Autres liens :</p><ul><li>Le <a
href="http://www.jboss.org/jbossaop/" title="site officiel de JBoss AOP" >site officiel de JBoss AOP</a></li><li><a
href="http://www.jboss.org/jbossaop/docs/2.0.0.GA/RELEASE_NOTES.html" title="JBoss AOP 2.0.0 Release Note" >JBoss AOP 2.0.0 Release Note</a></li></ul><h4><a
name="EmbeddedJoprpourJBossASunecons"></a>Embedded Jopr pour JBoss AS : une console JMX de nouvelle génération</h4><p>JBoss vient de mettre à disposition de la communauté une console JMX nouvelle génération pour la supervision et l&#8217;administration d&#8217;une instance du serveur JBoss AS. La console est une application web basée sur le framework Seam. Le code source de l&#8217;application est livré sous licence LGPL.</p><p>Une particularité de la nouvelle console est la possibilité d&#8217;intégrer des plugins de <a
href="http://support.rhq-project.org/display/RHQ/RHQ+Plugin+Community" title="RHQ" >RHQ</a> et <a
href="http://www.jboss.org/community/docs/DOC-12824" title="Jopr" >Jopr</a>.</p><p>La version 1.0 offre la possibilité de gérer l&#8217;instance du serveur et les instances des applications d&#8217;entreprise, de mettre à jour les configurations, de contrôler les activités et d&#8217;exécuter les scripts qui résident dans le répertoire bin du serveur JBoss AS.</p><p>Une capture d&#8217;écran de la console :</p><div
align="center"> <img
src="http://blog.xebia.fr/wp-content/uploads/2008/10/embeddedjopr-console.jpg" border="0" alt="" /></div><p>Une présentation vidéo flash de la console Embedded Jopr en action : <a
href="http://www.jboss.org/embjopr/demo.html#" title="http://www.jboss.org/embjopr/demo.html#" >http://www.jboss.org/embjopr/demo.html#</a>.</p><h4><a
name="ExemplesdelaJSRlanouvellenouve"></a>Exemples de la JSR 203 (la nouvelle nouvelle JSR I/O)</h4><p>Les exemples concernant cette JSR NIO2 <em>(dont nous vous parlions déjà dans une <a
href="http://blog.xebia.fr/2008/07/21/revue-de-presse-xebia-66/#JSRMoreNewIOAPIsfortheJavaPlat" title="revue de presse précédente" >revue de presse précédente</a>)</em> continuent d&#8217;affluer.</p><p>Récemment, c&#8217;est Alex Miller <em>(<a
href="http://tech.puredanger.com/2008/10/22/some-jsr-203-examples/" title="examples">examples</a> and <a
href="http://tech.puredanger.com/2008/10/25/more-jsr203-features" title="more features">more features</a>)</em> qui nous propose des exemples d&#8217;utilisation balayant quelques nouvelles fonctionnalités de cette API.</p><p>Parmi ces changements, et pour ne garder que ceux qui nous simplifieront la vie <em>(et surtout les lignes de code)</em>, nous retiendrons :</p><ul><li><strong>L&#8217;objet central n&#8217;est plus <code>File</code> mais <code>Path</code></strong> : il faudra donc, comme pour le <a
href="http://help.eclipse.org/help32/index.jsp?topic=/org.eclipse.platform.doc.isv/reference/api/org/eclipse/core/runtime/Path.html" title="Path d'Eclipse RCP" >Path d&#8217;Eclipse RCP</a>, raisonner en &laquo;&nbsp;segments&nbsp;&raquo; (une liste de noms) représentant une hiérarchie, le dernier niveau représentant le fichier ou le dossier pointé.</li><li><strong>Méthodes <code>copyTo</code> et <code>moveTo</code> directement intégrées à l&#8217;objet</strong> : et oui, terminé les Streams pour une copie ou un déplacement ! Il suffit d&#8217;avoir le <code>Path</code> d&#8217;origine, de définir le <code>Path</code> de destination et d&#8217;opérer directement l&#8217;opération souhaitée telle que <code>fromPath.copyTo(toPath)</code> ou <code>fromPath.moveTo(toPath)</code>.</li><li><strong>Itérateurs améliorés</strong> : recherche de fichiers à partir d&#8217;un filtre (<code>DirectoryStream</code>) ou d&#8217;un visiteur (<code>SimpleFileVisitor</code>). Là encore, on a la possibilité d&#8217;effectuer un traitement métier soit sur un type de fichier spécifique <em>(défini par exemple par l&#8217;extension du fichier)</em> soit sur tous les fichiers présents dans un dossier.</li></ul><pre class="brush: java; title: ; notranslate">
// Filter
DirectoryStream xmlFiles = myFolderWithXmlFiles.newDirectoryStream(&quot;*.xml&quot;);
for (Path xmlFile : xmlFiles ) {
   // Stuff...
}
// Visitor
Files.walkFileTree(myFolerToVisit, new SimpleFileVisitor&lt;Path&gt;() {
   public FileVisitResult visitFile(Path file, BasicFileAttributes attrs) {
      // Stuff...
   }
});
</pre><ul><li>Lecture des attributs des fichiers dont les principaux sont :</li></ul><pre class="brush: java; title: ; notranslate">
// Standard file attributes
BasicFileAttributes attrs = Attributes.readBasicFileAttributes(Path.get(&quot;test.xml&quot;), true);
TimeUnit scale = attrs.resolution();
new Date(scale.toMillis(attrs.creationTime));
new Date(scale.toMillis(attrs.lastAccessTime));
new Date(scale.toMillis(attrs.lastModifiedTime));
attrs.isDirectory();attrs.isFile();attrs.isSymbolicLink();attrs.isOther();attrs.size();
...
// Dos file attributes
DosFileAttributes attrs = Attributes.readDosFileAttributes(Path.get(&quot;test.xml&quot;), true);
attrs.isArchive();attrs.isReadOnly();attrs.isHidden();attrs.isSystem();
...
// Posix file attributes
PosixFileAttributes attrs = Attributes.readPosixFileAttributes(Path.get(&quot;test.xml&quot;), true);
attrs.permissions();attrs.owner();attrs.group();
...
</pre><p>Cette très attendue API est prévue pour Java 7.</p><h4><a
name="JVMbitOuimaisaveccompressionde"></a>JVM 64 bits ? Oui mais avec compression des pointeurs</h4><p>La généralisation des processeurs x86 et des systèmes d&#8217;exploitation 64 bits amène les exploitants à étudier l&#8217;utilisation de JVM 64 bits pour les serveurs d&#8217;applications Java. Si les JVM 64 bits permettent d&#8217;allouer de larges heap (> 3 Go), l&#8217;augmentation de la taille des pointeurs (de 4 à 8 octets) nuit aux performances et à la consommation mémoire (cf <a
href="http://blog.xebia.fr/2008/05/26/revue-de-presse-xebia-58/#Javabitspassisouventunebonneid" title="Revue de Presse du 26/05/2008" >Revue de Presse du 26/05/2008</a>).</p><p>C&#8217;est ce que montre David Dagastine, Java Platform Performance Lead, dans son article <a
href="http://blogs.sun.com/dagastine/entry/no_tuning_required_java_se" title="<strong>No Tuning Required: Java SE Out-of-Box Vs. Tuned Performance</strong>&nbsp;&raquo; >*No Tuning Required: Java SE Out-of-Box Vs. Tuned Performance*</a>. Lorsque Sun configure ses JVM x86 pour <a
href="http://www.spec.org/jbb2005/" title="SpecJbb2005" >SpecJbb2005</a>, la mémoire allouée à la JVM 64 bits est le double de celle allouée à la version 32 bits alors que les performances de cette version 32 bits sont tout de même 13% meilleures que celles de la version 64 bits.</p><div
align="center"> <img
src="http://blog.xebia.fr/wp-content/uploads/2008/10/oobvtuned-1.jpg" border="0" alt="" /></div><p>Marcus Lagergren (BEA Systems) et Bob Kasten (Intel) exposent la parade mise en place par BEA :<br
/> <strong><a
href="http://www.bea.com/dev2dev/events/webinarMay31.ppt" title="Oracle/BEA : Aim High with JRockit on Intel Architecture">Oracle/BEA : Aim High with JRockit on Intel Architecture</a></strong></p><p>JRockit 64 bits offre depuis la version 5.0-R26.4 un mécanisme de compression des pointeurs (<a
href="http://edocs.bea.com/jrockit/jrdocs/refman/optionXX.html#wp1021022" title="-XXcompressedRefs" >-XXcompressedRefs</a>, activé par défaut si la taille de la heap est inférieure à 4 Gb) pour concilier les performances et la consommation mémoire des JVM 32 bits avec l&#8217;allocation de larges Heap spécifique aux 64 bits.</p><p><a
href="http://edocs.bea.com/jrockit/releases/5026x/relnotes/relnotes.html#wp1077669" title="JRockit 5.0 R26-4 release notes" >JRockit 5.0 R26-4 release notes</a> : <em>&laquo;&nbsp;Compressed references has greatly increased the performance on 64-bit platforms.&nbsp;&raquo;</em></p><div
align="center"> <img
src="http://blog.xebia.fr/wp-content/uploads/2008/10/specjbb.gif" border="0" alt="" /></div><p><strong>Aujourd&#8217;hui, seuls les mécanismes de compression de pointeurs disponibles sur les JVM JRockit 5.0+ et IBM 6.0 permettent d&#8217;utiliser des JVM 64 bits sans dégradation des performances (10-20%) ni augmentation de la consommation heap (> 50%). Ces mécanismes ne sont pas encore disponibles sur la JVM de Sun.</strong></p><p>Pour conclure, on citera les communications &laquo;&nbsp;officielles&nbsp;&raquo; de Sun et d&#8217;IBM sur ce sujet :</p><p><strong><a
href="http://java.sun.com/docs/hotspot/HotSpotFAQ.html#64bit_performance" title="Sun : FAQ About the Java HotSpot VM / What are the performance characteristics of 64-bit versus 32-bit VMs?" >Sun : FAQ About the Java HotSpot VM / What are the performance characteristics of 64-bit versus 32-bit VMs?</a></strong></p><p><em>&laquo;&nbsp;Generally, the benefits of being able to address larger amounts of memory come with a small performance loss in 64-bit VMs versus running the same application on a 32-bit VM. This is due to the fact that every native pointer in the system takes up 8 bytes instead of 4.</em><br
/> <em>&#8230;</em><br
/> <em>The performance difference comparing an application running on a 64-bit platform versus a 32-bit platform on SPARC is on the order of 10-20% degradation when you move to a 64-bit VM.&nbsp;&raquo;</em></p><p><strong><a
href="http://www-01.ibm.com/support/docview.wss?uid=swg27013860" title="IBM Java Technology Center: What's the Difference Between 32 and 64 Bit Java?" >IBM Java Technology Center: What&#8217;s the Difference Between 32 and 64 Bit Java?</a> (<a
href="http://www-01.ibm.com/support/docview.wss?uid=swg27013860&#038;aid=1" title="pdf">pdf</a>)</strong></p><p><em>&laquo;&nbsp;At Java 5, 64 bit can be around 20% slower than corresponding 32 bit runtime</em><br
/> <em>&#8230;</em><br
/> <em>We assume a ~20-30% increase in object size heap consumption &#8211; but can be much larger&nbsp;&raquo;</em></p> ]]></content:encoded> <wfw:commentRss>http://blog.xebia.fr/2008/10/27/revue-de-presse-xebia-80/feed/</wfw:commentRss> <slash:comments>2</slash:comments> </item> <item><title>Revue de Presse Xebia</title><link>http://blog.xebia.fr/2008/09/29/revue-de-presse-xebia-76/</link> <comments>http://blog.xebia.fr/2008/09/29/revue-de-presse-xebia-76/#comments</comments> <pubDate>Mon, 29 Sep 2008 17:36:27 +0000</pubDate> <dc:creator>Xebia France</dc:creator> <category><![CDATA[Revue de presse]]></category> <category><![CDATA[Java / JEE]]></category> <category><![CDATA[JBoss]]></category> <category><![CDATA[jQuery]]></category> <category><![CDATA[REST]]></category> <category><![CDATA[SCRUM]]></category> <category><![CDATA[Spring]]></category> <category><![CDATA[Terracotta]]></category> <category><![CDATA[Websphere]]></category> <guid
isPermaLink="false">http://blog.xebia.fr/?p=762</guid> <description><![CDATA[La revue de presse de l’actualité Java/J2EE hebdomadaire proposée par Xebia. Actualité éditeurs / SSII Spring Source : les VC prennent le contrôle JBoss certifié Java EE 5 : un anachronisme corrigé &#8230; &#8230; tandis que Websphere 7 sera le dernier grand sur la ligne d&#8217;arrivée Agilité Le Scrum meeting, story par story ? 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>Actualité éditeurs / SSII</strong></p><ul><li><a
href="http://blog.xebia.fr/2008/09/29/revue-de-presse-xebia-76/#SpringSourcelesVCprennentlecon">Spring Source : les VC prennent le contrôle</a></li><li><a
href="http://blog.xebia.fr/2008/09/29/revue-de-presse-xebia-76/#JBosscertifiJavaEEunanachronis">JBoss certifié Java EE 5 : un anachronisme corrigé &#8230;</a></li><li><a
href="http://blog.xebia.fr/2008/09/29/revue-de-presse-xebia-76/#tandisqueWebsphereseraledernie">&#8230; tandis que Websphere 7 sera le dernier grand sur la ligne d&#8217;arrivée</a></li></ul><p><strong>Agilité</strong></p><ul><li><a
href="http://blog.xebia.fr/2008/09/29/revue-de-presse-xebia-76/#LeScrummeetingstoryparstory">Le Scrum meeting, story par story ?</a></li></ul><p><strong>RIA</strong></p><ul><li><a
href="http://blog.xebia.fr/2008/09/29/revue-de-presse-xebia-76/#MicrosoftetNokiaadoptentjQuery">Microsoft et Nokia adoptent jQuery</a></li></ul><p><strong>Le coin de la technique</strong></p><ul><li><a
href="http://blog.xebia.fr/2008/09/29/revue-de-presse-xebia-76/#LesspcificationsRESTseterminen">Les spécifications REST se terminent</a></li><li><a
href="http://blog.xebia.fr/2008/09/29/revue-de-presse-xebia-76/#JVMWishListvueparTerracotta"><em>JVM Wish List</em> vue par Terracotta</a></li><li><a
href="http://blog.xebia.fr/2008/09/29/revue-de-presse-xebia-76/#PrincipespourledesignduneAPI">Principes pour le design d&#8217;une API</a></li><li><a
href="http://blog.xebia.fr/2008/09/29/revue-de-presse-xebia-76/#DavidSyercommuniquesurSpringBa">David Syer communique sur Spring Batch</a></li></ul><h3><a
name="ActualitditeursSSII"></a>Actualité éditeurs / SSII</h3><h4><a
name="SpringSourcelesVCprennentlecon"></a>Spring Source : les VC prennent le contrôle</h4><p>Les semaines se suivent et ne se ressemblent pas chez Spring Source. Après le tumultueux revirement de stratégie Open Source il y a dix jours (cf. <a
href="http://blog.xebia.fr/2008/09/22/nouvelle-politique-de-maintenance-de-spring-la-tres-perilleuse-route-de-la-monetisation-de-lopen-source/" title="Nouvelle politique de maintenance de Spring : La très périlleuse route de monétisation de l'open source" >Nouvelle politique de maintenance de Spring : La très périlleuse route de monétisation de l&#8217;open source</a>), Benchmark Capital, le principal fond d&#8217;investissement de Spring Source, prend le contrôle opérationnel de la société en nommant Rob Bearden President and Chief Operations Officer (COO). Rod Johnson conserve le titre de CEO.</p><p>C&#8217;est un véritable tournant dans la vie de Spring Source qui était jusqu&#8217;à présent gouvernée par son fondateur Rod Johnson et est aujourd&#8217;hui confrontée aux défis de la rentabilité et de la croissance.</p><p>Nous noterons au passage un clin d&#8217;oeil de l&#8217;histoire : Rob Bearden, avant de rejoindre Benchmark Capital, a été COO de JBoss. Le monde de l&#8217;Open source est petit, espérons que les relations conflictuelles entre les camps JBoss et Spring Source s&#8217;adoucissent <img
src='http://blog.xebia.fr/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /></p><p>Les interrogations sont nombreuses : quelle place trouvera Rod Johnson dans cette nouvelle organisation ? Quelle stratégie Open source va adopter Rob Bearden ? Entérinera-t-il la nouvelle politique de commercialisation des releases post trois mois qui suscite encore une polémique très vive ?</p><p>Quelques liens :</p><ul><li><a
href="http://www.theserverside.com/news/thread.tss?thread_id=50813" title="The Server Side : What will be next with SpringSource?" >The Server Side : What will be next with SpringSource?</a></li><li><a
href="http://www.springsource.com/content/springsource-names-president-and-chief-operating-officer" title="Communiqué officiel : SpringSource Names President and Chief Operating Officer" >Communiqué officiel : SpringSource Names President and Chief Operating Officer</a></li><li><a
href="http://www.theregister.co.uk/2008/09/26/springsource_president_coo/" title="The Register : SpringSource VC investor takes COO role" >The Register : SpringSource VC investor takes COO role</a></li></ul><h4><a
name="JBosscertifiJavaEEunanachronis"></a>JBoss certifié Java EE 5 : un anachronisme corrigé &#8230;</h4><p>L&#8217;anachronisme que personne ne comprenait est enfin corrigé. JBoss Application Server, précurseur de Java EE 5 avec le support de JPA dans Hibernate et la Web Application qui jouait le rôle d&#8217;un conteneur d&#8217;EJB 3 est enfin certifié Java EE 5. Sacha Labourey, JBoss, annonce dans <a
href="http://sacha.labourey.com/2008/09/15/jboss-as-is-now-ee5-certified/" title="JBoss AS is now EE5 certified!" >JBoss AS is now EE5 certified!</a> que la version release sera disponible dans les semaines à venir. Il n&#8217;en reste pas moins que JBoss AS 5 est une refonte sur le fond du serveur d&#8217;application (nouveau messaging, clustering, etc) qui a duré plus de trois ans (cf <a
href="http://www.infoq.com/news/2008/06/jboss-as5-rc1" title="InfoQ : Releasing JBoss AS 5: Q&#038;A with Project Lead Dimitris Andreadis" >InfoQ : Releasing JBoss AS 5: Q&#038;A with Project Lead Dimitris Andreadis</a>) et qu&#8217;on peut s&#8217;attendre à une phase de stabilisation de la nouvelle stack JBoss.</p><h4><a
name="tandisqueWebsphereseraledernie"></a>&#8230; tandis que Websphere 7 sera le dernier grand sur la ligne d&#8217;arrivée</h4><p>IBM nous rappelle avec Websphere que les parts de marché sont parfois décorrélées de l&#8217;implémentation des dernières spécifications. Websphere 7 sera le dernier grand serveur Java EE a être certifié Java EE 5.</p><p>La <a
href="http://www.ibm.com/developerworks/websphere/downloads/" title="version d'évaluation" >version d&#8217;évaluation</a> est déjà disponible sur DeveloperWorks ; des blogs (<a
href="http://webspherecommunity.blogspot.com/" title="Websphere Community" >Websphere Community</a> et <a
href="http://webspheremessaging.blogspot.com/" title="Websphere and Messagin" >Websphere and Messagin</a>) relaient la communication institutionnelle.</p><h3><a
name="Agilit"></a>Agilité</h3><h4><a
name="LeScrummeetingstoryparstory"></a>Le Scrum meeting, story par story ?</h4><p>Les <a
href="http://en.wikipedia.org/wiki/Stand-up_meeting" title="daily standup meetings" >daily standup meetings</a> se déroulent habituellement personne par personne, c&#8217;est-à-dire que chaque membre de l&#8217;équipe répond aux <a
href="http://www.scrumalliance.org/articles/39-glossary-of-scrum-terms#1128" title="3 questions" >3 questions</a> l&#8217;un après l&#8217;autre. Le défaut de cette méthode selon <a
href="http://blog.mountaingoatsoftware.com/?p=51" title="Mike Cohn" >Mike Cohn</a> est qu&#8217;elle ne permet pas toujours de voir les problèmes sur les stories dont personne ne s&#8217;occupe puisque personne n&#8217;en parle.<br
/> Il suggère la possibilité d&#8217;attaquer le standup <a
href="http://blog.mountaingoatsoftware.com/?p=51" title="story par story" >story par story</a>, mais on perd alors en visibilité sur ce que fait chaque personne. Face à ce dilemme, plusieurs solutions sont possibles :</p><ul><li>L&#8217;équipe s&#8217;engage t-elle sur trop d&#8217;items par sprint ? Mike préconise une moyenne de 1 à 1,5 story / personne / sprint. Attention, cela ne veut absolument pas dire qu&#8217;une story doit être gérée par une seule personne !</li><li>Faire le standup devant le tableau des tâches, afin que chaque personne puisse pointer les items sur lesquels elle travaille.</li><li>Désigner des &laquo;&nbsp;story owners&nbsp;&raquo; : pour chaque story, une personne de l&#8217;équipe est responsable de son avancement. Cette personne n&#8217;est pas forcément le développeur principal de la story.</li><li>Regarder la taille de l&#8217;équipe : selon ses observations la taille idéale d&#8217;une équipe se situe entre 5-7 personnes.</li></ul><p>La plupart des équipes font leur standup par personne, mais certaines équipes peuvent se heurter à un manque de visibilité sur certaines stories. Cette vision &laquo;&nbsp;story par story&nbsp;&raquo; peut répondre à leurs attentes.</p><h3><a
name="RIA"></a>RIA</h3><h4><a
name="MicrosoftetNokiaadoptentjQuery"></a>Microsoft et Nokia adoptent jQuery</h4><p>À part GWT avec Google, un des reproches que l&#8217;on peut faire aux librairies JavaScript/AJAX est leur absence de support par un grand éditeur. Cet état de fait pourrait bien changer pour la librairie jQuery, une de nos librairies favorites, que l&#8217;on conseille et rencontre de plus en plus fréquemment chez nos clients. jQuery <a
href="http://jquery.com/blog/2008/09/28/jquery-microsoft-nokia" title="annonce sur son blog" >annonce sur son blog</a> l&#8217;adoption par Microsoft et Nokia du framework, et son intégration dans leur plateforme de développement officielle respective.<br
/> jQuery sera donc distribué avec Visual Studio, et sera présent dans tous les nouveaux téléphones de Nokia qui utiliseront le moteur de rendu maison <a
href="http://www.s60.com/life/thisiss60/s60indetail/technologiesandfeatures/webruntime" title="Web Runtime" >Web Runtime</a>.<br
/> Les bénéfices pour jQuery et ses utilisateurs sont multiples : la reconnaissance de la librairie comme parmi les plus populaires, et son amélioration via la soumission de patchs et de tests. Excellente nouvelle donc !</p><h3><a
name="Lecoindelatechnique"></a>Le coin de la technique</h3><h4><a
name="LesspcificationsRESTseterminen"></a>Les spécifications REST se terminent</h4><p>Vous en entendrez certainement parler prochainement à l&#8217;occasion de Spring 3.0, les spécifications de la <a
href="http://jcp.org/en/jsr/detail?id=311" title="JSR-311 : Java API for RESTful Web Service" >JSR-311 : Java API for RESTful Web Service</a> (JAX-RS) ont été approuvées quasi unanimement (15 pour, 0 contre, 1 non votant) par l&#8217;<em>executive comitee</em>.</p><p>JAX-RS est une API permettant l&#8217;implémentation de Web Services REST, son fonctionnement est simple :</p><ul><li>on rajoute des annotations sur des classes et des méthodes pour décrire les services à exposer et la manière de les exposer</li><li>le choix du service s&#8217;effectue en fonction des URL / Content type / Headers et type de requête HTTP</li></ul><p>REST étant à la mode, plusieurs framework existent déjà dont :</p><ul><li><a
href=" https://jersey.dev.java.net/" title="Jersey" >Jersey</a>, l&#8217;implémentation de référence pour JAX-RS développée par Sun</li><li><a
href="http://www.restlet.org/" title="Restlet" >Restlet</a>, le framework du moment le plus utilisé pour les applications REST</li><li><a
href="http://cwiki.apache.org/CXF20DOC/jax-rs-jsr-311.html" title="CXF RESTful Services" >CXF RESTful Services</a>, l&#8217;implémentation JAX-RS du projet Apache CXF</li><li><a
href="http://jboss.org/resteasy" title="RESTeasy" >RESTeasy</a>, la version JBoss</li></ul><p>Une interview des specs leads Marc Hadley et Paul Sandoz est disponible sur <a
href="http://www.infoq.com/news/2008/09/jsr311-approved" title="InfoQ" >InfoQ</a>. Une des questions intéressantes porte sur l&#8217;influence de la JSR311 sur les spécifications de Servlet. Cela nous rappelle que, même si les API REST et les Servlets ont des approches complètement différentes, ces deux technologies doivent pouvoir cohabiter et travailler ensemble.</p><h4><a
name="JVMWishListvueparTerracotta"></a><em>JVM Wish List</em> vue par Terracotta</h4><p><a
href="http://dsoguy.blogspot.com/2008/09/jvm-wish-list.html" title="Cet article" >Cet article</a> présente une liste d&#8217;améliorations JVM espérées vues par un spécialiste <a
href="http://terracottatech.com/" title="Terracotta" >Terracotta</a>. S&#8217;il est vrai que cet outil aborde des problématiques peu communes (clustering de JVM), certaines de ces idées pourraient être utiles pour tout autre framework utilisant <a
href="http://blog.xebia.fr/2008/05/02/java-agent-instrumentez-vos-classes/" title="l'instrumentalisation de code" >l&#8217;instrumentalisation de code</a>.</p><p>Voici les idées proposées par Steeve Haris dans son article regroupées par domaines, elles permettent de :</p><ul><li>Simplifier grandement le code de ce genre de framework en évitant d&#8217;avoir à développer des surcouches logicielles simulant certaines de ces fonctionnalités</li><ul><li>Permettre de créer des <code>proxy</code> d&#8217;objets niveau JVM : cela faciliterait le maintien de la <em>heap virtuelle</em> de Terracotta</li><li>Pouvoir associer des métadatas à un objet : cela permettrait d&#8217;affiner les choix du <em>memory manager</em> de Terracotta</li><li>Faciliter le développement de tricks  en améliorant le _Hot swapping_</li></ul><li>Optimiser le nombre d&#8217;objets à instrumentaliser</li><ul><li>Permette d&#8217;instrumenter des tableaux sans avoir besoin de passer par les classes les utilisant</li><li>Permettre le remplacement de méthodes <em>natives</em> : actuellement si l&#8217;on veut modifier le comportement d&#8217;une méthode native, nous somme obligé d&#8217;instrumenter tous les objets appelant celle-ci.</li></ul><li>Adapter la JVM aux architectures d&#8217;aujourd&#8217;hui</li><ul><li>La taille des listes et des collections est définie par un <code>int</code>. Les architectures 64 bits nous permettant d&#8217;ajouter de plus en plus de mémoire, il se peut que cette taille devienne insuffisante dans certaines utilisations.</li></ul></ul><h4><a
name="PrincipespourledesignduneAPI"></a>Principes pour le design d&#8217;une API</h4><p><a
href="http://en.wikipedia.org/wiki/Joshua_Bloch" title="Joshua Bloch" >Joshua Bloch</a> (Google), auteur de Effective Java, énumère un ensemble de principes clés afin de réussir la conception et la réalisation d&#8217;une API : <a
href="http://www.infoq.com/articles/API-Design-Joshua-Bloch" title="Bumper-Sticker API Design" >Bumper-Sticker API Design</a>.</p><p>Une API n&#8217;est pas seulement mise en place dans les frameworks mais aussi dans des applications à différents niveaux :</p><ul><li>la couche d&#8217;accès aux données</li><li>la couche service</li></ul><p>La volonté d&#8217;une API est de réaliser un module cadré au fonctionnement clair. Le fonctionnement interne du module est caché derrière un contrat d&#8217;utilisation (qui ne repose pas nécessairement uniquement sur des interfaces Java). Le terme d&#8217;utilisabilité de l&#8217;API peut être employé.</p><p>L&#8217;utilisabilité d&#8217;une API peut être décrite avec les spécificités suivantes :</p><ul><li>contrat d&#8217;utilisation simple et explicité, cela passe par le nommage des éléments (classe, méthode, argument, &#8230;).</li><li>l&#8217;intégration aux cas d&#8217;utilisation doit être naturelle. Pour que ce soit le plus naturel possible, on peut même envisager de d&#8217;abord coder les cas d&#8217;utilisation avec l&#8217;appel à l&#8217;API et ensuite coder l&#8217;implémentation de l&#8217;API.</li><li>l&#8217;implémentation de l&#8217;API doit être indépendante du contexte d&#8217;appel</li></ul><p>Le développement d&#8217;API pose le problème de la gestion des versions. A partir du moment où elle est exposée, une API doit répondre de la même façon à tous les appels, quel que soit le client sollicitant le service. Il est vital de respecter les principes de l&#8217;IoC <em>Inversion of Control</em>, et ne pas enrichir chaque version d&#8217;un ou plusieurs comportements spécifiques :</p><pre class="brush: java; title: ; notranslate">
if (isClient1) {
  // Traitement spécifique client 1
} else if (isClient2) {
  // Traitement spécifique client 2
} else {
...
}
</pre><p>Des principes qui font généralement débats sont aussi présentés :</p><ul><li>Faire peu de documentation, les noms des classes/méthodes doivent être explicites</li><li>Ne pas remonter de <code>CheckException</code> que des <code>RuntimeException</code></li></ul><p>Il est vrai que la principale difficulté d&#8217;une API est de bien faire dès la première version. La moindre modification du contrat d&#8217;utilisation de l&#8217;API entraînera des régressions chez les clients de l&#8217;API.</p><p>C&#8217;est pour cette raison qu&#8217;il faut tenter de faire un premier jet aussi bref et concis que possible, et de ne traiter la multiplicité des cas qu&#8217;au fur et à mesure de leur apparition, dans des versions ultérieures.</p><p>Pour conclure, on reprendra la phrase de Joshua Bloch : le design d&#8217;API est un art, pas une science exacte.</p><p>N&#8217;hésitez pas à visionner le <a
href="http://www.infoq.com/presentations/effective-api-design" title="vidcast associé à cet article" >vidcast associé à cet article</a>.</p><h4><a
name="DavidSyercommuniquesurSpringBa"></a>David Syer communique sur Spring Batch</h4><p><a
href="http://blog.xebia.fr/2008/06/23/revue-de-presse-xebia-62/#DaveSyerrevientsurSpringBatchp" title="Nous vous l'annoncions avant l'été" >Nous vous l&#8217;annoncions avant l&#8217;été</a>, David Syer, le leader technique de Spring Batch, a entamé sa &laquo;&nbsp;tournée promotionnelle&nbsp;&raquo;.</p><p>À travers ce <a
href="http://www.infoq.com/presentations/syer-introducing-spring-batch" title="vidcast, capté au QCon de Londres et relayé par InfoQ" >vidcast, capté au QCon de Londres et relayé par InfoQ</a> (ou bien via <a
href="http://www.springsource.com/files/IntroducingSpringBatch-1.0.1.pdf" title="le support de présentation" >le support de présentation</a>), il revient sur :</p><ul><li>les patterns de batch et leur utilisation</li><li>un survol des concepts de SpringBatch</li><li>une étude de cas</li><li>l&#8217;avenir de ce produit</li></ul><p>D&#8217;autre part, dans une autre <a
href="http://www.tv4it.net/permalink/6169/spring-batch-un-framework-java-open-source-pour-le-plus-vieux-sujet-de-linformatique.aspx" title="vidéo publiée sur  TV4it" >vidéo publiée sur  TV4it</a>, Olivier Rachon, Senior Manager chez Accenture, nous en dit plus quant à l&#8217;utilisation de ce <em>récent</em> framework : 5 projets en production, des 10aines en cours de développement.</p><p>Pour information, la version 1.1.2 est disponible et les premiers tests que nous avons effectués, dans le cadre d&#8217;un XKE, nous ont paru très convaincants. Nous devrions publier prochainement notre retour d&#8217;expérience sur ce framework.</p> ]]></content:encoded> <wfw:commentRss>http://blog.xebia.fr/2008/09/29/revue-de-presse-xebia-76/feed/</wfw:commentRss> <slash:comments>12</slash:comments> </item> <item><title>Revue de Presse Xebia</title><link>http://blog.xebia.fr/2008/08/11/revue-de-presse-xebia-69/</link> <comments>http://blog.xebia.fr/2008/08/11/revue-de-presse-xebia-69/#comments</comments> <pubDate>Mon, 11 Aug 2008 17:50:36 +0000</pubDate> <dc:creator>Xebia France</dc:creator> <category><![CDATA[Revue de presse]]></category> <category><![CDATA[Flex]]></category> <category><![CDATA[J2EE]]></category> <category><![CDATA[Java / JEE]]></category> <category><![CDATA[JBoss]]></category> <category><![CDATA[JSF]]></category> <category><![CDATA[Méthodes agiles]]></category> <category><![CDATA[RIA]]></category> <category><![CDATA[Seam]]></category> <category><![CDATA[Silverlight]]></category> <category><![CDATA[Struts]]></category> <guid
isPermaLink="false">http://blog.xebia.fr/?p=570</guid> <description><![CDATA[La revue de presse de l’actualité Java/J2EE hebdomadaire proposée par Xebia. Agilité Agile 2008 : La sagesse des foules RIA FXStruts Interopérabilité Java &#8211; Silverlight HTML immobilisé par les tergiversations &#8230; pendant que les RIA progressent Le coin de la technique Les nouveautés de Seam 2.1 Evènements de notre communauté en France et à l&#8217;étranger [...]]]></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/08/11/revue-de-presse-xebia-69/#AgileLasagessedesfoules">Agile 2008 : La sagesse des foules</a></li></ul><p><strong>RIA</strong></p><ul><li><a
href="http://blog.xebia.fr/2008/08/11/revue-de-presse-xebia-69/#FXStruts">FXStruts</a></li><li><a
href="http://blog.xebia.fr/2008/08/11/revue-de-presse-xebia-69/#InteroprabilitJavaSilverlight">Interopérabilité Java &#8211; Silverlight</a></li><li><a
href="http://blog.xebia.fr/2008/08/11/revue-de-presse-xebia-69/#HTMLimmobilisparlestergiversat">HTML immobilisé par les tergiversations &#8230; pendant que les RIA progressent</a></li></ul><p><strong>Le coin de la technique</strong></p><ul><li><a
href="http://blog.xebia.fr/2008/08/11/revue-de-presse-xebia-69/#LesnouveautsdeSeam">Les nouveautés de Seam 2.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/2008/08/11/revue-de-presse-xebia-69/#JSFOneSeptembre">JSF One &#8211; Septembre 2008</a></li></ul><h3><a
name="Agilit"></a>Agilité</h3><h4><a
name="AgileLasagessedesfoules"></a>Agile 2008 : La sagesse des foules</h4><p>La conférence <a
href="http://www.agile2008.org/" title="Agile 2008" >Agile 2008</a> qui se déroulait à Toronto s&#8217;est terminée vendredi dernier. Avec près de 1600 participants et 400 présentations c&#8217;était la plus grande (<a
href="http://gojko.net/2008/08/08/agile-2008-the-end/" title="trop grande" >trop grande</a> ?) conférence Agile jamais organisée. Les retours sur le niveau des présentations semblent plutôt positifs bien que la qualité des sessions était <a
href="http://www.agilex.fr/2008/08/2eme-jour/" title="inégale" >inégale</a>, certaines déceptions venant parfois <a
href="http://blog.valtech.fr/wordpress/2008/08/10/agile-2008-cest-fini/" title="des stars" >des stars</a>.</p><p>La conférence a débuté avec un très bon discours de <a
href="http://en.wikipedia.org/wiki/James_Surowiecki" title="James Surowiecki" >James Surowiecki</a>, auteur du livre <a
href="http://en.wikipedia.org/wiki/Wisdom_of_the_crowds" title="The Wisdom of Crowds" >The Wisdom of Crowds</a> (La sagesse des foules). InfoQ <a
href="http://www.infoq.com/news/2008/08/wisdom-of-crowds" title="revient sur la thèse de ce livre" >revient sur la thèse de ce livre</a> : &laquo;&nbsp;<em>une décision prise par un groupe de personnes est souvent meilleure que la meilleure décision de n&#8217;importe quelle personne du groupe</em>&laquo;&nbsp;. Cette affirmation est toutefois soumise à quelques contraintes : un groupe <em>sage</em> est un groupe <strong>diversifié</strong>, où chaque membre prend une décision de façon <strong>indépendante</strong>, et qui sait <strong>agréger</strong> l&#8217;ensemble des décisions individuelles pour obtenir une décision collective.</p><p><a
href="http://en.wikipedia.org/wiki/Robert_Cecil_Martin" title="Robert C. Martin" >Robert C. Martin</a> &#8211; surnommé l&#8217;oncle Bob &#8211; a donné un discours intitulé <em>Quintessence</em> dans lequel il propose d&#8217;ajouter un <a
href="http://gojko.net/2008/08/08/the-fifth-element-of-the-agile-manifesto/" title="cinquième élément" >cinquième élément</a> au <a
href="http://agilemanifesto.org/" title="Manifeste Agile" >Manifeste Agile</a> : il appelle les développeurs à <a
href="http://www.agilex.fr/2008/08/troisieme-jour/" title="se laver les mains" >se laver les mains</a>, c&#8217;est-à-dire à écrire du code propre, à ne pas faire de compromis sur la qualité.<br
/> Il tire aussi une caricature des 2 méthodes Scrum et XP en les comparant à Obama et Mc Cain : Scrum à cause de son idéalisme et de ses certifications, et XP car la méthode est trop stricte. Il rappelle que la conférence Agile 2008 est une fusion de deux anciennes conférences respectivement sur Scrum et XP, ce qui confirme le fait que <a
href="http://gojko.net/2008/08/08/the-fifth-element-of-the-agile-manifesto/" title="les 2 méthodes ont fusionné en un seul ensemble de pratiques agiles" >les 2 méthodes ont fusionné en un seul ensemble de pratiques agiles</a>.</p><p><a
href="http://en.wikipedia.org/wiki/Alan_Cooper" title="Alan Cooper" >Alan Cooper</a> a clôturé la conférence avec sa présentation <a
href="http://www.cooper.com/journal/agile2008/" title="The Wisdom of experience" >The Wisdom of experience</a>. Il en a profité pour rappeler que sa conviction pour l&#8217;interêt de la conception détaillée par écrit ne fait pas de lui un adhérent à la méthode <a
href="http://en.wikipedia.org/wiki/Waterfall_model" title="Waterfall" >Waterfall</a>.</p><p>Voici quelques blogs parlant d&#8217;Agile 2008, dont certains sont cités précédemment. En français :</p><ul><li><a
href="http://www.agilex.fr/" title="Alexandre Boutin" >Alexandre Boutin</a></li><li><a
href="http://blog.valtech.fr/wordpress/2008/08/10/agile-2008-cest-fini/" title="Valtech" >Valtech</a></li></ul><p>En anglais :</p><ul><li><a
href="http://gojko.net/2008/08/08/agile-2008-the-end/" title="Gojko Adzic" >Gojko Adzic</a></li><li><a
href="http://blog.projectconnections.com/project_practitioners/2008/08/agile-2008-star.html" title="Kent McDonald" >Kent McDonald</a></li><li><a
href="http://www.agileadvice.com/2008/08/05/miscellaneous/first-day-of-agile-2008-conference/" title="Mishkin Berteig" >Mishkin Berteig</a></li><li><a
href="http://www.agilegamedevelopment.com/2008/08/agile-2008-conference.html" title="Klinton Keith" >Klinton Keith</a></li><li><a
href="http://lisacrispin.blogspot.com/2008/08/back-from-agile-2008-what-did-i-learn.html" title="Lisa Crispin" >Lisa Crispin</a></li><li><a
href="http://agiletools.wordpress.com/2008/08/04/agile-2008-day-1/" title="Tom Perry" >Tom Perry</a></li></ul><p>Rendez-vous l&#8217;année prochaine à <a
href="http://agilealliance.org/Agile2009/conference09.html" title="Chicago" >Chicago</a>.</p><h3><a
name="RIA"></a>RIA</h3><h4><a
name="FXStruts"></a>FXStruts</h4><p>Cet article nous présente un nouvelle librairie open source: <a
href="http://anirudhs.chaosnet.org/blog/2008.07.23.html" title="FXStruts" >FXStruts</a>. Cette dernière, développée, par Anirudh Sasikumar permet d&#8217;intégrer Flex dans la partie Vue de <a
href="http://struts.apache.org/1.3.8/index.html" title="Struts" >Struts</a>. Le principe est assez simple: cette librairie fonctionne sur le même principe du tag bean:write dont l&#8217;output sera de l&#8217;AMF ou du XML. Pour cela, deux tags sont disponibles :</p><ul><li>fx:write équivalent au tag bean:message.</li><li>fx:message équivalent au tag bean:write.</li></ul><p>Le code source est accessible sur le <a
href="http://code.google.com/p/fxstruts/" title="repository de google" >repository de google</a> et <a
href="http://code.google.com/p/fxstruts/wiki/MigratingExistingStrutsAppToFlex" title="des aides à la migration d'applications Struts en Flex" >des aides à la migration d&#8217;applications Struts en Flex</a> sont données.<br
/> Pour le moment, l&#8217;inconvénient majeur de cette libraire est qu&#8217;elle n&#8217;a été testée que pour la version <a
href="http://struts.apache.org/1.3.8/index.html" title="1.3.8 de Struts" >1.3.8 de Struts</a>.<br
/> Ce projet témoigne encore de l&#8217;engouement pour les technologies RIA et plus particulièrement de Flex. A quand un FXStruts pour Struts 2 ?</p><h4><a
name="InteroprabilitJavaSilverlight"></a>Interopérabilité Java &#8211; Silverlight</h4><p>Derrière le leader des RIA Flex, Microsoft s&#8217;accroche et tente d&#8217;imposer son RIA Silverlight.<br
/> En attendant la sortie de la version 2 et un billet plus complet sur ce blog, InfoQ présente <a
href="http://www.infoq.com/articles/silverlight-java-interop" title="un tutoriel pour interfacer Silverlight avec des Webservices Java" >un tutoriel pour interfacer Silverlight avec des Webservices Java</a> (SOAP, REST et RSS).</p><p>Nous retiendrons les conclusions de cet exercice :</p><ul><li>Les technologies de communication de prédilection de Silverlight pour accéder à des backends Java sont SOAP, REST (aka XML sur HTTP) et <a
href="http://en.wikipedia.org/wiki/RSS_(file_format)" title="RSS" >RSS</a></li><li>SOAP pose les classiques problèmes d&#8217;interopérabilité entre les mondes .Net et Java. Silverlight n&#8217;offre pour le moment que le support de <a
href="http://en.wikipedia.org/wiki/WS-I_Basic_Profile" title="WS-I Basic Profile" >WS-I Basic Profile</a> (<a
href="http://en.wikipedia.org/wiki/WS-I" title="WS-I Basic Security Profile" >WS-I Basic Security Profile</a>, n&#8217;est pas encore disponible).</li><li>Le support de REST manque de maturité. La documentation est obsolète voire erronée. Les implémentations RESTful qui utilisent simplement HTTP POST ou GET (plutôt que PUT et DELETE) sont celles qui fonctionnent le mieux avec Silverlight.</li><li>Si SOAP est un bon choix pour les accès en écriture, REST est en revanche plus simple à utiliser pour les accès en lecture.</li><li>L&#8217;accès à des flux RSS est facile à mettre en place.</li><li>Un des concepts fondamentaux à retenir est que Silverlight s&#8217;exécute dans un browser. C&#8217;est pourquoi il possède tous les problèmes inhérents aux composants &#8216;embarqués&#8217; dans le navigateur : les problèmes de cross domaines, les limitations sur le nombre de connexions au navigateur, le support des différents types MIME, etc. Ces problématiques doivent être abordées durant le développement.</li></ul><p>A noter, les références vers des objets JAXB devraient être supportées dans Silverlight 2 RTM de la même manière qu&#8217;elles le sont dans .NET Framework 3.5 SP1 (DataContractSerializer).</p><h4><a
name="HTMLimmobilisparlestergiversat"></a>HTML immobilisé par les tergiversations &#8230; pendant que les RIA progressent</h4><p>InfoQ revient sur les tergiversations autour des évolutions de HTML dans <a
href="http://www.infoq.com/news/2008/08/xhtml2html5" title="XHTML 2 and HTML 5 continue to diverge" >XHTML 2 and HTML 5 continue to diverge</a>.<br
/> Pour mémoire,</p><ul><li><a
href="http://www.w3.org/TR/xhtml2/" title="XHTML V2" >XHTML V2</a> est issu du W3C. Dans la veine du toujours confidentiel <a
href="http://en.wikipedia.org/wiki/Semantic_Web" title="Web Sémantique" >Web Sémantique</a> soutenu par le W3C, l&#8217;objectif principal de XHTML V2 est de renforcer la séparation entre le contenu et la présentation.</li><li><a
href="http://www.whatwg.org/specs/web-apps/current-work/" title="HTML V5" >HTML V5</a> est une proposition du <a
href="http://en.wikipedia.org/wiki/WHATWG" title="Web Hypertext Application Technology Working Group" >Web Hypertext Application Technology Working Group</a> (principalement Google, Apple, Mozilla et Microsoft) suite à un désaccord avec la direction prise par XHTML V2. HTML V5 se veut plus pragmatique et met l&#8217;emphase sur la dimension Rich Internet Application (interactions browser-serveur, édition de documents, drag&#038;drop, etc).</li></ul><p>Pendant ces hésitations, les éditeurs de RIA continuent à ajouter des fonctionnalités à leurs environnements graphiques et Adobe va même jusqu&#8217;à évoquer des applications web widget-centric qui ne passeraient même plus par des browsers mais directemment des liens sur le bureau du système d&#8217;exploitation.</p><p>Plus de détails dans <a
href="http://immike.net/blog/2008/02/06/xhtml-2-vs-html-5/" title="XHTML 2 vs. HTML 5" >XHTML 2 vs. HTML 5</a> par Vinny Carpenter.</p><h3><a
name="Lecoindelatechnique"></a>Le coin de la technique</h3><h4><a
name="LesnouveautsdeSeam"></a>Les nouveautés de Seam 2.1</h4><p>Peter Muir, JBoss, présente dans <a
href="http://java.dzone.com/articles/whats-new-seam-21-an-interview" title="DZone : What's New in Seam 2.1 - An interview with Peter Muir" >DZone : What&#8217;s New in Seam 2.1 &#8211; An interview with Peter Muir</a> les nouveautés de <a
href="http://seamframework.org/" title="Seam" >Seam</a> 2.1.</p><p>Pour rappel, Seam est un framework permettant le développement d&#8217;applications web d&#8217;entreprise. Seam intègre des technologies Java EE 5 comme JSF, EJB 3, JPA. Il fournit également un ensemble d&#8217;API et d&#8217;annotations afin de faciliter le développement avec ces technologies. Seam tente de prendre les meilleures idées de chacune des technologies pour que le développeur ait à faire le moins de couture¹ possible, c&#8217;est à dire du développement purement technique pour intégrer les différentes couches de l&#8217;application.</p><p>Seam pose les bases des <a
href="http://jcp.org/en/jsr/detail?id=299" title="spécifications <em>Web Beans</em>, JSR 299&#8243; >spécifications <em>Web Beans</em>, JSR 299</a>. Celles-ci ont pour objectif d&#8217;unifier le modèle de composant JSF (_Managed Bean_) avec le modèle de composant EJB pour obtenir un modèle de programmation plus simple et plus complet pour le développement d&#8217;applications Web.</p><p>Peter Muir annonce l&#8217;ajout d&#8217;un support <a
href="http://code.google.com/webtoolkit/" title="GWT" >GWT</a> et <a
href="http://wicket.apache.org/" title="Wicket" >Wicket</a> dans Seam 2.1. Le support GWT permettra à Seam de déléguer son rendu à celui-ci alors que le support de Wicket est plus complet. Wicket pourra directement utiliser des composants et des conversations Seam. Côté RIA, l&#8217;intégration de Flex est également à l&#8217;étude.</p><p>Les principaux changements que l&#8217;on peut attendre de Seam 2.1 sont :</p><ul><li> Les performances</li><li> La sécurité : gestion de l&#8217;identité, gestion des habilitations sur les écrans, les workflows, &#8230;</li><li> Amélioration du support REST : intégration de <a
href="http://www.jcp.org/en/jsr/detail?id=311" title="JAX-RS, JSR 311" >JAX-RS, JSR 311</a> et de RESTeasy, implémenté par un autre JBoss-ien : Bill Burke.</li></ul><p>Web Beans est une spécification Java EE. Cette spécification se base sur Seam mais aussi <a
href="http://code.google.com/p/google-guice/" title="Guice" >Guice</a>, le framework d&#8217;injection de dépendance de Google.</p><p>Voici quelques problématiques couvertes par Web Beans :</p><ul><li> Gestion des conversations</li><li> Injection des dépendances</li><li> Création de composants et la gestion de leurs cycles de vie</li><li> Intégration de transactions</li><li> Intégration de JPA</li><li> Mécanismes de validation (Formulaire, métier, donnée, &#8230;)</li></ul><p>La version 3 de Seam est actuellement en bêta. On peut espérer une sortie courant 2009. Cette version proposera un nouveau modèle de composant, à suivre &#8230;</p><p>¹ <em>Seam</em> signifie en français couture</p><h3><a
name="EvnementsdenotrecommunautenFra"></a>Evènements de notre communauté en France et à l&#8217;étranger</h3><h4><a
name="JSFOneSeptembre"></a>JSF One &#8211; Septembre 2008</h4><p>Du 4 au 6 septembre 2008 se tiendra une série de conférences autour de JSF : <a
href="http://www.jsfone.com/conference/washington_dc/2008/09/index.html" title="JSF One" >JSF One</a>.</p><p>Les principaux sujets abordés seront :</p><ul><li><a
href=" http://jcp.org/en/jsr/detail?id=314" title="JSF 2.0 (JSR 314)" >JSF 2.0 (JSR 314)</a> (sera embarqué dans Java EE 6)</li><li>Facelets</li><li><a
href="http://www.springframework.org/spring-integration" title="Spring Integration" >Spring Integration</a></li><li><a
href="http://seamframework.org/" title="Seam" >Seam</a></li><li>Développement Portlet</li><li>Test</li><li>Sripting JSF</li><li>Développement de composant</li><li>Suite de composant comme <a
href="http://www.jboss.org/jbossrichfaces/" title="RichFaces (JBoss)" >RichFaces (JBoss)</a>, <a
href="http://www.icefaces.org/main/home/index.jsp" title="ICEfaces" >ICEfaces</a>, &#8230;</li><li> Intégration des API Google</li></ul><p>Les principaux acteurs du marché seront représentés : Sun, Spring, JBoss, etc. Voici le détail du <a
href="http://www.jsfone.com/conference/washington_dc/2008/09/sessions.html" title="programme et des intervenants" >programme et des intervenants</a>.</p> ]]></content:encoded> <wfw:commentRss>http://blog.xebia.fr/2008/08/11/revue-de-presse-xebia-69/feed/</wfw:commentRss> <slash:comments>4</slash:comments> </item> </channel> </rss>
